summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@nokia.com>2010-08-19 10:04:39 (GMT)
committerPaul Olav Tvete <paul.tvete@nokia.com>2010-08-19 10:04:39 (GMT)
commita226143eeda6771efc4f0df6955351336735cb60 (patch)
treea279f87d74f5929e36fe6a3aa5e4f4d843b32458
parentc02ad51733d0a2885ddb39cb7e3b09355ab97213 (diff)
parentffbce9839f8be5c2f21cc66b617dbeb0a47af269 (diff)
downloadQt-a226143eeda6771efc4f0df6955351336735cb60.zip
Qt-a226143eeda6771efc4f0df6955351336735cb60.tar.gz
Qt-a226143eeda6771efc4f0df6955351336735cb60.tar.bz2
Merge remote branch 'qt/master' into lighthouse-master
-rwxr-xr-xbin/syncqt5
-rw-r--r--config.tests/x11/glxfbconfig/glxfbconfig.pro2
-rw-r--r--config.tests/x11/opengl/opengl.cpp5
-rw-r--r--config.tests/x11/opengl/opengl.pro2
-rwxr-xr-xconfigure84
-rwxr-xr-xconfigure.exebin1317888 -> 1320448 bytes
-rw-r--r--demos/affine/main.cpp2
-rw-r--r--demos/books/bookwindow.cpp2
-rw-r--r--demos/boxes/glbuffers.cpp10
-rw-r--r--demos/boxes/glbuffers.h2
-rw-r--r--demos/boxes/qtbox.cpp2
-rw-r--r--demos/boxes/scene.cpp2
-rw-r--r--demos/browser/browserapplication.cpp4
-rw-r--r--demos/browser/browsermainwindow.cpp2
-rw-r--r--demos/browser/cookiejar.cpp2
-rw-r--r--demos/browser/settings.cpp4
-rw-r--r--demos/browser/webview.cpp2
-rw-r--r--demos/composition/main.cpp2
-rw-r--r--demos/declarative/snake/snake.qml17
-rw-r--r--demos/deform/main.cpp2
-rw-r--r--demos/deform/pathdeform.cpp2
-rw-r--r--demos/demos.pro2
-rw-r--r--demos/embeddeddialogs/customproxy.cpp2
-rw-r--r--demos/gradients/main.cpp2
-rw-r--r--demos/interview/model.cpp2
-rw-r--r--demos/mainwindow/colorswatch.cpp6
-rw-r--r--demos/mainwindow/toolbar.cpp2
-rw-r--r--demos/pathstroke/main.cpp2
-rw-r--r--demos/pathstroke/pathstroke.cpp2
-rw-r--r--demos/qtdemo/examplecontent.cpp4
-rw-r--r--demos/qtdemo/menumanager.cpp4
-rw-r--r--demos/shared/arthurstyle.cpp2
-rw-r--r--demos/shared/arthurwidgets.cpp2
-rw-r--r--demos/spectrum/3rdparty/fftreal/fftreal.pro2
-rw-r--r--demos/spectrum/app/app.pro2
-rw-r--r--demos/spectrum/app/settingsdialog.cpp8
-rw-r--r--demos/spreadsheet/spreadsheetitem.cpp6
-rw-r--r--dist/changes-4.6.02
-rw-r--r--dist/changes-4.7.03
-rw-r--r--dist/changes-4.8.06
-rw-r--r--doc/doc.pri4
-rw-r--r--doc/src/declarative/animation.qdoc345
-rw-r--r--doc/src/declarative/declarativeui.qdoc13
-rw-r--r--doc/src/declarative/elements.qdoc1
-rw-r--r--doc/src/declarative/example-slideswitch.qdoc2
-rw-r--r--doc/src/declarative/modules.qdoc8
-rw-r--r--doc/src/declarative/qdeclarativestates.qdoc95
-rw-r--r--doc/src/declarative/qtdeclarative.qdoc2
-rw-r--r--doc/src/demos/spectrum.qdoc61
-rw-r--r--doc/src/deployment/deployment.qdoc29
-rw-r--r--doc/src/development/debug.qdoc2
-rw-r--r--doc/src/development/developing-with-qt.qdoc61
-rw-r--r--doc/src/development/qmake-manual.qdoc7
-rw-r--r--doc/src/examples/customtype.qdoc2
-rw-r--r--doc/src/examples/imagegestures.qdoc2
-rw-r--r--doc/src/examples/qml-examples.qdoc2
-rw-r--r--doc/src/examples/simpletreemodel.qdoc18
-rw-r--r--doc/src/examples/spinboxdelegate.qdoc4
-rw-r--r--doc/src/external-resources.qdoc12
-rw-r--r--doc/src/files-and-resources/resources.qdoc2
-rw-r--r--doc/src/frameworks-technologies/containers.qdoc2
-rw-r--r--doc/src/frameworks-technologies/dbus-adaptors.qdoc1
-rw-r--r--doc/src/frameworks-technologies/dbus-intro.qdoc2
-rw-r--r--doc/src/frameworks-technologies/dnd.qdoc1
-rw-r--r--doc/src/frameworks-technologies/eventsandfilters.qdoc2
-rw-r--r--doc/src/frameworks-technologies/gestures.qdoc49
-rw-r--r--doc/src/frameworks-technologies/ipc.qdoc13
-rw-r--r--doc/src/frameworks-technologies/model-view-programming.qdoc2
-rw-r--r--doc/src/getting-started/demos.qdoc11
-rw-r--r--doc/src/getting-started/examples.qdoc2
-rw-r--r--doc/src/getting-started/gettingstarted.qdoc499
-rw-r--r--doc/src/getting-started/gettingstartedqml.qdoc1051
-rw-r--r--doc/src/getting-started/gettingstartedqt.qdoc517
-rw-r--r--doc/src/getting-started/installation.qdoc7
-rw-r--r--doc/src/images/arrow.pngbin0 -> 583 bytes
-rw-r--r--doc/src/images/qml-texteditor1_button.pngbin0 -> 1670 bytes
-rw-r--r--doc/src/images/qml-texteditor1_editmenu.pngbin0 -> 7358 bytes
-rw-r--r--doc/src/images/qml-texteditor1_filemenu.pngbin0 -> 7078 bytes
-rw-r--r--doc/src/images/qml-texteditor1_simplebutton.pngbin0 -> 1055 bytes
-rw-r--r--doc/src/images/qml-texteditor2_menubar.pngbin0 -> 7975 bytes
-rw-r--r--doc/src/images/qml-texteditor3_textarea.pngbin0 -> 10417 bytes
-rw-r--r--doc/src/images/qml-texteditor3_texteditor.pngbin0 -> 61353 bytes
-rw-r--r--doc/src/images/qml-texteditor4_texteditor.pngbin0 -> 75600 bytes
-rw-r--r--doc/src/images/qml-texteditor5_editmenu.pngbin0 -> 31834 bytes
-rw-r--r--doc/src/images/qml-texteditor5_filemenu.pngbin0 -> 21688 bytes
-rw-r--r--doc/src/images/qml-texteditor5_newfile.pngbin0 -> 92794 bytes
-rw-r--r--doc/src/images/spectrum-demo.pngbin0 -> 21771 bytes
-rw-r--r--doc/src/index.qdoc12
-rw-r--r--doc/src/internationalization/linguist-manual.qdoc4
-rw-r--r--doc/src/legal/licenses.qdoc46
-rw-r--r--doc/src/modules.qdoc72
-rw-r--r--doc/src/objectmodel/metaobjects.qdoc3
-rw-r--r--doc/src/objectmodel/properties.qdoc3
-rw-r--r--doc/src/overviews.qdoc12
-rw-r--r--doc/src/painting-and-printing/paintsystem.qdoc6
-rw-r--r--doc/src/platforms/emb-directfb-EmbLinux.qdoc15
-rw-r--r--doc/src/platforms/platform-notes.qdocinc0
-rw-r--r--doc/src/platforms/symbian-introduction.qdoc76
-rw-r--r--doc/src/porting/porting4.qdoc22
-rw-r--r--doc/src/porting/qt4-tulip.qdoc2
-rw-r--r--doc/src/qt-webpages.qdoc13
-rw-r--r--doc/src/qt4-intro.qdoc2
-rw-r--r--doc/src/snippets/accessibilityslidersnippet.cpp2
-rw-r--r--doc/src/snippets/code/doc_src_porting4.qdoc2
-rw-r--r--doc/src/snippets/code/doc_src_qtscript.qdoc2
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qvariant.cpp2
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp5
-rw-r--r--doc/src/snippets/code/src_gui_accessible_qaccessible.cpp4
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qxmlquery.cpp2
-rw-r--r--doc/src/snippets/declarative/SelfDestroyingRect.qml60
-rw-r--r--doc/src/snippets/declarative/animation-behavioral.qml61
-rw-r--r--doc/src/snippets/declarative/animation-easing.qml51
-rw-r--r--doc/src/snippets/declarative/animation-elements.qml66
-rw-r--r--doc/src/snippets/declarative/animation-groups.qml104
-rw-r--r--doc/src/snippets/declarative/animation-propertyvaluesource.qml51
-rw-r--r--doc/src/snippets/declarative/animation-signalhandler.qml55
-rw-r--r--doc/src/snippets/declarative/animation-standalone.qml63
-rw-r--r--doc/src/snippets/declarative/animation-transitions.qml62
-rw-r--r--doc/src/snippets/declarative/animation.qml181
-rw-r--r--doc/src/snippets/declarative/transition.qml9
-rw-r--r--doc/src/snippets/legal/CatharonLicense.txt123
-rw-r--r--doc/src/snippets/sharedemployee/employee.h2
-rw-r--r--doc/src/template/style/OfflineStyle.css251
-rw-r--r--doc/src/template/style/narrow.css21
-rwxr-xr-xdoc/src/template/style/style.css33
-rw-r--r--doc/src/template/style/superfish_skin.css83
-rwxr-xr-xdoc/src/tutorials/modelview.qdoc4
-rw-r--r--doc/src/widgets-and-layouts/layout.qdoc6
-rw-r--r--doc/src/widgets-and-layouts/styles.qdoc2
-rw-r--r--doc/src/widgets-and-layouts/stylesheet.qdoc6
-rw-r--r--doc/src/widgets-and-layouts/widgets.qdoc2
-rw-r--r--doc/src/windows-and-dialogs/dialogs.qdoc11
-rw-r--r--doc/src/xml-processing/xml-patterns.qdoc4
-rw-r--r--doc/src/xml-processing/xml-processing.qdoc8
-rw-r--r--doc/src/xml-processing/xquery-introduction.qdoc2
-rw-r--r--examples/activeqt/hierarchy/objects.cpp2
-rw-r--r--examples/animation/easing/window.cpp2
-rw-r--r--examples/declarative/cppextensions/referenceexamples/adding/main.cpp4
-rw-r--r--examples/declarative/cppextensions/referenceexamples/attached/main.cpp4
-rw-r--r--examples/declarative/cppextensions/referenceexamples/binding/main.cpp4
-rw-r--r--examples/declarative/cppextensions/referenceexamples/coercion/main.cpp4
-rw-r--r--examples/declarative/cppextensions/referenceexamples/default/main.cpp4
-rw-r--r--examples/declarative/cppextensions/referenceexamples/extended/main.cpp4
-rw-r--r--examples/declarative/cppextensions/referenceexamples/grouped/main.cpp4
-rw-r--r--examples/declarative/cppextensions/referenceexamples/properties/main.cpp4
-rw-r--r--examples/declarative/cppextensions/referenceexamples/signal/main.cpp4
-rw-r--r--examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp4
-rw-r--r--examples/declarative/keyinteraction/focus/Core/ContextMenu.qml7
-rw-r--r--examples/declarative/keyinteraction/focus/Core/GridMenu.qml7
-rw-r--r--examples/declarative/keyinteraction/focus/Core/ListMenu.qml (renamed from examples/declarative/keyinteraction/focus/Core/ListViews.qml)5
-rw-r--r--examples/declarative/keyinteraction/focus/focus.qml11
-rw-r--r--examples/designer/calculatorbuilder/calculatorform.cpp6
-rw-r--r--examples/draganddrop/puzzle/pieceslist.cpp2
-rw-r--r--examples/graphicsview/diagramscene/mainwindow.cpp12
-rw-r--r--examples/graphicsview/dragdroprobot/robot.cpp4
-rw-r--r--examples/graphicsview/padnavigator/padnavigator.cpp14
-rw-r--r--examples/itemviews/coloreditorfactory/colorlisteditor.cpp2
-rw-r--r--examples/itemviews/puzzle/piecesmodel.cpp2
-rw-r--r--examples/itemviews/stardelegate/main.cpp2
-rw-r--r--examples/itemviews/stardelegate/stardelegate.cpp18
-rw-r--r--examples/multimedia/audiodevices/audiodevices.cpp2
-rw-r--r--examples/multimedia/audioinput/audioinput.cpp2
-rw-r--r--examples/multimedia/audiooutput/audiooutput.cpp2
-rw-r--r--examples/network/bearercloud/bluetooth.svg24
-rw-r--r--examples/network/bearercloud/cell.svg25
-rw-r--r--examples/network/bearercloud/cloud.cpp45
-rw-r--r--examples/network/bearercloud/gprs.svg199
-rw-r--r--examples/network/bearercloud/icons.qrc4
-rwxr-xr-x[-rw-r--r--]examples/network/bearercloud/lan.svg107
-rw-r--r--examples/network/bearercloud/umts.svg200
-rw-r--r--examples/network/bearermonitor/sessionwidget.cpp4
-rw-r--r--examples/network/fortuneserver/fortuneserver.pro2
-rw-r--r--examples/network/network.pro5
-rw-r--r--examples/network/torrent/bencodeparser.cpp4
-rw-r--r--examples/network/torrent/metainfo.cpp4
-rw-r--r--examples/network/torrent/trackerclient.cpp2
-rw-r--r--examples/phonon/qmusicplayer/mainwindow.cpp2
-rw-r--r--examples/richtext/textobject/svgtextobject.cpp4
-rw-r--r--examples/script/calculator/main.cpp2
-rw-r--r--examples/script/context2d/context2d.cpp4
-rw-r--r--examples/script/context2d/domimage.cpp2
-rw-r--r--examples/script/customclass/bytearrayclass.cpp6
-rw-r--r--examples/script/marshal/main.cpp2
-rw-r--r--examples/script/qstetrix/main.cpp2
-rw-r--r--examples/sql/querymodel/customsqlmodel.cpp2
-rw-r--r--examples/tools/customtype/main.cpp2
-rw-r--r--examples/tutorials/addressbook-fr/part2/addressbook.cpp2
-rw-r--r--examples/tutorials/addressbook-fr/part3/addressbook.cpp3
-rw-r--r--examples/tutorials/addressbook-fr/part4/addressbook.cpp3
-rw-r--r--examples/tutorials/addressbook-fr/part5/addressbook.cpp5
-rw-r--r--examples/tutorials/addressbook-fr/part6/addressbook.cpp3
-rw-r--r--examples/tutorials/addressbook-fr/part7/addressbook.cpp3
-rw-r--r--examples/tutorials/addressbook/part2/addressbook.cpp2
-rw-r--r--examples/tutorials/addressbook/part3/addressbook.cpp2
-rw-r--r--examples/tutorials/addressbook/part4/addressbook.cpp2
-rw-r--r--examples/tutorials/addressbook/part5/addressbook.cpp2
-rw-r--r--examples/tutorials/addressbook/part6/addressbook.cpp2
-rw-r--r--examples/tutorials/addressbook/part7/addressbook.cpp2
-rw-r--r--examples/tutorials/gettingStarted/gsQml/core/button.qml108
-rw-r--r--examples/tutorials/gettingStarted/gsQml/core/editMenu.qml105
-rw-r--r--examples/tutorials/gettingStarted/gsQml/core/fileDialog.qml163
-rw-r--r--examples/tutorials/gettingStarted/gsQml/core/fileMenu.qml232
-rw-r--r--examples/tutorials/gettingStarted/gsQml/core/menuBar.qml147
-rw-r--r--examples/tutorials/gettingStarted/gsQml/core/qmldir49
-rw-r--r--examples/tutorials/gettingStarted/gsQml/core/textArea.qml87
-rw-r--r--examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro17
-rw-r--r--examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp54
-rw-r--r--examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h57
-rw-r--r--examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp224
-rw-r--r--examples/tutorials/gettingStarted/gsQml/filedialog/directory.h107
-rw-r--r--examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp57
-rw-r--r--examples/tutorials/gettingStarted/gsQml/filedialog/file.h67
-rw-r--r--examples/tutorials/gettingStarted/gsQml/filedialog/qmldir1
-rw-r--r--examples/tutorials/gettingStarted/gsQml/images/arrow.pngbin0 -> 583 bytes
-rw-r--r--examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.pngbin0 -> 65123 bytes
-rw-r--r--examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.pngbin0 -> 21367 bytes
-rw-r--r--examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.pngbin0 -> 76693 bytes
-rw-r--r--examples/tutorials/gettingStarted/gsQml/texteditor.qml128
-rw-r--r--examples/uitools/textfinder/textfinder.cpp6
-rw-r--r--examples/widgets/validators/localeselector.cpp4
-rw-r--r--examples/xmlpatterns/recipes/querymainwindow.cpp12
-rw-r--r--mkspecs/aix-g++-64/qmake.conf2
-rw-r--r--mkspecs/aix-g++/qmake.conf2
-rw-r--r--mkspecs/aix-xlc-64/qmake.conf2
-rw-r--r--mkspecs/aix-xlc/qmake.conf2
-rw-r--r--mkspecs/common/linux.conf2
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknBitmapAnimation.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknFontAccess.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknInputLanguageInfo.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/ApAccessPointItem.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/ApDataHandler.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/ApUtils.h1
-rw-r--r--mkspecs/common/symbian/symbian-makefile.conf7
-rw-r--r--mkspecs/common/symbian/symbian-mmp.conf19
-rw-r--r--mkspecs/common/symbian/symbian.conf32
-rw-r--r--mkspecs/cygwin-g++/qmake.conf2
-rw-r--r--mkspecs/darwin-g++/qmake.conf2
-rw-r--r--mkspecs/features/qt.prf15
-rw-r--r--mkspecs/features/qt_config.prf4
-rw-r--r--mkspecs/features/symbian/platform_paths.prf7
-rw-r--r--mkspecs/features/symbian/run_on_phone.prf8
-rw-r--r--mkspecs/features/symbian/stl.prf20
-rw-r--r--mkspecs/features/symbian/symbian_building.prf2
-rw-r--r--mkspecs/freebsd-g++/qmake.conf2
-rw-r--r--mkspecs/freebsd-g++34/qmake.conf2
-rw-r--r--mkspecs/freebsd-g++40/qmake.conf2
-rw-r--r--mkspecs/freebsd-icc/qmake.conf2
-rw-r--r--mkspecs/hpux-acc-64/qmake.conf2
-rw-r--r--mkspecs/hpux-acc-o64/qmake.conf2
-rw-r--r--mkspecs/hpux-acc/qmake.conf2
-rw-r--r--mkspecs/hpux-g++-64/qmake.conf2
-rw-r--r--mkspecs/hpux-g++/qmake.conf2
-rw-r--r--mkspecs/hpuxi-acc-32/qmake.conf2
-rw-r--r--mkspecs/hpuxi-acc-64/qmake.conf2
-rw-r--r--mkspecs/hpuxi-g++-64/qmake.conf2
-rw-r--r--mkspecs/hurd-g++/qmake.conf2
-rw-r--r--mkspecs/irix-cc-64/qmake.conf2
-rw-r--r--mkspecs/irix-cc/qmake.conf2
-rw-r--r--mkspecs/irix-g++-64/qmake.conf2
-rw-r--r--mkspecs/irix-g++/qmake.conf2
-rw-r--r--mkspecs/linux-cxx/qmake.conf2
-rw-r--r--mkspecs/linux-ecc-64/qmake.conf2
-rw-r--r--mkspecs/linux-icc/qmake.conf2
-rw-r--r--mkspecs/linux-kcc/qmake.conf2
-rw-r--r--mkspecs/linux-pgcc/qmake.conf2
-rw-r--r--mkspecs/lynxos-g++/qmake.conf2
-rw-r--r--mkspecs/netbsd-g++/qmake.conf2
-rw-r--r--mkspecs/openbsd-g++/qmake.conf2
-rw-r--r--mkspecs/sco-cc/qmake.conf2
-rw-r--r--mkspecs/sco-g++/qmake.conf2
-rw-r--r--mkspecs/solaris-cc-64/qmake.conf2
-rw-r--r--mkspecs/solaris-cc/qmake.conf2
-rw-r--r--mkspecs/solaris-g++-64/qmake.conf2
-rw-r--r--mkspecs/solaris-g++/qmake.conf2
-rw-r--r--mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm2
-rw-r--r--mkspecs/symbian-sbsv2/flm/qt/qt.xml1
-rw-r--r--mkspecs/symbian/linux-armcc/qmake.conf13
-rw-r--r--mkspecs/tru64-cxx/qmake.conf2
-rw-r--r--mkspecs/tru64-g++/qmake.conf2
-rw-r--r--mkspecs/unixware-cc/qmake.conf2
-rw-r--r--mkspecs/unixware-g++/qmake.conf2
-rw-r--r--mkspecs/unsupported/linux-host-g++/qmake.conf2
-rw-r--r--mkspecs/unsupported/qnx-g++/qmake.conf2
-rw-r--r--mkspecs/unsupported/vxworks-ppc-dcc/qmake.conf2
-rw-r--r--mkspecs/unsupported/vxworks-simpentium-dcc/qmake.conf2
-rw-r--r--qmake/cachekeys.h9
-rw-r--r--qmake/generators/makefile.cpp4
-rw-r--r--qmake/generators/symbian/symbiancommon.cpp26
-rw-r--r--qmake/generators/symbian/symmake.cpp33
-rw-r--r--qmake/generators/symbian/symmake.h2
-rw-r--r--qmake/generators/symbian/symmake_abld.cpp21
-rw-r--r--qmake/generators/symbian/symmake_abld.h2
-rw-r--r--qmake/generators/symbian/symmake_sbsv2.cpp187
-rw-r--r--qmake/generators/symbian/symmake_sbsv2.h7
-rw-r--r--qmake/generators/win32/msbuild_objectmodel.cpp3877
-rw-r--r--qmake/generators/win32/msbuild_objectmodel.h574
-rw-r--r--qmake/generators/win32/msvc_nmake.cpp2
-rw-r--r--qmake/generators/win32/msvc_objectmodel.cpp1355
-rw-r--r--qmake/generators/win32/msvc_objectmodel.h135
-rw-r--r--qmake/generators/win32/msvc_vcproj.cpp218
-rw-r--r--qmake/generators/win32/msvc_vcproj.h5
-rw-r--r--qmake/generators/win32/msvc_vcxproj.cpp767
-rw-r--r--qmake/generators/win32/msvc_vcxproj.h34
-rw-r--r--qmake/option.cpp2
-rw-r--r--qmake/project.cpp4
-rw-r--r--src/3rdparty/libconninet/src/dbusdispatcher.cpp2
-rw-r--r--src/3rdparty/phonon/CMakeLists.txt6
-rw-r--r--src/3rdparty/phonon/phonon/mediacontroller.cpp4
-rw-r--r--src/3rdparty/phonon/phonon/phononnamespace.h4
-rw-r--r--src/3rdparty/phonon/phonon/qsettingsgroup_p.h4
-rw-r--r--src/3rdparty/phonon/qt7/videowidget.mm2
-rw-r--r--src/3rdparty/webkit/.tag2
-rw-r--r--src/3rdparty/webkit/VERSION2
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog47
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/platform/FileChooser.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/platform/FileChooser.h4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.mm5
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.h2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/ChangeLog33
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp33
-rw-r--r--src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp28
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html5
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp42
-rw-r--r--src/activeqt/container/qaxbase.cpp12
-rw-r--r--src/activeqt/container/qaxwidget.cpp4
-rw-r--r--src/activeqt/control/qaxserver.cpp2
-rw-r--r--src/activeqt/control/qaxserverbase.cpp16
-rw-r--r--src/activeqt/shared/qaxtypes.cpp28
-rw-r--r--src/corelib/concurrent/qfuture.h2
-rw-r--r--src/corelib/concurrent/qtconcurrentcompilertest.h6
-rw-r--r--src/corelib/concurrent/qtconcurrentfilter.cpp2
-rw-r--r--src/corelib/concurrent/qtconcurrentiteratekernel.h5
-rw-r--r--src/corelib/concurrent/qtconcurrentmap.cpp2
-rw-r--r--src/corelib/concurrent/qtconcurrentresultstore.cpp2
-rw-r--r--src/corelib/corelib.pro32
-rw-r--r--src/corelib/global/qendian.h4
-rw-r--r--src/corelib/global/qglobal.cpp9
-rw-r--r--src/corelib/global/qglobal.h90
-rw-r--r--src/corelib/global/qlibraryinfo.cpp2
-rw-r--r--src/corelib/io/qabstractfileengine.cpp54
-rw-r--r--src/corelib/io/qdebug.h7
-rw-r--r--src/corelib/io/qfileinfo.cpp4
-rw-r--r--src/corelib/io/qfilesystemwatcher_kqueue.cpp5
-rw-r--r--src/corelib/io/qfsfileengine_win.cpp4
-rw-r--r--src/corelib/io/qresource.cpp23
-rw-r--r--src/corelib/kernel/qbasictimer.cpp7
-rw-r--r--src/corelib/kernel/qcoreapplication.cpp2
-rw-r--r--src/corelib/kernel/qeventdispatcher_unix.cpp31
-rw-r--r--src/corelib/kernel/qeventdispatcher_unix_p.h4
-rw-r--r--src/corelib/kernel/qmetaobject.cpp5
-rw-r--r--src/corelib/kernel/qmetatype.cpp1
-rw-r--r--src/corelib/kernel/qmetatype.h1
-rw-r--r--src/corelib/kernel/qobject.cpp118
-rw-r--r--src/corelib/kernel/qobject.h169
-rw-r--r--src/corelib/kernel/qobjectdefs.h4
-rw-r--r--src/corelib/kernel/qvariant.cpp72
-rw-r--r--src/corelib/kernel/qvariant.h30
-rw-r--r--src/corelib/statemachine/qstatemachine.cpp10
-rw-r--r--src/corelib/thread/qmutexpool.cpp2
-rw-r--r--src/corelib/thread/qthreadstorage.h4
-rw-r--r--src/corelib/tools/qbytearraymatcher.h2
-rw-r--r--src/corelib/tools/qeasingcurve.cpp22
-rw-r--r--src/corelib/tools/qhash.h5
-rw-r--r--src/corelib/tools/qmap.h6
-rw-r--r--src/corelib/tools/qpair.qdoc4
-rw-r--r--src/corelib/tools/qshareddata.h2
-rw-r--r--src/corelib/tools/qsharedpointer.cpp8
-rw-r--r--src/corelib/tools/qsharedpointer.h3
-rw-r--r--src/corelib/tools/qsharedpointer_impl.h11
-rw-r--r--src/corelib/tools/qsimd_p.h4
-rw-r--r--src/corelib/tools/qstring.cpp17
-rw-r--r--src/corelib/tools/qstring.h9
-rw-r--r--src/corelib/tools/qstringmatcher.h2
-rw-r--r--src/corelib/tools/qvector.h3
-rw-r--r--src/corelib/xml/qxmlstream.cpp2
-rw-r--r--src/dbus/qdbusabstractinterface.cpp2
-rw-r--r--src/dbus/qdbusargument.cpp4
-rw-r--r--src/dbus/qdbusconnection.cpp11
-rw-r--r--src/dbus/qdbusdemarshaller.cpp18
-rw-r--r--src/dbus/qdbusintegrator.cpp4
-rw-r--r--src/dbus/qdbusinternalfilters.cpp6
-rw-r--r--src/declarative/debugger/qdeclarativedebug.cpp2
-rw-r--r--src/declarative/debugger/qpacketprotocol.cpp2
-rw-r--r--src/declarative/graphicsitems/qdeclarativeflipable.cpp14
-rw-r--r--src/declarative/graphicsitems/qdeclarativeitem.cpp109
-rw-r--r--src/declarative/graphicsitems/qdeclarativelistview.cpp2
-rw-r--r--src/declarative/graphicsitems/qdeclarativepathview.cpp8
-rw-r--r--src/declarative/graphicsitems/qdeclarativerepeater.cpp6
-rw-r--r--src/declarative/graphicsitems/qdeclarativetranslate.cpp8
-rw-r--r--src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp2
-rw-r--r--src/declarative/qml/parser/qdeclarativejsengine_p.h6
-rw-r--r--src/declarative/qml/qdeclarativecompiledbindings.cpp2
-rw-r--r--src/declarative/qml/qdeclarativecompiler.cpp15
-rw-r--r--src/declarative/qml/qdeclarativecomponent.cpp4
-rw-r--r--src/declarative/qml/qdeclarativecontext.cpp13
-rw-r--r--src/declarative/qml/qdeclarativeengine.cpp44
-rw-r--r--src/declarative/qml/qdeclarativeexpression.cpp4
-rw-r--r--src/declarative/qml/qdeclarativeimageprovider.cpp10
-rw-r--r--src/declarative/qml/qdeclarativeinfo.cpp1
-rw-r--r--src/declarative/qml/qdeclarativeinstruction.cpp2
-rw-r--r--src/declarative/qml/qdeclarativelist.h8
-rw-r--r--src/declarative/qml/qdeclarativeprivate.h6
-rw-r--r--src/declarative/qml/qdeclarativeproperty.cpp2
-rw-r--r--src/declarative/qml/qdeclarativescriptparser.cpp2
-rw-r--r--src/declarative/qml/qdeclarativesqldatabase.cpp8
-rw-r--r--src/declarative/qml/qdeclarativestringconverters.cpp2
-rw-r--r--src/declarative/qml/qdeclarativeworkerscript.cpp2
-rw-r--r--src/declarative/qml/qdeclarativexmlhttprequest.cpp8
-rw-r--r--src/declarative/util/qdeclarativeanimation.cpp52
-rw-r--r--src/declarative/util/qdeclarativebehavior.cpp9
-rw-r--r--src/declarative/util/qdeclarativelistmodel.cpp48
-rw-r--r--src/declarative/util/qdeclarativelistmodel_p_p.h3
-rw-r--r--src/declarative/util/qdeclarativepixmapcache.cpp2
-rw-r--r--src/declarative/util/qdeclarativepropertymap.cpp19
-rw-r--r--src/declarative/util/qdeclarativesmoothedanimation.cpp2
-rw-r--r--src/declarative/util/qdeclarativespringanimation.cpp231
-rw-r--r--src/declarative/util/qdeclarativespringanimation_p.h17
-rw-r--r--src/declarative/util/qdeclarativestate.cpp5
-rw-r--r--src/declarative/util/qdeclarativestategroup.cpp4
-rw-r--r--src/declarative/util/qdeclarativetransition.cpp23
-rw-r--r--src/declarative/util/qdeclarativexmllistmodel.cpp10
-rw-r--r--src/gui/accessible/qaccessible.cpp17
-rw-r--r--src/gui/accessible/qaccessibleobject.cpp2
-rw-r--r--src/gui/accessible/qaccessiblewidget.cpp2
-rw-r--r--src/gui/dialogs/qdialog.cpp6
-rw-r--r--src/gui/dialogs/qfontdialog_mac.mm11
-rw-r--r--src/gui/dialogs/qmessagebox.cpp6
-rw-r--r--src/gui/embedded/qkbdlinuxinput_qws.cpp2
-rw-r--r--src/gui/embedded/qkbdqnx_qws.cpp2
-rw-r--r--src/gui/graphicsview/qgraphicsgridlayout.cpp15
-rw-r--r--src/gui/graphicsview/qgraphicsgridlayout.h1
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp80
-rw-r--r--src/gui/graphicsview/qgraphicslayoutitem.cpp51
-rw-r--r--src/gui/graphicsview/qgraphicslayoutitem_p.h6
-rw-r--r--src/gui/graphicsview/qgraphicslinearlayout.cpp3
-rw-r--r--src/gui/graphicsview/qgraphicsscene.cpp13
-rw-r--r--src/gui/graphicsview/qgraphicstransform.cpp39
-rw-r--r--src/gui/graphicsview/qgraphicswidget.cpp3
-rw-r--r--src/gui/graphicsview/qgridlayoutengine.cpp275
-rw-r--r--src/gui/graphicsview/qgridlayoutengine_p.h24
-rw-r--r--src/gui/gui.pro30
-rw-r--r--src/gui/image/image.pri1
-rw-r--r--src/gui/image/qimage.cpp166
-rw-r--r--src/gui/image/qimage.h3
-rw-r--r--src/gui/image/qimage_neon.cpp114
-rw-r--r--src/gui/image/qimage_ssse3.cpp5
-rw-r--r--src/gui/image/qimagereader.cpp2
-rw-r--r--src/gui/image/qjpeghandler.cpp36
-rw-r--r--src/gui/image/qmnghandler.cpp2
-rw-r--r--src/gui/inputmethod/qcoefepinputcontext_s60.cpp49
-rw-r--r--src/gui/inputmethod/qinputcontextfactory.cpp2
-rw-r--r--src/gui/itemviews/qabstractitemdelegate.cpp4
-rw-r--r--src/gui/itemviews/qheaderview.cpp8
-rw-r--r--src/gui/itemviews/qitemdelegate.cpp4
-rw-r--r--src/gui/itemviews/qsortfilterproxymodel.cpp2
-rw-r--r--src/gui/itemviews/qstyleditemdelegate.cpp2
-rw-r--r--src/gui/kernel/qapplication.cpp9
-rw-r--r--src/gui/kernel/qapplication.h3
-rw-r--r--src/gui/kernel/qapplication_p.h1
-rw-r--r--src/gui/kernel/qapplication_s60.cpp77
-rw-r--r--src/gui/kernel/qapplication_win.cpp6
-rw-r--r--src/gui/kernel/qclipboard.cpp2
-rw-r--r--src/gui/kernel/qcocoaapplication_mac.mm8
-rw-r--r--src/gui/kernel/qcocoaview_mac.mm8
-rw-r--r--src/gui/kernel/qcocoaview_mac_p.h1
-rw-r--r--src/gui/kernel/qevent.cpp5
-rw-r--r--src/gui/kernel/qgesture.cpp28
-rw-r--r--src/gui/kernel/qgesturerecognizer.cpp3
-rw-r--r--src/gui/kernel/qpalette.cpp4
-rw-r--r--src/gui/kernel/qt_cocoa_helpers_mac.mm24
-rw-r--r--src/gui/kernel/qt_cocoa_helpers_mac_p.h1
-rw-r--r--src/gui/kernel/qt_s60_p.h2
-rw-r--r--src/gui/kernel/qtooltip.cpp2
-rw-r--r--src/gui/kernel/qwidget.cpp2
-rw-r--r--src/gui/kernel/qwidget.h8
-rw-r--r--src/gui/kernel/qwidget_win.cpp4
-rw-r--r--src/gui/math3d/qmatrix4x4.cpp14
-rw-r--r--src/gui/math3d/qmatrix4x4.h16
-rw-r--r--src/gui/painting/painting.pri21
-rw-r--r--src/gui/painting/qdrawhelper.cpp6
-rw-r--r--src/gui/painting/qdrawhelper_p.h140
-rw-r--r--src/gui/painting/qdrawhelper_sse2.cpp41
-rw-r--r--src/gui/painting/qdrawingprimitive_sse2_p.h8
-rw-r--r--src/gui/painting/qgraphicssystem_runtime.cpp109
-rw-r--r--src/gui/painting/qgraphicssystem_runtime_p.h17
-rw-r--r--src/gui/painting/qoutlinemapper.cpp9
-rw-r--r--src/gui/painting/qoutlinemapper_p.h8
-rw-r--r--src/gui/painting/qpaintbuffer.cpp44
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp65
-rw-r--r--src/gui/painting/qpaintengineex.cpp2
-rw-r--r--src/gui/painting/qpainter.cpp120
-rw-r--r--src/gui/painting/qpainter.h2
-rw-r--r--src/gui/painting/qrasterizer.cpp6
-rw-r--r--src/gui/painting/qwindowsurface_s60.cpp12
-rw-r--r--src/gui/s60framework/qs60mainapplication.cpp9
-rw-r--r--src/gui/s60framework/qs60mainappui.cpp45
-rw-r--r--src/gui/s60framework/qs60maindocument.cpp6
-rw-r--r--src/gui/s60framework/qs60maindocument.h2
-rw-r--r--src/gui/styles/qmacstyle_mac.h4
-rw-r--r--src/gui/styles/qmacstyle_mac.mm15
-rw-r--r--src/gui/styles/qmacstyle_mac_p.h2
-rw-r--r--src/gui/styles/qplastiquestyle.cpp2
-rw-r--r--src/gui/styles/qs60style.cpp2
-rw-r--r--src/gui/styles/qs60style_s60.cpp6
-rw-r--r--src/gui/styles/qstyle.cpp2
-rw-r--r--src/gui/styles/qstylesheetstyle.cpp14
-rw-r--r--src/gui/styles/qwindowsstyle.cpp6
-rw-r--r--src/gui/styles/qwindowsvistastyle.cpp12
-rw-r--r--src/gui/text/qcssparser.cpp44
-rw-r--r--src/gui/text/qfontdatabase.cpp4
-rw-r--r--src/gui/text/qfontengine_mac.mm32
-rw-r--r--src/gui/text/qfontmetrics.cpp32
-rw-r--r--src/gui/text/qfontmetrics.h2
-rw-r--r--src/gui/text/qstatictext.cpp16
-rw-r--r--src/gui/text/qtextcontrol.cpp2
-rw-r--r--src/gui/text/qtextengine.cpp86
-rw-r--r--src/gui/text/qtextengine_p.h14
-rw-r--r--src/gui/text/qtextformat.cpp6
-rw-r--r--src/gui/text/qtextlayout.cpp106
-rw-r--r--src/gui/widgets/qabstractbutton.cpp2
-rw-r--r--src/gui/widgets/qcombobox.cpp6
-rw-r--r--src/gui/widgets/qcommandlinkbutton.cpp2
-rw-r--r--src/gui/widgets/qdatetimeedit.cpp1
-rw-r--r--src/gui/widgets/qdialogbuttonbox.cpp2
-rw-r--r--src/gui/widgets/qlineedit.h1
-rw-r--r--src/gui/widgets/qlineedit_p.cpp23
-rw-r--r--src/gui/widgets/qlineedit_p.h3
-rw-r--r--src/gui/widgets/qmainwindow.cpp4
-rw-r--r--src/gui/widgets/qmainwindowlayout.cpp2
-rw-r--r--src/gui/widgets/qmdisubwindow.cpp4
-rw-r--r--src/gui/widgets/qmenu.cpp4
-rw-r--r--src/gui/widgets/qmenubar.cpp2
-rw-r--r--src/gui/widgets/qprintpreviewwidget.cpp2
-rw-r--r--src/gui/widgets/qpushbutton.cpp8
-rw-r--r--src/gui/widgets/qtoolbarextension.cpp2
-rw-r--r--src/gui/widgets/qworkspace.cpp2
-rw-r--r--src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp31
-rw-r--r--src/multimedia/video/qvideosurfaceformat.cpp26
-rw-r--r--src/network/access/qhttpnetworkconnection.cpp15
-rw-r--r--src/network/access/qhttpnetworkconnectionchannel.cpp168
-rw-r--r--src/network/access/qhttpnetworkconnectionchannel_p.h13
-rw-r--r--src/network/access/qhttpnetworkreply.cpp113
-rw-r--r--src/network/access/qhttpnetworkreply_p.h15
-rw-r--r--src/network/access/qhttpnetworkrequest.cpp11
-rw-r--r--src/network/access/qhttpnetworkrequest_p.h4
-rw-r--r--src/network/access/qnetworkaccessbackend.cpp11
-rw-r--r--src/network/access/qnetworkaccessbackend_p.h4
-rw-r--r--src/network/access/qnetworkaccesshttpbackend.cpp33
-rw-r--r--src/network/access/qnetworkaccesshttpbackend_p.h1
-rw-r--r--src/network/access/qnetworkaccessmanager.cpp2
-rw-r--r--src/network/access/qnetworkreplyimpl.cpp82
-rw-r--r--src/network/access/qnetworkreplyimpl_p.h10
-rw-r--r--src/network/access/qnetworkrequest.cpp42
-rw-r--r--src/network/bearer/qnetworkconfigmanager_p.cpp24
-rw-r--r--src/network/bearer/qnetworkconfiguration.cpp124
-rw-r--r--src/network/bearer/qnetworkconfiguration.h21
-rw-r--r--src/network/bearer/qnetworkconfiguration_p.h9
-rw-r--r--src/network/kernel/qhostinfo.cpp2
-rw-r--r--src/network/kernel/qhostinfo_win.cpp5
-rw-r--r--src/network/socket/qabstractsocket.cpp144
-rw-r--r--src/network/socket/qlocalsocket_win.cpp2
-rw-r--r--src/network/socket/qnativesocketengine_unix.cpp4
-rw-r--r--src/network/ssl/qsslsocket.cpp2
-rw-r--r--src/network/ssl/qsslsocket_openssl.cpp7
-rw-r--r--src/network/ssl/qsslsocket_openssl_symbols.cpp121
-rw-r--r--src/opengl/opengl.pro2
-rw-r--r--src/opengl/qgl.cpp2
-rw-r--r--src/opengl/qgl.h4
-rw-r--r--src/opengl/qgl_egl.cpp1
-rw-r--r--src/opengl/qgl_mac.mm11
-rw-r--r--src/opengl/qglextensions.cpp4
-rw-r--r--src/opengl/qglframebufferobject.cpp4
-rw-r--r--src/opengl/qglfunctions.cpp3705
-rw-r--r--src/opengl/qglfunctions.h2290
-rw-r--r--src/opengl/qglshaderprogram.cpp2
-rw-r--r--src/opengl/qwindowsurface_gl.cpp19
-rw-r--r--src/opengl/qwindowsurface_gl_p.h1
-rw-r--r--src/openvg/qpaintengine_vg.cpp26
-rw-r--r--src/plugins/accessible/widgets/qaccessiblewidgets.cpp2
-rw-r--r--src/plugins/accessible/widgets/rangecontrols.cpp4
-rw-r--r--src/plugins/accessible/widgets/simplewidgets.cpp2
-rw-r--r--src/plugins/bearer/connman/qconnmanengine.cpp144
-rw-r--r--src/plugins/bearer/connman/qconnmanengine.h4
-rw-r--r--src/plugins/bearer/connman/qconnmanservice_linux.cpp125
-rw-r--r--src/plugins/bearer/connman/qconnmanservice_linux_p.h13
-rw-r--r--src/plugins/bearer/corewlan/qcorewlanengine.h2
-rw-r--r--src/plugins/bearer/corewlan/qcorewlanengine.mm6
-rw-r--r--src/plugins/bearer/generic/qgenericengine.cpp28
-rw-r--r--src/plugins/bearer/generic/qgenericengine.h2
-rw-r--r--src/plugins/bearer/icd/qicdengine.cpp56
-rw-r--r--src/plugins/bearer/icd/qicdengine.h22
-rw-r--r--src/plugins/bearer/icd/qnetworksession_impl.cpp3
-rw-r--r--src/plugins/bearer/nativewifi/qnativewifiengine.cpp7
-rw-r--r--src/plugins/bearer/nativewifi/qnativewifiengine.h2
-rw-r--r--src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp73
-rw-r--r--src/plugins/bearer/networkmanager/qnetworkmanagerengine.h4
-rw-r--r--src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp158
-rw-r--r--src/plugins/bearer/nla/qnlaengine.cpp47
-rw-r--r--src/plugins/bearer/nla/qnlaengine.h2
-rw-r--r--src/plugins/bearer/symbian/3_1/3_1.pro6
-rw-r--r--src/plugins/bearer/symbian/symbian.pri10
-rw-r--r--src/plugins/bearer/symbian/symbian_3/symbian_3.pro6
-rw-r--r--src/plugins/bearer/symbian/symbianengine.cpp90
-rw-r--r--src/plugins/bearer/symbian/symbianengine.h16
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp187
-rw-r--r--src/qt3support/widgets/q3gridview.cpp2
-rw-r--r--src/s60installs/bwins/QtGuiu.def2
-rw-r--r--src/s60installs/bwins/QtNetworku.def2
-rw-r--r--src/s60installs/eabi/QtGuiu.def2
-rw-r--r--src/s60installs/eabi/QtNetworku.def2
-rw-r--r--src/script/api/qscriptcontext.cpp2
-rw-r--r--src/script/api/qscriptengine.cpp50
-rw-r--r--src/script/api/qscriptengine.h67
-rw-r--r--src/script/api/qscriptvalue.cpp12
-rw-r--r--src/script/bridge/qscriptactivationobject.cpp2
-rw-r--r--src/script/bridge/qscriptclassobject.cpp6
-rw-r--r--src/script/bridge/qscriptqobject.cpp10
-rw-r--r--src/script/bridge/qscriptstaticscopeobject.cpp2
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommand.cpp6
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandexecutor.cpp8
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsole.cpp14
-rw-r--r--src/scripttools/debugging/qscriptdebuggerevent.cpp2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerresponse.cpp16
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp2
-rw-r--r--src/sql/drivers/mysql/qsql_mysql.cpp6
-rw-r--r--src/sql/drivers/oci/qsql_oci.cpp14
-rw-r--r--src/sql/drivers/odbc/qsql_odbc.cpp37
-rw-r--r--src/sql/drivers/psql/qsql_psql.cpp4
-rw-r--r--src/sql/drivers/sqlite/qsql_sqlite.cpp4
-rw-r--r--src/sql/drivers/sqlite2/qsql_sqlite2.cpp4
-rw-r--r--src/sql/drivers/tds/qsql_tds.pri4
-rw-r--r--src/sql/kernel/qsqldatabase.cpp8
-rw-r--r--src/src.pro1
-rw-r--r--src/testlib/qabstracttestlogger_p.h2
-rw-r--r--src/testlib/qplaintestlogger.cpp22
-rw-r--r--src/testlib/qplaintestlogger_p.h4
-rw-r--r--src/testlib/qtest.h2
-rw-r--r--src/testlib/qtest_global.h2
-rw-r--r--src/testlib/qtestcase.cpp157
-rw-r--r--src/testlib/qtestfilelogger.cpp16
-rw-r--r--src/testlib/qtestlightxmlstreamer.cpp8
-rw-r--r--src/testlib/qtestlog.cpp55
-rw-r--r--src/testlib/qtestlog_p.h2
-rw-r--r--src/testlib/qtestlogger.cpp27
-rw-r--r--src/testlib/qtestlogger_p.h5
-rw-r--r--src/testlib/qtestxmlstreamer.cpp10
-rw-r--r--src/testlib/qxmltestlogger.cpp27
-rw-r--r--src/testlib/qxmltestlogger_p.h4
-rw-r--r--src/tools/moc/moc.cpp2
-rw-r--r--src/tools/uic3/converter.cpp2
-rw-r--r--src/tools/uic3/domtool.cpp14
-rw-r--r--src/tools/uic3/domtool.h2
-rw-r--r--src/xml/dom/qdom.cpp6
-rw-r--r--src/xmlpatterns/api/qabstractxmlnodemodel.cpp2
-rw-r--r--src/xmlpatterns/api/quriloader.cpp2
-rw-r--r--src/xmlpatterns/api/qvariableloader.cpp14
-rw-r--r--src/xmlpatterns/api/qxmlquery.cpp13
-rw-r--r--src/xmlpatterns/data/qabstractdatetime.cpp2
-rw-r--r--src/xmlpatterns/data/qatomicvalue.cpp2
-rw-r--r--src/xmlpatterns/utils/qautoptr_p.h2
-rw-r--r--tests/auto/collections/tst_collections.cpp11
-rw-r--r--tests/auto/compilerwarnings/test_cpp.txt3
-rw-r--r--tests/auto/compilerwarnings/tst_compilerwarnings.cpp7
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/data/propertiesTransition7.qml29
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp14
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/signalEmission.qml33
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp58
-rw-r--r--tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp2
-rw-r--r--tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml15
-rw-r--r--tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp12
-rw-r--r--tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp7
-rw-r--r--tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp10
-rw-r--r--tests/auto/opengl.pro1
-rw-r--r--tests/auto/qbytearray/tst_qbytearray.cpp18
-rw-r--r--tests/auto/qdom/qdom.pro4
-rw-r--r--tests/auto/qdom/tst_qdom.cpp1
-rw-r--r--tests/auto/qfile/qfile.pro2
-rw-r--r--tests/auto/qfileinfo/qfileinfo.pro1
-rw-r--r--tests/auto/qfontmetrics/qfontmetrics.pro2
-rw-r--r--tests/auto/qfontmetrics/testfont.qrc5
-rw-r--r--tests/auto/qfontmetrics/tst_qfontmetrics.cpp22
-rw-r--r--tests/auto/qfontmetrics/ucs4font.ttfbin0 -> 3076 bytes
-rw-r--r--tests/auto/qglfunctions/qglfunctions.pro7
-rw-r--r--tests/auto/qglfunctions/tst_qglfunctions.cpp244
-rw-r--r--tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp415
-rw-r--r--tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp20
-rw-r--r--tests/auto/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp48
-rw-r--r--tests/auto/qimage/tst_qimage.cpp178
-rw-r--r--tests/auto/qiodevice/tst_qiodevice.cpp59
-rw-r--r--tests/auto/qlocale/test/test.pro2
-rw-r--r--tests/auto/qmatrixnxn/tst_qmatrixnxn.cpp6
-rw-r--r--tests/auto/qmetaobject/tst_qmetaobject.cpp6
-rw-r--r--tests/auto/qmetatype/tst_qmetatype.cpp5
-rw-r--r--tests/auto/qnetworkreply/tst_qnetworkreply.cpp96
-rw-r--r--tests/auto/qobject/tst_qobject.cpp26
-rw-r--r--tests/auto/qpainter/tst_qpainter.cpp46
-rw-r--r--tests/auto/qpluginloader/lib/lib.pro2
-rw-r--r--tests/auto/qpluginloader/tst/tst.pro2
-rw-r--r--tests/auto/qpluginloader/tst_qpluginloader.cpp2
-rw-r--r--tests/auto/qregexp/tst_qregexp.cpp18
-rw-r--r--tests/auto/qscriptengine/tst_qscriptengine.cpp2
-rw-r--r--tests/auto/qsharedpointer/tst_qsharedpointer.cpp8
-rw-r--r--tests/auto/qsslcertificate/more-certificates/cert-large-expiration-date.pem15
-rw-r--r--tests/auto/qsslcertificate/tst_qsslcertificate.cpp15
-rw-r--r--tests/auto/qsslsocket/qsslsocket.pro1
-rw-r--r--tests/auto/qsslsocket/tst_qsslsocket.cpp2
-rw-r--r--tests/auto/qstatictext/tst_qstatictext.cpp127
-rw-r--r--tests/auto/qstring/tst_qstring.cpp12
-rw-r--r--tests/auto/qsvgrenderer/qsvgrenderer.pro4
-rw-r--r--tests/auto/qtextcodec/qtextcodec.pro2
-rw-r--r--tests/auto/qtextcodec/test/test.pro4
-rw-r--r--tests/auto/qtextcodec/tst_qtextcodec.cpp2
-rw-r--r--tests/auto/qtextlayout/tst_qtextlayout.cpp30
-rw-r--r--tests/auto/qtextstream/qtextstream.pro3
-rw-r--r--tests/auto/qtimer/tst_qtimer.cpp44
-rw-r--r--tests/auto/qwidget/tst_qwidget.cpp28
-rw-r--r--tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xml1
-rw-r--r--tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xsd12
-rw-r--r--tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp6
-rw-r--r--tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp52
-rw-r--r--tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp47
-rw-r--r--tests/benchmarks/corelib/tools/qregexp/main.cpp304
-rw-r--r--tests/benchmarks/corelib/tools/qregexp/qregexp.pro11
-rw-r--r--tests/benchmarks/corelib/tools/qregexp/qregexp.qrc6
-rw-r--r--tests/benchmarks/gui/image/blendbench/main.cpp32
-rw-r--r--tests/benchmarks/gui/kernel/qguimetatype/qguimetatype.pro6
-rw-r--r--tests/benchmarks/gui/kernel/qguimetatype/tst_qguimetatype.cpp113
-rw-r--r--tests/benchmarks/gui/kernel/qguivariant/qguivariant.pro6
-rw-r--r--tests/benchmarks/gui/kernel/qguivariant/tst_qguivariant.cpp111
-rw-r--r--tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp72
-rw-r--r--tests/benchmarks/script/qscriptqobject/qscriptqobject.pro7
-rw-r--r--tests/benchmarks/script/qscriptqobject/tst_qscriptqobject.cpp1237
-rw-r--r--tests/manual/inputmethodhints/inputmethodhints.cpp99
-rw-r--r--tests/manual/inputmethodhints/inputmethodhints.h63
-rw-r--r--tests/manual/inputmethodhints/inputmethodhints.pro13
-rw-r--r--tests/manual/inputmethodhints/inputmethodhints.ui138
-rw-r--r--tests/manual/inputmethodhints/main.cpp53
-rw-r--r--tools/activeqt/testcon/changeproperties.cpp6
-rw-r--r--tools/assistant/tools/assistant/bookmarkmanager.cpp2
-rw-r--r--tools/assistant/tools/assistant/helpenginewrapper.cpp4
-rw-r--r--tools/assistant/tools/assistant/preferencesdialog.cpp4
-rw-r--r--tools/assistant/tools/assistant/searchwidget.cpp12
-rw-r--r--tools/configure/configureapp.cpp41
-rw-r--r--tools/configure/configureapp.h2
-rw-r--r--tools/configure/environment.cpp12
-rw-r--r--tools/configure/environment.h4
-rw-r--r--tools/designer/src/components/buddyeditor/buddyeditor.cpp12
-rw-r--r--tools/designer/src/components/formeditor/dpi_chooser.cpp4
-rw-r--r--tools/designer/src/components/formeditor/formeditor.qrc2
-rw-r--r--tools/designer/src/components/formeditor/formwindow.cpp26
-rw-r--r--tools/designer/src/components/formeditor/images/mac/simplifyrichtext.pngbin0 -> 1988 bytes
-rw-r--r--tools/designer/src/components/formeditor/images/win/simplifyrichtext.pngbin0 -> 1933 bytes
-rw-r--r--tools/designer/src/components/formeditor/qdesigner_resource.cpp100
-rw-r--r--tools/designer/src/components/formeditor/qmainwindow_container.cpp2
-rw-r--r--tools/designer/src/components/objectinspector/objectinspectormodel.cpp2
-rw-r--r--tools/designer/src/components/propertyeditor/brushpropertymanager.cpp2
-rw-r--r--tools/designer/src/components/propertyeditor/designerpropertymanager.cpp112
-rw-r--r--tools/designer/src/components/propertyeditor/fontpropertymanager.cpp12
-rw-r--r--tools/designer/src/components/propertyeditor/paletteeditor.cpp14
-rw-r--r--tools/designer/src/components/propertyeditor/propertyeditor.cpp8
-rw-r--r--tools/designer/src/components/signalsloteditor/connectdialog.cpp4
-rw-r--r--tools/designer/src/components/signalsloteditor/signalslot_utils.cpp2
-rw-r--r--tools/designer/src/components/signalsloteditor/signalsloteditor.cpp2
-rw-r--r--tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp10
-rw-r--r--tools/designer/src/components/tabordereditor/tabordereditor.cpp2
-rw-r--r--tools/designer/src/components/taskmenu/button_taskmenu.cpp2
-rw-r--r--tools/designer/src/components/taskmenu/inplace_editor.cpp6
-rw-r--r--tools/designer/src/components/taskmenu/itemlisteditor.cpp40
-rw-r--r--tools/designer/src/components/taskmenu/tablewidgeteditor.cpp12
-rw-r--r--tools/designer/src/components/taskmenu/treewidgeteditor.cpp14
-rw-r--r--tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp2
-rw-r--r--tools/designer/src/designer/assistantclient.cpp2
-rw-r--r--tools/designer/src/designer/qdesigner_settings.cpp2
-rw-r--r--tools/designer/src/lib/shared/actioneditor.cpp18
-rw-r--r--tools/designer/src/lib/shared/actionrepository.cpp2
-rw-r--r--tools/designer/src/lib/shared/connectionedit.cpp6
-rw-r--r--tools/designer/src/lib/shared/formlayoutmenu.cpp6
-rw-r--r--tools/designer/src/lib/shared/formwindowbase.cpp4
-rw-r--r--tools/designer/src/lib/shared/grid.cpp2
-rw-r--r--tools/designer/src/lib/shared/layoutinfo.cpp4
-rw-r--r--tools/designer/src/lib/shared/morphmenu.cpp6
-rw-r--r--tools/designer/src/lib/shared/qdesigner_command.cpp82
-rw-r--r--tools/designer/src/lib/shared/qdesigner_formbuilder.cpp4
-rw-r--r--tools/designer/src/lib/shared/qdesigner_formwindowcommand.cpp2
-rw-r--r--tools/designer/src/lib/shared/qdesigner_menu.cpp8
-rw-r--r--tools/designer/src/lib/shared/qdesigner_menubar.cpp2
-rw-r--r--tools/designer/src/lib/shared/qdesigner_propertycommand.cpp28
-rw-r--r--tools/designer/src/lib/shared/qdesigner_propertysheet.cpp94
-rw-r--r--tools/designer/src/lib/shared/qdesigner_tabwidget.cpp34
-rw-r--r--tools/designer/src/lib/shared/qdesigner_taskmenu.cpp10
-rw-r--r--tools/designer/src/lib/shared/qdesigner_toolbar.cpp6
-rw-r--r--tools/designer/src/lib/shared/qdesigner_toolbox.cpp24
-rw-r--r--tools/designer/src/lib/shared/qdesigner_utils.cpp16
-rw-r--r--tools/designer/src/lib/shared/qdesigner_utils_p.h8
-rw-r--r--tools/designer/src/lib/shared/richtexteditor.cpp202
-rw-r--r--tools/designer/src/lib/shared/richtexteditor_p.h1
-rw-r--r--tools/designer/src/lib/shared/stylesheeteditor.cpp5
-rw-r--r--tools/designer/src/lib/shared/widgetfactory.cpp2
-rw-r--r--tools/designer/src/lib/shared/zoomwidget.cpp2
-rw-r--r--tools/designer/src/lib/uilib/abstractformbuilder.cpp44
-rw-r--r--tools/designer/src/lib/uilib/formbuilder.cpp4
-rw-r--r--tools/designer/src/lib/uilib/formbuilderextra.cpp2
-rw-r--r--tools/designer/src/lib/uilib/properties.cpp20
-rw-r--r--tools/designer/src/lib/uilib/resourcebuilder.cpp6
-rw-r--r--tools/designer/src/uitools/quiloader.cpp28
-rw-r--r--tools/linguist/linguist/formpreviewview.cpp14
-rw-r--r--tools/linguist/linguist/mainwindow.cpp4
-rw-r--r--tools/linguist/linguist/messagemodel.cpp12
-rw-r--r--tools/linguist/phrasebooks/french.qph62
-rw-r--r--tools/linguist/phrasebooks/russian.qph16
-rw-r--r--tools/makeqpf/mainwindow.cpp4
-rw-r--r--tools/qdbus/qdbus/qdbus.cpp8
-rw-r--r--tools/qdbus/qdbusviewer/qdbusviewer.cpp4
-rw-r--r--tools/qdbus/qdbusxml2cpp/qdbusxml2cpp.cpp8
-rw-r--r--tools/qdoc3/codemarker.cpp4
-rw-r--r--tools/qdoc3/codemarker.h3
-rw-r--r--tools/qdoc3/config.h5
-rw-r--r--tools/qdoc3/cppcodemarker.cpp45
-rw-r--r--tools/qdoc3/cppcodemarker.h3
-rw-r--r--tools/qdoc3/ditaxmlgenerator.cpp5
-rw-r--r--tools/qdoc3/generator.cpp7
-rw-r--r--tools/qdoc3/htmlgenerator.cpp243
-rw-r--r--tools/qdoc3/htmlgenerator.h13
-rw-r--r--tools/qdoc3/main.cpp29
-rw-r--r--tools/qdoc3/test/assistant.qdocconf55
-rw-r--r--tools/qdoc3/test/designer.qdocconf3
-rw-r--r--tools/qdoc3/test/linguist.qdocconf3
-rw-r--r--tools/qdoc3/test/qdeclarative.qdocconf55
-rw-r--r--tools/qdoc3/test/qmake.qdocconf3
-rw-r--r--tools/qdoc3/test/qt-api-only.qdocconf8
-rw-r--r--tools/qdoc3/test/qt-build-docs.qdocconf4
-rw-r--r--tools/qdoc3/test/qt-cpp-ignore.qdocconf1
-rw-r--r--tools/qdoc3/test/qt-html-templates.qdocconf21
-rw-r--r--tools/qdoc3/test/qt-html-templates_ja_JP.qdocconf14
-rw-r--r--tools/qdoc3/test/qt-html-templates_zh_CN.qdocconf191
-rw-r--r--tools/qdoc3/test/qt.qdocconf3
-rw-r--r--tools/qml/qml.pro2
-rw-r--r--tools/runonphone/main.cpp3
-rw-r--r--tools/runonphone/ossignalconverter.cpp120
-rw-r--r--tools/runonphone/ossignalconverter.h61
-rw-r--r--tools/runonphone/ossignalconverter_p.h71
-rw-r--r--tools/runonphone/runonphone.pro7
-rw-r--r--tools/shared/qtpropertybrowser/qtvariantproperty.cpp182
-rw-r--r--tools/xmlpatterns/main.cpp14
-rw-r--r--translations/assistant_de.ts345
-rw-r--r--translations/assistant_fr.ts577
-rw-r--r--translations/assistant_ru.ts355
-rw-r--r--translations/assistant_uk.ts969
-rw-r--r--translations/designer_de.ts1380
-rw-r--r--translations/designer_fr.ts2834
-rw-r--r--translations/designer_ru.ts1380
-rw-r--r--translations/designer_sl.ts1557
-rw-r--r--translations/designer_uk.ts5783
-rw-r--r--translations/linguist_de.ts438
-rw-r--r--translations/linguist_fr.ts375
-rw-r--r--translations/linguist_ru.ts443
-rw-r--r--translations/linguist_uk.ts1602
-rw-r--r--translations/qt_de.ts2666
-rw-r--r--translations/qt_fr.ts3733
-rw-r--r--translations/qt_help_de.ts78
-rw-r--r--translations/qt_help_fr.ts173
-rw-r--r--translations/qt_help_ru.ts78
-rw-r--r--translations/qt_help_uk.ts320
-rw-r--r--translations/qt_ru.ts2698
-rw-r--r--translations/qt_sl.ts4583
-rw-r--r--translations/qtconfig_ru.ts177
-rw-r--r--translations/qtconfig_uk.ts717
-rw-r--r--translations/qvfb_ru.ts69
-rw-r--r--translations/qvfb_uk.ts276
874 files changed, 41652 insertions, 26298 deletions
diff --git a/bin/syncqt b/bin/syncqt
index f4879e3..eaaf267 100755
--- a/bin/syncqt
+++ b/bin/syncqt
@@ -690,7 +690,10 @@ my @ignore_for_qt_begin_header_check = ( "qiconset.h", "qconfig.h", "qconfig-dis
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 = ( "$basedir/src/corelib/global" => ( "*qconfig.h" ) );
+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
diff --git a/config.tests/x11/glxfbconfig/glxfbconfig.pro b/config.tests/x11/glxfbconfig/glxfbconfig.pro
index 4705ca6..65f855a 100644
--- a/config.tests/x11/glxfbconfig/glxfbconfig.pro
+++ b/config.tests/x11/glxfbconfig/glxfbconfig.pro
@@ -7,4 +7,4 @@ for(p, QMAKE_LIBDIR_OPENGL) {
}
CONFIG -= qt
-LIBS += -lGL -lGLU
+LIBS += -lGL
diff --git a/config.tests/x11/opengl/opengl.cpp b/config.tests/x11/opengl/opengl.cpp
index 3802365..6c1815d 100644
--- a/config.tests/x11/opengl/opengl.cpp
+++ b/config.tests/x11/opengl/opengl.cpp
@@ -40,11 +40,6 @@
****************************************************************************/
#include <GL/gl.h>
-#include <GL/glu.h>
-
-#ifndef GLU_VERSION_1_2
-# error "Required GLU version 1.2 not found."
-#endif
int main(int, char **)
{
diff --git a/config.tests/x11/opengl/opengl.pro b/config.tests/x11/opengl/opengl.pro
index 5fd41d3..5c3a1c5 100644
--- a/config.tests/x11/opengl/opengl.pro
+++ b/config.tests/x11/opengl/opengl.pro
@@ -8,4 +8,4 @@ for(p, QMAKE_LIBDIR_OPENGL) {
CONFIG -= qt
win32-g++*:LIBS += -lopengl32
-else:LIBS += -lGL -lGLU
+else:LIBS += -lGL
diff --git a/configure b/configure
index 6f84a05..1d7a5ff 100755
--- a/configure
+++ b/configure
@@ -839,6 +839,7 @@ OPT_VERBOSE=no
OPT_HELP=
CFG_SILENT=no
CFG_GRAPHICS_SYSTEM=default
+CFG_RUNTIME_SYSTEM=
CFG_ALSA=auto
CFG_PULSEAUDIO=auto
CFG_COREWLAN=auto
@@ -868,6 +869,7 @@ QT_LFLAGS_MYSQL_R=
QT_CFLAGS_SQLITE=
QT_LFLAGS_SQLITE=
QT_LFLAGS_ODBC="-lodbc"
+QT_LFLAGS_TDS=
# flags for libdbus-1
QT_CFLAGS_DBUS=
@@ -1133,6 +1135,11 @@ while [ "$#" -gt 0 ]; do
shift
VAL=$1
;;
+ -runtimegraphicssystem)
+ VAR="runtimegraphicssystem"
+ shift
+ VAL=$1
+ ;;
-qtlibinfix)
VAR="qtlibinfix"
shift
@@ -1394,11 +1401,18 @@ while [ "$#" -gt 0 ]; do
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
@@ -2203,7 +2217,7 @@ while [ "$#" -gt 0 ]; do
[ "$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"
@@ -2514,10 +2528,18 @@ if [ "$OPT_SHADOW" = "yes" ]; then
# 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"
+ # 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.
+ # A simple "cp -rs" doesn't work on Mac. :(
+ rm -rf "$outpath/mkspecs/features"
+ find "$relpath/mkspecs/features" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
+ find "$relpath/mkspecs/features" -type f | sed "s,^$relpath/,," | xargs -n 1 -I % ln -s "$relpath/%" "$outpath/%"
+
# symlink the doc directory
rm -rf "$outpath/doc"
ln -s "$relpath/doc" "$outpath/doc"
@@ -3799,6 +3821,8 @@ cat << EOF
-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
@@ -4975,23 +4999,24 @@ case "$XPLATFORM" in *symbian*)
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."
@@ -5245,7 +5270,9 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
;;
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
@@ -5508,7 +5535,7 @@ if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "ye
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
@@ -6545,6 +6572,11 @@ if [ "$CFG_GRAPHICS_SYSTEM" = "openvg" ] && [ "$CFG_OPENVG" = "no" ]; then
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..."
@@ -7880,6 +7912,7 @@ if [ "$PLATFORM_QWS" != "yes" ]; then
[ "$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
@@ -7993,6 +8026,13 @@ cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
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"
@@ -8069,9 +8109,6 @@ QT_LIBINFIX = $QT_LIBINFIX
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"
@@ -8142,6 +8179,9 @@ fi
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"
diff --git a/configure.exe b/configure.exe
index 6dfd14e48..c5bff85 100755
--- a/configure.exe
+++ b/configure.exe
Binary files differ
diff --git a/demos/affine/main.cpp b/demos/affine/main.cpp
index 85da546..e14dc6b 100644
--- a/demos/affine/main.cpp
+++ b/demos/affine/main.cpp
@@ -53,7 +53,7 @@ int main(int argc, char **argv)
QStyle *arthurStyle = new ArthurStyle();
xformWidget.setStyle(arthurStyle);
- QList<QWidget *> widgets = qFindChildren<QWidget *>(&xformWidget);
+ QList<QWidget *> widgets = xformWidget.findChildren<QWidget *>();
foreach (QWidget *w, widgets) {
w->setStyle(arthurStyle);
w->setAttribute(Qt::WA_AcceptTouchEvents);
diff --git a/demos/books/bookwindow.cpp b/demos/books/bookwindow.cpp
index 089d5e0..c801283 100644
--- a/demos/books/bookwindow.cpp
+++ b/demos/books/bookwindow.cpp
@@ -64,7 +64,7 @@ BookWindow::BookWindow()
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");
diff --git a/demos/boxes/glbuffers.cpp b/demos/boxes/glbuffers.cpp
index 694d05b..84ab26c 100644
--- a/demos/boxes/glbuffers.cpp
+++ b/demos/boxes/glbuffers.cpp
@@ -42,6 +42,16 @@
#include "glbuffers.h"
#include <QtGui/qmatrix4x4.h>
+
+void qgluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar)
+{
+ const GLdouble ymax = zNear * tan(fovy * M_PI / 360.0);
+ const GLdouble ymin = -ymax;
+ const GLdouble xmin = ymin * aspect;
+ const GLdouble xmax = ymax * aspect;
+ glFrustum(xmin, xmax, ymin, ymax, zNear, zFar);
+}
+
//============================================================================//
// GLTexture //
//============================================================================//
diff --git a/demos/boxes/glbuffers.h b/demos/boxes/glbuffers.h
index 67a4ea6..8c1e209 100644
--- a/demos/boxes/glbuffers.h
+++ b/demos/boxes/glbuffers.h
@@ -58,6 +58,8 @@ if (m_failed || !(assertion)) {
returnStatement; \
}
+void qgluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
+
QT_BEGIN_NAMESPACE
class QMatrix4x4;
QT_END_NAMESPACE
diff --git a/demos/boxes/qtbox.cpp b/demos/boxes/qtbox.cpp
index 3aaf985..e3a5978 100644
--- a/demos/boxes/qtbox.cpp
+++ b/demos/boxes/qtbox.cpp
@@ -324,7 +324,7 @@ void QtBox::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWi
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadMatrixf(moveToRectMatrix);
- gluPerspective(60.0, 1.0, 0.01, 10.0);
+ qgluPerspective(60.0, 1.0, 0.01, 10.0);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
diff --git a/demos/boxes/scene.cpp b/demos/boxes/scene.cpp
index 97953f2..d65af22 100644
--- a/demos/boxes/scene.cpp
+++ b/demos/boxes/scene.cpp
@@ -922,7 +922,7 @@ void Scene::drawBackground(QPainter *painter, const QRectF &)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
- gluPerspective(60.0, width / height, 0.01, 15.0);
+ qgluPerspective(60.0, width / height, 0.01, 15.0);
glMatrixMode(GL_MODELVIEW);
diff --git a/demos/browser/browserapplication.cpp b/demos/browser/browserapplication.cpp
index ed95d32..633307c 100644
--- a/demos/browser/browserapplication.cpp
+++ b/demos/browser/browserapplication.cpp
@@ -231,14 +231,14 @@ void BrowserApplication::loadSettings()
QString standardFontFamily = defaultSettings->fontFamily(QWebSettings::StandardFont);
int standardFontSize = defaultSettings->fontSize(QWebSettings::DefaultFontSize);
QFont standardFont = QFont(standardFontFamily, standardFontSize);
- standardFont = qVariantValue<QFont>(settings.value(QLatin1String("standardFont"), standardFont));
+ standardFont = qvariant_cast<QFont>(settings.value(QLatin1String("standardFont"), standardFont));
defaultSettings->setFontFamily(QWebSettings::StandardFont, standardFont.family());
defaultSettings->setFontSize(QWebSettings::DefaultFontSize, standardFont.pointSize());
QString fixedFontFamily = defaultSettings->fontFamily(QWebSettings::FixedFont);
int fixedFontSize = defaultSettings->fontSize(QWebSettings::DefaultFixedFontSize);
QFont fixedFont = QFont(fixedFontFamily, fixedFontSize);
- fixedFont = qVariantValue<QFont>(settings.value(QLatin1String("fixedFont"), fixedFont));
+ fixedFont = qvariant_cast<QFont>(settings.value(QLatin1String("fixedFont"), fixedFont));
defaultSettings->setFontFamily(QWebSettings::FixedFont, fixedFont.family());
defaultSettings->setFontSize(QWebSettings::DefaultFixedFontSize, fixedFont.pointSize());
diff --git a/demos/browser/browsermainwindow.cpp b/demos/browser/browsermainwindow.cpp
index 8c2ed89..50c2cf8 100644
--- a/demos/browser/browsermainwindow.cpp
+++ b/demos/browser/browsermainwindow.cpp
@@ -670,7 +670,7 @@ void BrowserMainWindow::slotPrivateBrowsing()
" 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);
diff --git a/demos/browser/cookiejar.cpp b/demos/browser/cookiejar.cpp
index 835b61b..d318e3a 100644
--- a/demos/browser/cookiejar.cpp
+++ b/demos/browser/cookiejar.cpp
@@ -186,7 +186,7 @@ void CookieJar::save()
if (cookies.at(i).isSessionCookie())
cookies.removeAt(i);
}
- cookieSettings.setValue(QLatin1String("cookies"), qVariantFromValue<QList<QNetworkCookie> >(cookies));
+ cookieSettings.setValue(QLatin1String("cookies"), QVariant::fromValue<QList<QNetworkCookie> >(cookies));
cookieSettings.beginGroup(QLatin1String("Exceptions"));
cookieSettings.setValue(QLatin1String("block"), m_exceptions_block);
cookieSettings.setValue(QLatin1String("allow"), m_exceptions_allow);
diff --git a/demos/browser/settings.cpp b/demos/browser/settings.cpp
index 5ceca67..d83e6a4 100644
--- a/demos/browser/settings.cpp
+++ b/demos/browser/settings.cpp
@@ -121,8 +121,8 @@ void SettingsDialog::loadFromSettings()
// Appearance
settings.beginGroup(QLatin1String("websettings"));
- fixedFont = qVariantValue<QFont>(settings.value(QLatin1String("fixedFont"), fixedFont));
- standardFont = qVariantValue<QFont>(settings.value(QLatin1String("standardFont"), standardFont));
+ fixedFont = qvariant_cast<QFont>(settings.value(QLatin1String("fixedFont"), fixedFont));
+ standardFont = qvariant_cast<QFont>(settings.value(QLatin1String("standardFont"), standardFont));
standardLabel->setText(QString(QLatin1String("%1 %2")).arg(standardFont.family()).arg(standardFont.pointSize()));
fixedLabel->setText(QString(QLatin1String("%1 %2")).arg(fixedFont.family()).arg(fixedFont.pointSize()));
diff --git a/demos/browser/webview.cpp b/demos/browser/webview.cpp
index 2f9b3e6..2cbd2f1 100644
--- a/demos/browser/webview.cpp
+++ b/demos/browser/webview.cpp
@@ -260,7 +260,7 @@ void WebView::setProgress(int progress)
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;
diff --git a/demos/composition/main.cpp b/demos/composition/main.cpp
index aa8c139..a528dff 100644
--- a/demos/composition/main.cpp
+++ b/demos/composition/main.cpp
@@ -59,7 +59,7 @@ int main(int argc, char **argv)
QStyle *arthurStyle = new ArthurStyle();
compWidget.setStyle(arthurStyle);
- QList<QWidget *> widgets = qFindChildren<QWidget *>(&compWidget);
+ QList<QWidget *> widgets = compWidget.findChildren<QWidget *>();
foreach (QWidget *w, widgets)
w->setStyle(arthurStyle);
compWidget.show();
diff --git a/demos/declarative/snake/snake.qml b/demos/declarative/snake/snake.qml
index 46114f5..b1344af 100644
--- a/demos/declarative/snake/snake.qml
+++ b/demos/declarative/snake/snake.qml
@@ -208,17 +208,30 @@ Rectangle {
Keys.onUpPressed: if (state == "starting" || direction != 2) Logic.scheduleDirection(0);
Keys.onDownPressed: if (state == "starting" || direction != 0) Logic.scheduleDirection(2);
+ Connections {
+ target: startHeartbeatTimer
+ onRunningChanged: {
+ if (startHeartbeatTimer.running)
+ screen.state = "starting";
+ else
+ screen.state = "running"
+ }
+ }
+ Connections {
+ target: heartbeat
+ onRunningChanged: if (!heartbeat.running) screen.state = "";
+ }
+
+
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; }
diff --git a/demos/deform/main.cpp b/demos/deform/main.cpp
index bef075a..c5491b3 100644
--- a/demos/deform/main.cpp
+++ b/demos/deform/main.cpp
@@ -56,7 +56,7 @@ int main(int argc, char **argv)
QStyle *arthurStyle = new ArthurStyle();
deformWidget.setStyle(arthurStyle);
- QList<QWidget *> widgets = qFindChildren<QWidget *>(&deformWidget);
+ QList<QWidget *> widgets = deformWidget.findChildren<QWidget *>();
foreach (QWidget *w, widgets)
w->setStyle(arthurStyle);
diff --git a/demos/deform/pathdeform.cpp b/demos/deform/pathdeform.cpp
index 636d103..d6ac19e 100644
--- a/demos/deform/pathdeform.cpp
+++ b/demos/deform/pathdeform.cpp
@@ -297,7 +297,7 @@ void PathDeformWidget::setStyle( QStyle * style )
{
m_controls->setStyle(style);
- QList<QWidget *> widgets = qFindChildren<QWidget *>(m_controls);
+ QList<QWidget *> widgets = m_controls->findChildren<QWidget *>();
foreach (QWidget *w, widgets)
w->setStyle(style);
}
diff --git a/demos/demos.pro b/demos/demos.pro
index f359bd7..fdc1e4c 100644
--- a/demos/demos.pro
+++ b/demos/demos.pro
@@ -58,7 +58,7 @@ wince*:SUBDIRS += demos_sqlbrowser
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
diff --git a/demos/embeddeddialogs/customproxy.cpp b/demos/embeddeddialogs/customproxy.cpp
index bd56f5a..a715f5e 100644
--- a/demos/embeddeddialogs/customproxy.cpp
+++ b/demos/embeddeddialogs/customproxy.cpp
@@ -113,7 +113,7 @@ QVariant CustomProxy::itemChange(GraphicsItemChange change, const QVariant &valu
{
if (change == ItemChildAddedChange || change == ItemChildRemovedChange) {
if (change == ItemChildAddedChange) {
- currentPopup = qVariantValue<QGraphicsItem *>(value);
+ currentPopup = qvariant_cast<QGraphicsItem *>(value);
currentPopup->setCacheMode(ItemCoordinateCache);
if (scene())
currentPopup->installSceneEventFilter(this);
diff --git a/demos/gradients/main.cpp b/demos/gradients/main.cpp
index 8291e85..6678fa2 100644
--- a/demos/gradients/main.cpp
+++ b/demos/gradients/main.cpp
@@ -52,7 +52,7 @@ int main(int argc, char **argv)
GradientWidget gradientWidget(0);
QStyle *arthurStyle = new ArthurStyle();
gradientWidget.setStyle(arthurStyle);
- QList<QWidget *> widgets = qFindChildren<QWidget *>(&gradientWidget);
+ QList<QWidget *> widgets = gradientWidget.findChildren<QWidget *>();
foreach (QWidget *w, widgets) {
w->setStyle(arthurStyle);
w->setAttribute(Qt::WA_AcceptTouchEvents);
diff --git a/demos/interview/model.cpp b/demos/interview/model.cpp
index 840bc60..88f200d 100644
--- a/demos/interview/model.cpp
+++ b/demos/interview/model.cpp
@@ -109,7 +109,7 @@ QVariant Model::headerData(int section, Qt::Orientation orientation, int role) c
if (role == Qt::DisplayRole)
return QString::number(section);
if (role == Qt::DecorationRole)
- return qVariantFromValue(services);
+ return QVariant::fromValue(services);
return QAbstractItemModel::headerData(section, orientation, role);
}
diff --git a/demos/mainwindow/colorswatch.cpp b/demos/mainwindow/colorswatch.cpp
index aab4f03..d4dbdca 100644
--- a/demos/mainwindow/colorswatch.cpp
+++ b/demos/mainwindow/colorswatch.cpp
@@ -454,7 +454,7 @@ void ColorSwatch::updateContextMenu()
tabMenu->clear();
splitHMenu->clear();
splitVMenu->clear();
- QList<ColorSwatch*> dock_list = qFindChildren<ColorSwatch*>(mainWindow);
+ QList<ColorSwatch*> dock_list = mainWindow->findChildren<ColorSwatch*>();
foreach (ColorSwatch *dock, dock_list) {
// if (!dock->isVisible() || dock->isFloating())
// continue;
@@ -467,7 +467,7 @@ void ColorSwatch::updateContextMenu()
void ColorSwatch::splitInto(QAction *action)
{
QMainWindow *mainWindow = qobject_cast<QMainWindow *>(parentWidget());
- QList<ColorSwatch*> dock_list = qFindChildren<ColorSwatch*>(mainWindow);
+ QList<ColorSwatch*> dock_list = mainWindow->findChildren<ColorSwatch*>();
ColorSwatch *target = 0;
foreach (ColorSwatch *dock, dock_list) {
if (action->text() == dock->objectName()) {
@@ -486,7 +486,7 @@ void ColorSwatch::splitInto(QAction *action)
void ColorSwatch::tabInto(QAction *action)
{
QMainWindow *mainWindow = qobject_cast<QMainWindow *>(parentWidget());
- QList<ColorSwatch*> dock_list = qFindChildren<ColorSwatch*>(mainWindow);
+ QList<ColorSwatch*> dock_list = mainWindow->findChildren<ColorSwatch*>();
ColorSwatch *target = 0;
foreach (ColorSwatch *dock, dock_list) {
if (action->text() == dock->objectName()) {
diff --git a/demos/mainwindow/toolbar.cpp b/demos/mainwindow/toolbar.cpp
index dd12419..a988d85 100644
--- a/demos/mainwindow/toolbar.cpp
+++ b/demos/mainwindow/toolbar.cpp
@@ -232,7 +232,7 @@ void ToolBar::updateMenu()
void ToolBar::order()
{
QList<QAction *> ordered, actions1 = actions(),
- actions2 = qFindChildren<QAction *>(this);
+ actions2 = findChildren<QAction *>();
while (!actions2.isEmpty()) {
QAction *action = actions2.takeFirst();
if (!actions1.contains(action))
diff --git a/demos/pathstroke/main.cpp b/demos/pathstroke/main.cpp
index 534b233..b10b2ea 100644
--- a/demos/pathstroke/main.cpp
+++ b/demos/pathstroke/main.cpp
@@ -53,7 +53,7 @@ int main(int argc, char **argv)
PathStrokeWidget pathStrokeWidget(smallScreen);
QStyle *arthurStyle = new ArthurStyle();
pathStrokeWidget.setStyle(arthurStyle);
- QList<QWidget *> widgets = qFindChildren<QWidget *>(&pathStrokeWidget);
+ QList<QWidget *> widgets = pathStrokeWidget.findChildren<QWidget *>();
foreach (QWidget *w, widgets) {
w->setStyle(arthurStyle);
w->setAttribute(Qt::WA_AcceptTouchEvents);
diff --git a/demos/pathstroke/pathstroke.cpp b/demos/pathstroke/pathstroke.cpp
index 257d02a..308c540 100644
--- a/demos/pathstroke/pathstroke.cpp
+++ b/demos/pathstroke/pathstroke.cpp
@@ -382,7 +382,7 @@ void PathStrokeWidget::setStyle( QStyle * style )
{
m_controls->setStyle(style);
- QList<QWidget *> widgets = qFindChildren<QWidget *>(m_controls);
+ QList<QWidget *> widgets = m_controls->findChildren<QWidget *>();
foreach (QWidget *w, widgets)
w->setStyle(style);
}
diff --git a/demos/qtdemo/examplecontent.cpp b/demos/qtdemo/examplecontent.cpp
index 19be3e0..65c078d 100644
--- a/demos/qtdemo/examplecontent.cpp
+++ b/demos/qtdemo/examplecontent.cpp
@@ -91,8 +91,8 @@ QString ExampleContent::loadDescription()
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)) {
diff --git a/demos/qtdemo/menumanager.cpp b/demos/qtdemo/menumanager.cpp
index 7168b57..5b851b4 100644
--- a/demos/qtdemo/menumanager.cpp
+++ b/demos/qtdemo/menumanager.cpp
@@ -313,7 +313,7 @@ void MenuManager::showDocInAssistant(const QString &name)
// 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)
@@ -449,7 +449,7 @@ void MenuManager::init(MainWindow *window)
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";
}
}
diff --git a/demos/shared/arthurstyle.cpp b/demos/shared/arthurstyle.cpp
index 4be9079..3a2a2cb 100644
--- a/demos/shared/arthurstyle.cpp
+++ b/demos/shared/arthurstyle.cpp
@@ -394,7 +394,7 @@ int ArthurStyle::pixelMetric(PixelMetric pm, const QStyleOption *opt, const QWid
void ArthurStyle::polish(QWidget *widget)
{
if (widget->layout() && qobject_cast<QGroupBox *>(widget)) {
- if (qFindChildren<QGroupBox *>(widget).size() == 0) {
+ if (widget->findChildren<QGroupBox *>().size() == 0) {
widget->layout()->setSpacing(0);
widget->layout()->setMargin(12);
} else {
diff --git a/demos/shared/arthurwidgets.cpp b/demos/shared/arthurwidgets.cpp
index 4182ff1..2eaf96b 100644
--- a/demos/shared/arthurwidgets.cpp
+++ b/demos/shared/arthurwidgets.cpp
@@ -313,7 +313,7 @@ void ArthurFrame::loadSourceFile(const QString &sourceFile)
void ArthurFrame::showSource()
{
// Check for existing source
- if (qFindChild<QTextBrowser *>(this))
+ if (findChild<QTextBrowser *>())
return;
QString contents;
diff --git a/demos/spectrum/3rdparty/fftreal/fftreal.pro b/demos/spectrum/3rdparty/fftreal/fftreal.pro
index c9da205..6305af4 100644
--- a/demos/spectrum/3rdparty/fftreal/fftreal.pro
+++ b/demos/spectrum/3rdparty/fftreal/fftreal.pro
@@ -1,5 +1,7 @@
include(../../spectrum.pri)
+static: error(This library cannot be built for static linkage)
+
TEMPLATE = lib
TARGET = fftreal
diff --git a/demos/spectrum/app/app.pro b/demos/spectrum/app/app.pro
index 1b419db..4fe8b6d 100644
--- a/demos/spectrum/app/app.pro
+++ b/demos/spectrum/app/app.pro
@@ -1,5 +1,7 @@
include(../spectrum.pri)
+static: error(This application cannot be statically linked to the fftreal library)
+
TEMPLATE = app
TARGET = spectrum
diff --git a/demos/spectrum/app/settingsdialog.cpp b/demos/spectrum/app/settingsdialog.cpp
index b5e8459..1f125c9 100644
--- a/demos/spectrum/app/settingsdialog.cpp
+++ b/demos/spectrum/app/settingsdialog.cpp
@@ -65,13 +65,13 @@ SettingsDialog::SettingsDialog(
QAudioDeviceInfo device;
foreach (device, availableInputDevices)
m_inputDeviceComboBox->addItem(device.deviceName(),
- qVariantFromValue(device));
+ QVariant::fromValue(device));
foreach (device, availableOutputDevices)
m_outputDeviceComboBox->addItem(device.deviceName(),
- qVariantFromValue(device));
+ QVariant::fromValue(device));
- m_windowFunctionComboBox->addItem(tr("None"), qVariantFromValue(int(NoWindow)));
- m_windowFunctionComboBox->addItem("Hann", qVariantFromValue(int(HannWindow)));
+ m_windowFunctionComboBox->addItem(tr("None"), QVariant::fromValue(int(NoWindow)));
+ m_windowFunctionComboBox->addItem("Hann", QVariant::fromValue(int(HannWindow)));
m_windowFunctionComboBox->setCurrentIndex(m_windowFunction);
// Initialize default devices
diff --git a/demos/spreadsheet/spreadsheetitem.cpp b/demos/spreadsheet/spreadsheetitem.cpp
index e1f0143..93c82a0 100644
--- a/demos/spreadsheet/spreadsheetitem.cpp
+++ b/demos/spreadsheet/spreadsheetitem.cpp
@@ -72,10 +72,10 @@ QVariant SpreadSheetItem::data(int role) const
if (role == Qt::TextColorRole) {
if (!isNumber)
- return qVariantFromValue(QColor(Qt::black));
+ return QVariant::fromValue(QColor(Qt::black));
else if (number < 0)
- return qVariantFromValue(QColor(Qt::red));
- return qVariantFromValue(QColor(Qt::blue));
+ return QVariant::fromValue(QColor(Qt::red));
+ return QVariant::fromValue(QColor(Qt::blue));
}
if (role == Qt::TextAlignmentRole)
diff --git a/dist/changes-4.6.0 b/dist/changes-4.6.0
index 3e7d33b..2ebdc7c 100644
--- a/dist/changes-4.6.0
+++ b/dist/changes-4.6.0
@@ -177,7 +177,7 @@ QtCore
* Many optimisations.
* Added QVariant::toFloat() and QVariant::toReal().
* Added QVariant(float) constructor.
- * qvariant_cast<QVariant> and qVariantFromValue<QVariant> are now
+ * qvariant_cast<QVariant> and QVariant::fromValue<QVariant> are now
identity functions.
* Added support for math3d types.
diff --git a/dist/changes-4.7.0 b/dist/changes-4.7.0
index 518d362..790aabc 100644
--- a/dist/changes-4.7.0
+++ b/dist/changes-4.7.0
@@ -474,6 +474,9 @@ QtCore:
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.
QtNetwork:
- Qt does no longer provide its own CA bundle, but uses system APIs for
diff --git a/dist/changes-4.8.0 b/dist/changes-4.8.0
index 9d16f11..0c28274 100644
--- a/dist/changes-4.8.0
+++ b/dist/changes-4.8.0
@@ -43,6 +43,12 @@ QtGui
- QTabBar: reduced minimumSizeHint if ElideMode is set.
+ QtOpenGL
+ --------
+ - Removed dependency of OpenGL Utility Library (GLU)
+ - Added QGLFunctions, which provides cross-platform access to the
+ OpenGL/ES 2.0 API.
+
****************************************************************************
* Database Drivers *
diff --git a/doc/doc.pri b/doc/doc.pri
index f748f3d..a5db3c7 100644
--- a/doc/doc.pri
+++ b/doc/doc.pri
@@ -19,8 +19,8 @@ $$unixstyle {
QDOC = cd $$QT_SOURCE_TREE/tools/qdoc3/test && set QT_BUILD_TREE=$$QT_BUILD_TREE&& set QT_SOURCE_TREE=$$QT_SOURCE_TREE&& $$QT_BUILD_TREE/bin/qdoc3.exe $$DOCS_GENERATION_DEFINES
QDOC = $$replace(QDOC, "/", "\\")
}
-ADP_DOCS_QDOCCONF_FILE = qt-build-docs.qdocconf
-QT_DOCUMENTATION = ($$QDOC qt-api-only.qdocconf assistant.qdocconf designer.qdocconf \
+ADP_DOCS_QDOCCONF_FILE = -online qt-build-docs.qdocconf
+QT_DOCUMENTATION = ($$QDOC -creator qt-api-only.qdocconf assistant.qdocconf designer.qdocconf \
linguist.qdocconf qmake.qdocconf qdeclarative.qdocconf) && \
(cd $$QT_BUILD_TREE && \
$$GENERATOR doc-build/html-qt/qt.qhp -o doc/qch/qt.qch && \
diff --git a/doc/src/declarative/animation.qdoc b/doc/src/declarative/animation.qdoc
index 401cf16..7416341 100644
--- a/doc/src/declarative/animation.qdoc
+++ b/doc/src/declarative/animation.qdoc
@@ -29,134 +29,301 @@
\page qdeclarativeanimation.html
\title QML Animation
-Animation in QML is done by animating properties of objects. Properties of type
-real, int, color, rect, point, size, and vector3d can all be animated.
-QML supports three main forms of animation: basic property animation,
-transitions, and property behaviors.
+In QML, animations are created by applying animation objects to object property
+values to gradually change them over time. Animation objects are created from
+the built-in set of animation elements, which can be used to animate various
+types of property values. In addition, animation objects can be applied in
+different ways depending on the context in which they are required.
+
+To create an animation, use an appropriate animation element for the type of
+the property that is to be animated, and apply the animation depending on the
+type of behavior that is required. This page describes the \l {Types of
+Animations} that can be created and the \l {Animation Elements} that are used
+to create these animations.
+
+
+\section1 Types of Animations
+
+An animation is created in different ways depending on the context in which it
+is required. Suppose a \l Rectangle's movement - that is, changes in its \c x
+or \c y property values - should be animated. The semantics of the animation
+differ depending on whether you want to create:
+
+\list
+\o An animation that moves the \l Rectangle as soon as it is created, to a
+known position
+\o An animation that only triggers when the \l Rectangle is moved by external
+sources - for example, when the mouse is clicked, animate the movement to the
+mouse position
+\o An animation that triggers when a particular signal is received
+\o A standalone animation that is not bound to the \l Rectangle's movement, but
+instead can be started and stopped from script as required
+\o An animation that only triggers during \l{QML States}{state changes}
+\endlist
+
+To support these different types of animation methods, QML provides several
+methods for defining an animation. These are:
+
+\list
+\o Creating an \l{Animations as Property Value Sources}{animation using
+property value sources}, to immediately animate a specific property
+\o Using \l{Behavioral Animations}{behavioral animations}, which are triggered
+when a property changes value
+\o \l{Animations in a Signal Handler}{Within a signal handler}, to be triggered
+when a signal is received
+\o As a \l{Standalone Animation}{standalone animation}, that can be
+started/stopped from script and can be rebound to different objects
+\o Using \l{Transitions}{transitions}, to provide animations between \l{QML
+States}{state changes}
+\endlist
+
+These methods are demonstrated below. Notice these examples use
+PropertyAnimation, which is one of several QML elements that can be used to
+create an animation. See the \l {Animation Elements} section further below for
+details.
-\tableofcontents
-\section1 Basic Property Animation
-The simplest form of animation is a \l PropertyAnimation, which can animate all of the property
-types listed above. If the property you are animating is a number or color, you can alternatively use
-NumberAnimation or ColorAnimation. These elements don't add any additional functionality,
-but will help enforce type correctness and are slightly more efficient.
+\section2 Animations as Property Value Sources
+
+An animation is applied as a \l{QDeclarativePropertyValueSource}{property value
+source} using the \e Animation \bold on \e Property syntax. Here is a \l
+Rectangle whose movement is animated using this method:
+
+\snippet doc/src/snippets/declarative/animation-propertyvaluesource.qml 0
+
+This applies a PropertyAnimation to the \l Rectangle's \c x and \c y properties
+to animate from their current values (i.e. zero) to 50, over 1000 milliseconds.
+The animation starts as soon as the \l Rectangle is loaded. To animate from
+specific values rather than the current \c x and \c y values, set the
+PropertyAnimation's \l {PropertyAnimation::}{from} property.
+
+Specifying an animation as a property value source is useful for animating a
+property to a particular value as soon as the object is loaded.
+
+
+\section2 Behavioral Animations
+
+Often an animation should be applied whenever a particular property value
+changes. In these cases, a \l Behavior can be used to specify a default
+animation for a property change. Here is an example:
+
+\snippet doc/src/snippets/declarative/animation-behavioral.qml 0
-A property animation can be specified as a value source using the \e Animation \bold on \e property syntax. This is especially useful
-for repeating animations.
+This \l Rectangle has \l Behavior objects applied to its \c x and \c y
+properties. Whenever these properties change (in this case, when the mouse is
+clicked within the parent \l Item), the PropertyAnimation objects defined
+within the behaviors will be applied to these properties, thus animating the \l
+Rectangle's movement to its new position. Unlike the method of \l {Animations
+as Property Value Sources}{defining an animation as a property value source},
+which creates a one-time animation that animates a property to a known value, a
+behavioral animation is an animation that is triggered \e {in response to} a
+value change.
-The following example creates a bouncing effect:
-\snippet doc/src/snippets/declarative/animation.qml property-anim-1
+Any changes to these properties will trigger their animations. If \c x or \c y
+were bound to other properties, and those properties changed, the animation
+would be triggered. The \l{Behavior::}{enabled} property can be used to force a
+\l Behavior to only apply under certain circumstances.
-\image propanim.gif
+Notice that unlike for property value source animations, the
+PropertyAnimation's \l {PropertyAnimation::}{from} and \l
+{PropertyAnimation::}{to} properties do not need to be defined because these
+values are already provided, respectively, by the \l Rectangle's current values
+and the new values set in the \c onClicked handler. If these properties were
+defined anyway, they would override the default values.
+
+See the \l {declarative/animation/behaviors}{Behaviors example} for a
+demonstration of behavioral animations.
+
+
+\section2 Animations in a Signal Handler
+
+An animation can be created within a signal handler to be triggered when the
+signal is received. For example:
+
+\snippet doc/src/snippets/declarative/animation-signalhandler.qml 0
+
+The PropertyAnimation is triggered when the MouseArea is clicked, animating the
+\c x and \c y properties to a value of 50 over 1000 milliseconds. Since the
+animation is not bound to a particular object or property, it must define the
+\l {PropertyAnimation::}{target} and \l {PropertyAnimation::}{property} (or \l
+{PropertyAnimation::}{targets} and \l{PropertyAnimation::}{properties}) values.
+The \l {PropertyAnimation::}{to} property is also required to specify the new
+\c x and \c y values.
+
+
+\section2 Standalone Animations
+
+Animations can also be created as ordinary QML objects that are not bound to
+any particular objects and properties. An example:
+
+\snippet doc/src/snippets/declarative/animation-standalone.qml 0
+
+A standalone animation is not running by default and must be started explicitly
+using the \l {Animation::}{running} property or \l {Animation::}{start()} and
+\l {Animation::}{stop()} methods. Since the animation is not bound to a
+particular object or property, it must define the \l
+{PropertyAnimation::}{target} and \l {PropertyAnimation::}{property} (or \l
+{PropertyAnimation::}{targets} and \l{PropertyAnimation::}{properties}) values.
+The \l {PropertyAnimation::}{to} property is also required to specify the new
+\c x and \c y values. (The \l {PropertyAnimation::}{from} value can optionally
+be provided.)
+
+Standalone animations are useful when an animation is not targeted towards a
+single object property and the animation should be explicitly started and
+stopped.
+
+
+\section2 Transitions
-When you assign an animation as a value source, you do not need to specify \c property
-or \c target values; they are automatically selected for you. You do, however, need to specify a \c to value.
-An animation specified as a value source will be \c running by default.
+Transitions are used to describe the animations to be applied when a \l {QML
+States}{state change} occurs. To create a transition, define a \l Transition
+object and add it to an item's \l {Item::}{transitions} property. An example:
-For example, here is a rectangle that uses a \l NumberAnimation value source to animate the movement
-from its current position to an \c x value of 50. The animation starts immediately, and only the \c to
-property is required:
+\snippet doc/src/snippets/declarative/animation-transitions.qml 0
-\snippet doc/src/snippets/declarative/animation.qml property-anim-2
+When the \l Rectangle changes to the \e moved state, its \c x and \c y property
+values are changed by the PropertyChanges object, and the PropertyAnimation
+defined within the \l Transition is triggered on these properties. The
+animation will not be applied at any time other than during the state change.
-A property animation can also be specified as a resource that is manipulated from script.
+Notice the example does not set any \l {PropertyAnimation::}{from} and \l
+{PropertyAnimation::}{to} values for the PropertyAnimation. As a convenience,
+these properties are automatically set to the values of \c x and \c y before
+and after the state change, respectively. However, they can be explicitly set
+if these values should be overrided.
-\snippet doc/src/snippets/declarative/animation.qml property-anim-3
+Also notice the PropertyAnimation does not need to specify a \l
+{PropertyAnimation::}{target} object; any \c x or \c y value of any object that
+has changed during the state change will be animated. However, the target can
+be set if the animation should be restricted to certain objects.
-As can be seen, when an animation is used like this (as opposed to as a value source) you will need
-to explicitly set the \c target and \c property to animate. This also the only case where
-an animation needs to be started explictly by either setting the \c running property to
-true or calling the \c start() method.
+The top-level animations in a \l Transition are run in parallel. To run them
+one after the other, use a SequentialAnimation, as shown below in \l {Grouping
+Animations}.
-Animations can be joined into a group using SequentialAnimation and ParallelAnimation.
+See the \l Transition documentation for more information.
-See the \l {declarative/animation/basics}{Animation basics example} for a demonstration of creating and combining multiple animations in QML.
-\target state-transitions
-\section1 Transitions
+\section1 Animation Elements
-\l Transition elements describe the animations to perform when \l{qmlstates}{state} changes occur. A transition
-can only be triggered by a state change.
+To create an animation, choose from one of the built-in QML animation elements.
+While the above examples are demonstrated using PropertyAnimation, they could
+have used other elements depending on the type of the property to be animated
+and whether a single or multiple animations are required.
-For example, a \l Transition could describe how an item moves from its initial position to its new position:
+All animation elements inherit from the \l Animation element. It is not
+possible to create \l Animation objects; instead, this element provides the
+essential properties and methods for animation elements. For example, it allows
+animations to be started and stopped through the \l {Animation::}{running}
+property and the \l{Animation::}{start()} and \l{Animation::}{stop()} methods.
+It can also define the number of \l {Animation::}{loops} for an animation.
-\snippet doc/src/snippets/declarative/animation.qml transitions-1
-As can be seen, transitions make use of the same basic animation classes introduced above.
-In the above example we have specified that we want to animate the \c x and \c y properties, but have not
-specified the objects to animate or the \c to values. By default these values are supplied by the framework;
-the animation will animate any \c targets whose \c x and \c y have changed, and the \c to values will be those
-defined in the end state. You can always supply explicit values to override these implicit values when needed.
+\section2 Property Animation Elements
-\snippet doc/src/snippets/declarative/animation.qml transitions-2
+PropertyAnimation is the most basic animation element for animating a property.
+It can be used to animate \c real, \c int, \c color, \c rect, \c point, \c size, and
+\c vector3d properties. It is inherited by NumberAnimation, ColorAnimation,
+RotationAnimation and Vector3dAnimation: NumberAnimation provides a more
+efficient implementation for animating \c real and \c int properties, and
+Vector3dAnimation does the same for \c vector3d properties. ColorAnimation
+and RotationAnimation provide more specific attributes for animating color
+and rotation changes.
-QML transitions have selectors to determine which state changes a transition should apply to.
-The following transition will only be triggered when we enter into the \c "details" state.
-(The "*" value is a wildcard value that specifies the transition should be applied when changing
-from \e any state to the "details" state.)
+A ColorAnimation allows color values for the \l {ColorAnimation::}{from}
+and \l {ColorAnimation::}{to} properties. The
+following animates the rectangle's \l {Rectangle::color} property:
-\code
-Transition {
- from: "*"
- to: "details"
- ...
-}
-\endcode
+\snippet doc/src/snippets/declarative/animation-elements.qml color
-Transitions can happen in parallel, in sequence, or in any combination of the two. By default, the top-level
-animations in a transition will happen in parallel. The following example shows a rather complex transition
-making use of both sequential and parallel animations:
+RotationAnimation allows a rotation's direction to be specified. The following
+animates the rectangle's \l {Item::rotation} property:
-\snippet doc/src/snippets/declarative/animation.qml transitions-3
+\snippet doc/src/snippets/declarative/animation-elements.qml rotation
+In addition, the following specialized animation elements are available:
-See \l {declarative/animation/states}{States and Transitions example} for a simple example of how transitions can be applied.
+\list
+\o SmoothedAnimation: a specialized NumberAnimation that provides smooth
+changes in animation when the target value changes
+\o SpringAnimation: provides a spring-like animation with specialized
+attributes such as \l {SpringAnimation::}{mass},
+\l{SpringAnimation::}{damping} and \l{SpringAnimation::}{epsilon}
+\o ParentAnimation: used for animating a parent change (see ParentChange)
+\o AnchorAnimation: used for animating an anchor change (see AnchorChanges)
+\endlist
+See their respective documentation pages for more details.
-\section1 Property Behaviors
-A property \l {Behavior}{behavior} specifies a default animation to run whenever the property's value changes, regardless
-of what caused the change. The \c enabled property can be used to force a \l Behavior
-to only apply under certain circumstances.
+\section3 Easing
+
+Any PropertyAnimation-based animations can specify \l
+{PropertyAnimation::easing.type}{easing attributes} to control the
+easing curve applied when a property value is animated. These control the
+effect of the animation on the property value, to provide visual effects like
+bounce, acceleration and deceleration.
+
+For example, this modified version of an \l {Animations as Property Value
+Sources}{earlier example} uses \c Easing.OutBounce to create a bouncing effect
+when the animation reaches its target value:
+
+\snippet doc/src/snippets/declarative/animation-easing.qml 0
+
+The \l{declarative/animation/easing}{easing example} visually demonstrates each
+of the different easing types.
+
+\section2 Grouping Animations
+
+Multiple animations can be combined into a single animation using one of the
+animation group elements: ParallelAnimation or SequentialAnimation. As their
+names suggest, animations in a ParallelAnimation are run at the same time,
+while animations in a SequentialAnimation are run one after the other.
+
+To run multiple animations, define the animations within an animation group.
+The following example creates a SequentialAnimation that runs three animations
+one after the other: a NumberAnimation, a PauseAnimation and another
+NumberAnimation. The SequentialAnimation is applied as a \l{Animations as
+Property Value Sources}{property value source animation} on the image's \c y
+property, so that the animation starts as soon as the image is loaded, moving
+the image up and down:
+
+\snippet doc/src/snippets/declarative/animation-groups.qml 0
+\image propanim.gif
+
+Since the SequentialAnimation is applied to the \c y property, the individual
+animations within the group are automatically applied to the \c y property as
+well; it is not required to set their \l{PropertyAnimation::}{properties}
+values to a particular property.
-In the following snippet, we specify that we want the \c x position of \c redRect to be animated
-whenever it changes. The animation will last 300 milliseconds and use an \l{PropertyAnimation::easing.type}{Easing.InOutQuad} easing curve.
+Animation groups can be nested. Here is a rather complex animation making use
+of both sequential and parallel animations:
-\snippet doc/src/snippets/declarative/animation.qml behavior
+\snippet doc/src/snippets/declarative/animation-groups.qml 1
-Like using an animation as a value source, when used in a \l Behavior and animation does not need to specify
-a \c target or \c property.
+Once individual animations are placed into a SequentialAnimation or
+ParallelAnimation, they can no longer be started and stopped independently. The
+sequential or parallel animation must be started and stopped as a group.
-To trigger this behavior, we could enter a state that changes \c x:
+See the \l {declarative/animation/basics}{Animation basics example} for a
+demonstration of creating and combining multiple animations in QML.
-\qml
-State {
- name: "myState"
- PropertyChanges {
- target: redRect
- x: 200
- ...
- }
-}
-\endqml
-Or, update \c x from a script:
-\qml
-MouseArea {
- ....
- onClicked: redRect.x = 24;
-}
-\endqml
+\section2 Other Animation Elements
-If \c x were bound to another property, triggering the binding would also trigger the behavior.
+In addition, QML provides several other elements useful for animation:
-If a state change has a transition animation matching a property with a \l Behavior, the transition animation
-will override the \l Behavior for that state change.
+\list
+\o PauseAnimation: enables pauses during animations
+\o ScriptAction: allows JavaScript to be executed during an animation, and can
+be used together with StateChangeScript to reused existing scripts
+\o PropertyAction: changes a property \e immediately during an animation,
+without animating the property change
+\endlist
-The \l {declarative/animation/behaviors}{Behaviors example} shows how behaviors can be used to provide animations.
+See their respective documentation pages for more details.
*/
diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc
index 217e372..ce35f26 100644
--- a/doc/src/declarative/declarativeui.qdoc
+++ b/doc/src/declarative/declarativeui.qdoc
@@ -27,7 +27,7 @@
/*!
\title Qt Quick
-\page declarativeui.html
+\page qtquick.html
\brief Qt Quick provides a declarative framework for building highly
dynamic, custom user interfaces.
@@ -41,11 +41,10 @@ and netbooks. Qt Quick consists of the QtDeclarative C++ module, QML, and
the integration of both of these into the Qt Creator IDE. Using the QtDeclarative
C++ module, you can load and interact with QML files from your Qt application.
-QML is an extension to \l
-{http://www.ecma-international.org/publications/standards/Ecma-262.htm}
-{JavaScript}, that provides a mechanism to declaratively build an
-object tree of \l {QML Elements}{QML elements}. QML improves the
-integration between JavaScript and Qt's existing QObject based type
+QML provides mechanisms to declaratively build an object tree using
+\l {QML Elements}{QML elements}. QML improves the integration between
+\l {http://www.ecma-international.org/publications/standards/Ecma-262.htm}{JavaScript}
+and Qt's existing QObject based type
system, adds support for automatic \l {Property Binding}{property
bindings} and provides \l {Network Transparency}{network transparency}
at the language level.
@@ -87,11 +86,11 @@ application or to build completely new applications. QML is fully \l
\o \l {qdeclarativemodules.html}{Modules}
\o \l {Extending types from QML}
\o \l {qdeclarativedynamicobjects.html}{Dynamic Object Creation}
-\o \l {qmlruntime.html}{The Qt Declarative Runtime}
\endlist
\section1 Using QML with C++
\list
+\o \l {qmlruntime.html}{The Qt Declarative Runtime}
\o \l {Using QML in C++ Applications}
\o \l {Integrating QML with existing Qt UI code}
\o \l {Tutorial: Writing QML extensions with C++}
diff --git a/doc/src/declarative/elements.qdoc b/doc/src/declarative/elements.qdoc
index c2930b3..c008404 100644
--- a/doc/src/declarative/elements.qdoc
+++ b/doc/src/declarative/elements.qdoc
@@ -114,6 +114,7 @@ The following table lists the QML elements provided by the \l {QtDeclarative}{Qt
\row \o \l {Component} \o Encapsulate QML items as a component
\row \o \l {Timer} \o Provides timed triggers
\row \o \l {QML:QtObject} {QtObject} \o Basic element containing only the objectName property
+\row \o \l {QML:Qt} {Qt} \o The QML global Qt object provides useful enums and functions from Qt.
\row \o \l {WorkerScript} \o Enables the use of threads in QML
\row \o \l {Loader} \o Controls the loading of items or components
\row \o \l {Repeater} \o Uses a model to create multiples of components
diff --git a/doc/src/declarative/example-slideswitch.qdoc b/doc/src/declarative/example-slideswitch.qdoc
index f056892..1a40f14 100644
--- a/doc/src/declarative/example-slideswitch.qdoc
+++ b/doc/src/declarative/example-slideswitch.qdoc
@@ -115,7 +115,7 @@ For more information on scripts see \l{Integrating JavaScript}.
At this point, when the switch toggles between the two states the knob will instantly change its \c x position between 1 and 78.
In order for the the knob to move smoothly we add a transition that will animate the \c x property with an easing curve for a duration of 200ms.
-For more information on transitions see \l{state-transitions}{QML Transitions}.
+For more information on transitions see \l{qdeclarativeanimation.html#transitions}{QML Transitions}.
\section1 Usage
The switch can be used in a QML file, like this:
diff --git a/doc/src/declarative/modules.qdoc b/doc/src/declarative/modules.qdoc
index 9e51a40..467b7d0 100644
--- a/doc/src/declarative/modules.qdoc
+++ b/doc/src/declarative/modules.qdoc
@@ -302,5 +302,13 @@ For examples of \c qmldir files for plugins, see the
\l {declarative/cppextensions/plugins}{Plugins} example and
\l {Tutorial: Writing QML extensions with C++}.
+
+\section1 Debugging
+
+The \c QML_IMPORT_TRACE environment variable can be useful for debugging
+when there are problems with finding and loading modules. See
+\l{Debugging module imports} for more information.
+
+
*/
/
diff --git a/doc/src/declarative/qdeclarativestates.qdoc b/doc/src/declarative/qdeclarativestates.qdoc
index 0b91756..274040a 100644
--- a/doc/src/declarative/qdeclarativestates.qdoc
+++ b/doc/src/declarative/qdeclarativestates.qdoc
@@ -84,18 +84,34 @@ Rectangle.
\snippet doc/src/snippets/declarative/states.qml 0
-A \l State item defines all the changes to be made in the new state. You
+The \l State item defines all the changes to be made in the new state. It
could specify additional properties to be changed, or create additional
-PropertyChanges for other objects. (Note that a \l State can modify the
-properties of other objects, not just the object that owns the state.)
+PropertyChanges for other objects. It can also modify the properties of other
+objects, not just the object that owns the state. For example:
-For example:
+\qml
+Rectangle {
+ ...
+ states: [
+ State {
+ name: "moved"
+ PropertyChanges { target: myRect; x: 50; y: 50; color: "blue" }
+ PropertyChanges { target: someOtherItem; width: 1000 }
+ }
+ ]
+}
+\endqml
+
+As a convenience, if an item only has one state, its \l {Item::}{states}
+property can be defined as a single \l State, without the square-brace list
+syntax:
\qml
-State {
- name: "moved"
- PropertyChanges { target: myRect; x: 50; y: 50; color: "blue" }
- PropertyChanges { target: someOtherItem; width: 1000 }
+Item {
+ ...
+ states: State {
+ ...
+ }
}
\endqml
@@ -118,54 +134,61 @@ transitions between them.
Of course, the \l Rectangle in the example above could have simply been moved
by setting its position to (50, 50) in the mouse area's \c onClicked handler.
-However, aside from enabling batched property changes, the use of states allows
-an item to revert to its \e {default state}, which contains all of the items'
-initial property values before they were modified in a state change.
+However, aside from enabling batched property changes, one of the features of
+QML states is the ability of an item to revert to its \e {default state}.
+The default state contains all of an item's initial property values before
+they were modified in a state change.
-The default state is specified by an empty string. If the MouseArea in the
-above example was changed to this:
+For example, suppose the \l Rectangle should move to (50,50) when the mouse is
+pressed, and then move back to its original position when the mouse is
+released. This can be achieved by using the \l {State::}{when} property,
+like this:
-\qml
-MouseArea {
- anchors.fill: parent
- onClicked: myRect.state == 'moved' ? myRect.state = "" : myRect.state = 'moved';
-}
-\endqml
-
-This would toggle the \l Rectangle's state between the \e moved and \e default
-states when clicked. The properties can be reverted to their initial
-values without requiring the definition of another \l State that defines these
-value changes.
+\qml
+Rectangle {
+ ...
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ }
+ states: State {
+ name: "moved"; when: mouseArea.pressed
+ ...
+ }
+}
+\endqml
-\section1 The "when" property
+The \l {State::}{when} property is set to an expression that evaluates to
+\c true when the item should be set to that state. When the mouse is pressed,
+the state is changed to \e moved. When it is released, the item reverts to its
+\e default state, which defines all of the item's original property values.
-The \l {State::}{when} property is useful for specifying when a state should be
-applied. This can be set to an expression that evaluates to \c true when an
-item should change to a particular state.
+Alternatively, an item can be explicitly set to its default state by setting its
+\l {Item::}{state} property to an empty string (""). For example, instead of
+using the \l {State::}{when} property, the above code could be changed to:
-If the above example was changed to this:
-
\qml
Rectangle {
...
MouseArea {
- id: mouseArea
anchors.fill: parent
+ onPressed: myRect.state = 'moved';
+ onReleased: myRect.state = '';
}
states: State {
- name: "moved"; when: mouseArea.pressed
+ name: "moved"
...
}
+}
\endqml
-The \l Rectangle would automatically change to the \e moved state when the
-mouse is pressed, and revert to the default state when it is released. This is
-simpler (and a better, more declarative method) than creating \c onPressed
-and \c onReleased handlers in the MouseArea to set the current state.
+Obviously it makes sense to use the \l {State::}{when} property when possible
+as it provides a simpler (and a better, more declarative) solution than
+assigning the state from signal handlers.
\section1 Animating state changes
diff --git a/doc/src/declarative/qtdeclarative.qdoc b/doc/src/declarative/qtdeclarative.qdoc
index 413eb59..b4f4c83 100644
--- a/doc/src/declarative/qtdeclarative.qdoc
+++ b/doc/src/declarative/qtdeclarative.qdoc
@@ -48,7 +48,7 @@
\endcode
For more information on the Qt Declarative module, see the
- \l{declarativeui.html}{Qt Quick} documentation.
+ \l{Qt Quick} documentation.
*/
diff --git a/doc/src/demos/spectrum.qdoc b/doc/src/demos/spectrum.qdoc
new file mode 100644
index 0000000..d5a3f85
--- /dev/null
+++ b/doc/src/demos/spectrum.qdoc
@@ -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 documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in a
+** written agreement between you and Nokia.
+**
+** GNU Free Documentation License
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of this
+** file.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/spectrum
+ \title Spectrum Analyzer
+
+ The Spectrum Analyzer demo shows how the \l{QtMultimedia Module} can be
+ used in Qt applications to capture and then play back an audio stream.
+
+ \image spectrum-demo.png
+
+ Because QtMultimedia allows the application to access the raw audio
+ stream, the data can either be inspected or modified by the application.
+ The Spectrum Analyzer demo displays three pieces of information while
+ audio is being either captured or played back:
+
+ \list
+ \o Information about the raw audio stream, shown in the uppermost widget:
+ \list
+ \o The amount of data currently in the buffer, shown in blue
+ \o The segment of data which was most recently analysed to compute
+ the frequency spectrum, shown in green
+ \o The raw audio waveform, shown in white and scrolling from right to
+ left
+ \endlist
+ \o A representation of the frequency spectrum, shown at the lower left
+ \o The current RMS level of the audio stream, and the recent 'high
+ watermark' level, shown at the lower right
+ \endlist
+
+ Spectrum analysis is performed by calculating the Fast Fourier Transform
+ (FFT) of a segment of audio data. An open-source library,
+ \l{http://ldesoras.free.fr/prod.html}{FFTReal}, against which the
+ application is dynamically linked, is used to compute the transform.
+*/
+
diff --git a/doc/src/deployment/deployment.qdoc b/doc/src/deployment/deployment.qdoc
index 4573f3c..00771ed 100644
--- a/doc/src/deployment/deployment.qdoc
+++ b/doc/src/deployment/deployment.qdoc
@@ -155,7 +155,7 @@
\row \o QtWebKit \o WebKit
\o WebKit is licensed under the GNU LGPL version 2 or later.
This has implications for developers of closed source applications.
- Please see \l{QtWebKit Module#License Information}{the QtWebKit module
+ Please see \l{WebKit in Qt#License Information}{the QtWebKit module
documentation} for more information.
\row \o \l{Phonon Module}{Phonon} \o Phonon
@@ -1458,8 +1458,10 @@
/*!
\page deployment-symbian.html
\contentspage Deploying Qt Applications
+ \ingroup qtsymbian
+ \title Deploying an Application on the Symbian Platform
- \title Deploying an Application on the Symbian platform
+ \section1 Overview
Applications are deployed to Symbian devices in signed \c .sis package files.
The \c .sis file content is controlled with \c .pkg files. The \c .pkg file contains a set
@@ -1469,10 +1471,17 @@
to end-users some changes are needed. This document describes what changes are
typically needed and how to implement them.
+ \section1 Requirements
+
+ Download the latest release of the Smart Installer from
+ \l{http://get.qt.nokia.com/nokiasmartinstaller/}, and install it on top
+ of the Qt package.
+
\section1 Static Linking
- Qt for the Symbian platform does currently not support static linking of
- Qt libraries.
+ Qt for the Symbian platform does not currently support static linking of
+ Qt libraries with application binaries. You will need to build shared
+ libraries as described below and link your application with them.
\section1 Shared Libraries
@@ -1518,7 +1527,7 @@
S60 3rd edition FP1, S60 3rd edition FP2 and S60 5th edition devices.
Now we are ready to compile the application and create the application
- deployment file. Run \c qmake to create Symbian specific makefiles, resources (\.rss)
+ deployment file. Run \c qmake to create Symbian specific makefiles, resources (\c .rss)
and deployment packaging files (\c .pkg). And do build to create the
application binaries and resources.
@@ -1548,4 +1557,14 @@
For more information about creating a \c .sis file and installing it to device see also
\l {The Symbian platform - Introduction to Qt#Installing your own applications}{here}.
+ \section1 Further Reading
+
+ This document aims to cover the common case for developers who want to
+ deploy Qt applications on devices using the Smart Installer. It does not
+ aim to cover every possible way of installing applications, Qt and other
+ dependencies on a device.
+
+ A wider selection of deployment methods is described in the
+ \l{Deploying a Qt Application article} on the Symbian Foundation
+ Developer Wiki.
*/
diff --git a/doc/src/development/debug.qdoc b/doc/src/development/debug.qdoc
index 36970ee..9e881d1 100644
--- a/doc/src/development/debug.qdoc
+++ b/doc/src/development/debug.qdoc
@@ -49,7 +49,7 @@
The basic stuff you need to know about debug libraries and
frameworks is found at developer.apple.com in:
\l{http://developer.apple.com/technotes/tn2004/tn2124.html#SECDEBUGLIB}
- {Apple Technicle Note TN2124} Qt follows that.
+ {Apple Technical Note TN2124}.
When you build Qt, frameworks are built by default, and inside the
framework you will find both a release and a debug version (e.g.,
diff --git a/doc/src/development/developing-with-qt.qdoc b/doc/src/development/developing-with-qt.qdoc
index ffc5a8e..b88fe3f 100644
--- a/doc/src/development/developing-with-qt.qdoc
+++ b/doc/src/development/developing-with-qt.qdoc
@@ -27,12 +27,22 @@
/*!
\page developing-with-qt.html
- \title Cross Platform Development with Qt
+
+ \title Cross-platform & Platform-specific Development
+ Qt allows you to write advanced applications and UIs once, and deploy them
+ across desktop and embedded operating systems without rewriting the source
+ code. The top section of this page provides an overview of the tools and
+ techniques used in Qt application development. Still, you might want to add
+ platform-specific features to your code. The bottom section of the page
+ links to documents that describe platform-specific features provided by Qt,
+ and discuss issues related to particular platforms and environments.
+
+ \section1 Cross-platform Development with Qt
Qt is provided with a set of build tools to help developers automate
the process of building and installing Qt applications.
- \table 100%
+ \table
\header \o Development \o Cross-Platform Issues \o Specific Tools
\row
\o
@@ -57,4 +67,49 @@
\o \l {Resource Compiler (rcc)}
\endlist
\endtable
-*/
+
+ \section1 Platform-specific Development with Qt
+
+ These documents describe platform-specific features provided by Qt, and
+ discuss issues related to particular platforms and environments.
+
+ \table
+ \row
+ \o
+ \list
+ \o \l {Calling Qt Functions From Unix Signal Handlers}
+ \o \l {Compiler Notes}
+ \o \l {Developing Qt Applications for Mac OS X}
+ \o \l {Known Issues}
+ \o \l {Platform Notes}
+ \o \l {Platform Notes - Symbian}
+ \o \l {ActiveX in Qt}
+ \o \l {Qt for Embedded Linux Classes}
+ \o \l {Qt for Embedded Platforms}
+ \o \l {Qt for Mac OS X - Specific Issues}
+ \o \l {Qt is Mac OS X Native}
+ \o \l {Supported Platforms}
+ \o \l {The qtmain Library}
+ \o \l {Window System Specific Notes}
+ \endlist
+ \o
+ \list
+ \o Workaround to make it work.
+ \o Information about the C++ compilers and tools used to build Qt.
+ \o Information for developing Qt applications for Mac OS X
+ \o A summary of known issues in this Qt version at the time of release.
+ \o Information about the platforms on which Qt can be used.
+ \o Information about the state of support for the Symbian platform.
+ \o Qt API's for using ActiveX controls, servers, and COM.
+ \o Classes that are specific to Qt for Embedded Linux.
+ \o Documents related to Qt for Embedded Platforms.
+ \o A description of issues with Qt that are specific to Mac OS X.
+ \o An explanation of Qt's native features on Mac OS X.
+ \o The platforms supported by Nokia for Qt.
+ \o Describes the use and license of the qtmain helper library.
+ \o Collections of notes about Qt implementations on different window systems.
+ \endlist
+ \endtable
+
+
+*/ \ No newline at end of file
diff --git a/doc/src/development/qmake-manual.qdoc b/doc/src/development/qmake-manual.qdoc
index 0fdeff8..baa30fc 100644
--- a/doc/src/development/qmake-manual.qdoc
+++ b/doc/src/development/qmake-manual.qdoc
@@ -3015,6 +3015,13 @@ For example:
\snippet doc/src/snippets/code/doc_src_qmake-manual.qdoc 150
+ \target SYMBIAN_VERSION
+ \section1 SYMBIAN_VERSION
+
+ \e {This is only used on the Symbian platform.}
+
+ Contains the version number of the underlying Symbian SDK; e.g. "9.2" or "Symbian3".
+
\target TARGET
\section1 TARGET
diff --git a/doc/src/examples/customtype.qdoc b/doc/src/examples/customtype.qdoc
index e003129..0765c5f 100644
--- a/doc/src/examples/customtype.qdoc
+++ b/doc/src/examples/customtype.qdoc
@@ -117,7 +117,7 @@
\snippet examples/tools/customtype/main.cpp storing a custom value
- Alternatively, the qVariantFromValue() and qVariantSetValue() functions
+ Alternatively, the QVariant::fromValue() and qVariantSetValue() functions
can be used if you are using a compiler without support for member template
functions.
diff --git a/doc/src/examples/imagegestures.qdoc b/doc/src/examples/imagegestures.qdoc
index 57479d8..3d4e467 100644
--- a/doc/src/examples/imagegestures.qdoc
+++ b/doc/src/examples/imagegestures.qdoc
@@ -32,8 +32,6 @@
This example shows how to enable gestures for a widget and use gesture input
to perform actions.
- \image imagegestures-example.png Screenshot of the Image Gestures example.
-
We use two classes to create the user interface for the application: \c MainWidget
and \c ImageWidget. The \c MainWidget class is simply used as a container for the
\c ImageWidget class, which we will configure to accept gesture input. Since we
diff --git a/doc/src/examples/qml-examples.qdoc b/doc/src/examples/qml-examples.qdoc
index 8d3aa25..0d191c9 100644
--- a/doc/src/examples/qml-examples.qdoc
+++ b/doc/src/examples/qml-examples.qdoc
@@ -562,7 +562,7 @@
\example declarative/ui-components/dialcontrol
This example shows how to create a dial-type control. It combines
- \l Image elements with \l Rotation transforms and \l SpringAnimatino behaviors
+ \l Image elements with \l Rotation transforms and \l SpringAnimation behaviors
to produce an interactive speedometer-type dial.
\image qml-dialcontrol-example.png
diff --git a/doc/src/examples/simpletreemodel.qdoc b/doc/src/examples/simpletreemodel.qdoc
index c34f4af..88aa27a 100644
--- a/doc/src/examples/simpletreemodel.qdoc
+++ b/doc/src/examples/simpletreemodel.qdoc
@@ -32,17 +32,19 @@
The Simple Tree Model example shows how to create a basic, read-only
hierarchical model to use with Qt's standard view classes. For a
description of simple non-hierarchical list and table models, see the
- \l{model-view-programming.html}{Model/View Programming} overview.
+ \l{Model/View Programming} overview.
\image simpletreemodel-example.png
- Qt's model/view architecture provides a standard way for views to manipulate
- information in a data source, using an abstract model of the data to
- simplify and standardize the way it is accessed. Simple models represent
- data as a table of items, and allow views to access this data via an
- \l{model-view-model.html}{index-based} system. More generally, models can
- be used to represent data in the form of a tree structure by allowing each
- item to act as a parent to a table of child items.
+ Qt's model/view architecture provides a standard way for views to
+ manipulate information in a data source, using an abstract model
+ of the data to simplify and standardize the way it is accessed.
+ Simple models represent data as a table of items, and allow views
+ to access this data via an
+ \l{Model/View Programming#model-indexes} {index-based}
+ system. More generally, models can be used to represent data in
+ the form of a tree structure by allowing each item to act as a
+ parent to a table of child items.
Before attempting to implement a tree model, it is worth considering whether
the data is supplied by an external source, or whether it is going to be
diff --git a/doc/src/examples/spinboxdelegate.qdoc b/doc/src/examples/spinboxdelegate.qdoc
index 49e3295..44308ca 100644
--- a/doc/src/examples/spinboxdelegate.qdoc
+++ b/doc/src/examples/spinboxdelegate.qdoc
@@ -42,8 +42,8 @@
\image spinboxdelegate-example.png
This concepts behind this example are covered in the
- \l{model-view-delegate.html}{Delegate Classes} chapter of the
- \l{model-view-programming.html}{Model/View Programming} overview.
+ \l{Model/View Programming#Delegate Classes}{Delegate Classes} chapter
+ of the \l{Model/View Programming} overview.
\section1 SpinBoxDelegate Class Definition
diff --git a/doc/src/external-resources.qdoc b/doc/src/external-resources.qdoc
index 61c9da2..e901124c 100644
--- a/doc/src/external-resources.qdoc
+++ b/doc/src/external-resources.qdoc
@@ -416,5 +416,15 @@
/*!
\externalpage http://opensource.org/licenses/bsd-license.php
- \title BSD License
+ \title New and Modified BSD Licenses
+*/
+
+/*!
+ \externalpage http://developer.symbian.org/wiki/index.php/Platform_Security_%28Fundamentals_of_Symbian_C%2B%2B%29#Self-Signed_Applications
+ \title Symbian Platform Security
+*/
+
+/*!
+ \externalpage http://developer.symbian.org/wiki/index.php/Deploying_a_Qt_Application
+ \title Deploying a Qt Application article
*/
diff --git a/doc/src/files-and-resources/resources.qdoc b/doc/src/files-and-resources/resources.qdoc
index b0b0e3c..3177af8 100644
--- a/doc/src/files-and-resources/resources.qdoc
+++ b/doc/src/files-and-resources/resources.qdoc
@@ -54,7 +54,7 @@
The resource system is based on tight cooperation between \l qmake,
\l rcc (Qt's resource compiler), and QFile. It obsoletes Qt 3's
\c qembed tool and the
- \l{http://qt.nokia.com/doc/qq/qq05-iconography.html#imagestorage}{image
+ \l{http://doc.qt.nokia.com/qq/qq05-iconography.html}{image
collection} mechanism.
\section1 Resource Collection Files (\c{.qrc})
diff --git a/doc/src/frameworks-technologies/containers.qdoc b/doc/src/frameworks-technologies/containers.qdoc
index 58061ad..797326e 100644
--- a/doc/src/frameworks-technologies/containers.qdoc
+++ b/doc/src/frameworks-technologies/containers.qdoc
@@ -43,7 +43,7 @@
/*!
\page containers.html
- \title Generic Containers
+ \title Container Classes
\ingroup technology-apis
\ingroup groups
\keyword container class
diff --git a/doc/src/frameworks-technologies/dbus-adaptors.qdoc b/doc/src/frameworks-technologies/dbus-adaptors.qdoc
index 181a8d9..f193a67 100644
--- a/doc/src/frameworks-technologies/dbus-adaptors.qdoc
+++ b/doc/src/frameworks-technologies/dbus-adaptors.qdoc
@@ -30,7 +30,6 @@
\title Using QtDBus Adaptors
\brief How to create and use DBus adaptors in Qt.
- \ingroup technology-apis
\ingroup best-practices
Adaptors are special classes that are attached to any QObject-derived class
diff --git a/doc/src/frameworks-technologies/dbus-intro.qdoc b/doc/src/frameworks-technologies/dbus-intro.qdoc
index bccb6da..9d4cd95 100644
--- a/doc/src/frameworks-technologies/dbus-intro.qdoc
+++ b/doc/src/frameworks-technologies/dbus-intro.qdoc
@@ -27,7 +27,7 @@
/*!
\page intro-to-dbus.html
- \title Introduction to D-Bus
+ \title D-Bus
\brief An introduction to Inter-Process Communication and Remote Procedure Calling with D-Bus.
\keyword QtDBus
diff --git a/doc/src/frameworks-technologies/dnd.qdoc b/doc/src/frameworks-technologies/dnd.qdoc
index c5dd27c..ebfa39e 100644
--- a/doc/src/frameworks-technologies/dnd.qdoc
+++ b/doc/src/frameworks-technologies/dnd.qdoc
@@ -30,7 +30,6 @@
\title Drag and Drop
\brief An overview of the drag and drop system provided by Qt.
- \ingroup technology-apis
\ingroup qt-gui-concepts
Drag and drop provides a simple visual mechanism which users can use
diff --git a/doc/src/frameworks-technologies/eventsandfilters.qdoc b/doc/src/frameworks-technologies/eventsandfilters.qdoc
index e792161..fb14a3b 100644
--- a/doc/src/frameworks-technologies/eventsandfilters.qdoc
+++ b/doc/src/frameworks-technologies/eventsandfilters.qdoc
@@ -100,7 +100,7 @@
event delivery mechanisms are flexible. The documentation for
QCoreApplication::notify() concisely tells the whole story; the
\e{Qt Quarterly} article
- \l{http://qt.nokia.com/doc/qq/qq11-events.html}{Another Look at Events}
+ \l{http://doc.qt.nokia.com/qq/qq11-events.html}{Another Look at Events}
rehashes it less concisely. Here we will explain enough for 95%
of applications.
diff --git a/doc/src/frameworks-technologies/gestures.qdoc b/doc/src/frameworks-technologies/gestures.qdoc
index 927df22..f7c8312 100644
--- a/doc/src/frameworks-technologies/gestures.qdoc
+++ b/doc/src/frameworks-technologies/gestures.qdoc
@@ -60,7 +60,8 @@
\section1 Using Standard Gestures with Widgets
Gestures can be enabled for instances of QWidget and QGraphicsObject subclasses.
- An object that accepts gesture input is referred to as a \e{target object}.
+ An object that accepts gesture input is referred to throughout the documentation
+ as a \e{target object}.
To enable a gesture for a target object, call its QWidget::grabGesture() or
QGraphicsObject::grabGesture() function with an argument describing the
@@ -69,13 +70,57 @@
\snippet examples/gestures/imagegestures/imagewidget.cpp enable gestures
- In the above code, the gesture is set up in the constructor of the target object
+ In the above code, the gestures are set up in the constructor of the target object
itself.
+ \section1 Handling Events
+
When the user performs a gesture, QGestureEvent events will be delivered to the
target object, and these can be handled by reimplementing the QWidget::event()
handler function for widgets or QGraphicsItem::sceneEvent() for graphics objects.
+ As one target object can subscribe to more than one gesture type, the QGestureEvent
+ can contain more than one QGesture, indicating several possible gestures are active
+ at the same time. It is then up to the widget to determine how to handle those
+ multiple gestures and choose if some should be canceled in favor of others.
+
+ Each QGesture contained within a QGestureEvent object can be accepted() or ignored()
+ individually, or all together. Additionally, you can query the individual QGesture
+ data objects (the state) using several getters.
+
+ \section2 Standard Procedure for Event Handling
+
+ A QGesture is by default accepted when it arrives at your widget. However, it is good
+ practice to always explicitly accept or reject a gesture. The general rule is that, if
+ you accept a gesture, you are using it. If you are ignoring it you are not interested
+ in it. Ignoring a gesture may mean it gets offered to another target object, or it will
+ get canceled.
+
+ Each QGesture has several states it goes through; there is a well defined way to change
+ the state, typically the user input is the cause of state changes (by starting and
+ stopping interaction, for instance) but the widget can also cause state changes.
+
+ The first time a particular QGesture is delivered to a widget or graphics item, it will
+ be in the Qt::GestureStarted state. The way you handle the gesture at this point
+ influences whether you can interact with it later.
+
+ \list
+ \o Accepting the gesture means the widget acts on the gesture and there will follow
+ gestures with the Qt::GestureUpdatedstate.
+ \o Ignoring the gesture will mean the gesture will never be offered to you again.
+ It will be offered to a parent widget or item as well.
+ \o Calling setGestureCancelPolicy() on the gesture when it is in its starting state,
+ and is also accepted can cause other gestures to be canceled.
+ \endlist
+
+ Using QGesture::CancelAllInContext to cancel a gesture will cause all gestures, in any
+ state, to be canceled unless they are explicitly accepted. This means that active
+ gestures on children will get canceled. It also means that gestures delivered in the
+ same QGestureEvent will get canceled if the widget ignores them. This can be a useful
+ way to filter out all gestures except the one you are interested in.
+
+ \section2 Example Event Handling
+
For convenience, the \l{Image Gestures Example} reimplements the general
\l{QWidget::}{event()} handler function and delegates gesture events to a
specialized gestureEvent() function:
diff --git a/doc/src/frameworks-technologies/ipc.qdoc b/doc/src/frameworks-technologies/ipc.qdoc
index 23234ae..26a8cec 100644
--- a/doc/src/frameworks-technologies/ipc.qdoc
+++ b/doc/src/frameworks-technologies/ipc.qdoc
@@ -56,13 +56,12 @@
\section1 D-Bus
- The \l{QtDBus} module is a Unix-only library
- you can use to implement IPC using the D-Bus protocol. It extends
- Qt's \l{signalsandslots.html} {Signals and Slots} mechanism to the
- IPC level, allowing a signal emitted by one process to be
- connected to a slot in another process. This \l {Introduction to
- D-Bus} page has detailed information on how to use the \l{QtDBus}
- module.
+ The \l{QtDBus} module is a Unix-only library you can use to
+ implement IPC using the D-Bus protocol. It extends Qt's
+ \l{signalsandslots.html} {Signals and Slots} mechanism to the IPC
+ level, allowing a signal emitted by one process to be connected to
+ a slot in another process. This \l {D-Bus} page has detailed
+ information on how to use the \l{QtDBus} module.
\section1 Qt COmmunications Protocol (QCOP)
diff --git a/doc/src/frameworks-technologies/model-view-programming.qdoc b/doc/src/frameworks-technologies/model-view-programming.qdoc
index 131f063..7167f97 100644
--- a/doc/src/frameworks-technologies/model-view-programming.qdoc
+++ b/doc/src/frameworks-technologies/model-view-programming.qdoc
@@ -1011,7 +1011,7 @@
\snippet doc/src/snippets/reading-selections/window.cpp 0
- The above code uses Qt's convenient \l{Generic Containers}{foreach
+ The above code uses Qt's convenient \l{Container Classes}{foreach
keyword} to iterate over, and modify, the items corresponding to the
indexes returned by the selection model.
diff --git a/doc/src/getting-started/demos.qdoc b/doc/src/getting-started/demos.qdoc
index ef16224..4003988 100644
--- a/doc/src/getting-started/demos.qdoc
+++ b/doc/src/getting-started/demos.qdoc
@@ -134,7 +134,7 @@
\section1 QtWebKit
\list
- \o \l{Web Browser} demonstrates how Qt's \l{QtWebKit Module}{WebKit module}
+ \o \l{Web Browser} demonstrates how Qt's \l{WebKit in Qt}{WebKit module}
can be used to implement a small Web browser.
\endlist
@@ -147,6 +147,15 @@
\note The Phonon demos are currently not available for the MinGW platform.
+ \section1 Multimedia
+
+ \list
+ \o \l{demos/spectrum}{Spectrum Analyzer} demonstrates how the \l{QtMultimedia Module}
+ can be used to capture and play back an audio stream, at the same time allowing the
+ application to access the raw audio data. This application analyzes the audio stream
+ in order to display a frequency spectrum.
+ \endlist
+
\section1 Animation
\list
diff --git a/doc/src/getting-started/examples.qdoc b/doc/src/getting-started/examples.qdoc
index b2895ba..1bf86e5 100644
--- a/doc/src/getting-started/examples.qdoc
+++ b/doc/src/getting-started/examples.qdoc
@@ -529,7 +529,7 @@
\title OpenVG Examples
\brief Accessing OpenVG from Qt
- \image openvg-examples.png
+ \image opengl-examples.png
Qt provides support for integration with OpenVG implementations on
platforms with suitable drivers.
diff --git a/doc/src/getting-started/gettingstarted.qdoc b/doc/src/getting-started/gettingstarted.qdoc
index 391aec3..e58305a 100644
--- a/doc/src/getting-started/gettingstarted.qdoc
+++ b/doc/src/getting-started/gettingstarted.qdoc
@@ -26,491 +26,18 @@
****************************************************************************/
/*!
- \page gettingstarted.html
-
- \title Getting Started
-
- Welcome to the world of Qt--the cross-platform GUI toolkit. In
- this getting started guide, we teach basic Qt knowledge by
- implementing a simple Notepad application. After reading this
- guide, you should be ready to delve into our overviews and API
- documentation, and find the information you need for the
- application you are developing.
-
- \section1 Hello Notepad
-
- In this first example, we simply create and show a text edit in a
- window frame on the desktop. This represents the simplest possible
- Qt program that has a GUI.
-
- \image gs1.png
-
- Here is the code:
-
- \code
- 1 #include <QApplication>
- 2 #include <QTextEdit>
- 3
- 4 int main(int argv, char **args)
- 5 {
- 6 QApplication app(argv, args);
- 7
- 8 QTextEdit textEdit;
- 9 textEdit.show();
-10
-11 return app.exec();
-12 }
- \endcode
-
- Let's go through the code line by line. In the first two lines, we
- include the header files for QApplication and QTextEdit, which are
- the two classes that we need for this example. All Qt classes have
- a header file named after them.
-
- Line 6 creates a QApplication object. This object manages
- application-wide resources and is necessary to run any Qt program
- that has a GUI. It needs \c argv and \c args because Qt accepts a
- few command line arguments.
-
- Line 8 creates a QTextEdit object. A text edit is a visual element
- in the GUI. In Qt, we call such elements widgets. Examples of
- other widgets are scroll bars, labels, and radio buttons. A widget
- can also be a container for other widgets; a dialog or a main
- application window, for example.
-
- Line 9 shows the text edit on the screen in its own window frame.
- Since widgets also function as containers (for instance a
- QMainWindow, which has toolbars, menus, a status bar, and a few
- other widgets), it is possible to show a single widget in its own
- window. Widgets are not visible by default; the function
- \l{QWidget::}{show()} makes the widget visible.
-
- Line 11 makes the QApplication enter its event loop. When a Qt
- application is running, events are generated and sent to the
- widgets of the application. Examples of events are mouse presses
- and key strokes. When you type text in the text edit widget, it
- receives key pressed events and responds by drawing the text
- typed.
-
- To run the application, open a command prompt, and enter the
- directory in which you have the \c .cpp file of the program. The
- following shell commands build the program.
-
- \code
- vattekar@positive:~/testing/gssnippets/part1$ qmake -project
- vattekar@positive:~/testing/gssnippets/part1$ qmake
- vattekar@positive:~/testing/gssnippets/part1$ make
- \endcode
-
- This will leave an executable in the \c part1 directory (note that
- on Windows, you may have to use \c nmake instead of \c make. Also,
- the executable will be placed in part1/debug or part1/release). \c
- qmake is Qt's build tool, which takes a configuration file. \c
- qmake generates this for us when given the \c{-project} argument.
- Given the configuration file (suffixed .pro), \c qmake produces a
- \c make file that will build the program for you. We will look
- into writing our own \c .pro files later.
-
- \section2 Learn More
-
- \table
- \header
- \o About
- \o Here
- \row
- \o Widgets and Window Geometry
- \o \l{Window and Dialog Widgets}
- \row
- \o Events and event handling
- \o \l{The Event System}
- \endtable
-
- \section1 Adding a Quit Button
-
- In a real application, you will normally need more than one
- widget. We will now introduce a QPushButton beneath the text edit.
- The button will exit the Notepad application when pushed (i.e.,
- clicked on with the mouse).
-
- \image gs2.png
-
- Let's take a look at the code.
-
- \code
- 1 #include <QtGui>
- 2
- 3 int main(int argv, char **args)
- 4 {
- 5 QApplication app(argv, args);
- 6
- 7 QTextEdit textEdit;
- 8 QPushButton quitButton("Quit");
- 9
-10 QObject::connect(&quitButton, SIGNAL(clicked()), qApp, SLOT(quit()));
-11
-12 QVBoxLayout layout;
-13 layout.addWidget(&textEdit);
-14 layout.addWidget(&quitButton);
-15
-16 QWidget window;
-17 window.setLayout(&layout);
-18
-19 window.show();
-20
-21 return app.exec();
-22 }
- \endcode
-
- Line 1 includes QtGui, which contains all of Qt's GUI classes.
-
- Line 10 uses Qt's Signals and Slots mechanism to make the
- application exit when the \gui {Quit button} is pushed. A slot is
- a function that can be invoked at runtime using its name (as a
- literal string). A signal is a function that when called will
- invoke slots registered with it; we call that to connect the slot
- to the signal and to emit the signal.
-
- \l{QApplication::}{quit()} is a slot of QApplication that exits
- the application. \l{QPushButton::}{clicked()} is a signal that
- QPushButton emits when it is pushed. The static
- QObject::connect() function takes care of connecting the slot to
- the signal. SIGNAL() and SLOT() are two macros that take the
- function signatures of the signal and slot to connect. We also
- need to give pointers to the objects that should send and receive
- the signal.
-
- Line 12 creates a QVBoxLayout. As mentioned, widgets can contain
- other widgets. It is possible to set the bounds (the location and
- size) of child widgets directly, but it is usually easier to use a
- layout. A layout manages the bounds of a widget's children.
- QVBoxLayout, for instance, places the children in a vertical row.
-
- Line 13 and 14 adds the text edit and button to the layout. In
- line 17, we set the layout on a widget.
-
- \section2 Learn More
-
- \table
- \header
- \o About
- \o Here
- \row
- \o Signals and slots
- \o \l{Signals & Slots}
- \row
- \o Layouts
- \o \l{Layout Management},
- \l{Widgets and Layouts},
- \l{Layout Examples}
- \row
- \o The widgets that come with Qt
- \o \l{Qt Widget Gallery},
- \l{Widget Examples}
- \endtable
-
- \section1 Subclassing QWidget
-
- When the user wants to quit an application, you might want to
- pop-up a dialog that asks whether he/she really wants to quit. In
- this example, we subclass QWidget, and add a slot that we connect
- to the \gui {Quit button}.
-
- \image gs3.png
-
- Let's look at the code:
-
- \code
- 5 class Notepad : public QWidget
- 6 {
- 7 Q_OBJECT
- 8
- 9 public:
-10 Notepad();
-11
-12 private slots:
-13 void quit();
-14
-15 private:
-16 QTextEdit *textEdit;
-17 QPushButton *quitButton;
-18 };
- \endcode
-
- The \c Q_OBJECT macro must be first in the class definition, and
- declares our class as a \c QObject (Naturally, it must also
- inherit from QObject). A \l{QObject} adds several abilities to a
- normal C++ class. Notably, the class name and slot names can be
- queried at run-time. It is also possible to query a slot's
- parameter types and invoke it.
-
- Line 13 declares the slot \c quit(). This is easy using the \c
- slots macro. The \c quit() slot can now be connected to signals
- with a matching signature (any signal that takes no parameters).
-
- Instead of setting up the GUI and connecting the slot in the \c
- main() function, we now use \c{Notepad}'s constructor.
-
- \code
- Notepad::Notepad()
- {
- textEdit = new QTextEdit;
- quitButton = new QPushButton(tr("Quit"));
-
- connect(quitButton, SIGNAL(clicked()), this, SLOT(quit()));
-
- QVBoxLayout *layout = new QVBoxLayout;
- layout->addWidget(textEdit);
- layout->addWidget(quitButton);
-
- setLayout(layout);
-
- setWindowTitle(tr("Notepad"));
- }
- \endcode
-
- As you saw in the class definition, we use pointers to our \l
- {QObject}s (\c textEdit and \c quitButton). As a rule, you should
- always allocate \l{QObject}s on the heap and never copy them.
-
- We now use the function \l{QObject::}{tr()} around our user
- visible strings. This function is necessary when you want to
- provide your application in more than one language (e.g. English
- and Chinese). We won't go into details here, but you can follow
- the \c {Qt Linguist} link from the learn more table.
-
- \section2 Learn More
-
- \table
- \header
- \o About
- \o Here
- \row
- \o tr() and internationalization
- \o \l{Qt Linguist Manual},
- \l{Writing Source Code for Translation},
- \l{Hello tr() Example},
- \l{Internationalization with Qt}
- \row
- \o QObjects and the Qt Object model (This is essential to understand Qt)
- \o \l{Object Model}
- \row
- \o qmake and the Qt build system
- \o \l{qmake Manual}
- \endtable
-
- \section2 Creating a .pro file
-
- For this example, we write our own \c .pro file instead of
- using \c qmake's \c -project option.
-
- \code
- HEADERS = notepad.h
- SOURCES = notepad.cpp \
- main.cpp
- \endcode
-
- The following shell commands build the example.
-
- \code
- vattekar@positive:~/testing/gssnippets/part3$ qmake
- vattekar@positive:~/testing/gssnippets/part3$ make
- \endcode
-
- \section1 Using a QMainWindow
-
- Many applications will benefit from using a QMainWindow, which has
- its own layout to which you can add a menu bar, dock widgets, tool
- bars, and a status bar. QMainWindow has a center area that can be
- occupied by any kind of widget. In our case, we will place our
- text edit there.
-
- \image gs4.png
-
- Let's look at the new \c Notepad class definition.
-
- \code
- #include <QtGui>
-
- class Notepad : public QMainWindow
- {
- Q_OBJECT
-
- public:
- Notepad();
-
- private slots:
- void open();
- void save();
- void quit();
-
- private:
- QTextEdit *textEdit;
-
- QAction *openAction;
- QAction *saveAction;
- QAction *exitAction;
-
- QMenu *fileMenu;
- };
- \endcode
-
- We include two more slots that can save and open a document. We
- will implement these in the next section.
-
- Often, in a main window, the same slot should be invoked by
- several widgets. Examples are menu items and buttons on a tool
- bar. To make this easier, Qt provides QAction, which can be given
- to several widgets, and be connected to a slot. For instance, both
- QMenu and QToolBar can create menu items and tool buttons from the
- same \l{QAction}s. We will see how this works shortly.
-
- As before, we use the \c {Notepad}s constructor to set up the
- GUI.
-
- \code
- Notepad::Notepad()
- {
- saveAction = new QAction(tr("&Open"), this);
- saveAction = new QAction(tr("&Save"), this);
- exitAction = new QAction(tr("E&xit"), this);
-
- connect(openAction, SIGNAL(triggered()), this, SLOT(open()));
- connect(saveAction, SIGNAL(triggered()), this, SLOT(save()));
- connect(exitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
-
- fileMenu = menuBar()->addMenu(tr("&File"));
- fileMenu->addAction(openAction);
- fileMenu->addAction(saveAction);
- fileMenu->addSeparator();
- fileMenu->addAction(exitAction);
-
- textEdit = new QTextEdit;
- setCentralWidget(textEdit);
-
- setWindowTitle(tr("Notepad"));
- }
- \endcode
-
- \l{QAction}s are created with the text that should appear on the
- widgets that we add them to (in our case, menu items). If we also
- wanted to add them to a tool bar, we could have given
- \l{QIcon}{icons} to the actions.
-
- When a menu item is clicked now, the item will trigger the action,
- and the respective slot will be invoked.
-
- \section2 Learn More
-
- \table
- \header
- \o About
- \o Here
- \row
- \o Main windows and main window classes
- \o \l{Application Main Window},
- \l{Main Window Examples}
- \row
- \o MDI applications
- \o QMdiArea,
- \l{MDI Example}
- \endtable
-
- \section1 Saving and Loading
-
- In this example, we will implement the functionality of the \c
- open() and \c save() slots that we added in the previous example.
-
- \image gs5.png
-
- Let's start with the \c open() slot:
-
- \code
- QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "",
- tr("Text Files (*.txt);;C++ Files (*.cpp *.h)"));
-
- if (fileName != "") {
- QFile file(fileName);
- if (!file.open(QIODevice::ReadOnly)) {
- QMessageBox::critical(this, tr("Error"),
- tr("Could not open file"));
- return;
- }
- QString contents = file.readAll().constData();
- textEdit->setPlainText(contents);
- file.close();
- }
- \endcode
-
- The first step is asking the user for the name of the file to
- open. Qt comes with QFileDialog, which is a dialog from which the
- user can select a file. The image above shows the dialog on
- Kubuntu. The static \l{QFileDialog::}{getOpenFileName()} function
- displays a modal file dialog, and does not return until the user
- has selected a file. It returns the file path of the file
- selected, or an empty string if the user canceled the dialog.
-
- If we have a file name, we try to open the file with
- \l{QIODevice::}{open()}, which returns true if the file could be
- opened. We won't go into error handling here, but you can follow
- the links from the learn more section. If the file could not be
- opened, we use QMessageBox to display a dialog with an error
- message (see the QMessageBox class description for further
- details).
-
- Actually reading in the data is trivial using the
- \l{QIODevice::}{readAll()} function, which returns all data in the
- file in a QByteArray. The \l{QByteArray::}{constData()} returns all
- data in the array as a const char*, which QString has a
- constructor for. The contents can then be displayed in the text
- edit. We then \l{QIODevice::}{close()} the file to return the file
- descriptor back to the operating system.
-
- Now, let's move on to the the \c save() slot.
-
- \code
- QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), "",
- tr("Text Files (*.txt);;C++ Files (*.cpp *.h)"));
-
- if (fileName != "") {
- QFile file(fileName);
- if (!file.open(QIODevice::WriteOnly)) {
- // error message
- } else {
- QTextStream stream(&file);
- stream << textEdit->toPlainText();
- stream.flush();
- file.close();
- }
- }
- \endcode
-
- When we write the contents of the text edit to the file, we use
- the QTextStream class, which wraps the QFile object. The text
- stream can write QStrings directly to the file; QFile only accepts
- raw data (char*) with the \l{QIODevice::}{write()} functions of
- QIODevice.
-
- \section2 Learn More
-
- \table
- \header
- \o About
- \o Here
- \row
- \o Files and I/O devices
- \o QFile, QIODevice
- \endtable
-
- \omit
- \section1 Moving On
-
- This may not be true for the first release.
- The Qt documentation comes with three getting started guides. You
- have come to the end of the first, which concerns itself with
- basic Qt concepts. We also have guides covering intermediate and
- advanced topics. They are found here: You may also have noticed that the learn more sections in
- this guide frequently linked to them.
- Basic Qt Architecture
- \endomit
+ \title Getting Started Guides
+
+ \group gettingStarted
+
+ \section1
+ Creating applications using Qt and QML is easy enough once you get started.
+ To get you started we have created two tutorials creating two similar applications,
+ but using diiferent approaches. One tutorial implements the user interface using
+ QML, while the other implements the whole application using traditional Qt.
+
+ Please click on the links below to start the ride.
+ \generatelist{related}
+
*/
diff --git a/doc/src/getting-started/gettingstartedqml.qdoc b/doc/src/getting-started/gettingstartedqml.qdoc
new file mode 100644
index 0000000..6c85776
--- /dev/null
+++ b/doc/src/getting-started/gettingstartedqml.qdoc
@@ -0,0 +1,1051 @@
+/****************************************************************************
+**
+** 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 documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in a
+** written agreement between you and Nokia.
+**
+** GNU Free Documentation License
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of this
+** file.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page qml-textEditor.html
+
+ \title Getting Started programming with QML
+ \ingroup gettingStarted
+
+ Welcome to the world of QML - the declarative UI language. In this Getting
+ Started guide, we create a simple text editor application using QML.
+ After reading this guide, you should be ready to start developing your own
+ applications using QML and Qt C++.
+
+ \example tutorials/gettingStarted/gsQml
+
+ \section1 QML to Build User Interfaces
+
+ Here we are building is a simple text editor that con load, save,
+ and perform some text manipulation. This guide consists of two parts. The
+ first part involves designing the application layout and behaviors using
+ declarative language in QML. For the second part, file loading and saving is
+ implemented using Qt C++.
+ Using \l {The Meta-Object System}{Qt's Meta-Object System}, we can expose C++
+ functions as properties that QML elements can use. By utilizing QML and Qt C++,
+ we can efficiently decouple the interface logic from the application logic.
+
+ \image qml-texteditor5_editmenu.png
+
+ To run the QML example code, we merely provide the included \l{QML Viewer}{qmlviewer}
+ tool with the QML file as the argument. The C++ portion of this tutorial assumes
+ that the reader possesses basic knowledge of Qt's compilation procedures.
+
+ \omit
+ Tutorial chapters:
+ \list 1
+ \o \l {Defining a Button and a Menu}{Defining a Button and a Menu}
+ \o \l {Implementing a Menu Bar}{Implementing a Menu Bar}
+ \o \l {Building a Text Editor}{Building a Text Editor}
+ \o \l {Decorating the Text Editor}{Decorating the Text Editor}
+ \o \l {Extending QML using Qt C++}{Extending QML using Qt C++}
+ \endlist
+ \endomit
+
+ \section1 Defining a Button and a Menu
+
+ \section2 Basic Component - a Button
+
+ We start our text editor by building a button. Functionally, a button has a mouse
+ sensitive area and a label. Buttons perform actions when a user presses the button.
+
+ In QML, the basic visual item is the \l {Rectangle}{Rectangle} element. The
+ \c Rectangle element has properties to control the element's appearance and location.
+
+ \code
+ import Qt 4.7
+ Rectangle {
+ id: simplebutton
+ color: "grey"
+ width: 150; height: 75
+
+ Text{
+ id: buttonLabel
+ anchors.centerIn: parent
+ text: "button label"
+ }
+ }
+ \endcode
+
+ First, the \c { import Qt 4.7 } allows the qmlviewer tool to import the QML elements
+ we will later use. This line must exist for every QML file. Notice that the version
+ of Qt modules is included in the import statement.
+
+ This simple rectangle has a unique identifier, \c simplebutton, which is bound to the
+ id property. The \c Rectangle element's properties are bound to values by listing the
+ property, followed by a colon, then the value. In the code sample, the color \c grey
+ is bound to the the Rectangle's \c color property. Similarly, we bind the \c width
+ and \c height of the Rectangle.
+
+ The \l {Text}{Text} element is a non-editable text field. We name this \c Text element
+ \c buttonLabel. To set the string content of the Text field, we bind a value to the
+ \c text property. The label is contained within the Rectangle and in order to center
+ it in the middle, we assign the \c anchors of the Text element to its parent, which
+ is called \c simplebutton. Anchors may bind to other items' anchors, allowing layout
+ assignments simpler.
+
+ We save this code as \c SimpleButton.qml. Running qmlviewer with the file as the
+ argument will display the grey rectangle with a text label.
+
+ \image qml-texteditor1_simplebutton.png
+
+ To implement the button click functionality, we can use QML's event handling. QML's event
+ handling is very similar to \l {Signals & Slots}{Qt's signal and slot} mechanism. Signals
+ are emitted and the connected slot is called.
+
+ \code
+ Rectangle{
+ id:simplebutton
+ ...
+
+ MouseArea{
+ id: buttonMouseArea
+
+ anchors.fill: parent //anchor all sides of the mouse area to the rectangle's anchors
+ //onClicked handles valid mouse button clicks
+ onClicked: console.log(buttonLabel.text + " clicked" )
+ }
+ }
+ \endcode
+
+ We include a \l{MouseArea} element in our simplebutton. \c MouseArea elements describe
+ the interactive area where mouse movements are detected. For our button, we anchor the
+ whole MouseArea to its parent, which is \c simplebutton. The \c anchors.fill syntax is
+ one way of accessing a specific property called \c fill inside a group of properties
+ called \c anchors. QML uses \l {Anchor-based Layout in QML}{anchor based layouts} where
+ items can anchor to another item, creating robust layouts.
+
+ The \c MouseArea has many signal handlers that are called during mouse movements within
+ the specfied \c MouseArea boundaries. One of them is \c onClicked and it is called
+ whenever the acceptable mouse button is clicked, the left click being the default. We
+ can bind actions to the onClicked handler. In our example, \c console.log() outputs text
+ whenever the mouse area is clicked. The function \c console.log() is a useful tool for
+ debugging purposes and for outputting text.
+
+ The code in \c SimpleButton.qml is sufficient to display a button on the screen and
+ output text whenever it is clicked with a mouse.
+
+ \code
+ Rectangle {
+ id:Button
+ ...
+
+ property color buttonColor: "lightblue"
+ property color onHoverColor: "gold"
+ property color borderColor: "white"
+
+ signal buttonClick()
+ onButtonClick: {
+ console.log(buttonLabel.text + " clicked" )
+ }
+
+ MouseArea{
+ onClicked: buttonClick()
+ hoverEnabled: true
+ onEntered: parent.border.color = onHoverColor
+ onExited: parent.border.color = borderColor
+ }
+
+ //determines the color of the button by using the conditional operator
+ color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor
+ }
+ \endcode
+
+ A fully functioning button is in \c Button.qml. The code snippets in this article
+ have some code omitted, denoted by ellipses because they were either introduced
+ earlier in the previous sections or irrelevant to the current code discussion.
+
+ Custom properties are declared using the \c {property type name} syntax. In the
+ code, the property \c buttonColor, of type \c color, is declared and bound to
+ the value \c{"lightblue"}. The \c buttonColor is later used in a conditional
+ operation to determine the buttons's fill color. Note that property value
+ assignment is possible using the \c= equals sign, in addition to value binding
+ using the \c : colon character. Custom properties allow internal items to be
+ accessible outside of the Rectangle's scope. There are basic
+ \l{QML Basic Types}{QML types} such as \c int, \c string, \c real, as well as
+ a type called \c variant.
+
+ By binding the \c onEntered and \c onExited signal handlers to colors, the
+ button's border will turn yellow when the mouse hovers above the button and
+ reverts the color when the mouse exits the mouse area.
+
+ A \c buttonClick() signal is declared in \c Button.qml by placing the \c signal
+ keyword in front of the signal name. All signals have their handlers automatically
+ created, their names starting with \c on. As a result, the \c onButtonClick is
+ \c buttonClick's handler. The \c onButtonClick is then assigned an action to
+ perform. In our button example, the \c onClicked mouse handler will simply call
+ \c onButtonClick, which displays a text. The \c onButtonClick enables outside
+ objects to access the \c {Button}'s mouse area easily. For example, items may
+ have more than one \c MouseArea declarations and a \c buttonClick signal can
+ make the distinction between the several \c MouseArea signal handlers better.
+
+ We now have the basic knowledge to implement items in QML that can handle
+ basic mouse movements. We created a \c Text label inside a \c Rectangle,
+ customized its properties, and implemented behaviors that respond to mouse
+ movements. This idea of creating elements within elements is repeated
+ throughout the text editor application.
+
+ This button is not useful unless used as a component to perform an action.
+ In the next section, we will soon create a menu containing several of these
+ buttons.
+
+ \image qml-texteditor1_button.png
+
+ \section2 Creating a Menu Page
+
+ Up to this stage, we covered how to create elements and assign behaviors inside
+ a single QML file. In this section, we will cover how to import QML elements and how
+ to reuse some of the created components to build other components.
+
+ Menus display the contents of a list, each item having the ability to perform an action.
+ In QML, we can create a menu in several ways. First, we will create a menu containing
+ buttons which will eventually perform different actions. The menu code is in
+ \c FileMenu.qml.
+
+ \code
+ import Qt 4.7 \\import the main Qt QML module
+ import folderName \\import the contents of the folder
+ import Button.qml \\import a QML file
+ import NewButton.qml as ButtonModule \\import a QML file and give it a name
+ import script.js as Script \\import a Javascript file and name it as Script
+ \endcode
+
+ To use the \c Button element in \c FileMenu.qml, we need to import \c Button.qml.
+ The syntax shown above, shows how to use the \c import keyword. However, the
+ \c {import Button.qml} is not necessary; qmlviewer will import all the contents
+ of the current directory. We can directly create a \c Button element by declaring
+ \c Button{}, similar to a \c Rectangle{} declaration.
+
+ \code
+ In FileMenu.qml:
+
+ Row{
+ anchors.centerIn: parent
+ spacing: parent.width/6
+
+ Button{
+ id: loadButton
+ buttonColor: "lightgrey"
+ label: "Load"
+ }
+ Button{
+ buttonColor: "grey"
+ id: saveButton
+ label: "Save"
+ }
+ Button{
+ id: exitButton
+ label: "Exit"
+ buttonColor: "darkgrey"
+
+ onButtonClick: Qt.quit()
+ }
+ }
+ \endcode
+
+ In \c FileMenu.qml, we declare three \c Button elements. They are declared
+ inside a \l {Row}{Row} element, a positioner that will position its children
+ along a vertical row. The \c Button declaration resides in Button.qml,
+ which is the same as the \c Button.qml we used in the previous section.
+ New property bindings can be declared within the newly created buttons,
+ effectively overwriting the properties set in \c Button.qml. The button
+ called \c exitButton will quit and close the window when it is clicked.
+ Note that the signal handler \c onButtonClick in \c Button.qml will be
+ called in addition to the \c onButtonClick handler in \c exitButton.
+
+ \image qml-texteditor1_filemenu.png
+
+ The \c Row declaration is declared in a \c Rectangle, creating a rectangle
+ container for the row of buttons. This additional rectangle creates an indirect
+ way of organizing the row of buttons inside a menu.
+
+ The declaration of the edit menu is very similar at this stage. The menu has
+ buttons that have the labels: \c Copy, \c Paste, and \c {Select All}.
+
+ \image qml-texteditor1_editmenu.png
+
+ Armed with our knowledge of importing and customizing previously made
+ components, we may now combine these menu pages to create a menu bar,
+ consisting of buttons to select the menu, and look at how we may structure
+ data using QML.
+
+ \section1 Implementing a Menu Bar
+
+ Our text editor application will need a way to display menus using a menu bar.
+ The menu bar will switch the different menus and the user can choose which menu
+ to display. Menu switching implies that the menus need more structure than
+ merely displaying them in a row. QML uses models and views to structure data
+ and display the structured data.
+
+ \section2 Using Data Models and Views
+
+ QML has different \l {Data Models}{data views} that display
+ \l {Data Models}{data models}. Our menu bar will display the menus in a list,
+ with a header that displays a row of menu names. The list of menus are declared
+ inside a \c VisualItemModel. The \l{VisualItemModel}{\c VisualItemModel}
+ element contains items that already have views such as \c Rectangle elements
+ and imported UI elements. Other model types such as the \l {ListModel}{\c ListModel}
+ element need a delegate to display their data.
+
+ We declare two visual items in the \c menuListModel, the \c FileMenu and the
+ \c EditMenu. We customize the two menus and display them using a
+ \l {ListView}{ListView}. The \c MenuBar.qml file contains the QML declarations
+ and a simple edit menu is defined in \c EditMenu.qml.
+
+ \code
+ VisualItemModel{
+ id: menuListModel
+ FileMenu{
+ width: menuListView.width
+ height: menuBar.height
+ color: fileColor
+ }
+ EditMenu{
+ color: editColor
+ width: menuListView.width
+ height: menuBar.height
+ }
+ }
+ \endcode
+
+ The \l {ListView}{ListView} element will display a model according to a delegate.
+ The delegate may declare the model items to display in a \c Row element or display
+ the items in a grid. Our \c menuListModel already has visible items, therefore,
+ we do not need to declare a delegate.
+
+ \code
+ ListView{
+ id: menuListView
+
+ //Anchors are set to react to window anchors
+ anchors.fill:parent
+ anchors.bottom: parent.bottom
+ width:parent.width
+ height: parent.height
+
+ //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
+ }
+ \endcode
+
+ Additionally, \c ListView inherits from \l {Flickable}{\c Flickable}, making
+ the list respond to mouse drags and other gestures. The last portion of the
+ code above sets \c Flickable properties to create the desired flicking movement
+ to our view. In particular,the property \c highlightMoveDuration changes the
+ duration of the flick transition. A higher \c highlightMoveDuration value
+ results in slower menu switching.
+
+ The \c ListView maintains the model items through an \c index and each visual
+ item in the model is accessible through the \c index, in the order of the
+ declaration. Changing the \c currentIndex effectively changes the highlighted
+ item in the \c ListView. The header of our menu bar exemplify this effect.
+ There are two buttons in a row, both changing the current menu when clicked.
+ The \c fileButton changes the current menu to the file menu when clicked,
+ the \c index being \c 0 because \c FileMenu is declared first in the
+ \c menuListModel. Similarly, the \c editButton will change the current
+ menu to the \c EditMenu when clicked.
+
+ The \c labelList rectangle has \c z value of \c 1, denoting that it is displayed
+ at the front of the menu bar. Items with higher \c z values are displayed in front
+ of items with lower \c z values. The default \c z value is \c 0.
+
+ \code
+ Rectangle{
+ id: labelList
+ ...
+ z: 1
+ Row{
+ anchors.centerIn: parent
+ spacing:40
+ Button{
+ label: "File"
+ id: fileButton
+ ...
+ onButtonClick: menuListView.currentIndex = 0
+ }
+ Button{
+ id: editButton
+ label: "Edit"
+ ...
+ onButtonClick: menuListView.currentIndex = 1
+ }
+ }
+ }
+ \endcode
+
+ The menu bar we just created can be flicked to access the menus or by clicking
+ on the menu names at the top. Switching menu screens feel intuitive and responsive.
+
+ \image qml-texteditor2_menubar.png
+
+ \section1 Building a Text Editor
+
+ \section2 Declaring a TextArea
+
+ Our text editor is not a text editor if it didn't contain an editable text area.
+ QML's \l {TextEdit}{TextEdit} element allows the declaration of a multi-line
+ editable text area. \l {TextEdit}{TextEdit} is different from a \l {Text}{Text}
+ element, which doesn't allow the user to directly edit the text.
+
+ \code
+ TextEdit{
+ id: textEditor
+ anchors.fill:parent
+ width:parent.width; height:parent.height
+ color:"midnightblue"
+ focus: true
+
+ wrapMode: TextEdit.Wrap
+
+ onCursorRectangleChanged: flickArea.ensureVisible(cursorRectangle)
+ }
+ \endcode
+
+ The editor has its font color property set and set to wrap the text. The
+ \c TextEdit area is inside a flickable area that will scroll the text if the
+ text cursor is outside the visible area. The function \c ensureVisible() will
+ check if the cursor rectangle is outside the visible boundaries and move the
+ text area accordingly. QML uses Javascript syntax for its scripts, and as previously
+ mentioned, Javascript files can be imported and used within a QML file.
+
+ \code
+ 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;
+ }
+ \endcode
+
+ \section1 Combining Components for the Text Editor
+
+ We are now ready to create the layout of our text editor using QML. The text
+ editor has two components, the menu bar we created and the text area. QML allows
+ us to reuse components, therefore making our code simpler, by importing components
+ and customizing when necessary. Our text editor splits the window into two;
+ one-third of the screen is dedicated to the menu bar and two-thirds of the screen
+ displays the text area. The menu bar is displayed in front of any other elements.
+
+ \code
+ Rectangle{
+
+ id: screen
+ width: 1000; height: 1000
+
+ //the screen is partitioned into the MenuBar and TextArea. 1/3 of the screen is assigned to the MenuBar
+ property int partition: height/3
+
+ MenuBar{
+ id:menuBar
+ height: partition
+ width:parent.width
+ z: 1
+ }
+
+ TextArea{
+ id:textArea
+ anchors.bottom:parent.bottom
+ y: partition
+ color: "white"
+ height: partition*2
+ width:parent.width
+ }
+ }
+ \endcode
+
+ By importing reusable components, our \c TextEditor code looks much simpler.
+ We can then customize the main application, without worrying about properties
+ that already have defined behaviors. Using this approach, application layouts
+ and UI components can be created easily.
+
+ \image qml-texteditor3_texteditor.png
+
+ \section1 Decorating the Text Editor
+ \section2 Implementing a Drawer Interface
+
+ Our text editor looks simple and we need to decorate it. Using QML, we can declare
+ transitions and animate our text editor. Our menu bar is occupying one-third of the
+ screen and it would be nice to have it only appear when we want it.
+
+ We can add a drawer interface, that will contract or expand the menu bar when clicked.
+ In our implementation, we have a thin rectangle that responds to mouse clicks. The
+ \c drawer, as well as the application, has two sates: the "drawer is open" state and
+ the "drawer is closed" state. The \c drawer item is a strip of rectangle with a small
+ height. There is a nested \l {Image}{Image} element declaring that an arrow icon will
+ be centered inside the drawer. The drawer assigns a state to the whole application,
+ with the identifier \c screen, whenever a user clicks the mouse area.
+
+ \code
+ Rectangle{
+ id:drawer
+ height:15
+
+ Image{
+ id: arrowIcon
+ source: "images/arrow.png"
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+
+ MouseArea{
+ id: drawerMouseArea
+ anchors.fill:parent
+ onClicked:{
+ if (screen.state == "DRAWER_CLOSED"){
+ screen.state = "DRAWER_OPEN"
+ }
+ else if (screen.state == "DRAWER_OPEN"){
+ screen.state = "DRAWER_CLOSED"
+ }
+ }
+ ...
+ }
+ }
+ \endcode
+
+ A state is simply a collection of configurations and it is declared in a
+ \l{State}{State} element. A list of states can be listed and bound to the
+ \c states property. In our application, the two states are called
+ \c DRAWER_CLOSED and \c DRAWER_OPEN. Item configurations are declared in
+ \l {PropertyChanges}{PropertyChanges} elements. In the \c DRAWER_OPEN state,
+ there are four items that will receive property changes. The first target,
+ \c menuBar, will change its \c y property to \c 0. Similarly, the \c textArea
+ will lower to a new position when the state is \c DRAWER_OPEN. The \c textArea,
+ the \c drawer, and the drawer's icon will undergo property changes to meet the
+ current state.
+
+ \code
+
+ 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:-partition}
+ PropertyChanges { target: textArea; y: drawer.height; height: screen.height - drawer.height}
+ PropertyChanges { target: drawer; y: 0}
+ PropertyChanges { target: arrowIcon; rotation: 0}
+ }
+
+ ]
+
+ \endcode
+
+ State changes are abrupt and needs smoother transitions. Transitions between states
+ are defined using the \l {Transition}{Transition} element, which can then bind to
+ the item's \c transitions property. Our text editor has a state transition whenever
+ the state changes to either \c DRAWER_OPEN or \c DRAWER_CLOSED. Importantly, the
+ transition needs a \c from and a \c to state but for our transitions, we can use
+ the wild card \c * symbol to denote that the transition applies to all state changes.
+
+ During transitions, we can assign animations to the property changes. Our
+ \c menuBar switches position from \c {y:0} to \c {y:-partition} and we can animate
+ this transition using the \l {NumberAnimation}{NumberAnimation} element. We declare
+ that the targets' properties will animate for a certain duration of time and using
+ a certain easing curve. An easing curve controls the animation rates and
+ interpolation behavior during state transitions. The easing curve we chose is
+ \l{PropertyAnimation::easing.type}{Easing.OutQuint}, which slows the movement near
+ the end of the animation. Pleae read \l {qdeclarativeanimation.html}{QML's Animation}
+ article.
+
+ \code
+ transitions: [
+ Transition{
+ to: "*"
+ NumberAnimation { target: textArea; properties: "y, height"; duration: 100; easing.type: Easing.OutQuint }
+ NumberAnimation { target: menuBar; properties: "y"; duration: 100;easing.type: Easing.OutQuint }
+ NumberAnimation { target: drawer; properties: "y"; duration: 100;easing.type: Easing.OutQuint }
+ }
+ ]
+ \endcode
+
+ Another way of animating property changes is by declaring a \l {Behavior}{Behavior}
+ element. A transition only works during state changes and \c Behavior can set an
+ animation for a general property change. In the text editor, the arrow has a
+ \c NumberAnimation animating its \c rotation property whenever the property changes.
+
+ \code
+ In TextEditor.qml:
+
+ Behavior{
+ NumberAnimation{property: "rotation";easing.type: Easing.OutExpo }
+ }
+ \endcode
+
+ Going back to our components with knowledge of states and animations, we can improve
+ the appearances of the components. In \c Button.qml, we can add \c color and \c scale
+ property changes when the button is clicked. Color types are animated using
+ \l {ColorAnimation}{ColorAnimation} and numbers are animated using
+ \l {NumberAnimation}{NumberAnimation}. The \c {on propertyName} syntax displayed below
+ is helpful when targeting a single property.
+
+ \code
+ In Button.qml:
+ ...
+
+ color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor
+ Behavior on color { ColorAnimation{ duration: 55} }
+
+ scale: buttonMouseArea.pressed ? 1.1 : 1.00
+ Behavior on scale { NumberAnimation{ duration: 55} }
+ \endcode
+
+ Additionally, we can enhance the appearances of our QML components by adding color
+ effects such as gradients and opacity effects. Declaring a \l {Gradient}{Gradient}
+ element will override the \c color property of the element. You may declare a color
+ in the gradient using the \l {GradientStop}{GradientStop} element. The gradient is
+ positioned using a scale, between \c 0.0 and \c 1.0.
+
+ \code
+ In MenuBar.qml
+ 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" }
+ }
+ \endcode
+
+ This gradient is used by the menu bar to display a gradient simulating depth.
+ The first color starts at \c 0.0 and the last color is at \c 1.0.
+
+
+ \section2 Where to Go from Here
+
+ We are finished building the user interface of a very simple text editor.
+ Going forward, the user interface is complete, and we can implement the
+ application logic using regular Qt and C++. QML works nicely as a prototyping
+ tool, separating the application logic away from the UI design.
+
+ \image qml-texteditor4_texteditor.png
+
+ \section1 Extending QML using Qt C++
+
+ Now that we have our text editor layout, we may now implement the text editor
+ functionalities in C++. Using QML with C++ enables us to create our application
+ logic using Qt. We can create a QML context in a C++ application using the
+ \l {Using QML in C++ Applications}{Qt's Declarative} classes and display the QML
+ elements using a Graphics Scene. Alternatively, we can export our C++ code into
+ a plugin that the \l {QML Viewer}{qmlviewer} tool can read. For our application,
+ we shall implement the load and save functions in C++ and export it as a plugin.
+ This way, we only need to load the QML file directly instead of running an executable.
+
+ \section2 Exposing C++ Classes to QML
+
+ We will be implementing file loading and saving using Qt and C++. C++ classes
+ and functions can be used in QML by registering them. The class also needs to be
+ compiled as a Qt plugin and the QML file will need to know where the plugin is located.
+
+ For our application, we need to create the following items:
+ \list 1
+ \o \c Directory class that will handle directory related operations
+ \o \c File class which is a QObject, simulating the list of files in a directory
+ \o plugin class that will register the class to the QML context
+ \o Qt project file that will compile the plugin
+ \o A \c qmldir file telling the qmlviewer tool where to find the plugin
+ \endlist
+
+ \section2 Building a Qt Plugin
+
+ To build a plugin, we need to set the following in a Qt project file. First,
+ the necessary sources, headers, and Qt modules need to be added into our
+ project file. All the C++ code and project files are in the \c filedialog
+ directory.
+
+ \code
+ In cppPlugins.pro:
+
+ 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
+ \endcode
+
+ In particular, we compile Qt with the \c declarative module and configure it as a
+ \c plugin, needing a \c lib template. We shall put the compiled plugin into the
+ parent's \c plugins directory.
+
+
+ \section2 Registering a Class into QML
+
+ \code
+ In dialogPlugin.h:
+
+ #include <QtDeclarative/QDeclarativeExtensionPlugin>
+
+ class DialogPlugin : public QDeclarativeExtensionPlugin
+ {
+ Q_OBJECT
+
+ public:
+ void registerTypes(const char *uri);
+
+ };
+
+ \endcode
+
+ Our plugin class, \c DialogPlugin is a subclass of \l
+ {QDeclarativeExtensionPlugin}{QDeclarativeExtensionPlugin}. We
+ need to implement the inherited function, \l
+ {QDeclarativeExtensionPlugin::registerTypes()}{registerTypes}. The
+ \c dialogPlugin.cpp file looks like this:
+
+ \code
+ DialogPlugin.cpp:
+
+ #include "dialogPlugin.h"
+ #include "directory.h"
+ #include "file.h"
+ #include <QtDeclarative/qdeclarative.h>
+
+ void DialogPlugin::registerTypes(const char *uri){
+
+ qmlRegisterType<Directory>(uri, 1, 0, "Directory");
+ qmlRegisterType<File>(uri, 1, 0,"File");
+ }
+
+ Q_EXPORT_PLUGIN2(FileDialog, DialogPlugin);
+ \endcode
+
+ The \l {QDeclarativeExtensionPlugin::registerTypes()}{registerTypes}
+ function registers our File and Directory classes into QML. This function
+ needs the class name for its template, a major version number, a minor version
+ number, and a name for our classes.
+
+ We need to export the plugin using the \l {Q_EXPORT_PLUGIN2}{Q_EXPORT_PLUGIN2}
+ macro. Note that in our \c dialogPlugin.h file, we have the \l {Q_OBJECT}{Q_OBJECT}
+ macro at the top of our class. As well, we need to run \c qmake on the project
+ file to generate the necessary meta-object code.
+
+
+ \section2 Creating QML Properties in a C++ class
+
+ We can create QML elements and properties using C++ and
+ \l {The Meta-Object System}{Qt's Meta-Object System}. We can implement
+ properties using slots and signals, making Qt aware of these properties.
+ These properties can then be used in QML.
+
+ For the text editor, we need to be able to load and save files. Typically,
+ these features are contained in a file dialog. Fortunately, we can use
+ \l {QDir}{QDir}, \l {QFile}{QFile}, and \l {QTextStream}{QTextStream} to
+ implement directory reading and input/output streams.
+
+ \code
+ class Directory : public QObject{
+
+ Q_OBJECT
+
+ Q_PROPERTY(int filesCount READ filesCount CONSTANT)
+ Q_PROPERTY(QString filename READ filename WRITE setFilename NOTIFY filenameChanged)
+ Q_PROPERTY(QString fileContent READ fileContent WRITE setFileContent NOTIFY fileContentChanged)
+ Q_PROPERTY(QDeclarativeListProperty<File> files READ files CONSTANT )
+
+ ...
+ \endcode
+
+ The \c Directory class uses Qt's Meta-Object System to register properties it
+ needs to accomplish file handling. The \c Directory class is exported as a plugin
+ and is useable in QML as the \c Directory element. Each of the listed properties
+ using the \l {Q_PROPERTY()}{Q_PROPERTY} macro is a QML property.
+
+ The \l {Q_PROPERTY()} {Q_PROPERTY} declares a property as well as its read and
+ write functions into Qt's Meta-Object System. For example, the \c filename
+ property, of type \l {QString}{QString}, is readable using the \c filename()
+ function and writable using the function \c setFilename(). Additionally, there
+ is a signal associated to the filename property called \c filenameChanged(),
+ which is emitted whenever the property changes. The read and write functions
+ are declared as \c public in the header file.
+
+ Similarly, we have the other properties declared according to their uses. The
+ \c filesCount property indicates the number of files in a directory. The filename
+ property is set to the currently selected file's name and the loaded/saved file
+ content is stored in \c fileContent property.
+
+ \code
+ Q_PROPERTY(QDeclarativeListProperty<File> files READ files CONSTANT )
+ \endcode
+
+ The \c files list property is a list of all the filtered files in a directory.
+ The \c Directory class is implemented to filter out invalid text files; only
+ files with a \c .txt extension are valid. Further, \l {QList}{QLists} can be
+ used in QML files by declaring them as a \c QDeclarativeListProperty in C++.
+ The templated object needs to inherit from a \l {QObject}{QObject}, therefore,
+ the \c File class must also inherit from \c QObject. In the \c Directory class,
+ the list of \c File objects is stored in a \c QList called \c m_fileList.
+
+ \code
+ class File : public QObject{
+
+ Q_OBJECT
+ Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
+
+ ...
+ };
+ \endcode
+
+ The properties can then be used in QML as part of the \c Directory element's
+ properties. Note that we do not have to create an identifier \c id property
+ in our C++ code.
+
+ \code
+ Directory{
+ id: directory
+
+ filesCount
+ filename
+ fileContent
+ files
+
+ files[0].name
+ }
+
+ \endcode
+
+ Because QML uses Javascript's syntax and structure, we can iterate through
+ the list of files and retrieve its properties. To retrieve the first file's
+ name property, we can call \c { files[0].name }.
+
+ Regular C++ functions are also accessible from QML. The file loading and saving
+ functions are implemented in C++ and declared using the
+ \l {Q_INVOKABLE}{Q_INVOKABLE} macro. Alternatively, we can declare the functions
+ as a \c slot and the functions will be accessible from QML.
+
+ \code
+ In Directory.h:
+
+ Q_INVOKABLE void saveFile();
+ Q_INVOKABLE void loadFile();
+ \endcode
+
+ The \c Directory class also has to notify other objects whenever the directory
+ contents change. This feature is performed using a \c signal. As previously
+ mentioned, QML signals have a corresponding handler with their names prepended
+ with \c on. The signal is called \c directoryChanged and it is emitted whenever
+ there is a directory refresh. The refresh simply reloads the directory contents
+ and updates the list of valid files in the directory. QML items can then be
+ notified by attaching an action to the \c onDirectoryChanged signal handler.
+
+ The \c list properties need to be explored further. This is because list
+ properties use callbacks to access and modify the list contents. The list
+ property is of type \c QDeclarativeListProperty<File>. Whenever the list
+ is accessed, the accessor function needs to return a
+ \c QDeclarativeListProperty<File>. The template type, \c File, needs to be a
+ \c QObject derivative. Further, to create the
+ \l {QDeclarativeListProperty}{QDeclarativeListProperty}, the list's accessor
+ and modifiers need to be passed to the consructor as function pointers. The list,
+ a \c QList in our case, also needs to be a list of \c File pointers.
+
+ The constructor of \l {QDeclarativeListProperty}{QDeclarativeListProperty}
+ constructor and the \c Directory implementation:
+ \code
+ QDeclarativeListProperty ( QObject * object, void * data, AppendFunction append, CountFunction count = 0, AtFunction at = 0, ClearFunction clear = 0 )
+ QDeclarativeListProperty<File>( this, &m_fileList, &appendFiles, &filesSize, &fileAt, &clearFilesPtr );
+ \endcode
+
+ The constructor passes pointers to functions that will append the list, count
+ the list, retrieve the item using an index, and empty the list. Only the append
+ function is mandatory. Note that the function pointers must match the definition
+ of \l {QDeclarativeListProperty::AppendFunction}{AppendFunction},
+ \l {QDeclarativeListProperty::CountFunction}{CountFunction},
+ \l {QDeclarativeListProperty::AtFunction}{AtFunction}, or
+ \l {QDeclarativeListProperty::ClearFunction}{ClearFunction}.
+
+ \code
+ void appendFiles(QDeclarativeListProperty<File> * property, File * file)
+ File* fileAt(QDeclarativeListProperty<File> * property, int index)
+ int filesSize(QDeclarativeListProperty<File> * property)
+ void clearFilesPtr(QDeclarativeListProperty<File> *property)
+ \endcode
+
+ To simplify our file dialog, the \c Directory class filters out invalid text
+ files, which are files that do not have a \c .txt extension. If a file name
+ doesn't have the \c .txt extension, then it won't be seen in our file dialog.
+ Also, the implementation makes sure that saved files have a \c .txt extension in
+ the file name. \c Directory uses \l {QTextStream}{QTextStream} to read the file
+ and to output the file contents to a file.
+
+ With our \c Directory element, we can retrieve the files as a list, know how many
+ text files is in the application directory, get the file's name and content as a
+ string, and be notified whenever there are changes in the directory contents.
+
+ To build the plugin, run \c qmake on the \c cppPlugins.pro project file, then run
+ \c make to build and transfer the plugin to the \c plugins directory.
+
+
+ \section2 Importing a Plugin in QML
+
+ The qmlviewer tool imports files that are in the same directory as the
+ application. We can also create a \c qmldir file containing the locations of
+ QML files we wish to import. The \c qmldir file can also store locations of
+ plugins and other resources.
+
+ \code
+ In qmldir:
+
+ Button ./Button.qml
+ FileDialog ./FileDialog.qml
+ TextArea ./TextArea.qml
+ TextEditor ./TextEditor.qml
+ EditMenu ./EditMenu.qml
+
+ plugin FileDialog plugins
+ \endcode
+
+ The plugin we just created is called \c FileDialog, as indicated by the
+ \c TARGET field in the project file. The compiled plugin is in the \c plugins directory.
+
+
+ \section2 Integrating a File Dialog into the File Menu
+
+ Our \c FileMenu needs to display the \c FileDialog element, containing a list of
+ the text files in a directory thus allowing the user to select the file by
+ clicking on the list. We also need to assign the save, load, and new buttons
+ to their respective actions. The FileMenu contains an editable text input to
+ allow the user to type a file name using the keyboard.
+
+ The \c Directory element is used in the \c FileMenu.qml file and it notifies the
+ \c FileDialog element that the directory refreshed its contents. This notification
+ is performed in the signal handler, \c onDirectoryChanged.
+
+ \code
+ In FileMenu.qml:
+
+ Directory{
+ id:directory
+ filename: textInput.text
+ onDirectoryChanged: fileDialog.notifyRefresh()
+ }
+ \endcode
+
+ Keeping with the simplicity of our application, the file dialog will always be
+ visible and will not display invalid text files, which do not have a \c .txt
+ extension to their filenames.
+
+ \code
+ In FileDialog.qml:
+
+ signal notifyRefresh()
+ onNotifyRefresh: dirView.model = directory.files
+ \endcode
+
+ The \c FileDialog element will display the contents of a directory by reading its
+ list property called \c files. The files are used as the model of a
+ \l {GridView}{GridView} element, which displays data items in a grid according
+ to a delegate. The delegate handles the appearance of the model and our file
+ dialog will simply create a grid with text centered in the middle. Clicking on
+ the file name will result in the appearance of a rectangle to highlight the file
+ name. The \c FileDialog is notified whenever the \c notifyRefresh signal is emitted,
+ reloading the files in the directory.
+
+ \code
+ In FileMenu.qml:
+
+ Button{
+ id: newButton
+ label: "New"
+ onButtonClick:{
+ textArea.textContent = ""
+ }
+ }
+ Button{
+ id: loadButton
+ label: "Load"
+ onButtonClick:{
+ directory.filename = textInput.text
+ directory.loadFile()
+ textArea.textContent = directory.fileContent
+ }
+ }
+ Button{
+ id: saveButton
+ label: "Save"
+ onButtonClick:{
+ directory.fileContent = textArea.textContent
+ directory.filename = textInput.text
+ directory.saveFile()
+ }
+ }
+ Button{
+ id: exitButton
+ label: "Exit"
+ onButtonClick:{
+ Qt.quit()
+ }
+ }
+ \endcode
+
+ Our \c FileMenu can now connect to their respective actions. The \c saveButton
+ will transfer the text from the \c TextEdit onto the directory's \c fileContent
+ property, then copy its file name from the editable text input. Finally, the button
+ calls the \c saveFile() function, saving the file. The \c sloadButton has a similar
+ execution. Also, the \c New action will empty the contents of the \c TextEdit.
+
+ Further, the \c EditMenu buttons are connected to the \c TextEdit functions to copy,
+ paste, and select all the text in the text editor.
+
+ \image qml-texteditor5_filemenu.png
+
+ \section1 Text Editor Completion
+
+ \image qml-texteditor5_newfile.png
+
+ The application can function as a simple text editor, able to accept text
+ and save the text into a file. The text editor can also load from a file and
+ perform text manipulation.
+
+
+*/ \ No newline at end of file
diff --git a/doc/src/getting-started/gettingstartedqt.qdoc b/doc/src/getting-started/gettingstartedqt.qdoc
new file mode 100644
index 0000000..1b3770f
--- /dev/null
+++ b/doc/src/getting-started/gettingstartedqt.qdoc
@@ -0,0 +1,517 @@
+/****************************************************************************
+**
+** 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 documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in a
+** written agreement between you and Nokia.
+**
+** GNU Free Documentation License
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of this
+** file.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page gettingstartedqt.html
+
+ \title Getting Started programming with Qt
+ \ingroup gettingStarted
+
+ Welcome to the world of Qt--the cross-platform GUI toolkit. In
+ this getting started guide, we teach basic Qt knowledge by
+ implementing a simple Notepad application. After reading this
+ guide, you should be ready to delve into our overviews and API
+ documentation, and find the information you need for the
+ application you are developing.
+
+ \section1 Hello Notepad
+
+ In this first example, we simply create and show a text edit in a
+ window frame on the desktop. This represents the simplest possible
+ Qt program that has a GUI.
+
+ \image gs1.png
+
+ Here is the code:
+
+ \code
+ 1 #include <QApplication>
+ 2 #include <QTextEdit>
+ 3
+ 4 int main(int argv, char **args)
+ 5 {
+ 6 QApplication app(argv, args);
+ 7
+ 8 QTextEdit textEdit;
+ 9 textEdit.show();
+10
+11 return app.exec();
+12 }
+ \endcode
+
+ Let us go through the code line by line. In the first two lines, we
+ include the header files for QApplication and QTextEdit, which are
+ the two classes that we need for this example. All Qt classes have
+ a header file named after them.
+
+ Line 6 creates a QApplication object. This object manages
+ application-wide resources and is necessary to run any Qt program
+ that has a GUI. It needs \c argv and \c args because Qt accepts a
+ few command line arguments.
+
+ Line 8 creates a QTextEdit object. A text edit is a visual element
+ in the GUI. In Qt, we call such elements widgets. Examples of
+ other widgets are scroll bars, labels, and radio buttons. A widget
+ can also be a container for other widgets; a dialog or a main
+ application window, for example.
+
+ Line 9 shows the text edit on the screen in its own window frame.
+ Since widgets also function as containers (for instance a
+ QMainWindow, which has toolbars, menus, a status bar, and a few
+ other widgets), it is possible to show a single widget in its own
+ window. Widgets are not visible by default; the function
+ \l{QWidget::}{show()} makes the widget visible.
+
+ Line 11 makes the QApplication enter its event loop. When a Qt
+ application is running, events are generated and sent to the
+ widgets of the application. Examples of events are mouse presses
+ and key strokes. When you type text in the text edit widget, it
+ receives key pressed events and responds by drawing the text
+ typed.
+
+ To run the application, open a command prompt, and enter the
+ directory in which you have the \c .cpp file of the program. The
+ following shell commands build the program.
+
+ \code
+ qmake -project
+ qmake
+ make
+ \endcode
+
+ This will leave an executable in the \c part1 directory (note that
+ on Windows, you may have to use \c nmake instead of \c make. Also,
+ the executable will be placed in part1/debug or part1/release). \c
+ qmake is Qt's build tool, which takes a configuration file. \c
+ qmake generates this for us when given the \c{-project} argument.
+ Given the configuration file (suffixed .pro), \c qmake produces a
+ \c make file that will build the program for you. We will look
+ into writing our own \c .pro files later.
+
+ \section2 Learn More
+
+ \table
+ \header
+ \o About
+ \o Here
+ \row
+ \o Widgets and Window Geometry
+ \o \l{Window and Dialog Widgets}
+ \row
+ \o Events and event handling
+ \o \l{The Event System}
+ \endtable
+
+ \section1 Adding a Quit Button
+
+ In a real application, you will normally need more than one
+ widget. We will now introduce a QPushButton beneath the text edit.
+ The button will exit the Notepad application when pushed (i.e.,
+ clicked on with the mouse).
+
+ \image gs2.png
+
+ Let us take a look at the code.
+
+ \code
+ 1 #include <QtGui>
+ 2
+ 3 int main(int argv, char **args)
+ 4 {
+ 5 QApplication app(argv, args);
+ 6
+ 7 QTextEdit textEdit;
+ 8 QPushButton quitButton("Quit");
+ 9
+10 QObject::connect(&quitButton, SIGNAL(clicked()), qApp, SLOT(quit()));
+11
+12 QVBoxLayout layout;
+13 layout.addWidget(&textEdit);
+14 layout.addWidget(&quitButton);
+15
+16 QWidget window;
+17 window.setLayout(&layout);
+18
+19 window.show();
+20
+21 return app.exec();
+22 }
+ \endcode
+
+ Line 1 includes QtGui, which contains all of Qt's GUI classes.
+
+ Line 10 uses Qt's Signals and Slots mechanism to make the
+ application exit when the \gui {Quit button} is pushed. A slot is
+ a function that can be invoked at runtime using its name (as a
+ literal string). A signal is a function that when called will
+ invoke slots registered with it; we call that to connect the slot
+ to the signal and to emit the signal.
+
+ \l{QApplication::}{quit()} is a slot of QApplication that exits
+ the application. \l{QPushButton::}{clicked()} is a signal that
+ QPushButton emits when it is pushed. The static
+ QObject::connect() function takes care of connecting the slot to
+ the signal. SIGNAL() and SLOT() are two macros that take the
+ function signatures of the signal and slot to connect. We also
+ need to give pointers to the objects that should send and receive
+ the signal.
+
+ Line 12 creates a QVBoxLayout. As mentioned, widgets can contain
+ other widgets. It is possible to set the bounds (the location and
+ size) of child widgets directly, but it is usually easier to use a
+ layout. A layout manages the bounds of a widget's children.
+ QVBoxLayout, for instance, places the children in a vertical row.
+
+ Line 13 and 14 adds the text edit and button to the layout. In
+ line 17, we set the layout on a widget.
+
+ \section2 Learn More
+
+ \table
+ \header
+ \o About
+ \o Here
+ \row
+ \o Signals and slots
+ \o \l{Signals & Slots}
+ \row
+ \o Layouts
+ \o \l{Layout Management},
+ \l{Widgets and Layouts},
+ \l{Layout Examples}
+ \row
+ \o The widgets that come with Qt
+ \o \l{Qt Widget Gallery},
+ \l{Widget Examples}
+ \endtable
+
+ \section1 Subclassing QWidget
+
+ When the user wants to quit an application, you might want to
+ pop-up a dialog that asks whether he/she really wants to quit. In
+ this example, we subclass QWidget, and add a slot that we connect
+ to the \gui {Quit button}.
+
+ \image gs3.png
+
+ Let us look at the code:
+
+ \code
+ 5 class Notepad : public QWidget
+ 6 {
+ 7 Q_OBJECT
+ 8
+ 9 public:
+10 Notepad();
+11
+12 private slots:
+13 void quit();
+14
+15 private:
+16 QTextEdit *textEdit;
+17 QPushButton *quitButton;
+18 };
+ \endcode
+
+ The \c Q_OBJECT macro must be first in the class definition, and
+ declares our class as a \c QObject (Naturally, it must also
+ inherit from QObject). A \l{QObject} adds several abilities to a
+ normal C++ class. Notably, the class name and slot names can be
+ queried at run-time. It is also possible to query a slot's
+ parameter types and invoke it.
+
+ Line 13 declares the slot \c quit(). This is easy using the \c
+ slots macro. The \c quit() slot can now be connected to signals
+ with a matching signature (any signal that takes no parameters).
+
+ Instead of setting up the GUI and connecting the slot in the \c
+ main() function, we now use \c{Notepad}'s constructor.
+
+ \code
+ Notepad::Notepad()
+ {
+ textEdit = new QTextEdit;
+ quitButton = new QPushButton(tr("Quit"));
+
+ connect(quitButton, SIGNAL(clicked()), this, SLOT(quit()));
+
+ QVBoxLayout *layout = new QVBoxLayout;
+ layout->addWidget(textEdit);
+ layout->addWidget(quitButton);
+
+ setLayout(layout);
+
+ setWindowTitle(tr("Notepad"));
+ }
+ \endcode
+
+ As you saw in the class definition, we use pointers to our \l
+ {QObject}s (\c textEdit and \c quitButton). As a rule, you should
+ always allocate \l{QObject}s on the heap and never copy them.
+
+ We now use the function \l{QObject::}{tr()} around our user
+ visible strings. This function is necessary when you want to
+ provide your application in more than one language (e.g. English
+ and Chinese). We will not go into details here, but you can follow
+ the \c {Qt Linguist} link from the learn more table.
+
+ \section2 Learn More
+
+ \table
+ \header
+ \o About
+ \o Here
+ \row
+ \o tr() and internationalization
+ \o \l{Qt Linguist Manual},
+ \l{Writing Source Code for Translation},
+ \l{Hello tr() Example},
+ \l{Internationalization with Qt}
+ \row
+ \o QObjects and the Qt Object model (This is essential to understand Qt)
+ \o \l{Object Model}
+ \row
+ \o qmake and the Qt build system
+ \o \l{qmake Manual}
+ \endtable
+
+ \section2 Creating a .pro file
+
+ For this example, we write our own \c .pro file instead of
+ using \c qmake's \c -project option.
+
+ \code
+ HEADERS = notepad.h
+ SOURCES = notepad.cpp \
+ main.cpp
+ \endcode
+
+ The following shell commands build the example.
+
+ \code
+ qmake
+ make
+ \endcode
+
+ \section1 Using a QMainWindow
+
+ Many applications will benefit from using a QMainWindow, which has
+ its own layout to which you can add a menu bar, dock widgets, tool
+ bars, and a status bar. QMainWindow has a center area that can be
+ occupied by any kind of widget. In our case, we will place our
+ text edit there.
+
+ \image gs4.png
+
+ Let us look at the new \c Notepad class definition.
+
+ \code
+ #include <QtGui>
+
+ class Notepad : public QMainWindow
+ {
+ Q_OBJECT
+
+ public:
+ Notepad();
+
+ private slots:
+ void open();
+ void save();
+ void quit();
+
+ private:
+ QTextEdit *textEdit;
+
+ QAction *openAction;
+ QAction *saveAction;
+ QAction *exitAction;
+
+ QMenu *fileMenu;
+ };
+ \endcode
+
+ We include two more slots that can save and open a document. We
+ will implement these in the next section.
+
+ Often, in a main window, the same slot should be invoked by
+ several widgets. Examples are menu items and buttons on a tool
+ bar. To make this easier, Qt provides QAction, which can be given
+ to several widgets, and be connected to a slot. For instance, both
+ QMenu and QToolBar can create menu items and tool buttons from the
+ same \l{QAction}s. We will see how this works shortly.
+
+ As before, we use the \c {Notepad}s constructor to set up the
+ GUI.
+
+ \code
+ Notepad::Notepad()
+ {
+ saveAction = new QAction(tr("&Open"), this);
+ saveAction = new QAction(tr("&Save"), this);
+ exitAction = new QAction(tr("E&xit"), this);
+
+ connect(openAction, SIGNAL(triggered()), this, SLOT(open()));
+ connect(saveAction, SIGNAL(triggered()), this, SLOT(save()));
+ connect(exitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
+
+ fileMenu = menuBar()->addMenu(tr("&File"));
+ fileMenu->addAction(openAction);
+ fileMenu->addAction(saveAction);
+ fileMenu->addSeparator();
+ fileMenu->addAction(exitAction);
+
+ textEdit = new QTextEdit;
+ setCentralWidget(textEdit);
+
+ setWindowTitle(tr("Notepad"));
+ }
+ \endcode
+
+ \l{QAction}s are created with the text that should appear on the
+ widgets that we add them to (in our case, menu items). If we also
+ wanted to add them to a tool bar, we could have given
+ \l{QIcon}{icons} to the actions.
+
+ When a menu item is clicked now, the item will trigger the action,
+ and the respective slot will be invoked.
+
+ \section2 Learn More
+
+ \table
+ \header
+ \o About
+ \o Here
+ \row
+ \o Main windows and main window classes
+ \o \l{Application Main Window},
+ \l{Main Window Examples}
+ \row
+ \o MDI applications
+ \o QMdiArea,
+ \l{MDI Example}
+ \endtable
+
+ \section1 Saving and Loading
+
+ In this example, we will implement the functionality of the \c
+ open() and \c save() slots that we added in the previous example.
+
+ \image gs5.png
+
+ We will start with the \c open() slot:
+
+ \code
+ QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "",
+ tr("Text Files (*.txt);;C++ Files (*.cpp *.h)"));
+
+ if (fileName != "") {
+ QFile file(fileName);
+ if (!file.open(QIODevice::ReadOnly)) {
+ QMessageBox::critical(this, tr("Error"),
+ tr("Could not open file"));
+ return;
+ }
+ QString contents = file.readAll().constData();
+ textEdit->setPlainText(contents);
+ file.close();
+ }
+ \endcode
+
+ The first step is asking the user for the name of the file to
+ open. Qt comes with QFileDialog, which is a dialog from which the
+ user can select a file. The image above shows the dialog on
+ Kubuntu. The static \l{QFileDialog::}{getOpenFileName()} function
+ displays a modal file dialog, and does not return until the user
+ has selected a file. It returns the file path of the file
+ selected, or an empty string if the user canceled the dialog.
+
+ If we have a file name, we try to open the file with
+ \l{QIODevice::}{open()}, which returns true if the file could be
+ opened. We will not go into error handling here, but you can follow
+ the links from the learn more section. If the file could not be
+ opened, we use QMessageBox to display a dialog with an error
+ message (see the QMessageBox class description for further
+ details).
+
+ Actually reading in the data is trivial using the
+ \l{QIODevice::}{readAll()} function, which returns all data in the
+ file in a QByteArray. The \l{QByteArray::}{constData()} returns all
+ data in the array as a const char*, which QString has a
+ constructor for. The contents can then be displayed in the text
+ edit. We then \l{QIODevice::}{close()} the file to return the file
+ descriptor back to the operating system.
+
+ Now, let us move on to the the \c save() slot.
+
+ \code
+ QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), "",
+ tr("Text Files (*.txt);;C++ Files (*.cpp *.h)"));
+
+ if (fileName != "") {
+ QFile file(fileName);
+ if (!file.open(QIODevice::WriteOnly)) {
+ // error message
+ } else {
+ QTextStream stream(&file);
+ stream << textEdit->toPlainText();
+ stream.flush();
+ file.close();
+ }
+ }
+ \endcode
+
+ When we write the contents of the text edit to the file, we use
+ the QTextStream class, which wraps the QFile object. The text
+ stream can write QStrings directly to the file; QFile only accepts
+ raw data (char*) with the \l{QIODevice::}{write()} functions of
+ QIODevice.
+
+ \section2 Learn More
+
+ \table
+ \header
+ \o About
+ \o Here
+ \row
+ \o Files and I/O devices
+ \o QFile, QIODevice
+ \endtable
+
+ \omit
+ \section1 Moving On
+
+ This may not be true for the first release.
+ The Qt documentation comes with three getting started guides. You
+ have come to the end of the first, which concerns itself with
+ basic Qt concepts. We also have guides covering intermediate and
+ advanced topics. They are found here: You may also have noticed that the learn more sections in
+ this guide frequently linked to them.
+ Basic Qt Architecture
+ \endomit
+*/
+
diff --git a/doc/src/getting-started/installation.qdoc b/doc/src/getting-started/installation.qdoc
index 90723ec..629d8b7 100644
--- a/doc/src/getting-started/installation.qdoc
+++ b/doc/src/getting-started/installation.qdoc
@@ -30,10 +30,13 @@
\title Installation
\brief Installing Qt on supported platforms.
-The installation procedure is different on each Qt platform.
-Please follow the instructions for your platform from the following list.
+The installation procedure is different on each Qt platform. This page provides
+information on how to install Qt, as well as software and hardware requirements
+for using Qt on each of the supported platforms. Please follow the instructions
+for your platform from the following list.
\generatelist{related}
+
*/
/*! \page install-x11.html
diff --git a/doc/src/images/arrow.png b/doc/src/images/arrow.png
new file mode 100644
index 0000000..14978c2
--- /dev/null
+++ b/doc/src/images/arrow.png
Binary files differ
diff --git a/doc/src/images/qml-texteditor1_button.png b/doc/src/images/qml-texteditor1_button.png
new file mode 100644
index 0000000..aab64bc
--- /dev/null
+++ b/doc/src/images/qml-texteditor1_button.png
Binary files differ
diff --git a/doc/src/images/qml-texteditor1_editmenu.png b/doc/src/images/qml-texteditor1_editmenu.png
new file mode 100644
index 0000000..af8028b
--- /dev/null
+++ b/doc/src/images/qml-texteditor1_editmenu.png
Binary files differ
diff --git a/doc/src/images/qml-texteditor1_filemenu.png b/doc/src/images/qml-texteditor1_filemenu.png
new file mode 100644
index 0000000..ccc008c
--- /dev/null
+++ b/doc/src/images/qml-texteditor1_filemenu.png
Binary files differ
diff --git a/doc/src/images/qml-texteditor1_simplebutton.png b/doc/src/images/qml-texteditor1_simplebutton.png
new file mode 100644
index 0000000..21ce509
--- /dev/null
+++ b/doc/src/images/qml-texteditor1_simplebutton.png
Binary files differ
diff --git a/doc/src/images/qml-texteditor2_menubar.png b/doc/src/images/qml-texteditor2_menubar.png
new file mode 100644
index 0000000..691a833
--- /dev/null
+++ b/doc/src/images/qml-texteditor2_menubar.png
Binary files differ
diff --git a/doc/src/images/qml-texteditor3_textarea.png b/doc/src/images/qml-texteditor3_textarea.png
new file mode 100644
index 0000000..95abcd6
--- /dev/null
+++ b/doc/src/images/qml-texteditor3_textarea.png
Binary files differ
diff --git a/doc/src/images/qml-texteditor3_texteditor.png b/doc/src/images/qml-texteditor3_texteditor.png
new file mode 100644
index 0000000..bdf6957
--- /dev/null
+++ b/doc/src/images/qml-texteditor3_texteditor.png
Binary files differ
diff --git a/doc/src/images/qml-texteditor4_texteditor.png b/doc/src/images/qml-texteditor4_texteditor.png
new file mode 100644
index 0000000..85d216b
--- /dev/null
+++ b/doc/src/images/qml-texteditor4_texteditor.png
Binary files differ
diff --git a/doc/src/images/qml-texteditor5_editmenu.png b/doc/src/images/qml-texteditor5_editmenu.png
new file mode 100644
index 0000000..7365690
--- /dev/null
+++ b/doc/src/images/qml-texteditor5_editmenu.png
Binary files differ
diff --git a/doc/src/images/qml-texteditor5_filemenu.png b/doc/src/images/qml-texteditor5_filemenu.png
new file mode 100644
index 0000000..7078022
--- /dev/null
+++ b/doc/src/images/qml-texteditor5_filemenu.png
Binary files differ
diff --git a/doc/src/images/qml-texteditor5_newfile.png b/doc/src/images/qml-texteditor5_newfile.png
new file mode 100644
index 0000000..e493941
--- /dev/null
+++ b/doc/src/images/qml-texteditor5_newfile.png
Binary files differ
diff --git a/doc/src/images/spectrum-demo.png b/doc/src/images/spectrum-demo.png
new file mode 100644
index 0000000..7f4938f
--- /dev/null
+++ b/doc/src/images/spectrum-demo.png
Binary files differ
diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc
index 4acf212..38586ef 100644
--- a/doc/src/index.qdoc
+++ b/doc/src/index.qdoc
@@ -65,8 +65,8 @@
</div>
<div class="sectionlist tricol">
<ul>
- <li><a href="qt-basic-concepts.html">Programming with Qt</a></li>
- <li><a href="qt-basic-concepts.html">Qt Architecture</a></li>
+ <li><a href="qt-basic-concepts.html">Basic Qt Architecture</a></li>
+ <li><a href="qt-gui-concepts.html">UI Components</a></li>
<li><a href="developing-with-qt.html">Cross-platform &amp; Platform-specific Development</a></li>
<li><a href="technology-apis.html">Qt &amp; standard technologies </a></li>
<li><a href="best-practices.html">Qt How-to's &amp; best practices</a></li>
@@ -74,11 +74,13 @@
</div>
<div class="sectionlist">
<ul>
- <li><a href="declarativeui.html">Qt Quick</a></li>
+ <li><a href="qtquick.html">Qt Quick</a></li>
<li><a href="qdeclarativeintroduction.html">Introduction to QML</a></li>
<li><a href="qdeclarativeelements.html">QML Elements</a></li>
<li><a href="qt-gui-concepts.html">UI components</a></li>
- <li><a href="declarativeui.html">Qt & GUI design</a></li>
+ <li><a href="model-view-programming.html">Model/View Programming</a></li>
+ <li><a href="qt-network.html">Network Programming</a></li>
+ <li><a href="qt-graphics.html">Graphics and Printing</a></li>
</ul>
</div>
</div>
@@ -98,6 +100,7 @@
<li><a href="designer-manual.html">Qt Designer</a></li>
<li><a href="linguist-manual.html">Qt Linguist</a></li>
<li><a href="assistant-manual.html">Qt Assistant</a></li>
+ <li><a href="qmake-manual.html">Qt qmake</a></li>
<li><a href="http://doc.qt.nokia.com/qtsimulator-1.0/simulator-description.html">Qt Simulator</a></li>
<li><a href="http://qt.nokia.com/developer/eclipse-integration">Integration</a> and <a href="http://qt.nokia.com/products/appdev">add-ins</a></li>
<li><a href="qvfb.html">Virtual Framebuffer</a></li>
@@ -107,4 +110,5 @@
</div>
\endraw
+
*/
diff --git a/doc/src/internationalization/linguist-manual.qdoc b/doc/src/internationalization/linguist-manual.qdoc
index c8d8e9d..fa992af 100644
--- a/doc/src/internationalization/linguist-manual.qdoc
+++ b/doc/src/internationalization/linguist-manual.qdoc
@@ -1414,8 +1414,8 @@
\c -pluralonly command line option, which allows the creation of
TS files containing only entries with plural forms.
- See the \l{http://qt.nokia.com/doc/qq/}{Qt Quarterly} Article
- \l{http://qt.nokia.com/doc/qq/qq19-plurals.html}{Plural Forms in Translations}
+ See the \l{http://doc.qt.nokia.com/qq/}{Qt Quarterly} Article
+ \l{http://doc.qt.nokia.com/qq/qq19-plurals.html}{Plural Forms in Translations}
for further details on this issue.
\section2 Coping With C++ Namespaces
diff --git a/doc/src/legal/licenses.qdoc b/doc/src/legal/licenses.qdoc
index a04a256..12aca6b 100644
--- a/doc/src/legal/licenses.qdoc
+++ b/doc/src/legal/licenses.qdoc
@@ -262,14 +262,14 @@
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:\br
-     * Redistributions of source code must retain the above copyright
-       notice, this list of conditions and the following disclaimer.\br
-     * 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.\br
-     * Neither the name of Research In Motion Limited nor the
-       names of its contributors may be used to endorse or promote products
-       derived from this software without specific prior written permission.
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.\br
+ * 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.\br
+ * Neither the name of Research In Motion Limited 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 Research In Motion Limited ''AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@@ -476,6 +476,24 @@
\hr
+ Copyright 2001, 2002 Catharon Productions Inc.
+
+ This file is part of the Catharon Typography Project and shall only
+ be used, modified, and distributed under the terms of the Catharon
+ Open Source License that should come with this file under the name
+ `CatharonLicense.txt'. By continuing to use, modify, or distribute
+ this file you indicate that you have read the license and
+ understand and accept it fully.
+
+ Note that this license is compatible with the FreeType license.
+
+ \list
+ \o Included in the build system of the FreeType library
+ \o See \l{CatharonLicense.txt} for more information
+ \endlist
+
+ \hr
+
Copyright (C) 2006 Apple Computer, Inc. All rights reserved.\br
Copyright (C) 2007 Eric Seidel <eric@webkit.org>\br
Copyright (C) 2008 Kelvin W Sherlock (ksherlock@gmail.com)\br
@@ -987,3 +1005,15 @@
and have given a quick thought about whether Roman might perhaps be interested
to read what you did with his stuff. Horizontal rules don't apply.}
*/
+
+/*!
+ \page catharon-license.html
+ \title CatharonLicense.txt
+ \ingroup licensing
+ \brief The Catharon License used in parts of FreeType.
+
+ See the \l{Other Licenses Used in Qt} document for information on the
+ context in which this license is applied to code in the FreeType library.
+
+ \quotefile doc/src/snippets/legal/CatharonLicense.txt
+*/
diff --git a/doc/src/modules.qdoc b/doc/src/modules.qdoc
index a81bfb2..8912490 100644
--- a/doc/src/modules.qdoc
+++ b/doc/src/modules.qdoc
@@ -40,7 +40,7 @@
\header \o {2,1} \bold{Modules for general software development}
\row \o \l{QtCore} \o Core non-graphical classes used by other modules
\row \o \l{QtGui} \o Graphical user interface (GUI) components
- \row \o \l{QtMultimedia} \o Classes for low-level multimedia functionality
+ \row \o \l{qtmultimedia-module.html}{QtMultimedia} \o Classes for low-level multimedia functionality
\row \o \l{QtNetwork} \o Classes for network programming
\row \o \l{QtOpenGL} \o OpenGL support classes
\row \o \l{QtOpenVG} \o OpenVG support classes
@@ -82,9 +82,6 @@
/*!
\module QtCore
\title QtCore Module
- \contentspage All Modules
- \previouspage All Modules
- \nextpage QtGui
\ingroup modules
\keyword QtCore
@@ -101,9 +98,6 @@
/*!
\module QtGui
\title QtGui Module
- \contentspage All Modules
- \previouspage QtCore
- \nextpage QtNetwork
\ingroup modules
\brief The QtGui module extends QtCore with GUI functionality.
@@ -116,11 +110,7 @@
/*!
\module QtMultimedia
- \page qtmultimedia-module.html
\title QtMultimedia Module
- \contentspage All Modules
- \previouspage QtCore
- \nextpage QtNetwork
\ingroup modules
\brief The QtMultimedia module provides low-level multimedia functionality.
@@ -142,9 +132,6 @@
/*!
\module QtNetwork
\title QtNetwork Module
- \contentspage All Modules
- \previouspage QtMultimedia
- \nextpage QtOpenGL
\ingroup modules
\brief The QtNetwork module provides classes to make network programming
@@ -164,9 +151,6 @@
/*!
\module QtOpenGL
\title QtOpenGL Module
- \contentspage All Modules
- \previouspage QtNetwork
- \nextpage QtOpenVG
\ingroup modules
\brief The QtOpenGL module offers classes that make it easy to
@@ -217,9 +201,6 @@
\module QtOpenVG
\title QtOpenVG Module
\since 4.6
- \contentspage All Modules
- \previouspage QtOpenGL
- \nextpage QtScript
\ingroup modules
\brief The QtOpenVG module is a plugin that provides support for
@@ -272,9 +253,6 @@
\module QtScript
\title QtScript Module
\since 4.3
- \contentspage All Modules
- \previouspage QtOpenVG
- \nextpage QtScriptTools
\ingroup modules
\brief The QtScript module provides classes for making Qt applications scriptable.
@@ -332,9 +310,6 @@
\module QtScriptTools
\title QtScriptTools Module
\since 4.5
- \contentspage All Modules
- \previouspage QtScript
- \nextpage QtSql
\ingroup modules
\brief The QtScriptTools module provides additional components for applications that use Qt Script.
@@ -356,9 +331,6 @@
/*!
\module QtSql
\title QtSql Module
- \contentspage All Modules
- \previouspage QtScript
- \nextpage QtSvg
\ingroup modules
To include the definitions of the module's classes, use the
@@ -379,9 +351,6 @@
\module QtSvg
\title QtSvg Module
\since 4.1
- \contentspage All Modules
- \previouspage QtSql
- \nextpage QtWebKit
\ingroup modules
\brief The QtSvg module provides classes for displaying and creating SVG files.
@@ -430,9 +399,6 @@
/*!
\module QtXml
\title QtXml Module
- \contentspage All Modules
- \previouspage QtSvg
- \nextpage QtXmlPatterns
\ingroup modules
\brief The QtXml module provides a stream reader and writer for
@@ -457,9 +423,6 @@
\module QtXmlPatterns
\title QtXmlPatterns Module
\since 4.4
- \contentspage All Modules
- \previouspage QtXml
- \nextpage Phonon Module
\ingroup modules
\brief The QtXmlPatterns module provides support for XPath,
@@ -478,7 +441,7 @@
\section1 Further Reading
General overviews of XQuery and XSchema can be found in the
- \l{Using XML Technologies} document.
+ \l{XQuery} document.
An introduction to the XQuery language can be found in
\l{A Short Path to XQuery}.
@@ -537,9 +500,6 @@
\page phonon-module.html
\module Phonon
\title Phonon Module
- \contentspage All Modules
- \previouspage QtXmlPatterns
- \nextpage Qt3Support
\ingroup modules
\brief The Phonon module contains namespaces and classes for multimedia functionality.
@@ -607,9 +567,6 @@
/*!
\module Qt3Support
\title Qt3Support Module
- \contentspage All Modules
- \previouspage Phonon Module
- \nextpage QtDesigner
\ingroup modules
\keyword Qt3Support
@@ -640,9 +597,6 @@
/*!
\module QtDesigner
\title QtDesigner Module
- \contentspage All Modules
- \previouspage Qt3Support
- \nextpage QtUiTools
\ingroup modules
\brief The QtDesigner module provides classes that allow you to
@@ -667,9 +621,6 @@
\module QtUiTools
\title QtUiTools Module
\since 4.1
- \contentspage All Modules
- \previouspage QtDesigner
- \nextpage QtHelp
\ingroup modules
\brief The QtUiTools module provides classes to handle forms created
@@ -703,9 +654,6 @@
/*!
\module QtHelp
\title QtHelp Module
- \contentspage All Modules
- \previouspage QtUiTools
- \nextpage QtTest
\ingroup modules
\brief The QtHelp module provides classes for integrating
@@ -762,9 +710,6 @@
/*!
\module QtTest
\title QtTest Module
- \contentspage All Modules
- \previouspage QtHelp
- \nextpage QAxContainer
\ingroup modules
\keyword QtTest
@@ -792,9 +737,6 @@
/*!
\module QAxContainer
\title QAxContainer Module
- \contentspage All Modules
- \previouspage QtTest
- \nextpage QAxServer
\ingroup modules
\brief The QAxContainer module is a Windows-only extension for
@@ -844,9 +786,6 @@
/*!
\module QAxServer
\title QAxServer Module
- \contentspage All Modules
- \previouspage QAxContainer
- \nextpage QtDBus module
\ingroup modules
\brief The QAxServer module is a Windows-only static library that
@@ -896,16 +835,13 @@
/*!
\module QtDBus
\title QtDBus module
- \contentspage All Modules
- \previouspage QAxServer
\ingroup modules
\keyword QtDBus
\target The QDBus compiler
\brief The QtDBus module is a Unix-only library that you can use
- to perform Inter-Process Communication using the \l{Introduction to
- D-Bus}{D-Bus} protocol.
+ to perform Inter-Process Communication using the \l{D-Bus} protocol.
Applications using the QtDBus module can provide services to
other, remote applications by exporting objects, as well as use
@@ -931,7 +867,7 @@
directory. When installing Qt from source, this module is built when Qt's
tools are built.
- See the \l {Introduction to D-Bus} page for detailed information on
+ See the \l {D-Bus} page for detailed information on
how to use this module.
This module is part of all \l{Qt editions}.
diff --git a/doc/src/objectmodel/metaobjects.qdoc b/doc/src/objectmodel/metaobjects.qdoc
index dd00c5e..0597cd6 100644
--- a/doc/src/objectmodel/metaobjects.qdoc
+++ b/doc/src/objectmodel/metaobjects.qdoc
@@ -28,8 +28,9 @@
/*!
\page metaobjects.html
\title The Meta-Object System
- \ingroup qt-basic-concepts
\brief An overview of Qt's meta-object system and introspection capabilities.
+
+ \ingroup qt-basic-concepts
\keyword meta-object
\target Meta-Object System
diff --git a/doc/src/objectmodel/properties.qdoc b/doc/src/objectmodel/properties.qdoc
index 356aaaf..dca332e 100644
--- a/doc/src/objectmodel/properties.qdoc
+++ b/doc/src/objectmodel/properties.qdoc
@@ -28,8 +28,9 @@
/*!
\page properties.html
\title The Property System
- \ingroup qt-basic-concepts
\brief An overview of Qt's property system.
+
+ \ingroup qt-basic-concepts
\target Qt's Property System
Qt provides a sophisticated property system similar to the ones
diff --git a/doc/src/overviews.qdoc b/doc/src/overviews.qdoc
index a1773a3..1c35a63 100644
--- a/doc/src/overviews.qdoc
+++ b/doc/src/overviews.qdoc
@@ -55,15 +55,14 @@
These pages are about Qt's traditional set of GUI components for
building both native look ^ feel and custom UI's for the desktop
- environment. Use \l {declarativeui.html} {Qt Quick} for building
- UI's for mobile devices.
+ environment. Use \l{Qt Quick} for building UI's for mobile devices.
\generatelist {related}
*/
/*!
\group qt-graphics
- \title Qt Graphics and Painting
+ \title Qt Graphics and Printing
\brief The Qt components for doing graphics.
@@ -91,11 +90,12 @@
/*!
\group qt-activex
- \title Qt For ActiveX
- \brief Qt API's for using ActiveX controls, servers, and COM.
+ \title ActiveX in Qt
\ingroup technology-apis
\ingroup platform-specific
+ \brief Qt API's for using ActiveX controls, servers, and COM.
+
These pages document Qt's API's for developing with ActiveX
controls, servers, and COM.
@@ -104,7 +104,7 @@
/*!
\group qt-sql
- \title Using SQL in Qt
+ \title SQL in Qt
\brief Qt API's for using SQL.
\ingroup technology-apis
\ingroup best-practices
diff --git a/doc/src/painting-and-printing/paintsystem.qdoc b/doc/src/painting-and-printing/paintsystem.qdoc
index e5eb75d..4c6fd91 100644
--- a/doc/src/painting-and-printing/paintsystem.qdoc
+++ b/doc/src/painting-and-printing/paintsystem.qdoc
@@ -273,7 +273,7 @@
\previouspage Paint Devices and Backends
\contentspage The Paint System
- \nextpage The Coordinate System
+ \nextpage Coordinate System
\section1 Drawing
@@ -395,7 +395,7 @@
\page paintsystem-images.html
\title Reading and Writing Image Files
- \previouspage The Coordinate System
+ \previouspage Coordinate System
\contentspage The Paint System
\nextpage Styling
@@ -554,5 +554,5 @@
\endtable
For more information about widget styling and appearance, see the
- \l{Styles &amp Style Aware Widgets}.
+ \l{Styles and Style Aware Widgets}.
*/
diff --git a/doc/src/platforms/emb-directfb-EmbLinux.qdoc b/doc/src/platforms/emb-directfb-EmbLinux.qdoc
index b4f44bf..f416819 100644
--- a/doc/src/platforms/emb-directfb-EmbLinux.qdoc
+++ b/doc/src/platforms/emb-directfb-EmbLinux.qdoc
@@ -147,12 +147,23 @@ your qmake.conf.
#DEFINES += \"QT_DIRECTFB_DISABLE_RASTERFALLBACKS=$$DIRECTFB_DRAWINGOPERATIONS\"
\endcode
-As demonstrated above, you need to Qt which drawing operations you want to
-warn/disable. Since there are varying implementations of DirectFB from
+As demonstrated above, you need to tell Qt which drawing operations you want
+to warn/disable. Since there are varying implementations of DirectFB from
manufacturer to manufacture, different operations will be optimized. This
require you to define the operations you want to warn about or disable.
These are listed above in the DIRECTFB_DRAWINGOPERATIONS variable.
+You can also customize this with environment variables.
+
+E.g. If you want to disable fallbacks for drawPixmap and fillRect and also get
+a warning printed on stderr when a fallback would have happened.
+
+\code
+$ export QT_DIRECTFB_WARN_ON_RASTERFALLBACKS="FILL_RECT|DRAW_PIXMAP"
+$ export QT_DIRECTFB_DISABLE_RASTERFALLBACKS="FILL_RECT|DRAW_PIXMAP"
+$ ./app -qws -display directfb
+\endcode
+
Following is a table showing which options you have.
\table
diff --git a/doc/src/platforms/platform-notes.qdocinc b/doc/src/platforms/platform-notes.qdocinc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/doc/src/platforms/platform-notes.qdocinc
diff --git a/doc/src/platforms/symbian-introduction.qdoc b/doc/src/platforms/symbian-introduction.qdoc
index afb17c4..701707e 100644
--- a/doc/src/platforms/symbian-introduction.qdoc
+++ b/doc/src/platforms/symbian-introduction.qdoc
@@ -86,12 +86,12 @@
\tableofcontents
- \section1 Required tools
+ \section1 Required Tools
See \l{Qt for the Symbian platform Requirements} to see what tools are
required to use Qt for the Symbian platform.
- \section1 Installing Qt and running demos
+ \section1 Installing Qt and Running Demos
Follow the instructions found in \l{Installing Qt on the Symbian platform from a Binary Package}
to learn how to install Qt using a binary package and how to build and run Qt demos.
@@ -99,7 +99,7 @@
Follow the instructions found in \l{Installing Qt on the Symbian platform} to learn how to install Qt using
using source package and how to build and run the Qt demos.
- \section1 Building your own applications
+ \section1 Building Your Own Applications
If you are new to Qt development, have a look at \l{How to Learn Qt}.
In general, the difference between developing a
@@ -112,12 +112,19 @@
\snippet doc/src/snippets/code/doc_src_symbian-introduction.qdoc 0
For more information on how to use qmake have a look at the \l
- {qmake Tutorial}.
+ {qmake Tutorial}. In particular, see the
+ \l{qmake Platform Notes#Symbian platform}{qmake Platform Notes} for
+ details of Symbian-specific build settings.
Now you can build the Qt for the Symbian platform application with
- standard build tools. By default, running \c make will produce binaries for
- the emulator. However, the Symbian platform comes with several alternative
- build targets, as shown in the table below:
+ standard build tools.
+
+ \section2 Alternative Build Targets
+
+ By default, running \c make will produce binaries for the emulator.
+ However, the Symbian platform comes with several alternative
+ build targets that can be used to create binaries for target hardware
+ and deploy them on devices, as shown in the table below:
\table
\row \o \c debug-winscw \o Build debug binaries for the emulator (default).
@@ -149,19 +156,30 @@
To work on your project in Carbide, simply import the \c .pro file
by right clicking on the project explorer and executing "Import...".
- \section2 Smart Installer
+ \section1 Running Applications from the Command Line
- The Smart Installer makes sure that deployed applications have all the Qt dependencies
- they need to run on a device.
+ The application can be launched on the emulator using \c{make run} command.
- Download the latest release of the Smart Installer from \l{http://get.qt.nokia.com/nokiasmartinstaller/},
- and install it on top of the Qt package.
+ The application can be launched on a device using \c{make runonphone} command.
+ When this command is invoked, a \c .sis file is first created as if \c{make sis}
+ command was invoked (see above for details).
+ \bold{Note:} Running the application on a device using this command requires
+ \c TRK application to be running on the device.
- \section1 Installing your own applications
+ Additional environment variables that can be utilized with these commands are:
+ \table
+ \row \o \c QT_RUN_OPTIONS \o Any command line parameters you wish to pass
+ to your application.
+ \row \o \c QT_RUN_ON_PHONE_OPTIONS \o Options for runonphone application.
+ Execute \c runonphone from command line for
+ more information about available options.
+ \c{make runonphone} only.
+ \endtable
+
+ \section1 Installing Your Own Applications
To install your own applications on hardware, you need a signed \c .sis file.
- (Refer to the \l{http://developer.symbian.org/wiki/index.php/Platform_Security_%28Fundamentals_of_Symbian_C%2B%2B%29#Self-Signed_Applications}
- {Platform Security Article} for more informations about self-signing.)
+ (Refer to the \l{Symbian Platform Security} article for more informations about self-signing.)
The signed \c .sis file can be created with \c make \c sis target. \c sis target
is only supported for executables or projects with \c DEPLOYMENT statements.
By default the \c sis target will create signed \c .sis file for last build
@@ -220,23 +238,19 @@
\snippet doc/src/snippets/code/doc_src_symbian-introduction.qdoc 5
- \section1 Running applications from command line
+ \section1 Deployment and the Smart Installer
- The application can be launched on the emulator using \c{make run} command.
+ Although some Symbian devices may already have a version of Qt installed
+ on them, there needs to be a way to ensure that an appropriate version
+ of Qt is available for your application to use. Rather than deploy the
+ required Qt libraries with your application, the preferred way to
+ package Qt applications for deployment is to download and use the Smart
+ Installer.
- The application can be launched on a device using \c{make runonphone} command.
- When this command is invoked, a \c .sis file is first created as if \c{make sis}
- command was invoked (see above for details).
- \bold{Note:} Running the application on a device using this command requires
- \c TRK application to be running on the device.
+ The Smart Installer makes sure that deployed applications have all the
+ Qt dependencies they need to run on a device, performing the necessary
+ updates when the user installs the application.
- Additional environment variables that can be utilized with these commands are:
- \table
- \row \o \c QT_RUN_OPTIONS \o Any command line parameters you wish to pass
- to your application.
- \row \o \c QT_RUN_ON_PHONE_OPTIONS \o Options for runonphone application.
- Execute \c runonphone from command line for
- more information about available options.
- \c{make runonphone} only.
- \endtable
+ More information about deployment can be found in the
+ \l{Deploying an Application on the Symbian Platform} document.
*/
diff --git a/doc/src/porting/porting4.qdoc b/doc/src/porting/porting4.qdoc
index f355e7b..69bf877 100644
--- a/doc/src/porting/porting4.qdoc
+++ b/doc/src/porting/porting4.qdoc
@@ -472,7 +472,7 @@
\section1 Explicit Sharing
Qt 4 is the first version of Qt that contains no \link
- http://qt.nokia.com/doc/3.3/shclass.html explicitly shared
+ http://doc.qt.nokia.com/3.3/shclass.html explicitly shared
\endlink classes. All classes that were explicitly shared in Qt 3
are \e implicitly shared in Qt 4:
@@ -1079,7 +1079,7 @@
ensuring that the string is '\\0'-terminated. Another important
issue was that conversions between \c QCString and QByteArray often
gave confusing results. (See the
- \l{http://qt.nokia.com/doc/qq/qq05-achtung.html#qcstringisastringofchars}{Achtung!
+ \l{http://doc.qt.nokia.com/qq/qq05-achtung.html#qcstringisastringofchars}{Achtung!
Binary and Character Data} article in \e{Qt Quarterly} for an
overview of the pitfalls.)
@@ -2374,8 +2374,8 @@
pointer to a QObjectList. See also the comments on QObjectList
below.
- Use QObject::findChildren() (or qFindChildren() if you need MSVC 6
- compatibility) instead of QObject::queryList(). For example:
+ Use QObject::findChildren() instead of QObject::queryList().
+ For example:
\snippet doc/src/snippets/code/doc_src_porting4.qdoc 18
@@ -2440,13 +2440,13 @@
that provides the old semantics. See the Q3Painter documentation
for details and for the reasons why we had to make this change.
- The \l{http://qt.nokia.com/doc/3.3/qpainter.html#CoordinateMode-enum}{QPainter::CoordinateMode}
+ The \l{http://doc.qt.nokia.com/3.3/qpainter.html#CoordinateMode-enum}{QPainter::CoordinateMode}
enum has been removed in Qt 4. All clipping
operations are now defined using logical coordinates and are subject
to transformation operations.
The
- \l{http://qt.nokia.com/doc/3.3/qpainter.html#RasterOP-enum}{QPainter::RasterOP}
+ \l{http://doc.qt.nokia.com/3.3/qpainter.html#RasterOP-enum}{QPainter::RasterOP}
enum has been replaced with QPainter::CompositionMode.
\section1 QPicture
@@ -2598,7 +2598,7 @@
seems feeble.
\endomit
- See \l{Generic Containers} for a list of Qt 4 containers.
+ See \l{Container Classes} for a list of Qt 4 containers.
\section1 QPtrDict<T>
@@ -3258,7 +3258,7 @@
\list \o If you use Q3SocketDevice in a thread to perform blocking
network I/O (a technique encouraged by the \e{Qt Quarterly}
- article \l{http://qt.nokia.com/doc/qq/qq09-networkthread.html}
+ article \l{http://doc.qt.nokia.com/qq/qq09-networkthread.html}
{Unblocking Networking}), you can now use QTcpSocket, QFtp, or
QNetworkAccessManager, which can be used from non-GUI threads.
@@ -3939,7 +3939,7 @@
check the index against QVector::size() yourself.
\endlist
- See \l{Generic Containers} for an overview of the Qt 4 container
+ See \l{Container Classes} for an overview of the Qt 4 container
classes.
\section1 QVariant
@@ -4052,7 +4052,7 @@
Sample code on how to do obtain similar behavior from Qt 4, previously
handled by some of the above functions can be found in the
- \l{http://qt.nokia.com/doc/qwidget-qt3.html}{Qt 3 Support Members for QWidget}
+ \l{http://doc.qt.nokia.com/qwidget-qt3.html}{Qt 3 Support Members for QWidget}
page.
A widget now receives change events in its QWidget::changeEvent()
@@ -4150,7 +4150,7 @@
clearWFlags() has no direct replacement. You can use
QWidget::setAttribute() instead. For example,
\c{setAttribute(..., false)} to clear an attribute. More information
- is available \l{http://qt.nokia.com/doc/qwidget.html#setAttribute}{here}.
+ is available \l{http://doc.qt.nokia.com/qwidget.html#setAttribute}{here}.
testWFlags() was renamed to \l{QWidget::testAttribute()}{testAttribute()}.
diff --git a/doc/src/porting/qt4-tulip.qdoc b/doc/src/porting/qt4-tulip.qdoc
index 08542a6..333af84 100644
--- a/doc/src/porting/qt4-tulip.qdoc
+++ b/doc/src/porting/qt4-tulip.qdoc
@@ -97,7 +97,7 @@
you are iterating, that won't affect the loop.
For details about the new containers, see the
- \l{Generic Containers} and \l{Generic Algorithms} overview documents.
+ \l{Container Classes} and \l{Generic Algorithms} overview documents.
In addition to the new containers, considerable work has also gone into
QByteArray and QString. The Qt 3 QCString class has been
diff --git a/doc/src/qt-webpages.qdoc b/doc/src/qt-webpages.qdoc
index 89d564f..5d9b41b 100644
--- a/doc/src/qt-webpages.qdoc
+++ b/doc/src/qt-webpages.qdoc
@@ -141,7 +141,7 @@
*/
/*!
- \externalpage http://qt.nokia.com/doc/supported-platforms.html
+ \externalpage http://doc.qt.nokia.com/supported-platforms.html
\title Platform Support Policy
*/
@@ -151,7 +151,7 @@
*/
/*!
- \externalpage http://qt.nokia.com/doc/supported-platforms.html
+ \externalpage http://doc.qt.nokia.com/supported-platforms.html
\title Qt 4 Platforms Overview
*/
@@ -161,7 +161,7 @@
*/
/*!
- \externalpage http://qt.nokia.com/doc/qq/
+ \externalpage http://doc.qt.nokia.com/qq/
\title Qt Quarterly
*/
@@ -181,7 +181,7 @@
*/
/*!
- \externalpage http://qt.nokia.com/doc/qtcanvas
+ \externalpage http://doc.qt.nokia.com/qtcanvas
\title QtCanvas
*/
@@ -234,3 +234,8 @@
\externalpage http://qt.gitorious.org
\title Public Qt Repository
*/
+
+/*!
+ \externalpage http://get.qt.nokia.com/nokiasmartinstaller/
+ \title Smart Installer
+*/
diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc
index 8867fd9..88ef2a8 100644
--- a/doc/src/qt4-intro.qdoc
+++ b/doc/src/qt4-intro.qdoc
@@ -86,7 +86,7 @@
In Qt 4.4:
\list
- \o \l{QtWebkit Module}{Qt WebKit integration}, making it possible for developers
+ \o \l{Webkit in QT}{Qt WebKit integration}, making it possible for developers
to use a fully-featured Web browser to display documents and access online
services.
\o A multimedia API provided by the \l{Phonon Overview}{Phonon Multimedia Framework}.
diff --git a/doc/src/snippets/accessibilityslidersnippet.cpp b/doc/src/snippets/accessibilityslidersnippet.cpp
index 466579d..05cbe40 100644
--- a/doc/src/snippets/accessibilityslidersnippet.cpp
+++ b/doc/src/snippets/accessibilityslidersnippet.cpp
@@ -227,7 +227,7 @@ QVariant QAccessibleAbstractSlider::invokeMethodEx(Method method, int child, con
case ListSupportedMethods: {
QSet<QAccessible::Method> set;
set << ListSupportedMethods;
- return qVariantFromValue(set | qvariant_cast<QSet<QAccessible::Method> >(
+ return QVariant::fromValue(set | qvariant_cast<QSet<QAccessible::Method> >(
QAccessibleWidgetEx::invokeMethodEx(method, child, params)));
}
default:
diff --git a/doc/src/snippets/code/doc_src_porting4.qdoc b/doc/src/snippets/code/doc_src_porting4.qdoc
index 7a39f2e..9ed557c 100644
--- a/doc/src/snippets/code/doc_src_porting4.qdoc
+++ b/doc/src/snippets/code/doc_src_porting4.qdoc
@@ -165,7 +165,7 @@ while (i.hasNext()) {
//! [18]
-QList<QWidget *> myWidgets = qFindChildren<QWidget *>(myParent);
+QList<QWidget *> myWidgets = myParent->findChildren<QWidget *>();
//! [18]
diff --git a/doc/src/snippets/code/doc_src_qtscript.qdoc b/doc/src/snippets/code/doc_src_qtscript.qdoc
index 8effdf3..a81029e 100644
--- a/doc/src/snippets/code/doc_src_qtscript.qdoc
+++ b/doc/src/snippets/code/doc_src_qtscript.qdoc
@@ -964,7 +964,7 @@ QScriptValue constructXmlStreamReader(QScriptContext *context, QScriptEngine *en
XmlStreamReaderPointer pointer(reader);
// store the shared pointer in the script object that we are constructing
- return engine->newVariant(context->thisObject(), qVariantFromValue(pointer));
+ return engine->newVariant(context->thisObject(), QVariant::fromValue(pointer));
}
//! [93]
diff --git a/doc/src/snippets/code/src_corelib_kernel_qvariant.cpp b/doc/src/snippets/code/src_corelib_kernel_qvariant.cpp
index fd3f5d2..e81745c 100644
--- a/doc/src/snippets/code/src_corelib_kernel_qvariant.cpp
+++ b/doc/src/snippets/code/src_corelib_kernel_qvariant.cpp
@@ -132,5 +132,5 @@ return QVariant::fromValue(s);
//! [8]
QObject *object = getObjectFromSomewhere();
-QVariant data = qVariantFromValue(object);
+QVariant data = QVariant::fromValue(object);
//! [8]
diff --git a/doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp b/doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp
index 088e043..0bd5fdf 100644
--- a/doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp
+++ b/doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp
@@ -87,14 +87,9 @@ void myFunction(bool useSubClass)
// is equivalent to:
const QScopedPointer<QWidget> p(new QWidget());
- QWidget *const p = new QWidget();
- // is equivalent to:
- const QScopedPointer<QWidget> p(new QWidget());
-
const QWidget *p = new QWidget();
// is equivalent to:
QScopedPointer<const QWidget> p(new QWidget());
-
//! [2]
//! [3]
diff --git a/doc/src/snippets/code/src_gui_accessible_qaccessible.cpp b/doc/src/snippets/code/src_gui_accessible_qaccessible.cpp
index 8434d81..c5ca441 100644
--- a/doc/src/snippets/code/src_gui_accessible_qaccessible.cpp
+++ b/doc/src/snippets/code/src_gui_accessible_qaccessible.cpp
@@ -46,3 +46,7 @@ if (child) {
delete child;
}
//! [0]
+
+//! [1]
+typedef QAccessibleInterface* myFactoryFunction(const QString &key, QObject *);
+//! [1] \ No newline at end of file
diff --git a/doc/src/snippets/code/src_xmlpatterns_api_qxmlquery.cpp b/doc/src/snippets/code/src_xmlpatterns_api_qxmlquery.cpp
index 139e0a3..ef5cfb2 100644
--- a/doc/src/snippets/code/src_xmlpatterns_api_qxmlquery.cpp
+++ b/doc/src/snippets/code/src_xmlpatterns_api_qxmlquery.cpp
@@ -163,7 +163,7 @@
break;
default:
if (v.userType() == qMetaTypeId<QXmlName>()) {
- QXmlName n = qVariantValue<QXmlName>(v);
+ QXmlName n = qvariant_cast<QXmlName>(v);
// process QXmlName n...
}
else {
diff --git a/doc/src/snippets/declarative/SelfDestroyingRect.qml b/doc/src/snippets/declarative/SelfDestroyingRect.qml
new file mode 100644
index 0000000..f14d2d2
--- /dev/null
+++ b/doc/src/snippets/declarative/SelfDestroyingRect.qml
@@ -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 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$
+**
+****************************************************************************/
+//![0]
+import Qt 4.7
+
+Rectangle {
+ id: rect
+ width: 80; height: 80
+ color: "red"
+
+ NumberAnimation on opacity {
+ to: 0
+ duration: 1000
+
+ onRunningChanged: {
+ if (!running) {
+ console.log("Destroying...")
+ rect.destroy();
+ }
+ }
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/animation-behavioral.qml b/doc/src/snippets/declarative/animation-behavioral.qml
new file mode 100644
index 0000000..dc79018
--- /dev/null
+++ b/doc/src/snippets/declarative/animation-behavioral.qml
@@ -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 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$
+**
+****************************************************************************/
+//![0]
+import Qt 4.7
+
+Item {
+ width: 100; height: 100
+
+ Rectangle {
+ id: rect
+ width: 100; height: 100
+ color: "red"
+
+ Behavior on x { PropertyAnimation { duration: 500 } }
+ Behavior on y { PropertyAnimation { duration: 500 } }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: { rect.x = mouse.x; rect.y = mouse.y }
+ }
+}
+//![0]
+
diff --git a/doc/src/snippets/declarative/animation-easing.qml b/doc/src/snippets/declarative/animation-easing.qml
new file mode 100644
index 0000000..e65c470
--- /dev/null
+++ b/doc/src/snippets/declarative/animation-easing.qml
@@ -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 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$
+**
+****************************************************************************/
+//![0]
+import Qt 4.7
+
+Rectangle {
+ width: 100; height: 100
+ color: "red"
+
+ PropertyAnimation on x { to: 50; duration: 1000; easing.type: Easing.OutBounce }
+ PropertyAnimation on y { to: 50; duration: 1000; easing.type: Easing.OutBounce }
+}
+//![0]
+
diff --git a/doc/src/snippets/declarative/animation-elements.qml b/doc/src/snippets/declarative/animation-elements.qml
new file mode 100644
index 0000000..7cb253e
--- /dev/null
+++ b/doc/src/snippets/declarative/animation-elements.qml
@@ -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 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$
+**
+****************************************************************************/
+//![0]
+import Qt 4.7
+
+Row {
+
+//![color]
+Rectangle {
+ width: 100; height: 100
+
+ ColorAnimation on color { from: "red"; to: "yellow"; duration: 1000 }
+}
+//![color]
+
+//![rotation]
+Item {
+ width: 300; height: 300
+
+ Rectangle {
+ width: 100; height: 100; anchors.centerIn: parent
+ color: "red"
+
+ RotationAnimation on rotation { to: 90; direction: RotationAnimation.Clockwise }
+ }
+}
+//![rotation]
+
+}
diff --git a/doc/src/snippets/declarative/animation-groups.qml b/doc/src/snippets/declarative/animation-groups.qml
new file mode 100644
index 0000000..8a8f925
--- /dev/null
+++ b/doc/src/snippets/declarative/animation-groups.qml
@@ -0,0 +1,104 @@
+/****************************************************************************
+**
+** 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
+
+Row {
+
+//![0]
+Rectangle {
+ id: rect
+ width: 120; height: 200
+
+ Image {
+ id: img
+ source: "pics/qt.png"
+ anchors.horizontalCenter: parent.horizontalCenter
+ y: 0
+
+ SequentialAnimation on y {
+ loops: Animation.Infinite
+ NumberAnimation { to: rect.height - img.height; easing.type: Easing.OutBounce; duration: 2000 }
+ PauseAnimation { duration: 1000 }
+ NumberAnimation { to: 0; easing.type: Easing.OutQuad; duration: 1000 }
+ }
+ }
+}
+//![0]
+
+//![1]
+Rectangle {
+ id: redRect
+ width: 100; height: 100
+ color: "red"
+
+ MouseArea { id: mouseArea; anchors.fill: parent }
+
+ states: State {
+ name: "pressed"; when: mouseArea.pressed
+ PropertyChanges { target: redRect; color: "blue"; y: mouseArea.mouseY; width: mouseArea.mouseX }
+ }
+
+ transitions: Transition {
+
+ SequentialAnimation {
+ ColorAnimation { duration: 200 }
+ PauseAnimation { duration: 100 }
+
+ ParallelAnimation {
+ NumberAnimation {
+ duration: 500
+ easing.type: Easing.OutBounce
+ targets: redRect
+ properties: "y"
+ }
+
+ NumberAnimation {
+ duration: 800
+ easing.type: Easing.InOutQuad
+ targets: redRect
+ properties: "width"
+ }
+ }
+ }
+ }
+}
+//![1]
+
+}
diff --git a/doc/src/snippets/declarative/animation-propertyvaluesource.qml b/doc/src/snippets/declarative/animation-propertyvaluesource.qml
new file mode 100644
index 0000000..ac5f071
--- /dev/null
+++ b/doc/src/snippets/declarative/animation-propertyvaluesource.qml
@@ -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 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$
+**
+****************************************************************************/
+//![0]
+import Qt 4.7
+
+Rectangle {
+ width: 100; height: 100
+ color: "red"
+
+ PropertyAnimation on x { to: 50; duration: 1000; loops: Animation.Infinite }
+ PropertyAnimation on y { to: 50; duration: 1000; loops: Animation.Infinite }
+}
+//![0]
+
diff --git a/doc/src/snippets/declarative/animation-signalhandler.qml b/doc/src/snippets/declarative/animation-signalhandler.qml
new file mode 100644
index 0000000..749596c
--- /dev/null
+++ b/doc/src/snippets/declarative/animation-signalhandler.qml
@@ -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 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$
+**
+****************************************************************************/
+//![0]
+import Qt 4.7
+
+Rectangle {
+ id: rect
+ width: 100; height: 100
+ color: "red"
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: PropertyAnimation { target: rect; properties: "x,y"; to: 50; duration: 1000 }
+ }
+}
+
+//![0]
+
diff --git a/doc/src/snippets/declarative/animation-standalone.qml b/doc/src/snippets/declarative/animation-standalone.qml
new file mode 100644
index 0000000..d75fd92
--- /dev/null
+++ b/doc/src/snippets/declarative/animation-standalone.qml
@@ -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 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$
+**
+****************************************************************************/
+//![0]
+import Qt 4.7
+
+Rectangle {
+ id: rect
+ width: 100; height: 100
+ color: "red"
+
+ PropertyAnimation {
+ id: animation
+ target: rect
+ properties: "x,y"
+ duration: 1000
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ animation.to = 50;
+ animation.running = true;
+ }
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/animation-transitions.qml b/doc/src/snippets/declarative/animation-transitions.qml
new file mode 100644
index 0000000..3265065
--- /dev/null
+++ b/doc/src/snippets/declarative/animation-transitions.qml
@@ -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 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$
+**
+****************************************************************************/
+//![0]
+import Qt 4.7
+
+Rectangle {
+ id: rect
+ width: 100; height: 100
+ color: "red"
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: rect.state = "moved"
+ }
+
+ states: State {
+ name: "moved"
+ PropertyChanges { target: rect; x: 50; y: 50 }
+ }
+
+ transitions: Transition {
+ PropertyAnimation { properties: "x,y"; duration: 1000 }
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/animation.qml b/doc/src/snippets/declarative/animation.qml
deleted file mode 100644
index 65acd36..0000000
--- a/doc/src/snippets/declarative/animation.qml
+++ /dev/null
@@ -1,181 +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
-
-Row {
-
-//![property-anim-1]
-Rectangle {
- id: rect
- width: 120; height: 200
-
- Image {
- id: img
- source: "pics/qt.png"
- x: 60 - img.width/2
- y: 0
-
- SequentialAnimation on y {
- loops: Animation.Infinite
- NumberAnimation { to: 200 - img.height; easing.type: Easing.OutBounce; duration: 2000 }
- PauseAnimation { duration: 1000 }
- NumberAnimation { to: 0; easing.type: Easing.OutQuad; duration: 1000 }
- }
- }
-}
-//![property-anim-1]
-
-//![property-anim-2]
-Rectangle {
- width: 200; height: 200
-
- Rectangle {
- color: "red"
- width: 50; height: 50
- NumberAnimation on x { to: 50 }
- }
-}
-//![property-anim-2]
-
-
-Item {
-//![property-anim-3]
-PropertyAnimation {
- id: animation
- target: image
- property: "scale"
- from: 1; to: 0.5
-}
-
-Image {
- id: image
- source: "pics/qt.png"
- MouseArea {
- anchors.fill: parent
- onPressed: animation.start()
- }
-}
-//![property-anim-3]
-}
-
-
-//![transitions-1]
-transitions: [
- Transition {
- NumberAnimation {
- properties: "x,y"
- easing.type: Easing.OutBounce
- duration: 200
- }
- }
-]
-//![transitions-1]
-
-
-//![transitions-2]
-Transition {
- from: "*"
- to: "MyState"
- reversible: true
-
- SequentialAnimation {
- NumberAnimation {
- duration: 1000
- easing.type: Easing.OutBounce
-
- // animate myItem's x and y if they have changed in the state
- target: myItem
- properties: "x,y"
- }
-
- NumberAnimation {
- duration: 1000
-
- // animate myItem2's y to 200, regardless of what happens in the state
- target: myItem2
- property: "y"
- to: 200
- }
- }
-}
-//![transitions-2]
-
-
-//![transitions-3]
-Transition {
- from: "*"
- to: "MyState"
- reversible: true
-
- SequentialAnimation {
- ColorAnimation { duration: 1000 }
- PauseAnimation { duration: 1000 }
-
- ParallelAnimation {
- NumberAnimation {
- duration: 1000
- easing.type: Easing.OutBounce
- targets: box1
- properties: "x,y"
- }
- NumberAnimation {
- duration: 1000
- targets: box2
- properties: "x,y"
- }
- }
- }
-}
-//![transitions-3]
-
-//![behavior]
-Rectangle {
- id: redRect
- color: "red"
- width: 100; height: 100
-
- Behavior on x {
- NumberAnimation { duration: 300; easing.type: Easing.InOutQuad }
- }
-}
-//![behavior]
-
-}
diff --git a/doc/src/snippets/declarative/transition.qml b/doc/src/snippets/declarative/transition.qml
index b884750..098d509 100644
--- a/doc/src/snippets/declarative/transition.qml
+++ b/doc/src/snippets/declarative/transition.qml
@@ -46,13 +46,18 @@ Rectangle {
width: 100; height: 100
color: "red"
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ }
+
states: State {
- name: "moved"
+ name: "moved"; when: mouseArea.pressed
PropertyChanges { target: rect; x: 50; y: 50 }
}
transitions: Transition {
- PropertyAnimation { properties: "x,y"; easing.type: Easing.InOutQuad }
+ NumberAnimation { properties: "x,y"; easing.type: Easing.InOutQuad }
}
}
//![0]
diff --git a/doc/src/snippets/legal/CatharonLicense.txt b/doc/src/snippets/legal/CatharonLicense.txt
new file mode 100644
index 0000000..789c8c9
--- /dev/null
+++ b/doc/src/snippets/legal/CatharonLicense.txt
@@ -0,0 +1,123 @@
+ The Catharon Open Source LICENSE
+ ----------------------------
+
+ 2000-Jul-04
+
+ Copyright (C) 2000 by Catharon Productions, Inc.
+
+
+
+Introduction
+============
+
+ This license applies to source files distributed by Catharon
+ Productions, Inc. in several archive packages. This license
+ applies to all files found in such packages which do not fall
+ under their own explicit license.
+
+ This license was inspired by the BSD, Artistic, and IJG
+ (Independent JPEG Group) licenses, which all encourage inclusion
+ and use of free software in commercial and freeware products
+ alike. As a consequence, its main points are that:
+
+ o We don't promise that this software works. However, we are
+ interested in any kind of bug reports. (`as is' distribution)
+
+ o You can use this software for whatever you want, in parts or
+ full form, without having to pay us. (`royalty-free' usage)
+
+ o You may not pretend that you wrote this software. If you use
+ it, or only parts of it, in a program, you must acknowledge
+ somewhere in your documentation that you have used the
+ Catharon Code. (`credits')
+
+ We specifically permit and encourage the inclusion of this
+ software, with or without modifications, in commercial products.
+ We disclaim all warranties covering the packages distributed by
+ Catharon Productions, Inc. and assume no liability related to
+ their use.
+
+
+Legal Terms
+===========
+
+0. Definitions
+--------------
+
+ Throughout this license, the terms `Catharon Package', `package',
+ and `Catharon Code' refer to the set of files originally
+ distributed by Catharon Productions, Inc.
+
+ `You' refers to the licensee, or person using the project, where
+ `using' is a generic term including compiling the project's source
+ code as well as linking it to form a `program' or `executable'.
+ This program is referred to as `a program using one of the
+ Catharon Packages'.
+
+ This license applies to all files distributed in the original
+ Catharon Package(s), including all source code, binaries and
+ documentation, unless otherwise stated in the file in its
+ original, unmodified form as distributed in the original archive.
+ If you are unsure whether or not a particular file is covered by
+ this license, you must contact us to verify this.
+
+ The Catharon Packages are copyright (C) 2000 by Catharon
+ Productions, Inc. All rights reserved except as specified below.
+
+1. No Warranty
+--------------
+
+ THE CATHARON PACKAGES ARE PROVIDED `AS IS' WITHOUT WARRANTY OF ANY
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OF OR THE INABILITY TO
+ USE THE CATHARON PACKAGE.
+
+2. Redistribution
+-----------------
+
+ This license grants a worldwide, royalty-free, perpetual and
+ irrevocable right and license to use, execute, perform, compile,
+ display, copy, create derivative works of, distribute and
+ sublicense the Catharon Packages (in both source and object code
+ forms) and derivative works thereof for any purpose; and to
+ authorize others to exercise some or all of the rights granted
+ herein, subject to the following conditions:
+
+ o Redistribution of source code must retain this license file
+ (`license.txt') unaltered; any additions, deletions or changes
+ to the original files must be clearly indicated in
+ accompanying documentation. The copyright notices of the
+ unaltered, original files must be preserved in all copies of
+ source files.
+
+ o Redistribution in binary form must provide a disclaimer that
+ states that the software is based in part on the work of
+ Catharon Productions, Inc. in the distribution documentation.
+
+ These conditions apply to any software derived from or based on
+ the Catharon Packages, not just the unmodified files. If you use
+ our work, you must acknowledge us. However, no fee need be paid
+ to us.
+
+3. Advertising
+--------------
+
+ Neither Catharon Productions, Inc. and contributors nor you shall
+ use the name of the other for commercial, advertising, or
+ promotional purposes without specific prior written permission.
+
+ We suggest, but do not require, that you use the following phrase
+ to refer to this software in your documentation: 'this software is
+ based in part on the Catharon Typography Project'.
+
+ As you have not signed this license, you are not required to
+ accept it. However, as the Catharon Packages are copyrighted
+ material, only this license, or another one contracted with the
+ authors, grants you the right to use, distribute, and modify it.
+ Therefore, by using, distributing, or modifying the Catharon
+ Packages, you indicate that you understand and accept all the
+ terms of this license.
+
+--- end of license.txt ---
diff --git a/doc/src/snippets/sharedemployee/employee.h b/doc/src/snippets/sharedemployee/employee.h
index 18b47e0..2c9ba6f 100644
--- a/doc/src/snippets/sharedemployee/employee.h
+++ b/doc/src/snippets/sharedemployee/employee.h
@@ -48,7 +48,7 @@
class EmployeeData : public QSharedData
{
public:
- EmployeeData() : id(-1) { name.clear(); }
+ EmployeeData() : id(-1) { }
EmployeeData(const EmployeeData &other)
: QSharedData(other), id(other.id), name(other.name) { }
~EmployeeData() { }
diff --git a/doc/src/template/style/OfflineStyle.css b/doc/src/template/style/OfflineStyle.css
deleted file mode 100644
index 9f5d28b..0000000
--- a/doc/src/template/style/OfflineStyle.css
+++ /dev/null
@@ -1,251 +0,0 @@
-@media screen
-{
-
- .wrapper
- {
- top:50px;
- background: none;
-
- }
- .wrapper .bd
- {
- background: none;
- position: relative;
- }
-
-
-
-
- body.offline
- {
- background-image: none;
- background-color: #FFFFFF;
-
- }
-
- .offline .footer {
- margin: 0;
- }
- .offline .header
- {
- width: 100%;
- margin: 0;
- height: auto;
- background-color: #ffffff;
- padding: 10px 0 5px 0;
- overflow: visible;
- border-bottom: solid #E5E5E5 1px;
- z-index:1;
- position:fixed;
- }
-
- .offline .header .content
- {
- }
- .offline .header .qtref
- {
- color: #00732F;
- position: static;
- float: left;
- margin-left: 5px;
- font: bold 18px/1 Arial;
- }
-
- .offline .header .qtref:visited
- {
- color: #00732F;
- }
- .offline .header .qtref:hover
- {
- color: #00732F;
- text-decoration:none;
- }
- .offline .header .qtref span
- {
- background-image: none;
- text-indent: 0;
- text-decoration:none;
- }
-
- .offline .wrap
- {
- margin: 0 5px 0 5px;
- }
-
- .offline .wrap .toolbar
- {
- display:block;
- padding-top:5px;
- }
-
- .offline .wrap .breadcrumb ul li {
- font-weight: normal;
- }
-
- .offline .wrap .breadcrumb ul li a {
- /*color: #44a51c;*/
- }
-
- .offline .wrap .breadcrumb ul li.last a {
- /*color: #363534;*/
- }
-
-
-
- .narrow .indexboxcont .section {
- width: 64%;
- padding-left: 0;
- }
-
- .narrow .indexboxcont .sectionlist {
- width: 32.5%;
- }
-
- .header .icon,
- .sidebar,
- .feedback,
- .t_button,
- .feedback,
- #feedbackBox,
- #feedback,
- #blurpage,
- .indexbox .indexIcon span,
- .wrapper .hd,
- .offline .indexbox .indexIcon,
- .offline .header #nav-logo,
- #offlinemenu,
- #offlinesearch,
- .offline .header #nav-topright,
- .offline .header #shortCut ,
- .offline .wrapper .hd,
- .offline .wrapper .ft,
- .offline .sidebar,
- .offline .wrap .feedback
- {
- display:none;
- }
-
- /* end offline mode */
-#narrowmenu {
- display: none;
- float: right;
- margin: 15px 40px 0 0;
- font-size: 11px;
- }
-
- .narrow #narrowmenu {
- display: block;
- }
-
- #narrowsearch{
- display:none;
- }
-
- #narrowmenu ul
- {
- border-bottom:solid 1px #E5E5E5;
- border-left:solid 1px #E5E5E5;
- border-right:solid 1px #E5E5E5;
- }
-
- #narrowmenu a {
- line-height: 1.1;
- background: url(../images/arrow_down.png) no-repeat 100% 50%;
- white-space: nowrap;
- padding: 0 16px 0 5px;
- }
-
- #narrowmenu li {
- margin-left: 20px;
- }
-
- #narrowmenu li li {
- margin: 0 0 5px 0;
- }
-
- #narrowmenu li li a {
- padding: 0;
- background-image: none;
- }
-
- #narrowmenu li,
- #narrowmenu li ul {
- background-color: #fff;
- }
-
- #narrowmenu li ul {
- width: auto;
- padding: 5px;
- margin-top:-15px;
- }
-
- .sf-menu li:hover ul, .sf-menu li.sfHover ul {
- top: 1.2em;
- }
-.sf-menu, .sf-menu * {
- margin: 0;
- padding: 0;
- list-style: none;
-}
-.sf-menu {
- line-height: 1.0;
-}
-.sf-menu ul {
- position: absolute;
- top: -999em;
- width: 10em; /* left offset of submenus need to match (see below) */
-}
-.sf-menu ul li {
- width: 100%;
-}
-.sf-menu li:hover {
- visibility: inherit; /* fixes IE7 'sticky bug' */
-}
-.sf-menu li {
- float: left;
- position: relative;
-}
-.sf-menu a {
- display: block;
- position: relative;
-}
-.sf-menu li:hover ul,
-.sf-menu li.sfHover ul {
- left: 0;
- top: 2.5em; /* match top ul list item height */
- z-index: 99;
-}
-ul.sf-menu li:hover li ul,
-ul.sf-menu li.sfHover li ul {
- top: -999em;
-}
-ul.sf-menu li li:hover ul,
-ul.sf-menu li li.sfHover ul {
- left: 10em; /* match ul width */
- top: 0;
-}
-ul.sf-menu li li:hover li ul,
-ul.sf-menu li li.sfHover li ul {
- top: -999em;
-}
-ul.sf-menu li li li:hover ul,
-ul.sf-menu li li li.sfHover ul {
- left: 10em; /* match ul width */
- top: 0;
-}
- .wrap .content ol li {
- background:none;
- font:400 10pt/1 Verdana;
- margin-bottom:10px;
- margin-left:12px;
- }
- .wrap .content ol li {
- list-style-type:decimal;
-
- }
-
-
-
-}
-/* end of screen media */
-
diff --git a/doc/src/template/style/narrow.css b/doc/src/template/style/narrow.css
index 05159aa..e4ad135 100644
--- a/doc/src/template/style/narrow.css
+++ b/doc/src/template/style/narrow.css
@@ -15,7 +15,12 @@
}
.narrow .footer {
- margin: 0;
+ margin: 0px;
+ }
+
+ .creator .header, .creator .header .content, .creator .footer, .creator .wrapper {
+ margin: 0px;
+ min-width: 300px;
}
.narrow .header
{
@@ -126,6 +131,11 @@
margin: 0 5px 0 5px;
}
+ .creator .wrap
+ {
+ margin: 0px;
+ background:#FFFFFF;
+ }
.narrow .wrap .toolbar
{
border-bottom: none;
@@ -135,7 +145,14 @@
{
padding-top: 15px;
}
-
+ .creator .wrap .content
+ {
+ padding-top: 10px;
+ }
+ .creator .wrap .content .guide
+ {
+ padding-top: 15px;
+ }
.narrow .wrap .feedback
{
display: none;
diff --git a/doc/src/template/style/style.css b/doc/src/template/style/style.css
index 9f80921..6a32e53 100755
--- a/doc/src/template/style/style.css
+++ b/doc/src/template/style/style.css
@@ -114,6 +114,8 @@
{
border: 1px solid #DDDDDD;
-moz-border-radius: 7px 7px 7px 7px;
+ -webkit-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
margin: 0 20px 10px 10px;
padding: 20px 15px 20px 20px;
overflow-x: auto;
@@ -121,6 +123,8 @@
table, pre
{
-moz-border-radius: 7px 7px 7px 7px;
+ -webkit-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
background-color: #F6F6F6;
border: 1px solid #E6E6E6;
border-collapse: separate;
@@ -855,6 +859,8 @@
background-color:#F6F6F6;
border:1px solid #E6E6E6;
-moz-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
+ -webkit-border-radius: 7px 7px 7px 7px;
font-size:12pt;
padding-left:10px;
margin-top:10px;
@@ -911,6 +917,8 @@
{
display: none;
-moz-border-radius: 7px 7px 7px 7px;
+ -webkit-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
border: 1px solid #DDDDDD;
position: fixed;
top: 100px;
@@ -974,6 +982,8 @@
{
float: right;
-moz-border-radius: 7px 7px 7px 7px;
+ -webkit-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
background-color: #F6F6F6;
border: 1px solid #DDDDDD;
margin: 0 20px 10px 10px;
@@ -1068,6 +1078,8 @@
.relpage
{
-moz-border-radius: 7px 7px 7px 7px;
+ -webkit-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
border: 1px solid #DDDDDD;
padding: 25px 25px;
clear: both;
@@ -1084,6 +1096,8 @@
h3.fn, span.fn
{
-moz-border-radius:7px 7px 7px 7px;
+ -webkit-border-radius:7px 7px 7px 7px;
+ border-radius:7px 7px 7px 7px;
background-color: #F6F6F6;
border-width: 1px;
border-style: solid;
@@ -1102,6 +1116,8 @@
border-style: solid;
border-color: #E6E6E6;
-moz-border-radius: 7px 7px 7px 7px;
+ -webkit-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
width:100%;
}
@@ -1345,7 +1361,7 @@
font: normal 13px/1.2 Verdana;
color: #363534;
- background-color: #FFFFFF;
+ background-color: #FAFAFA;
}
@@ -1359,7 +1375,7 @@
.creator .wrapper
{
position:relative;
- top:50px;
+ top:5px;
}
.creator .wrapper .bd
{
@@ -1406,7 +1422,9 @@
border-bottom:1px solid #E5E5E5;
- width:100%,
+ /*width:100%;*/
+ margin-left:-5px;
+ margin-right:-5px;
}
.creator .wrap .breadcrumb ul li a
{
@@ -1468,7 +1486,7 @@
- position:fixed;
+ /* position:fixed;*/
}
@@ -1550,18 +1568,17 @@
@media print
{
- input, textarea, .header, .footer, .toolbar, .feedback, .wrapper .hd, .wrapper .bd .sidebar, .wrapper .ft
+ input, textarea, .header, .footer, .toolbar, .feedback, .wrapper .hd, .wrapper .bd .sidebar, .wrapper .ft, #feedbackBox, #blurpage, .toc, .breadcrumb, .toolbar, .floatingResult
{
display: none;
background: none;
}
.content
{
- position: absolute;
- top: 0px;
- left: 0px;
background: none;
display: block;
+ width: 100%; margin: 0; float: none;
+
}
}
/* end of print media */
diff --git a/doc/src/template/style/superfish_skin.css b/doc/src/template/style/superfish_skin.css
deleted file mode 100644
index 8d84827..0000000
--- a/doc/src/template/style/superfish_skin.css
+++ /dev/null
@@ -1,83 +0,0 @@
-
-/*** DEMO SKIN ***/
-.sf-menu {
- float: left;
- margin-bottom: 1em;
-}
-.sf-menu a {
- border-left: 1px solid #fff;
- border-top: 1px solid #CFDEFF;
- padding: .75em 1em;
- text-decoration:none;
-}
-.sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6 applies text colour*/
- color: #13a;
-}
-.sf-menu li {
- background: #BDD2FF;
-}
-.sf-menu li li {
- background: #AABDE6;
-}
-.sf-menu li li li {
- background: #9AAEDB;
-}
-.sf-menu li:hover, .sf-menu li.sfHover,
-.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {
- background: #CFDEFF;
- outline: 0;
-}
-
-/*** arrows **/
-.sf-menu a.sf-with-ul {
- padding-right: 2.25em;
- min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */
-}
-.sf-sub-indicator {
- position: absolute;
- display: block;
- right: .75em;
- top: 1.05em; /* IE6 only */
- width: 10px;
- height: 10px;
- text-indent: -999em;
- overflow: hidden;
- background: url('../images/arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */
-}
-a > .sf-sub-indicator { /* give all except IE6 the correct values */
- top: .8em;
- background-position: 0 -100px; /* use translucent arrow for modern browsers*/
-}
-/* apply hovers to modern browsers */
-a:focus > .sf-sub-indicator,
-a:hover > .sf-sub-indicator,
-a:active > .sf-sub-indicator,
-li:hover > a > .sf-sub-indicator,
-li.sfHover > a > .sf-sub-indicator {
- background-position: -10px -100px; /* arrow hovers for modern browsers*/
-}
-
-/* point right for anchors in subs */
-.sf-menu ul .sf-sub-indicator { background-position: -10px 0; }
-.sf-menu ul a > .sf-sub-indicator { background-position: 0 0; }
-/* apply hovers to modern browsers */
-.sf-menu ul a:focus > .sf-sub-indicator,
-.sf-menu ul a:hover > .sf-sub-indicator,
-.sf-menu ul a:active > .sf-sub-indicator,
-.sf-menu ul li:hover > a > .sf-sub-indicator,
-.sf-menu ul li.sfHover > a > .sf-sub-indicator {
- background-position: -10px 0; /* arrow hovers for modern browsers*/
-}
-
-/*** shadows for all but IE6 ***/
-.sf-shadow ul {
- background: url('../images/shadow.png') no-repeat bottom right;
- padding: 0 8px 9px 0;
- -moz-border-radius-bottomleft: 17px;
- -moz-border-radius-topright: 17px;
- -webkit-border-top-right-radius: 17px;
- -webkit-border-bottom-left-radius: 17px;
-}
-.sf-shadow ul.sf-shadow-off {
- background: transparent;
-}
diff --git a/doc/src/tutorials/modelview.qdoc b/doc/src/tutorials/modelview.qdoc
index 98096a0..b39a01c 100755
--- a/doc/src/tutorials/modelview.qdoc
+++ b/doc/src/tutorials/modelview.qdoc
@@ -80,8 +80,8 @@
/*!
\page modelview-part1.html
- \contentspage {modelview-index.html}{Model/View Contents}
- \previouspage {modelview-index.html}{Model/View Contents}
+ \contentspage {modelview.html}{Model/View Contents}
+ \previouspage {modelview.html}{Model/View Contents}
\nextpage {modelview-part2.html}{Developing a Simple Model/View Application}
\title An Introduction to Model/View Programming
diff --git a/doc/src/widgets-and-layouts/layout.qdoc b/doc/src/widgets-and-layouts/layout.qdoc
index aa4a933..d2687ea 100644
--- a/doc/src/widgets-and-layouts/layout.qdoc
+++ b/doc/src/widgets-and-layouts/layout.qdoc
@@ -37,9 +37,9 @@
\brief A tour of the standard layout managers and an introduction to custom
layouts.
- \previouspage Widget Classes
+ \previouspage Widgets and Layouts
\contentspage Widgets and Layouts
- \nextpage {Implementing Styles and Style Aware Widgets}{Styles}
+ \nextpage {Styles and Style Aware Widgets}{Styles}
\ingroup frameworks-technologies
@@ -242,7 +242,7 @@
For further guidance when implementing these functions, see the
\e{Qt Quarterly} article
- \l{http://qt.nokia.com/doc/qq/qq04-height-for-width.html}
+ \l{http://doc.qt.nokia.com/qq/qq04-height-for-width.html}
{Trading Height for Width}.
diff --git a/doc/src/widgets-and-layouts/styles.qdoc b/doc/src/widgets-and-layouts/styles.qdoc
index eab7014..180260b 100644
--- a/doc/src/widgets-and-layouts/styles.qdoc
+++ b/doc/src/widgets-and-layouts/styles.qdoc
@@ -33,7 +33,7 @@
/*!
\page style-reference.html
- \title Styles &amp Style Aware Widgets
+ \title Styles and Style Aware Widgets
\ingroup qt-gui-concepts
\brief Styles and the styling of widgets.
diff --git a/doc/src/widgets-and-layouts/stylesheet.qdoc b/doc/src/widgets-and-layouts/stylesheet.qdoc
index 1390376..5c72570 100644
--- a/doc/src/widgets-and-layouts/stylesheet.qdoc
+++ b/doc/src/widgets-and-layouts/stylesheet.qdoc
@@ -32,7 +32,7 @@
\ingroup frameworks-technologies
- \previouspage {Implementing Styles and Style Aware Widgets}{Styles}
+ \previouspage {Styles and Style Aware Widgets}{Styles}
\contentspage Widgets and Layouts
\nextpage The Style Sheet Syntax
@@ -925,7 +925,7 @@
The scroller is styled using the \l{#scroller-sub}{::scroller}.
- The tear-off is styled using the \l{#tear-off-sub}{::tear-off}.
+ The tear-off is styled using the \l{#tearoff-sub}{::tearoff}.
See \l{Qt Style Sheets Examples#Customizing QMenu}{Customizing QMenu}
for an example.
@@ -3337,7 +3337,7 @@
\o The tear indicator of a QTabBar.
\row
- \o \c ::tear-off \target tear-off-sub
+ \o \c ::tearoff \target tearoff-sub
\o The tear-off indicator of a QMenu.
\row
diff --git a/doc/src/widgets-and-layouts/widgets.qdoc b/doc/src/widgets-and-layouts/widgets.qdoc
index 18b8be1..fbce744 100644
--- a/doc/src/widgets-and-layouts/widgets.qdoc
+++ b/doc/src/widgets-and-layouts/widgets.qdoc
@@ -67,7 +67,7 @@
\section1 Widget Styles
- \l{Styles &amp Style Aware Widgets}{Styles} draw on behalf of
+ \l{Styles and Style Aware Widgets}{Styles} draw on behalf of
widgets and encapsulate the look and feel of a GUI. Qt's built-in
widgets use the QStyle class to perform nearly all of their drawing,
ensuring that they look exactly like the equivalent native widgets.
diff --git a/doc/src/windows-and-dialogs/dialogs.qdoc b/doc/src/windows-and-dialogs/dialogs.qdoc
index 6316dc9..bcf9c0e 100644
--- a/doc/src/windows-and-dialogs/dialogs.qdoc
+++ b/doc/src/windows-and-dialogs/dialogs.qdoc
@@ -27,12 +27,9 @@
/*!
\group standard-dialogs
- \title Standard Dialog Classes
-*/
-
-/*!
- \group dialog-classes
- \title Classes for Building Dialogs
+ \ingroup qt-gui-concepts
+ \title Standard Dialogs
+ \brief A list of Qt classes for implementing standard dialogs.
*/
/*!
@@ -41,7 +38,7 @@
\ingroup qt-gui-concepts
\brief An overview over dialog windows.
- \previouspage The Application Main Window
+ \previouspage Application Main Window
\contentspage Application Windows and Dialogs
\nextpage Desktop Integration
diff --git a/doc/src/xml-processing/xml-patterns.qdoc b/doc/src/xml-processing/xml-patterns.qdoc
index dcf92f6..9f1917d 100644
--- a/doc/src/xml-processing/xml-patterns.qdoc
+++ b/doc/src/xml-processing/xml-patterns.qdoc
@@ -27,7 +27,7 @@
/*!
\page xmlprocessing.html
- \title Using XML Technologies
+ \title XQuery
\previouspage Working with the DOM Tree
\contentspage XML Processing
@@ -415,7 +415,7 @@
slight-of-hand using the \l{QMetaType} {Qt metatype system}. We
must modify our example to use a couple of template functions, a
friend of QMetaType (qMetaTypeId<T>()) and a friend of QVariant
- (qVariantValue<T>()):
+ (qvariant_cast<T>()):
\snippet doc/src/snippets/code/src_xmlpatterns_api_qxmlquery.cpp 6
diff --git a/doc/src/xml-processing/xml-processing.qdoc b/doc/src/xml-processing/xml-processing.qdoc
index 0d58301..dcdd8d1 100644
--- a/doc/src/xml-processing/xml-processing.qdoc
+++ b/doc/src/xml-processing/xml-processing.qdoc
@@ -32,13 +32,15 @@
\brief Classes that support XML, via, for example DOM and SAX.
These classes are relevant to XML users.
-
+
\generatelist{related}
*/
/*!
\page xml-processing.html
\title XML Processing
+ \ingroup technology-apis
+
\brief An Overview of the XML processing facilities in Qt.
In addition to core XML support, classes for higher level querying
@@ -57,7 +59,7 @@
\o \l {XML Streaming}
\o \l {The SAX Interface}
\o \l {Working with the DOM Tree}
- \o \l {Using XML Technologies}{XQuery/XPath and XML Schema}
+ \o \l {XQuery}{XQuery/XPath and XML Schema}
\list
\o \l{A Short Path to XQuery}
\endlist
@@ -525,7 +527,7 @@
\previouspage The SAX Interface
\contentspage XML Processing
- \nextpage {Using XML Technologies}{XQuery/XPath and XML Schema}
+ \nextpage {XQuery}{XQuery/XPath and XML Schema}
DOM Level 2 is a W3C Recommendation for XML interfaces that maps the
constituents of an XML document to a tree structure. The specification
diff --git a/doc/src/xml-processing/xquery-introduction.qdoc b/doc/src/xml-processing/xquery-introduction.qdoc
index 09af688..b79c205 100644
--- a/doc/src/xml-processing/xquery-introduction.qdoc
+++ b/doc/src/xml-processing/xquery-introduction.qdoc
@@ -29,7 +29,7 @@
\page xquery-introduction.html
\title A Short Path to XQuery
-\startpage Using XML Technologies
+\startpage XQuery
\target XQuery-introduction
XQuery is a language for querying XML data or non-XML data that can be
diff --git a/examples/activeqt/hierarchy/objects.cpp b/examples/activeqt/hierarchy/objects.cpp
index 918f219..bb0b701 100644
--- a/examples/activeqt/hierarchy/objects.cpp
+++ b/examples/activeqt/hierarchy/objects.cpp
@@ -62,7 +62,7 @@ void QParentWidget::createSubWidget(const QString &name)
//! [1] //! [2]
QSubWidget *QParentWidget::subWidget(const QString &name)
{
- return qFindChild<QSubWidget*>(this, name);
+ return findChild<QSubWidget*>(name);
}
//! [2]
diff --git a/examples/animation/easing/window.cpp b/examples/animation/easing/window.cpp
index a555024..8d9775d 100644
--- a/examples/animation/easing/window.cpp
+++ b/examples/animation/easing/window.cpp
@@ -44,7 +44,7 @@ Window::Window(QWidget *parent)
: QWidget(parent), m_iconSize(64, 64)
{
m_ui.setupUi(this);
- QButtonGroup *buttonGroup = qFindChild<QButtonGroup *>(this); // ### workaround for uic in 4.4
+ QButtonGroup *buttonGroup = findChild<QButtonGroup *>(); // ### workaround for uic in 4.4
m_ui.easingCurvePicker->setIconSize(m_iconSize);
m_ui.easingCurvePicker->setMinimumHeight(m_iconSize.height() + 50);
buttonGroup->setId(m_ui.lineRadio, 0);
diff --git a/examples/declarative/cppextensions/referenceexamples/adding/main.cpp b/examples/declarative/cppextensions/referenceexamples/adding/main.cpp
index 391113c..19cf034 100644
--- a/examples/declarative/cppextensions/referenceexamples/adding/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/adding/main.cpp
@@ -51,13 +51,13 @@ int main(int argc, char ** argv)
//![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 occurred";
+ qWarning() << component.errors();
}
return 0;
diff --git a/examples/declarative/cppextensions/referenceexamples/attached/main.cpp b/examples/declarative/cppextensions/referenceexamples/attached/main.cpp
index 5a39a98..65cbc93 100644
--- a/examples/declarative/cppextensions/referenceexamples/attached/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/attached/main.cpp
@@ -56,7 +56,7 @@ int main(int argc, char ** argv)
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 @@ int main(int argc, char ** argv)
}
} else {
- qWarning() << "An error occurred";
+ qWarning() << component.errors();
}
return 0;
diff --git a/examples/declarative/cppextensions/referenceexamples/binding/main.cpp b/examples/declarative/cppextensions/referenceexamples/binding/main.cpp
index fe1bbc8..150f961 100644
--- a/examples/declarative/cppextensions/referenceexamples/binding/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/binding/main.cpp
@@ -57,7 +57,7 @@ int main(int argc, char ** argv)
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 @@ int main(int argc, char ** argv)
party->startParty();
} else {
- qWarning() << "An error occurred";
+ qWarning() << component.errors();
}
return app.exec();
diff --git a/examples/declarative/cppextensions/referenceexamples/coercion/main.cpp b/examples/declarative/cppextensions/referenceexamples/coercion/main.cpp
index 5c53368..5b16f99 100644
--- a/examples/declarative/cppextensions/referenceexamples/coercion/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/coercion/main.cpp
@@ -56,7 +56,7 @@ int main(int argc, char ** argv)
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 @@ int main(int argc, char ** argv)
for (int ii = 0; ii < party->guestCount(); ++ii)
qWarning() << " " << party->guest(ii)->name();
} else {
- qWarning() << "An error occurred";
+ qWarning() << component.errors();
}
return 0;
diff --git a/examples/declarative/cppextensions/referenceexamples/default/main.cpp b/examples/declarative/cppextensions/referenceexamples/default/main.cpp
index f611bc4..bfba642 100644
--- a/examples/declarative/cppextensions/referenceexamples/default/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/default/main.cpp
@@ -54,7 +54,7 @@ int main(int argc, char ** argv)
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 @@ int main(int argc, char ** argv)
for (int ii = 0; ii < party->guestCount(); ++ii)
qWarning() << " " << party->guest(ii)->name();
} else {
- qWarning() << "An error occurred";
+ qWarning() << component.errors();
}
return 0;
diff --git a/examples/declarative/cppextensions/referenceexamples/extended/main.cpp b/examples/declarative/cppextensions/referenceexamples/extended/main.cpp
index 65527c3..08c8440 100644
--- a/examples/declarative/cppextensions/referenceexamples/extended/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/extended/main.cpp
@@ -51,14 +51,14 @@ int main(int argc, char ** argv)
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 occurred";
+ qWarning() << component.errors();
return 0;
}
}
diff --git a/examples/declarative/cppextensions/referenceexamples/grouped/main.cpp b/examples/declarative/cppextensions/referenceexamples/grouped/main.cpp
index e56a14d..6f7f13f 100644
--- a/examples/declarative/cppextensions/referenceexamples/grouped/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/grouped/main.cpp
@@ -55,7 +55,7 @@ int main(int argc, char ** argv)
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 @@ int main(int argc, char ** argv)
qWarning() << bestShoe->name() << "is wearing the best shoes!";
} else {
- qWarning() << "An error occurred";
+ qWarning() << component.errors();
}
return 0;
diff --git a/examples/declarative/cppextensions/referenceexamples/properties/main.cpp b/examples/declarative/cppextensions/referenceexamples/properties/main.cpp
index 80237ef..d974647 100644
--- a/examples/declarative/cppextensions/referenceexamples/properties/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/properties/main.cpp
@@ -52,7 +52,7 @@ int main(int argc, char ** argv)
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 @@ int main(int argc, char ** argv)
for (int ii = 0; ii < party->guestCount(); ++ii)
qWarning() << " " << party->guest(ii)->name();
} else {
- qWarning() << "An error occurred";
+ qWarning() << component.errors();
}
return 0;
diff --git a/examples/declarative/cppextensions/referenceexamples/signal/main.cpp b/examples/declarative/cppextensions/referenceexamples/signal/main.cpp
index 56c0809..ad87bee 100644
--- a/examples/declarative/cppextensions/referenceexamples/signal/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/signal/main.cpp
@@ -56,7 +56,7 @@ int main(int argc, char ** argv)
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 @@ int main(int argc, char ** argv)
party->startParty();
} else {
- qWarning() << "An error occurred";
+ qWarning() << component.errors();
}
return 0;
diff --git a/examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp b/examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp
index 40dc3cb..aa77665 100644
--- a/examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp
@@ -58,7 +58,7 @@ int main(int argc, char ** argv)
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 @@ int main(int argc, char ** argv)
party->startParty();
} else {
- qWarning() << "An error occurred";
+ qWarning() << component.errors();
}
return app.exec();
diff --git a/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml b/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml
index 15e77de..ba49d14 100644
--- a/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml
+++ b/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml
@@ -53,6 +53,13 @@ FocusScope {
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"
+ }
}
}
}
diff --git a/examples/declarative/keyinteraction/focus/Core/GridMenu.qml b/examples/declarative/keyinteraction/focus/Core/GridMenu.qml
index 19f7235..88840cb 100644
--- a/examples/declarative/keyinteraction/focus/Core/GridMenu.qml
+++ b/examples/declarative/keyinteraction/focus/Core/GridMenu.qml
@@ -43,7 +43,10 @@ import Qt 4.7
FocusScope {
property alias interactive: gridView.interactive
- onActiveFocusChanged: if (activeFocus) mainView.state = ""
+ onActiveFocusChanged: {
+ if (activeFocus)
+ mainView.state = ""
+ }
Rectangle {
anchors.fill: parent
@@ -60,7 +63,7 @@ FocusScope {
focus: true
model: 12
- KeyNavigation.down: listViews
+ KeyNavigation.down: listMenu
KeyNavigation.left: contextMenu
delegate: Item {
diff --git a/examples/declarative/keyinteraction/focus/Core/ListViews.qml b/examples/declarative/keyinteraction/focus/Core/ListMenu.qml
index 3d6ceab..6100b32 100644
--- a/examples/declarative/keyinteraction/focus/Core/ListViews.qml
+++ b/examples/declarative/keyinteraction/focus/Core/ListMenu.qml
@@ -43,7 +43,10 @@ import Qt 4.7
FocusScope {
clip: true
- onActiveFocusChanged: if (activeFocus) mainView.state = "showListViews"
+ onActiveFocusChanged: {
+ if (activeFocus)
+ mainView.state = "showListViews"
+ }
ListView {
id: list1
diff --git a/examples/declarative/keyinteraction/focus/focus.qml b/examples/declarative/keyinteraction/focus/focus.qml
index 56fdffc..9463192 100644
--- a/examples/declarative/keyinteraction/focus/focus.qml
+++ b/examples/declarative/keyinteraction/focus/focus.qml
@@ -55,27 +55,28 @@ Rectangle {
GridMenu {
id: gridMenu
-
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 {
diff --git a/examples/designer/calculatorbuilder/calculatorform.cpp b/examples/designer/calculatorbuilder/calculatorform.cpp
index 34c869e..fa6ccb3 100644
--- a/examples/designer/calculatorbuilder/calculatorform.cpp
+++ b/examples/designer/calculatorbuilder/calculatorform.cpp
@@ -58,9 +58,9 @@ CalculatorForm::CalculatorForm(QWidget *parent)
//! [1]
//! [2]
- ui_inputSpinBox1 = qFindChild<QSpinBox*>(this, "inputSpinBox1");
- ui_inputSpinBox2 = qFindChild<QSpinBox*>(this, "inputSpinBox2");
- ui_outputWidget = qFindChild<QLabel*>(this, "outputWidget");
+ ui_inputSpinBox1 = findChild<QSpinBox*>("inputSpinBox1");
+ ui_inputSpinBox2 = findChild<QSpinBox*>("inputSpinBox2");
+ ui_outputWidget = findChild<QLabel*>("outputWidget");
//! [2]
//! [3]
diff --git a/examples/draganddrop/puzzle/pieceslist.cpp b/examples/draganddrop/puzzle/pieceslist.cpp
index 77e8723..6e82145 100644
--- a/examples/draganddrop/puzzle/pieceslist.cpp
+++ b/examples/draganddrop/puzzle/pieceslist.cpp
@@ -103,7 +103,7 @@ void PiecesList::startDrag(Qt::DropActions /*supportedActions*/)
QByteArray itemData;
QDataStream dataStream(&itemData, QIODevice::WriteOnly);
- QPixmap pixmap = qVariantValue<QPixmap>(item->data(Qt::UserRole));
+ QPixmap pixmap = qvariant_cast<QPixmap>(item->data(Qt::UserRole));
QPoint location = item->data(Qt::UserRole+1).toPoint();
dataStream << pixmap << location;
diff --git a/examples/graphicsview/diagramscene/mainwindow.cpp b/examples/graphicsview/diagramscene/mainwindow.cpp
index f09c552..e4fe633 100644
--- a/examples/graphicsview/diagramscene/mainwindow.cpp
+++ b/examples/graphicsview/diagramscene/mainwindow.cpp
@@ -224,7 +224,7 @@ void MainWindow::textColorChanged()
textAction = qobject_cast<QAction *>(sender());
fontColorToolButton->setIcon(createColorToolButtonIcon(
":/images/textpointer.png",
- qVariantValue<QColor>(textAction->data())));
+ qvariant_cast<QColor>(textAction->data())));
textButtonTriggered();
}
//! [12]
@@ -235,7 +235,7 @@ void MainWindow::itemColorChanged()
fillAction = qobject_cast<QAction *>(sender());
fillColorToolButton->setIcon(createColorToolButtonIcon(
":/images/floodfill.png",
- qVariantValue<QColor>(fillAction->data())));
+ qvariant_cast<QColor>(fillAction->data())));
fillButtonTriggered();
}
//! [13]
@@ -246,7 +246,7 @@ void MainWindow::lineColorChanged()
lineAction = qobject_cast<QAction *>(sender());
lineColorToolButton->setIcon(createColorToolButtonIcon(
":/images/linecolor.png",
- qVariantValue<QColor>(lineAction->data())));
+ qvariant_cast<QColor>(lineAction->data())));
lineButtonTriggered();
}
//! [14]
@@ -254,21 +254,21 @@ void MainWindow::lineColorChanged()
//! [15]
void MainWindow::textButtonTriggered()
{
- scene->setTextColor(qVariantValue<QColor>(textAction->data()));
+ scene->setTextColor(qvariant_cast<QColor>(textAction->data()));
}
//! [15]
//! [16]
void MainWindow::fillButtonTriggered()
{
- scene->setItemColor(qVariantValue<QColor>(fillAction->data()));
+ scene->setItemColor(qvariant_cast<QColor>(fillAction->data()));
}
//! [16]
//! [17]
void MainWindow::lineButtonTriggered()
{
- scene->setLineColor(qVariantValue<QColor>(lineAction->data()));
+ scene->setLineColor(qvariant_cast<QColor>(lineAction->data()));
}
//! [17]
diff --git a/examples/graphicsview/dragdroprobot/robot.cpp b/examples/graphicsview/dragdroprobot/robot.cpp
index 44ecda3..caca309 100644
--- a/examples/graphicsview/dragdroprobot/robot.cpp
+++ b/examples/graphicsview/dragdroprobot/robot.cpp
@@ -77,7 +77,7 @@ void RobotPart::dropEvent(QGraphicsSceneDragDropEvent *event)
{
dragOver = false;
if (event->mimeData()->hasColor())
- color = qVariantValue<QColor>(event->mimeData()->colorData());
+ color = qvariant_cast<QColor>(event->mimeData()->colorData());
update();
}
//! [3]
@@ -139,7 +139,7 @@ void RobotHead::dropEvent(QGraphicsSceneDragDropEvent *event)
{
if (event->mimeData()->hasImage()) {
dragOver = false;
- pixmap = qVariantValue<QPixmap>(event->mimeData()->imageData());
+ pixmap = qvariant_cast<QPixmap>(event->mimeData()->imageData());
update();
} else {
RobotPart::dropEvent(event);
diff --git a/examples/graphicsview/padnavigator/padnavigator.cpp b/examples/graphicsview/padnavigator/padnavigator.cpp
index 4988664..3ea68de 100644
--- a/examples/graphicsview/padnavigator/padnavigator.cpp
+++ b/examples/graphicsview/padnavigator/padnavigator.cpp
@@ -135,9 +135,9 @@ PadNavigator::PadNavigator(const QSize &size, QWidget *parent)
smoothFlipRotation->setEasingCurve(QEasingCurve::InOutQuad);
smoothFlipXRotation->setEasingCurve(QEasingCurve::InOutQuad);
smoothFlipYRotation->setEasingCurve(QEasingCurve::InOutQuad);
- smoothFlipScale->setKeyValueAt(0, qVariantValue<qreal>(1.0));
- smoothFlipScale->setKeyValueAt(0.5, qVariantValue<qreal>(0.7));
- smoothFlipScale->setKeyValueAt(1, qVariantValue<qreal>(1.0));
+ smoothFlipScale->setKeyValueAt(0, qvariant_cast<qreal>(1.0));
+ smoothFlipScale->setKeyValueAt(0.5, qvariant_cast<qreal>(0.7));
+ smoothFlipScale->setKeyValueAt(1, qvariant_cast<qreal>(1.0));
flipAnimation->addAnimation(smoothFlipRotation);
flipAnimation->addAnimation(smoothFlipScale);
flipAnimation->addAnimation(smoothFlipXRotation);
@@ -172,13 +172,13 @@ PadNavigator::PadNavigator(const QSize &size, QWidget *parent)
frontState->assignProperty(pad, "fill", false);
frontState->assignProperty(splash, "opacity", 0.0);
frontState->assignProperty(backItem, "visible", false);
- frontState->assignProperty(flipRotation, "angle", qVariantValue<qreal>(0.0));
+ frontState->assignProperty(flipRotation, "angle", qvariant_cast<qreal>(0.0));
frontState->assignProperty(selectionItem, "visible", true);
backState->assignProperty(pad, "fill", true);
backState->assignProperty(backItem, "visible", true);
- backState->assignProperty(xRotation, "angle", qVariantValue<qreal>(0.0));
- backState->assignProperty(yRotation, "angle", qVariantValue<qreal>(0.0));
- backState->assignProperty(flipRotation, "angle", qVariantValue<qreal>(180.0));
+ backState->assignProperty(xRotation, "angle", qvariant_cast<qreal>(0.0));
+ backState->assignProperty(yRotation, "angle", qvariant_cast<qreal>(0.0));
+ backState->assignProperty(flipRotation, "angle", qvariant_cast<qreal>(180.0));
backState->assignProperty(selectionItem, "visible", false);
stateMachine->addDefaultAnimation(smoothXRotation);
stateMachine->addDefaultAnimation(smoothYRotation);
diff --git a/examples/itemviews/coloreditorfactory/colorlisteditor.cpp b/examples/itemviews/coloreditorfactory/colorlisteditor.cpp
index 1af5831..4f4a954 100644
--- a/examples/itemviews/coloreditorfactory/colorlisteditor.cpp
+++ b/examples/itemviews/coloreditorfactory/colorlisteditor.cpp
@@ -50,7 +50,7 @@ ColorListEditor::ColorListEditor(QWidget *widget) : QComboBox(widget)
//! [0]
QColor ColorListEditor::color() const
{
- return qVariantValue<QColor>(itemData(currentIndex(), Qt::DecorationRole));
+ return qvariant_cast<QColor>(itemData(currentIndex(), Qt::DecorationRole));
}
//! [0]
diff --git a/examples/itemviews/puzzle/piecesmodel.cpp b/examples/itemviews/puzzle/piecesmodel.cpp
index e110cf1..e55663b 100644
--- a/examples/itemviews/puzzle/piecesmodel.cpp
+++ b/examples/itemviews/puzzle/piecesmodel.cpp
@@ -124,7 +124,7 @@ QMimeData *PiecesModel::mimeData(const QModelIndexList &indexes) const
foreach (QModelIndex index, indexes) {
if (index.isValid()) {
- QPixmap pixmap = qVariantValue<QPixmap>(data(index, Qt::UserRole));
+ QPixmap pixmap = qvariant_cast<QPixmap>(data(index, Qt::UserRole));
QPoint location = data(index, Qt::UserRole+1).toPoint();
stream << pixmap << location;
}
diff --git a/examples/itemviews/stardelegate/main.cpp b/examples/itemviews/stardelegate/main.cpp
index d9f655d..444017e 100644
--- a/examples/itemviews/stardelegate/main.cpp
+++ b/examples/itemviews/stardelegate/main.cpp
@@ -71,7 +71,7 @@ void populateTableWidget(QTableWidget *tableWidget)
QTableWidgetItem *item2 = new QTableWidgetItem(staticData[row].artist);
QTableWidgetItem *item3 = new QTableWidgetItem;
item3->setData(0,
- qVariantFromValue(StarRating(staticData[row].rating)));
+ QVariant::fromValue(StarRating(staticData[row].rating)));
tableWidget->setItem(row, 0, item0);
tableWidget->setItem(row, 1, item1);
diff --git a/examples/itemviews/stardelegate/stardelegate.cpp b/examples/itemviews/stardelegate/stardelegate.cpp
index 44dd54f..ebb2e38 100644
--- a/examples/itemviews/stardelegate/stardelegate.cpp
+++ b/examples/itemviews/stardelegate/stardelegate.cpp
@@ -48,8 +48,8 @@
void StarDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
const QModelIndex &index) const
{
- if (qVariantCanConvert<StarRating>(index.data())) {
- StarRating starRating = qVariantValue<StarRating>(index.data());
+ if (index.data().canConvert<StarRating>()) {
+ StarRating starRating = qvariant_cast<StarRating>(index.data());
if (option.state & QStyle::State_Selected)
painter->fillRect(option.rect, option.palette.highlight());
@@ -66,8 +66,8 @@ void StarDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
QSize StarDelegate::sizeHint(const QStyleOptionViewItem &option,
const QModelIndex &index) const
{
- if (qVariantCanConvert<StarRating>(index.data())) {
- StarRating starRating = qVariantValue<StarRating>(index.data());
+ if (index.data().canConvert<StarRating>()) {
+ StarRating starRating = qvariant_cast<StarRating>(index.data());
return starRating.sizeHint();
} else {
return QStyledItemDelegate::sizeHint(option, index);
@@ -81,7 +81,7 @@ QWidget *StarDelegate::createEditor(QWidget *parent,
const QModelIndex &index) const
{
- if (qVariantCanConvert<StarRating>(index.data())) {
+ if (index.data().canConvert<StarRating>()) {
StarEditor *editor = new StarEditor(parent);
connect(editor, SIGNAL(editingFinished()),
this, SLOT(commitAndCloseEditor()));
@@ -96,8 +96,8 @@ QWidget *StarDelegate::createEditor(QWidget *parent,
void StarDelegate::setEditorData(QWidget *editor,
const QModelIndex &index) const
{
- if (qVariantCanConvert<StarRating>(index.data())) {
- StarRating starRating = qVariantValue<StarRating>(index.data());
+ if (index.data().canConvert<StarRating>()) {
+ StarRating starRating = qvariant_cast<StarRating>(index.data());
StarEditor *starEditor = qobject_cast<StarEditor *>(editor);
starEditor->setStarRating(starRating);
} else {
@@ -110,9 +110,9 @@ void StarDelegate::setEditorData(QWidget *editor,
void StarDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index) const
{
- if (qVariantCanConvert<StarRating>(index.data())) {
+ if (index.data().canConvert<StarRating>()) {
StarEditor *starEditor = qobject_cast<StarEditor *>(editor);
- model->setData(index, qVariantFromValue(starEditor->starRating()));
+ model->setData(index, QVariant::fromValue(starEditor->starRating()));
} else {
QStyledItemDelegate::setModelData(editor, model, index);
}
diff --git a/examples/multimedia/audiodevices/audiodevices.cpp b/examples/multimedia/audiodevices/audiodevices.cpp
index 5ab4918..6eb0763 100644
--- a/examples/multimedia/audiodevices/audiodevices.cpp
+++ b/examples/multimedia/audiodevices/audiodevices.cpp
@@ -155,7 +155,7 @@ void AudioTest::modeChanged(int idx)
deviceBox->clear();
foreach (const QAudioDeviceInfo &deviceInfo, QAudioDeviceInfo::availableDevices(mode))
- deviceBox->addItem(deviceInfo.deviceName(), qVariantFromValue(deviceInfo));
+ deviceBox->addItem(deviceInfo.deviceName(), QVariant::fromValue(deviceInfo));
deviceBox->setCurrentIndex(0);
deviceChanged(0);
diff --git a/examples/multimedia/audioinput/audioinput.cpp b/examples/multimedia/audioinput/audioinput.cpp
index 4e5f2a3..cf18335 100644
--- a/examples/multimedia/audioinput/audioinput.cpp
+++ b/examples/multimedia/audioinput/audioinput.cpp
@@ -237,7 +237,7 @@ void InputTest::initializeWindow()
m_deviceBox = new QComboBox(this);
QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::availableDevices(QAudio::AudioInput);
for(int i = 0; i < devices.size(); ++i)
- m_deviceBox->addItem(devices.at(i).deviceName(), qVariantFromValue(devices.at(i)));
+ m_deviceBox->addItem(devices.at(i).deviceName(), QVariant::fromValue(devices.at(i)));
connect(m_deviceBox, SIGNAL(activated(int)), SLOT(deviceChanged(int)));
layout->addWidget(m_deviceBox);
diff --git a/examples/multimedia/audiooutput/audiooutput.cpp b/examples/multimedia/audiooutput/audiooutput.cpp
index bc2324e..4e74a25 100644
--- a/examples/multimedia/audiooutput/audiooutput.cpp
+++ b/examples/multimedia/audiooutput/audiooutput.cpp
@@ -176,7 +176,7 @@ void AudioTest::initializeWindow()
m_deviceBox = new QComboBox(this);
foreach (const QAudioDeviceInfo &deviceInfo, QAudioDeviceInfo::availableDevices(QAudio::AudioOutput))
- m_deviceBox->addItem(deviceInfo.deviceName(), qVariantFromValue(deviceInfo));
+ m_deviceBox->addItem(deviceInfo.deviceName(), QVariant::fromValue(deviceInfo));
connect(m_deviceBox,SIGNAL(activated(int)),SLOT(deviceChanged(int)));
layout->addWidget(m_deviceBox);
diff --git a/examples/network/bearercloud/bluetooth.svg b/examples/network/bearercloud/bluetooth.svg
new file mode 100644
index 0000000..32e2fa3
--- /dev/null
+++ b/examples/network/bearercloud/bluetooth.svg
@@ -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>
diff --git a/examples/network/bearercloud/cell.svg b/examples/network/bearercloud/cell.svg
new file mode 100644
index 0000000..7519868
--- /dev/null
+++ b/examples/network/bearercloud/cell.svg
@@ -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>
diff --git a/examples/network/bearercloud/cloud.cpp b/examples/network/bearercloud/cloud.cpp
index 980efbf..6019d9b 100644
--- a/examples/network/bearercloud/cloud.cpp
+++ b/examples/network/bearercloud/cloud.cpp
@@ -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)
@@ -261,9 +261,9 @@ void Cloud::stateChanged(QNetworkSession::State state)
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) {
@@ -313,17 +313,36 @@ void Cloud::stateChanged(QNetworkSession::State state)
//! [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"));
diff --git a/examples/network/bearercloud/gprs.svg b/examples/network/bearercloud/gprs.svg
new file mode 100644
index 0000000..4a992c1
--- /dev/null
+++ b/examples/network/bearercloud/gprs.svg
@@ -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>
diff --git a/examples/network/bearercloud/icons.qrc b/examples/network/bearercloud/icons.qrc
index 84a8939..7dea1f2 100644
--- a/examples/network/bearercloud/icons.qrc
+++ b/examples/network/bearercloud/icons.qrc
@@ -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>
diff --git a/examples/network/bearercloud/lan.svg b/examples/network/bearercloud/lan.svg
index 3cce805..4f7f63d 100644..100755
--- a/examples/network/bearercloud/lan.svg
+++ b/examples/network/bearercloud/lan.svg
@@ -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>
diff --git a/examples/network/bearercloud/umts.svg b/examples/network/bearercloud/umts.svg
new file mode 100644
index 0000000..c1b372e
--- /dev/null
+++ b/examples/network/bearercloud/umts.svg
@@ -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
diff --git a/examples/network/bearermonitor/sessionwidget.cpp b/examples/network/bearermonitor/sessionwidget.cpp
index 8b5693a..ecc2a93 100644
--- a/examples/network/bearermonitor/sessionwidget.cpp
+++ b/examples/network/bearermonitor/sessionwidget.cpp
@@ -111,11 +111,11 @@ void SessionWidget::updateSession()
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
diff --git a/examples/network/fortuneserver/fortuneserver.pro b/examples/network/fortuneserver/fortuneserver.pro
index e13f309..0ef3e97 100644
--- a/examples/network/fortuneserver/fortuneserver.pro
+++ b/examples/network/fortuneserver/fortuneserver.pro
@@ -10,7 +10,7 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/network/fortuneserver
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
diff --git a/examples/network/network.pro b/examples/network/network.pro
index 16c4087..458561a 100644
--- a/examples/network/network.pro
+++ b/examples/network/network.pro
@@ -16,9 +16,12 @@ SUBDIRS = \
threadedfortuneserver \
googlesuggest \
torrent \
- bearercloud \
bearermonitor
+ contains(QT_CONFIG, svg) {
+ SUBDIRS += bearercloud
+ }
+
# no QProcess
!vxworks:!qnx:SUBDIRS += network-chat
diff --git a/examples/network/torrent/bencodeparser.cpp b/examples/network/torrent/bencodeparser.cpp
index d6b6078..aa498d6 100644
--- a/examples/network/torrent/bencodeparser.cpp
+++ b/examples/network/torrent/bencodeparser.cpp
@@ -171,7 +171,7 @@ bool BencodeParser::getList(QList<QVariant> *list)
else if (getList(&tmpList))
tmp << tmpList;
else if (getDictionary(&dictionary))
- tmp << qVariantFromValue<QMap<QByteArray, QVariant> >(dictionary);
+ tmp << QVariant::fromValue<QMap<QByteArray, QVariant> >(dictionary);
else {
errString = QString("error at index %1").arg(index);
return false;
@@ -217,7 +217,7 @@ bool BencodeParser::getDictionary(QMap<QByteArray, QVariant> *dictionary)
else if (getList(&tmpList))
tmp.insert(key, tmpList);
else if (getDictionary(&dictionary))
- tmp.insert(key, qVariantFromValue<QMap<QByteArray, QVariant> >(dictionary));
+ tmp.insert(key, QVariant::fromValue<QMap<QByteArray, QVariant> >(dictionary));
else {
errString = QString("error at index %1").arg(index);
return false;
diff --git a/examples/network/torrent/metainfo.cpp b/examples/network/torrent/metainfo.cpp
index a6e7511..a7cd978 100644
--- a/examples/network/torrent/metainfo.cpp
+++ b/examples/network/torrent/metainfo.cpp
@@ -83,7 +83,7 @@ bool MetaInfo::parse(const QByteArray &data)
if (!dict.contains("info"))
return false;
- QMap<QByteArray, QVariant> info = qVariantValue<Dictionary>(dict.value("info"));
+ QMap<QByteArray, QVariant> info = qvariant_cast<Dictionary>(dict.value("info"));
if (info.contains("files")) {
metaInfoFileForm = MultiFileForm;
@@ -91,7 +91,7 @@ bool MetaInfo::parse(const QByteArray &data)
QList<QVariant> files = info.value("files").toList();
for (int i = 0; i < files.size(); ++i) {
- QMap<QByteArray, QVariant> file = qVariantValue<Dictionary>(files.at(i));
+ QMap<QByteArray, QVariant> file = qvariant_cast<Dictionary>(files.at(i));
QList<QVariant> pathElements = file.value("path").toList();
QByteArray path;
foreach (QVariant p, pathElements) {
diff --git a/examples/network/torrent/trackerclient.cpp b/examples/network/torrent/trackerclient.cpp
index 61d7e95..07194fa 100644
--- a/examples/network/torrent/trackerclient.cpp
+++ b/examples/network/torrent/trackerclient.cpp
@@ -210,7 +210,7 @@ void TrackerClient::httpRequestDone(bool error)
QList<QVariant> peerTmp = peerEntry.toList();
for (int i = 0; i < peerTmp.size(); ++i) {
TorrentPeer tmp;
- QMap<QByteArray, QVariant> peer = qVariantValue<QMap<QByteArray, QVariant> >(peerTmp.at(i));
+ QMap<QByteArray, QVariant> peer = qvariant_cast<QMap<QByteArray, QVariant> >(peerTmp.at(i));
tmp.id = QString::fromUtf8(peer.value("peer id").toByteArray());
tmp.address.setAddress(QString::fromUtf8(peer.value("ip").toByteArray()));
tmp.port = peer.value("port").toInt();
diff --git a/examples/phonon/qmusicplayer/mainwindow.cpp b/examples/phonon/qmusicplayer/mainwindow.cpp
index 4778138..0e8e780 100644
--- a/examples/phonon/qmusicplayer/mainwindow.cpp
+++ b/examples/phonon/qmusicplayer/mainwindow.cpp
@@ -248,7 +248,7 @@ void MainWindow::aboutToFinish()
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"));
diff --git a/examples/richtext/textobject/svgtextobject.cpp b/examples/richtext/textobject/svgtextobject.cpp
index c84725d..2442623 100644
--- a/examples/richtext/textobject/svgtextobject.cpp
+++ b/examples/richtext/textobject/svgtextobject.cpp
@@ -48,7 +48,7 @@
QSizeF SvgTextObject::intrinsicSize(QTextDocument * /*doc*/, int /*posInDocument*/,
const QTextFormat &format)
{
- QImage bufferedImage = qVariantValue<QImage>(format.property(Window::SvgData));
+ QImage bufferedImage = qvariant_cast<QImage>(format.property(Window::SvgData));
QSize size = bufferedImage.size();
if (size.height() > 25)
@@ -63,7 +63,7 @@ void SvgTextObject::drawObject(QPainter *painter, const QRectF &rect,
QTextDocument * /*doc*/, int /*posInDocument*/,
const QTextFormat &format)
{
- QImage bufferedImage = qVariantValue<QImage>(format.property(Window::SvgData));
+ QImage bufferedImage = qvariant_cast<QImage>(format.property(Window::SvgData));
painter->drawImage(rect, bufferedImage);
}
diff --git a/examples/script/calculator/main.cpp b/examples/script/calculator/main.cpp
index 8030a87..c258a9b 100644
--- a/examples/script/calculator/main.cpp
+++ b/examples/script/calculator/main.cpp
@@ -89,7 +89,7 @@ int main(int argc, char **argv)
//! [2]
#if !defined(QT_NO_SCRIPTTOOLS)
- QLineEdit *display = qFindChild<QLineEdit*>(ui, "display");
+ QLineEdit *display = ui->findChild<QLineEdit*>("display");
QObject::connect(display, SIGNAL(returnPressed()),
debugWindow, SLOT(show()));
#endif
diff --git a/examples/script/context2d/context2d.cpp b/examples/script/context2d/context2d.cpp
index c408736..49fc3bc 100644
--- a/examples/script/context2d/context2d.cpp
+++ b/examples/script/context2d/context2d.cpp
@@ -278,7 +278,7 @@ QVariant Context2D::strokeStyle() const
void Context2D::setStrokeStyle(const QVariant &style)
{
- if (qVariantCanConvert<CanvasGradient>(style)) {
+ if (style.canConvert<CanvasGradient>()) {
CanvasGradient cg = qvariant_cast<CanvasGradient>(style);
m_state.strokeStyle = cg.value;
} else {
@@ -296,7 +296,7 @@ QVariant Context2D::fillStyle() const
//! [3]
void Context2D::setFillStyle(const QVariant &style)
{
- if (qVariantCanConvert<CanvasGradient>(style)) {
+ if (style.canConvert<CanvasGradient>()) {
CanvasGradient cg = qvariant_cast<CanvasGradient>(style);
m_state.fillStyle = cg.value;
} else {
diff --git a/examples/script/context2d/domimage.cpp b/examples/script/context2d/domimage.cpp
index 801e1a2..f655c6f 100644
--- a/examples/script/context2d/domimage.cpp
+++ b/examples/script/context2d/domimage.cpp
@@ -84,7 +84,7 @@ static QScriptValue Image(QScriptContext *context, QScriptEngine *env)
{
QScriptValue val = context->thisObject();
DomImage *image = new DomImage();
- QScriptValue klass = env->newVariant(qVariantFromValue(image));
+ QScriptValue klass = env->newVariant(QVariant::fromValue(image));
klass.setPrototype(DomImage::s_self);
return klass;
}
diff --git a/examples/script/customclass/bytearrayclass.cpp b/examples/script/customclass/bytearrayclass.cpp
index 5ecee0a..7bf6d3f 100644
--- a/examples/script/customclass/bytearrayclass.cpp
+++ b/examples/script/customclass/bytearrayclass.cpp
@@ -88,7 +88,7 @@ ByteArrayClass::ByteArrayClass(QScriptEngine *engine)
proto.setPrototype(global.property("Object").property("prototype"));
ctor = engine->newFunction(construct, proto);
- ctor.setData(qScriptValueFromValue(engine, this));
+ ctor.setData(engine->toScriptValue(this));
}
//! [0]
@@ -204,7 +204,7 @@ QScriptValue ByteArrayClass::newInstance(int size)
//! [1]
QScriptValue ByteArrayClass::newInstance(const QByteArray &ba)
{
- QScriptValue data = engine()->newVariant(qVariantFromValue(ba));
+ QScriptValue data = engine()->newVariant(QVariant::fromValue(ba));
return engine()->newObject(this, data);
}
//! [1]
@@ -228,7 +228,7 @@ QScriptValue ByteArrayClass::toScriptValue(QScriptEngine *eng, const QByteArray
QScriptValue ctor = eng->globalObject().property("ByteArray");
ByteArrayClass *cls = qscriptvalue_cast<ByteArrayClass*>(ctor.data());
if (!cls)
- return eng->newVariant(qVariantFromValue(ba));
+ return eng->newVariant(QVariant::fromValue(ba));
return cls->newInstance(ba);
}
diff --git a/examples/script/marshal/main.cpp b/examples/script/marshal/main.cpp
index adfeaf1..270cb56 100644
--- a/examples/script/marshal/main.cpp
+++ b/examples/script/marshal/main.cpp
@@ -49,7 +49,7 @@ QScriptValue toScriptValue(QScriptEngine *eng, const Container &cont)
typename Container::const_iterator end = cont.end();
typename Container::const_iterator it;
for (it = begin; it != end; ++it)
- a.setProperty(quint32(it - begin), qScriptValueFromValue(eng, *it));
+ a.setProperty(quint32(it - begin), eng->toScriptValue(*it));
return a;
}
diff --git a/examples/script/qstetrix/main.cpp b/examples/script/qstetrix/main.cpp
index e12e26d..c802584 100644
--- a/examples/script/qstetrix/main.cpp
+++ b/examples/script/qstetrix/main.cpp
@@ -120,7 +120,7 @@ int main(int argc, char *argv[])
QScriptValue tetrix = ctor.construct(QScriptValueList() << scriptUi);
//! [3]
- QPushButton *debugButton = qFindChild<QPushButton*>(ui, "debugButton");
+ QPushButton *debugButton = ui->findChild<QPushButton*>("debugButton");
#if !defined(QT_NO_SCRIPTTOOLS)
QObject::connect(debugButton, SIGNAL(clicked()),
debugger.action(QScriptEngineDebugger::InterruptAction),
diff --git a/examples/sql/querymodel/customsqlmodel.cpp b/examples/sql/querymodel/customsqlmodel.cpp
index f444acf..75d16b4 100644
--- a/examples/sql/querymodel/customsqlmodel.cpp
+++ b/examples/sql/querymodel/customsqlmodel.cpp
@@ -58,7 +58,7 @@ QVariant CustomSqlModel::data(const QModelIndex &index, int role) const
return value.toString().toUpper();
}
if (role == Qt::TextColorRole && index.column() == 1)
- return qVariantFromValue(QColor(Qt::blue));
+ return QVariant::fromValue(QColor(Qt::blue));
return value;
}
//! [0]
diff --git a/examples/tools/customtype/main.cpp b/examples/tools/customtype/main.cpp
index 229cd18..430613a 100644
--- a/examples/tools/customtype/main.cpp
+++ b/examples/tools/customtype/main.cpp
@@ -65,7 +65,7 @@ int main(int argc, char *argv[])
//! [retrieving a custom value]
Message retrieved = stored.value<Message>();
qDebug() << "Retrieved:" << retrieved;
- retrieved = qVariantValue<Message>(stored);
+ retrieved = qvariant_cast<Message>(stored);
qDebug() << "Retrieved:" << retrieved;
//! [retrieving a custom value]
diff --git a/examples/tutorials/addressbook-fr/part2/addressbook.cpp b/examples/tutorials/addressbook-fr/part2/addressbook.cpp
index 1fa9d52..8d5b0e1 100644
--- a/examples/tutorials/addressbook-fr/part2/addressbook.cpp
+++ b/examples/tutorials/addressbook-fr/part2/addressbook.cpp
@@ -111,7 +111,7 @@ void AddressBook::submitContact()
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;
diff --git a/examples/tutorials/addressbook-fr/part3/addressbook.cpp b/examples/tutorials/addressbook-fr/part3/addressbook.cpp
index 840f529..2d182c5 100644
--- a/examples/tutorials/addressbook-fr/part3/addressbook.cpp
+++ b/examples/tutorials/addressbook-fr/part3/addressbook.cpp
@@ -122,9 +122,10 @@ void AddressBook::submitContact()
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)) {
diff --git a/examples/tutorials/addressbook-fr/part4/addressbook.cpp b/examples/tutorials/addressbook-fr/part4/addressbook.cpp
index f6390a4..d3bf030 100644
--- a/examples/tutorials/addressbook-fr/part4/addressbook.cpp
+++ b/examples/tutorials/addressbook-fr/part4/addressbook.cpp
@@ -131,9 +131,10 @@ void AddressBook::submitContact()
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) {
diff --git a/examples/tutorials/addressbook-fr/part5/addressbook.cpp b/examples/tutorials/addressbook-fr/part5/addressbook.cpp
index 80c18c3..d5f5778 100644
--- a/examples/tutorials/addressbook-fr/part5/addressbook.cpp
+++ b/examples/tutorials/addressbook-fr/part5/addressbook.cpp
@@ -138,10 +138,11 @@ void AddressBook::submitContact()
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) {
diff --git a/examples/tutorials/addressbook-fr/part6/addressbook.cpp b/examples/tutorials/addressbook-fr/part6/addressbook.cpp
index fc41190..7c57db7 100644
--- a/examples/tutorials/addressbook-fr/part6/addressbook.cpp
+++ b/examples/tutorials/addressbook-fr/part6/addressbook.cpp
@@ -144,9 +144,10 @@ void AddressBook::submitContact()
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) {
diff --git a/examples/tutorials/addressbook-fr/part7/addressbook.cpp b/examples/tutorials/addressbook-fr/part7/addressbook.cpp
index 3ab8702..b0f35a7 100644
--- a/examples/tutorials/addressbook-fr/part7/addressbook.cpp
+++ b/examples/tutorials/addressbook-fr/part7/addressbook.cpp
@@ -146,9 +146,10 @@ void AddressBook::submitContact()
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) {
diff --git a/examples/tutorials/addressbook/part2/addressbook.cpp b/examples/tutorials/addressbook/part2/addressbook.cpp
index 1fa9d52..f2f0d65 100644
--- a/examples/tutorials/addressbook/part2/addressbook.cpp
+++ b/examples/tutorials/addressbook/part2/addressbook.cpp
@@ -111,7 +111,7 @@ void AddressBook::submitContact()
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;
diff --git a/examples/tutorials/addressbook/part3/addressbook.cpp b/examples/tutorials/addressbook/part3/addressbook.cpp
index 28a570a..4e58fa1 100644
--- a/examples/tutorials/addressbook/part3/addressbook.cpp
+++ b/examples/tutorials/addressbook/part3/addressbook.cpp
@@ -122,7 +122,7 @@ void AddressBook::submitContact()
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;
diff --git a/examples/tutorials/addressbook/part4/addressbook.cpp b/examples/tutorials/addressbook/part4/addressbook.cpp
index 55d551f..896a427 100644
--- a/examples/tutorials/addressbook/part4/addressbook.cpp
+++ b/examples/tutorials/addressbook/part4/addressbook.cpp
@@ -131,7 +131,7 @@ void AddressBook::submitContact()
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;
diff --git a/examples/tutorials/addressbook/part5/addressbook.cpp b/examples/tutorials/addressbook/part5/addressbook.cpp
index 1b3f451..874b151 100644
--- a/examples/tutorials/addressbook/part5/addressbook.cpp
+++ b/examples/tutorials/addressbook/part5/addressbook.cpp
@@ -138,7 +138,7 @@ void AddressBook::submitContact()
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;
diff --git a/examples/tutorials/addressbook/part6/addressbook.cpp b/examples/tutorials/addressbook/part6/addressbook.cpp
index 724971c..a6bb4a5 100644
--- a/examples/tutorials/addressbook/part6/addressbook.cpp
+++ b/examples/tutorials/addressbook/part6/addressbook.cpp
@@ -144,7 +144,7 @@ void AddressBook::submitContact()
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;
diff --git a/examples/tutorials/addressbook/part7/addressbook.cpp b/examples/tutorials/addressbook/part7/addressbook.cpp
index bf00298..fb70ba4 100644
--- a/examples/tutorials/addressbook/part7/addressbook.cpp
+++ b/examples/tutorials/addressbook/part7/addressbook.cpp
@@ -146,7 +146,7 @@ void AddressBook::submitContact()
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;
diff --git a/examples/tutorials/gettingStarted/gsQml/core/button.qml b/examples/tutorials/gettingStarted/gsQml/core/button.qml
new file mode 100644
index 0000000..dd5dcad
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/core/button.qml
@@ -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
diff --git a/examples/tutorials/gettingStarted/gsQml/core/editMenu.qml b/examples/tutorials/gettingStarted/gsQml/core/editMenu.qml
new file mode 100644
index 0000000..7f47d9f
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/core/editMenu.qml
@@ -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
diff --git a/examples/tutorials/gettingStarted/gsQml/core/fileDialog.qml b/examples/tutorials/gettingStarted/gsQml/core/fileDialog.qml
new file mode 100644
index 0000000..425f717
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/core/fileDialog.qml
@@ -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
diff --git a/examples/tutorials/gettingStarted/gsQml/core/fileMenu.qml b/examples/tutorials/gettingStarted/gsQml/core/fileMenu.qml
new file mode 100644
index 0000000..afe48c7
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/core/fileMenu.qml
@@ -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()
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/examples/tutorials/gettingStarted/gsQml/core/menuBar.qml b/examples/tutorials/gettingStarted/gsQml/core/menuBar.qml
new file mode 100644
index 0000000..0695772
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/core/menuBar.qml
@@ -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
+ }
+ }
+}
diff --git a/examples/tutorials/gettingStarted/gsQml/core/qmldir b/examples/tutorials/gettingStarted/gsQml/core/qmldir
new file mode 100644
index 0000000..08575cc
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/core/qmldir
@@ -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
diff --git a/examples/tutorials/gettingStarted/gsQml/core/textArea.qml b/examples/tutorials/gettingStarted/gsQml/core/textArea.qml
new file mode 100644
index 0000000..6d3d214
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/core/textArea.qml
@@ -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
diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro b/examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro
new file mode 100644
index 0000000..d85787d
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro
@@ -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
diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp
new file mode 100644
index 0000000..e3a82dc
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp
@@ -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
diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h
new file mode 100644
index 0000000..c345641
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h
@@ -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
+
diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp
new file mode 100644
index 0000000..c46a65b
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp
@@ -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
diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h
new file mode 100644
index 0000000..0dc388a
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h
@@ -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
diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp
new file mode 100644
index 0000000..ccf762c
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp
@@ -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
diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/file.h b/examples/tutorials/gettingStarted/gsQml/filedialog/file.h
new file mode 100644
index 0000000..606f374
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/filedialog/file.h
@@ -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
diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir b/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir
new file mode 100644
index 0000000..c2b27da
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir
@@ -0,0 +1 @@
+plugin FileDialog plugins
diff --git a/examples/tutorials/gettingStarted/gsQml/images/arrow.png b/examples/tutorials/gettingStarted/gsQml/images/arrow.png
new file mode 100644
index 0000000..14978c2
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/images/arrow.png
Binary files differ
diff --git a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png
new file mode 100644
index 0000000..27feed5
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png
Binary files differ
diff --git a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png
new file mode 100644
index 0000000..4d8f9f2
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png
Binary files differ
diff --git a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png
new file mode 100644
index 0000000..680acfe
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png
Binary files differ
diff --git a/examples/tutorials/gettingStarted/gsQml/texteditor.qml b/examples/tutorials/gettingStarted/gsQml/texteditor.qml
new file mode 100644
index 0000000..3bd9d55
--- /dev/null
+++ b/examples/tutorials/gettingStarted/gsQml/texteditor.qml
@@ -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 }
+ }
+ ]
+}
diff --git a/examples/uitools/textfinder/textfinder.cpp b/examples/uitools/textfinder/textfinder.cpp
index 4bb6600..1682acd 100644
--- a/examples/uitools/textfinder/textfinder.cpp
+++ b/examples/uitools/textfinder/textfinder.cpp
@@ -49,9 +49,9 @@ TextFinder::TextFinder(QWidget *parent)
QWidget *formWidget = loadUiFile();
//! [1]
- ui_findButton = qFindChild<QPushButton*>(this, "findButton");
- ui_textEdit = qFindChild<QTextEdit*>(this, "textEdit");
- ui_lineEdit = qFindChild<QLineEdit*>(this, "lineEdit");
+ ui_findButton = findChild<QPushButton*>("findButton");
+ ui_textEdit = findChild<QTextEdit*>("textEdit");
+ ui_lineEdit = findChild<QLineEdit*>("lineEdit");
//! [0] //! [1]
//! [2]
diff --git a/examples/widgets/validators/localeselector.cpp b/examples/widgets/validators/localeselector.cpp
index e4aae1a..0a48d66 100644
--- a/examples/widgets/validators/localeselector.cpp
+++ b/examples/widgets/validators/localeselector.cpp
@@ -294,7 +294,7 @@ LocaleSelector::LocaleSelector(QWidget *parent)
QString text = QLocale::languageToString(QLocale::Language(l.lang))
+ QLatin1Char('/')
+ QLocale::countryToString(QLocale::Country(l.country));
- addItem(text, qVariantFromValue(l));
+ addItem(text, QVariant::fromValue(l));
}
setCurrentIndex(curIndex);
@@ -307,6 +307,6 @@ void LocaleSelector::emitLocaleSelected(int index)
QVariant v = itemData(index);
if (!v.isValid())
return;
- SupportedLocale l = qVariantValue<SupportedLocale>(v);
+ SupportedLocale l = qvariant_cast<SupportedLocale>(v);
emit localeSelected(QLocale(QLocale::Language(l.lang), QLocale::Country(l.country)));
}
diff --git a/examples/xmlpatterns/recipes/querymainwindow.cpp b/examples/xmlpatterns/recipes/querymainwindow.cpp
index 0fd2483..8a4c606 100644
--- a/examples/xmlpatterns/recipes/querymainwindow.cpp
+++ b/examples/xmlpatterns/recipes/querymainwindow.cpp
@@ -49,10 +49,10 @@ QueryMainWindow::QueryMainWindow() : ui_defaultQueries(0)
{
setupUi(this);
- new XmlSyntaxHighlighter(qFindChild<QTextEdit*>(this, "inputTextEdit")->document());
- new XmlSyntaxHighlighter(qFindChild<QTextEdit*>(this, "outputTextEdit")->document());
+ new XmlSyntaxHighlighter(findChild<QTextEdit*>("inputTextEdit")->document());
+ new XmlSyntaxHighlighter(findChild<QTextEdit*>("outputTextEdit")->document());
- ui_defaultQueries = qFindChild<QComboBox*>(this, "defaultQueries");
+ ui_defaultQueries = findChild<QComboBox*>("defaultQueries");
QMetaObject::connectSlotsByName(this);
connect(ui_defaultQueries, SIGNAL(currentIndexChanged(int)), SLOT(displayQuery(int)));
@@ -71,7 +71,7 @@ void QueryMainWindow::displayQuery(int index)
QFile queryFile(QString(":files/") + ui_defaultQueries->itemText(index));
queryFile.open(QIODevice::ReadOnly);
const QString query(QString::fromLatin1(queryFile.readAll()));
- qFindChild<QTextEdit*>(this, "queryTextEdit")->setPlainText(query);
+ findChild<QTextEdit*>("queryTextEdit")->setPlainText(query);
evaluate(query);
}
@@ -90,7 +90,7 @@ void QueryMainWindow::loadInputFile()
QTextStream in(&forView);
QString inputDocument = in.readAll();
- qFindChild<QTextEdit*>(this, "inputTextEdit")->setPlainText(inputDocument);
+ findChild<QTextEdit*>("inputTextEdit")->setPlainText(inputDocument);
}
@@ -116,7 +116,7 @@ void QueryMainWindow::evaluate(const QString &str)
return;
buffer.close();
- qFindChild<QTextEdit*>(this, "outputTextEdit")->setPlainText(QString::fromUtf8(outArray.constData()));
+ findChild<QTextEdit*>("outputTextEdit")->setPlainText(QString::fromUtf8(outArray.constData()));
}
//! [2]
diff --git a/mkspecs/aix-g++-64/qmake.conf b/mkspecs/aix-g++-64/qmake.conf
index d9d9c38..b0179d5 100644
--- a/mkspecs/aix-g++-64/qmake.conf
+++ b/mkspecs/aix-g++-64/qmake.conf
@@ -63,7 +63,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthreads
diff --git a/mkspecs/aix-g++/qmake.conf b/mkspecs/aix-g++/qmake.conf
index 5fc4c17..2e2e991 100644
--- a/mkspecs/aix-g++/qmake.conf
+++ b/mkspecs/aix-g++/qmake.conf
@@ -63,7 +63,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthreads
diff --git a/mkspecs/aix-xlc-64/qmake.conf b/mkspecs/aix-xlc-64/qmake.conf
index ae87b88..486b8c6 100644
--- a/mkspecs/aix-xlc-64/qmake.conf
+++ b/mkspecs/aix-xlc-64/qmake.conf
@@ -62,7 +62,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthreads
diff --git a/mkspecs/aix-xlc/qmake.conf b/mkspecs/aix-xlc/qmake.conf
index fe91236..8655db6 100644
--- a/mkspecs/aix-xlc/qmake.conf
+++ b/mkspecs/aix-xlc/qmake.conf
@@ -63,7 +63,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthreads
diff --git a/mkspecs/common/linux.conf b/mkspecs/common/linux.conf
index 4fbe2dc..e443be1 100644
--- a/mkspecs/common/linux.conf
+++ b/mkspecs/common/linux.conf
@@ -28,7 +28,7 @@ QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
QMAKE_LIBS_NIS = -lnsl
QMAKE_LIBS_EGL = -lEGL
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_OPENGL_ES1 = -lGLES_CM
QMAKE_LIBS_OPENGL_ES2 = -lGLESv2
diff --git a/mkspecs/common/symbian/header-wrappers/AknBitmapAnimation.h b/mkspecs/common/symbian/header-wrappers/AknBitmapAnimation.h
new file mode 100644
index 0000000..d53605e
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknBitmapAnimation.h
@@ -0,0 +1 @@
+#include <aknbitmapanimation.h>
diff --git a/mkspecs/common/symbian/header-wrappers/AknFontAccess.h b/mkspecs/common/symbian/header-wrappers/AknFontAccess.h
new file mode 100644
index 0000000..e33baaf
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknFontAccess.h
@@ -0,0 +1 @@
+#include <aknfontaccess.h>
diff --git a/mkspecs/common/symbian/header-wrappers/AknInputLanguageInfo.h b/mkspecs/common/symbian/header-wrappers/AknInputLanguageInfo.h
new file mode 100644
index 0000000..5f993d7
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknInputLanguageInfo.h
@@ -0,0 +1 @@
+#include <akninputlanguageinfo.h>
diff --git a/mkspecs/common/symbian/header-wrappers/ApAccessPointItem.h b/mkspecs/common/symbian/header-wrappers/ApAccessPointItem.h
new file mode 100644
index 0000000..75b6c69
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/ApAccessPointItem.h
@@ -0,0 +1 @@
+#include <apaccesspointitem.h>
diff --git a/mkspecs/common/symbian/header-wrappers/ApDataHandler.h b/mkspecs/common/symbian/header-wrappers/ApDataHandler.h
new file mode 100644
index 0000000..b7b972d
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/ApDataHandler.h
@@ -0,0 +1 @@
+#include <apdatahandler.h>
diff --git a/mkspecs/common/symbian/header-wrappers/ApUtils.h b/mkspecs/common/symbian/header-wrappers/ApUtils.h
new file mode 100644
index 0000000..09cedce
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/ApUtils.h
@@ -0,0 +1 @@
+#include <aputils.h>
diff --git a/mkspecs/common/symbian/symbian-makefile.conf b/mkspecs/common/symbian/symbian-makefile.conf
index b1ca367..364e91b 100644
--- a/mkspecs/common/symbian/symbian-makefile.conf
+++ b/mkspecs/common/symbian/symbian-makefile.conf
@@ -29,7 +29,12 @@ QMAKE_PREFIX_STATICLIB =
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 \
diff --git a/mkspecs/common/symbian/symbian-mmp.conf b/mkspecs/common/symbian/symbian-mmp.conf
index 5a7b2d2..4230ad7 100644
--- a/mkspecs/common/symbian/symbian-mmp.conf
+++ b/mkspecs/common/symbian/symbian-mmp.conf
@@ -38,24 +38,7 @@ INCLUDEPATH = \
# 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 =
diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf
index 7ec5c6c..6d96b01 100644
--- a/mkspecs/common/symbian/symbian.conf
+++ b/mkspecs/common/symbian/symbian.conf
@@ -119,6 +119,38 @@ 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.
diff --git a/mkspecs/cygwin-g++/qmake.conf b/mkspecs/cygwin-g++/qmake.conf
index 29d0958..ddfceb0 100644
--- a/mkspecs/cygwin-g++/qmake.conf
+++ b/mkspecs/cygwin-g++/qmake.conf
@@ -65,7 +65,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread
diff --git a/mkspecs/darwin-g++/qmake.conf b/mkspecs/darwin-g++/qmake.conf
index fc55503..84dc764 100644
--- a/mkspecs/darwin-g++/qmake.conf
+++ b/mkspecs/darwin-g++/qmake.conf
@@ -74,7 +74,7 @@ QMAKE_LFLAGS_RPATH =
QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD =
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
index e8946de..4fd804d 100644
--- a/mkspecs/features/qt.prf
+++ b/mkspecs/features/qt.prf
@@ -31,9 +31,6 @@ plugin { #Qt plugins
}
}
-#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 @@ wince*:static:gui {
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
diff --git a/mkspecs/features/qt_config.prf b/mkspecs/features/qt_config.prf
index 0a2d985..19e01a1 100644
--- a/mkspecs/features/qt_config.prf
+++ b/mkspecs/features/qt_config.prf
@@ -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 @@ isEmpty(QMAKE_QT_CONFIG)|!exists($$QMAKE_QT_CONFIG) {
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)
diff --git a/mkspecs/features/symbian/platform_paths.prf b/mkspecs/features/symbian/platform_paths.prf
index 5c190c8..f19898f 100644
--- a/mkspecs/features/symbian/platform_paths.prf
+++ b/mkspecs/features/symbian/platform_paths.prf
@@ -65,8 +65,11 @@ symbian-abld|symbian-sbsv2 {
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)
diff --git a/mkspecs/features/symbian/run_on_phone.prf b/mkspecs/features/symbian/run_on_phone.prf
index 818151a..f77369c 100644
--- a/mkspecs/features/symbian/run_on_phone.prf
+++ b/mkspecs/features/symbian/run_on_phone.prf
@@ -13,23 +13,25 @@ else:!equals(DEPLOYMENT, default_deployment) {
equals(GENERATE_RUN_TARGETS, true) {
symbian-abld|symbian-sbsv2 {
sis_destdir =
+ sis_file = $$basename(TARGET).sis
} else {
sis_destdir = $$DESTDIR
+ sis_file = $${TARGET}.sis
!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/$$basename(TARGET).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 += "$$basename(TARGET).exe" $(QT_RUN_OPTIONS)
QMAKE_EXTRA_TARGETS += runonphone_target
}
diff --git a/mkspecs/features/symbian/stl.prf b/mkspecs/features/symbian/stl.prf
index 3091fce..2a3bce4 100644
--- a/mkspecs/features/symbian/stl.prf
+++ b/mkspecs/features/symbian/stl.prf
@@ -15,18 +15,24 @@ INCLUDEPATH += $$OS_LAYER_STDCPP_SYSTEMINCLUDE
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
+}
diff --git a/mkspecs/features/symbian/symbian_building.prf b/mkspecs/features/symbian/symbian_building.prf
index c119c90..374fe21 100644
--- a/mkspecs/features/symbian/symbian_building.prf
+++ b/mkspecs/features/symbian/symbian_building.prf
@@ -186,7 +186,7 @@ contains(TEMPLATE, app):!contains(QMAKE_LINK, "^@:.*") {
$$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
diff --git a/mkspecs/freebsd-g++/qmake.conf b/mkspecs/freebsd-g++/qmake.conf
index 51a1960..ac52e0f 100644
--- a/mkspecs/freebsd-g++/qmake.conf
+++ b/mkspecs/freebsd-g++/qmake.conf
@@ -28,7 +28,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD =
diff --git a/mkspecs/freebsd-g++34/qmake.conf b/mkspecs/freebsd-g++34/qmake.conf
index 810efab..0f52993 100644
--- a/mkspecs/freebsd-g++34/qmake.conf
+++ b/mkspecs/freebsd-g++34/qmake.conf
@@ -63,7 +63,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD =
diff --git a/mkspecs/freebsd-g++40/qmake.conf b/mkspecs/freebsd-g++40/qmake.conf
index 4b0ac4c..3d0851a 100644
--- a/mkspecs/freebsd-g++40/qmake.conf
+++ b/mkspecs/freebsd-g++40/qmake.conf
@@ -63,7 +63,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD =
diff --git a/mkspecs/freebsd-icc/qmake.conf b/mkspecs/freebsd-icc/qmake.conf
index 99d6126..acc8f14 100644
--- a/mkspecs/freebsd-icc/qmake.conf
+++ b/mkspecs/freebsd-icc/qmake.conf
@@ -86,7 +86,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD =
diff --git a/mkspecs/hpux-acc-64/qmake.conf b/mkspecs/hpux-acc-64/qmake.conf
index 38c8555..b9aaf5a 100644
--- a/mkspecs/hpux-acc-64/qmake.conf
+++ b/mkspecs/hpux-acc-64/qmake.conf
@@ -106,7 +106,7 @@ QMAKE_LIBS = -lm
QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXt
+QMAKE_LIBS_OPENGL = -lGL -lXt
QMAKE_LIBS_OPENGL_QT = -lGL -lXt
QMAKE_LIBS_THREAD = -lpthread
QMAKE_LIBS_YACC = -ly
diff --git a/mkspecs/hpux-acc-o64/qmake.conf b/mkspecs/hpux-acc-o64/qmake.conf
index 630129c..389e813 100644
--- a/mkspecs/hpux-acc-o64/qmake.conf
+++ b/mkspecs/hpux-acc-o64/qmake.conf
@@ -104,7 +104,7 @@ QMAKE_LIBS_DYNLOAD = -ldld
QMAKE_LIBS_X11 = -lXext -lX11
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread
QMAKE_LIBS_YACC = -ly
diff --git a/mkspecs/hpux-acc/qmake.conf b/mkspecs/hpux-acc/qmake.conf
index 1c732c6..d1b6e5c 100644
--- a/mkspecs/hpux-acc/qmake.conf
+++ b/mkspecs/hpux-acc/qmake.conf
@@ -85,7 +85,7 @@ QMAKE_LIBS = -lm
QMAKE_LIBS_DYNLOAD = -ldld
QMAKE_LIBS_X11 = -lXext -lX11
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXt
+QMAKE_LIBS_OPENGL = -lGL -lXt
QMAKE_LIBS_OPENGL_QT = -lGL -lXt
QMAKE_LIBS_THREAD = -lpthread
QMAKE_LIBS_YACC = -ly
diff --git a/mkspecs/hpux-g++-64/qmake.conf b/mkspecs/hpux-g++-64/qmake.conf
index d8b0a4a..f796496 100644
--- a/mkspecs/hpux-g++-64/qmake.conf
+++ b/mkspecs/hpux-g++-64/qmake.conf
@@ -68,7 +68,7 @@ QMAKE_LIBS = -lm
QMAKE_LIBS_DYNLOAD = -ldld
QMAKE_LIBS_X11 = -lXext -lX11
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread
QMAKE_LIBS_YACC = -ly
diff --git a/mkspecs/hpux-g++/qmake.conf b/mkspecs/hpux-g++/qmake.conf
index 312c44b..e9891e7 100644
--- a/mkspecs/hpux-g++/qmake.conf
+++ b/mkspecs/hpux-g++/qmake.conf
@@ -68,7 +68,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD = -ldld
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread
QMAKE_LIBS_YACC = -ly
diff --git a/mkspecs/hpuxi-acc-32/qmake.conf b/mkspecs/hpuxi-acc-32/qmake.conf
index a26cb32..d7e4a0a 100644
--- a/mkspecs/hpuxi-acc-32/qmake.conf
+++ b/mkspecs/hpuxi-acc-32/qmake.conf
@@ -60,7 +60,7 @@ QMAKE_LIBS = -lm
QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXt
+QMAKE_LIBS_OPENGL = -lGL -lXt
QMAKE_LIBS_OPENGL_QT = -lGL -lXt
QMAKE_LIBS_THREAD = -lpthread
QMAKE_LIBS_YACC = -ly
diff --git a/mkspecs/hpuxi-acc-64/qmake.conf b/mkspecs/hpuxi-acc-64/qmake.conf
index 3e2d59f..3ed9b55 100644
--- a/mkspecs/hpuxi-acc-64/qmake.conf
+++ b/mkspecs/hpuxi-acc-64/qmake.conf
@@ -103,7 +103,7 @@ QMAKE_LIBS = -lm
QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXt
+QMAKE_LIBS_OPENGL = -lGL -lXt
QMAKE_LIBS_OPENGL_QT = -lGL -lXt
QMAKE_LIBS_THREAD = -lpthread
QMAKE_LIBS_YACC = -ly
diff --git a/mkspecs/hpuxi-g++-64/qmake.conf b/mkspecs/hpuxi-g++-64/qmake.conf
index 3151d85..a8f445c 100644
--- a/mkspecs/hpuxi-g++-64/qmake.conf
+++ b/mkspecs/hpuxi-g++-64/qmake.conf
@@ -71,7 +71,7 @@ QMAKE_LIBS = -lm
QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread
QMAKE_LIBS_YACC = -ly
diff --git a/mkspecs/hurd-g++/qmake.conf b/mkspecs/hurd-g++/qmake.conf
index 6570e40..d89f2e4 100644
--- a/mkspecs/hurd-g++/qmake.conf
+++ b/mkspecs/hurd-g++/qmake.conf
@@ -67,7 +67,7 @@ QMAKE_LIBS_NIS = -lnsl
QMAKE_LIBS_QT_THREAD = -lqt-mt
QMAKE_LIBS_THREAD =
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
diff --git a/mkspecs/irix-cc-64/qmake.conf b/mkspecs/irix-cc-64/qmake.conf
index b8d316e..ec94824 100644
--- a/mkspecs/irix-cc-64/qmake.conf
+++ b/mkspecs/irix-cc-64/qmake.conf
@@ -94,7 +94,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lm
+QMAKE_LIBS_OPENGL = -lGL -lm
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread
diff --git a/mkspecs/irix-cc/qmake.conf b/mkspecs/irix-cc/qmake.conf
index 2f4f03f..777da9b 100644
--- a/mkspecs/irix-cc/qmake.conf
+++ b/mkspecs/irix-cc/qmake.conf
@@ -94,7 +94,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lm
+QMAKE_LIBS_OPENGL = -lGL -lm
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread
diff --git a/mkspecs/irix-g++-64/qmake.conf b/mkspecs/irix-g++-64/qmake.conf
index 610d92c..aa853de 100644
--- a/mkspecs/irix-g++-64/qmake.conf
+++ b/mkspecs/irix-g++-64/qmake.conf
@@ -67,7 +67,7 @@ QMAKE_LIBS_X11SM = -lSM -lICE
# libGLU is using the SGI C++ library internally and this somehow clashes
# with the GNU C++ library (similar name mangling and symbol names?)
# so we add -lC so that the SGI C++ library is used first...
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread
diff --git a/mkspecs/irix-g++/qmake.conf b/mkspecs/irix-g++/qmake.conf
index 41841f3..77d47a9 100644
--- a/mkspecs/irix-g++/qmake.conf
+++ b/mkspecs/irix-g++/qmake.conf
@@ -67,7 +67,7 @@ QMAKE_LIBS_X11SM = -lSM -lICE
# libGLU is using the SGI C++ library internally and this somehow clashes
# with the GNU C++ library (similar name mangling and symbol names?)
# so we add -lC so that the SGI C++ library is used first...
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread
diff --git a/mkspecs/linux-cxx/qmake.conf b/mkspecs/linux-cxx/qmake.conf
index 879c78a..ce303b7 100644
--- a/mkspecs/linux-cxx/qmake.conf
+++ b/mkspecs/linux-cxx/qmake.conf
@@ -60,7 +60,7 @@ QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
diff --git a/mkspecs/linux-ecc-64/qmake.conf b/mkspecs/linux-ecc-64/qmake.conf
index aa50b87..61a056b 100644
--- a/mkspecs/linux-ecc-64/qmake.conf
+++ b/mkspecs/linux-ecc-64/qmake.conf
@@ -63,7 +63,7 @@ QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread
diff --git a/mkspecs/linux-icc/qmake.conf b/mkspecs/linux-icc/qmake.conf
index 3b26f7d..16e5197 100644
--- a/mkspecs/linux-icc/qmake.conf
+++ b/mkspecs/linux-icc/qmake.conf
@@ -70,7 +70,7 @@ QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread
diff --git a/mkspecs/linux-kcc/qmake.conf b/mkspecs/linux-kcc/qmake.conf
index 5c6001c..01e3b73 100644
--- a/mkspecs/linux-kcc/qmake.conf
+++ b/mkspecs/linux-kcc/qmake.conf
@@ -72,7 +72,7 @@ QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD =
diff --git a/mkspecs/linux-pgcc/qmake.conf b/mkspecs/linux-pgcc/qmake.conf
index 16d0023..63ede78 100644
--- a/mkspecs/linux-pgcc/qmake.conf
+++ b/mkspecs/linux-pgcc/qmake.conf
@@ -63,7 +63,7 @@ QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread
diff --git a/mkspecs/lynxos-g++/qmake.conf b/mkspecs/lynxos-g++/qmake.conf
index fc0fc43..6b6f405 100644
--- a/mkspecs/lynxos-g++/qmake.conf
+++ b/mkspecs/lynxos-g++/qmake.conf
@@ -66,7 +66,7 @@ QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread
diff --git a/mkspecs/netbsd-g++/qmake.conf b/mkspecs/netbsd-g++/qmake.conf
index 1d3fd2b..4d4270d 100644
--- a/mkspecs/netbsd-g++/qmake.conf
+++ b/mkspecs/netbsd-g++/qmake.conf
@@ -64,7 +64,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD =
diff --git a/mkspecs/openbsd-g++/qmake.conf b/mkspecs/openbsd-g++/qmake.conf
index c948c90..f4bb223 100644
--- a/mkspecs/openbsd-g++/qmake.conf
+++ b/mkspecs/openbsd-g++/qmake.conf
@@ -65,7 +65,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD =
diff --git a/mkspecs/sco-cc/qmake.conf b/mkspecs/sco-cc/qmake.conf
index 6eb5ca1..179b774 100644
--- a/mkspecs/sco-cc/qmake.conf
+++ b/mkspecs/sco-cc/qmake.conf
@@ -60,7 +60,7 @@ QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXt
+QMAKE_LIBS_OPENGL = -lGL -lXt
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
diff --git a/mkspecs/sco-g++/qmake.conf b/mkspecs/sco-g++/qmake.conf
index d4091ff..9b321a4 100644
--- a/mkspecs/sco-g++/qmake.conf
+++ b/mkspecs/sco-g++/qmake.conf
@@ -61,7 +61,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lsocket -lm
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
diff --git a/mkspecs/solaris-cc-64/qmake.conf b/mkspecs/solaris-cc-64/qmake.conf
index a026756..80709af 100644
--- a/mkspecs/solaris-cc-64/qmake.conf
+++ b/mkspecs/solaris-cc-64/qmake.conf
@@ -83,7 +83,7 @@ QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl
QMAKE_LIBS_X11SM = -lSM -lICE
QMAKE_LIBS_NIS =
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread -lrt
QMAKE_LIBS_NETWORK = -lresolv -lsocket -lxnet -lnsl
diff --git a/mkspecs/solaris-cc/qmake.conf b/mkspecs/solaris-cc/qmake.conf
index 8a8f1ac..0672841 100644
--- a/mkspecs/solaris-cc/qmake.conf
+++ b/mkspecs/solaris-cc/qmake.conf
@@ -66,7 +66,7 @@ QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl
QMAKE_LIBS_X11SM = -lSM -lICE
QMAKE_LIBS_NIS =
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread -lrt
QMAKE_LIBS_NETWORK = -lresolv -lsocket -lxnet -lnsl
diff --git a/mkspecs/solaris-g++-64/qmake.conf b/mkspecs/solaris-g++-64/qmake.conf
index 01e331c..7bc7b9f 100644
--- a/mkspecs/solaris-g++-64/qmake.conf
+++ b/mkspecs/solaris-g++-64/qmake.conf
@@ -87,7 +87,7 @@ QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl
QMAKE_LIBS_X11SM = -lSM -lICE
QMAKE_LIBS_NIS =
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread -lrt
QMAKE_LIBS_NETWORK = -lresolv -lsocket -lxnet -lnsl
diff --git a/mkspecs/solaris-g++/qmake.conf b/mkspecs/solaris-g++/qmake.conf
index c7f6406..be21cdd 100644
--- a/mkspecs/solaris-g++/qmake.conf
+++ b/mkspecs/solaris-g++/qmake.conf
@@ -70,7 +70,7 @@ QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl
QMAKE_LIBS_X11SM = -lSM -lICE
QMAKE_LIBS_NIS =
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread -lrt
QMAKE_LIBS_NETWORK = -lresolv -lsocket -lxnet -lnsl
diff --git a/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm b/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm
index e0b6503..47c3f1e 100644
--- a/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm
+++ b/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm
@@ -38,7 +38,7 @@ $(STORE_BUILD_TARGET):
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)-$(VARIANTPLATFORM) >> $(CACHE_FILENAME)
$(call endrule,qmake_store_build)
endef
diff --git a/mkspecs/symbian-sbsv2/flm/qt/qt.xml b/mkspecs/symbian-sbsv2/flm/qt/qt.xml
index 0f7db3c..12857a2 100644
--- a/mkspecs/symbian-sbsv2/flm/qt/qt.xml
+++ b/mkspecs/symbian-sbsv2/flm/qt/qt.xml
@@ -37,5 +37,6 @@
<interface name="qt.qmake_store_build" extends="Symbian.UserFLM"
flm="qmake_store_build.flm">
+ <param name='VARIANTPLATFORM' />
</interface>
</build>
diff --git a/mkspecs/symbian/linux-armcc/qmake.conf b/mkspecs/symbian/linux-armcc/qmake.conf
index f8072e3..f058421 100644
--- a/mkspecs/symbian/linux-armcc/qmake.conf
+++ b/mkspecs/symbian/linux-armcc/qmake.conf
@@ -31,7 +31,7 @@ QMAKE_QtWebKit_CXXFLAGS = --arm
# 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 += $${EPOCROOT}epoc32/release/armv5/lib
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
+}
diff --git a/mkspecs/tru64-cxx/qmake.conf b/mkspecs/tru64-cxx/qmake.conf
index d2c6937..afabf3e 100644
--- a/mkspecs/tru64-cxx/qmake.conf
+++ b/mkspecs/tru64-cxx/qmake.conf
@@ -60,7 +60,7 @@ QMAKE_LIBS = -lm
QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_X11 = -lXext -lX11
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lrt
diff --git a/mkspecs/tru64-g++/qmake.conf b/mkspecs/tru64-g++/qmake.conf
index f2b8e39..6acd5cd 100644
--- a/mkspecs/tru64-g++/qmake.conf
+++ b/mkspecs/tru64-g++/qmake.conf
@@ -62,7 +62,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread -lexc -lrt
diff --git a/mkspecs/unixware-cc/qmake.conf b/mkspecs/unixware-cc/qmake.conf
index 5f88b80..74478d6 100644
--- a/mkspecs/unixware-cc/qmake.conf
+++ b/mkspecs/unixware-cc/qmake.conf
@@ -64,7 +64,7 @@ QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXt
+QMAKE_LIBS_OPENGL = -lGL -lXt
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD =
diff --git a/mkspecs/unixware-g++/qmake.conf b/mkspecs/unixware-g++/qmake.conf
index 34d6d61..a158d95 100644
--- a/mkspecs/unixware-g++/qmake.conf
+++ b/mkspecs/unixware-g++/qmake.conf
@@ -64,7 +64,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl -lm
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXt
+QMAKE_LIBS_OPENGL = -lGL -lXt
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lthread
diff --git a/mkspecs/unsupported/linux-host-g++/qmake.conf b/mkspecs/unsupported/linux-host-g++/qmake.conf
index 38849f8..46ecf37 100644
--- a/mkspecs/unsupported/linux-host-g++/qmake.conf
+++ b/mkspecs/unsupported/linux-host-g++/qmake.conf
@@ -101,7 +101,7 @@ QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
QMAKE_LIBS_NIS = -lnsl
QMAKE_LIBS_EGL = -lEGL
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_OPENGL_ES1 = -lGLES_CM
QMAKE_LIBS_OPENGL_ES2 = -lGLESv2
diff --git a/mkspecs/unsupported/qnx-g++/qmake.conf b/mkspecs/unsupported/qnx-g++/qmake.conf
index 37e7bce..dfe9bed 100644
--- a/mkspecs/unsupported/qnx-g++/qmake.conf
+++ b/mkspecs/unsupported/qnx-g++/qmake.conf
@@ -31,7 +31,7 @@ QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_X11 = -lXext -lX11 -lm -lsocket
QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD =
QMAKE_LIBS_NETWORK = -lsocket
diff --git a/mkspecs/unsupported/vxworks-ppc-dcc/qmake.conf b/mkspecs/unsupported/vxworks-ppc-dcc/qmake.conf
index e3eb6cd..a3b571b 100644
--- a/mkspecs/unsupported/vxworks-ppc-dcc/qmake.conf
+++ b/mkspecs/unsupported/vxworks-ppc-dcc/qmake.conf
@@ -78,7 +78,7 @@ QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_X11 = -lXext -lX11
QMAKE_LIBS_X11SM = -lSM -lICE
QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD =
QMAKE_LIBS_NETWORK = # -lnetwrap # only needed if kernel is missing gethostbyname and friends
diff --git a/mkspecs/unsupported/vxworks-simpentium-dcc/qmake.conf b/mkspecs/unsupported/vxworks-simpentium-dcc/qmake.conf
index d0aeff6..8bdf1c5 100644
--- a/mkspecs/unsupported/vxworks-simpentium-dcc/qmake.conf
+++ b/mkspecs/unsupported/vxworks-simpentium-dcc/qmake.conf
@@ -78,7 +78,7 @@ QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_X11 = -lXext -lX11
QMAKE_LIBS_X11SM = -lSM -lICE
QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD =
QMAKE_LIBS_NETWORK = # -lnet # only needed if kernel is missing gethostbyname and friends
diff --git a/qmake/cachekeys.h b/qmake/cachekeys.h
index 63bd224..c5c1631 100644
--- a/qmake/cachekeys.h
+++ b/qmake/cachekeys.h
@@ -166,12 +166,9 @@ struct FileFixifyCacheKey
inline uint qHash(const FileFixifyCacheKey &f) { return f.hashCode(); }
// -------------------------------------------------------------------------------------------------
-// As MSVC 6.0 can't handle template functions that well, we need a separate function for each type
-inline void qmakeDeleteCacheClear_QMapStringInt(void *i) { delete reinterpret_cast<QMap<QString,int> *>(i); }
-inline void qmakeDeleteCacheClear_QStringList(void *i) { delete reinterpret_cast<QStringList *>(i); }
-inline void qmakeDeleteCacheClear_QHashFixStringCacheKeyQString(void *i) { delete reinterpret_cast<QHash<FixStringCacheKey, QString> *>(i); }
-inline void qmakeDeleteCacheClear_QHashFileInfoCacheKeyQFileInfo(void *i) { delete reinterpret_cast<QHash<FileInfoCacheKey, QFileInfo> *>(i); }
-inline void qmakeDeleteCacheClear_QHashFileFixifyCacheKeyQString(void *i) { delete reinterpret_cast<QHash<FileFixifyCacheKey, QString> *>(i); }
+template <typename T>
+inline void qmakeDeleteCacheClear(void *i) { delete reinterpret_cast<T*>(i); }
+
inline void qmakeFreeCacheClear(void *i) { free(i); }
typedef void (*qmakeCacheClearFunc)(void *);
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index 45a96f5..74c7977 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -2712,7 +2712,7 @@ MakefileGenerator::fileInfo(QString file) const
static QFileInfo noInfo = QFileInfo();
if(!cache) {
cache = new QHash<FileInfoCacheKey, QFileInfo>;
- qmakeAddCacheClear(qmakeDeleteCacheClear_QHashFileInfoCacheKeyQFileInfo, (void**)&cache);
+ qmakeAddCacheClear(qmakeDeleteCacheClear<QHash<FileInfoCacheKey, QFileInfo> >, (void**)&cache);
}
FileInfoCacheKey cacheKey(file);
QFileInfo value = cache->value(cacheKey, noInfo);
@@ -2791,7 +2791,7 @@ MakefileGenerator::fileFixify(const QString& file, const QString &out_d, const Q
static QHash<FileFixifyCacheKey, QString> *cache = 0;
if(!cache) {
cache = new QHash<FileFixifyCacheKey, QString>;
- qmakeAddCacheClear(qmakeDeleteCacheClear_QHashFileFixifyCacheKeyQString, (void**)&cache);
+ qmakeAddCacheClear(qmakeDeleteCacheClear<QHash<FileFixifyCacheKey, QString> >, (void**)&cache);
}
FileFixifyCacheKey cacheKey(ret, out_d, in_d, fix, canon);
QString cacheVal = cache->value(cacheKey);
diff --git a/qmake/generators/symbian/symbiancommon.cpp b/qmake/generators/symbian/symbiancommon.cpp
index 3a4bdbc..d124b02 100644
--- a/qmake/generators/symbian/symbiancommon.cpp
+++ b/qmake/generators/symbian/symbiancommon.cpp
@@ -252,8 +252,30 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocB
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);
+
+ // Package header
QString sisHeader = "; SIS header: name, uid, version\n#{\"%1\"},(%2),%3\n\n";
QString visualTarget = generator->escapeFilePath(project->first("TARGET"));
diff --git a/qmake/generators/symbian/symmake.cpp b/qmake/generators/symbian/symmake.cpp
index ff58270..cf6bd13 100644
--- a/qmake/generators/symbian/symmake.cpp
+++ b/qmake/generators/symbian/symmake.cpp
@@ -241,13 +241,8 @@ bool SymbianMakefileGenerator::writeMakefile(QTextStream &t)
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")) {
@@ -281,6 +276,15 @@ void SymbianMakefileGenerator::init()
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");
@@ -480,7 +484,7 @@ void SymbianMakefileGenerator::writeMmpFileHeader(QTextStream &t)
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;
}
@@ -890,8 +894,6 @@ void SymbianMakefileGenerator::writeBldInfContent(QTextStream &t, bool addDeploy
// 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);
@@ -973,15 +975,8 @@ void SymbianMakefileGenerator::writeBldInfContent(QTextStream &t, bool addDeploy
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)
diff --git a/qmake/generators/symbian/symmake.h b/qmake/generators/symbian/symmake.h
index 9853790..a1a8e88 100644
--- a/qmake/generators/symbian/symmake.h
+++ b/qmake/generators/symbian/symmake.h
@@ -59,6 +59,7 @@ class SymbianMakefileGenerator : public MakefileGenerator, public SymbianCommonG
protected:
QString platform;
QString uid2;
+ QString mmpFileName;
QMap<QString, QStringList> sources;
QMap<QString, QStringList> systeminclude;
QMap<QString, QStringList> library;
@@ -78,6 +79,7 @@ protected:
QString generateUID3();
void initMmpVariables();
+ void generateMmpFileName();
void handleMmpRulesOverrides(QString &checkString,
bool &inResourceBlock,
QStringList &restrictedMmpKeywords,
diff --git a/qmake/generators/symbian/symmake_abld.cpp b/qmake/generators/symbian/symmake_abld.cpp
index d60528b..85dcab4 100644
--- a/qmake/generators/symbian/symmake_abld.cpp
+++ b/qmake/generators/symbian/symmake_abld.cpp
@@ -70,10 +70,6 @@ SymbianAbldMakefileGenerator::~SymbianAbldMakefileGenerator() { }
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();
@@ -253,13 +249,17 @@ void SymbianAbldMakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, bool
} 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;
@@ -471,9 +471,8 @@ void SymbianAbldMakefileGenerator::writeBldInfMkFilePart(QTextStream& t, bool ad
// 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;
}
}
diff --git a/qmake/generators/symbian/symmake_abld.h b/qmake/generators/symbian/symmake_abld.h
index f998b28..214e0c5 100644
--- a/qmake/generators/symbian/symmake_abld.h
+++ b/qmake/generators/symbian/symmake_abld.h
@@ -58,7 +58,7 @@ protected:
virtual void appendAbldTempDirs(QStringList& sysincspaths, QString includepath);
bool writeDeploymentTargets(QTextStream &t, bool isRom);
-
+ QString gnuMakefileName;
public:
SymbianAbldMakefileGenerator();
diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp
index 78f6f85..036eb1d 100644
--- a/qmake/generators/symbian/symmake_sbsv2.cpp
+++ b/qmake/generators/symbian/symmake_sbsv2.cpp
@@ -56,6 +56,12 @@ SymbianSbsv2MakefileGenerator::~SymbianSbsv2MakefileGenerator() { }
#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.
@@ -90,6 +96,67 @@ void SymbianSbsv2MakefileGenerator::exportFlm()
}
}
+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) {
@@ -118,21 +185,45 @@ void SymbianSbsv2MakefileGenerator::writeMkFile(const QString& wrapperFileName,
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;
+ if (QString::compare(gcceVersion(), UNDETECTED_GCCE_VERSION) == 0)
+ allPlatforms.removeAll(PLATFORM_GCCE);
+ else
+ gcceClause = " -c arm.v5.%1." + gcceVersion() + ".release_gcce" + testClause;
+
+ QStringList allClauses;
+ QStringList debugClauses;
+ QStringList releaseClauses;
+
+ QStringList debugPlatforms = allPlatforms;
+ QStringList releasePlatforms = allPlatforms;
+ releasePlatforms.removeAll(PLATFORM_WINSCW); // No release for emulator
+
+ foreach(QString item, debugPlatforms) {
+ debugClauses << configClause(item, debugBuild, winscwClause, gcceClause, genericClause);
+ }
+ foreach(QString item, releasePlatforms) {
+ releaseClauses << configClause(item, releaseBuild, winscwClause, gcceClause, genericClause);
+ }
+ allClauses << debugClauses << releaseClauses;
+
+
QTextStream t(&wrapperFile);
t << "# ==============================================================================" << endl;
@@ -172,9 +263,9 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo
}
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();
@@ -187,60 +278,61 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo
} 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 << 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;
- QString winscw("winscw");
+ 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,
@@ -258,30 +350,37 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo
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;
}
diff --git a/qmake/generators/symbian/symmake_sbsv2.h b/qmake/generators/symbian/symmake_sbsv2.h
index 286c91c..6644a03 100644
--- a/qmake/generators/symbian/symmake_sbsv2.h
+++ b/qmake/generators/symbian/symmake_sbsv2.h
@@ -65,6 +65,13 @@ public:
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;
diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp
index 75fc910..a397ae9 100644
--- a/qmake/generators/win32/msbuild_objectmodel.cpp
+++ b/qmake/generators/win32/msbuild_objectmodel.cpp
@@ -50,26 +50,14 @@ QT_BEGIN_NAMESPACE
// XML Tags ---------------------------------------------------------
const char _CLCompile[] = "ClCompile";
-const char _Configuration[] = "Configuration";
-const char _Configurations[] = "Configurations";
-const char q_File[] = "File";
-const char _FileConfiguration[] = "FileConfiguration";
-const char q_Files[] = "Files";
-const char _Filter[] = "Filter";
-const char _Globals[] = "Globals";
const char _ItemGroup[] = "ItemGroup";
const char _Link[] = "Link";
const char _Midl[] = "Midl";
-const char _Platform[] = "Platform";
-const char _Platforms[] = "Platforms";
const char _ResourceCompile[] = "ResourceCompile";
-const char _Tool[] = "Tool";
-const char _VisualStudioProject[] = "VisualStudioProject";
// XML Properties ---------------------------------------------------
const char _AddModuleNamesToAssembly[] = "AddModuleNamesToAssembly";
const char _AdditionalDependencies[] = "AdditionalDependencies";
-const char _AdditionalFiles[] = "AdditionalFiles";
const char _AdditionalIncludeDirectories[] = "AdditionalIncludeDirectories";
const char _AdditionalLibraryDirectories[] = "AdditionalLibraryDirectories";
const char _AdditionalManifestDependencies[] = "AdditionalManifestDependencies";
@@ -97,11 +85,8 @@ const char _CLRSupportLastError[] = "CLRSupportLastError";
const char _CLRThreadAttribute[] = "CLRThreadAttribute";
const char _CLRUnmanagedCodeCheck[] = "CLRUnmanagedCodeCheck";
const char _Command[] = "Command";
-const char _CommandLine[] = "CommandLine";
const char _CompileAs[] = "CompileAs";
const char _CompileAsManaged[] = "CompileAsManaged";
-const char _CompileForArchitecture[] = "CompileForArchitecture";
-const char _CompileOnly[] = "CompileOnly";
const char _ConfigurationType[] = "ConfigurationType";
const char _CPreprocessOptions[] = "CPreprocessOptions";
const char _CreateHotpatchableImage[] = "CreateHotpatchableImage";
@@ -109,26 +94,20 @@ const char _CreateHotPatchableImage[] = "CreateHotPatchableImage";
const char _Culture[] = "Culture";
const char _DataExecutionPrevention[] = "DataExecutionPrevention";
const char _DebugInformationFormat[] = "DebugInformationFormat";
-const char _DefaultCharIsUnsigned[] = "DefaultCharIsUnsigned";
const char _DefaultCharType[] = "DefaultCharType";
const char _DelayLoadDLLs[] = "DelayLoadDLLs";
const char _DelaySign[] = "DelaySign";
const char _DeleteExtensionsOnClean[] = "DeleteExtensionsOnClean";
-const char _Description[] = "Description";
-const char _Detect64BitPortabilityProblems[] = "Detect64BitPortabilityProblems";
const char _DisableLanguageExtensions[] = "DisableLanguageExtensions";
const char _DisableSpecificWarnings[] = "DisableSpecificWarnings";
const char _DisplayLibrary[] = "DisplayLibrary";
const char _DLLDataFileName[] = "DLLDataFileName";
-const char _Driver[] = "Driver";
const char _EmbedManagedResourceFile[] = "EmbedManagedResourceFile";
const char _EnableCOMDATFolding[] = "EnableCOMDATFolding";
const char _EnableUAC[] = "EnableUAC";
const char _EnableErrorChecks[] = "EnableErrorChecks";
const char _EnableEnhancedInstructionSet[] = "EnableEnhancedInstructionSet";
const char _EnableFiberSafeOptimizations[] = "EnableFiberSafeOptimizations";
-const char _EnableFunctionLevelLinking[] = "EnableFunctionLevelLinking";
-const char _EnableIntrinsicFunctions[] = "EnableIntrinsicFunctions";
const char _EnablePREfast[] = "EnablePREfast";
const char _EntryPointSymbol[] = "EntryPointSymbol";
const char _ErrorCheckAllocations[] = "ErrorCheckAllocations";
@@ -138,64 +117,50 @@ const char _ErrorCheckRefPointers[] = "ErrorCheckRefPointers";
const char _ErrorCheckStubData[] = "ErrorCheckStubData";
const char _ErrorReporting[] = "ErrorReporting";
const char _ExceptionHandling[] = "ExceptionHandling";
-const char _ExcludedFromBuild[] = "ExcludedFromBuild";
const char _ExpandAttributedSource[] = "ExpandAttributedSource";
const char _ExportNamedFunctions[] = "ExportNamedFunctions";
const char _FavorSizeOrSpeed[] = "FavorSizeOrSpeed";
-const char _FixedBaseAddress[] = "FixedBaseAddress";
const char _FloatingPointModel[] = "FloatingPointModel";
const char _FloatingPointExceptions[] = "FloatingPointExceptions";
const char _ForceConformanceInForLoopScope[] = "ForceConformanceInForLoopScope";
-const char _ForceFileOutput[] = "ForceFileOutput";
const char _ForceSymbolReferences[] = "ForceSymbolReferences";
const char _ForcedIncludeFiles[] = "ForcedIncludeFiles";
const char _ForcedUsingFiles[] = "ForcedUsingFiles";
-const char _FullIncludePath[] = "FullIncludePath";
const char _FunctionLevelLinking[] = "FunctionLevelLinking";
const char _FunctionOrder[] = "FunctionOrder";
const char _GenerateClientFiles[] = "GenerateClientFiles";
const char _GenerateDebugInformation[] = "GenerateDebugInformation";
const char _GenerateManifest[] = "GenerateManifest";
const char _GenerateMapFile[] = "GenerateMapFile";
-const char _GeneratePreprocessedFile[] = "GeneratePreprocessedFile";
const char _GenerateServerFiles[] = "GenerateServerFiles";
const char _GenerateStublessProxies[] = "GenerateStublessProxies";
const char _GenerateTypeLibrary[] = "GenerateTypeLibrary";
const char _GenerateXMLDocumentationFiles[] = "GenerateXMLDocumentationFiles";
-const char _GlobalOptimizations[] = "GlobalOptimizations";
const char _HeaderFileName[] = "HeaderFileName";
const char _HeapCommitSize[] = "HeapCommitSize";
const char _HeapReserveSize[] = "HeapReserveSize";
const char _IgnoreAllDefaultLibraries[] = "IgnoreAllDefaultLibraries";
-const char _IgnoreDefaultLibraryNames[] = "IgnoreDefaultLibraryNames";
const char _IgnoreEmbeddedIDL[] = "IgnoreEmbeddedIDL";
const char _IgnoreImportLibrary[] = "IgnoreImportLibrary";
const char _IgnoreSpecificDefaultLibraries[] = "IgnoreSpecificDefaultLibraries";
const char _IgnoreStandardIncludePath[] = "IgnoreStandardIncludePath";
-const char _ImageHasSafeExceptionHandlers[] = "ImageHasSafeExceptionHandlers";
const char _ImportLibrary[] = "ImportLibrary";
-const char _ImproveFloatingPointConsistency[] = "ImproveFloatingPointConsistency";
const char _InlineFunctionExpansion[] = "InlineFunctionExpansion";
const char _IntrinsicFunctions[] = "IntrinsicFunctions";
const char _InterfaceIdentifierFileName[] = "InterfaceIdentifierFileName";
const char _IntermediateDirectory[] = "IntermediateDirectory";
-const char _InterworkCalls[] = "InterworkCalls";
const char _KeyContainer[] = "KeyContainer";
const char _KeyFile[] = "KeyFile";
-const char _Keyword[] = "Keyword";
-const char _KeepComments[] = "KeepComments";
const char _LargeAddressAware[] = "LargeAddressAware";
const char _LinkDLL[] = "LinkDLL";
const char _LinkErrorReporting[] = "LinkErrorReporting";
const char _LinkIncremental[] = "LinkIncremental";
const char _LinkStatus[] = "LinkStatus";
const char _LinkTimeCodeGeneration[] = "LinkTimeCodeGeneration";
-const char _LinkToManagedResourceFile[] = "LinkToManagedResourceFile";
const char _LocaleID[] = "LocaleID";
const char _ManifestFile[] = "ManifestFile";
const char _MapExports[] = "MapExports";
const char _MapFileName[] = "MapFileName";
-const char _MapLines[] = "MapLines ";
const char _MergedIDLBaseFileName[] = "MergedIDLBaseFileName";
const char _MergeSections[] = "MergeSections";
const char _Message[] = "Message";
@@ -203,32 +168,22 @@ const char _MidlCommandFile[] = "MidlCommandFile";
const char _MinimalRebuild[] = "MinimalRebuild";
const char _MkTypLibCompatible[] = "MkTypLibCompatible";
const char _ModuleDefinitionFile[] = "ModuleDefinitionFile";
-const char _MSDOSStubFileName[] = "MSDOSStubFileName";
const char _MultiProcessorCompilation[] = "MultiProcessorCompilation";
const char _Name[] = "Name";
const char _NoEntryPoint[] = "NoEntryPoint";
const char _NullTerminateStrings[] = "NullTerminateStrings";
-const char _ObjectFile[] = "ObjectFile";
const char _ObjectFiles[] = "ObjectFiles";
const char _ObjectFileName[] = "ObjectFileName";
const char _OmitDefaultLibName[] = "OmitDefaultLibName";
const char _OmitFramePointers[] = "OmitFramePointers";
-const char _OpenMP[] = "OpenMP";
const char _OpenMPSupport[] = "OpenMPSupport";
const char _Optimization[] = "Optimization";
-const char _OptimizeForProcessor[] = "OptimizeForProcessor";
-const char _OptimizeForWindows98[] = "OptimizeForWindows98";
-const char _OptimizeForWindowsApplication[] = "OptimizeForWindowsApplication";
const char _OptimizeReferences[] = "OptimizeReferences";
const char _OutputDirectory[] = "OutputDirectory";
const char _OutputFile[] = "OutputFile";
-const char _Outputs[] = "Outputs";
-const char _ParseFiles[] = "ParseFiles";
-const char _Path[] = "Path";
const char _PrecompiledHeader[] = "PrecompiledHeader";
const char _PrecompiledHeaderFile[] = "PrecompiledHeaderFile";
const char _PrecompiledHeaderOutputFile[] = "PrecompiledHeaderOutputFile";
-const char _PrecompiledHeaderThrough[] = "PrecompiledHeaderThrough";
const char _PreprocessorDefinitions[] = "PreprocessorDefinitions";
const char _PreprocessKeepComments[] = "PreprocessKeepComments";
const char _PreprocessOutputPath[] = "PreprocessOutputPath";
@@ -236,11 +191,7 @@ const char _PreprocessSuppressLineNumbers[] = "PreprocessSuppressLineNumbers
const char _PreprocessToFile[] = "PreprocessToFile";
const char _PreventDllBinding[] = "PreventDllBinding";
const char _PrimaryOutput[] = "PrimaryOutput";
-const char _Profile[] = "Profile";
-const char _ProfileGuidedDatabase[] = "ProfileGuidedDatabase";
-const char _ProjectGUID[] = "ProjectGUID";
const char _ProcessorNumber[] = "ProcessorNumber";
-const char _ProjectType[] = "ProjectType";
const char _ProgramDatabase[] = "ProgramDatabase";
const char _ProgramDataBaseFileName[] = "ProgramDataBaseFileName";
const char _ProgramDatabaseFile[] = "ProgramDatabaseFile";
@@ -248,22 +199,16 @@ const char _ProxyFileName[] = "ProxyFileName";
const char _RandomizedBaseAddress[] = "RandomizedBaseAddress";
const char _RedirectOutputAndErrors[] = "RedirectOutputAndErrors";
const char _RegisterOutput[] = "RegisterOutput";
-const char _RelativePath[] = "RelativePath";
-const char _RemoteDirectory[] = "RemoteDirectory";
const char _RemoveObjects[] = "RemoveObjects";
-const char _ResourceOnlyDLL[] = "ResourceOnlyDLL";
const char _ResourceOutputFileName[] = "ResourceOutputFileName";
const char _RuntimeLibrary[] = "RuntimeLibrary";
const char _RuntimeTypeInfo[] = "RuntimeTypeInfo";
-const char _SccProjectName[] = "SccProjectName";
-const char _SccLocalPath[] = "SccLocalPath";
const char _SectionAlignment[] = "SectionAlignment";
const char _ServerStubFile[] = "ServerStubFile";
const char _SetChecksum[] = "SetChecksum";
const char _ShowIncludes[] = "ShowIncludes";
const char _ShowProgress[] = "ShowProgress";
const char _SmallerTypeCheck[] = "SmallerTypeCheck";
-const char _SpecifySectionAttributes[] = "SpecifySectionAttributes";
const char _StackCommitSize[] = "StackCommitSize";
const char _StackReserveSize[] = "StackReserveSize";
const char _StringPooling[] = "StringPooling";
@@ -294,19 +239,12 @@ const char _UACExecutionLevel[] = "UACExecutionLevel";
const char _UACUIAccess[] = "UACUIAccess";
const char _UndefineAllPreprocessorDefinitions[]= "UndefineAllPreprocessorDefinitions";
const char _UndefinePreprocessorDefinitions[] = "UndefinePreprocessorDefinitions";
-const char _UniqueIdentifier[] = "UniqueIdentifier";
const char _UseFullPaths[] = "UseFullPaths";
const char _UseOfATL[] = "UseOfATL";
const char _UseOfMfc[] = "UseOfMfc";
-const char _UsePrecompiledHeader[] = "UsePrecompiledHeader";
const char _UseUnicodeForAssemblerListing[] = "UseUnicodeForAssemblerListing";
const char _ValidateAllParameters[] = "ValidateAllParameters";
-const char _VCCLCompilerTool[] = "VCCLCompilerTool";
-const char _VCLibrarianTool[] = "VCLibrarianTool";
-const char _VCLinkerTool[] = "VCLinkerTool";
const char _VCCustomBuildTool[] = "VCCustomBuildTool";
-const char _VCResourceCompilerTool[] = "VCResourceCompilerTool";
-const char _VCMIDLTool[] = "VCMIDLTool";
const char _Verbose[] = "Verbose";
const char _Version[] = "Version";
const char _WarnAsError[] = "WarnAsError";
@@ -343,7 +281,6 @@ inline XmlOutput::xml_output attrTagS(const char *name, const QString &v)
return tagValue(name, v);
}
-
inline XmlOutput::xml_output attrTagX(const char *name, const QStringList &v, const char *s = ",")
{
if(v.isEmpty())
@@ -376,732 +313,991 @@ inline XmlOutput::xml_output valueTagT( const triState v)
return valueTag(v == _True ? "true" : "false");
}
+// Tree file generation ---------------------------------------------
+void XTreeNode::generateXML(XmlOutput &xml, XmlOutput &xmlFilter, const QString &tagName, VCProject &tool, const QString &filter) {
+
+ if (children.size()) {
+ // Filter
+ ChildrenMap::ConstIterator it, end = children.constEnd();
+ if (!tagName.isEmpty()) {
+ xmlFilter << tag("Filter")
+ << attrTag("Include", tagName)
+ << attrTagS("Extensions", "");
+ }
+ // First round, do nested filters
+ for (it = children.constBegin(); it != end; ++it)
+ if ((*it)->children.size())
+ (*it)->generateXML(xml, xmlFilter, it.key(), tool, filter);
+ // Second round, do leafs
+ for (it = children.constBegin(); it != end; ++it)
+ if (!(*it)->children.size())
+ (*it)->generateXML(xml, xmlFilter, it.key(), tool, filter);
+
+ if (!tagName.isEmpty())
+ xml << closetag("Filter");
+ } else {
+ // Leaf
+ VCXProjectWriter::outputFileConfigs(tool, xml, xmlFilter, info, filter);
+ }
+}
+
+
+// Flat file generation ---------------------------------------------
+void XFlatNode::generateXML(XmlOutput &xml, XmlOutput &xmlFilter, const QString &/*tagName*/, VCProject &tool, const QString &filter) {
+ if (children.size()) {
+ ChildrenMapFlat::ConstIterator it = children.constBegin();
+ ChildrenMapFlat::ConstIterator end = children.constEnd();
+ xml << tag(_ItemGroup);
+ xmlFilter << tag(_ItemGroup);
+ for (; it != end; ++it) {
+ VCXProjectWriter::outputFileConfigs(tool, xml, xmlFilter, (*it), filter);
+ }
+ xml << closetag();
+ xmlFilter << closetag();
+ }
+}
+
+void VCXProjectWriter::write(XmlOutput &xml, VCProjectSingleConfig &tool)
+{
+ xml.setIndentString(" ");
+
+ xml << decl("1.0", "utf-8")
+ << tag("Project")
+ << attrTag("DefaultTargets","Build")
+ << attrTag("ToolsVersion", "4.0")
+ << attrTag("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003")
+ << tag("ItemGroup")
+ << attrTag("Label", "ProjectConfigurations");
+
+ xml << tag("ProjectConfiguration")
+ << attrTag("Include" , tool.Configuration.Name)
+ << tagValue("Configuration", tool.Configuration.ConfigurationName)
+ << tagValue("Platform", tool.PlatformName)
+ << closetag();
+
+ xml << closetag()
+ << tag("PropertyGroup")
+ << attrTag("Label", "Globals")
+ << tagValue("ProjectGuid", tool.ProjectGUID)
+ << tagValue("RootNamespace", tool.Name)
+ << tagValue("Keyword", tool.Keyword)
+ << closetag();
+
+ // config part.
+ xml << import("Project", "$(VCTargetsPath)\\Microsoft.Cpp.Default.props");
+
+ write(xml, tool.Configuration);
+
+ xml << import("Project", "$(VCTargetsPath)\\Microsoft.Cpp.props");
+
+ // Extension settings
+ xml << tag("ImportGroup")
+ << attrTag("Label", "ExtensionSettings")
+ << closetag();
+
+ // PropertySheets
+ xml << tag("ImportGroup")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
+ << attrTag("Label", "PropertySheets");
+
+ xml << tag("Import")
+ << attrTag("Project", "$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props")
+ << attrTag("Condition", "exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')")
+ << closetag()
+ << closetag();
+
+
+ // UserMacros
+ xml << tag("PropertyGroup")
+ << attrTag("Label", "UserMacros")
+ << closetag();
+
+ xml << tag("PropertyGroup");
+
+ if ( !tool.Configuration.OutputDirectory.isEmpty() ) {
+ xml<< tag("OutDir")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
+ << valueTag(tool.Configuration.OutputDirectory);
+ }
+ if ( !tool.Configuration.IntermediateDirectory.isEmpty() ) {
+ xml<< tag("IntDir")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
+ << valueTag(tool.Configuration.IntermediateDirectory);
+ }
+ if ( !tool.Configuration.PrimaryOutput.isEmpty() ) {
+ xml<< tag("TargetName")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
+ << valueTag(tool.Configuration.PrimaryOutput);
+ }
+
+ if ( tool.Configuration.linker.IgnoreImportLibrary != unset) {
+ xml<< tag("IgnoreImportLibrary")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
+ << valueTagT(tool.Configuration.linker.IgnoreImportLibrary);
+ }
+
+ if ( tool.Configuration.linker.LinkIncremental != linkIncrementalDefault) {
+ const triState ts = (tool.Configuration.linker.LinkIncremental == linkIncrementalYes ? _True : _False);
+ xml<< tag("LinkIncremental")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
+ << valueTagT(ts);
+ }
+
+ if ( tool.Configuration.preBuild.ExcludedFromBuild != unset )
+ {
+ xml<< tag("PreBuildEventUseInBuild")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
+ << valueTagT(!tool.Configuration.preBuild.ExcludedFromBuild);
+ }
+
+ if ( tool.Configuration.preLink.ExcludedFromBuild != unset )
+ {
+ xml<< tag("PreLinkEventUseInBuild")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
+ << valueTagT(!tool.Configuration.preLink.ExcludedFromBuild);
+ }
+
+ if ( tool.Configuration.postBuild.ExcludedFromBuild != unset )
+ {
+ xml<< tag("PostBuildEventUseInBuild")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
+ << valueTagT(!tool.Configuration.postBuild.ExcludedFromBuild);
+ }
+ xml << closetag();
+
+ xml << tag("ItemDefinitionGroup")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name));
+
+ // ClCompile
+ write(xml, tool.Configuration.compiler);
+
+ // Link
+ write(xml, tool.Configuration.linker);
+
+ // Midl
+ write(xml, tool.Configuration.idl);
+
+ // ResourceCompiler
+ write(xml, tool.Configuration.resource);
+
+ // Post build event
+ if ( tool.Configuration.postBuild.ExcludedFromBuild != unset )
+ write(xml, tool.Configuration.postBuild);
+
+ // Pre build event
+ if ( tool.Configuration.preBuild.ExcludedFromBuild != unset )
+ write(xml, tool.Configuration.preBuild);
+
+ // Pre link event
+ if ( tool.Configuration.preLink.ExcludedFromBuild != unset )
+ write(xml, tool.Configuration.preLink);
+
+ xml << closetag();
+
+ QFile filterFile;
+ filterFile.setFileName(Option::output.fileName().append(".filters"));
+ filterFile.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate);
+ QTextStream ts(&filterFile);
+ XmlOutput xmlFilter(ts, XmlOutput::NoConversion);
+
+ xmlFilter.setIndentString(" ");
+
+ xmlFilter << decl("1.0", "utf-8")
+ << tag("Project")
+ << attrTag("ToolsVersion", "4.0")
+ << attrTag("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003");
+
+ xmlFilter << tag("ItemGroup");
+
+ VCProject tempProj;
+ tempProj.SingleProjects += tool;
+
+ addFilters(tempProj, xmlFilter, "Form Files");
+ addFilters(tempProj, xmlFilter, "Generated Files");
+ addFilters(tempProj, xmlFilter, "Header Files");
+ addFilters(tempProj, xmlFilter, "LexYacc Files");
+ addFilters(tempProj, xmlFilter, "Resource Files");
+ addFilters(tempProj, xmlFilter, "Source Files");
+ addFilters(tempProj, xmlFilter, "Translation Files");
+ xmlFilter << closetag();
+
+ outputFilter(tempProj, xml, xmlFilter, "Source Files");
+ outputFilter(tempProj, xml, xmlFilter, "Header Files");
+ outputFilter(tempProj, xml, xmlFilter, "Generated Files");
+ outputFilter(tempProj, xml, xmlFilter, "LexYacc Files");
+ outputFilter(tempProj, xml, xmlFilter, "Translation Files");
+ outputFilter(tempProj, xml, xmlFilter, "Form Files");
+ outputFilter(tempProj, xml, xmlFilter, "Resource Files");
+
+ for (int x = 0; x < tempProj.ExtraCompilers.count(); ++x) {
+ outputFilter(tempProj, xml, xmlFilter, tempProj.ExtraCompilers.at(x));
+ }
+
+ xml << import("Project", "$(VCTargetsPath)\\Microsoft.Cpp.targets");
+
+ xml << tag("ImportGroup")
+ << attrTag("Label", "ExtensionTargets")
+ << closetag();
+}
+
+void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool)
+{
+ if (tool.SingleProjects.count() == 0) {
+ warn_msg(WarnLogic, "Generator: .NET: no single project in merge project, no output");
+ return;
+ }
+
+ xml.setIndentString(" ");
+
+ xml << decl("1.0", "utf-8")
+ << tag("Project")
+ << attrTag("DefaultTargets","Build")
+ << attrTag("ToolsVersion", "4.0")
+ << attrTag("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003")
+ << tag("ItemGroup")
+ << attrTag("Label", "ProjectConfigurations");
+
+ for (int i = 0; i < tool.SingleProjects.count(); ++i) {
+ xml << tag("ProjectConfiguration")
+ << attrTag("Include" , tool.SingleProjects.at(i).Configuration.Name)
+ << tagValue("Configuration", tool.SingleProjects.at(i).Configuration.ConfigurationName)
+ << tagValue("Platform", tool.SingleProjects.at(i).PlatformName)
+ << closetag();
+ }
+
+ xml << closetag()
+ << tag("PropertyGroup")
+ << attrTag("Label", "Globals")
+ << tagValue("ProjectGuid", tool.ProjectGUID)
+ << tagValue("RootNamespace", tool.Name)
+ << tagValue("Keyword", tool.Keyword)
+ << closetag();
+
+ // config part.
+ xml << import("Project", "$(VCTargetsPath)\\Microsoft.Cpp.Default.props");
+ for (int i = 0; i < tool.SingleProjects.count(); ++i)
+ write(xml, tool.SingleProjects.at(i).Configuration);
+ xml << import("Project", "$(VCTargetsPath)\\Microsoft.Cpp.props");
+
+ // Extension settings
+ xml << tag("ImportGroup")
+ << attrTag("Label", "ExtensionSettings")
+ << closetag();
+
+ // PropertySheets
+ for (int i = 0; i < tool.SingleProjects.count(); ++i) {
+ xml << tag("ImportGroup")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
+ << attrTag("Label", "PropertySheets");
+
+ xml << tag("Import")
+ << attrTag("Project", "$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props")
+ << attrTag("Condition", "exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')")
+ << closetag()
+ << closetag();
+ }
+
+ // UserMacros
+ xml << tag("PropertyGroup")
+ << attrTag("Label", "UserMacros")
+ << closetag();
+
+ xml << tag("PropertyGroup");
+ for (int i = 0; i < tool.SingleProjects.count(); ++i) {
+
+ if ( !tool.SingleProjects.at(i).Configuration.OutputDirectory.isEmpty() ) {
+ xml << tag("OutDir")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
+ << valueTag(tool.SingleProjects.at(i).Configuration.OutputDirectory);
+ }
+ if ( !tool.SingleProjects.at(i).Configuration.IntermediateDirectory.isEmpty() ) {
+ xml << tag("IntDir")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
+ << valueTag(tool.SingleProjects.at(i).Configuration.IntermediateDirectory);
+ }
+ if ( !tool.SingleProjects.at(i).Configuration.PrimaryOutput.isEmpty() ) {
+ xml << tag("TargetName")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
+ << valueTag(tool.SingleProjects.at(i).Configuration.PrimaryOutput);
+ }
+
+ if ( tool.SingleProjects.at(i).Configuration.linker.IgnoreImportLibrary != unset) {
+ xml << tag("IgnoreImportLibrary")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
+ << valueTagT(tool.SingleProjects.at(i).Configuration.linker.IgnoreImportLibrary);
+ }
+
+ if ( tool.SingleProjects.at(i).Configuration.linker.LinkIncremental != unset) {
+ const triState ts = (tool.SingleProjects.at(i).Configuration.linker.LinkIncremental == linkIncrementalYes ? _True : _False);
+ xml << tag("LinkIncremental")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
+ << valueTagT(ts);
+ }
+
+ if ( tool.SingleProjects.at(i).Configuration.preBuild.ExcludedFromBuild != unset )
+ {
+ xml << tag("PreBuildEventUseInBuild")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
+ << valueTagT(!tool.SingleProjects.at(i).Configuration.preBuild.ExcludedFromBuild);
+ }
+
+ if ( tool.SingleProjects.at(i).Configuration.preLink.ExcludedFromBuild != unset )
+ {
+ xml << tag("PreLinkEventUseInBuild")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
+ << valueTagT(!tool.SingleProjects.at(i).Configuration.preLink.ExcludedFromBuild);
+ }
+
+ if ( tool.SingleProjects.at(i).Configuration.postBuild.ExcludedFromBuild != unset )
+ {
+ xml << tag("PostBuildEventUseInBuild")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
+ << valueTagT(!tool.SingleProjects.at(i).Configuration.postBuild.ExcludedFromBuild);
+ }
+ }
+ xml << closetag();
+
+ for (int i = 0; i < tool.SingleProjects.count(); ++i) {
+ xml << tag("ItemDefinitionGroup")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name));
+
+ // ClCompile
+ write(xml, tool.SingleProjects.at(i).Configuration.compiler);
+
+ // Link
+ write(xml, tool.SingleProjects.at(i).Configuration.linker);
+
+ // Midl
+ write(xml, tool.SingleProjects.at(i).Configuration.idl);
+
+ // ResourceCompiler
+ write(xml, tool.SingleProjects.at(i).Configuration.resource);
+
+ // Post build event
+ if ( tool.SingleProjects.at(i).Configuration.postBuild.ExcludedFromBuild != unset )
+ write(xml, tool.SingleProjects.at(i).Configuration.postBuild);
+
+ // Pre build event
+ if ( tool.SingleProjects.at(i).Configuration.preBuild.ExcludedFromBuild != unset )
+ write(xml, tool.SingleProjects.at(i).Configuration.preBuild);
+
+ // Pre link event
+ if ( tool.SingleProjects.at(i).Configuration.preLink.ExcludedFromBuild != unset )
+ write(xml, tool.SingleProjects.at(i).Configuration.preLink);
+
+ xml << closetag();
+ }
+
+ // The file filters are added in a separate file for MSBUILD.
+ QFile filterFile;
+ filterFile.setFileName(Option::output.fileName().append(".filters"));
+ filterFile.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate);
+ QTextStream ts(&filterFile);
+ XmlOutput xmlFilter(ts, XmlOutput::NoConversion);
+
+ xmlFilter.setIndentString(" ");
+
+ xmlFilter << decl("1.0", "utf-8")
+ << tag("Project")
+ << attrTag("ToolsVersion", "4.0")
+ << attrTag("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003");
+
+ xmlFilter << tag("ItemGroup");
+
+ addFilters(tool, xmlFilter, "Form Files");
+ addFilters(tool, xmlFilter, "Generated Files");
+ addFilters(tool, xmlFilter, "Header Files");
+ addFilters(tool, xmlFilter, "LexYacc Files");
+ addFilters(tool, xmlFilter, "Resource Files");
+ addFilters(tool, xmlFilter, "Source Files");
+ addFilters(tool, xmlFilter, "Translation Files");
+ xmlFilter << closetag();
+
+ outputFilter(tool, xml, xmlFilter, "Source Files");
+ outputFilter(tool, xml, xmlFilter, "Header Files");
+ outputFilter(tool, xml, xmlFilter, "Generated Files");
+ outputFilter(tool, xml, xmlFilter, "LexYacc Files");
+ outputFilter(tool, xml, xmlFilter, "Translation Files");
+ outputFilter(tool, xml, xmlFilter, "Form Files");
+ outputFilter(tool, xml, xmlFilter, "Resource Files");
+ for (int x = 0; x < tool.ExtraCompilers.count(); ++x) {
+ outputFilter(tool, xml, xmlFilter, tool.ExtraCompilers.at(x));
+ }
+ outputFilter(tool, xml, xmlFilter, "Root Files");
+
+ xml << import("Project", "$(VCTargetsPath)\\Microsoft.Cpp.targets");
+
+ xml << tag("ImportGroup")
+ << attrTag("Label", "ExtensionTargets")
+ << closetag();
+}
+
+static inline QString toString(asmListingOption option)
+{
+ switch (option) {
+ case asmListingAsmMachine:
+ return "AssemblyAndMachineCode";
+ case asmListingAsmMachineSrc:
+ return "All";
+ case asmListingAsmSrc:
+ return "AssemblyAndSourceCode";
+ case asmListingAssemblyOnly:
+ return "AssemblyCode";
+ }
+ return QString();
+}
+
+static inline QString toString(basicRuntimeCheckOption option)
+{
+ switch (option) {
+ case runtimeBasicCheckNone:
+ return "";
+ case runtimeCheckStackFrame:
+ return "StackFrameRuntimeCheck";
+ case runtimeCheckUninitVariables:
+ return "UninitializedLocalUsageCheck";
+ case runtimeBasicCheckAll:
+ return "EnableFastChecks";
+ }
+ return QString();
+}
+
+static inline QString toString(callingConventionOption option)
+{
+ switch (option) {
+ case callConventionCDecl:
+ return "Cdecl";
+ case callConventionFastCall:
+ return "FastCall";
+ case callConventionStdCall:
+ return "StdCall";
+ }
+ return QString();
+}
+
+static inline QString toString(CompileAsOptions option)
+{
+ switch (option) {
+ case compileAsC:
+ return "CompileAsC";
+ case compileAsCPlusPlus:
+ return "CompileAsCpp";
+ }
+ return QString();
+}
+
+static inline QString toString(compileAsManagedOptions option)
+{
+ switch (option) {
+ case managedAssembly:
+ return "true";
+ case managedAssemblyPure:
+ return "Safe";
+ case managedAssemblyOldSyntax:
+ return "OldSyntax";
+ }
+ return QString();
+}
+
+static inline QString toString(debugOption option)
+{
+ switch (option) {
+ case debugOldStyleInfo:
+ return "OldStyle";
+ case debugEditAndContinue:
+ return "EditAndContinue";
+ case debugEnabled:
+ return "ProgramDatabase";
+ }
+ return QString();
+}
+
+static inline QString toString(enhancedInstructionSetOption option)
+{
+ switch (option) {
+ case archSSE:
+ return "StreamingSIMDExtensions";
+ case archSSE2:
+ return "StreamingSIMDExtensions2";
+ }
+ return QString();
+}
+
+static inline QString toString(exceptionHandling option)
+{
+ switch (option) {
+ case ehNone:
+ return "false";
+ case ehNoSEH:
+ return "Sync";
+ case ehSEH:
+ return "Async";
+ }
+ return QString();
+}
+
+static inline QString toString(favorSizeOrSpeedOption option)
+{
+ switch (option) {
+ case favorSize:
+ return "Size";
+ case favorSpeed:
+ return "Speed";
+ }
+ return QString();
+}
+
+static inline QString toString(floatingPointModel option)
+{
+ switch (option) {
+ case floatingPointFast:
+ return "Fast";
+ case floatingPointPrecise:
+ return "Precise";
+ case floatingPointStrict:
+ return "Strict";
+ }
+ return QString();
+}
+
+static inline QString toString(inlineExpansionOption option)
+{
+ switch (option) {
+ case expandDisable:
+ return "Disabled";
+ case expandOnlyInline:
+ return "OnlyExplicitInline";
+ case expandAnySuitable:
+ return "AnySuitable";
+ }
+ return QString();
+}
+
+static inline QString toString(optimizeOption option)
+{
+ switch (option) {
+ case optimizeMinSpace:
+ return "MinSpace";
+ case optimizeMaxSpeed:
+ return "MaxSpeed";
+ }
+ return QString();
+}
+
+static inline QString toString(pchOption option)
+{
+ switch (option) {
+ case pchNone:
+ return "NotUsing";
+ case pchCreateUsingSpecific:
+ return "Create";
+ case pchUseUsingSpecific:
+ return "Use";
+ }
+ return QString();
+}
+
+static inline QString toString(runtimeLibraryOption option)
+{
+ switch (option) {
+ case rtMultiThreaded:
+ return "MultiThreaded";
+ case rtMultiThreadedDLL:
+ return "MultiThreadedDLL";
+ case rtMultiThreadedDebug:
+ return "MultiThreadedDebug";
+ case rtMultiThreadedDebugDLL:
+ return "MultiThreadedDebugDLL";
+ }
+ return QString();
+}
+
+static inline QString toString(structMemberAlignOption option)
+{
+ switch (option) {
+ case alignSingleByte:
+ return "1Byte";
+ case alignTwoBytes:
+ return "2Bytes";
+ case alignFourBytes:
+ return "4Bytes";
+ case alignEightBytes:
+ return "8Bytes";
+ case alignSixteenBytes:
+ return "16Bytes";
+ }
+ return QString();
+}
+
+static inline QString toString(warningLevelOption option)
+{
+ switch (option) {
+ case warningLevel_0:
+ return "TurnOffAllWarnings";
+ case warningLevel_1:
+ return "Level1";
+ case warningLevel_2:
+ return "Level2";
+ case warningLevel_3:
+ return "Level3";
+ case warningLevel_4:
+ return "Level4";
+ }
+ return QString();
+}
+
+static inline QString toString(optLinkTimeCodeGenType option)
+{
+ switch (option) {
+ case optLTCGEnabled:
+ return "UseLinkTimeCodeGeneration";
+ case optLTCGInstrument:
+ return "PGInstrument";
+ case optLTCGOptimize:
+ return "PGOptimization";
+ case optLTCGUpdate:
+ return "PGUpdate";
+ }
+ return QString();
+}
+
+static inline QString toString(subSystemOption option)
+{
+ switch (option) {
+ case subSystemConsole:
+ return "Console";
+ case subSystemWindows:
+ return "Windows";
+ case optLTCGOptimize:
+ return "PGOptimization";
+ case optLTCGUpdate:
+ return "PGUpdate";
+ }
+ return QString();
+}
+
+static inline QString toString(machineTypeOption option)
+{
+ switch (option) {
+ case machineX86:
+ return "MachineX86";
+ case machineX64:
+ return "MachineX64";
+ }
+ return QString();
+}
+
+static inline QString toString(midlCharOption option)
+{
+ switch (option) {
+ case midlCharUnsigned:
+ return "Unsigned";
+ case midlCharSigned:
+ return "Signed";
+ case midlCharAscii7:
+ return "Ascii";
+ }
+ return QString();
+}
+
+static inline QString toString(midlErrorCheckOption option)
+{
+ switch (option) {
+ case midlDisableAll:
+ return "None";
+ case midlEnableAll:
+ return "All";
+ }
+ return QString();
+}
+
+static inline QString toString(midlStructMemberAlignOption option)
+{
+ switch (option) {
+ case midlAlignSingleByte:
+ return "1";
+ case midlAlignTwoBytes:
+ return "2";
+ case midlAlignFourBytes:
+ return "4";
+ case midlAlignEightBytes:
+ return "8";
+ case midlAlignSixteenBytes:
+ return "16";
+ }
+ return QString();
+}
+
+static inline QString toString(midlTargetEnvironment option)
+{
+ switch (option) {
+ case midlTargetWin32:
+ return "Win32";
+ case midlTargetWin64:
+ return "X64";
+ }
+ return QString();
+}
+
+static inline QString toString(midlWarningLevelOption option)
+{
+ switch (option) {
+ case midlWarningLevel_0:
+ return "0";
+ case midlWarningLevel_1:
+ return "1";
+ case midlWarningLevel_2:
+ return "2";
+ case midlWarningLevel_3:
+ return "3";
+ case midlWarningLevel_4:
+ return "4";
+ }
+ return QString();
+}
+
+static inline QString toString(enumResourceLangID option)
+{
+ if (option == 0)
+ return QString();
+ else
+ return QString::number(qlonglong(option));
+}
+
+static inline QString toString(charSet option)
+{
+ switch (option) {
+ case charSetNotSet:
+ return "NotSet";
+ case charSetUnicode:
+ return "Unicode";
+ case charSetMBCS:
+ return "MultiByte";
+ }
+ return QString();
+}
+
+static inline QString toString(ConfigurationTypes option)
+{
+ switch (option) {
+ case typeApplication:
+ return "Application";
+ case typeDynamicLibrary:
+ return "DynamicLibrary";
+ case typeStaticLibrary:
+ return "StaticLibrary";
+ }
+ return QString();
+}
+
+static inline QString toString(useOfATL option)
+{
+ switch (option) {
+ case useATLStatic:
+ return "Static";
+ case useATLDynamic:
+ return "Dynamic";
+ }
+ return QString();
+}
+
+static inline QString toString(useOfMfc option)
+{
+ switch (option) {
+ case useMfcStatic:
+ return "Static";
+ case useMfcDynamic:
+ return "Dynamic";
+ }
+ return QString();
+}
+
+static inline triState toTriState(browseInfoOption option)
+{
+ switch (option)
+ {
+ case brInfoNone:
+ return _False;
+ case brAllInfo:
+ case brNoLocalSymbols:
+ return _True;
+ }
+ return unset;
+}
+
+static inline triState toTriState(preprocessOption option)
+{
+ switch (option)
+ {
+ case preprocessNo:
+ return _False;
+ case preprocessNoLineNumbers:
+ case preprocessYes:
+ return _True;
+ }
+ return unset;
+}
+
+static inline triState toTriState(optFoldingType option)
+{
+ switch (option)
+ {
+ case optNoFolding:
+ return _False;
+ case optFolding:
+ return _True;
+ }
+ return unset;
+}
+
+static inline triState toTriState(addressAwarenessType option)
+{
+ switch (option)
+ {
+ case addrAwareDefault:
+ return unset;
+ case addrAwareNoLarge:
+ return _False;
+ case addrAwareLarge:
+ return _True;
+ }
+ return unset;
+}
+
+static inline triState toTriState(linkIncrementalType option)
+{
+ switch (option)
+ {
+ case linkIncrementalDefault:
+ return unset;
+ case linkIncrementalNo:
+ return _False;
+ case linkIncrementalYes:
+ return _True;
+ }
+ return unset;
+}
+
+static inline triState toTriState(linkProgressOption option)
+{
+ switch (option)
+ {
+ case linkProgressNotSet:
+ return unset;
+ case linkProgressAll:
+ case linkProgressLibs:
+ return _True;
+ }
+ return unset;
+}
+
+static inline triState toTriState(optRefType option)
+{
+ switch (option)
+ {
+ case optReferencesDefault:
+ return unset;
+ case optNoReferences:
+ return _False;
+ case optReferences:
+ return _True;
+ }
+ return unset;
+}
-// VCXCLCompilerTool -------------------------------------------------
-VCXCLCompilerTool::VCXCLCompilerTool()
- : BrowseInformation(_False),
- BufferSecurityCheck(_False),
- CreateHotpatchableImage(unset),
- DisableLanguageExtensions(unset),
- EnableFiberSafeOptimizations(unset),
- EnablePREfast(unset),
- ExpandAttributedSource(unset),
- FloatingPointExceptions(unset),
- ForceConformanceInForLoopScope(unset),
- FunctionLevelLinking(unset),
- GenerateXMLDocumentationFiles(unset),
- IgnoreStandardIncludePath(unset),
- IntrinsicFunctions(unset),
- MinimalRebuild(unset),
- MultiProcessorCompilation(unset),
- OmitDefaultLibName(unset),
- OmitFramePointers(unset),
- Optimization("Disabled"),
- OpenMPSupport(unset),
- PreprocessKeepComments(unset),
- PreprocessSuppressLineNumbers(unset),
- RuntimeTypeInfo(unset),
- ShowIncludes(unset),
- SmallerTypeCheck(unset),
- StringPooling(unset),
- SuppressStartupBanner(unset),
- TreatWarningAsError(unset),
- TreatWChar_tAsBuiltInType(unset),
- UndefineAllPreprocessorDefinitions(unset),
- UseFullPaths(unset),
- UseUnicodeForAssemblerListing(unset),
- WholeProgramOptimization(unset)
+static inline triState toTriState(termSvrAwarenessType option)
{
+ switch (option)
+ {
+ case termSvrAwareDefault:
+ return unset;
+ case termSvrAwareNo:
+ return _False;
+ case termSvrAwareYes:
+ return _True;
+ }
+ return unset;
}
-XmlOutput &operator<<(XmlOutput &xml, const VCXCLCompilerTool &tool)
+void VCXProjectWriter::write(XmlOutput &xml, const VCCLCompilerTool &tool)
{
- return xml
+ xml
<< tag(_CLCompile)
<< attrTagX(_AdditionalIncludeDirectories, tool.AdditionalIncludeDirectories, ";")
<< attrTagX(_AdditionalOptions, tool.AdditionalOptions, " ")
<< attrTagX(_AdditionalUsingDirectories, tool.AdditionalUsingDirectories, ";")
- << attrTagS(_AlwaysAppend, tool.AlwaysAppend)
+//unused << attrTagS(_AlwaysAppend, tool.AlwaysAppend)
<< attrTagS(_AssemblerListingLocation, tool.AssemblerListingLocation)
- << attrTagS(_AssemblerOutput, tool.AssemblerOutput)
- << attrTagS(_BasicRuntimeChecks, tool.BasicRuntimeChecks)
- << attrTagT(_BrowseInformation, tool.BrowseInformation)
+ << attrTagS(_AssemblerOutput, toString(tool.AssemblerOutput))
+ << attrTagS(_BasicRuntimeChecks, toString(tool.BasicRuntimeChecks))
+ << attrTagT(_BrowseInformation, toTriState(tool.BrowseInformation))
<< attrTagS(_BrowseInformationFile, tool.BrowseInformationFile)
<< attrTagT(_BufferSecurityCheck, tool.BufferSecurityCheck)
- << attrTagS(_CallingConvention, tool.CallingConvention)
- << attrTagS(_CompileAs, tool.CompileAs)
- << attrTagS(_CompileAsManaged, tool.CompileAsManaged)
+ << attrTagS(_CallingConvention, toString(tool.CallingConvention))
+ << attrTagS(_CompileAs, toString(tool.CompileAs))
+ << attrTagS(_CompileAsManaged, toString(tool.CompileAsManaged))
<< attrTagT(_CreateHotpatchableImage, tool.CreateHotpatchableImage)
- << attrTagS(_DebugInformationFormat, tool.DebugInformationFormat)
+ << attrTagS(_DebugInformationFormat, toString(tool.DebugInformationFormat))
<< attrTagT(_DisableLanguageExtensions, tool.DisableLanguageExtensions)
<< attrTagX(_DisableSpecificWarnings, tool.DisableSpecificWarnings, ";")
- << attrTagS(_EnableEnhancedInstructionSet, tool.EnableEnhancedInstructionSet)
+ << attrTagS(_EnableEnhancedInstructionSet, toString(tool.EnableEnhancedInstructionSet))
<< attrTagT(_EnableFiberSafeOptimizations, tool.EnableFiberSafeOptimizations)
<< attrTagT(_EnablePREfast, tool.EnablePREfast)
<< attrTagS(_ErrorReporting, tool.ErrorReporting)
- << attrTagS(_ExceptionHandling, tool.ExceptionHandling)
+ << attrTagS(_ExceptionHandling, toString(tool.ExceptionHandling))
<< attrTagT(_ExpandAttributedSource, tool.ExpandAttributedSource)
- << attrTagS(_FavorSizeOrSpeed, tool.FavorSizeOrSpeed)
+ << attrTagS(_FavorSizeOrSpeed, toString(tool.FavorSizeOrSpeed))
<< attrTagT(_FloatingPointExceptions, tool.FloatingPointExceptions)
- << attrTagS(_FloatingPointModel, tool.FloatingPointModel)
+ << attrTagS(_FloatingPointModel, toString(tool.FloatingPointModel))
<< attrTagT(_ForceConformanceInForLoopScope, tool.ForceConformanceInForLoopScope)
<< attrTagX(_ForcedIncludeFiles, tool.ForcedIncludeFiles, ";")
<< attrTagX(_ForcedUsingFiles, tool.ForcedUsingFiles, ";")
- << attrTagT(_FunctionLevelLinking, tool.FunctionLevelLinking)
+ << attrTagT(_FunctionLevelLinking, tool.EnableFunctionLevelLinking)
<< attrTagT(_GenerateXMLDocumentationFiles, tool.GenerateXMLDocumentationFiles)
<< attrTagT(_IgnoreStandardIncludePath, tool.IgnoreStandardIncludePath)
- << attrTagS(_InlineFunctionExpansion, tool.InlineFunctionExpansion)
- << attrTagT(_IntrinsicFunctions, tool.IntrinsicFunctions)
+ << attrTagS(_InlineFunctionExpansion, toString(tool.InlineFunctionExpansion))
+ << attrTagT(_IntrinsicFunctions, tool.EnableIntrinsicFunctions)
<< attrTagT(_MinimalRebuild, tool.MinimalRebuild)
<< attrTagT(_MultiProcessorCompilation, tool.MultiProcessorCompilation)
- << attrTagS(_ObjectFileName, tool.ObjectFileName)
- << attrTagX(_ObjectFiles, tool.ObjectFiles, ";")
+ << attrTagS(_ObjectFileName, tool.ObjectFile)
+//unused << attrTagX(_ObjectFiles, tool.ObjectFiles, ";")
<< attrTagT(_OmitDefaultLibName, tool.OmitDefaultLibName)
<< attrTagT(_OmitFramePointers, tool.OmitFramePointers)
- << attrTagT(_OpenMPSupport, tool.OpenMPSupport)
- << attrTagS(_Optimization, tool.Optimization)
- << attrTagS(_PrecompiledHeader, tool.PrecompiledHeader)
- << attrTagS(_PrecompiledHeaderFile, tool.PrecompiledHeaderFile)
- << attrTagS(_PrecompiledHeaderOutputFile, tool.PrecompiledHeaderOutputFile)
- << attrTagT(_PreprocessKeepComments, tool.PreprocessKeepComments)
+ << attrTagT(_OpenMPSupport, tool.OpenMP)
+ << attrTagS(_Optimization, toString(tool.Optimization))
+ << attrTagS(_PrecompiledHeader, toString(tool.UsePrecompiledHeader))
+ << attrTagS(_PrecompiledHeaderFile, tool.PrecompiledHeaderThrough)
+ << attrTagS(_PrecompiledHeaderOutputFile, tool.PrecompiledHeaderFile)
+ << attrTagT(_PreprocessKeepComments, tool.KeepComments)
<< attrTagX(_PreprocessorDefinitions, tool.PreprocessorDefinitions, ";")
<< attrTagS(_PreprocessOutputPath, tool.PreprocessOutputPath)
<< attrTagT(_PreprocessSuppressLineNumbers, tool.PreprocessSuppressLineNumbers)
- << attrTagT(_PreprocessToFile, tool.PreprocessToFile)
+ << attrTagT(_PreprocessToFile, toTriState(tool.GeneratePreprocessedFile))
<< attrTagS(_ProgramDataBaseFileName, tool.ProgramDataBaseFileName)
- << attrTagS(_ProcessorNumber, tool.ProcessorNumber)
- << attrTagS(_RuntimeLibrary, tool.RuntimeLibrary)
+ << attrTagS(_ProcessorNumber, tool.MultiProcessorCompilationProcessorCount)
+ << attrTagS(_RuntimeLibrary, toString(tool.RuntimeLibrary))
<< attrTagT(_RuntimeTypeInfo, tool.RuntimeTypeInfo)
<< attrTagT(_ShowIncludes, tool.ShowIncludes)
<< attrTagT(_SmallerTypeCheck, tool.SmallerTypeCheck)
<< attrTagT(_StringPooling, tool.StringPooling)
- << attrTagS(_StructMemberAlignment, tool.StructMemberAlignment)
+ << attrTagS(_StructMemberAlignment, toString(tool.StructMemberAlignment))
<< attrTagT(_SuppressStartupBanner, tool.SuppressStartupBanner)
- << attrTagS(_TreatSpecificWarningsAsErrors, tool.TreatSpecificWarningsAsErrors)
- << attrTagT(_TreatWarningAsError, tool.TreatWarningAsError)
+//unused << attrTagS(_TreatSpecificWarningsAsErrors, tool.TreatSpecificWarningsAsErrors)
+ << attrTagT(_TreatWarningAsError, tool.WarnAsError)
<< attrTagT(_TreatWChar_tAsBuiltInType, tool.TreatWChar_tAsBuiltInType)
<< attrTagT(_UndefineAllPreprocessorDefinitions, tool.UndefineAllPreprocessorDefinitions)
<< attrTagX(_UndefinePreprocessorDefinitions, tool.UndefinePreprocessorDefinitions, ";")
- << attrTagT(_UseFullPaths, tool.UseFullPaths)
+ << attrTagT(_UseFullPaths, tool.DisplayFullPaths)
<< attrTagT(_UseUnicodeForAssemblerListing, tool.UseUnicodeForAssemblerListing)
- << attrTagS(_WarningLevel, tool.WarningLevel)
+ << attrTagS(_WarningLevel, toString(tool.WarningLevel))
<< attrTagT(_WholeProgramOptimization, tool.WholeProgramOptimization)
<< attrTagS(_XMLDocumentationFileName, tool.XMLDocumentationFileName)
<< closetag(_CLCompile);
}
-bool VCXCLCompilerTool::parseOption(const char* option)
+void VCXProjectWriter::write(XmlOutput &xml, const VCLinkerTool &tool)
{
- // skip index 0 ('/' or '-')
- char first = option[1];
- char second = option[2];
- char third = option[3];
- char fourth = option[4];
- bool found = true;
-
- switch (first) {
- case '?':
- qWarning("Generator: Option '/?' : MSVC.NET projects do not support outputting help info");
- found = false;
- break;
- case '@':
- qWarning("Generator: Option '/@': MSVC.NET projects do not support the use of a response file");
- found = false;
- break;
- case 'l':
- qWarning("Generator: Option '/link': qmake generator does not support passing link options through the compiler tool");
- found = false;
- break;
- case 'A':
- if(second != 'I') {
- found = false;
- break;
- }
- AdditionalUsingDirectories += option+3;
- break;
- case 'C':
- PreprocessKeepComments = _True;
- break;
- case 'D':
- PreprocessorDefinitions += option+2;
- break;
- case 'E':
- if(second == 'H') {
- QString opt(option);
- if (opt.endsWith("EHa"))
- ExceptionHandling = "Async";
- else if (opt.endsWith("EHsc"))
- ExceptionHandling = "Sync";
- else if (opt.endsWith("EHs"))
- ExceptionHandling = "SyncCThrow";
- else {
- ExceptionHandling = "false";
- }
- break;
- }else if(second == 'P') {
- PreprocessSuppressLineNumbers = _True;
- }
- found = false;
- break;
- case 'F':
- if(second <= '9' && second >= '0') {
- AdditionalOptions += option;
- break;
- } else {
- switch (second) {
- case 'A':
- if(third == 'c') {
- AssemblerOutput = "AssemblyAndMachineCode";
- if(fourth == 's')
- AssemblerOutput = "All";
- } else if(third == 's') {
- AssemblerOutput = "AssemblyAndSourceCode";
- } else if(third == 'u') {
- UseUnicodeForAssemblerListing = _True;
- } else {
- AssemblerOutput = "AssemblyCode";
- }
- break;
- case 'a':
- AssemblerListingLocation = option+3;
- break;
- case 'C':
- UseFullPaths = _True;
- break;
- case 'd':
- ProgramDataBaseFileName += option+3;
- case 'I':
- ForcedIncludeFiles += option+3;
- break;
- case 'i':
- PreprocessOutputPath += option+3;
- break;
- case 'm':
- AdditionalOptions += option;
- break;
- case 'R':
- BrowseInformation = _True;
- BrowseInformationFile = option+3;
- break;
- case 'r':
- BrowseInformation = _True;
- BrowseInformationFile = option+3;
- break;
- case 'U':
- ForcedUsingFiles += option+3;
- break;
- case 'o':
- ObjectFileName = option+3;
- break;
- case 'p':
- PrecompiledHeaderOutputFile = option+3;
- break;
- case 'x':
- ExpandAttributedSource = _True;
- break;
- default:
- found = false;
- break;
- }
- }
- break;
- case 'G':
- switch (second) {
- case 'F':
- StringPooling = _True;
- break;
- case 'L':
- WholeProgramOptimization = _True;
- if(third == '-')
- WholeProgramOptimization = _False;
- break;
- case 'R':
- RuntimeTypeInfo = _True;
- if(third == '-')
- RuntimeTypeInfo = _False;
- break;
- case 'S':
- BufferSecurityCheck = _True;
- if(third == '-')
- BufferSecurityCheck = _False;
- break;
- case 'T':
- EnableFiberSafeOptimizations = _True;
- break;
- case 'd':
- CallingConvention = "Cdecl";
- break;
- case 'm':
- MinimalRebuild = _True;
- if(third == '-')
- MinimalRebuild = _False;
- break;
- case 'r':
- CallingConvention = "FastCall";
- break;
- case 'y':
- FunctionLevelLinking = _True;
- break;
- case 'z':
- CallingConvention = "StdCall";
- break;
- default:
- found = false;
- break;
- }
- break;
- case 'H':
- AdditionalOptions += option;
- break;
- case 'I':
- AdditionalIncludeDirectories += option+2;
- break;
- case 'L':
- if(second == 'D') {
- AdditionalOptions += option;
- break;
- }
- found = false;
- break;
- case 'M':
- if(second == 'D') {
- RuntimeLibrary = "MultiThreadedDLL";
- if(third == 'd')
- RuntimeLibrary = "MultiThreadedDebugDLL";
- break;
- } else if(second == 'P') {
- MultiProcessorCompilation = _True;
- ProcessorNumber = option+3;
- break;
- } else if(second == 'T') {
- RuntimeLibrary = "MultiThreaded";
- if(third == 'd')
- RuntimeLibrary = "MultiThreadedDebug";
- break;
- }
- found = false;
- break;
- case 'O':
- switch (second) {
- case '1':
- Optimization = "MinSpace";
- break;
- case '2':
- Optimization = "MaxSpeed";
- break;
- case 'b':
- if(third == '0')
- InlineFunctionExpansion = "Disabled";
- else if(third == '1')
- InlineFunctionExpansion = "OnlyExplicitInline";
- else if(third == '2')
- InlineFunctionExpansion = "AnySuitable";
- else
- found = false;
- break;
- case 'd':
- Optimization = "Disabled";
- break;
- case 'i':
- IntrinsicFunctions = _True;
- break;
- case 'p':
- if(third == 'e')
- OpenMPSupport = _True;
- else
- found = false;
- break;
- case 's':
- FavorSizeOrSpeed = "Size";
- break;
- case 't':
- FavorSizeOrSpeed = "Speed";
- break;
- case 'x':
- Optimization = "Full";
- break;
- case 'y':
- OmitFramePointers = _True;
- if(third == '-')
- OmitFramePointers = _False;
- break;
- default:
- found = false;
- break;
- }
- break;
- case 'P':
- PreprocessToFile = _True;
- break;
- case 'Q':
- if(second == 'I') {
- AdditionalOptions += option;
- break;
- }
- found = false;
- break;
- case 'R':
- if(second == 'T' && third == 'C') {
- if(fourth == '1')
- BasicRuntimeChecks = "EnableFastChecks";
- else if(fourth == 'c')
- SmallerTypeCheck = _True;
- else if(fourth == 's')
- BasicRuntimeChecks = "StackFrameRuntimeCheck";
- else if(fourth == 'u')
- BasicRuntimeChecks = "UninitializedLocalUsageCheck";
- else
- found = false; break;
- }
- break;
- case 'T':
- if(second == 'C') {
- CompileAs = "CompileAsC";
- } else if(second == 'P') {
- CompileAs = "CompileAsCpp";
- } else {
- qWarning("Generator: Options '/Tp<filename>' and '/Tc<filename>' are not supported by qmake");
- found = false; break;
- }
- break;
- case 'U':
- UndefinePreprocessorDefinitions += option+2;
- break;
- case 'V':
- AdditionalOptions += option;
- break;
- case 'W':
- switch (second) {
- case 'a':
- WarningLevel = "EnableAllWarnings";
- break;
- case '4':
- WarningLevel = "Level4";
- break;
- case '3':
- WarningLevel = "Level3";
- break;
- case '2':
- WarningLevel = "Level2";
- break;
- case '1':
- WarningLevel = "Level1";
- break;
- case '0':
- WarningLevel = "TurnOffAllWarnings";
- break;
- case 'L':
- AdditionalOptions += option;
- break;
- case 'X':
- TreatWarningAsError = _True;
- break;
- case 'p':
- if(third == '6' && fourth == '4') {
- // Deprecated for VS2010 but can be used under Additional Options.
- AdditionalOptions += option;
- break;
- }
- // Fallthrough
- default:
- found = false; break;
- }
- break;
- case 'X':
- IgnoreStandardIncludePath = _True;
- break;
- case 'Y':
- switch (second) {
- case '\0':
- case '-':
- AdditionalOptions += option;
- break;
- case 'c':
- PrecompiledHeader = "Create";
- PrecompiledHeaderFile = option+3;
- break;
- case 'd':
- case 'l':
- AdditionalOptions += option;
- break;
- case 'u':
- PrecompiledHeader = "Use";
- PrecompiledHeaderFile = option+3;
- break;
- default:
- found = false; break;
- }
- break;
- case 'Z':
- switch (second) {
- case '7':
- DebugInformationFormat = "OldStyle";
- break;
- case 'I':
- DebugInformationFormat = "EditAndContinue";
- break;
- case 'i':
- DebugInformationFormat = "ProgramDatabase";
- break;
- case 'l':
- OmitDefaultLibName = _True;
- break;
- case 'a':
- DisableLanguageExtensions = _True;
- break;
- case 'e':
- DisableLanguageExtensions = _False;
- break;
- case 'c':
- if(third == ':') {
- const char *c = option + 4;
- // Go to the end of the option
- while ( *c != '\0' && *c != ' ' && *c != '-')
- ++c;
- if(fourth == 'f')
- ForceConformanceInForLoopScope = ((*c) == '-' ? _False : _True);
- else if(fourth == 'w')
- TreatWChar_tAsBuiltInType = ((*c) == '-' ? _False : _True);
- else
- found = false;
- } else {
- found = false; break;
- }
- break;
- case 'g':
- case 'm':
- case 's':
- AdditionalOptions += option;
- break;
- case 'p':
- switch (third)
- {
- case '\0':
- case '1':
- StructMemberAlignment = "1Byte";
- if(fourth == '6')
- StructMemberAlignment = "16Bytes";
- break;
- case '2':
- StructMemberAlignment = "2Bytes";
- break;
- case '4':
- StructMemberAlignment = "4Bytes";
- break;
- case '8':
- StructMemberAlignment = "8Bytes";
- break;
- default:
- found = false; break;
- }
- break;
- default:
- found = false; break;
- }
- break;
- case 'a':
- if (second == 'r' && third == 'c' && fourth == 'h') {
- if (option[5] == ':') {
- const char *o = option;
- if (o[6] == 'S' && o[7] == 'S' && o[8] == 'E') {
- EnableEnhancedInstructionSet = o[9] == '2' ? "StreamingSIMDExtensions2" : "StreamingSIMDExtensions";
- break;
- }
- }
- } else if (second == 'n' && third == 'a' && fourth == 'l') {
- EnablePREfast = _True;
- break;
- }
- found = false;
- break;
- case 'b': // see http://msdn.microsoft.com/en-us/library/fwkeyyhe%28VS.100%29.aspx
- if (second == 'i' && third == 'g' && fourth == 'o') {
- const char *o = option;
- if (o[5] == 'b' && o[6] == 'j') {
- AdditionalOptions += option;
- break;
- }
- }
- found = false;
- break;
- case 'c':
- if(second == 'l') {
- if(*(option+5) == 'p') {
- CompileAsManaged = "Pure";
- } else if(*(option+5) == 's') {
- CompileAsManaged = "Safe";
- } else if(*(option+5) == 'o') {
- CompileAsManaged = "OldSyntax";
- } else {
- CompileAsManaged = "true";
- }
- } else {
- found = false;
- break;
- }
- break;
- case 'd':
- if(second != 'o' && third == 'c') {
- GenerateXMLDocumentationFiles = _True;
- XMLDocumentationFileName += option+4;
- break;
- }
- found = false;
- break;
- case 'e':
- if (second == 'r' && third == 'r' && fourth == 'o') {
- if (option[12] == ':') {
- if ( option[13] == 'n') {
- ErrorReporting = "None";
- } else if (option[13] == 'p') {
- ErrorReporting = "Prompt";
- } else if (option[13] == 'q') {
- ErrorReporting = "Queue";
- } else if (option[13] == 's') {
- ErrorReporting = "Send";
- } else {
- found = false;
- }
- break;
- }
- }
- found = false;
- break;
- case 'f':
- if(second == 'p' && third == ':') {
- // Go to the end of the option
- const char *c = option + 4;
- while (*c != '\0' && *c != ' ' && *c != '-')
- ++c;
- switch (fourth) {
- case 'e':
- FloatingPointExceptions = ((*c) == '-' ? _False : _True);
- break;
- case 'f':
- FloatingPointModel = "Fast";
- break;
- case 'p':
- FloatingPointModel = "Precise";
- break;
- case 's':
- FloatingPointModel = "Strict";
- break;
- default:
- found = false;
- break;
- }
- }
- break;
- case 'h':
- if(second == 'o' && third == 't' && fourth == 'p') {
- CreateHotpatchableImage = _True;
- break;
- }
- qWarning("Generator: Option '/help': MSVC.NET projects do not support outputting help info");
- found = false;
- break;
- case 'n':
- if(second == 'o' && third == 'l' && fourth == 'o') {
- SuppressStartupBanner = _True;
- break;
- }
- found = false;
- break;
- case 'o':
- if (second == 'p' && third == 'e' && fourth == 'n') {
- OpenMPSupport = _True;
- break;
- }
- found = false;
- break;
- case 's':
- if(second == 'h' && third == 'o' && fourth == 'w') {
- ShowIncludes = _True;
- break;
- }
- found = false;
- break;
- case 'u':
- UndefineAllPreprocessorDefinitions = _True;
- break;
- case 'v':
- if(second == 'd' || second == 'm') {
- AdditionalOptions += option;
- break;
- }
- found = false;
- break;
- case 'w':
- switch (second) {
- case 'd':
- DisableSpecificWarnings += option+3;
- break;
- case 'e':
- TreatSpecificWarningsAsErrors = option+3;
- break;
- default:
- AdditionalOptions += option;
- }
- break;
- default:
- AdditionalOptions += option;
- break;
- }
- if(!found) {
- warn_msg(WarnLogic, "Could not parse Compiler option: %s, added as AdditionalOption", option);
- AdditionalOptions += option;
- }
- return true;
-}
-
-// VCLinkerTool -----------------------------------------------------
-VCXLinkerTool::VCXLinkerTool()
- : AllowIsolation(unset),
- AssemblyDebug(unset),
- DataExecutionPrevention(unset),
- DelaySign(unset),
- EnableCOMDATFolding(unset),
- EnableUAC(unset),
- FixedBaseAddress(unset),
- GenerateDebugInformation(unset),
- GenerateManifest(unset),
- GenerateMapFile(unset),
- HeapCommitSize(-1),
- HeapReserveSize(-1),
- IgnoreAllDefaultLibraries(unset),
- IgnoreEmbeddedIDL(unset),
- IgnoreImportLibrary(_True),
- ImageHasSafeExceptionHandlers(unset),
- LargeAddressAware(unset),
- LinkDLL(unset),
- LinkIncremental(unset),
- LinkStatus(unset),
- MapExports(unset),
- NoEntryPoint(unset),
- OptimizeReferences(unset),
- PreventDllBinding(unset),
- RandomizedBaseAddress(unset),
- RegisterOutput(unset),
- SectionAlignment(-1),
- SetChecksum(unset),
- //StackCommitSize(-1),
- //StackReserveSize(-1),
- SupportNobindOfDelayLoadedDLL(unset),
- SupportUnloadOfDelayLoadedDLL(unset),
- SuppressStartupBanner(unset),
- SwapRunFromCD(unset),
- SwapRunFromNet(unset),
- TerminalServerAware(unset),
- TreatLinkerWarningAsErrors(unset),
- TurnOffAssemblyGeneration(unset),
- TypeLibraryResourceID(0),
- UACUIAccess(unset)
-{
-}
-
-XmlOutput &operator<<(XmlOutput &xml, const VCXLinkerTool &tool)
-{
- return xml
+ xml
<< tag(_Link)
<< attrTagX(_AdditionalDependencies, tool.AdditionalDependencies, ";")
<< attrTagX(_AdditionalLibraryDirectories, tool.AdditionalLibraryDirectories, ";")
@@ -1115,18 +1311,15 @@ XmlOutput &operator<<(XmlOutput &xml, const VCXLinkerTool &tool)
<< attrTagS(_CLRImageType, tool.CLRImageType)
<< attrTagS(_CLRSupportLastError, tool.CLRSupportLastError)
<< attrTagS(_CLRThreadAttribute, tool.CLRThreadAttribute)
- << attrTagS(_CLRUnmanagedCodeCheck, tool.CLRUnmanagedCodeCheck)
- << attrTagS(_CreateHotPatchableImage, tool.CreateHotPatchableImage)
+ << attrTagT(_CLRUnmanagedCodeCheck, tool.CLRUnmanagedCodeCheck)
+//unused << attrTagS(_CreateHotPatchableImage, tool.CreateHotPatchableImage)
<< attrTagT(_DataExecutionPrevention, tool.DataExecutionPrevention)
<< attrTagX(_DelayLoadDLLs, tool.DelayLoadDLLs, ";")
<< attrTagT(_DelaySign, tool.DelaySign)
- << attrTagS(_Driver, tool.Driver)
- << attrTagX(_EmbedManagedResourceFile, tool.EmbedManagedResourceFile, ";")
- << attrTagT(_EnableCOMDATFolding, tool.EnableCOMDATFolding)
+ << attrTagS(_EmbedManagedResourceFile, tool.LinkToManagedResourceFile)
+ << attrTagT(_EnableCOMDATFolding, toTriState(tool.EnableCOMDATFolding))
<< attrTagT(_EnableUAC, tool.EnableUAC)
<< attrTagS(_EntryPointSymbol, tool.EntryPointSymbol)
- << attrTagT(_FixedBaseAddress, tool.FixedBaseAddress)
- << attrTagS(_ForceFileOutput, tool.ForceFileOutput)
<< attrTagX(_ForceSymbolReferences, tool.ForceSymbolReferences, ";")
<< attrTagS(_FunctionOrder, tool.FunctionOrder)
<< attrTagT(_GenerateDebugInformation, tool.GenerateDebugInformation)
@@ -1137,17 +1330,16 @@ XmlOutput &operator<<(XmlOutput &xml, const VCXLinkerTool &tool)
<< attrTagT(_IgnoreAllDefaultLibraries, tool.IgnoreAllDefaultLibraries)
<< attrTagT(_IgnoreEmbeddedIDL, tool.IgnoreEmbeddedIDL)
<< attrTagT(_IgnoreImportLibrary, tool.IgnoreImportLibrary)
- << attrTagX(_IgnoreSpecificDefaultLibraries, tool.IgnoreSpecificDefaultLibraries, ";")
- << attrTagT(_ImageHasSafeExceptionHandlers, tool.ImageHasSafeExceptionHandlers)
+ << attrTagX(_IgnoreSpecificDefaultLibraries, tool.IgnoreDefaultLibraryNames, ";")
<< attrTagS(_ImportLibrary, tool.ImportLibrary)
<< attrTagS(_KeyContainer, tool.KeyContainer)
<< attrTagS(_KeyFile, tool.KeyFile)
- << attrTagT(_LargeAddressAware, tool.LargeAddressAware)
- << attrTagT(_LinkDLL, tool.LinkDLL)
+ << attrTagT(_LargeAddressAware, toTriState(tool.LargeAddressAware))
+ << attrTagT(_LinkDLL, (tool.config->ConfigurationType == typeDynamicLibrary ? _True : unset))
<< attrTagS(_LinkErrorReporting, tool.LinkErrorReporting)
- << attrTagT(_LinkIncremental, tool.LinkIncremental)
- << attrTagT(_LinkStatus, tool.LinkStatus)
- << attrTagS(_LinkTimeCodeGeneration, tool.LinkTimeCodeGeneration)
+ << attrTagT(_LinkIncremental, toTriState(tool.LinkIncremental))
+ << attrTagT(_LinkStatus, toTriState(tool.ShowProgress))
+ << attrTagS(_LinkTimeCodeGeneration, toString(tool.LinkTimeCodeGeneration))
<< attrTagS(_ManifestFile, tool.ManifestFile)
<< attrTagT(_MapExports, tool.MapExports)
<< attrTagS(_MapFileName, tool.MapFileName)
@@ -1155,32 +1347,27 @@ XmlOutput &operator<<(XmlOutput &xml, const VCXLinkerTool &tool)
<< attrTagS(_MergeSections, tool.MergeSections)
<< attrTagS(_MidlCommandFile, tool.MidlCommandFile)
<< attrTagS(_ModuleDefinitionFile, tool.ModuleDefinitionFile)
- << attrTagS(_MSDOSStubFileName, tool.MSDOSStubFileName)
- << attrTagT(_NoEntryPoint, tool.NoEntryPoint)
- << attrTagT(_OptimizeReferences, tool.OptimizeReferences)
+ << attrTagT(_NoEntryPoint, tool.ResourceOnlyDLL)
+ << attrTagT(_OptimizeReferences, toTriState(tool.OptimizeReferences))
<< attrTagS(_OutputFile, tool.OutputFile)
<< attrTagT(_PreventDllBinding, tool.PreventDllBinding)
- << attrTagS(_Profile, tool.Profile)
- << attrTagS(_ProfileGuidedDatabase, tool.ProfileGuidedDatabase)
<< attrTagS(_ProgramDatabaseFile, tool.ProgramDatabaseFile)
<< attrTagT(_RandomizedBaseAddress, tool.RandomizedBaseAddress)
<< attrTagT(_RegisterOutput, tool.RegisterOutput)
<< attrTagL(_SectionAlignment, tool.SectionAlignment, /*ifNot*/ -1)
<< attrTagT(_SetChecksum, tool.SetChecksum)
- << attrTagS(_ShowProgress, tool.ShowProgress)
- << attrTagS(_SpecifySectionAttributes, tool.SpecifySectionAttributes)
- << attrTagS(_StackCommitSize, tool.StackCommitSize)
- << attrTagS(_StackReserveSize, tool.StackReserveSize)
+ << attrTagL(_StackCommitSize, tool.StackCommitSize, /*ifNot*/ -1)
+ << attrTagL(_StackReserveSize, tool.StackReserveSize, /*ifNot*/ -1)
<< attrTagS(_StripPrivateSymbols, tool.StripPrivateSymbols)
- << attrTagS(_SubSystem, tool.SubSystem)
- << attrTagT(_SupportNobindOfDelayLoadedDLL, tool.SupportNobindOfDelayLoadedDLL)
+ << attrTagS(_SubSystem, toString(tool.SubSystem))
+// << attrTagT(_SupportNobindOfDelayLoadedDLL, tool.SupportNobindOfDelayLoadedDLL)
<< attrTagT(_SupportUnloadOfDelayLoadedDLL, tool.SupportUnloadOfDelayLoadedDLL)
<< attrTagT(_SuppressStartupBanner, tool.SuppressStartupBanner)
<< attrTagT(_SwapRunFromCD, tool.SwapRunFromCD)
<< attrTagT(_SwapRunFromNet, tool.SwapRunFromNet)
- << attrTagS(_TargetMachine, tool.TargetMachine)
- << attrTagT(_TerminalServerAware, tool.TerminalServerAware)
- << attrTagT(_TreatLinkerWarningAsErrors, tool.TreatLinkerWarningAsErrors)
+ << attrTagS(_TargetMachine, toString(tool.TargetMachine))
+ << attrTagT(_TerminalServerAware, toTriState(tool.TerminalServerAware))
+ << attrTagT(_TreatLinkerWarningAsErrors, tool.TreatWarningsAsErrors)
<< attrTagT(_TurnOffAssemblyGeneration, tool.TurnOffAssemblyGeneration)
<< attrTagS(_TypeLibraryFile, tool.TypeLibraryFile)
<< attrTagL(_TypeLibraryResourceID, tool.TypeLibraryResourceID, /*ifNot*/ 0)
@@ -1190,618 +1377,18 @@ XmlOutput &operator<<(XmlOutput &xml, const VCXLinkerTool &tool)
<< closetag(_Link);
}
-// Hashing routine to do fast option lookups ----
-// Slightly rewritten to stop on ':' ',' and '\0'
-// Original routine in qtranslator.cpp ----------
-static uint elfHash(const char* name)
+void VCXProjectWriter::write(XmlOutput &xml, const VCMIDLTool &tool)
{
- const uchar *k;
- uint h = 0;
- uint g;
-
- if(name) {
- k = (const uchar *) name;
- while((*k) &&
- (*k)!= ':' &&
- (*k)!=',' &&
- (*k)!=' ') {
- h = (h << 4) + *k++;
- if((g = (h & 0xf0000000)) != 0)
- h ^= g >> 24;
- h &= ~g;
- }
- }
- if(!h)
- h = 1;
- return h;
-}
-
-//#define USE_DISPLAY_HASH
-#ifdef USE_DISPLAY_HASH
-static void displayHash(const char* str)
-{
- printf("case 0x%07x: // %s\n break;\n", elfHash(str), str);
-}
-#endif
-
-bool VCXLinkerTool::parseOption(const char* option)
-{
-#ifdef USE_DISPLAY_HASH
- // Main options
- displayHash("/ALIGN"); displayHash("/ALLOWBIND"); displayHash("/ASSEMBLYMODULE");
- displayHash("/ASSEMBLYRESOURCE"); displayHash("/BASE"); displayHash("/DEBUG");
- displayHash("/DEF"); displayHash("/DEFAULTLIB"); displayHash("/DELAY");
- displayHash("/DELAYLOAD"); displayHash("/DLL"); displayHash("/DRIVER");
- displayHash("/ENTRY"); displayHash("/EXETYPE"); displayHash("/EXPORT");
- displayHash("/FIXED"); displayHash("/FORCE"); displayHash("/HEAP");
- displayHash("/IDLOUT"); displayHash("/IGNORE"); displayHash("/IGNOREIDL"); displayHash("/IMPLIB");
- displayHash("/INCLUDE"); displayHash("/INCREMENTAL"); displayHash("/LARGEADDRESSAWARE");
- displayHash("/LIBPATH"); displayHash("/LTCG"); displayHash("/MACHINE");
- displayHash("/MAP"); displayHash("/MAPINFO"); displayHash("/MERGE");
- displayHash("/MIDL"); displayHash("/NOASSEMBLY"); displayHash("/NODEFAULTLIB");
- displayHash("/NOENTRY"); displayHash("/NOLOGO"); displayHash("/OPT");
- displayHash("/ORDER"); displayHash("/OUT"); displayHash("/PDB");
- displayHash("/PDBSTRIPPED"); displayHash("/RELEASE"); displayHash("/SECTION");
- displayHash("/STACK"); displayHash("/STUB"); displayHash("/SUBSYSTEM");
- displayHash("/SWAPRUN"); displayHash("/TLBID"); displayHash("/TLBOUT");
- displayHash("/TSAWARE"); displayHash("/VERBOSE"); displayHash("/VERSION");
- displayHash("/VXD"); displayHash("/WS "); displayHash("/libpath");
-
-#endif
-#ifdef USE_DISPLAY_HASH
- // Sub options
- displayHash("UNLOAD"); displayHash("NOBIND"); displayHash("no"); displayHash("NOSTATUS"); displayHash("STATUS");
- displayHash("AM33"); displayHash("ARM"); displayHash("CEE"); displayHash("EBC"); displayHash("IA64"); displayHash("X86"); displayHash("X64"); displayHash("M32R");
- displayHash("MIPS"); displayHash("MIPS16"); displayHash("MIPSFPU"); displayHash("MIPSFPU16"); displayHash("MIPSR41XX"); displayHash("PPC");
- displayHash("SH3"); displayHash("SH3DSP"); displayHash("SH4"); displayHash("SH5"); displayHash("THUMB"); displayHash("TRICORE"); displayHash("EXPORTS");
- displayHash("LINES"); displayHash("REF"); displayHash("NOREF"); displayHash("ICF"); displayHash("WIN98"); displayHash("NOWIN98");
- displayHash("CONSOLE"); displayHash("EFI_APPLICATION"); displayHash("EFI_BOOT_SERVICE_DRIVER"); displayHash("EFI_ROM"); displayHash("EFI_RUNTIME_DRIVER"); displayHash("NATIVE");
- displayHash("POSIX"); displayHash("WINDOWS"); displayHash("WINDOWSCE"); displayHash("NET"); displayHash("CD"); displayHash("NO");
-#endif
- bool found = true;
- switch (elfHash(option)) {
- case 0x6b21972: // /DEFAULTLIB:library
- case 0xaca9d75: // /EXETYPE[:DYNAMIC | :DEV386]
- case 0x3ad5444: // /EXPORT:entryname[,@ordinal[,NONAME]][,DATA]
- case 0x3dc3455: // /IGNORE:number,number,number,number ### NOTE: This one is undocumented, but it is even used by Microsoft.
- // In recent versions of the Microsoft linker they have disabled this undocumented feature.
- case 0x0034bc4: // /VXD
- AdditionalOptions += option;
- break;
- case 0x3360dbe: // /ALIGN[:number]
- SectionAlignment = QString(option+7).toLongLong();
- break;
- case 0x1485c34: // /ALLOWBIND[:NO]
- if(*(option+10) == ':' && (*(option+11) == 'n' || *(option+11) == 'N'))
- PreventDllBinding = _False;
- else
- PreventDllBinding = _True;
- break;
- case 0x312011e: // /ALLOWISOLATION[:NO]
- if(*(option+15) == ':' && (*(option+16) == 'n' || *(option+16) == 'N'))
- AllowIsolation = _False;
- else
- AllowIsolation = _True;
- break;
- case 0x679c075: // /ASSEMBLYMODULE:filename
- AddModuleNamesToAssembly += option+15;
- break;
- case 0x75f35f7: // /ASSEMBLYDEBUG[:DISABLE]
- if(*(option+14) == ':' && (*(option+15) == 'D'))
- AssemblyDebug = _False;
- else
- AssemblyDebug = _True;
- break;
- case 0x43294a5: // /ASSEMBLYLINKRESOURCE:filename
- AssemblyLinkResource += option+22;
- break;
- case 0x062d065: // /ASSEMBLYRESOURCE:filename
- EmbedManagedResourceFile += option+18;
- break;
- case 0x0336675: // /BASE:{address | @filename,key}
- // Do we need to do a manual lookup when '@filename,key'?
- // Seems BaseAddress only can contain the location...
- // We don't use it in Qt, so keep it simple for now
- BaseAddress = option+6;
- break;
- case 0x63bf065: // /CLRIMAGETYPE:{IJW|PURE|SAFE}
- if(*(option+14) == 'I')
- CLRImageType = "ForceIJWImage";
- else if(*(option+14) == 'P')
- CLRImageType = "ForcePureILImage";
- else if(*(option+14) == 'S')
- CLRImageType = "ForceSafeILImage";
- break;
- case 0x5f2a6a2: // /CLRSUPPORTLASTERROR{:NO | SYSTEMDLL}
- if(*(option+20) == ':') {
- if(*(option+21) == 'N') {
- CLRSupportLastError = "Disabled";
- } else if(*(option+21) == 'S') {
- CLRSupportLastError = "SystemDlls";
- }
- } else {
- CLRSupportLastError = "Enabled";
- }
- break;
- case 0xc7984f5: // /CLRTHREADATTRIBUTE:{STA|MTA|NONE}
- if(*(option+20) == 'N')
- CLRThreadAttribute = "DefaultThreadingAttribute";
- else if(*(option+20) == 'M')
- CLRThreadAttribute = "MTAThreadingAttribute";
- else if(*(option+20) == 'S')
- CLRThreadAttribute = "STAThreadingAttribute";
- break;
- case 0xa8c637b: // /CLRUNMANAGEDCODECHECK[:NO]
- if(*(option+23) == 'N')
- CLRUnmanagedCodeCheck = _False;
- else
- CLRUnmanagedCodeCheck = _True;
- break;
- case 0x3389797: // /DEBUG
- GenerateDebugInformation = _True;
- break;
- case 0x0033896: // /DEF:filename
- ModuleDefinitionFile = option+5;
- break;
- case 0x338a069: // /DELAY:{UNLOAD | NOBIND}
- if(*(option+7) == 'U')
- SupportNobindOfDelayLoadedDLL = _True;
- else if(*(option+7) == 'N')
- SupportUnloadOfDelayLoadedDLL = _True;
- break;
- case 0x06f4bf4: // /DELAYLOAD:dllname
- DelayLoadDLLs += option+11;
- break;
- case 0x06d451e: // /DELAYSIGN[:NO]
- if(*(option+10) == ':' && (*(option+11) == 'n' || *(option+11) == 'N'))
- DelaySign = _False;
- else
- DelaySign = _True;
- break;
- case 0x003390c: // /DLL
- LinkDLL = _True;
- break;
- case 0x396ea92: // /DRIVER[:UPONLY | :WDM]
- if((*(option+7) == ':') && (*(option+8) == 'U'))
- Driver = "UpOnly";
- else if((*(option+7) == ':') && (*(option+8) == 'W'))
- Driver = "WDM";
- else
- Driver = "Driver";
- break;
- case 0x2ee8415: // /DYNAMICBASE[:NO]
- if(*(option+12) == ':' && (*(option+13) == 'n' || *(option+13) == 'N'))
- RandomizedBaseAddress = _False;
- else
- RandomizedBaseAddress = _True;
- break;
- case 0x33a3979: // /ENTRY:function
- EntryPointSymbol = option+7;
- break;
- case 0x4504334: // /ERRORREPORT:[ NONE | PROMPT | QUEUE | SEND ]
- if(*(option+12) == ':' ) {
- if(*(option+13) == 'N')
- LinkErrorReporting = "NoErrorReport";
- else if(*(option+13) == 'P')
- LinkErrorReporting = "PromptImmediately";
- else if(*(option+13) == 'Q')
- LinkErrorReporting = "QueueForNextLogin";
- else if(*(option+13) == 'S')
- LinkErrorReporting = "SendErrorReport";
- }
- break;
- case 0x33aec94: // /FIXED[:NO]
- if(*(option+6) == ':' && (*(option+7) == 'n' || *(option+7) == 'N'))
- FixedBaseAddress = _False;
- else
- FixedBaseAddress = _True;
- break;
- case 0x33b4675: // /FORCE:[MULTIPLE|UNRESOLVED]
- if(*(option+6) == ':' && *(option+7) == 'M' )
- ForceFileOutput = "MultiplyDefinedSymbolOnly";
- else if(*(option+6) == ':' && *(option+7) == 'U' )
- ForceFileOutput = "UndefinedSymbolOnly";
- else
- ForceFileOutput = "Enabled";
- break;
- case 0x96d4e4e: // /FUNCTIONPADMIN[:space]
- if(*(option+15) == ':') {
- if(*(option+16) == '5')
- CreateHotPatchableImage = "X86Image";
- else if(*(option+16) == '6')
- CreateHotPatchableImage = "X64Image";
- else if((*(option+16) == '1') && (*(option+17) == '6'))
- CreateHotPatchableImage = "ItaniumImage";
- } else {
- CreateHotPatchableImage = "Enabled";
- }
- break;
- case 0x033c960: // /HEAP:reserve[,commit]
- {
- QStringList both = QString(option+6).split(",");
- HeapReserveSize = both[0].toLongLong();
- if(both.count() == 2)
- HeapCommitSize = both[1].toLongLong();
- }
- break;
- case 0x3d91494: // /IDLOUT:[path\]filename
- MergedIDLBaseFileName = option+8;
- break;
- case 0x345a04c: // /IGNOREIDL
- IgnoreEmbeddedIDL = _True;
- break;
- case 0x3e250e2: // /IMPLIB:filename
- ImportLibrary = option+8;
- break;
- case 0xe281ab5: // /INCLUDE:symbol
- ForceSymbolReferences += option+9;
- break;
- case 0xb28103c: // /INCREMENTAL[:no]
- if(*(option+12) == ':' &&
- (*(option+13) == 'n' || *(option+13) == 'N'))
- LinkIncremental = _False;
- else
- LinkIncremental = _True;
- break;
- case 0x07f1ab2: // /KEYCONTAINER:name
- KeyContainer = option+14;
- break;
- case 0xfadaf35: // /KEYFILE:filename
- KeyFile = option+9;
- break;
- case 0x26e4675: // /LARGEADDRESSAWARE[:no]
- if(*(option+18) == ':' &&
- *(option+19) == 'n')
- LargeAddressAware = _False;
- else
- LargeAddressAware = _True;
- break;
- case 0x2f96bc8: // /libpath:dir
- case 0x0d745c8: // /LIBPATH:dir
- AdditionalLibraryDirectories += option+9;
- break;
- case 0x0341877: // /LTCG[:NOSTATUS|:STATUS]
- config->WholeProgramOptimization = _True;
- LinkTimeCodeGeneration = "UseLinkTimeCodeGeneration";
- if(*(option+5) == ':') {
- const char* str = option+6;
- if (*str == 'S')
- LinkStatus = _True;
- else if (*str == 'N')
- LinkStatus = _False;
-#ifndef Q_OS_WIN
- else if (strncasecmp(str, "pginstrument", 12))
- LinkTimeCodeGeneration = "PGInstrument";
- else if (strncasecmp(str, "pgoptimize", 10))
- LinkTimeCodeGeneration = "PGOptimization";
- else if (strncasecmp(str, "pgupdate", 8 ))
- LinkTimeCodeGeneration = "PGUpdate";
-#else
-
- else if (_stricmp(str, "pginstrument"))
- LinkTimeCodeGeneration = "PGInstrument";
- else if (_stricmp(str, "pgoptimize"))
- LinkTimeCodeGeneration = "PGOptimization";
- else if (_stricmp(str, "pgupdate"))
- LinkTimeCodeGeneration = "PGUpdate";
-#endif
- }
- break;
- case 0x379ED25:
- case 0x157cf65: // /MACHINE:{AM33|ARM|CEE|IA64|X86|M32R|MIPS|MIPS16|MIPSFPU|MIPSFPU16|MIPSR41XX|PPC|SH3|SH4|SH5|THUMB|TRICORE}
- switch (elfHash(option+9)) {
- case 0x0005bb6: // X86
- TargetMachine = "MachineX86";
- break;
- case 0x0005b94: // X64
- TargetMachine = "MachineX64";
- break;
- case 0x000466d: // ARM
- TargetMachine = "MachineARM";
- break;
- case 0x0004963: // EBC
- TargetMachine = "MachineEBC";
- break;
- case 0x004d494: // IA64
- TargetMachine = "MachineIA64";
- break;
- case 0x0051e53: // MIPS
- TargetMachine = "MachineMIPS";
- break;
- case 0x51e5646: // MIPS16
- TargetMachine = "MachineMIPS16";
- break;
- case 0x1e57b05: // MIPSFPU
- TargetMachine = "MachineMIPSFPU";
- break;
- case 0x57b09a6: // MIPSFPU16
- TargetMachine = "MachineMIPSFPU16";
- break;
- case 0x00057b4: // SH4
- TargetMachine = "MachineSH4";
- break;
- case 0x058da12: // THUMB
- TargetMachine = "MachineTHUMB";
- break;
- // put the others in AdditionalOptions...
- case 0x0046063: // AM33
- case 0x0004795: // CEE
- case 0x0050672: // M32R
- case 0x5852738: // MIPSR41XX
- case 0x0005543: // PPC
- case 0x00057b3: // SH3
- case 0x57b7980: // SH3DSP
- case 0x00057b5: // SH5
- case 0x96d8435: // TRICORE
- default:
- AdditionalOptions += option;
- break;
- }
- break;
- case 0x62d9e94: // /MANIFEST[:NO]
- if ((*(option+9) == ':' && (*(option+10) == 'N' || *(option+10) == 'n')))
- GenerateManifest = _False;
- else
- GenerateManifest = _True;
- break;
- case 0x8b64559: // /MANIFESTDEPENDENCY:manifest_dependency
- AdditionalManifestDependencies += option+20;
- break;
- case 0xe9e8195: // /MANIFESTFILE:filename
- ManifestFile = option+14;
- break;
- case 0x9e9fb83: // /MANIFESTUAC http://msdn.microsoft.com/en-us/library/bb384691%28VS.100%29.aspx
- if ((*(option+12) == ':' && (*(option+13) == 'N' || *(option+13) == 'n')))
- EnableUAC = _False;
- else if((*(option+12) == ':' && (*(option+13) == 'l' || *(option+14) == 'e'))) { // level
- if(*(option+20) == 'a')
- UACExecutionLevel = "AsInvoker";
- else if(*(option+20) == 'h')
- UACExecutionLevel = "HighestAvailable";
- else if(*(option+20) == 'r')
- UACExecutionLevel = "RequireAdministrator";
- } else if((*(option+12) == ':' && (*(option+13) == 'u' || *(option+14) == 'i'))) { // uiAccess
- if(*(option+22) == 't')
- UACUIAccess = _True;
- else
- UACUIAccess = _False;
- } else if((*(option+12) == ':' && (*(option+13) == 'f' || *(option+14) == 'r'))) { // fragment
- AdditionalOptions += option;
- }else
- EnableUAC = _True;
- break;
- case 0x0034160: // /MAP[:filename]
- GenerateMapFile = _True;
- MapFileName = option+5;
- break;
- case 0x164e1ef: // /MAPINFO:{EXPORTS}
- if(*(option+9) == 'E')
- MapExports = _True;
- break;
- case 0x341a6b5: // /MERGE:from=to
- MergeSections = option+7;
- break;
- case 0x0341d8c: // /MIDL:@file
- MidlCommandFile = option+7;
- break;
- case 0x84e2679: // /NOASSEMBLY
- TurnOffAssemblyGeneration = _True;
- break;
- case 0x2b21942: // /NODEFAULTLIB[:library]
- if(*(option+13) == '\0')
- IgnoreAllDefaultLibraries = _True;
- else
- IgnoreSpecificDefaultLibraries += option+14;
- break;
- case 0x33a3a39: // /NOENTRY
- NoEntryPoint = _True;
- break;
- case 0x434138f: // /NOLOGO
- SuppressStartupBanner = _True;
- break;
- case 0xc841054: // /NXCOMPAT[:NO]
- if ((*(option+9) == ':' && (*(option+10) == 'N' || *(option+10) == 'n')))
- DataExecutionPrevention = _False;
- else
- DataExecutionPrevention = _True;
- break;
- case 0x0034454: // /OPT:{REF | NOREF | ICF[=iterations] | NOICF | WIN98 | NOWIN98}
- {
- char third = *(option+7);
- switch (third) {
- case 'F': // REF
- if(*(option+5) == 'R') {
- OptimizeReferences = _True;
- } else { // ICF[=iterations]
- EnableCOMDATFolding = _True;
- // [=iterations] case is not documented
- }
- break;
- case 'R': // NOREF
- OptimizeReferences = _False;
- break;
- case 'I': // NOICF
- EnableCOMDATFolding = _False;
- break;
- default:
- found = false;
- }
- }
- break;
- case 0x34468a2: // /ORDER:@filename
- FunctionOrder = option+8;
- break;
- case 0x00344a4: // /OUT:filename
- OutputFile = option+5;
- break;
- case 0x0034482: // /PDB:filename
- ProgramDatabaseFile = option+5;
- break;
- case 0xa2ad314: // /PDBSTRIPPED:pdb_file_name
- StripPrivateSymbols = option+13;
- break;
- case 0x00344b4: // /PGD:filename
- ProfileGuidedDatabase = option+5;
- break;
- case 0x573af45: // /PROFILE
- Profile = _True;
- break;
- case 0x6a09535: // /RELEASE
- SetChecksum = _True;
- break;
- case 0x75AA4D8: // /SAFESEH:{NO}
- {
- if(*(option+8) == ':' && *(option+9) == 'N')
- ImageHasSafeExceptionHandlers = _False;
- else
- ImageHasSafeExceptionHandlers = _True;
- }
- break;
- case 0x7988f7e: // /SECTION:name,[E][R][W][S][D][K][L][P][X][,ALIGN=#]
- SpecifySectionAttributes = option+9;
- break;
- case 0x348857b: // /STACK:reserve[,commit]
- {
- QStringList both = QString(option+7).split(",");
- StackReserveSize = both[0].toLongLong();
- if(both.count() == 2)
- StackCommitSize = both[1].toLongLong();
- }
- break;
- case 0x0348992: // /STUB:filename
- MSDOSStubFileName = option+6;
- break;
- case 0x9B3C00D:
- case 0x78dc00d: // /SUBSYSTEM:{CONSOLE|EFI_APPLICATION|EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|NATIVE|POSIX|WINDOWS|WINDOWSCE}[,major[.minor]]
- {
- // Split up in subsystem, and version number
- QStringList both = QString(option+11).split(",");
- switch (elfHash(both[0].toLatin1())) {
- case 0x8438445: // CONSOLE
- SubSystem = "Console";
- break;
- case 0xbe29493: // WINDOWS
- SubSystem = "Windows";
- break;
- case 0x5268ea5: // NATIVE
- SubSystem = "Native";
- break;
- case 0x240949e: // EFI_APPLICATION
- SubSystem = "EFI Application";
- break;
- case 0xe617652: // EFI_BOOT_SERVICE_DRIVER
- SubSystem = "EFI Boot Service Driver";
- break;
- case 0x9af477d: // EFI_ROM
- SubSystem = "EFI ROM";
- break;
- case 0xd34df42: // EFI_RUNTIME_DRIVER
- SubSystem = "EFI Runtime";
- break;
- case 0x2949c95: // WINDOWSCE
- SubSystem = "WindowsCE";
- break;
- case 0x05547e8: // POSIX
- SubSystem = "POSIX";
- break;
- // The following are undocumented, so add them to AdditionalOptions
- case 0x4B69795: // windowsce
- AdditionalOptions += option;
- break;
- default:
- found = false;
- }
- }
- break;
- case 0x8b654de: // /SWAPRUN:{NET | CD}
- if(*(option+9) == 'N')
- SwapRunFromNet = _True;
- else if(*(option+9) == 'C')
- SwapRunFromCD = _True;
- else
- found = false;
- break;
- case 0x34906d4: // /TLBID:id
- TypeLibraryResourceID = QString(option+7).toLongLong();
- break;
- case 0x4907494: // /TLBOUT:[path\]filename
- TypeLibraryFile = option+8;
- break;
- case 0x976b525: // /TSAWARE[:NO]
- if(*(option+8) == ':')
- TerminalServerAware = _False;
- else
- TerminalServerAware = _True;
- break;
- case 0xaa67735: // /VERBOSE[:ICF |:LIB |:REF |:SAFESEH]
- if(*(option+9) == ':') {
- if (*(option+10) == 'I') {
- ShowProgress = "LinkVerboseICF";
- } else if ( *(option+10) == 'L') {
- ShowProgress = "LinkVerboseLib";
- } else if ( *(option+10) == 'R') {
- ShowProgress = "LinkVerboseREF";
- } else if ( *(option+10) == 'S') {
- ShowProgress = "LinkVerboseSAFESEH";
- } else if ( *(option+10) == 'C') {
- ShowProgress = "LinkVerboseCLR";
- }
- } else {
- ShowProgress = "LinkVerbose";
- }
- break;
- case 0xaa77f7e: // /VERSION:major[.minor]
- Version = option+9;
- break;
- case 0x0034c50: // /WS[:NO]
- if(*(option+3) == ':')
- TreatLinkerWarningAsErrors = _False;
- else
- TreatLinkerWarningAsErrors = _True;
- break;
- default:
- AdditionalOptions += option;
- break;
- }
- if(!found) {
- warn_msg(WarnLogic, "Could not parse Linker options: %s, added as AdditionalOption", option);
- AdditionalOptions += option;
- }
- return found;
-}
-
-// VCMIDLTool -------------------------------------------------------
-VCXMIDLTool::VCXMIDLTool()
- : ApplicationConfigurationMode(unset),
- ErrorCheckAllocations(unset),
- ErrorCheckBounds(unset),
- ErrorCheckEnumRange(unset),
- ErrorCheckRefPointers(unset),
- ErrorCheckStubData(unset),
- GenerateStublessProxies(unset),
- GenerateTypeLibrary(unset),
- IgnoreStandardIncludePath(unset),
- LocaleID(-1),
- MkTypLibCompatible(unset),
- SuppressCompilerWarnings(unset),
- SuppressStartupBanner(unset),
- ValidateAllParameters(unset),
- WarnAsError(unset)
-{
-}
-
-XmlOutput &operator<<(XmlOutput &xml, const VCXMIDLTool &tool)
-{
- return xml
+ xml
<< tag(_Midl)
<< attrTagX(_AdditionalIncludeDirectories, tool.AdditionalIncludeDirectories, ";")
<< attrTagX(_AdditionalOptions, tool.AdditionalOptions, " ")
<< attrTagT(_ApplicationConfigurationMode, tool.ApplicationConfigurationMode)
<< attrTagS(_ClientStubFile, tool.ClientStubFile)
- << attrTagS(_CPreprocessOptions, tool.CPreprocessOptions)
- << attrTagS(_DefaultCharType, tool.DefaultCharType)
+ << attrTagX(_CPreprocessOptions, tool.CPreprocessOptions, " ")
+ << attrTagS(_DefaultCharType, toString(tool.DefaultCharType))
<< attrTagS(_DLLDataFileName, tool.DLLDataFileName)
- << attrTagS(_EnableErrorChecks, tool.EnableErrorChecks)
+ << attrTagS(_EnableErrorChecks, toString(tool.EnableErrorChecks))
<< attrTagT(_ErrorCheckAllocations, tool.ErrorCheckAllocations)
<< attrTagT(_ErrorCheckBounds, tool.ErrorCheckBounds)
<< attrTagT(_ErrorCheckEnumRange, tool.ErrorCheckEnumRange)
@@ -1821,324 +1408,20 @@ XmlOutput &operator<<(XmlOutput &xml, const VCXMIDLTool &tool)
<< attrTagS(_ProxyFileName, tool.ProxyFileName)
<< attrTagS(_RedirectOutputAndErrors, tool.RedirectOutputAndErrors)
<< attrTagS(_ServerStubFile, tool.ServerStubFile)
- << attrTagS(_StructMemberAlignment, tool.StructMemberAlignment)
+ << attrTagS(_StructMemberAlignment, toString(tool.StructMemberAlignment))
<< attrTagT(_SuppressCompilerWarnings, tool.SuppressCompilerWarnings)
<< attrTagT(_SuppressStartupBanner, tool.SuppressStartupBanner)
- << attrTagS(_TargetEnvironment, tool.TargetEnvironment)
+ << attrTagS(_TargetEnvironment, toString(tool.TargetEnvironment))
<< attrTagS(_TypeLibFormat, tool.TypeLibFormat)
<< attrTagS(_TypeLibraryName, tool.TypeLibraryName)
<< attrTagX(_UndefinePreprocessorDefinitions, tool.UndefinePreprocessorDefinitions, ";")
<< attrTagT(_ValidateAllParameters, tool.ValidateAllParameters)
<< attrTagT(_WarnAsError, tool.WarnAsError)
- << attrTagS(_WarningLevel, tool.WarningLevel)
+ << attrTagS(_WarningLevel, toString(tool.WarningLevel))
<< closetag(_Midl);
}
-bool VCXMIDLTool::parseOption(const char* option)
-{
-#ifdef USE_DISPLAY_HASH
- displayHash("/D name[=def]"); displayHash("/I directory-list"); displayHash("/Oi");
- displayHash("/Oic"); displayHash("/Oicf"); displayHash("/Oif"); displayHash("/Os");
- displayHash("/U name"); displayHash("/WX"); displayHash("/W{0|1|2|3|4}");
- displayHash("/Zp {N}"); displayHash("/Zs"); displayHash("/acf filename");
- displayHash("/align {N}"); displayHash("/app_config"); displayHash("/c_ext");
- displayHash("/char ascii7"); displayHash("/char signed"); displayHash("/char unsigned");
- displayHash("/client none"); displayHash("/client stub"); displayHash("/confirm");
- displayHash("/cpp_cmd cmd_line"); displayHash("/cpp_opt options");
- displayHash("/cstub filename"); displayHash("/dlldata filename"); displayHash("/env win32");
- displayHash("/env win64"); displayHash("/error all"); displayHash("/error allocation");
- displayHash("/error bounds_check"); displayHash("/error enum"); displayHash("/error none");
- displayHash("/error ref"); displayHash("/error stub_data"); displayHash("/h filename");
- displayHash("/header filename"); displayHash("/iid filename"); displayHash("/lcid");
- displayHash("/mktyplib203"); displayHash("/ms_ext"); displayHash("/ms_union");
- displayHash("/msc_ver <nnnn>"); displayHash("/newtlb"); displayHash("/no_cpp");
- displayHash("/no_def_idir"); displayHash("/no_default_epv"); displayHash("/no_format_opt");
- displayHash("/no_warn"); displayHash("/nocpp"); displayHash("/nologo"); displayHash("/notlb");
- displayHash("/o filename"); displayHash("/oldnames"); displayHash("/oldtlb");
- displayHash("/osf"); displayHash("/out directory"); displayHash("/pack {N}");
- displayHash("/prefix all"); displayHash("/prefix client"); displayHash("/prefix server");
- displayHash("/prefix switch"); displayHash("/protocol all"); displayHash("/protocol dce");
- displayHash("/protocol ndr64"); displayHash("/proxy filename"); displayHash("/robust");
- displayHash("/rpcss"); displayHash("/savePP"); displayHash("/server none");
- displayHash("/server stub"); displayHash("/sstub filename"); displayHash("/syntax_check");
- displayHash("/target {system}"); displayHash("/tlb filename"); displayHash("/use_epv");
- displayHash("/win32"); displayHash("/win64");
-#endif
- bool found = true;
- int offset = 0;
- switch(elfHash(option)) {
- case 0x0000334: // /D name[=def]
- PreprocessorDefinitions += option+3;
- break;
- case 0x0000339: // /I directory-list
- AdditionalIncludeDirectories += option+3;
- break;
- case 0x0345f96: // /Oicf
- case 0x00345f6: // /Oif
- GenerateStublessProxies = _True;
- break;
- case 0x0000345: // /U name
- UndefinePreprocessorDefinitions += option+3;
- break;
- case 0x00034c8: // /WX
- WarnAsError = _True;
- break;
- case 0x3582fde: // /align {N}
- offset = 3; // Fallthrough
- case 0x0003510: // /Zp {N}
- switch (*(option+offset+4)) {
- case '1':
- StructMemberAlignment = (*(option+offset+5) == '\0') ? "1" : "16";
- break;
- case '2':
- StructMemberAlignment = "2";
- break;
- case '4':
- StructMemberAlignment = "4";
- break;
- case '8':
- StructMemberAlignment = "8";
- break;
- default:
- found = false;
- }
- break;
- case 0x5b1cb97: // /app_config
- ApplicationConfigurationMode = _True;
- break;
- case 0x0359e82: // /char {ascii7|signed|unsigned}
- switch(*(option+6)) {
- case 'a':
- DefaultCharType = "Ascii";
- break;
- case 's':
- DefaultCharType = "Signed";
- break;
- case 'u':
- DefaultCharType = "Unsigned";
- break;
- default:
- found = false;
- }
- break;
- case 0x5a2fc64: // /client {none|stub}
- if(*(option+8) == 's')
- GenerateClientFiles = "Stub";
- else
- GenerateClientFiles = "None";
- break;
- case 0xa766524: // /cpp_opt options
- CPreprocessOptions += option+9;
- break;
- case 0x35aabb2: // /cstub filename
- ClientStubFile = option+7;
- break;
- case 0xb32abf1: // /dlldata filename
- DLLDataFileName = option + 9;
- break;
- case 0x0035c56: // /env {win32|ia64|x64}
- if(*(option+7) == 'w' && *(option+10) == '3')
- TargetEnvironment = "Win32";
- else if(*(option+7) == 'i')
- TargetEnvironment = "Itanium";
- else if(*(option+7) == 'x')
- TargetEnvironment = "X64";
- else
- AdditionalOptions += option;
- break;
- case 0x35c9962: // /error {all|allocation|bounds_check|enum|none|ref|stub_data}
- EnableErrorChecks = midlEnableCustom;
- switch (*(option+7)) {
- case '\0':
- EnableErrorChecks = "EnableCustom";
- break;
- case 'a':
- if(*(option+10) == '\0')
- EnableErrorChecks = "All";
- else
- ErrorCheckAllocations = _True;
- break;
- case 'b':
- ErrorCheckBounds = _True;
- break;
- case 'e':
- ErrorCheckEnumRange = _True;
- break;
- case 'n':
- EnableErrorChecks = "None";
- break;
- case 'r':
- ErrorCheckRefPointers = _True;
- break;
- case 's':
- ErrorCheckStubData = _True;
- break;
- default:
- found = false;
- }
- break;
- case 0x5eb7af2: // /header filename
- offset = 5;
- case 0x0000358: // /h filename
- HeaderFileName = option + offset + 3;
- break;
- case 0x0035ff4: // /iid filename
- InterfaceIdentifierFileName = option+5;
- break;
- case 0x64b7933: // /mktyplib203
- MkTypLibCompatible = _True;
- break;
- case 0x64ceb12: // /newtlb
- TypeLibFormat = "NewFormat";
- break;
- case 0x8e0b0a2: // /no_def_idir
- IgnoreStandardIncludePath = _True;
- break;
- case 0x65635ef: // /nologo
- SuppressStartupBanner = _True;
- break;
- case 0x695e9f4: // /no_robust
- ValidateAllParameters = _False;
- break;
- case 0x3656b22: // /notlb
- GenerateTypeLibrary = _True;
- break;
- case 0x556dbee: // /no_warn
- SuppressCompilerWarnings = _True;
- break;
- case 0x000035f: // /o filename
- RedirectOutputAndErrors = option+3;
- break;
- case 0x662bb12: // /oldtlb
- TypeLibFormat = "OldFormat";
- break;
- case 0x00366c4: // /out directory
- OutputDirectory = option+5;
- break;
- case 0x36796f9: // /proxy filename
- ProxyFileName = option+7;
- break;
- case 0x6959c94: // /robust
- ValidateAllParameters = _True;
- break;
- case 0x69c9cf2: // /server {none|stub}
- if(*(option+8) == 's')
- GenerateServerFiles = "Stub";
- else
- GenerateServerFiles = "None";
- break;
- case 0x36aabb2: // /sstub filename
- ServerStubFile = option+7;
- break;
- case 0x0036b22: // /tlb filename
- TypeLibraryName = option+5;
- break;
- case 0x36e0162: // /win32
- TargetEnvironment = "Win32";
- break;
- case 0x36e0194: // /win64
- TargetEnvironment = "Itanium";
- break;
- case 0x0003459: // /Oi
- case 0x00345f3: // /Oic
- case 0x0003463: // /Os
- case 0x0003513: // /Zs
- case 0x0035796: // /acf filename
- case 0x3595cf4: // /c_ext
- case 0xa64d3dd: // /confirm
- case 0xa765b64: // /cpp_cmd cmd_line
- case 0x03629f4: // /lcid
- case 0x6495cc4: // /ms_ext
- case 0x96c7a1e: // /ms_union
- case 0x4996fa2: // /msc_ver <nnnn>
- case 0x6555a40: // /no_cpp
- case 0xf64d6a6: // /no_default_epv
- case 0x6dd9384: // /no_format_opt
- case 0x3655a70: // /nocpp
- case 0x2b455a3: // /oldnames
- case 0x0036696: // /osf
- case 0x036679b: // /pack {N}
- case 0x678bd38: // /prefix {all|client|server|switch}
- case 0x96b702c: // /protocol {all|dce|ndr64}
- case 0x3696aa3: // /rpcss
- case 0x698ca60: // /savePP
- case 0xce9b12b: // /syntax_check
- case 0xc9b5f16: // /use_epv
- AdditionalOptions += option;
- break;
- default:
- // /W{0|1|2|3|4} case
- if(*(option+1) == 'W') {
- switch (*(option+2)) {
- case '0':
- WarningLevel = "0";
- break;
- case '1':
- WarningLevel = "1";
- break;
- case '2':
- WarningLevel = "2";
- break;
- case '3':
- WarningLevel = "3";
- break;
- case '4':
- WarningLevel = "4";
- break;
- default:
- found = false;
- }
- }
- break;
- }
- if(!found)
- warn_msg(WarnLogic, "Could not parse MIDL option: %s", option);
- return true;
-}
-
-// VCLibrarianTool --------------------------------------------------
-VCXLibrarianTool::VCXLibrarianTool()
- : IgnoreAllDefaultLibraries(unset),
- LinkTimeCodeGeneration(unset),
- SuppressStartupBanner(_True),
- TreatLibWarningAsErrors(unset),
- Verbose(unset)
-{
-}
-
-XmlOutput &operator<<(XmlOutput &xml, const VCXLibrarianTool &tool)
-{
- return xml
- << tag(_Link)
- << attrTagX(_AdditionalDependencies, tool.AdditionalDependencies, ";")
- << attrTagX(_AdditionalLibraryDirectories, tool.AdditionalLibraryDirectories, ";")
- << attrTagX(_AdditionalOptions, tool.AdditionalOptions, " ")
- << attrTagS(_DisplayLibrary, tool.DisplayLibrary)
- << attrTagS(_ErrorReporting, tool.ErrorReporting)
- << attrTagX(_ExportNamedFunctions, tool.ExportNamedFunctions, ";")
- << attrTagX(_ForceSymbolReferences, tool.ForceSymbolReferences, ";")
- << attrTagT(_IgnoreAllDefaultLibraries, tool.IgnoreAllDefaultLibraries)
- << attrTagX(_IgnoreSpecificDefaultLibraries, tool.IgnoreSpecificDefaultLibraries, ";")
- << attrTagT(_LinkTimeCodeGeneration, tool.LinkTimeCodeGeneration)
- << attrTagS(_ModuleDefinitionFile, tool.ModuleDefinitionFile)
- << attrTagS(_Name, tool.Name)
- << attrTagS(_OutputFile, tool.OutputFile)
- << attrTagX(_RemoveObjects, tool.RemoveObjects, ";")
- << attrTagS(_SubSystem, tool.SubSystem)
- << attrTagT(_SuppressStartupBanner, tool.SuppressStartupBanner)
- << attrTagS(_TargetMachine, tool.TargetMachine)
- << attrTagT(_TreatLibWarningAsErrors, tool.TreatLibWarningAsErrors)
- << attrTagT(_Verbose, tool.Verbose)
- << closetag(_Link);
-}
-
-// VCCustomBuildTool ------------------------------------------------
-VCXCustomBuildTool::VCXCustomBuildTool()
-{
- ToolName = "VCXCustomBuildTool";
-}
-
-XmlOutput &operator<<(XmlOutput &xml, const VCXCustomBuildTool &tool)
+void VCXProjectWriter::write(XmlOutput &xml, const VCCustomBuildTool &tool)
{
// The code below offers two ways to split custom build step commands.
// Normally the $$escape_expand(\n\t) is used in a project file, which is correctly translated
@@ -2166,124 +1449,98 @@ XmlOutput &operator<<(XmlOutput &xml, const VCXCustomBuildTool &tool)
cmds += cmdl;
}
+ const QString &configName = tool.config->Name;
+
if ( !tool.AdditionalDependencies.isEmpty() )
{
xml << tag("AdditionalInputs")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.ConfigName))
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(configName))
<< valueTagDefX(tool.AdditionalDependencies, "AdditionalInputs", ";");
}
if( !cmds.isEmpty() )
{
xml << tag("Command")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.ConfigName))
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(configName))
<< valueTag(cmds);
}
if ( !tool.Description.isEmpty() )
{
xml << tag("Message")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.ConfigName))
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(configName))
<< valueTag(tool.Description);
}
if ( !tool.Outputs.isEmpty() )
{
xml << tag("Outputs")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.ConfigName))
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(configName))
<< valueTagDefX(tool.Outputs, "Outputs", ";");
}
-
- return xml;
}
-// VCResourceCompilerTool -------------------------------------------
-VCXResourceCompilerTool::VCXResourceCompilerTool()
- : IgnoreStandardIncludePath(unset),
- NullTerminateStrings(unset),
- ShowProgress(unset),
- SuppressStartupBanner(unset)
+void VCXProjectWriter::write(XmlOutput &xml, const VCLibrarianTool &tool)
{
- PreprocessorDefinitions = QStringList("NDEBUG");
+ xml
+ << tag(_Link)
+ << attrTagX(_AdditionalDependencies, tool.AdditionalDependencies, ";")
+ << attrTagX(_AdditionalLibraryDirectories, tool.AdditionalLibraryDirectories, ";")
+ << attrTagX(_AdditionalOptions, tool.AdditionalOptions, " ")
+//unused << attrTagS(_DisplayLibrary, tool.DisplayLibrary)
+//unused << attrTagS(_ErrorReporting, tool.ErrorReporting)
+ << attrTagX(_ExportNamedFunctions, tool.ExportNamedFunctions, ";")
+ << attrTagX(_ForceSymbolReferences, tool.ForceSymbolReferences, ";")
+ << attrTagT(_IgnoreAllDefaultLibraries, tool.IgnoreAllDefaultLibraries)
+ << attrTagX(_IgnoreSpecificDefaultLibraries, tool.IgnoreDefaultLibraryNames, ";")
+//unused << attrTagT(_LinkTimeCodeGeneration, tool.LinkTimeCodeGeneration)
+ << attrTagS(_ModuleDefinitionFile, tool.ModuleDefinitionFile)
+//unused << attrTagS(_Name, tool.Name)
+ << attrTagS(_OutputFile, tool.OutputFile)
+//unused << attrTagX(_RemoveObjects, tool.RemoveObjects, ";")
+//unused << attrTagS(_SubSystem, tool.SubSystem)
+ << attrTagT(_SuppressStartupBanner, tool.SuppressStartupBanner)
+//unused << attrTagS(_TargetMachine, tool.TargetMachine)
+//unused << attrTagT(_TreatLibWarningAsErrors, tool.TreatLibWarningAsErrors)
+//unused << attrTagT(_Verbose, tool.Verbose)
+ << closetag(_Link);
}
-XmlOutput &operator<<(XmlOutput &xml, const VCXResourceCompilerTool &tool)
+void VCXProjectWriter::write(XmlOutput &xml, const VCResourceCompilerTool &tool)
{
- return xml
+ xml
<< tag(_ResourceCompile)
<< attrTagX(_AdditionalIncludeDirectories, tool.AdditionalIncludeDirectories, ";")
- << attrTagS(_AdditionalOptions, tool.AdditionalOptions)
- << attrTagS(_Culture, tool.Culture)
+ << attrTagX(_AdditionalOptions, tool.AdditionalOptions, " ")
+ << attrTagS(_Culture, toString(tool.Culture))
<< attrTagT(_IgnoreStandardIncludePath, tool.IgnoreStandardIncludePath)
- << attrTagT(_NullTerminateStrings, tool.NullTerminateStrings)
+//unused << attrTagT(_NullTerminateStrings, tool.NullTerminateStrings)
<< attrTagX(_PreprocessorDefinitions, tool.PreprocessorDefinitions, ";")
<< attrTagS(_ResourceOutputFileName, tool.ResourceOutputFileName)
- << attrTagT(_ShowProgress, tool.ShowProgress)
+ << attrTagT(_ShowProgress, toTriState(tool.ShowProgress))
<< attrTagT(_SuppressStartupBanner, tool.SuppressStartupBanner)
- << attrTagS(_TrackerLogDirectory, tool.TrackerLogDirectory)
- << attrTagS(_UndefinePreprocessorDefinitions, tool.UndefinePreprocessorDefinitions)
+//unused << attrTagS(_TrackerLogDirectory, tool.TrackerLogDirectory)
+//unused << attrTagS(_UndefinePreprocessorDefinitions, tool.UndefinePreprocessorDefinitions)
<< closetag(_ResourceCompile);
}
-// VCXDeploymentTool --------------------------------------------
-VCXDeploymentTool::VCXDeploymentTool()
-{
- DeploymentTag = "DeploymentTool";
- RemoteDirectory = "";
-}
-
-// http://msdn.microsoft.com/en-us/library/sa69he4t.aspx
-XmlOutput &operator<<(XmlOutput &xml, const VCXDeploymentTool &tool)
+void VCXProjectWriter::write(XmlOutput &xml, const VCEventTool &tool)
{
- if (tool.AdditionalFiles.isEmpty())
- return xml;
- return xml
- << tag(tool.DeploymentTag)
- << closetag(tool.DeploymentTag);
-}
-
-// VCEventTool -------------------------------------------------
-XmlOutput &operator<<(XmlOutput &xml, const VCXEventTool &tool)
-{
- return xml
+ xml
<< tag(tool.EventName)
<< attrTagS(_Command, tool.CommandLine)
<< attrTagS(_Message, tool.Description)
<< closetag(tool.EventName);
}
-// VCXPostBuildEventTool ---------------------------------------------
-VCXPostBuildEventTool::VCXPostBuildEventTool()
-{
- EventName = "PostBuildEvent";
-}
-
-// VCXPreBuildEventTool ----------------------------------------------
-VCXPreBuildEventTool::VCXPreBuildEventTool()
-{
- EventName = "PreBuildEvent";
-}
-
-// VCXPreLinkEventTool -----------------------------------------------
-VCXPreLinkEventTool::VCXPreLinkEventTool()
-{
- EventName = "PreLinkEvent";
-}
-
-// VCConfiguration --------------------------------------------------
-
-VCXConfiguration::VCXConfiguration()
- : ATLMinimizesCRunTimeLibraryUsage(unset),
- BuildBrowserInformation(unset),
- RegisterOutput(unset),
- WholeProgramOptimization(unset)
+void VCXProjectWriter::write(XmlOutput &xml, const VCDeploymentTool &tool)
{
- compiler.config = this;
- linker.config = this;
- idl.config = this;
+ Q_UNUSED(xml);
+ Q_UNUSED(tool);
+ // SmartDevice deployment not supported in VS 2010
}
-XmlOutput &operator<<(XmlOutput &xml, const VCXConfiguration &tool)
+void VCXProjectWriter::write(XmlOutput &xml, const VCConfiguration &tool)
{
xml << tag("PropertyGroup")
<< attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Name))
@@ -2291,714 +1548,155 @@ XmlOutput &operator<<(XmlOutput &xml, const VCXConfiguration &tool)
<< attrTagS(_OutputDirectory, tool.OutputDirectory)
<< attrTagT(_ATLMinimizesCRunTimeLibraryUsage, tool.ATLMinimizesCRunTimeLibraryUsage)
<< attrTagT(_BuildBrowserInformation, tool.BuildBrowserInformation)
- << attrTagS(_CharacterSet, tool.CharacterSet)
- << attrTagS(_ConfigurationType, tool.ConfigurationType)
+ << attrTagS(_CharacterSet, toString(tool.CharacterSet))
+ << attrTagS(_ConfigurationType, toString(tool.ConfigurationType))
<< attrTagS(_DeleteExtensionsOnClean, tool.DeleteExtensionsOnClean)
<< attrTagS(_ImportLibrary, tool.ImportLibrary)
<< attrTagS(_IntermediateDirectory, tool.IntermediateDirectory)
<< attrTagS(_PrimaryOutput, tool.PrimaryOutput)
<< attrTagS(_ProgramDatabase, tool.ProgramDatabase)
<< attrTagT(_RegisterOutput, tool.RegisterOutput)
- << attrTagS(_UseOfATL, tool.UseOfATL)
- << attrTagS(_UseOfMfc, tool.UseOfMfc)
+ << attrTagS(_UseOfATL, toString(tool.UseOfATL))
+ << attrTagS(_UseOfMfc, toString(tool.UseOfMfc))
<< attrTagT(_WholeProgramOptimization, tool.WholeProgramOptimization)
<< closetag();
- return xml;
-}
-// VCXFilter ---------------------------------------------------------
-VCXFilter::VCXFilter()
- : ParseFiles(unset),
- Config(0)
-{
- useCustomBuildTool = false;
- useCompilerTool = false;
}
-void VCXFilter::addFile(const QString& filename)
+void VCXProjectWriter::write(XmlOutput &xml, VCFilter &tool)
{
- Files += VCXFilterFile(filename);
+ Q_UNUSED(xml);
+ Q_UNUSED(tool);
+ // unused in this generator
}
-void VCXFilter::addFile(const VCXFilterFile& fileInfo)
+void VCXProjectWriter::addFilters(VCProject &project, XmlOutput &xmlFilter, const QString &filtername)
{
- Files += VCXFilterFile(fileInfo);
-}
-
-void VCXFilter::addFiles(const QStringList& fileList)
-{
- for (int i = 0; i < fileList.count(); ++i)
- addFile(fileList.at(i));
-}
+ bool added = false;
-void VCXFilter::modifyPCHstage(QString str)
-{
- bool autogenSourceFile = Project->autogenPrecompCPP;
- bool pchThroughSourceFile = !Project->precompCPP.isEmpty();
- bool isCFile = false;
- for (QStringList::Iterator it = Option::c_ext.begin(); it != Option::c_ext.end(); ++it) {
- if (str.endsWith(*it)) {
- isCFile = true;
- break;
+ for (int i = 0; i < project.SingleProjects.count(); ++i) {
+ VCFilter filter;
+ const VCProjectSingleConfig &singleCfg = project.SingleProjects.at(i);
+ if (filtername == "Root Files") {
+ filter = singleCfg.RootFiles;
+ } else if (filtername == "Source Files") {
+ filter = singleCfg.SourceFiles;
+ } else if (filtername == "Header Files") {
+ filter = singleCfg.HeaderFiles;
+ } else if (filtername == "Generated Files") {
+ filter = singleCfg.GeneratedFiles;
+ } else if (filtername == "LexYacc Files") {
+ filter = singleCfg.LexYaccFiles;
+ } else if (filtername == "Translation Files") {
+ filter = singleCfg.TranslationFiles;
+ } else if (filtername == "Form Files") {
+ filter = singleCfg.FormFiles;
+ } else if (filtername == "Resource Files") {
+ filter = singleCfg.ResourceFiles;
+ } else {
+ // ExtraCompilers
+ filter = project.SingleProjects[i].filterForExtraCompiler(filtername);
}
- }
- bool isHFile = str.endsWith(".h") && (str == Project->precompH);
- bool isCPPFile = pchThroughSourceFile && (str == Project->precompCPP);
-
- if(!isCFile && !isHFile && !isCPPFile)
- return;
- if(isHFile && pchThroughSourceFile) {
- if (autogenSourceFile) {
- useCustomBuildTool = true;
- QString toFile(Project->precompCPP);
- CustomBuildTool.Description = "Generating precompiled header source file '" + toFile + "' ...";
- CustomBuildTool.Outputs += toFile;
-
- QStringList lines;
- CustomBuildTool.CommandLine +=
- "echo /*-------------------------------------------------------------------- >" + toFile;
- lines << "* Precompiled header source file used by Visual Studio.NET to generate";
- lines << "* the .pch file.";
- lines << "*";
- lines << "* Due to issues with the dependencies checker within the IDE, it";
- lines << "* sometimes fails to recompile the PCH file, if we force the IDE to";
- lines << "* create the PCH file directly from the header file.";
- lines << "*";
- lines << "* This file is auto-generated by qmake since no PRECOMPILED_SOURCE was";
- lines << "* specified, and is used as the common stdafx.cpp. The file is only";
- lines << "* generated when creating .vcxproj project files, and is not used for";
- lines << "* command line compilations by nmake.";
- lines << "*";
- lines << "* WARNING: All changes made in this file will be lost.";
- lines << "--------------------------------------------------------------------*/";
- lines << "#include \"" + Project->precompHFilename + "\"";
- foreach(QString line, lines)
- CustomBuildTool.CommandLine += "echo " + line + ">>" + toFile;
+ if(!filter.Files.isEmpty() && !added) {
+ xmlFilter << tag("Filter")
+ << attrTag("Include", filtername)
+ << attrTagS("UniqueIdentifier", filter.Guid)
+ << attrTagS("Extensions", filter.Filter)
+ << attrTagT("ParseFiles", filter.ParseFiles)
+ << closetag();
}
- return;
}
-
- useCompilerTool = true;
- // Setup PCH options
- CompilerTool.PrecompiledHeader = (isCFile ? "NotUsing" : "Create" );
- CompilerTool.PrecompiledHeaderFile = (isCPPFile ? QString("$(INHERIT)") : QString("$(NOINHERIT)"));
- CompilerTool.ForcedIncludeFiles = QStringList("$(NOINHERIT)");
}
-bool VCXFilter::addExtraCompiler(const VCXFilterFile &info)
+// outputs a given filter for all existing configurations of a project
+void VCXProjectWriter::outputFilter(VCProject &project, XmlOutput &xml, XmlOutput &xmlFilter, const QString &filtername)
{
- const QStringList &extraCompilers = Project->extraCompilerSources.value(info.file);
- if (extraCompilers.isEmpty())
- return false;
-
- QString inFile = info.file;
-
- // is the extracompiler rule on a file with a built in compiler?
- const QStringList &objectMappedFile = Project->extraCompilerOutputs[inFile];
- bool hasBuiltIn = false;
- if (!objectMappedFile.isEmpty()) {
- hasBuiltIn = Project->hasBuiltinCompiler(objectMappedFile.at(0));
-// qDebug("*** Extra compiler file has object mapped file '%s' => '%s'", qPrintable(inFile), qPrintable(objectMappedFile.join(" ")));
- }
-
- CustomBuildTool.AdditionalDependencies.clear();
- CustomBuildTool.CommandLine.clear();
- CustomBuildTool.Description.clear();
- CustomBuildTool.Outputs.clear();
- CustomBuildTool.ToolPath.clear();
- CustomBuildTool.ToolName = QLatin1String(_VCCustomBuildTool);
-
- for (int x = 0; x < extraCompilers.count(); ++x) {
- const QString &extraCompilerName = extraCompilers.at(x);
-
- if (!Project->verifyExtraCompiler(extraCompilerName, inFile) && !hasBuiltIn)
- continue;
-
- // All information about the extra compiler
- QString tmp_out = Project->project->first(extraCompilerName + ".output");
- QString tmp_cmd = Project->project->variables()[extraCompilerName + ".commands"].join(" ");
- QString tmp_cmd_name = Project->project->variables()[extraCompilerName + ".name"].join(" ");
- QStringList tmp_dep = Project->project->variables()[extraCompilerName + ".depends"];
- QString tmp_dep_cmd = Project->project->variables()[extraCompilerName + ".depend_command"].join(" ");
- QStringList vars = Project->project->variables()[extraCompilerName + ".variables"];
- QStringList configs = Project->project->variables()[extraCompilerName + ".CONFIG"];
- bool combined = configs.indexOf("combine") != -1;
-
- QString cmd, cmd_name, out;
- QStringList deps, inputs;
- // Variabel replacement of output name
- out = Option::fixPathToTargetOS(
- Project->replaceExtraCompilerVariables(tmp_out, inFile, QString()),
- false);
-
- // If file has built-in compiler, we've swapped the input and output of
- // the command, as we in Visual Studio cannot have a Custom Buildstep on
- // a file which uses a built-in compiler. We would in this case only get
- // the result from the extra compiler. If 'hasBuiltIn' is true, we know
- // that we're actually on the _output_file_ of the result, and we
- // therefore swap inFile and out below, since the extra-compiler still
- // must see it as the original way. If the result also has a built-in
- // compiler, too bad..
- if (hasBuiltIn) {
- out = inFile;
- inFile = objectMappedFile.at(0);
- }
+ XNode *root;
+ if (project.SingleProjects.at(0).flat_files)
+ root = new XFlatNode;
+ else
+ root = new XTreeNode;
- // Dependency for the output
- if(!tmp_dep.isEmpty())
- deps = tmp_dep;
- if(!tmp_dep_cmd.isEmpty()) {
- // Execute dependency command, and add every line as a dep
- char buff[256];
- QString dep_cmd = Project->replaceExtraCompilerVariables(tmp_dep_cmd, Option::fixPathToLocalOS(inFile, true, false), out);
- if(Project->canExecute(dep_cmd)) {
- if(FILE *proc = QT_POPEN(dep_cmd.toLatin1().constData(), "r")) {
- QString indeps;
- while(!feof(proc)) {
- int read_in = (int)fread(buff, 1, 255, proc);
- if(!read_in)
- break;
- indeps += QByteArray(buff, read_in);
- }
- QT_PCLOSE(proc);
- if(!indeps.isEmpty()) {
- QStringList extradeps = indeps.split(QLatin1Char('\n'));
- for (int i = 0; i < extradeps.count(); ++i) {
- QString dd = extradeps.at(i).simplified();
- if (!dd.isEmpty())
- deps += Project->fileFixify(dd);
- }
- }
- }
- }
- }
- for (int i = 0; i < deps.count(); ++i)
- deps[i] = Option::fixPathToTargetOS(
- Project->replaceExtraCompilerVariables(deps.at(i), inFile, out),
- false).trimmed();
- // Command for file
- if (combined) {
- // Add dependencies for each file
- QStringList tmp_in = Project->project->variables()[extraCompilerName + ".input"];
- for (int a = 0; a < tmp_in.count(); ++a) {
- const QStringList &files = Project->project->variables()[tmp_in.at(a)];
- for (int b = 0; b < files.count(); ++b) {
- deps += Project->findDependencies(files.at(b));
- inputs += Option::fixPathToTargetOS(files.at(b), false);
- }
- }
- deps += inputs; // input files themselves too..
+ QString name, extfilter;
+ triState parse;
- // Replace variables for command w/all input files
- // ### join gives path issues with directories containing spaces!
- cmd = Project->replaceExtraCompilerVariables(tmp_cmd,
- inputs.join(" "),
- out);
+ for (int i = 0; i < project.SingleProjects.count(); ++i) {
+ VCFilter filter;
+ const VCProjectSingleConfig &singleCfg = project.SingleProjects.at(i);
+ if (filtername == "Root Files") {
+ filter = singleCfg.RootFiles;
+ } else if (filtername == "Source Files") {
+ filter = singleCfg.SourceFiles;
+ } else if (filtername == "Header Files") {
+ filter = singleCfg.HeaderFiles;
+ } else if (filtername == "Generated Files") {
+ filter = singleCfg.GeneratedFiles;
+ } else if (filtername == "LexYacc Files") {
+ filter = singleCfg.LexYaccFiles;
+ } else if (filtername == "Translation Files") {
+ filter = singleCfg.TranslationFiles;
+ } else if (filtername == "Form Files") {
+ filter = singleCfg.FormFiles;
+ } else if (filtername == "Resource Files") {
+ filter = singleCfg.ResourceFiles;
} else {
- deps += inFile; // input file itself too..
- cmd = Project->replaceExtraCompilerVariables(tmp_cmd,
- inFile,
- out);
- }
- // Name for command
- if(!tmp_cmd_name.isEmpty()) {
- cmd_name = Project->replaceExtraCompilerVariables(tmp_cmd_name, inFile, out);
- } else {
- int space = cmd.indexOf(' ');
- if(space != -1)
- cmd_name = cmd.left(space);
- else
- cmd_name = cmd;
- if((cmd_name[0] == '\'' || cmd_name[0] == '"') &&
- cmd_name[0] == cmd_name[cmd_name.length()-1])
- cmd_name = cmd_name.mid(1,cmd_name.length()-2);
- }
-
- // Fixify paths
- for (int i = 0; i < deps.count(); ++i)
- deps[i] = Option::fixPathToTargetOS(deps[i], false);
-
-
- // Output in info.additionalFile -----------
- if (!CustomBuildTool.Description.isEmpty())
- CustomBuildTool.Description += " & ";
- CustomBuildTool.Description += cmd_name;
- CustomBuildTool.CommandLine += cmd.trimmed().split("\n", QString::SkipEmptyParts);
- int space = cmd.indexOf(' ');
- QFileInfo finf(cmd.left(space));
- if (CustomBuildTool.ToolPath.isEmpty())
- CustomBuildTool.ToolPath += Option::fixPathToTargetOS(finf.path());
- CustomBuildTool.Outputs += out;
-
- deps += CustomBuildTool.AdditionalDependencies;
- deps += cmd.left(cmd.indexOf(' '));
- // Make sure that all deps are only once
- QMap<QString, bool> uniqDeps;
- for (int c = 0; c < deps.count(); ++c) {
- QString aDep = deps.at(c).trimmed();
- if (!aDep.isEmpty())
- uniqDeps[aDep] = false;
- }
- CustomBuildTool.AdditionalDependencies = uniqDeps.keys();
- }
-
- // Ensure that none of the output files are also dependencies. Or else, the custom buildstep
- // will be rebuild every time, even if nothing has changed.
- foreach(QString output, CustomBuildTool.Outputs) {
- CustomBuildTool.AdditionalDependencies.removeAll(output);
- }
-
- useCustomBuildTool = !CustomBuildTool.CommandLine.isEmpty();
- return useCustomBuildTool;
-}
-
-bool VCXFilter::outputFileConfig(XmlOutput &xml, XmlOutput &xmlFilter, const QString &filename, const QString &filtername, bool fileAllreadyAdded)
-{
- bool fileAdded = false;
-
- // Clearing each filter tool
- useCustomBuildTool = false;
- useCompilerTool = false;
- CustomBuildTool = VCXCustomBuildTool();
- CompilerTool = VCXCLCompilerTool();
-
- // Unset some default options
- CompilerTool.BufferSecurityCheck = unset;
- CompilerTool.DebugInformationFormat = "";
- CompilerTool.ExceptionHandling = "";
- //CompilerTool.Optimization = optimizeDefault;
- CompilerTool.ProgramDataBaseFileName.clear();
- CompilerTool.RuntimeLibrary = "";
- //CompilerTool.WarningLevel = warningLevelUnknown;
- CompilerTool.config = Config;
-
- bool inBuild = false;
- VCXFilterFile info;
- for (int i = 0; i < Files.count(); ++i) {
- if (Files.at(i).file == filename) {
- info = Files.at(i);
- inBuild = true;
- }
- }
- inBuild &= !info.excludeFromBuild;
-
- if (inBuild) {
- addExtraCompiler(info);
- if(Project->usePCH)
- modifyPCHstage(info.file);
- } else {
- // Excluded files uses an empty compiler stage
- if(info.excludeFromBuild)
- useCompilerTool = true;
- }
-
- // Actual XML output ----------------------------------
- if(useCustomBuildTool || useCompilerTool || !inBuild) {
-
- if (useCustomBuildTool)
- {
- CustomBuildTool.ConfigName = (*Config).Name;
-
- if ( !fileAllreadyAdded ) {
-
- fileAdded = true;
-
- xmlFilter << tag("CustomBuild")
- << attrTag("Include",Option::fixPathToLocalOS(filename))
- << attrTagS("Filter", filtername);
-
- xml << tag("CustomBuild")
- << attrTag("Include",Option::fixPathToLocalOS(filename));
-
- if ( filtername == "Form Files" || filtername == "Generated Files" || filtername == "Resource Files" )
- xml << attrTagS("FileType", "Document");
- }
-
- xml << CustomBuildTool;
- }
-
- if ( !fileAdded && !fileAllreadyAdded )
- {
- fileAdded = true;
-
- if (filtername == "Source Files") {
-
- xmlFilter << tag("ClCompile")
- << attrTag("Include",Option::fixPathToLocalOS(filename))
- << attrTagS("Filter", filtername);
-
- xml << tag("ClCompile")
- << attrTag("Include",Option::fixPathToLocalOS(filename));
-
- } else if(filtername == "Header Files") {
-
- xmlFilter << tag("ClInclude")
- << attrTag("Include",Option::fixPathToLocalOS(filename))
- << attrTagS("Filter", filtername);
-
- xml << tag("ClInclude")
- << attrTag("Include",Option::fixPathToLocalOS(filename));
- } else if(filtername == "Generated Files" || filtername == "Form Files") {
-
- if (filename.endsWith(".h")) {
-
- xmlFilter << tag("ClInclude")
- << attrTag("Include",Option::fixPathToLocalOS(filename))
- << attrTagS("Filter", filtername);
-
- xml << tag("ClInclude")
- << attrTag("Include",Option::fixPathToLocalOS(filename));
- } else if(filename.endsWith(".cpp")) {
-
- xmlFilter << tag("ClCompile")
- << attrTag("Include",Option::fixPathToLocalOS(filename))
- << attrTagS("Filter", filtername);
-
- xml << tag("ClCompile")
- << attrTag("Include",Option::fixPathToLocalOS(filename));
- } else if(filename.endsWith(".res")) {
-
- xmlFilter << tag("CustomBuild")
- << attrTag("Include",Option::fixPathToLocalOS(filename))
- << attrTagS("Filter", filtername);
-
- xml << tag("CustomBuild")
- << attrTag("Include",Option::fixPathToLocalOS(filename));
- } else {
-
- xmlFilter << tag("CustomBuild")
- << attrTag("Include",Option::fixPathToLocalOS(filename))
- << attrTagS("Filter", filtername);
-
- xml << tag("CustomBuild")
- << attrTag("Include",Option::fixPathToLocalOS(filename));
- }
- } else if(filtername == "Root Files") {
-
- if (filename.endsWith(".rc")) {
-
- xmlFilter << tag("ResourceCompile")
- << attrTag("Include",Option::fixPathToLocalOS(filename));
-
- xml << tag("ResourceCompile")
- << attrTag("Include",Option::fixPathToLocalOS(filename));
- }
- }
- }
-
- if(!inBuild) {
-
- xml << tag("ExcludedFromBuild")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg((*Config).Name))
- << valueTag("true");
- }
-
- if (useCompilerTool) {
-
- if ( !CompilerTool.ForcedIncludeFiles.isEmpty() ) {
- xml << tag("ForcedIncludeFiles")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg((*Config).Name))
- << valueTagX(CompilerTool.ForcedIncludeFiles);
- }
-
- if ( !CompilerTool.PrecompiledHeaderFile.isEmpty() ) {
-
- xml << tag("PrecompiledHeaderFile")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg((*Config).Name))
- << valueTag(CompilerTool.PrecompiledHeaderFile);
- }
-
- if ( !CompilerTool.PrecompiledHeader.isEmpty() ) {
-
- xml << tag("PrecompiledHeader")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg((*Config).Name))
- << valueTag(CompilerTool.PrecompiledHeader);
- }
+ // ExtraCompilers
+ filter = project.SingleProjects[i].filterForExtraCompiler(filtername);
}
- }
-
- return fileAdded;
-}
-
-
-// VCXProjectSingleConfig --------------------------------------------
-VCXFilter nullVCXFilter;
-VCXFilter& VCXProjectSingleConfig::filterForExtraCompiler(const QString &compilerName)
-{
- for (int i = 0; i < ExtraCompilersFiles.count(); ++i)
- if (ExtraCompilersFiles.at(i).Name == compilerName)
- return ExtraCompilersFiles[i];
- return nullVCXFilter;
-}
-
-
-XmlOutput &operator<<(XmlOutput &xml, const VCXProjectSingleConfig &tool)
-{
- xml.setIndentString(" ");
-
- xml << decl("1.0", "utf-8")
- << tag("Project")
- << attrTag("DefaultTargets","Build")
- << attrTag("ToolsVersion", "4.0")
- << attrTag("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003")
- << tag("ItemGroup")
- << attrTag("Label", "ProjectConfigurations");
-
- xml << tag("ProjectConfiguration")
- << attrTag("Include" , tool.Configuration.Name)
- << tagValue("Configuration", tool.Configuration.ConfigurationName)
- << tagValue("Platform", tool.PlatformName)
- << closetag();
-
- xml << closetag()
- << tag("PropertyGroup")
- << attrTag("Label", "Globals")
- << tagValue("ProjectGuid", tool.ProjectGUID)
- << tagValue("RootNamespace", tool.Name)
- << tagValue("Keyword", tool.Keyword)
- << closetag();
-
- // config part.
- xml << import("Project", "$(VCTargetsPath)\\Microsoft.Cpp.Default.props");
-
- xml << tool.Configuration;
-
- xml << import("Project", "$(VCTargetsPath)\\Microsoft.Cpp.props");
-
- // Extension settings
- xml << tag("ImportGroup")
- << attrTag("Label", "ExtensionSettings")
- << closetag();
-
- // PropertySheets
- xml << tag("ImportGroup")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
- << attrTag("Label", "PropertySheets");
-
- xml << tag("Import")
- << attrTag("Project", "$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props")
- << attrTag("Condition", "exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')")
- << closetag()
- << closetag();
-
-
- // UserMacros
- xml << tag("PropertyGroup")
- << attrTag("Label", "UserMacros")
- << closetag();
-
- xml << tag("PropertyGroup");
-
- if ( !tool.Configuration.OutputDirectory.isEmpty() ) {
- xml<< tag("OutDir")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
- << valueTag(tool.Configuration.OutputDirectory);
- }
- if ( !tool.Configuration.IntermediateDirectory.isEmpty() ) {
- xml<< tag("IntDir")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
- << valueTag(tool.Configuration.IntermediateDirectory);
- }
- if ( !tool.Configuration.TargetName.isEmpty() ) {
- xml<< tag("TargetName")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
- << valueTag(tool.Configuration.TargetName);
- }
-
- if ( tool.Configuration.linker.IgnoreImportLibrary != unset) {
- xml<< tag("IgnoreImportLibrary")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
- << valueTagT(tool.Configuration.linker.IgnoreImportLibrary);
- }
-
- if ( tool.Configuration.linker.LinkIncremental != unset) {
- xml<< tag("LinkIncremental")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
- << valueTagT(tool.Configuration.linker.LinkIncremental);
- }
-
- if ( tool.Configuration.preBuild.UseInBuild != unset )
- {
- xml<< tag("PreBuildEventUseInBuild")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
- << valueTagT(tool.Configuration.preBuild.UseInBuild);
- }
-
- if ( tool.Configuration.preLink.UseInBuild != unset )
- {
- xml<< tag("PreLinkEventUseInBuild")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
- << valueTagT(tool.Configuration.preLink.UseInBuild);
- }
-
- if ( tool.Configuration.postBuild.UseInBuild != unset )
- {
- xml<< tag("PostBuildEventUseInBuild")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name))
- << valueTagT(tool.Configuration.postBuild.UseInBuild);
- }
- xml << closetag();
-
- xml << tag("ItemDefinitionGroup")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.Configuration.Name));
-
- // ClCompile
- xml << tool.Configuration.compiler;
-
- // Link
- xml << tool.Configuration.linker;
-
- // Midl
- xml << tool.Configuration.idl;
-
- // ResourceCompiler
- xml << tool.Configuration.resource;
-
- // Post build event
- if ( tool.Configuration.postBuild.UseInBuild != unset )
- xml << tool.Configuration.postBuild;
-
- // Pre build event
- if ( tool.Configuration.preBuild.UseInBuild != unset )
- xml << tool.Configuration.preBuild;
-
- // Pre link event
- if ( tool.Configuration.preLink.UseInBuild != unset )
- xml << tool.Configuration.preLink;
-
- xml << closetag();
-
- QFile filterFile;
- filterFile.setFileName(Option::output.fileName().append(".filters"));
- filterFile.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate);
- QTextStream ts(&filterFile);
- XmlOutput xmlFilter(ts, XmlOutput::NoConversion);
-
- xmlFilter.setIndentString(" ");
-
- xmlFilter << decl("1.0", "utf-8")
- << tag("Project")
- << attrTag("ToolsVersion", "4.0")
- << attrTag("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003");
-
- xmlFilter << tag("ItemGroup");
-
- VCXProject tempProj;
- tempProj.SingleProjects += tool;
- tempProj.addFilters(xmlFilter, "Form Files");
- tempProj.addFilters(xmlFilter, "Generated Files");
- tempProj.addFilters(xmlFilter, "Header Files");
- tempProj.addFilters(xmlFilter, "LexYacc Files");
- tempProj.addFilters(xmlFilter, "Resource Files");
- tempProj.addFilters(xmlFilter, "Source Files");
- tempProj.addFilters(xmlFilter, "Translation Files");
- xmlFilter << closetag();
-
- tempProj.outputFilter(xml, xmlFilter, "Source Files");
- tempProj.outputFilter(xml, xmlFilter, "Header Files");
- tempProj.outputFilter(xml, xmlFilter, "Generated Files");
- tempProj.outputFilter(xml, xmlFilter, "LexYacc Files");
- tempProj.outputFilter(xml, xmlFilter, "Translation Files");
- tempProj.outputFilter(xml, xmlFilter, "Form Files");
- tempProj.outputFilter(xml, xmlFilter, "Resource Files");
-
- for (int x = 0; x < tempProj.ExtraCompilers.count(); ++x) {
- tempProj.outputFilter(xml, xmlFilter, tempProj.ExtraCompilers.at(x));
- }
-
- xml << import("Project", "$(VCTargetsPath)\\Microsoft.Cpp.targets");
-
- xml << tag("ImportGroup")
- << attrTag("Label", "ExtensionTargets")
- << closetag();
-
- return xml;
-}
-
-
-// Tree file generation ---------------------------------------------
-void XTreeNode::generateXML(XmlOutput &xml, XmlOutput &xmlFilter, const QString &tagName, VCXProject &tool, const QString &filter) {
+ // Merge all files in this filter to root tree
+ for (int x = 0; x < filter.Files.count(); ++x)
+ root->addElement(filter.Files.at(x));
- if (children.size()) {
- // Filter
- ChildrenMap::ConstIterator it, end = children.constEnd();
- if (!tagName.isEmpty()) {
- xmlFilter << tag("Filter")
- << attrTag("Include", tagName)
- << attrTagS("Extensions", "");
+ // Save filter setting from first filter. Next filters
+ // may differ but we cannot handle that. (ex. extfilter)
+ if (name.isEmpty()) {
+ name = filter.Name;
+ extfilter = filter.Filter;
+ parse = filter.ParseFiles;
}
- // First round, do nested filters
- for (it = children.constBegin(); it != end; ++it)
- if ((*it)->children.size())
- (*it)->generateXML(xml, xmlFilter, it.key(), tool, filter);
- // Second round, do leafs
- for (it = children.constBegin(); it != end; ++it)
- if (!(*it)->children.size())
- (*it)->generateXML(xml, xmlFilter, it.key(), tool, filter);
-
- if (!tagName.isEmpty())
- xml << closetag("Filter");
- } else {
- // Leaf
- tool.outputFileConfigs(xml, xmlFilter, info, filter);
}
-}
+ if (!root->hasElements())
+ return;
-// Flat file generation ---------------------------------------------
-void XFlatNode::generateXML(XmlOutput &xml, XmlOutput &xmlFilter, const QString &/*tagName*/, VCXProject &tool, const QString &filter) {
- if (children.size()) {
- ChildrenMapFlat::ConstIterator it = children.constBegin();
- ChildrenMapFlat::ConstIterator end = children.constEnd();
- xml << tag(_ItemGroup);
- xmlFilter << tag(_ItemGroup);
- for (; it != end; ++it) {
- tool.outputFileConfigs(xml, xmlFilter, (*it), filter);
- }
- xml << closetag();
- xmlFilter << closetag();
- }
+ root->generateXML(xml, xmlFilter, "", project, filtername); // output root tree
}
-
-// VCXProject --------------------------------------------------------
// Output all configurations (by filtername) for a file (by info)
-// A filters config output is in VCXFilter.outputFileConfig()
-void VCXProject::outputFileConfigs(XmlOutput &xml,
- XmlOutput &xmlFilter,
- const VCXFilterFile &info,
- const QString &filtername)
+// A filters config output is in VCFilter.outputFileConfig()
+void VCXProjectWriter::outputFileConfigs(VCProject &project, XmlOutput &xml, XmlOutput &xmlFilter, const VCFilterFile &info, const QString &filtername)
{
// We need to check if the file has any custom build step.
// If there is one then it has to be included with "CustomBuild Include"
bool fileAdded = false;
- for (int i = 0; i < SingleProjects.count(); ++i) {
- VCXFilter filter;
+ for (int i = 0; i < project.SingleProjects.count(); ++i) {
+ VCFilter filter;
+ const VCProjectSingleConfig &singleCfg = project.SingleProjects.at(i);
if (filtername == "Root Files") {
- filter = SingleProjects.at(i).RootFiles;
+ filter = singleCfg.RootFiles;
} else if (filtername == "Source Files") {
- filter = SingleProjects.at(i).SourceFiles;
+ filter = singleCfg.SourceFiles;
} else if (filtername == "Header Files") {
- filter = SingleProjects.at(i).HeaderFiles;
+ filter = singleCfg.HeaderFiles;
} else if (filtername == "Generated Files") {
- filter = SingleProjects.at(i).GeneratedFiles;
+ filter = singleCfg.GeneratedFiles;
} else if (filtername == "LexYacc Files") {
- filter = SingleProjects.at(i).LexYaccFiles;
+ filter = singleCfg.LexYaccFiles;
} else if (filtername == "Translation Files") {
- filter = SingleProjects.at(i).TranslationFiles;
+ filter = singleCfg.TranslationFiles;
} else if (filtername == "Form Files") {
- filter = SingleProjects.at(i).FormFiles;
+ filter = singleCfg.FormFiles;
} else if (filtername == "Resource Files") {
- filter = SingleProjects.at(i).ResourceFiles;
+ filter = singleCfg.ResourceFiles;
} else {
// ExtraCompilers
- filter = SingleProjects[i].filterForExtraCompiler(filtername);
+ filter = project.SingleProjects[i].filterForExtraCompiler(filtername);
}
if (filter.Config) // only if the filter is not empty
- if (filter.outputFileConfig(xml, xmlFilter, info.file, filtername, fileAdded)) // only add it once.
+ if (outputFileConfig(filter, xml, xmlFilter, info.file, filtername, fileAdded)) // only add it once.
fileAdded = true;
}
@@ -3082,296 +1780,165 @@ void VCXProject::outputFileConfigs(XmlOutput &xml,
xmlFilter << closetag();
}
-// outputs a given filter for all existing configurations of a project
-void VCXProject::outputFilter(XmlOutput &xml,
- XmlOutput &xmlFilter,
- const QString &filtername)
+bool VCXProjectWriter::outputFileConfig(VCFilter &filter, XmlOutput &xml, XmlOutput &xmlFilter, const QString &filename, const QString &filtername, bool fileAllreadyAdded)
{
- XNode *root;
- if (SingleProjects.at(0).flat_files)
- root = new XFlatNode;
- else
- root = new XTreeNode;
-
- QString name, extfilter;
- triState parse;
+ bool fileAdded = false;
- for (int i = 0; i < SingleProjects.count(); ++i) {
- VCXFilter filter;
- if (filtername == "Root Files") {
- filter = SingleProjects.at(i).RootFiles;
- } else if (filtername == "Source Files") {
- filter = SingleProjects.at(i).SourceFiles;
- } else if (filtername == "Header Files") {
- filter = SingleProjects.at(i).HeaderFiles;
- } else if (filtername == "Generated Files") {
- filter = SingleProjects.at(i).GeneratedFiles;
- } else if (filtername == "LexYacc Files") {
- filter = SingleProjects.at(i).LexYaccFiles;
- } else if (filtername == "Translation Files") {
- filter = SingleProjects.at(i).TranslationFiles;
- } else if (filtername == "Form Files") {
- filter = SingleProjects.at(i).FormFiles;
- } else if (filtername == "Resource Files") {
- filter = SingleProjects.at(i).ResourceFiles;
- } else {
- // ExtraCompilers
- filter = SingleProjects[i].filterForExtraCompiler(filtername);
- }
+ // Clearing each filter tool
+ filter.useCustomBuildTool = false;
+ filter.useCompilerTool = false;
+ filter.CustomBuildTool = VCCustomBuildTool();
+ filter.CompilerTool = VCCLCompilerTool();
- // Merge all files in this filter to root tree
- for (int x = 0; x < filter.Files.count(); ++x)
- root->addElement(filter.Files.at(x));
+ // Unset some default options
+ filter.CustomBuildTool.config = filter.Config;
+ filter.CompilerTool.BufferSecurityCheck = unset;
+ filter.CompilerTool.DebugInformationFormat = debugUnknown;
+ filter.CompilerTool.ExceptionHandling = ehDefault;
+ filter.CompilerTool.ProgramDataBaseFileName.clear();
+ filter.CompilerTool.RuntimeLibrary = rtUnknown;
+ filter.CompilerTool.config = filter.Config;
- // Save filter setting from first filter. Next filters
- // may differ but we cannot handle that. (ex. extfilter)
- if (name.isEmpty()) {
- name = filter.Name;
- extfilter = filter.Filter;
- parse = filter.ParseFiles;
+ bool inBuild = false;
+ VCFilterFile info;
+ for (int i = 0; i < filter.Files.count(); ++i) {
+ if (filter.Files.at(i).file == filename) {
+ info = filter.Files.at(i);
+ inBuild = true;
}
}
+ inBuild &= !info.excludeFromBuild;
- if (!root->hasElements())
- return;
-
- root->generateXML(xml, xmlFilter, "", *this, filtername); // output root tree
-}
-
-
-void VCXProject::addFilters(XmlOutput &xmlFilter,
- const QString &filtername)
-{
- bool added = false;
-
- for (int i = 0; i < SingleProjects.count(); ++i) {
- VCXFilter filter;
- if (filtername == "Root Files") {
- filter = SingleProjects.at(i).RootFiles;
- } else if (filtername == "Source Files") {
- filter = SingleProjects.at(i).SourceFiles;
- } else if (filtername == "Header Files") {
- filter = SingleProjects.at(i).HeaderFiles;
- } else if (filtername == "Generated Files") {
- filter = SingleProjects.at(i).GeneratedFiles;
- } else if (filtername == "LexYacc Files") {
- filter = SingleProjects.at(i).LexYaccFiles;
- } else if (filtername == "Translation Files") {
- filter = SingleProjects.at(i).TranslationFiles;
- } else if (filtername == "Form Files") {
- filter = SingleProjects.at(i).FormFiles;
- } else if (filtername == "Resource Files") {
- filter = SingleProjects.at(i).ResourceFiles;
- } else {
- // ExtraCompilers
- filter = SingleProjects[i].filterForExtraCompiler(filtername);
- }
-
- if(!filter.Files.isEmpty() && !added) {
- added = true;
- xmlFilter << tag("Filter")
- << attrTag("Include", filtername)
- << attrTagS("UniqueIdentifier", filter.Guid)
- << attrTagS("Extensions", filter.Filter)
- << attrTagT("ParseFiles", filter.ParseFiles)
- << closetag();
- }
+ if (inBuild) {
+ filter.addExtraCompiler(info);
+ if (filter.Project->usePCH)
+ filter.modifyPCHstage(info.file);
+ } else {
+ // Excluded files uses an empty compiler stage
+ if(info.excludeFromBuild)
+ filter.useCompilerTool = true;
}
-}
-
-XmlOutput &operator<<(XmlOutput &xml, VCXProject &tool)
-{
+ // Actual XML output ----------------------------------
+ if (filter.useCustomBuildTool || filter.useCompilerTool || !inBuild) {
- if (tool.SingleProjects.count() == 0) {
- warn_msg(WarnLogic, "Generator: .NET: no single project in merge project, no output");
- return xml;
- }
+ if (filter.useCustomBuildTool)
+ {
+ if ( !fileAllreadyAdded ) {
- xml.setIndentString(" ");
+ fileAdded = true;
- xml << decl("1.0", "utf-8")
- << tag("Project")
- << attrTag("DefaultTargets","Build")
- << attrTag("ToolsVersion", "4.0")
- << attrTag("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003")
- << tag("ItemGroup")
- << attrTag("Label", "ProjectConfigurations");
+ xmlFilter << tag("CustomBuild")
+ << attrTag("Include",Option::fixPathToLocalOS(filename))
+ << attrTagS("Filter", filtername);
- for (int i = 0; i < tool.SingleProjects.count(); ++i) {
- xml << tag("ProjectConfiguration")
- << attrTag("Include" , tool.SingleProjects.at(i).Configuration.Name)
- << tagValue("Configuration", tool.SingleProjects.at(i).Configuration.ConfigurationName)
- << tagValue("Platform", tool.SingleProjects.at(i).PlatformName)
- << closetag();
- }
+ xml << tag("CustomBuild")
+ << attrTag("Include",Option::fixPathToLocalOS(filename));
- xml << closetag()
- << tag("PropertyGroup")
- << attrTag("Label", "Globals")
- << tagValue("ProjectGuid", tool.ProjectGUID)
- << tagValue("RootNamespace", tool.Name)
- << tagValue("Keyword", tool.Keyword)
- << closetag();
+ if ( filtername == "Form Files" || filtername == "Generated Files" || filtername == "Resource Files" )
+ xml << attrTagS("FileType", "Document");
+ }
- // config part.
- xml << import("Project", "$(VCTargetsPath)\\Microsoft.Cpp.Default.props");
- for (int i = 0; i < tool.SingleProjects.count(); ++i)
- xml << tool.SingleProjects.at(i).Configuration;
- xml << import("Project", "$(VCTargetsPath)\\Microsoft.Cpp.props");
+ filter.Project->projectWriter->write(xml, filter.CustomBuildTool);
+ }
- // Extension settings
- xml << tag("ImportGroup")
- << attrTag("Label", "ExtensionSettings")
- << closetag();
+ if ( !fileAdded && !fileAllreadyAdded )
+ {
+ fileAdded = true;
- // PropertySheets
- for (int i = 0; i < tool.SingleProjects.count(); ++i) {
- xml << tag("ImportGroup")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
- << attrTag("Label", "PropertySheets");
+ if (filtername == "Source Files") {
- xml << tag("Import")
- << attrTag("Project", "$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props")
- << attrTag("Condition", "exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')")
- << closetag()
- << closetag();
- }
+ xmlFilter << tag("ClCompile")
+ << attrTag("Include",Option::fixPathToLocalOS(filename))
+ << attrTagS("Filter", filtername);
- // UserMacros
- xml << tag("PropertyGroup")
- << attrTag("Label", "UserMacros")
- << closetag();
+ xml << tag("ClCompile")
+ << attrTag("Include",Option::fixPathToLocalOS(filename));
- xml << tag("PropertyGroup");
- for (int i = 0; i < tool.SingleProjects.count(); ++i) {
+ } else if(filtername == "Header Files") {
- if ( !tool.SingleProjects.at(i).Configuration.OutputDirectory.isEmpty() ) {
- xml << tag("OutDir")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
- << valueTag(tool.SingleProjects.at(i).Configuration.OutputDirectory);
- }
- if ( !tool.SingleProjects.at(i).Configuration.IntermediateDirectory.isEmpty() ) {
- xml << tag("IntDir")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
- << valueTag(tool.SingleProjects.at(i).Configuration.IntermediateDirectory);
- }
- if ( !tool.SingleProjects.at(i).Configuration.TargetName.isEmpty() ) {
- xml << tag("TargetName")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
- << valueTag(tool.SingleProjects.at(i).Configuration.TargetName);
- }
+ xmlFilter << tag("ClInclude")
+ << attrTag("Include",Option::fixPathToLocalOS(filename))
+ << attrTagS("Filter", filtername);
- if ( tool.SingleProjects.at(i).Configuration.linker.IgnoreImportLibrary != unset) {
- xml << tag("IgnoreImportLibrary")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
- << valueTagT(tool.SingleProjects.at(i).Configuration.linker.IgnoreImportLibrary);
- }
+ xml << tag("ClInclude")
+ << attrTag("Include",Option::fixPathToLocalOS(filename));
+ } else if(filtername == "Generated Files" || filtername == "Form Files") {
- if ( tool.SingleProjects.at(i).Configuration.linker.LinkIncremental != unset) {
- xml << tag("LinkIncremental")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
- << valueTagT(tool.SingleProjects.at(i).Configuration.linker.LinkIncremental);
- }
+ if (filename.endsWith(".h")) {
- if ( tool.SingleProjects.at(i).Configuration.preBuild.UseInBuild != unset )
- {
- xml << tag("PreBuildEventUseInBuild")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
- << valueTagT(tool.SingleProjects.at(i).Configuration.preBuild.UseInBuild);
- }
+ xmlFilter << tag("ClInclude")
+ << attrTag("Include",Option::fixPathToLocalOS(filename))
+ << attrTagS("Filter", filtername);
- if ( tool.SingleProjects.at(i).Configuration.preLink.UseInBuild != unset )
- {
- xml << tag("PreLinkEventUseInBuild")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
- << valueTagT(tool.SingleProjects.at(i).Configuration.preLink.UseInBuild);
- }
+ xml << tag("ClInclude")
+ << attrTag("Include",Option::fixPathToLocalOS(filename));
+ } else if(filename.endsWith(".cpp")) {
- if ( tool.SingleProjects.at(i).Configuration.postBuild.UseInBuild != unset )
- {
- xml << tag("PostBuildEventUseInBuild")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
- << valueTagT(tool.SingleProjects.at(i).Configuration.postBuild.UseInBuild);
- }
- }
- xml << closetag();
+ xmlFilter << tag("ClCompile")
+ << attrTag("Include",Option::fixPathToLocalOS(filename))
+ << attrTagS("Filter", filtername);
- for (int i = 0; i < tool.SingleProjects.count(); ++i) {
- xml << tag("ItemDefinitionGroup")
- << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name));
+ xml << tag("ClCompile")
+ << attrTag("Include",Option::fixPathToLocalOS(filename));
+ } else if(filename.endsWith(".res")) {
- // ClCompile
- xml << tool.SingleProjects.at(i).Configuration.compiler;
+ xmlFilter << tag("CustomBuild")
+ << attrTag("Include",Option::fixPathToLocalOS(filename))
+ << attrTagS("Filter", filtername);
- // Link
- xml << tool.SingleProjects.at(i).Configuration.linker;
+ xml << tag("CustomBuild")
+ << attrTag("Include",Option::fixPathToLocalOS(filename));
+ } else {
- // Midl
- xml << tool.SingleProjects.at(i).Configuration.idl;
+ xmlFilter << tag("CustomBuild")
+ << attrTag("Include",Option::fixPathToLocalOS(filename))
+ << attrTagS("Filter", filtername);
- // ResourceCompiler
- xml << tool.SingleProjects.at(i).Configuration.resource;
+ xml << tag("CustomBuild")
+ << attrTag("Include",Option::fixPathToLocalOS(filename));
+ }
+ } else if(filtername == "Root Files") {
- // Post build event
- if ( tool.SingleProjects.at(i).Configuration.postBuild.UseInBuild != unset )
- xml << tool.SingleProjects.at(i).Configuration.postBuild;
-
- // Pre build event
- if ( tool.SingleProjects.at(i).Configuration.preBuild.UseInBuild != unset )
- xml << tool.SingleProjects.at(i).Configuration.preBuild;
+ if (filename.endsWith(".rc")) {
- // Pre link event
- if ( tool.SingleProjects.at(i).Configuration.preLink.UseInBuild != unset )
- xml << tool.SingleProjects.at(i).Configuration.preLink;
+ xmlFilter << tag("ResourceCompile")
+ << attrTag("Include",Option::fixPathToLocalOS(filename));
- xml << closetag();
- }
+ xml << tag("ResourceCompile")
+ << attrTag("Include",Option::fixPathToLocalOS(filename));
+ }
+ }
+ }
- // The file filters are added in a separate file for MSBUILD.
- QFile filterFile;
- filterFile.setFileName(Option::output.fileName().append(".filters"));
- filterFile.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate);
- QTextStream ts(&filterFile);
- XmlOutput xmlFilter(ts, XmlOutput::NoConversion);
+ if(!inBuild) {
- xmlFilter.setIndentString(" ");
+ xml << tag("ExcludedFromBuild")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(filter.Config->Name))
+ << valueTag("true");
+ }
- xmlFilter << decl("1.0", "utf-8")
- << tag("Project")
- << attrTag("ToolsVersion", "4.0")
- << attrTag("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003");
+ if (filter.useCompilerTool) {
- xmlFilter << tag("ItemGroup");
+ if ( !filter.CompilerTool.ForcedIncludeFiles.isEmpty() ) {
+ xml << tag("ForcedIncludeFiles")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(filter.Config->Name))
+ << valueTagX(filter.CompilerTool.ForcedIncludeFiles);
+ }
- tool.addFilters(xmlFilter, "Form Files");
- tool.addFilters(xmlFilter, "Generated Files");
- tool.addFilters(xmlFilter, "Header Files");
- tool.addFilters(xmlFilter, "LexYacc Files");
- tool.addFilters(xmlFilter, "Resource Files");
- tool.addFilters(xmlFilter, "Source Files");
- tool.addFilters(xmlFilter, "Translation Files");
- xmlFilter << closetag();
+ if ( !filter.CompilerTool.PrecompiledHeaderThrough.isEmpty() ) {
- tool.outputFilter(xml, xmlFilter, "Source Files");
- tool.outputFilter(xml, xmlFilter, "Header Files");
- tool.outputFilter(xml, xmlFilter, "Generated Files");
- tool.outputFilter(xml, xmlFilter, "LexYacc Files");
- tool.outputFilter(xml, xmlFilter, "Translation Files");
- tool.outputFilter(xml, xmlFilter, "Form Files");
- tool.outputFilter(xml, xmlFilter, "Resource Files");
- for (int x = 0; x < tool.ExtraCompilers.count(); ++x) {
- tool.outputFilter(xml, xmlFilter, tool.ExtraCompilers.at(x));
+ xml << tag("PrecompiledHeaderFile")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(filter.Config->Name))
+ << valueTag(filter.CompilerTool.PrecompiledHeaderThrough)
+ << tag("PrecompiledHeader")
+ << attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(filter.Config->Name))
+ << valueTag(toString(filter.CompilerTool.UsePrecompiledHeader));
+ }
+ }
}
- tool.outputFilter(xml, xmlFilter, "Root Files");
-
- xml << import("Project", "$(VCTargetsPath)\\Microsoft.Cpp.targets");
- xml << tag("ImportGroup")
- << attrTag("Label", "ExtensionTargets")
- << closetag();
-
- return xml;
+ return fileAdded;
}
QT_END_NAMESPACE
diff --git a/qmake/generators/win32/msbuild_objectmodel.h b/qmake/generators/win32/msbuild_objectmodel.h
index 567985d..498552e 100644
--- a/qmake/generators/win32/msbuild_objectmodel.h
+++ b/qmake/generators/win32/msbuild_objectmodel.h
@@ -54,519 +54,24 @@
QT_BEGIN_NAMESPACE
-
-class VCXConfiguration;
-class VCXProject;
-
-class VCXCLCompilerTool : public VCToolBase
-{
-public:
- // Functions
- VCXCLCompilerTool();
- virtual ~VCXCLCompilerTool(){}
- bool parseOption(const char* option);
-
- // Variables
- QStringList AdditionalIncludeDirectories;
- QStringList AdditionalOptions;
- QStringList AdditionalUsingDirectories;
- QString AlwaysAppend;
- QString AssemblerListingLocation;
- QString AssemblerOutput;
- QString BasicRuntimeChecks;
- triState BrowseInformation;
- QString BrowseInformationFile;
- triState BufferSecurityCheck;
- QString CallingConvention;
- QString CompileAs;
- QString CompileAsManaged;
- triState CreateHotpatchableImage;
- QString DebugInformationFormat;
- triState DisableLanguageExtensions;
- QStringList DisableSpecificWarnings;
- QString EnableEnhancedInstructionSet;
- triState EnableFiberSafeOptimizations;
- triState EnablePREfast;
- QString ErrorReporting;
- QString ExceptionHandling;
- triState ExpandAttributedSource;
- QString FavorSizeOrSpeed;
- triState FloatingPointExceptions;
- QString FloatingPointModel;
- triState ForceConformanceInForLoopScope;
- QStringList ForcedIncludeFiles;
- QStringList ForcedUsingFiles;
- triState FunctionLevelLinking;
- triState GenerateXMLDocumentationFiles;
- triState IgnoreStandardIncludePath;
- QString InlineFunctionExpansion;
- triState IntrinsicFunctions;
- triState MinimalRebuild;
- triState MultiProcessorCompilation;
- QString ObjectFileName;
- QStringList ObjectFiles;
- triState OmitDefaultLibName;
- triState OmitFramePointers;
- triState OpenMPSupport;
- QString Optimization;
- QString PrecompiledHeader;
- QString PrecompiledHeaderFile;
- QString PrecompiledHeaderOutputFile;
- triState PreprocessKeepComments;
- QStringList PreprocessorDefinitions;
- QString PreprocessOutputPath;
- triState PreprocessSuppressLineNumbers;
- triState PreprocessToFile;
- QString ProgramDataBaseFileName;
- QString ProcessorNumber;
- QString RuntimeLibrary;
- triState RuntimeTypeInfo;
- triState ShowIncludes;
- triState SmallerTypeCheck;
- triState StringPooling;
- QString StructMemberAlignment;
- triState SuppressStartupBanner;
- QString TreatSpecificWarningsAsErrors;
- triState TreatWarningAsError;
- triState TreatWChar_tAsBuiltInType;
- triState UndefineAllPreprocessorDefinitions;
- QStringList UndefinePreprocessorDefinitions;
- triState UseFullPaths;
- triState UseUnicodeForAssemblerListing;
- QString WarningLevel;
- triState WholeProgramOptimization;
- QString XMLDocumentationFileName;
-
- VCXConfiguration* config;
-};
-
-class VCXLinkerTool : public VCToolBase
-{
-public:
- // Functions
- VCXLinkerTool();
- virtual ~VCXLinkerTool(){}
- bool parseOption(const char* option);
-
- // Variables
- QStringList AdditionalDependencies;
- QStringList AdditionalLibraryDirectories;
- QStringList AdditionalManifestDependencies;
- QStringList AdditionalOptions;
- QStringList AddModuleNamesToAssembly;
- triState AllowIsolation;
- triState AssemblyDebug;
- QStringList AssemblyLinkResource;
- QString BaseAddress;
- QString CLRImageType;
- QString CLRSupportLastError;
- QString CLRThreadAttribute;
- QString CLRUnmanagedCodeCheck;
- QString CreateHotPatchableImage;
- triState DataExecutionPrevention;
- QStringList DelayLoadDLLs;
- triState DelaySign;
- QString Driver;
- QStringList EmbedManagedResourceFile;
- triState EnableCOMDATFolding;
- triState EnableUAC;
- QString EntryPointSymbol;
- triState FixedBaseAddress;
- QString ForceFileOutput;
- QStringList ForceSymbolReferences;
- QString FunctionOrder;
- triState GenerateDebugInformation;
- triState GenerateManifest;
- triState GenerateMapFile;
- qlonglong HeapCommitSize;
- qlonglong HeapReserveSize;
- triState IgnoreAllDefaultLibraries;
- triState IgnoreEmbeddedIDL;
- triState IgnoreImportLibrary;
- QStringList IgnoreSpecificDefaultLibraries;
- triState ImageHasSafeExceptionHandlers;
- QString ImportLibrary;
- QString KeyContainer;
- QString KeyFile;
- triState LargeAddressAware;
- triState LinkDLL;
- QString LinkErrorReporting;
- triState LinkIncremental;
- triState LinkStatus;
- QString LinkTimeCodeGeneration;
- QString ManifestFile;
- triState MapExports;
- QString MapFileName;
- QString MergedIDLBaseFileName;
- QString MergeSections;
- QString MidlCommandFile;
- QString ModuleDefinitionFile;
- QString MSDOSStubFileName;
- triState NoEntryPoint;
- triState OptimizeReferences;
- QString OutputFile;
- triState PreventDllBinding;
- QString Profile;
- QString ProfileGuidedDatabase;
- QString ProgramDatabaseFile;
- triState RandomizedBaseAddress;
- triState RegisterOutput;
- qlonglong SectionAlignment;
- triState SetChecksum;
- QString ShowProgress;
- QString SpecifySectionAttributes;
- QString StackCommitSize;
- QString StackReserveSize;
- QString StripPrivateSymbols;
- QString SubSystem;
- triState SupportNobindOfDelayLoadedDLL;
- triState SupportUnloadOfDelayLoadedDLL;
- triState SuppressStartupBanner;
- triState SwapRunFromCD;
- triState SwapRunFromNet;
- QString TargetMachine;
- triState TerminalServerAware;
- triState TreatLinkerWarningAsErrors;
- triState TurnOffAssemblyGeneration;
- QString TypeLibraryFile;
- qlonglong TypeLibraryResourceID;
- QString UACExecutionLevel;
- triState UACUIAccess;
- QString Version;
-
-
- VCXConfiguration* config;
-};
-
-class VCXMIDLTool : public VCToolBase
-{
-public:
- // Functions
- VCXMIDLTool();
- virtual ~VCXMIDLTool(){}
- bool parseOption(const char* option);
-
- // Variables
- QStringList AdditionalIncludeDirectories;
- QStringList AdditionalOptions;
- triState ApplicationConfigurationMode;
- QString ClientStubFile;
- QString CPreprocessOptions;
- QString DefaultCharType;
- QString DLLDataFileName;
- QString EnableErrorChecks;
- triState ErrorCheckAllocations;
- triState ErrorCheckBounds;
- triState ErrorCheckEnumRange;
- triState ErrorCheckRefPointers;
- triState ErrorCheckStubData;
- QString GenerateClientFiles;
- QString GenerateServerFiles;
- triState GenerateStublessProxies;
- triState GenerateTypeLibrary;
- QString HeaderFileName;
- triState IgnoreStandardIncludePath;
- QString InterfaceIdentifierFileName;
- qlonglong LocaleID;
- triState MkTypLibCompatible;
- QString OutputDirectory;
- QStringList PreprocessorDefinitions;
- QString ProxyFileName;
- QString RedirectOutputAndErrors;
- QString ServerStubFile;
- QString StructMemberAlignment;
- triState SuppressCompilerWarnings;
- triState SuppressStartupBanner;
- QString TargetEnvironment;
- QString TypeLibFormat;
- QString TypeLibraryName;
- QStringList UndefinePreprocessorDefinitions;
- triState ValidateAllParameters;
- triState WarnAsError;
- QString WarningLevel;
-
- VCXConfiguration* config;
-};
-
-class VCXLibrarianTool : public VCToolBase
-{
-public:
- // Functions
- VCXLibrarianTool();
- virtual ~VCXLibrarianTool(){}
- bool parseOption(const char*){ return false; };
-
- // Variables
- QStringList AdditionalDependencies;
- QStringList AdditionalLibraryDirectories;
- QStringList AdditionalOptions;
- QString DisplayLibrary;
- QString ErrorReporting;
- QStringList ExportNamedFunctions;
- QStringList ForceSymbolReferences;
- triState IgnoreAllDefaultLibraries;
- QStringList IgnoreSpecificDefaultLibraries;
- triState LinkTimeCodeGeneration;
- QString ModuleDefinitionFile;
- QString Name;
- QString OutputFile;
- QStringList RemoveObjects;
- QString SubSystem;
- triState SuppressStartupBanner;
- QString TargetMachine;
- triState TreatLibWarningAsErrors;
- triState Verbose;
-
-};
-
-class VCXCustomBuildTool : public VCToolBase
-{
-public:
- // Functions
- VCXCustomBuildTool();
- virtual ~VCXCustomBuildTool(){}
- bool parseOption(const char*){ return false; };
-
- // Variables
- QStringList AdditionalDependencies;
- QStringList CommandLine;
- QString Description;
- QStringList Outputs;
- QString ToolName;
- QString ToolPath;
- QString ConfigName;
-};
-
-class VCXResourceCompilerTool : public VCToolBase
-{
-public:
- // Functions
- VCXResourceCompilerTool();
- virtual ~VCXResourceCompilerTool(){}
- bool parseOption(const char*){ return false; };
-
- // Variables
- QStringList AdditionalIncludeDirectories;
- QString AdditionalOptions;
- QString Culture;
- triState IgnoreStandardIncludePath;
- triState NullTerminateStrings;
- QStringList PreprocessorDefinitions;
- QString ResourceOutputFileName;
- triState ShowProgress;
- triState SuppressStartupBanner;
- QString TrackerLogDirectory;
- QString UndefinePreprocessorDefinitions;
-};
-
-class VCXDeploymentTool
-{
-public:
- // Functions
- VCXDeploymentTool();
- virtual ~VCXDeploymentTool() {}
-
- // Variables
- QString DeploymentTag;
- QString RemoteDirectory;
- QString AdditionalFiles;
-};
-
-class VCXEventTool : public VCToolBase
-{
-protected:
- // Functions
- VCXEventTool() : UseInBuild(unset){};
- virtual ~VCXEventTool(){}
- bool parseOption(const char*){ return false; };
-
-public:
- // Variables
- QString CommandLine;
- QString Description;
- triState UseInBuild;
- QString EventName;
- QString ToolPath;
-};
-
-class VCXPostBuildEventTool : public VCXEventTool
-{
-public:
- VCXPostBuildEventTool();
- ~VCXPostBuildEventTool(){}
-};
-
-class VCXPreBuildEventTool : public VCXEventTool
-{
-public:
- VCXPreBuildEventTool();
- ~VCXPreBuildEventTool(){}
-};
-
-class VCXPreLinkEventTool : public VCXEventTool
-{
-public:
- VCXPreLinkEventTool();
- ~VCXPreLinkEventTool(){}
-};
-
-class VCXConfiguration
-{
-public:
- // Functions
- VCXConfiguration();
- ~VCXConfiguration(){}
-
- // Variables
- triState ATLMinimizesCRunTimeLibraryUsage;
- triState BuildBrowserInformation;
- QString CharacterSet;
- QString ConfigurationType;
- QString DeleteExtensionsOnClean;
- QString ImportLibrary;
- QString IntermediateDirectory;
- QString Name;
- QString ConfigurationName;
- QString OutputDirectory;
- QString PrimaryOutput;
- QString ProgramDatabase;
- triState RegisterOutput;
- QString TargetName;
- QString UseOfATL;
- QString UseOfMfc;
- triState WholeProgramOptimization;
-
- // XML sub-parts
- VCXCLCompilerTool compiler;
- VCXLibrarianTool librarian;
- VCXLinkerTool linker;
- VCXMIDLTool idl;
- VCXResourceCompilerTool resource;
- VCXCustomBuildTool custom;
- VCXDeploymentTool deployment; // Not likely to be supported: http://msdn.microsoft.com/en-us/library/sa69he4t.aspx
- VCXPostBuildEventTool postBuild;
- VCXPreBuildEventTool preBuild;
- VCXPreLinkEventTool preLink;
-};
-
-struct VCXFilterFile
-{
- VCXFilterFile()
- { excludeFromBuild = false; }
- VCXFilterFile(const QString &filename, bool exclude = false )
- { file = filename; excludeFromBuild = exclude; }
- VCXFilterFile(const QString &filename, const QString &additional, bool exclude = false )
- { file = filename; excludeFromBuild = exclude; additionalFile = additional; }
- bool operator==(const VCXFilterFile &other){
- return file == other.file
- && additionalFile == other.additionalFile
- && excludeFromBuild == other.excludeFromBuild;
- }
-
- bool excludeFromBuild;
- QString file;
- QString additionalFile; // For tools like MOC
-};
-
-class VcxprojGenerator;
-class VCXFilter
-{
-public:
- // Functions
- VCXFilter();
- ~VCXFilter(){};
-
- void addFile(const QString& filename);
- void addFile(const VCXFilterFile& fileInfo);
- void addFiles(const QStringList& fileList);
- bool addExtraCompiler(const VCXFilterFile &info);
- void modifyPCHstage(QString str);
- bool outputFileConfig(XmlOutput &xml, XmlOutput &xmlFilter, const QString &filename, const QString &filtername, bool fileAllreadyAdded);
-
- // Variables
- QString Name;
- QString Filter;
- QString Guid;
- triState ParseFiles;
- VcxprojGenerator* Project;
- VCXConfiguration* Config;
- QList<VCXFilterFile> Files;
-
- customBuildCheck CustomBuild;
-
- bool useCustomBuildTool;
- VCXCustomBuildTool CustomBuildTool;
-
- bool useCompilerTool;
- VCXCLCompilerTool CompilerTool;
-};
-
-typedef QList<VCXFilter> VCXFilterList;
-class VCXProjectSingleConfig
-{
-public:
- enum FilterTypes {
- None,
- Source,
- Header,
- Generated,
- LexYacc,
- Translation,
- Resources,
- Extras
- };
- // Functions
- VCXProjectSingleConfig(){};
- ~VCXProjectSingleConfig(){}
-
- // Variables
- QString Name;
- QString Version;
- QString ProjectGUID;
- QString Keyword;
- QString SccProjectName;
- QString SccLocalPath;
- QString PlatformName;
-
- // XML sub-parts
- VCXConfiguration Configuration;
- VCXFilter RootFiles;
- VCXFilter SourceFiles;
- VCXFilter HeaderFiles;
- VCXFilter GeneratedFiles;
- VCXFilter LexYaccFiles;
- VCXFilter TranslationFiles;
- VCXFilter FormFiles;
- VCXFilter ResourceFiles;
- VCXFilterList ExtraCompilersFiles;
-
- bool flat_files;
-
- // Accessor for extracompilers
- VCXFilter &filterForExtraCompiler(const QString &compilerName);
-};
-
-
-
// Tree & Flat view of files --------------------------------------------------
-class VCXFilter;
class XNode
{
public:
virtual ~XNode() { }
- void addElement(const VCXFilterFile &file) {
+ void addElement(const VCFilterFile &file) {
addElement(file.file, file);
}
- virtual void addElement(const QString &filepath, const VCXFilterFile &allInfo) = 0;
+ virtual void addElement(const QString &filepath, const VCFilterFile &allInfo) = 0;
virtual void removeElements()= 0;
- virtual void generateXML(XmlOutput &xml, XmlOutput &xmlFilter, const QString &tagName, VCXProject &tool, const QString &filter) = 0;
+ virtual void generateXML(XmlOutput &xml, XmlOutput &xmlFilter, const QString &tagName, VCProject &tool, const QString &filter) = 0;
virtual bool hasElements() = 0;
};
class XTreeNode : public XNode
{
typedef QMap<QString, XTreeNode*> ChildrenMap;
- VCXFilterFile info;
+ VCFilterFile info;
ChildrenMap children;
public:
@@ -582,7 +87,7 @@ public:
return Uindex;
}
- void addElement(const QString &filepath, const VCXFilterFile &allInfo){
+ void addElement(const QString &filepath, const VCFilterFile &allInfo){
QString newNodeName(filepath);
int index = pathIndex(filepath);
@@ -609,7 +114,7 @@ public:
children.clear();
}
- void generateXML(XmlOutput &xml, XmlOutput &xmlFilter, const QString &tagName, VCXProject &tool, const QString &filter);
+ void generateXML(XmlOutput &xml, XmlOutput &xmlFilter, const QString &tagName, VCProject &tool, const QString &filter);
bool hasElements() {
return children.size() != 0;
}
@@ -617,7 +122,7 @@ public:
class XFlatNode : public XNode
{
- typedef QMap<QString, VCXFilterFile> ChildrenMapFlat;
+ typedef QMap<QString, VCFilterFile> ChildrenMapFlat;
ChildrenMapFlat children;
public:
@@ -633,7 +138,7 @@ public:
return Uindex;
}
- void addElement(const QString &filepath, const VCXFilterFile &allInfo){
+ void addElement(const QString &filepath, const VCFilterFile &allInfo){
QString newKey(filepath);
int index = pathIndex(filepath);
@@ -649,60 +154,39 @@ public:
children.clear();
}
- void generateXML(XmlOutput &xml, XmlOutput &xmlFilter, const QString &tagName, VCXProject &proj, const QString &filter);
+ void generateXML(XmlOutput &xml, XmlOutput &xmlFilter, const QString &tagName, VCProject &proj, const QString &filter);
bool hasElements() {
return children.size() != 0;
}
};
-// ----------------------------------------------------------------------------
-class VCXProject
+class VCXProjectWriter : public VCProjectWriter
{
public:
- // Variables
- QString Name;
- QString Version;
- QString ProjectGUID;
- QString Keyword;
- QString SccProjectName;
- QString SccLocalPath;
- QString PlatformName;
-
- // Single projects
- QList<VCXProjectSingleConfig> SingleProjects;
+ void write(XmlOutput &, VCProjectSingleConfig &);
+ void write(XmlOutput &, VCProject &);
- // List of all extracompilers
- QStringList ExtraCompilers;
+ void write(XmlOutput &, const VCCLCompilerTool &);
+ void write(XmlOutput &, const VCLinkerTool &);
+ void write(XmlOutput &, const VCMIDLTool &);
+ void write(XmlOutput &, const VCCustomBuildTool &);
+ void write(XmlOutput &, const VCLibrarianTool &);
+ void write(XmlOutput &, const VCResourceCompilerTool &);
+ void write(XmlOutput &, const VCEventTool &);
+ void write(XmlOutput &, const VCDeploymentTool &);
+ void write(XmlOutput &, const VCConfiguration &);
+ void write(XmlOutput &, VCFilter &);
- // Functions
- void outputFilter(XmlOutput &xml,
- XmlOutput &xmlFilter,
- const QString &filtername);
-
- void outputFileConfigs(XmlOutput &xml,
- XmlOutput &xmlFilter,
- const VCXFilterFile &info,
- const QString &filtername);
-
- void addFilters(XmlOutput &xmlFilter,
- const QString &filtername);
+private:
+ static void addFilters(VCProject &project, XmlOutput &xmlFilter, const QString &filterName);
+ static void outputFilter(VCProject &project, XmlOutput &xml, XmlOutput &xmlFilter, const QString &filtername);
+ static void outputFileConfigs(VCProject &project, XmlOutput &xml, XmlOutput &xmlFilter, const VCFilterFile &info, const QString &filtername);
+ static bool outputFileConfig(VCFilter &filter, XmlOutput &xml, XmlOutput &xmlFilter, const QString &filename, const QString &filtername, bool fileAllreadyAdded);
+ friend class XTreeNode;
+ friend class XFlatNode;
};
-
-XmlOutput &operator<<(XmlOutput &, const VCXCLCompilerTool &);
-XmlOutput &operator<<(XmlOutput &, const VCXLinkerTool &);
-XmlOutput &operator<<(XmlOutput &, const VCXMIDLTool &);
-XmlOutput &operator<<(XmlOutput &, const VCXCustomBuildTool &);
-XmlOutput &operator<<(XmlOutput &, const VCXLibrarianTool &);
-XmlOutput &operator<<(XmlOutput &, const VCXResourceCompilerTool &);
-XmlOutput &operator<<(XmlOutput &, const VCXEventTool &);
-XmlOutput &operator<<(XmlOutput &, const VCXDeploymentTool &);
-XmlOutput &operator<<(XmlOutput &, const VCXConfiguration &);
-XmlOutput &operator<<(XmlOutput &, const VCXProjectSingleConfig &);
-XmlOutput &operator<<(XmlOutput &, VCXProject &);
-
-
QT_END_NAMESPACE
#endif // MSVC_OBJECTMODEL_H
diff --git a/qmake/generators/win32/msvc_nmake.cpp b/qmake/generators/win32/msvc_nmake.cpp
index 92e8aeb..0adb152 100644
--- a/qmake/generators/win32/msvc_nmake.cpp
+++ b/qmake/generators/win32/msvc_nmake.cpp
@@ -129,10 +129,12 @@ QString NmakeMakefileGenerator::var(const QString &value)
p.replace("-c", precompRule);
// Cannot use -Gm with -FI & -Yu, as this gives an
// internal compiler error, on the newer compilers
+ // ### work-around for a VS 2003 bug. Move to some prf file or remove completely.
p.remove("-Gm");
return p;
} else if (value == "QMAKE_CXXFLAGS") {
// Remove internal compiler error option
+ // ### work-around for a VS 2003 bug. Move to some prf file or remove completely.
return MakefileGenerator::var(value).remove("-Gm");
}
}
diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp
index 1e060a0..e001884 100644
--- a/qmake/generators/win32/msvc_objectmodel.cpp
+++ b/qmake/generators/win32/msvc_objectmodel.cpp
@@ -280,6 +280,14 @@ inline XmlOutput::xml_output attrX(const char *name, const QStringList &v, const
return attr(name, v.join(s));
}
+triState operator!(const triState &rhs)
+{
+ if (rhs == unset)
+ return rhs;
+ triState lhs = (rhs == _True ? _False : _True);
+ return lhs;
+}
+
// VCCLCompilerTool -------------------------------------------------
VCCLCompilerTool::VCCLCompilerTool()
: AssemblerOutput(asmListingNone),
@@ -305,12 +313,14 @@ VCCLCompilerTool::VCCLCompilerTool()
FloatingPointExceptions(unset),
ForceConformanceInForLoopScope(unset),
GeneratePreprocessedFile(preprocessNo),
+ PreprocessSuppressLineNumbers(unset),
GlobalOptimizations(unset),
IgnoreStandardIncludePath(unset),
ImproveFloatingPointConsistency(unset),
InlineFunctionExpansion(expandDefault),
KeepComments(unset),
MinimalRebuild(unset),
+ OmitDefaultLibName(unset),
OmitFramePointers(unset),
OpenMP(unset),
Optimization(optimizeCustom),
@@ -328,11 +338,17 @@ VCCLCompilerTool::VCCLCompilerTool()
TurnOffAssemblyGeneration(unset),
UndefineAllPreprocessorDefinitions(unset),
UsePrecompiledHeader(pchNone),
+ UseUnicodeForAssemblerListing(unset),
WarnAsError(unset),
WarningLevel(warningLevel_0),
WholeProgramOptimization(unset),
CompileForArchitecture(archUnknown),
- InterworkCalls(unset)
+ InterworkCalls(unset),
+ EnablePREfast(unset),
+ DisplayFullPaths(unset),
+ MultiProcessorCompilation(unset),
+ GenerateXMLDocumentationFiles(unset),
+ CreateHotpatchableImage(unset)
{
}
@@ -369,82 +385,6 @@ inline XmlOutput::xml_output xformExceptionHandlingNET2005(exceptionHandling eh,
return attrS(_ExceptionHandling, (eh == ehNoSEH ? "true" : "false"));
}
-XmlOutput &operator<<(XmlOutput &xml, const VCCLCompilerTool &tool)
-{
- return xml
- << tag(_Tool)
- << attrS(_Name, _VCCLCompilerTool)
- << attrX(_AdditionalIncludeDirectories, tool.AdditionalIncludeDirectories)
- << attrX(_AdditionalOptions, tool.AdditionalOptions, " ")
- << attrX(_AdditionalUsingDirectories, tool.AdditionalUsingDirectories)
- << attrS(_AssemblerListingLocation, tool.AssemblerListingLocation)
- << attrE(_AssemblerOutput, tool.AssemblerOutput, /*ifNot*/ asmListingNone)
- << attrE(_BasicRuntimeChecks, tool.BasicRuntimeChecks, /*ifNot*/ runtimeBasicCheckNone)
- << attrE(_BrowseInformation, tool.BrowseInformation, /*ifNot*/ brInfoNone)
- << attrS(_BrowseInformationFile, tool.BrowseInformationFile)
- << attrT(_BufferSecurityCheck, tool.BufferSecurityCheck)
- << attrE(_CallingConvention, tool.CallingConvention, /*ifNot*/ callConventionDefault)
- << attrE(_CompileAs, tool.CompileAs, compileAsDefault)
- << attrE(_CompileAsManaged, tool.CompileAsManaged, /*ifNot*/ managedDefault)
- << attrT(_CompileOnly, tool.CompileOnly)
- << attrE(_DebugInformationFormat, tool.DebugInformationFormat, /*ifNot*/ debugUnknown)
- << attrT(_DefaultCharIsUnsigned, tool.DefaultCharIsUnsigned)
- << attrT(_Detect64BitPortabilityProblems, tool.Detect64BitPortabilityProblems)
- << attrT(_DisableLanguageExtensions, tool.DisableLanguageExtensions)
- << attrX(_DisableSpecificWarnings, tool.DisableSpecificWarnings)
- << attrE(_EnableEnhancedInstructionSet, tool.EnableEnhancedInstructionSet, /*ifnot*/ archNotSet)
- << attrT(_EnableFiberSafeOptimizations, tool.EnableFiberSafeOptimizations)
- << attrT(_EnableFunctionLevelLinking, tool.EnableFunctionLevelLinking)
- << attrT(_EnableIntrinsicFunctions, tool.EnableIntrinsicFunctions)
- << xformExceptionHandlingNET2005(tool.ExceptionHandling, tool.config->CompilerVersion)
- << attrT(_ExpandAttributedSource, tool.ExpandAttributedSource)
- << attrE(_FavorSizeOrSpeed, tool.FavorSizeOrSpeed, /*ifNot*/ favorNone)
-
- << attrE(_FloatingPointModel, tool.FloatingPointModel, /*ifNot*/ floatingPointNotSet)
- << attrT(_FloatingPointExceptions, tool.FloatingPointExceptions)
-
- << attrT(_ForceConformanceInForLoopScope, tool.ForceConformanceInForLoopScope)
- << attrX(_ForcedIncludeFiles, tool.ForcedIncludeFiles)
- << attrX(_ForcedUsingFiles, tool.ForcedUsingFiles)
- << attrE(_GeneratePreprocessedFile, tool.GeneratePreprocessedFile, /*ifNot*/ preprocessUnknown)
- << attrT(_GlobalOptimizations, tool.GlobalOptimizations)
- << attrT(_IgnoreStandardIncludePath, tool.IgnoreStandardIncludePath)
- << attrT(_ImproveFloatingPointConsistency, tool.ImproveFloatingPointConsistency)
- << attrE(_InlineFunctionExpansion, tool.InlineFunctionExpansion, /*ifNot*/ expandDefault)
- << attrT(_KeepComments, tool.KeepComments)
- << attrT(_MinimalRebuild, tool.MinimalRebuild)
- << attrS(_ObjectFile, tool.ObjectFile)
- << attrT(_OmitFramePointers, tool.OmitFramePointers)
- << attrT(_OpenMP, tool.OpenMP)
- << attrE(_Optimization, tool.Optimization, /*ifNot*/ optimizeDefault)
- << attrE(_OptimizeForProcessor, tool.OptimizeForProcessor, /*ifNot*/ procOptimizeBlended)
- << attrT(_OptimizeForWindowsApplication, tool.OptimizeForWindowsApplication)
- << attrS(_OutputFile, tool.OutputFile)
- << attrS(_PrecompiledHeaderFile, tool.PrecompiledHeaderFile)
- << attrS(_PrecompiledHeaderThrough, tool.PrecompiledHeaderThrough)
- << attrX(_PreprocessorDefinitions, tool.PreprocessorDefinitions)
- << (tool.ProgramDataBaseFileName.isNull() ? noxml() : attr(_ProgramDataBaseFileName, tool.ProgramDataBaseFileName))
- << attrE(_RuntimeLibrary, tool.RuntimeLibrary, /*ifNot*/ rtUnknown)
- << attrT(_RuntimeTypeInfo, tool.RuntimeTypeInfo)
- << attrT(_ShowIncludes, tool.ShowIncludes)
- << attrT(_SmallerTypeCheck, tool.SmallerTypeCheck)
- << attrT(_StringPooling, tool.StringPooling)
- << attrE(_StructMemberAlignment, tool.StructMemberAlignment, /*ifNot*/ alignNotSet)
- << attrT(_SuppressStartupBanner, tool.SuppressStartupBanner)
- << attrT(_TreatWChar_tAsBuiltInType, tool.TreatWChar_tAsBuiltInType)
- << attrT(_TurnOffAssemblyGeneration, tool.TurnOffAssemblyGeneration)
- << attrT(_UndefineAllPreprocessorDefinitions, tool.UndefineAllPreprocessorDefinitions)
- << attrX(_UndefinePreprocessorDefinitions, tool.UndefinePreprocessorDefinitions)
- << (!tool.PrecompiledHeaderFile.isEmpty() || !tool.PrecompiledHeaderThrough.isEmpty() ? xformUsePrecompiledHeaderForNET2005(tool.UsePrecompiledHeader, tool.config->CompilerVersion) : noxml())
- << attrT(_WarnAsError, tool.WarnAsError)
- << attrE(_WarningLevel, tool.WarningLevel, /*ifNot*/ warningLevelUnknown)
- << attrT(_WholeProgramOptimization, tool.WholeProgramOptimization)
- << attrE(_CompileForArchitecture, tool.CompileForArchitecture, /*ifNot*/ archUnknown)
- << attrT(_InterworkCalls, tool.InterworkCalls)
-
- << closetag(_Tool);
-}
-
bool VCCLCompilerTool::parseOption(const char* option)
{
// skip index 0 ('/' or '-')
@@ -457,6 +397,10 @@ bool VCCLCompilerTool::parseOption(const char* option)
switch (first) {
case '?':
case 'h':
+ if(second == 'o' && third == 't' && fourth == 'p') {
+ CreateHotpatchableImage = _True;
+ break;
+ }
qWarning("Generator: Option '/?', '/help': MSVC.NET projects do not support outputting help info");
found = false;
break;
@@ -482,7 +426,7 @@ bool VCCLCompilerTool::parseOption(const char* option)
break;
case 'E':
if(second == 'H') {
- QString opt(option);
+ QByteArray opt(option + 2);
if (opt.contains('a') && !opt.contains('s') && !opt.contains('c'))
ExceptionHandling = ehSEH;
else if (!opt.contains('a') && opt.contains("s-") && opt.contains("c-"))
@@ -501,6 +445,8 @@ bool VCCLCompilerTool::parseOption(const char* option)
AdditionalOptions += option;
}
break;
+ } else if (second == 'P') {
+ PreprocessSuppressLineNumbers = _True;
}
GeneratePreprocessedFile = preprocessYes;
break;
@@ -517,16 +463,24 @@ bool VCCLCompilerTool::parseOption(const char* option)
AssemblerOutput = asmListingAsmMachineSrc;
} else if(third == 's') {
AssemblerOutput = asmListingAsmSrc;
+ } else if (third == 'u') {
+ UseUnicodeForAssemblerListing = _True;
} else {
AssemblerOutput = asmListingAssemblyOnly;
}
break;
+ case 'C':
+ DisplayFullPaths = _True;
+ break;
case 'a':
AssemblerListingLocation = option+3;
break;
case 'I':
ForcedIncludeFiles += option+3;
break;
+ case 'i':
+ PreprocessOutputPath += option+3;
+ break;
case 'R':
BrowseInformation = brAllInfo;
BrowseInformationFile = option+3;
@@ -598,6 +552,8 @@ bool VCCLCompilerTool::parseOption(const char* option)
break;
case 'S':
BufferSecurityCheck = _True;
+ if(third == '-')
+ BufferSecurityCheck = _False;
break;
case 'T':
EnableFiberSafeOptimizations = _True;
@@ -675,10 +631,14 @@ bool VCCLCompilerTool::parseOption(const char* option)
RuntimeLibrary = rtMultiThreadedDebug;
break;
} else if (second == 'P') {
- if (config->CompilerVersion >= NET2005)
+ if (config->CompilerVersion >= NET2005) {
AdditionalOptions += option;
- else
+ } else if (config->CompilerVersion >= NET2010) {
+ MultiProcessorCompilation = _True;
+ MultiProcessorCompilationProcessorCount = option+3;
+ } else {
warn_msg(WarnLogic, "/MP option is not supported in Visual C++ < 2005, ignoring.");
+ }
break;
}
found = false; break;
@@ -855,7 +815,12 @@ bool VCCLCompilerTool::parseOption(const char* option)
break;
case 'p':
if(third == '6' && fourth == '4') {
- Detect64BitPortabilityProblems = _True;
+ if (config->CompilerVersion >= NET2010) {
+ // Deprecated for VS2010 but can be used under Additional Options.
+ AdditionalOptions += option;
+ } else {
+ Detect64BitPortabilityProblems = _True;
+ }
break;
}
// Fallthrough
@@ -907,7 +872,7 @@ bool VCCLCompilerTool::parseOption(const char* option)
DebugInformationFormat = debugEnabled;
break;
case 'l':
- DebugInformationFormat = debugEditAndContinue;
+ OmitDefaultLibName = _True;
break;
case 'a':
DisableLanguageExtensions = _True;
@@ -971,6 +936,9 @@ bool VCCLCompilerTool::parseOption(const char* option)
break;
}
}
+ } else if (second == 'n' && third == 'a' && fourth == 'l') {
+ EnablePREfast = _True;
+ break;
}
found = false;
break;
@@ -1029,10 +997,34 @@ bool VCCLCompilerTool::parseOption(const char* option)
}
break;
case 'd':
- if(second != 'r') {
- found = false; break;
+ if (second == 'r') {
+ CompileAsManaged = managedAssembly;
+ break;
+ } else if (second != 'o' && third == 'c') {
+ GenerateXMLDocumentationFiles = _True;
+ XMLDocumentationFileName += option+4;
+ break;
}
- CompileAsManaged = managedAssembly;
+ found = false;
+ break;
+ case 'e':
+ if (second == 'r' && third == 'r' && fourth == 'o') {
+ if (option[12] == ':') {
+ if ( option[13] == 'n') {
+ ErrorReporting = "None";
+ } else if (option[13] == 'p') {
+ ErrorReporting = "Prompt";
+ } else if (option[13] == 'q') {
+ ErrorReporting = "Queue";
+ } else if (option[13] == 's') {
+ ErrorReporting = "Send";
+ } else {
+ found = false;
+ }
+ break;
+ }
+ }
+ found = false;
break;
case 'f':
if(second == 'p' && third == ':') {
@@ -1115,7 +1107,8 @@ bool VCCLCompilerTool::parseOption(const char* option)
// VCLinkerTool -----------------------------------------------------
VCLinkerTool::VCLinkerTool()
- : EnableCOMDATFolding(optFoldingDefault),
+ : DataExecutionPrevention(unset),
+ EnableCOMDATFolding(optFoldingDefault),
GenerateDebugInformation(unset),
GenerateMapFile(unset),
HeapCommitSize(-1),
@@ -1131,6 +1124,7 @@ VCLinkerTool::VCLinkerTool()
MapLines(unset),
OptimizeForWindows98(optWin98Default),
OptimizeReferences(optReferencesDefault),
+ RandomizedBaseAddress(unset),
RegisterOutput(unset),
ResourceOnlyDLL(unset),
SetChecksum(unset),
@@ -1144,72 +1138,21 @@ VCLinkerTool::VCLinkerTool()
SwapRunFromNet(unset),
TargetMachine(machineNotSet),
TerminalServerAware(termSvrAwareDefault),
+ TreatWarningsAsErrors(unset),
TurnOffAssemblyGeneration(unset),
- TypeLibraryResourceID(0)
+ TypeLibraryResourceID(0),
+ GenerateManifest(unset),
+ EnableUAC(unset),
+ UACUIAccess(unset),
+ SectionAlignment(-1),
+ PreventDllBinding(unset),
+ AllowIsolation(unset),
+ AssemblyDebug(unset),
+ CLRUnmanagedCodeCheck(unset),
+ DelaySign(unset)
{
}
-XmlOutput &operator<<(XmlOutput &xml, const VCLinkerTool &tool)
-{
- return xml
- << tag(_Tool)
- << attrS(_Name, _VCLinkerTool)
- << attrX(_AdditionalDependencies, tool.AdditionalDependencies, " ")
- << attrX(_AdditionalLibraryDirectories, tool.AdditionalLibraryDirectories)
- << attrX(_AdditionalOptions, tool.AdditionalOptions, " ")
- << attrX(_AddModuleNamesToAssembly, tool.AddModuleNamesToAssembly)
- << attrS(_BaseAddress, tool.BaseAddress)
- << attrX(_DelayLoadDLLs, tool.DelayLoadDLLs)
- << attrE(_EnableCOMDATFolding, tool.EnableCOMDATFolding, /*ifNot*/ optFoldingDefault)
- << attrS(_EntryPointSymbol, tool.EntryPointSymbol)
- << attrX(_ForceSymbolReferences, tool.ForceSymbolReferences)
- << attrS(_FunctionOrder, tool.FunctionOrder)
- << attrT(_GenerateDebugInformation, tool.GenerateDebugInformation)
- << attrT(_GenerateMapFile, tool.GenerateMapFile)
- << attrL(_HeapCommitSize, tool.HeapCommitSize, /*ifNot*/ -1)
- << attrL(_HeapReserveSize, tool.HeapReserveSize, /*ifNot*/ -1)
- << attrT(_IgnoreAllDefaultLibraries, tool.IgnoreAllDefaultLibraries)
- << attrX(_IgnoreDefaultLibraryNames, tool.IgnoreDefaultLibraryNames)
- << attrT(_IgnoreEmbeddedIDL, tool.IgnoreEmbeddedIDL)
- << attrT(_IgnoreImportLibrary, tool.IgnoreImportLibrary)
- << attrS(_ImportLibrary, tool.ImportLibrary)
- << attrE(_LargeAddressAware, tool.LargeAddressAware, /*ifNot*/ addrAwareDefault)
- << attrT(_LinkDLL, tool.LinkDLL)
- << attrE(_LinkIncremental, tool.LinkIncremental, /*ifNot*/ linkIncrementalDefault)
- << attrE(_LinkTimeCodeGeneration, tool.LinkTimeCodeGeneration)
- << attrS(_LinkToManagedResourceFile, tool.LinkToManagedResourceFile)
- << attrT(_MapExports, tool.MapExports)
- << attrS(_MapFileName, tool.MapFileName)
- << attrT(_MapLines, tool.MapLines)
- << attrS(_MergedIDLBaseFileName, tool.MergedIDLBaseFileName)
- << attrS(_MergeSections, tool.MergeSections)
- << attrS(_MidlCommandFile, tool.MidlCommandFile)
- << attrS(_ModuleDefinitionFile, tool.ModuleDefinitionFile)
- << attrE(_OptimizeForWindows98, tool.OptimizeForWindows98, /*ifNot*/ optWin98Default)
- << attrE(_OptimizeReferences, tool.OptimizeReferences, /*ifNot*/ optReferencesDefault)
- << attrS(_OutputFile, tool.OutputFile)
- << attr(_ProgramDatabaseFile, tool.ProgramDatabaseFile)
- << attrT(_RegisterOutput, tool.RegisterOutput)
- << attrT(_ResourceOnlyDLL, tool.ResourceOnlyDLL)
- << attrT(_SetChecksum, tool.SetChecksum)
- << attrE(_ShowProgress, tool.ShowProgress, /*ifNot*/ linkProgressNotSet)
- << attrL(_StackCommitSize, tool.StackCommitSize, /*ifNot*/ -1)
- << attrL(_StackReserveSize, tool.StackReserveSize, /*ifNot*/ -1)
- << attrS(_StripPrivateSymbols, tool.StripPrivateSymbols)
- << attrE(_SubSystem, tool.SubSystem)
- << attrT(_SupportUnloadOfDelayLoadedDLL, tool.SupportUnloadOfDelayLoadedDLL)
- << attrT(_SuppressStartupBanner, tool.SuppressStartupBanner)
- << attrT(_SwapRunFromCD, tool.SwapRunFromCD)
- << attrT(_SwapRunFromNet, tool.SwapRunFromNet)
- << attrE(_TargetMachine, tool.TargetMachine, /*ifNot*/ machineNotSet)
- << attrE(_TerminalServerAware, tool.TerminalServerAware, /*ifNot*/ termSvrAwareDefault)
- << attrT(_TurnOffAssemblyGeneration, tool.TurnOffAssemblyGeneration)
- << attrS(_TypeLibraryFile, tool.TypeLibraryFile)
- << attrL(_TypeLibraryResourceID, tool.TypeLibraryResourceID, /*ifNot*/ rcUseDefault)
- << attrS(_Version, tool.Version)
- << closetag(_Tool);
-}
-
// Hashing routine to do fast option lookups ----
// Slightly rewritten to stop on ':' ',' and '\0'
// Original routine in qtranslator.cpp ----------
@@ -1279,26 +1222,57 @@ bool VCLinkerTool::parseOption(const char* option)
displayHash("POSIX"); displayHash("WINDOWS"); displayHash("WINDOWSCE"); displayHash("NET"); displayHash("CD"); displayHash("NO");
#endif
bool found = true;
- switch (elfHash(option)) {
- case 0x3360dbe: // /ALIGN[:number]
- case 0x1485c34: // /ALLOWBIND[:NO]
+ const uint optionHash = elfHash(option);
+ if (config->CompilerVersion < NET2010) {
+ switch (optionHash) {
+ case 0x3360dbe: // /ALIGN[:number]
+ case 0x1485c34: // /ALLOWBIND[:NO]
+ case 0x33aec94: // /FIXED[:NO]
+ case 0x7988f7e: // /SECTION:name,[E][R][W][S][D][K][L][P][X][,ALIGN=#]
+ case 0x0348992: // /STUB:filename
+ AdditionalOptions += option;
+ return true;
+ }
+ }
+
+ switch (optionHash) {
case 0x6b21972: // /DEFAULTLIB:library
case 0x396ea92: // /DRIVER[:UPONLY | :WDM]
case 0xaca9d75: // /EXETYPE[:DYNAMIC | :DEV386]
case 0x3ad5444: // /EXPORT:entryname[,@ordinal[,NONAME]][,DATA]
- case 0x33aec94: // /FIXED[:NO]
case 0x33b4675: // /FORCE:[MULTIPLE|UNRESOLVED]
case 0x3dc3455: // /IGNORE:number,number,number,number ### NOTE: This one is undocumented, but it is even used by Microsoft.
// In recent versions of the Microsoft linker they have disabled this undocumented feature.
- case 0x7988f7e: // /SECTION:name,[E][R][W][S][D][K][L][P][X][,ALIGN=#]
- case 0x0348992: // /STUB:filename
case 0x0034bc4: // /VXD
- case 0x0034c50: // /WS
AdditionalOptions += option;
break;
+ case 0x3360dbe: // /ALIGN[:number]
+ SectionAlignment = QString(option+7).toLongLong();
+ break;
+ case 0x1485c34: // /ALLOWBIND[:NO]
+ if(*(option+10) == ':' && (*(option+11) == 'n' || *(option+11) == 'N'))
+ PreventDllBinding = _False;
+ else
+ PreventDllBinding = _True;
+ break;
+ case 0x312011e: // /ALLOWISOLATION[:NO]
+ if(*(option+15) == ':' && (*(option+16) == 'n' || *(option+16) == 'N'))
+ AllowIsolation = _False;
+ else
+ AllowIsolation = _True;
+ break;
case 0x679c075: // /ASSEMBLYMODULE:filename
AddModuleNamesToAssembly += option+15;
break;
+ case 0x75f35f7: // /ASSEMBLYDEBUG[:DISABLE]
+ if(*(option+14) == ':' && (*(option+15) == 'D'))
+ AssemblyDebug = _False;
+ else
+ AssemblyDebug = _True;
+ break;
+ case 0x43294a5: // /ASSEMBLYLINKRESOURCE:filename
+ AssemblyLinkResource += option+22;
+ break;
case 0x062d065: // /ASSEMBLYRESOURCE:filename
LinkToManagedResourceFile = option+18;
break;
@@ -1308,6 +1282,71 @@ bool VCLinkerTool::parseOption(const char* option)
// We don't use it in Qt, so keep it simple for now
BaseAddress = option+6;
break;
+ case 0x63bf065: // /CLRIMAGETYPE:{IJW|PURE|SAFE}
+ if(*(option+14) == 'I')
+ CLRImageType = "ForceIJWImage";
+ else if(*(option+14) == 'P')
+ CLRImageType = "ForcePureILImage";
+ else if(*(option+14) == 'S')
+ CLRImageType = "ForceSafeILImage";
+ break;
+ case 0x5f2a6a2: // /CLRSUPPORTLASTERROR{:NO | SYSTEMDLL}
+ if(*(option+20) == ':') {
+ if(*(option+21) == 'N') {
+ CLRSupportLastError = "Disabled";
+ } else if(*(option+21) == 'S') {
+ CLRSupportLastError = "SystemDlls";
+ }
+ } else {
+ CLRSupportLastError = "Enabled";
+ }
+ break;
+ case 0xc7984f5: // /CLRTHREADATTRIBUTE:{STA|MTA|NONE}
+ if(*(option+20) == 'N')
+ CLRThreadAttribute = "DefaultThreadingAttribute";
+ else if(*(option+20) == 'M')
+ CLRThreadAttribute = "MTAThreadingAttribute";
+ else if(*(option+20) == 'S')
+ CLRThreadAttribute = "STAThreadingAttribute";
+ break;
+ case 0xa8c637b: // /CLRUNMANAGEDCODECHECK[:NO]
+ if(*(option+23) == 'N')
+ CLRUnmanagedCodeCheck = _False;
+ else
+ CLRUnmanagedCodeCheck = _True;
+ break;
+ case 0x62d9e94: // /MANIFEST[:NO]
+ if ((*(option+9) == ':' && (*(option+10) == 'N' || *(option+10) == 'n')))
+ GenerateManifest = _False;
+ else
+ GenerateManifest = _True;
+ break;
+ case 0x8b64559: // /MANIFESTDEPENDENCY:manifest_dependency
+ AdditionalManifestDependencies += option+20;
+ break;
+ case 0xe9e8195: // /MANIFESTFILE:filename
+ ManifestFile = option+14;
+ break;
+ case 0x9e9fb83: // /MANIFESTUAC http://msdn.microsoft.com/en-us/library/bb384691%28VS.100%29.aspx
+ if ((*(option+12) == ':' && (*(option+13) == 'N' || *(option+13) == 'n')))
+ EnableUAC = _False;
+ else if((*(option+12) == ':' && (*(option+13) == 'l' || *(option+14) == 'e'))) { // level
+ if(*(option+20) == 'a')
+ UACExecutionLevel = "AsInvoker";
+ else if(*(option+20) == 'h')
+ UACExecutionLevel = "HighestAvailable";
+ else if(*(option+20) == 'r')
+ UACExecutionLevel = "RequireAdministrator";
+ } else if((*(option+12) == ':' && (*(option+13) == 'u' || *(option+14) == 'i'))) { // uiAccess
+ if(*(option+22) == 't')
+ UACUIAccess = _True;
+ else
+ UACUIAccess = _False;
+ } else if((*(option+12) == ':' && (*(option+13) == 'f' || *(option+14) == 'r'))) { // fragment
+ AdditionalOptions += option;
+ }else
+ EnableUAC = _True;
+ break;
case 0x3389797: // /DEBUG
GenerateDebugInformation = _True;
break;
@@ -1322,12 +1361,36 @@ bool VCLinkerTool::parseOption(const char* option)
case 0x06f4bf4: // /DELAYLOAD:dllname
DelayLoadDLLs += option+11;
break;
+ case 0x06d451e: // /DELAYSIGN[:NO]
+ if(*(option+10) == ':' && (*(option+11) == 'n' || *(option+11) == 'N'))
+ DelaySign = _False;
+ else
+ DelaySign = _True;
+ break;
case 0x003390c: // /DLL
// This option is not used for vcproj files
break;
+ case 0x2ee8415: // /DYNAMICBASE[:NO]
+ if(*(option+12) == ':' && (*(option+13) == 'n' || *(option+13) == 'N'))
+ RandomizedBaseAddress = _False;
+ else
+ RandomizedBaseAddress = _True;
+ break;
case 0x33a3979: // /ENTRY:function
EntryPointSymbol = option+7;
break;
+ case 0x4504334: // /ERRORREPORT:[ NONE | PROMPT | QUEUE | SEND ]
+ if(*(option+12) == ':' ) {
+ if(*(option+13) == 'N')
+ LinkErrorReporting = "NoErrorReport";
+ else if(*(option+13) == 'P')
+ LinkErrorReporting = "PromptImmediately";
+ else if(*(option+13) == 'Q')
+ LinkErrorReporting = "QueueForNextLogin";
+ else if(*(option+13) == 'S')
+ LinkErrorReporting = "SendErrorReport";
+ }
+ break;
case 0x033c960: // /HEAP:reserve[,commit]
{
QStringList both = QString(option+6).split(",");
@@ -1355,6 +1418,12 @@ bool VCLinkerTool::parseOption(const char* option)
else
LinkIncremental = linkIncrementalYes;
break;
+ case 0x07f1ab2: // /KEYCONTAINER:name
+ KeyContainer = option+14;
+ break;
+ case 0xfadaf35: // /KEYFILE:filename
+ KeyFile = option+9;
+ break;
case 0x26e4675: // /LARGEADDRESSAWARE[:no]
if(*(option+18) == ':' &&
*(option+19) == 'n')
@@ -1459,6 +1528,12 @@ bool VCLinkerTool::parseOption(const char* option)
case 0x434138f: // /NOLOGO
SuppressStartupBanner = _True;
break;
+ case 0xc841054: // /NXCOMPAT[:NO]
+ if ((*(option+9) == ':' && (*(option+10) == 'N' || *(option+10) == 'n')))
+ DataExecutionPrevention = _False;
+ else
+ DataExecutionPrevention = _True;
+ break;
case 0x0034454: // /OPT:{REF | NOREF | ICF[=iterations] | NOICF | WIN98 | NOWIN98}
{
char third = *(option+7);
@@ -1536,7 +1611,7 @@ bool VCLinkerTool::parseOption(const char* option)
case 0x5268ea5: // NATIVE
case 0x05547e8: // POSIX
case 0x2949c95: // WINDOWSCE
- case 0x4B69795: // windowsce
+ case 0x4B69795: // windowsce
AdditionalOptions += option;
break;
default:
@@ -1575,6 +1650,16 @@ bool VCLinkerTool::parseOption(const char* option)
case 0xaa77f7e: // /VERSION:major[.minor]
Version = option+9;
break;
+ case 0x0034c50: // /WS[:NO]
+ if (config->CompilerVersion >= NET2010) {
+ if(*(option+3) == ':')
+ TreatWarningsAsErrors = _False;
+ else
+ TreatWarningsAsErrors = _True;
+ } else {
+ AdditionalOptions += option;
+ }
+ break;
default:
AdditionalOptions += option;
break;
@@ -1604,46 +1689,12 @@ VCMIDLTool::VCMIDLTool()
TargetEnvironment(midlTargetNotSet),
ValidateParameters(unset),
WarnAsError(unset),
- WarningLevel(midlWarningLevel_0)
-{
-}
-
-XmlOutput &operator<<(XmlOutput &xml, const VCMIDLTool &tool)
+ WarningLevel(midlWarningLevel_0),
+ ApplicationConfigurationMode(unset),
+ ValidateAllParameters(unset),
+ SuppressCompilerWarnings(unset),
+ LocaleID(-1)
{
- return xml
- << tag(_Tool)
- << attrS(_Name, _VCMIDLTool)
- << attrX(_AdditionalIncludeDirectories, tool.AdditionalIncludeDirectories)
- << attrX(_AdditionalOptions, tool.AdditionalOptions, " ")
- << attrX(_CPreprocessOptions, tool.CPreprocessOptions)
- << attrE(_DefaultCharType, tool.DefaultCharType)
- << attrS(_DLLDataFileName, tool.DLLDataFileName)
- << attrE(_EnableErrorChecks, tool.EnableErrorChecks)
- << attrT(_ErrorCheckAllocations, tool.ErrorCheckAllocations)
- << attrT(_ErrorCheckBounds, tool.ErrorCheckBounds)
- << attrT(_ErrorCheckEnumRange, tool.ErrorCheckEnumRange)
- << attrT(_ErrorCheckRefPointers, tool.ErrorCheckRefPointers)
- << attrT(_ErrorCheckStubData, tool.ErrorCheckStubData)
- << attrX(_FullIncludePath, tool.FullIncludePath)
- << attrT(_GenerateStublessProxies, tool.GenerateStublessProxies)
- << attrT(_GenerateTypeLibrary, tool.GenerateTypeLibrary)
- << attrS(_HeaderFileName, tool.HeaderFileName)
- << attrT(_IgnoreStandardIncludePath, tool.IgnoreStandardIncludePath)
- << attrS(_InterfaceIdentifierFileName, tool.InterfaceIdentifierFileName)
- << attrT(_MkTypLibCompatible, tool.MkTypLibCompatible)
- << attrS(_OutputDirectory, tool.OutputDirectory)
- << attrX(_PreprocessorDefinitions, tool.PreprocessorDefinitions)
- << attrS(_ProxyFileName, tool.ProxyFileName)
- << attrS(_RedirectOutputAndErrors, tool.RedirectOutputAndErrors)
- << attrE(_StructMemberAlignment, tool.StructMemberAlignment, /*ifNot*/ midlAlignNotSet)
- << attrT(_SuppressStartupBanner, tool.SuppressStartupBanner)
- << attrE(_TargetEnvironment, tool.TargetEnvironment, /*ifNot*/ midlTargetNotSet)
- << attrS(_TypeLibraryName, tool.TypeLibraryName)
- << attrX(_UndefinePreprocessorDefinitions, tool.UndefinePreprocessorDefinitions)
- << attrT(_ValidateParameters, tool.ValidateParameters)
- << attrT(_WarnAsError, tool.WarnAsError)
- << attrE(_WarningLevel, tool.WarningLevel)
- << closetag(_Tool);
}
bool VCMIDLTool::parseOption(const char* option)
@@ -1678,7 +1729,25 @@ bool VCMIDLTool::parseOption(const char* option)
#endif
bool found = true;
int offset = 0;
- switch(elfHash(option)) {
+
+ const uint optionHash = elfHash(option);
+
+ if (config->CompilerVersion < NET2010) {
+ switch (optionHash) {
+ case 0x5b1cb97: // /app_config
+ case 0x5a2fc64: // /client {none|stub}
+ case 0x35aabb2: // /cstub filename
+ case 0x64ceb12: // /newtlb
+ case 0x556dbee: // /no_warn
+ case 0x662bb12: // /oldtlb
+ case 0x69c9cf2: // /server {none|stub}
+ case 0x36aabb2: // /sstub filename
+ AdditionalOptions += option;
+ return true;
+ }
+ }
+
+ switch(optionHash) {
case 0x0000334: // /D name[=def]
PreprocessorDefinitions += option+3;
break;
@@ -1715,6 +1784,9 @@ bool VCMIDLTool::parseOption(const char* option)
found = false;
}
break;
+ case 0x5b1cb97: // /app_config
+ ApplicationConfigurationMode = _True;
+ break;
case 0x0359e82: // /char {ascii7|signed|unsigned}
switch(*(option+6)) {
case 'a':
@@ -1730,9 +1802,18 @@ bool VCMIDLTool::parseOption(const char* option)
found = false;
}
break;
+ case 0x5a2fc64: // /client {none|stub}
+ if(*(option+8) == 's')
+ GenerateClientFiles = "Stub";
+ else
+ GenerateClientFiles = "None";
+ break;
case 0xa766524: // /cpp_opt options
CPreprocessOptions += option+9;
break;
+ case 0x35aabb2: // /cstub filename
+ ClientStubFile = option+7;
+ break;
case 0xb32abf1: // /dlldata filename
DLLDataFileName = option + 9;
break;
@@ -1778,18 +1859,30 @@ bool VCMIDLTool::parseOption(const char* option)
case 0x64b7933: // /mktyplib203
MkTypLibCompatible = _True;
break;
+ case 0x64ceb12: // /newtlb
+ TypeLibFormat = "NewFormat";
+ break;
case 0x8e0b0a2: // /no_def_idir
IgnoreStandardIncludePath = _True;
break;
case 0x65635ef: // /nologo
SuppressStartupBanner = _True;
break;
+ case 0x695e9f4: // /no_robust
+ ValidateAllParameters = _False;
+ break;
case 0x3656b22: // /notlb
GenerateTypeLibrary = _True;
break;
+ case 0x556dbee: // /no_warn
+ SuppressCompilerWarnings = _True;
+ break;
case 0x000035f: // /o filename
RedirectOutputAndErrors = option+3;
break;
+ case 0x662bb12: // /oldtlb
+ TypeLibFormat = "OldFormat";
+ break;
case 0x00366c4: // /out directory
OutputDirectory = option+5;
break;
@@ -1805,6 +1898,15 @@ bool VCMIDLTool::parseOption(const char* option)
else
TargetEnvironment = midlTargetWin32;
break;
+ case 0x69c9cf2: // /server {none|stub}
+ if(*(option+8) == 's')
+ GenerateServerFiles = "Stub";
+ else
+ GenerateServerFiles = "None";
+ break;
+ case 0x36aabb2: // /sstub filename
+ ServerStubFile = option+7;
+ break;
case 0x0036b22: // /tlb filename
TypeLibraryName = option+5;
break;
@@ -1819,32 +1921,24 @@ bool VCMIDLTool::parseOption(const char* option)
case 0x0003463: // /Os
case 0x0003513: // /Zs
case 0x0035796: // /acf filename
- case 0x5b1cb97: // /app_config
case 0x3595cf4: // /c_ext
- case 0x5a2fc64: // /client {none|stub}
case 0xa64d3dd: // /confirm
case 0xa765b64: // /cpp_cmd cmd_line
- case 0x35aabb2: // /cstub filename
case 0x03629f4: // /lcid
case 0x6495cc4: // /ms_ext
case 0x96c7a1e: // /ms_union
case 0x4996fa2: // /msc_ver <nnnn>
- case 0x64ceb12: // /newtlb
case 0x6555a40: // /no_cpp
case 0xf64d6a6: // /no_default_epv
case 0x6dd9384: // /no_format_opt
- case 0x556dbee: // /no_warn
case 0x3655a70: // /nocpp
case 0x2b455a3: // /oldnames
- case 0x662bb12: // /oldtlb
case 0x0036696: // /osf
case 0x036679b: // /pack {N}
case 0x678bd38: // /prefix {all|client|server|switch}
case 0x96b702c: // /protocol {all|dce|ndr64}
case 0x3696aa3: // /rpcss
case 0x698ca60: // /savePP
- case 0x69c9cf2: // /server {none|stub}
- case 0x36aabb2: // /sstub filename
case 0xce9b12b: // /syntax_check
case 0xc9b5f16: // /use_epv
AdditionalOptions += option;
@@ -1886,94 +1980,22 @@ VCLibrarianTool::VCLibrarianTool()
{
}
-XmlOutput &operator<<(XmlOutput &xml, const VCLibrarianTool &tool)
-{
- return xml
- << tag(_Tool)
- << attrS(_Name, _VCLibrarianTool)
- << attrX(_AdditionalDependencies, tool.AdditionalDependencies)
- << attrX(_AdditionalLibraryDirectories, tool.AdditionalLibraryDirectories)
- << attrX(_AdditionalOptions, tool.AdditionalOptions, " ")
- << attrX(_ExportNamedFunctions, tool.ExportNamedFunctions)
- << attrX(_ForceSymbolReferences, tool.ForceSymbolReferences)
- << attrT(_IgnoreAllDefaultLibraries, tool.IgnoreAllDefaultLibraries)
- << attrX(_IgnoreDefaultLibraryNames, tool.IgnoreDefaultLibraryNames)
- << attrS(_ModuleDefinitionFile, tool.ModuleDefinitionFile)
- << attrS(_OutputFile, tool.OutputFile)
- << attrT(_SuppressStartupBanner, tool.SuppressStartupBanner)
- << closetag(_Tool);
-}
-
// VCCustomBuildTool ------------------------------------------------
VCCustomBuildTool::VCCustomBuildTool()
{
ToolName = "VCCustomBuildTool";
}
-XmlOutput &operator<<(XmlOutput &xml, const VCCustomBuildTool &tool)
-{
- // The code below offers two ways to split custom build step commands.
- // Normally the $$escape_expand(\n\t) is used in a project file, which is correctly translated
- // in all generators. However, if you use $$escape_expand(\n\r) (or \n\h) instead, the VCPROJ
- // generator will instead of binding the commands with " && " will insert a proper newline into
- // the VCPROJ file. We sometimes use this method of splitting commands if the custom buildstep
- // contains a command-line which is too big to run on certain OS.
- QString cmds;
- int end = tool.CommandLine.count();
- for(int i = 0; i < end; ++i) {
- QString cmdl = tool.CommandLine.at(i);
- if (cmdl.contains("\r\t")) {
- if (i == end - 1)
- cmdl = cmdl.trimmed();
- cmdl.replace("\r\t", " && ");
- } else if (cmdl.contains("\r\n")) {
- ;
- } else if (cmdl.contains("\r\\h")) {
- // The above \r\n should work, but doesn't, so we have this hack
- cmdl.replace("\r\\h", "\r\n");
- } else {
- if (i < end - 1)
- cmdl += " && ";
- }
- cmds += cmdl;
- }
- return xml
- << tag(_Tool)
- << attrS(_Name, tool.ToolName)
- << attrX(_AdditionalDependencies, tool.AdditionalDependencies, ";")
- << attrS(_CommandLine, cmds)
- << attrS(_Description, tool.Description)
- << attrX(_Outputs, tool.Outputs, ";")
- << attrS(_Path, tool.ToolPath)
- << closetag(_Tool);
-}
-
// VCResourceCompilerTool -------------------------------------------
VCResourceCompilerTool::VCResourceCompilerTool()
: Culture(rcUseDefault),
IgnoreStandardIncludePath(unset),
- ShowProgress(linkProgressNotSet)
+ ShowProgress(linkProgressNotSet),
+ SuppressStartupBanner(unset)
{
PreprocessorDefinitions = QStringList("NDEBUG");
}
-XmlOutput &operator<<(XmlOutput &xml, const VCResourceCompilerTool &tool)
-{
- return xml
- << tag(_Tool)
- << attrS(_Name, _VCResourceCompilerTool)
- << attrS(_Path, tool.ToolPath)
- << attrX(_AdditionalIncludeDirectories, tool.AdditionalIncludeDirectories)
- << attrX(_AdditionalOptions, tool.AdditionalOptions, " ")
- << attrE(_Culture, tool.Culture, /*ifNot*/ rcUseDefault)
- << attrX(_FullIncludePath, tool.FullIncludePath)
- << attrT(_IgnoreStandardIncludePath, tool.IgnoreStandardIncludePath)
- << attrX(_PreprocessorDefinitions, tool.PreprocessorDefinitions)
- << attrS(_ResourceOutputFileName, tool.ResourceOutputFileName)
- << attrE(_ShowProgress, tool.ShowProgress, /*ifNot*/ linkProgressNotSet)
- << closetag(_Tool);
-}
-
// VCDeploymentTool --------------------------------------------
VCDeploymentTool::VCDeploymentTool()
: RegisterOutput(registerNo)
@@ -1982,47 +2004,31 @@ VCDeploymentTool::VCDeploymentTool()
RemoteDirectory = "";
}
-XmlOutput &operator<<(XmlOutput &xml, const VCDeploymentTool &tool)
+VCEventTool::VCEventTool(const QString &eventName)
+ : ExcludedFromBuild(unset)
{
- if (tool.AdditionalFiles.isEmpty())
- return xml;
- return xml
- << tag(tool.DeploymentTag)
- << attrS(_RemoteDirectory, tool.RemoteDirectory)
- << attrE(_RegisterOutput, tool.RegisterOutput)
- << attrS(_AdditionalFiles, tool.AdditionalFiles)
- << closetag(tool.DeploymentTag);
-}
-
-// VCEventTool -------------------------------------------------
-XmlOutput &operator<<(XmlOutput &xml, const VCEventTool &tool)
-{
- return xml
- << tag(_Tool)
- << attrS(_Name, tool.ToolName)
- << attrS(_Path, tool.ToolPath)
- << attrS(_CommandLine, tool.CommandLine)
- << attrS(_Description, tool.Description)
- << attrT(_ExcludedFromBuild, tool.ExcludedFromBuild)
- << closetag(_Tool);
+ EventName = eventName;
+ ToolName = "VC";
+ ToolName += eventName;
+ ToolName += "Tool";
}
// VCPostBuildEventTool ---------------------------------------------
VCPostBuildEventTool::VCPostBuildEventTool()
+ : VCEventTool("PostBuildEvent")
{
- ToolName = "VCPostBuildEventTool";
}
// VCPreBuildEventTool ----------------------------------------------
VCPreBuildEventTool::VCPreBuildEventTool()
+ : VCEventTool("PreBuildEvent")
{
- ToolName = "VCPreBuildEventTool";
}
// VCPreLinkEventTool -----------------------------------------------
VCPreLinkEventTool::VCPreLinkEventTool()
+ : VCEventTool("PreLinkEvent")
{
- ToolName = "VCPreLinkEventTool";
}
// VCConfiguration --------------------------------------------------
@@ -2040,41 +2046,9 @@ VCConfiguration::VCConfiguration()
compiler.config = this;
linker.config = this;
idl.config = this;
+ custom.config = this;
}
-XmlOutput &operator<<(XmlOutput &xml, const VCConfiguration &tool)
-{
- xml << tag(_Configuration)
- << attrS(_Name, tool.Name)
- << attrS(_OutputDirectory, tool.OutputDirectory)
- << attrT(_ATLMinimizesCRunTimeLibraryUsage, tool.ATLMinimizesCRunTimeLibraryUsage)
- << attrT(_BuildBrowserInformation, tool.BuildBrowserInformation)
- << attrE(_CharacterSet, tool.CharacterSet, /*ifNot*/ charSetNotSet)
- << attrE(_ConfigurationType, tool.ConfigurationType)
- << attrS(_DeleteExtensionsOnClean, tool.DeleteExtensionsOnClean)
- << attrS(_ImportLibrary, tool.ImportLibrary)
- << attrS(_IntermediateDirectory, tool.IntermediateDirectory)
- << attrS(_PrimaryOutput, tool.PrimaryOutput)
- << attrS(_ProgramDatabase, tool.ProgramDatabase)
- << attrT(_RegisterOutput, tool.RegisterOutput)
- << attrE(_UseOfATL, tool.UseOfATL, /*ifNot*/ useATLNotSet)
- << attrE(_UseOfMfc, tool.UseOfMfc)
- << attrT(_WholeProgramOptimization, tool.WholeProgramOptimization)
- << tool.compiler
- << tool.custom;
- if (tool.ConfigurationType == typeStaticLibrary)
- xml << tool.librarian;
- else
- xml << tool.linker;
- xml << tool.idl
- << tool.postBuild
- << tool.preBuild
- << tool.preLink
- << tool.resource
- << tool.deployment
- << closetag(_Configuration);
- return xml;
-}
// VCFilter ---------------------------------------------------------
VCFilter::VCFilter()
: ParseFiles(unset),
@@ -2136,7 +2110,9 @@ void VCFilter::modifyPCHstage(QString str)
lines << "*";
lines << "* This file is auto-generated by qmake since no PRECOMPILED_SOURCE was";
lines << "* specified, and is used as the common stdafx.cpp. The file is only";
- lines << "* generated when creating .vcproj project files, and is not used for";
+ lines << QLatin1String("* generated when creating ")
+ + (Config->CompilerVersion < NET2010 ? ".vcproj" : ".vcxproj")
+ + " project files, and is not used for";
lines << "* command line compilations by nmake.";
lines << "*";
lines << "* WARNING: All changes made in this file will be lost.";
@@ -2324,135 +2300,17 @@ bool VCFilter::addExtraCompiler(const VCFilterFile &info)
return useCustomBuildTool;
}
-void VCFilter::outputFileConfig(XmlOutput &xml, const QString &filename)
-{
- // Clearing each filter tool
- useCustomBuildTool = false;
- useCompilerTool = false;
- CustomBuildTool = VCCustomBuildTool();
- CompilerTool = VCCLCompilerTool();
-
- // Unset some default options
- CompilerTool.BufferSecurityCheck = unset;
- CompilerTool.DebugInformationFormat = debugUnknown;
- CompilerTool.ExceptionHandling = ehDefault;
- CompilerTool.GeneratePreprocessedFile = preprocessUnknown;
- CompilerTool.Optimization = optimizeDefault;
- CompilerTool.ProgramDataBaseFileName.clear();
- CompilerTool.RuntimeLibrary = rtUnknown;
- CompilerTool.WarningLevel = warningLevelUnknown;
- CompilerTool.config = Config;
-
- bool inBuild = false;
- VCFilterFile info;
- for (int i = 0; i < Files.count(); ++i) {
- if (Files.at(i).file == filename) {
- info = Files.at(i);
- inBuild = true;
- }
- }
- inBuild &= !info.excludeFromBuild;
-
- if (inBuild) {
- addExtraCompiler(info);
- if(Project->usePCH)
- modifyPCHstage(info.file);
- } else {
- // Excluded files uses an empty compiler stage
- if(info.excludeFromBuild)
- useCompilerTool = true;
- }
-
- // Actual XML output ----------------------------------
- if(useCustomBuildTool || useCompilerTool || !inBuild) {
- xml << tag(_FileConfiguration)
- << attr(_Name, (*Config).Name)
- << (!inBuild ? attrS(_ExcludedFromBuild, "true") : noxml());
- if (useCustomBuildTool)
- xml << CustomBuildTool;
- if (useCompilerTool)
- xml << CompilerTool;
- xml << closetag(_FileConfiguration);
- }
-}
-
-XmlOutput &operator<<(XmlOutput &xml, VCFilter &tool)
-{
- if(!tool.Files.count())
- return xml;
-
- if (!tool.Name.isEmpty()) {
- xml << tag(_Filter)
- << attrS(_Name, tool.Name)
- << attrS(_Filter, tool.Filter)
- << attrS(_UniqueIdentifier, tool.Guid)
- << attrT(_ParseFiles, tool.ParseFiles);
- }
- for (int i = 0; i < tool.Files.count(); ++i) {
- const VCFilterFile &info = tool.Files.at(i);
- xml << tag(q_File)
- << attrS(_RelativePath, Option::fixPathToLocalOS(info.file))
- << data(); // In case no custom builds, to avoid "/>" endings
- tool.outputFileConfig(xml, tool.Files.at(i).file);
- xml << closetag(q_File);
- }
- if (!tool.Name.isEmpty())
- xml << closetag(_Filter);
- return xml;
-}
-
// VCProjectSingleConfig --------------------------------------------
-VCFilter nullFilter;
VCFilter& VCProjectSingleConfig::filterForExtraCompiler(const QString &compilerName)
{
for (int i = 0; i < ExtraCompilersFiles.count(); ++i)
if (ExtraCompilersFiles.at(i).Name == compilerName)
return ExtraCompilersFiles[i];
- return nullFilter;
-}
-
-XmlOutput &operator<<(XmlOutput &xml, const VCProjectSingleConfig &tool)
-{
- xml << decl("1.0", "Windows-1252")
- << tag(_VisualStudioProject)
- << attrS(_ProjectType, "Visual C++")
- << attrS(_Version, tool.Version)
- << attrS(_Name, tool.Name)
- << attrS(_ProjectGUID, tool.ProjectGUID)
- << attrS(_Keyword, tool.Keyword)
- << attrS(_SccProjectName, tool.SccProjectName)
- << attrS(_SccLocalPath, tool.SccLocalPath)
- << tag(_Platforms)
- << tag(_Platform)
- << attrS(_Name, tool.PlatformName)
- << closetag(_Platforms)
- << tag(_Configurations)
- << tool.Configuration;
- xml << closetag(_Configurations)
- << tag(q_Files);
- // Add this configuration into a multi-config project, since that's where we have the flat/tree
- // XML output functionality
- VCProject tempProj;
- tempProj.SingleProjects += tool;
- tempProj.outputFilter(xml, "Sources");
- tempProj.outputFilter(xml, "Headers");
- tempProj.outputFilter(xml, "GeneratedFiles");
- tempProj.outputFilter(xml, "LexYaccFiles");
- tempProj.outputFilter(xml, "TranslationFiles");
- tempProj.outputFilter(xml, "FormFiles");
- tempProj.outputFilter(xml, "ResourceFiles");
- for (int x = 0; x < tempProj.ExtraCompilers.count(); ++x) {
- tempProj.outputFilter(xml, tempProj.ExtraCompilers.at(x));
- }
- tempProj.outputFilter(xml, "RootFiles");
- xml << closetag(q_Files)
- << tag(_Globals)
- << data(); // No "/>" end tag
- return xml;
+ static VCFilter nullFilter;
+ return nullFilter;
}
-
// Tree file generation ---------------------------------------------
void TreeNode::generateXML(XmlOutput &xml, const QString &tagName, VCProject &tool, const QString &filter) {
if (children.size()) {
@@ -2476,69 +2334,431 @@ void TreeNode::generateXML(XmlOutput &xml, const QString &tagName, VCProject &to
xml << closetag("Filter");
} else {
// Leaf
- tool.outputFileConfigs(xml, info, filter);
+ VCProjectWriter::outputFileConfigs(tool, xml, info, filter);
}
}
-
// Flat file generation ---------------------------------------------
void FlatNode::generateXML(XmlOutput &xml, const QString &/*tagName*/, VCProject &tool, const QString &filter) {
if (children.size()) {
ChildrenMapFlat::ConstIterator it = children.constBegin();
ChildrenMapFlat::ConstIterator end = children.constEnd();
for (; it != end; ++it) {
- tool.outputFileConfigs(xml, (*it), filter);
+ VCProjectWriter::outputFileConfigs(tool, xml, (*it), filter);
}
}
}
+void VCProjectWriter::write(XmlOutput &xml, VCProjectSingleConfig &tool)
+{
+ xml << decl("1.0", "Windows-1252")
+ << tag(_VisualStudioProject)
+ << attrS(_ProjectType, "Visual C++")
+ << attrS(_Version, tool.Version)
+ << attrS(_Name, tool.Name)
+ << attrS(_ProjectGUID, tool.ProjectGUID)
+ << attrS(_Keyword, tool.Keyword)
+ << attrS(_SccProjectName, tool.SccProjectName)
+ << attrS(_SccLocalPath, tool.SccLocalPath)
+ << tag(_Platforms)
+ << tag(_Platform)
+ << attrS(_Name, tool.PlatformName)
+ << closetag(_Platforms)
+ << tag(_Configurations);
+ write(xml, tool.Configuration);
+ xml << closetag(_Configurations)
+ << tag(q_Files);
+ // Add this configuration into a multi-config project, since that's where we have the flat/tree
+ // XML output functionality
+ VCProject tempProj;
+ tempProj.SingleProjects += tool;
+ outputFilter(tempProj, xml, "Sources");
+ outputFilter(tempProj, xml, "Headers");
+ outputFilter(tempProj, xml, "GeneratedFiles");
+ outputFilter(tempProj, xml, "LexYaccFiles");
+ outputFilter(tempProj, xml, "TranslationFiles");
+ outputFilter(tempProj, xml, "FormFiles");
+ outputFilter(tempProj, xml, "ResourceFiles");
+ for (int x = 0; x < tempProj.ExtraCompilers.count(); ++x) {
+ outputFilter(tempProj, xml, tempProj.ExtraCompilers.at(x));
+ }
+ outputFilter(tempProj, xml, "RootFiles");
+ xml << closetag(q_Files)
+ << tag(_Globals)
+ << data(); // No "/>" end tag
+}
-// VCProject --------------------------------------------------------
-// Output all configurations (by filtername) for a file (by info)
-// A filters config output is in VCFilter.outputFileConfig()
-void VCProject::outputFileConfigs(XmlOutput &xml,
-// VCProjectSingleConfig::FilterTypes type
- const VCFilterFile &info,
- const QString &filtername)
+void VCProjectWriter::write(XmlOutput &xml, VCProject &tool)
{
- xml << tag(q_File)
- << attrS(_RelativePath, Option::fixPathToLocalOS(info.file));
- for (int i = 0; i < SingleProjects.count(); ++i) {
- VCFilter filter;
- if (filtername == "RootFiles") {
- filter = SingleProjects.at(i).RootFiles;
- } else if (filtername == "Sources") {
- filter = SingleProjects.at(i).SourceFiles;
- } else if (filtername == "Headers") {
- filter = SingleProjects.at(i).HeaderFiles;
- } else if (filtername == "GeneratedFiles") {
- filter = SingleProjects.at(i).GeneratedFiles;
- } else if (filtername == "LexYaccFiles") {
- filter = SingleProjects.at(i).LexYaccFiles;
- } else if (filtername == "TranslationFiles") {
- filter = SingleProjects.at(i).TranslationFiles;
- } else if (filtername == "FormFiles") {
- filter = SingleProjects.at(i).FormFiles;
- } else if (filtername == "ResourceFiles") {
- filter = SingleProjects.at(i).ResourceFiles;
+ if (tool.SingleProjects.count() == 0) {
+ warn_msg(WarnLogic, "Generator: .NET: no single project in merge project, no output");
+ return;
+ }
+
+ xml << decl("1.0", "Windows-1252")
+ << tag(_VisualStudioProject)
+ << attrS(_ProjectType, "Visual C++")
+ << attrS(_Version, tool.Version)
+ << attrS(_Name, tool.Name)
+ << attrS(_ProjectGUID, tool.ProjectGUID)
+ << attrS(_Keyword, tool.Keyword)
+ << attrS(_SccProjectName, tool.SccProjectName)
+ << attrS(_SccLocalPath, tool.SccLocalPath)
+ << tag(_Platforms)
+ << tag(_Platform)
+ << attrS(_Name, tool.PlatformName)
+ << closetag(_Platforms)
+ << tag(_Configurations);
+ // Output each configuration
+ for (int i = 0; i < tool.SingleProjects.count(); ++i)
+ write(xml, tool.SingleProjects.at(i).Configuration);
+ xml << closetag(_Configurations)
+ << tag(q_Files);
+ outputFilter(tool, xml, "Sources");
+ outputFilter(tool, xml, "Headers");
+ outputFilter(tool, xml, "GeneratedFiles");
+ outputFilter(tool, xml, "LexYaccFiles");
+ outputFilter(tool, xml, "TranslationFiles");
+ outputFilter(tool, xml, "FormFiles");
+ outputFilter(tool, xml, "ResourceFiles");
+ for (int x = 0; x < tool.ExtraCompilers.count(); ++x) {
+ outputFilter(tool, xml, tool.ExtraCompilers.at(x));
+ }
+ outputFilter(tool, xml, "RootFiles");
+ xml << closetag(q_Files)
+ << tag(_Globals)
+ << data(); // No "/>" end tag
+}
+
+void VCProjectWriter::write(XmlOutput &xml, const VCCLCompilerTool &tool)
+{
+ xml << tag(_Tool)
+ << attrS(_Name, _VCCLCompilerTool)
+ << attrX(_AdditionalIncludeDirectories, tool.AdditionalIncludeDirectories)
+ << attrX(_AdditionalOptions, tool.AdditionalOptions, " ")
+ << attrX(_AdditionalUsingDirectories, tool.AdditionalUsingDirectories)
+ << attrS(_AssemblerListingLocation, tool.AssemblerListingLocation)
+ << attrE(_AssemblerOutput, tool.AssemblerOutput, /*ifNot*/ asmListingNone)
+ << attrE(_BasicRuntimeChecks, tool.BasicRuntimeChecks, /*ifNot*/ runtimeBasicCheckNone)
+ << attrE(_BrowseInformation, tool.BrowseInformation, /*ifNot*/ brInfoNone)
+ << attrS(_BrowseInformationFile, tool.BrowseInformationFile)
+ << attrT(_BufferSecurityCheck, tool.BufferSecurityCheck)
+ << attrE(_CallingConvention, tool.CallingConvention, /*ifNot*/ callConventionDefault)
+ << attrE(_CompileAs, tool.CompileAs, compileAsDefault)
+ << attrE(_CompileAsManaged, tool.CompileAsManaged, /*ifNot*/ managedDefault)
+ << attrT(_CompileOnly, tool.CompileOnly)
+ << attrE(_DebugInformationFormat, tool.DebugInformationFormat, /*ifNot*/ debugUnknown)
+ << attrT(_DefaultCharIsUnsigned, tool.DefaultCharIsUnsigned)
+ << attrT(_Detect64BitPortabilityProblems, tool.Detect64BitPortabilityProblems)
+ << attrT(_DisableLanguageExtensions, tool.DisableLanguageExtensions)
+ << attrX(_DisableSpecificWarnings, tool.DisableSpecificWarnings)
+ << attrE(_EnableEnhancedInstructionSet, tool.EnableEnhancedInstructionSet, /*ifnot*/ archNotSet)
+ << attrT(_EnableFiberSafeOptimizations, tool.EnableFiberSafeOptimizations)
+ << attrT(_EnableFunctionLevelLinking, tool.EnableFunctionLevelLinking)
+ << attrT(_EnableIntrinsicFunctions, tool.EnableIntrinsicFunctions)
+ << xformExceptionHandlingNET2005(tool.ExceptionHandling, tool.config->CompilerVersion)
+ << attrT(_ExpandAttributedSource, tool.ExpandAttributedSource)
+ << attrE(_FavorSizeOrSpeed, tool.FavorSizeOrSpeed, /*ifNot*/ favorNone)
+
+ << attrE(_FloatingPointModel, tool.FloatingPointModel, /*ifNot*/ floatingPointNotSet)
+ << attrT(_FloatingPointExceptions, tool.FloatingPointExceptions)
+
+ << attrT(_ForceConformanceInForLoopScope, tool.ForceConformanceInForLoopScope)
+ << attrX(_ForcedIncludeFiles, tool.ForcedIncludeFiles)
+ << attrX(_ForcedUsingFiles, tool.ForcedUsingFiles)
+ << attrE(_GeneratePreprocessedFile, tool.GeneratePreprocessedFile, /*ifNot*/ preprocessUnknown)
+ << attrT(_GlobalOptimizations, tool.GlobalOptimizations)
+ << attrT(_IgnoreStandardIncludePath, tool.IgnoreStandardIncludePath)
+ << attrT(_ImproveFloatingPointConsistency, tool.ImproveFloatingPointConsistency)
+ << attrE(_InlineFunctionExpansion, tool.InlineFunctionExpansion, /*ifNot*/ expandDefault)
+ << attrT(_KeepComments, tool.KeepComments)
+ << attrT(_MinimalRebuild, tool.MinimalRebuild)
+ << attrS(_ObjectFile, tool.ObjectFile)
+ << attrT(_OmitFramePointers, tool.OmitFramePointers)
+ << attrT(_OpenMP, tool.OpenMP)
+ << attrE(_Optimization, tool.Optimization, /*ifNot*/ optimizeDefault)
+ << attrE(_OptimizeForProcessor, tool.OptimizeForProcessor, /*ifNot*/ procOptimizeBlended)
+ << attrT(_OptimizeForWindowsApplication, tool.OptimizeForWindowsApplication)
+ << attrS(_OutputFile, tool.OutputFile)
+ << attrS(_PrecompiledHeaderFile, tool.PrecompiledHeaderFile)
+ << attrS(_PrecompiledHeaderThrough, tool.PrecompiledHeaderThrough)
+ << attrX(_PreprocessorDefinitions, tool.PreprocessorDefinitions)
+ << (tool.ProgramDataBaseFileName.isNull() ? noxml() : attr(_ProgramDataBaseFileName, tool.ProgramDataBaseFileName))
+ << attrE(_RuntimeLibrary, tool.RuntimeLibrary, /*ifNot*/ rtUnknown)
+ << attrT(_RuntimeTypeInfo, tool.RuntimeTypeInfo)
+ << attrT(_ShowIncludes, tool.ShowIncludes)
+ << attrT(_SmallerTypeCheck, tool.SmallerTypeCheck)
+ << attrT(_StringPooling, tool.StringPooling)
+ << attrE(_StructMemberAlignment, tool.StructMemberAlignment, /*ifNot*/ alignNotSet)
+ << attrT(_SuppressStartupBanner, tool.SuppressStartupBanner)
+ << attrT(_TreatWChar_tAsBuiltInType, tool.TreatWChar_tAsBuiltInType)
+ << attrT(_TurnOffAssemblyGeneration, tool.TurnOffAssemblyGeneration)
+ << attrT(_UndefineAllPreprocessorDefinitions, tool.UndefineAllPreprocessorDefinitions)
+ << attrX(_UndefinePreprocessorDefinitions, tool.UndefinePreprocessorDefinitions)
+ << (!tool.PrecompiledHeaderFile.isEmpty() || !tool.PrecompiledHeaderThrough.isEmpty() ? xformUsePrecompiledHeaderForNET2005(tool.UsePrecompiledHeader, tool.config->CompilerVersion) : noxml())
+ << attrT(_WarnAsError, tool.WarnAsError)
+ << attrE(_WarningLevel, tool.WarningLevel, /*ifNot*/ warningLevelUnknown)
+ << attrT(_WholeProgramOptimization, tool.WholeProgramOptimization)
+ << attrE(_CompileForArchitecture, tool.CompileForArchitecture, /*ifNot*/ archUnknown)
+ << attrT(_InterworkCalls, tool.InterworkCalls)
+
+ << closetag(_Tool);
+}
+
+void VCProjectWriter::write(XmlOutput &xml, const VCLinkerTool &tool)
+{
+ xml << tag(_Tool)
+ << attrS(_Name, _VCLinkerTool)
+ << attrX(_AdditionalDependencies, tool.AdditionalDependencies, " ")
+ << attrX(_AdditionalLibraryDirectories, tool.AdditionalLibraryDirectories)
+ << attrX(_AdditionalOptions, tool.AdditionalOptions, " ")
+ << attrX(_AddModuleNamesToAssembly, tool.AddModuleNamesToAssembly)
+ << attrS(_BaseAddress, tool.BaseAddress)
+ << attrX(_DelayLoadDLLs, tool.DelayLoadDLLs)
+ << attrE(_EnableCOMDATFolding, tool.EnableCOMDATFolding, /*ifNot*/ optFoldingDefault)
+ << attrS(_EntryPointSymbol, tool.EntryPointSymbol)
+ << attrX(_ForceSymbolReferences, tool.ForceSymbolReferences)
+ << attrS(_FunctionOrder, tool.FunctionOrder)
+ << attrT(_GenerateDebugInformation, tool.GenerateDebugInformation)
+ << attrT(_GenerateMapFile, tool.GenerateMapFile)
+ << attrL(_HeapCommitSize, tool.HeapCommitSize, /*ifNot*/ -1)
+ << attrL(_HeapReserveSize, tool.HeapReserveSize, /*ifNot*/ -1)
+ << attrT(_IgnoreAllDefaultLibraries, tool.IgnoreAllDefaultLibraries)
+ << attrX(_IgnoreDefaultLibraryNames, tool.IgnoreDefaultLibraryNames)
+ << attrT(_IgnoreEmbeddedIDL, tool.IgnoreEmbeddedIDL)
+ << attrT(_IgnoreImportLibrary, tool.IgnoreImportLibrary)
+ << attrS(_ImportLibrary, tool.ImportLibrary)
+ << attrE(_LargeAddressAware, tool.LargeAddressAware, /*ifNot*/ addrAwareDefault)
+ << attrT(_LinkDLL, tool.LinkDLL)
+ << attrE(_LinkIncremental, tool.LinkIncremental, /*ifNot*/ linkIncrementalDefault)
+ << attrE(_LinkTimeCodeGeneration, tool.LinkTimeCodeGeneration)
+ << attrS(_LinkToManagedResourceFile, tool.LinkToManagedResourceFile)
+ << attrT(_MapExports, tool.MapExports)
+ << attrS(_MapFileName, tool.MapFileName)
+ << attrT(_MapLines, tool.MapLines)
+ << attrS(_MergedIDLBaseFileName, tool.MergedIDLBaseFileName)
+ << attrS(_MergeSections, tool.MergeSections)
+ << attrS(_MidlCommandFile, tool.MidlCommandFile)
+ << attrS(_ModuleDefinitionFile, tool.ModuleDefinitionFile)
+ << attrE(_OptimizeForWindows98, tool.OptimizeForWindows98, /*ifNot*/ optWin98Default)
+ << attrE(_OptimizeReferences, tool.OptimizeReferences, /*ifNot*/ optReferencesDefault)
+ << attrS(_OutputFile, tool.OutputFile)
+ << attr(_ProgramDatabaseFile, tool.ProgramDatabaseFile)
+ << attrT(_RegisterOutput, tool.RegisterOutput)
+ << attrT(_ResourceOnlyDLL, tool.ResourceOnlyDLL)
+ << attrT(_SetChecksum, tool.SetChecksum)
+ << attrE(_ShowProgress, tool.ShowProgress, /*ifNot*/ linkProgressNotSet)
+ << attrL(_StackCommitSize, tool.StackCommitSize, /*ifNot*/ -1)
+ << attrL(_StackReserveSize, tool.StackReserveSize, /*ifNot*/ -1)
+ << attrS(_StripPrivateSymbols, tool.StripPrivateSymbols)
+ << attrE(_SubSystem, tool.SubSystem)
+ << attrT(_SupportUnloadOfDelayLoadedDLL, tool.SupportUnloadOfDelayLoadedDLL)
+ << attrT(_SuppressStartupBanner, tool.SuppressStartupBanner)
+ << attrT(_SwapRunFromCD, tool.SwapRunFromCD)
+ << attrT(_SwapRunFromNet, tool.SwapRunFromNet)
+ << attrE(_TargetMachine, tool.TargetMachine, /*ifNot*/ machineNotSet)
+ << attrE(_TerminalServerAware, tool.TerminalServerAware, /*ifNot*/ termSvrAwareDefault)
+ << attrT(_TurnOffAssemblyGeneration, tool.TurnOffAssemblyGeneration)
+ << attrS(_TypeLibraryFile, tool.TypeLibraryFile)
+ << attrL(_TypeLibraryResourceID, tool.TypeLibraryResourceID, /*ifNot*/ rcUseDefault)
+ << attrS(_Version, tool.Version)
+ << closetag(_Tool);
+}
+
+void VCProjectWriter::write(XmlOutput &xml, const VCMIDLTool &tool)
+{
+ xml << tag(_Tool)
+ << attrS(_Name, _VCMIDLTool)
+ << attrX(_AdditionalIncludeDirectories, tool.AdditionalIncludeDirectories)
+ << attrX(_AdditionalOptions, tool.AdditionalOptions, " ")
+ << attrX(_CPreprocessOptions, tool.CPreprocessOptions)
+ << attrE(_DefaultCharType, tool.DefaultCharType)
+ << attrS(_DLLDataFileName, tool.DLLDataFileName)
+ << attrE(_EnableErrorChecks, tool.EnableErrorChecks)
+ << attrT(_ErrorCheckAllocations, tool.ErrorCheckAllocations)
+ << attrT(_ErrorCheckBounds, tool.ErrorCheckBounds)
+ << attrT(_ErrorCheckEnumRange, tool.ErrorCheckEnumRange)
+ << attrT(_ErrorCheckRefPointers, tool.ErrorCheckRefPointers)
+ << attrT(_ErrorCheckStubData, tool.ErrorCheckStubData)
+ << attrX(_FullIncludePath, tool.FullIncludePath)
+ << attrT(_GenerateStublessProxies, tool.GenerateStublessProxies)
+ << attrT(_GenerateTypeLibrary, tool.GenerateTypeLibrary)
+ << attrS(_HeaderFileName, tool.HeaderFileName)
+ << attrT(_IgnoreStandardIncludePath, tool.IgnoreStandardIncludePath)
+ << attrS(_InterfaceIdentifierFileName, tool.InterfaceIdentifierFileName)
+ << attrT(_MkTypLibCompatible, tool.MkTypLibCompatible)
+ << attrS(_OutputDirectory, tool.OutputDirectory)
+ << attrX(_PreprocessorDefinitions, tool.PreprocessorDefinitions)
+ << attrS(_ProxyFileName, tool.ProxyFileName)
+ << attrS(_RedirectOutputAndErrors, tool.RedirectOutputAndErrors)
+ << attrE(_StructMemberAlignment, tool.StructMemberAlignment, /*ifNot*/ midlAlignNotSet)
+ << attrT(_SuppressStartupBanner, tool.SuppressStartupBanner)
+ << attrE(_TargetEnvironment, tool.TargetEnvironment, /*ifNot*/ midlTargetNotSet)
+ << attrS(_TypeLibraryName, tool.TypeLibraryName)
+ << attrX(_UndefinePreprocessorDefinitions, tool.UndefinePreprocessorDefinitions)
+ << attrT(_ValidateParameters, tool.ValidateParameters)
+ << attrT(_WarnAsError, tool.WarnAsError)
+ << attrE(_WarningLevel, tool.WarningLevel)
+ << closetag(_Tool);
+}
+
+void VCProjectWriter::write(XmlOutput &xml, const VCCustomBuildTool &tool)
+{
+ // The code below offers two ways to split custom build step commands.
+ // Normally the $$escape_expand(\n\t) is used in a project file, which is correctly translated
+ // in all generators. However, if you use $$escape_expand(\n\r) (or \n\h) instead, the VCPROJ
+ // generator will instead of binding the commands with " && " will insert a proper newline into
+ // the VCPROJ file. We sometimes use this method of splitting commands if the custom buildstep
+ // contains a command-line which is too big to run on certain OS.
+ QString cmds;
+ int end = tool.CommandLine.count();
+ for(int i = 0; i < end; ++i) {
+ QString cmdl = tool.CommandLine.at(i);
+ if (cmdl.contains("\r\t")) {
+ if (i == end - 1)
+ cmdl = cmdl.trimmed();
+ cmdl.replace("\r\t", " && ");
+ } else if (cmdl.contains("\r\n")) {
+ ;
+ } else if (cmdl.contains("\r\\h")) {
+ // The above \r\n should work, but doesn't, so we have this hack
+ cmdl.replace("\r\\h", "\r\n");
} else {
- // ExtraCompilers
- filter = SingleProjects[i].filterForExtraCompiler(filtername);
+ if (i < end - 1)
+ cmdl += " && ";
}
+ cmds += cmdl;
+ }
+ xml << tag(_Tool)
+ << attrS(_Name, tool.ToolName)
+ << attrX(_AdditionalDependencies, tool.AdditionalDependencies, ";")
+ << attrS(_CommandLine, cmds)
+ << attrS(_Description, tool.Description)
+ << attrX(_Outputs, tool.Outputs, ";")
+ << attrS(_Path, tool.ToolPath)
+ << closetag(_Tool);
+}
- if (filter.Config) // only if the filter is not empty
- filter.outputFileConfig(xml, info.file);
+void VCProjectWriter::write(XmlOutput &xml, const VCLibrarianTool &tool)
+{
+ xml
+ << tag(_Tool)
+ << attrS(_Name, _VCLibrarianTool)
+ << attrX(_AdditionalDependencies, tool.AdditionalDependencies)
+ << attrX(_AdditionalLibraryDirectories, tool.AdditionalLibraryDirectories)
+ << attrX(_AdditionalOptions, tool.AdditionalOptions, " ")
+ << attrX(_ExportNamedFunctions, tool.ExportNamedFunctions)
+ << attrX(_ForceSymbolReferences, tool.ForceSymbolReferences)
+ << attrT(_IgnoreAllDefaultLibraries, tool.IgnoreAllDefaultLibraries)
+ << attrX(_IgnoreDefaultLibraryNames, tool.IgnoreDefaultLibraryNames)
+ << attrS(_ModuleDefinitionFile, tool.ModuleDefinitionFile)
+ << attrS(_OutputFile, tool.OutputFile)
+ << attrT(_SuppressStartupBanner, tool.SuppressStartupBanner)
+ << closetag(_Tool);
+}
+
+void VCProjectWriter::write(XmlOutput &xml, const VCResourceCompilerTool &tool)
+{
+ xml
+ << tag(_Tool)
+ << attrS(_Name, _VCResourceCompilerTool)
+ << attrS(_Path, tool.ToolPath)
+ << attrX(_AdditionalIncludeDirectories, tool.AdditionalIncludeDirectories)
+ << attrX(_AdditionalOptions, tool.AdditionalOptions, " ")
+ << attrE(_Culture, tool.Culture, /*ifNot*/ rcUseDefault)
+ << attrX(_FullIncludePath, tool.FullIncludePath)
+ << attrT(_IgnoreStandardIncludePath, tool.IgnoreStandardIncludePath)
+ << attrX(_PreprocessorDefinitions, tool.PreprocessorDefinitions)
+ << attrS(_ResourceOutputFileName, tool.ResourceOutputFileName)
+ << attrE(_ShowProgress, tool.ShowProgress, /*ifNot*/ linkProgressNotSet)
+ << closetag(_Tool);
+}
+
+void VCProjectWriter::write(XmlOutput &xml, const VCEventTool &tool)
+{
+ xml
+ << tag(_Tool)
+ << attrS(_Name, tool.ToolName)
+ << attrS(_Path, tool.ToolPath)
+ << attrS(_CommandLine, tool.CommandLine)
+ << attrS(_Description, tool.Description)
+ << attrT(_ExcludedFromBuild, tool.ExcludedFromBuild)
+ << closetag(_Tool);
+}
+
+void VCProjectWriter::write(XmlOutput &xml, const VCDeploymentTool &tool)
+{
+ if (tool.AdditionalFiles.isEmpty())
+ return;
+ xml << tag(tool.DeploymentTag)
+ << attrS(_RemoteDirectory, tool.RemoteDirectory)
+ << attrE(_RegisterOutput, tool.RegisterOutput)
+ << attrS(_AdditionalFiles, tool.AdditionalFiles)
+ << closetag(tool.DeploymentTag);
+}
+
+void VCProjectWriter::write(XmlOutput &xml, const VCConfiguration &tool)
+{
+ xml << tag(_Configuration)
+ << attrS(_Name, tool.Name)
+ << attrS(_OutputDirectory, tool.OutputDirectory)
+ << attrT(_ATLMinimizesCRunTimeLibraryUsage, tool.ATLMinimizesCRunTimeLibraryUsage)
+ << attrT(_BuildBrowserInformation, tool.BuildBrowserInformation)
+ << attrE(_CharacterSet, tool.CharacterSet, /*ifNot*/ charSetNotSet)
+ << attrE(_ConfigurationType, tool.ConfigurationType)
+ << attrS(_DeleteExtensionsOnClean, tool.DeleteExtensionsOnClean)
+ << attrS(_ImportLibrary, tool.ImportLibrary)
+ << attrS(_IntermediateDirectory, tool.IntermediateDirectory)
+ << attrS(_PrimaryOutput, tool.PrimaryOutput)
+ << attrS(_ProgramDatabase, tool.ProgramDatabase)
+ << attrT(_RegisterOutput, tool.RegisterOutput)
+ << attrE(_UseOfATL, tool.UseOfATL, /*ifNot*/ useATLNotSet)
+ << attrE(_UseOfMfc, tool.UseOfMfc)
+ << attrT(_WholeProgramOptimization, tool.WholeProgramOptimization);
+ write(xml, tool.compiler);
+ write(xml, tool.custom);
+ if (tool.ConfigurationType == typeStaticLibrary)
+ write(xml, tool.librarian);
+ else
+ write(xml, tool.linker);
+ write(xml, tool.idl);
+ write(xml, tool.postBuild);
+ write(xml, tool.preBuild);
+ write(xml, tool.preLink);
+ write(xml, tool.resource);
+ write(xml, tool.deployment);
+ xml << closetag(_Configuration);
+}
+
+void VCProjectWriter::write(XmlOutput &xml, VCFilter &tool)
+{
+ if(!tool.Files.count())
+ return;
+
+ if (!tool.Name.isEmpty()) {
+ xml << tag(_Filter)
+ << attrS(_Name, tool.Name)
+ << attrS(_Filter, tool.Filter)
+ << attrS(_UniqueIdentifier, tool.Guid)
+ << attrT(_ParseFiles, tool.ParseFiles);
}
- xml << closetag(q_File);
+ for (int i = 0; i < tool.Files.count(); ++i) {
+ const VCFilterFile &info = tool.Files.at(i);
+ xml << tag(q_File)
+ << attrS(_RelativePath, Option::fixPathToLocalOS(info.file))
+ << data(); // In case no custom builds, to avoid "/>" endings
+ outputFileConfig(tool, xml, tool.Files.at(i).file);
+ xml << closetag(q_File);
+ }
+ if (!tool.Name.isEmpty())
+ xml << closetag(_Filter);
}
// outputs a given filter for all existing configurations of a project
-void VCProject::outputFilter(XmlOutput &xml,
-// VCProjectSingleConfig::FilterTypes type
- const QString &filtername)
+void VCProjectWriter::outputFilter(VCProject &project, XmlOutput &xml, const QString &filtername)
{
Node *root;
- if (SingleProjects.at(0).flat_files)
+ if (project.SingleProjects.at(0).flat_files)
root = new FlatNode;
else
root = new TreeNode;
@@ -2546,27 +2766,28 @@ void VCProject::outputFilter(XmlOutput &xml,
QString name, extfilter, guid;
triState parse;
- for (int i = 0; i < SingleProjects.count(); ++i) {
+ for (int i = 0; i < project.SingleProjects.count(); ++i) {
VCFilter filter;
+ const VCProjectSingleConfig &projectSingleConfig = project.SingleProjects.at(i);
if (filtername == "RootFiles") {
- filter = SingleProjects.at(i).RootFiles;
+ filter = projectSingleConfig.RootFiles;
} else if (filtername == "Sources") {
- filter = SingleProjects.at(i).SourceFiles;
+ filter = projectSingleConfig.SourceFiles;
} else if (filtername == "Headers") {
- filter = SingleProjects.at(i).HeaderFiles;
+ filter = projectSingleConfig.HeaderFiles;
} else if (filtername == "GeneratedFiles") {
- filter = SingleProjects.at(i).GeneratedFiles;
+ filter = projectSingleConfig.GeneratedFiles;
} else if (filtername == "LexYaccFiles") {
- filter = SingleProjects.at(i).LexYaccFiles;
+ filter = projectSingleConfig.LexYaccFiles;
} else if (filtername == "TranslationFiles") {
- filter = SingleProjects.at(i).TranslationFiles;
+ filter = projectSingleConfig.TranslationFiles;
} else if (filtername == "FormFiles") {
- filter = SingleProjects.at(i).FormFiles;
+ filter = projectSingleConfig.FormFiles;
} else if (filtername == "ResourceFiles") {
- filter = SingleProjects.at(i).ResourceFiles;
+ filter = projectSingleConfig.ResourceFiles;
} else {
// ExtraCompilers
- filter = SingleProjects[i].filterForExtraCompiler(filtername);
+ filter = project.SingleProjects[i].filterForExtraCompiler(filtername);
}
// Merge all files in this filter to root tree
@@ -2594,52 +2815,98 @@ void VCProject::outputFilter(XmlOutput &xml,
<< attrS(_UniqueIdentifier, guid)
<< attrT(_ParseFiles, parse);
}
- root->generateXML(xml, "", *this, filtername); // output root tree
+ root->generateXML(xml, "", project, filtername); // output root tree
if (!name.isEmpty())
xml << closetag(_Filter);
}
-XmlOutput &operator<<(XmlOutput &xml, VCProject &tool)
+// Output all configurations (by filtername) for a file (by info)
+// A filters config output is in VCFilter.outputFileConfig()
+void VCProjectWriter::outputFileConfigs(VCProject &project, XmlOutput &xml, const VCFilterFile &info, const QString &filtername)
{
- if (tool.SingleProjects.count() == 0) {
- warn_msg(WarnLogic, "Generator: .NET: no single project in merge project, no output");
- return xml;
+ xml << tag(q_File)
+ << attrS(_RelativePath, Option::fixPathToLocalOS(info.file));
+ for (int i = 0; i < project.SingleProjects.count(); ++i) {
+ VCFilter filter;
+ const VCProjectSingleConfig &projectSingleConfig = project.SingleProjects.at(i);
+ if (filtername == "RootFiles") {
+ filter = projectSingleConfig.RootFiles;
+ } else if (filtername == "Sources") {
+ filter = projectSingleConfig.SourceFiles;
+ } else if (filtername == "Headers") {
+ filter = projectSingleConfig.HeaderFiles;
+ } else if (filtername == "GeneratedFiles") {
+ filter = projectSingleConfig.GeneratedFiles;
+ } else if (filtername == "LexYaccFiles") {
+ filter = projectSingleConfig.LexYaccFiles;
+ } else if (filtername == "TranslationFiles") {
+ filter = projectSingleConfig.TranslationFiles;
+ } else if (filtername == "FormFiles") {
+ filter = projectSingleConfig.FormFiles;
+ } else if (filtername == "ResourceFiles") {
+ filter = projectSingleConfig.ResourceFiles;
+ } else {
+ // ExtraCompilers
+ filter = project.SingleProjects[i].filterForExtraCompiler(filtername);
+ }
+
+ if (filter.Config) // only if the filter is not empty
+ outputFileConfig(filter, xml, info.file);
}
+ xml << closetag(q_File);
+}
- xml << decl("1.0", "Windows-1252")
- << tag(_VisualStudioProject)
- << attrS(_ProjectType, "Visual C++")
- << attrS(_Version, tool.Version)
- << attrS(_Name, tool.Name)
- << attrS(_ProjectGUID, tool.ProjectGUID)
- << attrS(_Keyword, tool.Keyword)
- << attrS(_SccProjectName, tool.SccProjectName)
- << attrS(_SccLocalPath, tool.SccLocalPath)
- << tag(_Platforms)
- << tag(_Platform)
- << attrS(_Name, tool.PlatformName)
- << closetag(_Platforms)
- << tag(_Configurations);
- // Output each configuration
- for (int i = 0; i < tool.SingleProjects.count(); ++i)
- xml << tool.SingleProjects.at(i).Configuration;
- xml << closetag(_Configurations)
- << tag(q_Files);
- tool.outputFilter(xml, "Sources");
- tool.outputFilter(xml, "Headers");
- tool.outputFilter(xml, "GeneratedFiles");
- tool.outputFilter(xml, "LexYaccFiles");
- tool.outputFilter(xml, "TranslationFiles");
- tool.outputFilter(xml, "FormFiles");
- tool.outputFilter(xml, "ResourceFiles");
- for (int x = 0; x < tool.ExtraCompilers.count(); ++x) {
- tool.outputFilter(xml, tool.ExtraCompilers.at(x));
+void VCProjectWriter::outputFileConfig(VCFilter &filter, XmlOutput &xml, const QString &filename)
+{
+ // Clearing each filter tool
+ filter.useCustomBuildTool = false;
+ filter.useCompilerTool = false;
+ filter.CustomBuildTool = VCCustomBuildTool();
+ filter.CompilerTool = VCCLCompilerTool();
+
+ // Unset some default options
+ filter.CustomBuildTool.config = filter.Config;
+ filter.CompilerTool.BufferSecurityCheck = unset;
+ filter.CompilerTool.DebugInformationFormat = debugUnknown;
+ filter.CompilerTool.ExceptionHandling = ehDefault;
+ filter.CompilerTool.GeneratePreprocessedFile = preprocessUnknown;
+ filter.CompilerTool.Optimization = optimizeDefault;
+ filter.CompilerTool.ProgramDataBaseFileName.clear();
+ filter.CompilerTool.RuntimeLibrary = rtUnknown;
+ filter.CompilerTool.WarningLevel = warningLevelUnknown;
+ filter.CompilerTool.config = filter.Config;
+
+ bool inBuild = false;
+ VCFilterFile info;
+ for (int i = 0; i < filter.Files.count(); ++i) {
+ if (filter.Files.at(i).file == filename) {
+ info = filter.Files.at(i);
+ inBuild = true;
+ }
+ }
+ inBuild &= !info.excludeFromBuild;
+
+ if (inBuild) {
+ filter.addExtraCompiler(info);
+ if(filter.Project->usePCH)
+ filter.modifyPCHstage(info.file);
+ } else {
+ // Excluded files uses an empty compiler stage
+ if(info.excludeFromBuild)
+ filter.useCompilerTool = true;
+ }
+
+ // Actual XML output ----------------------------------
+ if (filter.useCustomBuildTool || filter.useCompilerTool || !inBuild) {
+ xml << tag(_FileConfiguration)
+ << attr(_Name, filter.Config->Name)
+ << (!inBuild ? attrS(_ExcludedFromBuild, "true") : noxml());
+ if (filter.useCustomBuildTool)
+ filter.Project->projectWriter->write(xml, filter.CustomBuildTool);
+ if (filter.useCompilerTool)
+ filter.Project->projectWriter->write(xml, filter.CompilerTool);
+ xml << closetag(_FileConfiguration);
}
- tool.outputFilter(xml, "RootFiles");
- xml << closetag(q_Files)
- << tag(_Globals)
- << data(); // No "/>" end tag
- return xml;
}
QT_END_NAMESPACE
diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h
index 97f8570..c70e897 100644
--- a/qmake/generators/win32/msvc_objectmodel.h
+++ b/qmake/generators/win32/msvc_objectmodel.h
@@ -86,6 +86,9 @@ enum triState {
_False = 0,
_True = 1
};
+
+triState operator!(const triState &rhs);
+
enum addressAwarenessType {
addrAwareDefault,
addrAwareNoLarge,
@@ -467,7 +470,7 @@ enum warningLevelOption {
class VCToolBase {
protected:
// Functions
- VCToolBase(){};
+ VCToolBase(){}
virtual ~VCToolBase(){}
virtual bool parseOption(const char* option) = 0;
public:
@@ -520,6 +523,7 @@ public:
QStringList ForcedIncludeFiles;
QStringList ForcedUsingFiles;
preprocessOption GeneratePreprocessedFile;
+ triState PreprocessSuppressLineNumbers;
triState GlobalOptimizations;
triState IgnoreStandardIncludePath;
triState ImproveFloatingPointConsistency;
@@ -527,6 +531,7 @@ public:
triState KeepComments;
triState MinimalRebuild;
QString ObjectFile;
+ triState OmitDefaultLibName;
triState OmitFramePointers;
triState OpenMP;
optimizeOption Optimization;
@@ -549,11 +554,24 @@ public:
triState UndefineAllPreprocessorDefinitions;
QStringList UndefinePreprocessorDefinitions;
pchOption UsePrecompiledHeader;
+ triState UseUnicodeForAssemblerListing;
triState WarnAsError;
warningLevelOption WarningLevel;
triState WholeProgramOptimization;
useOfArchitecture CompileForArchitecture;
triState InterworkCalls;
+
+ // VS2010
+ triState EnablePREfast;
+ triState DisplayFullPaths;
+ triState MultiProcessorCompilation;
+ QString MultiProcessorCompilationProcessorCount;
+ triState GenerateXMLDocumentationFiles;
+ QString XMLDocumentationFileName;
+ QString ErrorReporting;
+ triState CreateHotpatchableImage;
+ QString PreprocessOutputPath;
+
VCConfiguration* config;
};
@@ -571,6 +589,7 @@ public:
QStringList AdditionalOptions;
QStringList AddModuleNamesToAssembly;
QString BaseAddress;
+ triState DataExecutionPrevention;
QStringList DelayLoadDLLs;
optFoldingType EnableCOMDATFolding;
QString EntryPointSymbol;
@@ -601,6 +620,7 @@ public:
optRefType OptimizeReferences;
QString OutputFile;
QString ProgramDatabaseFile;
+ triState RandomizedBaseAddress;
triState RegisterOutput;
triState ResourceOnlyDLL;
triState SetChecksum;
@@ -615,10 +635,33 @@ public:
triState SwapRunFromNet;
machineTypeOption TargetMachine;
termSvrAwarenessType TerminalServerAware;
+ triState TreatWarningsAsErrors;
triState TurnOffAssemblyGeneration;
QString TypeLibraryFile;
qlonglong TypeLibraryResourceID;
QString Version;
+
+ // VS2010
+ triState GenerateManifest;
+ QStringList AdditionalManifestDependencies;
+ QString ManifestFile;
+ triState EnableUAC;
+ QString UACExecutionLevel;
+ triState UACUIAccess;
+ qlonglong SectionAlignment;
+ triState PreventDllBinding;
+ triState AllowIsolation;
+ triState AssemblyDebug;
+ QStringList AssemblyLinkResource;
+ QString CLRImageType;
+ QString CLRSupportLastError;
+ QString CLRThreadAttribute;
+ triState CLRUnmanagedCodeCheck;
+ triState DelaySign;
+ QString KeyContainer;
+ QString KeyFile;
+ QString LinkErrorReporting;
+
VCConfiguration* config;
};
@@ -661,6 +704,18 @@ public:
triState ValidateParameters;
triState WarnAsError;
midlWarningLevelOption WarningLevel;
+
+ // VS 2010
+ triState ApplicationConfigurationMode;
+ QString GenerateClientFiles;
+ QString ClientStubFile;
+ QString TypeLibFormat;
+ triState ValidateAllParameters;
+ triState SuppressCompilerWarnings;
+ QString GenerateServerFiles;
+ QString ServerStubFile;
+ qlonglong LocaleID;
+
VCConfiguration* config;
};
@@ -670,7 +725,7 @@ public:
// Functions
VCLibrarianTool();
virtual ~VCLibrarianTool(){}
- bool parseOption(const char*){ return false; };
+ bool parseOption(const char*){ return false; }
// Variables
QStringList AdditionalDependencies;
@@ -691,7 +746,7 @@ public:
// Functions
VCCustomBuildTool();
virtual ~VCCustomBuildTool(){}
- bool parseOption(const char*){ return false; };
+ bool parseOption(const char*){ return false; }
// Variables
QStringList AdditionalDependencies;
@@ -700,6 +755,8 @@ public:
QStringList Outputs;
QString ToolName;
QString ToolPath;
+
+ VCConfiguration* config;
};
class VCResourceCompilerTool : public VCToolBase
@@ -708,7 +765,7 @@ public:
// Functions
VCResourceCompilerTool();
virtual ~VCResourceCompilerTool(){}
- bool parseOption(const char*){ return false; };
+ bool parseOption(const char*){ return false; }
// Variables
QStringList AdditionalIncludeDirectories;
@@ -720,6 +777,7 @@ public:
QString ResourceOutputFileName;
linkProgressOption ShowProgress;
QString ToolPath;
+ triState SuppressStartupBanner;
};
class VCDeploymentTool
@@ -740,15 +798,16 @@ class VCEventTool : public VCToolBase
{
protected:
// Functions
- VCEventTool() : ExcludedFromBuild(unset){};
+ VCEventTool(const QString &eventName);
virtual ~VCEventTool(){}
- bool parseOption(const char*){ return false; };
+ bool parseOption(const char*){ return false; }
public:
// Variables
QString CommandLine;
QString Description;
triState ExcludedFromBuild;
+ QString EventName;
QString ToolName;
QString ToolPath;
};
@@ -791,7 +850,8 @@ public:
QString DeleteExtensionsOnClean;
QString ImportLibrary;
QString IntermediateDirectory;
- QString Name;
+ QString Name; // "ConfigurationName|PlatformName"
+ QString ConfigurationName;
QString OutputDirectory;
QString PrimaryOutput;
QString ProgramDatabase;
@@ -848,14 +908,13 @@ class VCFilter
public:
// Functions
VCFilter();
- ~VCFilter(){};
+ ~VCFilter(){}
void addFile(const QString& filename);
void addFile(const VCFilterFile& fileInfo);
void addFiles(const QStringList& fileList);
bool addExtraCompiler(const VCFilterFile &info);
void modifyPCHstage(QString str);
- void outputFileConfig(XmlOutput &xml, const QString &filename);
// Variables
QString Name;
@@ -873,9 +932,6 @@ public:
bool useCompilerTool;
VCCLCompilerTool CompilerTool;
-
-private:
- friend XmlOutput &operator<<(XmlOutput &xml, VCFilter &tool);
};
typedef QList<VCFilter> VCFilterList;
@@ -893,7 +949,7 @@ public:
Extras
};
// Functions
- VCProjectSingleConfig(){};
+ VCProjectSingleConfig(){}
~VCProjectSingleConfig(){}
// Variables
@@ -923,8 +979,6 @@ public:
VCFilter &filterForExtraCompiler(const QString &compilerName);
};
-
-
// Tree & Flat view of files --------------------------------------------------
class VCFilter;
class Node
@@ -1050,30 +1104,35 @@ public:
// List of all extracompilers
QStringList ExtraCompilers;
+};
- // Functions
- void outputFilter(XmlOutput &xml,
-// VCProjectSingleConfig::FilterTypes type,
- const QString &filtername);
-
- void outputFileConfigs(XmlOutput &xml,
-// VCProjectSingleConfig::FilterTypes type,
- const VCFilterFile &info,
- const QString &filtername);
-};
-
-XmlOutput &operator<<(XmlOutput &, const VCCLCompilerTool &);
-XmlOutput &operator<<(XmlOutput &, const VCLinkerTool &);
-XmlOutput &operator<<(XmlOutput &, const VCMIDLTool &);
-XmlOutput &operator<<(XmlOutput &, const VCCustomBuildTool &);
-XmlOutput &operator<<(XmlOutput &, const VCLibrarianTool &);
-XmlOutput &operator<<(XmlOutput &, const VCResourceCompilerTool &);
-XmlOutput &operator<<(XmlOutput &, const VCEventTool &);
-XmlOutput &operator<<(XmlOutput &, const VCDeploymentTool &);
-XmlOutput &operator<<(XmlOutput &, const VCConfiguration &);
-XmlOutput &operator<<(XmlOutput &, VCFilter &);
-XmlOutput &operator<<(XmlOutput &, const VCProjectSingleConfig &);
-XmlOutput &operator<<(XmlOutput &, VCProject &);
+class VCProjectWriter
+{
+public:
+ virtual ~VCProjectWriter() {}
+
+ virtual void write(XmlOutput &, VCProjectSingleConfig &);
+ virtual void write(XmlOutput &, VCProject &);
+
+ virtual void write(XmlOutput &, const VCCLCompilerTool &);
+ virtual void write(XmlOutput &, const VCLinkerTool &);
+ virtual void write(XmlOutput &, const VCMIDLTool &);
+ virtual void write(XmlOutput &, const VCCustomBuildTool &);
+ virtual void write(XmlOutput &, const VCLibrarianTool &);
+ virtual void write(XmlOutput &, const VCResourceCompilerTool &);
+ virtual void write(XmlOutput &, const VCEventTool &);
+ virtual void write(XmlOutput &, const VCDeploymentTool &);
+ virtual void write(XmlOutput &, const VCConfiguration &);
+ virtual void write(XmlOutput &, VCFilter &);
+
+private:
+ static void outputFilter(VCProject &project, XmlOutput &xml, const QString &filtername);
+ static void outputFileConfigs(VCProject &project, XmlOutput &xml, const VCFilterFile &info, const QString &filtername);
+ static void outputFileConfig(VCFilter &filter, XmlOutput &xml, const QString &filename);
+
+ friend class TreeNode;
+ friend class FlatNode;
+};
QT_END_NAMESPACE
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp
index 8686ae8..f32ba7e 100644
--- a/qmake/generators/win32/msvc_vcproj.cpp
+++ b/qmake/generators/win32/msvc_vcproj.cpp
@@ -51,7 +51,6 @@
#include <stdlib.h>
//#define DEBUG_SOLUTION_GEN
-//#define DEBUG_PROJECT_GEN
QT_BEGIN_NAMESPACE
// Filter GUIDs (Do NOT change these!) ------------------------------
@@ -206,9 +205,18 @@ const char _slnExtSections[] = "\n\tGlobalSection(ExtensibilityGlobals) = pos
"\n\tEndGlobalSection";
// ------------------------------------------------------------------
-VcprojGenerator::VcprojGenerator() : Win32MakefileGenerator(), init_flag(false)
+VcprojGenerator::VcprojGenerator()
+ : Win32MakefileGenerator(),
+ init_flag(false),
+ projectWriter(0)
{
}
+
+VcprojGenerator::~VcprojGenerator()
+{
+ delete projectWriter;
+}
+
bool VcprojGenerator::writeMakefile(QTextStream &t)
{
initProject(); // Fills the whole project with proper data
@@ -229,7 +237,7 @@ bool VcprojGenerator::writeMakefile(QTextStream &t)
if(!project->isActiveConfig("build_pass")) {
debug_msg(1, "Generator: MSVC.NET: Writing single configuration project file");
XmlOutput xmlOut(t);
- xmlOut << vcProject;
+ projectWriter->write(xmlOut, vcProject);
}
return true;
}
@@ -281,7 +289,7 @@ bool VcprojGenerator::writeProjectMakefile()
mergedProject.PlatformName = mergedProjects.at(0)->vcProject.PlatformName;
XmlOutput xmlOut(t);
- xmlOut << mergedProject;
+ projectWriter->write(xmlOut, mergedProject);
return true;
} else if(project->first("TEMPLATE") == "vcsubdirs") {
return writeMakefile(t);
@@ -649,12 +657,13 @@ bool VcprojGenerator::hasBuiltinCompiler(const QString &file)
void VcprojGenerator::init()
{
- if(init_flag)
+ if (init_flag)
return;
- if(project->first("TEMPLATE") == "vcsubdirs") { //too much work for subdirs
- init_flag = true;
+ init_flag = true;
+ projectWriter = createProjectWriter();
+
+ if(project->first("TEMPLATE") == "vcsubdirs") //too much work for subdirs
return;
- }
debug_msg(1, "Generator: MSVC.NET: Initializing variables");
@@ -667,6 +676,20 @@ void VcprojGenerator::init()
project->values("QMAKESPEC").append(qgetenv("QMAKESPEC"));
processVars();
+
+ project->values("QMAKE_LIBS") += escapeFilePaths(project->values("LIBS"));
+ project->values("QMAKE_LIBS_PRIVATE") += escapeFilePaths(project->values("LIBS_PRIVATE"));
+
+ if(!project->values("VERSION").isEmpty()) {
+ QString version = project->values("VERSION")[0];
+ int firstDot = version.indexOf(".");
+ QString major = version.left(firstDot);
+ QString minor = version.right(version.length() - firstDot - 1);
+ minor.replace(QRegExp("\\."), "");
+ project->values("QMAKE_LFLAGS").append("/VERSION:" + major + "." + minor);
+ }
+
+ MakefileGenerator::init();
initOld(); // Currently calling old DSP code to set variables. CLEAN UP!
// Figure out what we're trying to build
@@ -749,11 +772,16 @@ void VcprojGenerator::init()
bool VcprojGenerator::mergeBuildProject(MakefileGenerator *other)
{
- VcprojGenerator *otherVC = static_cast<VcprojGenerator*>(other);
- if (!otherVC) {
+ if (!other || !other->projectFile()) {
+ warn_msg(WarnLogic, "VcprojGenerator: Cannot merge null project.");
+ return false;
+ }
+ if (other->projectFile()->first("MAKEFILE_GENERATOR") != project->first("MAKEFILE_GENERATOR")) {
warn_msg(WarnLogic, "VcprojGenerator: Cannot merge other types of projects! (ignored)");
return false;
}
+
+ VcprojGenerator *otherVC = static_cast<VcprojGenerator*>(other);
mergedProjects += otherVC;
return true;
}
@@ -777,6 +805,9 @@ void VcprojGenerator::initProject()
// Own elements -----------------------------
vcProject.Name = unescapeFilePath(project->first("QMAKE_ORIG_TARGET"));
switch(which_dotnet_version()) {
+ case NET2010:
+ vcProject.Version = "10.00";
+ break;
case NET2008:
vcProject.Version = "9,00";
break;
@@ -846,9 +877,28 @@ void VcprojGenerator::initConfiguration()
break;
}
+ if (conf.CompilerVersion >= NET2010) {
+ conf.OutputDirectory = project->first("DESTDIR");
+
+ if(conf.OutputDirectory.isEmpty())
+ conf.OutputDirectory = ".\\";
+
+ if(!conf.OutputDirectory.endsWith("\\"))
+ conf.OutputDirectory += '\\';
+
+ // The target name could have been changed.
+ conf.PrimaryOutput = project->first("TARGET");
+ if ( !conf.PrimaryOutput.isEmpty() && !project->first("TARGET_VERSION_EXT").isEmpty() && project->isActiveConfig("shared"))
+ conf.PrimaryOutput.append(project->first("TARGET_VERSION_EXT"));
+ } else {
+ conf.PrimaryOutput = project->first("PrimaryOutput");
+ conf.OutputDirectory = ".";
+ }
+
conf.Name = project->values("BUILD_NAME").join(" ");
if (conf.Name.isEmpty())
conf.Name = isDebug ? "Debug" : "Release";
+ conf.ConfigurationName = conf.Name;
if (project->isEmpty("CE_SDK") || project->isEmpty("CE_ARCH")) {
conf.Name += (conf.idl.TargetEnvironment == midlTargetWin64 ? "|Win64" : "|Win32");
} else {
@@ -861,8 +911,6 @@ void VcprojGenerator::initConfiguration()
conf.DeleteExtensionsOnClean = project->first("DeleteExtensionsOnClean");
conf.ImportLibrary = conf.linker.ImportLibrary;
conf.IntermediateDirectory = project->first("OBJECTS_DIR");
- conf.OutputDirectory = ".";
- conf.PrimaryOutput = project->first("PrimaryOutput");
conf.WholeProgramOptimization = conf.compiler.WholeProgramOptimization;
temp = project->first("UseOfATL");
if(!temp.isEmpty())
@@ -887,7 +935,6 @@ void VcprojGenerator::initConfiguration()
} else {
conf.compiler.PreprocessorDefinitions += "NDEBUG";
}
-
}
void VcprojGenerator::initCompilerTool()
@@ -907,39 +954,24 @@ void VcprojGenerator::initCompilerTool()
conf.compiler.PrecompiledHeaderFile = "$(IntDir)\\" + precompPch;
conf.compiler.PrecompiledHeaderThrough = project->first("PRECOMPILED_HEADER");
conf.compiler.ForcedIncludeFiles = project->values("PRECOMPILED_HEADER");
- // Minimal build option triggers an Internal Compiler Error
- // when used in conjunction with /FI and /Yu, so remove it
- project->values("QMAKE_CFLAGS_DEBUG").removeAll("-Gm");
- project->values("QMAKE_CFLAGS_DEBUG").removeAll("/Gm");
- project->values("QMAKE_CXXFLAGS_DEBUG").removeAll("-Gm");
- project->values("QMAKE_CXXFLAGS_DEBUG").removeAll("/Gm");
- }
- conf.compiler.parseOptions(project->values("QMAKE_CXXFLAGS"));
- if(project->isActiveConfig("debug")){
- // Debug version
- if((projectTarget == Application) || (projectTarget == StaticLib))
- conf.compiler.parseOptions(project->values("QMAKE_CXXFLAGS_MT_DBG"));
- else
- conf.compiler.parseOptions(project->values("QMAKE_CXXFLAGS_MT_DLLDBG"));
- } else {
- // Release version
- conf.compiler.PreprocessorDefinitions += "QT_NO_DEBUG";
- conf.compiler.PreprocessorDefinitions += "NDEBUG";
- if((projectTarget == Application) || (projectTarget == StaticLib))
- conf.compiler.parseOptions(project->values("QMAKE_CXXFLAGS_MT"));
- else
- conf.compiler.parseOptions(project->values("QMAKE_CXXFLAGS_MT_DLL"));
+ if (conf.CompilerVersion <= NET2003) {
+ // Minimal build option triggers an Internal Compiler Error
+ // when used in conjunction with /FI and /Yu, so remove it
+ // ### work-around for a VS 2003 bug. Move to some prf file or remove completely.
+ project->values("QMAKE_CFLAGS_DEBUG").removeAll("-Gm");
+ project->values("QMAKE_CFLAGS_DEBUG").removeAll("/Gm");
+ project->values("QMAKE_CXXFLAGS_DEBUG").removeAll("-Gm");
+ project->values("QMAKE_CXXFLAGS_DEBUG").removeAll("/Gm");
+ }
}
- // Common for both release and debug
- if(project->isActiveConfig("windows"))
- conf.compiler.PreprocessorDefinitions += project->values("MSVCPROJ_WINCONDEF");
+ conf.compiler.parseOptions(project->values("QMAKE_CXXFLAGS"));
- // Can this be set for ALL configs?
- // If so, use qmake.conf!
- if(projectTarget == SharedLib)
+ if (project->isActiveConfig("windows"))
conf.compiler.PreprocessorDefinitions += "_WINDOWS";
+ else if (project->isActiveConfig("console"))
+ conf.compiler.PreprocessorDefinitions += "_CONSOLE";
conf.compiler.PreprocessorDefinitions += project->values("DEFINES");
conf.compiler.PreprocessorDefinitions += project->values("PRL_EXPORT_DEFINES");
@@ -964,7 +996,17 @@ void VcprojGenerator::initLinkerTool()
{
findLibraries(); // Need to add the highest version of the libs
VCConfiguration &conf = vcProject.Configuration;
- conf.linker.parseOptions(project->values("MSVCPROJ_LFLAGS"));
+ conf.linker.parseOptions(project->values("QMAKE_LFLAGS"));
+
+ foreach (const QString &libDir, project->values("QMAKE_LIBDIR")) {
+ if (libDir.startsWith("/LIBPATH:"))
+ conf.linker.AdditionalLibraryDirectories += libDir.mid(9);
+ else
+ conf.linker.AdditionalLibraryDirectories += libDir;
+ }
+
+ if (!project->values("DEF_FILE").isEmpty())
+ conf.linker.ModuleDefinitionFile = project->first("DEF_FILE");
foreach(QString libs, project->values("MSVCPROJ_LIBS")) {
if (libs.left(9).toUpper() == "/LIBPATH:") {
@@ -1014,7 +1056,6 @@ void VcprojGenerator::initResourceTool()
conf.resource.ResourceOutputFileName = project->first("DESTDIR") + "/$(InputName).res";
}
-
void VcprojGenerator::initIDLTool()
{
}
@@ -1280,7 +1321,6 @@ void VcprojGenerator::initTranslationFiles()
vcProject.TranslationFiles.CustomBuild = none;
}
-
void VcprojGenerator::initFormFiles()
{
vcProject.FormFiles.Name = "Form Files";
@@ -1296,7 +1336,6 @@ void VcprojGenerator::initFormFiles()
vcProject.FormFiles.CustomBuild = none;
}
-
void VcprojGenerator::initResourceFiles()
{
vcProject.ResourceFiles.Name = "Resource Files";
@@ -1424,86 +1463,11 @@ void VcprojGenerator::initExtraCompilerOutputs()
}
}
-/* \internal
- Sets up all needed variables from the environment and all the different caches and .conf files
-*/
-
void VcprojGenerator::initOld()
{
- if(init_flag)
- return;
-
- init_flag = true;
- QStringList::Iterator it;
-
- // Decode version, and add it to $$MSVCPROJ_VERSION --------------
- if(!project->values("VERSION").isEmpty()) {
- QString version = project->values("VERSION")[0];
- int firstDot = version.indexOf(".");
- QString major = version.left(firstDot);
- QString minor = version.right(version.length() - firstDot - 1);
- minor.replace(QRegExp("\\."), "");
- project->values("MSVCPROJ_VERSION").append("/VERSION:" + major + "." + minor);
- project->values("QMAKE_LFLAGS").append("/VERSION:" + major + "." + minor);
- }
-
- project->values("QMAKE_LIBS") += escapeFilePaths(project->values("LIBS"));
- project->values("QMAKE_LIBS_PRIVATE") += escapeFilePaths(project->values("LIBS_PRIVATE"));
-
- // Get filename w/o extension -----------------------------------
- QString msvcproj_project = "";
- QString targetfilename = "";
- if(!project->isEmpty("TARGET")) {
- project->values("TARGET") = unescapeFilePaths(project->values("TARGET"));
- targetfilename = msvcproj_project = project->first("TARGET");
- }
-
- // Init base class too -------------------------------------------
- MakefileGenerator::init();
-
- if(msvcproj_project.isEmpty())
- msvcproj_project = Option::output.fileName();
-
- msvcproj_project = msvcproj_project.right(msvcproj_project.length() - msvcproj_project.lastIndexOf("\\") - 1);
- msvcproj_project = msvcproj_project.left(msvcproj_project.lastIndexOf("."));
- msvcproj_project.replace(QRegExp("-"), "");
-
- project->values("MSVCPROJ_PROJECT").append(msvcproj_project);
- QStringList &proj = project->values("MSVCPROJ_PROJECT");
-
- for(it = proj.begin(); it != proj.end(); ++it)
- (*it).replace(QRegExp("\\.[a-zA-Z0-9_]*$"), "");
-
- // SUBSYSTEM -----------------------------------------------------
- if(!project->values("QMAKE_APP_FLAG").isEmpty()) {
- project->values("MSVCPROJ_TEMPLATE").append("win32app" + project->first("VCPROJ_EXTENSION"));
- if(project->isActiveConfig("console")) {
- project->values("MSVCPROJ_CONSOLE").append("CONSOLE");
- project->values("MSVCPROJ_WINCONDEF").append("_CONSOLE");
- project->values("MSVCPROJ_VCPROJTYPE").append("0x0103");
- project->values("MSVCPROJ_SUBSYSTEM").append("CONSOLE");
- } else {
- project->values("MSVCPROJ_CONSOLE").clear();
- project->values("MSVCPROJ_WINCONDEF").append("_WINDOWS");
- project->values("MSVCPROJ_VCPROJTYPE").append("0x0101");
- project->values("MSVCPROJ_SUBSYSTEM").append("WINDOWS");
- }
- }
-
// $$QMAKE.. -> $$MSVCPROJ.. -------------------------------------
project->values("MSVCPROJ_LIBS") += project->values("QMAKE_LIBS");
project->values("MSVCPROJ_LIBS") += project->values("QMAKE_LIBS_PRIVATE");
- project->values("MSVCPROJ_LFLAGS") += project->values("QMAKE_LFLAGS");
- if(!project->values("QMAKE_LIBDIR").isEmpty()) {
- QStringList strl = project->values("QMAKE_LIBDIR");
- QStringList::iterator stri;
- for(stri = strl.begin(); stri != strl.end(); ++stri) {
- if(!(*stri).startsWith("/LIBPATH:"))
- (*stri).prepend("/LIBPATH:");
- }
- project->values("MSVCPROJ_LFLAGS") += strl;
- }
- project->values("MSVCPROJ_CXXFLAGS") += project->values("QMAKE_CXXFLAGS");
QStringList &incs = project->values("INCLUDEPATH");
for(QStringList::Iterator incit = incs.begin(); incit != incs.end(); ++incit) {
QString inc = (*incit);
@@ -1542,9 +1506,6 @@ void VcprojGenerator::initOld()
project->values("MSVCPROJ_COPY_DLL_DESC").append(deststr);
}
- if (!project->values("DEF_FILE").isEmpty())
- project->values("MSVCPROJ_LFLAGS").append("/DEF:"+project->first("DEF_FILE"));
-
project->values("QMAKE_INTERNAL_PRL_LIBS") << "MSVCPROJ_LIBS";
// Verbose output if "-d -d"...
@@ -1554,6 +1515,11 @@ void VcprojGenerator::initOld()
// ------------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------------
+VCProjectWriter *VcprojGenerator::createProjectWriter()
+{
+ return new VCProjectWriter;
+}
+
QString VcprojGenerator::replaceExtraCompilerVariables(const QString &var, const QStringList &in, const QStringList &out)
{
QString ret = MakefileGenerator::replaceExtraCompilerVariables(var, in, out);
@@ -1572,8 +1538,6 @@ QString VcprojGenerator::replaceExtraCompilerVariables(const QString &var, const
return ret;
}
-
-
bool VcprojGenerator::openOutput(QFile &file, const QString &/*build*/) const
{
QString outdir;
@@ -1625,7 +1589,6 @@ QString VcprojGenerator::findTemplate(QString file)
return ret;
}
-
void VcprojGenerator::processPrlVariable(const QString &var, const QStringList &l)
{
if(var == "QMAKE_PRL_DEFINES") {
@@ -1644,9 +1607,8 @@ void VcprojGenerator::outputVariables()
#if 0
qDebug("Generator: MSVC.NET: List of current variables:");
for(QMap<QString, QStringList>::ConstIterator it = project->variables().begin(); it != project->variables().end(); ++it)
- qDebug("Generator: MSVC.NET: %s => %s", it.key().toLatin1().constData(), it.data().join(" | ").toLatin1().constData());
+ qDebug("Generator: MSVC.NET: %s => %s", qPrintable(it.key()), qPrintable(it.value().join(" | ")));
#endif
}
QT_END_NAMESPACE
-
diff --git a/qmake/generators/win32/msvc_vcproj.h b/qmake/generators/win32/msvc_vcproj.h
index 8f028a1..a603500 100644
--- a/qmake/generators/win32/msvc_vcproj.h
+++ b/qmake/generators/win32/msvc_vcproj.h
@@ -78,8 +78,10 @@ public:
QMap<QString, QStringList> extraCompilerSources;
QMap<QString, QStringList> extraCompilerOutputs;
bool usePCH;
+ VCProjectWriter *projectWriter;
protected:
+ virtual VCProjectWriter *createProjectWriter();
virtual bool doDepends() const { return false; } //never necesary
virtual void processSources() { filterIncludedFiles("SOURCES"); filterIncludedFiles("GENERATED_SOURCES"); }
virtual QString replaceExtraCompilerVariables(const QString &, const QStringList &, const QStringList &);
@@ -135,9 +137,6 @@ private:
friend class VCFilter;
};
-inline VcprojGenerator::~VcprojGenerator()
-{ }
-
inline QString VcprojGenerator::defaultMakefile() const
{
return project->first("TARGET") + project->first("VCPROJ_EXTENSION");
diff --git a/qmake/generators/win32/msvc_vcxproj.cpp b/qmake/generators/win32/msvc_vcxproj.cpp
index f68a435..7ba0c65 100644
--- a/qmake/generators/win32/msvc_vcxproj.cpp
+++ b/qmake/generators/win32/msvc_vcxproj.cpp
@@ -64,773 +64,10 @@ QT_BEGIN_NAMESPACE
VcxprojGenerator::VcxprojGenerator() : VcprojGenerator()
{
}
-bool VcxprojGenerator::writeMakefile(QTextStream &t)
-{
- initProject(); // Fills the whole project with proper data
-
- // Generate solution file
- if(project->first("TEMPLATE") == "vcsubdirs") {
- if (!project->isActiveConfig("build_pass")) {
- debug_msg(1, "Generator: MSVC.NET: Writing solution file");
- writeSubDirs(t);
- } else {
- debug_msg(1, "Generator: MSVC.NET: Not writing solution file for build_pass configs");
- }
- return true;
- } else
- // Generate single configuration project file
- if (project->first("TEMPLATE") == "vcapp" ||
- project->first("TEMPLATE") == "vclib") {
- if(!project->isActiveConfig("build_pass")) {
- debug_msg(1, "Generator: MSVC.NET: Writing single configuration project file");
- XmlOutput xmlOut(t);
- xmlOut << vcxProject;
- }
- return true;
- }
- return project->isActiveConfig("build_pass");
-}
-
-
-void VcxprojGenerator::initProject()
-{
- // Initialize XML sub elements
- // - Do this first since project elements may need
- // - to know of certain configuration options
- initConfiguration();
- initRootFiles();
- initSourceFiles();
- initHeaderFiles();
- initGeneratedFiles();
- initLexYaccFiles();
- initTranslationFiles();
- initFormFiles();
- initResourceFiles();
- initExtraCompilerOutputs();
-
- // Own elements -----------------------------
- vcxProject.Name = unescapeFilePath(project->first("QMAKE_ORIG_TARGET"));
-
- vcxProject.Keyword = project->first("VCPROJ_KEYWORD");
- if (project->isEmpty("CE_SDK") || project->isEmpty("CE_ARCH")) {
- vcxProject.PlatformName = vcxProject.Configuration.idl.TargetEnvironment;
- if ( vcxProject.Configuration.idl.TargetEnvironment.isEmpty() )
- vcxProject.PlatformName = "Win32";
- } else {
- vcxProject.PlatformName = project->values("CE_SDK").join(" ") + " (" + project->first("CE_ARCH") + ")";
- }
- // These are not used by Qt, but may be used by customers
- vcxProject.SccProjectName = project->first("SCCPROJECTNAME");
- vcxProject.SccLocalPath = project->first("SCCLOCALPATH");
- vcxProject.flat_files = project->isActiveConfig("flat");
-}
-
-
-void VcxprojGenerator::initConfiguration()
-{
- // Initialize XML sub elements
- // - Do this first since main configuration elements may need
- // - to know of certain compiler/linker options
- VCXConfiguration &conf = vcxProject.Configuration;
-
- initCompilerTool();
-
- // Only on configuration per build
- bool isDebug = project->isActiveConfig("debug");
-
- if(projectTarget == StaticLib)
- initLibrarianTool();
- else {
- conf.linker.GenerateDebugInformation = isDebug ? _True : _False;
- initLinkerTool();
- }
- initResourceTool();
- initIDLTool();
-
- // Own elements -----------------------------
- QString temp = project->first("BuildBrowserInformation");
- switch (projectTarget) {
- case SharedLib:
- conf.ConfigurationType = "DynamicLibrary";
- break;
- case StaticLib:
- conf.ConfigurationType = "StaticLibrary";
- break;
- case Application:
- default:
- conf.ConfigurationType = "Application";
- break;
- }
-
- conf.OutputDirectory = project->first("DESTDIR");
-
- if(conf.OutputDirectory.isEmpty())
- conf.OutputDirectory = ".\\";
-
- if(!conf.OutputDirectory.endsWith("\\"))
- conf.OutputDirectory += '\\';
-
- // The target name could have been changed.
- conf.TargetName = project->first("TARGET");
- if ( !conf.TargetName.isEmpty() && !project->first("TARGET_VERSION_EXT").isEmpty() && project->isActiveConfig("shared"))
- conf.TargetName.append(project->first("TARGET_VERSION_EXT"));
-
- conf.Name = project->values("BUILD_NAME").join(" ");
- if (conf.Name.isEmpty())
- conf.Name = isDebug ? "Debug" : "Release";
- conf.ConfigurationName = conf.Name;
- if (project->isEmpty("CE_SDK") || project->isEmpty("CE_ARCH")) {
- conf.Name += (conf.idl.TargetEnvironment == "Win64" ? "|Win64" : "|Win32");
- } else {
- conf.Name += "|" + project->values("CE_SDK").join(" ") + " (" + project->first("CE_ARCH") + ")";
- }
- conf.ATLMinimizesCRunTimeLibraryUsage = (project->first("ATLMinimizesCRunTimeLibraryUsage").isEmpty() ? _False : _True);
- conf.BuildBrowserInformation = triState(temp.isEmpty() ? (short)unset : temp.toShort());
- temp = project->first("CharacterSet");
- if (!temp.isEmpty())
- {
- switch (charSet(temp.toShort())) {
-
- case charSetMBCS:
- conf.CharacterSet = "MultiByte";
- break;
- case charSetUnicode:
- conf.CharacterSet = "Unicode";
- break;
- case charSetNotSet:
- default:
- conf.CharacterSet = "NotSet";
- break;
- }
- conf.CharacterSet = charSet(temp.isEmpty() ? (short)charSetNotSet : temp.toShort());
- }
- conf.DeleteExtensionsOnClean = project->first("DeleteExtensionsOnClean");
- conf.ImportLibrary = conf.linker.ImportLibrary;
- conf.IntermediateDirectory = project->first("OBJECTS_DIR");
- //conf.OutputDirectory = ".";
- conf.PrimaryOutput = project->first("PrimaryOutput");
- conf.WholeProgramOptimization = conf.compiler.WholeProgramOptimization;
- temp = project->first("UseOfATL");
- if(!temp.isEmpty())
- {
- switch (useOfATL(temp.toShort())) {
-
- case useATLStatic:
- conf.UseOfATL = "Static";
- break;
- case useATLDynamic:
- conf.UseOfATL = "Dynamic";
- break;
- case useATLNotSet:
- default:
- conf.UseOfATL = "false";
- break;
- }
- }
- temp = project->first("UseOfMfc");
- if(!temp.isEmpty())
- {
- switch (useOfMfc(temp.toShort())) {
-
- case useMfcStatic:
- conf.UseOfMfc = "Static";
- break;
- case useMfcDynamic:
- conf.UseOfMfc = "Dynamic";
- break;
- case useMfcStdWin:
- default:
- conf.UseOfMfc = "false";
- break;
- }
- }
-
- // Configuration does not need parameters from
- // these sub XML items;
- initCustomBuildTool();
- initPreBuildEventTools();
- initPostBuildEventTools();
- // Only deploy for CE projects
- if (!project->isEmpty("CE_SDK") && !project->isEmpty("CE_ARCH"))
- initDeploymentTool();
- initPreLinkEventTools();
-
- // Set definite values in both configurations
- if (isDebug) {
- conf.compiler.PreprocessorDefinitions.removeAll("NDEBUG");
- } else {
- conf.compiler.PreprocessorDefinitions += "NDEBUG";
- }
-}
-
-
-void VcxprojGenerator::initCompilerTool()
-{
- QString placement = project->first("OBJECTS_DIR");
- if(placement.isEmpty())
- placement = ".\\";
-
- VCXConfiguration &conf = vcxProject.Configuration;
- conf.compiler.AssemblerListingLocation = placement ;
- conf.compiler.ProgramDataBaseFileName = ".\\" ;
- conf.compiler.ObjectFileName = placement ;
- conf.compiler.ExceptionHandling = "false";
- // PCH
- if (usePCH) {
- conf.compiler.PrecompiledHeader = "Use";
- conf.compiler.PrecompiledHeaderOutputFile = "$(IntDir)\\" + precompPch;
- conf.compiler.PrecompiledHeaderFile = project->first("PRECOMPILED_HEADER");
- conf.compiler.ForcedIncludeFiles = project->values("PRECOMPILED_HEADER");
- conf.compiler.PreprocessToFile = _False;
- conf.compiler.PreprocessSuppressLineNumbers = _False;
- // Minimal build option triggers an Internal Compiler Error
- // when used in conjunction with /FI and /Yu, so remove it
- project->values("QMAKE_CFLAGS_DEBUG").removeAll("-Gm");
- project->values("QMAKE_CFLAGS_DEBUG").removeAll("/Gm");
- project->values("QMAKE_CXXFLAGS_DEBUG").removeAll("-Gm");
- project->values("QMAKE_CXXFLAGS_DEBUG").removeAll("/Gm");
- }
-
- conf.compiler.parseOptions(project->values("QMAKE_CXXFLAGS"));
- if(project->isActiveConfig("debug")){
- // Debug version
- if((projectTarget == Application) || (projectTarget == StaticLib))
- conf.compiler.parseOptions(project->values("QMAKE_CXXFLAGS_MT_DBG"));
- else
- conf.compiler.parseOptions(project->values("QMAKE_CXXFLAGS_MT_DLLDBG"));
- } else {
- // Release version
- conf.compiler.PreprocessorDefinitions += "QT_NO_DEBUG";
- conf.compiler.PreprocessorDefinitions += "NDEBUG";
- if((projectTarget == Application) || (projectTarget == StaticLib))
- conf.compiler.parseOptions(project->values("QMAKE_CXXFLAGS_MT"));
- else
- conf.compiler.parseOptions(project->values("QMAKE_CXXFLAGS_MT_DLL"));
- }
-
- // Common for both release and debug
- if(project->isActiveConfig("windows"))
- conf.compiler.PreprocessorDefinitions += project->values("MSVCPROJ_WINCONDEF");
-
- // Can this be set for ALL configs?
- // If so, use qmake.conf!
- if(projectTarget == SharedLib)
- conf.compiler.PreprocessorDefinitions += "_WINDOWS";
-
- conf.compiler.PreprocessorDefinitions += project->values("DEFINES");
- conf.compiler.PreprocessorDefinitions += project->values("PRL_EXPORT_DEFINES");
- conf.compiler.parseOptions(project->values("MSVCPROJ_INCPATH"));
-}
-
-void VcxprojGenerator::initLinkerTool()
-{
- findLibraries(); // Need to add the highest version of the libs
- VCXConfiguration &conf = vcxProject.Configuration;
- conf.linker.parseOptions(project->values("MSVCPROJ_LFLAGS"));
-
- foreach(QString libs, project->values("MSVCPROJ_LIBS")) {
- if (libs.left(9).toUpper() == "/LIBPATH:") {
- QStringList l = QStringList(libs);
- conf.linker.parseOptions(l);
- } else {
- conf.linker.AdditionalDependencies += libs;
- }
- }
-
- switch (projectTarget) {
- case Application:
- conf.linker.OutputFile = project->first("DESTDIR");
- break;
- case SharedLib:
- conf.linker.parseOptions(project->values("MSVCPROJ_LIBOPTIONS"));
- conf.linker.OutputFile = project->first("DESTDIR");
- break;
- case StaticLib: //unhandled - added to remove warnings..
- break;
- }
-
- if(conf.linker.OutputFile.isEmpty())
- conf.linker.OutputFile = ".\\";
-
- if(!conf.linker.OutputFile.endsWith("\\"))
- conf.linker.OutputFile += '\\';
-
- conf.linker.OutputFile += project->first("MSVCPROJ_TARGET");
-
- if(project->isActiveConfig("dll")){
- conf.linker.parseOptions(project->values("QMAKE_LFLAGS_QT_DLL"));
- }
-}
-
-void VcxprojGenerator::initResourceTool()
-{
- VCXConfiguration &conf = vcxProject.Configuration;
- conf.resource.PreprocessorDefinitions = conf.compiler.PreprocessorDefinitions;
-
- // We need to add _DEBUG for the debug version of the project, since the normal compiler defines
- // do not contain it. (The compiler defines this symbol automatically, which is wy we don't need
- // to add it for the compiler) However, the resource tool does not do this.
- if(project->isActiveConfig("debug"))
- conf.resource.PreprocessorDefinitions += "_DEBUG";
- if(project->isActiveConfig("staticlib"))
- conf.resource.ResourceOutputFileName = project->first("DESTDIR") + "/$(InputName).res";
-}
-
-
-void VcxprojGenerator::initPostBuildEventTools()
-{
- VCXConfiguration &conf = vcxProject.Configuration;
- if(!project->values("QMAKE_POST_LINK").isEmpty()) {
- QString cmdline = var("QMAKE_POST_LINK");
- conf.postBuild.CommandLine = cmdline;
- conf.postBuild.Description = cmdline;
- conf.postBuild.UseInBuild = _True;
- }
-
- QString signature = !project->isEmpty("SIGNATURE_FILE") ? var("SIGNATURE_FILE") : var("DEFAULT_SIGNATURE");
- bool useSignature = !signature.isEmpty() && !project->isActiveConfig("staticlib") &&
- !project->isEmpty("CE_SDK") && !project->isEmpty("CE_ARCH");
- if(useSignature) {
- conf.postBuild.CommandLine.prepend(QLatin1String("signtool sign /F ") + signature + " \"$(TargetPath)\"\n" +
- (!conf.postBuild.CommandLine.isEmpty() ? " && " : ""));
- conf.postBuild.UseInBuild = _True;
- }
-
- if(!project->values("MSVCPROJ_COPY_DLL").isEmpty()) {
- if(!conf.postBuild.CommandLine.isEmpty())
- conf.postBuild.CommandLine += " && ";
- conf.postBuild.Description += var("MSVCPROJ_COPY_DLL_DESC");
- conf.postBuild.CommandLine += var("MSVCPROJ_COPY_DLL");
- conf.postBuild.UseInBuild = _True;
- }
-}
-
-
-void VcxprojGenerator::initDeploymentTool()
-{
- VCXConfiguration &conf = vcxProject.Configuration;
- QString targetPath = project->values("deploy.path").join(" ");
- if (targetPath.isEmpty())
- targetPath = QString("%CSIDL_PROGRAM_FILES%\\") + project->first("TARGET");
- if (targetPath.endsWith("/") || targetPath.endsWith("\\"))
- targetPath.chop(1);
-
- // Only deploy Qt libs for shared build
- if (!project->values("QMAKE_QT_DLL").isEmpty()) {
- QStringList& arg = project->values("MSVCPROJ_LIBS");
- for (QStringList::ConstIterator it = arg.constBegin(); it != arg.constEnd(); ++it) {
- if (it->contains(project->first("QMAKE_LIBDIR"))) {
- QString dllName = *it;
-
- if (dllName.contains(QLatin1String("QAxContainer"))
- || dllName.contains(QLatin1String("qtmain"))
- || dllName.contains(QLatin1String("QtUiTools")))
- continue;
- dllName.replace(QLatin1String(".lib") , QLatin1String(".dll"));
- QFileInfo info(dllName);
- conf.deployment.AdditionalFiles += info.fileName()
- + "|" + QDir::toNativeSeparators(info.absolutePath())
- + "|" + targetPath
- + "|0;";
- }
- }
- }
-
- // C-runtime deployment
- QString runtime = project->values("QT_CE_C_RUNTIME").join(QLatin1String(" "));
- if (!runtime.isEmpty() && (runtime != QLatin1String("no"))) {
- QString runtimeVersion = QLatin1String("msvcr");
- QString mkspec = project->first("QMAKESPEC");
- // If no .qmake.cache has been found, we fallback to the original mkspec
- if (mkspec.isEmpty())
- mkspec = project->first("QMAKESPEC_ORIGINAL");
-
- if (!mkspec.isEmpty()) {
- if (mkspec.endsWith("2010"))
- runtimeVersion.append("100");
- else if (mkspec.endsWith("2008"))
- runtimeVersion.append("90");
- else
- runtimeVersion.append("80");
- if (project->isActiveConfig("debug"))
- runtimeVersion.append("d");
- runtimeVersion.append(".dll");
-
- if (runtime == "yes") {
- // Auto-find C-runtime
- QString vcInstallDir = qgetenv("VCINSTALLDIR");
- if (!vcInstallDir.isEmpty()) {
- vcInstallDir += "\\ce\\dll\\";
- vcInstallDir += project->values("CE_ARCH").join(QLatin1String(" "));
- if (!QFileInfo(vcInstallDir + QDir::separator() + runtimeVersion).exists())
- runtime.clear();
- else
- runtime = vcInstallDir;
- }
- }
- }
-
- if (!runtime.isEmpty() && runtime != QLatin1String("yes")) {
- conf.deployment.AdditionalFiles += runtimeVersion
- + "|" + QDir::toNativeSeparators(runtime)
- + "|" + targetPath
- + "|0;";
- }
- }
-
- // foreach item in DEPLOYMENT
- foreach(QString item, project->values("DEPLOYMENT")) {
- // get item.path
- QString devicePath = project->first(item + ".path");
- if (devicePath.isEmpty())
- devicePath = targetPath;
- // check if item.path is relative (! either /,\ or %)
- if (!(devicePath.at(0) == QLatin1Char('/')
- || devicePath.at(0) == QLatin1Char('\\')
- || devicePath.at(0) == QLatin1Char('%'))) {
- // create output path
- devicePath = Option::fixPathToLocalOS(QDir::cleanPath(targetPath + QLatin1Char('\\') + devicePath));
- }
- // foreach d in item.sources
- foreach(QString source, project->values(item + ".sources")) {
- QString itemDevicePath = devicePath;
- source = Option::fixPathToLocalOS(source);
- QString nameFilter;
- QFileInfo info(source);
- QString searchPath;
- if (info.isDir()) {
- nameFilter = QLatin1String("*");
- itemDevicePath += "\\" + info.fileName();
- searchPath = info.absoluteFilePath();
- } else {
- nameFilter = source.split('\\').last();
- searchPath = info.absolutePath();
- }
-
- int pathSize = searchPath.size();
- QDirIterator iterator(searchPath, QStringList() << nameFilter
- , QDir::Files | QDir::NoDotAndDotDot | QDir::NoSymLinks
- , QDirIterator::Subdirectories);
- // foreach dirIterator-entry in d
- while(iterator.hasNext()) {
- iterator.next();
- QString absoluteItemPath = Option::fixPathToLocalOS(QFileInfo(iterator.filePath()).absolutePath());
- // Identify if it is just another subdir
- int diffSize = absoluteItemPath.size() - pathSize;
- // write out rules
- conf.deployment.AdditionalFiles += iterator.fileName()
- + "|" + absoluteItemPath
- + "|" + itemDevicePath + (diffSize ? (absoluteItemPath.right(diffSize)) : QLatin1String(""))
- + "|0;";
- }
- }
- }
-}
-
-void VcxprojGenerator::initPreLinkEventTools()
-{
- VCXConfiguration &conf = vcxProject.Configuration;
- if(!project->values("QMAKE_PRE_LINK").isEmpty()) {
- QString cmdline = var("QMAKE_PRE_LINK");
- conf.preLink.Description = cmdline;
- conf.preLink.CommandLine = cmdline;
- conf.preLink.UseInBuild = _True;
- }
-}
-
-void VcxprojGenerator::initRootFiles()
-{
- vcxProject.RootFiles.addFiles(project->values("RC_FILE"));
- vcxProject.RootFiles.Project = this;
- vcxProject.RootFiles.Config = &(vcxProject.Configuration);
- vcxProject.RootFiles.CustomBuild = none;
-}
-
-void VcxprojGenerator::initSourceFiles()
-{
- vcxProject.SourceFiles.Name = "Source Files";
- vcxProject.SourceFiles.Filter = "cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx";
- vcxProject.SourceFiles.Guid = _GUIDSourceFiles;
-
- vcxProject.SourceFiles.addFiles(project->values("SOURCES"));
-
- vcxProject.SourceFiles.Project = this;
- vcxProject.SourceFiles.Config = &(vcxProject.Configuration);
- vcxProject.SourceFiles.CustomBuild = none;
-}
-
-void VcxprojGenerator::initHeaderFiles()
-{
- vcxProject.HeaderFiles.Name = "Header Files";
- vcxProject.HeaderFiles.Filter = "h;hpp;hxx;hm;inl;inc;xsd";
- vcxProject.HeaderFiles.Guid = _GUIDHeaderFiles;
-
- vcxProject.HeaderFiles.addFiles(project->values("HEADERS"));
- if (usePCH) // Generated PCH cpp file
- vcxProject.HeaderFiles.addFile(precompH);
-
- vcxProject.HeaderFiles.Project = this;
- vcxProject.HeaderFiles.Config = &(vcxProject.Configuration);
-}
-
-void VcxprojGenerator::initGeneratedFiles()
-{
- vcxProject.GeneratedFiles.Name = "Generated Files";
- vcxProject.GeneratedFiles.Filter = "cpp;c;cxx;moc;h;def;odl;idl;res";
- vcxProject.GeneratedFiles.Guid = _GUIDGeneratedFiles;
-
- // ### These cannot have CustomBuild (mocSrc)!!
- vcxProject.GeneratedFiles.addFiles(project->values("GENERATED_SOURCES"));
- vcxProject.GeneratedFiles.addFiles(project->values("GENERATED_FILES"));
- vcxProject.GeneratedFiles.addFiles(project->values("IDLSOURCES"));
- vcxProject.GeneratedFiles.addFiles(project->values("RES_FILE"));
- vcxProject.GeneratedFiles.addFiles(project->values("QMAKE_IMAGE_COLLECTION")); // compat
- if(!extraCompilerOutputs.isEmpty())
- vcxProject.GeneratedFiles.addFiles(extraCompilerOutputs.keys());
-
- vcxProject.GeneratedFiles.Project = this;
- vcxProject.GeneratedFiles.Config = &(vcxProject.Configuration);
-}
-
-void VcxprojGenerator::initLexYaccFiles()
-{
- vcxProject.LexYaccFiles.Name = "Lex / Yacc Files";
- vcxProject.LexYaccFiles.ParseFiles = _False;
- vcxProject.LexYaccFiles.Filter = "l;y";
- vcxProject.LexYaccFiles.Guid = _GUIDLexYaccFiles;
-
- vcxProject.LexYaccFiles.addFiles(project->values("LEXSOURCES"));
- vcxProject.LexYaccFiles.addFiles(project->values("YACCSOURCES"));
-
- vcxProject.LexYaccFiles.Project = this;
- vcxProject.LexYaccFiles.Config = &(vcxProject.Configuration);
- vcxProject.LexYaccFiles.CustomBuild = lexyacc;
-}
-
-void VcxprojGenerator::initTranslationFiles()
-{
- vcxProject.TranslationFiles.Name = "Translation Files";
- vcxProject.TranslationFiles.ParseFiles = _False;
- vcxProject.TranslationFiles.Filter = "ts;xlf";
- vcxProject.TranslationFiles.Guid = _GUIDTranslationFiles;
-
- vcxProject.TranslationFiles.addFiles(project->values("TRANSLATIONS"));
-
- vcxProject.TranslationFiles.Project = this;
- vcxProject.TranslationFiles.Config = &(vcxProject.Configuration);
- vcxProject.TranslationFiles.CustomBuild = none;
-}
-
-
-void VcxprojGenerator::initFormFiles()
-{
- vcxProject.FormFiles.Name = "Form Files";
- vcxProject.FormFiles.ParseFiles = _False;
- vcxProject.FormFiles.Filter = "ui";
- vcxProject.FormFiles.Guid = _GUIDFormFiles;
-
- vcxProject.FormFiles.addFiles(project->values("FORMS"));
- vcxProject.FormFiles.addFiles(project->values("FORMS3"));
-
- vcxProject.FormFiles.Project = this;
- vcxProject.FormFiles.Config = &(vcxProject.Configuration);
- vcxProject.FormFiles.CustomBuild = none;
-}
-
-
-void VcxprojGenerator::initResourceFiles()
-{
- vcxProject.ResourceFiles.Name = "Resource Files";
- vcxProject.ResourceFiles.ParseFiles = _False;
- vcxProject.ResourceFiles.Filter = "qrc;*"; //"rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;ts;xlf;qrc";
- vcxProject.ResourceFiles.Guid = _GUIDResourceFiles;
-
- // Bad hack, please look away -------------------------------------
- QString rcc_dep_cmd = project->values("rcc.depend_command").join(" ");
- if(!rcc_dep_cmd.isEmpty()) {
- QStringList qrc_files = project->values("RESOURCES");
- QStringList deps;
- if(!qrc_files.isEmpty()) {
- for (int i = 0; i < qrc_files.count(); ++i) {
- char buff[256];
- QString dep_cmd = replaceExtraCompilerVariables(rcc_dep_cmd, qrc_files.at(i),"");
-
- dep_cmd = Option::fixPathToLocalOS(dep_cmd, true, false);
- if(canExecute(dep_cmd)) {
- if(FILE *proc = QT_POPEN(dep_cmd.toLatin1().constData(), "r")) {
- QString indeps;
- while(!feof(proc)) {
- int read_in = (int)fread(buff, 1, 255, proc);
- if(!read_in)
- break;
- indeps += QByteArray(buff, read_in);
- }
- QT_PCLOSE(proc);
- if(!indeps.isEmpty())
- deps += fileFixify(indeps.replace('\n', ' ').simplified().split(' '));
- }
- }
- }
- vcxProject.ResourceFiles.addFiles(deps);
- }
- }
- // You may look again --------------------------------------------
-
- vcxProject.ResourceFiles.addFiles(project->values("RESOURCES"));
- vcxProject.ResourceFiles.addFiles(project->values("IMAGES"));
-
- vcxProject.ResourceFiles.Project = this;
- vcxProject.ResourceFiles.Config = &(vcxProject.Configuration);
- vcxProject.ResourceFiles.CustomBuild = none;
-}
-
-void VcxprojGenerator::initExtraCompilerOutputs()
-{
- QStringList otherFilters;
- otherFilters << "FORMS"
- << "FORMS3"
- << "GENERATED_FILES"
- << "GENERATED_SOURCES"
- << "HEADERS"
- << "IDLSOURCES"
- << "IMAGES"
- << "LEXSOURCES"
- << "QMAKE_IMAGE_COLLECTION"
- << "RC_FILE"
- << "RESOURCES"
- << "RES_FILE"
- << "SOURCES"
- << "TRANSLATIONS"
- << "YACCSOURCES";
- const QStringList &quc = project->values("QMAKE_EXTRA_COMPILERS");
- for(QStringList::ConstIterator it = quc.begin(); it != quc.end(); ++it) {
- QString extracompilerName = project->first((*it) + ".name");
- if (extracompilerName.isEmpty())
- extracompilerName = (*it);
-
- // Create an extra compiler filter and add the files
- VCXFilter extraCompile;
- extraCompile.Name = extracompilerName;
- extraCompile.ParseFiles = _False;
- extraCompile.Filter = "";
- extraCompile.Guid = QString(_GUIDExtraCompilerFiles) + "-" + (*it);
-
- // If the extra compiler has a variable_out set the output file
- // is added to an other file list, and does not need its own..
- bool addOnInput = hasBuiltinCompiler(project->first((*it) + ".output"));
- QString tmp_other_out = project->first((*it) + ".variable_out");
- if (!tmp_other_out.isEmpty() && !addOnInput)
- continue;
-
- if (!addOnInput) {
- QString tmp_out = project->first((*it) + ".output");
- if (project->values((*it) + ".CONFIG").indexOf("combine") != -1) {
- // Combined output, only one file result
- extraCompile.addFile(
- Option::fixPathToTargetOS(replaceExtraCompilerVariables(tmp_out, QString(), QString()), false));
- } else {
- // One output file per input
- QStringList tmp_in = project->values(project->first((*it) + ".input"));
- for (int i = 0; i < tmp_in.count(); ++i) {
- const QString &filename = tmp_in.at(i);
- if (extraCompilerSources.contains(filename))
- extraCompile.addFile(
- Option::fixPathToTargetOS(replaceExtraCompilerVariables(filename, tmp_out, QString()), false));
- }
- }
- } else {
- // In this case we the outputs have a built-in compiler, so we cannot add the custom
- // build steps there. So, we turn it around and add it to the input files instead,
- // provided that the input file variable is not handled already (those in otherFilters
- // are handled, so we avoid them).
- QStringList inputVars = project->values((*it) + ".input");
- foreach(QString inputVar, inputVars) {
- if (!otherFilters.contains(inputVar)) {
- QStringList tmp_in = project->values(inputVar);
- for (int i = 0; i < tmp_in.count(); ++i) {
- const QString &filename = tmp_in.at(i);
- if (extraCompilerSources.contains(filename))
- extraCompile.addFile(
- Option::fixPathToTargetOS(replaceExtraCompilerVariables(filename, QString(), QString()), false));
- }
- }
- }
- }
- extraCompile.Project = this;
- extraCompile.Config = &(vcxProject.Configuration);
- extraCompile.CustomBuild = none;
-
- vcxProject.ExtraCompilersFiles.append(extraCompile);
- }
-}
-
-
-
-bool VcxprojGenerator::writeProjectMakefile()
-{
- usePlatformDir();
- QTextStream t(&Option::output);
-
- // Check if all requirements are fulfilled
- if(!project->values("QMAKE_FAILED_REQUIREMENTS").isEmpty()) {
- fprintf(stderr, "Project file not generated because all requirements not met:\n\t%s\n",
- var("QMAKE_FAILED_REQUIREMENTS").toLatin1().constData());
- return true;
- }
-
- // Generate project file
- if(project->first("TEMPLATE") == "vcapp" ||
- project->first("TEMPLATE") == "vclib") {
- if (!mergedProjects.count()) {
- warn_msg(WarnLogic, "Generator: MSVC.NET: no single configuration created, cannot output project!");
- return false;
- }
-
- debug_msg(1, "Generator: MSVC.NET: Writing project file");
- VCXProject mergedProject;
- for (int i = 0; i < mergedProjects.count(); ++i) {
- VCXProjectSingleConfig *singleProject = &(mergedProjects.at(i)->vcxProject);
- mergedProject.SingleProjects += *singleProject;
- for (int j = 0; j < singleProject->ExtraCompilersFiles.count(); ++j) {
- const QString &compilerName = singleProject->ExtraCompilersFiles.at(j).Name;
- if (!mergedProject.ExtraCompilers.contains(compilerName))
- mergedProject.ExtraCompilers += compilerName;
- }
- }
-
- if(mergedProjects.count() > 1 &&
- mergedProjects.at(0)->vcxProject.Name ==
- mergedProjects.at(1)->vcxProject.Name)
- mergedProjects.at(0)->writePrlFile();
- mergedProject.Name = unescapeFilePath(project->first("QMAKE_ORIG_TARGET"));
- mergedProject.Version = mergedProjects.at(0)->vcxProject.Version;
- mergedProject.ProjectGUID = project->isEmpty("QMAKE_UUID") ? getProjectUUID().toString().toUpper() : project->first("QMAKE_UUID");
- mergedProject.Keyword = project->first("VCPROJ_KEYWORD");
- mergedProject.SccProjectName = mergedProjects.at(0)->vcxProject.SccProjectName;
- mergedProject.SccLocalPath = mergedProjects.at(0)->vcxProject.SccLocalPath;
- mergedProject.PlatformName = mergedProjects.at(0)->vcxProject.PlatformName;
-
- XmlOutput xmlOut(t);
- xmlOut << mergedProject;
- return true;
- } else if(project->first("TEMPLATE") == "vcsubdirs") {
- return writeMakefile(t);
- }
- return false;
-}
-
-
-
-bool VcxprojGenerator::mergeBuildProject(MakefileGenerator *other)
+VCProjectWriter *VcxprojGenerator::createProjectWriter()
{
- VcxprojGenerator *otherVC = static_cast<VcxprojGenerator*>(other);
- if (!otherVC) {
- warn_msg(WarnLogic, "VcxprojGenerator: Cannot merge other types of projects! (ignored)");
- return false;
- }
- mergedProjects += otherVC;
- return true;
+ return new VCXProjectWriter;
}
QT_END_NAMESPACE
diff --git a/qmake/generators/win32/msvc_vcxproj.h b/qmake/generators/win32/msvc_vcxproj.h
index 8a183e9..45e6b95 100644
--- a/qmake/generators/win32/msvc_vcxproj.h
+++ b/qmake/generators/win32/msvc_vcxproj.h
@@ -50,45 +50,15 @@ QT_BEGIN_NAMESPACE
class VcxprojGenerator : public VcprojGenerator
{
- bool writeMakefile(QTextStream &);
- bool writeProjectMakefile();
-
public:
VcxprojGenerator();
~VcxprojGenerator();
protected:
- virtual bool supportsMetaBuild() { return true; }
- virtual bool supportsMergedBuilds() { return true; }
- virtual bool mergeBuildProject(MakefileGenerator *other);
-
- virtual void initProject();
-
- void initConfiguration();
- void initCompilerTool();
- void initDeploymentTool();
- void initLinkerTool();
- void initPreLinkEventTools();
- void initPostBuildEventTools();
- void initRootFiles();
- void initResourceTool();
- void initSourceFiles();
- void initHeaderFiles();
- void initGeneratedFiles();
- void initTranslationFiles();
- void initFormFiles();
- void initResourceFiles();
- void initLexYaccFiles();
- void initExtraCompilerOutputs();
-
- // Used for single project
- VCXProjectSingleConfig vcxProject;
-
- // Holds all configurations for glue (merged) project
- QList<VcxprojGenerator*> mergedProjects;
+ virtual VCProjectWriter *createProjectWriter();
private:
- friend class VCXFilter;
+ friend class VCFilter;
};
diff --git a/qmake/option.cpp b/qmake/option.cpp
index 8db3797..27e7c18 100644
--- a/qmake/option.cpp
+++ b/qmake/option.cpp
@@ -621,7 +621,7 @@ Option::fixString(QString string, uchar flags)
static QHash<FixStringCacheKey, QString> *cache = 0;
if(!cache) {
cache = new QHash<FixStringCacheKey, QString>;
- qmakeAddCacheClear(qmakeDeleteCacheClear_QHashFixStringCacheKeyQString, (void**)&cache);
+ qmakeAddCacheClear(qmakeDeleteCacheClear<QHash<FixStringCacheKey, QString> >, (void**)&cache);
}
FixStringCacheKey cacheKey(string, flags);
if(cache->contains(cacheKey)) {
diff --git a/qmake/project.cpp b/qmake/project.cpp
index cb02923..29d4242 100644
--- a/qmake/project.cpp
+++ b/qmake/project.cpp
@@ -87,7 +87,7 @@ QMap<QString, ExpandFunc> qmake_expandFunctions()
static QMap<QString, ExpandFunc> *qmake_expand_functions = 0;
if(!qmake_expand_functions) {
qmake_expand_functions = new QMap<QString, ExpandFunc>;
- qmakeAddCacheClear(qmakeDeleteCacheClear_QMapStringInt, (void**)&qmake_expand_functions);
+ qmakeAddCacheClear(qmakeDeleteCacheClear<QMap<QString, ExpandFunc> >, (void**)&qmake_expand_functions);
qmake_expand_functions->insert("member", E_MEMBER);
qmake_expand_functions->insert("first", E_FIRST);
qmake_expand_functions->insert("last", E_LAST);
@@ -1631,7 +1631,7 @@ QMakeProject::doProjectInclude(QString file, uchar flags, QMap<QString, QStringL
if(!feature_roots) {
validateModes();
feature_roots = new QStringList(qmake_feature_paths(prop));
- qmakeAddCacheClear(qmakeDeleteCacheClear_QStringList, (void**)&feature_roots);
+ qmakeAddCacheClear(qmakeDeleteCacheClear<QStringList>, (void**)&feature_roots);
}
debug_msg(2, "Looking for feature '%s' in (%s)", file.toLatin1().constData(),
feature_roots->join("::").toLatin1().constData());
diff --git a/src/3rdparty/libconninet/src/dbusdispatcher.cpp b/src/3rdparty/libconninet/src/dbusdispatcher.cpp
index 7581982..f5b830a 100644
--- a/src/3rdparty/libconninet/src/dbusdispatcher.cpp
+++ b/src/3rdparty/libconninet/src/dbusdispatcher.cpp
@@ -31,7 +31,7 @@
namespace Maemo {
/*!
- \class DBusDispatcher
+ \class Maemo::DBusDispatcher
\brief DBusDispatcher is a class, which is able to send DBUS method call
messages and receive unicast signals from DBUS object.
diff --git a/src/3rdparty/phonon/CMakeLists.txt b/src/3rdparty/phonon/CMakeLists.txt
index ef7d6f5..fd6368c 100644
--- a/src/3rdparty/phonon/CMakeLists.txt
+++ b/src/3rdparty/phonon/CMakeLists.txt
@@ -94,7 +94,7 @@ if (CMAKE_COMPILER_IS_GNUCXX)
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_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON)
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})
diff --git a/src/3rdparty/phonon/phonon/mediacontroller.cpp b/src/3rdparty/phonon/phonon/mediacontroller.cpp
index 59fd5c7..9f651d6 100644
--- a/src/3rdparty/phonon/phonon/mediacontroller.cpp
+++ b/src/3rdparty/phonon/phonon/mediacontroller.cpp
@@ -216,14 +216,14 @@ void MediaController::setCurrentAudioChannel(const Phonon::AudioChannelDescripti
{
IFACE;
iface->interfaceCall(AddonInterface::AudioChannelInterface,
- AddonInterface::setCurrentAudioChannel, QList<QVariant>() << qVariantFromValue(stream));
+ AddonInterface::setCurrentAudioChannel, QList<QVariant>() << QVariant::fromValue(stream));
}
void MediaController::setCurrentSubtitle(const Phonon::SubtitleDescription &stream)
{
IFACE;
iface->interfaceCall(AddonInterface::SubtitleInterface,
- AddonInterface::setCurrentSubtitle, QList<QVariant>() << qVariantFromValue(stream));
+ AddonInterface::setCurrentSubtitle, QList<QVariant>() << QVariant::fromValue(stream));
}
#undef IFACE
diff --git a/src/3rdparty/phonon/phonon/phononnamespace.h b/src/3rdparty/phonon/phonon/phononnamespace.h
index ec42d51..eb899de 100644
--- a/src/3rdparty/phonon/phonon/phononnamespace.h
+++ b/src/3rdparty/phonon/phonon/phononnamespace.h
@@ -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
diff --git a/src/3rdparty/phonon/phonon/qsettingsgroup_p.h b/src/3rdparty/phonon/phonon/qsettingsgroup_p.h
index f28ecaa..f25b15e 100644
--- a/src/3rdparty/phonon/phonon/qsettingsgroup_p.h
+++ b/src/3rdparty/phonon/phonon/qsettingsgroup_p.h
@@ -54,7 +54,7 @@ class QSettingsGroup
template<typename T>
inline T value(const QString &key, const T &def) const
{
- return qvariant_cast<T>(value(key, qVariantFromValue(def)));
+ return qvariant_cast<T>(value(key, QVariant::fromValue(def)));
}
inline QVariant value(const QString &key, const QVariant &def) const
@@ -66,7 +66,7 @@ class QSettingsGroup
inline void setValue(const QString &key, const T &value)
{
Q_ASSERT(m_mutableSettings);
- m_mutableSettings->setValue(m_group + key, qVariantFromValue(value));
+ m_mutableSettings->setValue(m_group + key, QVariant::fromValue(value));
}
inline void removeEntry(const QString &key)
diff --git a/src/3rdparty/phonon/qt7/videowidget.mm b/src/3rdparty/phonon/qt7/videowidget.mm
index 736dcdf..c281e16 100644
--- a/src/3rdparty/phonon/qt7/videowidget.mm
+++ b/src/3rdparty/phonon/qt7/videowidget.mm
@@ -278,7 +278,7 @@ public:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glViewport(0, 0, GLsizei(w), GLsizei(h));
- gluOrtho2D(0, GLsizei(w), 0, GLsizei(h));
+ glOrtho(0, GLsizei(w), 0, GLsizei(h), -1, 1);
updateGL();
}
diff --git a/src/3rdparty/webkit/.tag b/src/3rdparty/webkit/.tag
index 0b414ab..d31a2b4 100644
--- a/src/3rdparty/webkit/.tag
+++ b/src/3rdparty/webkit/.tag
@@ -1 +1 @@
-e6e692bb056670e2781dd0bc473a60757ae53992
+72b1c38579ca1fdb3f242e29cd16e5bfb4925813
diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION
index f8403fb..62aa8ce 100644
--- a/src/3rdparty/webkit/VERSION
+++ b/src/3rdparty/webkit/VERSION
@@ -4,4 +4,4 @@ This is a snapshot of the Qt port of WebKit from
and has the sha1 checksum
- e6e692bb056670e2781dd0bc473a60757ae53992
+ 72b1c38579ca1fdb3f242e29cd16e5bfb4925813
diff --git a/src/3rdparty/webkit/WebCore/ChangeLog b/src/3rdparty/webkit/WebCore/ChangeLog
index 5189eb5..98d4d51 100644
--- a/src/3rdparty/webkit/WebCore/ChangeLog
+++ b/src/3rdparty/webkit/WebCore/ChangeLog
@@ -1,3 +1,50 @@
+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.
diff --git a/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp b/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp
index a39dc7a..7f5d37d 100644
--- a/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp
+++ b/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp
@@ -162,9 +162,11 @@ static JSRealType valueRealType(ExecState* exec, JSValue val)
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 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
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 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
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 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
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 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
// 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;
@@ -565,7 +567,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
if (qstring.mid(lastSlash + 1).contains(QLatin1Char('i')))
realRe.setCaseSensitivity(Qt::CaseInsensitive);
- ret = qVariantFromValue(realRe);
+ ret = QVariant::fromValue(realRe);
dist = 0;
} else {
qConvDebug() << "couldn't parse a JS regexp";
@@ -576,7 +578,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
QRegExp re(qstring);
if (re.isValid()) {
- ret = qVariantFromValue(re);
+ ret = QVariant::fromValue(re);
dist = 10;
}
}
@@ -588,7 +590,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
if (qtinst) {
if (qtinst->getObject()) {
qConvDebug() << "found instance, with object:" << (void*) qtinst->getObject();
- ret = qVariantFromValue(qtinst->getObject());
+ ret = QVariant::fromValue(qtinst->getObject());
qConvDebug() << ret;
dist = 0;
} else {
@@ -599,7 +601,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
}
} else if (type == Null) {
QObject* nullobj = 0;
- ret = qVariantFromValue(nullobj);
+ ret = QVariant::fromValue(nullobj);
dist = 0;
} else {
qConvDebug() << "previous type was not an object:" << type;
@@ -612,7 +614,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
if (qtinst) {
if (qtinst->getObject()) {
qConvDebug() << "found instance, with object:" << (void*) qtinst->getObject();
- ret = qVariantFromValue((void *)qtinst->getObject());
+ ret = QVariant::fromValue((void *)qtinst->getObject());
qConvDebug() << ret;
dist = 0;
} else {
@@ -622,7 +624,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
qConvDebug() << "wasn't a qtinstance";
}
} else if (type == Null) {
- ret = qVariantFromValue((void*)0);
+ ret = QVariant::fromValue((void*)0);
dist = 0;
} else if (type == Number) {
// I don't think that converting a double to a pointer is a wise
@@ -645,7 +647,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
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 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
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 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
// 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 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
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 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
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 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
// 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 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
}
// 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
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)
diff --git a/src/3rdparty/webkit/WebCore/platform/FileChooser.cpp b/src/3rdparty/webkit/WebCore/platform/FileChooser.cpp
index dd4fc0d..90dd567 100644
--- a/src/3rdparty/webkit/WebCore/platform/FileChooser.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/FileChooser.cpp
@@ -39,9 +39,11 @@ FileChooserClient::~FileChooserClient()
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::chooseFiles(const Vector<String>& filenames)
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();
}
diff --git a/src/3rdparty/webkit/WebCore/platform/FileChooser.h b/src/3rdparty/webkit/WebCore/platform/FileChooser.h
index 4028d41..e93b9ac 100644
--- a/src/3rdparty/webkit/WebCore/platform/FileChooser.h
+++ b/src/3rdparty/webkit/WebCore/platform/FileChooser.h
@@ -35,6 +35,7 @@
namespace WebCore {
+class FileChooser;
class Font;
class Icon;
@@ -44,7 +45,7 @@ public:
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 @@ private:
FileChooserClient* m_client;
Vector<String> m_filenames;
RefPtr<Icon> m_icon;
+ bool m_isInitializing;
};
} // namespace WebCore
diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp
index 88c7a1c..9de5c08 100644
--- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp
@@ -101,7 +101,7 @@ MediaPlayerPrivate::MediaPlayerPrivate(MediaPlayer* player)
// Make sure we get updates for each frame
m_videoWidget->installEventFilter(this);
- foreach (QWidget* widget, qFindChildren<QWidget*>(m_videoWidget))
+ foreach (QWidget* widget, m_videoWidget->findChildren<QWidget*>())
widget->installEventFilter(this);
connect(m_mediaObject, SIGNAL(stateChanged(Phonon::State,Phonon::State)),
diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.cpp
index 5db94a8..5004b67 100644
--- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.cpp
@@ -185,7 +185,7 @@ void MediaPlayerPrivate::load(const String& url)
// Don't set the header if there are no cookies.
// This prevents a warning from being emitted.
if (!cookies.isEmpty())
- request.setHeader(QNetworkRequest::CookieHeader, qVariantFromValue(cookies));
+ request.setHeader(QNetworkRequest::CookieHeader, QVariant::fromValue(cookies));
// Set the refferer, but not when requesting insecure content from a secure page
QUrl documentUrl = QUrl(QString(document->documentURI()));
diff --git a/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.mm b/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.mm
index 57d74ab..c8781a8 100644
--- a/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.mm
+++ b/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.mm
@@ -227,7 +227,10 @@ bool PluginView::platformStart()
#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));
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.cpp
index 14d126d..6a5c1e0 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.cpp
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.cpp
@@ -114,10 +114,10 @@ String RenderFileUploadControl::acceptTypes()
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 @@ void RenderFileUploadControl::paintObject(PaintInfo& paintInfo, int tx, int ty)
{
if (style()->visibility() != VISIBLE)
return;
+ ASSERT(m_fileChooser);
// Push a clip.
if (paintInfo.phase == PaintPhaseForeground || paintInfo.phase == PaintPhaseChildBlockBackgrounds) {
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.h b/src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.h
index a5f3367..25d2639 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.h
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.h
@@ -63,7 +63,7 @@ private:
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;
diff --git a/src/3rdparty/webkit/WebKit/qt/ChangeLog b/src/3rdparty/webkit/WebKit/qt/ChangeLog
index b2bff0c..5083ba5 100644
--- a/src/3rdparty/webkit/WebKit/qt/ChangeLog
+++ b/src/3rdparty/webkit/WebKit/qt/ChangeLog
@@ -1,3 +1,36 @@
+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.
diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
index 1cebef7..87e047e 100644
--- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
@@ -599,6 +599,13 @@ void EditorClientQt::setInputMethodState(bool active)
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 @@ void EditorClientQt::setInputMethodState(bool active)
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)
diff --git a/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc b/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc
index d3f5502..0335d46 100644
--- a/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc
+++ b/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc
@@ -1,6 +1,6 @@
/*!
\module QtWebKit
- \title QtWebKit Module
+ \title WebKit in Qt
\contentspage All Qt Modules
\previouspage QtSvg
\nextpage QtXml
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
index e584f97..dcae35f 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
@@ -306,7 +306,7 @@ public:
}
Q_INVOKABLE QObjectList myInvokableWithQObjectListArg(const QObjectList &lst) {
m_qtFunctionInvoked = 14;
- m_actuals << qVariantFromValue(lst);
+ m_actuals << QVariant::fromValue(lst);
return lst;
}
Q_INVOKABLE QVariant myInvokableWithVariantArg(const QVariant &v) {
@@ -321,38 +321,38 @@ public:
}
Q_INVOKABLE QList<int> myInvokableWithListOfIntArg(const QList<int> &lst) {
m_qtFunctionInvoked = 17;
- m_actuals << qVariantFromValue(lst);
+ m_actuals << QVariant::fromValue(lst);
return lst;
}
Q_INVOKABLE QObject* myInvokableWithQObjectStarArg(QObject* obj) {
m_qtFunctionInvoked = 18;
- m_actuals << qVariantFromValue(obj);
+ m_actuals << QVariant::fromValue(obj);
return obj;
}
Q_INVOKABLE QBrush myInvokableWithQBrushArg(const QBrush &brush) {
m_qtFunctionInvoked = 19;
- m_actuals << qVariantFromValue(brush);
+ m_actuals << QVariant::fromValue(brush);
return brush;
}
Q_INVOKABLE void myInvokableWithBrushStyleArg(Qt::BrushStyle style) {
m_qtFunctionInvoked = 43;
- m_actuals << qVariantFromValue(style);
+ m_actuals << QVariant::fromValue(style);
}
Q_INVOKABLE void myInvokableWithVoidStarArg(void* arg) {
m_qtFunctionInvoked = 44;
- m_actuals << qVariantFromValue(arg);
+ m_actuals << QVariant::fromValue(arg);
}
Q_INVOKABLE void myInvokableWithAmbiguousArg(int arg) {
m_qtFunctionInvoked = 45;
- m_actuals << qVariantFromValue(arg);
+ m_actuals << QVariant::fromValue(arg);
}
Q_INVOKABLE void myInvokableWithAmbiguousArg(uint arg) {
m_qtFunctionInvoked = 46;
- m_actuals << qVariantFromValue(arg);
+ m_actuals << QVariant::fromValue(arg);
}
Q_INVOKABLE void myInvokableWithDefaultArgs(int arg1, const QString &arg2 = "") {
m_qtFunctionInvoked = 47;
- m_actuals << qVariantFromValue(arg1) << qVariantFromValue(arg2);
+ m_actuals << QVariant::fromValue(arg1) << qVariantFromValue(arg2);
}
Q_INVOKABLE QObject& myInvokableReturningRef() {
m_qtFunctionInvoked = 48;
@@ -364,11 +364,11 @@ public:
}
Q_INVOKABLE void myInvokableWithPointArg(const QPoint &arg) {
const_cast<MyQObject*>(this)->m_qtFunctionInvoked = 50;
- m_actuals << qVariantFromValue(arg);
+ m_actuals << QVariant::fromValue(arg);
}
Q_INVOKABLE void myInvokableWithPointArg(const QPointF &arg) {
const_cast<MyQObject*>(this)->m_qtFunctionInvoked = 51;
- m_actuals << qVariantFromValue(arg);
+ m_actuals << QVariant::fromValue(arg);
}
Q_INVOKABLE void myInvokableWithBoolArg(bool arg) {
m_qtFunctionInvoked = 52;
@@ -416,7 +416,7 @@ public Q_SLOTS:
}
void myOverloadedSlot(QObject* arg) {
m_qtFunctionInvoked = 41;
- m_actuals << qVariantFromValue(arg);
+ m_actuals << QVariant::fromValue(arg);
}
void myOverloadedSlot(bool arg) {
m_qtFunctionInvoked = 25;
@@ -818,7 +818,7 @@ void tst_QWebFrame::getSetStaticProperty()
QCOMPARE(evalJS("myObject.variantProperty === 'bar'"), sTrue);
m_myObject->setVariantProperty(42);
QCOMPARE(evalJS("myObject.variantProperty === 42"), sTrue);
- m_myObject->setVariantProperty(qVariantFromValue(QBrush()));
+ m_myObject->setVariantProperty(QVariant::fromValue(QBrush()));
//XFAIL
// QCOMPARE(evalJS("typeof myObject.variantProperty"), sVariant);
@@ -1240,7 +1240,7 @@ void tst_QWebFrame::callQtInvokable()
/* XFAIL - variant support
m_myObject->resetQtFunctionInvoked();
{
- m_myObject->setVariantProperty(qVariantFromValue(QBrush()));
+ m_myObject->setVariantProperty(QVariant::fromValue(QBrush()));
QVariant ret = evalJS("myObject.myInvokableWithVariantArg(myObject.variantProperty)");
QVERIFY(ret.isVariant());
QCOMPARE(m_myObject->qtFunctionInvoked(), 15);
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html
index 18ab314..2e893af 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html
@@ -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>
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp
index 835ad82..bd19578 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp
@@ -264,26 +264,58 @@ void tst_QWebView::focusInputTypes()
#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;
diff --git a/src/activeqt/container/qaxbase.cpp b/src/activeqt/container/qaxbase.cpp
index 7692749..806e2b1 100644
--- a/src/activeqt/container/qaxbase.cpp
+++ b/src/activeqt/container/qaxbase.cpp
@@ -3540,7 +3540,7 @@ int QAxBase::internalProperty(QMetaObject::Call call, int index, void **v)
proptype = 0;
} else if (t == QVariant::UserType) {
qvar = QVariant(qRegisterMetaType<void*>(prop.typeName()), (void**)v[0]);
-// qVariantSetValue(qvar, *(void**)v[0], prop.typeName());
+// qvar.setValue(*(void**)v[0], prop.typeName());
} else {
proptype = d->metaObject()->propertyType(propname);
qvar = QVariant(t, v[0]);
@@ -3628,9 +3628,9 @@ int QAxBase::internalInvoke(QMetaObject::Call call, int index, void **v)
if (!qvar.isValid()) {
if (type == "IDispatch*")
- qVariantSetValue(qvar, *(IDispatch**)v[p+1]);
+ qvar.setValue(*(IDispatch**)v[p+1]);
else if (type == "IUnknown*")
- qVariantSetValue(qvar, *(IUnknown**)v[p+1]);
+ qvar.setValue(*(IUnknown**)v[p+1]);
else if (type == "QVariant")
qvar = *(QVariant*)v[p + 1];
else if (mo->indexOfEnumerator(type) != -1)
@@ -4395,15 +4395,15 @@ QVariant QAxBase::asVariant() const
QByteArray cn(className());
if (cn == "QAxObject" || cn == "QAxWidget" || cn == "QAxBase") {
if (d->dispatch())
- qVariantSetValue(qvar, d->dispatch());
+ qvar.setValue(d->dispatch());
else if (d->ptr)
- qVariantSetValue(qvar, d->ptr);
+ qvar.setValue(d->ptr);
} else {
cn = cn.mid(cn.lastIndexOf(':') + 1);
QObject *object = qObject();
if (QMetaType::type(cn))
qvar = QVariant(qRegisterMetaType<QObject*>(cn + '*'), &object);
-// qVariantSetValue(qvar, qObject(), cn + '*');
+// qvar.setValue(qObject(), cn + '*');
}
return qvar;
diff --git a/src/activeqt/container/qaxwidget.cpp b/src/activeqt/container/qaxwidget.cpp
index 7afce5b..d3f736b 100644
--- a/src/activeqt/container/qaxwidget.cpp
+++ b/src/activeqt/container/qaxwidget.cpp
@@ -1163,7 +1163,7 @@ HRESULT WINAPI QAxClientSite::InsertMenus(HMENU /*hmenuShared*/, LPOLEMENUGROUPW
AX_DEBUG(QAxClientSite::InsertMenus);
QMenuBar *mb = menuBar;
if (!mb)
- mb = qFindChild<QMenuBar*>(widget->window());
+ mb = widget->window()->findChild<QMenuBar*>();
if (!mb)
return E_NOTIMPL;
menuBar = mb;
@@ -1309,7 +1309,7 @@ HRESULT WINAPI QAxClientSite::SetMenu(HMENU hmenuShared, HOLEMENU holemenu, HWND
m_menuOwner = hwndActiveObject;
QMenuBar *mb = menuBar;
if (!mb)
- mb = qFindChild<QMenuBar*>(widget->window());
+ mb = widget->window()->findChild<QMenuBar*>();
if (!mb)
return E_NOTIMPL;
menuBar = mb;
diff --git a/src/activeqt/control/qaxserver.cpp b/src/activeqt/control/qaxserver.cpp
index 7728e50..2512f05 100644
--- a/src/activeqt/control/qaxserver.cpp
+++ b/src/activeqt/control/qaxserver.cpp
@@ -285,7 +285,7 @@ HRESULT UpdateRegistry(BOOL bRegister)
|OLEMISC_RECOMPOSEONRESIZE;
if (!control)
olemisc |= OLEMISC_INVISIBLEATRUNTIME;
- else if (qFindChild<QMenuBar*>(object) && !qax_disable_inplaceframe)
+ else if (object->findChild<QMenuBar*>() && !qax_disable_inplaceframe)
olemisc |= OLEMISC_WANTSTOMENUMERGE;
settings.setValue(QLatin1Char('/') + module + QLatin1Char('.') + className + QLatin1Char('.') + classMajorVersion + QLatin1String("/."), className + QLatin1String(" Class"));
diff --git a/src/activeqt/control/qaxserverbase.cpp b/src/activeqt/control/qaxserverbase.cpp
index ca16b39..32e2cf2 100644
--- a/src/activeqt/control/qaxserverbase.cpp
+++ b/src/activeqt/control/qaxserverbase.cpp
@@ -1313,7 +1313,7 @@ bool QAxServerBase::internalCreate()
// install an event filter for stock events
if (isWidget) {
qt.object->installEventFilter(this);
- const QList<QWidget*> children = qFindChildren<QWidget*>(qt.object);
+ const QList<QWidget*> children = qt.object->findChildren<QWidget*>();
QList<QWidget*>::ConstIterator it = children.constBegin();
while (it != children.constEnd()) {
(*it)->installEventFilter(this);
@@ -2047,10 +2047,10 @@ int QAxServerBase::qt_metacall(QMetaObject::Call call, int index, void **argv)
if (vt == QVariant::UserType) {
if (ptype.endsWith('*')) {
variant = QVariant(QMetaType::type(ptype), (void**)argv[p+1]);
- // qVariantSetValue(variant, *(void**)(argv[p + 1]), ptype);
+ // variant.setValue(*(void**)(argv[p + 1]), ptype);
} else {
variant = QVariant(QMetaType::type(ptype), argv[p+1]);
- // qVariantSetValue(variant, argv[p + 1], ptype);
+ // variant.setValue(argv[p + 1], ptype);
}
} else {
variant = QVariant(vt, argv[p + 1]);
@@ -2537,7 +2537,7 @@ HRESULT WINAPI QAxServerBase::Invoke(DISPID dispidMember, REFIID riid,
if (!type.isEmpty() && pvarResult) {
if (!varp[0].isValid() && type != "QVariant")
varp[0] = QVariant(QMetaType::type(type), argv_pointer);
-// qVariantSetValue(varp[0], argv_pointer[0], type);
+// varp[0].setValue(argv_pointer[0], type);
ok = QVariantToVARIANT(varp[0], *pvarResult, type);
}
}
@@ -3312,7 +3312,7 @@ HRESULT WINAPI QAxServerBase::OnAmbientPropertyChange(DISPID dispID)
break;
{
QVariant qvar = VARIANTToQVariant(var, "QFont", QVariant::Font);
- QFont qfont = qVariantValue<QFont>(qvar);
+ QFont qfont = qvariant_cast<QFont>(qvar);
qt.widget->setFont(qfont);
}
break;
@@ -3805,7 +3805,7 @@ HRESULT QAxServerBase::internalActivate()
// Gone active by now, take care of UIACTIVATE
canTakeFocus = qt.widget->focusPolicy() != Qt::NoFocus && !inDesignMode;
if (!canTakeFocus && !inDesignMode) {
- QList<QWidget*> widgets = qFindChildren<QWidget*>(qt.widget);
+ QList<QWidget*> widgets = qt.widget->findChildren<QWidget*>();
for (int w = 0; w < widgets.count(); ++w) {
QWidget *widget = widgets[w];
canTakeFocus = widget->focusPolicy() != Qt::NoFocus;
@@ -3831,13 +3831,13 @@ HRESULT QAxServerBase::internalActivate()
if (m_spInPlaceFrame) {
hr = m_spInPlaceFrame->SetActiveObject(this, QStringToBSTR(class_name));
if (!FAILED(hr)) {
- menuBar = (qt.widget && !qax_disable_inplaceframe) ? qFindChild<QMenuBar*>(qt.widget) : 0;
+ menuBar = (qt.widget && !qax_disable_inplaceframe) ? qt.widget->findChild<QMenuBar*>() : 0;
if (menuBar && !menuBar->isVisible()) {
createMenu(menuBar);
menuBar->hide();
menuBar->installEventFilter(this);
}
- statusBar = qt.widget ? qFindChild<QStatusBar*>(qt.widget) : 0;
+ statusBar = qt.widget ? qt.widget->findChild<QStatusBar*>() : 0;
if (statusBar && !statusBar->isVisible()) {
const int index = statusBar->metaObject()->indexOfSignal("messageChanged(QString)");
QMetaObject::connect(statusBar, index, this, -1);
diff --git a/src/activeqt/shared/qaxtypes.cpp b/src/activeqt/shared/qaxtypes.cpp
index 0cfc7eb..7b2e802 100644
--- a/src/activeqt/shared/qaxtypes.cpp
+++ b/src/activeqt/shared/qaxtypes.cpp
@@ -954,20 +954,20 @@ QVariant VARIANTToQVariant(const VARIANT &arg, const QByteArray &typeName, uint
break;
case VT_I4:
if (type == QVariant::Color || (!type && typeName == "QColor"))
- var = qVariantFromValue(OLEColorToQColor(arg.lVal));
+ var = QVariant::fromValue(OLEColorToQColor(arg.lVal));
#ifndef QT_NO_CURSOR
else if (type == QVariant::Cursor || (!type && (typeName == "QCursor" || typeName == "QCursor*")))
- var = qVariantFromValue(QCursor(static_cast<Qt::CursorShape>(arg.lVal)));
+ var = QVariant::fromValue(QCursor(static_cast<Qt::CursorShape>(arg.lVal)));
#endif
else
var = (int)arg.lVal;
break;
case VT_I4|VT_BYREF:
if (type == QVariant::Color || (!type && typeName == "QColor"))
- var = qVariantFromValue(OLEColorToQColor((int)*arg.plVal));
+ var = QVariant::fromValue(OLEColorToQColor((int)*arg.plVal));
#ifndef QT_NO_CURSOR
else if (type == QVariant::Cursor || (!type && (typeName == "QCursor" || typeName == "QCursor*")))
- var = qVariantFromValue(QCursor(static_cast<Qt::CursorShape>(*arg.plVal)));
+ var = QVariant::fromValue(QCursor(static_cast<Qt::CursorShape>(*arg.plVal)));
#endif
else
var = (int)*arg.plVal;
@@ -992,20 +992,20 @@ QVariant VARIANTToQVariant(const VARIANT &arg, const QByteArray &typeName, uint
break;
case VT_UI4:
if (type == QVariant::Color || (!type && typeName == "QColor"))
- var = qVariantFromValue(OLEColorToQColor(arg.ulVal));
+ var = QVariant::fromValue(OLEColorToQColor(arg.ulVal));
#ifndef QT_NO_CURSOR
else if (type == QVariant::Cursor || (!type && (typeName == "QCursor" || typeName == "QCursor*")))
- var = qVariantFromValue(QCursor(static_cast<Qt::CursorShape>(arg.ulVal)));
+ var = QVariant::fromValue(QCursor(static_cast<Qt::CursorShape>(arg.ulVal)));
#endif
else
var = (int)arg.ulVal;
break;
case VT_UI4|VT_BYREF:
if (type == QVariant::Color || (!type && typeName == "QColor"))
- var = qVariantFromValue(OLEColorToQColor((uint)*arg.pulVal));
+ var = QVariant::fromValue(OLEColorToQColor((uint)*arg.pulVal));
#ifndef QT_NO_CURSOR
else if (type == QVariant::Cursor || (!type && (typeName == "QCursor" || typeName == "QCursor*")))
- var = qVariantFromValue(QCursor(static_cast<Qt::CursorShape>(*arg.pulVal)));
+ var = QVariant::fromValue(QCursor(static_cast<Qt::CursorShape>(*arg.pulVal)));
#endif
else
var = (int)*arg.pulVal;
@@ -1084,20 +1084,20 @@ QVariant VARIANTToQVariant(const VARIANT &arg, const QByteArray &typeName, uint
if (disp)
disp->QueryInterface(IID_IFont, (void**)&ifont);
if (ifont) {
- var = qVariantFromValue(IFontToQFont(ifont));
+ var = QVariant::fromValue(IFontToQFont(ifont));
ifont->Release();
} else {
- var = qVariantFromValue(QFont());
+ var = QVariant::fromValue(QFont());
}
} else if (type == QVariant::Pixmap || (!type && (typeName == "QPixmap" || typeName == "QPixmap*"))) {
IPicture *ipic = 0;
if (disp)
disp->QueryInterface(IID_IPicture, (void**)&ipic);
if (ipic) {
- var = qVariantFromValue(IPictureToQPixmap(ipic));
+ var = QVariant::fromValue(IPictureToQPixmap(ipic));
ipic->Release();
} else {
- var = qVariantFromValue(QPixmap());
+ var = QVariant::fromValue(QPixmap());
}
} else {
#ifdef QAX_SERVER
@@ -1118,7 +1118,7 @@ QVariant VARIANTToQVariant(const VARIANT &arg, const QByteArray &typeName, uint
#ifndef QAX_SERVER
if (typeName == "QVariant") {
QAxObject *object = new QAxObject(disp);
- var = qVariantFromValue<QAxObject*>(object);
+ var = QVariant::fromValue<QAxObject*>(object);
} else if (typeName != "IDispatch*" && QMetaType::type(typeName)) {
QByteArray typeNameStr = QByteArray(typeName);
int pIndex = typeName.lastIndexOf('*');
@@ -1145,7 +1145,7 @@ QVariant VARIANTToQVariant(const VARIANT &arg, const QByteArray &typeName, uint
unkn = *arg.ppunkVal;
else
unkn = arg.punkVal;
- qVariantSetValue(var, unkn);
+ var.setValue(unkn);
}
break;
case VT_ARRAY|VT_VARIANT:
diff --git a/src/corelib/concurrent/qfuture.h b/src/corelib/concurrent/qfuture.h
index 02ae40a..2856f5e 100644
--- a/src/corelib/concurrent/qfuture.h
+++ b/src/corelib/concurrent/qfuture.h
@@ -210,7 +210,7 @@ public:
bool operator==(const QFuture &other) const { return (d == other.d); }
bool operator!=(const QFuture &other) const { return (d != other.d); }
-#if !defined(QT_NO_MEMBER_TEMPLATES) && !defined(Q_CC_XLC)
+#if !defined(Q_CC_XLC)
template <typename T>
QFuture(const QFuture<T> &other)
: d(other.d)
diff --git a/src/corelib/concurrent/qtconcurrentcompilertest.h b/src/corelib/concurrent/qtconcurrentcompilertest.h
index 982a50c..4fbb3d7 100644
--- a/src/corelib/concurrent/qtconcurrentcompilertest.h
+++ b/src/corelib/concurrent/qtconcurrentcompilertest.h
@@ -51,12 +51,6 @@ QT_BEGIN_NAMESPACE
QT_MODULE(Core)
-#ifdef Q_CC_MSVC
-# if _MSC_VER < 1300
-# define QT_CONURRENT_NONSTANDARD_COMPILER
-# endif
-#endif
-
#if defined (Q_CC_MSVC) && (_MSC_VER < 1300)
# define QT_TYPENAME
#else
diff --git a/src/corelib/concurrent/qtconcurrentfilter.cpp b/src/corelib/concurrent/qtconcurrentfilter.cpp
index 36febe7..29c3edb 100644
--- a/src/corelib/concurrent/qtconcurrentfilter.cpp
+++ b/src/corelib/concurrent/qtconcurrentfilter.cpp
@@ -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
diff --git a/src/corelib/concurrent/qtconcurrentiteratekernel.h b/src/corelib/concurrent/qtconcurrentiteratekernel.h
index 23aaae8..29d276b 100644
--- a/src/corelib/concurrent/qtconcurrentiteratekernel.h
+++ b/src/corelib/concurrent/qtconcurrentiteratekernel.h
@@ -184,12 +184,9 @@ public:
#if defined (QT_NO_STL)
: begin(_begin), end(_end), current(_begin), currentIndex(0),
forIteration(false), progressReportingEnabled(true)
-#elif !defined(QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION)
+#else
: begin(_begin), end(_end), current(_begin), currentIndex(0),
forIteration(selectIteration(typename std::iterator_traits<Iterator>::iterator_category())), progressReportingEnabled(true)
-#else
- : begin(_begin), end(_end), currentIndex(0),
- forIteration(selectIteration(std::iterator_category(_begin))), progressReportingEnabled(true)
#endif
{
#if defined (QT_NO_STL)
diff --git a/src/corelib/concurrent/qtconcurrentmap.cpp b/src/corelib/concurrent/qtconcurrentmap.cpp
index e74d69c..4303ff6 100644
--- a/src/corelib/concurrent/qtconcurrentmap.cpp
+++ b/src/corelib/concurrent/qtconcurrentmap.cpp
@@ -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
diff --git a/src/corelib/concurrent/qtconcurrentresultstore.cpp b/src/corelib/concurrent/qtconcurrentresultstore.cpp
index ad4b2cf..65f3afa 100644
--- a/src/corelib/concurrent/qtconcurrentresultstore.cpp
+++ b/src/corelib/concurrent/qtconcurrentresultstore.cpp
@@ -236,7 +236,7 @@ int ResultStoreBase::count() const
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)
{
diff --git a/src/corelib/corelib.pro b/src/corelib/corelib.pro
index 10666b4..f6e2f6b 100644
--- a/src/corelib/corelib.pro
+++ b/src/corelib/corelib.pro
@@ -53,39 +53,9 @@ symbian: {
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
}
+
diff --git a/src/corelib/global/qendian.h b/src/corelib/global/qendian.h
index d53504a..e0e946b 100644
--- a/src/corelib/global/qendian.h
+++ b/src/corelib/global/qendian.h
@@ -89,7 +89,7 @@ template <typename T> inline void qToUnaligned(const T src, uchar *dest)
* and return the value in host-endian encoding.
* There is no requirement that \a src must be aligned.
*/
-#if defined Q_CC_MSVC && _MSC_VER < 1300 || defined Q_CC_SUN
+#if defined Q_CC_SUN
inline quint64 qFromLittleEndian_helper(const uchar *src, quint64 *dest)
{
return 0
@@ -177,7 +177,7 @@ template <> inline qint16 qFromLittleEndian<qint16>(const uchar *src)
* and return the value in host-endian encoding.
* There is no requirement that \a src must be aligned.
*/
-#if defined Q_CC_MSVC && _MSC_VER < 1300 || defined Q_CC_SUN
+#if defined Q_CC_SUN
inline quint64 qFromBigEndian_helper(const uchar *src, quint64 *dest)
{
return 0
diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp
index d07ae4a..65699f6 100644
--- a/src/corelib/global/qglobal.cpp
+++ b/src/corelib/global/qglobal.cpp
@@ -1886,9 +1886,9 @@ QSysInfo::SymbianVersion QSysInfo::symbianVersion()
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;
}
@@ -2923,8 +2923,9 @@ int qrand()
\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:
diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h
index 8456d6f..9924a56 100644
--- a/src/corelib/global/qglobal.h
+++ b/src/corelib/global/qglobal.h
@@ -385,31 +385,12 @@ namespace QT_NAMESPACE {}
#elif defined(_MSC_VER)
# define Q_CC_MSVC
-/* proper support of bool for _MSC_VER >= 1100 */
+# define Q_CC_MSVC_NET
# define Q_CANNOT_DELETE_CONSTANT
# define Q_OUTOFLINE_TEMPLATE inline
# define Q_NO_TEMPLATE_FRIENDS
-# define QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
-# define Q_ALIGNOF(type) __alignof(type)
-# define Q_DECL_ALIGN(n) __declspec(align(n))
-
-/* Visual C++.Net issues for _MSC_VER >= 1300 */
-# if _MSC_VER >= 1300
-# define Q_CC_MSVC_NET
-# if _MSC_VER < 1310 || (defined(Q_OS_WIN64) && defined(_M_IA64))
-# define Q_TYPENAME
-# else
-# undef QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
-# endif
-# else
-# define Q_NO_USING_KEYWORD
-# define QT_NO_MEMBER_TEMPLATES
-# endif
-# if _MSC_VER < 1310
-# define QT_NO_QOBJECT_CHECK
-# define Q_TYPENAME
-# define QT_NO_TEMPLATE_TEMPLATE_PARAMETERS
-# endif
+# define Q_ALIGNOF(type) __alignof(type)
+# define Q_DECL_ALIGN(n) __declspec(align(n))
/* Intel C++ disguising as Visual C++: the `using' keyword avoids warnings */
# if defined(__INTEL_COMPILER)
# define Q_CC_INTEL
@@ -926,10 +907,10 @@ redefine to built-in booleans to make autotests work properly */
#endif
/*
- Proper for-scoping in VC++6 and MIPSpro CC
+ Proper for-scoping in MIPSpro CC
*/
#ifndef QT_NO_KEYWORDS
-# if (defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET) && !defined(Q_CC_INTEL)) || defined(Q_CC_MIPS) || (defined(Q_CC_HPACC) && defined(__ia64))
+# if defined(Q_CC_MIPS) || (defined(Q_CC_HPACC) && defined(__ia64))
# define for if(0){}else for
# endif
#endif
@@ -953,7 +934,7 @@ redefine to built-in booleans to make autotests work properly */
# define Q_DECL_DEPRECATED Q_DECL_DEPRECATED
#elif (defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2))) || defined(Q_CC_RVCT)
# define Q_DECL_DEPRECATED __attribute__ ((__deprecated__))
-#elif defined(Q_CC_MSVC) && (_MSC_VER >= 1300)
+#elif defined(Q_CC_MSVC)
# define Q_DECL_DEPRECATED __declspec(deprecated)
# if defined (Q_CC_INTEL)
# define Q_DECL_VARIABLE_DEPRECATED
@@ -983,9 +964,11 @@ redefine to built-in booleans to make autotests work properly */
# 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
@@ -1055,7 +1038,7 @@ redefine to built-in booleans to make autotests work properly */
#else
# define QT_FASTCALL
#endif
-# elif defined(Q_CC_MSVC) && (_MSC_VER > 1300 || defined(Q_CC_INTEL))
+# elif defined(Q_CC_MSVC)
# define QT_FASTCALL __fastcall
# else
# define QT_FASTCALL
@@ -1723,12 +1706,7 @@ inline T *q_check_ptr(T *p) { Q_CHECK_PTR(p); return p; }
#if (defined(Q_CC_GNU) && !defined(Q_OS_SOLARIS)) || defined(Q_CC_HPACC) || defined(Q_CC_DIAB)
# define Q_FUNC_INFO __PRETTY_FUNCTION__
#elif defined(_MSC_VER)
- /* MSVC 2002 doesn't have __FUNCSIG__ nor can it handle QT_STRINGIFY. */
-# if _MSC_VER <= 1300
-# define Q_FUNC_INFO __FILE__ "(line number unavailable)"
-# else
-# define Q_FUNC_INFO __FUNCSIG__
-# endif
+# define Q_FUNC_INFO __FUNCSIG__
#else
# if defined(Q_OS_SOLARIS) || defined(Q_CC_XLC) || defined(Q_OS_SYMBIAN)
# define Q_FUNC_INFO __FILE__ "(line number unavailable)"
@@ -1978,8 +1956,6 @@ static inline bool qIsNull(float f)
qIsDetached - data sharing functionality
*/
-#ifndef QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
-
/*
The catch-all template.
*/
@@ -2012,28 +1988,6 @@ public:
};
};
-#else
-
-template <typename T> char QTypeInfoHelper(T*(*)());
-void* QTypeInfoHelper(...);
-
-template <typename T> inline bool qIsDetached(T &) { return true; }
-
-template <typename T>
-class QTypeInfo
-{
-public:
- enum {
- isPointer = (1 == sizeof(QTypeInfoHelper((T(*)())0))),
- isComplex = !isPointer,
- isStatic = !isPointer,
- isLarge = (sizeof(T)>sizeof(void*)),
- isDummy = false
- };
-};
-
-#endif /* QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION */
-
/*
Specialize a specific type with:
@@ -2151,10 +2105,6 @@ Q_CORE_EXPORT void *qMemSet(void *dest, int c, size_t n);
# pragma warning(disable: 4231) /* nonstandard extension used : 'extern' before template explicit instantiation */
# pragma warning(disable: 4710) /* function not inlined */
# pragma warning(disable: 4530) /* C++ exception handler used, but unwind semantics are not enabled. Specify -GX */
-# if _MSC_VER < 1300
-# pragma warning(disable: 4284) /* return type for 'type1::operator ->' is 'type2 *' */
- /* (ie; not a UDT or reference to a UDT. Will produce errors if applied using infix notation) */
-# endif
# elif defined(Q_CC_BOR)
# pragma option -w-inl
# pragma option -w-aus
@@ -2228,13 +2178,9 @@ public:
#define Q_DECLARE_FLAGS(Flags, Enum)\
typedef QFlags<Enum> Flags;
-#if defined Q_CC_MSVC && _MSC_VER < 1300
-# define Q_DECLARE_INCOMPATIBLE_FLAGS(Flags)
-#else
-# define Q_DECLARE_INCOMPATIBLE_FLAGS(Flags) \
+#define Q_DECLARE_INCOMPATIBLE_FLAGS(Flags) \
inline QIncompatibleFlag operator|(Flags::enum_type f1, int f2) \
{ return QIncompatibleFlag(int(f1) | f2); }
-#endif
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags) \
inline QFlags<Flags::enum_type> operator|(Flags::enum_type f1, Flags::enum_type f2) \
@@ -2291,9 +2237,9 @@ template <typename T>
inline const QForeachContainer<T> *qForeachContainer(const QForeachContainerBase *base, const T *)
{ return static_cast<const QForeachContainer<T> *>(base); }
-#if (defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET) && !defined(Q_CC_INTEL)) || defined(Q_CC_MIPS)
+#if defined(Q_CC_MIPS)
/*
- Proper for-scoping in VC++6 and MIPSpro CC
+ Proper for-scoping in MIPSpro CC
*/
# define Q_FOREACH(variable,container) \
if(0){}else \
@@ -2650,12 +2596,6 @@ QT_LICENSED_MODULE(DBus)
# define QT_NO_QFUTURE
#endif
-// MSVC 6.0 and MSVC .NET 2002, can`t handle the map(), etc templates,
-// but the QFuture class compiles.
-#if (defined(Q_CC_MSVC) && _MSC_VER <= 1300)
-# define QT_NO_CONCURRENT
-#endif
-
// gcc 3 version has problems with some of the
// map/filter overloads.
#if defined(Q_CC_GNU) && (__GNUC__ < 4)
diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
index 3515777..ea7e2e4 100644
--- a/src/corelib/global/qlibraryinfo.cpp
+++ b/src/corelib/global/qlibraryinfo.cpp
@@ -476,7 +476,7 @@ QLibraryInfo::location(LibraryLocation loc)
\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.
diff --git a/src/corelib/io/qabstractfileengine.cpp b/src/corelib/io/qabstractfileengine.cpp
index d6b6f11..37a093c 100644
--- a/src/corelib/io/qabstractfileengine.cpp
+++ b/src/corelib/io/qabstractfileengine.cpp
@@ -41,12 +41,16 @@
#include "qabstractfileengine.h"
#include "private/qabstractfileengine_p.h"
+#ifdef QT_BUILD_CORE_LIB
+#include "private/qresource_p.h"
+#endif
#include "qdatetime.h"
#include "qreadwritelock.h"
#include "qvariant.h"
// built-in handlers
#include "qfsfileengine.h"
#include "qdiriterator.h"
+#include "qstringbuilder.h"
QT_BEGIN_NAMESPACE
@@ -94,6 +98,8 @@ QT_BEGIN_NAMESPACE
\sa QAbstractFileEngine, QAbstractFileEngine::create()
*/
+static bool qt_file_engine_handlers_in_use = false;
+
/*
All application-wide handlers are stored in this list. The mutex must be
acquired to ensure thread safety.
@@ -123,6 +129,7 @@ Q_GLOBAL_STATIC(QAbstractFileEngineHandlerList, fileEngineHandlers)
QAbstractFileEngineHandler::QAbstractFileEngineHandler()
{
QWriteLocker locker(fileEngineHandlerMutex());
+ qt_file_engine_handlers_in_use = true;
fileEngineHandlers()->prepend(this);
}
@@ -134,8 +141,12 @@ QAbstractFileEngineHandler::~QAbstractFileEngineHandler()
{
QWriteLocker locker(fileEngineHandlerMutex());
// Remove this handler from the handler list only if the list is valid.
- if (!qt_abstractfileenginehandlerlist_shutDown)
- fileEngineHandlers()->removeAll(this);
+ if (!qt_abstractfileenginehandlerlist_shutDown) {
+ QAbstractFileEngineHandlerList *handlers = fileEngineHandlers();
+ handlers->removeOne(this);
+ if (handlers->isEmpty())
+ qt_file_engine_handlers_in_use = false;
+ }
}
/*!
@@ -166,33 +177,48 @@ QAbstractFileEngineHandler::~QAbstractFileEngineHandler()
*/
QAbstractFileEngine *QAbstractFileEngine::create(const QString &fileName)
{
- {
+ if (qt_file_engine_handlers_in_use) {
QReadLocker locker(fileEngineHandlerMutex());
// check for registered handlers that can load the file
- for (int i = 0; i < fileEngineHandlers()->size(); i++) {
- if (QAbstractFileEngine *ret = fileEngineHandlers()->at(i)->create(fileName))
+ QAbstractFileEngineHandlerList *handlers = fileEngineHandlers();
+ for (int i = 0; i < handlers->size(); i++) {
+ if (QAbstractFileEngine *ret = handlers->at(i)->create(fileName))
return ret;
}
}
#ifdef QT_BUILD_CORE_LIB
- if (!fileName.startsWith(QLatin1Char('/'))) {
- int prefixSeparator = fileName.indexOf(QLatin1Char(':'));
- if (prefixSeparator > 1) {
- QString prefix = fileName.left(prefixSeparator);
- QString fileNameWithoutPrefix = fileName.mid(prefixSeparator + 1).prepend(QLatin1Char('/'));
- const QStringList &paths = QDir::searchPaths(prefix);
+ for (int prefixSeparator = 0; prefixSeparator < fileName.size(); ++prefixSeparator) {
+ QChar const ch = fileName[prefixSeparator];
+ if (ch == QLatin1Char('/'))
+ break;
+
+ if (ch == QLatin1Char(':')) {
+ if (prefixSeparator == 0)
+ return new QResourceFileEngine(fileName);
+
+ if (prefixSeparator == 1)
+ break;
+
+ const QStringList &paths = QDir::searchPaths(fileName.left(prefixSeparator));
for (int i = 0; i < paths.count(); i++) {
- QString path = paths.at(i);
- path.append(fileNameWithoutPrefix);
- QAbstractFileEngine *engine = create(path);
+ QAbstractFileEngine *engine = create(paths.at(i) % QLatin1Char('/') % fileName.mid(prefixSeparator + 1));
if (engine && (engine->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::ExistsFlag)) {
return engine;
}
delete engine;
}
+
+ break;
}
+
+ // There's no need to fully validate the prefix here. Consulting the
+ // unicode tables could be expensive and validation is already
+ // performed in QDir::setSearchPaths.
+ //
+ // if (!ch.isLetterOrNumber())
+ // break;
}
#endif
diff --git a/src/corelib/io/qdebug.h b/src/corelib/io/qdebug.h
index 093312f..a9d5ad4 100644
--- a/src/corelib/io/qdebug.h
+++ b/src/corelib/io/qdebug.h
@@ -137,10 +137,8 @@ public:
inline QNoDebug &nospace() { return *this; }
inline QNoDebug &maybeSpace() { return *this; }
-#ifndef QT_NO_MEMBER_TEMPLATES
template<typename T>
inline QNoDebug &operator<<(const T &) { return *this; }
-#endif
};
Q_CORE_EXPORT_INLINE QDebug qCritical() { return QDebug(QtCriticalMsg); }
@@ -285,11 +283,6 @@ Q_CORE_EXPORT_INLINE QDebug qDebug() { return QDebug(QtDebugMsg); }
inline QNoDebug qDebug() { return QNoDebug(); }
#define qDebug QT_NO_QDEBUG_MACRO
-#ifdef QT_NO_MEMBER_TEMPLATES
-template<typename T>
-inline QNoDebug operator<<(QNoDebug debug, const T &) { return debug; }
-#endif
-
#endif
#if !defined(QT_NO_WARNING_OUTPUT)
diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp
index 37591c5..61f7180 100644
--- a/src/corelib/io/qfileinfo.cpp
+++ b/src/corelib/io/qfileinfo.cpp
@@ -797,12 +797,12 @@ QString QFileInfo::suffix() const
\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
diff --git a/src/corelib/io/qfilesystemwatcher_kqueue.cpp b/src/corelib/io/qfilesystemwatcher_kqueue.cpp
index 99c165e..378ad20 100644
--- a/src/corelib/io/qfilesystemwatcher_kqueue.cpp
+++ b/src/corelib/io/qfilesystemwatcher_kqueue.cpp
@@ -295,12 +295,12 @@ void QKqueueFileSystemWatcherEngine::run()
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 @@ void QKqueueFileSystemWatcherEngine::run()
}
// are there any more?
+process_next_event:
r = kevent(kqfd, 0, 0, &kev, 1, &ZeroTimeout);
} while (r > 0);
}
diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp
index c80f9f1..84120b4 100644
--- a/src/corelib/io/qfsfileengine_win.cpp
+++ b/src/corelib/io/qfsfileengine_win.cpp
@@ -1984,6 +1984,10 @@ uchar *QFSFileEnginePrivate::map(qint64 offset, qint64 size,
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) {
diff --git a/src/corelib/io/qresource.cpp b/src/corelib/io/qresource.cpp
index 132abf9..98b1dcc 100644
--- a/src/corelib/io/qresource.cpp
+++ b/src/corelib/io/qresource.cpp
@@ -1185,21 +1185,6 @@ QResource::unregisterResource(const uchar *rccData, const QString &resourceRoot)
return false;
}
-//file type handler
-class QResourceFileEngineHandler : public QAbstractFileEngineHandler
-{
-public:
- QResourceFileEngineHandler() { }
- ~QResourceFileEngineHandler() { }
- QAbstractFileEngine *create(const QString &path) const;
-};
-QAbstractFileEngine *QResourceFileEngineHandler::create(const QString &path) const
-{
- if (path.size() > 0 && path.startsWith(QLatin1Char(':')))
- return new QResourceFileEngine(path);
- return 0;
-}
-
//resource engine
class QResourceFileEnginePrivate : public QAbstractFileEnginePrivate
{
@@ -1506,12 +1491,6 @@ bool QResourceFileEnginePrivate::unmap(uchar *ptr)
return true;
}
-//Initialization and cleanup
-Q_GLOBAL_STATIC(QResourceFileEngineHandler, resource_file_handler)
-
-static int qt_force_resource_init() { resource_file_handler(); return 1; }
-Q_CORE_EXPORT void qInitResourceIO() { resource_file_handler(); }
-static int qt_forced_resource_init = qt_force_resource_init();
-Q_CONSTRUCTOR_FUNCTION(qt_force_resource_init)
+Q_CORE_EXPORT void qInitResourceIO() { } // ### Qt 5: remove
QT_END_NAMESPACE
diff --git a/src/corelib/kernel/qbasictimer.cpp b/src/corelib/kernel/qbasictimer.cpp
index d176170..d595ac1 100644
--- a/src/corelib/kernel/qbasictimer.cpp
+++ b/src/corelib/kernel/qbasictimer.cpp
@@ -54,7 +54,8 @@ QT_BEGIN_NAMESPACE
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 @@ QT_BEGIN_NAMESPACE
/*!
\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()
*/
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp
index aaa5878..ad645e3 100644
--- a/src/corelib/kernel/qcoreapplication.cpp
+++ b/src/corelib/kernel/qcoreapplication.cpp
@@ -2332,6 +2332,7 @@ void QCoreApplication::setLibraryPaths(const QStringList &paths)
if (!coreappdata()->app_libpaths)
coreappdata()->app_libpaths = new QStringList;
*(coreappdata()->app_libpaths) = paths;
+ locker.unlock();
QFactoryLoader::refreshAll();
}
@@ -2365,6 +2366,7 @@ void QCoreApplication::addLibraryPath(const QString &path)
if (!canonicalPath.isEmpty()
&& !coreappdata()->app_libpaths->contains(canonicalPath)) {
coreappdata()->app_libpaths->prepend(canonicalPath);
+ locker.unlock();
QFactoryLoader::refreshAll();
}
}
diff --git a/src/corelib/kernel/qeventdispatcher_unix.cpp b/src/corelib/kernel/qeventdispatcher_unix.cpp
index 0c336e7..72f3c0e 100644
--- a/src/corelib/kernel/qeventdispatcher_unix.cpp
+++ b/src/corelib/kernel/qeventdispatcher_unix.cpp
@@ -335,7 +335,7 @@ QTimerInfoList::QTimerInfoList()
}
#endif
- firstTimerInfo = currentTimerInfo = 0;
+ firstTimerInfo = 0;
}
timeval QTimerInfoList::updateCurrentTime()
@@ -453,7 +453,7 @@ bool QTimerInfoList::timerWait(timeval &tm)
// 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;
}
@@ -482,7 +482,7 @@ void QTimerInfoList::registerTimer(int timerId, int interval, QObject *object)
t->interval.tv_usec = (interval % 1000) * 1000;
t->timeout = updateCurrentTime() + t->interval;
t->obj = object;
- t->inTimerEvent = false;
+ t->activateRef = 0;
timerInsert(t);
}
@@ -497,8 +497,8 @@ bool QTimerInfoList::unregisterTimer(int timerId)
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)
@@ -523,8 +523,8 @@ bool QTimerInfoList::unregisterTimers(QObject *object)
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)
@@ -560,10 +560,7 @@ int QTimerInfoList::activateTimers()
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();
@@ -575,7 +572,7 @@ int QTimerInfoList::activateTimers()
if (isEmpty())
break;
- currentTimerInfo = first();
+ QTimerInfo *currentTimerInfo = first();
if (currentTime < currentTimerInfo->timeout)
break; // no timer has expired
@@ -602,21 +599,19 @@ int QTimerInfoList::activateTimers()
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;
}
diff --git a/src/corelib/kernel/qeventdispatcher_unix_p.h b/src/corelib/kernel/qeventdispatcher_unix_p.h
index d38acf3..e1b6b1d 100644
--- a/src/corelib/kernel/qeventdispatcher_unix_p.h
+++ b/src/corelib/kernel/qeventdispatcher_unix_p.h
@@ -77,7 +77,7 @@ struct QTimerInfo {
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 @@ class QTimerInfoList : public QList<QTimerInfo*>
#endif
// state variables used by activateTimers()
- QTimerInfo *firstTimerInfo, *currentTimerInfo;
+ QTimerInfo *firstTimerInfo;
public:
QTimerInfoList();
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp
index 2ccd0a5..a70772f 100644
--- a/src/corelib/kernel/qmetaobject.cpp
+++ b/src/corelib/kernel/qmetaobject.cpp
@@ -1009,8 +1009,11 @@ QByteArray QMetaObject::normalizedSignature(const char *method)
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 == ')')
diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp
index fef02cf..bb77d2c 100644
--- a/src/corelib/kernel/qmetatype.cpp
+++ b/src/corelib/kernel/qmetatype.cpp
@@ -311,6 +311,7 @@ static const struct { const char * typeName; int typeNameLength; int type; } typ
QT_ADD_STATIC_METATYPE("long long", QMetaType::LongLong),
QT_ADD_STATIC_METATYPE("unsigned long long", QMetaType::ULongLong),
QT_ADD_STATIC_METATYPE("qint8", QMetaType::Char),
+ QT_ADD_STATIC_METATYPE("signed char", QMetaType::Char),
QT_ADD_STATIC_METATYPE("quint8", QMetaType::UChar),
QT_ADD_STATIC_METATYPE("qint16", QMetaType::Short),
QT_ADD_STATIC_METATYPE("quint16", QMetaType::UShort),
diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h
index 2108b92..52efcd0 100644
--- a/src/corelib/kernel/qmetatype.h
+++ b/src/corelib/kernel/qmetatype.h
@@ -355,6 +355,7 @@ Q_DECLARE_BUILTIN_METATYPE(QChar, QChar)
Q_DECLARE_BUILTIN_METATYPE(long, Long)
Q_DECLARE_BUILTIN_METATYPE(short, Short)
Q_DECLARE_BUILTIN_METATYPE(char, Char)
+Q_DECLARE_BUILTIN_METATYPE(signed char, Char)
Q_DECLARE_BUILTIN_METATYPE(ulong, ULong)
Q_DECLARE_BUILTIN_METATYPE(ushort, UShort)
Q_DECLARE_BUILTIN_METATYPE(uchar, UChar)
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index ad689ca..ceffa66 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -1746,11 +1746,7 @@ QObjectList QObject::queryList(const char *inheritsClass,
\snippet doc/src/snippets/code/src_corelib_kernel_qobject.cpp 11
- \warning This function is not available with MSVC 6. Use
- qFindChild() instead if you need to support that version of the
- compiler.
-
- \sa findChildren(), qFindChild()
+ \sa findChildren()
*/
/*!
@@ -1770,11 +1766,7 @@ QObjectList QObject::queryList(const char *inheritsClass,
\snippet doc/src/snippets/code/src_corelib_kernel_qobject.cpp 13
- \warning This function is not available with MSVC 6. Use
- qFindChildren() instead if you need to support that version of the
- compiler.
-
- \sa findChild(), qFindChildren()
+ \sa findChild()
*/
/*!
@@ -1785,20 +1777,19 @@ QObjectList QObject::queryList(const char *inheritsClass,
and that have names matching the regular expression \a regExp,
or an empty list if there are no such objects.
The search is performed recursively.
-
- \warning This function is not available with MSVC 6. Use
- qFindChildren() instead if you need to support that version of the
- compiler.
*/
/*!
\fn T qFindChild(const QObject *obj, const QString &name)
\relates QObject
+ \obsolete
This function is equivalent to
- \a{obj}->\l{QObject::findChild()}{findChild}<T>(\a name). It is
- provided as a work-around for MSVC 6, which doesn't support
- member template functions.
+ \a{obj}->\l{QObject::findChild()}{findChild}<T>(\a name).
+
+ \note This function was provided as a workaround for MSVC 6
+ which did not support member template functions. It is advised
+ to use the other form in new code.
\sa QObject::findChild()
*/
@@ -1806,11 +1797,14 @@ QObjectList QObject::queryList(const char *inheritsClass,
/*!
\fn QList<T> qFindChildren(const QObject *obj, const QString &name)
\relates QObject
+ \obsolete
This function is equivalent to
- \a{obj}->\l{QObject::findChildren()}{findChildren}<T>(\a name). It is
- provided as a work-around for MSVC 6, which doesn't support
- member template functions.
+ \a{obj}->\l{QObject::findChildren()}{findChildren}<T>(\a name).
+
+ \note This function was provided as a workaround for MSVC 6
+ which did not support member template functions. It is advised
+ to use the other form in new code.
\sa QObject::findChildren()
*/
@@ -1821,9 +1815,13 @@ QObjectList QObject::queryList(const char *inheritsClass,
\overload qFindChildren()
This function is equivalent to
- \a{obj}->\l{QObject::findChildren()}{findChildren}<T>(\a regExp). It is
- provided as a work-around for MSVC 6, which doesn't support
- member template functions.
+ \a{obj}->\l{QObject::findChildren()}{findChildren}<T>(\a regExp).
+
+ \note This function was provided as a workaround for MSVC 6
+ which did not support member template functions. It is advised
+ to use the other form in new code.
+
+ \sa QObject::findChildren()
*/
/*!
@@ -1833,9 +1831,11 @@ QObjectList QObject::queryList(const char *inheritsClass,
\overload qFindChildren()
This function is equivalent to
- \a{obj}->\l{QObject::findChild()}{findChild}<T>(\a name). It is
- provided as a work-around for MSVC 6, which doesn't support
- member template functions.
+ \a{obj}->\l{QObject::findChild()}{findChild}<T>(\a name).
+
+ \note This function was provided as a workaround for MSVC 6
+ which did not support member template functions. It is advised
+ to use the other form in new code.
\sa QObject::findChild()
*/
@@ -1847,9 +1847,11 @@ QObjectList QObject::queryList(const char *inheritsClass,
\overload qFindChildren()
This function is equivalent to
- \a{obj}->\l{QObject::findChildren()}{findChildren}<T>(\a name). It is
- provided as a work-around for MSVC 6, which doesn't support
- member template functions.
+ \a{obj}->\l{QObject::findChildren()}{findChildren}<T>(\a name).
+
+ \note This function was provided as a workaround for MSVC 6
+ which did not support member template functions. It is advised
+ to use the other form in new code.
\sa QObject::findChildren()
*/
@@ -2285,7 +2287,7 @@ static void err_info_about_objects(const char * func,
a thread different from this object's thread. Do not use this
function in this type of scenario.
- \sa QSignalMapper
+ \sa senderSignalIndex(), QSignalMapper
*/
QObject *QObject::sender() const
@@ -2296,13 +2298,53 @@ QObject *QObject::sender() const
if (!d->currentSender)
return 0;
- // Return 0 if d->currentSender isn't in d->senders
- bool found = false;
- for (QObjectPrivate::Connection *c = d->senders; c && !found; c = c->next)
- found = (c->sender == d->currentSender->sender);
- if (!found)
- return 0;
- return d->currentSender->sender;
+ for (QObjectPrivate::Connection *c = d->senders; c; c = c->next) {
+ if (c->sender == d->currentSender->sender)
+ return d->currentSender->sender;
+ }
+
+ return 0;
+}
+
+/*!
+ \since 4.8
+
+ Returns the meta-method index of the signal that called the currently
+ executing slot, which is a member of the class returned by sender().
+ If called outside of a slot activated by a signal, -1 is returned.
+
+ For signals with default parameters, this function will always return
+ the index with all parameters, regardless of which was used with
+ connect(). For example, the signal \c {destroyed(QObject *obj = 0)}
+ will have two different indexes (with and without the parameter), but
+ this function will always return the index with a parameter. This does
+ not apply when overloading signals with different parameters.
+
+ \warning This function violates the object-oriented principle of
+ modularity. However, getting access to the signal index might be useful
+ when many signals are connected to a single slot.
+
+ \warning The return value of this function is not valid when the slot
+ is called via a Qt::DirectConnection from a thread different from this
+ object's thread. Do not use this function in this type of scenario.
+
+ \sa sender(), QMetaObject::indexOfSignal(), QMetaObject::method()
+*/
+
+int QObject::senderSignalIndex() const
+{
+ Q_D(const QObject);
+
+ QMutexLocker locker(signalSlotLock(this));
+ if (!d->currentSender)
+ return -1;
+
+ for (QObjectPrivate::Connection *c = d->senders; c; c = c->next) {
+ if (c->sender == d->currentSender->sender)
+ return d->currentSender->signal;
+ }
+
+ return -1;
}
/*!
@@ -3312,7 +3354,7 @@ void QMetaObject::connectSlotsByName(QObject *o)
return;
const QMetaObject *mo = o->metaObject();
Q_ASSERT(mo);
- const QObjectList list = qFindChildren<QObject *>(o, QString());
+ const QObjectList list = o->findChildren<QObject *>(QString());
for (int i = 0; i < mo->methodCount(); ++i) {
const char *slot = mo->method(i).signature();
Q_ASSERT(slot);
diff --git a/src/corelib/kernel/qobject.h b/src/corelib/kernel/qobject.h
index d26f078..b5db936 100644
--- a/src/corelib/kernel/qobject.h
+++ b/src/corelib/kernel/qobject.h
@@ -77,19 +77,9 @@ class QObjectUserData;
typedef QList<QObject*> QObjectList;
-#if defined Q_CC_MSVC && _MSC_VER < 1300
-template<typename T> inline T qFindChild(const QObject *o, const QString &name = QString(), T = 0);
-template<typename T> inline QList<T> qFindChildren(const QObject *o, const QString &name = QString(), T = 0);
-# ifndef QT_NO_REGEXP
-template<typename T> inline QList<T> qFindChildren(const QObject *o, const QRegExp &re, T = 0);
-# endif
-#else
-template<typename T> inline T qFindChild(const QObject *, const QString & = QString());
-template<typename T> inline QList<T> qFindChildren(const QObject *, const QString & = QString());
-# ifndef QT_NO_REGEXP
-template<typename T> inline QList<T> qFindChildren(const QObject *, const QRegExp &);
-# endif
-#endif
+Q_CORE_EXPORT void qt_qFindChildren_helper(const QObject *parent, const QString &name, const QRegExp *re,
+ const QMetaObject &mo, QList<void *> *list);
+Q_CORE_EXPORT QObject *qt_qFindChild_helper(const QObject *parent, const QString &name, const QMetaObject &mo);
class
#if defined(__INTEL_COMPILER) && defined(Q_OS_WIN)
@@ -164,20 +154,36 @@ public:
int startTimer(int interval);
void killTimer(int id);
-#ifndef QT_NO_MEMBER_TEMPLATES
template<typename T>
inline T findChild(const QString &aName = QString()) const
- { return qFindChild<T>(this, aName); }
+ { return static_cast<T>(qt_qFindChild_helper(this, aName, reinterpret_cast<T>(0)->staticMetaObject)); }
template<typename T>
inline QList<T> findChildren(const QString &aName = QString()) const
- { return qFindChildren<T>(this, aName); }
+ {
+ QList<T> list;
+ union {
+ QList<T> *typedList;
+ QList<void *> *voidList;
+ } u;
+ u.typedList = &list;
+ qt_qFindChildren_helper(this, aName, 0, reinterpret_cast<T>(0)->staticMetaObject, u.voidList);
+ return list;
+ }
#ifndef QT_NO_REGEXP
template<typename T>
inline QList<T> findChildren(const QRegExp &re) const
- { return qFindChildren<T>(this, re); }
-#endif
+ {
+ QList<T> list;
+ union {
+ QList<T> *typedList;
+ QList<void *> *voidList;
+ } u;
+ u.typedList = &list;
+ qt_qFindChildren_helper(this, QString(), &re, reinterpret_cast<T>(0)->staticMetaObject, u.voidList);
+ return list;
+ }
#endif
#ifdef QT3_SUPPORT
@@ -274,6 +280,7 @@ public Q_SLOTS:
protected:
QObject *sender() const;
+ int senderSignalIndex() const;
int receivers(const char* signal) const;
virtual void timerEvent(QTimerEvent *);
@@ -338,135 +345,31 @@ public:
};
#endif
-Q_CORE_EXPORT void qt_qFindChildren_helper(const QObject *parent, const QString &name, const QRegExp *re,
- const QMetaObject &mo, QList<void *> *list);
-Q_CORE_EXPORT QObject *qt_qFindChild_helper(const QObject *parent, const QString &name, const QMetaObject &mo);
-
-#if defined Q_CC_MSVC && _MSC_VER < 1300
-
+#ifdef QT_DEPRECATED
template<typename T>
-inline T qFindChild(const QObject *o, const QString &name, T)
-{ return static_cast<T>(qt_qFindChild_helper(o, name, ((T)0)->staticMetaObject)); }
+inline QT_DEPRECATED T qFindChild(const QObject *o, const QString &name = QString())
+{ return o->findChild<T>(name); }
template<typename T>
-inline QList<T> qFindChildren(const QObject *o, const QString &name, T)
+inline QList<T> qFindChildren(const QObject *o, const QString &name = QString())
{
- QList<T> list;
- union {
- QList<T> *typedList;
- QList<void *> *voidList;
- } u;
- u.typedList = &list;
- qt_qFindChildren_helper(o, name, 0, ((T)0)->staticMetaObject, u.voidList);
- return list;
+ return o->findChildren<T>(name);
}
-template<typename T>
-inline T qFindChild(const QObject *o, const QString &name)
-{ return qFindChild<T>(o, name, T(0)); }
-
-template<typename T>
-inline T qFindChild(const QObject *o)
-{ return qFindChild<T>(o, QString(), T(0)); }
-
-template<typename T>
-inline QList<T> qFindChildren(const QObject *o, const QString &name)
-{ return qFindChildren<T>(o, name, T(0)); }
-
-template<typename T>
-inline QList<T> qFindChildren(const QObject *o)
-{ return qFindChildren<T>(o, QString(), T(0)); }
-
#ifndef QT_NO_REGEXP
template<typename T>
-inline QList<T> qFindChildren(const QObject *o, const QRegExp &re, T)
+inline QT_DEPRECATED QList<T> qFindChildren(const QObject *o, const QRegExp &re)
{
- QList<T> list;
- union {
- QList<T> *typedList;
- QList<void *> *voidList;
- } u;
- u.typedList = &list;
- qt_qFindChildren_helper(o, 0, &re, ((T)0)->staticMetaObject, u.voidList);
- return list;
+ return o->findChildren<T>(re);
}
-
-template<typename T>
-inline QList<T> qFindChildren(const QObject *o, const QRegExp &re)
-{ return qFindChildren<T>(o, re, T(0)); }
-
#endif
-#ifdef Q_MOC_RUN
-# define Q_DECLARE_INTERFACE(IFace, IId) Q_DECLARE_INTERFACE(IFace, IId)
-#endif // Q_MOC_RUN
-
-
-template <class T> inline const char * qobject_interface_iid()
-{ return 0; }
-
-template <class T> inline T qobject_cast_helper(QObject *object, T)
-{ return static_cast<T>(((T)0)->staticMetaObject.cast(object)); }
-
-template <class T> inline T qobject_cast_helper(const QObject *object, T)
-{ return static_cast<T>(const_cast<const QObject *>(((T)0)->staticMetaObject.cast(const_cast<QObject *>(object)))); }
-
-template <class T>
-inline T qobject_cast(QObject *object)
-{ return qobject_cast_helper<T>(object, T(0)); }
-
-template <class T>
-inline T qobject_cast(const QObject *object)
-{ return qobject_cast_helper<T>(object, T(0)); }
-
-#ifndef Q_MOC_RUN
-# define Q_DECLARE_INTERFACE(IFace, IId) \
- template <> inline const char *qobject_interface_iid<IFace *>() \
- { return IId; } \
- template <> inline IFace *qobject_cast_helper<IFace *>(QObject *object, IFace *) \
- { return (IFace *)(object ? object->qt_metacast(IId) : 0); } \
- template <> inline IFace *qobject_cast_helper<IFace *>(const QObject *object, IFace *) \
- { return (IFace *)(object ? const_cast<QObject *>(object)->qt_metacast(IId) : 0); }
-#endif // Q_MOC_RUN
-
-#else
-
-template<typename T>
-inline T qFindChild(const QObject *o, const QString &name)
-{ return static_cast<T>(qt_qFindChild_helper(o, name, reinterpret_cast<T>(0)->staticMetaObject)); }
-
-template<typename T>
-inline QList<T> qFindChildren(const QObject *o, const QString &name)
-{
- QList<T> list;
- union {
- QList<T> *typedList;
- QList<void *> *voidList;
- } u;
- u.typedList = &list;
- qt_qFindChildren_helper(o, name, 0, reinterpret_cast<T>(0)->staticMetaObject, u.voidList);
- return list;
-}
-
-#ifndef QT_NO_REGEXP
-template<typename T>
-inline QList<T> qFindChildren(const QObject *o, const QRegExp &re)
-{
- QList<T> list;
- union {
- QList<T> *typedList;
- QList<void *> *voidList;
- } u;
- u.typedList = &list;
- qt_qFindChildren_helper(o, QString(), &re, reinterpret_cast<T>(0)->staticMetaObject, u.voidList);
- return list;
-}
-#endif
+#endif //QT_DEPRECATED
template <class T>
inline T qobject_cast(QObject *object)
{
-#if !defined(QT_NO_MEMBER_TEMPLATES) && !defined(QT_NO_QOBJECT_CHECK)
+#if !defined(QT_NO_QOBJECT_CHECK)
reinterpret_cast<T>(0)->qt_check_for_QOBJECT_macro(*reinterpret_cast<T>(object));
#endif
return static_cast<T>(reinterpret_cast<T>(0)->staticMetaObject.cast(object));
@@ -479,7 +382,7 @@ inline T qobject_cast(const QObject *object)
register T ptr = static_cast<T>(object);
Q_UNUSED(ptr);
-#if !defined(QT_NO_MEMBER_TEMPLATES) && !defined(QT_NO_QOBJECT_CHECK)
+#if !defined(QT_NO_QOBJECT_CHECK)
reinterpret_cast<T>(0)->qt_check_for_QOBJECT_macro(*reinterpret_cast<T>(const_cast<QObject *>(object)));
#endif
return static_cast<T>(const_cast<QObject *>(reinterpret_cast<T>(0)->staticMetaObject.cast(const_cast<QObject *>(object))));
@@ -499,8 +402,6 @@ template <class T> inline const char * qobject_interface_iid()
{ return reinterpret_cast<IFace *>((object ? const_cast<QObject *>(object)->qt_metacast(IId) : 0)); }
#endif // Q_MOC_RUN
-#endif
-
#ifndef QT_NO_DEBUG_STREAM
Q_CORE_EXPORT QDebug operator<<(QDebug, const QObject *);
#endif
diff --git a/src/corelib/kernel/qobjectdefs.h b/src/corelib/kernel/qobjectdefs.h
index 555a1f5..996fce2 100644
--- a/src/corelib/kernel/qobjectdefs.h
+++ b/src/corelib/kernel/qobjectdefs.h
@@ -117,7 +117,7 @@ class QString;
# define QT_TR_FUNCTIONS
#endif
-#if defined(QT_NO_MEMBER_TEMPLATES) || defined(QT_NO_QOBJECT_CHECK)
+#if defined(QT_NO_QOBJECT_CHECK)
/* tmake ignore Q_OBJECT */
#define Q_OBJECT_CHECK
#else
@@ -144,7 +144,7 @@ inline int qYouForgotTheQ_OBJECT_Macro(T, T) { return 0; }
template <typename T1, typename T2>
inline void qYouForgotTheQ_OBJECT_Macro(T1, T2) {}
-#endif // QT_NO_MEMBER_TEMPLATES
+#endif // QT_NO_QOBJECT_CHECK
#ifdef Q_NO_DATA_RELOCATION
#define Q_OBJECT_GETSTATICMETAOBJECT static const QMetaObject &getStaticMetaObject();
diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp
index f5d7c0d..feb85ce 100644
--- a/src/corelib/kernel/qvariant.cpp
+++ b/src/corelib/kernel/qvariant.cpp
@@ -947,11 +947,7 @@ static bool convert(const QVariant::Private *d, QVariant::Type t, void *result,
case QMetaType::UChar:
case QMetaType::UShort:
case QMetaType::ULong:
-#if defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET)
- *f = (double)(qlonglong)qMetaTypeUNumber(d);
-#else
*f = double(qMetaTypeUNumber(d));
-#endif
break;
default:
*f = 0.0;
@@ -986,11 +982,7 @@ static bool convert(const QVariant::Private *d, QVariant::Type t, void *result,
case QMetaType::UChar:
case QMetaType::UShort:
case QMetaType::ULong:
-#if defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET)
- *f = (float)(qlonglong)qMetaTypeUNumber(d);
-#else
*f = float(qMetaTypeUNumber(d));
-#endif
break;
default:
*f = 0.0f;
@@ -1084,7 +1076,7 @@ static void streamDebug(QDebug dbg, const QVariant &v)
dbg.nospace() << v.toFloat();
break;
case QMetaType::QObjectStar:
- dbg.nospace() << qVariantValue<QObject *>(v);
+ dbg.nospace() << qvariant_cast<QObject *>(v);
break;
case QVariant::Double:
dbg.nospace() << v.toDouble();
@@ -1245,7 +1237,7 @@ const QVariant::Handler *QVariant::handler = &qt_kernel_variant_handler;
conversion functions to data types defined in QtGui, such as
QColor, QImage, and QPixmap. In other words, there is no \c
toColor() function. Instead, you can use the QVariant::value() or
- the qVariantValue() template function. For example:
+ the qvariant_cast() template function. For example:
\snippet doc/src/snippets/code/src_corelib_kernel_qvariant.cpp 2
@@ -1360,12 +1352,12 @@ const QVariant::Handler *QVariant::handler = &qt_kernel_variant_handler;
Note that you have to pass the address of the variable you want stored.
- Usually, you never have to use this constructor, use qVariantFromValue()
+ Usually, you never have to use this constructor, use QVariant::fromValue()
instead to construct variants from the pointer types represented by
\c QMetaType::VoidStar, \c QMetaType::QObjectStar and
\c QMetaType::QWidgetStar.
- \sa qVariantFromValue(), Type
+ \sa QVariant::fromValue(), Type
*/
/*!
@@ -3074,10 +3066,6 @@ QDebug operator<<(QDebug dbg, const QVariant::Type p)
\snippet doc/src/snippets/code/src_corelib_kernel_qvariant.cpp 4
- \warning This function is not available with MSVC 6. Use
- qVariantSetValue() instead if you need to support that version of
- the compiler.
-
\sa value(), fromValue(), canConvert()
*/
@@ -3095,10 +3083,6 @@ QDebug operator<<(QDebug dbg, const QVariant::Type p)
\snippet doc/src/snippets/code/src_corelib_kernel_qvariant.cpp 5
- \warning This function is not available with MSVC 6. Use
- qVariantValue() or qvariant_cast() instead if you need to support
- that version of the compiler.
-
\sa setValue(), fromValue(), canConvert()
*/
@@ -3111,10 +3095,6 @@ QDebug operator<<(QDebug dbg, const QVariant::Type p)
\snippet doc/src/snippets/code/src_corelib_kernel_qvariant.cpp 6
- \warning This function is not available with MSVC 6. Use
- qVariantCanConvert() instead if you need to support that version
- of the compiler.
-
\sa convert()
*/
@@ -3130,23 +3110,22 @@ QDebug operator<<(QDebug dbg, const QVariant::Type p)
\note If you are working with custom types, you should use
the Q_DECLARE_METATYPE() macro to register your custom type.
- \warning This function is not available with MSVC 6. Use
- qVariantFromValue() instead if you need to support that version
- of the compiler.
-
\sa setValue(), value()
*/
/*!
\fn QVariant qVariantFromValue(const T &value)
\relates QVariant
+ \obsolete
Returns a variant containing a copy of the given \a value
with template type \c{T}.
- This function is equivalent to QVariant::fromValue(\a value). It
- is provided as a work-around for MSVC 6, which doesn't support
- member template functions.
+ This function is equivalent to QVariant::fromValue(\a value).
+
+ \note This function was provided as a workaround for MSVC 6
+ which did not support member template functions. It is advised
+ to use the other form in new code.
For example, a QObject pointer can be stored in a variant with the
following code:
@@ -3158,13 +3137,16 @@ QDebug operator<<(QDebug dbg, const QVariant::Type p)
/*! \fn void qVariantSetValue(QVariant &variant, const T &value)
\relates QVariant
+ \obsolete
Sets the contents of the given \a variant to a copy of the
\a value with the specified template type \c{T}.
- This function is equivalent to QVariant::setValue(\a value). It
- is provided as a work-around for MSVC 6, which doesn't support
- member template functions.
+ This function is equivalent to QVariant::setValue(\a value).
+
+ \note This function was provided as a workaround for MSVC 6
+ which did not support member template functions. It is advised
+ to use the other form in new code.
\sa QVariant::setValue()
*/
@@ -3175,33 +3157,39 @@ QDebug operator<<(QDebug dbg, const QVariant::Type p)
Returns the given \a value converted to the template type \c{T}.
- This function is equivalent to qVariantValue().
+ This function is equivalent to QVariant::value().
- \sa qVariantValue(), QVariant::value()
+ \sa QVariant::value()
*/
/*! \fn T qVariantValue(const QVariant &value)
\relates QVariant
+ \obsolete
Returns the given \a value converted to the template type \c{T}.
This function is equivalent to
- \l{QVariant::value()}{QVariant::value}<T>(\a value). It is
- provided as a work-around for MSVC 6, which doesn't support
- member template functions.
+ \l{QVariant::value()}{QVariant::value}<T>(\a value).
+
+ \note This function was provided as a workaround for MSVC 6
+ which did not support member template functions. It is advised
+ to use the other form in new code.
\sa QVariant::value(), qvariant_cast()
*/
/*! \fn bool qVariantCanConvert(const QVariant &value)
\relates QVariant
+ \obsolete
Returns true if the given \a value can be converted to the
template type specified; otherwise returns false.
- This function is equivalent to QVariant::canConvert(\a value). It
- is provided as a work-around for MSVC 6, which doesn't support
- member template functions.
+ This function is equivalent to QVariant::canConvert(\a value).
+
+ \note This function was provided as a workaround for MSVC 6
+ which did not support member template functions. It is advised
+ to use the other form in new code.
\sa QVariant::canConvert()
*/
diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h
index cb2825c..432b708 100644
--- a/src/corelib/kernel/qvariant.h
+++ b/src/corelib/kernel/qvariant.h
@@ -83,19 +83,11 @@ class QUrl;
class QVariant;
class QVariantComparisonHelper;
-#ifndef QT_NO_MEMBER_TEMPLATES
template <typename T>
inline QVariant qVariantFromValue(const T &);
-template <typename T>
-inline void qVariantSetValue(QVariant &, const T &);
-
-template<typename T>
-inline T qVariantValue(const QVariant &);
-
template<typename T>
-inline bool qVariantCanConvert(const QVariant &);
-#endif
+inline T qvariant_cast(const QVariant &);
class Q_CORE_EXPORT QVariant
{
@@ -327,13 +319,12 @@ class Q_CORE_EXPORT QVariant
const void *constData() const;
inline const void *data() const { return constData(); }
-#ifndef QT_NO_MEMBER_TEMPLATES
template<typename T>
inline void setValue(const T &value);
template<typename T>
inline T value() const
- { return qVariantValue<T>(*this); }
+ { return qvariant_cast<T>(*this); }
template<typename T>
static inline QVariant fromValue(const T &value)
@@ -341,8 +332,7 @@ class Q_CORE_EXPORT QVariant
template<typename T>
bool canConvert() const
- { return qVariantCanConvert<T>(*this); }
-#endif
+ { return canConvert(Type(qMetaTypeId<T>())); }
public:
#ifndef qdoc
@@ -527,11 +517,9 @@ inline QSize &QVariant::asSize()
{ return *reinterpret_cast<QSize *>(castOrDetach(Size)); }
#endif //QT3_SUPPORT
-#ifndef QT_NO_MEMBER_TEMPLATES
template<typename T>
inline void QVariant::setValue(const T &avalue)
{ qVariantSetValue(*this, avalue); }
-#endif
#ifndef QT_NO_DATASTREAM
Q_CORE_EXPORT QDataStream& operator>> (QDataStream& s, QVariant& p);
@@ -594,16 +582,16 @@ template<> inline QVariant qvariant_cast<QVariant>(const QVariant &v)
return v;
}
+#ifdef QT_DEPRECATED
template<typename T>
-inline T qVariantValue(const QVariant &variant)
+inline QT_DEPRECATED T qVariantValue(const QVariant &variant)
{ return qvariant_cast<T>(variant); }
template<typename T>
-inline bool qVariantCanConvert(const QVariant &variant)
-{
- return variant.canConvert(static_cast<QVariant::Type>(
- qMetaTypeId<T>(static_cast<T *>(0))));
-}
+inline QT_DEPRECATED bool qVariantCanConvert(const QVariant &variant)
+{ return variant.canConvert<T>(); }
+#endif
+
#endif
Q_DECLARE_SHARED(QVariant)
Q_DECLARE_TYPEINFO(QVariant, Q_MOVABLE_TYPE);
diff --git a/src/corelib/statemachine/qstatemachine.cpp b/src/corelib/statemachine/qstatemachine.cpp
index 9d5c49f..a3c702a 100644
--- a/src/corelib/statemachine/qstatemachine.cpp
+++ b/src/corelib/statemachine/qstatemachine.cpp
@@ -793,7 +793,7 @@ void QStateMachinePrivate::applyProperties(const QList<QAbstractTransition*> &tr
}
// We require that at least one animation is valid.
// ### generalize
- QList<QVariantAnimation*> variantAnims = qFindChildren<QVariantAnimation*>(anim);
+ QList<QVariantAnimation*> variantAnims = anim->findChildren<QVariantAnimation*>();
if (QVariantAnimation *va = qobject_cast<QVariantAnimation*>(anim))
variantAnims.append(va);
@@ -1178,7 +1178,7 @@ void QStateMachinePrivate::removeStartState()
void QStateMachinePrivate::clearHistory()
{
Q_Q(QStateMachine);
- QList<QHistoryState*> historyStates = qFindChildren<QHistoryState*>(q);
+ QList<QHistoryState*> historyStates = q->findChildren<QHistoryState*>();
for (int i = 0; i < historyStates.size(); ++i) {
QHistoryState *h = historyStates.at(i);
QHistoryStatePrivate::get(h)->configuration.clear();
@@ -1440,7 +1440,7 @@ void QStateMachinePrivate::goToState(QAbstractState *targetState)
Q_ASSERT(sourceState != 0);
// Reuse previous GoToStateTransition in case of several calls to
// goToState() in a row.
- GoToStateTransition *trans = qFindChild<GoToStateTransition*>(sourceState);
+ GoToStateTransition *trans = sourceState->findChild<GoToStateTransition*>();
if (!trans) {
trans = new GoToStateTransition(targetState);
sourceState->addTransition(trans);
@@ -1562,7 +1562,7 @@ void QStateMachinePrivate::unregisterAllTransitions()
{
Q_Q(QStateMachine);
{
- QList<QSignalTransition*> transitions = qFindChildren<QSignalTransition*>(rootState());
+ QList<QSignalTransition*> transitions = rootState()->findChildren<QSignalTransition*>();
for (int i = 0; i < transitions.size(); ++i) {
QSignalTransition *t = transitions.at(i);
if (t->machine() == q)
@@ -1570,7 +1570,7 @@ void QStateMachinePrivate::unregisterAllTransitions()
}
}
{
- QList<QEventTransition*> transitions = qFindChildren<QEventTransition*>(rootState());
+ QList<QEventTransition*> transitions = rootState()->findChildren<QEventTransition*>();
for (int i = 0; i < transitions.size(); ++i) {
QEventTransition *t = transitions.at(i);
if (t->machine() == q)
diff --git a/src/corelib/thread/qmutexpool.cpp b/src/corelib/thread/qmutexpool.cpp
index d9abdc5..59211fb 100644
--- a/src/corelib/thread/qmutexpool.cpp
+++ b/src/corelib/thread/qmutexpool.cpp
@@ -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))
diff --git a/src/corelib/thread/qthreadstorage.h b/src/corelib/thread/qthreadstorage.h
index 3a786ba..6264674 100644
--- a/src/corelib/thread/qthreadstorage.h
+++ b/src/corelib/thread/qthreadstorage.h
@@ -91,8 +91,6 @@ inline
void qThreadStorage_setLocalData(QThreadStorageData &d, T **t)
{ (void) d.set(*t); }
-#ifndef QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
-
// value-based specialization
template <typename T>
inline
@@ -116,8 +114,6 @@ inline
void qThreadStorage_setLocalData(QThreadStorageData &d, T *t)
{ (void) d.set(new T(*t)); }
-#endif // QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
-
// MOC_SKIP_END
#endif
diff --git a/src/corelib/tools/qbytearraymatcher.h b/src/corelib/tools/qbytearraymatcher.h
index 8e7bc21..d3db4e9 100644
--- a/src/corelib/tools/qbytearraymatcher.h
+++ b/src/corelib/tools/qbytearraymatcher.h
@@ -78,7 +78,7 @@ private:
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
diff --git a/src/corelib/tools/qeasingcurve.cpp b/src/corelib/tools/qeasingcurve.cpp
index 1734b03..ee791e0 100644
--- a/src/corelib/tools/qeasingcurve.cpp
+++ b/src/corelib/tools/qeasingcurve.cpp
@@ -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
diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h
index 0777f06..360f99d 100644
--- a/src/corelib/tools/qhash.h
+++ b/src/corelib/tools/qhash.h
@@ -225,7 +225,7 @@ struct QHashNode
inline bool same_key(uint h0, const Key &key0) { return h0 == h && key0 == key; }
};
-#ifndef QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
+
#define Q_HASH_DECLARE_INT_NODES(key_type) \
template <class T> \
struct QHashDummyNode<key_type, T> { \
@@ -253,7 +253,6 @@ Q_HASH_DECLARE_INT_NODES(ushort);
Q_HASH_DECLARE_INT_NODES(int);
Q_HASH_DECLARE_INT_NODES(uint);
#undef Q_HASH_DECLARE_INT_NODES
-#endif // QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
template <class Key, class T>
class QHash
@@ -513,8 +512,6 @@ Q_INLINE_TEMPLATE void QHash<Key, T>::deleteNode2(QHashData::Node *node)
{
#ifdef Q_CC_BOR
concrete(node)->~QHashNode<Key, T>();
-#elif defined(QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION)
- concrete(node)->~QHashNode();
#else
concrete(node)->~Node();
#endif
diff --git a/src/corelib/tools/qmap.h b/src/corelib/tools/qmap.h
index e4b73a1..2d11613 100644
--- a/src/corelib/tools/qmap.h
+++ b/src/corelib/tools/qmap.h
@@ -107,7 +107,6 @@ template <class Key> inline bool qMapLessThanKey(const Key &key1, const Key &key
return key1 < key2;
}
-#ifndef QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
template <class Ptr> inline bool qMapLessThanKey(Ptr *key1, Ptr *key2)
{
Q_ASSERT(sizeof(quintptr) == sizeof(Ptr *));
@@ -119,7 +118,6 @@ template <class Ptr> inline bool qMapLessThanKey(const Ptr *key1, const Ptr *key
Q_ASSERT(sizeof(quintptr) == sizeof(const Ptr *));
return quintptr(key1) < quintptr(key2);
}
-#endif // QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
template <class Key, class T>
struct QMapNode {
@@ -639,13 +637,13 @@ Q_OUTOFLINE_TEMPLATE void QMap<Key, T>::freeData(QMapData *x)
while (next != x) {
cur = next;
next = cur->forward[0];
-#if defined(_MSC_VER) && (_MSC_VER >= 1300)
+#if defined(_MSC_VER)
#pragma warning(disable:4189)
#endif
Node *concreteNode = concrete(reinterpret_cast<QMapData::Node *>(cur));
concreteNode->key.~Key();
concreteNode->value.~T();
-#if defined(_MSC_VER) && (_MSC_VER >= 1300)
+#if defined(_MSC_VER)
#pragma warning(default:4189)
#endif
}
diff --git a/src/corelib/tools/qpair.qdoc b/src/corelib/tools/qpair.qdoc
index e60243f..d49c09e 100644
--- a/src/corelib/tools/qpair.qdoc
+++ b/src/corelib/tools/qpair.qdoc
@@ -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
diff --git a/src/corelib/tools/qshareddata.h b/src/corelib/tools/qshareddata.h
index 7e9934d..80ba7b7 100644
--- a/src/corelib/tools/qshareddata.h
+++ b/src/corelib/tools/qshareddata.h
@@ -161,14 +161,12 @@ public:
explicit QExplicitlySharedDataPointer(T *data);
inline QExplicitlySharedDataPointer(const QExplicitlySharedDataPointer<T> &o) : d(o.d) { if (d) d->ref.ref(); }
-#ifndef QT_NO_MEMBER_TEMPLATES
template<class X>
inline QExplicitlySharedDataPointer(const QExplicitlySharedDataPointer<X> &o) : d(static_cast<T *>(o.data()))
{
if(d)
d->ref.ref();
}
-#endif
inline QExplicitlySharedDataPointer<T> & operator=(const QExplicitlySharedDataPointer<T> &o) {
if (o.d != d) {
diff --git a/src/corelib/tools/qsharedpointer.cpp b/src/corelib/tools/qsharedpointer.cpp
index f102598..8f9559a 100644
--- a/src/corelib/tools/qsharedpointer.cpp
+++ b/src/corelib/tools/qsharedpointer.cpp
@@ -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
@@ -1275,8 +1275,6 @@ QT_END_NAMESPACE
-#if !defined(QT_NO_MEMBER_TEMPLATES)
-
//# define QT_SHARED_POINTER_BACKTRACE_SUPPORT
# ifdef QT_SHARED_POINTER_BACKTRACE_SUPPORT
# if defined(__GLIBC__) && (__GLIBC__ >= 2) && !defined(__UCLIBC__) && !defined(QT_LINUXBASE)
@@ -1501,5 +1499,3 @@ void QtSharedPointer::internalSafetyCheckCleanCheck()
}
QT_END_NAMESPACE
-
-#endif
diff --git a/src/corelib/tools/qsharedpointer.h b/src/corelib/tools/qsharedpointer.h
index c51ade6..e0f4dca 100644
--- a/src/corelib/tools/qsharedpointer.h
+++ b/src/corelib/tools/qsharedpointer.h
@@ -47,10 +47,7 @@
#include <QtCore/qshareddata.h>
#ifndef Q_QDOC
-# if !defined(QT_NO_MEMBER_TEMPLATES)
-// QSharedPointer requires member template support
# include <QtCore/qsharedpointer_impl.h>
-# endif
#else
QT_BEGIN_HEADER
diff --git a/src/corelib/tools/qsharedpointer_impl.h b/src/corelib/tools/qsharedpointer_impl.h
index 083c7c2..bb06f3a 100644
--- a/src/corelib/tools/qsharedpointer_impl.h
+++ b/src/corelib/tools/qsharedpointer_impl.h
@@ -109,7 +109,6 @@ namespace QtSharedPointer {
template <class T> inline void normalDeleter(T *t) { delete t; }
// this uses partial template specialization
- // the only compilers that didn't support this were MSVC 6.0 and 2002
template <class T> struct RemovePointer;
template <class T> struct RemovePointer<T *> { typedef T Type; };
template <class T> struct RemovePointer<QSharedPointer<T> > { typedef T Type; };
@@ -323,7 +322,6 @@ namespace QtSharedPointer {
protected:
typedef ExternalRefCountData Data;
- inline void ref() const { d->weakref.ref(); d->strongref.ref(); }
inline void deref()
{ deref(d, this->value); }
static inline void deref(Data *d, T *value)
@@ -388,7 +386,13 @@ namespace QtSharedPointer {
template <class X>
inline void internalCopy(const ExternalRefCount<X> &other)
{
- internalSet(other.d, other.data());
+ Data *o = other.d;
+ T *actual = other.value;
+ if (o)
+ other.ref();
+ qSwap(d, o);
+ qSwap(this->value, actual);
+ deref(o, actual);
}
inline void internalSwap(ExternalRefCount &other)
@@ -404,6 +408,7 @@ namespace QtSharedPointer {
template <class X> friend class QT_PREPEND_NAMESPACE(QWeakPointer);
template <class X, class Y> friend QSharedPointer<X> copyAndSetPointer(X * ptr, const QSharedPointer<Y> &src);
#endif
+ inline void ref() const { d->weakref.ref(); d->strongref.ref(); }
inline void internalSet(Data *o, T *actual)
{
diff --git a/src/corelib/tools/qsimd_p.h b/src/corelib/tools/qsimd_p.h
index 5ff0f97..a3148fb 100644
--- a/src/corelib/tools/qsimd_p.h
+++ b/src/corelib/tools/qsimd_p.h
@@ -150,7 +150,9 @@ enum CPUFeatures {
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
diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp
index 3068af7..7bc9ca1 100644
--- a/src/corelib/tools/qstring.cpp
+++ b/src/corelib/tools/qstring.cpp
@@ -336,11 +336,7 @@ inline char qToLower(char ch)
return ch;
}
-#if defined(Q_CC_MSVC) && _MSC_VER <= 1300
-const QString::Null QString::null;
-#else
const QString::Null QString::null = { };
-#endif
/*!
\macro QT_NO_CAST_FROM_ASCII
@@ -6670,8 +6666,9 @@ QString QString::arg(qlonglong a, int fieldWidth, int base, const QChar &fillCha
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);
@@ -6713,8 +6710,9 @@ QString QString::arg(qulonglong a, int fieldWidth, int base, const QChar &fillCh
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);
@@ -6847,7 +6845,8 @@ QString QString::arg(double a, int fieldWidth, char fmt, int prec, const QChar &
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);
}
diff --git a/src/corelib/tools/qstring.h b/src/corelib/tools/qstring.h
index 952c572..7f7e475 100644
--- a/src/corelib/tools/qstring.h
+++ b/src/corelib/tools/qstring.h
@@ -51,14 +51,7 @@
#endif
#ifndef QT_NO_STL
-# if defined (Q_CC_MSVC_NET) && _MSC_VER < 1310 // Avoids nasty warning for xlocale, line 450
-# pragma warning (push)
-# pragma warning (disable : 4189)
-# include <string>
-# pragma warning (pop)
-# else
-# include <string>
-# endif
+# include <string>
# ifndef QT_NO_STL_WCHAR
// workaround for some headers not typedef'ing std::wstring
diff --git a/src/corelib/tools/qstringmatcher.h b/src/corelib/tools/qstringmatcher.h
index 1aafcb8..451aeb6 100644
--- a/src/corelib/tools/qstringmatcher.h
+++ b/src/corelib/tools/qstringmatcher.h
@@ -78,7 +78,7 @@ private:
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
diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h
index c2e2485..5613c12 100644
--- a/src/corelib/tools/qvector.h
+++ b/src/corelib/tools/qvector.h
@@ -789,11 +789,8 @@ QT_END_INCLUDE_NAMESPACE
#else
#define Q_TEMPLATE_EXTERN extern
#endif
-# pragma warning(push) /* MSVC 6.0 doesn't care about the disabling in qglobal.h (why?), so do it here */
-# pragma warning(disable: 4231) /* nonstandard extension used : 'extern' before template explicit instantiation */
Q_TEMPLATE_EXTERN template class Q_CORE_EXPORT QVector<QPointF>;
Q_TEMPLATE_EXTERN template class Q_CORE_EXPORT QVector<QPoint>;
-# pragma warning(pop)
#endif
QT_END_NAMESPACE
diff --git a/src/corelib/xml/qxmlstream.cpp b/src/corelib/xml/qxmlstream.cpp
index 853f311..91c3a19 100644
--- a/src/corelib/xml/qxmlstream.cpp
+++ b/src/corelib/xml/qxmlstream.cpp
@@ -1523,7 +1523,7 @@ ushort QXmlStreamReaderPrivate::getChar_helper()
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."));
diff --git a/src/dbus/qdbusabstractinterface.cpp b/src/dbus/qdbusabstractinterface.cpp
index 4e9c1ad..9ff0ff1 100644
--- a/src/dbus/qdbusabstractinterface.cpp
+++ b/src/dbus/qdbusabstractinterface.cpp
@@ -208,7 +208,7 @@ bool QDBusAbstractInterfacePrivate::setProperty(const QMetaProperty &mp, const Q
QLatin1String(DBUS_INTERFACE_PROPERTIES),
QLatin1String("Set"));
QDBusMessagePrivate::setParametersValidated(msg, true);
- msg << interface << QString::fromUtf8(mp.name()) << qVariantFromValue(QDBusVariant(value));
+ msg << interface << QString::fromUtf8(mp.name()) << QVariant::fromValue(QDBusVariant(value));
QDBusMessage reply = connection.call(msg, QDBus::Block);
if (reply.type() != QDBusMessage::ReplyMessage) {
diff --git a/src/dbus/qdbusargument.cpp b/src/dbus/qdbusargument.cpp
index fbbc6a2..0bde085 100644
--- a/src/dbus/qdbusargument.cpp
+++ b/src/dbus/qdbusargument.cpp
@@ -825,7 +825,7 @@ void QDBusArgument::endStructure()
\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 @@ void QDBusArgument::endStructure() const
\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},
diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp
index 5cbb8ca..bf771a8 100644
--- a/src/dbus/qdbusconnection.cpp
+++ b/src/dbus/qdbusconnection.cpp
@@ -173,6 +173,9 @@ void QDBusConnectionManager::setConnection(const QString &name, QDBusConnectionP
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 @@ void QDBusConnectionManager::setConnection(const QString &name, QDBusConnectionP
\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 @@ void QDBusConnectionManager::setConnection(const QString &name, QDBusConnectionP
\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 @@ void QDBusConnectionManager::setConnection(const QString &name, QDBusConnectionP
\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 @@ QDBusConnectionInterface *QDBusConnection::interface() const
/*!
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
{
diff --git a/src/dbus/qdbusdemarshaller.cpp b/src/dbus/qdbusdemarshaller.cpp
index 6e19218..0df4c6b 100644
--- a/src/dbus/qdbusdemarshaller.cpp
+++ b/src/dbus/qdbusdemarshaller.cpp
@@ -188,11 +188,11 @@ QVariant QDBusDemarshaller::toVariantInternal()
{
switch (q_dbus_message_iter_get_arg_type(&iterator)) {
case DBUS_TYPE_BYTE:
- return qVariantFromValue(toByte());
+ return QVariant::fromValue(toByte());
case DBUS_TYPE_INT16:
- return qVariantFromValue(toShort());
+ return QVariant::fromValue(toShort());
case DBUS_TYPE_UINT16:
- return qVariantFromValue(toUShort());
+ return QVariant::fromValue(toUShort());
case DBUS_TYPE_INT32:
return toInt();
case DBUS_TYPE_UINT32:
@@ -208,11 +208,11 @@ QVariant QDBusDemarshaller::toVariantInternal()
case DBUS_TYPE_STRING:
return toString();
case DBUS_TYPE_OBJECT_PATH:
- return qVariantFromValue(toObjectPath());
+ return QVariant::fromValue(toObjectPath());
case DBUS_TYPE_SIGNATURE:
- return qVariantFromValue(toSignature());
+ return QVariant::fromValue(toSignature());
case DBUS_TYPE_VARIANT:
- return qVariantFromValue(toVariant());
+ return QVariant::fromValue(toVariant());
case DBUS_TYPE_ARRAY:
switch (q_dbus_message_iter_get_element_type(&iterator)) {
@@ -222,14 +222,14 @@ QVariant QDBusDemarshaller::toVariantInternal()
case DBUS_TYPE_STRING:
return toStringList();
case DBUS_TYPE_DICT_ENTRY:
- return qVariantFromValue(duplicate());
+ return QVariant::fromValue(duplicate());
default:
- return qVariantFromValue(duplicate());
+ return QVariant::fromValue(duplicate());
}
case DBUS_TYPE_STRUCT:
- return qVariantFromValue(duplicate());
+ return QVariant::fromValue(duplicate());
default:
qWarning("QDBusDemarshaller: Found unknown D-Bus type %d '%c'",
diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
index 7951177..b479b32 100644
--- a/src/dbus/qdbusintegrator.cpp
+++ b/src/dbus/qdbusintegrator.cpp
@@ -806,14 +806,14 @@ bool QDBusConnectionPrivate::activateCall(QObject* object, int flags, const QDBu
slotData.slotIdx = -1;
slotData.metaTypes.clear();
slotCache.hash.insert(cacheKey, slotData);
- object->setProperty(cachePropertyName, qVariantFromValue(slotCache));
+ object->setProperty(cachePropertyName, QVariant::fromValue(slotCache));
return false;
}
}
// save to the cache
slotCache.hash.insert(cacheKey, slotData);
- object->setProperty(cachePropertyName, qVariantFromValue(slotCache));
+ object->setProperty(cachePropertyName, QVariant::fromValue(slotCache));
// found the slot to be called
deliverCall(object, flags, msg, slotData.metaTypes, slotData.slotIdx);
diff --git a/src/dbus/qdbusinternalfilters.cpp b/src/dbus/qdbusinternalfilters.cpp
index 78abf94..b6cf1fd 100644
--- a/src/dbus/qdbusinternalfilters.cpp
+++ b/src/dbus/qdbusinternalfilters.cpp
@@ -264,7 +264,7 @@ QDBusMessage qDBusPropertyGet(const QDBusConnectionPrivate::ObjectTreeNode &node
return propertyNotFoundError(msg, interface_name, property_name);
}
- return msg.createReply(qVariantFromValue(QDBusVariant(value)));
+ return msg.createReply(QVariant::fromValue(QDBusVariant(value)));
}
enum PropertyWriteResult {
@@ -334,7 +334,7 @@ static int writeProperty(QObject *obj, const QByteArray &property_name, QVariant
// we have to demarshall before writing
void *null = 0;
QVariant other(id, null);
- if (!QDBusMetaType::demarshall(qVariantValue<QDBusArgument>(value), id, other.data())) {
+ if (!QDBusMetaType::demarshall(qvariant_cast<QDBusArgument>(value), id, other.data())) {
qWarning("QDBusConnection: type `%s' (%d) is not registered with QtDBus. "
"Use qDBusRegisterMetaType to register it",
mp.typeName(), id);
@@ -495,7 +495,7 @@ QDBusMessage qDBusPropertyGetAll(const QDBusConnectionPrivate::ObjectTreeNode &n
return interfaceNotFoundError(msg, interface_name);
}
- return msg.createReply(qVariantFromValue(result));
+ return msg.createReply(QVariant::fromValue(result));
}
QT_END_NAMESPACE
diff --git a/src/declarative/debugger/qdeclarativedebug.cpp b/src/declarative/debugger/qdeclarativedebug.cpp
index b950aef..19d8ab3 100644
--- a/src/declarative/debugger/qdeclarativedebug.cpp
+++ b/src/declarative/debugger/qdeclarativedebug.cpp
@@ -194,7 +194,7 @@ void QDeclarativeEngineDebugPrivate::decode(QDataStream &ds, QDeclarativeDebugOb
{
QDeclarativeDebugObjectReference obj;
obj.m_debugId = prop.m_value.toInt();
- prop.m_value = qVariantFromValue(obj);
+ prop.m_value = QVariant::fromValue(obj);
break;
}
case QDeclarativeEngineDebugServer::QDeclarativeObjectProperty::Unknown:
diff --git a/src/declarative/debugger/qpacketprotocol.cpp b/src/declarative/debugger/qpacketprotocol.cpp
index 878f42f..c2f7709 100644
--- a/src/declarative/debugger/qpacketprotocol.cpp
+++ b/src/declarative/debugger/qpacketprotocol.cpp
@@ -125,7 +125,7 @@ public:
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)),
diff --git a/src/declarative/graphicsitems/qdeclarativeflipable.cpp b/src/declarative/graphicsitems/qdeclarativeflipable.cpp
index 8c9d2dd..b266273 100644
--- a/src/declarative/graphicsitems/qdeclarativeflipable.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeflipable.cpp
@@ -83,10 +83,16 @@ public:
\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}
*/
diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp
index 2c295cd..cc7c673 100644
--- a/src/declarative/graphicsitems/qdeclarativeitem.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp
@@ -1432,11 +1432,6 @@ QDeclarativeKeysAttached *QDeclarativeKeysAttached::qmlAttachedProperties(QObjec
*/
/*!
- \fn void QDeclarativeItem::childrenChanged()
- \internal
-*/
-
-/*!
\fn void QDeclarativeItem::focusChanged(bool)
\internal
*/
@@ -2411,18 +2406,7 @@ void QDeclarativeItemPrivate::focusChanged(bool flag)
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 */
@@ -2470,7 +2454,7 @@ QDeclarativeListProperty<QDeclarativeState> QDeclarativeItemPrivate::states()
}
\endqml
- \sa {state-transitions}{Transitions}
+ \sa {qdeclarativeanimation.html#transitions}{QML Transitions}
*/
@@ -2516,7 +2500,9 @@ QDeclarativeListProperty<QDeclarativeTransition> QDeclarativeItemPrivate::transi
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.
*/
@@ -2740,12 +2726,12 @@ QVariant QDeclarativeItem::itemChange(GraphicsItemChange change,
}
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;
@@ -2855,6 +2841,41 @@ void QDeclarativeItem::setSmooth(bool smooth)
}
/*!
+ \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
*/
@@ -2875,6 +2896,41 @@ void QDeclarativeItem::setSmooth(bool smooth)
*/
/*!
+ \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
*/
@@ -3142,8 +3198,7 @@ bool QDeclarativeItem::hasActiveFocus() const
{
Q_D(const QDeclarativeItem);
return focusItem() == this ||
- (d->flags & QGraphicsItem::ItemIsFocusScope && focusItem() != 0) ||
- (!parentItem() && focusItem() != 0);
+ (d->flags & QGraphicsItem::ItemIsFocusScope && focusItem() != 0);
}
/*!
@@ -3163,10 +3218,8 @@ bool QDeclarativeItem::hasActiveFocus() const
}
\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 {
@@ -3192,7 +3245,7 @@ bool QDeclarativeItem::hasFocus() const
p = p->parentItem();
}
- return hasActiveFocus() ? true : (!QGraphicsItem::parentItem() ? true : false);
+ return hasActiveFocus();
}
/*! \internal */
diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp
index 82b3e1c..e1dd1c0 100644
--- a/src/declarative/graphicsitems/qdeclarativelistview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp
@@ -1021,7 +1021,7 @@ void QDeclarativeListViewPrivate::updateCurrent(int modelIndex)
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 {
diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp
index 06ac275..380c6ad 100644
--- a/src/declarative/graphicsitems/qdeclarativepathview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp
@@ -426,7 +426,7 @@ QDeclarativePathView::~QDeclarativePathView()
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}
*/
@@ -650,8 +650,8 @@ void QDeclarativePathViewPrivate::setOffset(qreal o)
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 {
@@ -1061,7 +1061,7 @@ void QDeclarativePathView::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
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;
}
diff --git a/src/declarative/graphicsitems/qdeclarativerepeater.cpp b/src/declarative/graphicsitems/qdeclarativerepeater.cpp
index 2b268fb..68e7e9a 100644
--- a/src/declarative/graphicsitems/qdeclarativerepeater.cpp
+++ b/src/declarative/graphicsitems/qdeclarativerepeater.cpp
@@ -133,13 +133,13 @@ QDeclarativeRepeaterPrivate::~QDeclarativeRepeaterPrivate()
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
diff --git a/src/declarative/graphicsitems/qdeclarativetranslate.cpp b/src/declarative/graphicsitems/qdeclarativetranslate.cpp
index be9b3f3..0bae0cd 100644
--- a/src/declarative/graphicsitems/qdeclarativetranslate.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetranslate.cpp
@@ -125,12 +125,4 @@ void QDeclarativeTranslate::applyTo(QMatrix4x4 *matrix) const
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
diff --git a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp
index ceb1961..a489b5a 100644
--- a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp
+++ b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp
@@ -525,7 +525,7 @@ QVariant QDeclarativeVisualDataModelDataMetaObject::initialValue(int propId)
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;
}
diff --git a/src/declarative/qml/parser/qdeclarativejsengine_p.h b/src/declarative/qml/parser/qdeclarativejsengine_p.h
index 1389244..d0b744d 100644
--- a/src/declarative/qml/parser/qdeclarativejsengine_p.h
+++ b/src/declarative/qml/parser/qdeclarativejsengine_p.h
@@ -88,12 +88,6 @@ uint qHash(const QDeclarativeJS::NameId &id);
} // end of namespace QDeclarativeJS
-#if defined(Q_CC_MSVC) && _MSC_VER <= 1300
-//this ensures that code outside QDeclarativeJS can use the hash function
-//it also a workaround for some compilers
-inline uint qHash(const QDeclarativeJS::NameId &nameId) { return QDeclarativeJS::qHash(nameId); }
-#endif
-
namespace QDeclarativeJS {
class Lexer;
diff --git a/src/declarative/qml/qdeclarativecompiledbindings.cpp b/src/declarative/qml/qdeclarativecompiledbindings.cpp
index 507e47b..723da94 100644
--- a/src/declarative/qml/qdeclarativecompiledbindings.cpp
+++ b/src/declarative/qml/qdeclarativecompiledbindings.cpp
@@ -1628,7 +1628,7 @@ void QDeclarativeBindingCompiler::dump(const QByteArray &programData)
/*!
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()
{
diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp
index ba757fc..2b4a4a5 100644
--- a/src/declarative/qml/qdeclarativecompiler.cpp
+++ b/src/declarative/qml/qdeclarativecompiler.cpp
@@ -2215,10 +2215,11 @@ bool QDeclarativeCompiler::checkDynamicMeta(QDeclarativeParser::Object *obj)
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 (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(propName))
COMPILE_EXCEPTION(&prop, tr("Illegal property name"));
propNames.insert(prop.name);
@@ -2228,9 +2229,10 @@ bool QDeclarativeCompiler::checkDynamicMeta(QDeclarativeParser::Object *obj)
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 (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(nameStr))
COMPILE_EXCEPTION(obj, tr("Illegal signal name"));
methodNames.insert(name);
}
@@ -2238,9 +2240,10 @@ bool QDeclarativeCompiler::checkDynamicMeta(QDeclarativeParser::Object *obj)
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 (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(nameStr))
COMPILE_EXCEPTION(obj, tr("Illegal method name"));
methodNames.insert(name);
}
diff --git a/src/declarative/qml/qdeclarativecomponent.cpp b/src/declarative/qml/qdeclarativecomponent.cpp
index 1d48b1a..5f4a063 100644
--- a/src/declarative/qml/qdeclarativecomponent.cpp
+++ b/src/declarative/qml/qdeclarativecomponent.cpp
@@ -192,7 +192,7 @@ class QByteArray;
\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()
@@ -518,7 +518,7 @@ void QDeclarativeComponent::loadUrl(const QUrl &url)
}
/*!
- 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
diff --git a/src/declarative/qml/qdeclarativecontext.cpp b/src/declarative/qml/qdeclarativecontext.cpp
index 3d25291..a58dc6c 100644
--- a/src/declarative/qml/qdeclarativecontext.cpp
+++ b/src/declarative/qml/qdeclarativecontext.cpp
@@ -80,10 +80,12 @@ QDeclarativeContextPrivate::QDeclarativeContextPrivate()
\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 @@ QDeclarativeContextPrivate::QDeclarativeContextPrivate()
...
};
- 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
diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp
index e8cb36e..3fe89a5 100644
--- a/src/declarative/qml/qdeclarativeengine.cpp
+++ b/src/declarative/qml/qdeclarativeengine.cpp
@@ -184,11 +184,12 @@ void QDeclarativeEnginePrivate::defineModule()
}
/*!
-\keyword QmlGlobalQtObject
-\qmlclass Qt QDeclarativeEnginePrivate
+\qmlclass QML:Qt QDeclarativeEnginePrivate
\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 +207,9 @@ Text {
\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
@@ -1289,7 +1289,7 @@ QScriptValue QDeclarativeEnginePrivate::vector3d(QScriptContext *ctxt, QScriptEn
qsreal x = ctxt->argument(0).toNumber();
qsreal y = ctxt->argument(1).toNumber();
qsreal z = ctxt->argument(2).toNumber();
- return QDeclarativeEnginePrivate::get(engine)->scriptValueFromVariant(qVariantFromValue(QVector3D(x, y, z)));
+ return QDeclarativeEnginePrivate::get(engine)->scriptValueFromVariant(QVariant::fromValue(QVector3D(x, y, z)));
}
/*!
@@ -1309,14 +1309,14 @@ QScriptValue QDeclarativeEnginePrivate::formatDate(QScriptContext*ctxt, QScriptE
QScriptValue formatArg = ctxt->argument(1);
if (formatArg.isString()) {
QString format = formatArg.toString();
- return engine->newVariant(qVariantFromValue(date.toString(format)));
+ return engine->newVariant(QVariant::fromValue(date.toString(format)));
} else if (formatArg.isNumber()) {
enumFormat = Qt::DateFormat(formatArg.toUInt32());
} else {
return ctxt->throwError(QLatin1String("Qt.formatDate(): Invalid date format"));
}
}
- return engine->newVariant(qVariantFromValue(date.toString(enumFormat)));
+ return engine->newVariant(QVariant::fromValue(date.toString(enumFormat)));
}
/*!
@@ -1337,14 +1337,14 @@ QScriptValue QDeclarativeEnginePrivate::formatTime(QScriptContext*ctxt, QScriptE
QScriptValue formatArg = ctxt->argument(1);
if (formatArg.isString()) {
QString format = formatArg.toString();
- return engine->newVariant(qVariantFromValue(date.toString(format)));
+ return engine->newVariant(QVariant::fromValue(date.toString(format)));
} else if (formatArg.isNumber()) {
enumFormat = Qt::DateFormat(formatArg.toUInt32());
} else {
return ctxt->throwError(QLatin1String("Qt.formatTime(): Invalid time format"));
}
}
- return engine->newVariant(qVariantFromValue(date.toString(enumFormat)));
+ return engine->newVariant(QVariant::fromValue(date.toString(enumFormat)));
}
/*!
@@ -1428,14 +1428,14 @@ QScriptValue QDeclarativeEnginePrivate::formatDateTime(QScriptContext*ctxt, QScr
QScriptValue formatArg = ctxt->argument(1);
if (formatArg.isString()) {
QString format = formatArg.toString();
- return engine->newVariant(qVariantFromValue(date.toString(format)));
+ return engine->newVariant(QVariant::fromValue(date.toString(format)));
} else if (formatArg.isNumber()) {
enumFormat = Qt::DateFormat(formatArg.toUInt32());
} else {
return ctxt->throwError(QLatin1String("Qt.formatDateTime(): Invalid datetime format"));
}
}
- return engine->newVariant(qVariantFromValue(date.toString(enumFormat)));
+ return engine->newVariant(QVariant::fromValue(date.toString(enumFormat)));
}
#endif // QT_NO_DATESTRING
@@ -1464,7 +1464,7 @@ QScriptValue QDeclarativeEnginePrivate::rgba(QScriptContext *ctxt, QScriptEngine
if (a < 0.0) a=0.0;
if (a > 1.0) a=1.0;
- return qScriptValueFromValue(engine, qVariantFromValue(QColor::fromRgbF(r, g, b, a)));
+ return engine->toScriptValue(QVariant::fromValue(QColor::fromRgbF(r, g, b, a)));
}
/*!
@@ -1492,7 +1492,7 @@ QScriptValue QDeclarativeEnginePrivate::hsla(QScriptContext *ctxt, QScriptEngine
if (a < 0.0) a=0.0;
if (a > 1.0) a=1.0;
- return qScriptValueFromValue(engine, qVariantFromValue(QColor::fromHslF(h, s, l, a)));
+ return engine->toScriptValue(QVariant::fromValue(QColor::fromHslF(h, s, l, a)));
}
/*!
@@ -1515,7 +1515,7 @@ QScriptValue QDeclarativeEnginePrivate::rect(QScriptContext *ctxt, QScriptEngine
if (w < 0 || h < 0)
return engine->nullValue();
- return QDeclarativeEnginePrivate::get(engine)->scriptValueFromVariant(qVariantFromValue(QRectF(x, y, w, h)));
+ return QDeclarativeEnginePrivate::get(engine)->scriptValueFromVariant(QVariant::fromValue(QRectF(x, y, w, h)));
}
/*!
@@ -1528,7 +1528,7 @@ QScriptValue QDeclarativeEnginePrivate::point(QScriptContext *ctxt, QScriptEngin
return ctxt->throwError(QLatin1String("Qt.point(): Invalid arguments"));
qsreal x = ctxt->argument(0).toNumber();
qsreal y = ctxt->argument(1).toNumber();
- return QDeclarativeEnginePrivate::get(engine)->scriptValueFromVariant(qVariantFromValue(QPointF(x, y)));
+ return QDeclarativeEnginePrivate::get(engine)->scriptValueFromVariant(QVariant::fromValue(QPointF(x, y)));
}
/*!
@@ -1541,7 +1541,7 @@ QScriptValue QDeclarativeEnginePrivate::size(QScriptContext *ctxt, QScriptEngine
return ctxt->throwError(QLatin1String("Qt.size(): Invalid arguments"));
qsreal w = ctxt->argument(0).toNumber();
qsreal h = ctxt->argument(1).toNumber();
- return QDeclarativeEnginePrivate::get(engine)->scriptValueFromVariant(qVariantFromValue(QSizeF(w, h)));
+ return QDeclarativeEnginePrivate::get(engine)->scriptValueFromVariant(QVariant::fromValue(QSizeF(w, h)));
}
/*!
@@ -1577,7 +1577,7 @@ QScriptValue QDeclarativeEnginePrivate::lighter(QScriptContext *ctxt, QScriptEng
if (ctxt->argumentCount() == 2)
factor = ctxt->argument(1).toNumber();
color = color.lighter(int(qRound(factor*100.)));
- return qScriptValueFromValue(engine, qVariantFromValue(color));
+ return engine->toScriptValue(QVariant::fromValue(color));
}
/*!
@@ -1614,7 +1614,7 @@ QScriptValue QDeclarativeEnginePrivate::darker(QScriptContext *ctxt, QScriptEngi
if (ctxt->argumentCount() == 2)
factor = ctxt->argument(1).toNumber();
color = color.darker(int(qRound(factor*100.)));
- return qScriptValueFromValue(engine, qVariantFromValue(color));
+ return engine->toScriptValue(QVariant::fromValue(color));
}
/*!
@@ -1849,7 +1849,7 @@ QScriptValue QDeclarativeEnginePrivate::tint(QScriptContext *ctxt, QScriptEngine
a + inv_a * color.alphaF());
}
- return qScriptValueFromValue(engine, qVariantFromValue(finalColor));
+ return engine->toScriptValue(QVariant::fromValue(finalColor));
}
QScriptValue QDeclarativeEnginePrivate::scriptValueFromVariant(const QVariant &val)
@@ -1879,7 +1879,7 @@ QScriptValue QDeclarativeEnginePrivate::scriptValueFromVariant(const QVariant &v
if (objOk) {
return objectClass->newQObject(obj);
} else {
- return qScriptValueFromValue(&scriptEngine, val);
+ return scriptEngine.toScriptValue(val);
}
}
diff --git a/src/declarative/qml/qdeclarativeexpression.cpp b/src/declarative/qml/qdeclarativeexpression.cpp
index 585fb69..6fc4df0 100644
--- a/src/declarative/qml/qdeclarativeexpression.cpp
+++ b/src/declarative/qml/qdeclarativeexpression.cpp
@@ -143,16 +143,12 @@ void QDeclarativeExpressionPrivate::init(QDeclarativeContextData *ctxt, void *ex
} 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;
diff --git a/src/declarative/qml/qdeclarativeimageprovider.cpp b/src/declarative/qml/qdeclarativeimageprovider.cpp
index 241df87..ea68327 100644
--- a/src/declarative/qml/qdeclarativeimageprovider.cpp
+++ b/src/declarative/qml/qdeclarativeimageprovider.cpp
@@ -59,13 +59,13 @@ public:
\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 @@ public:
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 @@ public:
}
\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 @@ public:
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()
*/
diff --git a/src/declarative/qml/qdeclarativeinfo.cpp b/src/declarative/qml/qdeclarativeinfo.cpp
index c980a2a..c6560dd 100644
--- a/src/declarative/qml/qdeclarativeinfo.cpp
+++ b/src/declarative/qml/qdeclarativeinfo.cpp
@@ -53,6 +53,7 @@ QT_BEGIN_NAMESPACE
/*!
\fn QDeclarativeInfo qmlInfo(const QObject *object)
+ \relates QDeclarativeEngine
\brief Prints warnings messages that include the file and line number for QML types.
diff --git a/src/declarative/qml/qdeclarativeinstruction.cpp b/src/declarative/qml/qdeclarativeinstruction.cpp
index 0f7b09d..1767d2f 100644
--- a/src/declarative/qml/qdeclarativeinstruction.cpp
+++ b/src/declarative/qml/qdeclarativeinstruction.cpp
@@ -218,7 +218,7 @@ void QDeclarativeCompiledData::dump(QDeclarativeInstruction *instr, int idx)
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
diff --git a/src/declarative/qml/qdeclarativelist.h b/src/declarative/qml/qdeclarativelist.h
index 399b2a1..c10bc11 100644
--- a/src/declarative/qml/qdeclarativelist.h
+++ b/src/declarative/qml/qdeclarativelist.h
@@ -98,16 +98,16 @@ public:
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
diff --git a/src/declarative/qml/qdeclarativeprivate.h b/src/declarative/qml/qdeclarativeprivate.h
index b2d7451..d45ddbc 100644
--- a/src/declarative/qml/qdeclarativeprivate.h
+++ b/src/declarative/qml/qdeclarativeprivate.h
@@ -105,7 +105,7 @@ namespace QDeclarativePrivate
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 @@ namespace QDeclarativePrivate
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 @@ namespace QDeclarativePrivate
template <typename T, bool hasMember>
class has_attachedPropertiesMethod
{
+ public:
typedef int yes_type;
typedef char no_type;
@@ -139,7 +140,6 @@ namespace QDeclarativePrivate
static yes_type check(ReturnType *(*)(QObject *));
static no_type check(...);
- public:
static bool const value = sizeof(check(&T::qmlAttachedProperties)) == sizeof(yes_type);
};
diff --git a/src/declarative/qml/qdeclarativeproperty.cpp b/src/declarative/qml/qdeclarativeproperty.cpp
index 071dd07..515c4d6 100644
--- a/src/declarative/qml/qdeclarativeproperty.cpp
+++ b/src/declarative/qml/qdeclarativeproperty.cpp
@@ -640,7 +640,7 @@ QDeclarativePropertyPrivate::binding(const QDeclarativeProperty &that)
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,
diff --git a/src/declarative/qml/qdeclarativescriptparser.cpp b/src/declarative/qml/qdeclarativescriptparser.cpp
index f703cf5..0657f49 100644
--- a/src/declarative/qml/qdeclarativescriptparser.cpp
+++ b/src/declarative/qml/qdeclarativescriptparser.cpp
@@ -760,7 +760,7 @@ bool ProcessAST::visit(AST::UiArrayBinding *node)
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--)
diff --git a/src/declarative/qml/qdeclarativesqldatabase.cpp b/src/declarative/qml/qdeclarativesqldatabase.cpp
index 45f277e..42b596a 100644
--- a/src/declarative/qml/qdeclarativesqldatabase.cpp
+++ b/src/declarative/qml/qdeclarativesqldatabase.cpp
@@ -237,7 +237,7 @@ static QScriptValue qmlsqldatabase_executeSql(QScriptContext *context, QScriptEn
if (!qmlengine->sqlQueryClass)
qmlengine->sqlQueryClass = new QDeclarativeSqlQueryScriptClass(engine);
QScriptValue rows = engine->newObject(qmlengine->sqlQueryClass);
- rows.setData(engine->newVariant(qVariantFromValue(query)));
+ rows.setData(engine->newVariant(QVariant::fromValue(query)));
rows.setProperty(QLatin1String("item"), engine->newFunction(qmlsqldatabase_item,1), QScriptValue::SkipInEnumeration);
result.setProperty(QLatin1String("rows"),rows);
result.setProperty(QLatin1String("rowsAffected"),query.numRowsAffected());
@@ -275,7 +275,7 @@ static QScriptValue qmlsqldatabase_change_version(QScriptContext *context, QScri
QScriptValue instance = engine->newObject();
instance.setProperty(QLatin1String("executeSql"), engine->newFunction(qmlsqldatabase_executeSql,1));
- QScriptValue tx = engine->newVariant(instance,qVariantFromValue(db));
+ QScriptValue tx = engine->newVariant(instance,QVariant::fromValue(db));
QString foundvers = context->thisObject().property(QLatin1String("version")).toString();
if (from_version!=foundvers) {
@@ -319,7 +319,7 @@ static QScriptValue qmlsqldatabase_transaction_shared(QScriptContext *context, Q
QScriptValue instance = engine->newObject();
instance.setProperty(QLatin1String("executeSql"),
engine->newFunction(readOnly ? qmlsqldatabase_executeSql_readonly : qmlsqldatabase_executeSql,1));
- QScriptValue tx = engine->newVariant(instance,qVariantFromValue(db));
+ QScriptValue tx = engine->newVariant(instance,QVariant::fromValue(db));
db.transaction();
callback.call(QScriptValue(), QScriptValueList() << tx);
@@ -403,7 +403,7 @@ static QScriptValue qmlsqldatabase_open_sync(QScriptContext *context, QScriptEng
instance.setProperty(QLatin1String("version"), version, QScriptValue::ReadOnly);
instance.setProperty(QLatin1String("changeVersion"), engine->newFunction(qmlsqldatabase_change_version,3));
- QScriptValue result = engine->newVariant(instance,qVariantFromValue(database));
+ QScriptValue result = engine->newVariant(instance,QVariant::fromValue(database));
if (created && dbcreationCallback.isFunction()) {
dbcreationCallback.call(QScriptValue(), QScriptValueList() << result);
diff --git a/src/declarative/qml/qdeclarativestringconverters.cpp b/src/declarative/qml/qdeclarativestringconverters.cpp
index 7534a2c..8ec68ff 100644
--- a/src/declarative/qml/qdeclarativestringconverters.cpp
+++ b/src/declarative/qml/qdeclarativestringconverters.cpp
@@ -92,7 +92,7 @@ QVariant QDeclarativeStringConverters::variantFromString(const QString &s)
QSizeF sz = sizeFFromString(s, &ok);
if (ok) return QVariant(sz);
QVector3D v = vector3DFromString(s, &ok);
- if (ok) return qVariantFromValue(v);
+ if (ok) return QVariant::fromValue(v);
return QVariant(s);
}
diff --git a/src/declarative/qml/qdeclarativeworkerscript.cpp b/src/declarative/qml/qdeclarativeworkerscript.cpp
index aec84a6..a42f131 100644
--- a/src/declarative/qml/qdeclarativeworkerscript.cpp
+++ b/src/declarative/qml/qdeclarativeworkerscript.cpp
@@ -331,7 +331,7 @@ QVariant QDeclarativeWorkerScriptEnginePrivate::scriptValueToVariant(const QScri
QDeclarativeListModelWorkerAgent *agent = lm->agent();
if (agent) {
QDeclarativeListModelWorkerAgent::VariantRef v(agent);
- return qVariantFromValue(v);
+ return QVariant::fromValue(v);
} else {
return QVariant();
}
diff --git a/src/declarative/qml/qdeclarativexmlhttprequest.cpp b/src/declarative/qml/qdeclarativexmlhttprequest.cpp
index ff1a0e9..8c97e29 100644
--- a/src/declarative/qml/qdeclarativexmlhttprequest.cpp
+++ b/src/declarative/qml/qdeclarativexmlhttprequest.cpp
@@ -510,7 +510,7 @@ QScriptValue Node::create(QScriptEngine *engine, NodeImpl *data)
node.d = data;
if (data) A(data);
- return engine->newVariant(instance, qVariantFromValue(node));
+ return engine->newVariant(instance, QVariant::fromValue(node));
}
QScriptValue Element::prototype(QScriptEngine *engine)
@@ -710,7 +710,7 @@ QScriptValue Document::load(QScriptEngine *engine, const QByteArray &data)
instance.setPrototype(Document::prototype(engine));
Node documentNode;
documentNode.d = document;
- return engine->newVariant(instance, qVariantFromValue(documentNode));
+ return engine->newVariant(instance, QVariant::fromValue(documentNode));
}
Node::Node()
@@ -761,7 +761,7 @@ QScriptValue NamedNodeMap::create(QScriptEngine *engine, NodeImpl *data, QList<N
map.list = list;
if (data) A(data);
- instance.setData(engine->newVariant(qVariantFromValue(map)));
+ instance.setData(engine->newVariant(QVariant::fromValue(map)));
if (!QDeclarativeScriptEngine::get(engine)->namedNodeMapClass)
QDeclarativeScriptEngine::get(engine)->namedNodeMapClass= new NamedNodeMapClass(engine);
@@ -818,7 +818,7 @@ QScriptValue NodeList::create(QScriptEngine *engine, NodeImpl *data)
list.d = data;
if (data) A(data);
- instance.setData(engine->newVariant(qVariantFromValue(list)));
+ instance.setData(engine->newVariant(QVariant::fromValue(list)));
if (!QDeclarativeScriptEngine::get(engine)->nodeListClass)
QDeclarativeScriptEngine::get(engine)->nodeListClass= new NodeListClass(engine);
diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp
index 6a9cf95..a747706 100644
--- a/src/declarative/util/qdeclarativeanimation.cpp
+++ b/src/declarative/util/qdeclarativeanimation.cpp
@@ -645,12 +645,13 @@ QAbstractAnimation *QDeclarativePauseAnimation::qtAnimation()
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}
@@ -1143,7 +1144,7 @@ void QDeclarativePropertyAction::transition(QDeclarativeStateActions &actions,
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
@@ -1244,6 +1245,11 @@ void QDeclarativeNumberAnimation::setTo(qreal t)
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}
*/
@@ -1323,7 +1329,7 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t)
\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
@@ -1331,7 +1337,7 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t)
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}
@@ -1554,7 +1560,7 @@ QDeclarativeListProperty<QDeclarativeAbstractAnimation> QDeclarativeAnimationGro
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
@@ -1623,7 +1629,7 @@ void QDeclarativeSequentialAnimation::transition(QDeclarativeStateActions &actio
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
@@ -2396,8 +2402,7 @@ void QDeclarativePropertyAnimation::transition(QDeclarativeStateActions &actions
\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
@@ -2415,10 +2420,16 @@ void QDeclarativePropertyAnimation::transition(QDeclarativeStateActions &actions
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 overridden 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}
*/
@@ -2750,14 +2761,23 @@ QAbstractAnimation *QDeclarativeParentAnimation::qtAnimation()
\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)
diff --git a/src/declarative/util/qdeclarativebehavior.cpp b/src/declarative/util/qdeclarativebehavior.cpp
index fadb2ae..1e7f81a 100644
--- a/src/declarative/util/qdeclarativebehavior.cpp
+++ b/src/declarative/util/qdeclarativebehavior.cpp
@@ -84,12 +84,15 @@ public:
\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
*/
diff --git a/src/declarative/util/qdeclarativelistmodel.cpp b/src/declarative/util/qdeclarativelistmodel.cpp
index 3ede335..3a6a5b0 100644
--- a/src/declarative/util/qdeclarativelistmodel.cpp
+++ b/src/declarative/util/qdeclarativelistmodel.cpp
@@ -108,9 +108,9 @@ QDeclarativeListModelParser::ListInstruction *QDeclarativeListModelParser::ListM
\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
@@ -283,8 +283,7 @@ int QDeclarativeListModel::count() const
/*!
\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()
*/
@@ -708,7 +707,7 @@ void QDeclarativeListModelParser::setCustomData(QObject *obj, const QByteArray &
{
ModelNode *n = nodes.top();
ModelNode *n2 = new ModelNode;
- n->values << qVariantFromValue(n2);
+ n->values << QVariant::fromValue(n2);
nodes.push(n2);
if (processingSet)
n->isArray = true;
@@ -864,7 +863,7 @@ QScriptValue FlatListModel::get(int index) const
QHash<int, QVariant> row = m_values.at(index);
for (QHash<int, QVariant>::ConstIterator iter = row.begin(); iter != row.end(); ++iter)
- rv.setProperty(m_roles.value(iter.key()), qScriptValueFromValue(scriptEngine, iter.value()));
+ rv.setProperty(m_roles.value(iter.key()), scriptEngine->toScriptValue(iter.value()));
return rv;
}
@@ -945,13 +944,14 @@ bool FlatListModel::addValue(const QScriptValue &value, QHash<int, QVariant> *ro
}
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 +1051,8 @@ void NestedListModel::clear()
_rolesOk = false;
roleStrings.clear();
- delete _root;
- _root = 0;
+ if (_root)
+ _root->clear();
}
void NestedListModel::remove(int index)
@@ -1067,12 +1067,14 @@ void NestedListModel::remove(int index)
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);
- _root->values.insert(index,qVariantFromValue(mn));
+ _root->values.insert(index,QVariant::fromValue(mn));
return true;
}
@@ -1099,11 +1101,13 @@ void NestedListModel::move(int from, int to, int n)
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);
+ _root->values << QVariant::fromValue(mn);
return true;
}
@@ -1205,16 +1209,22 @@ ModelNode::ModelNode()
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) {
@@ -1252,7 +1262,7 @@ void ModelNode::setListValue(const QScriptValue& valuelist) {
} else {
value->values << v.toVariant();
}
- values.append(qVariantFromValue(value));
+ values.append(QVariant::fromValue(value));
}
}
diff --git a/src/declarative/util/qdeclarativelistmodel_p_p.h b/src/declarative/util/qdeclarativelistmodel_p_p.h
index 532eefa..8231414 100644
--- a/src/declarative/util/qdeclarativelistmodel_p_p.h
+++ b/src/declarative/util/qdeclarativelistmodel_p_p.h
@@ -130,6 +130,7 @@ public:
void checkRoles() const;
ModelNode *_root;
+ bool m_ownsRoot;
QDeclarativeListModel *m_listModel;
private:
@@ -157,6 +158,8 @@ struct ModelNode
QList<QVariant> values;
QHash<QString, ModelNode *> properties;
+ void clear();
+
QDeclarativeListModel *model(const NestedListModel *model) {
if (!modelCache) {
modelCache = new QDeclarativeListModel;
diff --git a/src/declarative/util/qdeclarativepixmapcache.cpp b/src/declarative/util/qdeclarativepixmapcache.cpp
index 9ced14f..de2de21 100644
--- a/src/declarative/util/qdeclarativepixmapcache.cpp
+++ b/src/declarative/util/qdeclarativepixmapcache.cpp
@@ -525,6 +525,7 @@ void QDeclarativePixmapReader::cancel(QDeclarativePixmapReply *reply)
mutex.lock();
if (reply->loading) {
cancelled.append(reply);
+ reply->data = 0;
// XXX
if (threadObject) threadObject->processJobs();
} else {
@@ -738,7 +739,6 @@ void QDeclarativePixmapData::release()
if (refCount == 0) {
if (reply) {
- reply->data = 0;
reply->reader->cancel(reply);
reply = 0;
}
diff --git a/src/declarative/util/qdeclarativepropertymap.cpp b/src/declarative/util/qdeclarativepropertymap.cpp
index 919727f..6b43040 100644
--- a/src/declarative/util/qdeclarativepropertymap.cpp
+++ b/src/declarative/util/qdeclarativepropertymap.cpp
@@ -104,22 +104,25 @@ void QDeclarativePropertyMapMetaObject::propertyCreated(int, QMetaPropertyBuilde
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
diff --git a/src/declarative/util/qdeclarativesmoothedanimation.cpp b/src/declarative/util/qdeclarativesmoothedanimation.cpp
index 727f427..30e1491 100644
--- a/src/declarative/util/qdeclarativesmoothedanimation.cpp
+++ b/src/declarative/util/qdeclarativesmoothedanimation.cpp
@@ -287,7 +287,7 @@ void QSmoothedAnimation::init()
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}
diff --git a/src/declarative/util/qdeclarativespringanimation.cpp b/src/declarative/util/qdeclarativespringanimation.cpp
index 8ce4832..6f4ac51 100644
--- a/src/declarative/util/qdeclarativespringanimation.cpp
+++ b/src/declarative/util/qdeclarativespringanimation.cpp
@@ -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 @@ public:
};
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 @@ void QDeclarativeSpringAnimationPrivate::tick(int time)
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 @@ void QDeclarativeSpringAnimationPrivate::tick(int time)
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,7 @@ void QDeclarativeSpringAnimationPrivate::updateMode()
/*!
\qmlclass SpringAnimation QDeclarativeSpringAnimation
+ \inherits Animation
\since 4.7
\brief The SpringAnimation element allows a property to track a value in a spring-like motion.
@@ -223,86 +247,23 @@ void QDeclarativeSpringAnimationPrivate::updateMode()
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)
-{
-}
-
-QDeclarativeSpringAnimation::~QDeclarativeSpringAnimation()
-{
-}
-
-void QDeclarativeSpringAnimation::setTarget(const QDeclarativeProperty &property)
+: QDeclarativeNumberAnimation(*(new QDeclarativeSpringAnimationPrivate),parent)
{
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);
+ d->clock = new QDeclarativeSpringAnimationPrivate::Clock(d, this);
}
-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)
+QDeclarativeSpringAnimation::~QDeclarativeSpringAnimation()
{
- 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 +413,25 @@ void QDeclarativeSpringAnimation::transition(QDeclarativeStateActions &actions,
Q_D(QDeclarativeSpringAnimation);
Q_UNUSED(direction);
- if (d->clock.state() != QAbstractAnimation::Running)
+ if (d->clock->state() != QAbstractAnimation::Running) {
d->lastTime = 0;
+ }
- 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;
+ QDeclarativeNumberAnimation::transition(actions, modified, direction);
+
+ if (!d->actions)
+ return;
+
+ 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 +440,7 @@ void QDeclarativeSpringAnimation::transition(QDeclarativeStateActions &actions,
QAbstractAnimation *QDeclarativeSpringAnimation::qtAnimation()
{
Q_D(QDeclarativeSpringAnimation);
- return &d->clock;
+ return d->clock;
}
QT_END_NAMESPACE
diff --git a/src/declarative/util/qdeclarativespringanimation_p.h b/src/declarative/util/qdeclarativespringanimation_p.h
index 6f574ef..ee276ec 100644
--- a/src/declarative/util/qdeclarativespringanimation_p.h
+++ b/src/declarative/util/qdeclarativespringanimation_p.h
@@ -54,14 +54,12 @@ QT_BEGIN_NAMESPACE
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 @@ public:
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 @@ public:
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 @@ protected:
virtual QAbstractAnimation *qtAnimation();
Q_SIGNALS:
- void toChanged(qreal);
- void fromChanged(qreal);
void modulusChanged();
void massChanged();
void syncChanged();
diff --git a/src/declarative/util/qdeclarativestate.cpp b/src/declarative/util/qdeclarativestate.cpp
index 0d43d21..028bacb 100644
--- a/src/declarative/util/qdeclarativestate.cpp
+++ b/src/declarative/util/qdeclarativestate.cpp
@@ -154,13 +154,14 @@ QDeclarativeStateOperation::QDeclarativeStateOperation(QObjectPrivate &dd, QObje
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
*/
/*!
diff --git a/src/declarative/util/qdeclarativestategroup.cpp b/src/declarative/util/qdeclarativestategroup.cpp
index 67cd12e..1c1e964 100644
--- a/src/declarative/util/qdeclarativestategroup.cpp
+++ b/src/declarative/util/qdeclarativestategroup.cpp
@@ -112,7 +112,7 @@ public:
}
\endqml
- \sa {qmlstate}{States} {state-transitions}{Transitions}, {QtDeclarative}
+ \sa {qmlstate}{States} {Transitions}, {QtDeclarative}
*/
QDeclarativeStateGroup::QDeclarativeStateGroup(QObject *parent)
@@ -204,7 +204,7 @@ void QDeclarativeStateGroupPrivate::clear_states(QDeclarativeListProperty<QDecla
}
\endqml
- \sa {state-transitions}{Transitions}
+ \sa {Transitions}
*/
QDeclarativeListProperty<QDeclarativeTransition> QDeclarativeStateGroup::transitionsProperty()
{
diff --git a/src/declarative/util/qdeclarativetransition.cpp b/src/declarative/util/qdeclarativetransition.cpp
index 582191b..aa1426c 100644
--- a/src/declarative/util/qdeclarativetransition.cpp
+++ b/src/declarative/util/qdeclarativetransition.cpp
@@ -60,12 +60,25 @@ QT_BEGIN_NAMESPACE
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
+ 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
@@ -78,7 +91,11 @@ QT_BEGIN_NAMESPACE
}
\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.
+
+ \sa {QML Animation}, {declarative/animation/states}{states example}, {qmlstates}{States}, {QtDeclarative}
*/
/*!
diff --git a/src/declarative/util/qdeclarativexmllistmodel.cpp b/src/declarative/util/qdeclarativexmllistmodel.cpp
index 7c1e1fd..ece3d3a 100644
--- a/src/declarative/util/qdeclarativexmllistmodel.cpp
+++ b/src/declarative/util/qdeclarativexmllistmodel.cpp
@@ -560,7 +560,7 @@ void QDeclarativeXmlListModelPrivate::clear_role(QDeclarativeListProperty<QDecla
ListView {
width: 180; height: 300
model: xmlModel
- delegate: Text { text: title + " (" + pubDate + ")" }
+ delegate: Text { text: title + ": " + pubDate }
}
\endqml
@@ -809,7 +809,7 @@ QScriptValue QDeclarativeXmlListModel::get(int index) const
QScriptValue sv = sengine->newObject();
for (int i=0; i<d->roleObjects.count(); i++)
- sv.setProperty(d->roleObjects[i]->name(), qScriptValueFromValue(sengine, d->data.value(i).value(index)));
+ sv.setProperty(d->roleObjects[i]->name(), sengine->toScriptValue(d->data.value(i).value(index)));
return sv;
}
@@ -855,6 +855,12 @@ qreal QDeclarativeXmlListModel::progress() const
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);
diff --git a/src/gui/accessible/qaccessible.cpp b/src/gui/accessible/qaccessible.cpp
index 0921bdb..a6d1dbd 100644
--- a/src/gui/accessible/qaccessible.cpp
+++ b/src/gui/accessible/qaccessible.cpp
@@ -409,13 +409,18 @@ static void qAccessibleCleanup()
/*!
\typedef QAccessible::InterfaceFactory
- A function pointer type. Use a function with this prototype to install
- interface factories with installFactory().
+ This is a typedef for a pointer to a function with the following
+ signature:
- The function receives a QObject pointer. If the QObject
- provides a QAccessibleInterface, it sets the second parameter to
- point to the corresponding QAccessibleInterface, and returns true;
- otherwise returns false.
+ \snippet doc/src/snippets/code/src_gui_accessible_qaccessible.cpp 1
+
+ The function receives a QString and a QObject pointer, where the
+ QString is the key identifying the interface. The QObject is used
+ to pass on to the QAccessibleInterface so that it can hold a reference
+ to it.
+
+ If the key and the QObject does not have a corresponding
+ QAccessibleInterface, a null-pointer will be returned.
Installed factories are called by queryAccessibilityInterface() until
one provides an interface.
diff --git a/src/gui/accessible/qaccessibleobject.cpp b/src/gui/accessible/qaccessibleobject.cpp
index 7b2e7ce..3a4809e 100644
--- a/src/gui/accessible/qaccessibleobject.cpp
+++ b/src/gui/accessible/qaccessibleobject.cpp
@@ -276,7 +276,7 @@ QAccessible::Relation QAccessibleApplication::relationTo(int child, const
for (int i = 0; i < tlw.count(); ++i) {
QWidget *w = tlw.at(i);
- QObjectList cl = qFindChildren<QObject *>(w, QString());
+ QObjectList cl = w->findChildren<QObject *>(QString());
if (cl.contains(o))
return Ancestor;
}
diff --git a/src/gui/accessible/qaccessiblewidget.cpp b/src/gui/accessible/qaccessiblewidget.cpp
index 7c13367..5b439a9 100644
--- a/src/gui/accessible/qaccessiblewidget.cpp
+++ b/src/gui/accessible/qaccessiblewidget.cpp
@@ -1015,7 +1015,7 @@ QVariant QAccessibleWidgetEx::invokeMethodEx(Method method, int child, const QVa
case ListSupportedMethods: {
QSet<QAccessible::Method> set;
set << ListSupportedMethods << ForegroundColor << BackgroundColor;
- return qVariantFromValue(set);
+ return QVariant::fromValue(set);
}
case ForegroundColor:
return widget()->palette().color(widget()->foregroundRole());
diff --git a/src/gui/dialogs/qdialog.cpp b/src/gui/dialogs/qdialog.cpp
index 9e0437c..5a791fc 100644
--- a/src/gui/dialogs/qdialog.cpp
+++ b/src/gui/dialogs/qdialog.cpp
@@ -337,7 +337,7 @@ void QDialogPrivate::setDefault(QPushButton *pushButton)
{
Q_Q(QDialog);
bool hasMain = false;
- QList<QPushButton*> list = qFindChildren<QPushButton*>(q);
+ QList<QPushButton*> list = q->findChildren<QPushButton*>();
for (int i=0; i<list.size(); ++i) {
QPushButton *pb = list.at(i);
if (pb->window() == q) {
@@ -372,7 +372,7 @@ void QDialogPrivate::setMainDefault(QPushButton *pushButton)
void QDialogPrivate::hideDefault()
{
Q_Q(QDialog);
- QList<QPushButton*> list = qFindChildren<QPushButton*>(q);
+ QList<QPushButton*> list = q->findChildren<QPushButton*>();
for (int i=0; i<list.size(); ++i) {
list.at(i)->setDefault(false);
}
@@ -675,7 +675,7 @@ void QDialog::keyPressEvent(QKeyEvent *e)
switch (e->key()) {
case Qt::Key_Enter:
case Qt::Key_Return: {
- QList<QPushButton*> list = qFindChildren<QPushButton*>(this);
+ QList<QPushButton*> list = findChildren<QPushButton*>();
for (int i=0; i<list.size(); ++i) {
QPushButton *pb = list.at(i);
if (pb->isDefault() && pb->isVisible()) {
diff --git a/src/gui/dialogs/qfontdialog_mac.mm b/src/gui/dialogs/qfontdialog_mac.mm
index bb8ef3f..9c63dfa 100644
--- a/src/gui/dialogs/qfontdialog_mac.mm
+++ b/src/gui/dialogs/qfontdialog_mac.mm
@@ -131,6 +131,7 @@ const int StyleMask = NSTitledWindowMask | NSClosableWindowMask | NSResizableWin
- (QFont)qtFont;
- (void)finishOffWithCode:(NSInteger)result;
- (void)cleanUpAfterMyself;
+- (void)setSubwindowStacking;
@end
static QFont qfontForCocoaFont(NSFont *cocoaFont, const QFont &resolveFont)
@@ -187,6 +188,12 @@ static QFont qfontForCocoaFont(NSFont *cocoaFont, const QFont &resolveFont)
[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 @@ static QFont qfontForCocoaFont(NSFont *cocoaFont, const QFont &resolveFont)
}
}
#endif
-
- mQtFont = new QFont();
- return self;
}
- (void)dealloc
@@ -610,6 +614,7 @@ void QFontDialogPrivate::createNSFontPanelDelegate()
[ourPanel setFrame:frameRect display:NO];
[ourPanel center];
}
+ [del setSubwindowStacking];
NSString *title = @"Select font";
[ourPanel setTitle:title];
}
diff --git a/src/gui/dialogs/qmessagebox.cpp b/src/gui/dialogs/qmessagebox.cpp
index fe25b0f..f849996 100644
--- a/src/gui/dialogs/qmessagebox.cpp
+++ b/src/gui/dialogs/qmessagebox.cpp
@@ -412,7 +412,7 @@ void QMessageBoxPrivate::updateSize()
void QMessageBoxPrivate::hideSpecial()
{
Q_Q(QMessageBox);
- QList<QPushButton*> list = qFindChildren<QPushButton*>(q);
+ QList<QPushButton*> list = q->findChildren<QPushButton*>();
for (int i=0; i<list.size(); ++i) {
QPushButton *pb = list.at(i);
QString text = pb->text();
@@ -1266,7 +1266,7 @@ bool QMessageBox::event(QEvent *e)
(e->type() == QEvent::OkRequest)
? QApplication::translate("QMessageBox", "OK")
: QApplication::translate("QMessageBox", "Help");
- QList<QPushButton*> list = qFindChildren<QPushButton*>(this);
+ QList<QPushButton*> list = findChildren<QPushButton*>();
for (int i=0; i<list.size(); ++i) {
QPushButton *pb = list.at(i);
if (pb->text() == bName) {
@@ -1513,7 +1513,7 @@ static QMessageBox::StandardButton showNewMessageBox(QWidget *parent,
int(defaultButton), 0);
QMessageBox msgBox(icon, title, text, QMessageBox::NoButton, parent);
- QDialogButtonBox *buttonBox = qFindChild<QDialogButtonBox*>(&msgBox);
+ QDialogButtonBox *buttonBox = msgBox.findChild<QDialogButtonBox*>();
Q_ASSERT(buttonBox != 0);
uint mask = QMessageBox::FirstButton;
diff --git a/src/gui/embedded/qkbdlinuxinput_qws.cpp b/src/gui/embedded/qkbdlinuxinput_qws.cpp
index 6c91a08..f53c444 100644
--- a/src/gui/embedded/qkbdlinuxinput_qws.cpp
+++ b/src/gui/embedded/qkbdlinuxinput_qws.cpp
@@ -138,7 +138,7 @@ QWSLinuxInputKbPrivate::QWSLinuxInputKbPrivate(QWSLinuxInputKeyboardHandler *h,
// 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);
diff --git a/src/gui/embedded/qkbdqnx_qws.cpp b/src/gui/embedded/qkbdqnx_qws.cpp
index fbc683e..72d1cb5 100644
--- a/src/gui/embedded/qkbdqnx_qws.cpp
+++ b/src/gui/embedded/qkbdqnx_qws.cpp
@@ -150,7 +150,7 @@ void QWSQnxKeyboardHandler::socketActivated()
// 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;
diff --git a/src/gui/graphicsview/qgraphicsgridlayout.cpp b/src/gui/graphicsview/qgraphicsgridlayout.cpp
index 062b5ac..4104834 100644
--- a/src/gui/graphicsview/qgraphicsgridlayout.cpp
+++ b/src/gui/graphicsview/qgraphicsgridlayout.cpp
@@ -589,6 +589,18 @@ void QGraphicsGridLayout::removeAt(int index)
}
/*!
+ Removes the layout item \a item without destroying it.
+ Ownership of the item is transferred to the caller.
+
+ \sa addItem()
+*/
+void QGraphicsGridLayout::removeItem(QGraphicsLayoutItem *item)
+{
+ Q_D(QGraphicsGridLayout);
+ int index = d->engine.indexOf(item);
+ removeAt(index);
+}
+/*!
\reimp
*/
void QGraphicsGridLayout::invalidate()
@@ -641,7 +653,8 @@ QSizeF QGraphicsGridLayout::sizeHint(Qt::SizeHint which, const QSizeF &constrain
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;
}
diff --git a/src/gui/graphicsview/qgraphicsgridlayout.h b/src/gui/graphicsview/qgraphicsgridlayout.h
index ddfb447..d10235c 100644
--- a/src/gui/graphicsview/qgraphicsgridlayout.h
+++ b/src/gui/graphicsview/qgraphicsgridlayout.h
@@ -114,6 +114,7 @@ public:
int count() const;
QGraphicsLayoutItem *itemAt(int index) const;
void removeAt(int index);
+ void removeItem(QGraphicsLayoutItem *item);
void invalidate();
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index bf0f280..fdc512e 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -1700,12 +1700,12 @@ void QGraphicsItem::setParentItem(QGraphicsItem *newParent)
return;
const QVariant newParentVariant(itemChange(QGraphicsItem::ItemParentChange,
- qVariantFromValue<QGraphicsItem *>(newParent)));
- newParent = qVariantValue<QGraphicsItem *>(newParentVariant);
+ QVariant::fromValue<QGraphicsItem *>(newParent)));
+ newParent = qvariant_cast<QGraphicsItem *>(newParentVariant);
if (newParent == d_ptr->parent)
return;
- const QVariant thisPointerVariant(qVariantFromValue<QGraphicsItem *>(this));
+ const QVariant thisPointerVariant(QVariant::fromValue<QGraphicsItem *>(this));
d_ptr->setParentItemHelper(newParent, &newParentVariant, &thisPointerVariant);
}
@@ -2125,7 +2125,7 @@ void QGraphicsItem::setToolTip(const QString &toolTip)
*/
QCursor QGraphicsItem::cursor() const
{
- return qVariantValue<QCursor>(d_ptr->extra(QGraphicsItemPrivate::ExtraCursor));
+ return qvariant_cast<QCursor>(d_ptr->extra(QGraphicsItemPrivate::ExtraCursor));
}
/*!
@@ -2145,8 +2145,8 @@ QCursor QGraphicsItem::cursor() const
*/
void QGraphicsItem::setCursor(const QCursor &cursor)
{
- const QVariant cursorVariant(itemChange(ItemCursorChange, qVariantFromValue<QCursor>(cursor)));
- d_ptr->setExtra(QGraphicsItemPrivate::ExtraCursor, qVariantValue<QCursor>(cursorVariant));
+ const QVariant cursorVariant(itemChange(ItemCursorChange, QVariant::fromValue<QCursor>(cursor)));
+ d_ptr->setExtra(QGraphicsItemPrivate::ExtraCursor, qvariant_cast<QCursor>(cursorVariant));
d_ptr->hasCursor = 1;
if (d_ptr->scene) {
d_ptr->scene->d_func()->allItemsUseDefaultCursor = false;
@@ -2272,7 +2272,7 @@ void QGraphicsItemPrivate::setVisibleHelper(bool newVisible, bool explicitly, bo
// Schedule redrawing
if (update) {
- QGraphicsItemCache *c = (QGraphicsItemCache *)qVariantValue<void *>(extra(ExtraCacheData));
+ QGraphicsItemCache *c = (QGraphicsItemCache *)qvariant_cast<void *>(extra(ExtraCacheData));
if (c)
c->purge();
if (scene) {
@@ -3259,8 +3259,12 @@ void QGraphicsItemPrivate::setFocusHelper(Qt::FocusReason focusReason, bool clim
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;
@@ -3691,7 +3695,7 @@ void QGraphicsItem::setPos(const QPointF &pos)
}
// Notify the item that the position is changing.
- const QVariant newPosVariant(itemChange(ItemPositionChange, qVariantFromValue<QPointF>(pos)));
+ const QVariant newPosVariant(itemChange(ItemPositionChange, QVariant::fromValue<QPointF>(pos)));
QPointF newPos = newPosVariant.toPointF();
if (newPos == d_ptr->pos)
return;
@@ -4045,7 +4049,7 @@ void QGraphicsItem::setTransformOriginPoint(const QPointF &origin)
if (d_ptr->flags & ItemSendsGeometryChanges) {
// Notify the item that the origin point is changing.
const QVariant newOriginVariant(itemChange(ItemTransformOriginPointChange,
- qVariantFromValue<QPointF>(origin)));
+ QVariant::fromValue<QPointF>(origin)));
newOrigin = newOriginVariant.toPointF();
}
@@ -4064,7 +4068,7 @@ void QGraphicsItem::setTransformOriginPoint(const QPointF &origin)
// Send post-notification.
if (d_ptr->flags & ItemSendsGeometryChanges)
- itemChange(ItemTransformOriginPointHasChanged, qVariantFromValue<QPointF>(newOrigin));
+ itemChange(ItemTransformOriginPointHasChanged, QVariant::fromValue<QPointF>(newOrigin));
}
/*!
@@ -4326,8 +4330,8 @@ void QGraphicsItem::setMatrix(const QMatrix &matrix, bool combine)
}
// Notify the item that the transformation matrix is changing.
- const QVariant newMatrixVariant = qVariantFromValue<QMatrix>(newTransform.toAffine());
- newTransform = QTransform(qVariantValue<QMatrix>(itemChange(ItemMatrixChange, newMatrixVariant)));
+ const QVariant newMatrixVariant = QVariant::fromValue<QMatrix>(newTransform.toAffine());
+ newTransform = QTransform(qvariant_cast<QMatrix>(itemChange(ItemMatrixChange, newMatrixVariant)));
if (d_ptr->transformData->transform == newTransform)
return;
@@ -4335,7 +4339,7 @@ void QGraphicsItem::setMatrix(const QMatrix &matrix, bool combine)
d_ptr->setTransformHelper(newTransform);
// Send post-notification.
- itemChange(ItemTransformHasChanged, qVariantFromValue<QTransform>(newTransform));
+ itemChange(ItemTransformHasChanged, QVariant::fromValue<QTransform>(newTransform));
}
/*!
@@ -4376,8 +4380,8 @@ void QGraphicsItem::setTransform(const QTransform &matrix, bool combine)
// Notify the item that the transformation matrix is changing.
const QVariant newTransformVariant(itemChange(ItemTransformChange,
- qVariantFromValue<QTransform>(newTransform)));
- newTransform = qVariantValue<QTransform>(newTransformVariant);
+ QVariant::fromValue<QTransform>(newTransform)));
+ newTransform = qvariant_cast<QTransform>(newTransformVariant);
if (d_ptr->transformData->transform == newTransform)
return;
@@ -5230,7 +5234,7 @@ QRegion QGraphicsItem::boundingRegion(const QTransform &itemToDeviceTransform) c
qreal QGraphicsItem::boundingRegionGranularity() const
{
return d_ptr->hasBoundingRegionGranularity
- ? qVariantValue<qreal>(d_ptr->extra(QGraphicsItemPrivate::ExtraBoundingRegionGranularity))
+ ? qvariant_cast<qreal>(d_ptr->extra(QGraphicsItemPrivate::ExtraBoundingRegionGranularity))
: 0;
}
@@ -5266,7 +5270,7 @@ void QGraphicsItem::setBoundingRegionGranularity(qreal granularity)
}
d_ptr->hasBoundingRegionGranularity = 1;
d_ptr->setExtra(QGraphicsItemPrivate::ExtraBoundingRegionGranularity,
- qVariantFromValue<qreal>(granularity));
+ QVariant::fromValue<qreal>(granularity));
}
/*!
@@ -5441,7 +5445,7 @@ void QGraphicsItemPrivate::removeChild(QGraphicsItem *child)
*/
QGraphicsItemCache *QGraphicsItemPrivate::maybeExtraItemCache() const
{
- return (QGraphicsItemCache *)qVariantValue<void *>(extra(ExtraCacheData));
+ return (QGraphicsItemCache *)qvariant_cast<void *>(extra(ExtraCacheData));
}
/*!
@@ -5449,11 +5453,11 @@ QGraphicsItemCache *QGraphicsItemPrivate::maybeExtraItemCache() const
*/
QGraphicsItemCache *QGraphicsItemPrivate::extraItemCache() const
{
- QGraphicsItemCache *c = (QGraphicsItemCache *)qVariantValue<void *>(extra(ExtraCacheData));
+ QGraphicsItemCache *c = (QGraphicsItemCache *)qvariant_cast<void *>(extra(ExtraCacheData));
if (!c) {
QGraphicsItemPrivate *that = const_cast<QGraphicsItemPrivate *>(this);
c = new QGraphicsItemCache;
- that->setExtra(ExtraCacheData, qVariantFromValue<void *>(c));
+ that->setExtra(ExtraCacheData, QVariant::fromValue<void *>(c));
}
return c;
}
@@ -5463,7 +5467,7 @@ QGraphicsItemCache *QGraphicsItemPrivate::extraItemCache() const
*/
void QGraphicsItemPrivate::removeExtraItemCache()
{
- QGraphicsItemCache *c = (QGraphicsItemCache *)qVariantValue<void *>(extra(ExtraCacheData));
+ QGraphicsItemCache *c = (QGraphicsItemCache *)qvariant_cast<void *>(extra(ExtraCacheData));
if (c) {
c->purge();
delete c;
@@ -5595,6 +5599,7 @@ void QGraphicsItemPrivate::subFocusItemChange()
*/
void QGraphicsItemPrivate::focusScopeItemChange(bool isSubFocusItem)
{
+ Q_UNUSED(isSubFocusItem);
}
/*!
@@ -7753,6 +7758,21 @@ void QGraphicsItemPrivate::resetHeight()
}
/*!
+ \property QGraphicsObject::children
+ \internal
+*/
+
+/*!
+ \property QGraphicsObject::width
+ \internal
+*/
+
+/*!
+ \property QGraphicsObject::height
+ \internal
+*/
+
+/*!
\property QGraphicsObject::parent
\brief the parent of the item
@@ -7965,6 +7985,24 @@ void QGraphicsItemPrivate::resetHeight()
*/
/*!
+ \property QGraphicsObject::children
+ \since 4.7
+ \internal
+*/
+
+/*!
+ \property QGraphicsObject::width
+ \since 4.7
+ \internal
+*/
+
+/*!
+ \property QGraphicsObject::height
+ \since 4.7
+ \internal
+*/
+
+/*!
\class QAbstractGraphicsShapeItem
\brief The QAbstractGraphicsShapeItem class provides a common base for
all path items.
diff --git a/src/gui/graphicsview/qgraphicslayoutitem.cpp b/src/gui/graphicsview/qgraphicslayoutitem.cpp
index f4d77f0..bfe734a 100644
--- a/src/gui/graphicsview/qgraphicslayoutitem.cpp
+++ b/src/gui/graphicsview/qgraphicslayoutitem.cpp
@@ -48,6 +48,7 @@
#include "qgraphicslayoutitem.h"
#include "qgraphicslayoutitem_p.h"
#include "qwidget.h"
+#include "qgraphicswidget.h"
#include <QtDebug>
@@ -139,9 +140,11 @@ QSizeF *QGraphicsLayoutItemPrivate::effectiveSizeHints(const QSizeF &constraint)
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 @@ void QGraphicsLayoutItemPrivate::setSizeComponent(
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
diff --git a/src/gui/graphicsview/qgraphicslayoutitem_p.h b/src/gui/graphicsview/qgraphicslayoutitem_p.h
index 15cc7a5..b752e03 100644
--- a/src/gui/graphicsview/qgraphicslayoutitem_p.h
+++ b/src/gui/graphicsview/qgraphicslayoutitem_p.h
@@ -65,6 +65,9 @@ class Q_AUTOTEST_EXPORT QGraphicsLayoutItemPrivate
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 @@ public:
enum SizeComponent { Width, Height };
void setSizeComponent(Qt::SizeHint which, SizeComponent component, qreal value);
+ bool hasHeightForWidth() const;
+ bool hasWidthForHeight() const;
+
QSizePolicy sizePolicy;
QGraphicsLayoutItem *parent;
diff --git a/src/gui/graphicsview/qgraphicslinearlayout.cpp b/src/gui/graphicsview/qgraphicslinearlayout.cpp
index 37408ef..1588364 100644
--- a/src/gui/graphicsview/qgraphicslinearlayout.cpp
+++ b/src/gui/graphicsview/qgraphicslinearlayout.cpp
@@ -528,7 +528,8 @@ QSizeF QGraphicsLinearLayout::sizeHint(Qt::SizeHint which, const QSizeF &constra
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;
}
/*!
diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp
index 48a0093..6d1bb44 100644
--- a/src/gui/graphicsview/qgraphicsscene.cpp
+++ b/src/gui/graphicsview/qgraphicsscene.cpp
@@ -831,6 +831,11 @@ void QGraphicsScenePrivate::setFocusItemHelper(QGraphicsItem *item,
#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();
@@ -2543,8 +2548,8 @@ void QGraphicsScene::addItem(QGraphicsItem *item)
// Notify the item that its scene is changing, and allow the item to
// react.
const QVariant newSceneVariant(item->itemChange(QGraphicsItem::ItemSceneChange,
- qVariantFromValue<QGraphicsScene *>(this)));
- QGraphicsScene *targetScene = qVariantValue<QGraphicsScene *>(newSceneVariant);
+ QVariant::fromValue<QGraphicsScene *>(this)));
+ QGraphicsScene *targetScene = qvariant_cast<QGraphicsScene *>(newSceneVariant);
if (targetScene != this) {
if (targetScene && item->d_ptr->scene != targetScene)
targetScene->addItem(item);
@@ -2955,8 +2960,8 @@ void QGraphicsScene::removeItem(QGraphicsItem *item)
// Notify the item that it's scene is changing to 0, allowing the item to
// react.
const QVariant newSceneVariant(item->itemChange(QGraphicsItem::ItemSceneChange,
- qVariantFromValue<QGraphicsScene *>(0)));
- QGraphicsScene *targetScene = qVariantValue<QGraphicsScene *>(newSceneVariant);
+ QVariant::fromValue<QGraphicsScene *>(0)));
+ QGraphicsScene *targetScene = qvariant_cast<QGraphicsScene *>(newSceneVariant);
if (targetScene != 0 && targetScene != this) {
targetScene->addItem(item);
return;
diff --git a/src/gui/graphicsview/qgraphicstransform.cpp b/src/gui/graphicsview/qgraphicstransform.cpp
index 986bee6..bd3f2ef 100644
--- a/src/gui/graphicsview/qgraphicstransform.cpp
+++ b/src/gui/graphicsview/qgraphicstransform.cpp
@@ -345,6 +345,24 @@ void QGraphicsScale::applyTo(QMatrix4x4 *matrix) const
*/
/*!
+ \fn QGraphicsScale::xScaleChanged()
+
+ QGraphicsScale emits this signal when its xScale changes.
+*/
+
+/*!
+ \fn QGraphicsScale::yScaleChanged()
+
+ QGraphicsScale emits this signal when its yScale changes.
+*/
+
+/*!
+ \fn QGraphicsScale::zScaleChanged()
+
+ QGraphicsScale emits this signal when its zScale changes.
+*/
+
+/*!
\fn QGraphicsScale::scaleChanged()
This signal is emitted whenever the xScale, yScale, or zScale
@@ -565,6 +583,27 @@ void QGraphicsRotation::applyTo(QMatrix4x4 *matrix) const
\sa QGraphicsRotation::axis
*/
+/*!
+ \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.
+*/
+
#include "moc_qgraphicstransform.cpp"
QT_END_NAMESPACE
diff --git a/src/gui/graphicsview/qgraphicswidget.cpp b/src/gui/graphicsview/qgraphicswidget.cpp
index c486c45..0fabd18 100644
--- a/src/gui/graphicsview/qgraphicswidget.cpp
+++ b/src/gui/graphicsview/qgraphicswidget.cpp
@@ -385,12 +385,12 @@ void QGraphicsWidget::setGeometry(const QRectF &rect)
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 @@ void QGraphicsWidget::setGeometry(const QRectF &rect)
emit heightChanged();
QApplication::sendEvent(this, &re);
}
+ emit geometryChanged();
}
/*!
diff --git a/src/gui/graphicsview/qgridlayoutengine.cpp b/src/gui/graphicsview/qgridlayoutengine.cpp
index a084647..98e6781 100644
--- a/src/gui/graphicsview/qgridlayoutengine.cpp
+++ b/src/gui/graphicsview/qgridlayoutengine.cpp
@@ -250,6 +250,7 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz
sumAvailable = targetSize - totalBox.q_preferredSize;
if (sumAvailable > 0.0) {
+ qreal sumCurrentAvailable = sumAvailable;
bool somethingHasAMaximumSize = false;
qreal sumPreferredSizes = 0.0;
@@ -308,12 +309,12 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz
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 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz
+ ((beta - alpha) * transitionalFactor)) / beta;
}
sumFactors += factors[i];
- if (desired < sumAvailable)
+ if (desired < sumCurrentAvailable)
somethingHasAMaximumSize = true;
newSizes[i] = -1.0;
@@ -337,12 +338,12 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz
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 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz
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 @@ QSizePolicy::Policy QGridLayoutItem::sizePolicy(Qt::Orientation orientation) con
: 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 @@ QRectF QGridLayoutItem::geometryWithin(qreal x, qreal y, qreal width, qreal heig
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 @@ void QGridLayoutItem::insertOrRemoveRows(int row, int delta, Qt::Orientation ori
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 @@ QSizeF QGridLayoutItem::effectiveMaxSize() const
}
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)
@@ -775,6 +801,15 @@ QGridLayoutItem *QGridLayoutEngine::itemAt(int index) const
return q_items.at(index);
}
+int QGridLayoutEngine::indexOf(QGraphicsLayoutItem *item) const
+{
+ for (int i = 0; i < q_items.size(); ++i) {
+ if (item == q_items.at(i)->layoutItem())
+ return i;
+ }
+ return -1;
+}
+
int QGridLayoutEngine::effectiveFirstRow(Qt::Orientation orientation) const
{
ensureEffectiveFirstAndLastRows();
@@ -1010,6 +1045,7 @@ void QGridLayoutEngine::invalidate()
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 +1110,13 @@ QRectF QGridLayoutEngine::cellRect(const QLayoutStyleInfo &styleInfo,
}
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 +1414,11 @@ void QGridLayoutEngine::fillRowData(QGridLayoutRowData *rowData, const QLayoutSt
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 +1575,138 @@ void QGridLayoutEngine::ensureColumnAndRowData(const QLayoutStyleInfo &styleInfo
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 +1719,74 @@ void QGridLayoutEngine::ensureGeometries(const QLayoutStyleInfo &styleInfo,
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;
}
diff --git a/src/gui/graphicsview/qgridlayoutengine_p.h b/src/gui/graphicsview/qgridlayoutengine_p.h
index 9ac9a8e..55451d7 100644
--- a/src/gui/graphicsview/qgridlayoutengine_p.h
+++ b/src/gui/graphicsview/qgridlayoutengine_p.h
@@ -91,6 +91,14 @@ enum LayoutSide {
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 @@ public:
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 @@ public:
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;
@@ -326,6 +338,7 @@ public:
// returns the number of items inserted, which may be less than (rowCount * columnCount)
int itemCount() const;
QGridLayoutItem *itemAt(int index) const;
+ int indexOf(QGraphicsLayoutItem *item) const;
int effectiveFirstRow(Qt::Orientation orientation = Qt::Vertical) const;
int effectiveLastRow(Qt::Orientation orientation = Qt::Vertical) const;
@@ -372,6 +385,14 @@ public:
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 +426,7 @@ private:
// 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;
diff --git a/src/gui/gui.pro b/src/gui/gui.pro
index 41de3f2..ad79130 100644
--- a/src/gui/gui.pro
+++ b/src/gui/gui.pro
@@ -77,20 +77,28 @@ symbian {
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* {
mmx {
mmx_compiler.commands = $$QMAKE_CXX -c -Winline
diff --git a/src/gui/image/image.pri b/src/gui/image/image.pri
index 1d89a68..92ea397 100644
--- a/src/gui/image/image.pri
+++ b/src/gui/image/image.pri
@@ -99,5 +99,6 @@ contains(QT_CONFIG, tiff):include($$PWD/qtiffhandler.pri)
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
diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp
index 30cf758..300e04b 100644
--- a/src/gui/image/qimage.cpp
+++ b/src/gui/image/qimage.cpp
@@ -2022,6 +2022,88 @@ void QImage::fill(uint pixel)
0, 0, d->width, d->height, d->bytes_per_line);
}
+
+/*!
+ \fn void QImage::fill(Qt::GlobalColor color)
+
+ \overload
+
+ \since 4.8
+ */
+
+void QImage::fill(Qt::GlobalColor color)
+{
+ fill(QColor(color));
+}
+
+
+
+/*!
+ \fn void QImage::fill(Qt::GlobalColor color)
+
+ \overload
+
+ Fills the entire image with the given \a color.
+
+ If the depth of the image is 1, the image will be filled with 1 if
+ \a color equals Qt::color0; it will otherwise be filled with 0.
+
+ If the depth of the image is 8, the image will be filled with the
+ index corresponding the \a color in the color table if present; it
+ will otherwise be filled with 0.|
+
+ \since 4.8
+*/
+
+void QImage::fill(const QColor &color)
+{
+ if (!d)
+ return;
+ detach();
+
+ // In case we run out of memory
+ if (!d)
+ return;
+
+ if (d->depth == 32) {
+ uint pixel = color.rgba();
+ if (d->format == QImage::Format_ARGB32_Premultiplied)
+ pixel = PREMUL(pixel);
+ fill((uint) pixel);
+
+ } else if (d->depth == 16 && d->format == QImage::Format_RGB16) {
+ qrgb565 p(color.rgba());
+ fill((uint) p.rawValue());
+
+ } else if (d->depth == 1) {
+ if (color == Qt::color1)
+ fill((uint) 1);
+ else
+ fill((uint) 0);
+
+ } else if (d->depth == 8) {
+ uint pixel = 0;
+ for (int i=0; i<d->colortable.size(); ++i) {
+ if (color.rgba() == d->colortable.at(i)) {
+ pixel = i;
+ break;
+ }
+ }
+ fill(pixel);
+
+ } else {
+ QPainter p(this);
+ p.setCompositionMode(QPainter::CompositionMode_Source);
+ p.fillRect(rect(), color);
+ }
+
+}
+
+
+
+
+
+
/*!
Inverts all pixel values in the image.
@@ -3769,6 +3851,14 @@ void qInitImageConversions()
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
}
/*!
@@ -4829,7 +4919,7 @@ QImage QImage::rgbSwapped() const
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);
@@ -4843,7 +4933,7 @@ QImage QImage::rgbSwapped() const
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);
@@ -4856,12 +4946,15 @@ QImage QImage::rgbSwapped() const
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;
@@ -4870,7 +4963,7 @@ QImage QImage::rgbSwapped() const
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++);
@@ -4882,12 +4975,15 @@ QImage QImage::rgbSwapped() const
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;
@@ -4895,11 +4991,11 @@ QImage QImage::rgbSwapped() const
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++;
}
@@ -4909,12 +5005,15 @@ QImage QImage::rgbSwapped() const
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;
@@ -4922,8 +5021,8 @@ QImage QImage::rgbSwapped() const
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];
@@ -4935,32 +5034,17 @@ QImage QImage::rgbSwapped() const
}
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;
diff --git a/src/gui/image/qimage.h b/src/gui/image/qimage.h
index f4d1023..db7a4cc 100644
--- a/src/gui/image/qimage.h
+++ b/src/gui/image/qimage.h
@@ -210,6 +210,9 @@ public:
void setColorTable(const QVector<QRgb> colors);
void fill(uint pixel);
+ void fill(const QColor &color);
+ void fill(Qt::GlobalColor color);
+
bool hasAlphaChannel() const;
void setAlphaChannel(const QImage &alphaChannel);
diff --git a/src/gui/image/qimage_neon.cpp b/src/gui/image/qimage_neon.cpp
new file mode 100644
index 0000000..15bf472
--- /dev/null
+++ b/src/gui/image/qimage_neon.cpp
@@ -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
diff --git a/src/gui/image/qimage_ssse3.cpp b/src/gui/image/qimage_ssse3.cpp
index 1c664f2..9aed011 100644
--- a/src/gui/image/qimage_ssse3.cpp
+++ b/src/gui/image/qimage_ssse3.cpp
@@ -45,13 +45,12 @@
#ifdef QT_HAVE_SSSE3
-#include <stdio.h>
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
-inline void convert_rgb888_to_rgb32_ssse3(quint32 *dst, const uchar *src, int len)
+Q_GUI_EXPORT void QT_FASTCALL qt_convert_rgb888_to_rgb32_ssse3(quint32 *dst, const uchar *src, int len)
{
quint32 *const end = dst + len;
@@ -139,7 +138,7 @@ void convert_RGB888_to_RGB32_ssse3(QImageData *dest, const QImageData *src, Qt::
quint32 *dest_data = (quint32 *) dest->data;
for (int i = 0; i < src->height; ++i) {
- convert_rgb888_to_rgb32_ssse3(dest_data, src_data, src->width);
+ 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);
}
diff --git a/src/gui/image/qimagereader.cpp b/src/gui/image/qimagereader.cpp
index ec56af2..03ee902 100644
--- a/src/gui/image/qimagereader.cpp
+++ b/src/gui/image/qimagereader.cpp
@@ -1092,7 +1092,7 @@ QColor QImageReader::backgroundColor() const
if (!d->initHandler())
return QColor();
if (d->handler->supportsOption(QImageIOHandler::BackgroundColor))
- return qVariantValue<QColor>(d->handler->option(QImageIOHandler::BackgroundColor));
+ return qvariant_cast<QColor>(d->handler->option(QImageIOHandler::BackgroundColor));
return QColor();
}
diff --git a/src/gui/image/qjpeghandler.cpp b/src/gui/image/qjpeghandler.cpp
index 972dd65..eda5efb 100644
--- a/src/gui/image/qjpeghandler.cpp
+++ b/src/gui/image/qjpeghandler.cpp
@@ -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 @@ extern "C" {
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 @@ static bool read_jpeg_image(QImage *outImage,
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 @@ bool QJpegHandlerPrivate::read(QImage *image)
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()
diff --git a/src/gui/image/qmnghandler.cpp b/src/gui/image/qmnghandler.cpp
index cf53af0..40f1b54 100644
--- a/src/gui/image/qmnghandler.cpp
+++ b/src/gui/image/qmnghandler.cpp
@@ -481,7 +481,7 @@ void QMngHandler::setOption(ImageOption option, const QVariant & value)
{
Q_D(QMngHandler);
if (option == QImageIOHandler::BackgroundColor)
- d->setBackgroundColor(qVariantValue<QColor>(value));
+ d->setBackgroundColor(qvariant_cast<QColor>(value));
}
/*! \reimp */
diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
index 394d374..c4d60a5 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
+++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
@@ -364,10 +364,10 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints)
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 +379,7 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints)
}
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 +392,7 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints)
hints |= ImhPreferLowercase;
} else if (hints & ImhUppercaseOnly) {
hints |= ImhPreferUppercase;
- } else if (hints & ImhDigitsOnly || hints & ImhFormattedNumbersOnly
- || hints & ImhDialableCharactersOnly) {
+ } else if (numbersOnly) {
hints |= ImhPreferNumbers;
}
}
@@ -408,13 +406,21 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints)
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 +467,33 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints)
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) {
- m_fepState->SetSpecialCharacterTableResourceId(R_AVKON_EMAIL_ADDR_SPECIAL_CHARACTER_TABLE_DIALOG);
- } else if (hints & ImhUrlCharactersOnly) {
+ 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 {
m_fepState->SetSpecialCharacterTableResourceId(R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG);
}
diff --git a/src/gui/inputmethod/qinputcontextfactory.cpp b/src/gui/inputmethod/qinputcontextfactory.cpp
index ec8d8e2..865c1b2 100644
--- a/src/gui/inputmethod/qinputcontextfactory.cpp
+++ b/src/gui/inputmethod/qinputcontextfactory.cpp
@@ -73,7 +73,7 @@
#endif
#ifdef Q_WS_S60
#include "qcoefepinputcontext_p.h"
-#include "akninputlanguageinfo.h"
+#include "AknInputLanguageInfo.h"
#endif
#include "private/qfactoryloader_p.h"
diff --git a/src/gui/itemviews/qabstractitemdelegate.cpp b/src/gui/itemviews/qabstractitemdelegate.cpp
index 0ea6d67..edbeeb8 100644
--- a/src/gui/itemviews/qabstractitemdelegate.cpp
+++ b/src/gui/itemviews/qabstractitemdelegate.cpp
@@ -362,7 +362,7 @@ bool QAbstractItemDelegate::helpEvent(QHelpEvent *event,
case QEvent::ToolTip: {
QHelpEvent *he = static_cast<QHelpEvent*>(event);
QVariant tooltip = index.data(Qt::ToolTipRole);
- if (qVariantCanConvert<QString>(tooltip)) {
+ if (tooltip.canConvert<QString>()) {
QToolTip::showText(he->globalPos(), tooltip.toString(), view);
return true;
}
@@ -376,7 +376,7 @@ bool QAbstractItemDelegate::helpEvent(QHelpEvent *event,
case QEvent::WhatsThis: {
QHelpEvent *he = static_cast<QHelpEvent*>(event);
QVariant whatsthis = index.data(Qt::WhatsThisRole);
- if (qVariantCanConvert<QString>(whatsthis)) {
+ if (whatsthis.canConvert<QString>()) {
QWhatsThis::showText(he->globalPos(), whatsthis.toString(), view);
return true;
}
diff --git a/src/gui/itemviews/qheaderview.cpp b/src/gui/itemviews/qheaderview.cpp
index 67854a3..7eb3ddc 100644
--- a/src/gui/itemviews/qheaderview.cpp
+++ b/src/gui/itemviews/qheaderview.cpp
@@ -2105,7 +2105,7 @@ void QHeaderView::paintEvent(QPaintEvent *e)
QVariant variant = d->model->headerData(logical, d->orientation,
Qt::FontRole);
- if (variant.isValid() && qVariantCanConvert<QFont>(variant)) {
+ if (variant.isValid() && variant.canConvert<QFont>()) {
QFont sectionFont = qvariant_cast<QFont>(variant);
painter.setFont(sectionFont);
}
@@ -2485,13 +2485,13 @@ void QHeaderView::paintSection(QPainter *painter, const QRect &rect, int logical
opt.icon = qvariant_cast<QPixmap>(variant);
QVariant foregroundBrush = d->model->headerData(logicalIndex, d->orientation,
Qt::ForegroundRole);
- if (qVariantCanConvert<QBrush>(foregroundBrush))
+ if (foregroundBrush.canConvert<QBrush>())
opt.palette.setBrush(QPalette::ButtonText, qvariant_cast<QBrush>(foregroundBrush));
QPointF oldBO = painter->brushOrigin();
QVariant backgroundBrush = d->model->headerData(logicalIndex, d->orientation,
Qt::BackgroundRole);
- if (qVariantCanConvert<QBrush>(backgroundBrush)) {
+ if (backgroundBrush.canConvert<QBrush>()) {
opt.palette.setBrush(QPalette::Button, qvariant_cast<QBrush>(backgroundBrush));
opt.palette.setBrush(QPalette::Window, qvariant_cast<QBrush>(backgroundBrush));
painter->setBrushOrigin(opt.rect.topLeft());
@@ -2552,7 +2552,7 @@ QSize QHeaderView::sectionSizeFromContents(int logicalIndex) const
QVariant var = d->model->headerData(logicalIndex, d->orientation,
Qt::FontRole);
QFont fnt;
- if (var.isValid() && qVariantCanConvert<QFont>(var))
+ if (var.isValid() && var.canConvert<QFont>())
fnt = qvariant_cast<QFont>(var);
else
fnt = font();
diff --git a/src/gui/itemviews/qitemdelegate.cpp b/src/gui/itemviews/qitemdelegate.cpp
index 9bbfc23..bd2b401 100644
--- a/src/gui/itemviews/qitemdelegate.cpp
+++ b/src/gui/itemviews/qitemdelegate.cpp
@@ -850,7 +850,7 @@ void QItemDelegate::drawBackground(QPainter *painter,
painter->fillRect(option.rect, option.palette.brush(cg, QPalette::Highlight));
} else {
QVariant value = index.data(Qt::BackgroundRole);
- if (qVariantCanConvert<QBrush>(value)) {
+ if (value.canConvert<QBrush>()) {
QPointF oldBO = painter->brushOrigin();
painter->setBrushOrigin(option.rect.topLeft());
painter->fillRect(option.rect, qvariant_cast<QBrush>(value));
@@ -1326,7 +1326,7 @@ QStyleOptionViewItem QItemDelegate::setOptions(const QModelIndex &index,
// set foreground brush
value = index.data(Qt::ForegroundRole);
- if (qVariantCanConvert<QBrush>(value))
+ if (value.canConvert<QBrush>())
opt.palette.setBrush(QPalette::Text, qvariant_cast<QBrush>(value));
return opt;
diff --git a/src/gui/itemviews/qsortfilterproxymodel.cpp b/src/gui/itemviews/qsortfilterproxymodel.cpp
index f9b6b94..953a7f1 100644
--- a/src/gui/itemviews/qsortfilterproxymodel.cpp
+++ b/src/gui/itemviews/qsortfilterproxymodel.cpp
@@ -774,7 +774,7 @@ void QSortFilterProxyModelPrivate::source_items_inserted(
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;
diff --git a/src/gui/itemviews/qstyleditemdelegate.cpp b/src/gui/itemviews/qstyleditemdelegate.cpp
index 880f8ab..115c734 100644
--- a/src/gui/itemviews/qstyleditemdelegate.cpp
+++ b/src/gui/itemviews/qstyleditemdelegate.cpp
@@ -326,7 +326,7 @@ void QStyledItemDelegate::initStyleOption(QStyleOptionViewItem *option,
option->displayAlignment = Qt::Alignment(value.toInt());
value = index.data(Qt::ForegroundRole);
- if (qVariantCanConvert<QBrush>(value))
+ if (value.canConvert<QBrush>())
option->palette.setBrush(QPalette::Text, qvariant_cast<QBrush>(value));
if (QStyleOptionViewItemV4 *v4 = qstyleoption_cast<QStyleOptionViewItemV4 *>(option)) {
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index 956e7ca..f7907d6 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -475,7 +475,7 @@ int qt_antialiasing_threshold = -1;
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
@@ -2547,6 +2547,13 @@ void QApplication::setActiveWindow(QWidget* act)
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);
diff --git a/src/gui/kernel/qapplication.h b/src/gui/kernel/qapplication.h
index 404059e..a790c69 100644
--- a/src/gui/kernel/qapplication.h
+++ b/src/gui/kernel/qapplication.h
@@ -412,6 +412,9 @@ private:
#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
diff --git a/src/gui/kernel/qapplication_p.h b/src/gui/kernel/qapplication_p.h
index 3e72a13..9c78370 100644
--- a/src/gui/kernel/qapplication_p.h
+++ b/src/gui/kernel/qapplication_p.h
@@ -559,6 +559,7 @@ public:
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) || defined(Q_WS_QPA)
void sendSyntheticEnterLeave(QWidget *widget);
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index 9f8ca95..4ed00f8 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -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
@@ -372,7 +376,7 @@ void QSymbianControl::ConstructL(bool isWindowOwning, bool desktop)
{
if (!desktop)
{
- if (isWindowOwning or !qwidget->parentWidget())
+ if (isWindowOwning || !qwidget->parentWidget())
CreateWindowL(S60->windowGroup());
else
/**
@@ -395,6 +399,34 @@ void QSymbianControl::ConstructL(bool isWindowOwning, bool desktop)
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()
@@ -1035,7 +1067,7 @@ void QSymbianControl::Draw(const TRect& controlRect) const
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());
@@ -1055,7 +1087,8 @@ void QSymbianControl::Draw(const TRect& controlRect) const
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));
@@ -1328,7 +1361,7 @@ void qt_init(QApplicationPrivate * /* priv */, int)
// 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;
@@ -1483,6 +1516,10 @@ void qt_init(QApplicationPrivate * /* priv */, int)
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;
@@ -1506,7 +1543,7 @@ void qt_init(QApplicationPrivate * /* priv */, int)
*/
// 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");
}
@@ -1572,6 +1609,9 @@ bool QApplicationPrivate::modalState()
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.
@@ -1587,6 +1627,9 @@ void QApplicationPrivate::enterModal_sys(QWidget *widget)
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
@@ -1883,6 +1926,9 @@ int QApplicationPrivate::symbianProcessWsEvent(const QSymbianEvent *symbianEvent
break;
QRefCountedWidgetBackingStore &backingStore = window->d_func()->maybeTopData()->backingStore;
if (visChangedEvent->iFlags & TWsVisibilityChangedEvent::ENotVisible) {
+#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS
+ S60->wsSession().SendEffectCommand(ETfxCmdDeallocateLayer);
+#endif
// Decrement backing store reference count
backingStore.deref();
// In order to ensure that any resources used by the window surface
@@ -1893,6 +1939,9 @@ int QApplicationPrivate::symbianProcessWsEvent(const QSymbianEvent *symbianEvent
// Increment backing store reference count
backingStore.ref();
} else {
+#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS
+ S60->wsSession().SendEffectCommand(ETfxCmdRestoreLayer);
+#endif
// Create backing store with an initial reference count of 1
backingStore.create(window);
backingStore.ref();
@@ -1953,13 +2002,6 @@ int QApplicationPrivate::symbianProcessWsEvent(const QSymbianEvent *symbianEvent
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"));
}
}
@@ -1975,8 +2017,7 @@ int QApplicationPrivate::symbianProcessWsEvent(const QSymbianEvent *symbianEvent
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;
@@ -2276,6 +2317,14 @@ void QApplication::restoreOverrideCursor()
#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();
diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp
index b4a3f50..34bdbbe 100644
--- a/src/gui/kernel/qapplication_win.cpp
+++ b/src/gui/kernel/qapplication_win.cpp
@@ -714,8 +714,10 @@ static void qt_set_windows_updateScrollBar(QWidget *widget)
if (QWidget *w = static_cast<QWidget *>(o))
qt_set_windows_updateScrollBar(w);
}
+#ifndef QT_NO_SCROLLBAR
if (qobject_cast<QScrollBar*>(widget))
widget->updateGeometry();
+#endif
}
@@ -1506,6 +1508,7 @@ extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wPa
switch (message) {
#ifndef Q_WS_WINCE
+#ifndef QT_NO_SESSIONMANAGER
case WM_QUERYENDSESSION: {
if (sm_smActive) // bogus message from windows
RETURN(true);
@@ -1538,6 +1541,7 @@ extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wPa
RETURN(0);
}
+#endif
case WM_DISPLAYCHANGE:
if (QApplication::type() == QApplication::Tty)
break;
@@ -2243,6 +2247,7 @@ extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wPa
}
break;
+#ifndef QT_NO_CONTEXTMENU
case WM_CONTEXTMENU:
{
// it's not VK_APPS or Shift+F10, but a click in the NC area
@@ -2271,6 +2276,7 @@ extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wPa
}
break;
#endif
+#endif
case WM_IME_STARTCOMPOSITION:
case WM_IME_ENDCOMPOSITION:
diff --git a/src/gui/kernel/qclipboard.cpp b/src/gui/kernel/qclipboard.cpp
index f7c0b6e..8c7c333 100644
--- a/src/gui/kernel/qclipboard.cpp
+++ b/src/gui/kernel/qclipboard.cpp
@@ -631,7 +631,7 @@ QByteArray QMimeDataWrapper::encodedData(const char *format) const
return data->data(QLatin1String(format));
} else{
QVariant variant = data->imageData();
- QImage img = qVariantValue<QImage>(variant);
+ QImage img = qvariant_cast<QImage>(variant);
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
diff --git a/src/gui/kernel/qcocoaapplication_mac.mm b/src/gui/kernel/qcocoaapplication_mac.mm
index 238b96b..9270213 100644
--- a/src/gui/kernel/qcocoaapplication_mac.mm
+++ b/src/gui/kernel/qcocoaapplication_mac.mm
@@ -117,15 +117,19 @@ QT_USE_NAMESPACE
quint64 lower = [event data1];
quint64 upper = [event data2];
QCocoaPostMessageArgs *args = reinterpret_cast<QCocoaPostMessageArgs *>(lower | (upper << 32));
+ // Special case for convenience: if the argument is an NSNumber, we unbox it directly.
+ // Use NSValue instead if this behaviour is unwanted.
+ id a1 = ([args->arg1 isKindOfClass:[NSNumber class]]) ? (id)[args->arg1 intValue] : args->arg1;
+ id a2 = ([args->arg2 isKindOfClass:[NSNumber class]]) ? (id)[args->arg2 intValue] : args->arg2;
switch (args->argCount) {
case 0:
[args->target performSelector:args->selector];
break;
case 1:
- [args->target performSelector:args->selector withObject:args->arg1];
+ [args->target performSelector:args->selector withObject:a1];
break;
case 3:
- [args->target performSelector:args->selector withObject:args->arg1 withObject:args->arg2];
+ [args->target performSelector:args->selector withObject:a1 withObject:a2];
break;
}
diff --git a/src/gui/kernel/qcocoaview_mac.mm b/src/gui/kernel/qcocoaview_mac.mm
index 3229e71..0282c79 100644
--- a/src/gui/kernel/qcocoaview_mac.mm
+++ b/src/gui/kernel/qcocoaview_mac.mm
@@ -207,6 +207,7 @@ static int qCocoaViewCount = 0;
composing = false;
sendKeyEvents = true;
+ fromKeyDownEvent = false;
[self setHidden:YES];
return self;
}
@@ -1215,7 +1216,9 @@ static int qCocoaViewCount = 0;
&& !(widgetToGetKey->inputMethodHints() & Qt::ImhDigitsOnly
|| widgetToGetKey->inputMethodHints() & Qt::ImhFormattedNumbersOnly
|| widgetToGetKey->inputMethodHints() & Qt::ImhHiddenText)) {
+ fromKeyDownEvent = true;
[qt_mac_nativeview_for(widgetToGetKey) interpretKeyEvents:[NSArray arrayWithObject: theEvent]];
+ fromKeyDownEvent = false;
}
if (sendKeyEvents && !composing) {
bool keyOK = qt_dispatchKeyEvent(theEvent, widgetToGetKey);
@@ -1285,7 +1288,10 @@ static int qCocoaViewCount = 0;
};
}
- if ([aString length] && composing) {
+ // When entering characters through Character Viewer or Keyboard Viewer, the text is passed
+ // through this insertText method. Since we dont receive a keyDown Event in such cases, the
+ // composing flag will be false.
+ if (([aString length] && composing) || !fromKeyDownEvent) {
// Send the commit string to the widget.
composing = false;
sendKeyEvents = false;
diff --git a/src/gui/kernel/qcocoaview_mac_p.h b/src/gui/kernel/qcocoaview_mac_p.h
index b6b63ca..511423357 100644
--- a/src/gui/kernel/qcocoaview_mac_p.h
+++ b/src/gui/kernel/qcocoaview_mac_p.h
@@ -86,6 +86,7 @@ Q_GUI_EXPORT
bool composing;
int composingLength;
bool sendKeyEvents;
+ bool fromKeyDownEvent;
QString *composingText;
NSInteger dragEnterSequence;
}
diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp
index fc2c995..d2b2098 100644
--- a/src/gui/kernel/qevent.cpp
+++ b/src/gui/kernel/qevent.cpp
@@ -4281,6 +4281,11 @@ QTouchEvent::TouchPoint &QTouchEvent::TouchPoint::operator=(const QTouchEvent::T
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()
*/
diff --git a/src/gui/kernel/qgesture.cpp b/src/gui/kernel/qgesture.cpp
index 4a4452a..13274c4 100644
--- a/src/gui/kernel/qgesture.cpp
+++ b/src/gui/kernel/qgesture.cpp
@@ -59,6 +59,9 @@ QT_BEGIN_NAMESPACE
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 @@ QGesture::GestureCancelPolicy QGesture::gestureCancelPolicy() const
\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
*/
/*!
@@ -314,6 +320,9 @@ void QPanGesture::setAcceleration(qreal value)
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 @@ void QPanGesture::setAcceleration(qreal value)
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
*/
/*!
@@ -572,7 +581,10 @@ void QPinchGesture::setRotationAngle(qreal value)
\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 @@ void QSwipeGesture::setSwipeAngle(qreal value)
\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 @@ void QTapGesture::setPosition(const QPointF &value)
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
*/
/*!
diff --git a/src/gui/kernel/qgesturerecognizer.cpp b/src/gui/kernel/qgesturerecognizer.cpp
index 3e23bbf..e0e7784 100644
--- a/src/gui/kernel/qgesturerecognizer.cpp
+++ b/src/gui/kernel/qgesturerecognizer.cpp
@@ -62,6 +62,9 @@ QT_BEGIN_NAMESPACE
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
diff --git a/src/gui/kernel/qpalette.cpp b/src/gui/kernel/qpalette.cpp
index 38ec806..55d5727 100644
--- a/src/gui/kernel/qpalette.cpp
+++ b/src/gui/kernel/qpalette.cpp
@@ -872,7 +872,7 @@ void QPalette::detach()
\note The current ColorGroup is not taken into account when
comparing palettes
- \sa operator==
+ \sa operator==()
*/
/*!
@@ -882,7 +882,7 @@ void QPalette::detach()
\note The current ColorGroup is not taken into account when
comparing palettes
- \sa operator!=
+ \sa operator!=()
*/
bool QPalette::operator==(const QPalette &p) const
{
diff --git a/src/gui/kernel/qt_cocoa_helpers_mac.mm b/src/gui/kernel/qt_cocoa_helpers_mac.mm
index 2eee434..88ff1e6 100644
--- a/src/gui/kernel/qt_cocoa_helpers_mac.mm
+++ b/src/gui/kernel/qt_cocoa_helpers_mac.mm
@@ -722,9 +722,11 @@ bool qt_dispatchKeyEvent(void * /*NSEvent * */ keyEvent, QWidget *widgetToGetEve
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.
@@ -1542,6 +1544,22 @@ void macSyncDrawingOnFirstInvocation(void * /*OSWindowRef */window)
[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
diff --git a/src/gui/kernel/qt_cocoa_helpers_mac_p.h b/src/gui/kernel/qt_cocoa_helpers_mac_p.h
index 57d2c90..5c23392 100644
--- a/src/gui/kernel/qt_cocoa_helpers_mac_p.h
+++ b/src/gui/kernel/qt_cocoa_helpers_mac_p.h
@@ -148,6 +148,7 @@ void qt_cocoaChangeOverrideCursor(const QCursor &cursor);
// 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);
diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h
index 7f0c99e..a18ea07 100644
--- a/src/gui/kernel/qt_s60_p.h
+++ b/src/gui/kernel/qt_s60_p.h
@@ -141,7 +141,6 @@ public:
int supportsPremultipliedAlpha : 1;
int avkonComponentsSupportTransparency : 1;
int menuBeingConstructed : 1;
- int memoryLimitForHwRendering;
QApplication::QS60MainApplicationFactory s60ApplicationFactory; // typedef'ed pointer type
enum ScanCodeState {
@@ -291,7 +290,6 @@ inline QS60Data::QS60Data()
supportsPremultipliedAlpha(0),
avkonComponentsSupportTransparency(0),
menuBeingConstructed(0),
- memoryLimitForHwRendering(0),
s60ApplicationFactory(0)
#ifdef Q_OS_SYMBIAN
,s60InstalledTrapHandler(0)
diff --git a/src/gui/kernel/qtooltip.cpp b/src/gui/kernel/qtooltip.cpp
index c8fcf45..88fdbc6 100644
--- a/src/gui/kernel/qtooltip.cpp
+++ b/src/gui/kernel/qtooltip.cpp
@@ -353,7 +353,7 @@ void QTipLabel::placeTip(const QPoint &pos, QWidget *w)
#ifndef QT_NO_STYLE_STYLESHEET
if (testAttribute(Qt::WA_StyleSheet) || (w && qobject_cast<QStyleSheetStyle *>(w->style()))) {
//the stylesheet need to know the real parent
- QTipLabel::instance->setProperty("_q_stylesheet_parent", qVariantFromValue(w));
+ QTipLabel::instance->setProperty("_q_stylesheet_parent", QVariant::fromValue(w));
//we force the style to be the QStyleSheetStyle, and force to clear the cache as well.
QTipLabel::instance->setStyleSheet(QLatin1String("/* */"));
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index 16e75c3..7092e19 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -6552,7 +6552,7 @@ void QWidget::setTabOrder(QWidget* first, QWidget *second)
// that can take keyboard focus so that second is inserted after
// that last child, and the focus order within first is (more
// likely to be) preserved.
- QList<QWidget *> l = qFindChildren<QWidget *>(first);
+ QList<QWidget *> l = first->findChildren<QWidget *>();
for (int i = l.size()-1; i >= 0; --i) {
QWidget * next = l.at(i);
if (next->window() == fp->window()) {
diff --git a/src/gui/kernel/qwidget.h b/src/gui/kernel/qwidget.h
index c750465..5b579b9 100644
--- a/src/gui/kernel/qwidget.h
+++ b/src/gui/kernel/qwidget.h
@@ -913,13 +913,6 @@ protected:
Q_DECLARE_OPERATORS_FOR_FLAGS(QWidget::RenderFlags)
-#if defined Q_CC_MSVC && _MSC_VER < 1300
-template <> inline QWidget *qobject_cast_helper<QWidget*>(QObject *o, QWidget *)
-{
- if (!o || !o->isWidgetType()) return 0;
- return (QWidget*)(o);
-}
-#else
template <> inline QWidget *qobject_cast<QWidget*>(QObject *o)
{
if (!o || !o->isWidgetType()) return 0;
@@ -930,7 +923,6 @@ template <> inline const QWidget *qobject_cast<const QWidget*>(const QObject *o)
if (!o || !o->isWidgetType()) return 0;
return static_cast<const QWidget*>(o);
}
-#endif
inline QWidget *QWidget::childAt(int ax, int ay) const
{ return childAt(QPoint(ax, ay)); }
diff --git a/src/gui/kernel/qwidget_win.cpp b/src/gui/kernel/qwidget_win.cpp
index 91521a8..05d9a5f 100644
--- a/src/gui/kernel/qwidget_win.cpp
+++ b/src/gui/kernel/qwidget_win.cpp
@@ -166,7 +166,7 @@ static void qt_tablet_init()
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 @@ bool QWidgetPrivate::shouldShowMaximizeButton()
{
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)
diff --git a/src/gui/math3d/qmatrix4x4.cpp b/src/gui/math3d/qmatrix4x4.cpp
index 16c7f97..2f03bd0 100644
--- a/src/gui/math3d/qmatrix4x4.cpp
+++ b/src/gui/math3d/qmatrix4x4.cpp
@@ -102,8 +102,6 @@ QMatrix4x4::QMatrix4x4(const qreal *values)
\sa optimize()
*/
-#if !defined(QT_NO_MEMBER_TEMPLATES) || defined(Q_QDOC)
-
/*!
\fn QMatrix4x4::QMatrix4x4(const QGenericMatrix<N, M, qreal>& matrix)
@@ -112,7 +110,7 @@ QMatrix4x4::QMatrix4x4(const qreal *values)
the remaining elements are filled with elements from the identity
matrix.
- \sa toGenericMatrix(), qGenericMatrixToMatrix4x4()
+ \sa toGenericMatrix()
*/
/*!
@@ -122,34 +120,32 @@ QMatrix4x4::QMatrix4x4(const qreal *values)
top-most M rows of this 4x4 matrix. If N or M is greater than 4,
then the remaining elements are filled with elements from the
identity matrix.
-
- \sa qGenericMatrixFromMatrix4x4()
*/
-#endif
-
/*!
\fn QMatrix4x4 qGenericMatrixToMatrix4x4(const QGenericMatrix<N, M, qreal>& matrix)
\relates QMatrix4x4
+ \obsolete
Returns a 4x4 matrix constructed from the left-most 4 columns and
top-most 4 rows of \a matrix. If \a matrix has less than 4 columns
or rows, the remaining elements are filled with elements from the
identity matrix.
- \sa qGenericMatrixFromMatrix4x4()
+ \sa QMatrix4x4(const QGenericMatrix &)
*/
/*!
\fn QGenericMatrix<N, M, qreal> qGenericMatrixFromMatrix4x4(const QMatrix4x4& matrix)
\relates QMatrix4x4
+ \obsolete
Returns a NxM generic matrix constructed from the left-most N columns
and top-most M rows of \a matrix. If N or M is greater than 4,
then the remaining elements are filled with elements from the
identity matrix.
- \sa qGenericMatrixToMatrix4x4(), QMatrix4x4::toGenericMatrix()
+ \sa QMatrix4x4::toGenericMatrix()
*/
/*!
diff --git a/src/gui/math3d/qmatrix4x4.h b/src/gui/math3d/qmatrix4x4.h
index 0671fa8..598058c 100644
--- a/src/gui/math3d/qmatrix4x4.h
+++ b/src/gui/math3d/qmatrix4x4.h
@@ -69,10 +69,10 @@ public:
qreal m21, qreal m22, qreal m23, qreal m24,
qreal m31, qreal m32, qreal m33, qreal m34,
qreal m41, qreal m42, qreal m43, qreal m44);
-#if !defined(QT_NO_MEMBER_TEMPLATES) || defined(Q_QDOC)
+
template <int N, int M>
explicit QMatrix4x4(const QGenericMatrix<N, M, qreal>& matrix);
-#endif
+
QMatrix4x4(const qreal *values, int cols, int rows);
QMatrix4x4(const QTransform& transform);
QMatrix4x4(const QMatrix& matrix);
@@ -169,10 +169,8 @@ public:
QRect mapRect(const QRect& rect) const;
QRectF mapRect(const QRectF& rect) const;
-#if !defined(QT_NO_MEMBER_TEMPLATES) || defined(Q_QDOC)
template <int N, int M>
QGenericMatrix<N, M, qreal> toGenericMatrix() const;
-#endif
inline qreal *data();
inline const qreal *data() const { return m[0]; }
@@ -223,8 +221,6 @@ inline QMatrix4x4::QMatrix4x4
flagBits = General;
}
-#if !defined(QT_NO_MEMBER_TEMPLATES)
-
template <int N, int M>
Q_INLINE_TEMPLATE QMatrix4x4::QMatrix4x4
(const QGenericMatrix<N, M, qreal>& matrix)
@@ -261,8 +257,6 @@ QGenericMatrix<N, M, qreal> QMatrix4x4::toGenericMatrix() const
return result;
}
-#endif
-
inline const qreal& QMatrix4x4::operator()(int aRow, int aColumn) const
{
Q_ASSERT(aRow >= 0 && aRow < 4 && aColumn >= 0 && aColumn < 4);
@@ -992,14 +986,15 @@ Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QMatrix4x4 &);
Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QMatrix4x4 &);
#endif
+#ifdef QT_DEPRECATED
template <int N, int M>
-QMatrix4x4 qGenericMatrixToMatrix4x4(const QGenericMatrix<N, M, qreal>& matrix)
+QT_DEPRECATED QMatrix4x4 qGenericMatrixToMatrix4x4(const QGenericMatrix<N, M, qreal>& matrix)
{
return QMatrix4x4(matrix.constData(), N, M);
}
template <int N, int M>
-QGenericMatrix<N, M, qreal> qGenericMatrixFromMatrix4x4(const QMatrix4x4& matrix)
+QT_DEPRECATED QGenericMatrix<N, M, qreal> qGenericMatrixFromMatrix4x4(const QMatrix4x4& matrix)
{
QGenericMatrix<N, M, qreal> result;
const qreal *m = matrix.constData();
@@ -1016,6 +1011,7 @@ QGenericMatrix<N, M, qreal> qGenericMatrixFromMatrix4x4(const QMatrix4x4& matrix
}
return result;
}
+#endif
#endif
diff --git a/src/gui/painting/painting.pri b/src/gui/painting/painting.pri
index 92c4e84..ef66c6c 100644
--- a/src/gui/painting/painting.pri
+++ b/src/gui/painting/painting.pri
@@ -259,23 +259,8 @@ symbian {
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)
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index f5641a4..054f96f 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -856,7 +856,7 @@ const uint * QT_FASTCALL fetchTransformedBilinear(uint *buffer, const Operator *
while (b < end) {
int x1 = (fx >> 16);
int x2;
- fetchTransformedBilinear_pixelBounds<blendType>(image_height, image_x1, image_x2, x1, 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);
@@ -883,7 +883,7 @@ const uint * QT_FASTCALL fetchTransformedBilinear(uint *buffer, const Operator *
while (b < end) {
int x1 = (fx >> 16);
int x2;
- fetchTransformedBilinear_pixelBounds<blendType>(image_height, image_x1, image_x2, x1, 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);
@@ -7938,8 +7938,10 @@ void qInitDrawhelperAsm()
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;
diff --git a/src/gui/painting/qdrawhelper_p.h b/src/gui/painting/qdrawhelper_p.h
index 1a87127..d04c70d 100644
--- a/src/gui/painting/qdrawhelper_p.h
+++ b/src/gui/painting/qdrawhelper_p.h
@@ -314,18 +314,61 @@ struct QSpanData
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
-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;
+#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(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)
@@ -359,6 +402,21 @@ Q_STATIC_INLINE_FUNCTION uint PREMUL(uint x) {
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 : \
@@ -1847,70 +1905,6 @@ inline int qBlue565(quint16 rgb) {
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},
diff --git a/src/gui/painting/qdrawhelper_sse2.cpp b/src/gui/painting/qdrawhelper_sse2.cpp
index e090ae5..22c0384 100644
--- a/src/gui/painting/qdrawhelper_sse2.cpp
+++ b/src/gui/painting/qdrawhelper_sse2.cpp
@@ -112,9 +112,7 @@ void qt_blend_rgb32_on_rgb32_sse2(uchar *destPixels, int dbpl,
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);
@@ -182,12 +180,10 @@ inline int comp_func_Plus_one_pixel(uint d, const uint s)
void QT_FASTCALL comp_func_Plus_sse2(uint *dst, const uint *src, int length, uint const_alpha)
{
int x = 0;
- const int offsetToAlignOn16Bytes = (4 - ((reinterpret_cast<quintptr>(dst) >> 2) & 0x3)) & 0x3;
- const int prologLength = qMin(length, offsetToAlignOn16Bytes);
if (const_alpha == 255) {
// 1) Prologue: align destination on 16 bytes
- for (; x < prologLength; ++x)
+ ALIGNMENT_PROLOGUE_16BYTES(dst, x, length)
dst[x] = comp_func_Plus_one_pixel(dst[x], src[x]);
// 2) composition with SSE2
@@ -208,7 +204,7 @@ void QT_FASTCALL comp_func_Plus_sse2(uint *dst, const uint *src, int length, uin
const __m128i oneMinusConstAlpha = _mm_set1_epi16(one_minus_const_alpha);
// 1) Prologue: align destination on 16 bytes
- for (; x < prologLength; ++x)
+ 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);
@@ -229,6 +225,37 @@ void QT_FASTCALL comp_func_Plus_sse2(uint *dst, const uint *src, int length, uin
}
}
+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) {
diff --git a/src/gui/painting/qdrawingprimitive_sse2_p.h b/src/gui/painting/qdrawingprimitive_sse2_p.h
index 18355c2..d8f6bf5 100644
--- a/src/gui/painting/qdrawingprimitive_sse2_p.h
+++ b/src/gui/painting/qdrawingprimitive_sse2_p.h
@@ -143,9 +143,7 @@ QT_BEGIN_NAMESPACE
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 @@ QT_BEGIN_NAMESPACE
{ \
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); \
diff --git a/src/gui/painting/qgraphicssystem_runtime.cpp b/src/gui/painting/qgraphicssystem_runtime.cpp
index 3438137..2828e9d 100644
--- a/src/gui/painting/qgraphicssystem_runtime.cpp
+++ b/src/gui/painting/qgraphicssystem_runtime.cpp
@@ -53,10 +53,8 @@ QT_BEGIN_NAMESPACE
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 @@ QPixmapData* QRuntimePixmapData::runtimeData() const
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(const QRuntimeGraphicsSystem *gs, Q
QRuntimeWindowSurface::~QRuntimeWindowSurface()
{
m_graphicsSystem->removeWindowSurface(this);
- delete m_windowSurface;
}
QPaintDevice *QRuntimeWindowSurface::paintDevice()
@@ -288,16 +277,13 @@ void QRuntimeWindowSurface::flush(QWidget *widget, const QRegion &region,
#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 @@ QPoint QRuntimeWindowSurface::offset(const QWidget *widget) const
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 @@ QWindowSurface *QRuntimeGraphicsSystem::createWindowSurface(QWidget *widget) con
{
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 @@ void QRuntimeGraphicsSystem::setGraphicsSystem(const QString &name)
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"
diff --git a/src/gui/painting/qgraphicssystem_runtime_p.h b/src/gui/painting/qgraphicssystem_runtime_p.h
index 7aab89c..0232241 100644
--- a/src/gui/painting/qgraphicssystem_runtime_p.h
+++ b/src/gui/painting/qgraphicssystem_runtime_p.h
@@ -104,8 +104,6 @@ public:
virtual QPixmapData *runtimeData() const;
- virtual uint memoryUsage() const;
-
private:
const QRuntimeGraphicsSystem *m_graphicsSystem;
@@ -131,10 +129,8 @@ public:
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 @@ public:
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 @@ public:
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;
diff --git a/src/gui/painting/qoutlinemapper.cpp b/src/gui/painting/qoutlinemapper.cpp
index bf03545..72e5833 100644
--- a/src/gui/painting/qoutlinemapper.cpp
+++ b/src/gui/painting/qoutlinemapper.cpp
@@ -47,8 +47,6 @@
QT_BEGIN_NAMESPACE
-static const qreal aliasedCoordinateDelta = 0.5 - 0.015625;
-
#define qreal_to_fixed_26_6(f) (int(f * 64))
@@ -216,13 +214,6 @@ void QOutlineMapper::endOutline()
elements = m_elements_dev.data();
}
- if (m_round_coords) {
- // round coordinates to match outlines drawn with drawLine_midpoint_i
- for (int i = 0; i < m_elements.size(); ++i)
- elements[i] = QPointF(qFloor(elements[i].x() + aliasedCoordinateDelta),
- qFloor(elements[i].y() + aliasedCoordinateDelta));
- }
-
controlPointRect = boundingRect(elements, element_count);
#ifdef QT_DEBUG_CONVERT
diff --git a/src/gui/painting/qoutlinemapper_p.h b/src/gui/painting/qoutlinemapper_p.h
index d534f76..fcfc9bf 100644
--- a/src/gui/painting/qoutlinemapper_p.h
+++ b/src/gui/painting/qoutlinemapper_p.h
@@ -95,8 +95,7 @@ public:
m_tags(0),
m_contours(0),
m_polygon_dev(0),
- m_in_clip_elements(false),
- m_round_coords(false)
+ m_in_clip_elements(false)
{
}
@@ -202,8 +201,6 @@ public:
QT_FT_Outline *convertPath(const QPainterPath &path);
QT_FT_Outline *convertPath(const QVectorPath &path);
- void setCoordinateRounding(bool coordinateRounding) { m_round_coords = coordinateRounding; }
-
inline QPainterPath::ElementType *elementTypes() const { return m_element_types.size() == 0 ? 0 : m_element_types.data(); }
public:
@@ -237,9 +234,6 @@ public:
bool m_valid;
bool m_in_clip_elements;
-
-private:
- bool m_round_coords;
};
QT_END_NAMESPACE
diff --git a/src/gui/painting/qpaintbuffer.cpp b/src/gui/painting/qpaintbuffer.cpp
index 3a4c94c..d4a8213 100644
--- a/src/gui/painting/qpaintbuffer.cpp
+++ b/src/gui/painting/qpaintbuffer.cpp
@@ -130,7 +130,7 @@ QPaintBufferPrivate::~QPaintBufferPrivate()
for (int i = 0; i < commands.size(); ++i) {
const QPaintBufferCommand &cmd = commands.at(i);
if (cmd.id == QPaintBufferPrivate::Cmd_DrawTextItem)
- delete reinterpret_cast<QTextItemIntCopy *>(qVariantValue<void *>(variants.at(cmd.offset)));
+ delete reinterpret_cast<QTextItemIntCopy *>(qvariant_cast<void *>(variants.at(cmd.offset)));
}
}
@@ -330,7 +330,7 @@ QString QPaintBuffer::commandDescription(int command) const
break; }
case QPaintBufferPrivate::Cmd_SetBrush: {
- QBrush brush = qVariantValue<QBrush>(d_ptr->variants.at(cmd.offset));
+ QBrush brush = qvariant_cast<QBrush>(d_ptr->variants.at(cmd.offset));
debug << "Cmd_SetBrush: " << brush;
break; }
@@ -354,27 +354,27 @@ QString QPaintBuffer::commandDescription(int command) const
break; }
case QPaintBufferPrivate::Cmd_StrokeVectorPath: {
- QPen pen = qVariantValue<QPen>(d_ptr->variants.at(cmd.extra));
+ QPen pen = qvariant_cast<QPen>(d_ptr->variants.at(cmd.extra));
debug << "ExCmd_StrokeVectorPath: size: " << cmd.size
// << ", hints:" << d->ints[cmd.offset2+cmd.size]
<< "pts/elms:" << cmd.offset << cmd.offset2 << pen;
break; }
case QPaintBufferPrivate::Cmd_FillVectorPath: {
- QBrush brush = qVariantValue<QBrush>(d_ptr->variants.at(cmd.extra));
+ QBrush brush = qvariant_cast<QBrush>(d_ptr->variants.at(cmd.extra));
debug << "ExCmd_FillVectorPath: size: " << cmd.size
// << ", hints:" << d->ints[cmd.offset2+cmd.size]
<< "pts/elms:" << cmd.offset << cmd.offset2 << brush;
break; }
case QPaintBufferPrivate::Cmd_FillRectBrush: {
- QBrush brush = qVariantValue<QBrush>(d_ptr->variants.at(cmd.extra));
+ QBrush brush = qvariant_cast<QBrush>(d_ptr->variants.at(cmd.extra));
QRectF *rect = (QRectF *)(d_ptr->floats.constData() + cmd.offset);
debug << "ExCmd_FillRectBrush, offset: " << cmd.offset << " rect: " << *rect << " brush: " << brush;
break; }
case QPaintBufferPrivate::Cmd_FillRectColor: {
- QColor color = qVariantValue<QColor>(d_ptr->variants.at(cmd.extra));
+ QColor color = qvariant_cast<QColor>(d_ptr->variants.at(cmd.extra));
QRectF *rect = (QRectF *)(d_ptr->floats.constData() + cmd.offset);
debug << "ExCmd_FillRectBrush, offset: " << cmd.offset << " rect: " << *rect << " color: " << color;
break; }
@@ -451,12 +451,12 @@ QString QPaintBuffer::commandDescription(int command) const
break; }
case QPaintBufferPrivate::Cmd_SetPen: {
- QPen pen = qVariantValue<QPen>(d_ptr->variants.at(cmd.offset));
+ QPen pen = qvariant_cast<QPen>(d_ptr->variants.at(cmd.offset));
debug << "Cmd_SetPen: " << pen;
break; }
case QPaintBufferPrivate::Cmd_SetTransform: {
- QTransform xform = qVariantValue<QTransform>(d_ptr->variants.at(cmd.offset));
+ QTransform xform = qvariant_cast<QTransform>(d_ptr->variants.at(cmd.offset));
debug << "Cmd_SetTransform, offset: " << cmd.offset << xform;
break; }
@@ -532,7 +532,7 @@ QString QPaintBuffer::commandDescription(int command) const
case QPaintBufferPrivate::Cmd_DrawTextItem: {
QPointF pos(d_ptr->floats.at(cmd.extra), d_ptr->floats.at(cmd.extra+1));
- QTextItemIntCopy *tiCopy = reinterpret_cast<QTextItemIntCopy *>(qVariantValue<void *>(d_ptr->variants.at(cmd.offset)));
+ QTextItemIntCopy *tiCopy = reinterpret_cast<QTextItemIntCopy *>(qvariant_cast<void *>(d_ptr->variants.at(cmd.offset)));
QTextItemInt &ti = (*tiCopy)();
QString text(ti.text());
@@ -1287,7 +1287,7 @@ void QPaintBufferEngine::drawTextItem(const QPointF &pos, const QTextItem &ti)
qDebug() << "QPaintBufferEngine: drawTextItem: pos:" << pos << ti.text();
#endif
if (m_stream_raw_text_items) {
- QPaintBufferCommand *cmd = buffer->addCommand(QPaintBufferPrivate::Cmd_DrawTextItem, qVariantFromValue<void *>(new QTextItemIntCopy(ti)));
+ QPaintBufferCommand *cmd = buffer->addCommand(QPaintBufferPrivate::Cmd_DrawTextItem, QVariant::fromValue<void *>(new QTextItemIntCopy(ti)));
QFont font(ti.font());
font.setUnderline(false);
@@ -1429,7 +1429,7 @@ void QPainterReplayer::process(const QPaintBufferCommand &cmd)
break; }
case QPaintBufferPrivate::Cmd_SetPen: {
- QPen pen = qVariantValue<QPen>(d->variants.at(cmd.offset));
+ QPen pen = qvariant_cast<QPen>(d->variants.at(cmd.offset));
#ifdef QPAINTBUFFER_DEBUG_DRAW
qDebug() << " -> Cmd_SetPen: " << pen;
#endif
@@ -1437,7 +1437,7 @@ void QPainterReplayer::process(const QPaintBufferCommand &cmd)
break; }
case QPaintBufferPrivate::Cmd_SetBrush: {
- QBrush brush = qVariantValue<QBrush>(d->variants.at(cmd.offset));
+ QBrush brush = qvariant_cast<QBrush>(d->variants.at(cmd.offset));
#ifdef QPAINTBUFFER_DEBUG_DRAW
qDebug() << " -> Cmd_SetBrush: " << brush;
#endif
@@ -1452,7 +1452,7 @@ void QPainterReplayer::process(const QPaintBufferCommand &cmd)
break; }
case QPaintBufferPrivate::Cmd_SetTransform: {
- QTransform xform = qVariantValue<QTransform>(d->variants.at(cmd.offset));
+ QTransform xform = qvariant_cast<QTransform>(d->variants.at(cmd.offset));
#ifdef QPAINTBUFFER_DEBUG_DRAW
qDebug() << " -> Cmd_SetTransform, offset: " << cmd.offset << xform;
#endif
@@ -1520,7 +1520,7 @@ void QPainterReplayer::process(const QPaintBufferCommand &cmd)
break; }
case QPaintBufferPrivate::Cmd_StrokeVectorPath: {
- QPen pen = qVariantValue<QPen>(d->variants.at(cmd.extra));
+ QPen pen = qvariant_cast<QPen>(d->variants.at(cmd.extra));
#ifdef QPAINTBUFFER_DEBUG_DRAW
qDebug() << " -> Cmd_StrokeVectorPath: size: " << cmd.size
// << ", hints:" << d->ints[cmd.offset2+cmd.size]
@@ -1531,7 +1531,7 @@ void QPainterReplayer::process(const QPaintBufferCommand &cmd)
break; }
case QPaintBufferPrivate::Cmd_FillVectorPath: {
- QBrush brush = qVariantValue<QBrush>(d->variants.at(cmd.extra));
+ QBrush brush = qvariant_cast<QBrush>(d->variants.at(cmd.extra));
#ifdef QPAINTBUFFER_DEBUG_DRAW
qDebug() << " -> Cmd_FillVectorPath: size: " << cmd.size
// << ", hints:" << d->ints[cmd.offset2+cmd.size]
@@ -1705,7 +1705,7 @@ void QPainterReplayer::process(const QPaintBufferCommand &cmd)
break; }
case QPaintBufferPrivate::Cmd_FillRectBrush: {
- QBrush brush = qVariantValue<QBrush>(d->variants.at(cmd.extra));
+ QBrush brush = qvariant_cast<QBrush>(d->variants.at(cmd.extra));
QRectF *rect = (QRectF *)(d->floats.constData() + cmd.offset);
#ifdef QPAINTBUFFER_DEBUG_DRAW
qDebug() << " -> Cmd_FillRectBrush, offset: " << cmd.offset << " rect: " << *rect << " brush: " << brush;
@@ -1714,7 +1714,7 @@ void QPainterReplayer::process(const QPaintBufferCommand &cmd)
break; }
case QPaintBufferPrivate::Cmd_FillRectColor: {
- QColor color = qVariantValue<QColor>(d->variants.at(cmd.extra));
+ QColor color = qvariant_cast<QColor>(d->variants.at(cmd.extra));
QRectF *rect = (QRectF *)(d->floats.constData() + cmd.offset);
#ifdef QPAINTBUFFER_DEBUG_DRAW
qDebug() << " -> Cmd_FillRectBrush, offset: " << cmd.offset << " rect: " << *rect << " color: " << color;
@@ -1790,7 +1790,7 @@ void QPainterReplayer::process(const QPaintBufferCommand &cmd)
case QPaintBufferPrivate::Cmd_DrawTextItem: {
QPointF pos(d->floats.at(cmd.extra), d->floats.at(cmd.extra+1));
- QTextItemIntCopy *tiCopy = reinterpret_cast<QTextItemIntCopy *>(qVariantValue<void *>(d->variants.at(cmd.offset)));
+ QTextItemIntCopy *tiCopy = reinterpret_cast<QTextItemIntCopy *>(qvariant_cast<void *>(d->variants.at(cmd.offset)));
QTextItemInt &ti = (*tiCopy)();
QString text(ti.text());
@@ -1885,7 +1885,7 @@ void QPaintEngineExReplayer::process(const QPaintBufferCommand &cmd)
break; }
case QPaintBufferPrivate::Cmd_StrokeVectorPath: {
- QPen pen = qVariantValue<QPen>(d->variants.at(cmd.extra));
+ QPen pen = qvariant_cast<QPen>(d->variants.at(cmd.extra));
#ifdef QPAINTBUFFER_DEBUG_DRAW
qDebug() << " -> ExCmd_StrokeVectorPath: size: " << cmd.size
// << ", hints:" << d->ints[cmd.offset2+cmd.size]
@@ -1896,7 +1896,7 @@ void QPaintEngineExReplayer::process(const QPaintBufferCommand &cmd)
break; }
case QPaintBufferPrivate::Cmd_FillVectorPath: {
- QBrush brush = qVariantValue<QBrush>(d->variants.at(cmd.extra));
+ QBrush brush = qvariant_cast<QBrush>(d->variants.at(cmd.extra));
#ifdef QPAINTBUFFER_DEBUG_DRAW
qDebug() << " -> ExCmd_FillVectorPath: size: " << cmd.size
// << ", hints:" << d->ints[cmd.offset2+cmd.size]
@@ -1907,7 +1907,7 @@ void QPaintEngineExReplayer::process(const QPaintBufferCommand &cmd)
break; }
case QPaintBufferPrivate::Cmd_FillRectBrush: {
- QBrush brush = qVariantValue<QBrush>(d->variants.at(cmd.extra));
+ QBrush brush = qvariant_cast<QBrush>(d->variants.at(cmd.extra));
QRectF *rect = (QRectF *)(d->floats.constData() + cmd.offset);
#ifdef QPAINTBUFFER_DEBUG_DRAW
qDebug() << " -> ExCmd_FillRectBrush, offset: " << cmd.offset << " rect: " << *rect << " brush: " << brush;
@@ -1916,7 +1916,7 @@ void QPaintEngineExReplayer::process(const QPaintBufferCommand &cmd)
break; }
case QPaintBufferPrivate::Cmd_FillRectColor: {
- QColor color = qVariantValue<QColor>(d->variants.at(cmd.extra));
+ QColor color = qvariant_cast<QColor>(d->variants.at(cmd.extra));
QRectF *rect = (QRectF *)(d->floats.constData() + cmd.offset);
#ifdef QPAINTBUFFER_DEBUG_DRAW
qDebug() << " -> ExCmd_FillRectBrush, offset: " << cmd.offset << " rect: " << *rect << " color: " << color;
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index d9f7053..fbfac1a 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -125,9 +125,6 @@ void dumpClip(int width, int height, const QClipData *clip);
// 4 pixels.
#define int_dim(pos, dim) (int(pos+dim) - int(pos))
-// use the same rounding as in qrasterizer.cpp (6 bit fixed point)
-static const qreal aliasedCoordinateDelta = 0.5 - 0.015625;
-
#ifdef Q_WS_WIN
extern bool qt_cleartype_enabled;
#endif
@@ -1755,10 +1752,10 @@ void QRasterPaintEngine::stroke(const QVectorPath &path, const QPen &pen)
static inline QRect toNormalizedFillRect(const QRectF &rect)
{
- int x1 = qRound(rect.x() + aliasedCoordinateDelta);
- int y1 = qRound(rect.y() + aliasedCoordinateDelta);
- int x2 = qRound(rect.right() + aliasedCoordinateDelta);
- int y2 = qRound(rect.bottom() + aliasedCoordinateDelta);
+ int x1 = qRound(rect.x());
+ int y1 = qRound(rect.y());
+ int x2 = qRound(rect.right());
+ int y2 = qRound(rect.bottom());
if (x2 < x1)
qSwap(x1, x2);
@@ -2027,7 +2024,6 @@ void QRasterPaintEngine::fillPolygon(const QPointF *points, int pointCount, Poly
*/
void QRasterPaintEngine::drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode)
{
- Q_D(QRasterPaintEngine);
QRasterPaintEngineState *s = state();
#ifdef QT_DEBUG_DRAW
@@ -2048,9 +2044,7 @@ void QRasterPaintEngine::drawPolygon(const QPointF *points, int pointCount, Poly
if (mode != PolylineMode) {
// Do the fill...
if (s->brushData.blend) {
- d->outlineMapper->setCoordinateRounding(s->penData.blend && s->flags.fast_pen && s->lastPen.brush().isOpaque());
fillPolygon(points, pointCount, mode);
- d->outlineMapper->setCoordinateRounding(false);
}
}
@@ -2102,7 +2096,6 @@ void QRasterPaintEngine::drawPolygon(const QPoint *points, int pointCount, Polyg
if (s->brushData.blend) {
// Compose polygon fill..,
ensureOutlineMapper();
- d->outlineMapper->setCoordinateRounding(s->penData.blend != 0);
d->outlineMapper->beginOutline(mode == WindingMode ? Qt::WindingFill : Qt::OddEvenFill);
d->outlineMapper->moveTo(*points);
const QPoint *p = points;
@@ -2116,7 +2109,6 @@ void QRasterPaintEngine::drawPolygon(const QPoint *points, int pointCount, Polyg
ProcessSpans brushBlend = d->getBrushFunc(d->outlineMapper->controlPointRect,
&s->brushData);
d->rasterize(d->outlineMapper->outline(), brushBlend, &s->brushData, d->rasterBuffer.data());
- d->outlineMapper->setCoordinateRounding(false);
}
}
@@ -2164,13 +2156,11 @@ void QRasterPaintEngine::strokePolygonCosmetic(const QPointF *points, int pointC
: LineDrawNormal);
int dashOffset = int(s->lastPen.dashOffset());
- const QPointF offs(aliasedCoordinateDelta, aliasedCoordinateDelta);
-
// Draw all the line segments.
for (int i=1; i<pointCount; ++i) {
- QPointF lp1 = points[i-1] * s->matrix + offs;
- QPointF lp2 = points[i] * s->matrix + offs;
+ QPointF lp1 = points[i-1] * s->matrix;
+ QPointF lp2 = points[i] * s->matrix;
const QRectF brect(lp1, lp2);
ProcessSpans penBlend = d->getPenFunc(brect, &s->penData);
@@ -2192,8 +2182,8 @@ void QRasterPaintEngine::strokePolygonCosmetic(const QPointF *points, int pointC
// Polygons are implicitly closed.
if (needs_closing) {
- QPointF lp1 = points[pointCount-1] * s->matrix + offs;
- QPointF lp2 = points[0] * s->matrix + offs;
+ QPointF lp1 = points[pointCount-1] * s->matrix;
+ QPointF lp2 = points[0] * s->matrix;
const QRectF brect(lp1, lp2);
ProcessSpans penBlend = d->getPenFunc(brect, &s->penData);
@@ -2581,10 +2571,7 @@ void QRasterPaintEngine::drawImage(const QRectF &r, const QImage &img, const QRe
int sr_b = qCeil(sr.bottom()) - 1;
if (s->matrix.type() <= QTransform::TxScale && !s->flags.antialiased && sr_l == sr_r && sr_t == sr_b) {
- // as fillRect will apply the aliased coordinate delta we need to
- // subtract it here as we don't use it for image drawing
QTransform old = s->matrix;
- s->matrix = s->matrix * QTransform::fromTranslate(-aliasedCoordinateDelta, -aliasedCoordinateDelta);
// Do whatever fillRect() does, but without premultiplying the color if it's already premultiplied.
QRgb color = img.pixel(sr_l, sr_t);
@@ -2728,11 +2715,9 @@ void QRasterPaintEngine::drawImage(const QRectF &r, const QImage &img, const QRe
d->initializeRasterizer(&d->image_filler_xform);
d->rasterizer->setAntialiased(s->flags.antialiased);
- const QPointF offs = s->flags.antialiased ? QPointF() : QPointF(aliasedCoordinateDelta, aliasedCoordinateDelta);
-
const QRectF &rect = r.normalized();
- const QPointF a = s->matrix.map((rect.topLeft() + rect.bottomLeft()) * 0.5f) - offs;
- const QPointF b = s->matrix.map((rect.topRight() + rect.bottomRight()) * 0.5f) - offs;
+ const QPointF a = s->matrix.map((rect.topLeft() + rect.bottomLeft()) * 0.5f);
+ const QPointF b = s->matrix.map((rect.topRight() + rect.bottomRight()) * 0.5f);
if (s->flags.tx_noshear)
d->rasterizer->rasterizeLine(a, b, rect.height() / rect.width());
@@ -2741,13 +2726,12 @@ void QRasterPaintEngine::drawImage(const QRectF &r, const QImage &img, const QRe
return;
}
#endif
- const qreal offs = s->flags.antialiased ? qreal(0) : aliasedCoordinateDelta;
QPainterPath path;
path.addRect(r);
QTransform m = s->matrix;
s->matrix = QTransform(m.m11(), m.m12(), m.m13(),
m.m21(), m.m22(), m.m23(),
- m.m31() - offs, m.m32() - offs, m.m33());
+ m.m31(), m.m32(), m.m33());
fillPath(path, &d->image_filler_xform);
s->matrix = m;
} else {
@@ -3116,13 +3100,11 @@ void QRasterPaintEngine::drawCachedGlyphs(int numGlyphs, const glyph_t *glyphs,
int margin = cache->glyphMargin();
- const QFixed offs = QFixed::fromReal(aliasedCoordinateDelta);
-
const uchar *bits = image.bits();
for (int i=0; i<numGlyphs; ++i) {
const QTextureGlyphCache::Coord &c = cache->coords.value(glyphs[i]);
- int x = qFloor(positions[i].x + offs) + c.baseLineX - margin;
- int y = qFloor(positions[i].y + offs) - c.baseLineY - margin;
+ int x = qFloor(positions[i].x) + c.baseLineX - margin;
+ int y = qFloor(positions[i].y) - c.baseLineY - margin;
// printf("drawing [%d %d %d %d] baseline [%d %d], glyph: %d, to: %d %d, pos: %d %d\n",
// c.x, c.y,
@@ -3160,16 +3142,14 @@ void QRasterPaintEngine::drawGlyphsS60(const QPointF &p, const QTextItemInt &ti)
fe->setFontScale(matrix.m11());
ti.fontEngine->getGlyphPositions(ti.glyphs, matrix, ti.flags, glyphs, positions);
- const QFixed aliasDelta = QFixed::fromReal(aliasedCoordinateDelta);
-
for (int i=0; i<glyphs.size(); ++i) {
TOpenFontCharMetrics tmetrics;
const TUint8 *glyphBitmapBytes;
TSize glyphBitmapSize;
fe->getCharacterData(glyphs[i], tmetrics, glyphBitmapBytes, glyphBitmapSize);
const glyph_metrics_t metrics = ti.fontEngine->boundingBox(glyphs[i]);
- const int x = qFloor(positions[i].x + metrics.x + aliasDelta);
- const int y = qFloor(positions[i].y + metrics.y + aliasDelta);
+ const int x = qFloor(positions[i].x + metrics.x);
+ const int y = qFloor(positions[i].y + metrics.y);
alphaPenBlt(glyphBitmapBytes, glyphBitmapSize.iWidth, 8, x, y, glyphBitmapSize.iWidth, glyphBitmapSize.iHeight);
}
@@ -3383,7 +3363,7 @@ void QRasterPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textIte
#if defined(Q_WS_QWS)
if (fontEngine->type() == QFontEngine::Box) {
- fontEngine->draw(this, qFloor(p.x() + aliasedCoordinateDelta), qFloor(p.y() + aliasedCoordinateDelta), ti);
+ fontEngine->draw(this, qFloor(p.x()), qFloor(p.y()), ti);
return;
}
@@ -3392,7 +3372,7 @@ void QRasterPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textIte
|| (fontEngine->type() == QFontEngine::Proxy
&& !(static_cast<QProxyFontEngine *>(fontEngine)->drawAsOutline()))
)) {
- fontEngine->draw(this, qFloor(p.x() + aliasedCoordinateDelta), qFloor(p.y() + aliasedCoordinateDelta), ti);
+ fontEngine->draw(this, qFloor(p.x()), qFloor(p.y()), ti);
return;
}
#endif // Q_WS_QWS
@@ -3453,7 +3433,6 @@ void QRasterPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textIte
return;
}
- QFixed offs = QFixed::fromReal(aliasedCoordinateDelta);
FT_Face lockedFace = 0;
int depth;
@@ -3501,8 +3480,8 @@ void QRasterPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textIte
};
alphaPenBlt(glyph->data, pitch, depth,
- qFloor(positions[i].x + offs) + glyph->x,
- qFloor(positions[i].y + offs) - glyph->y,
+ qFloor(positions[i].x) + glyph->x,
+ qFloor(positions[i].y) - glyph->y,
glyph->width, glyph->height);
}
if (lockedFace)
@@ -3639,8 +3618,8 @@ void QRasterPaintEngine::drawLines(const QLine *lines, int lineCount)
int m11 = int(s->matrix.m11());
int m22 = int(s->matrix.m22());
- int dx = qFloor(s->matrix.dx() + aliasedCoordinateDelta);
- int dy = qFloor(s->matrix.dy() + aliasedCoordinateDelta);
+ int dx = qFloor(s->matrix.dx());
+ int dy = qFloor(s->matrix.dy());
for (int i=0; i<lineCount; ++i) {
int dashOffset = int(s->lastPen.dashOffset());
if (s->flags.int_xform) {
@@ -3744,7 +3723,7 @@ void QRasterPaintEngine::drawLines(const QLineF *lines, int lineCount)
for (int i=0; i<lineCount; ++i) {
int dashOffset = int(s->lastPen.dashOffset());
- QLineF line = (lines[i] * s->matrix).translated(aliasedCoordinateDelta, aliasedCoordinateDelta);
+ QLineF line = lines[i] * s->matrix;
const QRectF brect(QPointF(line.x1(), line.y1()),
QPointF(line.x2(), line.y2()));
ProcessSpans penBlend = d->getPenFunc(brect, &s->penData);
diff --git a/src/gui/painting/qpaintengineex.cpp b/src/gui/painting/qpaintengineex.cpp
index e0746fb..881bd6e 100644
--- a/src/gui/painting/qpaintengineex.cpp
+++ b/src/gui/painting/qpaintengineex.cpp
@@ -831,7 +831,7 @@ void QPaintEngineEx::drawEllipse(const QRectF &r)
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);
}
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index f24eafd..314f349 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -88,14 +88,19 @@ bool qt_show_painter_debug_output = true;
extern QPixmap qt_pixmapForBrush(int style, bool invert);
-static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, QFontEngine *fe,
- QTextCharFormat::UnderlineStyle underlineStyle,
- QTextItemInt::RenderFlags flags, qreal width,
- const QTextCharFormat &charFormat);
void qt_format_text(const QFont &font,
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,
+ 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)
{
@@ -2702,6 +2707,61 @@ QPainterPath QPainter::clipPath() const
}
/*!
+ Returns the bounding rectangle of the current clip if there is a clip;
+ otherwise returns an empty rectangle. Note that the clip region is
+ given in logical coordinates.
+
+ The bounding rectangle is not guaranteed to be tight.
+
+ \sa setClipRect(), setClipPath(), setClipRegion()
+
+ \since 4.8
+ */
+
+QRectF QPainter::clipBoundingRect() const
+{
+ Q_D(const QPainter);
+
+ if (!d->engine) {
+ qWarning("QPainter::clipBoundingRect: Painter not active");
+ return QRectF();
+ }
+
+ // Accumulate the bounding box in device space. This is not 100%
+ // precise, but it fits within the guarantee and it is resonably
+ // fast.
+ QRectF bounds;
+ for (int i=0; i<d->state->clipInfo.size(); ++i) {
+ QRectF r;
+ const QPainterClipInfo &info = d->state->clipInfo.at(i);
+
+ if (info.clipType == QPainterClipInfo::RectClip)
+ r = info.rect;
+ else if (info.clipType == QPainterClipInfo::RegionClip)
+ r = info.region.boundingRect();
+ else
+ r = info.path.boundingRect();
+
+ r = info.matrix.mapRect(r);
+
+ if (i == 0)
+ bounds = r;
+ else if (info.operation == Qt::IntersectClip)
+ bounds &= r;
+ else if (info.operation == Qt::UniteClip)
+ bounds |= r;
+ }
+
+
+ // Map the rectangle back into logical space using the inverse
+ // matrix.
+ if (!d->txinv)
+ const_cast<QPainter *>(this)->d_ptr->updateInvMatrix();
+
+ return d->invMatrix.mapRect(bounds);
+}
+
+/*!
\fn void QPainter::setClipRect(const QRectF &rectangle, Qt::ClipOperation operation)
Enables clipping, and sets the clip region to the given \a
@@ -5996,6 +6056,10 @@ void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText
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);
@@ -6363,9 +6427,9 @@ static QPixmap generateWavyPixmap(qreal maxRadius, const QPen &pen)
return pixmap;
}
-static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, QFontEngine *fe,
+static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, const QFontEngine *fe,
QTextCharFormat::UnderlineStyle underlineStyle,
- QTextItemInt::RenderFlags flags, qreal width,
+ QTextItem::RenderFlags flags, qreal width,
const QTextCharFormat &charFormat)
{
if (underlineStyle == QTextCharFormat::NoUnderline
@@ -6439,6 +6503,50 @@ static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, QFontE
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
diff --git a/src/gui/painting/qpainter.h b/src/gui/painting/qpainter.h
index 85751a9..96305e3 100644
--- a/src/gui/painting/qpainter.h
+++ b/src/gui/painting/qpainter.h
@@ -222,6 +222,8 @@ public:
void setClipping(bool enable);
bool hasClipping() const;
+ QRectF clipBoundingRect() const;
+
void save();
void restore();
diff --git a/src/gui/painting/qrasterizer.cpp b/src/gui/painting/qrasterizer.cpp
index f8f8afb..c92d8d5 100644
--- a/src/gui/painting/qrasterizer.cpp
+++ b/src/gui/painting/qrasterizer.cpp
@@ -62,8 +62,8 @@ typedef int Q16Dot16;
#define SPAN_BUFFER_SIZE 256
-#define COORD_ROUNDING 1 // 0: round up, 1: round down
-#define COORD_OFFSET 32 // 26.6, 32 is half a pixel
+#define COORD_ROUNDING 0 // 0: round up, 1: round down
+#define COORD_OFFSET 0 // 26.6, 32 is half a pixel
class QSpanBuffer {
public:
@@ -718,7 +718,7 @@ void QRasterizer::rasterizeLine(const QPointF &a, const QPointF &b, qreal width,
QPointF pa = a;
QPointF pb = b;
- QPointF offs = QPointF(qAbs(b.y() - a.y()), qAbs(b.x() - a.x())) * width * 0.5;
+ QPointF offs = QPointF(qAbs(b.y() - a.y()), qAbs(b.x() - a.x())) * width * 0.5;
if (squareCap)
offs += QPointF(offs.y(), offs.x());
const QRectF clip(d->clipRect.topLeft() - offs, d->clipRect.bottomRight() + QPoint(1, 1) + offs);
diff --git a/src/gui/painting/qwindowsurface_s60.cpp b/src/gui/painting/qwindowsurface_s60.cpp
index 477bd93..8bac1f5 100644
--- a/src/gui/painting/qwindowsurface_s60.cpp
+++ b/src/gui/painting/qwindowsurface_s60.cpp
@@ -67,10 +67,14 @@ QS60WindowSurface::QS60WindowSurface(QWidget* widget)
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)
- mode = EColor16MA; // Try for transparency anyway
+ if (isOpaque) {
+ mode = EColor16MU;
+ } else {
+ if (QSysInfo::symbianVersion() >= QSysInfo::SV_SF_3)
+ mode = Q_SYMBIAN_ECOLOR16MAP; // Symbian^3 WServ has support for ARGB32_PRE
+ else
+ mode = EColor16MA; // Symbian prior to Symbian^3 sw accelerates EColor16MA
+ }
// We create empty CFbsBitmap here -> it will be resized in setGeometry
CFbsBitmap *bitmap = q_check_ptr(new CFbsBitmap); // CBase derived object needs check on new
diff --git a/src/gui/s60framework/qs60mainapplication.cpp b/src/gui/s60framework/qs60mainapplication.cpp
index 0f9367e..5d4c54e 100644
--- a/src/gui/s60framework/qs60mainapplication.cpp
+++ b/src/gui/s60framework/qs60mainapplication.cpp
@@ -136,16 +136,25 @@ TFileName QS60MainApplication::ResourceFileName() const
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);
diff --git a/src/gui/s60framework/qs60mainappui.cpp b/src/gui/s60framework/qs60mainappui.cpp
index 40c2d03..ea9dbb3 100644
--- a/src/gui/s60framework/qs60mainappui.cpp
+++ b/src/gui/s60framework/qs60mainappui.cpp
@@ -281,76 +281,121 @@ void QS60MainAppUi::RestoreMenuL(CCoeControl *menuWindow, TInt resourceId, TMenu
}
}
+/*!
+ \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);
diff --git a/src/gui/s60framework/qs60maindocument.cpp b/src/gui/s60framework/qs60maindocument.cpp
index ed33a41..26e2d00 100644
--- a/src/gui/s60framework/qs60maindocument.cpp
+++ b/src/gui/s60framework/qs60maindocument.cpp
@@ -105,11 +105,17 @@ CEikAppUi *QS60MainDocument::CreateAppUiL()
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);
diff --git a/src/gui/s60framework/qs60maindocument.h b/src/gui/s60framework/qs60maindocument.h
index 2f0564f..fc32d8b 100644
--- a/src/gui/s60framework/qs60maindocument.h
+++ b/src/gui/s60framework/qs60maindocument.h
@@ -47,7 +47,7 @@
#ifdef Q_OS_SYMBIAN
#ifdef Q_WS_S60
-#include <akndoc.h>
+#include <AknDoc.h>
typedef CAknDocument QS60MainDocumentBase;
#else
#include <eikdoc.h>
diff --git a/src/gui/styles/qmacstyle_mac.h b/src/gui/styles/qmacstyle_mac.h
index bcebb1d..d5fcdae 100644
--- a/src/gui/styles/qmacstyle_mac.h
+++ b/src/gui/styles/qmacstyle_mac.h
@@ -60,6 +60,8 @@ class QPalette;
#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 @@ private:
Q_DISABLE_COPY(QMacStyle)
QMacStylePrivate *d;
+
+ friend bool qt_mac_buttonIsRenderedFlat(const QPushButton *pushButton, const QStyleOptionButton *option);
};
#endif // Q_WS_MAC
diff --git a/src/gui/styles/qmacstyle_mac.mm b/src/gui/styles/qmacstyle_mac.mm
index 2005e4a..556e0f3 100644
--- a/src/gui/styles/qmacstyle_mac.mm
+++ b/src/gui/styles/qmacstyle_mac.mm
@@ -1059,6 +1059,16 @@ void QMacStylePrivate::initHIThemePushButton(const QStyleOptionButton *btn,
}
}
+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 @@ QMacStylePrivate::QMacStylePrivate(QMacStyle *style)
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) {
@@ -1629,7 +1642,7 @@ bool QMacStylePrivate::eventFilter(QObject *o, QEvent *e)
case QEvent::FocusOut:
case QEvent::Show:
case QEvent::WindowActivate: {
- QList<QPushButton *> list = qFindChildren<QPushButton *>(btn->window());
+ QList<QPushButton *> list = btn->window()->findChildren<QPushButton *>();
for (int i = 0; i < list.size(); ++i) {
QPushButton *pBtn = list.at(i);
if ((e->type() == QEvent::FocusOut
diff --git a/src/gui/styles/qmacstyle_mac_p.h b/src/gui/styles/qmacstyle_mac_p.h
index 5a0ba4c..f9b9d30 100644
--- a/src/gui/styles/qmacstyle_mac_p.h
+++ b/src/gui/styles/qmacstyle_mac_p.h
@@ -150,6 +150,8 @@ enum QAquaWidgetSize { QAquaSizeLarge = 0, QAquaSizeSmall = 1, QAquaSizeMini = 2
return sizes[controlSize]; \
} while (0)
+bool qt_mac_buttonIsRenderedFlat(const QPushButton *pushButton, const QStyleOptionButton *option);
+
class QMacStylePrivate : public QObject
{
Q_OBJECT
diff --git a/src/gui/styles/qplastiquestyle.cpp b/src/gui/styles/qplastiquestyle.cpp
index 20d9bd9..4690a71 100644
--- a/src/gui/styles/qplastiquestyle.cpp
+++ b/src/gui/styles/qplastiquestyle.cpp
@@ -1054,7 +1054,7 @@ void QPlastiqueStylePrivate::drawPartialFrame(QPainter *painter, const QStyleOpt
bool reverse = option->direction == Qt::RightToLeft;
QStyleOptionFrame frameOpt;
#ifndef QT_NO_LINEEDIT
- if (QLineEdit *lineedit = qFindChild<QLineEdit *>(widget))
+ if (QLineEdit *lineedit = widget->findChild<QLineEdit *>())
frameOpt.initFrom(lineedit);
#else
Q_UNUSED(widget)
diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp
index e28403b..b11fb2b 100644
--- a/src/gui/styles/qs60style.cpp
+++ b/src/gui/styles/qs60style.cpp
@@ -1412,7 +1412,7 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
bool isScrollBarVisible = false;
int scrollBarWidth = 0;
- QList<QScrollBar *> scrollBars = qFindChildren<QScrollBar *>(widget);
+ QList<QScrollBar *> scrollBars = widget->findChildren<QScrollBar *>();
for (int i = 0; i < scrollBars.size(); ++i) {
QScrollBar *scrollBar = scrollBars.at(i);
if (scrollBar && scrollBar->orientation() == Qt::Vertical) {
diff --git a/src/gui/styles/qs60style_s60.cpp b/src/gui/styles/qs60style_s60.cpp
index 2527662..f44b85e 100644
--- a/src/gui/styles/qs60style_s60.cpp
+++ b/src/gui/styles/qs60style_s60.cpp
@@ -58,12 +58,12 @@
#include <AknsSkinInstance.h>
#include <AknsBasicBackgroundControlContext.h>
#include <avkon.mbg>
-#include <aknfontaccess.h>
-#include <aknlayoutfont.h>
+#include <AknFontAccess.h>
+#include <AknLayoutFont.h>
#include <AknUtils.h>
#include <aknnavi.h>
#include <gulicon.h>
-#include <aknbitmapanimation.h>
+#include <AknBitmapAnimation.h>
#if !defined(QT_NO_STYLE_S60) || defined(QT_PLUGIN)
diff --git a/src/gui/styles/qstyle.cpp b/src/gui/styles/qstyle.cpp
index 687e587..0a75492 100644
--- a/src/gui/styles/qstyle.cpp
+++ b/src/gui/styles/qstyle.cpp
@@ -325,7 +325,7 @@ static int unpackControlTypes(QSizePolicy::ControlTypes controls, QSizePolicy::C
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
*/
/*!
diff --git a/src/gui/styles/qstylesheetstyle.cpp b/src/gui/styles/qstylesheetstyle.cpp
index dff525e..7351a7d 100644
--- a/src/gui/styles/qstylesheetstyle.cpp
+++ b/src/gui/styles/qstylesheetstyle.cpp
@@ -2342,7 +2342,7 @@ static QWidget *embeddedWidget(QWidget *w)
#ifndef QT_NO_SPINBOX
if (QAbstractSpinBox *sb = qobject_cast<QAbstractSpinBox *>(w))
- return qFindChild<QLineEdit *>(sb);
+ return sb->findChild<QLineEdit *>();
#endif
#ifndef QT_NO_SCROLLAREA
@@ -2583,7 +2583,7 @@ void QStyleSheetStyle::unsetPalette(QWidget *w)
}
QVariant oldFont = w->property("_q_styleSheetWidgetFont");
if (oldFont.isValid()) {
- w->setFont(qVariantValue<QFont>(oldFont));
+ w->setFont(qvariant_cast<QFont>(oldFont));
}
if (autoFillDisabledWidgets->contains(w)) {
embeddedWidget(w)->setAutoFillBackground(true);
@@ -2795,7 +2795,7 @@ void QStyleSheetStyle::polish(QPalette &pal)
void QStyleSheetStyle::repolish(QWidget *w)
{
- QList<const QWidget *> children = qFindChildren<const QWidget *>(w, QString());
+ QList<const QWidget *> children = w->findChildren<const QWidget *>(QString());
children.append(w);
styleSheetCache->remove(w);
updateWidgets(children);
@@ -4094,7 +4094,7 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q
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) {
@@ -5074,7 +5074,7 @@ QIcon QStyleSheetStyle::standardIconImplementation(StandardPixmap standardIcon,
if (!s.isEmpty()) {
QRenderRule rule = renderRule(w, opt);
if (rule.hasStyleHint(s))
- return qVariantValue<QIcon>(rule.styleHint(s));
+ return qvariant_cast<QIcon>(rule.styleHint(s));
}
return baseStyle()->standardIcon(standardIcon, opt, w);
}
@@ -5092,7 +5092,7 @@ QPixmap QStyleSheetStyle::standardPixmap(StandardPixmap standardPixmap, const QS
if (!s.isEmpty()) {
QRenderRule rule = renderRule(w, opt);
if (rule.hasStyleHint(s)) {
- QIcon icon = qVariantValue<QIcon>(rule.styleHint(s));
+ QIcon icon = qvariant_cast<QIcon>(rule.styleHint(s));
return icon.pixmap(16, 16); // ###: unhard-code this if someone complains
}
}
@@ -5186,7 +5186,7 @@ int QStyleSheetStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWi
case SH_ComboBox_PopupFrameStyle:
#ifndef QT_NO_COMBOBOX
if (qobject_cast<const QComboBox *>(w)) {
- QAbstractItemView *view = qFindChild<QAbstractItemView *>(w);
+ QAbstractItemView *view = w->findChild<QAbstractItemView *>();
if (view) {
view->ensurePolished();
QRenderRule subRule = renderRule(view, PseudoElement_None);
diff --git a/src/gui/styles/qwindowsstyle.cpp b/src/gui/styles/qwindowsstyle.cpp
index 579dd0b..8f1accb 100644
--- a/src/gui/styles/qwindowsstyle.cpp
+++ b/src/gui/styles/qwindowsstyle.cpp
@@ -175,7 +175,7 @@ bool QWindowsStyle::eventFilter(QObject *o, QEvent *e)
widget = widget->window();
// Alt has been pressed - find all widgets that care
- QList<QWidget *> l = qFindChildren<QWidget *>(widget);
+ QList<QWidget *> l = widget->findChildren<QWidget *>();
for (int pos=0 ; pos < l.size() ; ++pos) {
QWidget *w = l.at(pos);
if (w->isWindow() || !w->isVisible() ||
@@ -198,7 +198,7 @@ bool QWindowsStyle::eventFilter(QObject *o, QEvent *e)
// Update state and repaint the menu bars.
d->alt_down = false;
#ifndef QT_NO_MENUBAR
- QList<QMenuBar *> l = qFindChildren<QMenuBar *>(widget);
+ QList<QMenuBar *> l = widget->findChildren<QMenuBar *>();
for (int i = 0; i < l.size(); ++i)
l.at(i)->update();
#endif
@@ -1160,7 +1160,7 @@ int QWindowsStyle::styleHint(StyleHint hint, const QStyleOption *opt, const QWid
if (!menuBar && qobject_cast<const QMenu *>(widget)) {
QWidget *w = QApplication::activeWindow();
if (w && w != widget)
- menuBar = qFindChild<QMenuBar *>(w);
+ menuBar = w->findChild<QMenuBar *>();
}
// If we paint a menu bar draw underlines if is in the keyboardState
if (menuBar) {
diff --git a/src/gui/styles/qwindowsvistastyle.cpp b/src/gui/styles/qwindowsvistastyle.cpp
index 8511592..8cb57d5 100644
--- a/src/gui/styles/qwindowsvistastyle.cpp
+++ b/src/gui/styles/qwindowsvistastyle.cpp
@@ -841,10 +841,10 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt
const QDialogButtonBox *buttonBox = 0;
if (qobject_cast<const QMessageBox *> (widget))
- buttonBox = qFindChild<const QDialogButtonBox *>(widget,QLatin1String("qt_msgbox_buttonbox"));
+ buttonBox = widget->findChild<const QDialogButtonBox *>(QLatin1String("qt_msgbox_buttonbox"));
#ifndef QT_NO_INPUTDIALOG
else if (qobject_cast<const QInputDialog *> (widget))
- buttonBox = qFindChild<const QDialogButtonBox *>(widget,QLatin1String("qt_inputdlg_buttonbox"));
+ buttonBox = widget->findChild<const QDialogButtonBox *>(QLatin1String("qt_inputdlg_buttonbox"));
#endif // QT_NO_INPUTDIALOG
if (buttonBox) {
@@ -2395,14 +2395,14 @@ void QWindowsVistaStyle::polish(QWidget *widget)
}
} else if (qobject_cast<QMessageBox *> (widget)) {
widget->setAttribute(Qt::WA_StyledBackground);
- QDialogButtonBox *buttonBox = qFindChild<QDialogButtonBox *>(widget,QLatin1String("qt_msgbox_buttonbox"));
+ QDialogButtonBox *buttonBox = widget->findChild<QDialogButtonBox *>(QLatin1String("qt_msgbox_buttonbox"));
if (buttonBox)
buttonBox->setContentsMargins(0, 9, 0, 0);
}
#ifndef QT_NO_INPUTDIALOG
else if (qobject_cast<QInputDialog *> (widget)) {
widget->setAttribute(Qt::WA_StyledBackground);
- QDialogButtonBox *buttonBox = qFindChild<QDialogButtonBox *>(widget,QLatin1String("qt_inputdlg_buttonbox"));
+ QDialogButtonBox *buttonBox = widget->findChild<QDialogButtonBox *>(QLatin1String("qt_inputdlg_buttonbox"));
if (buttonBox)
buttonBox->setContentsMargins(0, 9, 0, 0);
}
@@ -2434,14 +2434,14 @@ void QWindowsVistaStyle::unpolish(QWidget *widget)
widget->setAttribute(Qt::WA_Hover, false);
else if (qobject_cast<QMessageBox *> (widget)) {
widget->setAttribute(Qt::WA_StyledBackground, false);
- QDialogButtonBox *buttonBox = qFindChild<QDialogButtonBox *>(widget,QLatin1String("qt_msgbox_buttonbox"));
+ QDialogButtonBox *buttonBox = widget->findChild<QDialogButtonBox *>(QLatin1String("qt_msgbox_buttonbox"));
if (buttonBox)
buttonBox->setContentsMargins(0, 0, 0, 0);
}
#ifndef QT_NO_INPUTDIALOG
else if (qobject_cast<QInputDialog *> (widget)) {
widget->setAttribute(Qt::WA_StyledBackground, false);
- QDialogButtonBox *buttonBox = qFindChild<QDialogButtonBox *>(widget,QLatin1String("qt_inputdlg_buttonbox"));
+ QDialogButtonBox *buttonBox = widget->findChild<QDialogButtonBox *>(QLatin1String("qt_inputdlg_buttonbox"));
if (buttonBox)
buttonBox->setContentsMargins(0, 0, 0, 0);
}
diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp
index b3d2526..3fc6722 100644
--- a/src/gui/text/qcssparser.cpp
+++ b/src/gui/text/qcssparser.cpp
@@ -403,7 +403,7 @@ int ValueExtractor::lengthValue(const Declaration &decl)
if (decl.d->values.count() < 1)
return 0;
LengthData data = lengthValue(decl.d->values.at(0));
- decl.d->parsed = qVariantFromValue<LengthData>(data);
+ decl.d->parsed = QVariant::fromValue<LengthData>(data);
return lengthValueFromData(data,f);
}
@@ -435,7 +435,7 @@ void ValueExtractor::lengthValues(const Declaration &decl, int *m)
QList<QVariant> v;
for (i = 0; i < 4; i++) {
- v += qVariantFromValue<LengthData>(datas[i]);
+ v += QVariant::fromValue<LengthData>(datas[i]);
m[i] = lengthValueFromData(datas[i], f);
}
decl.d->parsed = v;
@@ -541,7 +541,7 @@ QSize ValueExtractor::sizeValue(const Declaration &decl)
else
x[1] = x[0];
QList<QVariant> v;
- v << qVariantFromValue<LengthData>(x[0]) << qVariantFromValue<LengthData>(x[1]);
+ v << QVariant::fromValue<LengthData>(x[0]) << qVariantFromValue<LengthData>(x[1]);
decl.d->parsed = v;
return QSize(lengthValueFromData(x[0], f), lengthValueFromData(x[1], f));
}
@@ -916,7 +916,7 @@ void ValueExtractor::borderValue(const Declaration &decl, int *width, QCss::Bord
data.width = lengthValue(decl.d->values.at(i));
*width = lengthValueFromData(data.width, f);
if (++i >= decl.d->values.count()) {
- decl.d->parsed = qVariantFromValue<BorderData>(data);
+ decl.d->parsed = QVariant::fromValue<BorderData>(data);
return;
}
}
@@ -925,7 +925,7 @@ void ValueExtractor::borderValue(const Declaration &decl, int *width, QCss::Bord
if (data.style != BorderStyle_Unknown) {
*style = data.style;
if (++i >= decl.d->values.count()) {
- decl.d->parsed = qVariantFromValue<BorderData>(data);
+ decl.d->parsed = QVariant::fromValue<BorderData>(data);
return;
}
} else {
@@ -935,7 +935,7 @@ void ValueExtractor::borderValue(const Declaration &decl, int *width, QCss::Bord
data.color = parseBrushValue(decl.d->values.at(i), pal);
*color = brushFromData(data.color, pal);
if (data.color.type != BrushData::DependsOnThePalette)
- decl.d->parsed = qVariantFromValue<BorderData>(data);
+ decl.d->parsed = QVariant::fromValue<BorderData>(data);
}
static void parseShorthandBackgroundProperty(const QVector<Value> &values, BrushData *brush, QString *image, Repeat *repeat, Qt::Alignment *alignment, const QPalette &pal)
@@ -1032,16 +1032,8 @@ bool ValueExtractor::extractBackground(QBrush *brush, QString *image, Repeat *re
parseShorthandBackgroundProperty(decl.d->values, &brushData, image, repeat, alignment, pal);
*brush = brushFromData(brushData, pal);
if (brushData.type != BrushData::DependsOnThePalette) {
-#if defined Q_CC_MSVC && _MSC_VER <= 1300
- BackgroundData data;
- data.brush = brushData;
- data.image = *image;
- data.repeat = *repeat;
- data.alignment = *alignment;
-#else
BackgroundData data = { brushData, *image, *repeat, *alignment };
-#endif
- decl.d->parsed = qVariantFromValue<BackgroundData>(data);
+ decl.d->parsed = QVariant::fromValue<BackgroundData>(data);
}
}
break;
@@ -1319,10 +1311,10 @@ QColor Declaration::colorValue(const QPalette &pal) const
ColorData color = parseColorValue(d->values.at(0));
if(color.type == ColorData::Role) {
- d->parsed = qVariantFromValue<int>(color.role);
+ d->parsed = QVariant::fromValue<int>(color.role);
return pal.color((QPalette::ColorRole)(color.role));
} else {
- d->parsed = qVariantFromValue<QColor>(color.color);
+ d->parsed = QVariant::fromValue<QColor>(color.color);
return color.color;
}
}
@@ -1342,11 +1334,11 @@ QBrush Declaration::brushValue(const QPalette &pal) const
BrushData data = parseBrushValue(d->values.at(0), pal);
if(data.type == BrushData::Role) {
- d->parsed = qVariantFromValue<int>(data.role);
+ d->parsed = QVariant::fromValue<int>(data.role);
return pal.color((QPalette::ColorRole)(data.role));
} else {
if (data.type != BrushData::DependsOnThePalette)
- d->parsed = qVariantFromValue<QBrush>(data.brush);
+ d->parsed = QVariant::fromValue<QBrush>(data.brush);
return data.brush;
}
}
@@ -1376,11 +1368,11 @@ void Declaration::brushValues(QBrush *c, const QPalette &pal) const
continue;
BrushData data = parseBrushValue(d->values.at(i), pal);
if(data.type == BrushData::Role) {
- v += qVariantFromValue<int>(data.role);
+ v += QVariant::fromValue<int>(data.role);
c[i] = pal.color((QPalette::ColorRole)(data.role));
} else {
if (data.type != BrushData::DependsOnThePalette) {
- v += qVariantFromValue<QBrush>(data.brush);
+ v += QVariant::fromValue<QBrush>(data.brush);
} else {
v += QVariant();
}
@@ -1453,7 +1445,7 @@ QSize Declaration::sizeValue() const
else
x[1] = x[0];
QSize size(x[0], x[1]);
- d->parsed = qVariantFromValue<QSize>(size);
+ d->parsed = QVariant::fromValue<QSize>(size);
return size;
}
@@ -1475,7 +1467,7 @@ QRect Declaration::rectValue() const
if (args.count() != 4)
return QRect();
QRect rect(args[0].toInt(), args[1].toInt(), args[2].toInt(), args[3].toInt());
- d->parsed = qVariantFromValue<QRect>(rect);
+ d->parsed = QVariant::fromValue<QRect>(rect);
return rect;
}
@@ -1496,10 +1488,10 @@ void Declaration::colorValues(QColor *c, const QPalette &pal) const
for (i = 0; i < qMin(d->values.count(), 4); i++) {
ColorData color = parseColorValue(d->values.at(i));
if(color.type == ColorData::Role) {
- v += qVariantFromValue<int>(color.role);
+ v += QVariant::fromValue<int>(color.role);
c[i] = pal.color((QPalette::ColorRole)(color.role));
} else {
- v += qVariantFromValue<QColor>(color.color);
+ v += QVariant::fromValue<QColor>(color.color);
c[i] = color.color;
}
}
@@ -1691,7 +1683,7 @@ QIcon Declaration::iconValue() const
i++;
}
- d->parsed = qVariantFromValue<QIcon>(icon);
+ d->parsed = QVariant::fromValue<QIcon>(icon);
return icon;
}
diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp
index 7ece6ea..daa9c1c 100644
--- a/src/gui/text/qfontdatabase.cpp
+++ b/src/gui/text/qfontdatabase.cpp
@@ -75,10 +75,6 @@
# define FM_DEBUG if (false) qDebug
#endif
-#if defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET)
-# define for if(0){}else for
-#endif
-
QT_BEGIN_NAMESPACE
#define SMOOTH_SCALABLE 0xffff
diff --git a/src/gui/text/qfontengine_mac.mm b/src/gui/text/qfontengine_mac.mm
index f6b8758..f898fb8 100644
--- a/src/gui/text/qfontengine_mac.mm
+++ b/src/gui/text/qfontengine_mac.mm
@@ -349,11 +349,32 @@ bool QCoreTextFontEngineMulti::stringToCMap(const QChar *str, int len, QGlyphLay
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 @@ bool QCoreTextFontEngineMulti::stringToCMap(const QChar *str, int len, QGlyphLay
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();
}
diff --git a/src/gui/text/qfontmetrics.cpp b/src/gui/text/qfontmetrics.cpp
index d02e841..f2591ce 100644
--- a/src/gui/text/qfontmetrics.cpp
+++ b/src/gui/text/qfontmetrics.cpp
@@ -443,6 +443,21 @@ bool QFontMetrics::inFont(QChar ch) const
}
/*!
+ Returns true if the character encoded in UCS-4/UTF-32 is a valid
+ character in the font; otherwise returns false.
+*/
+bool QFontMetrics::inFontUcs4(uint ucs4) const
+{
+ const int script = QUnicodeTables::script(ucs4);
+ QFontEngine *engine = d->engineForScript(script);
+ Q_ASSERT(engine != 0);
+ if (engine->type() == QFontEngine::Box)
+ return false;
+ QString utf16 = QString::fromUcs4(&ucs4, 1);
+ return engine->canRender(utf16.data(), utf16.length());
+}
+
+/*!
Returns the left bearing of character \a ch in the font.
The left bearing is the right-ward distance of the left-most pixel
@@ -1315,6 +1330,21 @@ bool QFontMetricsF::inFont(QChar ch) const
}
/*!
+ Returns true if the character encoded in UCS-4/UTF-32 is a valid
+ character in the font; otherwise returns false.
+*/
+bool QFontMetricsF::inFontUcs4(uint ucs4) const
+{
+ const int script = QUnicodeTables::script(ucs4);
+ QFontEngine *engine = d->engineForScript(script);
+ Q_ASSERT(engine != 0);
+ if (engine->type() == QFontEngine::Box)
+ return false;
+ QString utf16 = QString::fromUcs4(&ucs4, 1);
+ return engine->canRender(utf16.data(), utf16.length());
+}
+
+/*!
Returns the left bearing of character \a ch in the font.
The left bearing is the right-ward distance of the left-most pixel
@@ -1779,7 +1809,7 @@ qreal QFontMetricsF::lineWidth() const
Use the boundingRect() function in combination with
QString::left() instead.
-
+
\oldcode
QRect rect = boundingRect(text, len);
\newcode
diff --git a/src/gui/text/qfontmetrics.h b/src/gui/text/qfontmetrics.h
index 2518b54..9911ad2 100644
--- a/src/gui/text/qfontmetrics.h
+++ b/src/gui/text/qfontmetrics.h
@@ -85,6 +85,7 @@ public:
int averageCharWidth() const;
bool inFont(QChar) const;
+ bool inFontUcs4(uint ucs4) const;
int leftBearing(QChar) const;
int rightBearing(QChar) const;
@@ -162,6 +163,7 @@ public:
qreal averageCharWidth() const;
bool inFont(QChar) const;
+ bool inFontUcs4(uint ucs4) const;
qreal leftBearing(QChar) const;
qreal rightBearing(QChar) const;
diff --git a/src/gui/text/qstatictext.cpp b/src/gui/text/qstatictext.cpp
index 7396bcd..21c2e02 100644
--- a/src/gui/text/qstatictext.cpp
+++ b/src/gui/text/qstatictext.cpp
@@ -109,10 +109,18 @@ QT_BEGIN_NAMESPACE
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
diff --git a/src/gui/text/qtextcontrol.cpp b/src/gui/text/qtextcontrol.cpp
index 3d34687..32b1df9 100644
--- a/src/gui/text/qtextcontrol.cpp
+++ b/src/gui/text/qtextcontrol.cpp
@@ -2908,7 +2908,7 @@ QAbstractTextDocumentLayout::PaintContext QTextControl::getPaintContext(QWidget
if (widget)
style = widget->style();
style->styleHint(QStyle::SH_TextControl_FocusIndicatorTextCharFormat, &opt, widget, &ret);
- selection.format = qVariantValue<QTextFormat>(ret.variant).toCharFormat();
+ selection.format = qvariant_cast<QTextFormat>(ret.variant).toCharFormat();
} else {
QPalette::ColorGroup cg = d->hasFocus ? QPalette::Active : QPalette::Inactive;
selection.format.setBackground(ctx.palette.brush(cg, QPalette::Highlight));
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp
index e365c8d..4135831 100644
--- a/src/gui/text/qtextengine.cpp
+++ b/src/gui/text/qtextengine.cpp
@@ -923,6 +923,13 @@ void QTextEngine::shapeText(int item) const
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 @@ void QTextEngine::shapeTextWithCE(int item) const
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 @@ void QTextEngine::shapeTextWithCE(int item) const
}
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 @@ void QTextEngine::shapeTextWithCE(int item) const
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 @@ void QTextEngine::shapeTextWithHarfbuzz(int item) const
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 @@ void QTextEngine::shapeTextWithHarfbuzz(int item) const
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 @@ void QTextEngine::shapeTextWithHarfbuzz(int item) const
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 @@ void QTextEngine::shapeTextWithHarfbuzz(int item) const
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 @@ const HB_CharAttributes *QTextEngine::attributes() const
return (HB_CharAttributes *) layoutData->memory;
itemize();
- ensureSpace(layoutData->string.length());
+ if (! ensureSpace(layoutData->string.length()))
+ return NULL;
QVarLengthArray<HB_ScriptItem> hbScriptItems(layoutData->items.size());
@@ -1896,7 +1919,10 @@ void QTextEngine::justify(const QScriptLine &line)
// 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
@@ -2077,7 +2103,7 @@ QTextEngine::LayoutData::LayoutData()
memory_on_stack = false;
used = 0;
hasBidi = false;
- inLayout = false;
+ layoutState = LayoutEmpty;
haveCharAttributes = false;
logClustersPtr = 0;
available_glyphs = 0;
@@ -2111,7 +2137,7 @@ QTextEngine::LayoutData::LayoutData(const QString &str, void **stack_memory, int
}
used = 0;
hasBidi = false;
- inLayout = false;
+ layoutState = LayoutEmpty;
haveCharAttributes = false;
}
@@ -2122,12 +2148,12 @@ QTextEngine::LayoutData::~LayoutData()
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;
@@ -2135,7 +2161,14 @@ void QTextEngine::LayoutData::reallocate(int totalGlyphs)
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);
@@ -2156,6 +2189,7 @@ void QTextEngine::LayoutData::reallocate(int totalGlyphs)
glyphLayout.grow(reinterpret_cast<char *>(m), totalGlyphs);
allocated = newAllocated;
+ return true;
}
// grow to the new size, copying the existing data to the new layout
@@ -2187,7 +2221,7 @@ void QTextEngine::freeMemory()
} else {
layoutData->used = 0;
layoutData->hasBidi = false;
- layoutData->inLayout = false;
+ layoutData->layoutState = LayoutEmpty;
layoutData->haveCharAttributes = false;
}
for (int i = 0; i < lines.size(); ++i) {
@@ -2341,6 +2375,8 @@ QString QTextEngine::elidedText(Qt::TextElideMode mode, const QFixed &width, int
if (flags & Qt::TextShowMnemonic) {
itemize();
HB_CharAttributes *attributes = const_cast<HB_CharAttributes *>(this->attributes());
+ if (!attributes)
+ return QString();
for (int i = 0; i < layoutData->items.size(); ++i) {
QScriptItem &si = layoutData->items[i];
if (!si.num_glyphs)
@@ -2417,6 +2453,8 @@ QString QTextEngine::elidedText(Qt::TextElideMode mode, const QFixed &width, int
return QString();
const HB_CharAttributes *attributes = this->attributes();
+ if (!attributes)
+ return QString();
if (mode == Qt::ElideRight) {
QFixed currentWidth;
diff --git a/src/gui/text/qtextengine_p.h b/src/gui/text/qtextengine_p.h
index 805d242..b5faf20 100644
--- a/src/gui/text/qtextengine_p.h
+++ b/src/gui/text/qtextengine_p.h
@@ -416,6 +416,11 @@ class QTextFormatCollection;
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 @@ public:
QGlyphLayout glyphLayout;
mutable int used;
uint hasBidi : 1;
- uint inLayout : 1;
+ uint layoutState : 2;
uint memory_on_stack : 1;
uint haveCharAttributes : 1;
QString string;
- void reallocate(int totalGlyphs);
+ bool reallocate(int totalGlyphs);
};
QTextEngine(LayoutData *data);
@@ -520,9 +525,10 @@ public:
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();
diff --git a/src/gui/text/qtextformat.cpp b/src/gui/text/qtextformat.cpp
index 46db253..e0a4096 100644
--- a/src/gui/text/qtextformat.cpp
+++ b/src/gui/text/qtextformat.cpp
@@ -925,7 +925,7 @@ qreal QTextFormat::doubleProperty(int propertyId) const
const QVariant prop = d->property(propertyId);
if (prop.userType() != QVariant::Double && prop.userType() != QMetaType::Float)
return 0.;
- return qVariantValue<qreal>(prop);
+ return qvariant_cast<qreal>(prop);
}
/*!
@@ -1895,7 +1895,7 @@ void QTextBlockFormat::setTabPositions(const QList<QTextOption::Tab> &tabs)
QList<QTextOption::Tab>::ConstIterator iter = tabs.constBegin();
while (iter != tabs.constEnd()) {
QVariant v;
- qVariantSetValue<QTextOption::Tab>(v, *iter);
+ v.setValue<QTextOption::Tab>(*iter);
list.append(v);
++iter;
}
@@ -1917,7 +1917,7 @@ QList<QTextOption::Tab> QTextBlockFormat::tabPositions() const
QList<QVariant> variantsList = qvariant_cast<QList<QVariant> >(variant);
QList<QVariant>::Iterator iter = variantsList.begin();
while(iter != variantsList.end()) {
- answer.append( qVariantValue<QTextOption::Tab>(*iter));
+ answer.append( qvariant_cast<QTextOption::Tab>(*iter));
++iter;
}
return answer;
diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp
index 531e46b..3f83aee 100644
--- a/src/gui/text/qtextlayout.cpp
+++ b/src/gui/text/qtextlayout.cpp
@@ -76,6 +76,8 @@ static inline QFixed leadingSpaceWidth(QTextEngine *eng, const QScriptLine &line
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);
@@ -612,7 +614,7 @@ bool QTextLayout::cacheEnabled() const
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;
}
@@ -620,7 +622,7 @@ void QTextLayout::beginLayout()
d->invalidate();
d->clearLineData();
d->itemize();
- d->layoutData->inLayout = true;
+ d->layoutData->layoutState = QTextEngine::InLayout;
}
/*!
@@ -631,7 +633,7 @@ void QTextLayout::beginLayout()
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;
}
@@ -640,7 +642,7 @@ void QTextLayout::endLayout()
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();
}
@@ -768,11 +770,14 @@ bool QTextLayout::isValidCursorPosition(int pos) const
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);
@@ -1035,6 +1040,35 @@ QScriptItem &QTextLineItemIterator::next()
return *si;
}
+static QFixed offsetInLigature(const unsigned short *logClusters,
+ const QGlyphLayout &glyphs,
+ int pos, int max, int glyph_pos)
+{
+ int offsetInCluster = 0;
+ for (int i = pos - 1; i >= 0; i--) {
+ if (logClusters[i] == glyph_pos)
+ offsetInCluster++;
+ else
+ break;
+ }
+
+ // in the case that the offset is inside a (multi-character) glyph,
+ // interpolate the position.
+ if (offsetInCluster > 0) {
+ int clusterLength = 0;
+ for (int i = pos - offsetInCluster; i < max; i++) {
+ if (logClusters[i] == glyph_pos)
+ clusterLength++;
+ else
+ break;
+ }
+ if (clusterLength)
+ return glyphs.advances_x[glyph_pos] * offsetInCluster / clusterLength;
+ }
+
+ return 0;
+}
+
bool QTextLineItemIterator::getSelectionBounds(QFixed *selectionX, QFixed *selectionWidth) const
{
*selectionX = *selectionWidth = 0;
@@ -1074,8 +1108,19 @@ bool QTextLineItemIterator::getSelectionBounds(QFixed *selectionX, QFixed *selec
swidth += glyphs.effectiveAdvance(g);
}
- *selectionX = x + soff;
- *selectionWidth = swidth;
+ // If the starting character is in the middle of a ligature,
+ // selection should only contain the right part of that ligature
+ // glyph, so we need to get the width of the left part here and
+ // add it to *selectionX
+ QFixed leftOffsetInLigature = offsetInLigature(logClusters, glyphs, from,
+ to, start_glyph);
+ *selectionX = x + soff + leftOffsetInLigature;
+ *selectionWidth = swidth - leftOffsetInLigature;
+ // If the ending character is also part of a ligature, swidth does
+ // not contain that part yet, we also need to find out the width of
+ // that left part
+ *selectionWidth += offsetInLigature(logClusters, glyphs, to,
+ eng->length(item), end_glyph);
}
return true;
}
@@ -1736,14 +1781,18 @@ namespace {
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()
@@ -1844,6 +1893,8 @@ void QTextLine::layout_helper(int maxGlyphs)
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;
@@ -1857,6 +1908,8 @@ void QTextLine::layout_helper(int maxGlyphs)
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);
@@ -1935,6 +1988,9 @@ void QTextLine::layout_helper(int maxGlyphs)
} 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);
@@ -1978,9 +2034,17 @@ void QTextLine::layout_helper(int maxGlyphs)
// 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;
}
@@ -2633,14 +2697,6 @@ qreal QTextLine::cursorToX(int *cursorPos, Edge edge) const
if(pos == l)
x += si->width;
} else {
- int offsetInCluster = 0;
- for (int i=pos-1; i >= 0; i--) {
- if (logClusters[i] == glyph_pos)
- offsetInCluster++;
- else
- break;
- }
-
if (reverse) {
int end = qMin(lineEnd, si->position + l) - si->position;
int glyph_end = end == l ? si->num_glyphs : logClusters[end];
@@ -2652,17 +2708,7 @@ qreal QTextLine::cursorToX(int *cursorPos, Edge edge) const
for (int i = glyph_start; i < glyph_pos; i++)
x += glyphs.effectiveAdvance(i);
}
- if (offsetInCluster > 0) { // in the case that the offset is inside a (multi-character) glyph, interpolate the position.
- int clusterLength = 0;
- for (int i=pos - offsetInCluster; i < line.length; i++) {
- if (logClusters[i] == glyph_pos)
- clusterLength++;
- else
- break;
- }
- if (clusterLength)
- x+= glyphs.advances_x[glyph_pos] * offsetInCluster / clusterLength;
- }
+ x += offsetInLigature(logClusters, glyphs, pos, line.length, glyph_pos);
}
*cursorPos = pos + si->position;
diff --git a/src/gui/widgets/qabstractbutton.cpp b/src/gui/widgets/qabstractbutton.cpp
index 995d659..bd66843 100644
--- a/src/gui/widgets/qabstractbutton.cpp
+++ b/src/gui/widgets/qabstractbutton.cpp
@@ -319,7 +319,7 @@ QList<QAbstractButton *>QAbstractButtonPrivate::queryButtonList() const
return group->d_func()->buttonList;
#endif
- QList<QAbstractButton*>candidates = qFindChildren<QAbstractButton *>(parent);
+ QList<QAbstractButton*>candidates = parent->findChildren<QAbstractButton *>();
if (autoExclusive) {
for (int i = candidates.count() - 1; i >= 0; --i) {
QAbstractButton *candidate = candidates.at(i);
diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp
index 88b3467..487d244 100644
--- a/src/gui/widgets/qcombobox.cpp
+++ b/src/gui/widgets/qcombobox.cpp
@@ -116,7 +116,7 @@ QStyleOptionMenuItem QComboMenuDelegate::getStyleOption(const QStyleOptionViewIt
QPalette resolvedpalette = option.palette.resolve(QApplication::palette("QMenu"));
QVariant value = index.data(Qt::ForegroundRole);
- if (qVariantCanConvert<QBrush>(value)) {
+ if (value.canConvert<QBrush>()) {
resolvedpalette.setBrush(QPalette::WindowText, qvariant_cast<QBrush>(value));
resolvedpalette.setBrush(QPalette::ButtonText, qvariant_cast<QBrush>(value));
resolvedpalette.setBrush(QPalette::Text, qvariant_cast<QBrush>(value));
@@ -152,7 +152,7 @@ QStyleOptionMenuItem QComboMenuDelegate::getStyleOption(const QStyleOptionViewIt
menuOption.icon = qvariant_cast<QPixmap>(variant);
break;
}
- if (qVariantCanConvert<QBrush>(index.data(Qt::BackgroundRole))) {
+ if (index.data(Qt::BackgroundRole).canConvert<QBrush>()) {
menuOption.palette.setBrush(QPalette::All, QPalette::Background,
qvariant_cast<QBrush>(index.data(Qt::BackgroundRole)));
}
@@ -911,7 +911,7 @@ QComboBox::QComboBox(bool rw, QWidget *parent, const char *name)
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.
diff --git a/src/gui/widgets/qcommandlinkbutton.cpp b/src/gui/widgets/qcommandlinkbutton.cpp
index d3b5869..a6f5f7d 100644
--- a/src/gui/widgets/qcommandlinkbutton.cpp
+++ b/src/gui/widgets/qcommandlinkbutton.cpp
@@ -349,7 +349,7 @@ void QCommandLinkButton::paintEvent(QPaintEvent *)
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
diff --git a/src/gui/widgets/qdatetimeedit.cpp b/src/gui/widgets/qdatetimeedit.cpp
index e272ce4..3bc6412 100644
--- a/src/gui/widgets/qdatetimeedit.cpp
+++ b/src/gui/widgets/qdatetimeedit.cpp
@@ -754,6 +754,7 @@ QCalendarWidget *QDateTimeEdit::calendarWidget() const
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)
diff --git a/src/gui/widgets/qdialogbuttonbox.cpp b/src/gui/widgets/qdialogbuttonbox.cpp
index 732dbc9..9aea32a 100644
--- a/src/gui/widgets/qdialogbuttonbox.cpp
+++ b/src/gui/widgets/qdialogbuttonbox.cpp
@@ -1229,7 +1229,7 @@ bool QDialogButtonBox::event(QEvent *event)
break;
}
- foreach (QPushButton *pb, qFindChildren<QPushButton *>(dialog ? dialog : this)) {
+ foreach (QPushButton *pb, (dialog ? dialog : this)->findChildren<QPushButton *>()) {
if (pb->isDefault() && pb != firstAcceptButton) {
hasDefault = true;
break;
diff --git a/src/gui/widgets/qlineedit.h b/src/gui/widgets/qlineedit.h
index 94e0dbe..667562b 100644
--- a/src/gui/widgets/qlineedit.h
+++ b/src/gui/widgets/qlineedit.h
@@ -283,6 +283,7 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_editFocusChange(bool))
#endif
Q_PRIVATE_SLOT(d_func(), void _q_selectionChanged())
+ Q_PRIVATE_SLOT(d_func(), void _q_updateNeeded(const QRect &))
};
#endif // QT_NO_LINEEDIT
diff --git a/src/gui/widgets/qlineedit_p.cpp b/src/gui/widgets/qlineedit_p.cpp
index 468c111..d705fa8 100644
--- a/src/gui/widgets/qlineedit_p.cpp
+++ b/src/gui/widgets/qlineedit_p.cpp
@@ -59,6 +59,13 @@ QT_BEGIN_NAMESPACE
const int QLineEditPrivate::verticalMargin(1);
const int QLineEditPrivate::horizontalMargin(2);
+QRect QLineEditPrivate::adjustedControlRect(const QRect &rect) const
+{
+ QRect cr = adjustedContentsRect();
+ int cix = cr.x() - hscroll + horizontalMargin;
+ return rect.translated(QPoint(cix, vscroll));
+}
+
int QLineEditPrivate::xToPos(int x, QTextLine::CursorPosition betweenOrOn) const
{
QRect cr = adjustedContentsRect();
@@ -68,11 +75,7 @@ int QLineEditPrivate::xToPos(int x, QTextLine::CursorPosition betweenOrOn) const
QRect QLineEditPrivate::cursorRect() const
{
- QRect cr = adjustedContentsRect();
- int cix = cr.x() - hscroll + horizontalMargin;
- QRect crect = control->cursorRect();
- crect.moveTo(crect.topLeft() + QPoint(cix, vscroll));
- return crect;
+ return adjustedControlRect(control->cursorRect());
}
#ifndef QT_NO_COMPLETER
@@ -141,6 +144,11 @@ void QLineEditPrivate::_q_selectionChanged()
emit q->selectionChanged();
}
+void QLineEditPrivate::_q_updateNeeded(const QRect &rect)
+{
+ q_func()->update(adjustedControlRect(rect));
+}
+
void QLineEditPrivate::init(const QString& txt)
{
Q_Q(QLineEdit);
@@ -176,7 +184,7 @@ void QLineEditPrivate::init(const QString& txt)
q, SLOT(update()));
QObject::connect(control, SIGNAL(updateNeeded(QRect)),
- q, SLOT(update()));
+ q, SLOT(_q_updateNeeded(QRect)));
QStyleOptionFrameV2 opt;
q->initStyleOption(&opt);
@@ -216,9 +224,8 @@ void QLineEditPrivate::setCursorVisible(bool visible)
if ((bool)cursorVisible == visible)
return;
cursorVisible = visible;
- QRect r = cursorRect();
if (control->inputMask().isEmpty())
- q->update(r);
+ q->update(cursorRect());
else
q->update();
}
diff --git a/src/gui/widgets/qlineedit_p.h b/src/gui/widgets/qlineedit_p.h
index 7a24cb3..b9f9c0b 100644
--- a/src/gui/widgets/qlineedit_p.h
+++ b/src/gui/widgets/qlineedit_p.h
@@ -94,6 +94,8 @@ public:
#endif
void init(const QString&);
+ QRect adjustedControlRect(const QRect &) const;
+
int xToPos(int x, QTextLine::CursorPosition = QTextLine::CursorBetweenCharacters) const;
QRect cursorRect() const;
void setCursorVisible(bool visible);
@@ -129,6 +131,7 @@ public:
void _q_editFocusChange(bool);
#endif
void _q_selectionChanged();
+ void _q_updateNeeded(const QRect &);
#ifndef QT_NO_COMPLETER
void _q_completionHighlighted(QString);
#endif
diff --git a/src/gui/widgets/qmainwindow.cpp b/src/gui/widgets/qmainwindow.cpp
index 44483ea..0378d2d 100644
--- a/src/gui/widgets/qmainwindow.cpp
+++ b/src/gui/widgets/qmainwindow.cpp
@@ -1573,7 +1573,7 @@ QMenu *QMainWindow::createPopupMenu()
Q_D(QMainWindow);
QMenu *menu = 0;
#ifndef QT_NO_DOCKWIDGET
- QList<QDockWidget *> dockwidgets = qFindChildren<QDockWidget *>(this);
+ QList<QDockWidget *> dockwidgets = findChildren<QDockWidget *>();
if (dockwidgets.size()) {
menu = new QMenu(this);
for (int i = 0; i < dockwidgets.size(); ++i) {
@@ -1587,7 +1587,7 @@ QMenu *QMainWindow::createPopupMenu()
}
#endif // QT_NO_DOCKWIDGET
#ifndef QT_NO_TOOLBAR
- QList<QToolBar *> toolbars = qFindChildren<QToolBar *>(this);
+ QList<QToolBar *> toolbars = findChildren<QToolBar *>();
if (toolbars.size()) {
if (!menu)
menu = new QMenu(this);
diff --git a/src/gui/widgets/qmainwindowlayout.cpp b/src/gui/widgets/qmainwindowlayout.cpp
index 593e391..62ee398 100644
--- a/src/gui/widgets/qmainwindowlayout.cpp
+++ b/src/gui/widgets/qmainwindowlayout.cpp
@@ -943,7 +943,7 @@ void QMainWindowLayout::toggleToolBarsVisible()
#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?
diff --git a/src/gui/widgets/qmdisubwindow.cpp b/src/gui/widgets/qmdisubwindow.cpp
index 62d297e..3f4cdc3 100644
--- a/src/gui/widgets/qmdisubwindow.cpp
+++ b/src/gui/widgets/qmdisubwindow.cpp
@@ -2203,7 +2203,7 @@ void QMdiSubWindowPrivate::setSizeGrip(QSizeGrip *newSizeGrip)
void QMdiSubWindowPrivate::setSizeGripVisible(bool visible) const
{
// See if we can find any size grips
- QList<QSizeGrip *> sizeGrips = qFindChildren<QSizeGrip *>(q_func());
+ QList<QSizeGrip *> sizeGrips = q_func()->findChildren<QSizeGrip *>();
foreach (QSizeGrip *grip, sizeGrips)
grip->setVisible(visible);
}
@@ -2319,7 +2319,7 @@ void QMdiSubWindow::setWidget(QWidget *widget)
widget->setParent(this);
#ifndef QT_NO_SIZEGRIP
- QSizeGrip *sizeGrip = qFindChild<QSizeGrip *>(widget);
+ QSizeGrip *sizeGrip = widget->findChild<QSizeGrip *>();
if (sizeGrip)
sizeGrip->installEventFilter(this);
if (d->sizeGrip)
diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp
index 469c7d4..245657a 100644
--- a/src/gui/widgets/qmenu.cpp
+++ b/src/gui/widgets/qmenu.cpp
@@ -262,7 +262,7 @@ void QMenuPrivate::updateActionRects() const
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 @@ void QMenuPrivate::_q_actionHovered()
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 ||
diff --git a/src/gui/widgets/qmenubar.cpp b/src/gui/widgets/qmenubar.cpp
index e8e80b7..df16f7f 100644
--- a/src/gui/widgets/qmenubar.cpp
+++ b/src/gui/widgets/qmenubar.cpp
@@ -102,7 +102,7 @@ void QMenuBarExtension::paintEvent(QPaintEvent *)
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);
}
diff --git a/src/gui/widgets/qprintpreviewwidget.cpp b/src/gui/widgets/qprintpreviewwidget.cpp
index 45b15ef..ea311d3 100644
--- a/src/gui/widgets/qprintpreviewwidget.cpp
+++ b/src/gui/widgets/qprintpreviewwidget.cpp
@@ -469,7 +469,7 @@ void QPrintPreviewWidgetPrivate::setZoomFactor(qreal _zoomFactor)
\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.
diff --git a/src/gui/widgets/qpushbutton.cpp b/src/gui/widgets/qpushbutton.cpp
index 8a18ed0..237c266 100644
--- a/src/gui/widgets/qpushbutton.cpp
+++ b/src/gui/widgets/qpushbutton.cpp
@@ -687,11 +687,11 @@ bool QPushButton::event(QEvent *e)
/*! \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);
diff --git a/src/gui/widgets/qtoolbarextension.cpp b/src/gui/widgets/qtoolbarextension.cpp
index 032c6f0..574a775 100644
--- a/src/gui/widgets/qtoolbarextension.cpp
+++ b/src/gui/widgets/qtoolbarextension.cpp
@@ -75,7 +75,7 @@ void QToolBarExtension::paintEvent(QPaintEvent *)
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);
}
diff --git a/src/gui/widgets/qworkspace.cpp b/src/gui/widgets/qworkspace.cpp
index 7180c4d..5cf67a5 100644
--- a/src/gui/widgets/qworkspace.cpp
+++ b/src/gui/widgets/qworkspace.cpp
@@ -2923,7 +2923,7 @@ void QWorkspaceChild::setActive(bool b)
iconw->setActive(act);
update();
- QList<QWidget*> wl = qFindChildren<QWidget*>(childWidget);
+ QList<QWidget*> wl = childWidget->findChildren<QWidget*>();
if (act) {
for (int i = 0; i < wl.size(); ++i) {
QWidget *w = wl.at(i);
diff --git a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp
index f663dd2..633b309 100644
--- a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp
+++ b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp
@@ -431,21 +431,24 @@ QList<QByteArray> QAudioDeviceInfoInternal::availableDevices(QAudio::Mode mode)
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 != NULL)
+ 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 (descr != NULL)
+ free(descr);
+ if (io != NULL)
+ free(io);
+ }
++n;
}
snd_device_name_free_hint(hints);
diff --git a/src/multimedia/video/qvideosurfaceformat.cpp b/src/multimedia/video/qvideosurfaceformat.cpp
index 3afbdc9..3ec40e8 100644
--- a/src/multimedia/video/qvideosurfaceformat.cpp
+++ b/src/multimedia/video/qvideosurfaceformat.cpp
@@ -502,11 +502,11 @@ QList<QByteArray> QVideoSurfaceFormat::propertyNames() const
QVariant QVideoSurfaceFormat::property(const char *name) const
{
if (qstrcmp(name, "handleType") == 0) {
- return qVariantFromValue(d->handleType);
+ return QVariant::fromValue(d->handleType);
} else if (qstrcmp(name, "pixelFormat") == 0) {
- return qVariantFromValue(d->pixelFormat);
+ return QVariant::fromValue(d->pixelFormat);
} else if (qstrcmp(name, "handleType") == 0) {
- return qVariantFromValue(d->handleType);
+ return QVariant::fromValue(d->handleType);
} else if (qstrcmp(name, "frameSize") == 0) {
return d->frameSize;
} else if (qstrcmp(name, "frameWidth") == 0) {
@@ -516,15 +516,15 @@ QVariant QVideoSurfaceFormat::property(const char *name) const
} else if (qstrcmp(name, "viewport") == 0) {
return d->viewport;
} else if (qstrcmp(name, "scanLineDirection") == 0) {
- return qVariantFromValue(d->scanLineDirection);
+ return QVariant::fromValue(d->scanLineDirection);
} else if (qstrcmp(name, "frameRate") == 0) {
- return qVariantFromValue(d->frameRate);
+ return QVariant::fromValue(d->frameRate);
} else if (qstrcmp(name, "pixelAspectRatio") == 0) {
- return qVariantFromValue(d->pixelAspectRatio);
+ return QVariant::fromValue(d->pixelAspectRatio);
} else if (qstrcmp(name, "sizeHint") == 0) {
return sizeHint();
} else if (qstrcmp(name, "yCbCrColorSpace") == 0) {
- return qVariantFromValue(d->ycbcrColorSpace);
+ return QVariant::fromValue(d->ycbcrColorSpace);
} else {
int id = 0;
for (; id < d->propertyNames.count() && d->propertyNames.at(id) != name; ++id) {}
@@ -546,7 +546,7 @@ void QVideoSurfaceFormat::setProperty(const char *name, const QVariant &value)
} else if (qstrcmp(name, "pixelFormat") == 0) {
// read only.
} else if (qstrcmp(name, "frameSize") == 0) {
- if (qVariantCanConvert<QSize>(value)) {
+ if (value.canConvert<QSize>()) {
d->frameSize = qvariant_cast<QSize>(value);
d->viewport = QRect(QPoint(0, 0), d->frameSize);
}
@@ -555,21 +555,21 @@ void QVideoSurfaceFormat::setProperty(const char *name, const QVariant &value)
} else if (qstrcmp(name, "frameHeight") == 0) {
// read only.
} else if (qstrcmp(name, "viewport") == 0) {
- if (qVariantCanConvert<QRect>(value))
+ if (value.canConvert<QRect>())
d->viewport = qvariant_cast<QRect>(value);
} else if (qstrcmp(name, "scanLineDirection") == 0) {
- if (qVariantCanConvert<Direction>(value))
+ if (value.canConvert<Direction>())
d->scanLineDirection = qvariant_cast<Direction>(value);
} else if (qstrcmp(name, "frameRate") == 0) {
- if (qVariantCanConvert<qreal>(value))
+ if (value.canConvert<qreal>())
d->frameRate = qvariant_cast<qreal>(value);
} else if (qstrcmp(name, "pixelAspectRatio") == 0) {
- if (qVariantCanConvert<QSize>(value))
+ if (value.canConvert<QSize>())
d->pixelAspectRatio = qvariant_cast<QSize>(value);
} else if (qstrcmp(name, "sizeHint") == 0) {
// read only.
} else if (qstrcmp(name, "yCbCrColorSpace") == 0) {
- if (qVariantCanConvert<YCbCrColorSpace>(value))
+ if (value.canConvert<YCbCrColorSpace>())
d->ycbcrColorSpace = qvariant_cast<YCbCrColorSpace>(value);
} else {
int id = 0;
diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp
index 9e2b85e..95ccb77 100644
--- a/src/network/access/qhttpnetworkconnection.cpp
+++ b/src/network/access/qhttpnetworkconnection.cpp
@@ -117,6 +117,7 @@ void QHttpNetworkConnectionPrivate::init()
{
for (int i = 0; i < channelCount; i++) {
channels[i].setConnection(this->q_func());
+ channels[i].ssl = encrypt;
channels[i].init();
}
}
@@ -530,33 +531,35 @@ void QHttpNetworkConnectionPrivate::fillPipeline(QAbstractSocket *socket)
|| channels[i].state == QHttpNetworkConnectionChannel::ReadingState))
return;
-
- //qDebug() << "QHttpNetworkConnectionPrivate::fillPipeline processing highPriorityQueue, size=" << highPriorityQueue.size() << " alreadyPipelined=" << channels[i].alreadyPipelinedRequests.length();
int lengthBefore;
while (!highPriorityQueue.isEmpty()) {
lengthBefore = channels[i].alreadyPipelinedRequests.length();
fillPipeline(highPriorityQueue, channels[i]);
- if (channels[i].alreadyPipelinedRequests.length() >= defaultPipelineLength)
+ if (channels[i].alreadyPipelinedRequests.length() >= defaultPipelineLength) {
+ channels[i].pipelineFlush();
return;
+ }
if (lengthBefore == channels[i].alreadyPipelinedRequests.length())
break; // did not process anything, now do the low prio queue
}
- //qDebug() << "QHttpNetworkConnectionPrivate::fillPipeline processing lowPriorityQueue, size=" << lowPriorityQueue.size() << " alreadyPipelined=" << channels[i].alreadyPipelinedRequests.length();
while (!lowPriorityQueue.isEmpty()) {
lengthBefore = channels[i].alreadyPipelinedRequests.length();
fillPipeline(lowPriorityQueue, channels[i]);
- if (channels[i].alreadyPipelinedRequests.length() >= defaultPipelineLength)
+ if (channels[i].alreadyPipelinedRequests.length() >= defaultPipelineLength) {
+ channels[i].pipelineFlush();
return;
+ }
if (lengthBefore == channels[i].alreadyPipelinedRequests.length())
break; // did not process anything
}
+ channels[i].pipelineFlush();
}
// returns true when the processing of a queue has been done
@@ -653,6 +656,8 @@ void QHttpNetworkConnectionPrivate::removeReply(QHttpNetworkReply *reply)
// 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
diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp
index 71a4de3..fe5532e 100644
--- a/src/network/access/qhttpnetworkconnectionchannel.cpp
+++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
@@ -60,6 +60,7 @@ QT_BEGIN_NAMESPACE
QHttpNetworkConnectionChannel::QHttpNetworkConnectionChannel()
: socket(0)
+ , ssl(false)
, state(IdleState)
, reply(0)
, written(0)
@@ -90,11 +91,8 @@ void QHttpNetworkConnectionChannel::init()
#else
socket = new QTcpSocket;
#endif
-
- // limit the socket read buffer size. we will read everything into
- // the QHttpNetworkReply anyway, so let's grow only that and not
- // here and there.
- socket->setReadBufferSize(64*1024);
+ // Set by QNAM anyway, but let's be safe here
+ socket->setProxy(QNetworkProxy::NoProxy);
QObject::connect(socket, SIGNAL(bytesWritten(qint64)),
this, SLOT(_q_bytesWritten(qint64)),
@@ -164,11 +162,12 @@ bool QHttpNetworkConnectionChannel::sendRequest()
written = 0; // excluding the header
bytesTotal = 0;
- reply->d_func()->clear();
- reply->d_func()->connection = connection;
- reply->d_func()->connectionChannel = this;
- reply->d_func()->autoDecompress = request.d->autoDecompress;
- reply->d_func()->pipeliningUsed = false;
+ QHttpNetworkReplyPrivate *replyPrivate = reply->d_func();
+ replyPrivate->clear();
+ replyPrivate->connection = connection;
+ replyPrivate->connectionChannel = this;
+ replyPrivate->autoDecompress = request.d->autoDecompress;
+ replyPrivate->pipeliningUsed = false;
pendingEncrypt = false;
// if the url contains authentication parameters, use the new ones
@@ -328,7 +327,6 @@ void QHttpNetworkConnectionChannel::_q_receiveReply()
return;
}
- qint64 bytes = 0;
QAbstractSocket::SocketState socketState = socket->state();
// connection might be closed to signal the end of data
@@ -349,12 +347,14 @@ void QHttpNetworkConnectionChannel::_q_receiveReply()
}
// read loop for the response
- while (socket->bytesAvailable()) {
+ qint64 bytes = 0;
+ qint64 lastBytes = bytes;
+ do {
+ lastBytes = bytes;
+
QHttpNetworkReplyPrivate::ReplyState state = reply->d_func()->state;
switch (state) {
case QHttpNetworkReplyPrivate::NothingDoneState: {
- // only eat whitespace on the first call
- eatWhitespace();
state = reply->d_func()->state = QHttpNetworkReplyPrivate::ReadingStatusState;
// fallthrough
}
@@ -378,6 +378,7 @@ void QHttpNetworkConnectionChannel::_q_receiveReply()
return;
}
bytes += headerBytes;
+ // If headers were parsed successfully now it is the ReadingDataState
if (replyPrivate->state == QHttpNetworkReplyPrivate::ReadingDataState) {
if (replyPrivate->isGzipped() && replyPrivate->autoDecompress) {
// remove the Content-Length from header
@@ -392,6 +393,10 @@ void QHttpNetworkConnectionChannel::_q_receiveReply()
}
if (replyPrivate->shouldEmitSignals())
emit reply->headerChanged();
+ // After headerChanged had been emitted
+ // we can suddenly have a replyPrivate->userProvidedDownloadBuffer
+ // this is handled in the ReadingDataState however
+
if (!replyPrivate->expectContent()) {
replyPrivate->state = QHttpNetworkReplyPrivate::AllDoneState;
allDone();
@@ -412,12 +417,24 @@ void QHttpNetworkConnectionChannel::_q_receiveReply()
return;
}
- if (!replyPrivate->isChunked() && !replyPrivate->autoDecompress
- && replyPrivate->bodyLength > 0) {
- // bulk files like images should fulfill these properties and
- // we can therefore save on memory copying
- bytes = replyPrivate->readBodyFast(socket, &replyPrivate->responseData);
- replyPrivate->totalProgress += bytes;
+ if (replyPrivate->userProvidedDownloadBuffer) {
+ // the user provided a direct buffer where we should put all our data in.
+ // this only works when we can tell the user the content length and he/she can allocate
+ // the buffer in that size.
+ // note that this call will read only from the still buffered data
+ qint64 haveRead = replyPrivate->readBodyVeryFast(socket, replyPrivate->userProvidedDownloadBuffer + replyPrivate->totalProgress);
+ bytes += haveRead;
+ replyPrivate->totalProgress += haveRead;
+
+ // the user will get notified of it via progress signal
+ emit reply->dataReadProgress(replyPrivate->totalProgress, replyPrivate->bodyLength);
+ } else if (!replyPrivate->isChunked() && !replyPrivate->autoDecompress
+ && replyPrivate->bodyLength > 0) {
+ // bulk files like images should fulfill these properties and
+ // we can therefore save on memory copying
+ qint64 haveRead = replyPrivate->readBodyFast(socket, &replyPrivate->responseData);
+ bytes += haveRead;
+ replyPrivate->totalProgress += haveRead;
if (replyPrivate->shouldEmitSignals()) {
emit reply->readyRead();
emit reply->dataReadProgress(replyPrivate->totalProgress, replyPrivate->bodyLength);
@@ -428,8 +445,9 @@ void QHttpNetworkConnectionChannel::_q_receiveReply()
// use the traditional slower reading (for compressed encoding, chunked encoding,
// no content-length etc)
QByteDataBuffer byteDatas;
- bytes = replyPrivate->readBody(socket, &byteDatas);
- if (bytes) {
+ qint64 haveRead = replyPrivate->readBody(socket, &byteDatas);
+ if (haveRead) {
+ bytes += haveRead;
if (replyPrivate->autoDecompress)
replyPrivate->appendCompressedReplyData(byteDatas);
else
@@ -463,7 +481,7 @@ void QHttpNetworkConnectionChannel::_q_receiveReply()
default:
break;
}
- }
+ } while (bytes != lastBytes && reply);
}
// called when unexpectedly reading a -1 or when data is expected but socket is closed
@@ -506,7 +524,7 @@ bool QHttpNetworkConnectionChannel::ensureConnection()
if (socketState != QAbstractSocket::ConnectedState) {
// connect to the host if not already connected.
state = QHttpNetworkConnectionChannel::ConnectingState;
- pendingEncrypt = connection->d_func()->encrypt;
+ pendingEncrypt = ssl;
// reset state
pipeliningSupported = PipeliningSupportUnknown;
@@ -529,23 +547,43 @@ bool QHttpNetworkConnectionChannel::ensureConnection()
#ifndef QT_NO_NETWORKPROXY
// HTTPS always use transparent proxy.
- if (connection->d_func()->networkProxy.type() != QNetworkProxy::NoProxy && !connection->d_func()->encrypt) {
+ if (connection->d_func()->networkProxy.type() != QNetworkProxy::NoProxy && !ssl) {
connectHost = connection->d_func()->networkProxy.hostName();
connectPort = connection->d_func()->networkProxy.port();
}
#endif
- if (connection->d_func()->encrypt) {
+ if (ssl) {
#ifndef QT_NO_OPENSSL
QSslSocket *sslSocket = qobject_cast<QSslSocket*>(socket);
sslSocket->connectToHostEncrypted(connectHost, connectPort);
if (ignoreAllSslErrors)
sslSocket->ignoreSslErrors();
sslSocket->ignoreSslErrors(ignoreSslErrorsList);
+
+ // limit the socket read buffer size. we will read everything into
+ // the QHttpNetworkReply anyway, so let's grow only that and not
+ // here and there.
+ socket->setReadBufferSize(64*1024);
#else
connection->d_func()->emitReplyError(socket, reply, QNetworkReply::ProtocolUnknownError);
#endif
} else {
- socket->connectToHost(connectHost, connectPort);
+ // In case of no proxy we can use the Unbuffered QTcpSocket
+ if (connection->d_func()->networkProxy.type() == QNetworkProxy::NoProxy
+ && connection->cacheProxy().type() == QNetworkProxy::NoProxy
+ && connection->transparentProxy().type() == QNetworkProxy::NoProxy) {
+ socket->connectToHost(connectHost, connectPort, QIODevice::ReadWrite | QIODevice::Unbuffered);
+ // For an Unbuffered QTcpSocket, the read buffer size has a special meaning.
+ socket->setReadBufferSize(1*1024);
+
+ } else {
+ socket->connectToHost(connectHost, connectPort);
+
+ // limit the socket read buffer size. we will read everything into
+ // the QHttpNetworkReply anyway, so let's grow only that and not
+ // here and there.
+ socket->setReadBufferSize(64*1024);
+ }
}
return false;
}
@@ -625,8 +663,10 @@ void QHttpNetworkConnectionChannel::allDone()
// 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()) {
@@ -654,10 +694,15 @@ void QHttpNetworkConnectionChannel::allDone()
// this was wrong, allDone gets called from that function anyway.
}
} else if (alreadyPipelinedRequests.isEmpty() && socket->bytesAvailable() > 0) {
- eatWhitespace();
// this is weird. we had nothing pipelined but still bytes available. better close it.
- if (socket->bytesAvailable() > 0)
- close();
+ //if (socket->bytesAvailable() > 0)
+ // close();
+ //
+ // FIXME
+ // We do not close it anymore now, but should introduce this again after having fixed
+ // the chunked decoder in QHttpNetworkReply to read the whitespace after the last chunk.
+ // (Currently this is worked around by readStatus in the QHttpNetworkReply ignoring
+ // leading whitespace.
QMetaObject::invokeMethod(connection, "_q_startNextRequest", Qt::QueuedConnection);
} else if (alreadyPipelinedRequests.isEmpty()) {
if (qobject_cast<QHttpNetworkConnection*>(connection))
@@ -704,30 +749,6 @@ void QHttpNetworkConnectionChannel::requeueCurrentlyPipelinedRequests()
QMetaObject::invokeMethod(connection, "_q_startNextRequest", Qt::QueuedConnection);
}
-void QHttpNetworkConnectionChannel::eatWhitespace()
-{
- char c;
- do {
- qint64 ret = socket->peek(&c, 1);
-
- // nothing read, fine.
- if (ret == 0)
- return;
-
- // EOF from socket?
- if (ret == -1)
- return; // FIXME, we need to stop processing. however the next stuff done will also do that.
-
- // read all whitespace and line endings
- if (c == 11 || c == '\n' || c == '\r' || c == ' ' || c == 31) {
- socket->read(&c, 1);
- continue;
- } else {
- break;
- }
- } while(true);
-}
-
void QHttpNetworkConnectionChannel::handleStatus()
{
Q_ASSERT(socket);
@@ -789,7 +810,7 @@ bool QHttpNetworkConnectionChannel::resetUploadData()
}
-void QHttpNetworkConnectionChannel::pipelineInto(HttpMessagePair &pair)
+void QHttpNetworkConnectionChannel::pipelineInto(HttpMessagePair &pair)
{
// this is only called for simple GET
@@ -802,16 +823,32 @@ void QHttpNetworkConnectionChannel::pipelineInto(HttpMessagePair &pair)
reply->d_func()->pipeliningUsed = true;
#ifndef QT_NO_NETWORKPROXY
- QByteArray header = QHttpNetworkRequestPrivate::header(request,
- (connection->d_func()->networkProxy.type() != QNetworkProxy::NoProxy));
+ pipeline.append(QHttpNetworkRequestPrivate::header(request,
+ (connection->d_func()->networkProxy.type() != QNetworkProxy::NoProxy)));
#else
- QByteArray header = QHttpNetworkRequestPrivate::header(request, false);
+ pipeline.append(QHttpNetworkRequestPrivate::header(request, false));
#endif
- socket->write(header);
alreadyPipelinedRequests.append(pair);
+
+ // pipelineFlush() needs to be called at some point afterwards
}
+void QHttpNetworkConnectionChannel::pipelineFlush()
+{
+ if (pipeline.isEmpty())
+ return;
+
+ // The goal of this is so that we have everything in one TCP packet.
+ // For the Unbuffered QTcpSocket this is manually needed, the buffered
+ // QTcpSocket does it automatically.
+ // Also, sometimes the OS does it for us (Nagle's algorithm) but that
+ // happens only sometimes.
+ socket->write(pipeline);
+ pipeline.clear();
+}
+
+
void QHttpNetworkConnectionChannel::closeAndResendCurrentRequest()
{
requeueCurrentlyPipelinedRequests();
@@ -844,6 +881,17 @@ bool QHttpNetworkConnectionChannel::isSocketReading() const
//private slots
void QHttpNetworkConnectionChannel::_q_readyRead()
{
+ // We got a readyRead but no bytes are available..
+ // This happens for the Unbuffered QTcpSocket
+ if (socket->bytesAvailable() == 0) {
+ char c;
+ qint64 ret = socket->peek(&c, 1);
+ if (ret < 0) {
+ socket->disconnectFromHost();
+ return;
+ }
+ }
+
if (isSocketWaiting() || isSocketReading()) {
state = QHttpNetworkConnectionChannel::ReadingState;
if (reply)
diff --git a/src/network/access/qhttpnetworkconnectionchannel_p.h b/src/network/access/qhttpnetworkconnectionchannel_p.h
index 41a896d..4f3a65c 100644
--- a/src/network/access/qhttpnetworkconnectionchannel_p.h
+++ b/src/network/access/qhttpnetworkconnectionchannel_p.h
@@ -99,6 +99,7 @@ public:
BusyState = (ConnectingState|WritingState|WaitingState|ReadingState|Wait4AuthState)
};
QAbstractSocket *socket;
+ bool ssl;
ChannelState state;
QHttpNetworkRequest request; // current request
QHttpNetworkReply *reply; // current reply for this request
@@ -125,7 +126,11 @@ public:
};
PipeliningSupport pipeliningSupported;
QList<HttpMessagePair> alreadyPipelinedRequests;
-
+ QByteArray pipeline; // temporary buffer that gets sent to socket in pipelineFlush
+ void pipelineInto(HttpMessagePair &pair);
+ void pipelineFlush();
+ void requeueCurrentlyPipelinedRequests();
+ void detectPipeliningSupport();
QHttpNetworkConnectionChannel();
@@ -145,15 +150,9 @@ public:
bool resetUploadData(); // return true if resetting worked or there is no upload data
- void pipelineInto(HttpMessagePair &pair);
- void requeueCurrentlyPipelinedRequests();
- void detectPipeliningSupport();
-
void handleUnexpectedEOF();
void closeAndResendCurrentRequest();
- void eatWhitespace();
-
bool isSocketBusy() const;
bool isSocketWriting() const;
bool isSocketWaiting() const;
diff --git a/src/network/access/qhttpnetworkreply.cpp b/src/network/access/qhttpnetworkreply.cpp
index 108ba8a..1c55482 100644
--- a/src/network/access/qhttpnetworkreply.cpp
+++ b/src/network/access/qhttpnetworkreply.cpp
@@ -119,6 +119,7 @@ void QHttpNetworkReply::setRequest(const QHttpNetworkRequest &request)
{
Q_D(QHttpNetworkReply);
d->request = request;
+ d->ssl = request.isSsl();
}
int QHttpNetworkReply::statusCode() const
@@ -195,6 +196,25 @@ void QHttpNetworkReply::setDownstreamLimited(bool dsl)
d->connection->d_func()->readMoreLater(this);
}
+bool QHttpNetworkReply::supportsUserProvidedDownloadBuffer()
+{
+ Q_D(QHttpNetworkReply);
+ return (!d->isChunked() && !d->autoDecompress && d->bodyLength > 0);
+}
+
+void QHttpNetworkReply::setUserProvidedDownloadBuffer(char* b)
+{
+ Q_D(QHttpNetworkReply);
+ if (supportsUserProvidedDownloadBuffer())
+ d->userProvidedDownloadBuffer = b;
+}
+
+char* QHttpNetworkReply::userProvidedDownloadBuffer()
+{
+ Q_D(QHttpNetworkReply);
+ return d->userProvidedDownloadBuffer;
+}
+
bool QHttpNetworkReply::isFinished() const
{
return d_func()->state == QHttpNetworkReplyPrivate::AllDoneState;
@@ -207,7 +227,10 @@ bool QHttpNetworkReply::isPipeliningUsed() const
QHttpNetworkReplyPrivate::QHttpNetworkReplyPrivate(const QUrl &newUrl)
- : QHttpNetworkHeaderPrivate(newUrl), state(NothingDoneState), statusCode(100),
+ : QHttpNetworkHeaderPrivate(newUrl)
+ , state(NothingDoneState)
+ , ssl(false)
+ , statusCode(100),
majorVersion(0), minorVersion(0), bodyLength(0), contentRead(0), totalProgress(0),
chunkedTransferEncoding(false),
connectionCloseEnabled(true),
@@ -215,6 +238,7 @@ QHttpNetworkReplyPrivate::QHttpNetworkReplyPrivate(const QUrl &newUrl)
currentChunkSize(0), currentChunkRead(0), connection(0), initInflate(false),
autoDecompress(false), responseData(), requestIsPrepared(false)
,pipeliningUsed(false), downstreamLimited(false)
+ ,userProvidedDownloadBuffer(0)
{
}
@@ -448,6 +472,8 @@ qint64 QHttpNetworkReplyPrivate::readStatus(QAbstractSocket *socket)
return -1; // unexpected EOF
else if (haveRead == 0)
break; // read more later
+ else if (haveRead == 1 && bytes == 0 && (c == 11 || c == '\n' || c == '\r' || c == ' ' || c == 31))
+ continue; // Ignore all whitespace that was trailing froma previous request on that socket
bytes++;
@@ -623,12 +649,32 @@ bool QHttpNetworkReplyPrivate::isConnectionCloseEnabled()
// note this function can only be used for non-chunked, non-compressed with
// known content length
+qint64 QHttpNetworkReplyPrivate::readBodyVeryFast(QAbstractSocket *socket, char *b)
+{
+ // This first read is to flush the buffer inside the socket
+ qint64 haveRead = 0;
+ haveRead = socket->read(b, bodyLength - contentRead);
+ if (haveRead == -1) {
+ return 0; // ### error checking here;
+ }
+ contentRead += haveRead;
+
+ if (contentRead == bodyLength) {
+ state = AllDoneState;
+ }
+
+ return haveRead;
+}
+
+// note this function can only be used for non-chunked, non-compressed with
+// known content length
qint64 QHttpNetworkReplyPrivate::readBodyFast(QAbstractSocket *socket, QByteDataBuffer *rb)
{
+
qint64 toBeRead = qMin(socket->bytesAvailable(), bodyLength - contentRead);
QByteArray bd;
bd.resize(toBeRead);
- qint64 haveRead = socket->read(bd.data(), bd.size());
+ qint64 haveRead = socket->read(bd.data(), toBeRead);
if (haveRead == -1) {
bd.clear();
return 0; // ### error checking here;
@@ -650,29 +696,34 @@ qint64 QHttpNetworkReplyPrivate::readBody(QAbstractSocket *socket, QByteDataBuff
{
qint64 bytes = 0;
if (isChunked()) {
- bytes += readReplyBodyChunked(socket, out); // chunked transfer encoding (rfc 2616, sec 3.6)
- } else if (bodyLength > 0) { // we have a Content-Length
+ // chunked transfer encoding (rfc 2616, sec 3.6)
+ bytes += readReplyBodyChunked(socket, out);
+ } else if (bodyLength > 0) {
+ // we have a Content-Length
bytes += readReplyBodyRaw(socket, out, bodyLength - contentRead);
if (contentRead + bytes == bodyLength)
state = AllDoneState;
} else {
+ // no content length. just read what's possible
bytes += readReplyBodyRaw(socket, out, socket->bytesAvailable());
}
contentRead += bytes;
return bytes;
}
-qint64 QHttpNetworkReplyPrivate::readReplyBodyRaw(QIODevice *in, QByteDataBuffer *out, qint64 size)
+qint64 QHttpNetworkReplyPrivate::readReplyBodyRaw(QAbstractSocket *socket, QByteDataBuffer *out, qint64 size)
{
+ // FIXME get rid of this function and just use readBodyFast and give it socket->bytesAvailable()
qint64 bytes = 0;
- Q_ASSERT(in);
+ Q_ASSERT(socket);
Q_ASSERT(out);
- int toBeRead = qMin<qint64>(128*1024, qMin<qint64>(size, in->bytesAvailable()));
+ int toBeRead = qMin<qint64>(128*1024, qMin<qint64>(size, socket->bytesAvailable()));
+
while (toBeRead > 0) {
QByteArray byteData;
byteData.resize(toBeRead);
- qint64 haveRead = in->read(byteData.data(), byteData.size());
+ qint64 haveRead = socket->read(byteData.data(), byteData.size());
if (haveRead <= 0) {
// ### error checking here
byteData.clear();
@@ -684,25 +735,35 @@ qint64 QHttpNetworkReplyPrivate::readReplyBodyRaw(QIODevice *in, QByteDataBuffer
bytes += haveRead;
size -= haveRead;
- toBeRead = qMin<qint64>(128*1024, qMin<qint64>(size, in->bytesAvailable()));
+ toBeRead = qMin<qint64>(128*1024, qMin<qint64>(size, socket->bytesAvailable()));
}
return bytes;
}
-qint64 QHttpNetworkReplyPrivate::readReplyBodyChunked(QIODevice *in, QByteDataBuffer *out)
+qint64 QHttpNetworkReplyPrivate::readReplyBodyChunked(QAbstractSocket *socket, QByteDataBuffer *out)
{
qint64 bytes = 0;
- while (in->bytesAvailable()) { // while we can read from input
- // if we are done with the current chunk, get the size of the new chunk
+ while (socket->bytesAvailable()) {
if (currentChunkRead >= currentChunkSize) {
+ // For the first chunk and when we're done with a chunk
currentChunkSize = 0;
currentChunkRead = 0;
if (bytes) {
+ // After a chunk
char crlf[2];
- bytes += in->read(crlf, 2); // read the "\r\n" after the chunk
+ // read the "\r\n" after the chunk
+ qint64 haveRead = socket->read(crlf, 2);
+ // FIXME: This code is slightly broken and not optimal. What if the 2 bytes are not available yet?!
+ // For nice reasons (the toLong in getChunkSize accepting \n at the beginning
+ // it right now still works, but we should definitely fix this.
+
+ if (haveRead != 2)
+ return bytes; // FIXME
+ bytes += haveRead;
}
- bytes += getChunkSize(in, &currentChunkSize);
+ // Note that chunk size gets stored in currentChunkSize, what is returned is the bytes read
+ bytes += getChunkSize(socket, &currentChunkSize);
if (currentChunkSize == -1)
break;
}
@@ -712,8 +773,8 @@ qint64 QHttpNetworkReplyPrivate::readReplyBodyChunked(QIODevice *in, QByteDataBu
break;
}
- // otherwise, try to read what is missing for this chunk
- qint64 haveRead = readReplyBodyRaw (in, out, currentChunkSize - currentChunkRead);
+ // otherwise, try to begin reading this chunk / to read what is missing for this chunk
+ qint64 haveRead = readReplyBodyRaw (socket, out, currentChunkSize - currentChunkRead);
currentChunkRead += haveRead;
bytes += haveRead;
@@ -723,22 +784,25 @@ qint64 QHttpNetworkReplyPrivate::readReplyBodyChunked(QIODevice *in, QByteDataBu
return bytes;
}
-qint64 QHttpNetworkReplyPrivate::getChunkSize(QIODevice *in, qint64 *chunkSize)
+qint64 QHttpNetworkReplyPrivate::getChunkSize(QAbstractSocket *socket, qint64 *chunkSize)
{
qint64 bytes = 0;
char crlf[2];
*chunkSize = -1;
- int bytesAvailable = in->bytesAvailable();
+
+ int bytesAvailable = socket->bytesAvailable();
+ // FIXME rewrite to permanent loop without bytesAvailable
while (bytesAvailable > bytes) {
- qint64 sniffedBytes = in->peek(crlf, 2);
+ qint64 sniffedBytes = socket->peek(crlf, 2);
int fragmentSize = fragment.size();
+
// check the next two bytes for a "\r\n", skip blank lines
if ((fragmentSize && sniffedBytes == 2 && crlf[0] == '\r' && crlf[1] == '\n')
||(fragmentSize > 1 && fragment.endsWith('\r') && crlf[0] == '\n'))
{
- bytes += in->read(crlf, 1); // read the \r or \n
+ bytes += socket->read(crlf, 1); // read the \r or \n
if (crlf[0] == '\r')
- bytes += in->read(crlf, 1); // read the \n
+ bytes += socket->read(crlf, 1); // read the \n
bool ok = false;
// ignore the chunk-extension
fragment = fragment.mid(0, fragment.indexOf(';')).trimmed();
@@ -748,10 +812,15 @@ qint64 QHttpNetworkReplyPrivate::getChunkSize(QIODevice *in, qint64 *chunkSize)
} else {
// read the fragment to the buffer
char c = 0;
- bytes += in->read(&c, 1);
+ qint64 haveRead = socket->read(&c, 1);
+ if (haveRead < 0) {
+ return -1; // FIXME
+ }
+ bytes += haveRead;
fragment.append(c);
}
}
+
return bytes;
}
diff --git a/src/network/access/qhttpnetworkreply_p.h b/src/network/access/qhttpnetworkreply_p.h
index 4011c78..02ce248 100644
--- a/src/network/access/qhttpnetworkreply_p.h
+++ b/src/network/access/qhttpnetworkreply_p.h
@@ -128,6 +128,10 @@ public:
QByteArray readAny();
void setDownstreamLimited(bool t);
+ bool supportsUserProvidedDownloadBuffer();
+ void setUserProvidedDownloadBuffer(char*);
+ char* userProvidedDownloadBuffer();
+
bool isFinished() const;
bool isPipeliningUsed() const;
@@ -147,6 +151,7 @@ Q_SIGNALS:
void finished();
void finishedWithError(QNetworkReply::NetworkError errorCode, const QString &detail = QString());
void headerChanged();
+ // FIXME we need to change this to qint64!
void dataReadProgress(int done, int total);
void dataSendProgress(qint64 done, qint64 total);
@@ -168,15 +173,16 @@ public:
qint64 readHeader(QAbstractSocket *socket);
void parseHeader(const QByteArray &header);
qint64 readBody(QAbstractSocket *socket, QByteDataBuffer *out);
+ qint64 readBodyVeryFast(QAbstractSocket *socket, char *b);
qint64 readBodyFast(QAbstractSocket *socket, QByteDataBuffer *rb);
bool findChallenge(bool forProxy, QByteArray &challenge) const;
QAuthenticatorPrivate::Method authenticationMethod(bool isProxy) const;
void clear();
void clearHttpLayerInformation();
- qint64 readReplyBodyRaw(QIODevice *in, QByteDataBuffer *out, qint64 size);
- qint64 readReplyBodyChunked(QIODevice *in, QByteDataBuffer *out);
- qint64 getChunkSize(QIODevice *in, qint64 *chunkSize);
+ qint64 readReplyBodyRaw(QAbstractSocket *in, QByteDataBuffer *out, qint64 size);
+ qint64 readReplyBodyChunked(QAbstractSocket *in, QByteDataBuffer *out);
+ qint64 getChunkSize(QAbstractSocket *in, qint64 *chunkSize);
void appendUncompressedReplyData(QByteArray &qba);
void appendUncompressedReplyData(QByteDataBuffer &data);
@@ -205,6 +211,7 @@ public:
} state;
QHttpNetworkRequest request;
+ bool ssl;
int statusCode;
int majorVersion;
int minorVersion;
@@ -234,6 +241,8 @@ public:
bool pipeliningUsed;
bool downstreamLimited;
+
+ char* userProvidedDownloadBuffer;
};
diff --git a/src/network/access/qhttpnetworkrequest.cpp b/src/network/access/qhttpnetworkrequest.cpp
index 639025e..d2f3212 100644
--- a/src/network/access/qhttpnetworkrequest.cpp
+++ b/src/network/access/qhttpnetworkrequest.cpp
@@ -63,6 +63,7 @@ QHttpNetworkRequestPrivate::QHttpNetworkRequestPrivate(const QHttpNetworkRequest
pipeliningAllowed = other.pipeliningAllowed;
customVerb = other.customVerb;
withCredentials = other.withCredentials;
+ ssl = other.ssl;
}
QHttpNetworkRequestPrivate::~QHttpNetworkRequestPrivate()
@@ -73,6 +74,7 @@ bool QHttpNetworkRequestPrivate::operator==(const QHttpNetworkRequestPrivate &ot
{
return QHttpNetworkHeaderPrivate::operator==(other)
&& (operation == other.operation)
+ && (ssl == other.ssl)
&& (uploadByteDevice == other.uploadByteDevice);
}
@@ -199,6 +201,15 @@ void QHttpNetworkRequest::setUrl(const QUrl &url)
d->url = url;
}
+bool QHttpNetworkRequest::isSsl() const
+{
+ return d->ssl;
+}
+void QHttpNetworkRequest::setSsl(bool s)
+{
+ d->ssl = s;
+}
+
qint64 QHttpNetworkRequest::contentLength() const
{
return d->contentLength();
diff --git a/src/network/access/qhttpnetworkrequest_p.h b/src/network/access/qhttpnetworkrequest_p.h
index 15cab73..123babc 100644
--- a/src/network/access/qhttpnetworkrequest_p.h
+++ b/src/network/access/qhttpnetworkrequest_p.h
@@ -116,6 +116,9 @@ public:
bool withCredentials() const;
void setWithCredentials(bool b);
+ bool isSsl() const;
+ void setSsl(bool);
+
void setUploadByteDevice(QNonContiguousByteDevice *bd);
QNonContiguousByteDevice* uploadByteDevice() const;
@@ -146,6 +149,7 @@ public:
bool autoDecompress;
bool pipeliningAllowed;
bool withCredentials;
+ bool ssl;
};
diff --git a/src/network/access/qnetworkaccessbackend.cpp b/src/network/access/qnetworkaccessbackend.cpp
index 60f7dc6..45495f7 100644
--- a/src/network/access/qnetworkaccessbackend.cpp
+++ b/src/network/access/qnetworkaccessbackend.cpp
@@ -252,6 +252,17 @@ void QNetworkAccessBackend::writeDownstreamData(QIODevice *data)
reply->appendDownstreamData(data);
}
+// not actually appending data, it was already written to the user buffer
+void QNetworkAccessBackend::writeDownstreamDataDownloadBuffer(qint64 bytesReceived, qint64 bytesTotal)
+{
+ reply->appendDownstreamDataDownloadBuffer(bytesReceived, bytesTotal);
+}
+
+char* QNetworkAccessBackend::getDownloadBuffer(qint64 size)
+{
+ return reply->getDownloadBuffer(size);
+}
+
QVariant QNetworkAccessBackend::header(QNetworkRequest::KnownHeaders header) const
{
return reply->q_func()->header(header);
diff --git a/src/network/access/qnetworkaccessbackend_p.h b/src/network/access/qnetworkaccessbackend_p.h
index 4fe6de6..9f8a01f 100644
--- a/src/network/access/qnetworkaccessbackend_p.h
+++ b/src/network/access/qnetworkaccessbackend_p.h
@@ -177,6 +177,10 @@ protected:
qint64 nextDownstreamBlockSize() const;
void writeDownstreamData(QByteDataBuffer &list);
+ // not actually appending data, it was already written to the user buffer
+ void writeDownstreamDataDownloadBuffer(qint64, qint64);
+ char* getDownloadBuffer(qint64);
+
public slots:
// for task 251801, needs to be a slot to be called asynchronously
void writeDownstreamData(QIODevice *data);
diff --git a/src/network/access/qnetworkaccesshttpbackend.cpp b/src/network/access/qnetworkaccesshttpbackend.cpp
index f617244..8b9a99f 100644
--- a/src/network/access/qnetworkaccesshttpbackend.cpp
+++ b/src/network/access/qnetworkaccesshttpbackend.cpp
@@ -542,6 +542,9 @@ void QNetworkAccessHttpBackend::postRequest()
break; // can't happen
}
+ bool encrypt = (url().scheme().toLower() == QLatin1String("https"));
+ httpRequest.setSsl(encrypt);
+
httpRequest.setUrl(url());
QList<QByteArray> headers = request().rawHeaderList();
@@ -595,7 +598,6 @@ void QNetworkAccessHttpBackend::postRequest()
httpReply->ignoreSslErrors(pendingIgnoreSslErrorsList);
#endif
- connect(httpReply, SIGNAL(readyRead()), SLOT(replyReadyRead()));
connect(httpReply, SIGNAL(finished()), SLOT(replyFinished()));
connect(httpReply, SIGNAL(finishedWithError(QNetworkReply::NetworkError,QString)),
SLOT(httpError(QNetworkReply::NetworkError,QString)));
@@ -859,9 +861,33 @@ void QNetworkAccessHttpBackend::replyHeaderChanged()
if (!isCachingEnabled())
setCachingEnabled(true);
}
+
+ // Check if a download buffer is supported from the HTTP reply
+ char *buf = 0;
+ if (httpReply->supportsUserProvidedDownloadBuffer()) {
+ // Check if a download buffer is supported by the user
+ buf = getDownloadBuffer(httpReply->contentLength());
+ if (buf) {
+ httpReply->setUserProvidedDownloadBuffer(buf);
+ // If there is a download buffer we react on the progress signal
+ connect(httpReply, SIGNAL(dataReadProgress(int,int)), SLOT(replyDownloadProgressSlot(int,int)));
+ }
+ }
+
+ // If there is no buffer, we react on the readyRead signal
+ if (!buf) {
+ connect(httpReply, SIGNAL(readyRead()), SLOT(replyReadyRead()));
+ }
+
metaDataChanged();
}
+void QNetworkAccessHttpBackend::replyDownloadProgressSlot(int received, int total)
+{
+ // we can be sure here that there is a download buffer
+ writeDownstreamDataDownloadBuffer(received, total);
+}
+
void QNetworkAccessHttpBackend::httpAuthenticationRequired(const QHttpNetworkRequest &,
QAuthenticator *auth)
{
@@ -1169,6 +1195,11 @@ bool QNetworkAccessHttpBackend::canResume() const
return false;
}
+ // If we're using a download buffer then we don't support resuming/migration
+ // right now. Too much trouble.
+ if (httpReply->userProvidedDownloadBuffer())
+ return false;
+
return true;
}
diff --git a/src/network/access/qnetworkaccesshttpbackend_p.h b/src/network/access/qnetworkaccesshttpbackend_p.h
index c4c88ae..fb12781 100644
--- a/src/network/access/qnetworkaccesshttpbackend_p.h
+++ b/src/network/access/qnetworkaccesshttpbackend_p.h
@@ -104,6 +104,7 @@ private slots:
void replyReadyRead();
void replyFinished();
void replyHeaderChanged();
+ void replyDownloadProgressSlot(int,int);
void httpAuthenticationRequired(const QHttpNetworkRequest &request, QAuthenticator *auth);
void httpCacheCredentials(const QHttpNetworkRequest &request, QAuthenticator *auth);
void httpError(QNetworkReply::NetworkError error, const QString &errorString);
diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp
index 80b74c7..f1054bd 100644
--- a/src/network/access/qnetworkaccessmanager.cpp
+++ b/src/network/access/qnetworkaccessmanager.cpp
@@ -991,7 +991,7 @@ QNetworkReply *QNetworkAccessManager::createRequest(QNetworkAccessManager::Opera
if (d->cookieJar) {
QList<QNetworkCookie> cookies = d->cookieJar->cookiesForUrl(request.url());
if (!cookies.isEmpty())
- request.setHeader(QNetworkRequest::CookieHeader, qVariantFromValue(cookies));
+ request.setHeader(QNetworkRequest::CookieHeader, QVariant::fromValue(cookies));
}
}
diff --git a/src/network/access/qnetworkreplyimpl.cpp b/src/network/access/qnetworkreplyimpl.cpp
index 3798ac2..5345d63 100644
--- a/src/network/access/qnetworkreplyimpl.cpp
+++ b/src/network/access/qnetworkreplyimpl.cpp
@@ -49,10 +49,16 @@
#include "QtNetwork/qnetworksession.h"
#include "qnetworkaccesshttpbackend_p.h"
#include "qnetworkaccessmanager_p.h"
+#include <QVarLengthArray>
#include <QtCore/QCoreApplication>
QT_BEGIN_NAMESPACE
+typedef QSharedPointer<QVarLengthArray<char, 0> > QVarLengthArraySharedPointer;
+QT_END_NAMESPACE
+Q_DECLARE_METATYPE(QVarLengthArraySharedPointer)
+
+QT_BEGIN_NAMESPACE
inline QNetworkReplyImplPrivate::QNetworkReplyImplPrivate()
: backend(0), outgoingData(0), outgoingDataBuffer(0),
@@ -62,6 +68,8 @@ inline QNetworkReplyImplPrivate::QNetworkReplyImplPrivate()
bytesDownloaded(0), lastBytesDownloaded(-1), bytesUploaded(-1), preMigrationDownloaded(-1),
httpStatusCode(0),
state(Idle)
+ , downloadBuffer(0)
+ , downloadBufferPosition(0)
{
}
@@ -125,6 +133,10 @@ void QNetworkReplyImplPrivate::_q_copyReadyRead()
if (!copyDevice || !q->isOpen())
return;
+ // FIXME Optimize to use download buffer if it is a QBuffer.
+ // Needs to be done where sendCacheContents() (?) of HTTP is emitting
+ // metaDataChanged ?
+
forever {
qint64 bytesToRead = nextDownstreamBlockSize();
if (bytesToRead == 0)
@@ -590,6 +602,55 @@ void QNetworkReplyImplPrivate::appendDownstreamData(const QByteArray &data)
qFatal("QNetworkReplyImplPrivate::appendDownstreamData not implemented");
}
+char* QNetworkReplyImplPrivate::getDownloadBuffer(qint64 size)
+{
+ Q_Q(QNetworkReplyImpl);
+
+ // Check attribute() if allocating a buffer of that size can be allowed
+ if (!downloadBuffer) {
+ QVariant bufferAllocationPolicy = request.attribute(QNetworkRequest::MaximumDownloadBufferSizeAttribute);
+ if (bufferAllocationPolicy.isValid() && bufferAllocationPolicy.toLongLong() >= size) {
+ downloadBufferArray = QSharedPointer<QVarLengthArray<char, 0> >(new QVarLengthArray<char, 0>());
+ downloadBufferArray->reserve(size);
+
+ downloadBuffer = downloadBufferArray->data();
+
+ q->setAttribute(QNetworkRequest::DownloadBufferAttribute, qVariantFromValue<QSharedPointer<QVarLengthArray<char, 0> > > (downloadBufferArray));
+ }
+ }
+
+ return downloadBuffer;
+}
+
+void QNetworkReplyImplPrivate::appendDownstreamDataDownloadBuffer(qint64 bytesReceived, qint64 bytesTotal)
+{
+ Q_Q(QNetworkReplyImpl);
+ if (!q->isOpen())
+ return;
+
+ if (cacheEnabled && !cacheSaveDevice)
+ initCacheSaveDevice();
+
+ if (cacheSaveDevice && bytesReceived == bytesTotal) {
+// if (lastBytesDownloaded == -1)
+// lastBytesDownloaded = 0;
+// cacheSaveDevice->write(downloadBuffer + lastBytesDownloaded, bytesReceived - lastBytesDownloaded);
+
+ // Write everything in one go if we use a download buffer. might be more performant.
+ cacheSaveDevice->write(downloadBuffer, bytesTotal);
+ }
+
+ bytesDownloaded = bytesReceived;
+ lastBytesDownloaded = bytesReceived;
+
+ // Update the array so our user (e.g. QtWebKit) knows the real size
+ if (bytesReceived > 0)
+ downloadBufferArray->resize(bytesReceived);
+
+ emit q->downloadProgress(bytesDownloaded, bytesTotal);
+ emit q->readyRead();
+}
+
void QNetworkReplyImplPrivate::finished()
{
Q_Q(QNetworkReplyImpl);
@@ -784,6 +845,13 @@ bool QNetworkReplyImpl::canReadLine () const
*/
qint64 QNetworkReplyImpl::bytesAvailable() const
{
+ // Special case for the "zero copy" download buffer
+ Q_D(const QNetworkReplyImpl);
+ if (d->downloadBuffer) {
+ qint64 maxAvail = d->downloadBufferArray->size() - d->downloadBufferPosition;
+ return QNetworkReply::bytesAvailable() + maxAvail;
+ }
+
return QNetworkReply::bytesAvailable() + d_func()->readBuffer.byteAmount();
}
@@ -838,8 +906,22 @@ void QNetworkReplyImpl::ignoreSslErrorsImplementation(const QList<QSslError> &er
qint64 QNetworkReplyImpl::readData(char *data, qint64 maxlen)
{
Q_D(QNetworkReplyImpl);
+
+ // Special case code if we have the "zero copy" download buffer
+ if (d->downloadBuffer) {
+ qint64 maxAvail = qMin<qint64>(d->downloadBufferArray->size() - d->downloadBufferPosition, maxlen);
+ if (maxAvail == 0)
+ return d->state == QNetworkReplyImplPrivate::Finished ? -1 : 0;
+ // FIXME what about "Aborted" state?
+ qMemCopy(data, d->downloadBuffer + d->downloadBufferPosition, maxAvail);
+ d->downloadBufferPosition += maxAvail;
+ return maxAvail;
+ }
+
+
if (d->readBuffer.isEmpty())
return d->state == QNetworkReplyImplPrivate::Finished ? -1 : 0;
+ // FIXME what about "Aborted" state?
d->backendNotify(QNetworkReplyImplPrivate::NotifyDownstreamReadyWrite);
if (maxlen == 1) {
diff --git a/src/network/access/qnetworkreplyimpl_p.h b/src/network/access/qnetworkreplyimpl_p.h
index 38084bd..ab11ebe 100644
--- a/src/network/access/qnetworkreplyimpl_p.h
+++ b/src/network/access/qnetworkreplyimpl_p.h
@@ -62,6 +62,7 @@
#include "QtCore/qbuffer.h"
#include "private/qringbuffer_p.h"
#include "private/qbytedata_p.h"
+#include <QVarLengthArray>
QT_BEGIN_NAMESPACE
@@ -163,6 +164,9 @@ public:
void appendDownstreamData(QIODevice *data);
void appendDownstreamData(const QByteArray &data);
+ char* getDownloadBuffer(qint64 size);
+ void appendDownstreamDataDownloadBuffer(qint64, qint64);
+
void finished();
void error(QNetworkReply::NetworkError code, const QString &errorString);
void metaDataChanged();
@@ -191,6 +195,7 @@ public:
QList<QNetworkProxy> proxyList;
#endif
+ // Used for normal downloading. For "zero copy" the downloadBuffer is used
QByteDataBuffer readBuffer;
qint64 bytesDownloaded;
qint64 lastBytesDownloaded;
@@ -202,6 +207,11 @@ public:
State state;
+ // only used when the "zero copy" style is used. Else readBuffer is used.
+ QSharedPointer< QVarLengthArray<char, 0> > downloadBufferArray;
+ char* downloadBuffer;
+ qint64 downloadBufferPosition;
+
Q_DECLARE_PUBLIC(QNetworkReplyImpl)
};
diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp
index fa592c2..09ec4c2 100644
--- a/src/network/access/qnetworkrequest.cpp
+++ b/src/network/access/qnetworkrequest.cpp
@@ -105,7 +105,8 @@ QT_BEGIN_NAMESPACE
/*!
\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 @@ QT_BEGIN_NAMESPACE
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 @@ QT_BEGIN_NAMESPACE
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.
+
+ (This value was introduced in 4.7.)
- \since 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
@@ -768,7 +766,7 @@ static QVariant parseCookieHeader(const QByteArray &raw)
result += parsed;
}
- return qVariantFromValue(result);
+ return QVariant::fromValue(result);
}
static QVariant parseHeaderValue(QNetworkRequest::KnownHeaders header, const QByteArray &value)
@@ -801,7 +799,7 @@ static QVariant parseHeaderValue(QNetworkRequest::KnownHeaders header, const QBy
return parseCookieHeader(value);
case QNetworkRequest::SetCookieHeader:
- return qVariantFromValue(QNetworkCookie::parseCookies(value));
+ return QVariant::fromValue(QNetworkCookie::parseCookies(value));
default:
Q_ASSERT(0);
diff --git a/src/network/bearer/qnetworkconfigmanager_p.cpp b/src/network/bearer/qnetworkconfigmanager_p.cpp
index 5d4274f..c4f7c00 100644
--- a/src/network/bearer/qnetworkconfigmanager_p.cpp
+++ b/src/network/bearer/qnetworkconfigmanager_p.cpp
@@ -150,25 +150,29 @@ QNetworkConfiguration QNetworkConfigurationManagerPrivate::defaultConfiguration(
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;
}
}
diff --git a/src/network/bearer/qnetworkconfiguration.cpp b/src/network/bearer/qnetworkconfiguration.cpp
index d7fceba..60851ac 100644
--- a/src/network/bearer/qnetworkconfiguration.cpp
+++ b/src/network/bearer/qnetworkconfiguration.cpp
@@ -183,6 +183,23 @@ QT_BEGIN_NAMESPACE
*/
/*!
+ \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,120 @@ QList<QNetworkConfiguration> QNetworkConfiguration::children() const
}
/*!
- 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.
+*/
+QString QNetworkConfiguration::bearerName() const
+{
+ // This function cannot be inline as it would break Qt Mobility.
+ // Qt Mobility uses the Qt header as well and since the Mobility Bearer library
+ // does not provide bearerTypeName() we cannot use an inline function.
+ return bearerTypeName();
+}
+
+/*!
+ 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.
+ \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
- \o The session is based on 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
diff --git a/src/network/bearer/qnetworkconfiguration.h b/src/network/bearer/qnetworkconfiguration.h
index dce39eb..18b92a9 100644
--- a/src/network/bearer/qnetworkconfiguration.h
+++ b/src/network/bearer/qnetworkconfiguration.h
@@ -103,10 +103,29 @@ public:
Q_DECLARE_FLAGS(StateFlags, StateFlag)
+ enum BearerType {
+ BearerUnknown,
+ BearerEthernet,
+ BearerWLAN,
+ Bearer2G,
+ BearerCDMA2000,
+ BearerWCDMA,
+ BearerHSPA,
+ BearerBluetooth,
+ BearerWiMAX
+ };
+
StateFlags state() const;
Type type() const;
Purpose purpose() const;
- QString bearerName() const;
+
+ // Required to maintain source compatibility with Qt Mobility.
+#ifdef QT_DEPRECATED
+ QT_DEPRECATED QString bearerName() const;
+#endif
+ BearerType bearerType() const;
+ QString bearerTypeName() const;
+
QString identifier() const;
bool isRoamingAvailable() const;
QList<QNetworkConfiguration> children() const;
diff --git a/src/network/bearer/qnetworkconfiguration_p.h b/src/network/bearer/qnetworkconfiguration_p.h
index 966dfb2..2b0bbf6 100644
--- a/src/network/bearer/qnetworkconfiguration_p.h
+++ b/src/network/bearer/qnetworkconfiguration_p.h
@@ -68,6 +68,7 @@ public:
QNetworkConfigurationPrivate ()
: mutex(QMutex::Recursive), type(QNetworkConfiguration::Invalid),
purpose(QNetworkConfiguration::UnknownPurpose),
+ bearerType(QNetworkConfiguration::BearerUnknown),
isValid(false), roamingSupported(false)
{
}
@@ -78,24 +79,22 @@ public:
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;
diff --git a/src/network/kernel/qhostinfo.cpp b/src/network/kernel/qhostinfo.cpp
index 985caf4..7908182 100644
--- a/src/network/kernel/qhostinfo.cpp
+++ b/src/network/kernel/qhostinfo.cpp
@@ -627,7 +627,7 @@ void QHostInfoLookupManager::lookupFinished(QHostInfoRunnable *r)
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;
diff --git a/src/network/kernel/qhostinfo_win.cpp b/src/network/kernel/qhostinfo_win.cpp
index 65257e8..1671ae4 100644
--- a/src/network/kernel/qhostinfo_win.cpp
+++ b/src/network/kernel/qhostinfo_win.cpp
@@ -39,11 +39,6 @@
**
****************************************************************************/
-#if defined Q_CC_MSVC && _MSC_VER <=1300
-//VC.net 2002 support for templates doesn't match some PSDK requirements
-#define _WSPIAPI_COUNTOF(_Array) (sizeof(_Array) / sizeof(_Array[0]))
-#endif
-
#include <winsock2.h>
#include "qhostinfo_p.h"
diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp
index 171fbb6..3218662 100644
--- a/src/network/socket/qabstractsocket.cpp
+++ b/src/network/socket/qabstractsocket.cpp
@@ -627,8 +627,9 @@ bool QAbstractSocketPrivate::canReadNotification()
// only emit readyRead() when not recursing, and only if there is data available
bool hasData = newBytes > 0
#ifndef QT_NO_UDPSOCKET
- || (!isBuffered && socketEngine && socketEngine->hasPendingDatagrams())
+ || (!isBuffered && socketType != QAbstractSocket::TcpSocket && socketEngine && socketEngine->hasPendingDatagrams())
#endif
+ || (!isBuffered && socketType == QAbstractSocket::TcpSocket && socketEngine)
;
if (!emittedReadyRead && hasData) {
@@ -1350,8 +1351,11 @@ void QAbstractSocket::connectToHostImplementation(const QString &hostName, quint
}
#endif
- if (!d_func()->isBuffered)
- openMode |= QAbstractSocket::Unbuffered;
+ if (openMode & QIODevice::Unbuffered)
+ d->isBuffered = false; // Unbuffered QTcpSocket
+ else if (!d_func()->isBuffered)
+ openMode |= QAbstractSocket::Unbuffered; // QUdpSocket
+
QIODevice::open(openMode);
d->state = HostLookupState;
emit stateChanged(d->state);
@@ -1369,7 +1373,7 @@ void QAbstractSocket::connectToHostImplementation(const QString &hostName, quint
#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,
@@ -1431,10 +1435,12 @@ qint64 QAbstractSocket::bytesAvailable() const
{
Q_D(const QAbstractSocket);
qint64 available = QIODevice::bytesAvailable();
- if (d->isBuffered)
- available += (qint64) d->readBuffer.size();
- else if (d->socketEngine && d->socketEngine->isValid())
+
+ available += (qint64) d->readBuffer.size();
+
+ if (!d->isBuffered && d->socketEngine && d->socketEngine->isValid())
available += d->socketEngine->bytesAvailable();
+
#if defined(QABSTRACTSOCKET_DEBUG)
qDebug("QAbstractSocket::bytesAvailable() == %llu", available);
#endif
@@ -2067,42 +2073,50 @@ bool QAbstractSocket::flush()
qint64 QAbstractSocket::readData(char *data, qint64 maxSize)
{
Q_D(QAbstractSocket);
- if (d->socketEngine && !d->socketEngine->isReadNotificationEnabled() && d->socketEngine->isValid())
- d->socketEngine->setReadNotificationEnabled(true);
-
- if (!d->isBuffered) {
- if (!d->socketEngine)
- return -1; // no socket engine is probably EOF
- qint64 readBytes = d->socketEngine->read(data, maxSize);
- if (readBytes < 0) {
- d->socketError = d->socketEngine->error();
- setErrorString(d->socketEngine->errorString());
- }
- if (!d->socketEngine->isReadNotificationEnabled())
- d->socketEngine->setReadNotificationEnabled(true);
-#if defined (QABSTRACTSOCKET_DEBUG)
- qDebug("QAbstractSocket::readData(%p \"%s\", %lli) == %lld",
- data, qt_prettyDebug(data, 32, readBytes).data(), maxSize,
- readBytes);
-#endif
- return readBytes;
- }
- if (d->readBuffer.isEmpty())
+ // This is for a buffered QTcpSocket
+ if (d->isBuffered && d->readBuffer.isEmpty())
// if we're still connected, return 0 indicating there may be more data in the future
// if we're not connected, return -1 indicating EOF
return d->state == QAbstractSocket::ConnectedState ? qint64(0) : qint64(-1);
- // If readFromSocket() read data, copy it to its destination.
- if (maxSize == 1) {
+ // short cut for a char read if we have something in the buffer
+ if (maxSize == 1 && !d->readBuffer.isEmpty()) {
*data = d->readBuffer.getChar();
#if defined (QABSTRACTSOCKET_DEBUG)
- qDebug("QAbstractSocket::readData(%p '%c (0x%.2x)', 1) == 1",
+ qDebug("QAbstractSocket::readData(%p '%c (0x%.2x)', 1) == 1 [char buffer]",
data, isprint(int(uchar(*data))) ? *data : '?', *data);
#endif
+ if (d->readBuffer.isEmpty() && d->socketEngine)
+ d->socketEngine->setReadNotificationEnabled(true);
return 1;
}
+ // Special case for an Unbuffered QTcpSocket
+ // Re-filling the buffer.
+ if (d->socketType == TcpSocket
+ && !d->isBuffered
+ && d->readBuffer.size() < maxSize
+ && d->readBufferMaxSize > 0
+ && maxSize < d->readBufferMaxSize
+ && d->socketEngine) {
+ // Our buffer is empty and a read() was requested for a byte amount that is smaller
+ // than the readBufferMaxSize. This means that we should fill our buffer since we want
+ // such small reads come from the buffer and not always go to the costly socket engine read()
+ qint64 bytesToRead = d->socketEngine->bytesAvailable();
+ if (bytesToRead > 0) {
+ char *ptr = d->readBuffer.reserve(bytesToRead);
+ qint64 readBytes = d->socketEngine->read(ptr, bytesToRead);
+ if (readBytes == -2) {
+ // No bytes currently available for reading.
+ d->readBuffer.chop(bytesToRead);
+ } else {
+ d->readBuffer.chop(int(bytesToRead - (readBytes < 0 ? qint64(0) : readBytes)));
+ }
+ }
+ }
+
+ // First try to satisfy the read from the buffer
qint64 bytesToRead = qMin(qint64(d->readBuffer.size()), maxSize);
qint64 readSoFar = 0;
while (readSoFar < bytesToRead) {
@@ -2114,8 +2128,50 @@ qint64 QAbstractSocket::readData(char *data, qint64 maxSize)
d->readBuffer.free(bytesToReadFromThisBlock);
}
+ if (d->socketEngine && !d->socketEngine->isReadNotificationEnabled() && d->socketEngine->isValid())
+ d->socketEngine->setReadNotificationEnabled(true);
+
+ if (readSoFar > 0) {
+ // we read some data from buffer.
+ // Just return, readyRead will be emitted again
+#if defined (QABSTRACTSOCKET_DEBUG)
+ qDebug("QAbstractSocket::readData(%p '%c (0x%.2x)', %lli) == %lli [buffer]",
+ data, isprint(int(uchar(*data))) ? *data : '?', *data, maxSize, readSoFar);
+#endif
+
+ if (d->readBuffer.isEmpty() && d->socketEngine)
+ d->socketEngine->setReadNotificationEnabled(true);
+ return readSoFar;
+ }
+
+ // This code path is for Unbuffered QTcpSocket or for connected UDP
+
+ if (!d->isBuffered) {
+ if (!d->socketEngine)
+ return -1; // no socket engine is probably EOF
+ qint64 readBytes = d->socketEngine->read(data, maxSize);
+ if (readBytes == -2) {
+ // -2 from the engine means no bytes available (EAGAIN) so read more later
+ return 0;
+ } else if (readBytes < 0) {
+ d->socketError = d->socketEngine->error();
+ setErrorString(d->socketEngine->errorString());
+ } else if (!d->socketEngine->isReadNotificationEnabled()) {
+ // Only do this when there was no error
+ d->socketEngine->setReadNotificationEnabled(true);
+ }
+
+#if defined (QABSTRACTSOCKET_DEBUG)
+ qDebug("QAbstractSocket::readData(%p \"%s\", %lli) == %lld [engine]",
+ data, qt_prettyDebug(data, 32, readBytes).data(), maxSize,
+ readBytes);
+#endif
+ return readBytes;
+ }
+
+
#if defined (QABSTRACTSOCKET_DEBUG)
- qDebug("QAbstractSocket::readData(%p \"%s\", %lli) == %lld",
+ qDebug("QAbstractSocket::readData(%p \"%s\", %lli) == %lld [unreachable]",
data, qt_prettyDebug(data, qMin<qint64>(32, readSoFar), readSoFar).data(),
maxSize, readSoFar);
#endif
@@ -2140,7 +2196,23 @@ qint64 QAbstractSocket::writeData(const char *data, qint64 size)
return -1;
}
- if (!d->isBuffered) {
+ if (!d->isBuffered && d->socketType == TcpSocket && d->writeBuffer.isEmpty()) {
+ // This code is for the new Unbuffered QTcpSocket use case
+ qint64 written = d->socketEngine->write(data, size);
+ if (written < 0) {
+ d->socketError = d->socketEngine->error();
+ setErrorString(d->socketEngine->errorString());
+ return written;
+ } else if (written < size) {
+ // Buffer what was not written yet
+ char *ptr = d->writeBuffer.reserve(size - written);
+ memcpy(ptr, data + written, size - written);
+ if (d->socketEngine)
+ d->socketEngine->setWriteNotificationEnabled(true);
+ }
+ return size; // size=actually written + what has been buffered
+ } else if (!d->isBuffered && d->socketType != TcpSocket) {
+ // This is for a QUdpSocket that was connect()ed
qint64 written = d->socketEngine->write(data, size);
if (written < 0) {
d->socketError = d->socketEngine->error();
@@ -2159,6 +2231,12 @@ qint64 QAbstractSocket::writeData(const char *data, qint64 size)
return written;
}
+ // This is the code path for normal buffered QTcpSocket or
+ // unbuffered QTcpSocket when there was already something in the
+ // write buffer and therefore we could not do a direct engine write.
+ // We just write to our write buffer and enable the write notifier
+ // The write notifier then flush()es the buffer.
+
char *ptr = d->writeBuffer.reserve(size);
if (size == 1)
*ptr = *data;
diff --git a/src/network/socket/qlocalsocket_win.cpp b/src/network/socket/qlocalsocket_win.cpp
index 4907f2c..1e0bced 100644
--- a/src/network/socket/qlocalsocket_win.cpp
+++ b/src/network/socket/qlocalsocket_win.cpp
@@ -306,7 +306,7 @@ void QLocalSocketPrivate::startAsyncRead()
/*!
\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()
{
diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp
index f91ce5f..1086386 100644
--- a/src/network/socket/qnativesocketengine_unix.cpp
+++ b/src/network/socket/qnativesocketengine_unix.cpp
@@ -562,7 +562,7 @@ int QNativeSocketEnginePrivate::nativeAccept()
#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);
@@ -887,7 +887,7 @@ qint64 QNativeSocketEnginePrivate::nativeRead(char *data, qint64 maxSize)
{
Q_Q(QNativeSocketEngine);
if (!q->isValid()) {
- qWarning("QNativeSocketEngine::unbufferedRead: Invalid socket");
+ qWarning("QNativeSocketEngine::nativeRead: Invalid socket");
return -1;
}
diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp
index f73068e..91265f3 100644
--- a/src/network/ssl/qsslsocket.cpp
+++ b/src/network/ssl/qsslsocket.cpp
@@ -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()
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
index b4d030c..94b1568 100644
--- a/src/network/ssl/qsslsocket_openssl.cpp
+++ b/src/network/ssl/qsslsocket_openssl.cpp
@@ -750,7 +750,7 @@ QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
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 @@ bool QSslSocketBackendPrivate::isMatchingHostname(const QString &cn, const QStri
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;
}
diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp
index 09ecd4d..d1225c1 100644
--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp
+++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp
@@ -761,74 +761,95 @@ bool q_resolveOpenSslSymbols()
//==============================================================================
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();
-
- memcpy(pBuffer, pString, 12);
- pBuffer += 12;
- pString += 12;
- }
- 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'))
+ 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++;
+ }
}
- }
- *pBuffer++ = 'Z';
- *pBuffer++ = '\0';
+ *pBuffer++ = 'Z';
+ *pBuffer++ = '\0';
- time_t lSecondsFromUCT;
- if (*pString == 'Z') {
- lSecondsFromUCT = 0;
- } else {
- if ((*pString != '+') && (*pString != '-'))
- return QDateTime();
+ 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;
+
+ } else if (aTime->type == V_ASN1_GENERALIZEDTIME) {
- lSecondsFromUCT = ((pString[1] - '0') * 10 + (pString[2] - '0')) * 60;
- lSecondsFromUCT += (pString[3] - '0') * 10 + (pString[4] - '0');
- lSecondsFromUCT *= 60;
- if (*pString == '-')
- lSecondsFromUCT = -lSecondsFromUCT;
+ 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 {
+ qWarning("unsupported date format detected");
+ return QDateTime();
}
- 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
diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro
index 772c27f..9642ef4 100644
--- a/src/opengl/opengl.pro
+++ b/src/opengl/opengl.pro
@@ -20,6 +20,7 @@ contains(QT_CONFIG, egl):CONFIG += egl
HEADERS += qgl.h \
qgl_p.h \
qglcolormap.h \
+ qglfunctions.h \
qglpixelbuffer.h \
qglpixelbuffer_p.h \
qglframebufferobject.h \
@@ -31,6 +32,7 @@ HEADERS += qgl.h \
SOURCES += qgl.cpp \
qglcolormap.cpp \
+ qglfunctions.cpp \
qglpixelbuffer.cpp \
qglframebufferobject.cpp \
qglextensions.cpp \
diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp
index ac07dfb..63477ae 100644
--- a/src/opengl/qgl.cpp
+++ b/src/opengl/qgl.cpp
@@ -2001,7 +2001,7 @@ struct DDSFormat {
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
diff --git a/src/opengl/qgl.h b/src/opengl/qgl.h
index 9315ac4..2ac4cb6 100644
--- a/src/opengl/qgl.h
+++ b/src/opengl/qgl.h
@@ -56,7 +56,6 @@ QT_BEGIN_HEADER
#if defined(Q_WS_MAC)
# include <OpenGL/gl.h>
-# include <OpenGL/glu.h>
#elif defined(QT_OPENGL_ES_1)
# include <GLES/gl.h>
#ifndef GL_DOUBLE
@@ -75,9 +74,6 @@ typedef GLfloat GLdouble;
#endif
#else
# include <GL/gl.h>
-# ifndef QT_LINUXBASE
-# include <GL/glu.h>
-# endif
#endif
QT_BEGIN_NAMESPACE
diff --git a/src/opengl/qgl_egl.cpp b/src/opengl/qgl_egl.cpp
index 3763926..a154325 100644
--- a/src/opengl/qgl_egl.cpp
+++ b/src/opengl/qgl_egl.cpp
@@ -240,6 +240,7 @@ void QGLContextPrivate::destroyEglSurfaceForDevice()
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;
}
}
diff --git a/src/opengl/qgl_mac.mm b/src/opengl/qgl_mac.mm
index 4d7532e..66fe7d3 100644
--- a/src/opengl/qgl_mac.mm
+++ b/src/opengl/qgl_mac.mm
@@ -804,17 +804,22 @@ void QGLContext::generateFontDisplayLists(const QFont & /* fnt */, int /* listBa
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
/*****************************************************************************
diff --git a/src/opengl/qglextensions.cpp b/src/opengl/qglextensions.cpp
index 8e2bbd4..6aec8ae 100644
--- a/src/opengl/qglextensions.cpp
+++ b/src/opengl/qglextensions.cpp
@@ -255,6 +255,10 @@ bool qt_resolve_glsl_extensions(QGLContext *ctx)
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"));
diff --git a/src/opengl/qglframebufferobject.cpp b/src/opengl/qglframebufferobject.cpp
index fe60e83..876e97a 100644
--- a/src/opengl/qglframebufferobject.cpp
+++ b/src/opengl/qglframebufferobject.cpp
@@ -445,11 +445,11 @@ void QGLFramebufferObjectPrivate::init(QGLFramebufferObject *q, const QSize &sz,
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 {
diff --git a/src/opengl/qglfunctions.cpp b/src/opengl/qglfunctions.cpp
new file mode 100644
index 0000000..8a544c1
--- /dev/null
+++ b/src/opengl/qglfunctions.cpp
@@ -0,0 +1,3705 @@
+/****************************************************************************
+**
+** 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 "qglfunctions.h"
+#include "qgl_p.h"
+
+QT_BEGIN_NAMESPACE
+
+/*!
+ \class QGLFunctions
+ \brief The QGLFunctions class provides cross-platform access to the OpenGL/ES 2.0 API.
+ \since 4.8
+ \ingroup painting-3D
+
+ OpenGL/ES 2.0 defines a subset of the OpenGL specification that is
+ common across many desktop and embedded OpenGL implementations.
+ However, it can be difficult to use the functions from that subset
+ because they need to be resolved manually on desktop systems.
+
+ QGLFunctions provides a guaranteed API that is available on all
+ OpenGL systems and takes care of function resolution on systems
+ that need it. The recommended way to use QGLFunctions is by
+ direct inheritance:
+
+ \code
+ class MyGLWidget : public QGLWidget, protected QGLFunctions
+ {
+ Q_OBJECT
+ public:
+ MyGLWidget(QWidget *parent = 0) : QGLWidget(parent) {}
+
+ protected:
+ void initializeGL();
+ void paintGL();
+ };
+
+ void MyGLWidget::initializeGL()
+ {
+ initializeGLFunctions();
+ }
+ \endcode
+
+ The \c{paintGL()} function can then use any of the OpenGL/ES 2.0
+ functions without explicit resolution, such as glActiveTexture()
+ in the following example:
+
+ \code
+ void MyGLWidget::paintGL()
+ {
+ glActiveTexture(GL_TEXTURE1);
+ glBindTexture(GL_TEXTURE_2D, textureId);
+ ...
+ }
+ \endcode
+
+ QGLFunctions can also be used directly for ad-hoc invocation
+ of OpenGL/ES 2.0 functions on all platforms:
+
+ \code
+ QGLFunctions glFuncs(QGLContext::currentContext());
+ glFuncs.glActiveTexture(GL_TEXTURE1);
+ \endcode
+
+ QGLFunctions provides wrappers for all OpenGL/ES 2.0 functions,
+ except those like \c{glDrawArrays()}, \c{glViewport()}, and
+ \c{glBindTexture()} that don't have portability issues.
+
+ Including the header for QGLFunctions will also define all of
+ the OpenGL/ES 2.0 macro constants that are not already defined by
+ the system's OpenGL headers, such as \c{GL_TEXTURE1} above.
+
+ The hasOpenGLFeature() and openGLFeatures() functions can be used
+ to determine if the OpenGL implementation has a major OpenGL/ES 2.0
+ feature. For example, the following checks if non power of two
+ textures are available:
+
+ \code
+ QGLFunctions funcs(QGLContext::currentContext());
+ bool npot = funcs.hasOpenGLFeature(QGLFunctions::NPOTTextures);
+ \endcode
+*/
+
+/*!
+ \enum QGLFunctions::OpenGLFeature
+ This enum defines OpenGL/ES 2.0 features that may be optional
+ on other platforms.
+
+ \value Multitexture glActiveTexture() function is available.
+ \value Shaders Shader functions are available.
+ \value Buffers Vertex and index buffer functions are available.
+ \value Framebuffers Framebuffer object functions are available.
+ \value BlendColor glBlendColor() is available.
+ \value BlendEquation glBlendEquation() is available.
+ \value BlendEquationSeparate glBlendEquationSeparate() is available.
+ \value BlendFuncSeparate glBlendFuncSeparate() is available.
+ \value BlendSubtract Blend subtract mode is available.
+ \value CompressedTextures Compressed texture functions are available.
+ \value Multisample glSampleCoverage() function is available.
+ \value StencilSeparate Separate stencil functions are available.
+ \value NPOTTextures Non power of two textures are available.
+*/
+
+// Hidden private fields for additional extension data.
+struct QGLFunctionsPrivateEx : public QGLFunctionsPrivate
+{
+ QGLFunctionsPrivateEx(const QGLContext *context = 0)
+ : QGLFunctionsPrivate(context)
+ , m_features(-1) {}
+
+ int m_features;
+};
+
+#if QT_VERSION >= 0x040800
+Q_GLOBAL_STATIC(QGLContextGroupResource<QGLFunctionsPrivateEx>, qt_gl_functions_resource)
+#else
+static void qt_gl_functions_free(void *data)
+{
+ delete reinterpret_cast<QGLFunctionsPrivateEx *>(data);
+}
+
+Q_GLOBAL_STATIC_WITH_ARGS(QGLContextResource, qt_gl_functions_resource, (qt_gl_functions_free))
+#endif
+static QGLFunctionsPrivateEx *qt_gl_functions(const QGLContext *context = 0)
+{
+ if (!context)
+ context = QGLContext::currentContext();
+ Q_ASSERT(context);
+ QGLFunctionsPrivateEx *funcs =
+ reinterpret_cast<QGLFunctionsPrivateEx *>
+ (qt_gl_functions_resource()->value(context));
+#if QT_VERSION < 0x040800
+ if (!funcs) {
+ funcs = new QGLFunctionsPrivateEx();
+ qt_gl_functions_resource()->insert(context, funcs);
+ }
+#endif
+ return funcs;
+}
+
+/*!
+ Constructs a default function resolver. The resolver cannot
+ be used until initializeGLFunctions() is called to specify
+ the context.
+
+ \sa initializeGLFunctions()
+*/
+QGLFunctions::QGLFunctions()
+ : d_ptr(0)
+{
+}
+
+/*!
+ Constructs a function resolver for \a context. If \a context
+ is null, then the resolver will be created for the current QGLContext.
+
+ An object constructed in this way can only be used with \a context
+ and other contexts that share with it. Use initializeGLFunctions()
+ to change the object's context association.
+
+ \sa initializeGLFunctions()
+*/
+QGLFunctions::QGLFunctions(const QGLContext *context)
+ : d_ptr(qt_gl_functions(context))
+{
+}
+
+/*!
+ \fn QGLFunctions::~QGLFunctions()
+
+ Destroys this function resolver.
+*/
+
+static int qt_gl_resolve_features()
+{
+#if defined(QT_OPENGL_ES_2)
+ return QGLFunctions::Multitexture |
+ QGLFunctions::Shaders |
+ QGLFunctions::Buffers |
+ QGLFunctions::Framebuffers |
+ QGLFunctions::BlendColor |
+ QGLFunctions::BlendEquation |
+ QGLFunctions::BlendEquationSeparate |
+ QGLFunctions::BlendFuncSeparate |
+ QGLFunctions::BlendSubtract |
+ QGLFunctions::CompressedTextures |
+ QGLFunctions::Multisample |
+ QGLFunctions::StencilSeparate |
+ QGLFunctions::NPOTTextures;
+#elif defined(QT_OPENGL_ES)
+ int features = QGLFunctions::Multitexture |
+ QGLFunctions::Buffers |
+ QGLFunctions::CompressedTextures |
+ QGLFunctions::Multisample;
+ QGLExtensionMatcher extensions(reinterpret_cast<const char *>(glGetString(GL_EXTENSIONS)));
+ if (extensions.match("GL_OES_framebuffer_object"))
+ features |= QGLFunctions::Framebuffers;
+ if (extensions.match("GL_OES_blend_equation_separate"))
+ features |= QGLFunctions::BlendEquationSeparate;
+ if (extensions.match("GL_OES_blend_func_separate"))
+ features |= QGLFunctions::BlendFuncSeparate;
+ if (extensions.match("GL_OES_blend_subtract"))
+ features |= QGLFunctions::BlendSubtract;
+ if (extensions.match("GL_OES_texture_npot"))
+ features |= QGLFunctions::NPOTTextures;
+ return features;
+#else
+ int features = 0;
+ QGLFormat::OpenGLVersionFlags versions = QGLFormat::openGLVersionFlags();
+ QGLExtensionMatcher extensions(reinterpret_cast<const char *>(glGetString(GL_EXTENSIONS)));
+
+ // Recognize features by extension name.
+ if (extensions.match("GL_ARB_multitexture"))
+ features |= QGLFunctions::Multitexture;
+ if (extensions.match("GL_ARB_shader_objects"))
+ features |= QGLFunctions::Shaders;
+ if (extensions.match("GL_EXT_framebuffer_object") ||
+ extensions.match("GL_ARB_framebuffer_object"))
+ features |= QGLFunctions::Framebuffers;
+ if (extensions.match("GL_EXT_blend_color"))
+ features |= QGLFunctions::BlendColor;
+ if (extensions.match("GL_EXT_blend_equation_separate"))
+ features |= QGLFunctions::BlendEquationSeparate;
+ if (extensions.match("GL_EXT_blend_func_separate"))
+ features |= QGLFunctions::BlendFuncSeparate;
+ if (extensions.match("GL_EXT_blend_subtract"))
+ features |= QGLFunctions::BlendSubtract;
+ if (extensions.match("GL_ARB_texture_compression"))
+ features |= QGLFunctions::CompressedTextures;
+ if (extensions.match("GL_ARB_multisample"))
+ features |= QGLFunctions::Multisample;
+ if (extensions.match("GL_ARB_texture_non_power_of_two"))
+ features |= QGLFunctions::NPOTTextures;
+
+ // Recognize features by minimum OpenGL version.
+ if (versions & QGLFormat::OpenGL_Version_1_2) {
+ features |= QGLFunctions::BlendColor |
+ QGLFunctions::BlendEquation;
+ }
+ if (versions & QGLFormat::OpenGL_Version_1_3) {
+ features |= QGLFunctions::Multitexture |
+ QGLFunctions::CompressedTextures |
+ QGLFunctions::Multisample;
+ }
+ if (versions & QGLFormat::OpenGL_Version_1_4)
+ features |= QGLFunctions::BlendFuncSeparate;
+ if (versions & QGLFormat::OpenGL_Version_1_5)
+ features |= QGLFunctions::Buffers;
+ if (versions & QGLFormat::OpenGL_Version_2_0) {
+ features |= QGLFunctions::Shaders |
+ QGLFunctions::StencilSeparate |
+ QGLFunctions::BlendEquationSeparate |
+ QGLFunctions::NPOTTextures;
+ }
+ return features;
+#endif
+}
+
+/*!
+ Returns the set of features that are present on this system's
+ OpenGL implementation.
+
+ It is assumed that the QGLContext associated with this function
+ resolver is current.
+
+ \sa hasOpenGLFeature()
+*/
+QGLFunctions::OpenGLFeatures QGLFunctions::openGLFeatures() const
+{
+ QGLFunctionsPrivateEx *d = static_cast<QGLFunctionsPrivateEx *>(d_ptr);
+ if (!d)
+ return 0;
+ if (d->m_features == -1)
+ d->m_features = qt_gl_resolve_features();
+ return QGLFunctions::OpenGLFeatures(d->m_features);
+}
+
+/*!
+ Returns true if \a feature is present on this system's OpenGL
+ implementation; false otherwise.
+
+ It is assumed that the QGLContext associated with this function
+ resolver is current.
+
+ \sa openGLFeatures()
+*/
+bool QGLFunctions::hasOpenGLFeature(QGLFunctions::OpenGLFeature feature) const
+{
+ QGLFunctionsPrivateEx *d = static_cast<QGLFunctionsPrivateEx *>(d_ptr);
+ if (!d)
+ return false;
+ if (d->m_features == -1)
+ d->m_features = qt_gl_resolve_features();
+ return (d->m_features & int(feature)) != 0;
+}
+
+/*!
+ Initializes GL function resolution for \a context. If \a context
+ is null, then the current QGLContext will be used.
+
+ After calling this function, the QGLFunctions object can only be
+ used with \a context and other contexts that share with it.
+ Call initializeGLFunctions() again to change the object's context
+ association.
+*/
+void QGLFunctions::initializeGLFunctions(const QGLContext *context)
+{
+ d_ptr = qt_gl_functions(context);
+}
+
+/*!
+ \fn void QGLFunctions::glActiveTexture(GLenum texture)
+
+ Convenience function that calls glActiveTexture(\a texture).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glActiveTexture.xml}{glActiveTexture()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glAttachShader(GLuint program, GLuint shader)
+
+ Convenience function that calls glAttachShader(\a program, \a shader).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glAttachShader.xml}{glAttachShader()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glBindAttribLocation(GLuint program, GLuint index, const char* name)
+
+ Convenience function that calls glBindAttribLocation(\a program, \a index, \a name).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glBindAttribLocation.xml}{glBindAttribLocation()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glBindBuffer(GLenum target, GLuint buffer)
+
+ Convenience function that calls glBindBuffer(\a target, \a buffer).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glBindBuffer.xml}{glBindBuffer()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glBindFramebuffer(GLenum target, GLuint framebuffer)
+
+ Convenience function that calls glBindFramebuffer(\a target, \a framebuffer).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glBindFramebuffer.xml}{glBindFramebuffer()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glBindRenderbuffer(GLenum target, GLuint renderbuffer)
+
+ Convenience function that calls glBindRenderbuffer(\a target, \a renderbuffer).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glBindRenderbuffer.xml}{glBindRenderbuffer()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
+
+ Convenience function that calls glBlendColor(\a red, \a green, \a blue, \a alpha).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glBlendColor.xml}{glBlendColor()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glBlendEquation(GLenum mode)
+
+ Convenience function that calls glBlendEquation(\a mode).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glBlendEquation.xml}{glBlendEquation()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
+
+ Convenience function that calls glBlendEquationSeparate(\a modeRGB, \a modeAlpha).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glBlendEquationSeparate.xml}{glBlendEquationSeparate()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+
+ Convenience function that calls glBlendFuncSeparate(\a srcRGB, \a dstRGB, \a srcAlpha, \a dstAlpha).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glBlendFuncSeparate.xml}{glBlendFuncSeparate()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glBufferData(GLenum target, qgl_GLsizeiptr size, const void* data, GLenum usage)
+
+ Convenience function that calls glBufferData(\a target, \a size, \a data, \a usage).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glBufferData.xml}{glBufferData()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glBufferSubData(GLenum target, qgl_GLintptr offset, qgl_GLsizeiptr size, const void* data)
+
+ Convenience function that calls glBufferSubData(\a target, \a offset, \a size, \a data).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glBufferSubData.xml}{glBufferSubData()}.
+*/
+
+/*!
+ \fn GLenum QGLFunctions::glCheckFramebufferStatus(GLenum target)
+
+ Convenience function that calls glCheckFramebufferStatus(\a target).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glCheckFramebufferStatus.xml}{glCheckFramebufferStatus()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glClearDepthf(GLclampf depth)
+
+ Convenience function that calls glClearDepth(\a depth) on
+ desktop OpenGL systems and glClearDepthf(\a depth) on
+ embedded OpenGL/ES systems.
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glClearDepthf.xml}{glClearDepthf()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glCompileShader(GLuint shader)
+
+ Convenience function that calls glCompileShader(\a shader).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glCompileShader.xml}{glCompileShader()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data)
+
+ Convenience function that calls glCompressedTexImage2D(\a target, \a level, \a internalformat, \a width, \a height, \a border, \a imageSize, \a data).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glCompressedTexImage2D.xml}{glCompressedTexImage2D()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data)
+
+ Convenience function that calls glCompressedTexSubImage2D(\a target, \a level, \a xoffset, \a yoffset, \a width, \a height, \a format, \a imageSize, \a data).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glCompressedTexSubImage2D.xml}{glCompressedTexSubImage2D()}.
+*/
+
+/*!
+ \fn GLuint QGLFunctions::glCreateProgram()
+
+ Convenience function that calls glCreateProgram().
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glCreateProgram.xml}{glCreateProgram()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn GLuint QGLFunctions::glCreateShader(GLenum type)
+
+ Convenience function that calls glCreateShader(\a type).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glCreateShader.xml}{glCreateShader()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glDeleteBuffers(GLsizei n, const GLuint* buffers)
+
+ Convenience function that calls glDeleteBuffers(\a n, \a buffers).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glDeleteBuffers.xml}{glDeleteBuffers()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers)
+
+ Convenience function that calls glDeleteFramebuffers(\a n, \a framebuffers).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glDeleteFramebuffers.xml}{glDeleteFramebuffers()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glDeleteProgram(GLuint program)
+
+ Convenience function that calls glDeleteProgram(\a program).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glDeleteProgram.xml}{glDeleteProgram()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers)
+
+ Convenience function that calls glDeleteRenderbuffers(\a n, \a renderbuffers).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glDeleteRenderbuffers.xml}{glDeleteRenderbuffers()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glDeleteShader(GLuint shader)
+
+ Convenience function that calls glDeleteShader(\a shader).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glDeleteShader.xml}{glDeleteShader()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glDepthRangef(GLclampf zNear, GLclampf zFar)
+
+ Convenience function that calls glDepthRange(\a zNear, \a zFar) on
+ desktop OpenGL systems and glDepthRangef(\a zNear, \a zFar) on
+ embedded OpenGL/ES systems.
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glDepthRangef.xml}{glDepthRangef()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glDetachShader(GLuint program, GLuint shader)
+
+ Convenience function that calls glDetachShader(\a program, \a shader).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glDetachShader.xml}{glDetachShader()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glDisableVertexAttribArray(GLuint index)
+
+ Convenience function that calls glDisableVertexAttribArray(\a index).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glDisableVertexAttribArray.xml}{glDisableVertexAttribArray()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glEnableVertexAttribArray(GLuint index)
+
+ Convenience function that calls glEnableVertexAttribArray(\a index).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glEnableVertexAttribArray.xml}{glEnableVertexAttribArray()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+
+ Convenience function that calls glFramebufferRenderbuffer(\a target, \a attachment, \a renderbuffertarget, \a renderbuffer).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glFramebufferRenderbuffer.xml}{glFramebufferRenderbuffer()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+
+ Convenience function that calls glFramebufferTexture2D(\a target, \a attachment, \a textarget, \a texture, \a level).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glFramebufferTexture2D.xml}{glFramebufferTexture2D()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glGenBuffers(GLsizei n, GLuint* buffers)
+
+ Convenience function that calls glGenBuffers(\a n, \a buffers).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGenBuffers.xml}{glGenBuffers()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glGenerateMipmap(GLenum target)
+
+ Convenience function that calls glGenerateMipmap(\a target).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGenerateMipmap.xml}{glGenerateMipmap()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glGenFramebuffers(GLsizei n, GLuint* framebuffers)
+
+ Convenience function that calls glGenFramebuffers(\a n, \a framebuffers).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGenFramebuffers.xml}{glGenFramebuffers()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glGenRenderbuffers(GLsizei n, GLuint* renderbuffers)
+
+ Convenience function that calls glGenRenderbuffers(\a n, \a renderbuffers).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGenRenderbuffers.xml}{glGenRenderbuffers()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)
+
+ Convenience function that calls glGetActiveAttrib(\a program, \a index, \a bufsize, \a length, \a size, \a type, \a name).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetActiveAttrib.xml}{glGetActiveAttrib()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)
+
+ Convenience function that calls glGetActiveUniform(\a program, \a index, \a bufsize, \a length, \a size, \a type, \a name).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetActiveUniform.xml}{glGetActiveUniform()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)
+
+ Convenience function that calls glGetAttachedShaders(\a program, \a maxcount, \a count, \a shaders).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetAttachedShaders.xml}{glGetAttachedShaders()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn int QGLFunctions::glGetAttribLocation(GLuint program, const char* name)
+
+ Convenience function that calls glGetAttribLocation(\a program, \a name).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetAttribLocation.xml}{glGetAttribLocation()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params)
+
+ Convenience function that calls glGetBufferParameteriv(\a target, \a pname, \a params).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetBufferParameteriv.xml}{glGetBufferParameteriv()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params)
+
+ Convenience function that calls glGetFramebufferAttachmentParameteriv(\a target, \a attachment, \a pname, \a params).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetFramebufferAttachmentParameteriv.xml}{glGetFramebufferAttachmentParameteriv()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetProgramiv(GLuint program, GLenum pname, GLint* params)
+
+ Convenience function that calls glGetProgramiv(\a program, \a pname, \a params).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetProgramiv.xml}{glGetProgramiv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, char* infolog)
+
+ Convenience function that calls glGetProgramInfoLog(\a program, \a bufsize, \a length, \a infolog).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetProgramInfoLog.xml}{glGetProgramInfoLog()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params)
+
+ Convenience function that calls glGetRenderbufferParameteriv(\a target, \a pname, \a params).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetRenderbufferParameteriv.xml}{glGetRenderbufferParameteriv()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetShaderiv(GLuint shader, GLenum pname, GLint* params)
+
+ Convenience function that calls glGetShaderiv(\a shader, \a pname, \a params).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetShaderiv.xml}{glGetShaderiv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog)
+
+ Convenience function that calls glGetShaderInfoLog(\a shader, \a bufsize, \a length, \a infolog).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetShaderInfoLog.xml}{glGetShaderInfoLog()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
+
+ Convenience function that calls glGetShaderPrecisionFormat(\a shadertype, \a precisiontype, \a range, \a precision).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetShaderPrecisionFormat.xml}{glGetShaderPrecisionFormat()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, char* source)
+
+ Convenience function that calls glGetShaderSource(\a shader, \a bufsize, \a length, \a source).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetShaderSource.xml}{glGetShaderSource()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetUniformfv(GLuint program, GLint location, GLfloat* params)
+
+ Convenience function that calls glGetUniformfv(\a program, \a location, \a params).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetUniformfv.xml}{glGetUniformfv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetUniformiv(GLuint program, GLint location, GLint* params)
+
+ Convenience function that calls glGetUniformiv(\a program, \a location, \a params).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetUniformiv.xml}{glGetUniformiv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn int QGLFunctions::glGetUniformLocation(GLuint program, const char* name)
+
+ Convenience function that calls glGetUniformLocation(\a program, \a name).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetUniformLocation.xml}{glGetUniformLocation()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params)
+
+ Convenience function that calls glGetVertexAttribfv(\a index, \a pname, \a params).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetVertexAttribfv.xml}{glGetVertexAttribfv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params)
+
+ Convenience function that calls glGetVertexAttribiv(\a index, \a pname, \a params).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetVertexAttribiv.xml}{glGetVertexAttribiv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glGetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer)
+
+ Convenience function that calls glGetVertexAttribPointerv(\a index, \a pname, \a pointer).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glGetVertexAttribPointerv.xml}{glGetVertexAttribPointerv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn GLboolean QGLFunctions::glIsBuffer(GLuint buffer)
+
+ Convenience function that calls glIsBuffer(\a buffer).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glIsBuffer.xml}{glIsBuffer()}.
+*/
+
+/*!
+ \fn GLboolean QGLFunctions::glIsFramebuffer(GLuint framebuffer)
+
+ Convenience function that calls glIsFramebuffer(\a framebuffer).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glIsFramebuffer.xml}{glIsFramebuffer()}.
+*/
+
+/*!
+ \fn GLboolean QGLFunctions::glIsProgram(GLuint program)
+
+ Convenience function that calls glIsProgram(\a program).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glIsProgram.xml}{glIsProgram()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn GLboolean QGLFunctions::glIsRenderbuffer(GLuint renderbuffer)
+
+ Convenience function that calls glIsRenderbuffer(\a renderbuffer).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glIsRenderbuffer.xml}{glIsRenderbuffer()}.
+*/
+
+/*!
+ \fn GLboolean QGLFunctions::glIsShader(GLuint shader)
+
+ Convenience function that calls glIsShader(\a shader).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glIsShader.xml}{glIsShader()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glLinkProgram(GLuint program)
+
+ Convenience function that calls glLinkProgram(\a program).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glLinkProgram.xml}{glLinkProgram()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glReleaseShaderCompiler()
+
+ Convenience function that calls glReleaseShaderCompiler().
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glReleaseShaderCompiler.xml}{glReleaseShaderCompiler()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
+
+ Convenience function that calls glRenderbufferStorage(\a target, \a internalformat, \a width, \a height).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glRenderbufferStorage.xml}{glRenderbufferStorage()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glSampleCoverage(GLclampf value, GLboolean invert)
+
+ Convenience function that calls glSampleCoverage(\a value, \a invert).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glSampleCoverage.xml}{glSampleCoverage()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length)
+
+ Convenience function that calls glShaderBinary(\a n, \a shaders, \a binaryformat, \a binary, \a length).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glShaderBinary.xml}{glShaderBinary()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length)
+
+ Convenience function that calls glShaderSource(\a shader, \a count, \a string, \a length).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glShaderSource.xml}{glShaderSource()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
+
+ Convenience function that calls glStencilFuncSeparate(\a face, \a func, \a ref, \a mask).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glStencilFuncSeparate.xml}{glStencilFuncSeparate()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glStencilMaskSeparate(GLenum face, GLuint mask)
+
+ Convenience function that calls glStencilMaskSeparate(\a face, \a mask).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glStencilMaskSeparate.xml}{glStencilMaskSeparate()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
+
+ Convenience function that calls glStencilOpSeparate(\a face, \a fail, \a zfail, \a zpass).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glStencilOpSeparate.xml}{glStencilOpSeparate()}.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniform1f(GLint location, GLfloat x)
+
+ Convenience function that calls glUniform1f(\a location, \a x).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform1f.xml}{glUniform1f()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniform1fv(GLint location, GLsizei count, const GLfloat* v)
+
+ Convenience function that calls glUniform1fv(\a location, \a count, \a v).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform1fv.xml}{glUniform1fv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniform1i(GLint location, GLint x)
+
+ Convenience function that calls glUniform1i(\a location, \a x).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform1i.xml}{glUniform1i()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniform1iv(GLint location, GLsizei count, const GLint* v)
+
+ Convenience function that calls glUniform1iv(\a location, \a count, \a v).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform1iv.xml}{glUniform1iv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniform2f(GLint location, GLfloat x, GLfloat y)
+
+ Convenience function that calls glUniform2f(\a location, \a x, \a y).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform2f.xml}{glUniform2f()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniform2fv(GLint location, GLsizei count, const GLfloat* v)
+
+ Convenience function that calls glUniform2fv(\a location, \a count, \a v).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform2fv.xml}{glUniform2fv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniform2i(GLint location, GLint x, GLint y)
+
+ Convenience function that calls glUniform2i(\a location, \a x, \a y).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform2i.xml}{glUniform2i()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniform2iv(GLint location, GLsizei count, const GLint* v)
+
+ Convenience function that calls glUniform2iv(\a location, \a count, \a v).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform2iv.xml}{glUniform2iv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z)
+
+ Convenience function that calls glUniform3f(\a location, \a x, \a y, \a z).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform3f.xml}{glUniform3f()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniform3fv(GLint location, GLsizei count, const GLfloat* v)
+
+ Convenience function that calls glUniform3fv(\a location, \a count, \a v).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform3fv.xml}{glUniform3fv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniform3i(GLint location, GLint x, GLint y, GLint z)
+
+ Convenience function that calls glUniform3i(\a location, \a x, \a y, \a z).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform3i.xml}{glUniform3i()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniform3iv(GLint location, GLsizei count, const GLint* v)
+
+ Convenience function that calls glUniform3iv(\a location, \a count, \a v).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform3iv.xml}{glUniform3iv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+
+ Convenience function that calls glUniform4f(\a location, \a x, \a y, \a z, \a w).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform4f.xml}{glUniform4f()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniform4fv(GLint location, GLsizei count, const GLfloat* v)
+
+ Convenience function that calls glUniform4fv(\a location, \a count, \a v).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform4fv.xml}{glUniform4fv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w)
+
+ Convenience function that calls glUniform4i(\a location, \a x, \a y, \a z, \a w).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform4i.xml}{glUniform4i()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniform4iv(GLint location, GLsizei count, const GLint* v)
+
+ Convenience function that calls glUniform4iv(\a location, \a count, \a v).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform4iv.xml}{glUniform4iv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+
+ Convenience function that calls glUniformMatrix2fv(\a location, \a count, \a transpose, \a value).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniformMatrix2fv.xml}{glUniformMatrix2fv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+
+ Convenience function that calls glUniformMatrix3fv(\a location, \a count, \a transpose, \a value).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniformMatrix3fv.xml}{glUniformMatrix3fv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+
+ Convenience function that calls glUniformMatrix4fv(\a location, \a count, \a transpose, \a value).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUniformMatrix4fv.xml}{glUniformMatrix4fv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glUseProgram(GLuint program)
+
+ Convenience function that calls glUseProgram(\a program).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glUseProgram.xml}{glUseProgram()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glValidateProgram(GLuint program)
+
+ Convenience function that calls glValidateProgram(\a program).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glValidateProgram.xml}{glValidateProgram()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glVertexAttrib1f(GLuint indx, GLfloat x)
+
+ Convenience function that calls glVertexAttrib1f(\a indx, \a x).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib1f.xml}{glVertexAttrib1f()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glVertexAttrib1fv(GLuint indx, const GLfloat* values)
+
+ Convenience function that calls glVertexAttrib1fv(\a indx, \a values).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib1fv.xml}{glVertexAttrib1fv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y)
+
+ Convenience function that calls glVertexAttrib2f(\a indx, \a x, \a y).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib2f.xml}{glVertexAttrib2f()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glVertexAttrib2fv(GLuint indx, const GLfloat* values)
+
+ Convenience function that calls glVertexAttrib2fv(\a indx, \a values).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib2fv.xml}{glVertexAttrib2fv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z)
+
+ Convenience function that calls glVertexAttrib3f(\a indx, \a x, \a y, \a z).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib3f.xml}{glVertexAttrib3f()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glVertexAttrib3fv(GLuint indx, const GLfloat* values)
+
+ Convenience function that calls glVertexAttrib3fv(\a indx, \a values).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib3fv.xml}{glVertexAttrib3fv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+
+ Convenience function that calls glVertexAttrib4f(\a indx, \a x, \a y, \a z, \a w).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib4f.xml}{glVertexAttrib4f()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glVertexAttrib4fv(GLuint indx, const GLfloat* values)
+
+ Convenience function that calls glVertexAttrib4fv(\a indx, \a values).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib4fv.xml}{glVertexAttrib4fv()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+/*!
+ \fn void QGLFunctions::glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr)
+
+ Convenience function that calls glVertexAttribPointer(\a indx, \a size, \a type, \a normalized, \a stride, \a ptr).
+
+ For more information, see the OpenGL/ES 2.0 documentation for
+ \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttribPointer.xml}{glVertexAttribPointer()}.
+
+ This convenience function will do nothing on OpenGL/ES 1.x systems.
+*/
+
+#ifndef QT_OPENGL_ES_2
+
+static void qglfResolveActiveTexture(GLenum texture)
+{
+ typedef void (QGLF_APIENTRYP type_glActiveTexture)(GLenum texture);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->activeTexture = (type_glActiveTexture)
+ context->getProcAddress(QLatin1String("glActiveTexture"));
+ if (!funcs->activeTexture) {
+ funcs->activeTexture = (type_glActiveTexture)
+ context->getProcAddress(QLatin1String("glActiveTextureARB"));
+ }
+
+ if (funcs->activeTexture)
+ funcs->activeTexture(texture);
+ else
+ funcs->activeTexture = qglfResolveActiveTexture;
+}
+
+static void qglfResolveAttachShader(GLuint program, GLuint shader)
+{
+ typedef void (QGLF_APIENTRYP type_glAttachShader)(GLuint program, GLuint shader);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->attachShader = (type_glAttachShader)
+ context->getProcAddress(QLatin1String("glAttachShader"));
+ if (!funcs->attachShader) {
+ funcs->attachShader = (type_glAttachShader)
+ context->getProcAddress(QLatin1String("glAttachObjectARB"));
+ }
+
+ if (funcs->attachShader)
+ funcs->attachShader(program, shader);
+ else
+ funcs->attachShader = qglfResolveAttachShader;
+}
+
+static void qglfResolveBindAttribLocation(GLuint program, GLuint index, const char* name)
+{
+ typedef void (QGLF_APIENTRYP type_glBindAttribLocation)(GLuint program, GLuint index, const char* name);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->bindAttribLocation = (type_glBindAttribLocation)
+ context->getProcAddress(QLatin1String("glBindAttribLocation"));
+ if (!funcs->bindAttribLocation) {
+ funcs->bindAttribLocation = (type_glBindAttribLocation)
+ context->getProcAddress(QLatin1String("glBindAttribLocationARB"));
+ }
+
+ if (funcs->bindAttribLocation)
+ funcs->bindAttribLocation(program, index, name);
+ else
+ funcs->bindAttribLocation = qglfResolveBindAttribLocation;
+}
+
+static void qglfResolveBindBuffer(GLenum target, GLuint buffer)
+{
+ typedef void (QGLF_APIENTRYP type_glBindBuffer)(GLenum target, GLuint buffer);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->bindBuffer = (type_glBindBuffer)
+ context->getProcAddress(QLatin1String("glBindBuffer"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->bindBuffer) {
+ funcs->bindBuffer = (type_glBindBuffer)
+ context->getProcAddress(QLatin1String("glBindBufferOES"));
+ }
+#endif
+ if (!funcs->bindBuffer) {
+ funcs->bindBuffer = (type_glBindBuffer)
+ context->getProcAddress(QLatin1String("glBindBufferEXT"));
+ }
+ if (!funcs->bindBuffer) {
+ funcs->bindBuffer = (type_glBindBuffer)
+ context->getProcAddress(QLatin1String("glBindBufferARB"));
+ }
+
+ if (funcs->bindBuffer)
+ funcs->bindBuffer(target, buffer);
+ else
+ funcs->bindBuffer = qglfResolveBindBuffer;
+}
+
+static void qglfResolveBindFramebuffer(GLenum target, GLuint framebuffer)
+{
+ typedef void (QGLF_APIENTRYP type_glBindFramebuffer)(GLenum target, GLuint framebuffer);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->bindFramebuffer = (type_glBindFramebuffer)
+ context->getProcAddress(QLatin1String("glBindFramebuffer"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->bindFramebuffer) {
+ funcs->bindFramebuffer = (type_glBindFramebuffer)
+ context->getProcAddress(QLatin1String("glBindFramebufferOES"));
+ }
+#endif
+ if (!funcs->bindFramebuffer) {
+ funcs->bindFramebuffer = (type_glBindFramebuffer)
+ context->getProcAddress(QLatin1String("glBindFramebufferEXT"));
+ }
+ if (!funcs->bindFramebuffer) {
+ funcs->bindFramebuffer = (type_glBindFramebuffer)
+ context->getProcAddress(QLatin1String("glBindFramebufferARB"));
+ }
+
+ if (funcs->bindFramebuffer)
+ funcs->bindFramebuffer(target, framebuffer);
+ else
+ funcs->bindFramebuffer = qglfResolveBindFramebuffer;
+}
+
+static void qglfResolveBindRenderbuffer(GLenum target, GLuint renderbuffer)
+{
+ typedef void (QGLF_APIENTRYP type_glBindRenderbuffer)(GLenum target, GLuint renderbuffer);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->bindRenderbuffer = (type_glBindRenderbuffer)
+ context->getProcAddress(QLatin1String("glBindRenderbuffer"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->bindRenderbuffer) {
+ funcs->bindRenderbuffer = (type_glBindRenderbuffer)
+ context->getProcAddress(QLatin1String("glBindRenderbufferOES"));
+ }
+#endif
+ if (!funcs->bindRenderbuffer) {
+ funcs->bindRenderbuffer = (type_glBindRenderbuffer)
+ context->getProcAddress(QLatin1String("glBindRenderbufferEXT"));
+ }
+ if (!funcs->bindRenderbuffer) {
+ funcs->bindRenderbuffer = (type_glBindRenderbuffer)
+ context->getProcAddress(QLatin1String("glBindRenderbufferARB"));
+ }
+
+ if (funcs->bindRenderbuffer)
+ funcs->bindRenderbuffer(target, renderbuffer);
+ else
+ funcs->bindRenderbuffer = qglfResolveBindRenderbuffer;
+}
+
+static void qglfResolveBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
+{
+ typedef void (QGLF_APIENTRYP type_glBlendColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->blendColor = (type_glBlendColor)
+ context->getProcAddress(QLatin1String("glBlendColor"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->blendColor) {
+ funcs->blendColor = (type_glBlendColor)
+ context->getProcAddress(QLatin1String("glBlendColorOES"));
+ }
+#endif
+ if (!funcs->blendColor) {
+ funcs->blendColor = (type_glBlendColor)
+ context->getProcAddress(QLatin1String("glBlendColorEXT"));
+ }
+ if (!funcs->blendColor) {
+ funcs->blendColor = (type_glBlendColor)
+ context->getProcAddress(QLatin1String("glBlendColorARB"));
+ }
+
+ if (funcs->blendColor)
+ funcs->blendColor(red, green, blue, alpha);
+ else
+ funcs->blendColor = qglfResolveBlendColor;
+}
+
+static void qglfResolveBlendEquation(GLenum mode)
+{
+ typedef void (QGLF_APIENTRYP type_glBlendEquation)(GLenum mode);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->blendEquation = (type_glBlendEquation)
+ context->getProcAddress(QLatin1String("glBlendEquation"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->blendEquation) {
+ funcs->blendEquation = (type_glBlendEquation)
+ context->getProcAddress(QLatin1String("glBlendEquationOES"));
+ }
+#endif
+ if (!funcs->blendEquation) {
+ funcs->blendEquation = (type_glBlendEquation)
+ context->getProcAddress(QLatin1String("glBlendEquationEXT"));
+ }
+ if (!funcs->blendEquation) {
+ funcs->blendEquation = (type_glBlendEquation)
+ context->getProcAddress(QLatin1String("glBlendEquationARB"));
+ }
+
+ if (funcs->blendEquation)
+ funcs->blendEquation(mode);
+ else
+ funcs->blendEquation = qglfResolveBlendEquation;
+}
+
+static void qglfResolveBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
+{
+ typedef void (QGLF_APIENTRYP type_glBlendEquationSeparate)(GLenum modeRGB, GLenum modeAlpha);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->blendEquationSeparate = (type_glBlendEquationSeparate)
+ context->getProcAddress(QLatin1String("glBlendEquationSeparate"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->blendEquationSeparate) {
+ funcs->blendEquationSeparate = (type_glBlendEquationSeparate)
+ context->getProcAddress(QLatin1String("glBlendEquationSeparateOES"));
+ }
+#endif
+ if (!funcs->blendEquationSeparate) {
+ funcs->blendEquationSeparate = (type_glBlendEquationSeparate)
+ context->getProcAddress(QLatin1String("glBlendEquationSeparateEXT"));
+ }
+ if (!funcs->blendEquationSeparate) {
+ funcs->blendEquationSeparate = (type_glBlendEquationSeparate)
+ context->getProcAddress(QLatin1String("glBlendEquationSeparateARB"));
+ }
+
+ if (funcs->blendEquationSeparate)
+ funcs->blendEquationSeparate(modeRGB, modeAlpha);
+ else
+ funcs->blendEquationSeparate = qglfResolveBlendEquationSeparate;
+}
+
+static void qglfResolveBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+ typedef void (QGLF_APIENTRYP type_glBlendFuncSeparate)(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->blendFuncSeparate = (type_glBlendFuncSeparate)
+ context->getProcAddress(QLatin1String("glBlendFuncSeparate"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->blendFuncSeparate) {
+ funcs->blendFuncSeparate = (type_glBlendFuncSeparate)
+ context->getProcAddress(QLatin1String("glBlendFuncSeparateOES"));
+ }
+#endif
+ if (!funcs->blendFuncSeparate) {
+ funcs->blendFuncSeparate = (type_glBlendFuncSeparate)
+ context->getProcAddress(QLatin1String("glBlendFuncSeparateEXT"));
+ }
+ if (!funcs->blendFuncSeparate) {
+ funcs->blendFuncSeparate = (type_glBlendFuncSeparate)
+ context->getProcAddress(QLatin1String("glBlendFuncSeparateARB"));
+ }
+
+ if (funcs->blendFuncSeparate)
+ funcs->blendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
+ else
+ funcs->blendFuncSeparate = qglfResolveBlendFuncSeparate;
+}
+
+static void qglfResolveBufferData(GLenum target, qgl_GLsizeiptr size, const void* data, GLenum usage)
+{
+ typedef void (QGLF_APIENTRYP type_glBufferData)(GLenum target, qgl_GLsizeiptr size, const void* data, GLenum usage);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->bufferData = (type_glBufferData)
+ context->getProcAddress(QLatin1String("glBufferData"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->bufferData) {
+ funcs->bufferData = (type_glBufferData)
+ context->getProcAddress(QLatin1String("glBufferDataOES"));
+ }
+#endif
+ if (!funcs->bufferData) {
+ funcs->bufferData = (type_glBufferData)
+ context->getProcAddress(QLatin1String("glBufferDataEXT"));
+ }
+ if (!funcs->bufferData) {
+ funcs->bufferData = (type_glBufferData)
+ context->getProcAddress(QLatin1String("glBufferDataARB"));
+ }
+
+ if (funcs->bufferData)
+ funcs->bufferData(target, size, data, usage);
+ else
+ funcs->bufferData = qglfResolveBufferData;
+}
+
+static void qglfResolveBufferSubData(GLenum target, qgl_GLintptr offset, qgl_GLsizeiptr size, const void* data)
+{
+ typedef void (QGLF_APIENTRYP type_glBufferSubData)(GLenum target, qgl_GLintptr offset, qgl_GLsizeiptr size, const void* data);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->bufferSubData = (type_glBufferSubData)
+ context->getProcAddress(QLatin1String("glBufferSubData"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->bufferSubData) {
+ funcs->bufferSubData = (type_glBufferSubData)
+ context->getProcAddress(QLatin1String("glBufferSubDataOES"));
+ }
+#endif
+ if (!funcs->bufferSubData) {
+ funcs->bufferSubData = (type_glBufferSubData)
+ context->getProcAddress(QLatin1String("glBufferSubDataEXT"));
+ }
+ if (!funcs->bufferSubData) {
+ funcs->bufferSubData = (type_glBufferSubData)
+ context->getProcAddress(QLatin1String("glBufferSubDataARB"));
+ }
+
+ if (funcs->bufferSubData)
+ funcs->bufferSubData(target, offset, size, data);
+ else
+ funcs->bufferSubData = qglfResolveBufferSubData;
+}
+
+static GLenum qglfResolveCheckFramebufferStatus(GLenum target)
+{
+ typedef GLenum (QGLF_APIENTRYP type_glCheckFramebufferStatus)(GLenum target);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->checkFramebufferStatus = (type_glCheckFramebufferStatus)
+ context->getProcAddress(QLatin1String("glCheckFramebufferStatus"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->checkFramebufferStatus) {
+ funcs->checkFramebufferStatus = (type_glCheckFramebufferStatus)
+ context->getProcAddress(QLatin1String("glCheckFramebufferStatusOES"));
+ }
+#endif
+ if (!funcs->checkFramebufferStatus) {
+ funcs->checkFramebufferStatus = (type_glCheckFramebufferStatus)
+ context->getProcAddress(QLatin1String("glCheckFramebufferStatusEXT"));
+ }
+ if (!funcs->checkFramebufferStatus) {
+ funcs->checkFramebufferStatus = (type_glCheckFramebufferStatus)
+ context->getProcAddress(QLatin1String("glCheckFramebufferStatusARB"));
+ }
+
+ if (funcs->checkFramebufferStatus)
+ return funcs->checkFramebufferStatus(target);
+ funcs->checkFramebufferStatus = qglfResolveCheckFramebufferStatus;
+ return GLenum(0);
+}
+
+static void qglfResolveCompileShader(GLuint shader)
+{
+ typedef void (QGLF_APIENTRYP type_glCompileShader)(GLuint shader);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->compileShader = (type_glCompileShader)
+ context->getProcAddress(QLatin1String("glCompileShader"));
+ if (!funcs->compileShader) {
+ funcs->compileShader = (type_glCompileShader)
+ context->getProcAddress(QLatin1String("glCompileShader"));
+ }
+
+ if (funcs->compileShader)
+ funcs->compileShader(shader);
+ else
+ funcs->compileShader = qglfResolveCompileShader;
+}
+
+static void qglfResolveCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data)
+{
+ typedef void (QGLF_APIENTRYP type_glCompressedTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->compressedTexImage2D = (type_glCompressedTexImage2D)
+ context->getProcAddress(QLatin1String("glCompressedTexImage2D"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->compressedTexImage2D) {
+ funcs->compressedTexImage2D = (type_glCompressedTexImage2D)
+ context->getProcAddress(QLatin1String("glCompressedTexImage2DOES"));
+ }
+#endif
+ if (!funcs->compressedTexImage2D) {
+ funcs->compressedTexImage2D = (type_glCompressedTexImage2D)
+ context->getProcAddress(QLatin1String("glCompressedTexImage2DEXT"));
+ }
+ if (!funcs->compressedTexImage2D) {
+ funcs->compressedTexImage2D = (type_glCompressedTexImage2D)
+ context->getProcAddress(QLatin1String("glCompressedTexImage2DARB"));
+ }
+
+ if (funcs->compressedTexImage2D)
+ funcs->compressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
+ else
+ funcs->compressedTexImage2D = qglfResolveCompressedTexImage2D;
+}
+
+static void qglfResolveCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data)
+{
+ typedef void (QGLF_APIENTRYP type_glCompressedTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->compressedTexSubImage2D = (type_glCompressedTexSubImage2D)
+ context->getProcAddress(QLatin1String("glCompressedTexSubImage2D"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->compressedTexSubImage2D) {
+ funcs->compressedTexSubImage2D = (type_glCompressedTexSubImage2D)
+ context->getProcAddress(QLatin1String("glCompressedTexSubImage2DOES"));
+ }
+#endif
+ if (!funcs->compressedTexSubImage2D) {
+ funcs->compressedTexSubImage2D = (type_glCompressedTexSubImage2D)
+ context->getProcAddress(QLatin1String("glCompressedTexSubImage2DEXT"));
+ }
+ if (!funcs->compressedTexSubImage2D) {
+ funcs->compressedTexSubImage2D = (type_glCompressedTexSubImage2D)
+ context->getProcAddress(QLatin1String("glCompressedTexSubImage2DARB"));
+ }
+
+ if (funcs->compressedTexSubImage2D)
+ funcs->compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+ else
+ funcs->compressedTexSubImage2D = qglfResolveCompressedTexSubImage2D;
+}
+
+static GLuint qglfResolveCreateProgram()
+{
+ typedef GLuint (QGLF_APIENTRYP type_glCreateProgram)();
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->createProgram = (type_glCreateProgram)
+ context->getProcAddress(QLatin1String("glCreateProgram"));
+ if (!funcs->createProgram) {
+ funcs->createProgram = (type_glCreateProgram)
+ context->getProcAddress(QLatin1String("glCreateProgramObjectARB"));
+ }
+
+ if (funcs->createProgram)
+ return funcs->createProgram();
+ funcs->createProgram = qglfResolveCreateProgram;
+ return GLuint(0);
+}
+
+static GLuint qglfResolveCreateShader(GLenum type)
+{
+ typedef GLuint (QGLF_APIENTRYP type_glCreateShader)(GLenum type);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->createShader = (type_glCreateShader)
+ context->getProcAddress(QLatin1String("glCreateShader"));
+ if (!funcs->createShader) {
+ funcs->createShader = (type_glCreateShader)
+ context->getProcAddress(QLatin1String("glCreateShaderObjectARB"));
+ }
+
+ if (funcs->createShader)
+ return funcs->createShader(type);
+ funcs->createShader = qglfResolveCreateShader;
+ return GLuint(0);
+}
+
+static void qglfResolveDeleteBuffers(GLsizei n, const GLuint* buffers)
+{
+ typedef void (QGLF_APIENTRYP type_glDeleteBuffers)(GLsizei n, const GLuint* buffers);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->deleteBuffers = (type_glDeleteBuffers)
+ context->getProcAddress(QLatin1String("glDeleteBuffers"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->deleteBuffers) {
+ funcs->deleteBuffers = (type_glDeleteBuffers)
+ context->getProcAddress(QLatin1String("glDeleteBuffersOES"));
+ }
+#endif
+ if (!funcs->deleteBuffers) {
+ funcs->deleteBuffers = (type_glDeleteBuffers)
+ context->getProcAddress(QLatin1String("glDeleteBuffersEXT"));
+ }
+ if (!funcs->deleteBuffers) {
+ funcs->deleteBuffers = (type_glDeleteBuffers)
+ context->getProcAddress(QLatin1String("glDeleteBuffersARB"));
+ }
+
+ if (funcs->deleteBuffers)
+ funcs->deleteBuffers(n, buffers);
+ else
+ funcs->deleteBuffers = qglfResolveDeleteBuffers;
+}
+
+static void qglfResolveDeleteFramebuffers(GLsizei n, const GLuint* framebuffers)
+{
+ typedef void (QGLF_APIENTRYP type_glDeleteFramebuffers)(GLsizei n, const GLuint* framebuffers);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->deleteFramebuffers = (type_glDeleteFramebuffers)
+ context->getProcAddress(QLatin1String("glDeleteFramebuffers"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->deleteFramebuffers) {
+ funcs->deleteFramebuffers = (type_glDeleteFramebuffers)
+ context->getProcAddress(QLatin1String("glDeleteFramebuffersOES"));
+ }
+#endif
+ if (!funcs->deleteFramebuffers) {
+ funcs->deleteFramebuffers = (type_glDeleteFramebuffers)
+ context->getProcAddress(QLatin1String("glDeleteFramebuffersEXT"));
+ }
+ if (!funcs->deleteFramebuffers) {
+ funcs->deleteFramebuffers = (type_glDeleteFramebuffers)
+ context->getProcAddress(QLatin1String("glDeleteFramebuffersARB"));
+ }
+
+ if (funcs->deleteFramebuffers)
+ funcs->deleteFramebuffers(n, framebuffers);
+ else
+ funcs->deleteFramebuffers = qglfResolveDeleteFramebuffers;
+}
+
+static void qglfResolveDeleteProgram(GLuint program)
+{
+ typedef void (QGLF_APIENTRYP type_glDeleteProgram)(GLuint program);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->deleteProgram = (type_glDeleteProgram)
+ context->getProcAddress(QLatin1String("glDeleteProgram"));
+ if (!funcs->deleteProgram) {
+ funcs->deleteProgram = (type_glDeleteProgram)
+ context->getProcAddress(QLatin1String("glDeleteObjectARB"));
+ }
+
+ if (funcs->deleteProgram)
+ funcs->deleteProgram(program);
+ else
+ funcs->deleteProgram = qglfResolveDeleteProgram;
+}
+
+static void qglfResolveDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers)
+{
+ typedef void (QGLF_APIENTRYP type_glDeleteRenderbuffers)(GLsizei n, const GLuint* renderbuffers);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->deleteRenderbuffers = (type_glDeleteRenderbuffers)
+ context->getProcAddress(QLatin1String("glDeleteRenderbuffers"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->deleteRenderbuffers) {
+ funcs->deleteRenderbuffers = (type_glDeleteRenderbuffers)
+ context->getProcAddress(QLatin1String("glDeleteRenderbuffersOES"));
+ }
+#endif
+ if (!funcs->deleteRenderbuffers) {
+ funcs->deleteRenderbuffers = (type_glDeleteRenderbuffers)
+ context->getProcAddress(QLatin1String("glDeleteRenderbuffersEXT"));
+ }
+ if (!funcs->deleteRenderbuffers) {
+ funcs->deleteRenderbuffers = (type_glDeleteRenderbuffers)
+ context->getProcAddress(QLatin1String("glDeleteRenderbuffersARB"));
+ }
+
+ if (funcs->deleteRenderbuffers)
+ funcs->deleteRenderbuffers(n, renderbuffers);
+ else
+ funcs->deleteRenderbuffers = qglfResolveDeleteRenderbuffers;
+}
+
+static void qglfResolveDeleteShader(GLuint shader)
+{
+ typedef void (QGLF_APIENTRYP type_glDeleteShader)(GLuint shader);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->deleteShader = (type_glDeleteShader)
+ context->getProcAddress(QLatin1String("glDeleteShader"));
+ if (!funcs->deleteShader) {
+ funcs->deleteShader = (type_glDeleteShader)
+ context->getProcAddress(QLatin1String("glDeleteObjectARB"));
+ }
+
+ if (funcs->deleteShader)
+ funcs->deleteShader(shader);
+ else
+ funcs->deleteShader = qglfResolveDeleteShader;
+}
+
+static void qglfResolveDetachShader(GLuint program, GLuint shader)
+{
+ typedef void (QGLF_APIENTRYP type_glDetachShader)(GLuint program, GLuint shader);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->detachShader = (type_glDetachShader)
+ context->getProcAddress(QLatin1String("glDetachShader"));
+ if (!funcs->detachShader) {
+ funcs->detachShader = (type_glDetachShader)
+ context->getProcAddress(QLatin1String("glDetachObjectARB"));
+ }
+
+ if (funcs->detachShader)
+ funcs->detachShader(program, shader);
+ else
+ funcs->detachShader = qglfResolveDetachShader;
+}
+
+static void qglfResolveDisableVertexAttribArray(GLuint index)
+{
+ typedef void (QGLF_APIENTRYP type_glDisableVertexAttribArray)(GLuint index);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->disableVertexAttribArray = (type_glDisableVertexAttribArray)
+ context->getProcAddress(QLatin1String("glDisableVertexAttribArray"));
+ if (!funcs->disableVertexAttribArray) {
+ funcs->disableVertexAttribArray = (type_glDisableVertexAttribArray)
+ context->getProcAddress(QLatin1String("glDisableVertexAttribArrayARB"));
+ }
+
+ if (funcs->disableVertexAttribArray)
+ funcs->disableVertexAttribArray(index);
+ else
+ funcs->disableVertexAttribArray = qglfResolveDisableVertexAttribArray;
+}
+
+static void qglfResolveEnableVertexAttribArray(GLuint index)
+{
+ typedef void (QGLF_APIENTRYP type_glEnableVertexAttribArray)(GLuint index);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->enableVertexAttribArray = (type_glEnableVertexAttribArray)
+ context->getProcAddress(QLatin1String("glEnableVertexAttribArray"));
+ if (!funcs->enableVertexAttribArray) {
+ funcs->enableVertexAttribArray = (type_glEnableVertexAttribArray)
+ context->getProcAddress(QLatin1String("glEnableVertexAttribArrayARB"));
+ }
+
+ if (funcs->enableVertexAttribArray)
+ funcs->enableVertexAttribArray(index);
+ else
+ funcs->enableVertexAttribArray = qglfResolveEnableVertexAttribArray;
+}
+
+static void qglfResolveFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ typedef void (QGLF_APIENTRYP type_glFramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->framebufferRenderbuffer = (type_glFramebufferRenderbuffer)
+ context->getProcAddress(QLatin1String("glFramebufferRenderbuffer"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->framebufferRenderbuffer) {
+ funcs->framebufferRenderbuffer = (type_glFramebufferRenderbuffer)
+ context->getProcAddress(QLatin1String("glFramebufferRenderbufferOES"));
+ }
+#endif
+ if (!funcs->framebufferRenderbuffer) {
+ funcs->framebufferRenderbuffer = (type_glFramebufferRenderbuffer)
+ context->getProcAddress(QLatin1String("glFramebufferRenderbufferEXT"));
+ }
+ if (!funcs->framebufferRenderbuffer) {
+ funcs->framebufferRenderbuffer = (type_glFramebufferRenderbuffer)
+ context->getProcAddress(QLatin1String("glFramebufferRenderbufferARB"));
+ }
+
+ if (funcs->framebufferRenderbuffer)
+ funcs->framebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+ else
+ funcs->framebufferRenderbuffer = qglfResolveFramebufferRenderbuffer;
+}
+
+static void qglfResolveFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ typedef void (QGLF_APIENTRYP type_glFramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->framebufferTexture2D = (type_glFramebufferTexture2D)
+ context->getProcAddress(QLatin1String("glFramebufferTexture2D"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->framebufferTexture2D) {
+ funcs->framebufferTexture2D = (type_glFramebufferTexture2D)
+ context->getProcAddress(QLatin1String("glFramebufferTexture2DOES"));
+ }
+#endif
+ if (!funcs->framebufferTexture2D) {
+ funcs->framebufferTexture2D = (type_glFramebufferTexture2D)
+ context->getProcAddress(QLatin1String("glFramebufferTexture2DEXT"));
+ }
+ if (!funcs->framebufferTexture2D) {
+ funcs->framebufferTexture2D = (type_glFramebufferTexture2D)
+ context->getProcAddress(QLatin1String("glFramebufferTexture2DARB"));
+ }
+
+ if (funcs->framebufferTexture2D)
+ funcs->framebufferTexture2D(target, attachment, textarget, texture, level);
+ else
+ funcs->framebufferTexture2D = qglfResolveFramebufferTexture2D;
+}
+
+static void qglfResolveGenBuffers(GLsizei n, GLuint* buffers)
+{
+ typedef void (QGLF_APIENTRYP type_glGenBuffers)(GLsizei n, GLuint* buffers);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->genBuffers = (type_glGenBuffers)
+ context->getProcAddress(QLatin1String("glGenBuffers"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->genBuffers) {
+ funcs->genBuffers = (type_glGenBuffers)
+ context->getProcAddress(QLatin1String("glGenBuffersOES"));
+ }
+#endif
+ if (!funcs->genBuffers) {
+ funcs->genBuffers = (type_glGenBuffers)
+ context->getProcAddress(QLatin1String("glGenBuffersEXT"));
+ }
+ if (!funcs->genBuffers) {
+ funcs->genBuffers = (type_glGenBuffers)
+ context->getProcAddress(QLatin1String("glGenBuffersARB"));
+ }
+
+ if (funcs->genBuffers)
+ funcs->genBuffers(n, buffers);
+ else
+ funcs->genBuffers = qglfResolveGenBuffers;
+}
+
+static void qglfResolveGenerateMipmap(GLenum target)
+{
+ typedef void (QGLF_APIENTRYP type_glGenerateMipmap)(GLenum target);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->generateMipmap = (type_glGenerateMipmap)
+ context->getProcAddress(QLatin1String("glGenerateMipmap"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->generateMipmap) {
+ funcs->generateMipmap = (type_glGenerateMipmap)
+ context->getProcAddress(QLatin1String("glGenerateMipmapOES"));
+ }
+#endif
+ if (!funcs->generateMipmap) {
+ funcs->generateMipmap = (type_glGenerateMipmap)
+ context->getProcAddress(QLatin1String("glGenerateMipmapEXT"));
+ }
+ if (!funcs->generateMipmap) {
+ funcs->generateMipmap = (type_glGenerateMipmap)
+ context->getProcAddress(QLatin1String("glGenerateMipmapARB"));
+ }
+
+ if (funcs->generateMipmap)
+ funcs->generateMipmap(target);
+ else
+ funcs->generateMipmap = qglfResolveGenerateMipmap;
+}
+
+static void qglfResolveGenFramebuffers(GLsizei n, GLuint* framebuffers)
+{
+ typedef void (QGLF_APIENTRYP type_glGenFramebuffers)(GLsizei n, GLuint* framebuffers);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->genFramebuffers = (type_glGenFramebuffers)
+ context->getProcAddress(QLatin1String("glGenFramebuffers"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->genFramebuffers) {
+ funcs->genFramebuffers = (type_glGenFramebuffers)
+ context->getProcAddress(QLatin1String("glGenFramebuffersOES"));
+ }
+#endif
+ if (!funcs->genFramebuffers) {
+ funcs->genFramebuffers = (type_glGenFramebuffers)
+ context->getProcAddress(QLatin1String("glGenFramebuffersEXT"));
+ }
+ if (!funcs->genFramebuffers) {
+ funcs->genFramebuffers = (type_glGenFramebuffers)
+ context->getProcAddress(QLatin1String("glGenFramebuffersARB"));
+ }
+
+ if (funcs->genFramebuffers)
+ funcs->genFramebuffers(n, framebuffers);
+ else
+ funcs->genFramebuffers = qglfResolveGenFramebuffers;
+}
+
+static void qglfResolveGenRenderbuffers(GLsizei n, GLuint* renderbuffers)
+{
+ typedef void (QGLF_APIENTRYP type_glGenRenderbuffers)(GLsizei n, GLuint* renderbuffers);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->genRenderbuffers = (type_glGenRenderbuffers)
+ context->getProcAddress(QLatin1String("glGenRenderbuffers"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->genRenderbuffers) {
+ funcs->genRenderbuffers = (type_glGenRenderbuffers)
+ context->getProcAddress(QLatin1String("glGenRenderbuffersOES"));
+ }
+#endif
+ if (!funcs->genRenderbuffers) {
+ funcs->genRenderbuffers = (type_glGenRenderbuffers)
+ context->getProcAddress(QLatin1String("glGenRenderbuffersEXT"));
+ }
+ if (!funcs->genRenderbuffers) {
+ funcs->genRenderbuffers = (type_glGenRenderbuffers)
+ context->getProcAddress(QLatin1String("glGenRenderbuffersARB"));
+ }
+
+ if (funcs->genRenderbuffers)
+ funcs->genRenderbuffers(n, renderbuffers);
+ else
+ funcs->genRenderbuffers = qglfResolveGenRenderbuffers;
+}
+
+static void qglfResolveGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)
+{
+ typedef void (QGLF_APIENTRYP type_glGetActiveAttrib)(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getActiveAttrib = (type_glGetActiveAttrib)
+ context->getProcAddress(QLatin1String("glGetActiveAttrib"));
+ if (!funcs->getActiveAttrib) {
+ funcs->getActiveAttrib = (type_glGetActiveAttrib)
+ context->getProcAddress(QLatin1String("glGetActiveAttribARB"));
+ }
+
+ if (funcs->getActiveAttrib)
+ funcs->getActiveAttrib(program, index, bufsize, length, size, type, name);
+ else
+ funcs->getActiveAttrib = qglfResolveGetActiveAttrib;
+}
+
+static void qglfResolveGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)
+{
+ typedef void (QGLF_APIENTRYP type_glGetActiveUniform)(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getActiveUniform = (type_glGetActiveUniform)
+ context->getProcAddress(QLatin1String("glGetActiveUniform"));
+ if (!funcs->getActiveUniform) {
+ funcs->getActiveUniform = (type_glGetActiveUniform)
+ context->getProcAddress(QLatin1String("glGetActiveUniformARB"));
+ }
+
+ if (funcs->getActiveUniform)
+ funcs->getActiveUniform(program, index, bufsize, length, size, type, name);
+ else
+ funcs->getActiveUniform = qglfResolveGetActiveUniform;
+}
+
+static void qglfResolveGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)
+{
+ typedef void (QGLF_APIENTRYP type_glGetAttachedShaders)(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getAttachedShaders = (type_glGetAttachedShaders)
+ context->getProcAddress(QLatin1String("glGetAttachedShaders"));
+ if (!funcs->getAttachedShaders) {
+ funcs->getAttachedShaders = (type_glGetAttachedShaders)
+ context->getProcAddress(QLatin1String("glGetAttachedObjectsARB"));
+ }
+
+ if (funcs->getAttachedShaders)
+ funcs->getAttachedShaders(program, maxcount, count, shaders);
+ else
+ funcs->getAttachedShaders = qglfResolveGetAttachedShaders;
+}
+
+static int qglfResolveGetAttribLocation(GLuint program, const char* name)
+{
+ typedef int (QGLF_APIENTRYP type_glGetAttribLocation)(GLuint program, const char* name);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getAttribLocation = (type_glGetAttribLocation)
+ context->getProcAddress(QLatin1String("glGetAttribLocation"));
+ if (!funcs->getAttribLocation) {
+ funcs->getAttribLocation = (type_glGetAttribLocation)
+ context->getProcAddress(QLatin1String("glGetAttribLocationARB"));
+ }
+
+ if (funcs->getAttribLocation)
+ return funcs->getAttribLocation(program, name);
+ funcs->getAttribLocation = qglfResolveGetAttribLocation;
+ return int(0);
+}
+
+static void qglfResolveGetBufferParameteriv(GLenum target, GLenum pname, GLint* params)
+{
+ typedef void (QGLF_APIENTRYP type_glGetBufferParameteriv)(GLenum target, GLenum pname, GLint* params);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getBufferParameteriv = (type_glGetBufferParameteriv)
+ context->getProcAddress(QLatin1String("glGetBufferParameteriv"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->getBufferParameteriv) {
+ funcs->getBufferParameteriv = (type_glGetBufferParameteriv)
+ context->getProcAddress(QLatin1String("glGetBufferParameterivOES"));
+ }
+#endif
+ if (!funcs->getBufferParameteriv) {
+ funcs->getBufferParameteriv = (type_glGetBufferParameteriv)
+ context->getProcAddress(QLatin1String("glGetBufferParameterivEXT"));
+ }
+ if (!funcs->getBufferParameteriv) {
+ funcs->getBufferParameteriv = (type_glGetBufferParameteriv)
+ context->getProcAddress(QLatin1String("glGetBufferParameterivARB"));
+ }
+
+ if (funcs->getBufferParameteriv)
+ funcs->getBufferParameteriv(target, pname, params);
+ else
+ funcs->getBufferParameteriv = qglfResolveGetBufferParameteriv;
+}
+
+static void qglfResolveGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ typedef void (QGLF_APIENTRYP type_glGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint* params);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getFramebufferAttachmentParameteriv = (type_glGetFramebufferAttachmentParameteriv)
+ context->getProcAddress(QLatin1String("glGetFramebufferAttachmentParameteriv"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->getFramebufferAttachmentParameteriv) {
+ funcs->getFramebufferAttachmentParameteriv = (type_glGetFramebufferAttachmentParameteriv)
+ context->getProcAddress(QLatin1String("glGetFramebufferAttachmentParameterivOES"));
+ }
+#endif
+ if (!funcs->getFramebufferAttachmentParameteriv) {
+ funcs->getFramebufferAttachmentParameteriv = (type_glGetFramebufferAttachmentParameteriv)
+ context->getProcAddress(QLatin1String("glGetFramebufferAttachmentParameterivEXT"));
+ }
+ if (!funcs->getFramebufferAttachmentParameteriv) {
+ funcs->getFramebufferAttachmentParameteriv = (type_glGetFramebufferAttachmentParameteriv)
+ context->getProcAddress(QLatin1String("glGetFramebufferAttachmentParameterivARB"));
+ }
+
+ if (funcs->getFramebufferAttachmentParameteriv)
+ funcs->getFramebufferAttachmentParameteriv(target, attachment, pname, params);
+ else
+ funcs->getFramebufferAttachmentParameteriv = qglfResolveGetFramebufferAttachmentParameteriv;
+}
+
+static void qglfResolveGetProgramiv(GLuint program, GLenum pname, GLint* params)
+{
+ typedef void (QGLF_APIENTRYP type_glGetProgramiv)(GLuint program, GLenum pname, GLint* params);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getProgramiv = (type_glGetProgramiv)
+ context->getProcAddress(QLatin1String("glGetProgramiv"));
+ if (!funcs->getProgramiv) {
+ funcs->getProgramiv = (type_glGetProgramiv)
+ context->getProcAddress(QLatin1String("glGetObjectParameterivARB"));
+ }
+
+ if (funcs->getProgramiv)
+ funcs->getProgramiv(program, pname, params);
+ else
+ funcs->getProgramiv = qglfResolveGetProgramiv;
+}
+
+static void qglfResolveGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, char* infolog)
+{
+ typedef void (QGLF_APIENTRYP type_glGetProgramInfoLog)(GLuint program, GLsizei bufsize, GLsizei* length, char* infolog);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getProgramInfoLog = (type_glGetProgramInfoLog)
+ context->getProcAddress(QLatin1String("glGetProgramInfoLog"));
+ if (!funcs->getProgramInfoLog) {
+ funcs->getProgramInfoLog = (type_glGetProgramInfoLog)
+ context->getProcAddress(QLatin1String("glGetInfoLogARB"));
+ }
+
+ if (funcs->getProgramInfoLog)
+ funcs->getProgramInfoLog(program, bufsize, length, infolog);
+ else
+ funcs->getProgramInfoLog = qglfResolveGetProgramInfoLog;
+}
+
+static void qglfResolveGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params)
+{
+ typedef void (QGLF_APIENTRYP type_glGetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint* params);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getRenderbufferParameteriv = (type_glGetRenderbufferParameteriv)
+ context->getProcAddress(QLatin1String("glGetRenderbufferParameteriv"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->getRenderbufferParameteriv) {
+ funcs->getRenderbufferParameteriv = (type_glGetRenderbufferParameteriv)
+ context->getProcAddress(QLatin1String("glGetRenderbufferParameterivOES"));
+ }
+#endif
+ if (!funcs->getRenderbufferParameteriv) {
+ funcs->getRenderbufferParameteriv = (type_glGetRenderbufferParameteriv)
+ context->getProcAddress(QLatin1String("glGetRenderbufferParameterivEXT"));
+ }
+ if (!funcs->getRenderbufferParameteriv) {
+ funcs->getRenderbufferParameteriv = (type_glGetRenderbufferParameteriv)
+ context->getProcAddress(QLatin1String("glGetRenderbufferParameterivARB"));
+ }
+
+ if (funcs->getRenderbufferParameteriv)
+ funcs->getRenderbufferParameteriv(target, pname, params);
+ else
+ funcs->getRenderbufferParameteriv = qglfResolveGetRenderbufferParameteriv;
+}
+
+static void qglfResolveGetShaderiv(GLuint shader, GLenum pname, GLint* params)
+{
+ typedef void (QGLF_APIENTRYP type_glGetShaderiv)(GLuint shader, GLenum pname, GLint* params);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getShaderiv = (type_glGetShaderiv)
+ context->getProcAddress(QLatin1String("glGetShaderiv"));
+ if (!funcs->getShaderiv) {
+ funcs->getShaderiv = (type_glGetShaderiv)
+ context->getProcAddress(QLatin1String("glGetObjectParameterivARB"));
+ }
+
+ if (funcs->getShaderiv)
+ funcs->getShaderiv(shader, pname, params);
+ else
+ funcs->getShaderiv = qglfResolveGetShaderiv;
+}
+
+static void qglfResolveGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog)
+{
+ typedef void (QGLF_APIENTRYP type_glGetShaderInfoLog)(GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getShaderInfoLog = (type_glGetShaderInfoLog)
+ context->getProcAddress(QLatin1String("glGetShaderInfoLog"));
+ if (!funcs->getShaderInfoLog) {
+ funcs->getShaderInfoLog = (type_glGetShaderInfoLog)
+ context->getProcAddress(QLatin1String("glGetInfoLogARB"));
+ }
+
+ if (funcs->getShaderInfoLog)
+ funcs->getShaderInfoLog(shader, bufsize, length, infolog);
+ else
+ funcs->getShaderInfoLog = qglfResolveGetShaderInfoLog;
+}
+
+static void qglfSpecialGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
+{
+ Q_UNUSED(shadertype);
+ Q_UNUSED(precisiontype);
+ range[0] = range[1] = precision[0] = 0;
+}
+
+static void qglfResolveGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
+{
+ typedef void (QGLF_APIENTRYP type_glGetShaderPrecisionFormat)(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getShaderPrecisionFormat = (type_glGetShaderPrecisionFormat)
+ context->getProcAddress(QLatin1String("glGetShaderPrecisionFormat"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->getShaderPrecisionFormat) {
+ funcs->getShaderPrecisionFormat = (type_glGetShaderPrecisionFormat)
+ context->getProcAddress(QLatin1String("glGetShaderPrecisionFormatOES"));
+ }
+#endif
+ if (!funcs->getShaderPrecisionFormat) {
+ funcs->getShaderPrecisionFormat = (type_glGetShaderPrecisionFormat)
+ context->getProcAddress(QLatin1String("glGetShaderPrecisionFormatEXT"));
+ }
+ if (!funcs->getShaderPrecisionFormat) {
+ funcs->getShaderPrecisionFormat = (type_glGetShaderPrecisionFormat)
+ context->getProcAddress(QLatin1String("glGetShaderPrecisionFormatARB"));
+ }
+
+ if (!funcs->getShaderPrecisionFormat)
+ funcs->getShaderPrecisionFormat = qglfSpecialGetShaderPrecisionFormat;
+
+ funcs->getShaderPrecisionFormat(shadertype, precisiontype, range, precision);
+}
+
+static void qglfResolveGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, char* source)
+{
+ typedef void (QGLF_APIENTRYP type_glGetShaderSource)(GLuint shader, GLsizei bufsize, GLsizei* length, char* source);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getShaderSource = (type_glGetShaderSource)
+ context->getProcAddress(QLatin1String("glGetShaderSource"));
+ if (!funcs->getShaderSource) {
+ funcs->getShaderSource = (type_glGetShaderSource)
+ context->getProcAddress(QLatin1String("glGetShaderSourceARB"));
+ }
+
+ if (funcs->getShaderSource)
+ funcs->getShaderSource(shader, bufsize, length, source);
+ else
+ funcs->getShaderSource = qglfResolveGetShaderSource;
+}
+
+static void qglfResolveGetUniformfv(GLuint program, GLint location, GLfloat* params)
+{
+ typedef void (QGLF_APIENTRYP type_glGetUniformfv)(GLuint program, GLint location, GLfloat* params);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getUniformfv = (type_glGetUniformfv)
+ context->getProcAddress(QLatin1String("glGetUniformfv"));
+ if (!funcs->getUniformfv) {
+ funcs->getUniformfv = (type_glGetUniformfv)
+ context->getProcAddress(QLatin1String("glGetUniformfvARB"));
+ }
+
+ if (funcs->getUniformfv)
+ funcs->getUniformfv(program, location, params);
+ else
+ funcs->getUniformfv = qglfResolveGetUniformfv;
+}
+
+static void qglfResolveGetUniformiv(GLuint program, GLint location, GLint* params)
+{
+ typedef void (QGLF_APIENTRYP type_glGetUniformiv)(GLuint program, GLint location, GLint* params);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getUniformiv = (type_glGetUniformiv)
+ context->getProcAddress(QLatin1String("glGetUniformiv"));
+ if (!funcs->getUniformiv) {
+ funcs->getUniformiv = (type_glGetUniformiv)
+ context->getProcAddress(QLatin1String("glGetUniformivARB"));
+ }
+
+ if (funcs->getUniformiv)
+ funcs->getUniformiv(program, location, params);
+ else
+ funcs->getUniformiv = qglfResolveGetUniformiv;
+}
+
+static int qglfResolveGetUniformLocation(GLuint program, const char* name)
+{
+ typedef int (QGLF_APIENTRYP type_glGetUniformLocation)(GLuint program, const char* name);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getUniformLocation = (type_glGetUniformLocation)
+ context->getProcAddress(QLatin1String("glGetUniformLocation"));
+ if (!funcs->getUniformLocation) {
+ funcs->getUniformLocation = (type_glGetUniformLocation)
+ context->getProcAddress(QLatin1String("glGetUniformLocationARB"));
+ }
+
+ if (funcs->getUniformLocation)
+ return funcs->getUniformLocation(program, name);
+ funcs->getUniformLocation = qglfResolveGetUniformLocation;
+ return int(0);
+}
+
+static void qglfResolveGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params)
+{
+ typedef void (QGLF_APIENTRYP type_glGetVertexAttribfv)(GLuint index, GLenum pname, GLfloat* params);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getVertexAttribfv = (type_glGetVertexAttribfv)
+ context->getProcAddress(QLatin1String("glGetVertexAttribfv"));
+ if (!funcs->getVertexAttribfv) {
+ funcs->getVertexAttribfv = (type_glGetVertexAttribfv)
+ context->getProcAddress(QLatin1String("glGetVertexAttribfvARB"));
+ }
+
+ if (funcs->getVertexAttribfv)
+ funcs->getVertexAttribfv(index, pname, params);
+ else
+ funcs->getVertexAttribfv = qglfResolveGetVertexAttribfv;
+}
+
+static void qglfResolveGetVertexAttribiv(GLuint index, GLenum pname, GLint* params)
+{
+ typedef void (QGLF_APIENTRYP type_glGetVertexAttribiv)(GLuint index, GLenum pname, GLint* params);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getVertexAttribiv = (type_glGetVertexAttribiv)
+ context->getProcAddress(QLatin1String("glGetVertexAttribiv"));
+ if (!funcs->getVertexAttribiv) {
+ funcs->getVertexAttribiv = (type_glGetVertexAttribiv)
+ context->getProcAddress(QLatin1String("glGetVertexAttribivARB"));
+ }
+
+ if (funcs->getVertexAttribiv)
+ funcs->getVertexAttribiv(index, pname, params);
+ else
+ funcs->getVertexAttribiv = qglfResolveGetVertexAttribiv;
+}
+
+static void qglfResolveGetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer)
+{
+ typedef void (QGLF_APIENTRYP type_glGetVertexAttribPointerv)(GLuint index, GLenum pname, void** pointer);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->getVertexAttribPointerv = (type_glGetVertexAttribPointerv)
+ context->getProcAddress(QLatin1String("glGetVertexAttribPointerv"));
+ if (!funcs->getVertexAttribPointerv) {
+ funcs->getVertexAttribPointerv = (type_glGetVertexAttribPointerv)
+ context->getProcAddress(QLatin1String("glGetVertexAttribPointervARB"));
+ }
+
+ if (funcs->getVertexAttribPointerv)
+ funcs->getVertexAttribPointerv(index, pname, pointer);
+ else
+ funcs->getVertexAttribPointerv = qglfResolveGetVertexAttribPointerv;
+}
+
+static GLboolean qglfResolveIsBuffer(GLuint buffer)
+{
+ typedef GLboolean (QGLF_APIENTRYP type_glIsBuffer)(GLuint buffer);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->isBuffer = (type_glIsBuffer)
+ context->getProcAddress(QLatin1String("glIsBuffer"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->isBuffer) {
+ funcs->isBuffer = (type_glIsBuffer)
+ context->getProcAddress(QLatin1String("glIsBufferOES"));
+ }
+#endif
+ if (!funcs->isBuffer) {
+ funcs->isBuffer = (type_glIsBuffer)
+ context->getProcAddress(QLatin1String("glIsBufferEXT"));
+ }
+ if (!funcs->isBuffer) {
+ funcs->isBuffer = (type_glIsBuffer)
+ context->getProcAddress(QLatin1String("glIsBufferARB"));
+ }
+
+ if (funcs->isBuffer)
+ return funcs->isBuffer(buffer);
+ funcs->isBuffer = qglfResolveIsBuffer;
+ return GLboolean(0);
+}
+
+static GLboolean qglfResolveIsFramebuffer(GLuint framebuffer)
+{
+ typedef GLboolean (QGLF_APIENTRYP type_glIsFramebuffer)(GLuint framebuffer);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->isFramebuffer = (type_glIsFramebuffer)
+ context->getProcAddress(QLatin1String("glIsFramebuffer"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->isFramebuffer) {
+ funcs->isFramebuffer = (type_glIsFramebuffer)
+ context->getProcAddress(QLatin1String("glIsFramebufferOES"));
+ }
+#endif
+ if (!funcs->isFramebuffer) {
+ funcs->isFramebuffer = (type_glIsFramebuffer)
+ context->getProcAddress(QLatin1String("glIsFramebufferEXT"));
+ }
+ if (!funcs->isFramebuffer) {
+ funcs->isFramebuffer = (type_glIsFramebuffer)
+ context->getProcAddress(QLatin1String("glIsFramebufferARB"));
+ }
+
+ if (funcs->isFramebuffer)
+ return funcs->isFramebuffer(framebuffer);
+ funcs->isFramebuffer = qglfResolveIsFramebuffer;
+ return GLboolean(0);
+}
+
+static GLboolean qglfSpecialIsProgram(GLuint program)
+{
+ return program != 0;
+}
+
+static GLboolean qglfResolveIsProgram(GLuint program)
+{
+ typedef GLboolean (QGLF_APIENTRYP type_glIsProgram)(GLuint program);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->isProgram = (type_glIsProgram)
+ context->getProcAddress(QLatin1String("glIsProgram"));
+ if (!funcs->isProgram) {
+ funcs->isProgram = (type_glIsProgram)
+ context->getProcAddress(QLatin1String("glIsProgramARB"));
+ }
+
+ if (!funcs->isProgram)
+ funcs->isProgram = qglfSpecialIsProgram;
+
+ return funcs->isProgram(program);
+}
+
+static GLboolean qglfResolveIsRenderbuffer(GLuint renderbuffer)
+{
+ typedef GLboolean (QGLF_APIENTRYP type_glIsRenderbuffer)(GLuint renderbuffer);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->isRenderbuffer = (type_glIsRenderbuffer)
+ context->getProcAddress(QLatin1String("glIsRenderbuffer"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->isRenderbuffer) {
+ funcs->isRenderbuffer = (type_glIsRenderbuffer)
+ context->getProcAddress(QLatin1String("glIsRenderbufferOES"));
+ }
+#endif
+ if (!funcs->isRenderbuffer) {
+ funcs->isRenderbuffer = (type_glIsRenderbuffer)
+ context->getProcAddress(QLatin1String("glIsRenderbufferEXT"));
+ }
+ if (!funcs->isRenderbuffer) {
+ funcs->isRenderbuffer = (type_glIsRenderbuffer)
+ context->getProcAddress(QLatin1String("glIsRenderbufferARB"));
+ }
+
+ if (funcs->isRenderbuffer)
+ return funcs->isRenderbuffer(renderbuffer);
+ funcs->isRenderbuffer = qglfResolveIsRenderbuffer;
+ return GLboolean(0);
+}
+
+static GLboolean qglfSpecialIsShader(GLuint shader)
+{
+ return shader != 0;
+}
+
+static GLboolean qglfResolveIsShader(GLuint shader)
+{
+ typedef GLboolean (QGLF_APIENTRYP type_glIsShader)(GLuint shader);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->isShader = (type_glIsShader)
+ context->getProcAddress(QLatin1String("glIsShader"));
+ if (!funcs->isShader) {
+ funcs->isShader = (type_glIsShader)
+ context->getProcAddress(QLatin1String("glIsShaderARB"));
+ }
+
+ if (!funcs->isShader)
+ funcs->isShader = qglfSpecialIsShader;
+
+ return funcs->isShader(shader);
+}
+
+static void qglfResolveLinkProgram(GLuint program)
+{
+ typedef void (QGLF_APIENTRYP type_glLinkProgram)(GLuint program);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->linkProgram = (type_glLinkProgram)
+ context->getProcAddress(QLatin1String("glLinkProgram"));
+ if (!funcs->linkProgram) {
+ funcs->linkProgram = (type_glLinkProgram)
+ context->getProcAddress(QLatin1String("glLinkProgramARB"));
+ }
+
+ if (funcs->linkProgram)
+ funcs->linkProgram(program);
+ else
+ funcs->linkProgram = qglfResolveLinkProgram;
+}
+
+static void qglfSpecialReleaseShaderCompiler()
+{
+}
+
+static void qglfResolveReleaseShaderCompiler()
+{
+ typedef void (QGLF_APIENTRYP type_glReleaseShaderCompiler)();
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->releaseShaderCompiler = (type_glReleaseShaderCompiler)
+ context->getProcAddress(QLatin1String("glReleaseShaderCompiler"));
+ if (!funcs->releaseShaderCompiler) {
+ funcs->releaseShaderCompiler = (type_glReleaseShaderCompiler)
+ context->getProcAddress(QLatin1String("glReleaseShaderCompilerARB"));
+ }
+
+ if (!funcs->releaseShaderCompiler)
+ funcs->releaseShaderCompiler = qglfSpecialReleaseShaderCompiler;
+
+ funcs->releaseShaderCompiler();
+}
+
+static void qglfResolveRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
+{
+ typedef void (QGLF_APIENTRYP type_glRenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->renderbufferStorage = (type_glRenderbufferStorage)
+ context->getProcAddress(QLatin1String("glRenderbufferStorage"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->renderbufferStorage) {
+ funcs->renderbufferStorage = (type_glRenderbufferStorage)
+ context->getProcAddress(QLatin1String("glRenderbufferStorageOES"));
+ }
+#endif
+ if (!funcs->renderbufferStorage) {
+ funcs->renderbufferStorage = (type_glRenderbufferStorage)
+ context->getProcAddress(QLatin1String("glRenderbufferStorageEXT"));
+ }
+ if (!funcs->renderbufferStorage) {
+ funcs->renderbufferStorage = (type_glRenderbufferStorage)
+ context->getProcAddress(QLatin1String("glRenderbufferStorageARB"));
+ }
+
+ if (funcs->renderbufferStorage)
+ funcs->renderbufferStorage(target, internalformat, width, height);
+ else
+ funcs->renderbufferStorage = qglfResolveRenderbufferStorage;
+}
+
+static void qglfResolveSampleCoverage(GLclampf value, GLboolean invert)
+{
+ typedef void (QGLF_APIENTRYP type_glSampleCoverage)(GLclampf value, GLboolean invert);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->sampleCoverage = (type_glSampleCoverage)
+ context->getProcAddress(QLatin1String("glSampleCoverage"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->sampleCoverage) {
+ funcs->sampleCoverage = (type_glSampleCoverage)
+ context->getProcAddress(QLatin1String("glSampleCoverageOES"));
+ }
+#endif
+ if (!funcs->sampleCoverage) {
+ funcs->sampleCoverage = (type_glSampleCoverage)
+ context->getProcAddress(QLatin1String("glSampleCoverageEXT"));
+ }
+ if (!funcs->sampleCoverage) {
+ funcs->sampleCoverage = (type_glSampleCoverage)
+ context->getProcAddress(QLatin1String("glSampleCoverageARB"));
+ }
+
+ if (funcs->sampleCoverage)
+ funcs->sampleCoverage(value, invert);
+ else
+ funcs->sampleCoverage = qglfResolveSampleCoverage;
+}
+
+static void qglfResolveShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length)
+{
+ typedef void (QGLF_APIENTRYP type_glShaderBinary)(GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->shaderBinary = (type_glShaderBinary)
+ context->getProcAddress(QLatin1String("glShaderBinary"));
+ if (!funcs->shaderBinary) {
+ funcs->shaderBinary = (type_glShaderBinary)
+ context->getProcAddress(QLatin1String("glShaderBinaryARB"));
+ }
+
+ if (funcs->shaderBinary)
+ funcs->shaderBinary(n, shaders, binaryformat, binary, length);
+ else
+ funcs->shaderBinary = qglfResolveShaderBinary;
+}
+
+static void qglfResolveShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length)
+{
+ typedef void (QGLF_APIENTRYP type_glShaderSource)(GLuint shader, GLsizei count, const char** string, const GLint* length);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->shaderSource = (type_glShaderSource)
+ context->getProcAddress(QLatin1String("glShaderSource"));
+ if (!funcs->shaderSource) {
+ funcs->shaderSource = (type_glShaderSource)
+ context->getProcAddress(QLatin1String("glShaderSourceARB"));
+ }
+
+ if (funcs->shaderSource)
+ funcs->shaderSource(shader, count, string, length);
+ else
+ funcs->shaderSource = qglfResolveShaderSource;
+}
+
+static void qglfResolveStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
+{
+ typedef void (QGLF_APIENTRYP type_glStencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->stencilFuncSeparate = (type_glStencilFuncSeparate)
+ context->getProcAddress(QLatin1String("glStencilFuncSeparate"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->stencilFuncSeparate) {
+ funcs->stencilFuncSeparate = (type_glStencilFuncSeparate)
+ context->getProcAddress(QLatin1String("glStencilFuncSeparateOES"));
+ }
+#endif
+ if (!funcs->stencilFuncSeparate) {
+ funcs->stencilFuncSeparate = (type_glStencilFuncSeparate)
+ context->getProcAddress(QLatin1String("glStencilFuncSeparateEXT"));
+ }
+ if (!funcs->stencilFuncSeparate) {
+ funcs->stencilFuncSeparate = (type_glStencilFuncSeparate)
+ context->getProcAddress(QLatin1String("glStencilFuncSeparateARB"));
+ }
+
+ if (funcs->stencilFuncSeparate)
+ funcs->stencilFuncSeparate(face, func, ref, mask);
+ else
+ funcs->stencilFuncSeparate = qglfResolveStencilFuncSeparate;
+}
+
+static void qglfResolveStencilMaskSeparate(GLenum face, GLuint mask)
+{
+ typedef void (QGLF_APIENTRYP type_glStencilMaskSeparate)(GLenum face, GLuint mask);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->stencilMaskSeparate = (type_glStencilMaskSeparate)
+ context->getProcAddress(QLatin1String("glStencilMaskSeparate"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->stencilMaskSeparate) {
+ funcs->stencilMaskSeparate = (type_glStencilMaskSeparate)
+ context->getProcAddress(QLatin1String("glStencilMaskSeparateOES"));
+ }
+#endif
+ if (!funcs->stencilMaskSeparate) {
+ funcs->stencilMaskSeparate = (type_glStencilMaskSeparate)
+ context->getProcAddress(QLatin1String("glStencilMaskSeparateEXT"));
+ }
+ if (!funcs->stencilMaskSeparate) {
+ funcs->stencilMaskSeparate = (type_glStencilMaskSeparate)
+ context->getProcAddress(QLatin1String("glStencilMaskSeparateARB"));
+ }
+
+ if (funcs->stencilMaskSeparate)
+ funcs->stencilMaskSeparate(face, mask);
+ else
+ funcs->stencilMaskSeparate = qglfResolveStencilMaskSeparate;
+}
+
+static void qglfResolveStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ typedef void (QGLF_APIENTRYP type_glStencilOpSeparate)(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->stencilOpSeparate = (type_glStencilOpSeparate)
+ context->getProcAddress(QLatin1String("glStencilOpSeparate"));
+#ifdef QT_OPENGL_ES
+ if (!funcs->stencilOpSeparate) {
+ funcs->stencilOpSeparate = (type_glStencilOpSeparate)
+ context->getProcAddress(QLatin1String("glStencilOpSeparateOES"));
+ }
+#endif
+ if (!funcs->stencilOpSeparate) {
+ funcs->stencilOpSeparate = (type_glStencilOpSeparate)
+ context->getProcAddress(QLatin1String("glStencilOpSeparateEXT"));
+ }
+ if (!funcs->stencilOpSeparate) {
+ funcs->stencilOpSeparate = (type_glStencilOpSeparate)
+ context->getProcAddress(QLatin1String("glStencilOpSeparateARB"));
+ }
+
+ if (funcs->stencilOpSeparate)
+ funcs->stencilOpSeparate(face, fail, zfail, zpass);
+ else
+ funcs->stencilOpSeparate = qglfResolveStencilOpSeparate;
+}
+
+static void qglfResolveUniform1f(GLint location, GLfloat x)
+{
+ typedef void (QGLF_APIENTRYP type_glUniform1f)(GLint location, GLfloat x);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniform1f = (type_glUniform1f)
+ context->getProcAddress(QLatin1String("glUniform1f"));
+ if (!funcs->uniform1f) {
+ funcs->uniform1f = (type_glUniform1f)
+ context->getProcAddress(QLatin1String("glUniform1fARB"));
+ }
+
+ if (funcs->uniform1f)
+ funcs->uniform1f(location, x);
+ else
+ funcs->uniform1f = qglfResolveUniform1f;
+}
+
+static void qglfResolveUniform1fv(GLint location, GLsizei count, const GLfloat* v)
+{
+ typedef void (QGLF_APIENTRYP type_glUniform1fv)(GLint location, GLsizei count, const GLfloat* v);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniform1fv = (type_glUniform1fv)
+ context->getProcAddress(QLatin1String("glUniform1fv"));
+ if (!funcs->uniform1fv) {
+ funcs->uniform1fv = (type_glUniform1fv)
+ context->getProcAddress(QLatin1String("glUniform1fvARB"));
+ }
+
+ if (funcs->uniform1fv)
+ funcs->uniform1fv(location, count, v);
+ else
+ funcs->uniform1fv = qglfResolveUniform1fv;
+}
+
+static void qglfResolveUniform1i(GLint location, GLint x)
+{
+ typedef void (QGLF_APIENTRYP type_glUniform1i)(GLint location, GLint x);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniform1i = (type_glUniform1i)
+ context->getProcAddress(QLatin1String("glUniform1i"));
+ if (!funcs->uniform1i) {
+ funcs->uniform1i = (type_glUniform1i)
+ context->getProcAddress(QLatin1String("glUniform1iARB"));
+ }
+
+ if (funcs->uniform1i)
+ funcs->uniform1i(location, x);
+ else
+ funcs->uniform1i = qglfResolveUniform1i;
+}
+
+static void qglfResolveUniform1iv(GLint location, GLsizei count, const GLint* v)
+{
+ typedef void (QGLF_APIENTRYP type_glUniform1iv)(GLint location, GLsizei count, const GLint* v);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniform1iv = (type_glUniform1iv)
+ context->getProcAddress(QLatin1String("glUniform1iv"));
+ if (!funcs->uniform1iv) {
+ funcs->uniform1iv = (type_glUniform1iv)
+ context->getProcAddress(QLatin1String("glUniform1ivARB"));
+ }
+
+ if (funcs->uniform1iv)
+ funcs->uniform1iv(location, count, v);
+ else
+ funcs->uniform1iv = qglfResolveUniform1iv;
+}
+
+static void qglfResolveUniform2f(GLint location, GLfloat x, GLfloat y)
+{
+ typedef void (QGLF_APIENTRYP type_glUniform2f)(GLint location, GLfloat x, GLfloat y);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniform2f = (type_glUniform2f)
+ context->getProcAddress(QLatin1String("glUniform2f"));
+ if (!funcs->uniform2f) {
+ funcs->uniform2f = (type_glUniform2f)
+ context->getProcAddress(QLatin1String("glUniform2fARB"));
+ }
+
+ if (funcs->uniform2f)
+ funcs->uniform2f(location, x, y);
+ else
+ funcs->uniform2f = qglfResolveUniform2f;
+}
+
+static void qglfResolveUniform2fv(GLint location, GLsizei count, const GLfloat* v)
+{
+ typedef void (QGLF_APIENTRYP type_glUniform2fv)(GLint location, GLsizei count, const GLfloat* v);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniform2fv = (type_glUniform2fv)
+ context->getProcAddress(QLatin1String("glUniform2fv"));
+ if (!funcs->uniform2fv) {
+ funcs->uniform2fv = (type_glUniform2fv)
+ context->getProcAddress(QLatin1String("glUniform2fvARB"));
+ }
+
+ if (funcs->uniform2fv)
+ funcs->uniform2fv(location, count, v);
+ else
+ funcs->uniform2fv = qglfResolveUniform2fv;
+}
+
+static void qglfResolveUniform2i(GLint location, GLint x, GLint y)
+{
+ typedef void (QGLF_APIENTRYP type_glUniform2i)(GLint location, GLint x, GLint y);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniform2i = (type_glUniform2i)
+ context->getProcAddress(QLatin1String("glUniform2i"));
+ if (!funcs->uniform2i) {
+ funcs->uniform2i = (type_glUniform2i)
+ context->getProcAddress(QLatin1String("glUniform2iARB"));
+ }
+
+ if (funcs->uniform2i)
+ funcs->uniform2i(location, x, y);
+ else
+ funcs->uniform2i = qglfResolveUniform2i;
+}
+
+static void qglfResolveUniform2iv(GLint location, GLsizei count, const GLint* v)
+{
+ typedef void (QGLF_APIENTRYP type_glUniform2iv)(GLint location, GLsizei count, const GLint* v);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniform2iv = (type_glUniform2iv)
+ context->getProcAddress(QLatin1String("glUniform2iv"));
+ if (!funcs->uniform2iv) {
+ funcs->uniform2iv = (type_glUniform2iv)
+ context->getProcAddress(QLatin1String("glUniform2ivARB"));
+ }
+
+ if (funcs->uniform2iv)
+ funcs->uniform2iv(location, count, v);
+ else
+ funcs->uniform2iv = qglfResolveUniform2iv;
+}
+
+static void qglfResolveUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z)
+{
+ typedef void (QGLF_APIENTRYP type_glUniform3f)(GLint location, GLfloat x, GLfloat y, GLfloat z);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniform3f = (type_glUniform3f)
+ context->getProcAddress(QLatin1String("glUniform3f"));
+ if (!funcs->uniform3f) {
+ funcs->uniform3f = (type_glUniform3f)
+ context->getProcAddress(QLatin1String("glUniform3fARB"));
+ }
+
+ if (funcs->uniform3f)
+ funcs->uniform3f(location, x, y, z);
+ else
+ funcs->uniform3f = qglfResolveUniform3f;
+}
+
+static void qglfResolveUniform3fv(GLint location, GLsizei count, const GLfloat* v)
+{
+ typedef void (QGLF_APIENTRYP type_glUniform3fv)(GLint location, GLsizei count, const GLfloat* v);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniform3fv = (type_glUniform3fv)
+ context->getProcAddress(QLatin1String("glUniform3fv"));
+ if (!funcs->uniform3fv) {
+ funcs->uniform3fv = (type_glUniform3fv)
+ context->getProcAddress(QLatin1String("glUniform3fvARB"));
+ }
+
+ if (funcs->uniform3fv)
+ funcs->uniform3fv(location, count, v);
+ else
+ funcs->uniform3fv = qglfResolveUniform3fv;
+}
+
+static void qglfResolveUniform3i(GLint location, GLint x, GLint y, GLint z)
+{
+ typedef void (QGLF_APIENTRYP type_glUniform3i)(GLint location, GLint x, GLint y, GLint z);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniform3i = (type_glUniform3i)
+ context->getProcAddress(QLatin1String("glUniform3i"));
+ if (!funcs->uniform3i) {
+ funcs->uniform3i = (type_glUniform3i)
+ context->getProcAddress(QLatin1String("glUniform3iARB"));
+ }
+
+ if (funcs->uniform3i)
+ funcs->uniform3i(location, x, y, z);
+ else
+ funcs->uniform3i = qglfResolveUniform3i;
+}
+
+static void qglfResolveUniform3iv(GLint location, GLsizei count, const GLint* v)
+{
+ typedef void (QGLF_APIENTRYP type_glUniform3iv)(GLint location, GLsizei count, const GLint* v);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniform3iv = (type_glUniform3iv)
+ context->getProcAddress(QLatin1String("glUniform3iv"));
+ if (!funcs->uniform3iv) {
+ funcs->uniform3iv = (type_glUniform3iv)
+ context->getProcAddress(QLatin1String("glUniform3ivARB"));
+ }
+
+ if (funcs->uniform3iv)
+ funcs->uniform3iv(location, count, v);
+ else
+ funcs->uniform3iv = qglfResolveUniform3iv;
+}
+
+static void qglfResolveUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ typedef void (QGLF_APIENTRYP type_glUniform4f)(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniform4f = (type_glUniform4f)
+ context->getProcAddress(QLatin1String("glUniform4f"));
+ if (!funcs->uniform4f) {
+ funcs->uniform4f = (type_glUniform4f)
+ context->getProcAddress(QLatin1String("glUniform4fARB"));
+ }
+
+ if (funcs->uniform4f)
+ funcs->uniform4f(location, x, y, z, w);
+ else
+ funcs->uniform4f = qglfResolveUniform4f;
+}
+
+static void qglfResolveUniform4fv(GLint location, GLsizei count, const GLfloat* v)
+{
+ typedef void (QGLF_APIENTRYP type_glUniform4fv)(GLint location, GLsizei count, const GLfloat* v);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniform4fv = (type_glUniform4fv)
+ context->getProcAddress(QLatin1String("glUniform4fv"));
+ if (!funcs->uniform4fv) {
+ funcs->uniform4fv = (type_glUniform4fv)
+ context->getProcAddress(QLatin1String("glUniform4fvARB"));
+ }
+
+ if (funcs->uniform4fv)
+ funcs->uniform4fv(location, count, v);
+ else
+ funcs->uniform4fv = qglfResolveUniform4fv;
+}
+
+static void qglfResolveUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w)
+{
+ typedef void (QGLF_APIENTRYP type_glUniform4i)(GLint location, GLint x, GLint y, GLint z, GLint w);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniform4i = (type_glUniform4i)
+ context->getProcAddress(QLatin1String("glUniform4i"));
+ if (!funcs->uniform4i) {
+ funcs->uniform4i = (type_glUniform4i)
+ context->getProcAddress(QLatin1String("glUniform4iARB"));
+ }
+
+ if (funcs->uniform4i)
+ funcs->uniform4i(location, x, y, z, w);
+ else
+ funcs->uniform4i = qglfResolveUniform4i;
+}
+
+static void qglfResolveUniform4iv(GLint location, GLsizei count, const GLint* v)
+{
+ typedef void (QGLF_APIENTRYP type_glUniform4iv)(GLint location, GLsizei count, const GLint* v);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniform4iv = (type_glUniform4iv)
+ context->getProcAddress(QLatin1String("glUniform4iv"));
+ if (!funcs->uniform4iv) {
+ funcs->uniform4iv = (type_glUniform4iv)
+ context->getProcAddress(QLatin1String("glUniform4ivARB"));
+ }
+
+ if (funcs->uniform4iv)
+ funcs->uniform4iv(location, count, v);
+ else
+ funcs->uniform4iv = qglfResolveUniform4iv;
+}
+
+static void qglfResolveUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ typedef void (QGLF_APIENTRYP type_glUniformMatrix2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniformMatrix2fv = (type_glUniformMatrix2fv)
+ context->getProcAddress(QLatin1String("glUniformMatrix2fv"));
+ if (!funcs->uniformMatrix2fv) {
+ funcs->uniformMatrix2fv = (type_glUniformMatrix2fv)
+ context->getProcAddress(QLatin1String("glUniformMatrix2fvARB"));
+ }
+
+ if (funcs->uniformMatrix2fv)
+ funcs->uniformMatrix2fv(location, count, transpose, value);
+ else
+ funcs->uniformMatrix2fv = qglfResolveUniformMatrix2fv;
+}
+
+static void qglfResolveUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ typedef void (QGLF_APIENTRYP type_glUniformMatrix3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniformMatrix3fv = (type_glUniformMatrix3fv)
+ context->getProcAddress(QLatin1String("glUniformMatrix3fv"));
+ if (!funcs->uniformMatrix3fv) {
+ funcs->uniformMatrix3fv = (type_glUniformMatrix3fv)
+ context->getProcAddress(QLatin1String("glUniformMatrix3fvARB"));
+ }
+
+ if (funcs->uniformMatrix3fv)
+ funcs->uniformMatrix3fv(location, count, transpose, value);
+ else
+ funcs->uniformMatrix3fv = qglfResolveUniformMatrix3fv;
+}
+
+static void qglfResolveUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ typedef void (QGLF_APIENTRYP type_glUniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->uniformMatrix4fv = (type_glUniformMatrix4fv)
+ context->getProcAddress(QLatin1String("glUniformMatrix4fv"));
+ if (!funcs->uniformMatrix4fv) {
+ funcs->uniformMatrix4fv = (type_glUniformMatrix4fv)
+ context->getProcAddress(QLatin1String("glUniformMatrix4fvARB"));
+ }
+
+ if (funcs->uniformMatrix4fv)
+ funcs->uniformMatrix4fv(location, count, transpose, value);
+ else
+ funcs->uniformMatrix4fv = qglfResolveUniformMatrix4fv;
+}
+
+static void qglfResolveUseProgram(GLuint program)
+{
+ typedef void (QGLF_APIENTRYP type_glUseProgram)(GLuint program);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->useProgram = (type_glUseProgram)
+ context->getProcAddress(QLatin1String("glUseProgram"));
+ if (!funcs->useProgram) {
+ funcs->useProgram = (type_glUseProgram)
+ context->getProcAddress(QLatin1String("glUseProgramObjectARB"));
+ }
+
+ if (funcs->useProgram)
+ funcs->useProgram(program);
+ else
+ funcs->useProgram = qglfResolveUseProgram;
+}
+
+static void qglfResolveValidateProgram(GLuint program)
+{
+ typedef void (QGLF_APIENTRYP type_glValidateProgram)(GLuint program);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->validateProgram = (type_glValidateProgram)
+ context->getProcAddress(QLatin1String("glValidateProgram"));
+ if (!funcs->validateProgram) {
+ funcs->validateProgram = (type_glValidateProgram)
+ context->getProcAddress(QLatin1String("glValidateProgramARB"));
+ }
+
+ if (funcs->validateProgram)
+ funcs->validateProgram(program);
+ else
+ funcs->validateProgram = qglfResolveValidateProgram;
+}
+
+static void qglfResolveVertexAttrib1f(GLuint indx, GLfloat x)
+{
+ typedef void (QGLF_APIENTRYP type_glVertexAttrib1f)(GLuint indx, GLfloat x);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->vertexAttrib1f = (type_glVertexAttrib1f)
+ context->getProcAddress(QLatin1String("glVertexAttrib1f"));
+ if (!funcs->vertexAttrib1f) {
+ funcs->vertexAttrib1f = (type_glVertexAttrib1f)
+ context->getProcAddress(QLatin1String("glVertexAttrib1fARB"));
+ }
+
+ if (funcs->vertexAttrib1f)
+ funcs->vertexAttrib1f(indx, x);
+ else
+ funcs->vertexAttrib1f = qglfResolveVertexAttrib1f;
+}
+
+static void qglfResolveVertexAttrib1fv(GLuint indx, const GLfloat* values)
+{
+ typedef void (QGLF_APIENTRYP type_glVertexAttrib1fv)(GLuint indx, const GLfloat* values);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->vertexAttrib1fv = (type_glVertexAttrib1fv)
+ context->getProcAddress(QLatin1String("glVertexAttrib1fv"));
+ if (!funcs->vertexAttrib1fv) {
+ funcs->vertexAttrib1fv = (type_glVertexAttrib1fv)
+ context->getProcAddress(QLatin1String("glVertexAttrib1fvARB"));
+ }
+
+ if (funcs->vertexAttrib1fv)
+ funcs->vertexAttrib1fv(indx, values);
+ else
+ funcs->vertexAttrib1fv = qglfResolveVertexAttrib1fv;
+}
+
+static void qglfResolveVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y)
+{
+ typedef void (QGLF_APIENTRYP type_glVertexAttrib2f)(GLuint indx, GLfloat x, GLfloat y);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->vertexAttrib2f = (type_glVertexAttrib2f)
+ context->getProcAddress(QLatin1String("glVertexAttrib2f"));
+ if (!funcs->vertexAttrib2f) {
+ funcs->vertexAttrib2f = (type_glVertexAttrib2f)
+ context->getProcAddress(QLatin1String("glVertexAttrib2fARB"));
+ }
+
+ if (funcs->vertexAttrib2f)
+ funcs->vertexAttrib2f(indx, x, y);
+ else
+ funcs->vertexAttrib2f = qglfResolveVertexAttrib2f;
+}
+
+static void qglfResolveVertexAttrib2fv(GLuint indx, const GLfloat* values)
+{
+ typedef void (QGLF_APIENTRYP type_glVertexAttrib2fv)(GLuint indx, const GLfloat* values);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->vertexAttrib2fv = (type_glVertexAttrib2fv)
+ context->getProcAddress(QLatin1String("glVertexAttrib2fv"));
+ if (!funcs->vertexAttrib2fv) {
+ funcs->vertexAttrib2fv = (type_glVertexAttrib2fv)
+ context->getProcAddress(QLatin1String("glVertexAttrib2fvARB"));
+ }
+
+ if (funcs->vertexAttrib2fv)
+ funcs->vertexAttrib2fv(indx, values);
+ else
+ funcs->vertexAttrib2fv = qglfResolveVertexAttrib2fv;
+}
+
+static void qglfResolveVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z)
+{
+ typedef void (QGLF_APIENTRYP type_glVertexAttrib3f)(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->vertexAttrib3f = (type_glVertexAttrib3f)
+ context->getProcAddress(QLatin1String("glVertexAttrib3f"));
+ if (!funcs->vertexAttrib3f) {
+ funcs->vertexAttrib3f = (type_glVertexAttrib3f)
+ context->getProcAddress(QLatin1String("glVertexAttrib3fARB"));
+ }
+
+ if (funcs->vertexAttrib3f)
+ funcs->vertexAttrib3f(indx, x, y, z);
+ else
+ funcs->vertexAttrib3f = qglfResolveVertexAttrib3f;
+}
+
+static void qglfResolveVertexAttrib3fv(GLuint indx, const GLfloat* values)
+{
+ typedef void (QGLF_APIENTRYP type_glVertexAttrib3fv)(GLuint indx, const GLfloat* values);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->vertexAttrib3fv = (type_glVertexAttrib3fv)
+ context->getProcAddress(QLatin1String("glVertexAttrib3fv"));
+ if (!funcs->vertexAttrib3fv) {
+ funcs->vertexAttrib3fv = (type_glVertexAttrib3fv)
+ context->getProcAddress(QLatin1String("glVertexAttrib3fvARB"));
+ }
+
+ if (funcs->vertexAttrib3fv)
+ funcs->vertexAttrib3fv(indx, values);
+ else
+ funcs->vertexAttrib3fv = qglfResolveVertexAttrib3fv;
+}
+
+static void qglfResolveVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ typedef void (QGLF_APIENTRYP type_glVertexAttrib4f)(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->vertexAttrib4f = (type_glVertexAttrib4f)
+ context->getProcAddress(QLatin1String("glVertexAttrib4f"));
+ if (!funcs->vertexAttrib4f) {
+ funcs->vertexAttrib4f = (type_glVertexAttrib4f)
+ context->getProcAddress(QLatin1String("glVertexAttrib4fARB"));
+ }
+
+ if (funcs->vertexAttrib4f)
+ funcs->vertexAttrib4f(indx, x, y, z, w);
+ else
+ funcs->vertexAttrib4f = qglfResolveVertexAttrib4f;
+}
+
+static void qglfResolveVertexAttrib4fv(GLuint indx, const GLfloat* values)
+{
+ typedef void (QGLF_APIENTRYP type_glVertexAttrib4fv)(GLuint indx, const GLfloat* values);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->vertexAttrib4fv = (type_glVertexAttrib4fv)
+ context->getProcAddress(QLatin1String("glVertexAttrib4fv"));
+ if (!funcs->vertexAttrib4fv) {
+ funcs->vertexAttrib4fv = (type_glVertexAttrib4fv)
+ context->getProcAddress(QLatin1String("glVertexAttrib4fvARB"));
+ }
+
+ if (funcs->vertexAttrib4fv)
+ funcs->vertexAttrib4fv(indx, values);
+ else
+ funcs->vertexAttrib4fv = qglfResolveVertexAttrib4fv;
+}
+
+static void qglfResolveVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr)
+{
+ typedef void (QGLF_APIENTRYP type_glVertexAttribPointer)(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr);
+
+ const QGLContext *context = QGLContext::currentContext();
+ QGLFunctionsPrivate *funcs = qt_gl_functions(context);
+
+ funcs->vertexAttribPointer = (type_glVertexAttribPointer)
+ context->getProcAddress(QLatin1String("glVertexAttribPointer"));
+ if (!funcs->vertexAttribPointer) {
+ funcs->vertexAttribPointer = (type_glVertexAttribPointer)
+ context->getProcAddress(QLatin1String("glVertexAttribPointerARB"));
+ }
+
+ if (funcs->vertexAttribPointer)
+ funcs->vertexAttribPointer(indx, size, type, normalized, stride, ptr);
+ else
+ funcs->vertexAttribPointer = qglfResolveVertexAttribPointer;
+}
+
+#endif // !QT_OPENGL_ES_2
+
+QGLFunctionsPrivate::QGLFunctionsPrivate(const QGLContext *)
+{
+#ifndef QT_OPENGL_ES_2
+ activeTexture = qglfResolveActiveTexture;
+ attachShader = qglfResolveAttachShader;
+ bindAttribLocation = qglfResolveBindAttribLocation;
+ bindBuffer = qglfResolveBindBuffer;
+ bindFramebuffer = qglfResolveBindFramebuffer;
+ bindRenderbuffer = qglfResolveBindRenderbuffer;
+ blendColor = qglfResolveBlendColor;
+ blendEquation = qglfResolveBlendEquation;
+ blendEquationSeparate = qglfResolveBlendEquationSeparate;
+ blendFuncSeparate = qglfResolveBlendFuncSeparate;
+ bufferData = qglfResolveBufferData;
+ bufferSubData = qglfResolveBufferSubData;
+ checkFramebufferStatus = qglfResolveCheckFramebufferStatus;
+ compileShader = qglfResolveCompileShader;
+ compressedTexImage2D = qglfResolveCompressedTexImage2D;
+ compressedTexSubImage2D = qglfResolveCompressedTexSubImage2D;
+ createProgram = qglfResolveCreateProgram;
+ createShader = qglfResolveCreateShader;
+ deleteBuffers = qglfResolveDeleteBuffers;
+ deleteFramebuffers = qglfResolveDeleteFramebuffers;
+ deleteProgram = qglfResolveDeleteProgram;
+ deleteRenderbuffers = qglfResolveDeleteRenderbuffers;
+ deleteShader = qglfResolveDeleteShader;
+ detachShader = qglfResolveDetachShader;
+ disableVertexAttribArray = qglfResolveDisableVertexAttribArray;
+ enableVertexAttribArray = qglfResolveEnableVertexAttribArray;
+ framebufferRenderbuffer = qglfResolveFramebufferRenderbuffer;
+ framebufferTexture2D = qglfResolveFramebufferTexture2D;
+ genBuffers = qglfResolveGenBuffers;
+ generateMipmap = qglfResolveGenerateMipmap;
+ genFramebuffers = qglfResolveGenFramebuffers;
+ genRenderbuffers = qglfResolveGenRenderbuffers;
+ getActiveAttrib = qglfResolveGetActiveAttrib;
+ getActiveUniform = qglfResolveGetActiveUniform;
+ getAttachedShaders = qglfResolveGetAttachedShaders;
+ getAttribLocation = qglfResolveGetAttribLocation;
+ getBufferParameteriv = qglfResolveGetBufferParameteriv;
+ getFramebufferAttachmentParameteriv = qglfResolveGetFramebufferAttachmentParameteriv;
+ getProgramiv = qglfResolveGetProgramiv;
+ getProgramInfoLog = qglfResolveGetProgramInfoLog;
+ getRenderbufferParameteriv = qglfResolveGetRenderbufferParameteriv;
+ getShaderiv = qglfResolveGetShaderiv;
+ getShaderInfoLog = qglfResolveGetShaderInfoLog;
+ getShaderPrecisionFormat = qglfResolveGetShaderPrecisionFormat;
+ getShaderSource = qglfResolveGetShaderSource;
+ getUniformfv = qglfResolveGetUniformfv;
+ getUniformiv = qglfResolveGetUniformiv;
+ getUniformLocation = qglfResolveGetUniformLocation;
+ getVertexAttribfv = qglfResolveGetVertexAttribfv;
+ getVertexAttribiv = qglfResolveGetVertexAttribiv;
+ getVertexAttribPointerv = qglfResolveGetVertexAttribPointerv;
+ isBuffer = qglfResolveIsBuffer;
+ isFramebuffer = qglfResolveIsFramebuffer;
+ isProgram = qglfResolveIsProgram;
+ isRenderbuffer = qglfResolveIsRenderbuffer;
+ isShader = qglfResolveIsShader;
+ linkProgram = qglfResolveLinkProgram;
+ releaseShaderCompiler = qglfResolveReleaseShaderCompiler;
+ renderbufferStorage = qglfResolveRenderbufferStorage;
+ sampleCoverage = qglfResolveSampleCoverage;
+ shaderBinary = qglfResolveShaderBinary;
+ shaderSource = qglfResolveShaderSource;
+ stencilFuncSeparate = qglfResolveStencilFuncSeparate;
+ stencilMaskSeparate = qglfResolveStencilMaskSeparate;
+ stencilOpSeparate = qglfResolveStencilOpSeparate;
+ uniform1f = qglfResolveUniform1f;
+ uniform1fv = qglfResolveUniform1fv;
+ uniform1i = qglfResolveUniform1i;
+ uniform1iv = qglfResolveUniform1iv;
+ uniform2f = qglfResolveUniform2f;
+ uniform2fv = qglfResolveUniform2fv;
+ uniform2i = qglfResolveUniform2i;
+ uniform2iv = qglfResolveUniform2iv;
+ uniform3f = qglfResolveUniform3f;
+ uniform3fv = qglfResolveUniform3fv;
+ uniform3i = qglfResolveUniform3i;
+ uniform3iv = qglfResolveUniform3iv;
+ uniform4f = qglfResolveUniform4f;
+ uniform4fv = qglfResolveUniform4fv;
+ uniform4i = qglfResolveUniform4i;
+ uniform4iv = qglfResolveUniform4iv;
+ uniformMatrix2fv = qglfResolveUniformMatrix2fv;
+ uniformMatrix3fv = qglfResolveUniformMatrix3fv;
+ uniformMatrix4fv = qglfResolveUniformMatrix4fv;
+ useProgram = qglfResolveUseProgram;
+ validateProgram = qglfResolveValidateProgram;
+ vertexAttrib1f = qglfResolveVertexAttrib1f;
+ vertexAttrib1fv = qglfResolveVertexAttrib1fv;
+ vertexAttrib2f = qglfResolveVertexAttrib2f;
+ vertexAttrib2fv = qglfResolveVertexAttrib2fv;
+ vertexAttrib3f = qglfResolveVertexAttrib3f;
+ vertexAttrib3fv = qglfResolveVertexAttrib3fv;
+ vertexAttrib4f = qglfResolveVertexAttrib4f;
+ vertexAttrib4fv = qglfResolveVertexAttrib4fv;
+ vertexAttribPointer = qglfResolveVertexAttribPointer;
+#endif // !QT_OPENGL_ES_2
+}
+
+QT_END_NAMESPACE
diff --git a/src/opengl/qglfunctions.h b/src/opengl/qglfunctions.h
new file mode 100644
index 0000000..e06de7f
--- /dev/null
+++ b/src/opengl/qglfunctions.h
@@ -0,0 +1,2290 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtOpenGL module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QGLFUNCTIONS_H
+#define QGLFUNCTIONS_H
+
+#include <QtOpenGL/qgl.h>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(OpenGL)
+
+// Types that aren't defined in all system's gl.h files.
+typedef ptrdiff_t qgl_GLintptr;
+typedef ptrdiff_t qgl_GLsizeiptr;
+
+#ifndef Q_WS_MAC
+# ifndef QGLF_APIENTRYP
+# ifdef QGLF_APIENTRY
+# define QGLF_APIENTRYP QGLF_APIENTRY *
+# else
+# define QGLF_APIENTRY
+# define QGLF_APIENTRYP *
+# endif
+# endif
+#else
+# define QGLF_APIENTRY
+# define QGLF_APIENTRYP *
+#endif
+
+struct QGLFunctionsPrivate;
+
+// Undefine any macros from GLEW, qglextensions_p.h, etc that
+// may interfere with the definition of QGLFunctions.
+#undef glActiveTexture
+#undef glAttachShader
+#undef glBindAttribLocation
+#undef glBindBuffer
+#undef glBindFramebuffer
+#undef glBindRenderbuffer
+#undef glBlendColor
+#undef glBlendEquation
+#undef glBlendEquationSeparate
+#undef glBlendFuncSeparate
+#undef glBufferData
+#undef glBufferSubData
+#undef glCheckFramebufferStatus
+#undef glClearDepthf
+#undef glCompileShader
+#undef glCompressedTexImage2D
+#undef glCompressedTexSubImage2D
+#undef glCreateProgram
+#undef glCreateShader
+#undef glDeleteBuffers
+#undef glDeleteFramebuffers
+#undef glDeleteProgram
+#undef glDeleteRenderbuffers
+#undef glDeleteShader
+#undef glDepthRangef
+#undef glDetachShader
+#undef glDisableVertexAttribArray
+#undef glEnableVertexAttribArray
+#undef glFramebufferRenderbuffer
+#undef glFramebufferTexture2D
+#undef glGenBuffers
+#undef glGenerateMipmap
+#undef glGenFramebuffers
+#undef glGenRenderbuffers
+#undef glGetActiveAttrib
+#undef glGetActiveUniform
+#undef glGetAttachedShaders
+#undef glGetAttribLocation
+#undef glGetBufferParameteriv
+#undef glGetFramebufferAttachmentParameteriv
+#undef glGetProgramiv
+#undef glGetProgramInfoLog
+#undef glGetRenderbufferParameteriv
+#undef glGetShaderiv
+#undef glGetShaderInfoLog
+#undef glGetShaderPrecisionFormat
+#undef glGetShaderSource
+#undef glGetUniformfv
+#undef glGetUniformiv
+#undef glGetUniformLocation
+#undef glGetVertexAttribfv
+#undef glGetVertexAttribiv
+#undef glGetVertexAttribPointerv
+#undef glIsBuffer
+#undef glIsFramebuffer
+#undef glIsProgram
+#undef glIsRenderbuffer
+#undef glIsShader
+#undef glLinkProgram
+#undef glReleaseShaderCompiler
+#undef glRenderbufferStorage
+#undef glSampleCoverage
+#undef glShaderBinary
+#undef glShaderSource
+#undef glStencilFuncSeparate
+#undef glStencilMaskSeparate
+#undef glStencilOpSeparate
+#undef glUniform1f
+#undef glUniform1fv
+#undef glUniform1i
+#undef glUniform1iv
+#undef glUniform2f
+#undef glUniform2fv
+#undef glUniform2i
+#undef glUniform2iv
+#undef glUniform3f
+#undef glUniform3fv
+#undef glUniform3i
+#undef glUniform3iv
+#undef glUniform4f
+#undef glUniform4fv
+#undef glUniform4i
+#undef glUniform4iv
+#undef glUniformMatrix2fv
+#undef glUniformMatrix3fv
+#undef glUniformMatrix4fv
+#undef glUseProgram
+#undef glValidateProgram
+#undef glVertexAttrib1f
+#undef glVertexAttrib1fv
+#undef glVertexAttrib2f
+#undef glVertexAttrib2fv
+#undef glVertexAttrib3f
+#undef glVertexAttrib3fv
+#undef glVertexAttrib4f
+#undef glVertexAttrib4fv
+#undef glVertexAttribPointer
+
+class Q_OPENGL_EXPORT QGLFunctions
+{
+public:
+ QGLFunctions();
+ explicit QGLFunctions(const QGLContext *context);
+ ~QGLFunctions() {}
+
+ enum OpenGLFeature
+ {
+ Multitexture = 0x0001,
+ Shaders = 0x0002,
+ Buffers = 0x0004,
+ Framebuffers = 0x0008,
+ BlendColor = 0x0010,
+ BlendEquation = 0x0020,
+ BlendEquationSeparate = 0x0040,
+ BlendFuncSeparate = 0x0080,
+ BlendSubtract = 0x0100,
+ CompressedTextures = 0x0200,
+ Multisample = 0x0400,
+ StencilSeparate = 0x0800,
+ NPOTTextures = 0x1000
+ };
+ Q_DECLARE_FLAGS(OpenGLFeatures, OpenGLFeature)
+
+ QGLFunctions::OpenGLFeatures openGLFeatures() const;
+ bool hasOpenGLFeature(QGLFunctions::OpenGLFeature feature) const;
+
+ void initializeGLFunctions(const QGLContext *context = 0);
+
+ void glActiveTexture(GLenum texture);
+ void glAttachShader(GLuint program, GLuint shader);
+ void glBindAttribLocation(GLuint program, GLuint index, const char* name);
+ void glBindBuffer(GLenum target, GLuint buffer);
+ void glBindFramebuffer(GLenum target, GLuint framebuffer);
+ void glBindRenderbuffer(GLenum target, GLuint renderbuffer);
+ void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+ void glBlendEquation(GLenum mode);
+ void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
+ void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+ void glBufferData(GLenum target, qgl_GLsizeiptr size, const void* data, GLenum usage);
+ void glBufferSubData(GLenum target, qgl_GLintptr offset, qgl_GLsizeiptr size, const void* data);
+ GLenum glCheckFramebufferStatus(GLenum target);
+ void glClearDepthf(GLclampf depth);
+ void glCompileShader(GLuint shader);
+ void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data);
+ void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data);
+ GLuint glCreateProgram();
+ GLuint glCreateShader(GLenum type);
+ void glDeleteBuffers(GLsizei n, const GLuint* buffers);
+ void glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers);
+ void glDeleteProgram(GLuint program);
+ void glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers);
+ void glDeleteShader(GLuint shader);
+ void glDepthRangef(GLclampf zNear, GLclampf zFar);
+ void glDetachShader(GLuint program, GLuint shader);
+ void glDisableVertexAttribArray(GLuint index);
+ void glEnableVertexAttribArray(GLuint index);
+ void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+ void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+ void glGenBuffers(GLsizei n, GLuint* buffers);
+ void glGenerateMipmap(GLenum target);
+ void glGenFramebuffers(GLsizei n, GLuint* framebuffers);
+ void glGenRenderbuffers(GLsizei n, GLuint* renderbuffers);
+ void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name);
+ void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name);
+ void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
+ int glGetAttribLocation(GLuint program, const char* name);
+ void glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params);
+ void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params);
+ void glGetProgramiv(GLuint program, GLenum pname, GLint* params);
+ void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, char* infolog);
+ void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params);
+ void glGetShaderiv(GLuint shader, GLenum pname, GLint* params);
+ void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog);
+ void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
+ void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, char* source);
+ void glGetUniformfv(GLuint program, GLint location, GLfloat* params);
+ void glGetUniformiv(GLuint program, GLint location, GLint* params);
+ int glGetUniformLocation(GLuint program, const char* name);
+ void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params);
+ void glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params);
+ void glGetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer);
+ GLboolean glIsBuffer(GLuint buffer);
+ GLboolean glIsFramebuffer(GLuint framebuffer);
+ GLboolean glIsProgram(GLuint program);
+ GLboolean glIsRenderbuffer(GLuint renderbuffer);
+ GLboolean glIsShader(GLuint shader);
+ void glLinkProgram(GLuint program);
+ void glReleaseShaderCompiler();
+ void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+ void glSampleCoverage(GLclampf value, GLboolean invert);
+ void glShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length);
+ void glShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length);
+ void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
+ void glStencilMaskSeparate(GLenum face, GLuint mask);
+ void glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
+ void glUniform1f(GLint location, GLfloat x);
+ void glUniform1fv(GLint location, GLsizei count, const GLfloat* v);
+ void glUniform1i(GLint location, GLint x);
+ void glUniform1iv(GLint location, GLsizei count, const GLint* v);
+ void glUniform2f(GLint location, GLfloat x, GLfloat y);
+ void glUniform2fv(GLint location, GLsizei count, const GLfloat* v);
+ void glUniform2i(GLint location, GLint x, GLint y);
+ void glUniform2iv(GLint location, GLsizei count, const GLint* v);
+ void glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z);
+ void glUniform3fv(GLint location, GLsizei count, const GLfloat* v);
+ void glUniform3i(GLint location, GLint x, GLint y, GLint z);
+ void glUniform3iv(GLint location, GLsizei count, const GLint* v);
+ void glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+ void glUniform4fv(GLint location, GLsizei count, const GLfloat* v);
+ void glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w);
+ void glUniform4iv(GLint location, GLsizei count, const GLint* v);
+ void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+ void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+ void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+ void glUseProgram(GLuint program);
+ void glValidateProgram(GLuint program);
+ void glVertexAttrib1f(GLuint indx, GLfloat x);
+ void glVertexAttrib1fv(GLuint indx, const GLfloat* values);
+ void glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y);
+ void glVertexAttrib2fv(GLuint indx, const GLfloat* values);
+ void glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
+ void glVertexAttrib3fv(GLuint indx, const GLfloat* values);
+ void glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+ void glVertexAttrib4fv(GLuint indx, const GLfloat* values);
+ void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr);
+
+private:
+ QGLFunctionsPrivate *d_ptr;
+ static bool isInitialized(const QGLFunctionsPrivate *d) { return d != 0; }
+};
+
+Q_DECLARE_OPERATORS_FOR_FLAGS(QGLFunctions::OpenGLFeatures)
+
+struct QGLFunctionsPrivate
+{
+ QGLFunctionsPrivate(const QGLContext *context = 0);
+
+#ifndef QT_OPENGL_ES_2
+ void (QGLF_APIENTRYP activeTexture)(GLenum texture);
+ void (QGLF_APIENTRYP attachShader)(GLuint program, GLuint shader);
+ void (QGLF_APIENTRYP bindAttribLocation)(GLuint program, GLuint index, const char* name);
+ void (QGLF_APIENTRYP bindBuffer)(GLenum target, GLuint buffer);
+ void (QGLF_APIENTRYP bindFramebuffer)(GLenum target, GLuint framebuffer);
+ void (QGLF_APIENTRYP bindRenderbuffer)(GLenum target, GLuint renderbuffer);
+ void (QGLF_APIENTRYP blendColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+ void (QGLF_APIENTRYP blendEquation)(GLenum mode);
+ void (QGLF_APIENTRYP blendEquationSeparate)(GLenum modeRGB, GLenum modeAlpha);
+ void (QGLF_APIENTRYP blendFuncSeparate)(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+ void (QGLF_APIENTRYP bufferData)(GLenum target, qgl_GLsizeiptr size, const void* data, GLenum usage);
+ void (QGLF_APIENTRYP bufferSubData)(GLenum target, qgl_GLintptr offset, qgl_GLsizeiptr size, const void* data);
+ GLenum (QGLF_APIENTRYP checkFramebufferStatus)(GLenum target);
+ void (QGLF_APIENTRYP compileShader)(GLuint shader);
+ void (QGLF_APIENTRYP compressedTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data);
+ void (QGLF_APIENTRYP compressedTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data);
+ GLuint (QGLF_APIENTRYP createProgram)();
+ GLuint (QGLF_APIENTRYP createShader)(GLenum type);
+ void (QGLF_APIENTRYP deleteBuffers)(GLsizei n, const GLuint* buffers);
+ void (QGLF_APIENTRYP deleteFramebuffers)(GLsizei n, const GLuint* framebuffers);
+ void (QGLF_APIENTRYP deleteProgram)(GLuint program);
+ void (QGLF_APIENTRYP deleteRenderbuffers)(GLsizei n, const GLuint* renderbuffers);
+ void (QGLF_APIENTRYP deleteShader)(GLuint shader);
+ void (QGLF_APIENTRYP detachShader)(GLuint program, GLuint shader);
+ void (QGLF_APIENTRYP disableVertexAttribArray)(GLuint index);
+ void (QGLF_APIENTRYP enableVertexAttribArray)(GLuint index);
+ void (QGLF_APIENTRYP framebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+ void (QGLF_APIENTRYP framebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+ void (QGLF_APIENTRYP genBuffers)(GLsizei n, GLuint* buffers);
+ void (QGLF_APIENTRYP generateMipmap)(GLenum target);
+ void (QGLF_APIENTRYP genFramebuffers)(GLsizei n, GLuint* framebuffers);
+ void (QGLF_APIENTRYP genRenderbuffers)(GLsizei n, GLuint* renderbuffers);
+ void (QGLF_APIENTRYP getActiveAttrib)(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name);
+ void (QGLF_APIENTRYP getActiveUniform)(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name);
+ void (QGLF_APIENTRYP getAttachedShaders)(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
+ int (QGLF_APIENTRYP getAttribLocation)(GLuint program, const char* name);
+ void (QGLF_APIENTRYP getBufferParameteriv)(GLenum target, GLenum pname, GLint* params);
+ void (QGLF_APIENTRYP getFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint* params);
+ void (QGLF_APIENTRYP getProgramiv)(GLuint program, GLenum pname, GLint* params);
+ void (QGLF_APIENTRYP getProgramInfoLog)(GLuint program, GLsizei bufsize, GLsizei* length, char* infolog);
+ void (QGLF_APIENTRYP getRenderbufferParameteriv)(GLenum target, GLenum pname, GLint* params);
+ void (QGLF_APIENTRYP getShaderiv)(GLuint shader, GLenum pname, GLint* params);
+ void (QGLF_APIENTRYP getShaderInfoLog)(GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog);
+ void (QGLF_APIENTRYP getShaderPrecisionFormat)(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
+ void (QGLF_APIENTRYP getShaderSource)(GLuint shader, GLsizei bufsize, GLsizei* length, char* source);
+ void (QGLF_APIENTRYP getUniformfv)(GLuint program, GLint location, GLfloat* params);
+ void (QGLF_APIENTRYP getUniformiv)(GLuint program, GLint location, GLint* params);
+ int (QGLF_APIENTRYP getUniformLocation)(GLuint program, const char* name);
+ void (QGLF_APIENTRYP getVertexAttribfv)(GLuint index, GLenum pname, GLfloat* params);
+ void (QGLF_APIENTRYP getVertexAttribiv)(GLuint index, GLenum pname, GLint* params);
+ void (QGLF_APIENTRYP getVertexAttribPointerv)(GLuint index, GLenum pname, void** pointer);
+ GLboolean (QGLF_APIENTRYP isBuffer)(GLuint buffer);
+ GLboolean (QGLF_APIENTRYP isFramebuffer)(GLuint framebuffer);
+ GLboolean (QGLF_APIENTRYP isProgram)(GLuint program);
+ GLboolean (QGLF_APIENTRYP isRenderbuffer)(GLuint renderbuffer);
+ GLboolean (QGLF_APIENTRYP isShader)(GLuint shader);
+ void (QGLF_APIENTRYP linkProgram)(GLuint program);
+ void (QGLF_APIENTRYP releaseShaderCompiler)();
+ void (QGLF_APIENTRYP renderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+ void (QGLF_APIENTRYP sampleCoverage)(GLclampf value, GLboolean invert);
+ void (QGLF_APIENTRYP shaderBinary)(GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length);
+ void (QGLF_APIENTRYP shaderSource)(GLuint shader, GLsizei count, const char** string, const GLint* length);
+ void (QGLF_APIENTRYP stencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask);
+ void (QGLF_APIENTRYP stencilMaskSeparate)(GLenum face, GLuint mask);
+ void (QGLF_APIENTRYP stencilOpSeparate)(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
+ void (QGLF_APIENTRYP uniform1f)(GLint location, GLfloat x);
+ void (QGLF_APIENTRYP uniform1fv)(GLint location, GLsizei count, const GLfloat* v);
+ void (QGLF_APIENTRYP uniform1i)(GLint location, GLint x);
+ void (QGLF_APIENTRYP uniform1iv)(GLint location, GLsizei count, const GLint* v);
+ void (QGLF_APIENTRYP uniform2f)(GLint location, GLfloat x, GLfloat y);
+ void (QGLF_APIENTRYP uniform2fv)(GLint location, GLsizei count, const GLfloat* v);
+ void (QGLF_APIENTRYP uniform2i)(GLint location, GLint x, GLint y);
+ void (QGLF_APIENTRYP uniform2iv)(GLint location, GLsizei count, const GLint* v);
+ void (QGLF_APIENTRYP uniform3f)(GLint location, GLfloat x, GLfloat y, GLfloat z);
+ void (QGLF_APIENTRYP uniform3fv)(GLint location, GLsizei count, const GLfloat* v);
+ void (QGLF_APIENTRYP uniform3i)(GLint location, GLint x, GLint y, GLint z);
+ void (QGLF_APIENTRYP uniform3iv)(GLint location, GLsizei count, const GLint* v);
+ void (QGLF_APIENTRYP uniform4f)(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+ void (QGLF_APIENTRYP uniform4fv)(GLint location, GLsizei count, const GLfloat* v);
+ void (QGLF_APIENTRYP uniform4i)(GLint location, GLint x, GLint y, GLint z, GLint w);
+ void (QGLF_APIENTRYP uniform4iv)(GLint location, GLsizei count, const GLint* v);
+ void (QGLF_APIENTRYP uniformMatrix2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+ void (QGLF_APIENTRYP uniformMatrix3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+ void (QGLF_APIENTRYP uniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+ void (QGLF_APIENTRYP useProgram)(GLuint program);
+ void (QGLF_APIENTRYP validateProgram)(GLuint program);
+ void (QGLF_APIENTRYP vertexAttrib1f)(GLuint indx, GLfloat x);
+ void (QGLF_APIENTRYP vertexAttrib1fv)(GLuint indx, const GLfloat* values);
+ void (QGLF_APIENTRYP vertexAttrib2f)(GLuint indx, GLfloat x, GLfloat y);
+ void (QGLF_APIENTRYP vertexAttrib2fv)(GLuint indx, const GLfloat* values);
+ void (QGLF_APIENTRYP vertexAttrib3f)(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
+ void (QGLF_APIENTRYP vertexAttrib3fv)(GLuint indx, const GLfloat* values);
+ void (QGLF_APIENTRYP vertexAttrib4f)(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+ void (QGLF_APIENTRYP vertexAttrib4fv)(GLuint indx, const GLfloat* values);
+ void (QGLF_APIENTRYP vertexAttribPointer)(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr);
+#endif
+};
+
+inline void QGLFunctions::glActiveTexture(GLenum texture)
+{
+#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_2)
+ ::glActiveTexture(texture);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->activeTexture(texture);
+#endif
+}
+
+inline void QGLFunctions::glAttachShader(GLuint program, GLuint shader)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glAttachShader(program, shader);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->attachShader(program, shader);
+#endif
+}
+
+inline void QGLFunctions::glBindAttribLocation(GLuint program, GLuint index, const char* name)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glBindAttribLocation(program, index, name);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->bindAttribLocation(program, index, name);
+#endif
+}
+
+inline void QGLFunctions::glBindBuffer(GLenum target, GLuint buffer)
+{
+#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_2)
+ ::glBindBuffer(target, buffer);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->bindBuffer(target, buffer);
+#endif
+}
+
+inline void QGLFunctions::glBindFramebuffer(GLenum target, GLuint framebuffer)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glBindFramebuffer(target, framebuffer);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->bindFramebuffer(target, framebuffer);
+#endif
+}
+
+inline void QGLFunctions::glBindRenderbuffer(GLenum target, GLuint renderbuffer)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glBindRenderbuffer(target, renderbuffer);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->bindRenderbuffer(target, renderbuffer);
+#endif
+}
+
+inline void QGLFunctions::glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glBlendColor(red, green, blue, alpha);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->blendColor(red, green, blue, alpha);
+#endif
+}
+
+inline void QGLFunctions::glBlendEquation(GLenum mode)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glBlendEquation(mode);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->blendEquation(mode);
+#endif
+}
+
+inline void QGLFunctions::glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glBlendEquationSeparate(modeRGB, modeAlpha);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->blendEquationSeparate(modeRGB, modeAlpha);
+#endif
+}
+
+inline void QGLFunctions::glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->blendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
+#endif
+}
+
+inline void QGLFunctions::glBufferData(GLenum target, qgl_GLsizeiptr size, const void* data, GLenum usage)
+{
+#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_2)
+ ::glBufferData(target, size, data, usage);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->bufferData(target, size, data, usage);
+#endif
+}
+
+inline void QGLFunctions::glBufferSubData(GLenum target, qgl_GLintptr offset, qgl_GLsizeiptr size, const void* data)
+{
+#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_2)
+ ::glBufferSubData(target, offset, size, data);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->bufferSubData(target, offset, size, data);
+#endif
+}
+
+inline GLenum QGLFunctions::glCheckFramebufferStatus(GLenum target)
+{
+#if defined(QT_OPENGL_ES_2)
+ return ::glCheckFramebufferStatus(target);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ return d_ptr->checkFramebufferStatus(target);
+#endif
+}
+
+inline void QGLFunctions::glClearDepthf(GLclampf depth)
+{
+#ifndef QT_OPENGL_ES
+ ::glClearDepth(depth);
+#else
+ ::glClearDepthf(depth);
+#endif
+}
+
+inline void QGLFunctions::glCompileShader(GLuint shader)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glCompileShader(shader);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->compileShader(shader);
+#endif
+}
+
+inline void QGLFunctions::glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data)
+{
+#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_2)
+ ::glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->compressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
+#endif
+}
+
+inline void QGLFunctions::glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data)
+{
+#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_2)
+ ::glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+#endif
+}
+
+inline GLuint QGLFunctions::glCreateProgram()
+{
+#if defined(QT_OPENGL_ES_2)
+ return ::glCreateProgram();
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ return d_ptr->createProgram();
+#endif
+}
+
+inline GLuint QGLFunctions::glCreateShader(GLenum type)
+{
+#if defined(QT_OPENGL_ES_2)
+ return ::glCreateShader(type);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ return d_ptr->createShader(type);
+#endif
+}
+
+inline void QGLFunctions::glDeleteBuffers(GLsizei n, const GLuint* buffers)
+{
+#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_2)
+ ::glDeleteBuffers(n, buffers);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->deleteBuffers(n, buffers);
+#endif
+}
+
+inline void QGLFunctions::glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glDeleteFramebuffers(n, framebuffers);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->deleteFramebuffers(n, framebuffers);
+#endif
+}
+
+inline void QGLFunctions::glDeleteProgram(GLuint program)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glDeleteProgram(program);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->deleteProgram(program);
+#endif
+}
+
+inline void QGLFunctions::glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glDeleteRenderbuffers(n, renderbuffers);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->deleteRenderbuffers(n, renderbuffers);
+#endif
+}
+
+inline void QGLFunctions::glDeleteShader(GLuint shader)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glDeleteShader(shader);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->deleteShader(shader);
+#endif
+}
+
+inline void QGLFunctions::glDepthRangef(GLclampf zNear, GLclampf zFar)
+{
+#ifndef QT_OPENGL_ES
+ ::glDepthRange(zNear, zFar);
+#else
+ ::glDepthRangef(zNear, zFar);
+#endif
+}
+
+inline void QGLFunctions::glDetachShader(GLuint program, GLuint shader)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glDetachShader(program, shader);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->detachShader(program, shader);
+#endif
+}
+
+inline void QGLFunctions::glDisableVertexAttribArray(GLuint index)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glDisableVertexAttribArray(index);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->disableVertexAttribArray(index);
+#endif
+}
+
+inline void QGLFunctions::glEnableVertexAttribArray(GLuint index)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glEnableVertexAttribArray(index);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->enableVertexAttribArray(index);
+#endif
+}
+
+inline void QGLFunctions::glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->framebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+#endif
+}
+
+inline void QGLFunctions::glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glFramebufferTexture2D(target, attachment, textarget, texture, level);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->framebufferTexture2D(target, attachment, textarget, texture, level);
+#endif
+}
+
+inline void QGLFunctions::glGenBuffers(GLsizei n, GLuint* buffers)
+{
+#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_2)
+ ::glGenBuffers(n, buffers);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->genBuffers(n, buffers);
+#endif
+}
+
+inline void QGLFunctions::glGenerateMipmap(GLenum target)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGenerateMipmap(target);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->generateMipmap(target);
+#endif
+}
+
+inline void QGLFunctions::glGenFramebuffers(GLsizei n, GLuint* framebuffers)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGenFramebuffers(n, framebuffers);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->genFramebuffers(n, framebuffers);
+#endif
+}
+
+inline void QGLFunctions::glGenRenderbuffers(GLsizei n, GLuint* renderbuffers)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGenRenderbuffers(n, renderbuffers);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->genRenderbuffers(n, renderbuffers);
+#endif
+}
+
+inline void QGLFunctions::glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetActiveAttrib(program, index, bufsize, length, size, type, name);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getActiveAttrib(program, index, bufsize, length, size, type, name);
+#endif
+}
+
+inline void QGLFunctions::glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetActiveUniform(program, index, bufsize, length, size, type, name);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getActiveUniform(program, index, bufsize, length, size, type, name);
+#endif
+}
+
+inline void QGLFunctions::glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetAttachedShaders(program, maxcount, count, shaders);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getAttachedShaders(program, maxcount, count, shaders);
+#endif
+}
+
+inline int QGLFunctions::glGetAttribLocation(GLuint program, const char* name)
+{
+#if defined(QT_OPENGL_ES_2)
+ return ::glGetAttribLocation(program, name);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ return d_ptr->getAttribLocation(program, name);
+#endif
+}
+
+inline void QGLFunctions::glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetBufferParameteriv(target, pname, params);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getBufferParameteriv(target, pname, params);
+#endif
+}
+
+inline void QGLFunctions::glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getFramebufferAttachmentParameteriv(target, attachment, pname, params);
+#endif
+}
+
+inline void QGLFunctions::glGetProgramiv(GLuint program, GLenum pname, GLint* params)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetProgramiv(program, pname, params);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getProgramiv(program, pname, params);
+#endif
+}
+
+inline void QGLFunctions::glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, char* infolog)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetProgramInfoLog(program, bufsize, length, infolog);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getProgramInfoLog(program, bufsize, length, infolog);
+#endif
+}
+
+inline void QGLFunctions::glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetRenderbufferParameteriv(target, pname, params);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getRenderbufferParameteriv(target, pname, params);
+#endif
+}
+
+inline void QGLFunctions::glGetShaderiv(GLuint shader, GLenum pname, GLint* params)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetShaderiv(shader, pname, params);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getShaderiv(shader, pname, params);
+#endif
+}
+
+inline void QGLFunctions::glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetShaderInfoLog(shader, bufsize, length, infolog);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getShaderInfoLog(shader, bufsize, length, infolog);
+#endif
+}
+
+inline void QGLFunctions::glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getShaderPrecisionFormat(shadertype, precisiontype, range, precision);
+#endif
+}
+
+inline void QGLFunctions::glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, char* source)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetShaderSource(shader, bufsize, length, source);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getShaderSource(shader, bufsize, length, source);
+#endif
+}
+
+inline void QGLFunctions::glGetUniformfv(GLuint program, GLint location, GLfloat* params)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetUniformfv(program, location, params);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getUniformfv(program, location, params);
+#endif
+}
+
+inline void QGLFunctions::glGetUniformiv(GLuint program, GLint location, GLint* params)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetUniformiv(program, location, params);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getUniformiv(program, location, params);
+#endif
+}
+
+inline int QGLFunctions::glGetUniformLocation(GLuint program, const char* name)
+{
+#if defined(QT_OPENGL_ES_2)
+ return ::glGetUniformLocation(program, name);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ return d_ptr->getUniformLocation(program, name);
+#endif
+}
+
+inline void QGLFunctions::glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetVertexAttribfv(index, pname, params);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getVertexAttribfv(index, pname, params);
+#endif
+}
+
+inline void QGLFunctions::glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetVertexAttribiv(index, pname, params);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getVertexAttribiv(index, pname, params);
+#endif
+}
+
+inline void QGLFunctions::glGetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glGetVertexAttribPointerv(index, pname, pointer);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->getVertexAttribPointerv(index, pname, pointer);
+#endif
+}
+
+inline GLboolean QGLFunctions::glIsBuffer(GLuint buffer)
+{
+#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_2)
+ return ::glIsBuffer(buffer);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ return d_ptr->isBuffer(buffer);
+#endif
+}
+
+inline GLboolean QGLFunctions::glIsFramebuffer(GLuint framebuffer)
+{
+#if defined(QT_OPENGL_ES_2)
+ return ::glIsFramebuffer(framebuffer);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ return d_ptr->isFramebuffer(framebuffer);
+#endif
+}
+
+inline GLboolean QGLFunctions::glIsProgram(GLuint program)
+{
+#if defined(QT_OPENGL_ES_2)
+ return ::glIsProgram(program);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ return d_ptr->isProgram(program);
+#endif
+}
+
+inline GLboolean QGLFunctions::glIsRenderbuffer(GLuint renderbuffer)
+{
+#if defined(QT_OPENGL_ES_2)
+ return ::glIsRenderbuffer(renderbuffer);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ return d_ptr->isRenderbuffer(renderbuffer);
+#endif
+}
+
+inline GLboolean QGLFunctions::glIsShader(GLuint shader)
+{
+#if defined(QT_OPENGL_ES_2)
+ return ::glIsShader(shader);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ return d_ptr->isShader(shader);
+#endif
+}
+
+inline void QGLFunctions::glLinkProgram(GLuint program)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glLinkProgram(program);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->linkProgram(program);
+#endif
+}
+
+inline void QGLFunctions::glReleaseShaderCompiler()
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glReleaseShaderCompiler();
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->releaseShaderCompiler();
+#endif
+}
+
+inline void QGLFunctions::glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glRenderbufferStorage(target, internalformat, width, height);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->renderbufferStorage(target, internalformat, width, height);
+#endif
+}
+
+inline void QGLFunctions::glSampleCoverage(GLclampf value, GLboolean invert)
+{
+#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_2)
+ ::glSampleCoverage(value, invert);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->sampleCoverage(value, invert);
+#endif
+}
+
+inline void QGLFunctions::glShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glShaderBinary(n, shaders, binaryformat, binary, length);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->shaderBinary(n, shaders, binaryformat, binary, length);
+#endif
+}
+
+inline void QGLFunctions::glShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glShaderSource(shader, count, string, length);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->shaderSource(shader, count, string, length);
+#endif
+}
+
+inline void QGLFunctions::glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glStencilFuncSeparate(face, func, ref, mask);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->stencilFuncSeparate(face, func, ref, mask);
+#endif
+}
+
+inline void QGLFunctions::glStencilMaskSeparate(GLenum face, GLuint mask)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glStencilMaskSeparate(face, mask);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->stencilMaskSeparate(face, mask);
+#endif
+}
+
+inline void QGLFunctions::glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glStencilOpSeparate(face, fail, zfail, zpass);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->stencilOpSeparate(face, fail, zfail, zpass);
+#endif
+}
+
+inline void QGLFunctions::glUniform1f(GLint location, GLfloat x)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniform1f(location, x);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniform1f(location, x);
+#endif
+}
+
+inline void QGLFunctions::glUniform1fv(GLint location, GLsizei count, const GLfloat* v)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniform1fv(location, count, v);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniform1fv(location, count, v);
+#endif
+}
+
+inline void QGLFunctions::glUniform1i(GLint location, GLint x)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniform1i(location, x);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniform1i(location, x);
+#endif
+}
+
+inline void QGLFunctions::glUniform1iv(GLint location, GLsizei count, const GLint* v)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniform1iv(location, count, v);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniform1iv(location, count, v);
+#endif
+}
+
+inline void QGLFunctions::glUniform2f(GLint location, GLfloat x, GLfloat y)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniform2f(location, x, y);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniform2f(location, x, y);
+#endif
+}
+
+inline void QGLFunctions::glUniform2fv(GLint location, GLsizei count, const GLfloat* v)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniform2fv(location, count, v);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniform2fv(location, count, v);
+#endif
+}
+
+inline void QGLFunctions::glUniform2i(GLint location, GLint x, GLint y)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniform2i(location, x, y);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniform2i(location, x, y);
+#endif
+}
+
+inline void QGLFunctions::glUniform2iv(GLint location, GLsizei count, const GLint* v)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniform2iv(location, count, v);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniform2iv(location, count, v);
+#endif
+}
+
+inline void QGLFunctions::glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniform3f(location, x, y, z);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniform3f(location, x, y, z);
+#endif
+}
+
+inline void QGLFunctions::glUniform3fv(GLint location, GLsizei count, const GLfloat* v)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniform3fv(location, count, v);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniform3fv(location, count, v);
+#endif
+}
+
+inline void QGLFunctions::glUniform3i(GLint location, GLint x, GLint y, GLint z)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniform3i(location, x, y, z);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniform3i(location, x, y, z);
+#endif
+}
+
+inline void QGLFunctions::glUniform3iv(GLint location, GLsizei count, const GLint* v)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniform3iv(location, count, v);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniform3iv(location, count, v);
+#endif
+}
+
+inline void QGLFunctions::glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniform4f(location, x, y, z, w);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniform4f(location, x, y, z, w);
+#endif
+}
+
+inline void QGLFunctions::glUniform4fv(GLint location, GLsizei count, const GLfloat* v)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniform4fv(location, count, v);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniform4fv(location, count, v);
+#endif
+}
+
+inline void QGLFunctions::glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniform4i(location, x, y, z, w);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniform4i(location, x, y, z, w);
+#endif
+}
+
+inline void QGLFunctions::glUniform4iv(GLint location, GLsizei count, const GLint* v)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniform4iv(location, count, v);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniform4iv(location, count, v);
+#endif
+}
+
+inline void QGLFunctions::glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniformMatrix2fv(location, count, transpose, value);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniformMatrix2fv(location, count, transpose, value);
+#endif
+}
+
+inline void QGLFunctions::glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniformMatrix3fv(location, count, transpose, value);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniformMatrix3fv(location, count, transpose, value);
+#endif
+}
+
+inline void QGLFunctions::glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUniformMatrix4fv(location, count, transpose, value);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->uniformMatrix4fv(location, count, transpose, value);
+#endif
+}
+
+inline void QGLFunctions::glUseProgram(GLuint program)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glUseProgram(program);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->useProgram(program);
+#endif
+}
+
+inline void QGLFunctions::glValidateProgram(GLuint program)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glValidateProgram(program);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->validateProgram(program);
+#endif
+}
+
+inline void QGLFunctions::glVertexAttrib1f(GLuint indx, GLfloat x)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glVertexAttrib1f(indx, x);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->vertexAttrib1f(indx, x);
+#endif
+}
+
+inline void QGLFunctions::glVertexAttrib1fv(GLuint indx, const GLfloat* values)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glVertexAttrib1fv(indx, values);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->vertexAttrib1fv(indx, values);
+#endif
+}
+
+inline void QGLFunctions::glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glVertexAttrib2f(indx, x, y);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->vertexAttrib2f(indx, x, y);
+#endif
+}
+
+inline void QGLFunctions::glVertexAttrib2fv(GLuint indx, const GLfloat* values)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glVertexAttrib2fv(indx, values);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->vertexAttrib2fv(indx, values);
+#endif
+}
+
+inline void QGLFunctions::glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glVertexAttrib3f(indx, x, y, z);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->vertexAttrib3f(indx, x, y, z);
+#endif
+}
+
+inline void QGLFunctions::glVertexAttrib3fv(GLuint indx, const GLfloat* values)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glVertexAttrib3fv(indx, values);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->vertexAttrib3fv(indx, values);
+#endif
+}
+
+inline void QGLFunctions::glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glVertexAttrib4f(indx, x, y, z, w);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->vertexAttrib4f(indx, x, y, z, w);
+#endif
+}
+
+inline void QGLFunctions::glVertexAttrib4fv(GLuint indx, const GLfloat* values)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glVertexAttrib4fv(indx, values);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->vertexAttrib4fv(indx, values);
+#endif
+}
+
+inline void QGLFunctions::glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr)
+{
+#if defined(QT_OPENGL_ES_2)
+ ::glVertexAttribPointer(indx, size, type, normalized, stride, ptr);
+#else
+ Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
+ d_ptr->vertexAttribPointer(indx, size, type, normalized, stride, ptr);
+#endif
+}
+
+#ifndef GL_ACTIVE_ATTRIBUTE_MAX_LENGTH
+#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
+#endif
+#ifndef GL_ACTIVE_ATTRIBUTES
+#define GL_ACTIVE_ATTRIBUTES 0x8B89
+#endif
+#ifndef GL_ACTIVE_TEXTURE
+#define GL_ACTIVE_TEXTURE 0x84E0
+#endif
+#ifndef GL_ACTIVE_UNIFORM_MAX_LENGTH
+#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
+#endif
+#ifndef GL_ACTIVE_UNIFORMS
+#define GL_ACTIVE_UNIFORMS 0x8B86
+#endif
+#ifndef GL_ALIASED_LINE_WIDTH_RANGE
+#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
+#endif
+#ifndef GL_ALIASED_POINT_SIZE_RANGE
+#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
+#endif
+#ifndef GL_ALPHA
+#define GL_ALPHA 0x1906
+#endif
+#ifndef GL_ALPHA_BITS
+#define GL_ALPHA_BITS 0x0D55
+#endif
+#ifndef GL_ALWAYS
+#define GL_ALWAYS 0x0207
+#endif
+#ifndef GL_ARRAY_BUFFER
+#define GL_ARRAY_BUFFER 0x8892
+#endif
+#ifndef GL_ARRAY_BUFFER_BINDING
+#define GL_ARRAY_BUFFER_BINDING 0x8894
+#endif
+#ifndef GL_ATTACHED_SHADERS
+#define GL_ATTACHED_SHADERS 0x8B85
+#endif
+#ifndef GL_BACK
+#define GL_BACK 0x0405
+#endif
+#ifndef GL_BLEND
+#define GL_BLEND 0x0BE2
+#endif
+#ifndef GL_BLEND_COLOR
+#define GL_BLEND_COLOR 0x8005
+#endif
+#ifndef GL_BLEND_DST_ALPHA
+#define GL_BLEND_DST_ALPHA 0x80CA
+#endif
+#ifndef GL_BLEND_DST_RGB
+#define GL_BLEND_DST_RGB 0x80C8
+#endif
+#ifndef GL_BLEND_EQUATION
+#define GL_BLEND_EQUATION 0x8009
+#endif
+#ifndef GL_BLEND_EQUATION_ALPHA
+#define GL_BLEND_EQUATION_ALPHA 0x883D
+#endif
+#ifndef GL_BLEND_EQUATION_RGB
+#define GL_BLEND_EQUATION_RGB 0x8009
+#endif
+#ifndef GL_BLEND_SRC_ALPHA
+#define GL_BLEND_SRC_ALPHA 0x80CB
+#endif
+#ifndef GL_BLEND_SRC_RGB
+#define GL_BLEND_SRC_RGB 0x80C9
+#endif
+#ifndef GL_BLUE_BITS
+#define GL_BLUE_BITS 0x0D54
+#endif
+#ifndef GL_BOOL
+#define GL_BOOL 0x8B56
+#endif
+#ifndef GL_BOOL_VEC2
+#define GL_BOOL_VEC2 0x8B57
+#endif
+#ifndef GL_BOOL_VEC3
+#define GL_BOOL_VEC3 0x8B58
+#endif
+#ifndef GL_BOOL_VEC4
+#define GL_BOOL_VEC4 0x8B59
+#endif
+#ifndef GL_BUFFER_SIZE
+#define GL_BUFFER_SIZE 0x8764
+#endif
+#ifndef GL_BUFFER_USAGE
+#define GL_BUFFER_USAGE 0x8765
+#endif
+#ifndef GL_BYTE
+#define GL_BYTE 0x1400
+#endif
+#ifndef GL_CCW
+#define GL_CCW 0x0901
+#endif
+#ifndef GL_CLAMP_TO_EDGE
+#define GL_CLAMP_TO_EDGE 0x812F
+#endif
+#ifndef GL_COLOR_ATTACHMENT0
+#define GL_COLOR_ATTACHMENT0 0x8CE0
+#endif
+#ifndef GL_COLOR_BUFFER_BIT
+#define GL_COLOR_BUFFER_BIT 0x00004000
+#endif
+#ifndef GL_COLOR_CLEAR_VALUE
+#define GL_COLOR_CLEAR_VALUE 0x0C22
+#endif
+#ifndef GL_COLOR_WRITEMASK
+#define GL_COLOR_WRITEMASK 0x0C23
+#endif
+#ifndef GL_COMPILE_STATUS
+#define GL_COMPILE_STATUS 0x8B81
+#endif
+#ifndef GL_COMPRESSED_TEXTURE_FORMATS
+#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
+#endif
+#ifndef GL_CONSTANT_ALPHA
+#define GL_CONSTANT_ALPHA 0x8003
+#endif
+#ifndef GL_CONSTANT_COLOR
+#define GL_CONSTANT_COLOR 0x8001
+#endif
+#ifndef GL_CULL_FACE
+#define GL_CULL_FACE 0x0B44
+#endif
+#ifndef GL_CULL_FACE_MODE
+#define GL_CULL_FACE_MODE 0x0B45
+#endif
+#ifndef GL_CURRENT_PROGRAM
+#define GL_CURRENT_PROGRAM 0x8B8D
+#endif
+#ifndef GL_CURRENT_VERTEX_ATTRIB
+#define GL_CURRENT_VERTEX_ATTRIB 0x8626
+#endif
+#ifndef GL_CW
+#define GL_CW 0x0900
+#endif
+#ifndef GL_DECR
+#define GL_DECR 0x1E03
+#endif
+#ifndef GL_DECR_WRAP
+#define GL_DECR_WRAP 0x8508
+#endif
+#ifndef GL_DELETE_STATUS
+#define GL_DELETE_STATUS 0x8B80
+#endif
+#ifndef GL_DEPTH_ATTACHMENT
+#define GL_DEPTH_ATTACHMENT 0x8D00
+#endif
+#ifndef GL_DEPTH_BITS
+#define GL_DEPTH_BITS 0x0D56
+#endif
+#ifndef GL_DEPTH_BUFFER_BIT
+#define GL_DEPTH_BUFFER_BIT 0x00000100
+#endif
+#ifndef GL_DEPTH_CLEAR_VALUE
+#define GL_DEPTH_CLEAR_VALUE 0x0B73
+#endif
+#ifndef GL_DEPTH_COMPONENT
+#define GL_DEPTH_COMPONENT 0x1902
+#endif
+#ifndef GL_DEPTH_COMPONENT16
+#define GL_DEPTH_COMPONENT16 0x81A5
+#endif
+#ifndef GL_DEPTH_FUNC
+#define GL_DEPTH_FUNC 0x0B74
+#endif
+#ifndef GL_DEPTH_RANGE
+#define GL_DEPTH_RANGE 0x0B70
+#endif
+#ifndef GL_DEPTH_TEST
+#define GL_DEPTH_TEST 0x0B71
+#endif
+#ifndef GL_DEPTH_WRITEMASK
+#define GL_DEPTH_WRITEMASK 0x0B72
+#endif
+#ifndef GL_DITHER
+#define GL_DITHER 0x0BD0
+#endif
+#ifndef GL_DONT_CARE
+#define GL_DONT_CARE 0x1100
+#endif
+#ifndef GL_DST_ALPHA
+#define GL_DST_ALPHA 0x0304
+#endif
+#ifndef GL_DST_COLOR
+#define GL_DST_COLOR 0x0306
+#endif
+#ifndef GL_DYNAMIC_DRAW
+#define GL_DYNAMIC_DRAW 0x88E8
+#endif
+#ifndef GL_ELEMENT_ARRAY_BUFFER
+#define GL_ELEMENT_ARRAY_BUFFER 0x8893
+#endif
+#ifndef GL_ELEMENT_ARRAY_BUFFER_BINDING
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
+#endif
+#ifndef GL_EQUAL
+#define GL_EQUAL 0x0202
+#endif
+#ifndef GL_EXTENSIONS
+#define GL_EXTENSIONS 0x1F03
+#endif
+#ifndef GL_FALSE
+#define GL_FALSE 0
+#endif
+#ifndef GL_FASTEST
+#define GL_FASTEST 0x1101
+#endif
+#ifndef GL_FIXED
+#define GL_FIXED 0x140C
+#endif
+#ifndef GL_FLOAT
+#define GL_FLOAT 0x1406
+#endif
+#ifndef GL_FLOAT_MAT2
+#define GL_FLOAT_MAT2 0x8B5A
+#endif
+#ifndef GL_FLOAT_MAT3
+#define GL_FLOAT_MAT3 0x8B5B
+#endif
+#ifndef GL_FLOAT_MAT4
+#define GL_FLOAT_MAT4 0x8B5C
+#endif
+#ifndef GL_FLOAT_VEC2
+#define GL_FLOAT_VEC2 0x8B50
+#endif
+#ifndef GL_FLOAT_VEC3
+#define GL_FLOAT_VEC3 0x8B51
+#endif
+#ifndef GL_FLOAT_VEC4
+#define GL_FLOAT_VEC4 0x8B52
+#endif
+#ifndef GL_FRAGMENT_SHADER
+#define GL_FRAGMENT_SHADER 0x8B30
+#endif
+#ifndef GL_FRAMEBUFFER
+#define GL_FRAMEBUFFER 0x8D40
+#endif
+#ifndef GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
+#endif
+#ifndef GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
+#endif
+#ifndef GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
+#endif
+#ifndef GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
+#endif
+#ifndef GL_FRAMEBUFFER_BINDING
+#define GL_FRAMEBUFFER_BINDING 0x8CA6
+#endif
+#ifndef GL_FRAMEBUFFER_COMPLETE
+#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
+#endif
+#ifndef GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
+#endif
+#ifndef GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS
+#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9
+#endif
+#ifndef GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
+#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
+#endif
+#ifndef GL_FRAMEBUFFER_UNSUPPORTED
+#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
+#endif
+#ifndef GL_FRONT
+#define GL_FRONT 0x0404
+#endif
+#ifndef GL_FRONT_AND_BACK
+#define GL_FRONT_AND_BACK 0x0408
+#endif
+#ifndef GL_FRONT_FACE
+#define GL_FRONT_FACE 0x0B46
+#endif
+#ifndef GL_FUNC_ADD
+#define GL_FUNC_ADD 0x8006
+#endif
+#ifndef GL_FUNC_REVERSE_SUBTRACT
+#define GL_FUNC_REVERSE_SUBTRACT 0x800B
+#endif
+#ifndef GL_FUNC_SUBTRACT
+#define GL_FUNC_SUBTRACT 0x800A
+#endif
+#ifndef GL_GENERATE_MIPMAP_HINT
+#define GL_GENERATE_MIPMAP_HINT 0x8192
+#endif
+#ifndef GL_GEQUAL
+#define GL_GEQUAL 0x0206
+#endif
+#ifndef GL_GREATER
+#define GL_GREATER 0x0204
+#endif
+#ifndef GL_GREEN_BITS
+#define GL_GREEN_BITS 0x0D53
+#endif
+#ifndef GL_HIGH_FLOAT
+#define GL_HIGH_FLOAT 0x8DF2
+#endif
+#ifndef GL_HIGH_INT
+#define GL_HIGH_INT 0x8DF5
+#endif
+#ifndef GL_IMPLEMENTATION_COLOR_READ_FORMAT
+#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
+#endif
+#ifndef GL_IMPLEMENTATION_COLOR_READ_TYPE
+#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
+#endif
+#ifndef GL_INCR
+#define GL_INCR 0x1E02
+#endif
+#ifndef GL_INCR_WRAP
+#define GL_INCR_WRAP 0x8507
+#endif
+#ifndef GL_INFO_LOG_LENGTH
+#define GL_INFO_LOG_LENGTH 0x8B84
+#endif
+#ifndef GL_INT
+#define GL_INT 0x1404
+#endif
+#ifndef GL_INT_VEC2
+#define GL_INT_VEC2 0x8B53
+#endif
+#ifndef GL_INT_VEC3
+#define GL_INT_VEC3 0x8B54
+#endif
+#ifndef GL_INT_VEC4
+#define GL_INT_VEC4 0x8B55
+#endif
+#ifndef GL_INVALID_ENUM
+#define GL_INVALID_ENUM 0x0500
+#endif
+#ifndef GL_INVALID_FRAMEBUFFER_OPERATION
+#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
+#endif
+#ifndef GL_INVALID_OPERATION
+#define GL_INVALID_OPERATION 0x0502
+#endif
+#ifndef GL_INVALID_VALUE
+#define GL_INVALID_VALUE 0x0501
+#endif
+#ifndef GL_INVERT
+#define GL_INVERT 0x150A
+#endif
+#ifndef GL_KEEP
+#define GL_KEEP 0x1E00
+#endif
+#ifndef GL_LEQUAL
+#define GL_LEQUAL 0x0203
+#endif
+#ifndef GL_LESS
+#define GL_LESS 0x0201
+#endif
+#ifndef GL_LINEAR
+#define GL_LINEAR 0x2601
+#endif
+#ifndef GL_LINEAR_MIPMAP_LINEAR
+#define GL_LINEAR_MIPMAP_LINEAR 0x2703
+#endif
+#ifndef GL_LINEAR_MIPMAP_NEAREST
+#define GL_LINEAR_MIPMAP_NEAREST 0x2701
+#endif
+#ifndef GL_LINE_LOOP
+#define GL_LINE_LOOP 0x0002
+#endif
+#ifndef GL_LINES
+#define GL_LINES 0x0001
+#endif
+#ifndef GL_LINE_STRIP
+#define GL_LINE_STRIP 0x0003
+#endif
+#ifndef GL_LINE_WIDTH
+#define GL_LINE_WIDTH 0x0B21
+#endif
+#ifndef GL_LINK_STATUS
+#define GL_LINK_STATUS 0x8B82
+#endif
+#ifndef GL_LOW_FLOAT
+#define GL_LOW_FLOAT 0x8DF0
+#endif
+#ifndef GL_LOW_INT
+#define GL_LOW_INT 0x8DF3
+#endif
+#ifndef GL_LUMINANCE
+#define GL_LUMINANCE 0x1909
+#endif
+#ifndef GL_LUMINANCE_ALPHA
+#define GL_LUMINANCE_ALPHA 0x190A
+#endif
+#ifndef GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
+#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
+#endif
+#ifndef GL_MAX_CUBE_MAP_TEXTURE_SIZE
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
+#endif
+#ifndef GL_MAX_FRAGMENT_UNIFORM_VECTORS
+#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
+#endif
+#ifndef GL_MAX_RENDERBUFFER_SIZE
+#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
+#endif
+#ifndef GL_MAX_TEXTURE_IMAGE_UNITS
+#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
+#endif
+#ifndef GL_MAX_TEXTURE_SIZE
+#define GL_MAX_TEXTURE_SIZE 0x0D33
+#endif
+#ifndef GL_MAX_VARYING_VECTORS
+#define GL_MAX_VARYING_VECTORS 0x8DFC
+#endif
+#ifndef GL_MAX_VERTEX_ATTRIBS
+#define GL_MAX_VERTEX_ATTRIBS 0x8869
+#endif
+#ifndef GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
+#endif
+#ifndef GL_MAX_VERTEX_UNIFORM_VECTORS
+#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
+#endif
+#ifndef GL_MAX_VIEWPORT_DIMS
+#define GL_MAX_VIEWPORT_DIMS 0x0D3A
+#endif
+#ifndef GL_MEDIUM_FLOAT
+#define GL_MEDIUM_FLOAT 0x8DF1
+#endif
+#ifndef GL_MEDIUM_INT
+#define GL_MEDIUM_INT 0x8DF4
+#endif
+#ifndef GL_MIRRORED_REPEAT
+#define GL_MIRRORED_REPEAT 0x8370
+#endif
+#ifndef GL_NEAREST
+#define GL_NEAREST 0x2600
+#endif
+#ifndef GL_NEAREST_MIPMAP_LINEAR
+#define GL_NEAREST_MIPMAP_LINEAR 0x2702
+#endif
+#ifndef GL_NEAREST_MIPMAP_NEAREST
+#define GL_NEAREST_MIPMAP_NEAREST 0x2700
+#endif
+#ifndef GL_NEVER
+#define GL_NEVER 0x0200
+#endif
+#ifndef GL_NICEST
+#define GL_NICEST 0x1102
+#endif
+#ifndef GL_NO_ERROR
+#define GL_NO_ERROR 0
+#endif
+#ifndef GL_NONE
+#define GL_NONE 0
+#endif
+#ifndef GL_NOTEQUAL
+#define GL_NOTEQUAL 0x0205
+#endif
+#ifndef GL_NUM_COMPRESSED_TEXTURE_FORMATS
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
+#endif
+#ifndef GL_NUM_SHADER_BINARY_FORMATS
+#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
+#endif
+#ifndef GL_ONE
+#define GL_ONE 1
+#endif
+#ifndef GL_ONE_MINUS_CONSTANT_ALPHA
+#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
+#endif
+#ifndef GL_ONE_MINUS_CONSTANT_COLOR
+#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
+#endif
+#ifndef GL_ONE_MINUS_DST_ALPHA
+#define GL_ONE_MINUS_DST_ALPHA 0x0305
+#endif
+#ifndef GL_ONE_MINUS_DST_COLOR
+#define GL_ONE_MINUS_DST_COLOR 0x0307
+#endif
+#ifndef GL_ONE_MINUS_SRC_ALPHA
+#define GL_ONE_MINUS_SRC_ALPHA 0x0303
+#endif
+#ifndef GL_ONE_MINUS_SRC_COLOR
+#define GL_ONE_MINUS_SRC_COLOR 0x0301
+#endif
+#ifndef GL_OUT_OF_MEMORY
+#define GL_OUT_OF_MEMORY 0x0505
+#endif
+#ifndef GL_PACK_ALIGNMENT
+#define GL_PACK_ALIGNMENT 0x0D05
+#endif
+#ifndef GL_POINTS
+#define GL_POINTS 0x0000
+#endif
+#ifndef GL_POLYGON_OFFSET_FACTOR
+#define GL_POLYGON_OFFSET_FACTOR 0x8038
+#endif
+#ifndef GL_POLYGON_OFFSET_FILL
+#define GL_POLYGON_OFFSET_FILL 0x8037
+#endif
+#ifndef GL_POLYGON_OFFSET_UNITS
+#define GL_POLYGON_OFFSET_UNITS 0x2A00
+#endif
+#ifndef GL_RED_BITS
+#define GL_RED_BITS 0x0D52
+#endif
+#ifndef GL_RENDERBUFFER
+#define GL_RENDERBUFFER 0x8D41
+#endif
+#ifndef GL_RENDERBUFFER_ALPHA_SIZE
+#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
+#endif
+#ifndef GL_RENDERBUFFER_BINDING
+#define GL_RENDERBUFFER_BINDING 0x8CA7
+#endif
+#ifndef GL_RENDERBUFFER_BLUE_SIZE
+#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
+#endif
+#ifndef GL_RENDERBUFFER_DEPTH_SIZE
+#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
+#endif
+#ifndef GL_RENDERBUFFER_GREEN_SIZE
+#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
+#endif
+#ifndef GL_RENDERBUFFER_HEIGHT
+#define GL_RENDERBUFFER_HEIGHT 0x8D43
+#endif
+#ifndef GL_RENDERBUFFER_INTERNAL_FORMAT
+#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
+#endif
+#ifndef GL_RENDERBUFFER_RED_SIZE
+#define GL_RENDERBUFFER_RED_SIZE 0x8D50
+#endif
+#ifndef GL_RENDERBUFFER_STENCIL_SIZE
+#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
+#endif
+#ifndef GL_RENDERBUFFER_WIDTH
+#define GL_RENDERBUFFER_WIDTH 0x8D42
+#endif
+#ifndef GL_RENDERER
+#define GL_RENDERER 0x1F01
+#endif
+#ifndef GL_REPEAT
+#define GL_REPEAT 0x2901
+#endif
+#ifndef GL_REPLACE
+#define GL_REPLACE 0x1E01
+#endif
+#ifndef GL_RGB
+#define GL_RGB 0x1907
+#endif
+#ifndef GL_RGB565
+#define GL_RGB565 0x8D62
+#endif
+#ifndef GL_RGB5_A1
+#define GL_RGB5_A1 0x8057
+#endif
+#ifndef GL_RGBA
+#define GL_RGBA 0x1908
+#endif
+#ifndef GL_RGBA4
+#define GL_RGBA4 0x8056
+#endif
+#ifndef GL_SAMPLE_ALPHA_TO_COVERAGE
+#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
+#endif
+#ifndef GL_SAMPLE_BUFFERS
+#define GL_SAMPLE_BUFFERS 0x80A8
+#endif
+#ifndef GL_SAMPLE_COVERAGE
+#define GL_SAMPLE_COVERAGE 0x80A0
+#endif
+#ifndef GL_SAMPLE_COVERAGE_INVERT
+#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
+#endif
+#ifndef GL_SAMPLE_COVERAGE_VALUE
+#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
+#endif
+#ifndef GL_SAMPLER_2D
+#define GL_SAMPLER_2D 0x8B5E
+#endif
+#ifndef GL_SAMPLER_CUBE
+#define GL_SAMPLER_CUBE 0x8B60
+#endif
+#ifndef GL_SAMPLES
+#define GL_SAMPLES 0x80A9
+#endif
+#ifndef GL_SCISSOR_BOX
+#define GL_SCISSOR_BOX 0x0C10
+#endif
+#ifndef GL_SCISSOR_TEST
+#define GL_SCISSOR_TEST 0x0C11
+#endif
+#ifndef GL_SHADER_BINARY_FORMATS
+#define GL_SHADER_BINARY_FORMATS 0x8DF8
+#endif
+#ifndef GL_SHADER_COMPILER
+#define GL_SHADER_COMPILER 0x8DFA
+#endif
+#ifndef GL_SHADER_SOURCE_LENGTH
+#define GL_SHADER_SOURCE_LENGTH 0x8B88
+#endif
+#ifndef GL_SHADER_TYPE
+#define GL_SHADER_TYPE 0x8B4F
+#endif
+#ifndef GL_SHADING_LANGUAGE_VERSION
+#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
+#endif
+#ifndef GL_SHORT
+#define GL_SHORT 0x1402
+#endif
+#ifndef GL_SRC_ALPHA
+#define GL_SRC_ALPHA 0x0302
+#endif
+#ifndef GL_SRC_ALPHA_SATURATE
+#define GL_SRC_ALPHA_SATURATE 0x0308
+#endif
+#ifndef GL_SRC_COLOR
+#define GL_SRC_COLOR 0x0300
+#endif
+#ifndef GL_STATIC_DRAW
+#define GL_STATIC_DRAW 0x88E4
+#endif
+#ifndef GL_STENCIL_ATTACHMENT
+#define GL_STENCIL_ATTACHMENT 0x8D20
+#endif
+#ifndef GL_STENCIL_BACK_FAIL
+#define GL_STENCIL_BACK_FAIL 0x8801
+#endif
+#ifndef GL_STENCIL_BACK_FUNC
+#define GL_STENCIL_BACK_FUNC 0x8800
+#endif
+#ifndef GL_STENCIL_BACK_PASS_DEPTH_FAIL
+#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
+#endif
+#ifndef GL_STENCIL_BACK_PASS_DEPTH_PASS
+#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
+#endif
+#ifndef GL_STENCIL_BACK_REF
+#define GL_STENCIL_BACK_REF 0x8CA3
+#endif
+#ifndef GL_STENCIL_BACK_VALUE_MASK
+#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
+#endif
+#ifndef GL_STENCIL_BACK_WRITEMASK
+#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
+#endif
+#ifndef GL_STENCIL_BITS
+#define GL_STENCIL_BITS 0x0D57
+#endif
+#ifndef GL_STENCIL_BUFFER_BIT
+#define GL_STENCIL_BUFFER_BIT 0x00000400
+#endif
+#ifndef GL_STENCIL_CLEAR_VALUE
+#define GL_STENCIL_CLEAR_VALUE 0x0B91
+#endif
+#ifndef GL_STENCIL_FAIL
+#define GL_STENCIL_FAIL 0x0B94
+#endif
+#ifndef GL_STENCIL_FUNC
+#define GL_STENCIL_FUNC 0x0B92
+#endif
+#ifndef GL_STENCIL_INDEX
+#define GL_STENCIL_INDEX 0x1901
+#endif
+#ifndef GL_STENCIL_INDEX8
+#define GL_STENCIL_INDEX8 0x8D48
+#endif
+#ifndef GL_STENCIL_PASS_DEPTH_FAIL
+#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
+#endif
+#ifndef GL_STENCIL_PASS_DEPTH_PASS
+#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
+#endif
+#ifndef GL_STENCIL_REF
+#define GL_STENCIL_REF 0x0B97
+#endif
+#ifndef GL_STENCIL_TEST
+#define GL_STENCIL_TEST 0x0B90
+#endif
+#ifndef GL_STENCIL_VALUE_MASK
+#define GL_STENCIL_VALUE_MASK 0x0B93
+#endif
+#ifndef GL_STENCIL_WRITEMASK
+#define GL_STENCIL_WRITEMASK 0x0B98
+#endif
+#ifndef GL_STREAM_DRAW
+#define GL_STREAM_DRAW 0x88E0
+#endif
+#ifndef GL_SUBPIXEL_BITS
+#define GL_SUBPIXEL_BITS 0x0D50
+#endif
+#ifndef GL_TEXTURE0
+#define GL_TEXTURE0 0x84C0
+#endif
+#ifndef GL_TEXTURE
+#define GL_TEXTURE 0x1702
+#endif
+#ifndef GL_TEXTURE10
+#define GL_TEXTURE10 0x84CA
+#endif
+#ifndef GL_TEXTURE1
+#define GL_TEXTURE1 0x84C1
+#endif
+#ifndef GL_TEXTURE11
+#define GL_TEXTURE11 0x84CB
+#endif
+#ifndef GL_TEXTURE12
+#define GL_TEXTURE12 0x84CC
+#endif
+#ifndef GL_TEXTURE13
+#define GL_TEXTURE13 0x84CD
+#endif
+#ifndef GL_TEXTURE14
+#define GL_TEXTURE14 0x84CE
+#endif
+#ifndef GL_TEXTURE15
+#define GL_TEXTURE15 0x84CF
+#endif
+#ifndef GL_TEXTURE16
+#define GL_TEXTURE16 0x84D0
+#endif
+#ifndef GL_TEXTURE17
+#define GL_TEXTURE17 0x84D1
+#endif
+#ifndef GL_TEXTURE18
+#define GL_TEXTURE18 0x84D2
+#endif
+#ifndef GL_TEXTURE19
+#define GL_TEXTURE19 0x84D3
+#endif
+#ifndef GL_TEXTURE20
+#define GL_TEXTURE20 0x84D4
+#endif
+#ifndef GL_TEXTURE2
+#define GL_TEXTURE2 0x84C2
+#endif
+#ifndef GL_TEXTURE21
+#define GL_TEXTURE21 0x84D5
+#endif
+#ifndef GL_TEXTURE22
+#define GL_TEXTURE22 0x84D6
+#endif
+#ifndef GL_TEXTURE23
+#define GL_TEXTURE23 0x84D7
+#endif
+#ifndef GL_TEXTURE24
+#define GL_TEXTURE24 0x84D8
+#endif
+#ifndef GL_TEXTURE25
+#define GL_TEXTURE25 0x84D9
+#endif
+#ifndef GL_TEXTURE26
+#define GL_TEXTURE26 0x84DA
+#endif
+#ifndef GL_TEXTURE27
+#define GL_TEXTURE27 0x84DB
+#endif
+#ifndef GL_TEXTURE28
+#define GL_TEXTURE28 0x84DC
+#endif
+#ifndef GL_TEXTURE29
+#define GL_TEXTURE29 0x84DD
+#endif
+#ifndef GL_TEXTURE_2D
+#define GL_TEXTURE_2D 0x0DE1
+#endif
+#ifndef GL_TEXTURE30
+#define GL_TEXTURE30 0x84DE
+#endif
+#ifndef GL_TEXTURE3
+#define GL_TEXTURE3 0x84C3
+#endif
+#ifndef GL_TEXTURE31
+#define GL_TEXTURE31 0x84DF
+#endif
+#ifndef GL_TEXTURE4
+#define GL_TEXTURE4 0x84C4
+#endif
+#ifndef GL_TEXTURE5
+#define GL_TEXTURE5 0x84C5
+#endif
+#ifndef GL_TEXTURE6
+#define GL_TEXTURE6 0x84C6
+#endif
+#ifndef GL_TEXTURE7
+#define GL_TEXTURE7 0x84C7
+#endif
+#ifndef GL_TEXTURE8
+#define GL_TEXTURE8 0x84C8
+#endif
+#ifndef GL_TEXTURE9
+#define GL_TEXTURE9 0x84C9
+#endif
+#ifndef GL_TEXTURE_BINDING_2D
+#define GL_TEXTURE_BINDING_2D 0x8069
+#endif
+#ifndef GL_TEXTURE_BINDING_CUBE_MAP
+#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
+#endif
+#ifndef GL_TEXTURE_CUBE_MAP
+#define GL_TEXTURE_CUBE_MAP 0x8513
+#endif
+#ifndef GL_TEXTURE_CUBE_MAP_NEGATIVE_X
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
+#endif
+#ifndef GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
+#endif
+#ifndef GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
+#endif
+#ifndef GL_TEXTURE_CUBE_MAP_POSITIVE_X
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
+#endif
+#ifndef GL_TEXTURE_CUBE_MAP_POSITIVE_Y
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
+#endif
+#ifndef GL_TEXTURE_CUBE_MAP_POSITIVE_Z
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
+#endif
+#ifndef GL_TEXTURE_MAG_FILTER
+#define GL_TEXTURE_MAG_FILTER 0x2800
+#endif
+#ifndef GL_TEXTURE_MIN_FILTER
+#define GL_TEXTURE_MIN_FILTER 0x2801
+#endif
+#ifndef GL_TEXTURE_WRAP_S
+#define GL_TEXTURE_WRAP_S 0x2802
+#endif
+#ifndef GL_TEXTURE_WRAP_T
+#define GL_TEXTURE_WRAP_T 0x2803
+#endif
+#ifndef GL_TRIANGLE_FAN
+#define GL_TRIANGLE_FAN 0x0006
+#endif
+#ifndef GL_TRIANGLES
+#define GL_TRIANGLES 0x0004
+#endif
+#ifndef GL_TRIANGLE_STRIP
+#define GL_TRIANGLE_STRIP 0x0005
+#endif
+#ifndef GL_TRUE
+#define GL_TRUE 1
+#endif
+#ifndef GL_UNPACK_ALIGNMENT
+#define GL_UNPACK_ALIGNMENT 0x0CF5
+#endif
+#ifndef GL_UNSIGNED_BYTE
+#define GL_UNSIGNED_BYTE 0x1401
+#endif
+#ifndef GL_UNSIGNED_INT
+#define GL_UNSIGNED_INT 0x1405
+#endif
+#ifndef GL_UNSIGNED_SHORT
+#define GL_UNSIGNED_SHORT 0x1403
+#endif
+#ifndef GL_UNSIGNED_SHORT_4_4_4_4
+#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
+#endif
+#ifndef GL_UNSIGNED_SHORT_5_5_5_1
+#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
+#endif
+#ifndef GL_UNSIGNED_SHORT_5_6_5
+#define GL_UNSIGNED_SHORT_5_6_5 0x8363
+#endif
+#ifndef GL_VALIDATE_STATUS
+#define GL_VALIDATE_STATUS 0x8B83
+#endif
+#ifndef GL_VENDOR
+#define GL_VENDOR 0x1F00
+#endif
+#ifndef GL_VERSION
+#define GL_VERSION 0x1F02
+#endif
+#ifndef GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
+#endif
+#ifndef GL_VERTEX_ATTRIB_ARRAY_ENABLED
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
+#endif
+#ifndef GL_VERTEX_ATTRIB_ARRAY_NORMALIZED
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
+#endif
+#ifndef GL_VERTEX_ATTRIB_ARRAY_POINTER
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
+#endif
+#ifndef GL_VERTEX_ATTRIB_ARRAY_SIZE
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
+#endif
+#ifndef GL_VERTEX_ATTRIB_ARRAY_STRIDE
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
+#endif
+#ifndef GL_VERTEX_ATTRIB_ARRAY_TYPE
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
+#endif
+#ifndef GL_VERTEX_SHADER
+#define GL_VERTEX_SHADER 0x8B31
+#endif
+#ifndef GL_VIEWPORT
+#define GL_VIEWPORT 0x0BA2
+#endif
+#ifndef GL_ZERO
+#define GL_ZERO 0
+#endif
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/opengl/qglshaderprogram.cpp b/src/opengl/qglshaderprogram.cpp
index c7689b8..74382b0 100644
--- a/src/opengl/qglshaderprogram.cpp
+++ b/src/opengl/qglshaderprogram.cpp
@@ -2121,7 +2121,7 @@ void QGLShaderProgram::setUniformValue(int location, const QSize& size)
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);
}
}
diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp
index b3c9df1..25c0501 100644
--- a/src/opengl/qwindowsurface_gl.cpp
+++ b/src/opengl/qwindowsurface_gl.cpp
@@ -199,6 +199,7 @@ public:
return widget;
}
+ // destroys the share widget and prevents recreation
void cleanup() {
QGLWidget *w = widget;
cleanedUp = true;
@@ -206,6 +207,20 @@ public:
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 @@ QGLWidget* qt_gl_share_widget()
return _qt_gl_share_widget()->shareWidget();
}
+void qt_destroy_gl_share_widget()
+{
+ _qt_gl_share_widget()->destroy();
+}
struct QGLWindowSurfacePrivate
{
diff --git a/src/opengl/qwindowsurface_gl_p.h b/src/opengl/qwindowsurface_gl_p.h
index eebc42f..ca73bad 100644
--- a/src/opengl/qwindowsurface_gl_p.h
+++ b/src/opengl/qwindowsurface_gl_p.h
@@ -67,6 +67,7 @@ class QWidget;
struct QGLWindowSurfacePrivate;
Q_OPENGL_EXPORT QGLWidget* qt_gl_share_widget();
+Q_OPENGL_EXPORT void qt_destroy_gl_share_widget();
class QGLWindowSurfaceGLPaintDevice : public QGLPaintDevice
{
diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp
index 1d633ed..75e5a60 100644
--- a/src/openvg/qpaintengine_vg.cpp
+++ b/src/openvg/qpaintengine_vg.cpp
@@ -77,6 +77,9 @@ QT_BEGIN_NAMESPACE
#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 @@ private:
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 @@ public:
QT_VG_BLEND_XOR_KHR = 0x2026
};
- QVGPaintEnginePrivate();
+ QVGPaintEnginePrivate(QVGPaintEngine *q_ptr);
~QVGPaintEnginePrivate();
void init();
@@ -153,6 +157,7 @@ public:
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 @@ public:
// Clear all lazily-set modes.
void clearModes();
+
+private:
+ QVGPaintEngine *q;
};
inline void QVGPaintEnginePrivate::setImageMode(VGImageMode mode)
@@ -332,7 +340,7 @@ void QVGPaintEnginePrivate::clearModes()
imageQuality = (VGImageQuality)0;
}
-QVGPaintEnginePrivate::QVGPaintEnginePrivate()
+QVGPaintEnginePrivate::QVGPaintEnginePrivate(QVGPaintEngine *q_ptr) : q(q_ptr)
{
init();
}
@@ -1431,7 +1439,7 @@ QVGPainterState::~QVGPainterState()
}
QVGPaintEngine::QVGPaintEngine()
- : QPaintEngineEx(*new QVGPaintEnginePrivate)
+ : QPaintEngineEx(*new QVGPaintEnginePrivate(this))
{
}
@@ -2974,6 +2982,11 @@ void QVGPaintEnginePrivate::setImageOptions()
}
}
+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 @@ void QVGPaintEngine::drawStaticTextItem(QStaticTextItem *textItem)
// 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());
}
diff --git a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp
index 662663d..6eb0617 100644
--- a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp
+++ b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp
@@ -348,7 +348,7 @@ QVariant QAccessibleTextEdit::invokeMethodEx(QAccessible::Method method, int chi
case ListSupportedMethods: {
QSet<QAccessible::Method> set;
set << ListSupportedMethods << SetCursorPosition << GetCursorPosition;
- return qVariantFromValue(set | qvariant_cast<QSet<QAccessible::Method> >(
+ return QVariant::fromValue(set | qvariant_cast<QSet<QAccessible::Method> >(
QAccessibleWidgetEx::invokeMethodEx(method, child, params)));
}
case SetCursorPosition:
diff --git a/src/plugins/accessible/widgets/rangecontrols.cpp b/src/plugins/accessible/widgets/rangecontrols.cpp
index 4cd171b..bf7b561 100644
--- a/src/plugins/accessible/widgets/rangecontrols.cpp
+++ b/src/plugins/accessible/widgets/rangecontrols.cpp
@@ -233,7 +233,7 @@ QVariant QAccessibleAbstractSpinBox::invokeMethodEx(Method method, int child, co
case ListSupportedMethods: {
QSet<QAccessible::Method> set;
set << ListSupportedMethods;
- return qVariantFromValue(set | qvariant_cast<QSet<QAccessible::Method> >(
+ return QVariant::fromValue(set | qvariant_cast<QSet<QAccessible::Method> >(
QAccessibleWidgetEx::invokeMethodEx(method, child, params)));
}
default:
@@ -814,7 +814,7 @@ QVariant QAccessibleAbstractSlider::invokeMethodEx(Method method, int child, con
case ListSupportedMethods: {
QSet<QAccessible::Method> set;
set << ListSupportedMethods;
- return qVariantFromValue(set | qvariant_cast<QSet<QAccessible::Method> >(
+ return QVariant::fromValue(set | qvariant_cast<QSet<QAccessible::Method> >(
QAccessibleWidgetEx::invokeMethodEx(method, child, params)));
}
default:
diff --git a/src/plugins/accessible/widgets/simplewidgets.cpp b/src/plugins/accessible/widgets/simplewidgets.cpp
index f39d538..d8b57af 100644
--- a/src/plugins/accessible/widgets/simplewidgets.cpp
+++ b/src/plugins/accessible/widgets/simplewidgets.cpp
@@ -732,7 +732,7 @@ QVariant QAccessibleLineEdit::invokeMethodEx(QAccessible::Method method, int chi
case ListSupportedMethods: {
QSet<QAccessible::Method> set;
set << ListSupportedMethods << SetCursorPosition << GetCursorPosition;
- return qVariantFromValue(set | qvariant_cast<QSet<QAccessible::Method> >(
+ return QVariant::fromValue(set | qvariant_cast<QSet<QAccessible::Method> >(
QAccessibleWidgetEx::invokeMethodEx(method, child, params)));
}
case SetCursorPosition:
diff --git a/src/plugins/bearer/connman/qconnmanengine.cpp b/src/plugins/bearer/connman/qconnmanengine.cpp
index 8775623..3b5ae86 100644
--- a/src/plugins/bearer/connman/qconnmanengine.cpp
+++ b/src/plugins/bearer/connman/qconnmanengine.cpp
@@ -125,9 +125,10 @@ QList<QNetworkConfigurationPrivate *> QConnmanEngine::getConfigurations()
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;
@@ -149,7 +150,6 @@ void QConnmanEngine::getNetworkListing()
}
-
void QConnmanEngine::doRequestUpdate()
{
connmanManager->requestScan("");
@@ -169,30 +169,6 @@ bool QConnmanEngine::hasIdentifier(const QString &id)
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);
@@ -336,6 +312,9 @@ QString QConnmanEngine::getServiceForNetwork(const QString &netPath)
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()) {
@@ -378,17 +357,6 @@ void QConnmanEngine::propertyChangedContext(const QString &path,const QString &i
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") {
@@ -409,15 +377,21 @@ void QConnmanEngine::servicePropertyChangedContext(const QString &path,const QSt
}
}
-void QConnmanEngine::networkPropertyChangedContext(const QString &/*path*/,const QString &/*item*/, const QDBusVariant &/*value*/)
+void QConnmanEngine::networkPropertyChangedContext(const QString &path,const QString &item, const QDBusVariant &value)
{
QMutexLocker locker(&mutex);
+// qDebug() << __FUNCTION__ << path << item << value.variant();
}
void QConnmanEngine::devicePropertyChangedContext(const QString &devpath,const QString &item,const QDBusVariant &value)
{
+// qDebug() << __FUNCTION__ << devpath << item << value.variant();
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;
@@ -455,6 +429,7 @@ void QConnmanEngine::devicePropertyChangedContext(const QString &devpath,const Q
void QConnmanEngine::technologyPropertyChangedContext(const QString & path, const QString &item, const QDBusVariant &value)
{
+// qDebug() << __FUNCTION__ << path << item << value.variant();
if(item == "Devices") {
QDBusArgument arg = qvariant_cast<QDBusArgument>(value.variant());
QStringList list = qdbus_cast<QStringList>(arg);
@@ -476,6 +451,12 @@ void QConnmanEngine::technologyPropertyChangedContext(const QString & path, cons
}
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();
}
}
}
@@ -538,25 +519,25 @@ QNetworkConfiguration::StateFlags QConnmanEngine::getStateForService(const QStri
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";
+ if (type == "wifi")
+ return QNetworkConfiguration::BearerWLAN;
+ if (type == "ethernet")
+ return QNetworkConfiguration::BearerEthernet;
+ if (type == "bluetooth")
+ return QNetworkConfiguration::BearerBluetooth;
+ if (type == "cellular") {
+ return QNetworkConfiguration::Bearer2G;
// not handled: CDMA2000 HSPA
}
- if(type == "wimax")
- return "WiMax";
+ if (type == "wimax")
+ return QNetworkConfiguration::BearerWiMAX;
+
// if(type == "gps")
// if(type == "vpn")
- return "Unknown";
+ return QNetworkConfiguration::BearerUnknown;
}
void QConnmanEngine::removeConfiguration(const QString &id)
@@ -612,15 +593,35 @@ void QConnmanEngine::addServiceConfiguration(const QString &servicePath)
QString networkName = serv->getName();
- if(serv->getType() == "Cellular") {
+ if(serv->getType() == "cellular") {
networkName = serv->getAPN();
+ if(networkName.isEmpty()) {
+ networkName = serv->getName();
+ }
}
cpPriv->name = networkName;
cpPriv->isValid = true;
cpPriv->id = id;
cpPriv->type = QNetworkConfiguration::InternetAccessPoint;
- cpPriv->bearer = bearerName(id);
+
+
+ const QString connectionType = serv->getType();
+ if (connectionType == "ethernet") {
+ cpPriv->bearerType = QNetworkConfiguration::BearerEthernet;
+ } else if (connectionType == "wifi") {
+ cpPriv->bearerType = QNetworkConfiguration::BearerWLAN;
+ } else if (connectionType == "cellular") {
+ const QString mode = serv->getMode();
+ if (mode == "gprs" || mode == "edge")
+ cpPriv->bearerType = QNetworkConfiguration::Bearer2G;
+ else if (mode == "umts")
+ cpPriv->bearerType = QNetworkConfiguration::BearerWCDMA;
+ } else if (connectionType == "wimax") {
+ cpPriv->bearerType = QNetworkConfiguration::BearerWiMAX;
+ } else {
+ cpPriv->bearerType = QNetworkConfiguration::BearerUnknown;
+ }
if(serv->getSecurity() == "none") {
cpPriv->purpose = QNetworkConfiguration::PublicPurpose;
@@ -650,6 +651,9 @@ void QConnmanEngine::addNetworkConfiguration(const QString &networkPath)
{
QMutexLocker locker(&mutex);
+ if(networkPath.isNull())
+ return;
+
QConnmanNetworkInterface *network;
network = new QConnmanNetworkInterface(networkPath, this);
QString servicePath = getServiceForNetwork(networkPath);
@@ -665,9 +669,10 @@ void QConnmanEngine::addNetworkConfiguration(const QString &networkPath)
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 +688,38 @@ void QConnmanEngine::addNetworkConfiguration(const QString &networkPath)
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());
+ bearerType = typeToBearer(serv->getType());
}
- if(bearerName == "Cellular") {
+ if (bearerType == QNetworkConfiguration::Bearer2G) {
QString mode = serv->getMode();
- if(mode == "gprs" || mode == "edge") {
- bearerName = "2G";
- } else if(mode == "umts") {
- bearerName = "WCDMA";
+ if (mode == "gprs" || mode == "edge") {
+ bearerType = QNetworkConfiguration::Bearer2G;
+ } else if (mode == "umts") {
+ bearerType = QNetworkConfiguration::BearerWCDMA;
+ }
+ if(servicePath.isEmpty()) {
+ networkName = serv->getAPN();
+ if(networkName.isEmpty()) {
+ networkName = serv->getName();
+ }
}
- 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 +741,9 @@ void QConnmanEngine::addNetworkConfiguration(const QString &networkPath)
emit configurationAdded(ptr);
locker.relock();
emit updateCompleted();
- }
+ } /*else {
+ qDebug() << "Not added~~~~~~~~~~~";
+ }*/
}
bool QConnmanEngine::requiresPolling() const
diff --git a/src/plugins/bearer/connman/qconnmanengine.h b/src/plugins/bearer/connman/qconnmanengine.h
index 0f6dc1c..2ee6da5 100644
--- a/src/plugins/bearer/connman/qconnmanengine.h
+++ b/src/plugins/bearer/connman/qconnmanengine.h
@@ -80,8 +80,6 @@ public:
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 @@ private:
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);
diff --git a/src/plugins/bearer/connman/qconnmanservice_linux.cpp b/src/plugins/bearer/connman/qconnmanservice_linux.cpp
index b20e7c1..0ffada9 100644
--- a/src/plugins/bearer/connman/qconnmanservice_linux.cpp
+++ b/src/plugins/bearer/connman/qconnmanservice_linux.cpp
@@ -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 @@ QVariant QConnmanManagerInterface::getProperty(const QString &property)
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()
@@ -551,8 +555,12 @@ void QConnmanServiceInterface::disconnectNotify(const char *signal)
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)
@@ -725,6 +733,99 @@ QVariantMap QConnmanServiceInterface::getEthernet()
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");
@@ -953,10 +1054,10 @@ bool QConnmanDeviceInterface::setProperty(const QString &name, const QDBusVarian
// QList<QVariant> args;
qWarning() << __FUNCTION__ << name << value.variant();
-// args << qVariantFromValue(name);
-// args << qVariantFromValue(value);
+// args << QVariant::fromValue(name);
+// args << QVariant::fromValue(value);
- QDBusMessage reply = this->call(QLatin1String("SetProperty"),name, qVariantFromValue(value));
+ QDBusMessage reply = this->call(QLatin1String("SetProperty"),name, QVariant::fromValue(value));
qWarning() << reply.errorMessage();
return true;
@@ -1020,7 +1121,7 @@ quint16 QConnmanDeviceInterface::getScanInterval()
bool QConnmanDeviceInterface::setScanInterval(const QString & interval)
{
// QList<QVariant> args;
-// args << qVariantFromValue(name)
+// args << QVariant::fromValue(name)
// << value.variant();
// QDBusMessage reply = this->callWithArgumentList(QDBus::AutoDetect,QLatin1String("SetProperty"),args);
@@ -1043,8 +1144,8 @@ QStringList QConnmanDeviceInterface::getNetworks()
bool QConnmanDeviceInterface::setEnabled(bool powered)
{
QList<QVariant> args;
- args << qVariantFromValue(QString("Powered"))
- << qVariantFromValue(QDBusVariant(powered));
+ args << QVariant::fromValue(QString("Powered"))
+ << QVariant::fromValue(QDBusVariant(powered));
QDBusMessage reply = this->callWithArgumentList(QDBus::AutoDetect,QLatin1String("SetProperty"),args);
qWarning() << reply.errorMessage() << reply.errorName();
@@ -1070,3 +1171,7 @@ void QConnmanDBusHelper::propertyChanged(const QString &item, const QDBusVariant
/////////////////
QT_END_NAMESPACE
+
+#endif // QT_NO_DBUS
+#endif // QT_NO_BEARERMANAGEMENT
+
diff --git a/src/plugins/bearer/connman/qconnmanservice_linux_p.h b/src/plugins/bearer/connman/qconnmanservice_linux_p.h
index 35e3f3d..a2b1e73 100644
--- a/src/plugins/bearer/connman/qconnmanservice_linux_p.h
+++ b/src/plugins/bearer/connman/qconnmanservice_linux_p.h
@@ -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 @@ public:
QVariantMap getProxy();
QVariantMap getEthernet();
+ QString getMethod();
+ QString getInterface();
+ QString getMacAddress();
+ quint16 getMtu();
+ quint16 getSpeed();
+ QString getDuplex();
+
bool isOfflineMode();
QStringList getServices();
@@ -378,4 +388,7 @@ Q_SIGNALS:
QT_END_NAMESPACE
+#endif // QT_NO_DBUS
+#endif // QT_NO_BEARERMANAGEMENT
+
#endif //QCONNMANSERVICE_H
diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.h b/src/plugins/bearer/corewlan/qcorewlanengine.h
index 4d90648..56da66a 100644
--- a/src/plugins/bearer/corewlan/qcorewlanengine.h
+++ b/src/plugins/bearer/corewlan/qcorewlanengine.h
@@ -68,8 +68,6 @@ public:
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);
diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.mm b/src/plugins/bearer/corewlan/qcorewlanengine.mm
index 6ba9504..131f36d 100644
--- a/src/plugins/bearer/corewlan/qcorewlanengine.mm
+++ b/src/plugins/bearer/corewlan/qcorewlanengine.mm
@@ -264,7 +264,7 @@ QStringList QScanThread::foundNetwork(const QString &id, const QString &name, co
ptr->id = id;
ptr->state = state;
ptr->type = QNetworkConfiguration::InternetAccessPoint;
- ptr->bearer = QLatin1String("WLAN");
+ ptr->bearerType = QNetworkConfiguration::BearerWLAN;
ptr->purpose = purpose;
fetchedConfigurations.append( ptr);
@@ -789,8 +789,8 @@ void QCoreWlanEngine::networksChanged()
changed = true;
}
- if (ptr->bearer != cpPriv->bearer) {
- ptr->bearer = cpPriv->bearer;
+ if (ptr->bearerType != cpPriv->bearerType) {
+ ptr->bearerType = cpPriv->bearerType;
changed = true;
}
diff --git a/src/plugins/bearer/generic/qgenericengine.cpp b/src/plugins/bearer/generic/qgenericengine.cpp
index 652fe4a..fad3ae8 100644
--- a/src/plugins/bearer/generic/qgenericengine.cpp
+++ b/src/plugins/bearer/generic/qgenericengine.cpp
@@ -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 @@ static QString qGetInterfaceType(const QString &interface)
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 @@ static QString qGetInterfaceType(const QString &interface)
&medium, sizeof(medium), &bytesWritten, 0);
if (!result) {
CloseHandle(handle);
- return QLatin1String("Unknown");
+ return QNetworkConfiguration::BearerUnknown;
}
oid = OID_GEN_PHYSICAL_MEDIUM;
@@ -100,9 +100,9 @@ static QString qGetInterfaceType(const QString &interface)
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 @@ static QString qGetInterfaceType(const QString &interface)
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 @@ static QString qGetInterfaceType(const QString &interface)
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 @@ void QGenericEngine::doRequestUpdate()
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 @@ void QGenericEngine::doRequestUpdate()
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());
diff --git a/src/plugins/bearer/generic/qgenericengine.h b/src/plugins/bearer/generic/qgenericengine.h
index cdbbc9d..021b35b 100644
--- a/src/plugins/bearer/generic/qgenericengine.h
+++ b/src/plugins/bearer/generic/qgenericengine.h
@@ -65,8 +65,6 @@ public:
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);
diff --git a/src/plugins/bearer/icd/qicdengine.cpp b/src/plugins/bearer/icd/qicdengine.cpp
index 0083380..0900329 100644
--- a/src/plugins/bearer/icd/qicdengine.cpp
+++ b/src/plugins/bearer/icd/qicdengine.cpp
@@ -60,16 +60,11 @@ IcdNetworkConfigurationPrivate::~IcdNetworkConfigurationPrivate()
{
}
-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 @@ void IapMonitor::iapRemoved(const QString &iap_id)
}
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 @@ void QIcdEngine::initialize()
startListeningStateSignalsForAllConnections();
/* Turn on IAP add/remove monitoring */
+ iapMonitor = new IapMonitor;
iapMonitor->setup(this);
/* We create a default configuration which is a pseudo config */
@@ -400,6 +396,7 @@ void QIcdEngine::addConfiguration(QString& iap_id)
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 +421,7 @@ void QIcdEngine::addConfiguration(QString& iap_id)
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 +478,7 @@ void QIcdEngine::addConfiguration(QString& iap_id)
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 +521,6 @@ void QIcdEngine::addConfiguration(QString& iap_id)
void QIcdEngine::doRequestUpdate(QList<Maemo::IcdScanResult> scanned)
{
- QMutexLocker locker(&mutex);
-
/* Contains all known iap_ids from storage */
QList<QString> knownConfigs = accessPointConfigurations.keys();
@@ -580,6 +577,7 @@ void QIcdEngine::doRequestUpdate(QList<Maemo::IcdScanResult> scanned)
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 +586,9 @@ void QIcdEngine::doRequestUpdate(QList<Maemo::IcdScanResult> scanned)
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",
@@ -643,9 +641,9 @@ void QIcdEngine::doRequestUpdate(QList<Maemo::IcdScanResult> scanned)
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 +686,7 @@ rescan_list:
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 +702,9 @@ rescan_list:
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 +732,9 @@ rescan_list:
ptr->state = QNetworkConfiguration::Defined;
configLocker.unlock();
- locker.unlock();
+ mutex.unlock();
emit configurationChanged(ptr);
- locker.relock();
+ mutex.lock();
}
}
}
@@ -744,9 +743,9 @@ rescan_list:
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 +761,9 @@ rescan_list:
}
if (!firstUpdate) {
- locker.unlock();
+ mutex.unlock();
emit updateCompleted();
- locker.relock();
+ mutex.lock();
}
if (firstUpdate)
@@ -781,8 +780,6 @@ QNetworkConfigurationPrivatePointer QIcdEngine::defaultConfiguration()
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,
@@ -906,8 +903,6 @@ void QIcdEngine::requestUpdate()
void QIcdEngine::cancelAsyncConfigurationUpdate()
{
- QMutexLocker locker(&mutex);
-
if (!m_scanGoingOn) {
return;
}
@@ -947,7 +942,9 @@ void QIcdEngine::asyncUpdateConfigurationsSlot(QDBusMessage msg)
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 +974,8 @@ void QIcdEngine::cleanup()
m_scanTimer.stop();
m_dbusInterface->call(ICD_DBUS_API_SCAN_CANCEL);
}
- iapMonitor->cleanup();
+ if (iapMonitor)
+ iapMonitor->cleanup();
}
bool QIcdEngine::hasIdentifier(const QString &id)
diff --git a/src/plugins/bearer/icd/qicdengine.h b/src/plugins/bearer/icd/qicdengine.h
index 1b291eb..a768d84 100644
--- a/src/plugins/bearer/icd/qicdengine.h
+++ b/src/plugins/bearer/icd/qicdengine.h
@@ -54,13 +54,25 @@ class QNetworkConfigurationPrivate;
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 @@ public:
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,14 @@ Q_SIGNALS:
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();
private:
IapMonitor *iapMonitor;
diff --git a/src/plugins/bearer/icd/qnetworksession_impl.cpp b/src/plugins/bearer/icd/qnetworksession_impl.cpp
index e8e5183..2583b28 100644
--- a/src/plugins/bearer/icd/qnetworksession_impl.cpp
+++ b/src/plugins/bearer/icd/qnetworksession_impl.cpp
@@ -318,6 +318,7 @@ QNetworkConfiguration& QNetworkSessionPrivateImpl::copyConfig(QNetworkConfigurat
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;
@@ -443,6 +444,7 @@ void QNetworkSessionPrivateImpl::syncStateWithInterface()
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;
@@ -819,6 +821,7 @@ void QNetworkSessionPrivateImpl::stateChange(const QDBusMessage& rep)
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;
diff --git a/src/plugins/bearer/nativewifi/qnativewifiengine.cpp b/src/plugins/bearer/nativewifi/qnativewifiengine.cpp
index 1a55402..ba8297e 100644
--- a/src/plugins/bearer/nativewifi/qnativewifiengine.cpp
+++ b/src/plugins/bearer/nativewifi/qnativewifiengine.cpp
@@ -206,7 +206,7 @@ void QNativeWifiEngine::scanComplete()
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 @@ bool QNativeWifiEngine::hasIdentifier(const QString &id)
return false;
}
-/*QString QNativeWifiEngine::bearerName(const QString &)
-{
- return QLatin1String("WLAN");
-}*/
-
void QNativeWifiEngine::connectToId(const QString &id)
{
QMutexLocker locker(&mutex);
diff --git a/src/plugins/bearer/nativewifi/qnativewifiengine.h b/src/plugins/bearer/nativewifi/qnativewifiengine.h
index 0e9576b..dccf2e2 100644
--- a/src/plugins/bearer/nativewifi/qnativewifiengine.h
+++ b/src/plugins/bearer/nativewifi/qnativewifiengine.h
@@ -75,8 +75,6 @@ public:
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);
diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp
index 3ebc356..29445ce 100644
--- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp
+++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp
@@ -104,14 +104,23 @@ void QNetworkManagerEngine::initialize()
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 @@ bool QNetworkManagerEngine::networkManagerAvailable() const
return interface->isValid();
}
-void QNetworkManagerEngine::doRequestUpdate()
-{
- emit updateCompleted();
-}
-
QString QNetworkManagerEngine::getInterfaceFromId(const QString &id)
{
QMutexLocker locker(&mutex);
@@ -181,30 +185,6 @@ bool QNetworkManagerEngine::hasIdentifier(const QString &id)
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::disconnectFromId(const QString &id)
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::devicePropertiesChanged(const QString &path,
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 @@ void QNetworkManagerEngine::deviceAdded(const QDBusObjectPath &path)
foreach (const QDBusObjectPath &apPath, wirelessDevice->getAccessPoints())
newAccessPoint(QString(), apPath);
+
+ mutex.lock();
+ wirelessDevices.insert(path.path(), wirelessDevice);
+ mutex.unlock();
}
}
@@ -611,7 +590,7 @@ void QNetworkManagerEngine::newAccessPoint(const QString &path, const QDBusObjec
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 @@ QNetworkConfigurationPrivate *QNetworkManagerEngine::parseConnection(const QStri
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 @@ QNetworkConfigurationPrivate *QNetworkManagerEngine::parseConnection(const QStri
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 @@ QNetworkConfigurationPrivate *QNetworkManagerEngine::parseConnection(const QStri
}
}
} 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 @@ QNetworkConfigurationPrivate *QNetworkManagerEngine::parseConnection(const QStri
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 @@ QNetworkConfigurationPrivate *QNetworkManagerEngine::parseConnection(const QStri
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();
diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h
index 8e95a2c..78ebb0a 100644
--- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h
+++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h
@@ -78,8 +78,6 @@ public:
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 @@ private Q_SLOTS:
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,
diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
index 31a9aa1..f47c97c 100644
--- a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
+++ b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
@@ -718,146 +718,80 @@ QNmSettingsMap QNetworkManagerSettingsConnection::getSettings()
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()
-{
- 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++;
- }
+}
+
+QStringList QNetworkManagerSettingsConnection::getSeenBssids()
+{
+ 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
diff --git a/src/plugins/bearer/nla/qnlaengine.cpp b/src/plugins/bearer/nla/qnlaengine.cpp
index 9ab9924..fd50099 100644
--- a/src/plugins/bearer/nla/qnlaengine.cpp
+++ b/src/plugins/bearer/nla/qnlaengine.cpp
@@ -119,7 +119,7 @@ static void printBlob(NLA_BLOB *blob)
}
#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 @@ static QString qGetInterfaceType(const QString &interface)
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 @@ static QString qGetInterfaceType(const QString &interface)
&medium, sizeof(medium), &bytesWritten, 0);
if (!result) {
CloseHandle(handle);
- return QLatin1String("Unknown");
+ return QNetworkConfiguration::BearerUnknown;
}
oid = OID_GEN_PHYSICAL_MEDIUM;
@@ -152,9 +152,9 @@ static QString qGetInterfaceType(const QString &interface)
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 @@ static QString qGetInterfaceType(const QString &interface)
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 @@ static QString qGetInterfaceType(const QString &interface)
#endif
- return QLatin1String("Unknown");
+ return QNetworkConfiguration::BearerUnknown;
}
class QNlaThread : public QThread
@@ -374,10 +374,9 @@ DWORD QNlaThread::parseBlob(NLA_BLOB *blob, QNetworkConfigurationPrivate *cpPriv
#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 @@ QNetworkConfigurationPrivate *QNlaThread::parseQuerySet(const WSAQUERYSET *query
} 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 @@ bool QNlaEngine::hasIdentifier(const QString &id)
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);
diff --git a/src/plugins/bearer/nla/qnlaengine.h b/src/plugins/bearer/nla/qnlaengine.h
index 1d49464..69f54c9 100644
--- a/src/plugins/bearer/nla/qnlaengine.h
+++ b/src/plugins/bearer/nla/qnlaengine.h
@@ -85,8 +85,6 @@ public:
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);
diff --git a/src/plugins/bearer/symbian/3_1/3_1.pro b/src/plugins/bearer/symbian/3_1/3_1.pro
index 2d721a8..b7c6aef 100644
--- a/src/plugins/bearer/symbian/3_1/3_1.pro
+++ b/src/plugins/bearer/symbian/3_1/3_1.pro
@@ -1,5 +1,9 @@
include(../symbian.pri)
-LIBS += -lapengine
+is_using_gnupoc {
+ LIBS += -lapengine
+} else {
+ LIBS += -lAPEngine
+}
TARGET = $${TARGET}_3_1
TARGET.UID3 = 0x2002131C
diff --git a/src/plugins/bearer/symbian/symbian.pri b/src/plugins/bearer/symbian/symbian.pri
index afe84dc..9b3f50c 100644
--- a/src/plugins/bearer/symbian/symbian.pri
+++ b/src/plugins/bearer/symbian/symbian.pri
@@ -14,8 +14,6 @@ INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
symbian-abld:INCLUDEPATH += $$QT_BUILD_TREE/include/QtNetwork/private
LIBS += -lcommdb \
- -lapsettingshandlerui \
- -lconnmon \
-lcentralrepository \
-lesock \
-linsock \
@@ -23,6 +21,14 @@ LIBS += -lcommdb \
-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
diff --git a/src/plugins/bearer/symbian/symbian_3/symbian_3.pro b/src/plugins/bearer/symbian/symbian_3/symbian_3.pro
index ff0f11c..fd66198 100644
--- a/src/plugins/bearer/symbian/symbian_3/symbian_3.pro
+++ b/src/plugins/bearer/symbian/symbian_3/symbian_3.pro
@@ -12,7 +12,11 @@ symbian {
}
} else {
# Fall back to 3_1 implementation on platforms that do not have cmmanager
- LIBS += -lapengine
+ is_using_gnupoc {
+ LIBS += -lapengine
+ } else {
+ LIBS += -lAPEngine
+ }
}
}
diff --git a/src/plugins/bearer/symbian/symbianengine.cpp b/src/plugins/bearer/symbian/symbianengine.cpp
index 4bd6d2f..9593461 100644
--- a/src/plugins/bearer/symbian/symbianengine.cpp
+++ b/src/plugins/bearer/symbian/symbianengine.cpp
@@ -63,9 +63,9 @@
#include <cmpluginpacketdatadef.h>
#include <cmplugindialcommondefs.h>
#else
- #include <apaccesspointitem.h>
- #include <apdatahandler.h>
- #include <aputils.h>
+ #include <ApAccessPointItem.h>
+ #include <ApDataHandler.h>
+ #include <ApUtils.h>
#endif
#ifndef QT_NO_BEARERMANAGEMENT
@@ -75,7 +75,7 @@ QT_BEGIN_NAMESPACE
static const int KUserChoiceIAPId = 0;
SymbianNetworkConfigurationPrivate::SymbianNetworkConfigurationPrivate()
-: bearer(BearerUnknown), numericId(0), connectionId(0)
+: numericId(0), connectionId(0)
{
}
@@ -83,32 +83,6 @@ SymbianNetworkConfigurationPrivate::~SymbianNetworkConfigurationPrivate()
{
}
-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 @@ void SymbianEngine::initialize()
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));
@@ -517,25 +491,25 @@ SymbianNetworkConfigurationPrivate *SymbianEngine::configFromConnectionMethodL(
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;
}
@@ -619,28 +593,28 @@ void SymbianEngine::readNetworkConfigurationValuesFromCommsDbL(
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;
}
@@ -870,38 +844,38 @@ void SymbianEngine::updateMobileBearerToConfigs(TConnMonBearerInfo bearerInfo)
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;
}
}
diff --git a/src/plugins/bearer/symbian/symbianengine.h b/src/plugins/bearer/symbian/symbianengine.h
index ecd858d..1fe6395 100644
--- a/src/plugins/bearer/symbian/symbianengine.h
+++ b/src/plugins/bearer/symbian/symbianengine.h
@@ -73,23 +73,9 @@ class AccessPointsAvailabilityScanner;
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 @@ public:
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.
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp
index e4a0135..d5f0d42 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp
@@ -167,7 +167,6 @@ struct CachedImage
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 @@ enum PaintOperation {
DRAW_STATICTEXT = 0x8000, ALL = 0xffff
};
-#ifdef QT_DEBUG
-static void initRasterFallbacksMasks(int *warningMask, int *disableMask)
-{
- 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);
- }
- }
- }
- 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("|"))));
- }
-
-}
-#endif
-
-static inline int rasterFallbacksMask(bool warn)
+enum { RasterWarn = 1, RasterDisable = 2 };
+static inline uint rasterFallbacksMask(PaintOperation op)
{
+ uint ret = 0;
#ifdef QT_DIRECTFB_WARN_ON_RASTERFALLBACKS
- if (warn)
- return QT_DIRECTFB_WARN_ON_RASTERFALLBACKS;
+ if (op & QT_DIRECTFB_WARN_ON_RASTERFALLBACKS)
+ ret |= RasterWarn;
#endif
#ifdef QT_DIRECTFB_DISABLE_RASTERFALLBACKS
- if (!warn)
- return QT_DIRECTFB_DISABLE_RASTERFALLBACKS;
+ if (op & QT_DIRECTFB_DISABLE_RASTERFALLBACKS)
+ ret |= RasterDisable;
#endif
-#ifndef QT_DEBUG
- return 0;
-#else
- static int warnMask = -1;
+ static int warningMask = -1;
static int disableMask = -1;
- if (warnMask == -1)
- initRasterFallbacksMasks(&warnMask, &disableMask);
- return warn ? warnMask : disableMask;
-#endif
+ 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);
+ }
+ }
+ }
+ 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 (op & warningMask)
+ ret |= RasterWarn;
+ if (op & disableMask)
+ ret |= RasterDisable;
+ return ret;
}
-#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 @@ static void rasterFallbackWarn(const char *msg, const char *func, const device *
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 @@ static void rasterFallbackWarn(const char *msg, const char *func, const device *
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 @@ static inline void drawRects(const T *rects, int n, const QTransform &transform,
}
}
-#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 @@ static void rasterFallbackWarn(const char *msg, const char *func, const device *
qWarning("%s", qPrintable(out));
}
-#endif // QT_DIRECTFB_WARN_ON_RASTERFALLBACKS
-
QT_END_NAMESPACE
#endif // QT_NO_QWS_DIRECTFB
diff --git a/src/qt3support/widgets/q3gridview.cpp b/src/qt3support/widgets/q3gridview.cpp
index 343b49f..b270a38 100644
--- a/src/qt3support/widgets/q3gridview.cpp
+++ b/src/qt3support/widgets/q3gridview.cpp
@@ -84,7 +84,7 @@ using namespace Qt;
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.
*/
diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def
index 7844688..90c0878 100644
--- a/src/s60installs/bwins/QtGuiu.def
+++ b/src/s60installs/bwins/QtGuiu.def
@@ -12832,7 +12832,7 @@ EXPORTS
?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 ; unsigned int QRuntimePixmapData::memoryUsage(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 &)
diff --git a/src/s60installs/bwins/QtNetworku.def b/src/s60installs/bwins/QtNetworku.def
index 48af60c..2cf62a8 100644
--- a/src/s60installs/bwins/QtNetworku.def
+++ b/src/s60installs/bwins/QtNetworku.def
@@ -1143,4 +1143,6 @@ EXPORTS
?setNetworkAccessible@QNetworkAccessManager@@QAEXW4NetworkAccessibility@1@@Z @ 1142 NONAME ; void QNetworkAccessManager::setNetworkAccessible(enum QNetworkAccessManager::NetworkAccessibility)
??_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
diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def
index a22b4d9..d8e86bf 100644
--- a/src/s60installs/eabi/QtGuiu.def
+++ b/src/s60installs/eabi/QtGuiu.def
@@ -12046,7 +12046,7 @@ EXPORTS
_ZN18QRuntimePixmapDataD1Ev @ 12045 NONAME
_ZN18QRuntimePixmapDataD2Ev @ 12046 NONAME
_ZN7QPixmap15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 12047 NONAME
- _ZNK18QRuntimePixmapData11memoryUsageEv @ 12048 NONAME
+ _ZNK18QRuntimePixmapData11memoryUsageEv @ 12048 NONAME ABSENT
_ZNK18QRuntimePixmapData11paintEngineEv @ 12049 NONAME
_ZNK18QRuntimePixmapData11runtimeDataEv @ 12050 NONAME
_ZNK18QRuntimePixmapData11transformedERK10QTransformN2Qt18TransformationModeE @ 12051 NONAME
diff --git a/src/s60installs/eabi/QtNetworku.def b/src/s60installs/eabi/QtNetworku.def
index eb30832..2442ee8 100644
--- a/src/s60installs/eabi/QtNetworku.def
+++ b/src/s60installs/eabi/QtNetworku.def
@@ -1167,4 +1167,6 @@ EXPORTS
_ZN14QAuthenticator9setOptionERK7QStringRK8QVariant @ 1166 NONAME
_ZNK14QAuthenticator6optionERK7QString @ 1167 NONAME
_ZNK14QAuthenticator7optionsEv @ 1168 NONAME
+ _ZNK21QNetworkConfiguration10bearerTypeEv @ 1169 NONAME
+ _ZNK21QNetworkConfiguration14bearerTypeNameEv @ 1170 NONAME
diff --git a/src/script/api/qscriptcontext.cpp b/src/script/api/qscriptcontext.cpp
index 1a11100..abaf5f9 100644
--- a/src/script/api/qscriptcontext.cpp
+++ b/src/script/api/qscriptcontext.cpp
@@ -324,7 +324,7 @@ QScriptValue QScriptContext::argumentsObject() const
When a function is called as constructor, the thisObject()
contains the newly constructed object to be initialized.
- \note This function is only guarenteed to work for a context
+ \note This function is only guaranteed to work for a context
corresponding to native functions.
*/
bool QScriptContext::isCalledAsConstructor() const
diff --git a/src/script/api/qscriptengine.cpp b/src/script/api/qscriptengine.cpp
index bda71c0..dc22ec3 100644
--- a/src/script/api/qscriptengine.cpp
+++ b/src/script/api/qscriptengine.cpp
@@ -1706,7 +1706,7 @@ QVariant QScriptEnginePrivate::toVariant(JSC::ExecState *exec, JSC::JSValue valu
return variantValue(value);
#ifndef QT_NO_QOBJECT
else if (isQObject(value))
- return qVariantFromValue(toQObject(exec, value));
+ return QVariant::fromValue(toQObject(exec, value));
#endif
else if (isDate(value))
return QVariant(toDateTime(exec, value));
@@ -2430,10 +2430,6 @@ QScriptValue QScriptEngine::newQMetaObject(
\snippet doc/src/snippets/code/src_script_qscriptengine.cpp 13
- \warning This function is not available with MSVC 6. Use
- qScriptValueFromQMetaObject() instead if you need to support that version
- of the compiler.
-
\sa QScriptEngine::newQMetaObject()
*/
@@ -2441,14 +2437,17 @@ QScriptValue QScriptEngine::newQMetaObject(
\fn QScriptValue qScriptValueFromQMetaObject(QScriptEngine *engine)
\since 4.3
\relates QScriptEngine
+ \obsolete
Uses \a engine to create a QScriptValue that represents the Qt class
\c{T}.
This function is equivalent to
- QScriptEngine::scriptValueFromQMetaObject(). It is provided as a
- work-around for MSVC 6, which doesn't support member template
- functions.
+ QScriptEngine::scriptValueFromQMetaObject().
+
+ \note This function was provided as a workaround for MSVC 6
+ which did not support member template functions. It is advised
+ to use the other form in new code.
\sa QScriptEngine::newQMetaObject()
*/
@@ -2979,14 +2978,7 @@ JSC::JSValue QScriptEnginePrivate::create(JSC::ExecState *exec, int type, const
case QMetaType::LongLong:
return JSC::jsNumber(exec, qsreal(*reinterpret_cast<const qlonglong*>(ptr)));
case QMetaType::ULongLong:
-#if defined(Q_OS_WIN) && defined(_MSC_FULL_VER) && _MSC_FULL_VER <= 12008804
-#pragma message("** NOTE: You need the Visual Studio Processor Pack to compile support for 64bit unsigned integers.")
- return JSC::jsNumber(exec, qsreal((qlonglong)*reinterpret_cast<const qulonglong*>(ptr)));
-#elif defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET)
- return JSC::jsNumber(exec, qsreal((qlonglong)*reinterpret_cast<const qulonglong*>(ptr)));
-#else
return JSC::jsNumber(exec, qsreal(*reinterpret_cast<const qulonglong*>(ptr)));
-#endif
case QMetaType::Double:
return JSC::jsNumber(exec, qsreal(*reinterpret_cast<const double*>(ptr)));
case QMetaType::QString:
@@ -3744,10 +3736,6 @@ QStringList QScriptEngine::importedExtensions() const
to newVariant()); you can change this behavior by installing your
own type conversion functions with qScriptRegisterMetaType().
- \warning This function is not available with MSVC 6. Use
- qScriptValueFromValue() instead if you need to support that
- version of the compiler.
-
\sa fromScriptValue(), qScriptRegisterMetaType()
*/
@@ -3761,10 +3749,6 @@ QStringList QScriptEngine::importedExtensions() const
description of the built-in type conversion provided by
QtScript.
- \warning This function is not available with MSVC 6. Use
- qScriptValueToValue() or qscriptvalue_cast() instead if you need
- to support that version of the compiler.
-
\sa toScriptValue(), qScriptRegisterMetaType()
*/
@@ -3772,29 +3756,35 @@ QStringList QScriptEngine::importedExtensions() const
\fn QScriptValue qScriptValueFromValue(QScriptEngine *engine, const T &value)
\since 4.3
\relates QScriptEngine
+ \obsolete
Creates a QScriptValue using the given \a engine with the given \a
value of template type \c{T}.
This function is equivalent to QScriptEngine::toScriptValue().
- It is provided as a work-around for MSVC 6, which doesn't support
- member template functions.
- \sa qScriptValueToValue()
+ \note This function was provided as a workaround for MSVC 6
+ which did not support member template functions. It is advised
+ to use the other form in new code.
+
+ \sa QScriptEngine::toScriptValue(), qscriptvalue_cast
*/
/*!
\fn T qScriptValueToValue(const QScriptValue &value)
\since 4.3
\relates QScriptEngine
+ \obsolete
Returns the given \a value converted to the template type \c{T}.
This function is equivalent to QScriptEngine::fromScriptValue().
- It is provided as a work-around for MSVC 6, which doesn't
- support member template functions.
- \sa qScriptValueFromValue()
+ \note This function was provided as a workaround for MSVC 6
+ which did not support member template functions. It is advised
+ to use the other form in new code.
+
+ \sa QScriptEngine::fromScriptValue()
*/
/*!
@@ -3813,7 +3803,7 @@ QStringList QScriptEngine::importedExtensions() const
\l{Conversion Between QtScript and C++ Types} for more information
about the restrictions on types that can be used with QScriptValue.
- \sa qScriptValueFromValue()
+ \sa QScriptEngine::fromScriptValue()
*/
/*!
diff --git a/src/script/api/qscriptengine.h b/src/script/api/qscriptengine.h
index 3212ed5..830d477 100644
--- a/src/script/api/qscriptengine.h
+++ b/src/script/api/qscriptengine.h
@@ -65,13 +65,11 @@ inline QScriptValue qscriptQMetaObjectConstructor(QScriptContext *, QScriptEngin
class QRegExp;
#endif
-#ifndef QT_NO_MEMBER_TEMPLATES
template <typename T>
inline QScriptValue qScriptValueFromValue(QScriptEngine *, const T &);
template <typename T>
-inline T qScriptValueToValue(const QScriptValue &);
-#endif
+inline T qscriptvalue_cast(const QScriptValue &);
class QScriptSyntaxCheckResultPrivate;
class Q_SCRIPT_EXPORT QScriptSyntaxCheckResult
@@ -196,9 +194,7 @@ public:
QScriptValue newQMetaObject(const QMetaObject *metaObject, const QScriptValue &ctor = QScriptValue());
-# ifndef QT_NO_MEMBER_TEMPLATES
template <class T> QScriptValue scriptValueFromQMetaObject();
-# endif // QT_NO_MEMBER_TEMPLATES
#endif // QT_NO_QOBJECT
@@ -213,7 +209,6 @@ public:
-#ifndef QT_NO_MEMBER_TEMPLATES
template <typename T>
inline QScriptValue toScriptValue(const T &value)
{
@@ -222,9 +217,8 @@ public:
template <typename T>
inline T fromScriptValue(const QScriptValue &value)
{
- return qScriptValueToValue<T>(value);
+ return qscriptvalue_cast<T>(value);
}
-#endif // QT_NO_MEMBER_TEMPLATES
void installTranslatorFunctions(const QScriptValue &object = QScriptValue());
@@ -285,19 +279,6 @@ private:
};
#ifndef QT_NO_QOBJECT
-template <class T>
-inline QScriptValue qScriptValueFromQMetaObject(
- QScriptEngine *engine
-#ifndef qdoc
- , T * /* dummy */ = 0
-#endif
- )
-{
- typedef QScriptValue(*ConstructPtr)(QScriptContext *, QScriptEngine *, T *);
- ConstructPtr cptr = qscriptQMetaObjectConstructor<T>;
- return engine->newQMetaObject(&T::staticMetaObject,
- engine->newFunction(reinterpret_cast<QScriptEngine::FunctionWithArgSignature>(cptr), 0));
-}
#define Q_SCRIPT_DECLARE_QMETAOBJECT(T, _Arg1) \
template<> inline QScriptValue qscriptQMetaObjectConstructor<T>(QScriptContext *ctx, QScriptEngine *eng, T *) \
@@ -311,12 +292,26 @@ template<> inline QScriptValue qscriptQMetaObjectConstructor<T>(QScriptContext *
return o; \
}
-# ifndef QT_NO_MEMBER_TEMPLATES
- template <class T> QScriptValue QScriptEngine::scriptValueFromQMetaObject()
- {
- return qScriptValueFromQMetaObject<T>(this);
- }
-# endif // QT_NO_MEMBER_TEMPLATES
+template <class T> QScriptValue QScriptEngine::scriptValueFromQMetaObject()
+{
+ typedef QScriptValue(*ConstructPtr)(QScriptContext *, QScriptEngine *, T *);
+ ConstructPtr cptr = qscriptQMetaObjectConstructor<T>;
+ return newQMetaObject(&T::staticMetaObject,
+ newFunction(reinterpret_cast<FunctionWithArgSignature>(cptr), 0));
+}
+
+#ifdef QT_DEPRECATED
+template <class T>
+inline QT_DEPRECATED QScriptValue qScriptValueFromQMetaObject(
+ QScriptEngine *engine
+#ifndef qdoc
+ , T * /* dummy */ = 0
+#endif
+ )
+{
+ return engine->scriptValueFromQMetaObject<T>();
+}
+#endif
#endif // QT_NO_QOBJECT
@@ -349,11 +344,7 @@ inline bool qscriptvalue_cast_helper(const QScriptValue &value, int type, void *
}
template<typename T>
-T qscriptvalue_cast(const QScriptValue &value
-#if !defined qdoc && defined Q_CC_MSVC && _MSC_VER < 1300
-, T * = 0
-#endif
- )
+T qscriptvalue_cast(const QScriptValue &value)
{
T t;
const int id = qMetaTypeId<T>();
@@ -366,19 +357,19 @@ T qscriptvalue_cast(const QScriptValue &value
return T();
}
-#if !defined Q_CC_MSVC || _MSC_VER >= 1300
template <>
inline QVariant qscriptvalue_cast<QVariant>(const QScriptValue &value)
{
return value.toVariant();
}
-#endif
+#ifdef QT_DEPRECATED
template <typename T>
-inline T qScriptValueToValue(const QScriptValue &value)
+inline QT_DEPRECATED T qScriptValueToValue(const QScriptValue &value)
{
return qscriptvalue_cast<T>(value);
}
+#endif
inline void qScriptRegisterMetaType_helper(QScriptEngine *eng, int type,
QScriptEngine::MarshalFunction mf,
@@ -418,7 +409,7 @@ QScriptValue qScriptValueFromSequence(QScriptEngine *eng, const Container &cont)
typename Container::const_iterator it;
quint32 i;
for (it = begin, i = 0; it != end; ++it, ++i)
- a.setProperty(i, qScriptValueFromValue(eng, *it));
+ a.setProperty(i, eng->toScriptValue(*it));
return a;
}
@@ -428,11 +419,7 @@ void qScriptValueToSequence(const QScriptValue &value, Container &cont)
quint32 len = value.property(QLatin1String("length")).toUInt32();
for (quint32 i = 0; i < len; ++i) {
QScriptValue item = value.property(i);
-#if defined Q_CC_MSVC && !defined Q_CC_MSVC_NET
- cont.push_back(qscriptvalue_cast<Container::value_type>(item));
-#else
cont.push_back(qscriptvalue_cast<typename Container::value_type>(item));
-#endif
}
}
diff --git a/src/script/api/qscriptvalue.cpp b/src/script/api/qscriptvalue.cpp
index f6390bb..fbd5d96 100644
--- a/src/script/api/qscriptvalue.cpp
+++ b/src/script/api/qscriptvalue.cpp
@@ -688,10 +688,6 @@ static bool LessThan(QScriptValue lhs, QScriptValue rhs)
return false;
case Number:
-#if defined Q_CC_MSVC && !defined Q_CC_MSVC_NET
- if (qIsNaN(lhs.toNumber()) || qIsNaN(rhs.toNumber()))
- return false;
-#endif
return lhs.toNumber() < rhs.toNumber();
case Boolean:
@@ -714,13 +710,7 @@ static bool LessThan(QScriptValue lhs, QScriptValue rhs)
if (lhs.isString() && rhs.isString())
return lhs.toString() < rhs.toString();
- qsreal n1 = lhs.toNumber();
- qsreal n2 = rhs.toNumber();
-#if defined Q_CC_MSVC && !defined Q_CC_MSVC_NET
- if (qIsNaN(n1) || qIsNaN(n2))
- return false;
-#endif
- return n1 < n2;
+ return lhs.toNumber() < rhs.toNumber();
}
static bool Equals(QScriptValue lhs, QScriptValue rhs)
diff --git a/src/script/bridge/qscriptactivationobject.cpp b/src/script/bridge/qscriptactivationobject.cpp
index 6a8ae56..85224d1 100644
--- a/src/script/bridge/qscriptactivationobject.cpp
+++ b/src/script/bridge/qscriptactivationobject.cpp
@@ -53,7 +53,7 @@ QScriptActivationObject::QScriptActivationObject(JSC::ExecState *callFrame, JSC:
QScriptActivationObject::~QScriptActivationObject()
{
- delete d;
+ delete d_ptr();
}
bool QScriptActivationObject::getOwnPropertySlot(JSC::ExecState* exec, const JSC::Identifier& propertyName, JSC::PropertySlot& slot)
diff --git a/src/script/bridge/qscriptclassobject.cpp b/src/script/bridge/qscriptclassobject.cpp
index dd229f1..28f7bd1 100644
--- a/src/script/bridge/qscriptclassobject.cpp
+++ b/src/script/bridge/qscriptclassobject.cpp
@@ -211,7 +211,7 @@ JSC::JSValue JSC_HOST_CALL ClassObjectDelegate::call(JSC::ExecState *exec, JSC::
eng_p->pushContext(exec, thisValue, args, callee);
QScriptContext *ctx = eng_p->contextForFrame(eng_p->currentFrame);
QScriptValue scriptObject = eng_p->scriptValueFromJSCValue(obj);
- QVariant result = scriptClass->extension(QScriptClass::Callable, qVariantFromValue(ctx));
+ QVariant result = scriptClass->extension(QScriptClass::Callable, QVariant::fromValue(ctx));
eng_p->popContext();
eng_p->currentFrame = oldFrame;
return QScriptEnginePrivate::jscValueFromVariant(exec, result);
@@ -239,7 +239,7 @@ JSC::JSObject* ClassObjectDelegate::construct(JSC::ExecState *exec, JSC::JSObjec
QScriptContext *ctx = eng_p->contextForFrame(eng_p->currentFrame);
QScriptValue defaultObject = ctx->thisObject();
- QScriptValue result = qvariant_cast<QScriptValue>(scriptClass->extension(QScriptClass::Callable, qVariantFromValue(ctx)));
+ QScriptValue result = qvariant_cast<QScriptValue>(scriptClass->extension(QScriptClass::Callable, QVariant::fromValue(ctx)));
if (!result.isObject())
result = defaultObject;
eng_p->popContext();
@@ -256,7 +256,7 @@ bool ClassObjectDelegate::hasInstance(QScriptObject* object, JSC::ExecState *exe
QScriptEnginePrivate *eng_p = scriptEngineFromExec(exec);
QScript::SaveFrameHelper saveFrame(eng_p, exec);
args << eng_p->scriptValueFromJSCValue(object) << eng_p->scriptValueFromJSCValue(value);
- QVariant result = scriptClass()->extension(QScriptClass::HasInstance, qVariantFromValue(args));
+ QVariant result = scriptClass()->extension(QScriptClass::HasInstance, QVariant::fromValue(args));
return result.toBool();
}
diff --git a/src/script/bridge/qscriptqobject.cpp b/src/script/bridge/qscriptqobject.cpp
index 5e4f097..d24f2fe 100644
--- a/src/script/bridge/qscriptqobject.cpp
+++ b/src/script/bridge/qscriptqobject.cpp
@@ -664,7 +664,7 @@ static JSC::JSValue callQtMethod(JSC::ExecState *exec, QMetaMethod::MethodType c
if (actual.isNumber()) {
int ival = QScriptEnginePrivate::toInt32(exec, actual);
if (m.valueToKey(ival) != 0) {
- qVariantSetValue(v, ival);
+ v.setValue(ival);
converted = true;
matchDistance += 10;
}
@@ -672,7 +672,7 @@ static JSC::JSValue callQtMethod(JSC::ExecState *exec, QMetaMethod::MethodType c
JSC::UString sval = QScriptEnginePrivate::toString(exec, actual);
int ival = m.keyToValue(convertToLatin1(sval));
if (ival != -1) {
- qVariantSetValue(v, ival);
+ v.setValue(ival);
converted = true;
matchDistance += 10;
}
@@ -1668,7 +1668,7 @@ static JSC::JSValue JSC_HOST_CALL qobjectProtoFuncFindChild(JSC::ExecState *exec
QString name;
if (args.size() != 0)
name = args.at(0).toString(exec);
- QObject *child = qFindChild<QObject*>(obj, name);
+ QObject *child = obj->findChild<QObject*>(name);
QScriptEngine::QObjectWrapOptions opt = QScriptEngine::PreferExistingWrapperObject;
return engine->newQObject(child, QScriptEngine::QtOwnership, opt);
}
@@ -1709,10 +1709,10 @@ static JSC::JSValue JSC_HOST_CALL qobjectProtoFuncFindChildren(JSC::ExecState *e
}
} else {
const QString name(args.at(0).toString(exec));
- children = qFindChildren<QObject*>(obj, name);
+ children = obj->findChildren<QObject*>(name);
}
} else {
- children = qFindChildren<QObject*>(obj, QString());
+ children = obj->findChildren<QObject*>(QString());
}
// create the result array with the children
const int length = children.size();
diff --git a/src/script/bridge/qscriptstaticscopeobject.cpp b/src/script/bridge/qscriptstaticscopeobject.cpp
index 44548a4..940c859 100644
--- a/src/script/bridge/qscriptstaticscopeobject.cpp
+++ b/src/script/bridge/qscriptstaticscopeobject.cpp
@@ -87,7 +87,7 @@ QScriptStaticScopeObject::QScriptStaticScopeObject(WTF::NonNullPassRefPtr<JSC::S
QScriptStaticScopeObject::~QScriptStaticScopeObject()
{
- delete d;
+ delete d_ptr();
}
bool QScriptStaticScopeObject::getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot& slot)
diff --git a/src/scripttools/debugging/qscriptdebuggercommand.cpp b/src/scripttools/debugging/qscriptdebuggercommand.cpp
index fa223ec..5ca0535 100644
--- a/src/scripttools/debugging/qscriptdebuggercommand.cpp
+++ b/src/scripttools/debugging/qscriptdebuggercommand.cpp
@@ -256,7 +256,7 @@ QScriptBreakpointData QScriptDebuggerCommand::breakpointData() const
void QScriptDebuggerCommand::setBreakpointData(const QScriptBreakpointData &data)
{
Q_D(QScriptDebuggerCommand);
- d->attributes[BreakpointData] = qVariantFromValue(data);
+ d->attributes[BreakpointData] = QVariant::fromValue(data);
}
QScriptDebuggerValue QScriptDebuggerCommand::scriptValue() const
@@ -268,7 +268,7 @@ QScriptDebuggerValue QScriptDebuggerCommand::scriptValue() const
void QScriptDebuggerCommand::setScriptValue(const QScriptDebuggerValue &value)
{
Q_D(QScriptDebuggerCommand);
- d->attributes[ScriptValue] = qVariantFromValue(value);
+ d->attributes[ScriptValue] = QVariant::fromValue(value);
}
int QScriptDebuggerCommand::contextIndex() const
@@ -316,7 +316,7 @@ QScriptDebuggerValue QScriptDebuggerCommand::subordinateScriptValue() const
void QScriptDebuggerCommand::setSubordinateScriptValue(const QScriptDebuggerValue &value)
{
Q_D(QScriptDebuggerCommand);
- d->attributes[SubordinateScriptValue] = qVariantFromValue(value);
+ d->attributes[SubordinateScriptValue] = QVariant::fromValue(value);
}
int QScriptDebuggerCommand::snapshotId() const
diff --git a/src/scripttools/debugging/qscriptdebuggercommandexecutor.cpp b/src/scripttools/debugging/qscriptdebuggercommandexecutor.cpp
index 568af59..7616148 100644
--- a/src/scripttools/debugging/qscriptdebuggercommandexecutor.cpp
+++ b/src/scripttools/debugging/qscriptdebuggercommandexecutor.cpp
@@ -229,11 +229,11 @@ QScriptDebuggerResponse QScriptDebuggerCommandExecutor::execute(
case QScriptDebuggerCommand::ScriptsCheckpoint:
backend->scriptsCheckpoint();
- response.setResult(qVariantFromValue(backend->scriptsDelta()));
+ response.setResult(QVariant::fromValue(backend->scriptsDelta()));
break;
case QScriptDebuggerCommand::GetScriptsDelta:
- response.setResult(qVariantFromValue(backend->scriptsDelta()));
+ response.setResult(QVariant::fromValue(backend->scriptsDelta()));
break;
case QScriptDebuggerCommand::ResolveScript:
@@ -302,7 +302,7 @@ QScriptDebuggerResponse QScriptDebuggerCommandExecutor::execute(
} break;
case QScriptDebuggerCommand::ContextsCheckpoint: {
- response.setResult(qVariantFromValue(backend->contextsCheckpoint()));
+ response.setResult(QVariant::fromValue(backend->contextsCheckpoint()));
} break;
case QScriptDebuggerCommand::GetPropertyExpressionValue: {
@@ -441,7 +441,7 @@ QScriptDebuggerResponse QScriptDebuggerCommandExecutor::execute(
result.addedProperties.append(dest);
}
backend->setIgnoreExceptions(didIgnoreExceptions);
- response.setResult(qVariantFromValue(result));
+ response.setResult(QVariant::fromValue(result));
} break;
case QScriptDebuggerCommand::DeleteScriptObjectSnapshot: {
diff --git a/src/scripttools/debugging/qscriptdebuggerconsole.cpp b/src/scripttools/debugging/qscriptdebuggerconsole.cpp
index 2f7a998..268b30e 100644
--- a/src/scripttools/debugging/qscriptdebuggerconsole.cpp
+++ b/src/scripttools/debugging/qscriptdebuggerconsole.cpp
@@ -76,7 +76,7 @@ QT_BEGIN_NAMESPACE
static QScriptValue debuggerResponseToScriptValue(QScriptEngine *eng, const QScriptDebuggerResponse &in)
{
QScriptValue out = eng->newObject();
- out.setProperty(QString::fromLatin1("result"), qScriptValueFromValue(eng, in.result()));
+ out.setProperty(QString::fromLatin1("result"), eng->toScriptValue(in.result()));
out.setProperty(QString::fromLatin1("error"), QScriptValue(eng, in.error()));
out.setProperty(QString::fromLatin1("async"), QScriptValue(eng, in.async()));
return out;
@@ -122,7 +122,7 @@ static QScriptValue breakpointMapToScriptValue(QScriptEngine *eng, const QScript
QScriptValue out = eng->newObject();
QScriptBreakpointMap::const_iterator it;
for (it = in.constBegin(); it != in.constEnd(); ++it) {
- out.setProperty(QString::number(it.key()), qScriptValueFromValue(eng, it.value()));
+ out.setProperty(QString::number(it.key()), eng->toScriptValue(it.value()));
}
return out;
}
@@ -155,7 +155,7 @@ static QScriptValue scriptMapToScriptValue(QScriptEngine *eng, const QScriptScri
QScriptValue out = eng->newObject();
QScriptScriptMap::const_iterator it;
for (it = in.constBegin(); it != in.constEnd(); ++it) {
- out.setProperty(QString::number(it.key()), qScriptValueFromValue(eng, it.value()));
+ out.setProperty(QString::number(it.key()), eng->toScriptValue(it.value()));
}
return out;
}
@@ -175,8 +175,8 @@ static QScriptValue consoleCommandToScriptValue(
out.setProperty(QString::fromLatin1("group"), QScriptValue(eng, in->group()));
out.setProperty(QString::fromLatin1("shortDescription"), QScriptValue(eng, in->shortDescription()));
out.setProperty(QString::fromLatin1("longDescription"), QScriptValue(eng, in->longDescription()));
- out.setProperty(QString::fromLatin1("aliases"), qScriptValueFromValue(eng, in->aliases()));
- out.setProperty(QString::fromLatin1("seeAlso"), qScriptValueFromValue(eng, in->seeAlso()));
+ out.setProperty(QString::fromLatin1("aliases"), eng->toScriptValue(in->aliases()));
+ out.setProperty(QString::fromLatin1("seeAlso"), eng->toScriptValue(in->seeAlso()));
return out;
}
@@ -207,7 +207,7 @@ static QScriptValue consoleCommandGroupMapToScriptValue(
QScriptValue out = eng->newObject();
QScriptDebuggerConsoleCommandGroupMap::const_iterator it;
for (it = in.constBegin(); it != in.constEnd(); ++it) {
- out.setProperty(it.key(), qScriptValueFromValue(eng, it.value()));
+ out.setProperty(it.key(), eng->toScriptValue(it.value()));
}
return out;
}
@@ -238,7 +238,7 @@ static QScriptValue debuggerScriptValuePropertyToScriptValue(QScriptEngine *eng,
{
QScriptValue out = eng->newObject();
out.setProperty(QString::fromLatin1("name"), QScriptValue(eng, in.name()));
- out.setProperty(QString::fromLatin1("value"), qScriptValueFromValue(eng, in.value()));
+ out.setProperty(QString::fromLatin1("value"), eng->toScriptValue(in.value()));
out.setProperty(QString::fromLatin1("valueAsString"), QScriptValue(eng, in.valueAsString()));
out.setProperty(QString::fromLatin1("flags"), QScriptValue(eng, static_cast<int>(in.flags())));
return out;
diff --git a/src/scripttools/debugging/qscriptdebuggerevent.cpp b/src/scripttools/debugging/qscriptdebuggerevent.cpp
index f5f20cf..55df35b 100644
--- a/src/scripttools/debugging/qscriptdebuggerevent.cpp
+++ b/src/scripttools/debugging/qscriptdebuggerevent.cpp
@@ -216,7 +216,7 @@ QScriptDebuggerValue QScriptDebuggerEvent::scriptValue() const
void QScriptDebuggerEvent::setScriptValue(const QScriptDebuggerValue &value)
{
Q_D(QScriptDebuggerEvent);
- d->attributes[Value] = qVariantFromValue(value);
+ d->attributes[Value] = QVariant::fromValue(value);
}
void QScriptDebuggerEvent::setNestedEvaluate(bool nested)
diff --git a/src/scripttools/debugging/qscriptdebuggerresponse.cpp b/src/scripttools/debugging/qscriptdebuggerresponse.cpp
index 0caa3e2..382e604e 100644
--- a/src/scripttools/debugging/qscriptdebuggerresponse.cpp
+++ b/src/scripttools/debugging/qscriptdebuggerresponse.cpp
@@ -162,49 +162,49 @@ void QScriptDebuggerResponse::setResult(const QString &value)
void QScriptDebuggerResponse::setResult(const QScriptBreakpointData &data)
{
Q_D(QScriptDebuggerResponse);
- d->result = qVariantFromValue(data);
+ d->result = QVariant::fromValue(data);
}
void QScriptDebuggerResponse::setResult(const QScriptBreakpointMap &breakpoints)
{
Q_D(QScriptDebuggerResponse);
- d->result = qVariantFromValue(breakpoints);
+ d->result = QVariant::fromValue(breakpoints);
}
void QScriptDebuggerResponse::setResult(const QScriptScriptMap &scripts)
{
Q_D(QScriptDebuggerResponse);
- d->result = qVariantFromValue(scripts);
+ d->result = QVariant::fromValue(scripts);
}
void QScriptDebuggerResponse::setResult(const QScriptScriptData &data)
{
Q_D(QScriptDebuggerResponse);
- d->result = qVariantFromValue(data);
+ d->result = QVariant::fromValue(data);
}
void QScriptDebuggerResponse::setResult(const QScriptDebuggerValue &value)
{
Q_D(QScriptDebuggerResponse);
- d->result = qVariantFromValue(value);
+ d->result = QVariant::fromValue(value);
}
void QScriptDebuggerResponse::setResult(const QScriptDebuggerValueList &values)
{
Q_D(QScriptDebuggerResponse);
- d->result = qVariantFromValue(values);
+ d->result = QVariant::fromValue(values);
}
void QScriptDebuggerResponse::setResult(const QScriptDebuggerValuePropertyList &props)
{
Q_D(QScriptDebuggerResponse);
- d->result = qVariantFromValue(props);
+ d->result = QVariant::fromValue(props);
}
void QScriptDebuggerResponse::setResult(const QScriptContextInfo &info)
{
Q_D(QScriptDebuggerResponse);
- d->result = qVariantFromValue(info);
+ d->result = QVariant::fromValue(info);
}
int QScriptDebuggerResponse::resultAsInt() const
diff --git a/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp b/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp
index 117c2d6..83cabfd 100644
--- a/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp
+++ b/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp
@@ -227,7 +227,7 @@ void QScriptDebuggerScriptedConsoleCommandJob::handleResponse(
QScriptEngine *engine = d->command->globalObject.engine();
engine->setGlobalObject(d->command->globalObject);
QScriptValueList args;
- args.append(qScriptValueFromValue(engine, response));
+ args.append(engine->toScriptValue(response));
args.append(QScriptValue(engine, commandId));
QScriptDebuggerConsoleGlobalObject *global;
global = qobject_cast<QScriptDebuggerConsoleGlobalObject*>(d->command->globalObject.toQObject());
diff --git a/src/sql/drivers/mysql/qsql_mysql.cpp b/src/sql/drivers/mysql/qsql_mysql.cpp
index 2261887..a060a01 100644
--- a/src/sql/drivers/mysql/qsql_mysql.cpp
+++ b/src/sql/drivers/mysql/qsql_mysql.cpp
@@ -420,10 +420,10 @@ QVariant QMYSQLResult::handle() const
{
#if MYSQL_VERSION_ID >= 40108
if(d->preparedQuery)
- return d->meta ? qVariantFromValue(d->meta) : qVariantFromValue(d->stmt);
+ return d->meta ? QVariant::fromValue(d->meta) : qVariantFromValue(d->stmt);
else
#endif
- return qVariantFromValue(d->result);
+ return QVariant::fromValue(d->result);
}
void QMYSQLResult::cleanup()
@@ -1432,7 +1432,7 @@ QSqlRecord QMYSQLDriver::record(const QString& tablename) const
QVariant QMYSQLDriver::handle() const
{
- return qVariantFromValue(d->mysql);
+ return QVariant::fromValue(d->mysql);
}
bool QMYSQLDriver::beginTransaction()
diff --git a/src/sql/drivers/oci/qsql_oci.cpp b/src/sql/drivers/oci/qsql_oci.cpp
index e11cf75..6870055 100644
--- a/src/sql/drivers/oci/qsql_oci.cpp
+++ b/src/sql/drivers/oci/qsql_oci.cpp
@@ -293,9 +293,9 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in
SQLT_FLT, indPtr, 0, 0, 0, 0, OCI_DEFAULT);
break;
case QVariant::UserType:
- if (qVariantCanConvert<QOCIRowIdPointer>(val) && !isOutValue(pos)) {
+ if (val.canConvert<QOCIRowIdPointer>() && !isOutValue(pos)) {
// use a const pointer to prevent a detach
- const QOCIRowIdPointer rptr = qVariantValue<QOCIRowIdPointer>(val);
+ const QOCIRowIdPointer rptr = qvariant_cast<QOCIRowIdPointer>(val);
r = OCIBindByPos(sql, hbnd, err,
pos + 1,
// it's an IN value, so const_cast is ok
@@ -1364,8 +1364,8 @@ bool QOCICols::execBatch(QOCIResultPrivate *d, QVector<QVariant> &boundValues, b
break;
}
case QVariant::UserType:
- if (qVariantCanConvert<QOCIRowIdPointer>(val)) {
- const QOCIRowIdPointer rptr = qVariantValue<QOCIRowIdPointer>(val);
+ if (val.canConvert<QOCIRowIdPointer>()) {
+ const QOCIRowIdPointer rptr = qvariant_cast<QOCIRowIdPointer>(val);
*reinterpret_cast<OCIRowid**>(dataPtr) = rptr->id;
columns[i].lengths[row] = 0;
break;
@@ -1704,7 +1704,7 @@ QOCIResult::~QOCIResult()
QVariant QOCIResult::handle() const
{
- return qVariantFromValue(d->sql);
+ return QVariant::fromValue(d->sql);
}
bool QOCIResult::reset (const QString& query)
@@ -1932,7 +1932,7 @@ QVariant QOCIResult::lastInsertId() const
int r = OCIAttrGet(d->sql, OCI_HTYPE_STMT, ptr.constData()->id,
0, OCI_ATTR_ROWID, d->err);
if (r == OCI_SUCCESS)
- return qVariantFromValue(ptr);
+ return QVariant::fromValue(ptr);
}
return QVariant();
}
@@ -2534,7 +2534,7 @@ QString QOCIDriver::formatValue(const QSqlField &field, bool trimStrings) const
QVariant QOCIDriver::handle() const
{
- return qVariantFromValue(d->env);
+ return QVariant::fromValue(d->env);
}
QString QOCIDriver::escapeIdentifier(const QString &identifier, IdentifierType type) const
diff --git a/src/sql/drivers/odbc/qsql_odbc.cpp b/src/sql/drivers/odbc/qsql_odbc.cpp
index 9a35ac5..cc73f1b 100644
--- a/src/sql/drivers/odbc/qsql_odbc.cpp
+++ b/src/sql/drivers/odbc/qsql_odbc.cpp
@@ -62,15 +62,6 @@ QT_BEGIN_NAMESPACE
// undefine this to prevent initial check of the ODBC driver
#define ODBC_CHECK_DRIVER
-// newer platform SDKs use SQLLEN instead of SQLINTEGER
-#if defined(WIN32) && (_MSC_VER < 1300) && !defined(__MINGW64_VERSION_MAJOR)
-# define QSQLLEN SQLINTEGER
-# define QSQLULEN SQLUINTEGER
-#else
-# define QSQLLEN SQLLEN
-# define QSQLULEN SQLULEN
-#endif
-
static const int COLNAMESIZE = 256;
//Map Qt parameter types to ODBC types
static const SQLSMALLINT qParamType[4] = { SQL_PARAM_INPUT, SQL_PARAM_INPUT, SQL_PARAM_OUTPUT, SQL_PARAM_INPUT_OUTPUT };
@@ -360,7 +351,7 @@ static QString qGetStringData(SQLHANDLE hStmt, int column, int colSize, bool uni
{
QString fieldVal;
SQLRETURN r = SQL_ERROR;
- QSQLLEN lengthIndicator = 0;
+ SQLLEN lengthIndicator = 0;
// NB! colSize must be a multiple of 2 for unicode enabled DBs
if (colSize <= 0) {
@@ -462,10 +453,10 @@ static QVariant qGetBinaryData(SQLHANDLE hStmt, int column)
QByteArray fieldVal;
SQLSMALLINT colNameLen;
SQLSMALLINT colType;
- QSQLULEN colSize;
+ SQLULEN colSize;
SQLSMALLINT colScale;
SQLSMALLINT nullable;
- QSQLLEN lengthIndicator = 0;
+ SQLLEN lengthIndicator = 0;
SQLRETURN r = SQL_ERROR;
QVarLengthArray<SQLTCHAR> colName(COLNAMESIZE);
@@ -499,7 +490,7 @@ static QVariant qGetBinaryData(SQLHANDLE hStmt, int column)
break;
if (lengthIndicator == SQL_NULL_DATA)
return QVariant(QVariant::ByteArray);
- if (lengthIndicator > QSQLLEN(colSize) || lengthIndicator == SQL_NO_TOTAL) {
+ if (lengthIndicator > SQLLEN(colSize) || lengthIndicator == SQL_NO_TOTAL) {
read += colSize;
colSize = 65536;
} else {
@@ -517,7 +508,7 @@ static QVariant qGetBinaryData(SQLHANDLE hStmt, int column)
static QVariant qGetIntData(SQLHANDLE hStmt, int column, bool isSigned = true)
{
SQLINTEGER intbuf = 0;
- QSQLLEN lengthIndicator = 0;
+ SQLLEN lengthIndicator = 0;
SQLRETURN r = SQLGetData(hStmt,
column+1,
isSigned ? SQL_C_SLONG : SQL_C_ULONG,
@@ -537,7 +528,7 @@ static QVariant qGetIntData(SQLHANDLE hStmt, int column, bool isSigned = true)
static QVariant qGetDoubleData(SQLHANDLE hStmt, int column)
{
SQLDOUBLE dblbuf;
- QSQLLEN lengthIndicator = 0;
+ SQLLEN lengthIndicator = 0;
SQLRETURN r = SQLGetData(hStmt,
column+1,
SQL_C_DOUBLE,
@@ -557,7 +548,7 @@ static QVariant qGetDoubleData(SQLHANDLE hStmt, int column)
static QVariant qGetBigIntData(SQLHANDLE hStmt, int column, bool isSigned = true)
{
SQLBIGINT lngbuf = 0;
- QSQLLEN lengthIndicator = 0;
+ SQLLEN lengthIndicator = 0;
SQLRETURN r = SQLGetData(hStmt,
column+1,
isSigned ? SQL_C_SBIGINT : SQL_C_UBIGINT,
@@ -601,7 +592,7 @@ static QSqlField qMakeFieldInfo(const QODBCPrivate* p, int i )
{
SQLSMALLINT colNameLen;
SQLSMALLINT colType;
- QSQLULEN colSize;
+ SQLULEN colSize;
SQLSMALLINT colScale;
SQLSMALLINT nullable;
SQLRETURN r = SQL_ERROR;
@@ -621,7 +612,7 @@ static QSqlField qMakeFieldInfo(const QODBCPrivate* p, int i )
return QSqlField();
}
- QSQLLEN unsignedFlag = SQL_FALSE;
+ SQLLEN unsignedFlag = SQL_FALSE;
r = SQLColAttribute (p->hStmt,
i + 1,
SQL_DESC_UNSIGNED,
@@ -1146,7 +1137,7 @@ QVariant QODBCResult::data(int field)
return d->fieldCache.at(field);
SQLRETURN r(0);
- QSQLLEN lengthIndicator = 0;
+ SQLLEN lengthIndicator = 0;
for (int i = d->fieldCacheIdx; i <= field; ++i) {
// some servers do not support fetching column n after we already
@@ -1256,7 +1247,7 @@ int QODBCResult::size()
int QODBCResult::numRowsAffected()
{
- QSQLLEN affectedRowCount = 0;
+ SQLLEN affectedRowCount = 0;
SQLRETURN r = SQLRowCount(d->hStmt, &affectedRowCount);
if (r == SQL_SUCCESS)
return affectedRowCount;
@@ -1343,8 +1334,8 @@ bool QODBCResult::exec()
SQLCloseCursor(d->hStmt);
QList<QByteArray> tmpStorage; // holds temporary buffers
- QVarLengthArray<QSQLLEN, 32> indicators(boundValues().count());
- memset(indicators.data(), 0, indicators.size() * sizeof(QSQLLEN));
+ QVarLengthArray<SQLLEN, 32> indicators(boundValues().count());
+ memset(indicators.data(), 0, indicators.size() * sizeof(SQLLEN));
// bind parameters - only positional binding allowed
QVector<QVariant>& values = boundValues();
@@ -1354,7 +1345,7 @@ bool QODBCResult::exec()
if (bindValueType(i) & QSql::Out)
values[i].detach();
const QVariant &val = values.at(i);
- QSQLLEN *ind = &indicators[i];
+ SQLLEN *ind = &indicators[i];
if (val.isNull())
*ind = SQL_NULL_DATA;
switch (val.type()) {
diff --git a/src/sql/drivers/psql/qsql_psql.cpp b/src/sql/drivers/psql/qsql_psql.cpp
index 2a4e595..179f7ba 100644
--- a/src/sql/drivers/psql/qsql_psql.cpp
+++ b/src/sql/drivers/psql/qsql_psql.cpp
@@ -279,7 +279,7 @@ QPSQLResult::~QPSQLResult()
QVariant QPSQLResult::handle() const
{
- return qVariantFromValue(d->result);
+ return QVariant::fromValue(d->result);
}
void QPSQLResult::cleanup()
@@ -706,7 +706,7 @@ QPSQLDriver::~QPSQLDriver()
QVariant QPSQLDriver::handle() const
{
- return qVariantFromValue(d->connection);
+ return QVariant::fromValue(d->connection);
}
bool QPSQLDriver::hasFeature(DriverFeature f) const
diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp
index 4344af4..e5cc614 100644
--- a/src/sql/drivers/sqlite/qsql_sqlite.cpp
+++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp
@@ -452,7 +452,7 @@ QSqlRecord QSQLiteResult::record() const
QVariant QSQLiteResult::handle() const
{
- return qVariantFromValue(d->stmt);
+ return QVariant::fromValue(d->stmt);
}
/////////////////////////////////////////////////////////
@@ -697,7 +697,7 @@ QSqlRecord QSQLiteDriver::record(const QString &tbl) const
QVariant QSQLiteDriver::handle() const
{
- return qVariantFromValue(d->access);
+ return QVariant::fromValue(d->access);
}
QString QSQLiteDriver::escapeIdentifier(const QString &identifier, IdentifierType type) const
diff --git a/src/sql/drivers/sqlite2/qsql_sqlite2.cpp b/src/sql/drivers/sqlite2/qsql_sqlite2.cpp
index ea476e5..89f3ed3 100644
--- a/src/sql/drivers/sqlite2/qsql_sqlite2.cpp
+++ b/src/sql/drivers/sqlite2/qsql_sqlite2.cpp
@@ -342,7 +342,7 @@ QSqlRecord QSQLite2Result::record() const
QVariant QSQLite2Result::handle() const
{
- return qVariantFromValue(d->currentMachine);
+ return QVariant::fromValue(d->currentMachine);
}
/////////////////////////////////////////////////////////
@@ -558,7 +558,7 @@ QSqlRecord QSQLite2Driver::record(const QString &tbl) const
QVariant QSQLite2Driver::handle() const
{
- return qVariantFromValue(d->access);
+ return QVariant::fromValue(d->access);
}
QString QSQLite2Driver::escapeIdentifier(const QString &identifier, IdentifierType /*type*/) const
diff --git a/src/sql/drivers/tds/qsql_tds.pri b/src/sql/drivers/tds/qsql_tds.pri
index c552ead..037f793 100644
--- a/src/sql/drivers/tds/qsql_tds.pri
+++ b/src/sql/drivers/tds/qsql_tds.pri
@@ -1,8 +1,10 @@
HEADERS += $$PWD/qsql_tds.h
SOURCES += $$PWD/qsql_tds.cpp
-unix {
+unix|win32-g++: {
+ !isEmpty(QT_LFLAGS_TDS):!static:LIBS *= $$QT_LFLAGS_TDS
!contains(LIBS, .*sybdb.*):LIBS += -lsybdb
+ QMAKE_CXXFLAGS *= $$QT_CFLAGS_TDS
} else:win32-borland {
LIBS *= $(BCB)/lib/PSDK/NTWDBLIB.LIB
} else {
diff --git a/src/sql/kernel/qsqldatabase.cpp b/src/sql/kernel/qsqldatabase.cpp
index 2ab37de..1cf5fde 100644
--- a/src/sql/kernel/qsqldatabase.cpp
+++ b/src/sql/kernel/qsqldatabase.cpp
@@ -166,7 +166,7 @@ public:
static QSqlDatabase database(const QString& name, bool open);
static void addDatabase(const QSqlDatabase &db, const QString & name);
static void removeDatabase(const QString& name);
- static void invalidateDb(const QSqlDatabase &db, const QString &name);
+ static void invalidateDb(const QSqlDatabase &db, const QString &name, bool doWarn = true);
static DriverDict &driverDict();
static void cleanConnections();
};
@@ -200,7 +200,7 @@ void QSqlDatabasePrivate::cleanConnections()
QConnectionDict::iterator it = dict->begin();
while (it != dict->end()) {
- invalidateDb(it.value(), it.key());
+ invalidateDb(it.value(), it.key(), false);
++it;
}
dict->clear();
@@ -232,9 +232,9 @@ QSqlDatabasePrivate *QSqlDatabasePrivate::shared_null()
return &n;
}
-void QSqlDatabasePrivate::invalidateDb(const QSqlDatabase &db, const QString &name)
+void QSqlDatabasePrivate::invalidateDb(const QSqlDatabase &db, const QString &name, bool doWarn)
{
- if (db.d->ref != 1) {
+ if (db.d->ref != 1 && doWarn) {
qWarning("QSqlDatabasePrivate::removeDatabase: connection '%s' is still in use, "
"all queries will cease to work.", name.toLocal8Bit().constData());
db.d->disable();
diff --git a/src/src.pro b/src/src.pro
index 94ecb1b..bdb7cd8 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -113,6 +113,7 @@ src_webkit_declarative.target = sub-webkitdeclarative
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
diff --git a/src/testlib/qabstracttestlogger_p.h b/src/testlib/qabstracttestlogger_p.h
index c84f327..a996e88 100644
--- a/src/testlib/qabstracttestlogger_p.h
+++ b/src/testlib/qabstracttestlogger_p.h
@@ -95,6 +95,8 @@ public:
virtual void addMessage(MessageTypes type, const char *message,
const char *file = 0, int line = 0) = 0;
+ virtual void registerRandomSeed(unsigned int seed) = 0;
+
static void outputString(const char *msg);
static bool isTtyOutput();
};
diff --git a/src/testlib/qplaintestlogger.cpp b/src/testlib/qplaintestlogger.cpp
index 1a0e737..59248a9 100644
--- a/src/testlib/qplaintestlogger.cpp
+++ b/src/testlib/qplaintestlogger.cpp
@@ -384,6 +384,7 @@ namespace QTest {
}
QPlainTestLogger::QPlainTestLogger()
+: randomSeed(9), hasRandomSeed(false)
{
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
InitializeCriticalSection(&QTest::outputCriticalSection);
@@ -415,10 +416,17 @@ void QPlainTestLogger::startLogging()
QTest::qt_snprintf(buf, sizeof(buf), "Testing %s\n",
QTestResult::currentTestObjectName());
} else {
- QTest::qt_snprintf(buf, sizeof(buf),
- "********* Start testing of %s *********\n"
- "Config: Using QTest library " QTEST_VERSION_STR
- ", Qt %s\n", QTestResult::currentTestObjectName(), qVersion());
+ if (hasRandomSeed) {
+ QTest::qt_snprintf(buf, sizeof(buf),
+ "********* Start testing of %s *********\n"
+ "Config: Using QTest library " QTEST_VERSION_STR
+ ", Qt %s, Random seed %d\n", QTestResult::currentTestObjectName(), qVersion(), randomSeed);
+ } else {
+ QTest::qt_snprintf(buf, sizeof(buf),
+ "********* Start testing of %s *********\n"
+ "Config: Using QTest library " QTEST_VERSION_STR
+ ", Qt %s\n", QTestResult::currentTestObjectName(), qVersion());
+ }
}
QTest::outputMessage(buf);
}
@@ -480,4 +488,10 @@ void QPlainTestLogger::addMessage(MessageTypes type, const char *message,
QTest::printMessage(QTest::messageType2String(type), message, file, line);
}
+void QPlainTestLogger::registerRandomSeed(unsigned int seed)
+{
+ randomSeed = seed;
+ hasRandomSeed = true;
+}
+
QT_END_NAMESPACE
diff --git a/src/testlib/qplaintestlogger_p.h b/src/testlib/qplaintestlogger_p.h
index f1f1d4e..9195600 100644
--- a/src/testlib/qplaintestlogger_p.h
+++ b/src/testlib/qplaintestlogger_p.h
@@ -75,6 +75,10 @@ public:
void addMessage(MessageTypes type, const char *message,
const char *file = 0, int line = 0);
+ void registerRandomSeed(unsigned int seed);
+private:
+ unsigned int randomSeed;
+ bool hasRandomSeed;
};
QT_END_NAMESPACE
diff --git a/src/testlib/qtest.h b/src/testlib/qtest.h
index 633d635..aa9b2bd 100644
--- a/src/testlib/qtest.h
+++ b/src/testlib/qtest.h
@@ -159,7 +159,7 @@ template<> inline char *toString(const QVariant &v)
if (!v.isNull()) {
vstring.append(',');
if (v.canConvert(QVariant::String)) {
- vstring.append(qVariantValue<QString>(v).toLatin1());
+ vstring.append(qvariant_cast<QString>(v).toLatin1());
}
else {
vstring.append("<value not representable as string>");
diff --git a/src/testlib/qtest_global.h b/src/testlib/qtest_global.h
index a78113a..4dd0cb7 100644
--- a/src/testlib/qtest_global.h
+++ b/src/testlib/qtest_global.h
@@ -62,7 +62,7 @@ QT_MODULE(Test)
# endif
#endif
-#if (defined (Q_CC_MSVC) && _MSC_VER < 1310) || defined (Q_CC_SUN) || defined (Q_CC_XLC) || (defined (Q_CC_GNU) && (__GNUC__ - 0 < 3)) || defined (Q_CC_NOKIAX86)
+#if defined (Q_CC_SUN) || defined (Q_CC_XLC) || (defined (Q_CC_GNU) && (__GNUC__ - 0 < 3)) || defined (Q_CC_NOKIAX86)
# define QTEST_NO_SPECIALIZATIONS
#endif
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
index 17f1a6b..5934850 100644
--- a/src/testlib/qtestcase.cpp
+++ b/src/testlib/qtestcase.cpp
@@ -826,25 +826,46 @@ namespace QTest
{
static QObject *currentTestObject = 0;
- static struct TestFunction {
- TestFunction():function(0), data(0) {}
- ~TestFunction() { delete [] data; }
- int function;
- char *data;
- } *testFuncs;
-
+ class TestFunction {
+ public:
+ TestFunction() : function_(-1), data_(0) {}
+ void set(int function, char *data) { function_ = function; data_ = data; }
+ char *data() const { return data_; }
+ int function() const { return function_; }
+ ~TestFunction() { delete[] data_; }
+ private:
+ int function_;
+ char *data_;
+ };
/**
- * Contains the count of test functions that was supplied
- * on the command line, if any. Hence, if lastTestFuncIdx is
- * more than zero, those functions should be run instead of
+ * Contains the list of test functions that was supplied
+ * on the command line, if any. Hence, if not empty,
+ * those functions should be run instead of
* all appearing in the test case.
*/
- static int lastTestFuncIdx = -1;
+ static TestFunction * testFuncs = 0;
+ static int testFuncCount = 0;
+
+ /** Don't leak testFuncs on exit even on error */
+ static struct TestFuncCleanup
+ {
+ void cleanup()
+ {
+ delete[] testFuncs;
+ testFuncCount = 0;
+ testFuncs = 0;
+ }
+
+ ~TestFuncCleanup() { cleanup(); }
+ } testFuncCleaner;
static int keyDelay = -1;
static int mouseDelay = -1;
static int eventDelay = -1;
+ static bool randomOrder = false;
static int keyVerbose = -1;
+ static unsigned int seed = 0;
+ static bool seedSet = false;
#if defined(Q_OS_UNIX) && !defined(Q_OS_SYMBIAN)
static bool noCrashHandler = false;
#endif
@@ -930,6 +951,41 @@ int Q_TESTLIB_EXPORT defaultKeyDelay()
return keyDelay;
}
+void seedRandom()
+{
+ static bool randomSeeded = false;
+ if (!randomSeeded) {
+ if (!QTest::seedSet) {
+ QTest::seed = QDateTime::currentDateTime().toTime_t();
+ }
+ qsrand(QTest::seed);
+ randomSeeded = true;
+ }
+}
+
+int qTestRandomSeed()
+{
+ Q_ASSERT(QTest::seedSet);
+ return QTest::seed;
+}
+
+template<typename T>
+void swap(T * array, int pos, int otherPos)
+{
+ T tmp = array[pos];
+ array[pos] = array[otherPos];
+ array[otherPos] = tmp;
+}
+
+template<typename T>
+static void randomizeList(T * array, int size)
+{
+ for (int i = 0; i != size; i++) {
+ int pos = qrand() % size;
+ swap(array, pos, i);
+ }
+}
+
static bool isValidSlot(const QMetaMethod &sl)
{
if (sl.access() != QMetaMethod::Private || !sl.parameterTypes().isEmpty()
@@ -971,8 +1027,6 @@ static int qToInt(char *str)
static void qParseArgs(int argc, char *argv[])
{
- lastTestFuncIdx = -1;
-
const char *testOptions =
" options:\n"
" -functions : Returns a list of current testfunctions\n"
@@ -985,6 +1039,9 @@ static void qParseArgs(int argc, char *argv[])
" -v1 : Print enter messages for each testfunction\n"
" -v2 : Also print out each QVERIFY/QCOMPARE/QTEST\n"
" -vs : Print every signal emitted\n"
+ " -random : Run testcases within each test in random order\n"
+ " -seed n : Positive integer to be used as seed for -random. If not specified,\n"
+ " the current time will be used as seed.\n"
" -eventdelay ms : Set default delay for mouse and keyboard simulation to ms milliseconds\n"
" -keydelay ms : Set default delay for keyboard simulation to ms milliseconds\n"
" -mousedelay ms : Set default delay for mouse simulation to ms milliseconds\n"
@@ -1100,6 +1157,22 @@ static void qParseArgs(int argc, char *argv[])
#endif
} else if (strcmp(argv[i], "-eventcounter") == 0) {
QBenchmarkGlobalData::current->setMode(QBenchmarkGlobalData::EventCounter);
+ } else if (strcmp(argv[i], "-random") == 0) {
+ QTest::randomOrder = true;
+ } else if (strcmp(argv[i], "-seed") == 0) {
+ bool argumentOk = false;
+ if (i + 1 < argc) {
+ char * endpt = 0;
+ long longSeed = strtol(argv[++i], &endpt, 10);
+ argumentOk = (*endpt == '\0' && longSeed >= 0);
+ QTest::seed = longSeed;
+ }
+ if (!argumentOk) {
+ printf("-seed needs an extra positive integer parameter to specify the seed\n");
+ exit(1);
+ } else {
+ QTest::seedSet = true;
+ }
} else if (strcmp(argv[i], "-minimumvalue") == 0) {
if (i + 1 >= argc) {
printf("-minimumvalue needs an extra parameter to indicate the minimum time(ms)\n");
@@ -1140,6 +1213,10 @@ static void qParseArgs(int argc, char *argv[])
printf("Unknown option: '%s'\n\n%s", argv[i], testOptions);
exit(1);
} else {
+ if (!QTest::testFuncs) {
+ QTest::testFuncs = new QTest::TestFunction[512];
+ }
+
int colon = -1;
char buf[512], *data=0;
int off;
@@ -1161,17 +1238,16 @@ static void qParseArgs(int argc, char *argv[])
qPrintTestSlots();
exit(1);
}
- ++QTest::lastTestFuncIdx;
- if (!QTest::testFuncs) {
- struct Cleanup { ~Cleanup() { delete[] QTest::testFuncs; } };
- static Cleanup cleanup;
- QTest::testFuncs = new TestFunction[512];
- }
- QTest::testFuncs[QTest::lastTestFuncIdx].function = idx;
- QTest::testFuncs[QTest::lastTestFuncIdx].data = data;
- QTEST_ASSERT(QTest::lastTestFuncIdx < 512);
+ testFuncs[testFuncCount].set(idx, data);
+ testFuncCount++;
+ QTEST_ASSERT(QTest::testFuncCount < 512);
}
}
+
+ if (QTest::seedSet && !QTest::randomOrder) {
+ printf("-seed requires -random\n");
+ exit(1);
+ }
}
QBenchmarkResult qMedian(const QList<QBenchmarkResult> &container)
@@ -1466,9 +1542,11 @@ static void qInvokeTestMethods(QObject *testObject)
{
const QMetaObject *metaObject = testObject->metaObject();
QTEST_ASSERT(metaObject);
-
- QTestLog::startLogging();
-
+ if (QTest::randomOrder) {
+ QTestLog::startLogging(QTest::seed);
+ } else {
+ QTestLog::startLogging();
+ }
QTestResult::setCurrentTestFunction("initTestCase");
QTestResult::setCurrentTestLocation(QTestResult::DataFunc);
QTestTable::globalTestTable();
@@ -1484,21 +1562,31 @@ static void qInvokeTestMethods(QObject *testObject)
if(!QTestResult::skipCurrentTest() && !previousFailed) {
- if (lastTestFuncIdx >= 0) {
- for (int i = 0; i <= lastTestFuncIdx; ++i) {
- if (!qInvokeTestMethod(metaObject->method(testFuncs[i].function).signature(),
- testFuncs[i].data))
+ if (QTest::testFuncs) {
+ if (QTest::randomOrder)
+ randomizeList(QTest::testFuncs, QTest::testFuncCount);
+ for (int i = 0; i != QTest::testFuncCount; i++) {
+ if (!qInvokeTestMethod(metaObject->method(QTest::testFuncs[i].function()).signature(),
+ QTest::testFuncs[i].data())) {
break;
+ }
}
+ testFuncCleaner.cleanup();
} else {
int methodCount = metaObject->methodCount();
- for (int i = 0; i < methodCount; ++i) {
- QMetaMethod slotMethod = metaObject->method(i);
- if (!isValidSlot(slotMethod))
+ QMetaMethod *testMethods = new QMetaMethod[methodCount];
+ for (int i = 0; i != methodCount; i++)
+ testMethods[i] = metaObject->method(i);
+ if (QTest::randomOrder)
+ randomizeList(testMethods, methodCount);
+ for (int i = 0; i != methodCount; i++) {
+ if (!isValidSlot(testMethods[i]))
continue;
- if (!qInvokeTestMethod(slotMethod.signature()))
+ if (!qInvokeTestMethod(testMethods[i].signature()))
break;
}
+ delete[] testMethods;
+ testMethods = 0;
}
}
@@ -1689,6 +1777,9 @@ int QTest::qExec(QObject *testObject, int argc, char **argv)
QTestResult::setCurrentTestObject(metaObject->className());
qParseArgs(argc, argv);
+ if (QTest::randomOrder) {
+ seedRandom();
+ }
#ifdef QTESTLIB_USE_VALGRIND
if (QBenchmarkGlobalData::current->mode() == QBenchmarkGlobalData::CallgrindParentProcess) {
const QStringList origAppArgs(QCoreApplication::arguments());
diff --git a/src/testlib/qtestfilelogger.cpp b/src/testlib/qtestfilelogger.cpp
index a5cdc80..9d1ee6a 100644
--- a/src/testlib/qtestfilelogger.cpp
+++ b/src/testlib/qtestfilelogger.cpp
@@ -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 @@ QTestFileLogger::~QTestFileLogger()
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 == '.')) {
diff --git a/src/testlib/qtestlightxmlstreamer.cpp b/src/testlib/qtestlightxmlstreamer.cpp
index 0ac9ea8..cc5397a 100644
--- a/src/testlib/qtestlightxmlstreamer.cpp
+++ b/src/testlib/qtestlightxmlstreamer.cpp
@@ -42,6 +42,7 @@
#include "qtestlightxmlstreamer.h"
#include "qtestelement.h"
#include "qtestelementattribute.h"
+#include "qtestlogger_p.h"
#include "QtTest/private/qtestlog_p.h"
#include "QtTest/private/qtestresult_p.h"
@@ -164,8 +165,13 @@ void QTestLightXmlStreamer::formatBeforeAttributes(const QTestElement *element,
void QTestLightXmlStreamer::output(QTestElement *element) const
{
QTestCharBuffer buf;
- QTest::qt_asprintf(&buf, "<Environment>\n <QtVersion>%s</QtVersion>\n <QTestVersion>%s</QTestVersion>\n",
+ if (logger()->hasRandomSeed()) {
+ QTest::qt_asprintf(&buf, "<Environment>\n <QtVersion>%s</QtVersion>\n <QTestVersion>%s</QTestVersion>\n <RandomSeed>%d</RandomSeed>\n",
+ qVersion(), QTEST_VERSION_STR, logger()->randomSeed() );
+ } else {
+ QTest::qt_asprintf(&buf, "<Environment>\n <QtVersion>%s</QtVersion>\n <QTestVersion>%s</QTestVersion>\n",
qVersion(), QTEST_VERSION_STR );
+ }
outputString(buf.constData());
QTest::qt_asprintf(&buf, "</Environment>\n");
diff --git a/src/testlib/qtestlog.cpp b/src/testlib/qtestlog.cpp
index 398dec5..d58e231 100644
--- a/src/testlib/qtestlog.cpp
+++ b/src/testlib/qtestlog.cpp
@@ -168,6 +168,29 @@ namespace QTest {
}
}
+void initLogger()
+{
+ switch (QTest::logMode) {
+ case QTestLog::Plain:
+ QTest::testLogger = new QPlainTestLogger;
+ break;
+ case QTestLog::XML:{
+ if(QTest::flushMode == QTestLog::FLushOn)
+ QTest::testLogger = new QXmlTestLogger(QXmlTestLogger::Complete);
+ else
+ QTest::testLogger = new QTestLogger(QTestLogger::TLF_XML);
+ break;
+ }case QTestLog::LightXML:{
+ if(QTest::flushMode == QTestLog::FLushOn)
+ QTest::testLogger = new QXmlTestLogger(QXmlTestLogger::Light);
+ else
+ QTest::testLogger = new QTestLogger(QTestLogger::TLF_LightXml);
+ break;
+ }case QTestLog::XunitXML:
+ QTest::testLogger = new QTestLogger(QTestLogger::TLF_XunitXml);
+ }
+}
+
}
QTestLog::QTestLog()
@@ -268,32 +291,20 @@ void QTestLog::addBenchmarkResult(const QBenchmarkResult &result)
QTest::testLogger->addBenchmarkResult(result);
}
-void QTestLog::startLogging()
+void QTestLog::startLogging(unsigned int randomSeed)
{
QTEST_ASSERT(!QTest::testLogger);
-
- switch (QTest::logMode) {
- case QTestLog::Plain:
- QTest::testLogger = new QPlainTestLogger;
- break;
- case QTestLog::XML:{
- if(QTest::flushMode == QTestLog::FLushOn)
- QTest::testLogger = new QXmlTestLogger(QXmlTestLogger::Complete);
- else
- QTest::testLogger = new QTestLogger(QTestLogger::TLF_XML);
- break;
- }case QTestLog::LightXML:{
- if(QTest::flushMode == QTestLog::FLushOn)
- QTest::testLogger = new QXmlTestLogger(QXmlTestLogger::Light);
- else
- QTest::testLogger = new QTestLogger(QTestLogger::TLF_LightXml);
- break;
- }case QTestLog::XunitXML:
- QTest::testLogger = new QTestLogger(QTestLogger::TLF_XunitXml);
- }
-
+ QTest::initLogger();
+ QTest::testLogger->registerRandomSeed(randomSeed);
QTest::testLogger->startLogging();
+ QTest::oldMessageHandler = qInstallMsgHandler(QTest::messageHandler);
+}
+void QTestLog::startLogging()
+{
+ QTEST_ASSERT(!QTest::testLogger);
+ QTest::initLogger();
+ QTest::testLogger->startLogging();
QTest::oldMessageHandler = qInstallMsgHandler(QTest::messageHandler);
}
diff --git a/src/testlib/qtestlog_p.h b/src/testlib/qtestlog_p.h
index d36ff04..01d39eb 100644
--- a/src/testlib/qtestlog_p.h
+++ b/src/testlib/qtestlog_p.h
@@ -83,6 +83,7 @@ public:
static void info(const char *msg, const char *file, int line);
static void startLogging();
+ static void startLogging(unsigned int randomSeed);
static void stopLogging();
static void setLogMode(LogMode mode);
@@ -97,7 +98,6 @@ public:
static void setMaxWarnings(int max);
static void setFlushMode(FlushMode mode);
-
private:
QTestLog();
~QTestLog();
diff --git a/src/testlib/qtestlogger.cpp b/src/testlib/qtestlogger.cpp
index f0be6be..cab97d1 100644
--- a/src/testlib/qtestlogger.cpp
+++ b/src/testlib/qtestlogger.cpp
@@ -62,7 +62,8 @@ QTestLogger::QTestLogger(int fm)
warningCounter(0), skipCounter(0),
systemCounter(0), qdebugCounter(0),
qwarnCounter(0), qfatalCounter(0),
- infoCounter(0)
+ infoCounter(0), randomSeed_(0),
+ hasRandomSeed_(false)
{
}
@@ -133,6 +134,14 @@ void QTestLogger::stopLogging()
property->addAttribute(QTest::AI_PropertyValue, qVersion());
properties->addLogElement(property);
+ if (hasRandomSeed()) {
+ property = new QTestElement(QTest::LET_Property);
+ property->addAttribute(QTest::AI_Name, "RandomSeed");
+ QTest::qt_snprintf(buf, sizeof(buf), "%i", randomSeed());
+ property->addAttribute(QTest::AI_PropertyValue, buf);
+ properties->addLogElement(property);
+ }
+
currentLogElement->addLogElement(properties);
currentLogElement->addLogElement(iterator);
@@ -420,5 +429,21 @@ int QTestLogger::infoCount() const
return infoCounter;
}
+void QTestLogger::registerRandomSeed(unsigned int seed)
+{
+ randomSeed_ = seed;
+ hasRandomSeed_ = true;
+}
+
+unsigned int QTestLogger::randomSeed() const
+{
+ return randomSeed_;
+}
+
+bool QTestLogger::hasRandomSeed() const
+{
+ return hasRandomSeed_;
+}
+
QT_END_NAMESPACE
diff --git a/src/testlib/qtestlogger_p.h b/src/testlib/qtestlogger_p.h
index bb7a358..8932a85 100644
--- a/src/testlib/qtestlogger_p.h
+++ b/src/testlib/qtestlogger_p.h
@@ -101,6 +101,9 @@ class QTestLogger : public QAbstractTestLogger
int qwarnCount() const;
int qfatalCount() const;
int infoCount() const;
+ void registerRandomSeed(unsigned int seed);
+ unsigned int randomSeed() const;
+ bool hasRandomSeed() const;
private:
QTestElement *listOfTestcases;
@@ -121,6 +124,8 @@ class QTestLogger : public QAbstractTestLogger
int qwarnCounter;
int qfatalCounter;
int infoCounter;
+ unsigned int randomSeed_;
+ bool hasRandomSeed_;
};
QT_END_NAMESPACE
diff --git a/src/testlib/qtestxmlstreamer.cpp b/src/testlib/qtestxmlstreamer.cpp
index f63c221..a6b8376 100644
--- a/src/testlib/qtestxmlstreamer.cpp
+++ b/src/testlib/qtestxmlstreamer.cpp
@@ -42,6 +42,7 @@
#include "qtestxmlstreamer.h"
#include "qtestelement.h"
#include "qtestelementattribute.h"
+#include "qtestlogger_p.h"
#include "QtTest/private/qtestlog_p.h"
#include "QtTest/private/qtestresult_p.h"
@@ -204,8 +205,13 @@ void QTestXmlStreamer::output(QTestElement *element) const
quotedTc.constData());
outputString(buf.constData());
- QTest::qt_asprintf(&buf, "<Environment>\n <QtVersion>%s</QtVersion>\n <QTestVersion>%s</QTestVersion>\n",
- qVersion(), QTEST_VERSION_STR );
+ if (logger()->hasRandomSeed()) {
+ QTest::qt_asprintf(&buf, "<Environment>\n <QtVersion>%s</QtVersion>\n <QTestVersion>%s</QTestVersion>\n <RandomSeed>%d</RandomSeed>\n",
+ qVersion(), QTEST_VERSION_STR, logger()->randomSeed() );
+ } else {
+ QTest::qt_asprintf(&buf, "<Environment>\n <QtVersion>%s</QtVersion>\n <QTestVersion>%s</QTestVersion>\n",
+ qVersion(), QTEST_VERSION_STR );
+ }
outputString(buf.constData());
QTest::qt_asprintf(&buf, "</Environment>\n");
diff --git a/src/testlib/qxmltestlogger.cpp b/src/testlib/qxmltestlogger.cpp
index 07e8ef0..2bf7d77 100644
--- a/src/testlib/qxmltestlogger.cpp
+++ b/src/testlib/qxmltestlogger.cpp
@@ -93,7 +93,7 @@ namespace QTest {
QXmlTestLogger::QXmlTestLogger(XmlMode mode )
- :xmlmode(mode)
+ :xmlmode(mode), randomSeed(0), hasRandomSeed(false)
{
}
@@ -116,11 +116,20 @@ void QXmlTestLogger::startLogging()
outputString(buf.constData());
}
- QTest::qt_asprintf(&buf,
- "<Environment>\n"
- " <QtVersion>%s</QtVersion>\n"
- " <QTestVersion>"QTEST_VERSION_STR"</QTestVersion>\n"
- "</Environment>\n", qVersion());
+ if (hasRandomSeed) {
+ QTest::qt_asprintf(&buf,
+ "<Environment>\n"
+ " <QtVersion>%s</QtVersion>\n"
+ " <QTestVersion>"QTEST_VERSION_STR"</QTestVersion>\n"
+ " <RandomSeed>%d</RandomSeed>\n"
+ "</Environment>\n", qVersion(), randomSeed);
+ } else {
+ QTest::qt_asprintf(&buf,
+ "<Environment>\n"
+ " <QtVersion>%s</QtVersion>\n"
+ " <QTestVersion>"QTEST_VERSION_STR"</QTestVersion>\n"
+ "</Environment>\n", qVersion());
+ }
outputString(buf.constData());
}
@@ -441,4 +450,10 @@ int QXmlTestLogger::xmlCdata(QTestCharBuffer* str, char const* src)
return allocateStringFn(str, src, QXmlTestLogger::xmlCdata);
}
+void QXmlTestLogger::registerRandomSeed(unsigned int seed)
+{
+ randomSeed = seed;
+ hasRandomSeed = true;
+}
+
QT_END_NAMESPACE
diff --git a/src/testlib/qxmltestlogger_p.h b/src/testlib/qxmltestlogger_p.h
index ae918dc..82dd8a6 100644
--- a/src/testlib/qxmltestlogger_p.h
+++ b/src/testlib/qxmltestlogger_p.h
@@ -79,6 +79,8 @@ public:
void addMessage(MessageTypes type, const char *message,
const char *file = 0, int line = 0);
+ void registerRandomSeed(unsigned int seed);
+
static int xmlCdata(QTestCharBuffer *dest, char const* src);
static int xmlQuote(QTestCharBuffer *dest, char const* src);
static int xmlCdata(QTestCharBuffer *dest, char const* src, size_t n);
@@ -86,6 +88,8 @@ public:
private:
XmlMode xmlmode;
+ unsigned int randomSeed;
+ bool hasRandomSeed;
};
QT_END_NAMESPACE
diff --git a/src/tools/moc/moc.cpp b/src/tools/moc/moc.cpp
index 84d1567..ac49d65 100644
--- a/src/tools/moc/moc.cpp
+++ b/src/tools/moc/moc.cpp
@@ -1211,7 +1211,7 @@ bool Moc::until(Token target) {
//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()) {
diff --git a/src/tools/uic3/converter.cpp b/src/tools/uic3/converter.cpp
index 2ee939d..8fac4d1 100644
--- a/src/tools/uic3/converter.cpp
+++ b/src/tools/uic3/converter.cpp
@@ -864,7 +864,7 @@ DomLayoutItem *Ui3Reader::createLayoutItem(const QDomElement &e)
Variant var;
var.createSize(0, 0);
- QVariant def = qVariantFromValue(var);
+ QVariant def = QVariant::fromValue(var);
Size size = asVariant(DomTool::readProperty(e, QLatin1String("sizeHint"), def)).size;
QString sizeType = QLatin1String("QSizePolicy::") + DomTool::readProperty(e, QLatin1String("sizeType"), QLatin1String("Expanding")).toString();
diff --git a/src/tools/uic3/domtool.cpp b/src/tools/uic3/domtool.cpp
index 526b41c..cefbbb4 100644
--- a/src/tools/uic3/domtool.cpp
+++ b/src/tools/uic3/domtool.cpp
@@ -169,7 +169,7 @@ QVariant DomTool::elementToVariant(const QDomElement& e, const QVariant& defValu
n3 = n3.nextSibling().toElement();
}
var.createRect(x, y, w, h);
- qVariantSetValue(v, var);
+ v.setValue(var);
} else if (e.tagName() == QLatin1String("point")) {
QDomElement n3 = e.firstChild().toElement();
int x = 0, y = 0;
@@ -181,7 +181,7 @@ QVariant DomTool::elementToVariant(const QDomElement& e, const QVariant& defValu
n3 = n3.nextSibling().toElement();
}
var.createPoint(x,y);
- qVariantSetValue(v, var);
+ v.setValue(var);
} else if (e.tagName() == QLatin1String("size")) {
QDomElement n3 = e.firstChild().toElement();
int w = 0, h = 0;
@@ -193,10 +193,10 @@ QVariant DomTool::elementToVariant(const QDomElement& e, const QVariant& defValu
n3 = n3.nextSibling().toElement();
}
var.createSize(w, h);
- qVariantSetValue(v, var);
+ v.setValue(var);
} else if (e.tagName() == QLatin1String("color")) {
var.color = readColor(e);
- qVariantSetValue(v, var);
+ v.setValue(var);
} else if (e.tagName() == QLatin1String("font")) {
QDomElement n3 = e.firstChild().toElement();
Font f;
@@ -217,7 +217,7 @@ QVariant DomTool::elementToVariant(const QDomElement& e, const QVariant& defValu
n3 = n3.nextSibling().toElement();
}
var.font = f;
- qVariantSetValue(v, var);
+ v.setValue(var);
} else if (e.tagName() == QLatin1String("string")) {
v = QVariant(e.firstChild().toText().data());
QDomElement n = e;
@@ -258,10 +258,10 @@ QVariant DomTool::elementToVariant(const QDomElement& e, const QVariant& defValu
var.sizePolicy.verstretch = n3.firstChild().toText().data().toInt();
n3 = n3.nextSibling().toElement();
}
- qVariantSetValue(v, var);
+ v.setValue(var);
} else if (e.tagName() == QLatin1String("cursor")) {
var.createCursor(e.firstChild().toText().data().toInt());
- qVariantSetValue(v, var);
+ v.setValue(var);
} else if (e.tagName() == QLatin1String("stringlist")) {
QStringList lst;
QDomElement n;
diff --git a/src/tools/uic3/domtool.h b/src/tools/uic3/domtool.h
index ad597a1..8fe0793 100644
--- a/src/tools/uic3/domtool.h
+++ b/src/tools/uic3/domtool.h
@@ -266,7 +266,7 @@ QT_BEGIN_NAMESPACE
inline Variant asVariant(const QVariant &v)
{
Variant var;
- var = qVariantValue<Variant>(v);
+ var = qvariant_cast<Variant>(v);
return var;
}
diff --git a/src/xml/dom/qdom.cpp b/src/xml/dom/qdom.cpp
index 1267e7e..662c796 100644
--- a/src/xml/dom/qdom.cpp
+++ b/src/xml/dom/qdom.cpp
@@ -7418,8 +7418,10 @@ bool QDomHandler::startElement(const QString& nsURI, const QString&, const QStri
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;
diff --git a/src/xmlpatterns/api/qabstractxmlnodemodel.cpp b/src/xmlpatterns/api/qabstractxmlnodemodel.cpp
index 7f2ad9f..0f9760d 100644
--- a/src/xmlpatterns/api/qabstractxmlnodemodel.cpp
+++ b/src/xmlpatterns/api/qabstractxmlnodemodel.cpp
@@ -1355,7 +1355,7 @@ bool QXmlItem::isNull() const
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.
diff --git a/src/xmlpatterns/api/quriloader.cpp b/src/xmlpatterns/api/quriloader.cpp
index e0a7542..c653661 100644
--- a/src/xmlpatterns/api/quriloader.cpp
+++ b/src/xmlpatterns/api/quriloader.cpp
@@ -69,7 +69,7 @@ QNetworkReply *URILoader::createRequest(Operation op, const QNetworkRequest &req
const QVariant variant(m_variableLoader->valueFor(m_namePool->allocateQName(QString(), name, QString())));
if(!variant.isNull() && variant.userType() == qMetaTypeId<QIODevice *>())
- return new QIODeviceDelegate(qVariantValue<QIODevice *>(variant));
+ return new QIODeviceDelegate(qvariant_cast<QIODevice *>(variant));
else
{
/* If we're entering this code path, the variable URI identified a variable
diff --git a/src/xmlpatterns/api/qvariableloader.cpp b/src/xmlpatterns/api/qvariableloader.cpp
index 612fa67..648fda4 100644
--- a/src/xmlpatterns/api/qvariableloader.cpp
+++ b/src/xmlpatterns/api/qvariableloader.cpp
@@ -131,12 +131,12 @@ SequenceType::Ptr VariableLoader::announceExternalVariable(const QXmlName name,
return CommonSequenceTypes::ExactlyOneAnyURI;
else if(variant.userType() == qMetaTypeId<QXmlQuery>())
{
- const QXmlQuery variableQuery(qVariantValue<QXmlQuery>(variant));
+ const QXmlQuery variableQuery(qvariant_cast<QXmlQuery>(variant));
return variableQuery.d->expression()->staticType();
}
else
{
- return makeGenericSequenceType(AtomicValue::qtToXDMType(qVariantValue<QXmlItem>(variant)),
+ return makeGenericSequenceType(AtomicValue::qtToXDMType(qvariant_cast<QXmlItem>(variant)),
Cardinality::exactlyOne());
}
}
@@ -154,12 +154,12 @@ Item::Iterator::Ptr VariableLoader::evaluateSequence(const QXmlName name,
return makeSingletonIterator(itemForName(name));
else if(variant.userType() == qMetaTypeId<QXmlQuery>())
{
- const QXmlQuery variableQuery(qVariantValue<QXmlQuery>(variant));
+ const QXmlQuery variableQuery(qvariant_cast<QXmlQuery>(variant));
return variableQuery.d->expression()->evaluateSequence(DynamicContext::Ptr(new TemporaryTreesRedirectingContext(variableQuery.d->dynamicContext(), context)));
}
- const QVariant v(qVariantValue<QXmlItem>(variant).toAtomicValue());
+ const QVariant v(qvariant_cast<QXmlItem>(variant).toAtomicValue());
switch(v.type())
{
@@ -179,7 +179,7 @@ Item VariableLoader::itemForName(const QXmlName &name) const
if(variant.userType() == qMetaTypeId<QIODevice *>())
return Item(AnyURI::fromValue(QLatin1String("tag:trolltech.com,2007:QtXmlPatterns:QIODeviceVariable:") + m_namePool->stringForLocalName(name.localName())));
- const QXmlItem item(qVariantValue<QXmlItem>(variant));
+ const QXmlItem item(qvariant_cast<QXmlItem>(variant));
if(item.isNode())
return Item::fromPublic(item);
@@ -210,8 +210,8 @@ bool VariableLoader::isSameType(const QVariant &v1,
return true;
/* Ok, we have two QXmlItems. */
- const QXmlItem i1(qVariantValue<QXmlItem>(v1));
- const QXmlItem i2(qVariantValue<QXmlItem>(v2));
+ const QXmlItem i1(qvariant_cast<QXmlItem>(v1));
+ const QXmlItem i2(qvariant_cast<QXmlItem>(v2));
if(i1.isNode())
{
diff --git a/src/xmlpatterns/api/qxmlquery.cpp b/src/xmlpatterns/api/qxmlquery.cpp
index e106d74..4d6a3b6 100644
--- a/src/xmlpatterns/api/qxmlquery.cpp
+++ b/src/xmlpatterns/api/qxmlquery.cpp
@@ -151,8 +151,8 @@ QT_BEGIN_NAMESPACE
\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 @@ QXmlQuery::QXmlQuery(const QXmlNamePool &np) : d(new QXmlQueryPrivate(np))
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()
@@ -535,7 +534,7 @@ void QXmlQuery::bindVariable(const QXmlName &name, const QXmlItem &value)
}
const QPatternist::VariableLoader::Ptr vl(d->variableLoader());
- const QVariant variant(qVariantFromValue(value));
+ const QVariant variant(QVariant::fromValue(value));
/* If the type of the variable changed(as opposed to only the value),
* we will have to recompile. */
@@ -611,7 +610,7 @@ void QXmlQuery::bindVariable(const QXmlName &name, QIODevice *device)
if(device)
{
- const QVariant variant(qVariantFromValue(device));
+ const QVariant variant(QVariant::fromValue(device));
if(vl->invalidationRequired(name, variant))
d->recompileRequired();
@@ -1185,7 +1184,7 @@ void QXmlQuery::bindVariable(const QXmlName &name, const QXmlQuery &query)
Q_ASSERT_X(query.isValid(), Q_FUNC_INFO, "The query being bound must be valid.");
const QPatternist::VariableLoader::Ptr vl(d->variableLoader());
- const QVariant variant(qVariantFromValue(query));
+ const QVariant variant(QVariant::fromValue(query));
if(vl->invalidationRequired(name, variant))
d->recompileRequired();
diff --git a/src/xmlpatterns/data/qabstractdatetime.cpp b/src/xmlpatterns/data/qabstractdatetime.cpp
index 6329fbe..a298698 100644
--- a/src/xmlpatterns/data/qabstractdatetime.cpp
+++ b/src/xmlpatterns/data/qabstractdatetime.cpp
@@ -163,7 +163,7 @@ QDateTime AbstractDateTime::create(AtomicValue::Ptr &errorMessage,
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)
diff --git a/src/xmlpatterns/data/qatomicvalue.cpp b/src/xmlpatterns/data/qatomicvalue.cpp
index c4f3578..5bb9a4f 100644
--- a/src/xmlpatterns/data/qatomicvalue.cpp
+++ b/src/xmlpatterns/data/qatomicvalue.cpp
@@ -121,7 +121,7 @@ QVariant AtomicValue::toQt(const AtomicValue *const value)
|| BuiltinTypes::xsHexBinary->xdtTypeMatches(t))
return QVariant(value->as<Base64Binary>()->asByteArray());
else if(BuiltinTypes::xsQName->xdtTypeMatches(t))
- return qVariantFromValue(value->as<QNameValue>()->qName());
+ return QVariant::fromValue(value->as<QNameValue>()->qName());
else
{
/* A type we don't support in Qt. Includes xs:time currently. */
diff --git a/src/xmlpatterns/utils/qautoptr_p.h b/src/xmlpatterns/utils/qautoptr_p.h
index 060e7be..173999f 100644
--- a/src/xmlpatterns/utils/qautoptr_p.h
+++ b/src/xmlpatterns/utils/qautoptr_p.h
@@ -122,7 +122,6 @@ namespace QPatternist
return *this;
}
-#ifndef QT_NO_MEMBER_TEMPLATES
template<typename L>
operator AutoPtrRef<L>()
{
@@ -139,7 +138,6 @@ namespace QPatternist
inline AutoPtr(AutoPtr<L>& other) : m_ptr(other.release())
{
}
-#endif
inline T *release()
{
diff --git a/tests/auto/collections/tst_collections.cpp b/tests/auto/collections/tst_collections.cpp
index d092c34..4ecd392 100644
--- a/tests/auto/collections/tst_collections.cpp
+++ b/tests/auto/collections/tst_collections.cpp
@@ -3447,27 +3447,16 @@ void tst_Collections::containerTypedefs()
testSetContainerTypedefs(QSet<int>());
}
-#if defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET)
-class Key1
-{};
-class T1
-{};
-class T2
-{};
-#else
class Key1;
class T1;
class T2;
-#endif
void tst_Collections::forwardDeclared()
{
{ typedef QHash<Key1, T1> C; C *x = 0; C::iterator i; C::const_iterator j; Q_UNUSED(x) }
{ typedef QMultiHash<Key1, T1> C; C *x = 0; C::iterator i; C::const_iterator j; Q_UNUSED(x) }
-#if !defined(Q_CC_MSVC_NET) || _MSC_VER >= 1310
{ typedef QMap<Key1, T1> C; C *x = 0; C::iterator i; C::const_iterator j; Q_UNUSED(x) }
{ typedef QMultiMap<Key1, T1> C; C *x = 0; C::iterator i; C::const_iterator j; Q_UNUSED(x) }
-#endif
#if !defined(Q_CC_RVCT)
// RVCT can't handle forward declared template parameters if those are used to declare
// class members inside templated class.
diff --git a/tests/auto/compilerwarnings/test_cpp.txt b/tests/auto/compilerwarnings/test_cpp.txt
index 62b35eb..1d317b8 100644
--- a/tests/auto/compilerwarnings/test_cpp.txt
+++ b/tests/auto/compilerwarnings/test_cpp.txt
@@ -58,6 +58,9 @@
#include <QtDBus/QtDBus>
#endif
+#include <QtDeclarative/QtDeclarative>
+
+
#ifndef Q_OS_MAC
int main(int, char **)
{
diff --git a/tests/auto/compilerwarnings/tst_compilerwarnings.cpp b/tests/auto/compilerwarnings/tst_compilerwarnings.cpp
index 82c327a..8d344d8 100644
--- a/tests/auto/compilerwarnings/tst_compilerwarnings.cpp
+++ b/tests/auto/compilerwarnings/tst_compilerwarnings.cpp
@@ -114,6 +114,9 @@ void tst_CompilerWarnings::warnings_data()
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 @@ void tst_CompilerWarnings::warnings()
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);
diff --git a/tests/auto/declarative/qdeclarativeanimations/data/propertiesTransition7.qml b/tests/auto/declarative/qdeclarativeanimations/data/propertiesTransition7.qml
new file mode 100644
index 0000000..b47b5f2
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeanimations/data/propertiesTransition7.qml
@@ -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"
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp b/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
index 3e80c2c..ec867fe 100644
--- a/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
+++ b/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
@@ -551,6 +551,20 @@ void tst_qdeclarativeanimations::propertiesTransition()
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()
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/signalEmission.qml b/tests/auto/declarative/qdeclarativefocusscope/data/signalEmission.qml
new file mode 100644
index 0000000..07601c7
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/signalEmission.qml
@@ -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"
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
index b0c9c03..ec8f048 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
+++ b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
@@ -69,6 +69,7 @@ private slots:
void textEdit();
void forceFocus();
void noParentFocus();
+ void signalEmission();
};
/*
@@ -335,7 +336,7 @@ void tst_qdeclarativefocusscope::noParentFocus()
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 @@ void tst_qdeclarativefocusscope::noParentFocus()
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"
diff --git a/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
index d5a911a..db1f191 100644
--- a/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
+++ b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
@@ -585,7 +585,7 @@ void tst_qdeclarativeinstruction::dump()
<< "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"
<< "-------------------------------------------------------------------------------";
diff --git a/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml b/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml
new file mode 100644
index 0000000..54b5b68
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml
@@ -0,0 +1,15 @@
+import Qt 4.7
+
+Rectangle {
+ width: 300
+ height: 300
+
+ Rectangle {
+ height: childrenRect.height
+
+ Repeater {
+ model: 1
+ Rectangle { }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
index d76d360..25ca157 100644
--- a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
+++ b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
@@ -75,6 +75,7 @@ private slots:
void childrenRect();
void childrenRectBug();
void childrenRectBug2();
+ void childrenRectBug3();
void childrenProperty();
void resourcesProperty();
@@ -780,6 +781,17 @@ void tst_QDeclarativeItem::childrenRectBug2()
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)
{
diff --git a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
index 858c26d..10805b4 100644
--- a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
+++ b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
@@ -271,6 +271,9 @@ void tst_qdeclarativelistmodel::dynamic_data()
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 @@ void tst_qdeclarativelistmodel::dynamic_worker()
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);
}
diff --git a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp
index 16d2063..6b36224 100644
--- a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp
+++ b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp
@@ -71,6 +71,7 @@ private slots:
void parallel();
void parallel_data();
void massive();
+ void cancelcrash();
private:
QDeclarativeEngine engine;
@@ -316,6 +317,15 @@ void tst_qdeclarativepixmapcache::massive()
}
}
+// 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);
+ }
+}
+
QTEST_MAIN(tst_qdeclarativepixmapcache)
#include "tst_qdeclarativepixmapcache.moc"
diff --git a/tests/auto/opengl.pro b/tests/auto/opengl.pro
index 9b59cd1..6c8e4ca 100644
--- a/tests/auto/opengl.pro
+++ b/tests/auto/opengl.pro
@@ -3,4 +3,5 @@ SUBDIRS=\
qgl \
qglthreads \
qglbuffer \
+ qglfunctions \
diff --git a/tests/auto/qbytearray/tst_qbytearray.cpp b/tests/auto/qbytearray/tst_qbytearray.cpp
index 07fdbc3..e3341d1 100644
--- a/tests/auto/qbytearray/tst_qbytearray.cpp
+++ b/tests/auto/qbytearray/tst_qbytearray.cpp
@@ -142,6 +142,8 @@ private slots:
void repeated_data() const;
void byteRefDetaching() const;
+
+ void reserve();
};
tst_QByteArray::tst_QByteArray()
@@ -1516,6 +1518,22 @@ void tst_QByteArray::byteRefDetaching() const
}
}
+void tst_QByteArray::reserve()
+{
+ int capacity = 100;
+ QByteArray qba;
+ qba.reserve(capacity);
+ QVERIFY(qba.capacity() == capacity);
+ char *data = qba.data();
+
+ // FIXME count from 0 to make it fail
+ for (int i = 1; i < capacity; i++) {
+ qba.resize(i);
+ QVERIFY(capacity == qba.capacity());
+ QVERIFY(data == qba.data());
+ }
+}
+
const char globalChar = '1';
QTEST_APPLESS_MAIN(tst_QByteArray)
diff --git a/tests/auto/qdom/qdom.pro b/tests/auto/qdom/qdom.pro
index 5434ada..9040b91 100644
--- a/tests/auto/qdom/qdom.pro
+++ b/tests/auto/qdom/qdom.pro
@@ -9,7 +9,9 @@ wince*|symbian: {
addFiles.path = .
DEPLOYMENT += addFiles
- DEPLOYMENT_PLUGIN += qcncodecs qjpcodecs qkrcodecs qtwcodecs
+ wince*|qt_not_deployed {
+ DEPLOYMENT_PLUGIN += qcncodecs qjpcodecs qkrcodecs qtwcodecs
+ }
!symbian:DEFINES += SRCDIR=\\\"\\\"
}
else {
diff --git a/tests/auto/qdom/tst_qdom.cpp b/tests/auto/qdom/tst_qdom.cpp
index 0f6cdaa..8bf7620 100644
--- a/tests/auto/qdom/tst_qdom.cpp
+++ b/tests/auto/qdom/tst_qdom.cpp
@@ -1776,6 +1776,7 @@ void tst_QDom::crashInSetContent() const
QDomImplementation::setInvalidDataPolicy(QDomImplementation::ReturnNullNode);
QDomDocument docImport;
+ QCOMPARE(docImport.setContent(QLatin1String("<a:>text</a:>"), true), false);
QVERIFY(docImport.setContent(QLatin1String("<?xml version=\"1.0\"?><e/>")));
}
diff --git a/tests/auto/qfile/qfile.pro b/tests/auto/qfile/qfile.pro
index 0383e30..727f660 100644
--- a/tests/auto/qfile/qfile.pro
+++ b/tests/auto/qfile/qfile.pro
@@ -1,5 +1,5 @@
TEMPLATE = subdirs
-wince*:{
+wince*|symbian:{
SUBDIRS = test
} else {
SUBDIRS = test stdinprocess
diff --git a/tests/auto/qfileinfo/qfileinfo.pro b/tests/auto/qfileinfo/qfileinfo.pro
index ef5ed22..30656e2 100644
--- a/tests/auto/qfileinfo/qfileinfo.pro
+++ b/tests/auto/qfileinfo/qfileinfo.pro
@@ -16,6 +16,7 @@ wince*:|symbian: {
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
diff --git a/tests/auto/qfontmetrics/qfontmetrics.pro b/tests/auto/qfontmetrics/qfontmetrics.pro
index 51a7057..c0dc1ab 100644
--- a/tests/auto/qfontmetrics/qfontmetrics.pro
+++ b/tests/auto/qfontmetrics/qfontmetrics.pro
@@ -1,4 +1,4 @@
load(qttest_p4)
SOURCES += tst_qfontmetrics.cpp
-
+RESOURCES += testfont.qrc
diff --git a/tests/auto/qfontmetrics/testfont.qrc b/tests/auto/qfontmetrics/testfont.qrc
new file mode 100644
index 0000000..bc0c0b0
--- /dev/null
+++ b/tests/auto/qfontmetrics/testfont.qrc
@@ -0,0 +1,5 @@
+<RCC>
+ <qresource prefix="/fonts">
+ <file>ucs4font.ttf</file>
+ </qresource>
+</RCC>
diff --git a/tests/auto/qfontmetrics/tst_qfontmetrics.cpp b/tests/auto/qfontmetrics/tst_qfontmetrics.cpp
index a22d624..4250415 100644
--- a/tests/auto/qfontmetrics/tst_qfontmetrics.cpp
+++ b/tests/auto/qfontmetrics/tst_qfontmetrics.cpp
@@ -74,6 +74,7 @@ private slots:
void bypassShaping();
void elidedMultiLength();
void elidedMultiLengthF();
+ void inFontUcs4();
};
tst_QFontMetrics::tst_QFontMetrics()
@@ -266,5 +267,26 @@ void tst_QFontMetrics::elidedMultiLengthF()
elidedMultiLength_helper<QFontMetricsF>();
}
+void tst_QFontMetrics::inFontUcs4()
+{
+ int id = QFontDatabase::addApplicationFont(":/fonts/ucs4font.ttf");
+ QVERIFY(id >= 0);
+
+ QFont font("QtTestUcs4");
+ {
+ QFontMetrics fm(font);
+
+ QVERIFY(fm.inFontUcs4(0x1D7FF));
+ }
+
+ {
+ QFontMetricsF fm(font);
+
+ QVERIFY(fm.inFontUcs4(0x1D7FF));
+ }
+
+ QFontDatabase::removeApplicationFont(id);
+}
+
QTEST_MAIN(tst_QFontMetrics)
#include "tst_qfontmetrics.moc"
diff --git a/tests/auto/qfontmetrics/ucs4font.ttf b/tests/auto/qfontmetrics/ucs4font.ttf
new file mode 100644
index 0000000..31b6997
--- /dev/null
+++ b/tests/auto/qfontmetrics/ucs4font.ttf
Binary files differ
diff --git a/tests/auto/qglfunctions/qglfunctions.pro b/tests/auto/qglfunctions/qglfunctions.pro
new file mode 100644
index 0000000..aa81547
--- /dev/null
+++ b/tests/auto/qglfunctions/qglfunctions.pro
@@ -0,0 +1,7 @@
+load(qttest_p4)
+requires(contains(QT_CONFIG,opengl))
+QT += opengl
+
+win32:!wince*: DEFINES += QT_NO_EGL
+
+SOURCES += tst_qglfunctions.cpp
diff --git a/tests/auto/qglfunctions/tst_qglfunctions.cpp b/tests/auto/qglfunctions/tst_qglfunctions.cpp
new file mode 100644
index 0000000..73e63b5
--- /dev/null
+++ b/tests/auto/qglfunctions/tst_qglfunctions.cpp
@@ -0,0 +1,244 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtOpenGL module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtTest/QtTest>
+#include <QtOpenGL/qglfunctions.h>
+
+class tst_QGLFunctions : public QObject
+{
+ Q_OBJECT
+public:
+ tst_QGLFunctions() {}
+ ~tst_QGLFunctions() {}
+
+private slots:
+ void features();
+ void multitexture();
+ void blendColor();
+
+private:
+ static bool hasExtension(const char *name);
+};
+
+bool tst_QGLFunctions::hasExtension(const char *name)
+{
+ QString extensions =
+ QString::fromLatin1
+ (reinterpret_cast<const char *>(glGetString(GL_EXTENSIONS)));
+ return extensions.split(QLatin1Char(' ')).contains
+ (QString::fromLatin1(name));
+}
+
+// Check that the reported features are consistent with the platform.
+void tst_QGLFunctions::features()
+{
+ // Before being associated with a context, there should be
+ // no features enabled.
+ QGLFunctions funcs;
+ QVERIFY(!funcs.openGLFeatures());
+ QVERIFY(!funcs.hasOpenGLFeature(QGLFunctions::Multitexture));
+ QVERIFY(!funcs.hasOpenGLFeature(QGLFunctions::Shaders));
+ QVERIFY(!funcs.hasOpenGLFeature(QGLFunctions::Buffers));
+ QVERIFY(!funcs.hasOpenGLFeature(QGLFunctions::Framebuffers));
+ QVERIFY(!funcs.hasOpenGLFeature(QGLFunctions::BlendColor));
+ QVERIFY(!funcs.hasOpenGLFeature(QGLFunctions::BlendEquation));
+ QVERIFY(!funcs.hasOpenGLFeature(QGLFunctions::BlendEquationSeparate));
+ QVERIFY(!funcs.hasOpenGLFeature(QGLFunctions::BlendFuncSeparate));
+ QVERIFY(!funcs.hasOpenGLFeature(QGLFunctions::BlendSubtract));
+ QVERIFY(!funcs.hasOpenGLFeature(QGLFunctions::CompressedTextures));
+ QVERIFY(!funcs.hasOpenGLFeature(QGLFunctions::Multisample));
+ QVERIFY(!funcs.hasOpenGLFeature(QGLFunctions::StencilSeparate));
+ QVERIFY(!funcs.hasOpenGLFeature(QGLFunctions::NPOTTextures));
+
+ // Make a context current.
+ QGLWidget glw;
+ if (!glw.isValid())
+ QSKIP("Could not create a GL context", SkipAll);
+ glw.makeCurrent();
+ funcs.initializeGLFunctions();
+
+ // Validate the features against what we expect for this platform.
+#if defined(QT_OPENGL_ES_2)
+ QGLFunctions::OpenGLFeatures allFeatures =
+ (QGLFunctions::Multitexture |
+ QGLFunctions::Shaders |
+ QGLFunctions::Buffers |
+ QGLFunctions::Framebuffers |
+ QGLFunctions::BlendColor |
+ QGLFunctions::BlendEquation |
+ QGLFunctions::BlendEquationSeparate |
+ QGLFunctions::BlendFuncSeparate |
+ QGLFunctions::BlendSubtract |
+ QGLFunctions::CompressedTextures |
+ QGLFunctions::Multisample |
+ QGLFunctions::StencilSeparate |
+ QGLFunctions::NPOTTextures);
+ QVERIFY((funcs.openGLFeatures() & allFeatures) == allFeatures);
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::Multitexture));
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::Shaders));
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::Buffers));
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::Framebuffers));
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::BlendColor));
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::BlendEquation));
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::BlendEquationSeparate));
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::BlendFuncSeparate));
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::BlendSubtract));
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::CompressedTextures));
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::Multisample));
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::StencilSeparate));
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::NPOTTextures));
+#elif defined(QT_OPENGL_ES)
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::Multitexture));
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::Buffers));
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::CompressedTextures));
+ QVERIFY(funcs.hasOpenGLFeature(QGLFunctions::Multisample));
+
+ QVERIFY(!funcs.hasOpenGLFeature(QGLFunctions::Shaders));
+ QVERIFY(!funcs.hasOpenGLFeature(QGLFunctions::BlendColor));
+ QVERIFY(!funcs.hasOpenGLFeature(QGLFunctions::StencilSeparate));
+
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::Framebuffers),
+ hasExtension("GL_OES_framebuffer_object"));
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::BlendEquationSeparate),
+ hasExtension("GL_OES_blend_equation_separate"));
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::BlendFuncSeparate),
+ hasExtension("GL_OES_blend_func_separate"));
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::BlendSubtract),
+ hasExtension("GL_OES_blend_subtract"));
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::NPOTTextures),
+ hasExtension("GL_OES_texture_npot"));
+#else
+ // We check for both the extension name and the minimum OpenGL version
+ // for the feature. This will help us catch situations where a platform
+ // doesn't list an extension by name but does have the feature by virtue
+ // of its version number.
+ QGLFormat::OpenGLVersionFlags versions = QGLFormat::openGLVersionFlags();
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::Multitexture),
+ hasExtension("GL_ARB_multitexture") ||
+ (versions & QGLFormat::OpenGL_Version_1_3) != 0);
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::Shaders),
+ hasExtension("GL_ARB_shader_objects") ||
+ (versions & QGLFormat::OpenGL_Version_2_0) != 0);
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::Buffers),
+ (versions & QGLFormat::OpenGL_Version_1_5) != 0);
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::Framebuffers),
+ hasExtension("GL_EXT_framebuffer_object") ||
+ hasExtension("GL_ARB_framebuffer_object"));
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::BlendColor),
+ hasExtension("GL_EXT_blend_color") ||
+ (versions & QGLFormat::OpenGL_Version_1_2) != 0);
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::BlendEquation),
+ (versions & QGLFormat::OpenGL_Version_1_2) != 0);
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::BlendEquationSeparate),
+ hasExtension("GL_EXT_blend_equation_separate") ||
+ (versions & QGLFormat::OpenGL_Version_2_0) != 0);
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::BlendFuncSeparate),
+ hasExtension("GL_EXT_blend_func_separate") ||
+ (versions & QGLFormat::OpenGL_Version_1_4) != 0);
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::BlendSubtract),
+ hasExtension("GL_EXT_blend_subtract"));
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::CompressedTextures),
+ hasExtension("GL_ARB_texture_compression") ||
+ (versions & QGLFormat::OpenGL_Version_1_3) != 0);
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::Multisample),
+ hasExtension("GL_ARB_multisample") ||
+ (versions & QGLFormat::OpenGL_Version_1_3) != 0);
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::StencilSeparate),
+ (versions & QGLFormat::OpenGL_Version_2_0) != 0);
+ QCOMPARE(funcs.hasOpenGLFeature(QGLFunctions::NPOTTextures),
+ hasExtension("GL_ARB_texture_non_power_of_two") ||
+ (versions & QGLFormat::OpenGL_Version_2_0) != 0);
+#endif
+}
+
+// Verify that the multitexture functions appear to resolve and work.
+void tst_QGLFunctions::multitexture()
+{
+ QGLFunctions funcs;
+ QGLWidget glw;
+ if (!glw.isValid())
+ QSKIP("Could not create a GL context", SkipAll);
+ glw.makeCurrent();
+ funcs.initializeGLFunctions();
+
+ if (!funcs.hasOpenGLFeature(QGLFunctions::Multitexture))
+ QSKIP("Multitexture functions are not supported", SkipSingle);
+
+ funcs.glActiveTexture(GL_TEXTURE1);
+
+ GLint active = 0;
+ glGetIntegerv(GL_ACTIVE_TEXTURE, &active);
+ QVERIFY(active == GL_TEXTURE1);
+
+ funcs.glActiveTexture(GL_TEXTURE0);
+
+ active = 0;
+ glGetIntegerv(GL_ACTIVE_TEXTURE, &active);
+ QVERIFY(active == GL_TEXTURE0);
+}
+
+// Verify that the glBlendColor() function appears to resolve and work.
+void tst_QGLFunctions::blendColor()
+{
+ QGLFunctions funcs;
+ QGLWidget glw;
+ if (!glw.isValid())
+ QSKIP("Could not create a GL context", SkipAll);
+ glw.makeCurrent();
+ funcs.initializeGLFunctions();
+
+ if (!funcs.hasOpenGLFeature(QGLFunctions::BlendColor))
+ QSKIP("glBlendColor() is not supported", SkipSingle);
+
+ funcs.glBlendColor(0.0f, 1.0f, 0.0f, 1.0f);
+
+ GLfloat colors[4] = {0.5f, 0.5f, 0.5f, 0.5f};
+ glGetFloatv(GL_BLEND_COLOR, colors);
+
+ QCOMPARE(colors[0], 0.0f);
+ QCOMPARE(colors[1], 1.0f);
+ QCOMPARE(colors[2], 0.0f);
+ QCOMPARE(colors[3], 1.0f);
+}
+
+QTEST_MAIN(tst_QGLFunctions)
+
+#include "tst_qglfunctions.moc"
diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp
index d1d6860..7346f07 100644
--- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp
+++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp
@@ -78,6 +78,7 @@ private slots:
void horizontalSpacing();
void itemAt();
void removeAt();
+ void removeItem();
void rowAlignment();
void rowCount();
void rowMaximumHeight();
@@ -107,12 +108,13 @@ private slots:
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 +127,12 @@ public:
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 +141,13 @@ public:
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 +157,8 @@ struct ItemDesc
m_rowSpan(1),
m_colSpan(1),
m_sizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred)),
- m_align(0)
+ m_align(0),
+ m_fnConstraint(0)
{
}
@@ -213,8 +225,20 @@ struct ItemDesc
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 +257,7 @@ struct ItemDesc
break;
}
}
+
layout->addItem(item, m_pos.first, m_pos.second, m_rowSpan, m_colSpan);
layout->setAlignment(item, m_align);
}
@@ -240,6 +265,7 @@ struct ItemDesc
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 +277,9 @@ struct ItemDesc
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 +514,12 @@ void tst_QGraphicsGridLayout::alignment()
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 +573,12 @@ void tst_QGraphicsGridLayout::columnAlignment()
| 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;
}
@@ -992,6 +1021,32 @@ void tst_QGraphicsGridLayout::removeAt()
delete widget;
}
+void tst_QGraphicsGridLayout::removeItem()
+{
+ QGraphicsScene scene;
+ QGraphicsView view(&scene);
+
+ QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window);
+ scene.addItem(widget);
+ QGraphicsGridLayout *l = new QGraphicsGridLayout();
+ widget->setLayout(l);
+
+ populateLayout(l, 3, 2);
+ QCOMPARE(l->count(), 6);
+ l->removeItem(l->itemAt(5));
+ l->removeItem(l->itemAt(4));
+ QCOMPARE(l->count(), 4);
+
+ // Avoid crashing. Note that the warning message might change in the future.
+ QTest::ignoreMessage(QtWarningMsg, QString::fromAscii("QGraphicsGridLayout::removeAt: invalid index -1").toLatin1().constData());
+ l->removeItem(0);
+ QCOMPARE(l->count(), 4);
+
+ QTest::ignoreMessage(QtWarningMsg, QString::fromAscii("QGraphicsGridLayout::removeAt: invalid index -1").toLatin1().constData());
+ l->removeItem(new QGraphicsWidget);
+ QCOMPARE(l->count(), 4);
+}
+
// public Qt::Alignment rowAlignment(int row) const
void tst_QGraphicsGridLayout::rowAlignment()
{
@@ -2116,6 +2171,17 @@ void tst_QGraphicsGridLayout::alignment2()
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 +2211,186 @@ void tst_QGraphicsGridLayout::geometries_data()
<< 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 +2461,143 @@ void tst_QGraphicsGridLayout::task236367_maxSizeHint()
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"
diff --git a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
index a771332..bda22eb 100644
--- a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
+++ b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
@@ -111,6 +111,7 @@ private slots:
void fontPropagationSceneChange();
void geometry_data();
void geometry();
+ void geometryChanged();
void width();
void height();
void getContentsMargins_data();
@@ -776,11 +777,28 @@ void tst_QGraphicsWidget::geometry()
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;
diff --git a/tests/auto/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp b/tests/auto/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp
index 89f608e..188ed29 100644
--- a/tests/auto/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp
+++ b/tests/auto/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp
@@ -110,6 +110,8 @@ private Q_SLOTS:
void getEmptyWithPipelining();
+ void getAndEverythingShouldBePipelined();
+
void getAndThenDeleteObject();
void getAndThenDeleteObject_data();
};
@@ -1036,6 +1038,52 @@ void tst_QHttpNetworkConnection::getEmptyWithPipelining()
qDeleteAll(replies);
}
+class GetAndEverythingShouldBePipelinedReceiver : public QObject
+{
+ Q_OBJECT
+public:
+ int receivedCount;
+ int requestCount;
+ GetAndEverythingShouldBePipelinedReceiver(int rq) : receivedCount(0),requestCount(rq) { }
+public Q_SLOTS:
+ void finishedSlot() {
+ QHttpNetworkReply *reply = (QHttpNetworkReply*) sender();
+ receivedCount++;
+
+ if (receivedCount == requestCount)
+ QTestEventLoop::instance().exitLoop();
+ }
+};
+
+void tst_QHttpNetworkConnection::getAndEverythingShouldBePipelined()
+{
+ quint16 requestCount = 100;
+ // use 1 connection.
+ QHttpNetworkConnection connection(1, QtNetworkSettings::serverName());
+ QUrl url("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt");
+ QList<QHttpNetworkRequest*> requests;
+ QList<QHttpNetworkReply*> replies;
+
+ GetAndEverythingShouldBePipelinedReceiver receiver(requestCount);
+
+ for (int i = 0; i < requestCount; i++) {
+ QHttpNetworkRequest *request = 0;
+ request = new QHttpNetworkRequest(url, QHttpNetworkRequest::Get);
+ request->setPipeliningAllowed(true);
+ requests.append(request);
+ QHttpNetworkReply *reply = connection.sendRequest(*request);
+ connect(reply, SIGNAL(finished()), &receiver, SLOT(finishedSlot()));
+ replies.append(reply);
+ }
+ QTestEventLoop::instance().enterLoop(40);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ qDeleteAll(requests);
+ qDeleteAll(replies);
+
+}
+
+
void tst_QHttpNetworkConnection::getAndThenDeleteObject_data()
{
QTest::addColumn<bool>("replyFirst");
diff --git a/tests/auto/qimage/tst_qimage.cpp b/tests/auto/qimage/tst_qimage.cpp
index 517c1816..46bc6e7 100644
--- a/tests/auto/qimage/tst_qimage.cpp
+++ b/tests/auto/qimage/tst_qimage.cpp
@@ -59,6 +59,7 @@
#endif
Q_DECLARE_METATYPE(QImage::Format)
+Q_DECLARE_METATYPE(Qt::GlobalColor)
class tst_QImage : public QObject
{
@@ -139,6 +140,14 @@ private slots:
void premultipliedAlphaConsistency();
void compareIndexed();
+
+ void fillColor_data();
+ void fillColor();
+
+ void fillColorWithAlpha();
+
+ void rgbSwapped_data();
+ void rgbSwapped();
};
tst_QImage::tst_QImage()
@@ -1820,5 +1829,174 @@ void tst_QImage::compareIndexed()
QCOMPARE(img, imgInverted);
}
+void tst_QImage::fillColor_data()
+{
+ QTest::addColumn<QImage::Format>("format");
+ QTest::addColumn<Qt::GlobalColor>("color");
+ QTest::addColumn<uint>("pixelValue");
+
+ QTest::newRow("Mono, color0") << QImage::Format_Mono << Qt::color0 << 0u;
+ QTest::newRow("Mono, color1") << QImage::Format_Mono << Qt::color1 << 1u;
+
+ QTest::newRow("MonoLSB, color0") << QImage::Format_MonoLSB << Qt::color0 << 0u;
+ QTest::newRow("MonoLSB, color1") << QImage::Format_MonoLSB << Qt::color1 << 1u;
+
+ const char *names[] = {
+ "Indexed8",
+ "RGB32",
+ "ARGB32",
+ "ARGB32pm",
+ "RGB16",
+ "ARGB8565pm",
+ "RGB666",
+ "ARGB6666pm",
+ "RGB555",
+ "ARGB8555pm",
+ "RGB888",
+ "RGB444",
+ "ARGB4444pm",
+ 0
+ };
+
+ QImage::Format formats[] = {
+ QImage::Format_Indexed8,
+ QImage::Format_RGB32,
+ QImage::Format_ARGB32,
+ QImage::Format_ARGB32_Premultiplied,
+ QImage::Format_RGB16,
+ QImage::Format_ARGB8565_Premultiplied,
+ QImage::Format_RGB666,
+ QImage::Format_ARGB6666_Premultiplied,
+ QImage::Format_RGB555,
+ QImage::Format_ARGB8555_Premultiplied,
+ QImage::Format_RGB888,
+ QImage::Format_RGB444,
+ QImage::Format_ARGB4444_Premultiplied
+ };
+
+ for (int i=0; names[i] != 0; ++i) {
+ QByteArray name;
+ name.append(names[i]).append(", ");
+
+ QTest::newRow(QByteArray(name).append("black").constData()) << formats[i] << Qt::black << 0xff000000;
+ QTest::newRow(QByteArray(name).append("white").constData()) << formats[i] << Qt::white << 0xffffffff;
+ QTest::newRow(QByteArray(name).append("red").constData()) << formats[i] << Qt::red << 0xffff0000;
+ QTest::newRow(QByteArray(name).append("green").constData()) << formats[i] << Qt::green << 0xff00ff00;
+ QTest::newRow(QByteArray(name).append("blue").constData()) << formats[i] << Qt::blue << 0xff0000ff;
+ }
+
+ QTest::newRow("RGB16, transparent") << QImage::Format_RGB16 << Qt::transparent << 0xff000000;
+ QTest::newRow("RGB32, transparent") << QImage::Format_RGB32 << Qt::transparent << 0xff000000;
+ QTest::newRow("ARGB32, transparent") << QImage::Format_ARGB32 << Qt::transparent << 0x00000000u;
+ QTest::newRow("ARGB32pm, transparent") << QImage::Format_ARGB32_Premultiplied << Qt::transparent << 0x00000000u;
+}
+
+void tst_QImage::fillColor()
+{
+ QFETCH(QImage::Format, format);
+ QFETCH(Qt::GlobalColor, color);
+ QFETCH(uint, pixelValue);
+
+ QImage image(1, 1, format);
+
+ if (image.depth() == 8) {
+ QVector<QRgb> table;
+ table << 0xff000000;
+ table << 0xffffffff;
+ table << 0xffff0000;
+ table << 0xff00ff00;
+ table << 0xff0000ff;
+ image.setColorTable(table);
+ }
+
+ image.fill(color);
+ if (image.depth() == 1) {
+ QCOMPARE(image.pixelIndex(0, 0), (int) pixelValue);
+ } else {
+ QCOMPARE(image.pixel(0, 0), pixelValue);
+ }
+
+ image.fill(QColor(color));
+ if (image.depth() == 1) {
+ QCOMPARE(image.pixelIndex(0, 0), (int) pixelValue);
+ } else {
+ QCOMPARE(image.pixel(0, 0), pixelValue);
+ }
+}
+
+void tst_QImage::fillColorWithAlpha()
+{
+ QImage argb32(1, 1, QImage::Format_ARGB32);
+ argb32.fill(QColor(255, 0, 0, 127));
+ QCOMPARE(argb32.pixel(0, 0), qRgba(255, 0, 0, 127));
+
+ QImage argb32pm(1, 1, QImage::Format_ARGB32_Premultiplied);
+ argb32pm.fill(QColor(255, 0, 0, 127));
+ QCOMPARE(argb32pm.pixel(0, 0), 0x7f7f0000u);
+}
+
+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"
diff --git a/tests/auto/qiodevice/tst_qiodevice.cpp b/tests/auto/qiodevice/tst_qiodevice.cpp
index 7048754..0226402 100644
--- a/tests/auto/qiodevice/tst_qiodevice.cpp
+++ b/tests/auto/qiodevice/tst_qiodevice.cpp
@@ -81,6 +81,8 @@ private slots:
void readLine2_data();
void readLine2();
+
+ void peekBug();
};
// Testing get/set functions
@@ -591,5 +593,62 @@ void tst_QIODevice::readLine2()
}
}
+
+class PeekBug : public QIODevice {
+ Q_OBJECT
+public:
+ char alphabet[27];
+ qint64 counter;
+ PeekBug() : QIODevice(), counter(0) {
+ memcpy(alphabet,"abcdefghijklmnopqrstuvqxyz",27);
+ };
+ qint64 readData(char *data, qint64 maxlen) {
+ qint64 pos = 0;
+ while (pos < maxlen) {
+ *(data + pos) = alphabet[counter];
+ pos++;
+ counter++;
+ if (counter == 26)
+ counter = 0;
+ }
+ return maxlen;
+ }
+ qint64 writeData(const char *data, qint64 maxlen) {
+ return -1;
+ }
+
+};
+
+// This is a testcase for the bug fixed with bd287865
+void tst_QIODevice::peekBug()
+{
+ PeekBug peekBug;
+ peekBug.open(QIODevice::ReadOnly | QIODevice::Unbuffered);
+
+ char onetwo[2];
+ peekBug.peek(onetwo, 2);
+ QCOMPARE(onetwo[0], 'a');
+ QCOMPARE(onetwo[1], 'b');
+
+ peekBug.read(onetwo, 1);
+ QCOMPARE(onetwo[0], 'a');
+
+ peekBug.peek(onetwo, 2);
+ QCOMPARE(onetwo[0], 'b');
+ QCOMPARE(onetwo[1], 'c');
+
+ peekBug.read(onetwo, 1);
+ QCOMPARE(onetwo[0], 'b');
+ peekBug.read(onetwo, 1);
+ QCOMPARE(onetwo[0], 'c');
+ peekBug.read(onetwo, 1);
+ QCOMPARE(onetwo[0], 'd');
+
+ peekBug.peek(onetwo, 2);
+ QCOMPARE(onetwo[0], 'e');
+ QCOMPARE(onetwo[1], 'f');
+
+}
+
QTEST_MAIN(tst_QIODevice)
#include "tst_qiodevice.moc"
diff --git a/tests/auto/qlocale/test/test.pro b/tests/auto/qlocale/test/test.pro
index e33d0fe..6512e19 100644
--- a/tests/auto/qlocale/test/test.pro
+++ b/tests/auto/qlocale/test/test.pro
@@ -37,3 +37,5 @@ symbian:contains(S60_VERSION,3.2) {
"$${LITERAL_HASH}endif"
MMP_RULES += custom_paged_rule
}
+
+symbian: INCLUDEPATH *= $$MW_LAYER_SYSTEMINCLUDE # Needed for e32svr.h in S^3 envs
diff --git a/tests/auto/qmatrixnxn/tst_qmatrixnxn.cpp b/tests/auto/qmatrixnxn/tst_qmatrixnxn.cpp
index 5709196..22c679a 100644
--- a/tests/auto/qmatrixnxn/tst_qmatrixnxn.cpp
+++ b/tests/auto/qmatrixnxn/tst_qmatrixnxn.cpp
@@ -2822,10 +2822,9 @@ void tst_QMatrixNxN::convertGeneric()
9.0f, 10.0f, 11.0f, 12.0f,
0.0f, 0.0f, 0.0f, 1.0f
};
-#if !defined(QT_NO_MEMBER_TEMPLATES)
QMatrix4x4 m4(m1);
QVERIFY(isSame(m4, unique4x4));
-#endif
+
QMatrix4x4 m5 = qGenericMatrixToMatrix4x4(m1);
QVERIFY(isSame(m5, unique4x4));
@@ -2835,10 +2834,9 @@ void tst_QMatrixNxN::convertGeneric()
9.0f, 10.0f, 11.0f, 12.0f
};
QMatrix4x4 m9(uniqueValues4);
-#if !defined(QT_NO_MEMBER_TEMPLATES)
+
QMatrix4x3 m10 = m9.toGenericMatrix<4, 3>();
QVERIFY(isSame(m10, conv4x4));
-#endif
QMatrix4x3 m11 = qGenericMatrixFromMatrix4x4<4, 3>(m9);
QVERIFY(isSame(m11, conv4x4));
diff --git a/tests/auto/qmetaobject/tst_qmetaobject.cpp b/tests/auto/qmetaobject/tst_qmetaobject.cpp
index df75ae8..ff39842 100644
--- a/tests/auto/qmetaobject/tst_qmetaobject.cpp
+++ b/tests/auto/qmetaobject/tst_qmetaobject.cpp
@@ -850,6 +850,8 @@ void tst_QMetaObject::normalizedSignature_data()
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()
@@ -857,7 +859,7 @@ void tst_QMetaObject::normalizedSignature()
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()
@@ -895,7 +897,7 @@ void tst_QMetaObject::normalizedType()
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()
diff --git a/tests/auto/qmetatype/tst_qmetatype.cpp b/tests/auto/qmetatype/tst_qmetatype.cpp
index 8558e06..eaa19d0 100644
--- a/tests/auto/qmetatype/tst_qmetatype.cpp
+++ b/tests/auto/qmetatype/tst_qmetatype.cpp
@@ -160,6 +160,11 @@ void tst_QMetaType::qMetaTypeId()
QCOMPARE(::qMetaTypeId<QString>(), int(QMetaType::QString));
QCOMPARE(::qMetaTypeId<int>(), int(QMetaType::Int));
QCOMPARE(::qMetaTypeId<TestSpace::Foo>(), QMetaType::type("TestSpace::Foo"));
+
+ QCOMPARE(::qMetaTypeId<char>(), QMetaType::type("char"));
+ QCOMPARE(::qMetaTypeId<uchar>(), QMetaType::type("unsigned char"));
+ QCOMPARE(::qMetaTypeId<signed char>(), QMetaType::type("signed char"));
+ QCOMPARE(::qMetaTypeId<qint8>(), QMetaType::type("qint8"));
}
void tst_QMetaType::properties()
diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
index 5af8034..bb91965 100644
--- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
@@ -75,7 +75,8 @@
#include "../network-settings.h"
-
+typedef QSharedPointer<QVarLengthArray<char, 0> > QVarLengthArraySharedPointer;
+Q_DECLARE_METATYPE(QVarLengthArraySharedPointer)
Q_DECLARE_METATYPE(QNetworkReply*)
Q_DECLARE_METATYPE(QAuthenticator*)
Q_DECLARE_METATYPE(QNetworkProxy)
@@ -289,6 +290,13 @@ private Q_SLOTS:
void symbianOpenCDataUrlCrash();
+ void getFromHttpIntoBuffer_data();
+ void getFromHttpIntoBuffer();
+
+ void ioGetFromHttpWithoutContentLength();
+
+ void ioGetFromHttpBrokenChunkedEncoding();
+
// NOTE: This test must be last!
void parentingRepliesToTheApp();
};
@@ -3936,6 +3944,7 @@ void tst_QNetworkReply::authorizationError()
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), httpStatusCode);
QFETCH(QString, httpBody);
+ QCOMPARE(qint64(reply->size()), qint64(httpBody.size()));
QCOMPARE(QString(reply->readAll()), httpBody);
}
@@ -4280,6 +4289,91 @@ void tst_QNetworkReply::symbianOpenCDataUrlCrash()
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), qint64(598));
}
+void tst_QNetworkReply::getFromHttpIntoBuffer_data()
+{
+ QTest::addColumn<QUrl>("url");
+
+ QTest::newRow("rfc-internal") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt");
+}
+
+void tst_QNetworkReply::getFromHttpIntoBuffer()
+{
+ QFETCH(QUrl, url);
+ QNetworkRequest request(url);
+ request.setAttribute(QNetworkRequest::MaximumDownloadBufferSizeAttribute, 1024*128); // 128 kB
+
+ QNetworkAccessManager manager;
+ QNetworkReply *reply = manager.get(request);
+ connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
+
+ QTestEventLoop::instance().enterLoop(10);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+ QVERIFY(reply->isFinished());
+
+ QFile reference(SRCDIR "/rfc3252.txt");
+ QVERIFY(reference.open(QIODevice::ReadOnly));
+
+ QCOMPARE(reference.bytesAvailable(), reply->bytesAvailable());
+ QCOMPARE(reference.size(), reply->size());
+
+ // Compare the memory buffer
+ QVariant downloadBufferAttribute = reply->attribute(QNetworkRequest::DownloadBufferAttribute);
+ bool memoryComparison =
+ (0 == memcmp(static_cast<void*>(reference.readAll().data()),
+ downloadBufferAttribute.value<QSharedPointer<QVarLengthArray<char, 0> > >()->constData(), reference.size()));
+ QVERIFY(memoryComparison);
+
+ // Make sure the normal reading works
+ reference.seek(0);
+ QCOMPARE(reply->read(42), reference.read(42));
+ QCOMPARE(reply->getChar(0), reference.getChar(0));
+ QCOMPARE(reply->peek(23), reference.peek(23));
+ QCOMPARE(reply->readLine(), reference.readLine());
+ QCOMPARE(reference.bytesAvailable(), reply->bytesAvailable());
+ QCOMPARE(reply->readAll(), reference.readAll());
+ QVERIFY(reply->atEnd());
+}
+
+// Is handled somewhere else too, introduced this special test to have it more accessible
+void tst_QNetworkReply::ioGetFromHttpWithoutContentLength()
+{
+ QByteArray dataToSend("HTTP/1.0 200 OK\r\n\r\nHALLO! 123!");
+ MiniHttpServer server(dataToSend);
+ 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->url(), request.url());
+ QVERIFY(reply->isFinished());
+ QVERIFY(reply->error() == QNetworkReply::NoError);
+}
+
+// Is handled somewhere else too, introduced this special test to have it more accessible
+void tst_QNetworkReply::ioGetFromHttpBrokenChunkedEncoding()
+{
+ // This is wrong chunked encoding because of the X. What actually has to follow is \r\n
+ // and then the declaration of the final 0 chunk
+ QByteArray dataToSend("HTTP/1.0 200 OK\r\nTransfer-Encoding: chunked\r\n\r\n3\r\nABCX");
+ MiniHttpServer server(dataToSend);
+ server.doClose = false; // FIXME
+
+ 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);
+
+ QEXPECT_FAIL(0, "We should close the socket and not just do nothing", Continue);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+ QEXPECT_FAIL(0, "We should close the socket and not just do nothing", Continue);
+ QVERIFY(reply->isFinished());
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
+}
// NOTE: This test must be last testcase in tst_qnetworkreply!
diff --git a/tests/auto/qobject/tst_qobject.cpp b/tests/auto/qobject/tst_qobject.cpp
index 5caac15..abfe24b 100644
--- a/tests/auto/qobject/tst_qobject.cpp
+++ b/tests/auto/qobject/tst_qobject.cpp
@@ -669,11 +669,9 @@ void tst_QObject::findChildren()
l = qFindChildren<QObject*>(&o, "unnamed");
QCOMPARE(l.size(), 0);
-#ifndef QT_NO_MEMBER_TEMPLATES
tl = o.findChildren<QTimer *>("t1");
QCOMPARE(tl.size(), 1);
QCOMPARE(tl.at(0), &t1);
-#endif
}
@@ -1784,9 +1782,12 @@ class SuperObject : public QObject
Q_OBJECT
public:
QObject *theSender;
+ int theSignalId;
+
SuperObject()
{
theSender = 0;
+ theSignalId = 0;
}
friend class tst_QObject;
@@ -1797,16 +1798,17 @@ public slots:
void rememberSender()
{
theSender = sender();
+ theSignalId = senderSignalIndex();
}
void deleteAndRememberSender()
{
delete theSender;
- theSender = sender();
+ rememberSender();
}
signals:
+ void anotherSignal();
void theSignal();
-
};
void tst_QObject::sender()
@@ -1814,12 +1816,23 @@ void tst_QObject::sender()
{
SuperObject sender;
SuperObject receiver;
+ connect(&sender, SIGNAL(anotherSignal()),
+ &receiver, SLOT(rememberSender()));
connect(&sender, SIGNAL(theSignal()),
&receiver, SLOT(rememberSender()));
QCOMPARE(receiver.sender(), (QObject *)0);
+ QCOMPARE(receiver.senderSignalIndex(), -1);
emit sender.theSignal();
QCOMPARE(receiver.theSender, (QObject *)&sender);
QCOMPARE(receiver.sender(), (QObject *)0);
+ QCOMPARE(receiver.theSignalId,
+ sender.metaObject()->indexOfSignal("theSignal()"));
+ QCOMPARE(receiver.senderSignalIndex(), -1);
+
+ emit sender.anotherSignal();
+ QCOMPARE(receiver.theSignalId,
+ sender.metaObject()->indexOfSignal("anotherSignal()"));
+ QCOMPARE(receiver.senderSignalIndex(), -1);
}
{
@@ -1836,11 +1849,16 @@ void tst_QObject::sender()
Qt::DirectConnection);
QCOMPARE(receiver->sender(), (QObject *)0);
+ QCOMPARE(receiver->senderSignalIndex(), -1);
receiver->theSender = 0;
+ receiver->theSignalId = -1;
thread.start();
emit sender->theSignal();
QCOMPARE(receiver->theSender, (QObject *) sender);
QCOMPARE(receiver->sender(), (QObject *)0);
+ QCOMPARE(receiver->theSignalId,
+ sender->metaObject()->indexOfSignal("theSignal()"));
+ QCOMPARE(receiver->senderSignalIndex(), -1);
QVERIFY(thread.wait(10000));
delete receiver;
diff --git a/tests/auto/qpainter/tst_qpainter.cpp b/tests/auto/qpainter/tst_qpainter.cpp
index 2cbb9b2..5003950 100644
--- a/tests/auto/qpainter/tst_qpainter.cpp
+++ b/tests/auto/qpainter/tst_qpainter.cpp
@@ -170,6 +170,8 @@ private slots:
void clippedText();
+ void clipBoundingRect();
+
void setOpacity_data();
void setOpacity();
@@ -1321,7 +1323,7 @@ void tst_QPainter::drawRect2()
p.end();
QRect stroke = getPaintedSize(image, Qt::white);
- QCOMPARE(stroke.adjusted(1, 1, 0, 0), fill.adjusted(0, 0, 1, 1));
+ QCOMPARE(stroke, fill.adjusted(0, 0, 1, 1));
}
}
@@ -1438,13 +1440,13 @@ void tst_QPainter::drawPath_data()
{
QPainterPath p;
p.addRect(2.25, 2.25, 10, 10);
- QTest::newRow("non-aligned rect") << p << QRect(3, 3, 10, 10) << 10 * 10;
+ QTest::newRow("non-aligned rect") << p << QRect(2, 2, 10, 10) << 10 * 10;
}
{
QPainterPath p;
p.addRect(2.25, 2.25, 10.5, 10.5);
- QTest::newRow("non-aligned rect 2") << p << QRect(3, 3, 10, 10) << 10 * 10;
+ QTest::newRow("non-aligned rect 2") << p << QRect(2, 2, 11, 11) << 11 * 11;
}
{
@@ -3549,6 +3551,9 @@ bool verifyOutlineFillConsistency(const QImage &img, QRgb outside, QRgb inside,
void tst_QPainter::outlineFillConsistency()
{
+ QSKIP("currently broken...", SkipAll);
+ return;
+
QImage dst(256, 256, QImage::Format_ARGB32_Premultiplied);
QPolygonF poly;
@@ -4565,6 +4570,41 @@ void tst_QPainter::QTBUG5939_attachPainterPrivate()
QCOMPARE(widget->deviceTransform, proxy->deviceTransform);
}
+void tst_QPainter::clipBoundingRect()
+{
+ QPixmap pix(500, 500);
+
+ QPainter p(&pix);
+
+ // Test a basic rectangle
+ p.setClipRect(100, 100, 200, 100);
+ QVERIFY(p.clipBoundingRect().contains(QRectF(100, 100, 200, 100)));
+ QVERIFY(!p.clipBoundingRect().contains(QRectF(50, 50, 300, 200)));
+ p.setClipRect(120, 120, 20, 20, Qt::IntersectClip);
+ QVERIFY(p.clipBoundingRect().contains(QRect(120, 120, 20, 20)));
+ QVERIFY(!p.clipBoundingRect().contains(QRectF(100, 100, 200, 100)));
+
+ // Test a basic path + region
+ QPainterPath path;
+ path.addRect(100, 100, 200, 100);
+ p.setClipPath(path);
+ QVERIFY(p.clipBoundingRect().contains(QRectF(100, 100, 200, 100)));
+ QVERIFY(!p.clipBoundingRect().contains(QRectF(50, 50, 300, 200)));
+ p.setClipRegion(QRegion(120, 120, 20, 20), Qt::IntersectClip);
+ QVERIFY(p.clipBoundingRect().contains(QRect(120, 120, 20, 20)));
+ QVERIFY(!p.clipBoundingRect().contains(QRectF(100, 100, 200, 100)));
+
+ p.setClipRect(0, 0, 500, 500);
+ p.translate(250, 250);
+ for (int i=0; i<360; ++i) {
+ p.rotate(1);
+ p.setClipRect(-100, -100, 200, 200, Qt::IntersectClip);
+ }
+ QVERIFY(p.clipBoundingRect().contains(QRectF(-100, -100, 200, 200)));
+ QVERIFY(!p.clipBoundingRect().contains(QRectF(-250, -250, 500, 500)));
+
+}
+
void tst_QPainter::drawHorizontalLine()
{
QPixmap pixmap(100, 3);
diff --git a/tests/auto/qpluginloader/lib/lib.pro b/tests/auto/qpluginloader/lib/lib.pro
index 96a9732..ce9bf13 100644
--- a/tests/auto/qpluginloader/lib/lib.pro
+++ b/tests/auto/qpluginloader/lib/lib.pro
@@ -2,7 +2,7 @@ TEMPLATE = lib
CONFIG += dll
CONFIG -= staticlib
SOURCES = mylib.c
-TARGET = mylib
+TARGET = tst_qpluginloaderlib
DESTDIR = ../bin
QT = core
diff --git a/tests/auto/qpluginloader/tst/tst.pro b/tests/auto/qpluginloader/tst/tst.pro
index 2de0912..2d757e7 100644
--- a/tests/auto/qpluginloader/tst/tst.pro
+++ b/tests/auto/qpluginloader/tst/tst.pro
@@ -20,7 +20,7 @@ wince*: {
}
symbian: {
- libDep.sources = mylib.dll
+ libDep.sources = tst_qpluginloaderlib.dll
libDep.path = /sys/bin
pluginDep.sources = theplugin.dll
pluginDep.path = bin
diff --git a/tests/auto/qpluginloader/tst_qpluginloader.cpp b/tests/auto/qpluginloader/tst_qpluginloader.cpp
index 61d59a1..1e382b8 100644
--- a/tests/auto/qpluginloader/tst_qpluginloader.cpp
+++ b/tests/auto/qpluginloader/tst_qpluginloader.cpp
@@ -169,7 +169,7 @@ void tst_QPluginLoader::errorString()
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();
diff --git a/tests/auto/qregexp/tst_qregexp.cpp b/tests/auto/qregexp/tst_qregexp.cpp
index ea07323..d0d26ee 100644
--- a/tests/auto/qregexp/tst_qregexp.cpp
+++ b/tests/auto/qregexp/tst_qregexp.cpp
@@ -105,6 +105,7 @@ private slots:
void QTBUG_7049_data();
void QTBUG_7049();
+ void interval();
};
// Testing get/set functions
@@ -1426,5 +1427,22 @@ void tst_QRegExp::QTBUG_7049()
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"
diff --git a/tests/auto/qscriptengine/tst_qscriptengine.cpp b/tests/auto/qscriptengine/tst_qscriptengine.cpp
index 81fb749..04b2627 100644
--- a/tests/auto/qscriptengine/tst_qscriptengine.cpp
+++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp
@@ -1909,7 +1909,6 @@ void tst_QScriptEngine::valueConversion()
QString snum = qScriptValueToValue<QString>(num);
QCOMPARE(snum, QLatin1String("123"));
}
-#ifndef QT_NO_MEMBER_TEMPLATES
{
QScriptValue num = eng.toScriptValue(123);
QCOMPARE(num.isNumber(), true);
@@ -1921,7 +1920,6 @@ void tst_QScriptEngine::valueConversion()
QString snum = eng.fromScriptValue<QString>(num);
QCOMPARE(snum, QLatin1String("123"));
}
-#endif
{
QScriptValue num(&eng, 123);
QCOMPARE(qScriptValueToValue<char>(num), char(123));
diff --git a/tests/auto/qsharedpointer/tst_qsharedpointer.cpp b/tests/auto/qsharedpointer/tst_qsharedpointer.cpp
index 6b4904f..5e624e4 100644
--- a/tests/auto/qsharedpointer/tst_qsharedpointer.cpp
+++ b/tests/auto/qsharedpointer/tst_qsharedpointer.cpp
@@ -732,7 +732,6 @@ void tst_QSharedPointer::objectCast()
ptr = baseptr.objectCast<OtherObject>();
QVERIFY(ptr == data);
-#ifndef QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
// again:
ptr = qobject_cast<OtherObject *>(baseptr);
QVERIFY(ptr == data);
@@ -740,7 +739,6 @@ void tst_QSharedPointer::objectCast()
// again:
ptr = qobject_cast<QSharedPointer<OtherObject> >(baseptr);
QVERIFY(ptr == data);
-#endif
}
check();
@@ -760,7 +758,6 @@ void tst_QSharedPointer::objectCast()
ptr = baseptr.objectCast<const OtherObject>();
QVERIFY(ptr == data);
-#ifndef QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
// again:
ptr = qobject_cast<const OtherObject *>(baseptr);
QVERIFY(ptr == data);
@@ -768,7 +765,6 @@ void tst_QSharedPointer::objectCast()
// again:
ptr = qobject_cast<QSharedPointer<const OtherObject> >(baseptr);
QVERIFY(ptr == data);
-#endif
}
check();
@@ -802,7 +798,6 @@ void tst_QSharedPointer::objectCast()
QSharedPointer<OtherObject> otherptr = qSharedPointerObjectCast<OtherObject>(weakptr);
QVERIFY(otherptr.isNull());
-#ifndef QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
// again:
otherptr = qobject_cast<OtherObject *>(weakptr);
QVERIFY(otherptr.isNull());
@@ -810,7 +805,6 @@ void tst_QSharedPointer::objectCast()
// again:
otherptr = qobject_cast<QSharedPointer<OtherObject> >(weakptr);
QVERIFY(otherptr.isNull());
-#endif
}
check();
}
@@ -1736,12 +1730,10 @@ void tst_QSharedPointer::invalidConstructs_data()
<< &QTest::QExternalTest::tryCompileFail
<< "QSharedPointer<const QObject> baseptr = QSharedPointer<const QObject>(new QObject);\n"
"qSharedPointerObjectCast<QCoreApplication>(baseptr);";
-#ifndef QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
QTest::newRow("const-dropping-object-cast2")
<< &QTest::QExternalTest::tryCompileFail
<< "QSharedPointer<const QObject> baseptr = QSharedPointer<const QObject>(new QObject);\n"
"qobject_cast<QCoreApplication *>(baseptr);";
-#endif
// arithmethics through automatic cast operators
QTest::newRow("arithmethic1")
diff --git a/tests/auto/qsslcertificate/more-certificates/cert-large-expiration-date.pem b/tests/auto/qsslcertificate/more-certificates/cert-large-expiration-date.pem
new file mode 100644
index 0000000..416dd4d
--- /dev/null
+++ b/tests/auto/qsslcertificate/more-certificates/cert-large-expiration-date.pem
@@ -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-----
diff --git a/tests/auto/qsslcertificate/tst_qsslcertificate.cpp b/tests/auto/qsslcertificate/tst_qsslcertificate.cpp
index d0509bb..963bf11 100644
--- a/tests/auto/qsslcertificate/tst_qsslcertificate.cpp
+++ b/tests/auto/qsslcertificate/tst_qsslcertificate.cpp
@@ -110,6 +110,7 @@ private slots:
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 @@ void tst_QSslCertificate::largeSerialNumber()
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)
diff --git a/tests/auto/qsslsocket/qsslsocket.pro b/tests/auto/qsslsocket/qsslsocket.pro
index 3557fc8..accfa89 100644
--- a/tests/auto/qsslsocket/qsslsocket.pro
+++ b/tests/auto/qsslsocket/qsslsocket.pro
@@ -29,6 +29,7 @@ wince* {
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/\\\"
}
diff --git a/tests/auto/qsslsocket/tst_qsslsocket.cpp b/tests/auto/qsslsocket/tst_qsslsocket.cpp
index 0c12974..6c1dd8f 100644
--- a/tests/auto/qsslsocket/tst_qsslsocket.cpp
+++ b/tests/auto/qsslsocket/tst_qsslsocket.cpp
@@ -1072,6 +1072,7 @@ void tst_QSslSocket::wildcardCertificateNames()
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 +1086,7 @@ void tst_QSslSocket::wildcardCertificateNames()
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()
diff --git a/tests/auto/qstatictext/tst_qstatictext.cpp b/tests/auto/qstatictext/tst_qstatictext.cpp
index 1d166f4..6498ae4 100644
--- a/tests/auto/qstatictext/tst_qstatictext.cpp
+++ b/tests/auto/qstatictext/tst_qstatictext.cpp
@@ -77,14 +77,21 @@ private slots:
void rotatedPainter();
void scaledPainter();
void projectedPainter();
+#if 0
+ void rotatedScaledAndTranslatedPainter_data();
void rotatedScaledAndTranslatedPainter();
- void transformationChanged();
+#endif
+ void transformationChanged();
void plainTextVsRichText();
void setPenPlainText();
void setPenRichText();
void richTextOverridesPen();
+
+ void drawStruckOutText();
+ void drawOverlinedText();
+ void drawUnderlinedText();
};
void tst_QStaticText::init()
@@ -422,12 +429,26 @@ void tst_QStaticText::projectedPainter()
QCOMPARE(imageDrawStaticText, imageDrawText);
}
+#if 0
+void tst_QStaticText::rotatedScaledAndTranslatedPainter_data()
+{
+ QTest::addColumn<qreal>("offset");
+
+ for (int i=0; i<100; ++i) {
+ qreal offset = 300 + i / 100.;
+ QTest::newRow(QByteArray::number(offset).constData()) << offset;
+ }
+}
+
void tst_QStaticText::rotatedScaledAndTranslatedPainter()
{
+ QFETCH(qreal, offset);
+
QPixmap imageDrawText(1000, 1000);
imageDrawText.fill(Qt::white);
{
QPainter p(&imageDrawText);
+ p.translate(offset, 0);
p.rotate(45.0);
p.scale(2.0, 2.0);
p.translate(100, 200);
@@ -439,6 +460,7 @@ void tst_QStaticText::rotatedScaledAndTranslatedPainter()
imageDrawStaticText.fill(Qt::white);
{
QPainter p(&imageDrawStaticText);
+ p.translate(offset, 0);
p.rotate(45.0);
p.scale(2.0, 2.0);
p.translate(100, 200);
@@ -458,6 +480,7 @@ void tst_QStaticText::rotatedScaledAndTranslatedPainter()
QEXPECT_FAIL("", "Graphics system does not support transformed text on this platform", Abort);
QCOMPARE(imageDrawStaticText, imageDrawText);
}
+#endif
void tst_QStaticText::transformationChanged()
{
@@ -620,5 +643,107 @@ void tst_QStaticText::richTextOverridesPen()
}
}
+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"
diff --git a/tests/auto/qstring/tst_qstring.cpp b/tests/auto/qstring/tst_qstring.cpp
index 9d8c0b2..a3f7f15 100644
--- a/tests/auto/qstring/tst_qstring.cpp
+++ b/tests/auto/qstring/tst_qstring.cpp
@@ -213,6 +213,7 @@ private slots:
void repeated_data() const;
void task262677remove();
void QTBUG10404_compareRef();
+ void QTBUG9281_arg_locale();
};
typedef QList<int> IntList;
@@ -4932,6 +4933,17 @@ void tst_QString::QTBUG10404_compareRef()
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)
diff --git a/tests/auto/qsvgrenderer/qsvgrenderer.pro b/tests/auto/qsvgrenderer/qsvgrenderer.pro
index 8cfbcce..0b785e3 100644
--- a/tests/auto/qsvgrenderer/qsvgrenderer.pro
+++ b/tests/auto/qsvgrenderer/qsvgrenderer.pro
@@ -13,6 +13,8 @@ wince*|symbian {
addFiles.path = .
DEPLOYMENT += addFiles
- DEPLOYMENT_PLUGIN += qsvg
+ wince*|qt_not_deployed {
+ DEPLOYMENT_PLUGIN += qsvg
+ }
}
diff --git a/tests/auto/qtextcodec/qtextcodec.pro b/tests/auto/qtextcodec/qtextcodec.pro
index 0bcf067..6cb13a9 100644
--- a/tests/auto/qtextcodec/qtextcodec.pro
+++ b/tests/auto/qtextcodec/qtextcodec.pro
@@ -1,4 +1,4 @@
TEMPLATE = subdirs
SUBDIRS = test
-!wince*:SUBDIRS += echo
+!wince*:!symbian:SUBDIRS += echo
diff --git a/tests/auto/qtextcodec/test/test.pro b/tests/auto/qtextcodec/test/test.pro
index efa2e85..b85032a 100644
--- a/tests/auto/qtextcodec/test/test.pro
+++ b/tests/auto/qtextcodec/test/test.pro
@@ -20,7 +20,9 @@ wince*|symbian {
addFiles.sources = ../*.txt
addFiles.path = .
DEPLOYMENT += addFiles
- DEPLOYMENT_PLUGIN += qcncodecs qjpcodecs qkrcodecs qtwcodecs
+ wince*|qt_not_deployed {
+ DEPLOYMENT_PLUGIN += qcncodecs qjpcodecs qkrcodecs qtwcodecs
+ }
}
wince*: {
diff --git a/tests/auto/qtextcodec/tst_qtextcodec.cpp b/tests/auto/qtextcodec/tst_qtextcodec.cpp
index 0946c93..cc41591 100644
--- a/tests/auto/qtextcodec/tst_qtextcodec.cpp
+++ b/tests/auto/qtextcodec/tst_qtextcodec.cpp
@@ -1946,6 +1946,8 @@ void tst_QTextCodec::toLocal8Bit()
{
#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");
diff --git a/tests/auto/qtextlayout/tst_qtextlayout.cpp b/tests/auto/qtextlayout/tst_qtextlayout.cpp
index 079e69f..dcc43d0 100644
--- a/tests/auto/qtextlayout/tst_qtextlayout.cpp
+++ b/tests/auto/qtextlayout/tst_qtextlayout.cpp
@@ -123,6 +123,7 @@ private slots:
void smallTextLengthWrapAtWordBoundaryOrAnywhere();
void testLineBreakingAllSpaces();
void lineWidthFromBOM();
+ void textWidthVsWIdth();
private:
@@ -1383,5 +1384,34 @@ void tst_QTextLayout::glyphLessItems()
}
}
+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"
diff --git a/tests/auto/qtextstream/qtextstream.pro b/tests/auto/qtextstream/qtextstream.pro
index 8346d7f..a2dcc81 100644
--- a/tests/auto/qtextstream/qtextstream.pro
+++ b/tests/auto/qtextstream/qtextstream.pro
@@ -1,5 +1,6 @@
TEMPLATE = subdirs
-SUBDIRS = test stdinProcess readAllStdinProcess readLineStdinProcess
+SUBDIRS = test
+!symbian: SUBDIRS += stdinProcess readAllStdinProcess readLineStdinProcess
diff --git a/tests/auto/qtimer/tst_qtimer.cpp b/tests/auto/qtimer/tst_qtimer.cpp
index a0408ef..8d213ed 100644
--- a/tests/auto/qtimer/tst_qtimer.cpp
+++ b/tests/auto/qtimer/tst_qtimer.cpp
@@ -86,6 +86,7 @@ private slots:
void timerIdPersistsAfterThreadExit();
void cancelLongTimer();
void singleShotStaticFunctionZeroTimeout();
+ void recurseOnTimeoutAndStopTimer();
};
class TimerHelper : public QObject
@@ -623,5 +624,48 @@ void tst_QTimer::singleShotStaticFunctionZeroTimeout()
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"
diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp
index fafd104..572b300 100644
--- a/tests/auto/qwidget/tst_qwidget.cpp
+++ b/tests/auto/qwidget/tst_qwidget.cpp
@@ -456,23 +456,15 @@ void tst_QWidget::getSetCheck()
QCOMPARE(obj1.minimumWidth(), 0); // A widgets width can never be less than 0
obj1.setMinimumWidth(INT_MAX);
#ifndef Q_WS_QWS //QWS doesn't allow toplevels to be bigger than the screen
-#if defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET)
- QCOMPARE((long)obj1.minimumWidth(), QWIDGETSIZE_MAX); // The largest minimum size should only be as big as the maximium
-#else
QCOMPARE(obj1.minimumWidth(), QWIDGETSIZE_MAX); // The largest minimum size should only be as big as the maximium
#endif
-#endif
child1.setMinimumWidth(0);
QCOMPARE(child1.minimumWidth(), 0);
child1.setMinimumWidth(INT_MIN);
QCOMPARE(child1.minimumWidth(), 0); // A widgets width can never be less than 0
child1.setMinimumWidth(INT_MAX);
-#if defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET)
- QCOMPARE((long)child1.minimumWidth(), QWIDGETSIZE_MAX); // The largest minimum size should only be as big as the maximium
-#else
QCOMPARE(child1.minimumWidth(), QWIDGETSIZE_MAX); // The largest minimum size should only be as big as the maximium
-#endif
// int QWidget::minimumHeight()
// void QWidget::setMinimumHeight(int)
@@ -482,38 +474,24 @@ void tst_QWidget::getSetCheck()
QCOMPARE(obj1.minimumHeight(), 0); // A widgets height can never be less than 0
obj1.setMinimumHeight(INT_MAX);
#ifndef Q_WS_QWS //QWS doesn't allow toplevels to be bigger than the screen
-#if defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET)
- QCOMPARE((long)obj1.minimumHeight(), QWIDGETSIZE_MAX); // The largest minimum size should only be as big as the maximium
-#else
QCOMPARE(obj1.minimumHeight(), QWIDGETSIZE_MAX); // The largest minimum size should only be as big as the maximium
#endif
-#endif
child1.setMinimumHeight(0);
QCOMPARE(child1.minimumHeight(), 0);
child1.setMinimumHeight(INT_MIN);
QCOMPARE(child1.minimumHeight(), 0); // A widgets height can never be less than 0
child1.setMinimumHeight(INT_MAX);
-#if defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET)
- QCOMPARE((long)child1.minimumHeight(), QWIDGETSIZE_MAX); // The largest minimum size should only be as big as the maximium
-#else
QCOMPARE(child1.minimumHeight(), QWIDGETSIZE_MAX); // The largest minimum size should only be as big as the maximium
-#endif
-
-
-// int QWidget::maximumWidth()
+ // int QWidget::maximumWidth()
// void QWidget::setMaximumWidth(int)
obj1.setMaximumWidth(0);
QCOMPARE(obj1.maximumWidth(), 0);
obj1.setMaximumWidth(INT_MIN);
QCOMPARE(obj1.maximumWidth(), 0); // A widgets width can never be less than 0
obj1.setMaximumWidth(INT_MAX);
-#if defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET)
- QCOMPARE((long)obj1.maximumWidth(), QWIDGETSIZE_MAX); // QWIDGETSIZE_MAX is the abs max, not INT_MAX
-#else
QCOMPARE(obj1.maximumWidth(), QWIDGETSIZE_MAX); // QWIDGETSIZE_MAX is the abs max, not INT_MAX
-#endif
// int QWidget::maximumHeight()
// void QWidget::setMaximumHeight(int)
@@ -522,11 +500,7 @@ void tst_QWidget::getSetCheck()
obj1.setMaximumHeight(INT_MIN);
QCOMPARE(obj1.maximumHeight(), 0); // A widgets height can never be less than 0
obj1.setMaximumHeight(INT_MAX);
-#if defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET)
- QCOMPARE((long)obj1.maximumHeight(), QWIDGETSIZE_MAX); // QWIDGETSIZE_MAX is the abs max, not INT_MAX
-#else
QCOMPARE(obj1.maximumHeight(), QWIDGETSIZE_MAX); // QWIDGETSIZE_MAX is the abs max, not INT_MAX
-#endif
// back to normal
obj1.setMinimumWidth(0);
diff --git a/tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xml b/tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xml
new file mode 100644
index 0000000..b17739a
--- /dev/null
+++ b/tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xml
@@ -0,0 +1 @@
+<date>2009-12-16T23:14:10.823218Z</date>
diff --git a/tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xsd b/tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xsd
new file mode 100644
index 0000000..55557f1
--- /dev/null
+++ b/tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xsd
@@ -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>
diff --git a/tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp b/tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp
index 3517b5a..092e966 100644
--- a/tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp
+++ b/tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp
@@ -216,6 +216,12 @@ void tst_XmlPatternsValidator::xsdSupport_data() const
<< 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)
diff --git a/tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp
index 36399af..ebeea84 100644
--- a/tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp
+++ b/tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp
@@ -71,6 +71,11 @@ private slots:
void isRegisteredBuiltin();
void isRegisteredCustom();
void isRegisteredNotRegistered();
+
+ void constructCoreType_data();
+ void constructCoreType();
+ void constructCoreTypeCopy_data();
+ void constructCoreTypeCopy();
};
tst_QMetaType::tst_QMetaType()
@@ -229,5 +234,52 @@ void tst_QMetaType::isRegisteredNotRegistered()
}
}
+void tst_QMetaType::constructCoreType_data()
+{
+ QTest::addColumn<int>("typeId");
+ for (int i = 0; i <= QMetaType::LastCoreType; ++i)
+ QTest::newRow(QMetaType::typeName(i)) << i;
+ for (int i = QMetaType::FirstCoreExtType; i <= QMetaType::LastCoreExtType; ++i)
+ QTest::newRow(QMetaType::typeName(i)) << i;
+ // GUI types are tested in tst_QGuiMetaType.
+}
+
+// Tests how fast QMetaType can default-construct and destroy a Qt
+// core type. The purpose of this benchmark is to measure the overhead
+// of using type id-based creation compared to creating the type
+// directly (i.e. "T *t = new T(); delete t;").
+void tst_QMetaType::constructCoreType()
+{
+ QFETCH(int, typeId);
+ QBENCHMARK {
+ for (int i = 0; i < 100000; ++i) {
+ void *data = QMetaType::construct(typeId, (void *)0);
+ QMetaType::destroy(typeId, data);
+ }
+ }
+}
+
+void tst_QMetaType::constructCoreTypeCopy_data()
+{
+ constructCoreType_data();
+}
+
+// Tests how fast QMetaType can copy-construct and destroy a Qt core
+// type. The purpose of this benchmark is to measure the overhead of
+// using type id-based creation compared to creating the type directly
+// (i.e. "T *t = new T(other); delete t;").
+void tst_QMetaType::constructCoreTypeCopy()
+{
+ QFETCH(int, typeId);
+ QVariant other(typeId, (void *)0);
+ const void *copy = other.constData();
+ QBENCHMARK {
+ for (int i = 0; i < 100000; ++i) {
+ void *data = QMetaType::construct(typeId, copy);
+ QMetaType::destroy(typeId, data);
+ }
+ }
+}
+
QTEST_MAIN(tst_QMetaType)
#include "tst_qmetatype.moc"
diff --git a/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp
index 58cec4f..5e19c1b 100644
--- a/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp
+++ b/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp
@@ -71,6 +71,11 @@ private slots:
void floatVariantValue();
void rectVariantValue();
void stringVariantValue();
+
+ void createCoreType_data();
+ void createCoreType();
+ void createCoreTypeCopy_data();
+ void createCoreTypeCopy();
};
void tst_qvariant::testBound()
@@ -220,6 +225,48 @@ void tst_qvariant::stringVariantValue()
}
}
+void tst_qvariant::createCoreType_data()
+{
+ QTest::addColumn<int>("typeId");
+ for (int i = 0; i <= QMetaType::LastCoreType; ++i)
+ QTest::newRow(QMetaType::typeName(i)) << i;
+ for (int i = QMetaType::FirstCoreExtType; i <= QMetaType::LastCoreExtType; ++i)
+ QTest::newRow(QMetaType::typeName(i)) << i;
+}
+
+// Tests how fast a Qt core type can be default-constructed by a
+// QVariant. The purpose of this benchmark is to measure the overhead
+// of creating (and destroying) a QVariant compared to creating the
+// type directly.
+void tst_qvariant::createCoreType()
+{
+ QFETCH(int, typeId);
+ QBENCHMARK {
+ for (int i = 0; i < ITERATION_COUNT; ++i)
+ QVariant(typeId, (void *)0);
+ }
+}
+
+void tst_qvariant::createCoreTypeCopy_data()
+{
+ createCoreType_data();
+}
+
+// Tests how fast a Qt core type can be copy-constructed by a
+// QVariant. The purpose of this benchmark is to measure the overhead
+// of creating (and destroying) a QVariant compared to creating the
+// type directly.
+void tst_qvariant::createCoreTypeCopy()
+{
+ QFETCH(int, typeId);
+ QVariant other(typeId, (void *)0);
+ const void *copy = other.constData();
+ QBENCHMARK {
+ for (int i = 0; i < ITERATION_COUNT; ++i)
+ QVariant(typeId, copy);
+ }
+}
+
QTEST_MAIN(tst_qvariant)
#include "tst_qvariant.moc"
diff --git a/tests/benchmarks/corelib/tools/qregexp/main.cpp b/tests/benchmarks/corelib/tools/qregexp/main.cpp
index ab9ed71..51cde95 100644
--- a/tests/benchmarks/corelib/tools/qregexp/main.cpp
+++ b/tests/benchmarks/corelib/tools/qregexp/main.cpp
@@ -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 @@ private slots:
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 @@ void tst_qregexp::escape_new4()
// "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"
diff --git a/tests/benchmarks/corelib/tools/qregexp/qregexp.pro b/tests/benchmarks/corelib/tools/qregexp/qregexp.pro
index e0f47c9..ffdad12 100644
--- a/tests/benchmarks/corelib/tools/qregexp/qregexp.pro
+++ b/tests/benchmarks/corelib/tools/qregexp/qregexp.pro
@@ -3,10 +3,19 @@ TEMPLATE = app
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
+}
+
diff --git a/tests/benchmarks/corelib/tools/qregexp/qregexp.qrc b/tests/benchmarks/corelib/tools/qregexp/qregexp.qrc
new file mode 100644
index 0000000..a7fe13c
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qregexp/qregexp.qrc
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>main.cpp</file>
+</qresource>
+</RCC>
+
diff --git a/tests/benchmarks/gui/image/blendbench/main.cpp b/tests/benchmarks/gui/image/blendbench/main.cpp
index 92d1633..f53654b 100644
--- a/tests/benchmarks/gui/image/blendbench/main.cpp
+++ b/tests/benchmarks/gui/image/blendbench/main.cpp
@@ -103,6 +103,9 @@ class BlendBench : public QObject
private slots:
void blendBench_data();
void blendBench();
+
+ void blendBenchAlpha_data();
+ void blendBenchAlpha();
};
void BlendBench::blendBench_data()
@@ -147,6 +150,35 @@ void BlendBench::blendBench()
}
}
+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);
+ }
+}
+
QTEST_MAIN(BlendBench)
#include "main.moc"
diff --git a/tests/benchmarks/gui/kernel/qguimetatype/qguimetatype.pro b/tests/benchmarks/gui/kernel/qguimetatype/qguimetatype.pro
new file mode 100644
index 0000000..7ef99e4
--- /dev/null
+++ b/tests/benchmarks/gui/kernel/qguimetatype/qguimetatype.pro
@@ -0,0 +1,6 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qguimetatype
+
+SOURCES += tst_qguimetatype.cpp
+
diff --git a/tests/benchmarks/gui/kernel/qguimetatype/tst_qguimetatype.cpp b/tests/benchmarks/gui/kernel/qguimetatype/tst_qguimetatype.cpp
new file mode 100644
index 0000000..f94767b
--- /dev/null
+++ b/tests/benchmarks/gui/kernel/qguimetatype/tst_qguimetatype.cpp
@@ -0,0 +1,113 @@
+/****************************************************************************
+**
+** 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 <QtCore/qmetatype.h>
+
+class tst_QGuiMetaType : public QObject
+{
+ Q_OBJECT
+
+public:
+ tst_QGuiMetaType();
+ virtual ~tst_QGuiMetaType();
+
+private slots:
+ void constructGuiType_data();
+ void constructGuiType();
+ void constructGuiTypeCopy_data();
+ void constructGuiTypeCopy();
+};
+
+tst_QGuiMetaType::tst_QGuiMetaType()
+{
+}
+
+tst_QGuiMetaType::~tst_QGuiMetaType()
+{
+}
+
+void tst_QGuiMetaType::constructGuiType_data()
+{
+ QTest::addColumn<int>("typeId");
+ for (int i = QMetaType::FirstGuiType; i <= QMetaType::LastGuiType; ++i)
+ QTest::newRow(QMetaType::typeName(i)) << i;
+}
+
+// Tests how fast QMetaType can default-construct and destroy a Qt GUI
+// type. The purpose of this benchmark is to measure the overhead of
+// using type id-based creation compared to creating the type directly
+// (i.e. "T *t = new T(); delete t;").
+void tst_QGuiMetaType::constructGuiType()
+{
+ QFETCH(int, typeId);
+ QBENCHMARK {
+ for (int i = 0; i < 100000; ++i) {
+ void *data = QMetaType::construct(typeId, (void *)0);
+ QMetaType::destroy(typeId, data);
+ }
+ }
+}
+
+void tst_QGuiMetaType::constructGuiTypeCopy_data()
+{
+ constructGuiType_data();
+}
+
+// Tests how fast QMetaType can copy-construct and destroy a Qt GUI
+// type. The purpose of this benchmark is to measure the overhead of
+// using type id-based creation compared to creating the type directly
+// (i.e. "T *t = new T(other); delete t;").
+void tst_QGuiMetaType::constructGuiTypeCopy()
+{
+ QFETCH(int, typeId);
+ QVariant other(typeId, (void *)0);
+ const void *copy = other.constData();
+ QBENCHMARK {
+ for (int i = 0; i < 100000; ++i) {
+ void *data = QMetaType::construct(typeId, copy);
+ QMetaType::destroy(typeId, data);
+ }
+ }
+}
+
+QTEST_MAIN(tst_QGuiMetaType)
+#include "tst_qguimetatype.moc"
diff --git a/tests/benchmarks/gui/kernel/qguivariant/qguivariant.pro b/tests/benchmarks/gui/kernel/qguivariant/qguivariant.pro
new file mode 100644
index 0000000..4e05dd7
--- /dev/null
+++ b/tests/benchmarks/gui/kernel/qguivariant/qguivariant.pro
@@ -0,0 +1,6 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qguivariant
+
+SOURCES += tst_qguivariant.cpp
+
diff --git a/tests/benchmarks/gui/kernel/qguivariant/tst_qguivariant.cpp b/tests/benchmarks/gui/kernel/qguivariant/tst_qguivariant.cpp
new file mode 100644
index 0000000..4016be1
--- /dev/null
+++ b/tests/benchmarks/gui/kernel/qguivariant/tst_qguivariant.cpp
@@ -0,0 +1,111 @@
+/****************************************************************************
+**
+** 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 <QtCore/qvariant.h>
+
+#define ITERATION_COUNT 1e5
+
+class tst_QGuiVariant : public QObject
+{
+ Q_OBJECT
+
+public:
+ tst_QGuiVariant();
+ virtual ~tst_QGuiVariant();
+
+private slots:
+ void createGuiType_data();
+ void createGuiType();
+ void createGuiTypeCopy_data();
+ void createGuiTypeCopy();
+};
+
+tst_QGuiVariant::tst_QGuiVariant()
+{
+}
+
+tst_QGuiVariant::~tst_QGuiVariant()
+{
+}
+
+void tst_QGuiVariant::createGuiType_data()
+{
+ QTest::addColumn<int>("typeId");
+ for (int i = QMetaType::FirstGuiType; i <= QMetaType::LastGuiType; ++i)
+ QTest::newRow(QMetaType::typeName(i)) << i;
+}
+
+// Tests how fast a Qt GUI type can be default-constructed by a
+// QVariant. The purpose of this benchmark is to measure the overhead
+// of creating (and destroying) a QVariant compared to creating the
+// type directly.
+void tst_QGuiVariant::createGuiType()
+{
+ QFETCH(int, typeId);
+ QBENCHMARK {
+ for (int i = 0; i < ITERATION_COUNT; ++i)
+ QVariant(typeId, (void *)0);
+ }
+}
+
+void tst_QGuiVariant::createGuiTypeCopy_data()
+{
+ createGuiType_data();
+}
+
+// Tests how fast a Qt GUI type can be copy-constructed by a
+// QVariant. The purpose of this benchmark is to measure the overhead
+// of creating (and destroying) a QVariant compared to creating the
+// type directly.
+void tst_QGuiVariant::createGuiTypeCopy()
+{
+ QFETCH(int, typeId);
+ QVariant other(typeId, (void *)0);
+ const void *copy = other.constData();
+ QBENCHMARK {
+ for (int i = 0; i < ITERATION_COUNT; ++i)
+ QVariant(typeId, copy);
+ }
+}
+
+QTEST_MAIN(tst_QGuiVariant)
+#include "tst_qguivariant.moc"
diff --git a/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp
index 90ae153..0098d8e 100644
--- a/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp
@@ -51,6 +51,9 @@
#include "../../../../auto/network-settings.h"
+typedef QSharedPointer<QVarLengthArray<char, 0> > QVarLengthArraySharedPointer;
+Q_DECLARE_METATYPE(QVarLengthArraySharedPointer)
+
class TimedSender: public QThread
{
Q_OBJECT
@@ -465,7 +468,8 @@ private slots:
void httpUploadPerformance();
void httpDownloadPerformance_data();
void httpDownloadPerformance();
-
+ void httpDownloadPerformanceDownloadBuffer_data();
+ void httpDownloadPerformanceDownloadBuffer();
};
void tst_qnetworkreply::httpLatency()
@@ -649,6 +653,72 @@ void tst_qnetworkreply::httpDownloadPerformance()
qint64 elapsed = time.elapsed();
qDebug() << "tst_QNetworkReply::httpDownloadPerformance" << elapsed << "msec, "
<< ((UploadSize/1024.0)/(elapsed/1000.0)) << " kB/sec";
+};
+
+class HttpDownloadPerformanceClientDownloadBuffer : QObject {
+ Q_OBJECT
+private:
+ bool useDownloadBuffer;
+ QNetworkReply *reply;
+ qint64 uploadSize;
+public:
+ HttpDownloadPerformanceClientDownloadBuffer (QNetworkReply *reply, bool useDownloadBuffer, qint64 uploadSize)
+ : useDownloadBuffer(useDownloadBuffer), reply(reply), uploadSize(uploadSize)
+ {
+ connect(reply, SIGNAL(finished()), this, SLOT(finishedSlot()));
+ }
+
+ public slots:
+ void finishedSlot() {
+ if (useDownloadBuffer) {
+ QVariant downloadBufferAttribute = reply->attribute(QNetworkRequest::DownloadBufferAttribute);
+ QSharedPointer<QVarLengthArray<char, 0> > data = downloadBufferAttribute.value<QSharedPointer<QVarLengthArray<char, 0> > >();
+ } else {
+ // We did not have a download buffer but we still need to benchmark having the data, e.g. reading it all.
+ char* replyData = (char*) qMalloc(uploadSize);
+ QVERIFY(reply->read(replyData, uploadSize) == uploadSize);
+ qFree(replyData);
+ }
+ }
+};
+
+void tst_qnetworkreply::httpDownloadPerformanceDownloadBuffer_data()
+{
+ QTest::addColumn<bool>("useDownloadBuffer");
+
+ QTest::newRow("use-download-buffer") << true;
+ QTest::newRow("do-not-use-download-buffer") << false;
+}
+
+void tst_qnetworkreply::httpDownloadPerformanceDownloadBuffer()
+{
+ QFETCH(bool, useDownloadBuffer);
+
+ // On my Linux Desktop the results are already visible with 128 kB, however we use this to have good results.
+#if defined(Q_OS_SYMBIAN) || defined(Q_WS_WINCE_WM)
+ // Show some mercy to non-desktop platform/s
+ enum {UploadSize = 4*1024*1024}; // 4 MB
+#else
+ enum {UploadSize = 32*1024*1024}; // 32 MB
+#endif
+
+ HttpDownloadPerformanceServer server(UploadSize, true, false);
+
+ QNetworkRequest request(QUrl("http://127.0.0.1:" + QString::number(server.serverPort()) + "/?bare=1"));
+ if (useDownloadBuffer)
+ request.setAttribute(QNetworkRequest::MaximumDownloadBufferSizeAttribute, 1024*1024*128); // 128 MB is max allowed
+
+ QNetworkAccessManager manager;
+ QNetworkReplyPtr reply = manager.get(request);
+
+ HttpDownloadPerformanceClientDownloadBuffer client(reply, useDownloadBuffer, UploadSize);
+
+ connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection);
+ QBENCHMARK {
+ QTestEventLoop::instance().enterLoop(40);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+ }
}
QTEST_MAIN(tst_qnetworkreply)
diff --git a/tests/benchmarks/script/qscriptqobject/qscriptqobject.pro b/tests/benchmarks/script/qscriptqobject/qscriptqobject.pro
new file mode 100644
index 0000000..30bc447
--- /dev/null
+++ b/tests/benchmarks/script/qscriptqobject/qscriptqobject.pro
@@ -0,0 +1,7 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qscriptqobject
+
+SOURCES += tst_qscriptqobject.cpp
+
+QT += script
diff --git a/tests/benchmarks/script/qscriptqobject/tst_qscriptqobject.cpp b/tests/benchmarks/script/qscriptqobject/tst_qscriptqobject.cpp
new file mode 100644
index 0000000..e68db06
--- /dev/null
+++ b/tests/benchmarks/script/qscriptqobject/tst_qscriptqobject.cpp
@@ -0,0 +1,1237 @@
+/****************************************************************************
+**
+** 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 <QtGui>
+#include <QtScript>
+
+#define ITERATION_COUNT 1e4
+
+struct CustomType
+{
+ int a;
+};
+Q_DECLARE_METATYPE(CustomType)
+
+class PropertyTestObject : public QObject
+{
+ Q_OBJECT
+ Q_ENUMS(EnumType)
+ Q_FLAGS(FlagsType)
+ Q_PROPERTY(bool boolProperty READ boolProperty WRITE setBoolProperty)
+ Q_PROPERTY(int intProperty READ intProperty WRITE setIntProperty)
+ Q_PROPERTY(double doubleProperty READ doubleProperty WRITE setDoubleProperty)
+ Q_PROPERTY(QString stringProperty READ stringProperty WRITE setStringProperty)
+ Q_PROPERTY(QVariant variantProperty READ variantProperty WRITE setVariantProperty)
+ Q_PROPERTY(QObject* qobjectProperty READ qobjectProperty WRITE setQObjectProperty)
+ Q_PROPERTY(CustomType customProperty READ customProperty WRITE setCustomProperty)
+ Q_PROPERTY(EnumType enumProperty READ enumProperty WRITE setEnumProperty)
+ Q_PROPERTY(FlagsType flagsProperty READ flagsProperty WRITE setFlagsProperty)
+public:
+ enum EnumType {
+ NoEnumValue = 0,
+ FirstEnumValue = 1,
+ SecondEnumValue = 2,
+ ThirdEnumValue = 4
+ };
+ Q_DECLARE_FLAGS(FlagsType, EnumType)
+
+ PropertyTestObject(QObject *parent = 0)
+ : QObject(parent),
+ m_boolProperty(false),
+ m_intProperty(123),
+ m_doubleProperty(123),
+ m_stringProperty("hello"),
+ m_variantProperty(double(123)),
+ m_qobjectProperty(this),
+ m_enumProperty(SecondEnumValue),
+ m_flagsProperty(FirstEnumValue | ThirdEnumValue)
+ { }
+
+ bool boolProperty() const
+ { return m_boolProperty; }
+ void setBoolProperty(bool value)
+ { m_boolProperty = value; }
+
+ int intProperty() const
+ { return m_intProperty; }
+ void setIntProperty(int value)
+ { m_intProperty = value; }
+
+ int doubleProperty() const
+ { return m_doubleProperty; }
+ void setDoubleProperty(double value)
+ { m_doubleProperty = value; }
+
+ QString stringProperty() const
+ { return m_stringProperty; }
+ void setStringProperty(const QString &value)
+ { m_stringProperty = value; }
+
+ QVariant variantProperty() const
+ { return m_variantProperty; }
+ void setVariantProperty(const QVariant &value)
+ { m_variantProperty = value; }
+
+ QObject *qobjectProperty() const
+ { return m_qobjectProperty; }
+ void setQObjectProperty(QObject *qobject)
+ { m_qobjectProperty = qobject; }
+
+ CustomType customProperty() const
+ { return m_customProperty; }
+ void setCustomProperty(const CustomType &value)
+ { m_customProperty = value; }
+
+ EnumType enumProperty() const
+ { return m_enumProperty; }
+ void setEnumProperty(EnumType value)
+ { m_enumProperty = value; }
+
+ FlagsType flagsProperty() const
+ { return m_flagsProperty; }
+ void setFlagsProperty(FlagsType value)
+ { m_flagsProperty = value; }
+
+private:
+ bool m_boolProperty;
+ int m_intProperty;
+ double m_doubleProperty;
+ QString m_stringProperty;
+ QVariant m_variantProperty;
+ QObject *m_qobjectProperty;
+ CustomType m_customProperty;
+ EnumType m_enumProperty;
+ FlagsType m_flagsProperty;
+};
+
+class SlotTestObject : public QObject
+{
+ Q_OBJECT
+public:
+ SlotTestObject(QObject *parent = 0)
+ : QObject(parent),
+ m_string(QString::fromLatin1("hello")),
+ m_variant(123)
+ { }
+
+public Q_SLOTS:
+ void voidSlot() { }
+ void boolSlot(bool) { }
+ void intSlot(int) { }
+ void doubleSlot(double) { }
+ void stringSlot(const QString &) { }
+ void variantSlot(const QVariant &) { }
+ void qobjectSlot(QObject *) { }
+ void customTypeSlot(const CustomType &) { }
+
+ bool returnBoolSlot() { return true; }
+ int returnIntSlot() { return 123; }
+ double returnDoubleSlot() { return 123.0; }
+ QString returnStringSlot() { return m_string; }
+ QVariant returnVariantSlot() { return m_variant; }
+ QObject *returnQObjectSlot() { return this; }
+ CustomType returnCustomTypeSlot() { return m_custom; }
+
+ void fourDoubleSlot(double, double, double, double) { }
+ void sixDoubleSlot(double, double, double, double, double, double) { }
+ void eightDoubleSlot(double, double, double, double, double, double, double, double) { }
+
+ void fourStringSlot(const QString &, const QString &, const QString &, const QString &) { }
+ void sixStringSlot(const QString &, const QString &, const QString &, const QString &,
+ const QString &, const QString &) { }
+ void eightStringSlot(const QString &, const QString &, const QString &, const QString &,
+ const QString &, const QString &, const QString &, const QString &) { }
+
+private:
+ QString m_string;
+ QVariant m_variant;
+ CustomType m_custom;
+};
+
+class SignalTestObject : public QObject
+{
+ Q_OBJECT
+public:
+ SignalTestObject(QObject *parent = 0)
+ : QObject(parent)
+ { }
+
+ void emitVoidSignal()
+ { emit voidSignal(); }
+ void emitBoolSignal(bool value)
+ { emit boolSignal(value); }
+ void emitIntSignal(int value)
+ { emit intSignal(value); }
+ void emitDoubleSignal(double value)
+ { emit doubleSignal(value); }
+ void emitStringSignal(const QString &value)
+ { emit stringSignal(value); }
+ void emitVariantSignal(const QVariant &value)
+ { emit variantSignal(value); }
+ void emitQObjectSignal(QObject *object)
+ { emit qobjectSignal(object); }
+ void emitCustomTypeSignal(const CustomType &value)
+ { emit customTypeSignal(value); }
+
+Q_SIGNALS:
+ void voidSignal();
+ void boolSignal(bool);
+ void intSignal(int);
+ void doubleSignal(double);
+ void stringSignal(const QString &);
+ void variantSignal(const QVariant &);
+ void qobjectSignal(QObject *);
+ void customTypeSignal(const CustomType &);
+};
+
+class OverloadedSlotTestObject : public QObject
+{
+ Q_OBJECT
+public:
+ OverloadedSlotTestObject(QObject *parent = 0)
+ : QObject(parent)
+ { }
+
+public Q_SLOTS:
+ void overloadedSlot() { }
+ void overloadedSlot(bool) { }
+ void overloadedSlot(double) { }
+ void overloadedSlot(const QString &) { }
+};
+
+class QtScriptablePropertyTestObject
+ : public PropertyTestObject, public QScriptable
+{
+};
+
+class QtScriptableSlotTestObject
+ : public SlotTestObject, public QScriptable
+{
+};
+
+class tst_QScriptQObject : public QObject
+{
+ Q_OBJECT
+
+public:
+ tst_QScriptQObject();
+ virtual ~tst_QScriptQObject();
+
+private slots:
+ void initTestCase();
+
+ void readMetaProperty_data();
+ void readMetaProperty();
+
+ void writeMetaProperty_data();
+ void writeMetaProperty();
+
+ void readDynamicProperty_data();
+ void readDynamicProperty();
+
+ void writeDynamicProperty_data();
+ void writeDynamicProperty();
+
+ void readMethodByName_data();
+ void readMethodByName();
+
+ void readMethodBySignature_data();
+ void readMethodBySignature();
+
+ void readChild_data();
+ void readChild();
+
+ void readOneOfManyChildren_data();
+ void readOneOfManyChildren();
+
+ void readPrototypeProperty_data();
+ void readPrototypeProperty();
+
+ void readScriptProperty_data();
+ void readScriptProperty();
+
+ void readNoSuchProperty_data();
+ void readNoSuchProperty();
+
+ void readAllMetaProperties();
+
+ void callSlot_data();
+ void callSlot();
+
+ void callOverloadedSlot_data();
+ void callOverloadedSlot();
+
+ void voidSignalHandler();
+ void boolSignalHandler();
+ void intSignalHandler();
+ void doubleSignalHandler();
+ void stringSignalHandler();
+ void variantSignalHandler();
+ void qobjectSignalHandler();
+ void customTypeSignalHandler();
+
+ void readButtonMetaProperty_data();
+ void readButtonMetaProperty();
+
+ void writeButtonMetaProperty_data();
+ void writeButtonMetaProperty();
+
+ void readDynamicButtonProperty_data();
+ void readDynamicButtonProperty();
+
+ void writeDynamicButtonProperty_data();
+ void writeDynamicButtonProperty();
+
+ void readButtonMethodByName_data();
+ void readButtonMethodByName();
+
+ void readButtonMethodBySignature_data();
+ void readButtonMethodBySignature();
+
+ void readButtonChild_data();
+ void readButtonChild();
+
+ void readButtonPrototypeProperty_data();
+ void readButtonPrototypeProperty();
+
+ void readButtonScriptProperty_data();
+ void readButtonScriptProperty();
+
+ void readNoSuchButtonProperty_data();
+ void readNoSuchButtonProperty();
+
+ void callButtonMethod_data();
+ void callButtonMethod();
+
+ void readAllButtonMetaProperties();
+
+ void readQScriptableMetaProperty_data();
+ void readQScriptableMetaProperty();
+
+ void writeQScriptableMetaProperty_data();
+ void writeQScriptableMetaProperty();
+
+ void callQScriptableSlot_data();
+ void callQScriptableSlot();
+
+private:
+ void readMetaProperty_dataHelper(const QMetaObject *mo);
+ void readMethodByName_dataHelper(const QMetaObject *mo);
+ void readMethodBySignature_dataHelper(const QMetaObject *mo);
+ void readAllMetaPropertiesHelper(QObject *o);
+
+ void readPropertyHelper(QScriptEngine &engine, const QScriptValue &object,
+ const QString &propertyName, const QString &argTemplate = ".%0");
+ void writePropertyHelper(QScriptEngine &engine, const QScriptValue &object,
+ const QString &propertyName, const QScriptValue &value,
+ const QString &argTemplate = ".%0");
+
+ void callMethodHelper(QScriptEngine &engine, QObject *object,
+ const QString &propertyName, const QString &arguments);
+ void signalHandlerHelper(QScriptEngine &engine, QObject *object, const char *signal);
+};
+
+tst_QScriptQObject::tst_QScriptQObject()
+{
+}
+
+tst_QScriptQObject::~tst_QScriptQObject()
+{
+}
+
+void tst_QScriptQObject::initTestCase()
+{
+ qMetaTypeId<CustomType>();
+}
+
+void tst_QScriptQObject::readMetaProperty_dataHelper(const QMetaObject *mo)
+{
+ QTest::addColumn<QString>("propertyName");
+
+ for (int i = 0; i < mo->propertyCount(); ++i) {
+ QMetaProperty prop = mo->property(i);
+ if (!qstrcmp(prop.name(), "default"))
+ continue; // skip reserved word
+ QTest::newRow(prop.name()) << prop.name();
+ }
+}
+
+void tst_QScriptQObject::readMethodByName_dataHelper(const QMetaObject *mo)
+{
+ QTest::addColumn<QString>("propertyName");
+
+ QSet<QByteArray> uniqueNames;
+ for (int i = 0; i < mo->methodCount(); ++i) {
+ QMetaMethod method = mo->method(i);
+ if (method.access() == QMetaMethod::Private)
+ continue;
+ QByteArray signature = method.signature();
+ QByteArray name = signature.left(signature.indexOf('('));
+ if (uniqueNames.contains(name))
+ continue;
+ QTest::newRow(name) << QString::fromLatin1(name);
+ uniqueNames.insert(name);
+ }
+}
+
+void tst_QScriptQObject::readMethodBySignature_dataHelper(const QMetaObject *mo)
+{
+ QTest::addColumn<QString>("propertyName");
+
+ for (int i = 0; i < mo->methodCount(); ++i) {
+ QMetaMethod method = mo->method(i);
+ if (method.access() == QMetaMethod::Private)
+ continue;
+ QTest::newRow(method.signature()) << QString::fromLatin1(method.signature());
+ }
+}
+
+void tst_QScriptQObject::readAllMetaPropertiesHelper(QObject *o)
+{
+ QString code = QString::fromLatin1(
+ "(function() {\n"
+ " for (var i = 0; i < 100; ++i) {\n");
+ const QMetaObject *mo = o->metaObject();
+ for (int i = 0; i < mo->propertyCount(); ++i) {
+ QMetaProperty prop = mo->property(i);
+ if (!qstrcmp(prop.name(), "default"))
+ continue; // skip reserved word
+ code.append(QString::fromLatin1(" this.%0;\n").arg(prop.name()));
+ }
+ code.append(
+ " }\n"
+ "})");
+
+ QScriptEngine engine;
+ QScriptValue fun = engine.evaluate(code);
+ QVERIFY(fun.isFunction());
+
+ QScriptValue wrapper = engine.newQObject(o);
+ QBENCHMARK {
+ fun.call(wrapper);
+ }
+ QVERIFY(!engine.hasUncaughtException());
+}
+
+void tst_QScriptQObject::readPropertyHelper(
+ QScriptEngine &engine, const QScriptValue &object,
+ const QString &propertyName, const QString &argTemplate)
+{
+ QString code = QString::fromLatin1(
+ "(function() {\n"
+ " for (var i = 0; i < %0; ++i)\n"
+ " this%1;\n"
+ "})").arg(ITERATION_COUNT).arg(argTemplate.arg(propertyName));
+ QScriptValue fun = engine.evaluate(code);
+ QVERIFY(fun.isFunction());
+
+ QBENCHMARK {
+ fun.call(object);
+ }
+ QVERIFY(!engine.hasUncaughtException());
+}
+
+void tst_QScriptQObject::writePropertyHelper(
+ QScriptEngine &engine, const QScriptValue &object,
+ const QString &propertyName, const QScriptValue &value,
+ const QString &argTemplate)
+{
+ QVERIFY(value.isValid());
+ QString code = QString::fromLatin1(
+ "(function(v) {\n"
+ " for (var i = 0; i < %0; ++i)\n"
+ " this%1 = v;\n"
+ "})").arg(ITERATION_COUNT).arg(argTemplate.arg(propertyName));
+ QScriptValue fun = engine.evaluate(code);
+ QVERIFY(fun.isFunction());
+
+ QScriptValueList args;
+ args << value;
+ QBENCHMARK {
+ fun.call(object, args);
+ }
+ QVERIFY(!engine.hasUncaughtException());
+}
+
+void tst_QScriptQObject::callMethodHelper(
+ QScriptEngine &engine, QObject *object,
+ const QString &propertyName, const QString &arguments)
+{
+ QScriptValue wrapper = engine.newQObject(object);
+ QScriptValue method = wrapper.property(propertyName);
+ QVERIFY(method.isFunction());
+
+ // Generate code that calls the function directly; in this way
+ // only function call performance is measured, not function lookup
+ // as well.
+ QString code = QString::fromLatin1(
+ "(function(f) {\n"
+ " for (var i = 0; i < %0; ++i)\n"
+ " f(%1);\n"
+ "})").arg(ITERATION_COUNT).arg(arguments);
+ QScriptValue fun = engine.evaluate(code);
+ QVERIFY(fun.isFunction());
+
+ QScriptValueList args;
+ args << method;
+ QBENCHMARK {
+ fun.call(wrapper, args);
+ }
+ QVERIFY(!engine.hasUncaughtException());
+}
+
+void tst_QScriptQObject::signalHandlerHelper(
+ QScriptEngine &engine, QObject *object, const char *signal)
+{
+ QScriptValue handler = engine.evaluate("(function(a) { return a; })");
+ QVERIFY(handler.isFunction());
+ QVERIFY(qScriptConnect(object, signal, QScriptValue(), handler));
+}
+
+void tst_QScriptQObject::readMetaProperty_data()
+{
+ readMetaProperty_dataHelper(&PropertyTestObject::staticMetaObject);
+}
+
+// Reads a meta-object-defined property from JS. The purpose of this
+// benchmark is to measure the overhead of reading a property from JS
+// compared to calling the property getter directly from C++ without
+// introspection or value conversion (that's the fastest we could
+// possibly hope to get).
+void tst_QScriptQObject::readMetaProperty()
+{
+ QFETCH(QString, propertyName);
+
+ QScriptEngine engine;
+ PropertyTestObject testObject;
+ readPropertyHelper(engine, engine.newQObject(&testObject), propertyName);
+}
+
+void tst_QScriptQObject::writeMetaProperty_data()
+{
+ readMetaProperty_data();
+}
+
+// Writes a meta-object-defined property from JS. The purpose of this
+// benchmark is to measure the overhead of writing a property from JS
+// compared to calling the property setter directly from C++ without
+// introspection or value conversion (that's the fastest we could
+// possibly hope to get).
+void tst_QScriptQObject::writeMetaProperty()
+{
+ QFETCH(QString, propertyName);
+
+ QScriptEngine engine;
+ PropertyTestObject testObject;
+ QScriptValue wrapper = engine.newQObject(&testObject);
+ QScriptValue value = wrapper.property(propertyName);
+ writePropertyHelper(engine, wrapper, propertyName, value);
+}
+
+void tst_QScriptQObject::readDynamicProperty_data()
+{
+ QTest::addColumn<QVariant>("value");
+
+ QTest::newRow("bool") << QVariant(false);
+ QTest::newRow("int") << QVariant(123);
+ QTest::newRow("double") << QVariant(double(123.0));
+ QTest::newRow("string") << QVariant(QString::fromLatin1("hello"));
+ QTest::newRow("QObject*") << qVariantFromValue((QObject*)this);
+ QTest::newRow("CustomType") << qVariantFromValue(CustomType());
+}
+
+// Reads a dynamic property from JS. The purpose of this benchmark is
+// to measure the overhead of reading a dynamic property from JS
+// versus calling QObject::property(aDynamicProperty) directly from
+// C++.
+void tst_QScriptQObject::readDynamicProperty()
+{
+ QFETCH(QVariant, value);
+
+ QObject testObject;
+ const char *propertyName = "dynamicProperty";
+ testObject.setProperty(propertyName, value);
+ QVERIFY(testObject.dynamicPropertyNames().contains(propertyName));
+
+ QScriptEngine engine;
+ readPropertyHelper(engine, engine.newQObject(&testObject), propertyName);
+}
+
+void tst_QScriptQObject::writeDynamicProperty_data()
+{
+ readDynamicProperty_data();
+}
+
+// Writes an existing dynamic property from JS. The purpose of this
+// benchmark is to measure the overhead of writing a dynamic property
+// from JS versus calling QObject::setProperty(aDynamicProperty,
+// aVariant) directly from C++.
+void tst_QScriptQObject::writeDynamicProperty()
+{
+ QFETCH(QVariant, value);
+
+ QObject testObject;
+ const char *propertyName = "dynamicProperty";
+ testObject.setProperty(propertyName, value);
+ QVERIFY(testObject.dynamicPropertyNames().contains(propertyName));
+
+ QScriptEngine engine;
+ writePropertyHelper(engine, engine.newQObject(&testObject), propertyName,
+ qScriptValueFromValue(&engine, value));
+}
+
+void tst_QScriptQObject::readMethodByName_data()
+{
+ readMethodByName_dataHelper(&SlotTestObject::staticMetaObject);
+}
+
+// Reads a meta-object-defined method from JS by name. The purpose of
+// this benchmark is to measure the overhead of resolving a method
+// from JS (effectively, creating and returning a JS wrapper function
+// object for a C++ method).
+void tst_QScriptQObject::readMethodByName()
+{
+ readMetaProperty();
+}
+
+void tst_QScriptQObject::readMethodBySignature_data()
+{
+ readMethodBySignature_dataHelper(&SlotTestObject::staticMetaObject);
+}
+
+// Reads a meta-object-defined method from JS by signature. The
+// purpose of this benchmark is to measure the overhead of resolving a
+// method from JS (effectively, creating and returning a JS wrapper
+// function object for a C++ method).
+void tst_QScriptQObject::readMethodBySignature()
+{
+ QFETCH(QString, propertyName);
+
+ QScriptEngine engine;
+ SlotTestObject testObject;
+ readPropertyHelper(engine, engine.newQObject(&testObject), propertyName, "['%0']");
+}
+
+void tst_QScriptQObject::readChild_data()
+{
+ QTest::addColumn<QString>("propertyName");
+
+ QTest::newRow("child") << "child";
+}
+
+// Reads a child object from JS. The purpose of this benchmark is to
+// measure the overhead of reading a child object from JS compared to
+// calling e.g. qFindChild() directly from C++, when the test object
+// is a plain QObject with only one child.
+void tst_QScriptQObject::readChild()
+{
+ QFETCH(QString, propertyName);
+
+ QScriptEngine engine;
+ QObject testObject;
+ QObject *child = new QObject(&testObject);
+ child->setObjectName(propertyName);
+ readPropertyHelper(engine, engine.newQObject(&testObject), propertyName);
+}
+
+void tst_QScriptQObject::readOneOfManyChildren_data()
+{
+ QTest::addColumn<QString>("propertyName");
+
+ QTest::newRow("child0") << "child0";
+ QTest::newRow("child50") << "child50";
+ QTest::newRow("child99") << "child99";
+}
+
+// Reads a child object from JS for an object that has many
+// children. The purpose of this benchmark is to measure the overhead
+// of reading a child object from JS compared to calling
+// e.g. qFindChild() directly from C++.
+void tst_QScriptQObject::readOneOfManyChildren()
+{
+ QFETCH(QString, propertyName);
+
+ QScriptEngine engine;
+ QObject testObject;
+ for (int i = 0; i < 100; ++i) {
+ QObject *child = new QObject(&testObject);
+ child->setObjectName(QString::fromLatin1("child%0").arg(i));
+ }
+ readPropertyHelper(engine, engine.newQObject(&testObject), propertyName);
+}
+
+void tst_QScriptQObject::readPrototypeProperty_data()
+{
+ QTest::addColumn<QString>("propertyName");
+
+ // Inherited from Object.prototype.
+ QTest::newRow("hasOwnProperty") << "hasOwnProperty";
+ QTest::newRow("isPrototypeOf") << "isPrototypeOf";
+ QTest::newRow("propertyIsEnumerable") << "propertyIsEnumerable";
+ QTest::newRow("valueOf") << "valueOf";
+}
+
+// Reads a property that's inherited from a prototype object. The
+// purpose of this benchmark is to measure the overhead of resolving a
+// prototype property (i.e., how long it takes the binding to
+// determine that the QObject doesn't have the property itself).
+void tst_QScriptQObject::readPrototypeProperty()
+{
+ QFETCH(QString, propertyName);
+
+ QScriptEngine engine;
+ PropertyTestObject testObject;
+ readPropertyHelper(engine, engine.newQObject(&testObject), propertyName);
+}
+
+void tst_QScriptQObject::readScriptProperty_data()
+{
+ QTest::addColumn<QString>("propertyName");
+
+ QTest::newRow("scriptProperty") << "scriptProperty";
+}
+
+// Reads a JS (non-Qt) property of a wrapper object. The purpose of
+// this benchmark is to measure the overhead of reading a property
+// that only exists on the wrapper object, not on the underlying
+// QObject.
+void tst_QScriptQObject::readScriptProperty()
+{
+ QFETCH(QString, propertyName);
+
+ QScriptEngine engine;
+ PropertyTestObject testObject;
+ QScriptValue wrapper = engine.newQObject(&testObject);
+ wrapper.setProperty(propertyName, 123);
+ QVERIFY(wrapper.property(propertyName).isValid());
+ QVERIFY(!testObject.property(propertyName.toLatin1()).isValid());
+
+ readPropertyHelper(engine, wrapper, propertyName);
+}
+
+void tst_QScriptQObject::readNoSuchProperty_data()
+{
+ QTest::addColumn<QString>("propertyName");
+
+ QTest::newRow("noSuchProperty") << "noSuchProperty";
+}
+
+// Reads a non-existing (undefined) property of a wrapper object. The
+// purpose of this benchmark is to measure the overhead of reading a
+// property that doesn't exist (i.e., how long it takes the binding to
+// determine this).
+void tst_QScriptQObject::readNoSuchProperty()
+{
+ readMetaProperty();
+}
+
+// Reads all meta-object-defined properties from JS. The purpose of
+// this benchmark is to measure the overhead of reading different
+// properties in sequence, not just the same one repeatedly (like
+// readMetaProperty() does).
+void tst_QScriptQObject::readAllMetaProperties()
+{
+ PropertyTestObject testObject;
+ readAllMetaPropertiesHelper(&testObject);
+}
+
+void tst_QScriptQObject::callSlot_data()
+{
+ QTest::addColumn<QString>("propertyName");
+ QTest::addColumn<QString>("arguments");
+
+ QTest::newRow("voidSlot()") << "voidSlot" << "";
+
+ QTest::newRow("boolSlot(true)") << "boolSlot" << "true";
+ QTest::newRow("intSlot(123)") << "intSlot" << "123";
+ QTest::newRow("doubleSlot(123)") << "doubleSlot" << "123";
+ QTest::newRow("stringSlot('hello')") << "stringSlot" << "'hello'";
+ QTest::newRow("variantSlot(123)") << "variantSlot" << "123";
+ QTest::newRow("qobjectSlot(this)") << "qobjectSlot" << "this"; // assumes 'this' is a QObject
+
+ QTest::newRow("returnBoolSlot()") << "returnBoolSlot" << "";
+ QTest::newRow("returnIntSlot()") << "returnIntSlot" << "";
+ QTest::newRow("returnDoubleSlot()") << "returnDoubleSlot" << "";
+ QTest::newRow("returnStringSlot()") << "returnStringSlot" << "";
+ QTest::newRow("returnVariantSlot()") << "returnVariantSlot" << "";
+ QTest::newRow("returnQObjectSlot()") << "returnQObjectSlot" << "";
+ QTest::newRow("returnCustomTypeSlot()") << "returnCustomTypeSlot" << "";
+
+ // Implicit conversion.
+ QTest::newRow("boolSlot(0)") << "boolSlot" << "0";
+ QTest::newRow("intSlot('123')") << "intSlot" << "'123'";
+ QTest::newRow("doubleSlot('123')") << "doubleSlot" << "'123'";
+ QTest::newRow("stringSlot(123)") << "stringSlot" << "123";
+
+ // Many arguments.
+ QTest::newRow("fourDoubleSlot(1,2,3,4)") << "fourDoubleSlot" << "1,2,3,4";
+ QTest::newRow("sixDoubleSlot(1,2,3,4,5,6)") << "sixDoubleSlot" << "1,2,3,4,5,6";
+ QTest::newRow("eightDoubleSlot(1,2,3,4,5,6,7,8)") << "eightDoubleSlot" << "1,2,3,4,5,6,7,8";
+
+ QTest::newRow("fourStringSlot('a','b','c','d')") << "fourStringSlot" << "'a','b','c','d'";
+ QTest::newRow("sixStringSlot('a','b','c','d','e','f')") << "sixStringSlot" << "'a','b','c','d','e','f'";
+ QTest::newRow("eightStringSlot('a','b','c','d','e','f','g','h')") << "eightStringSlot" << "'a','b','c','d','e','f','g','h'";
+}
+
+// Calls a slot from JS. The purpose of this benchmark is to measure
+// the overhead of calling a slot from JS compared to calling the slot
+// directly from C++ without introspection or value conversion (that's
+// the fastest we could possibly hope to get). The slots themselves
+// don't do any work.
+void tst_QScriptQObject::callSlot()
+{
+ QFETCH(QString, propertyName);
+ QFETCH(QString, arguments);
+
+ QScriptEngine engine;
+ SlotTestObject testObject;
+ callMethodHelper(engine, &testObject, propertyName, arguments);
+}
+
+void tst_QScriptQObject::callOverloadedSlot_data()
+{
+ QTest::addColumn<QString>("propertyName");
+ QTest::addColumn<QString>("arguments");
+
+ QTest::newRow("overloadedSlot()") << "overloadedSlot" << "";
+ QTest::newRow("overloadedSlot(true)") << "overloadedSlot" << "true";
+ QTest::newRow("overloadedSlot(123)") << "overloadedSlot" << "123";
+ QTest::newRow("overloadedSlot('hello')") << "overloadedSlot" << "'hello'";
+}
+
+// Calls an overloaded slot from JS. The purpose of this benchmark is
+// to measure the overhead of calling an overloaded slot from JS
+// compared to calling the overloaded slot directly from C++ without
+// introspection or value conversion (that's the fastest we could
+// possibly hope to get).
+void tst_QScriptQObject::callOverloadedSlot()
+{
+ QFETCH(QString, propertyName);
+ QFETCH(QString, arguments);
+
+ QScriptEngine engine;
+ OverloadedSlotTestObject testObject;
+ callMethodHelper(engine, &testObject, propertyName, arguments);
+}
+
+// Benchmarks for JS signal handling. The purpose of these benchmarks
+// is to measure the overhead of dispatching a Qt signal to JS code
+// compared to a normal C++ signal-to-slot dispatch.
+
+void tst_QScriptQObject::voidSignalHandler()
+{
+ SignalTestObject testObject;
+ QScriptEngine engine;
+ signalHandlerHelper(engine, &testObject, SIGNAL(voidSignal()));
+ QBENCHMARK {
+ for (int i = 0; i < ITERATION_COUNT; ++i)
+ testObject.emitVoidSignal();
+ }
+}
+
+void tst_QScriptQObject::boolSignalHandler()
+{
+ SignalTestObject testObject;
+ QScriptEngine engine;
+ signalHandlerHelper(engine, &testObject, SIGNAL(boolSignal(bool)));
+ QBENCHMARK {
+ for (int i = 0; i < ITERATION_COUNT; ++i)
+ testObject.emitBoolSignal(true);
+ }
+}
+
+void tst_QScriptQObject::intSignalHandler()
+{
+ SignalTestObject testObject;
+ QScriptEngine engine;
+ signalHandlerHelper(engine, &testObject, SIGNAL(intSignal(int)));
+ QBENCHMARK {
+ for (int i = 0; i < ITERATION_COUNT; ++i)
+ testObject.emitIntSignal(123);
+ }
+}
+
+void tst_QScriptQObject::doubleSignalHandler()
+{
+ SignalTestObject testObject;
+ QScriptEngine engine;
+ signalHandlerHelper(engine, &testObject, SIGNAL(doubleSignal(double)));
+ QBENCHMARK {
+ for (int i = 0; i < ITERATION_COUNT; ++i)
+ testObject.emitDoubleSignal(123.0);
+ }
+}
+
+void tst_QScriptQObject::stringSignalHandler()
+{
+ SignalTestObject testObject;
+ QScriptEngine engine;
+ signalHandlerHelper(engine, &testObject, SIGNAL(stringSignal(QString)));
+ QString value = QString::fromLatin1("hello");
+ QBENCHMARK {
+ for (int i = 0; i < ITERATION_COUNT; ++i)
+ testObject.emitStringSignal(value);
+ }
+}
+
+void tst_QScriptQObject::variantSignalHandler()
+{
+ SignalTestObject testObject;
+ QScriptEngine engine;
+ signalHandlerHelper(engine, &testObject, SIGNAL(variantSignal(QVariant)));
+ QVariant value = 123;
+ QBENCHMARK {
+ for (int i = 0; i < ITERATION_COUNT; ++i)
+ testObject.emitVariantSignal(value);
+ }
+}
+
+void tst_QScriptQObject::qobjectSignalHandler()
+{
+ SignalTestObject testObject;
+ QScriptEngine engine;
+ signalHandlerHelper(engine, &testObject, SIGNAL(qobjectSignal(QObject*)));
+ QBENCHMARK {
+ for (int i = 0; i < ITERATION_COUNT; ++i)
+ testObject.emitQObjectSignal(this);
+ }
+}
+
+void tst_QScriptQObject::customTypeSignalHandler()
+{
+ SignalTestObject testObject;
+ QScriptEngine engine;
+ signalHandlerHelper(engine, &testObject, SIGNAL(customTypeSignal(CustomType)));
+ CustomType value;
+ QBENCHMARK {
+ for (int i = 0; i < ITERATION_COUNT; ++i)
+ testObject.emitCustomTypeSignal(value);
+ }
+}
+
+void tst_QScriptQObject::readButtonMetaProperty_data()
+{
+ readMetaProperty_dataHelper(&QPushButton::staticMetaObject);
+}
+
+// Reads a meta-object-defined property from JS. The purpose of this
+// benchmark is to measure the overhead of reading a property from JS
+// compared to calling the property getter directly from C++ without
+// introspection or value conversion (that's the fastest we could
+// possibly hope to get).
+void tst_QScriptQObject::readButtonMetaProperty()
+{
+ QFETCH(QString, propertyName);
+
+ QScriptEngine engine;
+ QPushButton pb;
+ readPropertyHelper(engine, engine.newQObject(&pb), propertyName);
+}
+
+void tst_QScriptQObject::writeButtonMetaProperty_data()
+{
+ readButtonMetaProperty_data();
+}
+
+// Writes a meta-object-defined property from JS. The purpose of this
+// benchmark is to measure the overhead of writing a property from JS
+// compared to calling the property setter directly from C++ without
+// introspection or value conversion (that's the fastest we could
+// possibly hope to get).
+void tst_QScriptQObject::writeButtonMetaProperty()
+{
+ QFETCH(QString, propertyName);
+
+ QScriptEngine engine;
+ QPushButton pb;
+ QVariant value = pb.property(propertyName.toLatin1());
+ writePropertyHelper(engine, engine.newQObject(&pb), propertyName,
+ qScriptValueFromValue(&engine, value));
+}
+
+void tst_QScriptQObject::readDynamicButtonProperty_data()
+{
+ readDynamicProperty_data();
+}
+
+// Reads a dynamic property from JS. The purpose of this benchmark is
+// to measure the overhead of reading a dynamic property from JS
+// versus calling QObject::property(aDynamicProperty) directly from
+// C++.
+void tst_QScriptQObject::readDynamicButtonProperty()
+{
+ QFETCH(QVariant, value);
+
+ QPushButton pb;
+ const char *propertyName = "dynamicProperty";
+ pb.setProperty(propertyName, value);
+ QVERIFY(pb.dynamicPropertyNames().contains(propertyName));
+
+ QScriptEngine engine;
+ readPropertyHelper(engine, engine.newQObject(&pb), propertyName);
+}
+
+void tst_QScriptQObject::writeDynamicButtonProperty_data()
+{
+ readDynamicButtonProperty_data();
+}
+
+// Writes an existing dynamic property from JS. The purpose of this
+// benchmark is to measure the overhead of writing a dynamic property
+// from JS versus calling QObject::setProperty(aDynamicProperty,
+// aVariant) directly from C++.
+void tst_QScriptQObject::writeDynamicButtonProperty()
+{
+ QFETCH(QVariant, value);
+
+ QPushButton pb;
+ const char *propertyName = "dynamicProperty";
+ pb.setProperty(propertyName, value);
+ QVERIFY(pb.dynamicPropertyNames().contains(propertyName));
+
+ QScriptEngine engine;
+ writePropertyHelper(engine, engine.newQObject(&pb), propertyName,
+ qScriptValueFromValue(&engine, value));
+}
+
+void tst_QScriptQObject::readButtonMethodByName_data()
+{
+ readMethodByName_dataHelper(&QPushButton::staticMetaObject);
+}
+
+// Reads a meta-object-defined method from JS by name. The purpose of
+// this benchmark is to measure the overhead of resolving a method
+// from JS (effectively, creating and returning a JS wrapper function
+// object for a C++ method).
+void tst_QScriptQObject::readButtonMethodByName()
+{
+ readButtonMetaProperty();
+}
+
+void tst_QScriptQObject::readButtonMethodBySignature_data()
+{
+ readMethodBySignature_dataHelper(&QPushButton::staticMetaObject);
+}
+
+// Reads a meta-object-defined method from JS by signature. The
+// purpose of this benchmark is to measure the overhead of resolving a
+// method from JS (effectively, creating and returning a JS wrapper
+// function object for a C++ method).
+void tst_QScriptQObject::readButtonMethodBySignature()
+{
+ QFETCH(QString, propertyName);
+
+ QScriptEngine engine;
+ QPushButton pb;
+ readPropertyHelper(engine, engine.newQObject(&pb), propertyName, "['%0']");
+}
+
+void tst_QScriptQObject::readButtonChild_data()
+{
+ QTest::addColumn<QString>("propertyName");
+
+ QTest::newRow("child") << "child";
+}
+
+// Reads a child object from JS. The purpose of this benchmark is to
+// measure the overhead of reading a child object from JS compared to
+// calling e.g. qFindChild() directly from C++.
+void tst_QScriptQObject::readButtonChild()
+{
+ QFETCH(QString, propertyName);
+
+ QScriptEngine engine;
+ QPushButton pb;
+ QObject *child = new QObject(&pb);
+ child->setObjectName(propertyName);
+ readPropertyHelper(engine, engine.newQObject(&pb), propertyName);
+}
+
+void tst_QScriptQObject::readButtonPrototypeProperty_data()
+{
+ readPrototypeProperty_data();
+}
+
+// Reads a property that's inherited from a prototype object. The
+// purpose of this benchmark is to measure the overhead of resolving a
+// prototype property (i.e., how long does it take the binding to
+// determine that the QObject doesn't have the property itself).
+void tst_QScriptQObject::readButtonPrototypeProperty()
+{
+ QFETCH(QString, propertyName);
+
+ QScriptEngine engine;
+ QPushButton pb;
+ readPropertyHelper(engine, engine.newQObject(&pb), propertyName);
+}
+
+void tst_QScriptQObject::readButtonScriptProperty_data()
+{
+ readScriptProperty_data();
+}
+
+// Reads a JS (non-Qt) property of a wrapper object. The purpose of
+// this benchmark is to measure the overhead of reading a property
+// that only exists on the wrapper object, not on the underlying
+// QObject.
+void tst_QScriptQObject::readButtonScriptProperty()
+{
+ QFETCH(QString, propertyName);
+
+ QScriptEngine engine;
+ QPushButton pb;
+ QScriptValue wrapper = engine.newQObject(&pb);
+ wrapper.setProperty(propertyName, 123);
+ QVERIFY(wrapper.property(propertyName).isValid());
+ QVERIFY(!pb.property(propertyName.toLatin1()).isValid());
+
+ readPropertyHelper(engine, wrapper, propertyName);
+}
+
+void tst_QScriptQObject::readNoSuchButtonProperty_data()
+{
+ readNoSuchProperty_data();
+}
+
+// Reads a non-existing (undefined) property of a wrapper object. The
+// purpose of this benchmark is to measure the overhead of reading a
+// property that doesn't exist (i.e., how long does it take the
+// binding to determine that it doesn't exist).
+void tst_QScriptQObject::readNoSuchButtonProperty()
+{
+ readButtonMetaProperty();
+}
+
+void tst_QScriptQObject::callButtonMethod_data()
+{
+ QTest::addColumn<QString>("propertyName");
+ QTest::addColumn<QString>("arguments");
+
+ QTest::newRow("click()") << "click" << "";
+ QTest::newRow("animateClick(50)") << "animateClick" << "10";
+ QTest::newRow("setChecked(true)") << "setChecked" << "true";
+ QTest::newRow("close()") << "close" << "";
+ QTest::newRow("setWindowTitle('foo')") << "setWindowTitle" << "'foo'";
+}
+
+// Calls a slot from JS. The purpose of this benchmark is to measure
+// the overhead of calling a slot from JS compared to calling the slot
+// directly from C++ without introspection or value conversion (that's
+// the fastest we could possibly hope to get).
+void tst_QScriptQObject::callButtonMethod()
+{
+ QFETCH(QString, propertyName);
+ QFETCH(QString, arguments);
+
+ QScriptEngine engine;
+ QPushButton pb;
+ callMethodHelper(engine, &pb, propertyName, arguments);
+}
+
+// Reads all meta-object-defined properties from JS. The purpose of
+// this benchmark is to measure the overhead of reading different
+// properties in sequence, not just the same one repeatedly (like
+// readButtonMetaProperty() does).
+void tst_QScriptQObject::readAllButtonMetaProperties()
+{
+ QPushButton pb;
+ readAllMetaPropertiesHelper(&pb);
+}
+
+void tst_QScriptQObject::readQScriptableMetaProperty_data()
+{
+ readMetaProperty_dataHelper(&QtScriptablePropertyTestObject::staticMetaObject);
+}
+
+// Reads a meta-object-defined property from JS for an object that
+// subclasses QScriptable. The purpose of this benchmark is to measure
+// the overhead compared to reading a property of a non-QScriptable
+// (see readMetaProperty()).
+void tst_QScriptQObject::readQScriptableMetaProperty()
+{
+ QFETCH(QString, propertyName);
+
+ QScriptEngine engine;
+ QtScriptablePropertyTestObject testObject;
+ readPropertyHelper(engine, engine.newQObject(&testObject), propertyName);
+}
+
+void tst_QScriptQObject::writeQScriptableMetaProperty_data()
+{
+ readMetaProperty_data();
+}
+
+// Writes a meta-object-defined property from JS for an object that
+// subclasses QScriptable. The purpose of this benchmark is to measure
+// the overhead compared to writing a property of a non-QScriptable
+// object (see writeMetaProperty()).
+void tst_QScriptQObject::writeQScriptableMetaProperty()
+{
+ QFETCH(QString, propertyName);
+
+ QScriptEngine engine;
+ QtScriptablePropertyTestObject testObject;
+ QVariant value = testObject.property(propertyName.toLatin1());
+ writePropertyHelper(engine, engine.newQObject(&testObject), propertyName,
+ qScriptValueFromValue(&engine, value));
+}
+
+void tst_QScriptQObject::callQScriptableSlot_data()
+{
+ callSlot_data();
+}
+
+// Calls a slot from JS for an object that subclasses QScriptable. The
+// purpose of this benchmark is to measure the overhead compared to
+// calling a slot of a non-QScriptable object (see callSlot()).
+void tst_QScriptQObject::callQScriptableSlot()
+{
+ QFETCH(QString, propertyName);
+ QFETCH(QString, arguments);
+
+ QScriptEngine engine;
+ QtScriptableSlotTestObject testObject;
+ callMethodHelper(engine, &testObject, propertyName, arguments);
+}
+
+QTEST_MAIN(tst_QScriptQObject)
+#include "tst_qscriptqobject.moc"
diff --git a/tests/manual/inputmethodhints/inputmethodhints.cpp b/tests/manual/inputmethodhints/inputmethodhints.cpp
new file mode 100644
index 0000000..0c00b8d
--- /dev/null
+++ b/tests/manual/inputmethodhints/inputmethodhints.cpp
@@ -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));
+}
diff --git a/tests/manual/inputmethodhints/inputmethodhints.h b/tests/manual/inputmethodhints/inputmethodhints.h
new file mode 100644
index 0000000..988a4be
--- /dev/null
+++ b/tests/manual/inputmethodhints/inputmethodhints.h
@@ -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
diff --git a/tests/manual/inputmethodhints/inputmethodhints.pro b/tests/manual/inputmethodhints/inputmethodhints.pro
new file mode 100644
index 0000000..7298ec6
--- /dev/null
+++ b/tests/manual/inputmethodhints/inputmethodhints.pro
@@ -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
diff --git a/tests/manual/inputmethodhints/inputmethodhints.ui b/tests/manual/inputmethodhints/inputmethodhints.ui
new file mode 100644
index 0000000..d0dc01d
--- /dev/null
+++ b/tests/manual/inputmethodhints/inputmethodhints.ui
@@ -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>
diff --git a/tests/manual/inputmethodhints/main.cpp b/tests/manual/inputmethodhints/main.cpp
new file mode 100644
index 0000000..022bf3f
--- /dev/null
+++ b/tests/manual/inputmethodhints/main.cpp
@@ -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();
+}
diff --git a/tools/activeqt/testcon/changeproperties.cpp b/tools/activeqt/testcon/changeproperties.cpp
index e2ad601..b0609b0 100644
--- a/tools/activeqt/testcon/changeproperties.cpp
+++ b/tools/activeqt/testcon/changeproperties.cpp
@@ -108,7 +108,7 @@ void ChangeProperties::on_buttonSet_clicked()
QColor col;
col.setNamedColor(editValue->text());
if (col.isValid()) {
- value = qVariantFromValue(col);
+ value = QVariant::fromValue(col);
} else {
QMessageBox::warning(this, tr("Can't parse input"),
QString(tr("Failed to create a color from %1\n"
@@ -122,7 +122,7 @@ void ChangeProperties::on_buttonSet_clicked()
{
QFont fnt;
if (fnt.fromString(editValue->text())) {
- value = qVariantFromValue(fnt);
+ value = QVariant::fromValue(fnt);
} else {
QMessageBox::warning(this, tr("Can't parse input"),
(tr("Failed to create a font from %1\n"
@@ -141,7 +141,7 @@ void ChangeProperties::on_buttonSet_clicked()
if (pm.isNull())
return;
- value = qVariantFromValue(pm);
+ value = QVariant::fromValue(pm);
}
break;
case QVariant::Bool:
diff --git a/tools/assistant/tools/assistant/bookmarkmanager.cpp b/tools/assistant/tools/assistant/bookmarkmanager.cpp
index 23632b1..65888fe 100644
--- a/tools/assistant/tools/assistant/bookmarkmanager.cpp
+++ b/tools/assistant/tools/assistant/bookmarkmanager.cpp
@@ -283,7 +283,7 @@ void BookmarkManager::buildBookmarksMenu(const QModelIndex &index, QMenu* menu)
return;
const QString &text = index.data().toString();
- const QIcon &icon = qVariantValue<QIcon>(index.data(Qt::DecorationRole));
+ const QIcon &icon = qvariant_cast<QIcon>(index.data(Qt::DecorationRole));
if (index.data(UserRoleFolder).toBool()) {
if (QMenu* subMenu = menu->addMenu(icon, text)) {
for (int i = 0; i < bookmarkModel->rowCount(index); ++i)
diff --git a/tools/assistant/tools/assistant/helpenginewrapper.cpp b/tools/assistant/tools/assistant/helpenginewrapper.cpp
index 60b83f7..0a5445a 100644
--- a/tools/assistant/tools/assistant/helpenginewrapper.cpp
+++ b/tools/assistant/tools/assistant/helpenginewrapper.cpp
@@ -643,7 +643,7 @@ void HelpEngineWrapper::setUseBrowserFont(bool useBrowserFont)
const QFont HelpEngineWrapper::appFont() const
{
TRACE_OBJ
- return qVariantValue<QFont>(d->m_helpEngine->customValue(AppFontKey));
+ return qvariant_cast<QFont>(d->m_helpEngine->customValue(AppFontKey));
}
void HelpEngineWrapper::setAppFont(const QFont &font)
@@ -668,7 +668,7 @@ void HelpEngineWrapper::setAppWritingSystem(QFontDatabase::WritingSystem system)
const QFont HelpEngineWrapper::browserFont() const
{
TRACE_OBJ
- return qVariantValue<QFont>(d->m_helpEngine->customValue(BrowserFontKey));
+ return qvariant_cast<QFont>(d->m_helpEngine->customValue(BrowserFontKey));
}
void HelpEngineWrapper::setBrowserFont(const QFont &font)
diff --git a/tools/assistant/tools/assistant/preferencesdialog.cpp b/tools/assistant/tools/assistant/preferencesdialog.cpp
index 3535e5a..40a449e 100644
--- a/tools/assistant/tools/assistant/preferencesdialog.cpp
+++ b/tools/assistant/tools/assistant/preferencesdialog.cpp
@@ -421,13 +421,13 @@ void PreferencesDialog::updateFontSettingsPage()
connect(m_browserFontPanel, SIGNAL(toggled(bool)), this,
SLOT(browserFontSettingToggled(bool)));
- QList<QComboBox*> allCombos = qFindChildren<QComboBox*>(m_appFontPanel);
+ QList<QComboBox*> allCombos = m_appFontPanel->findChildren<QComboBox*>();
foreach (QComboBox* box, allCombos) {
connect(box, SIGNAL(currentIndexChanged(int)), this,
SLOT(appFontSettingChanged(int)));
}
- allCombos = qFindChildren<QComboBox*>(m_browserFontPanel);
+ allCombos = m_browserFontPanel->findChildren<QComboBox*>();
foreach (QComboBox* box, allCombos) {
connect(box, SIGNAL(currentIndexChanged(int)), this,
SLOT(browserFontSettingChanged(int)));
diff --git a/tools/assistant/tools/assistant/searchwidget.cpp b/tools/assistant/tools/assistant/searchwidget.cpp
index d83790d..9eb2106 100644
--- a/tools/assistant/tools/assistant/searchwidget.cpp
+++ b/tools/assistant/tools/assistant/searchwidget.cpp
@@ -86,7 +86,7 @@ SearchWidget::SearchWidget(QHelpSearchEngine *engine, QWidget *parent)
connect(searchEngine, SIGNAL(searchingFinished(int)), this,
SLOT(searchingFinished(int)));
- QTextBrowser* browser = qFindChild<QTextBrowser*>(resultWidget);
+ QTextBrowser* browser = resultWidget->findChild<QTextBrowser*>();
if (browser) // Will be null if lib was configured not to use CLucene.
browser->viewport()->installEventFilter(this);
}
@@ -100,7 +100,7 @@ SearchWidget::~SearchWidget()
void SearchWidget::zoomIn()
{
TRACE_OBJ
- QTextBrowser* browser = qFindChild<QTextBrowser*>(resultWidget);
+ QTextBrowser* browser = resultWidget->findChild<QTextBrowser*>();
if (browser && zoomCount != 10) {
zoomCount++;
browser->zoomIn();
@@ -110,7 +110,7 @@ void SearchWidget::zoomIn()
void SearchWidget::zoomOut()
{
TRACE_OBJ
- QTextBrowser* browser = qFindChild<QTextBrowser*>(resultWidget);
+ QTextBrowser* browser = resultWidget->findChild<QTextBrowser*>();
if (browser && zoomCount != -5) {
zoomCount--;
browser->zoomOut();
@@ -123,7 +123,7 @@ void SearchWidget::resetZoom()
if (zoomCount == 0)
return;
- QTextBrowser* browser = qFindChild<QTextBrowser*>(resultWidget);
+ QTextBrowser* browser = resultWidget->findChild<QTextBrowser*>();
if (browser) {
browser->zoomOut(zoomCount);
zoomCount = 0;
@@ -165,7 +165,7 @@ void SearchWidget::searchingFinished(int hits)
bool SearchWidget::eventFilter(QObject* o, QEvent *e)
{
TRACE_OBJ
- QTextBrowser* browser = qFindChild<QTextBrowser*>(resultWidget);
+ QTextBrowser* browser = resultWidget->findChild<QTextBrowser*>();
if (browser && o == browser->viewport()
&& e->type() == QEvent::MouseButtonRelease){
QMouseEvent *me = static_cast<QMouseEvent*>(e);
@@ -196,7 +196,7 @@ void SearchWidget::contextMenuEvent(QContextMenuEvent *contextMenuEvent)
QMenu menu;
QPoint point = contextMenuEvent->globalPos();
- QTextBrowser* browser = qFindChild<QTextBrowser*>(resultWidget);
+ QTextBrowser* browser = resultWidget->findChild<QTextBrowser*>();
if (!browser)
return;
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 69e4727..0ed16ed 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -988,7 +988,6 @@ void Configure::parseCmdLine()
++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 +1028,10 @@ void Configure::parseCmdLine()
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 +1162,13 @@ void Configure::parseCmdLine()
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) {
@@ -1624,7 +1634,7 @@ bool Configure::displayHelp()
"[-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");
@@ -1729,9 +1739,7 @@ bool Configure::displayHelp()
"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");
@@ -2098,12 +2106,7 @@ bool Configure::checkAvailability(const QString &part)
else if (part == "INCREDIBUILD_XGE")
available = findFile("BuildConsole.exe") && findFile("xgConsole.exe");
else if (part == "XMLPATTERNS")
- {
- /* MSVC 6.0 and MSVC 2002/7.0 has too poor C++ support for QtXmlPatterns. */
- return dictionary.value("QMAKESPEC") != "win32-msvc"
- && dictionary.value("QMAKESPEC") != "win32-msvc.net" // Leave for now, since we can't be sure if they are using 2002 or 2003 with this spec
- && dictionary.value("QMAKESPEC") != "win32-msvc2002"
- && dictionary.value("EXCEPTIONS") == "yes";
+ available = dictionary.value("EXCEPTIONS") == "yes";
} else if (part == "PHONON") {
if (dictionary.contains("XQMAKESPEC") && dictionary["XQMAKESPEC"].startsWith("symbian")) {
available = true;
@@ -2767,6 +2770,17 @@ void Configure::generateOutputVars()
}
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())
@@ -2945,8 +2959,6 @@ void Configure::generateCachefile()
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();
}
@@ -3045,6 +3057,9 @@ void Configure::generateConfigfiles()
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";
diff --git a/tools/configure/configureapp.h b/tools/configure/configureapp.h
index ff2ee8b..b3c07f7 100644
--- a/tools/configure/configureapp.h
+++ b/tools/configure/configureapp.h
@@ -134,6 +134,8 @@ private:
QStringList qmakeLibs;
QString opensslLibs;
QString psqlLibs;
+ QString sybase;
+ QString sybaseLibs;
QMap<QString,QString> licenseInfo;
QString outputLine;
diff --git a/tools/configure/environment.cpp b/tools/configure/environment.cpp
index 943a8a2..5d9851f 100644
--- a/tools/configure/environment.cpp
+++ b/tools/configure/environment.cpp
@@ -75,8 +75,6 @@ struct CompilerInfo{
{CC_BORLAND, "Borland C++", 0, "bcc32.exe"},
{CC_MINGW, "MinGW (Minimalist GNU for Windows)", 0, "g++.exe"},
{CC_INTEL, "Intel(R) C++ Compiler for 32-bit applications", 0, "icl.exe"}, // xilink.exe, xilink5.exe, xilink6.exe, xilib.exe
- {CC_MSVC6, "Microsoft (R) 32-bit C/C++ Optimizing Compiler (6.x)", "Software\\Microsoft\\VisualStudio\\6.0\\Setup\\Microsoft Visual C++\\ProductDir", "cl.exe"}, // link.exe, lib.exe
- {CC_NET2002, "Microsoft (R) 32-bit C/C++ Optimizing Compiler.NET 2002 (7.0)", "Software\\Microsoft\\VisualStudio\\7.0\\Setup\\VC\\ProductDir", "cl.exe"}, // link.exe, lib.exe
{CC_NET2003, "Microsoft (R) 32-bit C/C++ Optimizing Compiler.NET 2003 (7.1)", "Software\\Microsoft\\VisualStudio\\7.1\\Setup\\VC\\ProductDir", "cl.exe"}, // link.exe, lib.exe
{CC_NET2005, "Microsoft (R) 32-bit C/C++ Optimizing Compiler.NET 2005 (8.0)", "Software\\Microsoft\\VisualStudio\\SxS\\VC7\\8.0", "cl.exe"}, // link.exe, lib.exe
{CC_NET2008, "Microsoft (R) 32-bit C/C++ Optimizing Compiler.NET 2008 (9.0)", "Software\\Microsoft\\VisualStudio\\SxS\\VC7\\9.0", "cl.exe"}, // link.exe, lib.exe
@@ -118,14 +116,6 @@ QString Environment::detectQMakeSpec()
case CC_NET2003:
spec = "win32-msvc2003";
break;
- case CC_NET2002:
- spec = "win32-msvc2002";
- break;
- case CC_MSVC4:
- case CC_MSVC5:
- case CC_MSVC6:
- spec = "win32-msvc";
- break;
case CC_INTEL:
spec = "win32-icc";
break;
@@ -152,7 +142,7 @@ QString Environment::detectQMakeSpec()
Compiler Environment::detectCompiler()
{
#ifndef Q_OS_WIN32
- return MSVC6; // Always generate MSVC 6.0 versions on other platforms
+ return CC_UNKNOWN; // Always generate CC_UNKNOWN on other platforms
#else
if(detectedCompiler != CC_UNKNOWN)
return detectedCompiler;
diff --git a/tools/configure/environment.h b/tools/configure/environment.h
index 16af8df..9efaea1 100644
--- a/tools/configure/environment.h
+++ b/tools/configure/environment.h
@@ -50,10 +50,6 @@ enum Compiler {
CC_BORLAND = 0x01,
CC_MINGW = 0x02,
CC_INTEL = 0x03,
- CC_MSVC4 = 0x40,
- CC_MSVC5 = 0x50,
- CC_MSVC6 = 0x60,
- CC_NET2002 = 0x70,
CC_NET2003 = 0x71,
CC_NET2005 = 0x80,
CC_NET2008 = 0x90,
diff --git a/tools/designer/src/components/buddyeditor/buddyeditor.cpp b/tools/designer/src/components/buddyeditor/buddyeditor.cpp
index e367f9a..4127d7c 100644
--- a/tools/designer/src/components/buddyeditor/buddyeditor.cpp
+++ b/tools/designer/src/components/buddyeditor/buddyeditor.cpp
@@ -153,13 +153,13 @@ void BuddyEditor::updateBackground()
m_updating = true;
QList<Connection *> newList;
- const LabelList label_list = qFindChildren<QLabel*>(background());
+ const LabelList label_list = background()->findChildren<QLabel*>();
foreach (QLabel *label, label_list) {
const QString buddy_name = buddy(label, m_formWindow->core());
if (buddy_name.isEmpty())
continue;
- const QList<QWidget *> targets = qFindChildren<QWidget*>(background(), buddy_name);
+ const QList<QWidget *> targets = background()->findChildren<QWidget*>(buddy_name);
if (targets.isEmpty())
continue;
@@ -238,12 +238,12 @@ void BuddyEditor::setBackground(QWidget *background)
clear();
ConnectionEdit::setBackground(background);
- const LabelList label_list = qFindChildren<QLabel*>(background);
+ const LabelList label_list = background->findChildren<QLabel*>();
foreach (QLabel *label, label_list) {
const QString buddy_name = buddy(label, m_formWindow->core());
if (buddy_name.isEmpty())
continue;
- QWidget *target = qFindChild<QWidget*>(background, buddy_name);
+ QWidget *target = background->findChild<QWidget*>(buddy_name);
if (target == 0)
continue;
@@ -297,7 +297,7 @@ void BuddyEditor::endConnection(QWidget *target, const QPoint &pos)
void BuddyEditor::widgetRemoved(QWidget *widget)
{
- QList<QWidget*> child_list = qFindChildren<QWidget*>(widget);
+ QList<QWidget*> child_list = widget->findChildren<QWidget*>();
child_list.prepend(widget);
ConnectionSet remove_set;
@@ -354,7 +354,7 @@ void BuddyEditor::deleteSelected()
void BuddyEditor::autoBuddy()
{
// Any labels?
- LabelList labelList = qFindChildren<QLabel*>(background());
+ LabelList labelList = background()->findChildren<QLabel*>();
if (labelList.empty())
return;
// Find already used buddies
diff --git a/tools/designer/src/components/formeditor/dpi_chooser.cpp b/tools/designer/src/components/formeditor/dpi_chooser.cpp
index e79c757..1eadfa5 100644
--- a/tools/designer/src/components/formeditor/dpi_chooser.cpp
+++ b/tools/designer/src/components/formeditor/dpi_chooser.cpp
@@ -97,13 +97,13 @@ DPI_Chooser::DPI_Chooser(QWidget *parent) :
m_systemEntry->description = 0;
const struct DPI_Entry *systemEntry = m_systemEntry;
//: System resolution
- m_predefinedCombo->addItem(tr("System (%1 x %2)").arg(m_systemEntry->dpiX).arg(m_systemEntry->dpiY), qVariantFromValue(systemEntry));
+ m_predefinedCombo->addItem(tr("System (%1 x %2)").arg(m_systemEntry->dpiX).arg(m_systemEntry->dpiY), QVariant::fromValue(systemEntry));
// Devices. Exclude the system values as not to duplicate the entries
const int predefinedCount = sizeof(dpiEntries)/sizeof(DPI_Entry);
const struct DPI_Entry *ecend = dpiEntries + predefinedCount;
for (const struct DPI_Entry *it = dpiEntries; it < ecend; ++it)
if (it->dpiX != m_systemEntry->dpiX || it->dpiY != m_systemEntry->dpiY)
- m_predefinedCombo->addItem(tr(it->description), qVariantFromValue(it));
+ m_predefinedCombo->addItem(tr(it->description), QVariant::fromValue(it));
m_predefinedCombo->addItem(tr("User defined"));
setFocusProxy(m_predefinedCombo);
diff --git a/tools/designer/src/components/formeditor/formeditor.qrc b/tools/designer/src/components/formeditor/formeditor.qrc
index 6510814..ed7e40e 100644
--- a/tools/designer/src/components/formeditor/formeditor.qrc
+++ b/tools/designer/src/components/formeditor/formeditor.qrc
@@ -153,6 +153,7 @@
<file>images/win/textjustify.png</file>
<file>images/win/textsuperscript.png</file>
<file>images/win/textsubscript.png</file>
+ <file>images/win/simplifyrichtext.png</file>
<file>images/win/back.png</file>
<file>images/win/forward.png</file>
<file>images/win/down.png</file>
@@ -167,6 +168,7 @@
<file>images/mac/textjustify.png</file>
<file>images/mac/textsuperscript.png</file>
<file>images/mac/textsubscript.png</file>
+ <file>images/mac/simplifyrichtext.png</file>
</qresource>
<qresource prefix="/trolltech/brushes">
<file>defaultbrushes.xml</file>
diff --git a/tools/designer/src/components/formeditor/formwindow.cpp b/tools/designer/src/components/formeditor/formwindow.cpp
index 15775f6..ebf00f9 100644
--- a/tools/designer/src/components/formeditor/formwindow.cpp
+++ b/tools/designer/src/components/formeditor/formwindow.cpp
@@ -387,7 +387,7 @@ void FormWindow::setCursorToAll(const QCursor &c, QWidget *start)
{
#ifndef QT_NO_CURSOR
start->setCursor(c);
- const QWidgetList widgets = qFindChildren<QWidget*>(start);
+ const QWidgetList widgets = start->findChildren<QWidget*>();
foreach (QWidget *widget, widgets) {
if (!qobject_cast<WidgetHandle*>(widget)) {
widget->setCursor(c);
@@ -945,7 +945,7 @@ bool FormWindow::isMainContainer(const QWidget *w) const
void FormWindow::updateChildSelections(QWidget *w)
{
- const QWidgetList l = qFindChildren<QWidget*>(w);
+ const QWidgetList l = w->findChildren<QWidget*>();
if (!l.empty()) {
const QWidgetList::const_iterator lcend = l.constEnd();
for (QWidgetList::const_iterator it = l.constBegin(); it != lcend; ++it) {
@@ -1155,19 +1155,19 @@ bool FormWindow::unify(QObject *w, QString &s, bool changeIt)
existingNames.insert(main->objectName());
const QDesignerMetaDataBaseInterface *metaDataBase = core()->metaDataBase();
- const QWidgetList widgetChildren = qFindChildren<QWidget*>(main);
+ const QWidgetList widgetChildren = main->findChildren<QWidget*>();
if (!widgetChildren.empty())
insertNames(metaDataBase, widgetChildren.constBegin(), widgetChildren.constEnd(), w, existingNames);
- const QList<QLayout *> layoutChildren = qFindChildren<QLayout*>(main);
+ const QList<QLayout *> layoutChildren = main->findChildren<QLayout*>();
if (!layoutChildren.empty())
insertNames(metaDataBase, layoutChildren.constBegin(), layoutChildren.constEnd(), w, existingNames);
- const QList<QAction *> actionChildren = qFindChildren<QAction*>(main);
+ const QList<QAction *> actionChildren = main->findChildren<QAction*>();
if (!actionChildren.empty())
insertNames(metaDataBase, actionChildren.constBegin(), actionChildren.constEnd(), w, existingNames);
- const QList<QButtonGroup *> buttonGroupChildren = qFindChildren<QButtonGroup*>(main);
+ const QList<QButtonGroup *> buttonGroupChildren = main->findChildren<QButtonGroup*>();
if (!buttonGroupChildren.empty())
insertNames(metaDataBase, buttonGroupChildren.constBegin(), buttonGroupChildren.constEnd(), w, existingNames);
@@ -1283,7 +1283,7 @@ void FormWindow::resizeWidget(QWidget *widget, const QRect &geometry)
void FormWindow::raiseChildSelections(QWidget *w)
{
- const QWidgetList l = qFindChildren<QWidget*>(w);
+ const QWidgetList l = w->findChildren<QWidget*>();
if (l.isEmpty())
return;
m_selection->raiseList(l);
@@ -1344,7 +1344,7 @@ QWidgetList FormWindow::selectedWidgets() const
void FormWindow::selectWidgets()
{
bool selectionChanged = false;
- const QWidgetList l = qFindChildren<QWidget*>(mainContainer());
+ const QWidgetList l = mainContainer()->findChildren<QWidget*>();
QListIterator <QWidget*> it(l);
const QRect selRect(mapToGlobal(m_currRect.topLeft()), m_currRect.size());
while (it.hasNext()) {
@@ -1523,7 +1523,7 @@ void ArrowKeyPropertyCommand::init(QWidgetList &l, const ArrowKeyOperation &op)
QObjectList ol;
foreach(QWidget *w, l)
ol.push_back(w);
- SetPropertyCommand::init(ol, QLatin1String("geometry"), qVariantFromValue(op));
+ SetPropertyCommand::init(ol, QLatin1String("geometry"), QVariant::fromValue(op));
setText(op.resize ? FormWindow::tr("Key Resize") : FormWindow::tr("Key Move"));
}
@@ -1531,14 +1531,14 @@ void ArrowKeyPropertyCommand::init(QWidgetList &l, const ArrowKeyOperation &op)
QVariant ArrowKeyPropertyCommand::mergeValue(const QVariant &newMergeValue)
{
// Merge move operations of the same arrow key
- if (!qVariantCanConvert<ArrowKeyOperation>(newMergeValue))
+ if (!newMergeValue.canConvert<ArrowKeyOperation>())
return QVariant();
ArrowKeyOperation mergedOperation = qvariant_cast<ArrowKeyOperation>(newValue());
const ArrowKeyOperation newMergeOperation = qvariant_cast<ArrowKeyOperation>(newMergeValue);
if (mergedOperation.resize != newMergeOperation.resize || mergedOperation.arrowKey != newMergeOperation.arrowKey)
return QVariant();
mergedOperation.distance += newMergeOperation.distance;
- return qVariantFromValue(mergedOperation);
+ return QVariant::fromValue(mergedOperation);
}
void FormWindow::handleArrowKeyEvent(int key, Qt::KeyboardModifiers modifiers)
@@ -2241,7 +2241,7 @@ QAction *FormWindow::createSelectAncestorSubMenu(QWidget *w)
for (int i = 0; i < size; i++) {
QWidget *w = parents.at(i);
QAction *a = ag->addAction(objectNameOf(w));
- a->setData(qVariantFromValue(w));
+ a->setData(QVariant::fromValue(w));
menu->addAction(a);
}
QAction *ma = new QAction(tr("Select Ancestor"), 0);
@@ -2796,7 +2796,7 @@ bool FormWindow::dropDockWidget(QDesignerDnDItemInterface *item, const QPoint &g
PropertySheetEnumValue e = qvariant_cast<PropertySheetEnumValue>(propertySheet->property(propertySheet->indexOf(dockWidgetAreaName)));
e.value = area;
QVariant v;
- qVariantSetValue(v, e);
+ v.setValue(e);
SetPropertyCommand *cmd = new SetPropertyCommand(this);
cmd->init(widget, dockWidgetAreaName, v);
m_undoStack.push(cmd);
diff --git a/tools/designer/src/components/formeditor/images/mac/simplifyrichtext.png b/tools/designer/src/components/formeditor/images/mac/simplifyrichtext.png
new file mode 100644
index 0000000..a48e974
--- /dev/null
+++ b/tools/designer/src/components/formeditor/images/mac/simplifyrichtext.png
Binary files differ
diff --git a/tools/designer/src/components/formeditor/images/win/simplifyrichtext.png b/tools/designer/src/components/formeditor/images/win/simplifyrichtext.png
new file mode 100644
index 0000000..e251cf7
--- /dev/null
+++ b/tools/designer/src/components/formeditor/images/win/simplifyrichtext.png
Binary files differ
diff --git a/tools/designer/src/components/formeditor/qdesigner_resource.cpp b/tools/designer/src/components/formeditor/qdesigner_resource.cpp
index 1d78695..6c458f3 100644
--- a/tools/designer/src/components/formeditor/qdesigner_resource.cpp
+++ b/tools/designer/src/components/formeditor/qdesigner_resource.cpp
@@ -197,7 +197,7 @@ QVariant QDesignerResourceBuilder::loadResource(const QDir &workingDirectory, co
m_loadedQrcFiles.insert(QFileInfo(workingDirectory, dp->attributeResource()).absoluteFilePath(), false);
#endif
}
- return qVariantFromValue(pixmap);
+ return QVariant::fromValue(pixmap);
}
case DomProperty::IconSet: {
@@ -227,7 +227,7 @@ QVariant QDesignerResourceBuilder::loadResource(const QDir &workingDirectory, co
m_loadedQrcFiles.insert(QFileInfo(workingDirectory, di->attributeResource()).absoluteFilePath(), false);
#endif
}
- return qVariantFromValue(icon);
+ return QVariant::fromValue(icon);
}
default:
break;
@@ -237,12 +237,12 @@ QVariant QDesignerResourceBuilder::loadResource(const QDir &workingDirectory, co
QVariant QDesignerResourceBuilder::toNativeValue(const QVariant &value) const
{
- if (qVariantCanConvert<PropertySheetPixmapValue>(value)) {
+ if (value.canConvert<PropertySheetPixmapValue>()) {
if (m_pixmapCache)
- return m_pixmapCache->pixmap(qVariantValue<PropertySheetPixmapValue>(value));
- } else if (qVariantCanConvert<PropertySheetIconValue>(value)) {
+ return m_pixmapCache->pixmap(qvariant_cast<PropertySheetPixmapValue>(value));
+ } else if (value.canConvert<PropertySheetIconValue>()) {
if (m_iconCache)
- return m_iconCache->icon(qVariantValue<PropertySheetIconValue>(value));
+ return m_iconCache->icon(qvariant_cast<PropertySheetIconValue>(value));
}
return value;
}
@@ -250,7 +250,7 @@ QVariant QDesignerResourceBuilder::toNativeValue(const QVariant &value) const
DomProperty *QDesignerResourceBuilder::saveResource(const QDir &workingDirectory, const QVariant &value) const
{
DomProperty *p = new DomProperty;
- if (qVariantCanConvert<PropertySheetPixmapValue>(value)) {
+ if (value.canConvert<PropertySheetPixmapValue>()) {
const PropertySheetPixmapValue pix = qvariant_cast<PropertySheetPixmapValue>(value);
DomResourcePixmap *rp = new DomResourcePixmap;
const QString pixPath = pix.path();
@@ -275,7 +275,7 @@ DomProperty *QDesignerResourceBuilder::saveResource(const QDir &workingDirectory
}
p->setElementPixmap(rp);
return p;
- } else if (qVariantCanConvert<PropertySheetIconValue>(value)) {
+ } else if (value.canConvert<PropertySheetIconValue>()) {
const PropertySheetIconValue icon = qvariant_cast<PropertySheetIconValue>(value);
const QMap<QPair<QIcon::Mode, QIcon::State>, PropertySheetPixmapValue> pixmaps = icon.paths();
if (!pixmaps.isEmpty()) {
@@ -331,7 +331,7 @@ DomProperty *QDesignerResourceBuilder::saveResource(const QDir &workingDirectory
bool QDesignerResourceBuilder::isResourceType(const QVariant &value) const
{
- if (qVariantCanConvert<PropertySheetPixmapValue>(value) || qVariantCanConvert<PropertySheetIconValue>(value))
+ if (value.canConvert<PropertySheetPixmapValue>() || value.canConvert<PropertySheetIconValue>())
return true;
return false;
}
@@ -364,26 +364,26 @@ QVariant QDesignerTextBuilder::loadText(const DomProperty *text) const
if (!translatable)
strVal.setTranslatable(translatable);
}
- return qVariantFromValue(strVal);
+ return QVariant::fromValue(strVal);
}
QVariant QDesignerTextBuilder::toNativeValue(const QVariant &value) const
{
- if (qVariantCanConvert<PropertySheetStringValue>(value))
- return qVariantFromValue(qVariantValue<PropertySheetStringValue>(value).value());
+ if (value.canConvert<PropertySheetStringValue>())
+ return QVariant::fromValue(qvariant_cast<PropertySheetStringValue>(value).value());
return value;
}
DomProperty *QDesignerTextBuilder::saveText(const QVariant &value) const
{
- if (!qVariantCanConvert<PropertySheetStringValue>(value) && !qVariantCanConvert<QString>(value))
+ if (!value.canConvert<PropertySheetStringValue>() && !value.canConvert<QString>())
return 0;
DomProperty *property = new DomProperty();
DomString *domStr = new DomString();
- if (qVariantCanConvert<PropertySheetStringValue>(value)) {
- PropertySheetStringValue str = qVariantValue<PropertySheetStringValue>(value);
+ if (value.canConvert<PropertySheetStringValue>()) {
+ PropertySheetStringValue str = qvariant_cast<PropertySheetStringValue>(value);
domStr->setText(str.value());
@@ -475,7 +475,7 @@ void QDesignerResource::saveDom(DomUI *ui, QWidget *widget)
if (classVar.canConvert(QVariant::String))
classStr = classVar.toString();
else
- classStr = qVariantValue<PropertySheetStringValue>(classVar).value();
+ classStr = qvariant_cast<PropertySheetStringValue>(classVar).value();
ui->setElementClass(classStr);
for (int index = 0; index < m_formWindow->toolCount(); ++index) {
@@ -946,7 +946,7 @@ QWidget *QDesignerResource::create(DomWidget *ui_widget, QWidget *parentWidget)
w->addAction(a);
} else if (QActionGroup *g = m_actionGroups.value(name)) {
w->addActions(g->actions());
- } else if (QMenu *menu = qFindChild<QMenu*>(w, name)) {
+ } else if (QMenu *menu = w->findChild<QMenu*>(name)) {
w->addAction(menu->menuAction());
addMenuAction(menu->menuAction());
}
@@ -1045,7 +1045,7 @@ static bool readDomEnumerationValue(const DomProperty *p,
switch (p->kind()) {
case DomProperty::Set: {
const QVariant sheetValue = sheet->property(index);
- if (qVariantCanConvert<PropertySheetFlagValue>(sheetValue)) {
+ if (sheetValue.canConvert<PropertySheetFlagValue>()) {
const PropertySheetFlagValue f = qvariant_cast<PropertySheetFlagValue>(sheetValue);
bool ok = false;
v = f.metaFlags.parseFlags(p->elementSet(), &ok);
@@ -1057,7 +1057,7 @@ static bool readDomEnumerationValue(const DomProperty *p,
break;
case DomProperty::Enum: {
const QVariant sheetValue = sheet->property(index);
- if (qVariantCanConvert<PropertySheetEnumValue>(sheetValue)) {
+ if (sheetValue.canConvert<PropertySheetEnumValue>()) {
const PropertySheetEnumValue e = qvariant_cast<PropertySheetEnumValue>(sheetValue);
bool ok = false;
v = e.metaEnum.parseEnum(p->elementEnum(), &ok);
@@ -1110,7 +1110,7 @@ void QDesignerResource::applyProperties(QObject *o, const QList<DomProperty*> &p
if (!translatable)
keyVal.setTranslatable(translatable);
}
- v = qVariantFromValue(keyVal);
+ v = QVariant::fromValue(keyVal);
} else {
const DomString *str = p->elementString();
PropertySheetStringValue strVal(v.toString());
@@ -1124,7 +1124,7 @@ void QDesignerResource::applyProperties(QObject *o, const QList<DomProperty*> &p
if (!translatable)
strVal.setTranslatable(translatable);
}
- v = qVariantFromValue(strVal);
+ v = QVariant::fromValue(strVal);
}
}
@@ -1135,18 +1135,18 @@ void QDesignerResource::applyProperties(QObject *o, const QList<DomProperty*> &p
} else if (dynamicPropertiesAllowed) {
QVariant defaultValue = QVariant(v.type());
bool isDefault = (v == defaultValue);
- if (qVariantCanConvert<PropertySheetIconValue>(v)) {
+ if (v.canConvert<PropertySheetIconValue>()) {
defaultValue = QVariant(QVariant::Icon);
- isDefault = (qVariantValue<PropertySheetIconValue>(v) == PropertySheetIconValue());
- } else if (qVariantCanConvert<PropertySheetPixmapValue>(v)) {
+ isDefault = (qvariant_cast<PropertySheetIconValue>(v) == PropertySheetIconValue());
+ } else if (v.canConvert<PropertySheetPixmapValue>()) {
defaultValue = QVariant(QVariant::Pixmap);
- isDefault = (qVariantValue<PropertySheetPixmapValue>(v) == PropertySheetPixmapValue());
- } else if (qVariantCanConvert<PropertySheetStringValue>(v)) {
+ isDefault = (qvariant_cast<PropertySheetPixmapValue>(v) == PropertySheetPixmapValue());
+ } else if (v.canConvert<PropertySheetStringValue>()) {
defaultValue = QVariant(QVariant::String);
- isDefault = (qVariantValue<PropertySheetStringValue>(v) == PropertySheetStringValue());
- } else if (qVariantCanConvert<PropertySheetKeySequenceValue>(v)) {
+ isDefault = (qvariant_cast<PropertySheetStringValue>(v) == PropertySheetStringValue());
+ } else if (v.canConvert<PropertySheetKeySequenceValue>()) {
defaultValue = QVariant(QVariant::KeySequence);
- isDefault = (qVariantValue<PropertySheetKeySequenceValue>(v) == PropertySheetKeySequenceValue());
+ isDefault = (qvariant_cast<PropertySheetKeySequenceValue>(v) == PropertySheetKeySequenceValue());
}
if (defaultValue.type() != QVariant::UserType) {
const int idx = dynamicSheet->addDynamicProperty(p->attributeName(), defaultValue);
@@ -1185,12 +1185,12 @@ QWidget *QDesignerResource::createWidget(const QString &widgetName, QWidget *par
if (!qobject_cast<QMenu*>(w) && (!parentWidget || !container)) {
m_formWindow->manageWidget(w);
if (parentWidget) {
- QList<QWidget *> list = qVariantValue<QWidgetList>(parentWidget->property("_q_widgetOrder"));
+ QList<QWidget *> list = qvariant_cast<QWidgetList>(parentWidget->property("_q_widgetOrder"));
list.append(w);
- parentWidget->setProperty("_q_widgetOrder", qVariantFromValue(list));
- QList<QWidget *> zOrder = qVariantValue<QWidgetList>(parentWidget->property("_q_zOrder"));
+ parentWidget->setProperty("_q_widgetOrder", QVariant::fromValue(list));
+ QList<QWidget *> zOrder = qvariant_cast<QWidgetList>(parentWidget->property("_q_zOrder"));
zOrder.append(w);
- parentWidget->setProperty("_q_zOrder", qVariantFromValue(list));
+ parentWidget->setProperty("_q_zOrder", QVariant::fromValue(list));
}
} else {
core()->metaDataBase()->add(w);
@@ -1320,7 +1320,7 @@ DomLayout *QDesignerResource::createDom(QLayout *layout, DomLayout *ui_parentLay
QDesignerMetaDataBaseItemInterface *item = core()->metaDataBase()->item(layout);
if (item == 0) {
- layout = qFindChild<QLayout*>(layout);
+ layout = layout->findChild<QLayout*>();
// refresh the meta database item
item = core()->metaDataBase()->item(layout);
}
@@ -1440,7 +1440,7 @@ void QDesignerResource::applyTabStops(QWidget *widget, DomTabStops *tabStops)
QList<QWidget*> tabOrder;
foreach (const QString &widgetName, tabStops->elementTabStop()) {
- if (QWidget *w = qFindChild<QWidget*>(widget, widgetName)) {
+ if (QWidget *w = widget->findChild<QWidget*>(widgetName)) {
tabOrder.append(w);
}
}
@@ -1605,8 +1605,8 @@ DomWidget *QDesignerResource::saveWidget(QTabWidget *widget, DomWidget *ui_paren
// attribute `icon'
widget->setCurrentIndex(i);
QDesignerPropertySheetExtension *sheet = qt_extension<QDesignerPropertySheetExtension*>(core()->extensionManager(), widget);
- PropertySheetIconValue icon = qVariantValue<PropertySheetIconValue>(sheet->property(sheet->indexOf(QLatin1String("currentTabIcon"))));
- DomProperty *p = resourceBuilder()->saveResource(workingDirectory(), qVariantFromValue(icon));
+ PropertySheetIconValue icon = qvariant_cast<PropertySheetIconValue>(sheet->property(sheet->indexOf(QLatin1String("currentTabIcon"))));
+ DomProperty *p = resourceBuilder()->saveResource(workingDirectory(), QVariant::fromValue(icon));
if (p) {
p->setAttributeName(strings.iconAttribute);
ui_attribute_list.append(p);
@@ -1620,7 +1620,7 @@ DomWidget *QDesignerResource::saveWidget(QTabWidget *widget, DomWidget *ui_paren
// attribute `toolTip'
QVariant v = sheet->property(sheet->indexOf(QLatin1String("currentTabToolTip")));
- if (!qVariantValue<PropertySheetStringValue>(v).value().isEmpty()) {
+ if (!qvariant_cast<PropertySheetStringValue>(v).value().isEmpty()) {
p = textBuilder()->saveText(v);
if (p) {
p->setAttributeName(strings.toolTipAttribute);
@@ -1630,7 +1630,7 @@ DomWidget *QDesignerResource::saveWidget(QTabWidget *widget, DomWidget *ui_paren
// attribute `whatsThis'
v = sheet->property(sheet->indexOf(QLatin1String("currentTabWhatsThis")));
- if (!qVariantValue<PropertySheetStringValue>(v).value().isEmpty()) {
+ if (!qvariant_cast<PropertySheetStringValue>(v).value().isEmpty()) {
p = textBuilder()->saveText(v);
if (p) {
p->setAttributeName(strings.whatsThisAttribute);
@@ -1676,8 +1676,8 @@ DomWidget *QDesignerResource::saveWidget(QToolBox *widget, DomWidget *ui_parentW
// attribute `icon'
widget->setCurrentIndex(i);
QDesignerPropertySheetExtension *sheet = qt_extension<QDesignerPropertySheetExtension*>(core()->extensionManager(), widget);
- PropertySheetIconValue icon = qVariantValue<PropertySheetIconValue>(sheet->property(sheet->indexOf(QLatin1String("currentItemIcon"))));
- DomProperty *p = resourceBuilder()->saveResource(workingDirectory(), qVariantFromValue(icon));
+ PropertySheetIconValue icon = qvariant_cast<PropertySheetIconValue>(sheet->property(sheet->indexOf(QLatin1String("currentItemIcon"))));
+ DomProperty *p = resourceBuilder()->saveResource(workingDirectory(), QVariant::fromValue(icon));
if (p) {
p->setAttributeName(strings.iconAttribute);
ui_attribute_list.append(p);
@@ -1690,7 +1690,7 @@ DomWidget *QDesignerResource::saveWidget(QToolBox *widget, DomWidget *ui_parentW
// attribute `toolTip'
QVariant v = sheet->property(sheet->indexOf(QLatin1String("currentItemToolTip")));
- if (!qVariantValue<PropertySheetStringValue>(v).value().isEmpty()) {
+ if (!qvariant_cast<PropertySheetStringValue>(v).value().isEmpty()) {
p = textBuilder()->saveText(v);
if (p) {
p->setAttributeName(strings.toolTipAttribute);
@@ -2209,8 +2209,8 @@ DomProperty *QDesignerResource::createProperty(QObject *object, const QString &p
return 0;
}
- if (qVariantCanConvert<PropertySheetFlagValue>(value)) {
- const PropertySheetFlagValue f = qVariantValue<PropertySheetFlagValue>(value);
+ if (value.canConvert<PropertySheetFlagValue>()) {
+ const PropertySheetFlagValue f = qvariant_cast<PropertySheetFlagValue>(value);
const QString flagString = f.metaFlags.toString(f.value, DesignerMetaFlags::FullyQualified);
if (flagString.isEmpty())
return 0;
@@ -2222,8 +2222,8 @@ DomProperty *QDesignerResource::createProperty(QObject *object, const QString &p
p->setAttributeName(propertyName);
p->setElementSet(flagString);
return applyProperStdSetAttribute(object, propertyName, p);
- } else if (qVariantCanConvert<PropertySheetEnumValue>(value)) {
- const PropertySheetEnumValue e = qVariantValue<PropertySheetEnumValue>(value);
+ } else if (value.canConvert<PropertySheetEnumValue>()) {
+ const PropertySheetEnumValue e = qvariant_cast<PropertySheetEnumValue>(value);
bool ok;
const QString id = e.metaEnum.toString(e.value, DesignerMetaEnum::FullyQualified, &ok);
if (!ok)
@@ -2238,8 +2238,8 @@ DomProperty *QDesignerResource::createProperty(QObject *object, const QString &p
p->setAttributeName(propertyName);
p->setElementEnum(id);
return applyProperStdSetAttribute(object, propertyName, p);
- } else if (qVariantCanConvert<PropertySheetStringValue>(value)) {
- const PropertySheetStringValue strVal = qVariantValue<PropertySheetStringValue>(value);
+ } else if (value.canConvert<PropertySheetStringValue>()) {
+ const PropertySheetStringValue strVal = qvariant_cast<PropertySheetStringValue>(value);
DomProperty *p = new DomProperty;
if (!hasSetter(core(), object, propertyName))
p->setAttributeStdset(0);
@@ -2249,8 +2249,8 @@ DomProperty *QDesignerResource::createProperty(QObject *object, const QString &p
saveStringProperty(p, strVal);
return applyProperStdSetAttribute(object, propertyName, p);
- } else if (qVariantCanConvert<PropertySheetKeySequenceValue>(value)) {
- const PropertySheetKeySequenceValue keyVal = qVariantValue<PropertySheetKeySequenceValue>(value);
+ } else if (value.canConvert<PropertySheetKeySequenceValue>()) {
+ const PropertySheetKeySequenceValue keyVal = qvariant_cast<PropertySheetKeySequenceValue>(value);
DomProperty *p = new DomProperty;
if (!hasSetter(core(), object, propertyName))
p->setAttributeStdset(0);
diff --git a/tools/designer/src/components/formeditor/qmainwindow_container.cpp b/tools/designer/src/components/formeditor/qmainwindow_container.cpp
index 9b5326a..ef4ce85 100644
--- a/tools/designer/src/components/formeditor/qmainwindow_container.cpp
+++ b/tools/designer/src/components/formeditor/qmainwindow_container.cpp
@@ -104,7 +104,7 @@ Qt::DockWidgetArea dockWidgetArea(QDockWidget *me)
QList<QLayout*> candidates;
if (mw->layout()) {
candidates.append(mw->layout());
- candidates += qFindChildren<QLayout*>(mw->layout());
+ candidates += mw->layout()->findChildren<QLayout*>();
}
foreach (QLayout *l, candidates) {
if (l->indexOf(me) != -1) {
diff --git a/tools/designer/src/components/objectinspector/objectinspectormodel.cpp b/tools/designer/src/components/objectinspector/objectinspectormodel.cpp
index 93e1df1..4bbacdb 100644
--- a/tools/designer/src/components/objectinspector/objectinspectormodel.cpp
+++ b/tools/designer/src/components/objectinspector/objectinspectormodel.cpp
@@ -273,7 +273,7 @@ namespace qdesigner_internal {
void ObjectData::setItems(const StandardItemList &row, const ObjectInspectorIcons &icons) const
{
- const QVariant object = qVariantFromValue(m_object);
+ const QVariant object = QVariant::fromValue(m_object);
row[ObjectInspectorModel::ObjectNameColumn]->setData(object, DataRole);
row[ObjectInspectorModel::ClassNameColumn]->setData(object, DataRole);
setItemsDisplayData(row, icons, ClassNameChanged|ObjectNameChanged|ClassIconChanged|TypeChanged|LayoutTypeChanged);
diff --git a/tools/designer/src/components/propertyeditor/brushpropertymanager.cpp b/tools/designer/src/components/propertyeditor/brushpropertymanager.cpp
index 2300b47..fffdc29 100644
--- a/tools/designer/src/components/propertyeditor/brushpropertymanager.cpp
+++ b/tools/designer/src/components/propertyeditor/brushpropertymanager.cpp
@@ -163,7 +163,7 @@ void BrushPropertyManager::initializeProperty(QtVariantPropertyManager *vm, QtPr
for (int i = 0; i < brushStyleCount; i++)
styles.push_back(QCoreApplication::translate("BrushPropertyManager", brushStyles[i]));
styleSubProperty->setAttribute(QLatin1String("enumNames"), styles);
- styleSubProperty->setAttribute(QLatin1String("enumIcons"), qVariantFromValue(brushStyleIcons()));
+ styleSubProperty->setAttribute(QLatin1String("enumIcons"), QVariant::fromValue(brushStyleIcons()));
m_brushPropertyToStyleSubProperty.insert(property, styleSubProperty);
m_brushStyleSubPropertyToProperty.insert(styleSubProperty, property);
// color
diff --git a/tools/designer/src/components/propertyeditor/designerpropertymanager.cpp b/tools/designer/src/components/propertyeditor/designerpropertymanager.cpp
index 9ab2940..e251511 100644
--- a/tools/designer/src/components/propertyeditor/designerpropertymanager.cpp
+++ b/tools/designer/src/components/propertyeditor/designerpropertymanager.cpp
@@ -740,7 +740,7 @@ void DesignerPropertyManager::slotValueChanged(QtProperty *property, const QVari
m_changingSubValue = false;
data.val = newValue;
QVariant v;
- qVariantSetValue(v, data.val);
+ v.setValue(data.val);
variantProperty(flagProperty)->setValue(v);
} else if (QtProperty *alignProperty = m_alignHToProperty.value(property, 0)) {
const uint v = m_alignValues.value(alignProperty);
@@ -763,7 +763,7 @@ void DesignerPropertyManager::slotValueChanged(QtProperty *property, const QVari
if (v == newValue)
return;
- variantProperty(stringProperty)->setValue(qVariantFromValue(newValue));
+ variantProperty(stringProperty)->setValue(QVariant::fromValue(newValue));
} else if (QtProperty *stringProperty = m_translatableToString.value(property, 0)) {
const PropertySheetStringValue v = m_stringValues.value(stringProperty);
PropertySheetStringValue newValue = v;
@@ -771,7 +771,7 @@ void DesignerPropertyManager::slotValueChanged(QtProperty *property, const QVari
if (v == newValue)
return;
- variantProperty(stringProperty)->setValue(qVariantFromValue(newValue));
+ variantProperty(stringProperty)->setValue(QVariant::fromValue(newValue));
} else if (QtProperty *stringProperty = m_disambiguationToString.value(property, 0)) {
const PropertySheetStringValue v = m_stringValues.value(stringProperty);
PropertySheetStringValue newValue = v;
@@ -779,7 +779,7 @@ void DesignerPropertyManager::slotValueChanged(QtProperty *property, const QVari
if (v == newValue)
return;
- variantProperty(stringProperty)->setValue(qVariantFromValue(newValue));
+ variantProperty(stringProperty)->setValue(QVariant::fromValue(newValue));
} else if (QtProperty *keySequenceProperty = m_commentToKeySequence.value(property, 0)) {
const PropertySheetKeySequenceValue v = m_keySequenceValues.value(keySequenceProperty);
PropertySheetKeySequenceValue newValue = v;
@@ -787,7 +787,7 @@ void DesignerPropertyManager::slotValueChanged(QtProperty *property, const QVari
if (v == newValue)
return;
- variantProperty(keySequenceProperty)->setValue(qVariantFromValue(newValue));
+ variantProperty(keySequenceProperty)->setValue(QVariant::fromValue(newValue));
} else if (QtProperty *keySequenceProperty = m_translatableToKeySequence.value(property, 0)) {
const PropertySheetKeySequenceValue v = m_keySequenceValues.value(keySequenceProperty);
PropertySheetKeySequenceValue newValue = v;
@@ -795,7 +795,7 @@ void DesignerPropertyManager::slotValueChanged(QtProperty *property, const QVari
if (v == newValue)
return;
- variantProperty(keySequenceProperty)->setValue(qVariantFromValue(newValue));
+ variantProperty(keySequenceProperty)->setValue(QVariant::fromValue(newValue));
} else if (QtProperty *keySequenceProperty = m_disambiguationToKeySequence.value(property, 0)) {
const PropertySheetKeySequenceValue v = m_keySequenceValues.value(keySequenceProperty);
PropertySheetKeySequenceValue newValue = v;
@@ -803,16 +803,16 @@ void DesignerPropertyManager::slotValueChanged(QtProperty *property, const QVari
if (v == newValue)
return;
- variantProperty(keySequenceProperty)->setValue(qVariantFromValue(newValue));
+ variantProperty(keySequenceProperty)->setValue(QVariant::fromValue(newValue));
} else if (QtProperty *iProperty = m_iconSubPropertyToProperty.value(property, 0)) {
QtVariantProperty *iconProperty = variantProperty(iProperty);
- PropertySheetIconValue icon = qVariantValue<PropertySheetIconValue>(iconProperty->value());
+ PropertySheetIconValue icon = qvariant_cast<PropertySheetIconValue>(iconProperty->value());
QPair<QIcon::Mode, QIcon::State> pair = m_iconSubPropertyToState.value(property);
- icon.setPixmap(pair.first, pair.second, qVariantValue<PropertySheetPixmapValue>(value));
+ icon.setPixmap(pair.first, pair.second, qvariant_cast<PropertySheetPixmapValue>(value));
QtProperty *origSourceOfChange = m_sourceOfChange;
if (!origSourceOfChange)
m_sourceOfChange = property;
- iconProperty->setValue(qVariantFromValue(icon));
+ iconProperty->setValue(QVariant::fromValue(icon));
if (!origSourceOfChange)
m_sourceOfChange = origSourceOfChange;
} else if (m_iconValues.contains(property)) {
@@ -933,7 +933,7 @@ QVariant DesignerPropertyManager::attributeValue(const QtProperty *property, con
PropertyFlagDataMap::const_iterator it = m_flagValues.constFind(prop);
if (it != m_flagValues.constEnd()) {
QVariant v;
- qVariantSetValue(v, it.value().flags);
+ v.setValue(it.value().flags);
return v;
}
}
@@ -985,7 +985,7 @@ void DesignerPropertyManager::setAttribute(QtProperty *property,
if (value.userType() != designerFlagListTypeId())
return;
- const DesignerFlagList flags = qVariantValue<DesignerFlagList>(value);
+ const DesignerFlagList flags = qvariant_cast<DesignerFlagList>(value);
PropertyFlagDataMap::iterator fit = m_flagValues.find(property);
FlagData data = fit.value();
if (data.flags == flags)
@@ -1022,7 +1022,7 @@ void DesignerPropertyManager::setAttribute(QtProperty *property,
fit.value() = data;
QVariant v;
- qVariantSetValue(v, flags);
+ v.setValue(flags);
emit attributeChanged(property, attribute, v);
emit propertyChanged(property);
@@ -1061,7 +1061,7 @@ void DesignerPropertyManager::setAttribute(QtProperty *property,
if (value.userType() != QVariant::Palette)
return;
- QPalette superPalette = qVariantValue<QPalette>(value);
+ QPalette superPalette = qvariant_cast<QPalette>(value);
const PropertyPaletteDataMap::iterator it = m_paletteValues.find(property);
PaletteData data = it.value();
@@ -1077,7 +1077,7 @@ void DesignerPropertyManager::setAttribute(QtProperty *property,
it.value() = data;
QVariant v;
- qVariantSetValue(v, superPalette);
+ v.setValue(superPalette);
emit attributeChanged(property, attribute, v);
emit propertyChanged(property);
@@ -1086,7 +1086,7 @@ void DesignerPropertyManager::setAttribute(QtProperty *property,
if (value.userType() != QVariant::Pixmap)
return;
- QPixmap defaultPixmap = qVariantValue<QPixmap>(value);
+ QPixmap defaultPixmap = qvariant_cast<QPixmap>(value);
const QMap<QtProperty *, QPixmap>::iterator it = m_defaultPixmaps.find(property);
QPixmap oldDefaultPixmap = it.value();
@@ -1095,7 +1095,7 @@ void DesignerPropertyManager::setAttribute(QtProperty *property,
it.value() = defaultPixmap;
- QVariant v = qVariantFromValue(defaultPixmap);
+ QVariant v = QVariant::fromValue(defaultPixmap);
emit attributeChanged(property, attribute, v);
emit propertyChanged(property);
@@ -1103,7 +1103,7 @@ void DesignerPropertyManager::setAttribute(QtProperty *property,
if (value.userType() != QVariant::Icon)
return;
- QIcon defaultIcon = qVariantValue<QIcon>(value);
+ QIcon defaultIcon = qvariant_cast<QIcon>(value);
const QMap<QtProperty *, QIcon>::iterator it = m_defaultIcons.find(property);
QIcon oldDefaultIcon = it.value();
@@ -1124,7 +1124,7 @@ void DesignerPropertyManager::setAttribute(QtProperty *property,
}
}
- QVariant v = qVariantFromValue(defaultIcon);
+ QVariant v = QVariant::fromValue(defaultIcon);
emit attributeChanged(property, attribute, v);
emit propertyChanged(property);
@@ -1265,12 +1265,12 @@ QString DesignerPropertyManager::valueText(const QtProperty *property) const
return m_stringListValues.value(const_cast<QtProperty *>(property)).join(QLatin1String("; "));
}
if (QtVariantPropertyManager::valueType(property) == QVariant::String || QtVariantPropertyManager::valueType(property) == designerStringTypeId()) {
- const QString str = (QtVariantPropertyManager::valueType(property) == QVariant::String) ? value(property).toString() : qVariantValue<PropertySheetStringValue>(value(property)).value();
+ const QString str = (QtVariantPropertyManager::valueType(property) == QVariant::String) ? value(property).toString() : qvariant_cast<PropertySheetStringValue>(value(property)).value();
const int validationMode = attributeValue(property, QLatin1String(validationModesAttributeC)).toInt();
return TextPropertyEditor::stringToEditorString(str, static_cast<TextPropertyValidationMode>(validationMode));
}
if (QtVariantPropertyManager::valueType(property) == designerKeySequenceTypeId()) {
- return qVariantValue<PropertySheetKeySequenceValue>(value(property)).value();
+ return qvariant_cast<PropertySheetKeySequenceValue>(value(property)).value();
}
if (QtVariantPropertyManager::valueType(property) == QVariant::Bool) {
return QString();
@@ -1313,13 +1313,13 @@ void DesignerPropertyManager::reloadResourceProperties()
}
emit propertyChanged(property);
- emit QtVariantPropertyManager::valueChanged(property, qVariantFromValue(itIcon.value()));
+ emit QtVariantPropertyManager::valueChanged(property, QVariant::fromValue(itIcon.value()));
}
QMapIterator<QtProperty *, qdesigner_internal::PropertySheetPixmapValue> itPix(m_pixmapValues);
while (itPix.hasNext()) {
QtProperty *property = itPix.next().key();
emit propertyChanged(property);
- emit QtVariantPropertyManager::valueChanged(property, qVariantFromValue(itPix.value()));
+ emit QtVariantPropertyManager::valueChanged(property, QVariant::fromValue(itPix.value()));
}
}
@@ -1357,13 +1357,13 @@ QVariant DesignerPropertyManager::value(const QtProperty *property) const
if (m_paletteValues.contains(const_cast<QtProperty *>(property)))
return m_paletteValues.value(const_cast<QtProperty *>(property)).val;
if (m_iconValues.contains(const_cast<QtProperty *>(property)))
- return qVariantFromValue(m_iconValues.value(const_cast<QtProperty *>(property)));
+ return QVariant::fromValue(m_iconValues.value(const_cast<QtProperty *>(property)));
if (m_pixmapValues.contains(const_cast<QtProperty *>(property)))
- return qVariantFromValue(m_pixmapValues.value(const_cast<QtProperty *>(property)));
+ return QVariant::fromValue(m_pixmapValues.value(const_cast<QtProperty *>(property)));
if (m_stringValues.contains(const_cast<QtProperty *>(property)))
- return qVariantFromValue(m_stringValues.value(const_cast<QtProperty *>(property)));
+ return QVariant::fromValue(m_stringValues.value(const_cast<QtProperty *>(property)));
if (m_keySequenceValues.contains(const_cast<QtProperty *>(property)))
- return qVariantFromValue(m_keySequenceValues.value(const_cast<QtProperty *>(property)));
+ return QVariant::fromValue(m_keySequenceValues.value(const_cast<QtProperty *>(property)));
if (m_uintValues.contains(const_cast<QtProperty *>(property)))
return m_uintValues.value(const_cast<QtProperty *>(property));
if (m_longLongValues.contains(const_cast<QtProperty *>(property)))
@@ -1497,7 +1497,7 @@ void DesignerPropertyManager::setValue(QtProperty *property, const QVariant &val
if (value.userType() != designerStringTypeId())
return;
- const PropertySheetStringValue v = qVariantValue<PropertySheetStringValue>(value);
+ const PropertySheetStringValue v = qvariant_cast<PropertySheetStringValue>(value);
const PropertySheetStringValue val = m_stringValues.value(property);
@@ -1517,7 +1517,7 @@ void DesignerPropertyManager::setValue(QtProperty *property, const QVariant &val
m_stringValues[property] = v;
- emit QtVariantPropertyManager::valueChanged(property, qVariantFromValue(v));
+ emit QtVariantPropertyManager::valueChanged(property, QVariant::fromValue(v));
emit propertyChanged(property);
return;
@@ -1525,7 +1525,7 @@ void DesignerPropertyManager::setValue(QtProperty *property, const QVariant &val
if (value.userType() != designerKeySequenceTypeId())
return;
- const PropertySheetKeySequenceValue v = qVariantValue<PropertySheetKeySequenceValue>(value);
+ const PropertySheetKeySequenceValue v = qvariant_cast<PropertySheetKeySequenceValue>(value);
const PropertySheetKeySequenceValue val = m_keySequenceValues.value(property);
@@ -1545,7 +1545,7 @@ void DesignerPropertyManager::setValue(QtProperty *property, const QVariant &val
m_keySequenceValues[property] = v;
- emit QtVariantPropertyManager::valueChanged(property, qVariantFromValue(v));
+ emit QtVariantPropertyManager::valueChanged(property, QVariant::fromValue(v));
emit propertyChanged(property);
return;
@@ -1553,7 +1553,7 @@ void DesignerPropertyManager::setValue(QtProperty *property, const QVariant &val
if (value.type() != QVariant::Palette && !value.canConvert(QVariant::Palette))
return;
- QPalette p = qVariantValue<QPalette>(value);
+ QPalette p = qvariant_cast<QPalette>(value);
PaletteData data = m_paletteValues.value(property);
@@ -1575,7 +1575,7 @@ void DesignerPropertyManager::setValue(QtProperty *property, const QVariant &val
if (value.userType() != designerIconTypeId())
return;
- const PropertySheetIconValue icon = qVariantValue<PropertySheetIconValue>(value);
+ const PropertySheetIconValue icon = qvariant_cast<PropertySheetIconValue>(value);
const PropertySheetIconValue oldIcon = m_iconValues.value(property);
if (icon == oldIcon)
@@ -1600,12 +1600,12 @@ void DesignerPropertyManager::setValue(QtProperty *property, const QVariant &val
QtVariantProperty *subProperty = variantProperty(itSub.value());
bool hasPath = iconPaths.contains(pair);
subProperty->setModified(hasPath);
- subProperty->setValue(qVariantFromValue(iconPaths.value(pair)));
+ subProperty->setValue(QVariant::fromValue(iconPaths.value(pair)));
subProperty->setAttribute(QLatin1String(defaultResourceAttributeC),
defaultIcon.pixmap(16, 16, pair.first, pair.second));
}
- emit QtVariantPropertyManager::valueChanged(property, qVariantFromValue(icon));
+ emit QtVariantPropertyManager::valueChanged(property, QVariant::fromValue(icon));
emit propertyChanged(property);
QString toolTip;
@@ -1620,7 +1620,7 @@ void DesignerPropertyManager::setValue(QtProperty *property, const QVariant &val
if (value.userType() != designerPixmapTypeId())
return;
- const PropertySheetPixmapValue pixmap = qVariantValue<PropertySheetPixmapValue>(value);
+ const PropertySheetPixmapValue pixmap = qvariant_cast<PropertySheetPixmapValue>(value);
const PropertySheetPixmapValue oldPixmap = m_pixmapValues.value(property);
if (pixmap == oldPixmap)
@@ -1628,7 +1628,7 @@ void DesignerPropertyManager::setValue(QtProperty *property, const QVariant &val
m_pixmapValues[property] = pixmap;
- emit QtVariantPropertyManager::valueChanged(property, qVariantFromValue(pixmap));
+ emit QtVariantPropertyManager::valueChanged(property, QVariant::fromValue(pixmap));
emit propertyChanged(property);
property->setToolTip(pixmap.path());
@@ -1746,9 +1746,9 @@ void DesignerPropertyManager::setValue(QtProperty *property, const QVariant &val
if (QtVariantPropertyManager::valueType(property) == QVariant::String)
property->setToolTip(DesignerPropertyManager::value(property).toString());
else if (QtVariantPropertyManager::valueType(property) == designerStringTypeId())
- property->setToolTip(qVariantValue<PropertySheetStringValue>(DesignerPropertyManager::value(property)).value());
+ property->setToolTip(qvariant_cast<PropertySheetStringValue>(DesignerPropertyManager::value(property)).value());
else if (QtVariantPropertyManager::valueType(property) == designerKeySequenceTypeId())
- property->setToolTip(qVariantValue<PropertySheetKeySequenceValue>(DesignerPropertyManager::value(property)).value());
+ property->setToolTip(qvariant_cast<PropertySheetKeySequenceValue>(DesignerPropertyManager::value(property)).value());
else if (QtVariantPropertyManager::valueType(property) == QVariant::Bool)
property->setToolTip(QtVariantPropertyManager::valueText(property));
}
@@ -2017,7 +2017,7 @@ bool DesignerPropertyManager::resetIconSubProperty(QtProperty *property)
return false;
QtVariantProperty *pixmapProperty = variantProperty(property);
- pixmapProperty->setValue(qVariantFromValue(PropertySheetPixmapValue()));
+ pixmapProperty->setValue(QVariant::fromValue(PropertySheetPixmapValue()));
return true;
}
@@ -2131,7 +2131,7 @@ void DesignerEditorFactory::slotPropertyChanged(QtProperty *property)
if (!property->isModified())
defaultPixmap = qvariant_cast<QIcon>(manager->attributeValue(property, QLatin1String(defaultResourceAttributeC))).pixmap(16, 16);
else if (m_fwb)
- defaultPixmap = m_fwb->iconCache()->icon(qVariantValue<PropertySheetIconValue>(manager->value(property))).pixmap(16, 16);
+ defaultPixmap = m_fwb->iconCache()->icon(qvariant_cast<PropertySheetIconValue>(manager->value(property))).pixmap(16, 16);
QList<PixmapEditor *> editors = m_iconPropertyToEditors.value(property);
QListIterator<PixmapEditor *> it(editors);
while (it.hasNext()) {
@@ -2175,13 +2175,13 @@ void DesignerEditorFactory::slotValueChanged(QtProperty *property, const QVarian
break;
default:
if (type == DesignerPropertyManager::designerIconTypeId())
- applyToEditors(m_iconPropertyToEditors.value(property), &PixmapEditor::setPath, qVariantValue<PropertySheetIconValue>(value).pixmap(QIcon::Normal, QIcon::Off).path());
+ applyToEditors(m_iconPropertyToEditors.value(property), &PixmapEditor::setPath, qvariant_cast<PropertySheetIconValue>(value).pixmap(QIcon::Normal, QIcon::Off).path());
else if (type == DesignerPropertyManager::designerPixmapTypeId())
- applyToEditors(m_pixmapPropertyToEditors.value(property), &PixmapEditor::setPath, qVariantValue<PropertySheetPixmapValue>(value).path());
+ applyToEditors(m_pixmapPropertyToEditors.value(property), &PixmapEditor::setPath, qvariant_cast<PropertySheetPixmapValue>(value).path());
else if (type == DesignerPropertyManager::designerStringTypeId())
- applyToEditors(m_stringPropertyToEditors.value(property), &TextEditor::setText, qVariantValue<PropertySheetStringValue>(value).value());
+ applyToEditors(m_stringPropertyToEditors.value(property), &TextEditor::setText, qvariant_cast<PropertySheetStringValue>(value).value());
else if (type == DesignerPropertyManager::designerKeySequenceTypeId())
- applyToEditors(m_keySequencePropertyToEditors.value(property), &QtKeySequenceEdit::setKeySequence, qVariantValue<PropertySheetKeySequenceValue>(value).value());
+ applyToEditors(m_keySequencePropertyToEditors.value(property), &QtKeySequenceEdit::setKeySequence, qvariant_cast<PropertySheetKeySequenceValue>(value).value());
break;
}
}
@@ -2324,7 +2324,7 @@ QWidget *DesignerEditorFactory::createEditor(QtVariantPropertyManager *manager,
editor = ed;
} else if (type == DesignerPropertyManager::designerStringTypeId()) {
const TextPropertyValidationMode tvm = static_cast<TextPropertyValidationMode>(manager->attributeValue(property, QLatin1String(validationModesAttributeC)).toInt());
- TextEditor *ed = createTextEditor(parent, tvm, qVariantValue<PropertySheetStringValue>(manager->value(property)).value());
+ TextEditor *ed = createTextEditor(parent, tvm, qvariant_cast<PropertySheetStringValue>(manager->value(property)).value());
const QVariant richTextDefaultFont = manager->attributeValue(property, QLatin1String(fontAttributeC));
if (richTextDefaultFont.type() == QVariant::Font)
ed->setRichTextDefaultFont(qvariant_cast<QFont>(richTextDefaultFont));
@@ -2335,7 +2335,7 @@ QWidget *DesignerEditorFactory::createEditor(QtVariantPropertyManager *manager,
editor = ed;
} else if (type == DesignerPropertyManager::designerKeySequenceTypeId()) {
QtKeySequenceEdit *ed = new QtKeySequenceEdit(parent);
- ed->setKeySequence(qVariantValue<PropertySheetKeySequenceValue>(manager->value(property)).value());
+ ed->setKeySequence(qvariant_cast<PropertySheetKeySequenceValue>(manager->value(property)).value());
m_keySequencePropertyToEditors[property].append(ed);
m_editorToKeySequenceProperty[ed] = property;
connect(ed, SIGNAL(destroyed(QObject*)), this, SLOT(slotEditorDestroyed(QObject*)));
@@ -2456,12 +2456,12 @@ void DesignerEditorFactory::slotStringTextChanged(const QString &value)
QtVariantProperty *varProp = manager->variantProperty(prop);
QVariant val = varProp->value();
if (val.userType() == DesignerPropertyManager::designerStringTypeId()) {
- PropertySheetStringValue strVal = qVariantValue<PropertySheetStringValue>(val);
+ PropertySheetStringValue strVal = qvariant_cast<PropertySheetStringValue>(val);
strVal.setValue(value);
// Disable translation if no translation subproperties exist.
if (varProp->subProperties().empty())
strVal.setTranslatable(false);
- val = qVariantFromValue(strVal);
+ val = QVariant::fromValue(strVal);
} else {
val = QVariant(value);
}
@@ -2482,11 +2482,11 @@ void DesignerEditorFactory::slotKeySequenceChanged(const QKeySequence &value)
QtVariantProperty *varProp = manager->variantProperty(prop);
QVariant val = varProp->value();
if (val.userType() == DesignerPropertyManager::designerKeySequenceTypeId()) {
- PropertySheetKeySequenceValue keyVal = qVariantValue<PropertySheetKeySequenceValue>(val);
+ PropertySheetKeySequenceValue keyVal = qvariant_cast<PropertySheetKeySequenceValue>(val);
keyVal.setValue(value);
- val = qVariantFromValue(keyVal);
+ val = QVariant::fromValue(keyVal);
} else {
- val = qVariantFromValue(value);
+ val = QVariant::fromValue(value);
}
m_changingPropertyValue = true;
manager->variantProperty(prop)->setValue(val);
@@ -2497,24 +2497,24 @@ void DesignerEditorFactory::slotKeySequenceChanged(const QKeySequence &value)
void DesignerEditorFactory::slotPaletteChanged(const QPalette &value)
{
- updateManager(this, &m_changingPropertyValue, m_editorToPaletteProperty, qobject_cast<QWidget *>(sender()), qVariantFromValue(value));
+ updateManager(this, &m_changingPropertyValue, m_editorToPaletteProperty, qobject_cast<QWidget *>(sender()), QVariant::fromValue(value));
}
void DesignerEditorFactory::slotPixmapChanged(const QString &value)
{
updateManager(this, &m_changingPropertyValue, m_editorToPixmapProperty, qobject_cast<QWidget *>(sender()),
- qVariantFromValue(PropertySheetPixmapValue(value)));
+ QVariant::fromValue(PropertySheetPixmapValue(value)));
}
void DesignerEditorFactory::slotIconChanged(const QString &value)
{
updateManager(this, &m_changingPropertyValue, m_editorToIconProperty, qobject_cast<QWidget *>(sender()),
- qVariantFromValue(PropertySheetIconValue(PropertySheetPixmapValue(value))));
+ QVariant::fromValue(PropertySheetIconValue(PropertySheetPixmapValue(value))));
}
void DesignerEditorFactory::slotStringListChanged(const QStringList &value)
{
- updateManager(this, &m_changingPropertyValue, m_editorToStringListProperty, qobject_cast<QWidget *>(sender()), qVariantFromValue(value));
+ updateManager(this, &m_changingPropertyValue, m_editorToStringListProperty, qobject_cast<QWidget *>(sender()), QVariant::fromValue(value));
}
ResetDecorator::~ResetDecorator()
diff --git a/tools/designer/src/components/propertyeditor/fontpropertymanager.cpp b/tools/designer/src/components/propertyeditor/fontpropertymanager.cpp
index 9442b01..419834e 100644
--- a/tools/designer/src/components/propertyeditor/fontpropertymanager.cpp
+++ b/tools/designer/src/components/propertyeditor/fontpropertymanager.cpp
@@ -123,7 +123,7 @@ namespace qdesigner_internal {
// This will cause a recursion
QtVariantProperty *antialiasing = vm->addProperty(enumTypeId, QCoreApplication::translate("FontPropertyManager", "Antialiasing"));
- const QFont font = qVariantValue<QFont>(vm->variantProperty(property)->value());
+ const QFont font = qvariant_cast<QFont>(vm->variantProperty(property)->value());
antialiasing->setAttribute(QLatin1String("enumNames"), m_aliasingEnumNames);
antialiasing->setValue(antialiasingToIndex(font.styleStrategy()));
@@ -196,7 +196,7 @@ namespace qdesigner_internal {
mask &= ~flag;
font.resolve(mask);
- qVariantSetValue(v, font);
+ v.setValue(font);
fontProperty->setValue(v);
return true;
}
@@ -250,13 +250,13 @@ namespace qdesigner_internal {
QtVariantProperty *fontProperty = vm->variantProperty(antialiasingProperty);
const QFont::StyleStrategy newValue = indexToAntialiasing(value.toInt());
- QFont font = qVariantValue<QFont>(fontProperty->value());
+ QFont font = qvariant_cast<QFont>(fontProperty->value());
const QFont::StyleStrategy oldValue = font.styleStrategy();
if (newValue == oldValue)
return Unchanged;
font.setStyleStrategy(newValue);
- fontProperty->setValue(qVariantFromValue(font));
+ fontProperty->setValue(QVariant::fromValue(font));
return Changed;
}
@@ -268,7 +268,7 @@ namespace qdesigner_internal {
const PropertyList &subProperties = it.value();
- QFont font = qVariantValue<QFont>(value);
+ QFont font = qvariant_cast<QFont>(value);
const unsigned mask = font.resolve();
const int count = subProperties.size();
@@ -285,7 +285,7 @@ namespace qdesigner_internal {
if (QtProperty *antialiasingProperty = m_propertyToAntialiasing.value(property, 0)) {
QtVariantProperty *antialiasing = vm->variantProperty(antialiasingProperty);
if (antialiasing) {
- QFont font = qVariantValue<QFont>(value);
+ QFont font = qvariant_cast<QFont>(value);
antialiasing->setValue(antialiasingToIndex(font.styleStrategy()));
}
}
diff --git a/tools/designer/src/components/propertyeditor/paletteeditor.cpp b/tools/designer/src/components/propertyeditor/paletteeditor.cpp
index 067946b..5c4cbcc 100644
--- a/tools/designer/src/components/propertyeditor/paletteeditor.cpp
+++ b/tools/designer/src/components/propertyeditor/paletteeditor.cpp
@@ -294,7 +294,7 @@ bool PaletteModel::setData(const QModelIndex &index, const QVariant &value, int
return false;
if (index.column() != 0 && role == BrushRole) {
- const QBrush br = qVariantValue<QBrush>(value);
+ const QBrush br = qvariant_cast<QBrush>(value);
const QPalette::ColorRole r = static_cast<QPalette::ColorRole>(index.row());
const QPalette::ColorGroup g = columnToGroup(index.column());
m_palette.setBrush(g, r, br);
@@ -336,7 +336,7 @@ bool PaletteModel::setData(const QModelIndex &index, const QVariant &value, int
}
if (index.column() == 0 && role == Qt::EditRole) {
uint mask = m_palette.resolve();
- const bool isMask = qVariantValue<bool>(value);
+ const bool isMask = qvariant_cast<bool>(value);
const int r = index.row();
if (isMask)
mask |= (1 << r);
@@ -532,13 +532,13 @@ QWidget *ColorDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem
void ColorDelegate::setEditorData(QWidget *ed, const QModelIndex &index) const
{
if (index.column() == 0) {
- const bool mask = qVariantValue<bool>(index.model()->data(index, Qt::EditRole));
+ const bool mask = qvariant_cast<bool>(index.model()->data(index, Qt::EditRole));
RoleEditor *editor = static_cast<RoleEditor *>(ed);
editor->setEdited(mask);
- const QString colorName = qVariantValue<QString>(index.model()->data(index, Qt::DisplayRole));
+ const QString colorName = qvariant_cast<QString>(index.model()->data(index, Qt::DisplayRole));
editor->setLabel(colorName);
} else {
- const QBrush br = qVariantValue<QBrush>(index.model()->data(index, BrushRole));
+ const QBrush br = qvariant_cast<QBrush>(index.model()->data(index, BrushRole));
BrushEditor *editor = static_cast<BrushEditor *>(ed);
editor->setBrush(br);
}
@@ -571,11 +571,11 @@ void ColorDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opt,
const QModelIndex &index) const
{
QStyleOptionViewItem option = opt;
- const bool mask = qVariantValue<bool>(index.model()->data(index, Qt::EditRole));
+ const bool mask = qvariant_cast<bool>(index.model()->data(index, Qt::EditRole));
if (index.column() == 0 && mask) {
option.font.setBold(true);
}
- QBrush br = qVariantValue<QBrush>(index.model()->data(index, BrushRole));
+ QBrush br = qvariant_cast<QBrush>(index.model()->data(index, BrushRole));
if (br.style() == Qt::LinearGradientPattern ||
br.style() == Qt::RadialGradientPattern ||
br.style() == Qt::ConicalGradientPattern) {
diff --git a/tools/designer/src/components/propertyeditor/propertyeditor.cpp b/tools/designer/src/components/propertyeditor/propertyeditor.cpp
index a8ca8ad..7296636 100644
--- a/tools/designer/src/components/propertyeditor/propertyeditor.cpp
+++ b/tools/designer/src/components/propertyeditor/propertyeditor.cpp
@@ -872,12 +872,12 @@ void PropertyEditor::updateBrowserValue(QtVariantProperty *property, const QVari
int PropertyEditor::toBrowserType(const QVariant &value, const QString &propertyName) const
{
- if (qVariantCanConvert<PropertySheetFlagValue>(value)) {
+ if (value.canConvert<PropertySheetFlagValue>()) {
if (m_strings.m_alignmentProperties.contains(propertyName))
return DesignerPropertyManager::designerAlignmentTypeId();
return DesignerPropertyManager::designerFlagTypeId();
}
- if (qVariantCanConvert<PropertySheetEnumValue>(value))
+ if (value.canConvert<PropertySheetEnumValue>())
return DesignerPropertyManager::enumTypeId();
return value.userType();
@@ -1034,7 +1034,7 @@ void PropertyEditor::setObject(QObject *object)
}
m_updatingBrowser = true;
QVariant v;
- qVariantSetValue(v, flags);
+ v.setValue(flags);
property->setAttribute(m_strings.m_flagsAttribute, v);
m_updatingBrowser = false;
}
@@ -1223,7 +1223,7 @@ void PropertyEditor::slotValueChanged(QtProperty *property, const QVariant &valu
e.value = e.metaEnum.parseEnum(valName, &ok);
Q_ASSERT(ok);
QVariant v;
- qVariantSetValue(v, e);
+ v.setValue(e);
emitPropertyValueChanged(property->propertyName(), v, true);
return;
}
diff --git a/tools/designer/src/components/signalsloteditor/connectdialog.cpp b/tools/designer/src/components/signalsloteditor/connectdialog.cpp
index ff6be16..abd2e83 100644
--- a/tools/designer/src/components/signalsloteditor/connectdialog.cpp
+++ b/tools/designer/src/components/signalsloteditor/connectdialog.cpp
@@ -231,7 +231,7 @@ void ConnectDialog::populateSlotList(const QString &signal)
QFont font = QApplication::font();
font.setItalic(true);
- QVariant variantFont = qVariantFromValue(font);
+ QVariant variantFont = QVariant::fromValue(font);
QListWidgetItem *curr = 0;
QMap<QString, QString>::ConstIterator itMember = memberToClassName.constBegin();
@@ -271,7 +271,7 @@ void ConnectDialog::populateSignalList()
QFont font = QApplication::font();
font.setItalic(true);
- QVariant variantFont = qVariantFromValue(font);
+ QVariant variantFont = QVariant::fromValue(font);
QListWidgetItem *curr = 0;
QMap<QString, QString>::ConstIterator itMember = memberToClassName.constBegin();
diff --git a/tools/designer/src/components/signalsloteditor/signalslot_utils.cpp b/tools/designer/src/components/signalsloteditor/signalslot_utils.cpp
index 8674ac1..09c2233 100644
--- a/tools/designer/src/components/signalsloteditor/signalslot_utils.cpp
+++ b/tools/designer/src/components/signalsloteditor/signalslot_utils.cpp
@@ -245,7 +245,7 @@ namespace qdesigner_internal {
ClassesMemberFunctions reverseClassesMemberFunctions(const QString &obj_name, MemberType member_type,
const QString &peer, QDesignerFormWindowInterface *form)
{
- QObject *object = qFindChild<QObject*>(form, obj_name);
+ QObject *object = form->findChild<QObject*>(obj_name);
if (!object)
return ClassesMemberFunctions();
diff --git a/tools/designer/src/components/signalsloteditor/signalsloteditor.cpp b/tools/designer/src/components/signalsloteditor/signalsloteditor.cpp
index b801c5e..1d45ef5 100644
--- a/tools/designer/src/components/signalsloteditor/signalsloteditor.cpp
+++ b/tools/designer/src/components/signalsloteditor/signalsloteditor.cpp
@@ -372,7 +372,7 @@ QObject *SignalSlotEditor::objectByName(QWidget *topLevel, const QString &name)
if (topLevel->objectName() == name)
object = topLevel;
else
- object = qFindChild<QObject*>(topLevel, name);
+ object = topLevel->findChild<QObject*>(name);
const QDesignerMetaDataBaseInterface *mdb = formWindow()->core()->metaDataBase();
if (mdb->item(object))
return object;
diff --git a/tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp b/tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp
index 5547761..6cfc286 100644
--- a/tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp
+++ b/tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp
@@ -117,7 +117,7 @@ static QStringList objectNameList(QDesignerFormWindowInterface *form)
const QDesignerMetaDataBaseInterface *mdb = form->core()->metaDataBase();
// Add managed actions and actions with managed menus
- const ActionList actions = qFindChildren<QAction*>(mainContainer);
+ const ActionList actions = mainContainer->findChildren<QAction*>();
if (!actions.empty()) {
const ActionList::const_iterator cend = actions.constEnd();
for (ActionList::const_iterator it = actions.constBegin(); it != cend; ++it) {
@@ -135,7 +135,7 @@ static QStringList objectNameList(QDesignerFormWindowInterface *form)
}
// Add managed buttons groups
- const ButtonGroupList buttonGroups = qFindChildren<QButtonGroup *>(mainContainer);
+ const ButtonGroupList buttonGroups = mainContainer->findChildren<QButtonGroup *>();
if (!buttonGroups.empty()) {
const ButtonGroupList::const_iterator cend = buttonGroups.constEnd();
for (ButtonGroupList::const_iterator it = buttonGroups.constBegin(); it != cend; ++it)
@@ -473,7 +473,7 @@ void InlineEditorModel::addTextList(const QMap<QString, bool> &text_list)
insertRows(cnt, text_list.size());
QFont font = QApplication::font();
font.setItalic(true);
- QVariant fontVariant = qVariantFromValue(font);
+ QVariant fontVariant = QVariant::fromValue(font);
QMap<QString, bool>::ConstIterator it = text_list.constBegin();
const QMap<QString, bool>::ConstIterator itEnd = text_list.constEnd();
while (it != itEnd) {
@@ -658,7 +658,7 @@ QWidget *ConnectionDelegate::createEditor(QWidget *parent,
const qdesigner_internal::ClassesMemberFunctions class_list = qdesigner_internal::reverseClassesMemberFunctions(obj_name, type, peer, m_form);
- QObject *object = qFindChild<QObject*>(m_form, obj_name);
+ QObject *object = m_form->findChild<QObject*>(obj_name);
inline_editor->addText(type == qdesigner_internal::SignalMember ? tr("<signal>") : tr("<slot>"));
foreach (const qdesigner_internal::ClassMemberFunctions &class_info, class_list) {
@@ -767,7 +767,7 @@ void SignalSlotEditorWindow::setActiveFormWindow(QDesignerFormWindowInterface *f
}
}
- m_editor = qFindChild<SignalSlotEditor*>(form);
+ m_editor = form->findChild<SignalSlotEditor*>();
m_model->setEditor(m_editor);
if (!m_editor.isNull()) {
ConnectionDelegate *delegate
diff --git a/tools/designer/src/components/tabordereditor/tabordereditor.cpp b/tools/designer/src/components/tabordereditor/tabordereditor.cpp
index 37acabc..f877654 100644
--- a/tools/designer/src/components/tabordereditor/tabordereditor.cpp
+++ b/tools/designer/src/components/tabordereditor/tabordereditor.cpp
@@ -239,7 +239,7 @@ void TabOrderEditor::initTabOrder()
childQueue.append(formWindow()->mainContainer());
while (!childQueue.isEmpty()) {
QWidget *child = childQueue.takeFirst();
- childQueue += qVariantValue<QWidgetList>(child->property("_q_widgetOrder"));
+ childQueue += qvariant_cast<QWidgetList>(child->property("_q_widgetOrder"));
if (skipWidget(child))
continue;
diff --git a/tools/designer/src/components/taskmenu/button_taskmenu.cpp b/tools/designer/src/components/taskmenu/button_taskmenu.cpp
index 6b91c60..e178ebc 100644
--- a/tools/designer/src/components/taskmenu/button_taskmenu.cpp
+++ b/tools/designer/src/components/taskmenu/button_taskmenu.cpp
@@ -508,7 +508,7 @@ bool ButtonTaskMenu::refreshAssignMenu(const QDesignerFormWindowInterface *fw, i
QButtonGroup *bg = *it;
if (*it != currentGroup) {
QAction *a = new QAction(bg->objectName(), m_assignGroupSubMenu);
- a->setData(qVariantFromValue(bg));
+ a->setData(QVariant::fromValue(bg));
m_assignActionGroup->addAction(a);
m_assignGroupSubMenu->addAction(a);
}
diff --git a/tools/designer/src/components/taskmenu/inplace_editor.cpp b/tools/designer/src/components/taskmenu/inplace_editor.cpp
index 5732500..810df23 100644
--- a/tools/designer/src/components/taskmenu/inplace_editor.cpp
+++ b/tools/designer/src/components/taskmenu/inplace_editor.cpp
@@ -106,7 +106,7 @@ void TaskMenuInlineEditor::editText()
const int index = sheet->indexOf(m_property);
if (index == -1)
return;
- m_value = qVariantValue<PropertySheetStringValue>(sheet->property(index));
+ m_value = qvariant_cast<PropertySheetStringValue>(sheet->property(index));
const QString oldValue = m_value.value();
m_editor = new InPlaceEditor(m_widget, m_vm, m_formWindow, oldValue, editRectangle());
@@ -119,9 +119,9 @@ void TaskMenuInlineEditor::updateText(const QString &text)
// do not use the cursor selection
m_value.setValue(text);
if (m_managed) {
- m_formWindow->cursor()->setProperty(m_property, qVariantFromValue(m_value));
+ m_formWindow->cursor()->setProperty(m_property, QVariant::fromValue(m_value));
} else {
- m_formWindow->cursor()->setWidgetProperty(m_widget, m_property, qVariantFromValue(m_value));
+ m_formWindow->cursor()->setWidgetProperty(m_widget, m_property, QVariant::fromValue(m_value));
}
}
diff --git a/tools/designer/src/components/taskmenu/itemlisteditor.cpp b/tools/designer/src/components/taskmenu/itemlisteditor.cpp
index 94959fd..29fe0c9 100644
--- a/tools/designer/src/components/taskmenu/itemlisteditor.cpp
+++ b/tools/designer/src/components/taskmenu/itemlisteditor.cpp
@@ -191,8 +191,8 @@ void AbstractItemEditor::propertyChanged(QtProperty *property)
return;
if ((role == ItemFlagsShadowRole && prop->value().toInt() == (int)QListWidgetItem().flags())
- || (role == Qt::DecorationPropertyRole && !qVariantValue<PropertySheetIconValue>(prop->value()).mask())
- || (role == Qt::FontRole && !qVariantValue<QFont>(prop->value()).resolve())) {
+ || (role == Qt::DecorationPropertyRole && !qvariant_cast<PropertySheetIconValue>(prop->value()).mask())
+ || (role == Qt::FontRole && !qvariant_cast<QFont>(prop->value()).resolve())) {
prop->setModified(false);
setItemData(role, QVariant());
} else {
@@ -202,19 +202,19 @@ void AbstractItemEditor::propertyChanged(QtProperty *property)
switch (role) {
case Qt::DecorationPropertyRole:
- setItemData(Qt::DecorationRole, qVariantFromValue(iconCache()->icon(qVariantValue<PropertySheetIconValue>(prop->value()))));
+ setItemData(Qt::DecorationRole, QVariant::fromValue(iconCache()->icon(qvariant_cast<PropertySheetIconValue>(prop->value()))));
break;
case Qt::DisplayPropertyRole:
- setItemData(Qt::EditRole, qVariantFromValue(qVariantValue<PropertySheetStringValue>(prop->value()).value()));
+ setItemData(Qt::EditRole, QVariant::fromValue(qvariant_cast<PropertySheetStringValue>(prop->value()).value()));
break;
case Qt::ToolTipPropertyRole:
- setItemData(Qt::ToolTipRole, qVariantFromValue(qVariantValue<PropertySheetStringValue>(prop->value()).value()));
+ setItemData(Qt::ToolTipRole, QVariant::fromValue(qvariant_cast<PropertySheetStringValue>(prop->value()).value()));
break;
case Qt::StatusTipPropertyRole:
- setItemData(Qt::StatusTipRole, qVariantFromValue(qVariantValue<PropertySheetStringValue>(prop->value()).value()));
+ setItemData(Qt::StatusTipRole, QVariant::fromValue(qvariant_cast<PropertySheetStringValue>(prop->value()).value()));
break;
case Qt::WhatsThisPropertyRole:
- setItemData(Qt::WhatsThisRole, qVariantFromValue(qVariantValue<PropertySheetStringValue>(prop->value()).value()));
+ setItemData(Qt::WhatsThisRole, QVariant::fromValue(qvariant_cast<PropertySheetStringValue>(prop->value()).value()));
break;
default:
break;
@@ -236,22 +236,22 @@ void AbstractItemEditor::resetProperty(QtProperty *property)
QtVariantProperty *prop = m_propertyManager->variantProperty(property);
int role = m_propertyToRole.value(prop);
if (role == ItemFlagsShadowRole)
- prop->setValue(qVariantFromValue((int)QListWidgetItem().flags()));
+ prop->setValue(QVariant::fromValue((int)QListWidgetItem().flags()));
else
prop->setValue(QVariant(prop->valueType(), (void *)0));
prop->setModified(false);
setItemData(role, QVariant());
if (role == Qt::DecorationPropertyRole)
- setItemData(Qt::DecorationRole, qVariantFromValue(QIcon()));
+ setItemData(Qt::DecorationRole, QVariant::fromValue(QIcon()));
if (role == Qt::DisplayPropertyRole)
- setItemData(Qt::EditRole, qVariantFromValue(QString()));
+ setItemData(Qt::EditRole, QVariant::fromValue(QString()));
if (role == Qt::ToolTipPropertyRole)
- setItemData(Qt::ToolTipRole, qVariantFromValue(QString()));
+ setItemData(Qt::ToolTipRole, QVariant::fromValue(QString()));
if (role == Qt::StatusTipPropertyRole)
- setItemData(Qt::StatusTipRole, qVariantFromValue(QString()));
+ setItemData(Qt::StatusTipRole, QVariant::fromValue(QString()));
if (role == Qt::WhatsThisPropertyRole)
- setItemData(Qt::WhatsThisRole, qVariantFromValue(QString()));
+ setItemData(Qt::WhatsThisRole, QVariant::fromValue(QString()));
}
void AbstractItemEditor::cacheReloaded()
@@ -268,7 +268,7 @@ void AbstractItemEditor::updateBrowser()
QVariant val = getItemData(role);
if (!val.isValid()) {
if (role == ItemFlagsShadowRole)
- val = qVariantFromValue((int)QListWidgetItem().flags());
+ val = QVariant::fromValue((int)QListWidgetItem().flags());
else
val = QVariant((int)prop->value().userType(), (void *)0);
prop->setModified(false);
@@ -340,7 +340,7 @@ void ItemListEditor::on_newListItemButton_clicked()
int row = ui.listWidget->currentRow() + 1;
QListWidgetItem *item = new QListWidgetItem(m_newItemText);
- item->setData(Qt::DisplayPropertyRole, qVariantFromValue(PropertySheetStringValue(m_newItemText)));
+ item->setData(Qt::DisplayPropertyRole, QVariant::fromValue(PropertySheetStringValue(m_newItemText)));
item->setFlags(item->flags() | Qt::ItemIsEditable);
if (row < ui.listWidget->count())
ui.listWidget->insertItem(row, item);
@@ -403,15 +403,15 @@ void ItemListEditor::on_listWidget_itemChanged(QListWidgetItem *item)
if (m_updatingBrowser)
return;
- PropertySheetStringValue val = qVariantValue<PropertySheetStringValue>(item->data(Qt::DisplayPropertyRole));
+ PropertySheetStringValue val = qvariant_cast<PropertySheetStringValue>(item->data(Qt::DisplayPropertyRole));
val.setValue(item->text());
BoolBlocker block(m_updatingBrowser);
- item->setData(Qt::DisplayPropertyRole, qVariantFromValue(val));
+ item->setData(Qt::DisplayPropertyRole, QVariant::fromValue(val));
// The checkState could change, too, but if this signal is connected,
// checkState is not in the list anyway, as we are editing a header item.
emit itemChanged(ui.listWidget->currentRow(), Qt::DisplayPropertyRole,
- qVariantFromValue(val));
+ QVariant::fromValue(val));
updateBrowser();
}
@@ -438,8 +438,8 @@ void ItemListEditor::setItemData(int role, const QVariant &v)
QVariant newValue = v;
if (role == Qt::FontRole && newValue.type() == QVariant::Font) {
QFont oldFont = ui.listWidget->font();
- QFont newFont = qVariantValue<QFont>(newValue).resolve(oldFont);
- newValue = qVariantFromValue(newFont);
+ QFont newFont = qvariant_cast<QFont>(newValue).resolve(oldFont);
+ newValue = QVariant::fromValue(newFont);
item->setData(role, QVariant()); // force the right font with the current resolve mask is set (item view bug)
}
item->setData(role, newValue);
diff --git a/tools/designer/src/components/taskmenu/tablewidgeteditor.cpp b/tools/designer/src/components/taskmenu/tablewidgeteditor.cpp
index 7dd5442..cd8b188 100644
--- a/tools/designer/src/components/taskmenu/tablewidgeteditor.cpp
+++ b/tools/designer/src/components/taskmenu/tablewidgeteditor.cpp
@@ -152,8 +152,8 @@ void TableWidgetEditor::setItemData(int role, const QVariant &v)
QVariant newValue = v;
if (role == Qt::FontRole && newValue.type() == QVariant::Font) {
QFont oldFont = ui.tableWidget->font();
- QFont newFont = qVariantValue<QFont>(newValue).resolve(oldFont);
- newValue = qVariantFromValue(newFont);
+ QFont newFont = qvariant_cast<QFont>(newValue).resolve(oldFont);
+ newValue = QVariant::fromValue(newFont);
item->setData(role, QVariant()); // force the right font with the current resolve mask is set (item view bug)
}
item->setData(role, newValue);
@@ -179,10 +179,10 @@ void TableWidgetEditor::on_tableWidget_itemChanged(QTableWidgetItem *item)
if (m_updatingBrowser)
return;
- PropertySheetStringValue val = qVariantValue<PropertySheetStringValue>(item->data(Qt::DisplayPropertyRole));
+ PropertySheetStringValue val = qvariant_cast<PropertySheetStringValue>(item->data(Qt::DisplayPropertyRole));
val.setValue(item->text());
BoolBlocker block(m_updatingBrowser);
- item->setData(Qt::DisplayPropertyRole, qVariantFromValue(val));
+ item->setData(Qt::DisplayPropertyRole, QVariant::fromValue(val));
updateBrowser();
}
@@ -317,7 +317,7 @@ void TableWidgetEditor::on_columnEditor_itemInserted(int idx)
ui.tableWidget->setColumnCount(columnCount + 1);
QTableWidgetItem *newItem = new QTableWidgetItem(m_columnEditor->newItemText());
- newItem->setData(Qt::DisplayPropertyRole, qVariantFromValue(PropertySheetStringValue(m_columnEditor->newItemText())));
+ newItem->setData(Qt::DisplayPropertyRole, QVariant::fromValue(PropertySheetStringValue(m_columnEditor->newItemText())));
ui.tableWidget->setHorizontalHeaderItem(columnCount, newItem);
moveColumnsLeft(idx, columnCount);
@@ -359,7 +359,7 @@ void TableWidgetEditor::on_rowEditor_itemInserted(int idx)
ui.tableWidget->setRowCount(rowCount + 1);
QTableWidgetItem *newItem = new QTableWidgetItem(m_rowEditor->newItemText());
- newItem->setData(Qt::DisplayPropertyRole, qVariantFromValue(PropertySheetStringValue(m_rowEditor->newItemText())));
+ newItem->setData(Qt::DisplayPropertyRole, QVariant::fromValue(PropertySheetStringValue(m_rowEditor->newItemText())));
ui.tableWidget->setVerticalHeaderItem(rowCount, newItem);
moveRowsDown(idx, rowCount);
diff --git a/tools/designer/src/components/taskmenu/treewidgeteditor.cpp b/tools/designer/src/components/taskmenu/treewidgeteditor.cpp
index c4063d1..8fab2ad 100644
--- a/tools/designer/src/components/taskmenu/treewidgeteditor.cpp
+++ b/tools/designer/src/components/taskmenu/treewidgeteditor.cpp
@@ -171,8 +171,8 @@ void TreeWidgetEditor::setItemData(int role, const QVariant &v)
BoolBlocker block(m_updatingBrowser);
if (role == Qt::FontRole && newValue.type() == QVariant::Font) {
QFont oldFont = ui.treeWidget->font();
- QFont newFont = qVariantValue<QFont>(newValue).resolve(oldFont);
- newValue = qVariantFromValue(newFont);
+ QFont newFont = qvariant_cast<QFont>(newValue).resolve(oldFont);
+ newValue = QVariant::fromValue(newFont);
ui.treeWidget->currentItem()->setData(col, role, QVariant()); // force the right font with the current resolve mask is set (item view bug)
}
ui.treeWidget->currentItem()->setData(col, role, newValue);
@@ -198,7 +198,7 @@ void TreeWidgetEditor::on_newItemButton_clicked()
newItem = new QTreeWidgetItem(ui.treeWidget);
const QString newItemText = tr("New Item");
newItem->setText(0, newItemText);
- newItem->setData(0, Qt::DisplayPropertyRole, qVariantFromValue(PropertySheetStringValue(newItemText)));
+ newItem->setData(0, Qt::DisplayPropertyRole, QVariant::fromValue(PropertySheetStringValue(newItemText)));
newItem->setFlags(newItem->flags() | Qt::ItemIsEditable);
ui.treeWidget->blockSignals(false);
@@ -217,7 +217,7 @@ void TreeWidgetEditor::on_newSubItemButton_clicked()
QTreeWidgetItem *newItem = new QTreeWidgetItem(curItem);
const QString newItemText = tr("New Subitem");
newItem->setText(0, newItemText);
- newItem->setData(0, Qt::DisplayPropertyRole, qVariantFromValue(PropertySheetStringValue(newItemText)));
+ newItem->setData(0, Qt::DisplayPropertyRole, QVariant::fromValue(PropertySheetStringValue(newItemText)));
newItem->setFlags(newItem->flags() | Qt::ItemIsEditable);
ui.treeWidget->blockSignals(false);
@@ -408,10 +408,10 @@ void TreeWidgetEditor::on_treeWidget_itemChanged(QTreeWidgetItem *item, int colu
if (m_updatingBrowser)
return;
- PropertySheetStringValue val = qVariantValue<PropertySheetStringValue>(item->data(column, Qt::DisplayPropertyRole));
+ PropertySheetStringValue val = qvariant_cast<PropertySheetStringValue>(item->data(column, Qt::DisplayPropertyRole));
val.setValue(item->text(column));
BoolBlocker block(m_updatingBrowser);
- item->setData(column, Qt::DisplayPropertyRole, qVariantFromValue(val));
+ item->setData(column, Qt::DisplayPropertyRole, QVariant::fromValue(val));
updateBrowser();
}
@@ -425,7 +425,7 @@ void TreeWidgetEditor::on_columnEditor_indexChanged(int idx)
void TreeWidgetEditor::on_columnEditor_itemChanged(int idx, int role, const QVariant &v)
{
if (role == Qt::DisplayPropertyRole)
- ui.treeWidget->headerItem()->setData(idx, Qt::EditRole, qVariantValue<PropertySheetStringValue>(v).value());
+ ui.treeWidget->headerItem()->setData(idx, Qt::EditRole, qvariant_cast<PropertySheetStringValue>(v).value());
ui.treeWidget->headerItem()->setData(idx, role, v);
}
diff --git a/tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp b/tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp
index 25798d3..ac32795 100644
--- a/tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp
+++ b/tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp
@@ -185,7 +185,7 @@ static QWidget *decorationFromDomWidget(DomUI *dom_ui, QDesignerFormEditorInterf
fakeTopLevel->setParent(0, Qt::ToolTip); // Container
// Actual widget
const DomWidget *domW = dom_ui->elementWidget()->elementWidget().front();
- QWidget *w = qFindChildren<QWidget*>(fakeTopLevel).front();
+ QWidget *w = fakeTopLevel->findChildren<QWidget*>().front();
Q_ASSERT(w);
// hack begin;
// We set _q_dockDrag dynamic property which will be detected in drag enter event of form window.
diff --git a/tools/designer/src/designer/assistantclient.cpp b/tools/designer/src/designer/assistantclient.cpp
index e47817f..bddaf63 100644
--- a/tools/designer/src/designer/assistantclient.cpp
+++ b/tools/designer/src/designer/assistantclient.cpp
@@ -101,7 +101,7 @@ bool AssistantClient::sendCommand(const QString &cmd, QString *errorMessage)
return false;
}
QTextStream str(m_process);
- str << cmd << QLatin1Char('\0') << endl;
+ str << cmd << QLatin1Char('\n') << endl;
return true;
}
diff --git a/tools/designer/src/designer/qdesigner_settings.cpp b/tools/designer/src/designer/qdesigner_settings.cpp
index cc6cec5..9404e50 100644
--- a/tools/designer/src/designer/qdesigner_settings.cpp
+++ b/tools/designer/src/designer/qdesigner_settings.cpp
@@ -241,7 +241,7 @@ ToolWindowFontSettings QDesignerSettings::toolWindowFont() const
fontSettings.m_writingSystem =
static_cast<QFontDatabase::WritingSystem>(value(QLatin1String("UI/writingSystem"),
QFontDatabase::Any).toInt());
- fontSettings.m_font = qVariantValue<QFont>(value(QLatin1String("UI/font")));
+ fontSettings.m_font = qvariant_cast<QFont>(value(QLatin1String("UI/font")));
fontSettings.m_useFont =
settings()->value(QLatin1String("UI/useFont"), QVariant(false)).toBool();
return fontSettings;
diff --git a/tools/designer/src/lib/shared/actioneditor.cpp b/tools/designer/src/lib/shared/actioneditor.cpp
index 26ac8a8..d3716ca 100644
--- a/tools/designer/src/lib/shared/actioneditor.cpp
+++ b/tools/designer/src/lib/shared/actioneditor.cpp
@@ -288,7 +288,7 @@ void ActionEditor::setFormWindow(QDesignerFormWindowInterface *formWindow)
return;
if (m_formWindow != 0) {
- const ActionList actionList = qFindChildren<QAction*>(m_formWindow->mainContainer());
+ const ActionList actionList = m_formWindow->mainContainer()->findChildren<QAction*>();
foreach (QAction *action, actionList)
disconnect(action, SIGNAL(changed()), this, SLOT(slotActionChanged()));
}
@@ -311,7 +311,7 @@ void ActionEditor::setFormWindow(QDesignerFormWindowInterface *formWindow)
m_actionNew->setEnabled(true);
m_filterWidget->setEnabled(true);
- const ActionList actionList = qFindChildren<QAction*>(formWindow->mainContainer());
+ const ActionList actionList = formWindow->mainContainer()->findChildren<QAction*>();
foreach (QAction *action, actionList)
if (!action->isSeparator() && core()->metaDataBase()->item(action) != 0) {
// Show unless it has a menu. However, listen for change on menu actions also as it might be removed
@@ -459,9 +459,9 @@ void ActionEditor::slotNewAction()
setInitialProperty(sheet, QLatin1String(checkablePropertyC), QVariant(true));
if (!actionData.keysequence.value().isEmpty())
- setInitialProperty(sheet, QLatin1String(shortcutPropertyC), qVariantFromValue(actionData.keysequence));
+ setInitialProperty(sheet, QLatin1String(shortcutPropertyC), QVariant::fromValue(actionData.keysequence));
- sheet->setProperty(sheet->indexOf(QLatin1String(iconPropertyC)), qVariantFromValue(actionData.icon));
+ sheet->setProperty(sheet->indexOf(QLatin1String(iconPropertyC)), QVariant::fromValue(actionData.icon));
AddActionCommand *cmd = new AddActionCommand(formWindow());
cmd->init(action);
@@ -486,7 +486,7 @@ static QDesignerFormWindowCommand *setIconPropertyCommand(const PropertySheetIco
return cmd;
}
SetPropertyCommand *cmd = new SetPropertyCommand(fw);
- cmd->init(action, iconProperty, qVariantFromValue(newIcon));
+ cmd->init(action, iconProperty, QVariant::fromValue(newIcon));
return cmd;
}
@@ -502,7 +502,7 @@ static QDesignerFormWindowCommand *setKeySequencePropertyCommand(const PropertyS
return cmd;
}
SetPropertyCommand *cmd = new SetPropertyCommand(fw);
- cmd->init(action, shortcutProperty, qVariantFromValue(ks));
+ cmd->init(action, shortcutProperty, QVariant::fromValue(ks));
return cmd;
}
@@ -528,7 +528,7 @@ static inline QString textPropertyValue(const QDesignerPropertySheetExtension *s
{
const int index = sheet->indexOf(name);
Q_ASSERT(index != -1);
- const PropertySheetStringValue ps = qVariantValue<PropertySheetStringValue>(sheet->property(index));
+ const PropertySheetStringValue ps = qvariant_cast<PropertySheetStringValue>(sheet->property(index));
return ps.value();
}
@@ -545,7 +545,7 @@ void ActionEditor::editAction(QAction *action)
oldActionData.name = action->objectName();
oldActionData.text = action->text();
oldActionData.toolTip = textPropertyValue(sheet, QLatin1String(toolTipPropertyC));
- oldActionData.icon = qVariantValue<PropertySheetIconValue>(sheet->property(sheet->indexOf(QLatin1String(iconPropertyC))));
+ oldActionData.icon = qvariant_cast<PropertySheetIconValue>(sheet->property(sheet->indexOf(QLatin1String(iconPropertyC))));
oldActionData.keysequence = ActionModel::actionShortCut(sheet);
oldActionData.checkable = action->isCheckable();
dlg.setActionData(oldActionData);
@@ -677,7 +677,7 @@ void ActionEditor::resourceImageDropped(const QString &path, QAction *action)
QDesignerPropertySheetExtension *sheet = qt_extension<QDesignerPropertySheetExtension*>(core()->extensionManager(), action);
const PropertySheetIconValue oldIcon =
- qVariantValue<PropertySheetIconValue>(sheet->property(sheet->indexOf(QLatin1String(iconPropertyC))));
+ qvariant_cast<PropertySheetIconValue>(sheet->property(sheet->indexOf(QLatin1String(iconPropertyC))));
PropertySheetIconValue newIcon;
newIcon.setPixmap(QIcon::Normal, QIcon::Off, PropertySheetPixmapValue(path));
if (newIcon.paths().isEmpty() || newIcon.paths() == oldIcon.paths())
diff --git a/tools/designer/src/lib/shared/actionrepository.cpp b/tools/designer/src/lib/shared/actionrepository.cpp
index 1076ff4..8df6f83 100644
--- a/tools/designer/src/lib/shared/actionrepository.cpp
+++ b/tools/designer/src/lib/shared/actionrepository.cpp
@@ -136,7 +136,7 @@ QModelIndex ActionModel::addAction(QAction *action)
const Qt::ItemFlags flags = Qt::ItemIsSelectable|Qt::ItemIsDropEnabled|Qt::ItemIsDragEnabled|Qt::ItemIsEnabled;
QVariant itemData;
- qVariantSetValue(itemData, action);
+ itemData.setValue(action);
for (int i = 0; i < NumColumns; i++) {
QStandardItem *item = new QStandardItem;
diff --git a/tools/designer/src/lib/shared/connectionedit.cpp b/tools/designer/src/lib/shared/connectionedit.cpp
index 0bebe47..fb6cf60 100644
--- a/tools/designer/src/lib/shared/connectionedit.cpp
+++ b/tools/designer/src/lib/shared/connectionedit.cpp
@@ -1395,7 +1395,7 @@ void ConnectionEdit::widgetRemoved(QWidget *widget)
if (m_con_list.empty())
return;
- QWidgetList child_list = qFindChildren<QWidget*>(widget);
+ QWidgetList child_list = widget->findChildren<QWidget*>();
child_list.prepend(widget);
const ConnectionSet remove_set = findConnectionsOf(m_con_list, child_list.constBegin(), child_list.constEnd());
@@ -1545,7 +1545,7 @@ void ConnectionEdit::setSource(Connection *con, const QString &obj_name)
{
QObject *object = 0;
if (!obj_name.isEmpty()) {
- object = qFindChild<QObject*>(m_bg_widget, obj_name);
+ object = m_bg_widget->findChild<QObject*>(obj_name);
if (object == 0 && m_bg_widget->objectName() == obj_name)
object = m_bg_widget;
@@ -1559,7 +1559,7 @@ void ConnectionEdit::setTarget(Connection *con, const QString &obj_name)
{
QObject *object = 0;
if (!obj_name.isEmpty()) {
- object = qFindChild<QObject*>(m_bg_widget, obj_name);
+ object = m_bg_widget->findChild<QObject*>(obj_name);
if (object == 0 && m_bg_widget->objectName() == obj_name)
object = m_bg_widget;
diff --git a/tools/designer/src/lib/shared/formlayoutmenu.cpp b/tools/designer/src/lib/shared/formlayoutmenu.cpp
index 8d9f9a6..ff909a7 100644
--- a/tools/designer/src/lib/shared/formlayoutmenu.cpp
+++ b/tools/designer/src/lib/shared/formlayoutmenu.cpp
@@ -432,16 +432,16 @@ static QPair<QWidget *,QWidget *>
const QString objectNameProperty = QLatin1String("objectName");
QDesignerPropertySheetExtension *labelSheet = qt_extension<QDesignerPropertySheetExtension*>(core->extensionManager(), rc.first);
int nameIndex = labelSheet->indexOf(objectNameProperty);
- labelSheet->setProperty(nameIndex, qVariantFromValue(PropertySheetStringValue(row.labelName)));
+ labelSheet->setProperty(nameIndex, QVariant::fromValue(PropertySheetStringValue(row.labelName)));
labelSheet->setChanged(nameIndex, true);
formWindow->ensureUniqueObjectName(rc.first);
const int textIndex = labelSheet->indexOf(QLatin1String("text"));
- labelSheet->setProperty(textIndex, qVariantFromValue(PropertySheetStringValue(row.labelText)));
+ labelSheet->setProperty(textIndex, QVariant::fromValue(PropertySheetStringValue(row.labelText)));
labelSheet->setChanged(textIndex, true);
// Set up properties of the control
QDesignerPropertySheetExtension *controlSheet = qt_extension<QDesignerPropertySheetExtension*>(core->extensionManager(), rc.second);
nameIndex = controlSheet->indexOf(objectNameProperty);
- controlSheet->setProperty(nameIndex, qVariantFromValue(PropertySheetStringValue(row.fieldName)));
+ controlSheet->setProperty(nameIndex, QVariant::fromValue(PropertySheetStringValue(row.fieldName)));
controlSheet->setChanged(nameIndex, true);
formWindow->ensureUniqueObjectName(rc.second);
return rc;
diff --git a/tools/designer/src/lib/shared/formwindowbase.cpp b/tools/designer/src/lib/shared/formwindowbase.cpp
index 5292f5f..7e65d6b 100644
--- a/tools/designer/src/lib/shared/formwindowbase.cpp
+++ b/tools/designer/src/lib/shared/formwindowbase.cpp
@@ -184,11 +184,11 @@ void FormWindowBase::reloadProperties()
const int index = itIndex.next().key();
const QVariant newValue = sheet->property(index);
if (qobject_cast<QLabel *>(sheet->object()) && sheet->propertyName(index) == QLatin1String("text")) {
- const PropertySheetStringValue newString = qVariantValue<PropertySheetStringValue>(newValue);
+ const PropertySheetStringValue newString = qvariant_cast<PropertySheetStringValue>(newValue);
// optimize a bit, reset only if the text value might contain a reference to qt resources
// (however reloading of icons other than taken from resources might not work here)
if (newString.value().contains(QLatin1String(":/"))) {
- const QVariant resetValue = qVariantFromValue(PropertySheetStringValue());
+ const QVariant resetValue = QVariant::fromValue(PropertySheetStringValue());
sheet->setProperty(index, resetValue);
}
}
diff --git a/tools/designer/src/lib/shared/grid.cpp b/tools/designer/src/lib/shared/grid.cpp
index 42296e1..67b8d5c 100644
--- a/tools/designer/src/lib/shared/grid.cpp
+++ b/tools/designer/src/lib/shared/grid.cpp
@@ -71,7 +71,7 @@ template <class T>
const QVariantMap::const_iterator it = v.constFind(key);
const bool found = it != v.constEnd();
if (found)
- value = qVariantValue<T>(it.value());
+ value = qvariant_cast<T>(it.value());
return found;
}
diff --git a/tools/designer/src/lib/shared/layoutinfo.cpp b/tools/designer/src/lib/shared/layoutinfo.cpp
index ad2dda4..309aa37 100644
--- a/tools/designer/src/lib/shared/layoutinfo.cpp
+++ b/tools/designer/src/lib/shared/layoutinfo.cpp
@@ -190,7 +190,7 @@ LayoutInfo::Type LayoutInfo::laidoutWidgetType(const QDesignerFormEditorInterfac
}
// 3) Some child layout (see below comment about Q3GroupBox)
- const QList<QLayout*> childLayouts = qFindChildren<QLayout*>(parentLayout);
+ const QList<QLayout*> childLayouts = parentLayout->findChildren<QLayout*>();
if (childLayouts.empty())
return NoLayout;
const QList<QLayout*>::const_iterator lcend = childLayouts.constEnd();
@@ -244,7 +244,7 @@ QLayout *LayoutInfo::managedLayout(const QDesignerFormEditorInterface *core, QLa
* widget->layout() returns an internal VBoxLayout. */
const QDesignerMetaDataBaseItemInterface *item = metaDataBase->item(layout);
if (item == 0) {
- layout = qFindChild<QLayout*>(layout);
+ layout = layout->findChild<QLayout*>();
item = metaDataBase->item(layout);
}
if (!item)
diff --git a/tools/designer/src/lib/shared/morphmenu.cpp b/tools/designer/src/lib/shared/morphmenu.cpp
index de85d37..80eac0c 100644
--- a/tools/designer/src/lib/shared/morphmenu.cpp
+++ b/tools/designer/src/lib/shared/morphmenu.cpp
@@ -240,7 +240,7 @@ static QString suggestObjectName(const QString &oldClassName, const QString &new
QLabel *buddyLabelOf(QDesignerFormWindowInterface *fw, QWidget *w)
{
typedef QList<QLabel*> LabelList;
- const LabelList labelList = qFindChildren<QLabel*>(fw);
+ const LabelList labelList = fw->findChildren<QLabel*>();
if (labelList.empty())
return 0;
const LabelList::const_iterator cend = labelList.constEnd();
@@ -256,11 +256,11 @@ static void replaceWidgetListDynamicProperty(QWidget *parentWidget,
QWidget *oldWidget, QWidget *newWidget,
const char *name)
{
- QWidgetList list = qVariantValue<QWidgetList>(parentWidget->property(name));
+ QWidgetList list = qvariant_cast<QWidgetList>(parentWidget->property(name));
const int index = list.indexOf(oldWidget);
if (index != -1) {
list.replace(index, newWidget);
- parentWidget->setProperty(name, qVariantFromValue(list));
+ parentWidget->setProperty(name, QVariant::fromValue(list));
}
}
diff --git a/tools/designer/src/lib/shared/qdesigner_command.cpp b/tools/designer/src/lib/shared/qdesigner_command.cpp
index 69206df..8c01000 100644
--- a/tools/designer/src/lib/shared/qdesigner_command.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_command.cpp
@@ -107,23 +107,23 @@ static const char *zOrderPropertyC = "_q_zOrder";
static void addToWidgetListDynamicProperty(QWidget *parentWidget, QWidget *widget, const char *name, int index = -1)
{
- QWidgetList list = qVariantValue<QWidgetList>(parentWidget->property(name));
+ QWidgetList list = qvariant_cast<QWidgetList>(parentWidget->property(name));
list.removeAll(widget);
if (index >= 0 && index < list.size()) {
list.insert(index, widget);
} else {
list.append(widget);
}
- parentWidget->setProperty(name, qVariantFromValue(list));
+ parentWidget->setProperty(name, QVariant::fromValue(list));
}
static int removeFromWidgetListDynamicProperty(QWidget *parentWidget, QWidget *widget, const char *name)
{
- QWidgetList list = qVariantValue<QWidgetList>(parentWidget->property(name));
+ QWidgetList list = qvariant_cast<QWidgetList>(parentWidget->property(name));
const int firstIndex = list.indexOf(widget);
if (firstIndex != -1) {
list.removeAll(widget);
- parentWidget->setProperty(name, qVariantFromValue(list));
+ parentWidget->setProperty(name, QVariant::fromValue(list));
}
return firstIndex;
}
@@ -247,7 +247,7 @@ void InsertWidgetCommand::refreshBuddyLabels()
{
typedef QList<QLabel*> LabelList;
- const LabelList label_list = qFindChildren<QLabel*>(formWindow());
+ const LabelList label_list = formWindow()->findChildren<QLabel*>();
if (label_list.empty())
return;
@@ -281,7 +281,7 @@ void ChangeZOrderCommand::init(QWidget *widget)
setText(QApplication::translate("Command", "Change Z-order of '%1'").arg(widget->objectName()));
- m_oldParentZOrder = qVariantValue<QWidgetList>(widget->parentWidget()->property("_q_zOrder"));
+ m_oldParentZOrder = qvariant_cast<QWidgetList>(widget->parentWidget()->property("_q_zOrder"));
const int index = m_oldParentZOrder.indexOf(m_widget);
if (index != -1 && index + 1 < m_oldParentZOrder.count())
m_oldPreceding = m_oldParentZOrder.at(index + 1);
@@ -289,14 +289,14 @@ void ChangeZOrderCommand::init(QWidget *widget)
void ChangeZOrderCommand::redo()
{
- m_widget->parentWidget()->setProperty("_q_zOrder", qVariantFromValue(reorderWidget(m_oldParentZOrder, m_widget)));
+ m_widget->parentWidget()->setProperty("_q_zOrder", QVariant::fromValue(reorderWidget(m_oldParentZOrder, m_widget)));
reorder(m_widget);
}
void ChangeZOrderCommand::undo()
{
- m_widget->parentWidget()->setProperty("_q_zOrder", qVariantFromValue(m_oldParentZOrder));
+ m_widget->parentWidget()->setProperty("_q_zOrder", QVariant::fromValue(m_oldParentZOrder));
if (m_oldPreceding)
m_widget->stackUnder(m_oldPreceding);
@@ -365,7 +365,7 @@ void ManageWidgetCommandHelper::init(const QDesignerFormWindowInterface *fw, QWi
m_widget = widget;
m_managedChildren.clear();
- const QWidgetList children = qFindChildren<QWidget *>(m_widget);
+ const QWidgetList children = m_widget->findChildren<QWidget *>();
if (children.empty())
return;
@@ -580,8 +580,8 @@ void ReparentWidgetCommand::init(QWidget *widget, QWidget *parentWidget)
setText(QApplication::translate("Command", "Reparent '%1'").arg(widget->objectName()));
- m_oldParentList = qVariantValue<QWidgetList>(m_oldParentWidget->property("_q_widgetOrder"));
- m_oldParentZOrder = qVariantValue<QWidgetList>(m_oldParentWidget->property("_q_zOrder"));
+ m_oldParentList = qvariant_cast<QWidgetList>(m_oldParentWidget->property("_q_widgetOrder"));
+ m_oldParentZOrder = qvariant_cast<QWidgetList>(m_oldParentWidget->property("_q_zOrder"));
}
void ReparentWidgetCommand::redo()
@@ -591,19 +591,19 @@ void ReparentWidgetCommand::redo()
QWidgetList oldList = m_oldParentList;
oldList.removeAll(m_widget);
- m_oldParentWidget->setProperty("_q_widgetOrder", qVariantFromValue(oldList));
+ m_oldParentWidget->setProperty("_q_widgetOrder", QVariant::fromValue(oldList));
- QWidgetList newList = qVariantValue<QWidgetList>(m_newParentWidget->property("_q_widgetOrder"));
+ QWidgetList newList = qvariant_cast<QWidgetList>(m_newParentWidget->property("_q_widgetOrder"));
newList.append(m_widget);
- m_newParentWidget->setProperty("_q_widgetOrder", qVariantFromValue(newList));
+ m_newParentWidget->setProperty("_q_widgetOrder", QVariant::fromValue(newList));
QWidgetList oldZOrder = m_oldParentZOrder;
oldZOrder.removeAll(m_widget);
- m_oldParentWidget->setProperty("_q_zOrder", qVariantFromValue(oldZOrder));
+ m_oldParentWidget->setProperty("_q_zOrder", QVariant::fromValue(oldZOrder));
- QWidgetList newZOrder = qVariantValue<QWidgetList>(m_newParentWidget->property("_q_zOrder"));
+ QWidgetList newZOrder = qvariant_cast<QWidgetList>(m_newParentWidget->property("_q_zOrder"));
newZOrder.append(m_widget);
- m_newParentWidget->setProperty("_q_zOrder", qVariantFromValue(newZOrder));
+ m_newParentWidget->setProperty("_q_zOrder", QVariant::fromValue(newZOrder));
m_widget->show();
core()->objectInspector()->setFormWindow(formWindow());
@@ -614,16 +614,16 @@ void ReparentWidgetCommand::undo()
m_widget->setParent(m_oldParentWidget);
m_widget->move(m_oldPos);
- m_oldParentWidget->setProperty("_q_widgetOrder", qVariantFromValue(m_oldParentList));
+ m_oldParentWidget->setProperty("_q_widgetOrder", QVariant::fromValue(m_oldParentList));
- QWidgetList newList = qVariantValue<QWidgetList>(m_newParentWidget->property("_q_widgetOrder"));
+ QWidgetList newList = qvariant_cast<QWidgetList>(m_newParentWidget->property("_q_widgetOrder"));
newList.removeAll(m_widget);
- m_newParentWidget->setProperty("_q_widgetOrder", qVariantFromValue(newList));
+ m_newParentWidget->setProperty("_q_widgetOrder", QVariant::fromValue(newList));
- m_oldParentWidget->setProperty("_q_zOrder", qVariantFromValue(m_oldParentZOrder));
+ m_oldParentWidget->setProperty("_q_zOrder", QVariant::fromValue(m_oldParentZOrder));
- QWidgetList newZOrder = qVariantValue<QWidgetList>(m_newParentWidget->property("_q_zOrder"));
- m_newParentWidget->setProperty("_q_zOrder", qVariantFromValue(newZOrder));
+ QWidgetList newZOrder = qvariant_cast<QWidgetList>(m_newParentWidget->property("_q_zOrder"));
+ m_newParentWidget->setProperty("_q_zOrder", QVariant::fromValue(newZOrder));
m_widget->show();
core()->objectInspector()->setFormWindow(formWindow());
@@ -1016,7 +1016,7 @@ void ToolBoxCommand::addPage()
QDesignerPropertySheetExtension *sheet = qt_extension<QDesignerPropertySheetExtension*>(formWindow()->core()->extensionManager(), m_toolBox);
if (sheet) {
qdesigner_internal::PropertySheetStringValue itemText(m_itemText);
- sheet->setProperty(sheet->indexOf(QLatin1String("currentItemText")), qVariantFromValue(itemText));
+ sheet->setProperty(sheet->indexOf(QLatin1String("currentItemText")), QVariant::fromValue(itemText));
}
m_widget->show();
@@ -1176,7 +1176,7 @@ void TabWidgetCommand::addPage()
QDesignerPropertySheetExtension *sheet = qt_extension<QDesignerPropertySheetExtension*>(formWindow()->core()->extensionManager(), m_tabWidget);
if (sheet) {
qdesigner_internal::PropertySheetStringValue itemText(m_itemText);
- sheet->setProperty(sheet->indexOf(QLatin1String("currentTabText")), qVariantFromValue(itemText));
+ sheet->setProperty(sheet->indexOf(QLatin1String("currentTabText")), QVariant::fromValue(itemText));
}
formWindow()->clearSelection();
@@ -2193,7 +2193,7 @@ static void copyRolesFromItem(ItemData *id, const T *item, bool editor)
if (editor)
copyRoleFromItem<T>(id, ItemFlagsShadowRole, item);
else if (item->flags() != defaultFlags)
- id->m_properties.insert(ItemFlagsShadowRole, qVariantFromValue((int)item->flags()));
+ id->m_properties.insert(ItemFlagsShadowRole, QVariant::fromValue((int)item->flags()));
}
template<class T>
@@ -2210,19 +2210,19 @@ static void copyRolesToItem(const ItemData *id, T *item, DesignerIconCache *icon
switch (it.key()) {
case Qt::DecorationPropertyRole:
if (iconCache)
- item->setIcon(iconCache->icon(qVariantValue<PropertySheetIconValue>(it.value())));
+ item->setIcon(iconCache->icon(qvariant_cast<PropertySheetIconValue>(it.value())));
break;
case Qt::DisplayPropertyRole:
- item->setText(qVariantValue<PropertySheetStringValue>(it.value()).value());
+ item->setText(qvariant_cast<PropertySheetStringValue>(it.value()).value());
break;
case Qt::ToolTipPropertyRole:
- item->setToolTip(qVariantValue<PropertySheetStringValue>(it.value()).value());
+ item->setToolTip(qvariant_cast<PropertySheetStringValue>(it.value()).value());
break;
case Qt::StatusTipPropertyRole:
- item->setStatusTip(qVariantValue<PropertySheetStringValue>(it.value()).value());
+ item->setStatusTip(qvariant_cast<PropertySheetStringValue>(it.value()).value());
break;
case Qt::WhatsThisPropertyRole:
- item->setWhatsThis(qVariantValue<PropertySheetStringValue>(it.value()).value());
+ item->setWhatsThis(qvariant_cast<PropertySheetStringValue>(it.value()).value());
break;
}
}
@@ -2267,7 +2267,7 @@ ItemData::ItemData(const QTreeWidgetItem *item, int column)
{
copyRoleFromItem(this, Qt::EditRole, item, column);
PropertySheetStringValue str(item->text(column));
- m_properties.insert(Qt::DisplayPropertyRole, qVariantFromValue(str));
+ m_properties.insert(Qt::DisplayPropertyRole, QVariant::fromValue(str));
for (int i = 0; itemRoles[i] != -1; i++)
copyRoleFromItem(this, itemRoles[i], item, column);
@@ -2282,19 +2282,19 @@ void ItemData::fillTreeItemColumn(QTreeWidgetItem *item, int column, DesignerIco
switch (it.key()) {
case Qt::DecorationPropertyRole:
if (iconCache)
- item->setIcon(column, iconCache->icon(qVariantValue<PropertySheetIconValue>(it.value())));
+ item->setIcon(column, iconCache->icon(qvariant_cast<PropertySheetIconValue>(it.value())));
break;
case Qt::DisplayPropertyRole:
- item->setText(column, qVariantValue<PropertySheetStringValue>(it.value()).value());
+ item->setText(column, qvariant_cast<PropertySheetStringValue>(it.value()).value());
break;
case Qt::ToolTipPropertyRole:
- item->setToolTip(column, qVariantValue<PropertySheetStringValue>(it.value()).value());
+ item->setToolTip(column, qvariant_cast<PropertySheetStringValue>(it.value()).value());
break;
case Qt::StatusTipPropertyRole:
- item->setStatusTip(column, qVariantValue<PropertySheetStringValue>(it.value()).value());
+ item->setStatusTip(column, qvariant_cast<PropertySheetStringValue>(it.value()).value());
break;
case Qt::WhatsThisPropertyRole:
- item->setWhatsThis(column, qVariantValue<PropertySheetStringValue>(it.value()).value());
+ item->setWhatsThis(column, qvariant_cast<PropertySheetStringValue>(it.value()).value());
break;
}
}
@@ -2364,10 +2364,10 @@ void ListContents::applyToComboBox(QComboBox *comboBox, DesignerIconCache *iconC
foreach (const ItemData &hash, m_items) {
QIcon icon;
if (iconCache)
- icon = iconCache->icon(qVariantValue<PropertySheetIconValue>(
+ icon = iconCache->icon(qvariant_cast<PropertySheetIconValue>(
hash.m_properties[Qt::DecorationPropertyRole]));
QVariant var = hash.m_properties[Qt::DisplayPropertyRole];
- PropertySheetStringValue str = qVariantValue<PropertySheetStringValue>(var);
+ PropertySheetStringValue str = qvariant_cast<PropertySheetStringValue>(var);
comboBox->addItem(icon, str.value());
comboBox->setItemData(comboBox->count() - 1,
var,
@@ -2407,7 +2407,7 @@ bool TableWidgetContents::nonEmpty(const QTableWidgetItem *item, int headerColum
if (item->flags() != defaultFlags)
return true;
- QString text = qVariantValue<PropertySheetStringValue>(item->data(Qt::DisplayPropertyRole)).value();
+ QString text = qvariant_cast<PropertySheetStringValue>(item->data(Qt::DisplayPropertyRole)).value();
if (!text.isEmpty()) {
if (headerColumn < 0 || text != defaultHeaderText(headerColumn))
return true;
@@ -2545,7 +2545,7 @@ QTreeWidgetItem *TreeWidgetContents::ItemContents::createTreeItem(DesignerIconCa
if (m_itemFlags != -1) {
if (editor)
- item->setData(0, ItemFlagsShadowRole, qVariantFromValue(m_itemFlags));
+ item->setData(0, ItemFlagsShadowRole, QVariant::fromValue(m_itemFlags));
else
item->setFlags((Qt::ItemFlags)m_itemFlags);
}
diff --git a/tools/designer/src/lib/shared/qdesigner_formbuilder.cpp b/tools/designer/src/lib/shared/qdesigner_formbuilder.cpp
index 14e0d81..b881589 100644
--- a/tools/designer/src/lib/shared/qdesigner_formbuilder.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_formbuilder.cpp
@@ -243,7 +243,7 @@ static bool readDomEnumerationValue(const DomProperty *p,
if (index == -1)
return false;
const QVariant sheetValue = sheet->property(index);
- if (qVariantCanConvert<PropertySheetFlagValue>(sheetValue)) {
+ if (sheetValue.canConvert<PropertySheetFlagValue>()) {
const PropertySheetFlagValue f = qvariant_cast<PropertySheetFlagValue>(sheetValue);
bool ok = false;
v = f.metaFlags.parseFlags(p->elementSet(), &ok);
@@ -258,7 +258,7 @@ static bool readDomEnumerationValue(const DomProperty *p,
if (index == -1)
return false;
const QVariant sheetValue = sheet->property(index);
- if (qVariantCanConvert<PropertySheetEnumValue>(sheetValue)) {
+ if (sheetValue.canConvert<PropertySheetEnumValue>()) {
const PropertySheetEnumValue e = qvariant_cast<PropertySheetEnumValue>(sheetValue);
bool ok = false;
v = e.metaEnum.parseEnum(p->elementEnum(), &ok);
diff --git a/tools/designer/src/lib/shared/qdesigner_formwindowcommand.cpp b/tools/designer/src/lib/shared/qdesigner_formwindowcommand.cpp
index 490373e..675752e 100644
--- a/tools/designer/src/lib/shared/qdesigner_formwindowcommand.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_formwindowcommand.cpp
@@ -115,7 +115,7 @@ void QDesignerFormWindowCommand::updateBuddies(QDesignerFormWindowInterface *for
typedef QList<QLabel*> LabelList;
- const LabelList label_list = qFindChildren<QLabel*>(form);
+ const LabelList label_list = form->findChildren<QLabel*>();
if (label_list.empty())
return;
diff --git a/tools/designer/src/lib/shared/qdesigner_menu.cpp b/tools/designer/src/lib/shared/qdesigner_menu.cpp
index 31a226a..3d9fdf1 100644
--- a/tools/designer/src/lib/shared/qdesigner_menu.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_menu.cpp
@@ -477,7 +477,7 @@ bool QDesignerMenu::handleContextMenuEvent(QWidget *, QContextMenuEvent *event)
QMenu menu;
QVariant itemData;
- qVariantSetValue(itemData, action);
+ itemData.setValue(action);
QAction *addSeparatorAction = menu.addAction(tr("Insert separator"));
addSeparatorAction->setData(itemData);
@@ -630,7 +630,7 @@ QDesignerMenu *QDesignerMenu::findActivatedMenu() const
{
QList<QDesignerMenu*> candidates;
candidates.append(const_cast<QDesignerMenu*>(this));
- candidates += qFindChildren<QDesignerMenu*>(this);
+ candidates += findChildren<QDesignerMenu*>();
foreach (QDesignerMenu *m, candidates) {
if (m == qApp->activeWindow())
@@ -867,7 +867,7 @@ void QDesignerMenu::closeMenuChain()
w = w->parentWidget();
if (w) {
- foreach (QMenu *subMenu, qFindChildren<QMenu*>(w)) {
+ foreach (QMenu *subMenu, w->findChildren<QMenu*>()) {
subMenu->hide();
}
}
@@ -1323,7 +1323,7 @@ QAction *QDesignerMenu::safeActionAt(int index) const
void QDesignerMenu::hideSubMenu()
{
m_lastSubMenuIndex = -1;
- foreach (QMenu *subMenu, qFindChildren<QMenu*>(this)) {
+ foreach (QMenu *subMenu, findChildren<QMenu*>()) {
subMenu->hide();
}
}
diff --git a/tools/designer/src/lib/shared/qdesigner_menubar.cpp b/tools/designer/src/lib/shared/qdesigner_menubar.cpp
index 8d53037..b017264 100644
--- a/tools/designer/src/lib/shared/qdesigner_menubar.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_menubar.cpp
@@ -403,7 +403,7 @@ ActionList QDesignerMenuBar::contextMenuActions()
if (QAction *action = safeActionAt(m_currentIndex)) {
if (!qobject_cast<SpecialMenuAction*>(action)) {
QVariant itemData;
- qVariantSetValue(itemData, action);
+ itemData.setValue(action);
QAction *remove_action = new QAction(tr("Remove Menu '%1'").arg(action->menu()->objectName()), 0);
remove_action->setData(itemData);
diff --git a/tools/designer/src/lib/shared/qdesigner_propertycommand.cpp b/tools/designer/src/lib/shared/qdesigner_propertycommand.cpp
index 6cc054c..08385b5 100644
--- a/tools/designer/src/lib/shared/qdesigner_propertycommand.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_propertycommand.cpp
@@ -505,7 +505,7 @@ PropertyHelper::Value applySubProperty(const QVariant &oldValue, const QVariant
case QVariant::Size:
return PropertyHelper::Value(applySizeSubProperty(oldValue.toSize(), newValue.toSize(), mask), changed);
case QVariant::SizePolicy:
- return PropertyHelper::Value(qVariantFromValue(applySizePolicySubProperty(qvariant_cast<QSizePolicy>(oldValue), qvariant_cast<QSizePolicy>(newValue), mask)), changed);
+ return PropertyHelper::Value(QVariant::fromValue(applySizePolicySubProperty(qvariant_cast<QSizePolicy>(oldValue), qvariant_cast<QSizePolicy>(newValue), mask)), changed);
case QVariant::Font: {
// Changed flag in case of font and palette depends on resolve mask only, not on the passed "changed" value.
@@ -524,27 +524,27 @@ PropertyHelper::Value applySubProperty(const QVariant &oldValue, const QVariant
// He press reset button for the whole font property. In result whole font properties for both
// widgets should be marked as unchanged.
QFont font = applyFontSubProperty(qvariant_cast<QFont>(oldValue), qvariant_cast<QFont>(newValue), mask);
- return PropertyHelper::Value(qVariantFromValue(font), font.resolve());
+ return PropertyHelper::Value(QVariant::fromValue(font), font.resolve());
}
case QVariant::Palette: {
QPalette palette = applyPaletteSubProperty(qvariant_cast<QPalette>(oldValue), qvariant_cast<QPalette>(newValue), mask);
- return PropertyHelper::Value(qVariantFromValue(palette), palette.resolve());
+ return PropertyHelper::Value(QVariant::fromValue(palette), palette.resolve());
}
default:
if (oldValue.userType() == qMetaTypeId<qdesigner_internal::PropertySheetIconValue>()) {
PropertySheetIconValue icon = qvariant_cast<qdesigner_internal::PropertySheetIconValue>(oldValue);
icon.assign(qvariant_cast<qdesigner_internal::PropertySheetIconValue>(newValue), mask);
- return PropertyHelper::Value(qVariantFromValue(icon), icon.mask());
+ return PropertyHelper::Value(QVariant::fromValue(icon), icon.mask());
} else if (oldValue.userType() == qMetaTypeId<qdesigner_internal::PropertySheetStringValue>()) {
qdesigner_internal::PropertySheetStringValue str = applyStringSubProperty(
qvariant_cast<qdesigner_internal::PropertySheetStringValue>(oldValue),
qvariant_cast<qdesigner_internal::PropertySheetStringValue>(newValue), mask);
- return PropertyHelper::Value(qVariantFromValue(str), changed);
+ return PropertyHelper::Value(QVariant::fromValue(str), changed);
} else if (oldValue.userType() == qMetaTypeId<qdesigner_internal::PropertySheetKeySequenceValue>()) {
qdesigner_internal::PropertySheetKeySequenceValue key = applyKeySequenceSubProperty(
qvariant_cast<qdesigner_internal::PropertySheetKeySequenceValue>(oldValue),
qvariant_cast<qdesigner_internal::PropertySheetKeySequenceValue>(newValue), mask);
- return PropertyHelper::Value(qVariantFromValue(key), changed);
+ return PropertyHelper::Value(QVariant::fromValue(key), changed);
}
// Enumerations, flags
switch (specialProperty) {
@@ -552,7 +552,7 @@ PropertyHelper::Value applySubProperty(const QVariant &oldValue, const QVariant
qdesigner_internal::PropertySheetFlagValue f = qvariant_cast<qdesigner_internal::PropertySheetFlagValue>(oldValue);
f.value = applyAlignmentSubProperty(variantToAlignment(oldValue), variantToAlignment(newValue), mask);
QVariant v;
- qVariantSetValue(v, f);
+ v.setValue(f);
return PropertyHelper::Value(v, changed);
}
default:
@@ -651,7 +651,7 @@ void PropertyHelper::checkApplyWidgetValue(QDesignerFormWindowInterface *fw, QWi
switch (specialProperty) {
case SP_MinimumSize: {
const QSize size = checkSize(value.toSize());
- qVariantSetValue(value, size);
+ value.setValue(size);
}
break;
@@ -660,7 +660,7 @@ void PropertyHelper::checkApplyWidgetValue(QDesignerFormWindowInterface *fw, QWi
checkSizes(fw, value.toSize(), &fs, &cs);
container->setMaximumSize(cs);
fw->mainContainer()->setMaximumSize(fs);
- qVariantSetValue(value, fs);
+ value.setValue(fs);
}
break;
@@ -670,7 +670,7 @@ void PropertyHelper::checkApplyWidgetValue(QDesignerFormWindowInterface *fw, QWi
checkSizes(fw, r.size(), &fs, &cs);
container->resize(cs);
r.setSize(fs);
- qVariantSetValue(value, r);
+ value.setValue(r);
}
break;
default:
@@ -727,8 +727,8 @@ void PropertyHelper::updateObject(QDesignerFormWindowInterface *fw, const QVaria
case OT_Widget: {
switch (m_specialProperty) {
case SP_ObjectName: {
- const QString oldName = qVariantValue<PropertySheetStringValue>(oldValue).value();
- const QString newName = qVariantValue<PropertySheetStringValue>(newValue).value();
+ const QString oldName = qvariant_cast<PropertySheetStringValue>(oldValue).value();
+ const QString newName = qvariant_cast<PropertySheetStringValue>(newValue).value();
QDesignerFormWindowCommand::updateBuddies(fw, oldName, newName);
}
break;
@@ -751,8 +751,8 @@ void PropertyHelper::updateObject(QDesignerFormWindowInterface *fw, const QVaria
case SP_LayoutName:
case SP_SpacerName:
if (QDesignerIntegration *integr = integration(fw)) {
- const QString oldName = qVariantValue<PropertySheetStringValue>(oldValue).value();
- const QString newName = qVariantValue<PropertySheetStringValue>(newValue).value();
+ const QString oldName = qvariant_cast<PropertySheetStringValue>(oldValue).value();
+ const QString newName = qvariant_cast<PropertySheetStringValue>(newValue).value();
integr->emitObjectNameChanged(fw, m_object, newName, oldName);
}
break;
diff --git a/tools/designer/src/lib/shared/qdesigner_propertysheet.cpp b/tools/designer/src/lib/shared/qdesigner_propertysheet.cpp
index 086f46d..72ecb8f 100644
--- a/tools/designer/src/lib/shared/qdesigner_propertysheet.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_propertysheet.cpp
@@ -290,18 +290,18 @@ bool QDesignerPropertySheetPrivate::isResourceProperty(int index) const
void QDesignerPropertySheetPrivate::addResourceProperty(int index, QVariant::Type type)
{
if (type == QVariant::Pixmap)
- m_resourceProperties.insert(index, qVariantFromValue(qdesigner_internal::PropertySheetPixmapValue()));
+ m_resourceProperties.insert(index, QVariant::fromValue(qdesigner_internal::PropertySheetPixmapValue()));
else if (type == QVariant::Icon)
- m_resourceProperties.insert(index, qVariantFromValue(qdesigner_internal::PropertySheetIconValue()));
+ m_resourceProperties.insert(index, QVariant::fromValue(qdesigner_internal::PropertySheetIconValue()));
}
QVariant QDesignerPropertySheetPrivate::emptyResourceProperty(int index) const
{
QVariant v = m_resourceProperties.value(index);
- if (qVariantCanConvert<qdesigner_internal::PropertySheetPixmapValue>(v))
- return qVariantFromValue(qdesigner_internal::PropertySheetPixmapValue());
- if (qVariantCanConvert<qdesigner_internal::PropertySheetIconValue>(v))
- return qVariantFromValue(qdesigner_internal::PropertySheetIconValue());
+ if (v.canConvert<qdesigner_internal::PropertySheetPixmapValue>())
+ return QVariant::fromValue(qdesigner_internal::PropertySheetPixmapValue());
+ if (v.canConvert<qdesigner_internal::PropertySheetIconValue>())
+ return QVariant::fromValue(qdesigner_internal::PropertySheetIconValue());
return v;
}
@@ -320,8 +320,8 @@ void QDesignerPropertySheetPrivate::setResourceProperty(int index, const QVarian
Q_ASSERT(isResourceProperty(index));
QVariant &v = m_resourceProperties[index];
- if ((qVariantCanConvert<qdesigner_internal::PropertySheetPixmapValue>(value) && qVariantCanConvert<qdesigner_internal::PropertySheetPixmapValue>(v))
- || (qVariantCanConvert<qdesigner_internal::PropertySheetIconValue>(value) && qVariantCanConvert<qdesigner_internal::PropertySheetIconValue>(v)))
+ if ((value.canConvert<qdesigner_internal::PropertySheetPixmapValue>() && v.canConvert<qdesigner_internal::PropertySheetPixmapValue>())
+ || (value.canConvert<qdesigner_internal::PropertySheetIconValue>() && v.canConvert<qdesigner_internal::PropertySheetIconValue>()))
v = value;
}
@@ -722,14 +722,14 @@ int QDesignerPropertySheet::addDynamicProperty(const QString &propName, const QV
QVariant v = value;
if (value.type() == QVariant::Icon)
- v = qVariantFromValue(qdesigner_internal::PropertySheetIconValue());
+ v = QVariant::fromValue(qdesigner_internal::PropertySheetIconValue());
else if (value.type() == QVariant::Pixmap)
- v = qVariantFromValue(qdesigner_internal::PropertySheetPixmapValue());
+ v = QVariant::fromValue(qdesigner_internal::PropertySheetPixmapValue());
else if (value.type() == QVariant::String)
- v = qVariantFromValue(qdesigner_internal::PropertySheetStringValue(value.toString()));
+ v = QVariant::fromValue(qdesigner_internal::PropertySheetStringValue(value.toString()));
else if (value.type() == QVariant::KeySequence) {
- const QKeySequence keySequence = qVariantValue<QKeySequence>(value);
- v = qVariantFromValue(qdesigner_internal::PropertySheetKeySequenceValue(keySequence));
+ const QKeySequence keySequence = qvariant_cast<QKeySequence>(value);
+ v = QVariant::fromValue(qdesigner_internal::PropertySheetKeySequenceValue(keySequence));
}
if (d->m_addIndex.contains(propName)) {
@@ -873,9 +873,9 @@ int QDesignerPropertySheet::createFakeProperty(const QString &propertyName, cons
info.kind = QDesignerPropertySheetPrivate::FakeProperty;
QVariant v = value.isValid() ? value : metaProperty(index);
if (v.type() == QVariant::String)
- v = qVariantFromValue(qdesigner_internal::PropertySheetStringValue());
+ v = QVariant::fromValue(qdesigner_internal::PropertySheetStringValue());
if (v.type() == QVariant::KeySequence)
- v = qVariantFromValue(qdesigner_internal::PropertySheetKeySequenceValue());
+ v = QVariant::fromValue(qdesigner_internal::PropertySheetKeySequenceValue());
d->m_fakeProperties.insert(index, v);
return index;
}
@@ -1002,17 +1002,17 @@ QVariant QDesignerPropertySheet::property(int index) const
value.setValue(strValue);
d->setStringProperty(index, value); // cache it
}
- return qVariantFromValue(value);
+ return QVariant::fromValue(value);
}
if (d->isKeySequenceProperty(index)) {
- QKeySequence keyValue = qVariantValue<QKeySequence>(metaProperty(index));
+ QKeySequence keyValue = qvariant_cast<QKeySequence>(metaProperty(index));
qdesigner_internal::PropertySheetKeySequenceValue value = d->keySequenceProperty(index);
if (keyValue != value.value()) {
value.setValue(keyValue);
d->setKeySequenceProperty(index, value); // cache it
}
- return qVariantFromValue(value);
+ return QVariant::fromValue(value);
}
return metaProperty(index);
@@ -1027,12 +1027,12 @@ QVariant QDesignerPropertySheet::metaProperty(int index) const
switch (p->kind()) {
case QDesignerMetaPropertyInterface::FlagKind: {
qdesigner_internal::PropertySheetFlagValue psflags = qdesigner_internal::PropertySheetFlagValue(v.toInt(), designerMetaFlagsFor(p->enumerator()));
- qVariantSetValue(v, psflags);
+ v.setValue(psflags);
}
break;
case QDesignerMetaPropertyInterface::EnumKind: {
qdesigner_internal::PropertySheetEnumValue pse = qdesigner_internal::PropertySheetEnumValue(v.toInt(), designerMetaEnumFor(p->enumerator()));
- qVariantSetValue(v, pse);
+ v.setValue(pse);
}
break;
case QDesignerMetaPropertyInterface::OtherKind:
@@ -1043,20 +1043,20 @@ QVariant QDesignerPropertySheet::metaProperty(int index) const
QVariant QDesignerPropertySheet::resolvePropertyValue(int index, const QVariant &value) const
{
- if (qVariantCanConvert<qdesigner_internal::PropertySheetEnumValue>(value))
+ if (value.canConvert<qdesigner_internal::PropertySheetEnumValue>())
return qvariant_cast<qdesigner_internal::PropertySheetEnumValue>(value).value;
- if (qVariantCanConvert<qdesigner_internal::PropertySheetFlagValue>(value))
+ if (value.canConvert<qdesigner_internal::PropertySheetFlagValue>())
return qvariant_cast<qdesigner_internal::PropertySheetFlagValue>(value).value;
- if (qVariantCanConvert<qdesigner_internal::PropertySheetStringValue>(value))
- return qVariantValue<qdesigner_internal::PropertySheetStringValue>(value).value();
+ if (value.canConvert<qdesigner_internal::PropertySheetStringValue>())
+ return qvariant_cast<qdesigner_internal::PropertySheetStringValue>(value).value();
- if (qVariantCanConvert<qdesigner_internal::PropertySheetKeySequenceValue>(value))
- return qVariantValue<qdesigner_internal::PropertySheetKeySequenceValue>(value).value();
+ if (value.canConvert<qdesigner_internal::PropertySheetKeySequenceValue>())
+ return qvariant_cast<qdesigner_internal::PropertySheetKeySequenceValue>(value).value();
- if (qVariantCanConvert<qdesigner_internal::PropertySheetPixmapValue>(value)) {
- const QString path = qVariantValue<qdesigner_internal::PropertySheetPixmapValue>(value).path();
+ if (value.canConvert<qdesigner_internal::PropertySheetPixmapValue>()) {
+ const QString path = qvariant_cast<qdesigner_internal::PropertySheetPixmapValue>(value).path();
if (path.isEmpty())
return defaultResourceProperty(index);
if (d->m_pixmapCache) {
@@ -1064,8 +1064,8 @@ QVariant QDesignerPropertySheet::resolvePropertyValue(int index, const QVariant
}
}
- if (qVariantCanConvert<qdesigner_internal::PropertySheetIconValue>(value)) {
- const int pathCount = qVariantValue<qdesigner_internal::PropertySheetIconValue>(value).paths().count();
+ if (value.canConvert<qdesigner_internal::PropertySheetIconValue>()) {
+ const int pathCount = qvariant_cast<qdesigner_internal::PropertySheetIconValue>(value).paths().count();
if (pathCount == 0)
return defaultResourceProperty(index);
if (d->m_iconCache)
@@ -1082,17 +1082,17 @@ void QDesignerPropertySheet::setFakeProperty(int index, const QVariant &value)
QVariant &v = d->m_fakeProperties[index];
// set resource properties also (if we are going to have fake resource properties)
- if (qVariantCanConvert<qdesigner_internal::PropertySheetFlagValue>(value) || qVariantCanConvert<qdesigner_internal::PropertySheetEnumValue>(value)) {
+ if (value.canConvert<qdesigner_internal::PropertySheetFlagValue>() || value.canConvert<qdesigner_internal::PropertySheetEnumValue>()) {
v = value;
- } else if (qVariantCanConvert<qdesigner_internal::PropertySheetFlagValue>(v)) {
+ } else if (v.canConvert<qdesigner_internal::PropertySheetFlagValue>()) {
qdesigner_internal::PropertySheetFlagValue f = qvariant_cast<qdesigner_internal::PropertySheetFlagValue>(v);
f.value = value.toInt();
- qVariantSetValue(v, f);
+ v.setValue(f);
Q_ASSERT(value.type() == QVariant::Int);
- } else if (qVariantCanConvert<qdesigner_internal::PropertySheetEnumValue>(v)) {
+ } else if (v.canConvert<qdesigner_internal::PropertySheetEnumValue>()) {
qdesigner_internal::PropertySheetEnumValue e = qvariant_cast<qdesigner_internal::PropertySheetEnumValue>(v);
e.value = value.toInt();
- qVariantSetValue(v, e);
+ v.setValue(e);
Q_ASSERT(value.type() == QVariant::Int);
} else {
v = value;
@@ -1139,9 +1139,9 @@ void QDesignerPropertySheet::setProperty(int index, const QVariant &value)
if (d->isResourceProperty(index))
d->setResourceProperty(index, value);
if (d->isStringProperty(index))
- d->setStringProperty(index, qVariantValue<qdesigner_internal::PropertySheetStringValue>(value));
+ d->setStringProperty(index, qvariant_cast<qdesigner_internal::PropertySheetStringValue>(value));
if (d->isKeySequenceProperty(index))
- d->setKeySequenceProperty(index, qVariantValue<qdesigner_internal::PropertySheetKeySequenceValue>(value));
+ d->setKeySequenceProperty(index, qvariant_cast<qdesigner_internal::PropertySheetKeySequenceValue>(value));
d->m_object->setProperty(propertyName(index).toUtf8(), resolvePropertyValue(index, value));
if (d->m_object->isWidgetType()) {
QWidget *w = qobject_cast<QWidget *>(d->m_object);
@@ -1155,26 +1155,26 @@ void QDesignerPropertySheet::setProperty(int index, const QVariant &value)
if (d->isResourceProperty(index))
d->setResourceProperty(index, value);
if (d->isStringProperty(index))
- d->setStringProperty(index, qVariantValue<qdesigner_internal::PropertySheetStringValue>(value));
+ d->setStringProperty(index, qvariant_cast<qdesigner_internal::PropertySheetStringValue>(value));
if (d->isKeySequenceProperty(index))
- d->setKeySequenceProperty(index, qVariantValue<qdesigner_internal::PropertySheetKeySequenceValue>(value));
+ d->setKeySequenceProperty(index, qvariant_cast<qdesigner_internal::PropertySheetKeySequenceValue>(value));
const QDesignerMetaPropertyInterface *p = d->m_meta->property(index);
p->write(d->m_object, resolvePropertyValue(index, value));
if (qobject_cast<QGroupBox *>(d->m_object) && propertyType(index) == PropertyCheckable) {
const int idx = indexOf(QLatin1String("focusPolicy"));
if (!isChanged(idx)) {
- qdesigner_internal::PropertySheetEnumValue e = qVariantValue<qdesigner_internal::PropertySheetEnumValue>(property(idx));
+ qdesigner_internal::PropertySheetEnumValue e = qvariant_cast<qdesigner_internal::PropertySheetEnumValue>(property(idx));
if (value.toBool()) {
const QDesignerMetaPropertyInterface *p = d->m_meta->property(idx);
p->write(d->m_object, Qt::NoFocus);
e.value = Qt::StrongFocus;
QVariant v;
- qVariantSetValue(v, e);
+ v.setValue(e);
setFakeProperty(idx, v);
} else {
e.value = Qt::NoFocus;
QVariant v;
- qVariantSetValue(v, e);
+ v.setValue(e);
setFakeProperty(idx, v);
}
}
@@ -1196,9 +1196,9 @@ bool QDesignerPropertySheet::reset(int index)
if (d->invalidIndex(Q_FUNC_INFO, index))
return false;
if (d->isStringProperty(index))
- setProperty(index, qVariantFromValue(qdesigner_internal::PropertySheetStringValue()));
+ setProperty(index, QVariant::fromValue(qdesigner_internal::PropertySheetStringValue()));
if (d->isKeySequenceProperty(index))
- setProperty(index, qVariantFromValue(qdesigner_internal::PropertySheetKeySequenceValue()));
+ setProperty(index, QVariant::fromValue(qdesigner_internal::PropertySheetKeySequenceValue()));
if (d->isResourceProperty(index)) {
setProperty(index, d->emptyResourceProperty(index));
return true;
@@ -1208,10 +1208,10 @@ bool QDesignerPropertySheet::reset(int index)
const QVariant defaultValue = d->m_info.value(index).defaultValue;
QVariant newValue = defaultValue;
if (d->isStringProperty(index)) {
- newValue = qVariantFromValue(qdesigner_internal::PropertySheetStringValue(newValue.toString()));
+ newValue = QVariant::fromValue(qdesigner_internal::PropertySheetStringValue(newValue.toString()));
} else if (d->isKeySequenceProperty(index)) {
- const QKeySequence keySequence = qVariantValue<QKeySequence>(newValue);
- newValue = qVariantFromValue(qdesigner_internal::PropertySheetKeySequenceValue(keySequence));
+ const QKeySequence keySequence = qvariant_cast<QKeySequence>(newValue);
+ newValue = QVariant::fromValue(qdesigner_internal::PropertySheetKeySequenceValue(keySequence));
}
if (oldValue == newValue)
return true;
diff --git a/tools/designer/src/lib/shared/qdesigner_tabwidget.cpp b/tools/designer/src/lib/shared/qdesigner_tabwidget.cpp
index ecd97fa..461212c 100644
--- a/tools/designer/src/lib/shared/qdesigner_tabwidget.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_tabwidget.cpp
@@ -134,7 +134,7 @@ QTabBar *QTabWidgetEventFilter::tabBar() const
{
// QTabWidget::tabBar() accessor is protected, grmbl...
if (!m_cachedTabBar) {
- const QList<QTabBar *> tabBars = qFindChildren<QTabBar *>(m_tabWidget);
+ const QList<QTabBar *> tabBars = m_tabWidget->findChildren<QTabBar *>();
Q_ASSERT(tabBars.size() == 1);
m_cachedTabBar = tabBars.front();
}
@@ -405,13 +405,13 @@ QTabWidgetPropertySheet::QTabWidgetPropertySheet(QTabWidget *object, QObject *pa
QDesignerPropertySheet(object, parent),
m_tabWidget(object)
{
- createFakeProperty(QLatin1String(currentTabTextKey), qVariantFromValue(qdesigner_internal::PropertySheetStringValue()));
+ createFakeProperty(QLatin1String(currentTabTextKey), QVariant::fromValue(qdesigner_internal::PropertySheetStringValue()));
createFakeProperty(QLatin1String(currentTabNameKey), QString());
- createFakeProperty(QLatin1String(currentTabIconKey), qVariantFromValue(qdesigner_internal::PropertySheetIconValue()));
+ createFakeProperty(QLatin1String(currentTabIconKey), QVariant::fromValue(qdesigner_internal::PropertySheetIconValue()));
if (formWindowBase())
formWindowBase()->addReloadableProperty(this, indexOf(QLatin1String(currentTabIconKey)));
- createFakeProperty(QLatin1String(currentTabToolTipKey), qVariantFromValue(qdesigner_internal::PropertySheetStringValue()));
- createFakeProperty(QLatin1String(currentTabWhatsThisKey), qVariantFromValue(qdesigner_internal::PropertySheetStringValue()));
+ createFakeProperty(QLatin1String(currentTabToolTipKey), QVariant::fromValue(qdesigner_internal::PropertySheetStringValue()));
+ createFakeProperty(QLatin1String(currentTabWhatsThisKey), QVariant::fromValue(qdesigner_internal::PropertySheetStringValue()));
// Prevent the tab widget's drag and drop handling from interfering with Designer's
createFakeProperty(QLatin1String(tabMovableKey), QVariant(false));
}
@@ -447,22 +447,22 @@ void QTabWidgetPropertySheet::setProperty(int index, const QVariant &value)
switch (tabWidgetProperty) {
case PropertyCurrentTabText:
m_tabWidget->setTabText(currentIndex, qvariant_cast<QString>(resolvePropertyValue(index, value)));
- m_pageToData[currentWidget].text = qVariantValue<qdesigner_internal::PropertySheetStringValue>(value);
+ m_pageToData[currentWidget].text = qvariant_cast<qdesigner_internal::PropertySheetStringValue>(value);
break;
case PropertyCurrentTabName:
currentWidget->setObjectName(value.toString());
break;
case PropertyCurrentTabIcon:
m_tabWidget->setTabIcon(currentIndex, qvariant_cast<QIcon>(resolvePropertyValue(index, value)));
- m_pageToData[currentWidget].icon = qVariantValue<qdesigner_internal::PropertySheetIconValue>(value);
+ m_pageToData[currentWidget].icon = qvariant_cast<qdesigner_internal::PropertySheetIconValue>(value);
break;
case PropertyCurrentTabToolTip:
m_tabWidget->setTabToolTip(currentIndex, qvariant_cast<QString>(resolvePropertyValue(index, value)));
- m_pageToData[currentWidget].tooltip = qVariantValue<qdesigner_internal::PropertySheetStringValue>(value);
+ m_pageToData[currentWidget].tooltip = qvariant_cast<qdesigner_internal::PropertySheetStringValue>(value);
break;
case PropertyCurrentTabWhatsThis:
m_tabWidget->setTabWhatsThis(currentIndex, qvariant_cast<QString>(resolvePropertyValue(index, value)));
- m_pageToData[currentWidget].whatsthis = qVariantValue<qdesigner_internal::PropertySheetStringValue>(value);
+ m_pageToData[currentWidget].whatsthis = qvariant_cast<qdesigner_internal::PropertySheetStringValue>(value);
break;
case PropertyTabWidgetNone:
break;
@@ -486,28 +486,28 @@ QVariant QTabWidgetPropertySheet::property(int index) const
QWidget *currentWidget = m_tabWidget->currentWidget();
if (!currentWidget) {
if (tabWidgetProperty == PropertyCurrentTabIcon)
- return qVariantFromValue(qdesigner_internal::PropertySheetIconValue());
+ return QVariant::fromValue(qdesigner_internal::PropertySheetIconValue());
if (tabWidgetProperty == PropertyCurrentTabText)
- return qVariantFromValue(qdesigner_internal::PropertySheetStringValue());
+ return QVariant::fromValue(qdesigner_internal::PropertySheetStringValue());
if (tabWidgetProperty == PropertyCurrentTabToolTip)
- return qVariantFromValue(qdesigner_internal::PropertySheetStringValue());
+ return QVariant::fromValue(qdesigner_internal::PropertySheetStringValue());
if (tabWidgetProperty == PropertyCurrentTabWhatsThis)
- return qVariantFromValue(qdesigner_internal::PropertySheetStringValue());
+ return QVariant::fromValue(qdesigner_internal::PropertySheetStringValue());
return QVariant(QString());
}
// index-dependent
switch (tabWidgetProperty) {
case PropertyCurrentTabText:
- return qVariantFromValue(m_pageToData.value(currentWidget).text);
+ return QVariant::fromValue(m_pageToData.value(currentWidget).text);
case PropertyCurrentTabName:
return currentWidget->objectName();
case PropertyCurrentTabIcon:
- return qVariantFromValue(m_pageToData.value(currentWidget).icon);
+ return QVariant::fromValue(m_pageToData.value(currentWidget).icon);
case PropertyCurrentTabToolTip:
- return qVariantFromValue(m_pageToData.value(currentWidget).tooltip);
+ return QVariant::fromValue(m_pageToData.value(currentWidget).tooltip);
case PropertyCurrentTabWhatsThis:
- return qVariantFromValue(m_pageToData.value(currentWidget).whatsthis);
+ return QVariant::fromValue(m_pageToData.value(currentWidget).whatsthis);
case PropertyTabWidgetNone:
break;
}
diff --git a/tools/designer/src/lib/shared/qdesigner_taskmenu.cpp b/tools/designer/src/lib/shared/qdesigner_taskmenu.cpp
index cd95f5b..a607f35 100644
--- a/tools/designer/src/lib/shared/qdesigner_taskmenu.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_taskmenu.cpp
@@ -132,7 +132,7 @@ static QString objName(const QDesignerFormEditorInterface *core, QObject *object
const QString objectNameProperty = QLatin1String("objectName");
const int index = sheet->indexOf(objectNameProperty);
const qdesigner_internal::PropertySheetStringValue objectNameValue
- = qVariantValue<qdesigner_internal::PropertySheetStringValue>(sheet->property(index));
+ = qvariant_cast<qdesigner_internal::PropertySheetStringValue>(sheet->property(index));
return objectNameValue.value();
}
@@ -447,7 +447,7 @@ void QDesignerTaskMenu::changeObjectName()
const QString objectNameProperty = QLatin1String("objectName");
PropertySheetStringValue objectNameValue;
objectNameValue.setValue(newObjectName);
- setProperty(fw, CurrentWidgetMode, objectNameProperty, qVariantFromValue(objectNameValue));
+ setProperty(fw, CurrentWidgetMode, objectNameProperty, QVariant::fromValue(objectNameValue));
}
}
}
@@ -465,7 +465,7 @@ void QDesignerTaskMenu::changeTextProperty(const QString &propertyName, const QS
qDebug() << "** WARNING Invalid property" << propertyName << " passed to changeTextProperty!";
return;
}
- PropertySheetStringValue textValue = qVariantValue<PropertySheetStringValue>(sheet->property(index));
+ PropertySheetStringValue textValue = qvariant_cast<PropertySheetStringValue>(sheet->property(index));
const QString oldText = textValue.value();
// Pop up respective dialog
bool accepted = false;
@@ -498,7 +498,7 @@ void QDesignerTaskMenu::changeTextProperty(const QString &propertyName, const QS
textValue.setValue(newText);
- setProperty(fw, pm, propertyName, qVariantFromValue(textValue));
+ setProperty(fw, pm, propertyName, QVariant::fromValue(textValue));
}
void QDesignerTaskMenu::changeToolTip()
@@ -673,7 +673,7 @@ void QDesignerTaskMenu::navigateToSlot(QDesignerFormEditorInterface *core,
if (selectSignalDialog.exec() == QDialog::Accepted) {
QTreeWidgetItem *selectedItem = dialogUi.signalList->selectedItems().first();
const QString signalSignature = selectedItem->text(0);
- const QStringList parameterNames = qVariantValue<QStringList>(selectedItem->data(0, Qt::UserRole));
+ const QStringList parameterNames = qvariant_cast<QStringList>(selectedItem->data(0, Qt::UserRole));
// TODO: Check whether signal is connected to slot
integr->emitNavigateToSlot(objectName, signalSignature, parameterNames);
diff --git a/tools/designer/src/lib/shared/qdesigner_toolbar.cpp b/tools/designer/src/lib/shared/qdesigner_toolbar.cpp
index e3bc64c..629c810 100644
--- a/tools/designer/src/lib/shared/qdesigner_toolbar.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_toolbar.cpp
@@ -146,7 +146,7 @@ ActionList ToolBarEventFilter::contextMenuActions(const QPoint &globalPos)
// Insert before
if (action && index != 0 && !action->isSeparator()) {
QAction *newSeperatorAct = new QAction(tr("Insert Separator before '%1'").arg(action->objectName()), 0);
- qVariantSetValue(itemData, action);
+ itemData.setValue(action);
newSeperatorAct->setData(itemData);
connect(newSeperatorAct, SIGNAL(triggered()), this, SLOT(slotInsertSeparator()));
rc.push_back(newSeperatorAct);
@@ -155,7 +155,7 @@ ActionList ToolBarEventFilter::contextMenuActions(const QPoint &globalPos)
// Append separator
if (actions.empty() || !actions.back()->isSeparator()) {
QAction *newSeperatorAct = new QAction(tr("Append Separator"), 0);
- qVariantSetValue(itemData, static_cast<QAction*>(0));
+ itemData.setValue(static_cast<QAction*>(0));
newSeperatorAct->setData(itemData);
connect(newSeperatorAct, SIGNAL(triggered()), this, SLOT(slotInsertSeparator()));
rc.push_back(newSeperatorAct);
@@ -167,7 +167,7 @@ ActionList ToolBarEventFilter::contextMenuActions(const QPoint &globalPos)
// Remove
if (action) {
QAction *a = new QAction(tr("Remove action '%1'").arg(action->objectName()), 0);
- qVariantSetValue(itemData, action);
+ itemData.setValue(action);
a->setData(itemData);
connect(a, SIGNAL(triggered()), this, SLOT(slotRemoveSelectedAction()));
rc.push_back(a);
diff --git a/tools/designer/src/lib/shared/qdesigner_toolbox.cpp b/tools/designer/src/lib/shared/qdesigner_toolbox.cpp
index 986bfbe..c0f7c20 100644
--- a/tools/designer/src/lib/shared/qdesigner_toolbox.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_toolbox.cpp
@@ -260,12 +260,12 @@ QToolBoxWidgetPropertySheet::QToolBoxWidgetPropertySheet(QToolBox *object, QObje
QDesignerPropertySheet(object, parent),
m_toolBox(object)
{
- createFakeProperty(QLatin1String(currentItemTextKey), qVariantFromValue(qdesigner_internal::PropertySheetStringValue()));
+ createFakeProperty(QLatin1String(currentItemTextKey), QVariant::fromValue(qdesigner_internal::PropertySheetStringValue()));
createFakeProperty(QLatin1String(currentItemNameKey), QString());
- createFakeProperty(QLatin1String(currentItemIconKey), qVariantFromValue(qdesigner_internal::PropertySheetIconValue()));
+ createFakeProperty(QLatin1String(currentItemIconKey), QVariant::fromValue(qdesigner_internal::PropertySheetIconValue()));
if (formWindowBase())
formWindowBase()->addReloadableProperty(this, indexOf(QLatin1String(currentItemIconKey)));
- createFakeProperty(QLatin1String(currentItemToolTipKey), qVariantFromValue(qdesigner_internal::PropertySheetStringValue()));
+ createFakeProperty(QLatin1String(currentItemToolTipKey), QVariant::fromValue(qdesigner_internal::PropertySheetStringValue()));
createFakeProperty(QLatin1String(tabSpacingKey), QVariant(tabSpacingDefault));
}
@@ -306,18 +306,18 @@ void QToolBoxWidgetPropertySheet::setProperty(int index, const QVariant &value)
switch (toolBoxProperty) {
case PropertyCurrentItemText:
m_toolBox->setItemText(currentIndex, qvariant_cast<QString>(resolvePropertyValue(index, value)));
- m_pageToData[currentWidget].text = qVariantValue<qdesigner_internal::PropertySheetStringValue>(value);
+ m_pageToData[currentWidget].text = qvariant_cast<qdesigner_internal::PropertySheetStringValue>(value);
break;
case PropertyCurrentItemName:
currentWidget->setObjectName(value.toString());
break;
case PropertyCurrentItemIcon:
m_toolBox->setItemIcon(currentIndex, qvariant_cast<QIcon>(resolvePropertyValue(index, value)));
- m_pageToData[currentWidget].icon = qVariantValue<qdesigner_internal::PropertySheetIconValue>(value);
+ m_pageToData[currentWidget].icon = qvariant_cast<qdesigner_internal::PropertySheetIconValue>(value);
break;
case PropertyCurrentItemToolTip:
m_toolBox->setItemToolTip(currentIndex, qvariant_cast<QString>(resolvePropertyValue(index, value)));
- m_pageToData[currentWidget].tooltip = qVariantValue<qdesigner_internal::PropertySheetStringValue>(value);
+ m_pageToData[currentWidget].tooltip = qvariant_cast<qdesigner_internal::PropertySheetStringValue>(value);
break;
case PropertyTabSpacing:
case PropertyToolBoxNone:
@@ -353,24 +353,24 @@ QVariant QToolBoxWidgetPropertySheet::property(int index) const
QWidget *currentWidget = m_toolBox->currentWidget();
if (!currentWidget) {
if (toolBoxProperty == PropertyCurrentItemIcon)
- return qVariantFromValue(qdesigner_internal::PropertySheetIconValue());
+ return QVariant::fromValue(qdesigner_internal::PropertySheetIconValue());
if (toolBoxProperty == PropertyCurrentItemText)
- return qVariantFromValue(qdesigner_internal::PropertySheetStringValue());
+ return QVariant::fromValue(qdesigner_internal::PropertySheetStringValue());
if (toolBoxProperty == PropertyCurrentItemToolTip)
- return qVariantFromValue(qdesigner_internal::PropertySheetStringValue());
+ return QVariant::fromValue(qdesigner_internal::PropertySheetStringValue());
return QVariant(QString());
}
// index-dependent
switch (toolBoxProperty) {
case PropertyCurrentItemText:
- return qVariantFromValue(m_pageToData.value(currentWidget).text);
+ return QVariant::fromValue(m_pageToData.value(currentWidget).text);
case PropertyCurrentItemName:
return currentWidget->objectName();
case PropertyCurrentItemIcon:
- return qVariantFromValue(m_pageToData.value(currentWidget).icon);
+ return QVariant::fromValue(m_pageToData.value(currentWidget).icon);
case PropertyCurrentItemToolTip:
- return qVariantFromValue(m_pageToData.value(currentWidget).tooltip);
+ return QVariant::fromValue(m_pageToData.value(currentWidget).tooltip);
case PropertyTabSpacing:
case PropertyToolBoxNone:
break;
diff --git a/tools/designer/src/lib/shared/qdesigner_utils.cpp b/tools/designer/src/lib/shared/qdesigner_utils.cpp
index 3bd0704..de3e387 100644
--- a/tools/designer/src/lib/shared/qdesigner_utils.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_utils.cpp
@@ -82,8 +82,8 @@ namespace qdesigner_internal
for (int c = 0; c < item->columnCount(); c++) {
const QVariant v = item->data(c, Qt::DecorationPropertyRole);
- if (qVariantCanConvert<PropertySheetIconValue>(v))
- item->setIcon(c, iconCache->icon(qVariantValue<PropertySheetIconValue>(v)));
+ if (v.canConvert<PropertySheetIconValue>())
+ item->setIcon(c, iconCache->icon(qvariant_cast<PropertySheetIconValue>(v)));
}
}
@@ -93,8 +93,8 @@ namespace qdesigner_internal
return;
const QVariant v = item->data(Qt::DecorationPropertyRole);
- if (qVariantCanConvert<PropertySheetIconValue>(v))
- item->setIcon(iconCache->icon(qVariantValue<PropertySheetIconValue>(v)));
+ if (v.canConvert<PropertySheetIconValue>())
+ item->setIcon(iconCache->icon(qvariant_cast<PropertySheetIconValue>(v)));
}
void reloadTableItem(DesignerIconCache *iconCache, QTableWidgetItem *item)
@@ -103,8 +103,8 @@ namespace qdesigner_internal
return;
const QVariant v = item->data(Qt::DecorationPropertyRole);
- if (qVariantCanConvert<PropertySheetIconValue>(v))
- item->setIcon(iconCache->icon(qVariantValue<PropertySheetIconValue>(v)));
+ if (v.canConvert<PropertySheetIconValue>())
+ item->setIcon(iconCache->icon(qvariant_cast<PropertySheetIconValue>(v)));
}
void reloadIconResources(DesignerIconCache *iconCache, QObject *object)
@@ -115,8 +115,8 @@ namespace qdesigner_internal
} else if (QComboBox *comboBox = qobject_cast<QComboBox *>(object)) {
for (int i = 0; i < comboBox->count(); i++) {
const QVariant v = comboBox->itemData(i, Qt::DecorationPropertyRole);
- if (qVariantCanConvert<PropertySheetIconValue>(v)) {
- QIcon icon = iconCache->icon(qVariantValue<PropertySheetIconValue>(v));
+ if (v.canConvert<PropertySheetIconValue>()) {
+ QIcon icon = iconCache->icon(qvariant_cast<PropertySheetIconValue>(v));
comboBox->setItemIcon(i, icon);
comboBox->setItemData(i, icon);
}
diff --git a/tools/designer/src/lib/shared/qdesigner_utils_p.h b/tools/designer/src/lib/shared/qdesigner_utils_p.h
index fac0697..bed1d05 100644
--- a/tools/designer/src/lib/shared/qdesigner_utils_p.h
+++ b/tools/designer/src/lib/shared/qdesigner_utils_p.h
@@ -432,15 +432,15 @@ namespace Utils {
inline int valueOf(const QVariant &value, bool *ok = 0)
{
- if (qVariantCanConvert<PropertySheetEnumValue>(value)) {
+ if (value.canConvert<PropertySheetEnumValue>()) {
if (ok)
*ok = true;
- return qVariantValue<PropertySheetEnumValue>(value).value;
+ return qvariant_cast<PropertySheetEnumValue>(value).value;
}
- else if (qVariantCanConvert<PropertySheetFlagValue>(value)) {
+ else if (value.canConvert<PropertySheetFlagValue>()) {
if (ok)
*ok = true;
- return qVariantValue<PropertySheetFlagValue>(value).value;
+ return qvariant_cast<PropertySheetFlagValue>(value).value;
}
return value.toInt(ok);
}
diff --git a/tools/designer/src/lib/shared/richtexteditor.cpp b/tools/designer/src/lib/shared/richtexteditor.cpp
index ec7c2e5..b5a2618 100644
--- a/tools/designer/src/lib/shared/richtexteditor.cpp
+++ b/tools/designer/src/lib/shared/richtexteditor.cpp
@@ -52,6 +52,9 @@
#include <QtCore/QList>
#include <QtCore/QMap>
#include <QtCore/QPointer>
+#include <QtCore/QXmlStreamReader>
+#include <QtCore/QXmlStreamWriter>
+#include <QtCore/QXmlStreamAttributes>
#include <QtGui/QAction>
#include <QtGui/QColorDialog>
@@ -74,28 +77,129 @@
QT_BEGIN_NAMESPACE
-static const char *RichTextDialogC = "RichTextDialog";
-static const char *Geometry = "Geometry";
+static const char RichTextDialogGroupC[] = "RichTextDialog";
+static const char GeometryKeyC[] = "Geometry";
+static const char TabKeyC[] = "Tab";
+
+const bool simplifyRichTextDefault = true;
namespace qdesigner_internal {
+// Richtext simplification filter helpers: Elements to be discarded
+static inline bool filterElement(const QStringRef &name)
+{
+ return name != QLatin1String("meta") && name != QLatin1String("style");
+}
+
+// Richtext simplification filter helpers: Filter attributes of elements
+static inline void filterAttributes(const QStringRef &name,
+ QXmlStreamAttributes *atts,
+ bool *paragraphAlignmentFound)
+{
+ typedef QXmlStreamAttributes::iterator AttributeIt;
+
+ if (atts->isEmpty())
+ return;
+
+ // No style attributes for <body>
+ if (name == QLatin1String("body")) {
+ atts->clear();
+ return;
+ }
+
+ // Clean out everything except 'align' for 'p'
+ if (name == QLatin1String("p")) {
+ for (AttributeIt it = atts->begin(); it != atts->end(); ) {
+ if (it->name() == QLatin1String("align")) {
+ ++it;
+ *paragraphAlignmentFound = true;
+ } else {
+ it = atts->erase(it);
+ }
+ }
+ return;
+ }
+}
+
+// Richtext simplification filter helpers: Check for blank QStringRef.
+static inline bool isWhiteSpace(const QStringRef &in)
+{
+ const int count = in.size();
+ for (int i = 0; i < count; i++)
+ if (!in.at(i).isSpace())
+ return false;
+ return true;
+}
+
+// Richtext simplification filter: Remove hard-coded font settings,
+// <style> elements, <p> attributes other than 'align' and
+// and unnecessary meta-information.
+QString simplifyRichTextFilter(const QString &in, bool *isPlainTextPtr = 0)
+{
+ unsigned elementCount = 0;
+ bool paragraphAlignmentFound = false;
+ QString out;
+ QXmlStreamReader reader(in);
+ QXmlStreamWriter writer(&out);
+ writer.setAutoFormatting(false);
+ writer.setAutoFormattingIndent(0);
+
+ while (!reader.atEnd()) {
+ switch (reader.readNext()) {
+ case QXmlStreamReader::StartElement:
+ elementCount++;
+ if (filterElement(reader.name())) {
+ const QStringRef name = reader.name();
+ QXmlStreamAttributes attributes = reader.attributes();
+ filterAttributes(name, &attributes, &paragraphAlignmentFound);
+ writer.writeStartElement(name.toString());
+ if (!attributes.isEmpty())
+ writer.writeAttributes(attributes);
+ } else {
+ reader.readElementText(); // Skip away all nested elements and characters.
+ }
+ break;
+ case QXmlStreamReader::Characters:
+ if (!isWhiteSpace(reader.text()))
+ writer.writeCharacters(reader.text().toString());
+ break;
+ case QXmlStreamReader::EndElement:
+ writer.writeEndElement();
+ break;
+ default:
+ break;
+ }
+ }
+ // Check for plain text (no spans, just <html><head><body><p>)
+ if (isPlainTextPtr)
+ *isPlainTextPtr = !paragraphAlignmentFound && elementCount == 4u; //
+ return out;
+}
+
class RichTextEditor : public QTextEdit
{
Q_OBJECT
public:
- RichTextEditor(QWidget *parent = 0);
- void setDefaultFont(const QFont &font);
+ explicit RichTextEditor(QWidget *parent = 0);
+ void setDefaultFont(QFont font);
QToolBar *createToolBar(QDesignerFormEditorInterface *core, QWidget *parent = 0);
+ bool simplifyRichText() const { return m_simplifyRichText; }
+
public slots:
void setFontBold(bool b);
void setFontPointSize(double);
void setText(const QString &text);
+ void setSimplifyRichText(bool v);
QString text(Qt::TextFormat format) const;
signals:
void stateChanged();
+ void simplifyRichTextChanged(bool);
+
+private:
+ bool m_simplifyRichText;
};
class AddLinkDialog : public QDialog
@@ -303,6 +407,7 @@ private:
QAction *m_align_justify_action;
QAction *m_link_action;
QAction *m_image_action;
+ QAction *m_simplify_richtext_action;
ColorAction *m_color_action;
QComboBox *m_font_size_input;
@@ -432,6 +537,17 @@ RichTextEditorToolBar::RichTextEditorToolBar(QDesignerFormEditorInterface *core,
this, SLOT(colorChanged(QColor)));
addAction(m_color_action);
+ addSeparator();
+
+ // Simplify rich text
+ m_simplify_richtext_action
+ = createCheckableAction(createIconSet(QLatin1String("simplifyrichtext.png")),
+ tr("Simplify Rich Text"), m_editor, SLOT(setSimplifyRichText(bool)));
+ m_simplify_richtext_action->setChecked(m_editor->simplifyRichText());
+ connect(m_editor, SIGNAL(simplifyRichTextChanged(bool)),
+ m_simplify_richtext_action, SLOT(setChecked(bool)));
+ addAction(m_simplify_richtext_action);
+
connect(editor, SIGNAL(textChanged()), this, SLOT(updateActions()));
connect(editor, SIGNAL(stateChanged()), this, SLOT(updateActions()));
@@ -551,7 +667,7 @@ void RichTextEditorToolBar::updateActions()
}
RichTextEditor::RichTextEditor(QWidget *parent)
- : QTextEdit(parent)
+ : QTextEdit(parent), m_simplifyRichText(simplifyRichTextDefault)
{
connect(this, SIGNAL(currentCharFormatChanged(QTextCharFormat)),
this, SIGNAL(stateChanged()));
@@ -579,14 +695,31 @@ void RichTextEditor::setFontPointSize(double d)
void RichTextEditor::setText(const QString &text)
{
+
if (Qt::mightBeRichText(text))
setHtml(text);
else
setPlainText(text);
}
-void RichTextEditor::setDefaultFont(const QFont &font)
+void RichTextEditor::setSimplifyRichText(bool v)
{
+ if (v != m_simplifyRichText) {
+ m_simplifyRichText = v;
+ emit simplifyRichTextChanged(v);
+ }
+}
+
+void RichTextEditor::setDefaultFont(QFont font)
+{
+ // Some default fonts on Windows have a default size of 7.8,
+ // which results in complicated rich text generated by toHtml().
+ // Use an integer value.
+ const int pointSize = qRound(font.pointSizeF());
+ if (pointSize > 0 && !qFuzzyCompare(qreal(pointSize), font.pointSizeF())) {
+ font.setPointSize(pointSize);
+ }
+
document()->setDefaultFont(font);
if (font.pointSize() > 0)
setFontPointSize(font.pointSize());
@@ -602,15 +735,16 @@ QString RichTextEditor::text(Qt::TextFormat format) const
case Qt::PlainText:
return toPlainText();
case Qt::RichText:
- return toHtml();
+ return m_simplifyRichText ? simplifyRichTextFilter(toHtml()) : toHtml();
case Qt::AutoText:
break;
}
const QString html = toHtml();
- const QString plain = toPlainText();
- QTextEdit tester;
- tester.setPlainText(plain);
- return tester.toHtml() == html ? plain : html;
+ bool isPlainText;
+ const QString simplifiedHtml = simplifyRichTextFilter(html, &isPlainText);
+ if (isPlainText)
+ return toPlainText();
+ return m_simplifyRichText ? simplifiedHtml : html;
}
RichTextEditorDialog::RichTextEditorDialog(QDesignerFormEditorInterface *core, QWidget *parent) :
@@ -619,15 +753,25 @@ RichTextEditorDialog::RichTextEditorDialog(QDesignerFormEditorInterface *core, Q
m_text_edit(new HtmlTextEdit),
m_tab_widget(new QTabWidget),
m_state(Clean),
- m_core(core)
+ m_core(core),
+ m_initialTab(RichTextIndex)
{
setWindowTitle(tr("Edit text"));
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
+ // Read settings
+ const QDesignerSettingsInterface *settings = core->settingsManager();
+ const QString rootKey = QLatin1String(RichTextDialogGroupC) + QLatin1Char('/');
+ const QByteArray lastGeometry = settings->value(rootKey + QLatin1String(GeometryKeyC)).toByteArray();
+ const int initialTab = settings->value(rootKey + QLatin1String(TabKeyC), QVariant(m_initialTab)).toInt();
+ if (initialTab == RichTextIndex || initialTab == SourceIndex)
+ m_initialTab = initialTab;
+
m_text_edit->setAcceptRichText(false);
new HtmlHighlighter(m_text_edit);
connect(m_editor, SIGNAL(textChanged()), this, SLOT(richTextChanged()));
+ connect(m_editor, SIGNAL(simplifyRichTextChanged(bool)), this, SLOT(richTextChanged()));
connect(m_text_edit, SIGNAL(textChanged()), this, SLOT(sourceChanged()));
// The toolbar needs to be created after the RichTextEditor
@@ -661,32 +805,33 @@ RichTextEditorDialog::RichTextEditorDialog(QDesignerFormEditorInterface *core, Q
layout->addWidget(m_tab_widget);
layout->addWidget(buttonBox);
- m_editor->setFocus();
-
- QDesignerSettingsInterface *settings = core->settingsManager();
- settings->beginGroup(QLatin1String(RichTextDialogC));
-
- if (settings->contains(QLatin1String(Geometry)))
- restoreGeometry(settings->value(QLatin1String(Geometry)).toByteArray());
-
- settings->endGroup();
+ if (!lastGeometry.isEmpty())
+ restoreGeometry(lastGeometry);
}
RichTextEditorDialog::~RichTextEditorDialog()
{
QDesignerSettingsInterface *settings = m_core->settingsManager();
- settings->beginGroup(QLatin1String(RichTextDialogC));
+ settings->beginGroup(QLatin1String(RichTextDialogGroupC));
- settings->setValue(QLatin1String(Geometry), saveGeometry());
+ settings->setValue(QLatin1String(GeometryKeyC), saveGeometry());
+ settings->setValue(QLatin1String(TabKeyC), m_tab_widget->currentIndex());
settings->endGroup();
}
int RichTextEditorDialog::showDialog()
{
- m_tab_widget->setCurrentIndex(0);
- m_editor->selectAll();
- m_editor->setFocus();
-
+ m_tab_widget->setCurrentIndex(m_initialTab);
+ switch (m_initialTab) {
+ case RichTextIndex:
+ m_editor->selectAll();
+ m_editor->setFocus();
+ break;
+ case SourceIndex:
+ m_text_edit->selectAll();
+ m_text_edit->setFocus();
+ break;
+ }
return exec();
}
@@ -697,6 +842,9 @@ void RichTextEditorDialog::setDefaultFont(const QFont &font)
void RichTextEditorDialog::setText(const QString &text)
{
+ // Generally simplify rich text unless verbose text is found.
+ const bool isSimplifiedRichText = !text.startsWith("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">");
+ m_editor->setSimplifyRichText(isSimplifiedRichText);
m_editor->setText(text);
m_text_edit->setPlainText(text);
m_state = Clean;
diff --git a/tools/designer/src/lib/shared/richtexteditor_p.h b/tools/designer/src/lib/shared/richtexteditor_p.h
index 44023ef..116ecb4 100644
--- a/tools/designer/src/lib/shared/richtexteditor_p.h
+++ b/tools/designer/src/lib/shared/richtexteditor_p.h
@@ -93,6 +93,7 @@ private:
QTabWidget *m_tab_widget;
State m_state;
QDesignerFormEditorInterface *m_core;
+ int m_initialTab;
};
} // namespace qdesigner_internal
diff --git a/tools/designer/src/lib/shared/stylesheeteditor.cpp b/tools/designer/src/lib/shared/stylesheeteditor.cpp
index b76d700..bee5210 100644
--- a/tools/designer/src/lib/shared/stylesheeteditor.cpp
+++ b/tools/designer/src/lib/shared/stylesheeteditor.cpp
@@ -79,6 +79,7 @@ StyleSheetEditor::StyleSheetEditor(QWidget *parent)
: QTextEdit(parent)
{
setTabStopWidth(fontMetrics().width(QLatin1Char(' '))*4);
+ setAcceptRichText(false);
new CssHighlighter(document());
}
@@ -393,14 +394,14 @@ StyleSheetPropertyEditorDialog::StyleSheetPropertyEditorDialog(QWidget *parent,
qt_extension<QDesignerPropertySheetExtension*>(m_fw->core()->extensionManager(), m_widget);
Q_ASSERT(sheet != 0);
const int index = sheet->indexOf(QLatin1String(styleSheetProperty));
- const PropertySheetStringValue value = qVariantValue<PropertySheetStringValue>(sheet->property(index));
+ const PropertySheetStringValue value = qvariant_cast<PropertySheetStringValue>(sheet->property(index));
setText(value.value());
}
void StyleSheetPropertyEditorDialog::applyStyleSheet()
{
const PropertySheetStringValue value(text(), false);
- m_fw->cursor()->setWidgetProperty(m_widget, QLatin1String(styleSheetProperty), qVariantFromValue(value));
+ m_fw->cursor()->setWidgetProperty(m_widget, QLatin1String(styleSheetProperty), QVariant::fromValue(value));
}
} // namespace qdesigner_internal
diff --git a/tools/designer/src/lib/shared/widgetfactory.cpp b/tools/designer/src/lib/shared/widgetfactory.cpp
index c7b13a1..d686052 100644
--- a/tools/designer/src/lib/shared/widgetfactory.cpp
+++ b/tools/designer/src/lib/shared/widgetfactory.cpp
@@ -782,7 +782,7 @@ void WidgetFactory::applyStyleToTopLevel(QStyle *style, QWidget *widget)
widget->setStyle(style);
widget->setPalette(standardPalette);
- const QWidgetList lst = qFindChildren<QWidget*>(widget);
+ const QWidgetList lst = widget->findChildren<QWidget*>();
const QWidgetList::const_iterator cend = lst.constEnd();
for (QWidgetList::const_iterator it = lst.constBegin(); it != cend; ++it)
(*it)->setStyle(style);
diff --git a/tools/designer/src/lib/shared/zoomwidget.cpp b/tools/designer/src/lib/shared/zoomwidget.cpp
index f5d7434..5cf4ea2 100644
--- a/tools/designer/src/lib/shared/zoomwidget.cpp
+++ b/tools/designer/src/lib/shared/zoomwidget.cpp
@@ -328,7 +328,7 @@ void ZoomWidget::setWidget(QWidget *w, Qt::WindowFlags wFlags)
scene().removeItem(m_proxy);
if (QWidget *w = m_proxy->widget()) {
// remove the event filter
- if (QObject *evf = qFindChild<QObject*>(w, QLatin1String(zoomedEventFilterRedirectorNameC)))
+ if (QObject *evf = w->findChild<QObject*>(QLatin1String(zoomedEventFilterRedirectorNameC)))
w->removeEventFilter(evf);
}
m_proxy->deleteLater();
diff --git a/tools/designer/src/lib/uilib/abstractformbuilder.cpp b/tools/designer/src/lib/uilib/abstractformbuilder.cpp
index 6f009e3..ad2aa05 100644
--- a/tools/designer/src/lib/uilib/abstractformbuilder.cpp
+++ b/tools/designer/src/lib/uilib/abstractformbuilder.cpp
@@ -341,7 +341,7 @@ QWidget *QAbstractFormBuilder::create(DomWidget *ui_widget, QWidget *parentWidge
w->addAction(a);
} else if (QActionGroup *g = m_actionGroups.value(name)) {
w->addActions(g->actions());
- } else if (QMenu *menu = qFindChild<QMenu*>(w, name)) {
+ } else if (QMenu *menu = w->findChild<QMenu*>(name)) {
w->addAction(menu->menuAction());
addMenuAction(menu->menuAction());
}
@@ -363,9 +363,9 @@ QWidget *QAbstractFormBuilder::create(DomWidget *ui_widget, QWidget *parentWidge
const QStringList zOrderNames = ui_widget->elementZOrder();
if (!zOrderNames.isEmpty()) {
- QList<QWidget *> zOrder = qVariantValue<QWidgetList>(w->property("_q_zOrder"));
+ QList<QWidget *> zOrder = qvariant_cast<QWidgetList>(w->property("_q_zOrder"));
foreach (const QString &widgetName, zOrderNames) {
- if (QWidget *child = qFindChild<QWidget*>(w, widgetName)) {
+ if (QWidget *child = w->findChild<QWidget*>(widgetName)) {
if (child->parentWidget() == w) {
zOrder.removeAll(child);
zOrder.append(child);
@@ -373,7 +373,7 @@ QWidget *QAbstractFormBuilder::create(DomWidget *ui_widget, QWidget *parentWidge
}
}
}
- w->setProperty("_q_zOrder", qVariantFromValue(zOrder));
+ w->setProperty("_q_zOrder", QVariant::fromValue(zOrder));
}
return w;
@@ -1287,7 +1287,7 @@ DomWidget *QAbstractFormBuilder::createDom(QWidget *widget, DomWidget *ui_parent
{
QList<QObject *> childObjects = widget->children();
- const QList<QWidget *> list = qVariantValue<QWidgetList>(widget->property("_q_widgetOrder"));
+ const QList<QWidget *> list = qvariant_cast<QWidgetList>(widget->property("_q_widgetOrder"));
foreach (QWidget *w, list) {
if (childObjects.contains(w)) {
children.append(w);
@@ -1296,7 +1296,7 @@ DomWidget *QAbstractFormBuilder::createDom(QWidget *widget, DomWidget *ui_parent
}
children += childObjects;
- const QList<QWidget *> zOrder = qVariantValue<QWidgetList>(widget->property("_q_zOrder"));
+ const QList<QWidget *> zOrder = qvariant_cast<QWidgetList>(widget->property("_q_zOrder"));
if (list != zOrder) {
QStringList zOrderList;
QListIterator<QWidget* > itZOrder(zOrder);
@@ -1603,14 +1603,14 @@ void QAbstractFormBuilder::applyTabStops(QWidget *widget, DomTabStops *tabStops)
for (int i=0; i<l.size(); ++i) {
const QString name = l.at(i);
- QWidget *child = qFindChild<QWidget*>(widget, name);
+ QWidget *child = widget->findChild<QWidget*>(name);
if (!child) {
uiLibWarning(QCoreApplication::translate("QAbstractFormBuilder", "While applying tab stops: The widget '%1' could not be found.").arg(name));
continue;
}
if (i == 0) {
- lastWidget = qFindChild<QWidget*>(widget, name);
+ lastWidget = widget->findChild<QWidget*>(name);
continue;
} else if (!child || !lastWidget) {
continue;
@@ -1618,7 +1618,7 @@ void QAbstractFormBuilder::applyTabStops(QWidget *widget, DomTabStops *tabStops)
QWidget::setTabOrder(lastWidget, child);
- lastWidget = qFindChild<QWidget*>(widget, name);
+ lastWidget = widget->findChild<QWidget*>(name);
}
}
@@ -1747,7 +1747,7 @@ static void loadItemProps(QAbstractFormBuilder *abstractFormBuilder, T *item,
if ((p = properties.value(it.second))) {
v = formBuilder->textBuilder()->loadText(p);
QVariant nativeValue = formBuilder->textBuilder()->toNativeValue(v);
- item->setData(it.first.first, qVariantValue<QString>(nativeValue));
+ item->setData(it.first.first, qvariant_cast<QString>(nativeValue));
item->setData(it.first.second, v);
}
@@ -1759,7 +1759,7 @@ static void loadItemProps(QAbstractFormBuilder *abstractFormBuilder, T *item,
if ((p = properties.value(strings.iconAttribute))) {
v = formBuilder->resourceBuilder()->loadResource(formBuilder->workingDirectory(), p);
QVariant nativeValue = formBuilder->resourceBuilder()->toNativeValue(v);
- item->setIcon(qVariantValue<QIcon>(nativeValue));
+ item->setIcon(qvariant_cast<QIcon>(nativeValue));
item->setData(Qt::DecorationPropertyRole, v);
}
}
@@ -1855,7 +1855,7 @@ static void loadItemProps(QAbstractFormBuilder *abstractFormBuilder, QTableWidge
if ((p = properties.value(it.second))) {
v = formBuilder->textBuilder()->loadText(p);
QVariant nativeValue = formBuilder->textBuilder()->toNativeValue(v);
- item->setData(it.first.first, qVariantValue<QString>(nativeValue));
+ item->setData(it.first.first, qvariant_cast<QString>(nativeValue));
item->setData(it.first.second, v);
}
@@ -1867,7 +1867,7 @@ static void loadItemProps(QAbstractFormBuilder *abstractFormBuilder, QTableWidge
if ((p = properties.value(strings.iconAttribute))) {
v = formBuilder->resourceBuilder()->loadResource(formBuilder->workingDirectory(), p);
QVariant nativeValue = formBuilder->resourceBuilder()->toNativeValue(v);
- item->setIcon(qVariantValue<QIcon>(nativeValue));
+ item->setIcon(qvariant_cast<QIcon>(nativeValue));
item->setData(Qt::DecorationPropertyRole, v);
}
}
@@ -1885,7 +1885,7 @@ static void loadItemProps(QAbstractFormBuilder *abstractFormBuilder, QListWidget
if ((p = properties.value(it.second))) {
v = formBuilder->textBuilder()->loadText(p);
QVariant nativeValue = formBuilder->textBuilder()->toNativeValue(v);
- item->setData(it.first.first, qVariantValue<QString>(nativeValue));
+ item->setData(it.first.first, qvariant_cast<QString>(nativeValue));
item->setData(it.first.second, v);
}
@@ -1897,7 +1897,7 @@ static void loadItemProps(QAbstractFormBuilder *abstractFormBuilder, QListWidget
if ((p = properties.value(strings.iconAttribute))) {
v = formBuilder->resourceBuilder()->loadResource(formBuilder->workingDirectory(), p);
QVariant nativeValue = formBuilder->resourceBuilder()->toNativeValue(v);
- item->setIcon(qVariantValue<QIcon>(nativeValue));
+ item->setIcon(qvariant_cast<QIcon>(nativeValue));
item->setData(Qt::DecorationPropertyRole, v);
}
}
@@ -2337,14 +2337,14 @@ void QAbstractFormBuilder::loadTreeWidgetExtraInfo(DomWidget *ui_widget, QTreeWi
if ((p = properties.value(it.second))) {
v = textBuilder()->loadText(p);
QVariant nativeValue = textBuilder()->toNativeValue(v);
- treeWidget->headerItem()->setData(i, it.first.first, qVariantValue<QString>(nativeValue));
+ treeWidget->headerItem()->setData(i, it.first.first, qvariant_cast<QString>(nativeValue));
treeWidget->headerItem()->setData(i, it.first.second, v);
}
if ((p = properties.value(strings.iconAttribute))) {
v = resourceBuilder()->loadResource(workingDirectory(), p);
QVariant nativeValue = resourceBuilder()->toNativeValue(v);
- treeWidget->headerItem()->setIcon(i, qVariantValue<QIcon>(nativeValue));
+ treeWidget->headerItem()->setIcon(i, qvariant_cast<QIcon>(nativeValue));
treeWidget->headerItem()->setData(i, Qt::DecorationPropertyRole, v);
}
}
@@ -2374,14 +2374,14 @@ void QAbstractFormBuilder::loadTreeWidgetExtraInfo(DomWidget *ui_widget, QTreeWi
col++;
QVariant textV = textBuilder()->loadText(property);
QVariant nativeValue = textBuilder()->toNativeValue(textV);
- currentItem->setText(col, qVariantValue<QString>(nativeValue));
+ currentItem->setText(col, qvariant_cast<QString>(nativeValue));
currentItem->setData(col, Qt::DisplayPropertyRole, textV);
} else if (col >= 0) {
if (property->attributeName() == strings.iconAttribute) {
QVariant v = resourceBuilder()->loadResource(workingDirectory(), property);
if (v.isValid()) {
QVariant nativeValue = resourceBuilder()->toNativeValue(v);
- currentItem->setIcon(col, qVariantValue<QIcon>(nativeValue));
+ currentItem->setIcon(col, qvariant_cast<QIcon>(nativeValue));
currentItem->setData(col, Qt::DecorationPropertyRole, v);
}
} else {
@@ -2397,7 +2397,7 @@ void QAbstractFormBuilder::loadTreeWidgetExtraInfo(DomWidget *ui_widget, QTreeWi
if (rolePair.first >= 0) {
QVariant textV = textBuilder()->loadText(property);
QVariant nativeValue = textBuilder()->toNativeValue(textV);
- currentItem->setData(col, rolePair.first, qVariantValue<QString>(nativeValue));
+ currentItem->setData(col, rolePair.first, qvariant_cast<QString>(nativeValue));
currentItem->setData(col, rolePair.second, textV);
}
}
@@ -2475,13 +2475,13 @@ void QAbstractFormBuilder::loadComboBoxExtraInfo(DomWidget *ui_widget, QComboBox
p = properties.value(strings.textAttribute);
if (p && p->elementString()) {
textData = textBuilder()->loadText(p);
- text = qVariantValue<QString>(textBuilder()->toNativeValue(textData));
+ text = qvariant_cast<QString>(textBuilder()->toNativeValue(textData));
}
p = properties.value(strings.iconAttribute);
if (p) {
iconData = resourceBuilder()->loadResource(workingDirectory(), p);
- icon = qVariantValue<QIcon>(resourceBuilder()->toNativeValue(iconData));
+ icon = qvariant_cast<QIcon>(resourceBuilder()->toNativeValue(iconData));
}
comboBox->addItem(icon, text);
diff --git a/tools/designer/src/lib/uilib/formbuilder.cpp b/tools/designer/src/lib/uilib/formbuilder.cpp
index c97daac..c7d4e90 100644
--- a/tools/designer/src/lib/uilib/formbuilder.cpp
+++ b/tools/designer/src/lib/uilib/formbuilder.cpp
@@ -319,7 +319,7 @@ QWidget *QFormBuilder::widgetByName(QWidget *topLevel, const QString &name)
if (topLevel->objectName() == name)
return topLevel;
- return qFindChild<QWidget*>(topLevel, name);
+ return topLevel->findChild<QWidget*>(name);
}
static QObject *objectByName(QWidget *topLevel, const QString &name)
@@ -328,7 +328,7 @@ static QObject *objectByName(QWidget *topLevel, const QString &name)
if (topLevel->objectName() == name)
return topLevel;
- return qFindChild<QObject*>(topLevel, name);
+ return topLevel->findChild<QObject*>(name);
}
/*!
diff --git a/tools/designer/src/lib/uilib/formbuilderextra.cpp b/tools/designer/src/lib/uilib/formbuilderextra.cpp
index 6c3357f..0747974 100644
--- a/tools/designer/src/lib/uilib/formbuilderextra.cpp
+++ b/tools/designer/src/lib/uilib/formbuilderextra.cpp
@@ -136,7 +136,7 @@ bool QFormBuilderExtra::applyBuddy(const QString &buddyName, BuddyMode applyMode
return false;
}
- const QWidgetList widgets = qFindChildren<QWidget*>(label->topLevelWidget(), buddyName);
+ const QWidgetList widgets = label->topLevelWidget()->findChildren<QWidget*>(buddyName);
if (widgets.empty()) {
label->setBuddy(0);
return false;
diff --git a/tools/designer/src/lib/uilib/properties.cpp b/tools/designer/src/lib/uilib/properties.cpp
index 615aa8a..b660dc4 100644
--- a/tools/designer/src/lib/uilib/properties.cpp
+++ b/tools/designer/src/lib/uilib/properties.cpp
@@ -78,7 +78,7 @@ QVariant domPropertyToVariant(QAbstractFormBuilder *afb,const QMetaObject *meta,
case DomProperty::String: {
const int index = meta->indexOfProperty(p->attributeName().toUtf8());
if (index != -1 && meta->property(index).type() == QVariant::KeySequence)
- return qVariantFromValue(QKeySequence(p->elementString()->text()));
+ return QVariant::fromValue(QKeySequence(p->elementString()->text()));
}
break;
@@ -96,7 +96,7 @@ QVariant domPropertyToVariant(QAbstractFormBuilder *afb,const QMetaObject *meta,
afb->setupColorGroup(palette, QPalette::Disabled, dom->elementDisabled());
palette.setCurrentColorGroup(QPalette::Active);
- return qVariantFromValue(palette);
+ return QVariant::fromValue(palette);
}
case DomProperty::Set: {
@@ -135,7 +135,7 @@ QVariant domPropertyToVariant(QAbstractFormBuilder *afb,const QMetaObject *meta,
return QVariant(e.keyToValue(enumValue.toUtf8()));
}
case DomProperty::Brush:
- return qVariantFromValue(afb->setupBrush(p->elementBrush()));
+ return QVariant::fromValue(afb->setupBrush(p->elementBrush()));
default:
if (afb->resourceBuilder()->isResourceProperty(p)) {
return afb->resourceBuilder()->loadResource(afb->workingDirectory(), p);
@@ -212,7 +212,7 @@ QVariant domPropertyToVariant(const DomProperty *p)
case DomProperty::Char: {
const DomChar *character = p->elementChar();
const QChar c(character->elementUnicode());
- return qVariantFromValue(c);
+ return QVariant::fromValue(c);
}
case DomProperty::Color: {
@@ -220,7 +220,7 @@ QVariant domPropertyToVariant(const DomProperty *p)
QColor c(color->elementRed(), color->elementGreen(), color->elementBlue());
if (color->hasAttributeAlpha())
c.setAlpha(color->attributeAlpha());
- return qVariantFromValue(c);
+ return QVariant::fromValue(c);
}
case DomProperty::Font: {
@@ -248,7 +248,7 @@ QVariant domPropertyToVariant(const DomProperty *p)
if (font->hasElementStyleStrategy()) {
f.setStyleStrategy(enumKeyOfObjectToValue<QAbstractFormBuilderGadget, QFont::StyleStrategy>("styleStrategy", font->elementStyleStrategy().toLatin1()));
}
- return qVariantFromValue(f);
+ return QVariant::fromValue(f);
}
case DomProperty::Date: {
@@ -275,15 +275,15 @@ QVariant domPropertyToVariant(const DomProperty *p)
#ifndef QT_NO_CURSOR
case DomProperty::Cursor:
- return qVariantFromValue(QCursor(static_cast<Qt::CursorShape>(p->elementCursor())));
+ return QVariant::fromValue(QCursor(static_cast<Qt::CursorShape>(p->elementCursor())));
case DomProperty::CursorShape:
- return qVariantFromValue(QCursor(enumKeyOfObjectToValue<QAbstractFormBuilderGadget, Qt::CursorShape>("cursorShape", p->elementCursorShape().toLatin1())));
+ return QVariant::fromValue(QCursor(enumKeyOfObjectToValue<QAbstractFormBuilderGadget, Qt::CursorShape>("cursorShape", p->elementCursorShape().toLatin1())));
#endif
case DomProperty::Locale: {
const DomLocale *locale = p->elementLocale();
- return qVariantFromValue(QLocale(enumKeyOfObjectToValue<QAbstractFormBuilderGadget, QLocale::Language>("language", locale->attributeLanguage().toLatin1()),
+ return QVariant::fromValue(QLocale(enumKeyOfObjectToValue<QAbstractFormBuilderGadget, QLocale::Language>("language", locale->attributeLanguage().toLatin1()),
enumKeyOfObjectToValue<QAbstractFormBuilderGadget, QLocale::Country>("country", locale->attributeCountry().toLatin1())));
}
case DomProperty::SizePolicy: {
@@ -309,7 +309,7 @@ QVariant domPropertyToVariant(const DomProperty *p)
sizePolicy.setVerticalPolicy(sp);
}
- return qVariantFromValue(sizePolicy);
+ return QVariant::fromValue(sizePolicy);
}
case DomProperty::StringList:
diff --git a/tools/designer/src/lib/uilib/resourcebuilder.cpp b/tools/designer/src/lib/uilib/resourcebuilder.cpp
index 810bea0..d19a09a 100644
--- a/tools/designer/src/lib/uilib/resourcebuilder.cpp
+++ b/tools/designer/src/lib/uilib/resourcebuilder.cpp
@@ -91,7 +91,7 @@ QVariant QResourceBuilder::loadResource(const QDir &workingDirectory, const DomP
case DomProperty::Pixmap: {
const DomResourcePixmap *dpx = property->elementPixmap();
QPixmap pixmap(QFileInfo(workingDirectory, dpx->text()).absoluteFilePath());
- return qVariantFromValue(pixmap);
+ return QVariant::fromValue(pixmap);
}
case DomProperty::IconSet: {
const DomResourceIcon *dpi = property->elementIconSet();
@@ -113,10 +113,10 @@ QVariant QResourceBuilder::loadResource(const QDir &workingDirectory, const DomP
icon.addFile(QFileInfo(workingDirectory, dpi->elementSelectedOff()->text()).absoluteFilePath(), QSize(), QIcon::Selected, QIcon::Off);
if (flags & SelectedOn)
icon.addFile(QFileInfo(workingDirectory, dpi->elementSelectedOn()->text()).absoluteFilePath(), QSize(), QIcon::Selected, QIcon::On);
- return qVariantFromValue(icon);
+ return QVariant::fromValue(icon);
} else { // 4.3 legacy
const QIcon icon(QFileInfo(workingDirectory, dpi->text()).absoluteFilePath());
- return qVariantFromValue(icon);
+ return QVariant::fromValue(icon);
}
}
break;
diff --git a/tools/designer/src/uitools/quiloader.cpp b/tools/designer/src/uitools/quiloader.cpp
index c7e7829..411059e 100644
--- a/tools/designer/src/uitools/quiloader.cpp
+++ b/tools/designer/src/uitools/quiloader.cpp
@@ -102,27 +102,27 @@ QVariant TranslatingTextBuilder::loadText(const DomProperty *text) const
if (str->hasAttributeNotr()) {
const QString notr = str->attributeNotr();
if (notr == QLatin1String("true") || notr == QLatin1String("yes"))
- return qVariantFromValue(str->text());
+ return QVariant::fromValue(str->text());
}
QUiTranslatableStringValue strVal;
strVal.setValue(str->text().toUtf8());
if (str->hasAttributeComment())
strVal.setComment(str->attributeComment().toUtf8());
- return qVariantFromValue(strVal);
+ return QVariant::fromValue(strVal);
}
QVariant TranslatingTextBuilder::toNativeValue(const QVariant &value) const
{
- if (qVariantCanConvert<QUiTranslatableStringValue>(value)) {
- QUiTranslatableStringValue tsv = qVariantValue<QUiTranslatableStringValue>(value);
+ if (value.canConvert<QUiTranslatableStringValue>()) {
+ QUiTranslatableStringValue tsv = qvariant_cast<QUiTranslatableStringValue>(value);
if (!m_trEnabled)
return QString::fromUtf8(tsv.value().data());
- return qVariantFromValue(
+ return QVariant::fromValue(
QApplication::translate(m_className, tsv.value(), tsv.comment(),
QCoreApplication::UnicodeUTF8));
}
- if (qVariantCanConvert<QString>(value))
- return qVariantFromValue(qVariantValue<QString>(value));
+ if (value.canConvert<QString>())
+ return QVariant::fromValue(qvariant_cast<QString>(value));
return value;
}
@@ -150,7 +150,7 @@ static void recursiveReTranslate(QTreeWidgetItem *item, const QByteArray &class_
for (unsigned j = 0; irs[j].shadowRole >= 0; j++) {
QVariant v = item->data(i, irs[j].shadowRole);
if (v.isValid()) {
- QUiTranslatableStringValue tsv = qVariantValue<QUiTranslatableStringValue>(v);
+ QUiTranslatableStringValue tsv = qvariant_cast<QUiTranslatableStringValue>(v);
const QString text = QApplication::translate(class_name,
tsv.value(), tsv.comment(),
QCoreApplication::UnicodeUTF8);
@@ -172,7 +172,7 @@ static void reTranslateWidgetItem(T *item, const QByteArray &class_name)
for (unsigned j = 0; irs[j].shadowRole >= 0; j++) {
QVariant v = item->data(irs[j].shadowRole);
if (v.isValid()) {
- QUiTranslatableStringValue tsv = qVariantValue<QUiTranslatableStringValue>(v);
+ QUiTranslatableStringValue tsv = qvariant_cast<QUiTranslatableStringValue>(v);
const QString text = QApplication::translate(class_name,
tsv.value(), tsv.comment(),
QCoreApplication::UnicodeUTF8);
@@ -191,7 +191,7 @@ static void reTranslateTableItem(QTableWidgetItem *item, const QByteArray &class
do { \
QVariant v = mainWidget->widget(i)->property(propName); \
if (v.isValid()) { \
- QUiTranslatableStringValue tsv = qVariantValue<QUiTranslatableStringValue>(v); \
+ QUiTranslatableStringValue tsv = qvariant_cast<QUiTranslatableStringValue>(v); \
const QString text = QApplication::translate(m_className, \
tsv.value(), tsv.comment(), \
QCoreApplication::UnicodeUTF8); \
@@ -217,7 +217,7 @@ public:
if (prop.startsWith(PROP_GENERIC_PREFIX)) {
const QByteArray propName = prop.mid(sizeof(PROP_GENERIC_PREFIX) - 1);
const QUiTranslatableStringValue tsv =
- qVariantValue<QUiTranslatableStringValue>(o->property(prop));
+ qvariant_cast<QUiTranslatableStringValue>(o->property(prop));
const QString text = QApplication::translate(m_className,
tsv.value(), tsv.comment(),
QCoreApplication::UnicodeUTF8);
@@ -273,7 +273,7 @@ public:
for (int i = 0; i < cnt; ++i) {
const QVariant v = combow->itemData(i, Qt::DisplayPropertyRole);
if (v.isValid()) {
- QUiTranslatableStringValue tsv = qVariantValue<QUiTranslatableStringValue>(v);
+ QUiTranslatableStringValue tsv = qvariant_cast<QUiTranslatableStringValue>(v);
const QString text = QApplication::translate(m_className,
tsv.value(), tsv.comment(),
QCoreApplication::UnicodeUTF8);
@@ -430,7 +430,7 @@ void FormBuilderPrivate::applyProperties(QObject *o, const QList<DomProperty*> &
continue;
const QByteArray name = p->attributeName().toUtf8();
if (dynamicTr) {
- o->setProperty(PROP_GENERIC_PREFIX + name, qVariantFromValue(strVal));
+ o->setProperty(PROP_GENERIC_PREFIX + name, QVariant::fromValue(strVal));
anyTrs = trEnabled;
}
o->setProperty(name, text);
@@ -489,7 +489,7 @@ QWidget *FormBuilderPrivate::create(DomWidget *ui_widget, QWidget *parentWidget)
const QString text = convertTranslatable(p##attribute, m_class, &strVal); \
if (!text.isEmpty()) { \
if (dynamicTr) \
- mainWidget->widget(i)->setProperty(propName, qVariantFromValue(strVal)); \
+ mainWidget->widget(i)->setProperty(propName, QVariant::fromValue(strVal)); \
mainWidget->setter(i, text); \
} \
} \
diff --git a/tools/linguist/linguist/formpreviewview.cpp b/tools/linguist/linguist/formpreviewview.cpp
index f360a16..3f3f82a 100644
--- a/tools/linguist/linguist/formpreviewview.cpp
+++ b/tools/linguist/linguist/formpreviewview.cpp
@@ -83,7 +83,7 @@ static bool operator==(const QUiTranslatableStringValue &tsv1, const QUiTranslat
target.type = _type; \
target.target._target; \
target.prop._prop; \
- (*targets)[qVariantValue<QUiTranslatableStringValue>(_tsv)].append(target); \
+ (*targets)[qvariant_cast<QUiTranslatableStringValue>(_tsv)].append(target); \
} while (0)
static void registerTreeItem(QTreeWidgetItem *item, TargetsHash *targets)
@@ -350,14 +350,14 @@ static void highlightAction(QAction *a, bool on)
if (on) {
if (!bak.isValid()) {
QFont fnt = qApp->font();
- a->setProperty(FONT_BACKUP_PROP, qVariantFromValue(a->font().resolve(fnt)));
+ a->setProperty(FONT_BACKUP_PROP, QVariant::fromValue(a->font().resolve(fnt)));
fnt.setBold(true);
fnt.setItalic(true);
a->setFont(fnt);
}
} else {
if (bak.isValid()) {
- a->setFont(qVariantValue<QFont>(bak));
+ a->setFont(qvariant_cast<QFont>(bak));
a->setProperty(FONT_BACKUP_PROP, QVariant());
}
}
@@ -374,8 +374,8 @@ static void highlightWidget(QWidget *w, bool on)
foreach (QObject *co, w->children())
if (QWidget *cw = qobject_cast<QWidget *>(co))
cw->setPalette(cw->palette().resolve(pal));
- w->setProperty(PALETTE_BACKUP_PROP, qVariantFromValue(w->palette().resolve(pal)));
- w->setProperty(AUTOFILL_BACKUP_PROP, qVariantFromValue(w->autoFillBackground()));
+ w->setProperty(PALETTE_BACKUP_PROP, QVariant::fromValue(w->palette().resolve(pal)));
+ w->setProperty(AUTOFILL_BACKUP_PROP, QVariant::fromValue(w->autoFillBackground()));
QColor col1 = pal.color(QPalette::Dark);
QColor col2 = pal.color(QPalette::Light);
pal.setColor(QPalette::Base, col1);
@@ -390,8 +390,8 @@ static void highlightWidget(QWidget *w, bool on)
}
} else {
if (bak.isValid()) {
- w->setPalette(qVariantValue<QPalette>(bak));
- w->setAutoFillBackground(qVariantValue<bool>(w->property(AUTOFILL_BACKUP_PROP)));
+ w->setPalette(qvariant_cast<QPalette>(bak));
+ w->setAutoFillBackground(qvariant_cast<bool>(w->property(AUTOFILL_BACKUP_PROP)));
w->setProperty(PALETTE_BACKUP_PROP, QVariant());
w->setProperty(AUTOFILL_BACKUP_PROP, QVariant());
}
diff --git a/tools/linguist/linguist/mainwindow.cpp b/tools/linguist/linguist/mainwindow.cpp
index 1611699..e5c8461 100644
--- a/tools/linguist/linguist/mainwindow.cpp
+++ b/tools/linguist/linguist/mainwindow.cpp
@@ -184,7 +184,7 @@ private:
static const QVariant &pxObsolete()
{
static const QVariant v =
- qVariantFromValue(QPixmap(QLatin1String(":/images/s_check_obsolete.png")));
+ QVariant::fromValue(QPixmap(QLatin1String(":/images/s_check_obsolete.png")));
return v;
}
@@ -1347,7 +1347,7 @@ void MainWindow::manual()
<< (QT_VERSION >> 16) << ((QT_VERSION >> 8) & 0xFF)
<< (QT_VERSION & 0xFF)
<< QLatin1String("/qdoc/linguist-manual.html")
- << QLatin1Char('\0') << endl;
+ << QLatin1Char('\n') << endl;
}
void MainWindow::about()
diff --git a/tools/linguist/linguist/messagemodel.cpp b/tools/linguist/linguist/messagemodel.cpp
index 39ba9fd..36202ab 100644
--- a/tools/linguist/linguist/messagemodel.cpp
+++ b/tools/linguist/linguist/messagemodel.cpp
@@ -1231,17 +1231,17 @@ int MessageModel::columnCount(const QModelIndex &) const
QVariant MessageModel::data(const QModelIndex &index, int role) const
{
static QVariant pxOn =
- qVariantFromValue(QPixmap(QLatin1String(":/images/s_check_on.png")));
+ QVariant::fromValue(QPixmap(QLatin1String(":/images/s_check_on.png")));
static QVariant pxOff =
- qVariantFromValue(QPixmap(QLatin1String(":/images/s_check_off.png")));
+ QVariant::fromValue(QPixmap(QLatin1String(":/images/s_check_off.png")));
static QVariant pxObsolete =
- qVariantFromValue(QPixmap(QLatin1String(":/images/s_check_obsolete.png")));
+ QVariant::fromValue(QPixmap(QLatin1String(":/images/s_check_obsolete.png")));
static QVariant pxDanger =
- qVariantFromValue(QPixmap(QLatin1String(":/images/s_check_danger.png")));
+ QVariant::fromValue(QPixmap(QLatin1String(":/images/s_check_danger.png")));
static QVariant pxWarning =
- qVariantFromValue(QPixmap(QLatin1String(":/images/s_check_warning.png")));
+ QVariant::fromValue(QPixmap(QLatin1String(":/images/s_check_warning.png")));
static QVariant pxEmpty =
- qVariantFromValue(QPixmap(QLatin1String(":/images/s_check_empty.png")));
+ QVariant::fromValue(QPixmap(QLatin1String(":/images/s_check_empty.png")));
int row = index.row();
int column = index.column() - 1;
diff --git a/tools/linguist/phrasebooks/french.qph b/tools/linguist/phrasebooks/french.qph
index 9e1a580..1884ed3 100644
--- a/tools/linguist/phrasebooks/french.qph
+++ b/tools/linguist/phrasebooks/french.qph
@@ -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>
diff --git a/tools/linguist/phrasebooks/russian.qph b/tools/linguist/phrasebooks/russian.qph
index 750fda0..5876ee9 100644
--- a/tools/linguist/phrasebooks/russian.qph
+++ b/tools/linguist/phrasebooks/russian.qph
@@ -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>
diff --git a/tools/makeqpf/mainwindow.cpp b/tools/makeqpf/mainwindow.cpp
index 166a193..ae723f5 100644
--- a/tools/makeqpf/mainwindow.cpp
+++ b/tools/makeqpf/mainwindow.cpp
@@ -199,7 +199,7 @@ void MainWindow::on_generate_clicked()
if (item->checkState() != Qt::Checked)
continue;
- QPF::CharacterRange range = qVariantValue<QPF::CharacterRange>(item->data(Qt::UserRole));
+ QPF::CharacterRange range = qvariant_cast<QPF::CharacterRange>(item->data(Qt::UserRole));
ranges.append(range);
}
}
@@ -297,7 +297,7 @@ void MainWindow::populateCharacterRanges()
item->setText(text);
item->setCheckState(Qt::Checked);
- item->setData(Qt::UserRole, qVariantFromValue(range));
+ item->setData(Qt::UserRole, QVariant::fromValue(range));
}
}
diff --git a/tools/qdbus/qdbus/qdbus.cpp b/tools/qdbus/qdbus/qdbus.cpp
index ce18cb9..c93288c 100644
--- a/tools/qdbus/qdbus/qdbus.cpp
+++ b/tools/qdbus/qdbus/qdbus.cpp
@@ -324,7 +324,7 @@ static int placeCall(const QString &service, const QString &path, const QString
if (id == int(QMetaType::UChar)) {
// special case: QVariant::convert doesn't convert to/from
// UChar because it can't decide if it's a character or a number
- p = qVariantFromValue<uchar>(p.toUInt());
+ p = QVariant::fromValue<uchar>(p.toUInt());
} else if (id < int(QMetaType::User) && id != int(QVariant::Map)) {
p.convert(QVariant::Type(id));
if (p.type() == QVariant::Invalid) {
@@ -334,7 +334,7 @@ static int placeCall(const QString &service, const QString &path, const QString
}
} else if (id == qMetaTypeId<QDBusVariant>()) {
QDBusVariant tmp(p);
- p = qVariantFromValue(tmp);
+ p = QVariant::fromValue(tmp);
} else if (id == qMetaTypeId<QDBusObjectPath>()) {
QDBusObjectPath path(argument);
if (path.path().isNull()) {
@@ -342,7 +342,7 @@ static int placeCall(const QString &service, const QString &path, const QString
qPrintable(argument));
return 1;
}
- p = qVariantFromValue(path);
+ p = QVariant::fromValue(path);
} else if (id == qMetaTypeId<QDBusSignature>()) {
QDBusSignature sig(argument);
if (sig.signature().isNull()) {
@@ -350,7 +350,7 @@ static int placeCall(const QString &service, const QString &path, const QString
qPrintable(argument));
return 1;
}
- p = qVariantFromValue(sig);
+ p = QVariant::fromValue(sig);
} else {
fprintf(stderr, "Sorry, can't pass arg of type '%s'.\n",
types.at(i).constData());
diff --git a/tools/qdbus/qdbusviewer/qdbusviewer.cpp b/tools/qdbus/qdbusviewer/qdbusviewer.cpp
index 9878aff..9bc5a15 100644
--- a/tools/qdbus/qdbusviewer/qdbusviewer.cpp
+++ b/tools/qdbus/qdbusviewer/qdbusviewer.cpp
@@ -217,7 +217,7 @@ void QDBusViewer::setProperty(const BusSignature &sig)
QDBusMessage message = QDBusMessage::createMethodCall(sig.mService, sig.mPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("Set"));
QList<QVariant> arguments;
- arguments << sig.mInterface << sig.mName << qVariantFromValue(QDBusVariant(value));
+ arguments << sig.mInterface << sig.mName << QVariant::fromValue(QDBusVariant(value));
message.setArguments(arguments);
c.callWithCallback(message, this, SLOT(dumpMessage(QDBusMessage)));
@@ -283,7 +283,7 @@ void QDBusViewer::callMethod(const BusSignature &sig)
// interface wants a variant
for (int i = 0; i < args.count(); ++i) {
if (types.at(i) == qMetaTypeId<QDBusVariant>())
- args[i] = qVariantFromValue(QDBusVariant(args.at(i)));
+ args[i] = QVariant::fromValue(QDBusVariant(args.at(i)));
}
QDBusMessage message = QDBusMessage::createMethodCall(sig.mService, sig.mPath, sig.mInterface,
diff --git a/tools/qdbus/qdbusxml2cpp/qdbusxml2cpp.cpp b/tools/qdbus/qdbusxml2cpp/qdbusxml2cpp.cpp
index d9343e3..31667dc 100644
--- a/tools/qdbus/qdbusxml2cpp/qdbusxml2cpp.cpp
+++ b/tools/qdbus/qdbusxml2cpp/qdbusxml2cpp.cpp
@@ -617,7 +617,7 @@ static void writeProxy(const QString &filename, const QDBusIntrospection::Interf
if (property.access != QDBusIntrospection::Property::Read) {
hs << " inline void " << setter << "(" << constRefArg(type) << "value)" << endl
<< " { setProperty(\"" << property.name
- << "\", qVariantFromValue(value)); }" << endl;
+ << "\", QVariant::fromValue(value)); }" << endl;
}
hs << endl;
@@ -660,7 +660,7 @@ static void writeProxy(const QString &filename, const QDBusIntrospection::Interf
if (!method.inputArgs.isEmpty()) {
hs << " argumentList";
for (int argPos = 0; argPos < method.inputArgs.count(); ++argPos)
- hs << " << qVariantFromValue(" << argNames.at(argPos) << ')';
+ hs << " << QVariant::fromValue(" << argNames.at(argPos) << ')';
hs << ";" << endl;
}
@@ -693,7 +693,7 @@ static void writeProxy(const QString &filename, const QDBusIntrospection::Interf
if (!method.inputArgs.isEmpty()) {
hs << " argumentList";
for (argPos = 0; argPos < method.inputArgs.count(); ++argPos)
- hs << " << qVariantFromValue(" << argNames.at(argPos) << ')';
+ hs << " << QVariant::fromValue(" << argNames.at(argPos) << ')';
hs << ";" << endl;
}
@@ -940,7 +940,7 @@ static void writeAdaptor(const QString &filename, const QDBusIntrospection::Inte
cs << "void " << className << "::" << setter << "(" << constRefType << "value)" << endl
<< "{" << endl
<< " // set the value of property " << property.name << endl
- << " parent()->setProperty(\"" << property.name << "\", qVariantFromValue(value";
+ << " parent()->setProperty(\"" << property.name << "\", QVariant::fromValue(value";
if (constRefType.contains(QLatin1String("QDBusVariant")))
cs << ".variant()";
cs << "));" << endl
diff --git a/tools/qdoc3/codemarker.cpp b/tools/qdoc3/codemarker.cpp
index 7130d61..ec86ae3 100644
--- a/tools/qdoc3/codemarker.cpp
+++ b/tools/qdoc3/codemarker.cpp
@@ -624,7 +624,9 @@ QString CodeMarker::macName(const Node *node, const QString &name)
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>();
}
diff --git a/tools/qdoc3/codemarker.h b/tools/qdoc3/codemarker.h
index 53ad4a8..f17b28e 100644
--- a/tools/qdoc3/codemarker.h
+++ b/tools/qdoc3/codemarker.h
@@ -153,7 +153,8 @@ class CodeMarker
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,
diff --git a/tools/qdoc3/config.h b/tools/qdoc3/config.h
index b087b1c..335a0d6 100644
--- a/tools/qdoc3/config.h
+++ b/tools/qdoc3/config.h
@@ -119,6 +119,7 @@ class Config
};
#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,9 +143,7 @@ class Config
#define CONFIG_MACRO "macro"
#define CONFIG_NATURALLANGUAGE "naturallanguage"
#define CONFIG_OBSOLETELINKS "obsoletelinks"
-#define CONFIG_ONLINE "online"
-#define CONFIG_OFFLINE "offline"
-#define CONFIG_CREATOR "creator"
+#define CONFIG_APPLICATION "application"
#define CONFIG_OUTPUTDIR "outputdir"
#define CONFIG_OUTPUTENCODING "outputencoding"
#define CONFIG_OUTPUTLANGUAGE "outputlanguage"
diff --git a/tools/qdoc3/cppcodemarker.cpp b/tools/qdoc3/cppcodemarker.cpp
index 562e92b..3615a84 100644
--- a/tools/qdoc3/cppcodemarker.cpp
+++ b/tools/qdoc3/cppcodemarker.cpp
@@ -1127,7 +1127,8 @@ QString CppCodeMarker::addMarkUp(const QString& protectedCode,
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 @@ QList<Section> CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode,
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;
diff --git a/tools/qdoc3/cppcodemarker.h b/tools/qdoc3/cppcodemarker.h
index eca3936..804a302 100644
--- a/tools/qdoc3/cppcodemarker.h
+++ b/tools/qdoc3/cppcodemarker.h
@@ -80,7 +80,8 @@ class CppCodeMarker : public CodeMarker
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,
diff --git a/tools/qdoc3/ditaxmlgenerator.cpp b/tools/qdoc3/ditaxmlgenerator.cpp
index 4789c67..7892025 100644
--- a/tools/qdoc3/ditaxmlgenerator.cpp
+++ b/tools/qdoc3/ditaxmlgenerator.cpp
@@ -440,7 +440,6 @@ void DitaXmlGenerator::initializeGenerator(const Config &config)
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";
@@ -1765,7 +1764,7 @@ void DitaXmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker
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 +1781,7 @@ void DitaXmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker
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";
diff --git a/tools/qdoc3/generator.cpp b/tools/qdoc3/generator.cpp
index 24219a1..7f39be2 100644
--- a/tools/qdoc3/generator.cpp
+++ b/tools/qdoc3/generator.cpp
@@ -1068,8 +1068,11 @@ void Generator::generateSince(const Node *node, CodeMarker *marker)
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
diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp
index 76d8c0d..4603a40 100644
--- a/tools/qdoc3/htmlgenerator.cpp
+++ b/tools/qdoc3/htmlgenerator.cpp
@@ -219,9 +219,7 @@ HtmlGenerator::HtmlGenerator()
inTableHeader(false),
numTableRows(0),
threeColumnEnumValueTable(true),
- offlineDocs(false),
- onlineDocs(false),
- creatorDocs(true),
+ application(Online),
funcLeftParen("\\S(\\()"),
myTree(0),
slow(false),
@@ -290,11 +288,13 @@ void HtmlGenerator::initializeGenerator(const Config &config)
project = config.getString(CONFIG_PROJECT);
- onlineDocs = config.getBool(CONFIG_ONLINE);
-
- offlineDocs = config.getBool(CONFIG_OFFLINE);
-
- creatorDocs = 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())
@@ -1489,7 +1489,7 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker)
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"))
@@ -1571,6 +1571,13 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker)
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())
@@ -1590,7 +1597,7 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker)
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";
@@ -1713,7 +1720,7 @@ void HtmlGenerator::generateBreadCrumbs(const QString& title,
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);
@@ -1721,52 +1728,50 @@ void HtmlGenerator::generateBreadCrumbs(const QString& title,
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>";
}
}
@@ -1811,9 +1816,8 @@ void HtmlGenerator::generateHeader(const QString& title,
// Setting some additional style sheet related details depending on configuration (e.g. online/offline)
-
- if(onlineDocs==true) // onlineDocs is for the web
- {
+ switch (application) {
+ case Online:
// Browser spec styles
out() << " <!--[if IE]>\n";
out() << "<meta name=\"MSSmartTagsPreventParsing\" content=\"true\">\n";
@@ -1832,22 +1836,15 @@ void HtmlGenerator::generateHeader(const QString& title,
out() << "</head>\n";
// CheckEmptyAndLoadList activating search
out() << "<body class=\"\" onload=\"CheckEmptyAndLoadList();\">\n";
- }
- else if (offlineDocs == true) // offlineDocs is for ???
- {
- out() << "</head>\n";
- out() << "<body class=\"offline \">\n"; // offline
- }
- else if (creatorDocs == true) // creatorDocs is for Assistant/Creator
- {
+ break;
+ case Creator:
out() << "</head>\n";
out() << "<body class=\"offline narrow creator\">\n"; // offline narrow
- }
- // default -- not used except if one forgets to set any of the above settings to true
- else
- {
+ break;
+ default:
out() << "</head>\n";
- out() << "<body>\n";
+ out() << "<body>\n";
+ break;
}
#ifdef GENERATE_MAC_REFS
@@ -1855,31 +1852,77 @@ void HtmlGenerator::generateHeader(const QString& title,
generateMacRef(node, marker);
#endif
-
- if(onlineDocs==true) // onlineDocs is for the web
- {
+ switch (application) {
+ case Online:
out() << QString(postHeader).replace("\\" + COMMAND_VERSION, myTree->version());
generateBreadCrumbs(title,node,marker);
out() << QString(postPostHeader).replace("\\" + COMMAND_VERSION, myTree->version());
- }
- else if (offlineDocs == true) // offlineDocs is for ???
- {
- out() << QString(creatorPostHeader).replace("\\" + COMMAND_VERSION, myTree->version());
- generateBreadCrumbs(title,node,marker);
- out() << QString(creatorPostPostHeader).replace("\\" + COMMAND_VERSION, myTree->version());
- }
- else if (creatorDocs == true) // creatorDocs is for Assistant/Creator
- {
+ break;
+ case Creator:
out() << QString(creatorPostHeader).replace("\\" + COMMAND_VERSION, myTree->version());
generateBreadCrumbs(title,node,marker);
out() << QString(creatorPostPostHeader).replace("\\" + COMMAND_VERSION, myTree->version());
- }
- // default -- not used except if one forgets to set any of the above settings to true
- else
- {
+ 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());
+ 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
@@ -1914,34 +1957,30 @@ void HtmlGenerator::generateFooter(const Node *node)
out() << QString(footer).replace("\\" + COMMAND_VERSION, myTree->version())
<< QString(address).replace("\\" + COMMAND_VERSION, myTree->version());
-
- if (onlineDocs == true)
- {
- 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";
- }
- else if (offlineDocs == true)
- {
- out() << "</body>\n";
- }
- else if (creatorDocs == true)
- {
- out() << "</body>\n";
- }
- else
- {
- 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";
}
@@ -1977,7 +2016,7 @@ void HtmlGenerator::generateIncludes(const InnerNode *inner, CodeMarker *marker)
}
/*!
- 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,
@@ -2063,7 +2102,7 @@ void HtmlGenerator::generateTableOfContents(const Node *node,
/*!
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,
@@ -2241,6 +2280,38 @@ QString HtmlGenerator::generateListOfAllMemberFile(const InnerNode *inner,
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)
diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h
index d92c349..eab10c6 100644
--- a/tools/qdoc3/htmlgenerator.h
+++ b/tools/qdoc3/htmlgenerator.h
@@ -95,6 +95,10 @@ class HtmlGenerator : public PageGenerator
LastSinceType
};
+ enum Application {
+ Online,
+ Creator};
+
public:
HtmlGenerator();
~HtmlGenerator();
@@ -164,7 +168,10 @@ class HtmlGenerator : public PageGenerator
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,9 +301,7 @@ class HtmlGenerator : public PageGenerator
bool inTableHeader;
int numTableRows;
bool threeColumnEnumValueTable;
- bool onlineDocs;
- bool offlineDocs;
- bool creatorDocs;
+ Application application;
QString link;
QStringList sectionNumber;
QRegExp funcLeftParen;
diff --git a/tools/qdoc3/main.cpp b/tools/qdoc3/main.cpp
index 616ae2f..fa7efee 100644
--- a/tools/qdoc3/main.cpp
+++ b/tools/qdoc3/main.cpp
@@ -105,6 +105,7 @@ static bool showInternal = false;
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.
@@ -192,6 +193,24 @@ static void processQdocconfFile(const QString &fileName)
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 @@ int main(int argc, char **argv)
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 @@ int main(int argc, char **argv)
/*
Main loop.
*/
- foreach (QString qf, qdocFiles)
+ foreach (QString qf, qdocFiles) {
+ //qDebug() << "PROCESSING:" << qf;
processQdocconfFile(qf);
+ }
qDeleteAll(trees);
return EXIT_SUCCESS;
diff --git a/tools/qdoc3/test/assistant.qdocconf b/tools/qdoc3/test/assistant.qdocconf
index 6b7044a..ab2b69a 100644
--- a/tools/qdoc3/test/assistant.qdocconf
+++ b/tools/qdoc3/test/assistant.qdocconf
@@ -7,9 +7,6 @@ include(qt-defines.qdocconf)
project = Qt Assistant
description = Qt Assistant Manual
url = http://qt.nokia.com/doc/4.8
-online = false
-offline = false
-creator = true
indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index
@@ -19,39 +16,39 @@ qhp.Assistant.file = assistant.qhp
qhp.Assistant.namespace = com.trolltech.assistant.480
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.8.0 tools assistant
qhp.Assistant.customFilters.Assistant.name = Qt Assistant Manual
diff --git a/tools/qdoc3/test/designer.qdocconf b/tools/qdoc3/test/designer.qdocconf
index d479151..1bb366d 100644
--- a/tools/qdoc3/test/designer.qdocconf
+++ b/tools/qdoc3/test/designer.qdocconf
@@ -7,9 +7,6 @@ include(qt-defines.qdocconf)
project = Qt Designer
description = Qt Designer Manual
url = http://qt.nokia.com/doc/4.8
-online = false
-offline = false
-creator = true
indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index
diff --git a/tools/qdoc3/test/linguist.qdocconf b/tools/qdoc3/test/linguist.qdocconf
index f3578bc..4cb4cc7 100644
--- a/tools/qdoc3/test/linguist.qdocconf
+++ b/tools/qdoc3/test/linguist.qdocconf
@@ -7,9 +7,6 @@ include(qt-defines.qdocconf)
project = Qt Linguist
description = Qt Linguist Manual
url = http://qt.nokia.com/doc/4.8
-online = false
-offline = false
-creator = true
indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index
diff --git a/tools/qdoc3/test/qdeclarative.qdocconf b/tools/qdoc3/test/qdeclarative.qdocconf
index 0cff98e..80bca29 100644
--- a/tools/qdoc3/test/qdeclarative.qdocconf
+++ b/tools/qdoc3/test/qdeclarative.qdocconf
@@ -8,9 +8,6 @@ project = Qml
description = Qml Reference Documentation
url = http://qt.nokia.com/doc/4.7/
qmlonly = true
-online = false
-offline = false
-creator = true
edition.Console.modules = QtCore QtDBus QtNetwork QtScript QtSql QtXml \
QtXmlPatterns QtTest
@@ -31,32 +28,32 @@ qhp.Qml.indexTitle = Qml Reference
# 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
diff --git a/tools/qdoc3/test/qmake.qdocconf b/tools/qdoc3/test/qmake.qdocconf
index 4efd19a..04fe6f8 100644
--- a/tools/qdoc3/test/qmake.qdocconf
+++ b/tools/qdoc3/test/qmake.qdocconf
@@ -7,9 +7,6 @@ include(qt-defines.qdocconf)
project = QMake
description = QMake Manual
url = http://qt.nokia.com/doc/4.8
-online = false
-offline = false
-creator = true
indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index
diff --git a/tools/qdoc3/test/qt-api-only.qdocconf b/tools/qdoc3/test/qt-api-only.qdocconf
index 1ec0c6b..cdd7a7c 100644
--- a/tools/qdoc3/test/qt-api-only.qdocconf
+++ b/tools/qdoc3/test/qt-api-only.qdocconf
@@ -5,9 +5,6 @@ include(qt-build-docs.qdocconf)
# qmake.qdocconf).
url = ./
-online = false
-offline = false
-creator = true
# Ensures that the documentation for the tools is not included in the generated
# .qhp file.
@@ -30,10 +27,7 @@ qhp.Qt.excluded += $QT_SOURCE_TREE/doc/src/development/assistant-manual.qdoc \
# 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
diff --git a/tools/qdoc3/test/qt-build-docs.qdocconf b/tools/qdoc3/test/qt-build-docs.qdocconf
index 5ed97eb..a674c72 100644
--- a/tools/qdoc3/test/qt-build-docs.qdocconf
+++ b/tools/qdoc3/test/qt-build-docs.qdocconf
@@ -7,9 +7,6 @@ include(qt-defines.qdocconf)
project = Qt
description = Qt Reference Documentation
url = http://qt.nokia.com/doc/4.8
-online = false
-offline = false
-creator = true
sourceencoding = UTF-8
outputencoding = UTF-8
@@ -21,6 +18,7 @@ qhp.Qt.file = qt.qhp
qhp.Qt.namespace = com.trolltech.qt.480
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
diff --git a/tools/qdoc3/test/qt-cpp-ignore.qdocconf b/tools/qdoc3/test/qt-cpp-ignore.qdocconf
index 4963b96..b78b512 100644
--- a/tools/qdoc3/test/qt-cpp-ignore.qdocconf
+++ b/tools/qdoc3/test/qt-cpp-ignore.qdocconf
@@ -64,6 +64,7 @@ Cpp.ignoretokens = QAXFACTORY_EXPORT \
Q_XMLSTREAM_EXPORT \
Q_XMLPATTERNS_EXPORT \
QDBUS_EXPORT \
+ Q_DBUS_EXPORT \
QT_BEGIN_NAMESPACE \
QT_BEGIN_INCLUDE_NAMESPACE \
QT_END_NAMESPACE \
diff --git a/tools/qdoc3/test/qt-html-templates.qdocconf b/tools/qdoc3/test/qt-html-templates.qdocconf
index e31a5ea..03dd008 100644
--- a/tools/qdoc3/test/qt-html-templates.qdocconf
+++ b/tools/qdoc3/test/qt-html-templates.qdocconf
@@ -4,15 +4,12 @@ HTML.stylesheets = style/style.css \
style/style_ie8.css \
style/style_ie6.css
-HTML.creatorpostheader = "**\n"
-HTML.creatorpostpostheader = "***\n"
-
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" \
@@ -30,7 +27,7 @@ HTML.postheader = " <div class=\"header\" id=\"qtdocheader\">\n" \
" <div id=\"shortCut\">\n" \
" <ul>\n" \
" <li class=\"shortCut-topleft-inactive\"><span><a href=\"index.html\">Qt 4.8</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" \
@@ -41,14 +38,14 @@ HTML.postheader = " <div class=\"header\" id=\"qtdocheader\">\n" \
" <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=\"qtglobal.html\">Global Declarations</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=\"qtquick.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" \
" <li><a href=\"best-practices.html\">How-To's and Best Practices</a></li> \n" \
@@ -100,7 +97,7 @@ HTML.postheader = " <div class=\"header\" id=\"qtdocheader\">\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=\"qtquick.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" \
@@ -149,6 +146,7 @@ HTML.footer = " <!-- /div -->\n" \
" <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" \
@@ -161,11 +159,12 @@ HTML.footer = " <!-- /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 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"
diff --git a/tools/qdoc3/test/qt-html-templates_ja_JP.qdocconf b/tools/qdoc3/test/qt-html-templates_ja_JP.qdocconf
index 027548e..e2abd2a 100644
--- a/tools/qdoc3/test/qt-html-templates_ja_JP.qdocconf
+++ b/tools/qdoc3/test/qt-html-templates_ja_JP.qdocconf
@@ -160,19 +160,9 @@ HTML.footer = " <!-- /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 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"
diff --git a/tools/qdoc3/test/qt-html-templates_zh_CN.qdocconf b/tools/qdoc3/test/qt-html-templates_zh_CN.qdocconf
index 94ac431..2c5c9d9 100644
--- a/tools/qdoc3/test/qt-html-templates_zh_CN.qdocconf
+++ b/tools/qdoc3/test/qt-html-templates_zh_CN.qdocconf
@@ -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.8/index.html\">" \
- "<font color=\"#004faf\">主页</font></a>&nbsp;&middot;" \
- " <a href=\"http://qt.nokia.com/doc/4.8/classes.html\">" \
- "<font color=\"#004faf\">所有类</font></a>&nbsp;&middot;" \
- " <a href=\"http://qt.nokia.com/doc/4.8/functions.html\">" \
- "<font color=\"#004faf\">所有函数</font></a>&nbsp;&middot;" \
- " <a href=\"http://qt.nokia.com/doc/4.8/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.8</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"
diff --git a/tools/qdoc3/test/qt.qdocconf b/tools/qdoc3/test/qt.qdocconf
index 0e1f5f8..7095d1a 100644
--- a/tools/qdoc3/test/qt.qdocconf
+++ b/tools/qdoc3/test/qt.qdocconf
@@ -9,9 +9,6 @@ versionsym =
version = %VERSION%
description = Qt Reference Documentation
url = http://qt.nokia.com/doc/4.8
-online = false
-offline = false
-creator = true
sourceencoding = UTF-8
outputencoding = UTF-8
diff --git a/tools/qml/qml.pro b/tools/qml/qml.pro
index efb82d1..d794005 100644
--- a/tools/qml/qml.pro
+++ b/tools/qml/qml.pro
@@ -35,7 +35,7 @@ maemo5 {
symbian {
TARGET.UID3 = 0x20021317
include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
- TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
+ TARGET.EPOCHEAPSIZE = 0x20000 0x4000000
TARGET.CAPABILITY = NetworkServices ReadUserData
!contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) {
LIBS += -lsensrvclient -lsensrvutil
diff --git a/tools/runonphone/main.cpp b/tools/runonphone/main.cpp
index 7767e4b..93b087b 100644
--- a/tools/runonphone/main.cpp
+++ b/tools/runonphone/main.cpp
@@ -51,6 +51,7 @@
#include "trksignalhandler.h"
#include "serenum.h"
+#include "ossignalconverter.h"
void printUsage(QTextStream& outstream, QString exeName)
{
@@ -235,6 +236,8 @@ int main(int argc, char *argv[])
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()));
diff --git a/tools/runonphone/ossignalconverter.cpp b/tools/runonphone/ossignalconverter.cpp
new file mode 100644
index 0000000..6554e9f
--- /dev/null
+++ b/tools/runonphone/ossignalconverter.cpp
@@ -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;
diff --git a/tools/runonphone/ossignalconverter.h b/tools/runonphone/ossignalconverter.h
new file mode 100644
index 0000000..f53f3c1
--- /dev/null
+++ b/tools/runonphone/ossignalconverter.h
@@ -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 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 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
diff --git a/tools/runonphone/ossignalconverter_p.h b/tools/runonphone/ossignalconverter_p.h
new file mode 100644
index 0000000..dddc9ca
--- /dev/null
+++ b/tools/runonphone/ossignalconverter_p.h
@@ -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
diff --git a/tools/runonphone/runonphone.pro b/tools/runonphone/runonphone.pro
index 0c63723..15dff51 100644
--- a/tools/runonphone/runonphone.pro
+++ b/tools/runonphone/runonphone.pro
@@ -7,10 +7,13 @@ CONFIG -= app_bundle
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
diff --git a/tools/shared/qtpropertybrowser/qtvariantproperty.cpp b/tools/shared/qtpropertybrowser/qtvariantproperty.cpp
index b16fac3..948fa1e 100644
--- a/tools/shared/qtpropertybrowser/qtvariantproperty.cpp
+++ b/tools/shared/qtpropertybrowser/qtvariantproperty.cpp
@@ -549,7 +549,7 @@ void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, con
void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QKeySequence &val)
{
QVariant v;
- qVariantSetValue(v, val);
+ v.setValue(val);
valueChanged(property, v);
}
@@ -636,7 +636,7 @@ void QtVariantPropertyManagerPrivate::slotEnumIconsChanged(QtProperty *property,
{
if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) {
QVariant v;
- qVariantSetValue(v, enumIcons);
+ v.setValue(enumIcons);
emit q_ptr->attributeChanged(varProp, m_enumIconsAttribute, v);
}
}
@@ -1488,7 +1488,7 @@ QVariant QtVariantPropertyManager::attributeValue(const QtProperty *property, co
return enumManager->enumNames(internProp);
if (attribute == d_ptr->m_enumIconsAttribute) {
QVariant v;
- qVariantSetValue(v, enumManager->enumIcons(internProp));
+ v.setValue(enumManager->enumIcons(internProp));
return v;
}
return QVariant();
@@ -1568,73 +1568,73 @@ void QtVariantPropertyManager::setValue(QtProperty *property, const QVariant &va
QtAbstractPropertyManager *manager = internProp->propertyManager();
if (QtIntPropertyManager *intManager = qobject_cast<QtIntPropertyManager *>(manager)) {
- intManager->setValue(internProp, qVariantValue<int>(val));
+ intManager->setValue(internProp, qvariant_cast<int>(val));
return;
} else if (QtDoublePropertyManager *doubleManager = qobject_cast<QtDoublePropertyManager *>(manager)) {
- doubleManager->setValue(internProp, qVariantValue<double>(val));
+ doubleManager->setValue(internProp, qvariant_cast<double>(val));
return;
} else if (QtBoolPropertyManager *boolManager = qobject_cast<QtBoolPropertyManager *>(manager)) {
- boolManager->setValue(internProp, qVariantValue<bool>(val));
+ boolManager->setValue(internProp, qvariant_cast<bool>(val));
return;
} else if (QtStringPropertyManager *stringManager = qobject_cast<QtStringPropertyManager *>(manager)) {
- stringManager->setValue(internProp, qVariantValue<QString>(val));
+ stringManager->setValue(internProp, qvariant_cast<QString>(val));
return;
} else if (QtDatePropertyManager *dateManager = qobject_cast<QtDatePropertyManager *>(manager)) {
- dateManager->setValue(internProp, qVariantValue<QDate>(val));
+ dateManager->setValue(internProp, qvariant_cast<QDate>(val));
return;
} else if (QtTimePropertyManager *timeManager = qobject_cast<QtTimePropertyManager *>(manager)) {
- timeManager->setValue(internProp, qVariantValue<QTime>(val));
+ timeManager->setValue(internProp, qvariant_cast<QTime>(val));
return;
} else if (QtDateTimePropertyManager *dateTimeManager = qobject_cast<QtDateTimePropertyManager *>(manager)) {
- dateTimeManager->setValue(internProp, qVariantValue<QDateTime>(val));
+ dateTimeManager->setValue(internProp, qvariant_cast<QDateTime>(val));
return;
} else if (QtKeySequencePropertyManager *keySequenceManager = qobject_cast<QtKeySequencePropertyManager *>(manager)) {
- keySequenceManager->setValue(internProp, qVariantValue<QKeySequence>(val));
+ keySequenceManager->setValue(internProp, qvariant_cast<QKeySequence>(val));
return;
} else if (QtCharPropertyManager *charManager = qobject_cast<QtCharPropertyManager *>(manager)) {
- charManager->setValue(internProp, qVariantValue<QChar>(val));
+ charManager->setValue(internProp, qvariant_cast<QChar>(val));
return;
} else if (QtLocalePropertyManager *localeManager = qobject_cast<QtLocalePropertyManager *>(manager)) {
- localeManager->setValue(internProp, qVariantValue<QLocale>(val));
+ localeManager->setValue(internProp, qvariant_cast<QLocale>(val));
return;
} else if (QtPointPropertyManager *pointManager = qobject_cast<QtPointPropertyManager *>(manager)) {
- pointManager->setValue(internProp, qVariantValue<QPoint>(val));
+ pointManager->setValue(internProp, qvariant_cast<QPoint>(val));
return;
} else if (QtPointFPropertyManager *pointFManager = qobject_cast<QtPointFPropertyManager *>(manager)) {
- pointFManager->setValue(internProp, qVariantValue<QPointF>(val));
+ pointFManager->setValue(internProp, qvariant_cast<QPointF>(val));
return;
} else if (QtSizePropertyManager *sizeManager = qobject_cast<QtSizePropertyManager *>(manager)) {
- sizeManager->setValue(internProp, qVariantValue<QSize>(val));
+ sizeManager->setValue(internProp, qvariant_cast<QSize>(val));
return;
} else if (QtSizeFPropertyManager *sizeFManager = qobject_cast<QtSizeFPropertyManager *>(manager)) {
- sizeFManager->setValue(internProp, qVariantValue<QSizeF>(val));
+ sizeFManager->setValue(internProp, qvariant_cast<QSizeF>(val));
return;
} else if (QtRectPropertyManager *rectManager = qobject_cast<QtRectPropertyManager *>(manager)) {
- rectManager->setValue(internProp, qVariantValue<QRect>(val));
+ rectManager->setValue(internProp, qvariant_cast<QRect>(val));
return;
} else if (QtRectFPropertyManager *rectFManager = qobject_cast<QtRectFPropertyManager *>(manager)) {
- rectFManager->setValue(internProp, qVariantValue<QRectF>(val));
+ rectFManager->setValue(internProp, qvariant_cast<QRectF>(val));
return;
} else if (QtColorPropertyManager *colorManager = qobject_cast<QtColorPropertyManager *>(manager)) {
- colorManager->setValue(internProp, qVariantValue<QColor>(val));
+ colorManager->setValue(internProp, qvariant_cast<QColor>(val));
return;
} else if (QtEnumPropertyManager *enumManager = qobject_cast<QtEnumPropertyManager *>(manager)) {
- enumManager->setValue(internProp, qVariantValue<int>(val));
+ enumManager->setValue(internProp, qvariant_cast<int>(val));
return;
} else if (QtSizePolicyPropertyManager *sizePolicyManager =
qobject_cast<QtSizePolicyPropertyManager *>(manager)) {
- sizePolicyManager->setValue(internProp, qVariantValue<QSizePolicy>(val));
+ sizePolicyManager->setValue(internProp, qvariant_cast<QSizePolicy>(val));
return;
} else if (QtFontPropertyManager *fontManager = qobject_cast<QtFontPropertyManager *>(manager)) {
- fontManager->setValue(internProp, qVariantValue<QFont>(val));
+ fontManager->setValue(internProp, qvariant_cast<QFont>(val));
return;
#ifndef QT_NO_CURSOR
} else if (QtCursorPropertyManager *cursorManager = qobject_cast<QtCursorPropertyManager *>(manager)) {
- cursorManager->setValue(internProp, qVariantValue<QCursor>(val));
+ cursorManager->setValue(internProp, qvariant_cast<QCursor>(val));
return;
#endif
} else if (QtFlagPropertyManager *flagManager = qobject_cast<QtFlagPropertyManager *>(manager)) {
- flagManager->setValue(internProp, qVariantValue<int>(val));
+ flagManager->setValue(internProp, qvariant_cast<int>(val));
return;
}
}
@@ -1672,69 +1672,69 @@ void QtVariantPropertyManager::setAttribute(QtProperty *property,
QtAbstractPropertyManager *manager = internProp->propertyManager();
if (QtIntPropertyManager *intManager = qobject_cast<QtIntPropertyManager *>(manager)) {
if (attribute == d_ptr->m_maximumAttribute)
- intManager->setMaximum(internProp, qVariantValue<int>(value));
+ intManager->setMaximum(internProp, qvariant_cast<int>(value));
else if (attribute == d_ptr->m_minimumAttribute)
- intManager->setMinimum(internProp, qVariantValue<int>(value));
+ intManager->setMinimum(internProp, qvariant_cast<int>(value));
else if (attribute == d_ptr->m_singleStepAttribute)
- intManager->setSingleStep(internProp, qVariantValue<int>(value));
+ intManager->setSingleStep(internProp, qvariant_cast<int>(value));
return;
} else if (QtDoublePropertyManager *doubleManager = qobject_cast<QtDoublePropertyManager *>(manager)) {
if (attribute == d_ptr->m_maximumAttribute)
- doubleManager->setMaximum(internProp, qVariantValue<double>(value));
+ doubleManager->setMaximum(internProp, qvariant_cast<double>(value));
if (attribute == d_ptr->m_minimumAttribute)
- doubleManager->setMinimum(internProp, qVariantValue<double>(value));
+ doubleManager->setMinimum(internProp, qvariant_cast<double>(value));
if (attribute == d_ptr->m_singleStepAttribute)
- doubleManager->setSingleStep(internProp, qVariantValue<double>(value));
+ doubleManager->setSingleStep(internProp, qvariant_cast<double>(value));
if (attribute == d_ptr->m_decimalsAttribute)
- doubleManager->setDecimals(internProp, qVariantValue<int>(value));
+ doubleManager->setDecimals(internProp, qvariant_cast<int>(value));
return;
} else if (QtStringPropertyManager *stringManager = qobject_cast<QtStringPropertyManager *>(manager)) {
if (attribute == d_ptr->m_regExpAttribute)
- stringManager->setRegExp(internProp, qVariantValue<QRegExp>(value));
+ stringManager->setRegExp(internProp, qvariant_cast<QRegExp>(value));
return;
} else if (QtDatePropertyManager *dateManager = qobject_cast<QtDatePropertyManager *>(manager)) {
if (attribute == d_ptr->m_maximumAttribute)
- dateManager->setMaximum(internProp, qVariantValue<QDate>(value));
+ dateManager->setMaximum(internProp, qvariant_cast<QDate>(value));
if (attribute == d_ptr->m_minimumAttribute)
- dateManager->setMinimum(internProp, qVariantValue<QDate>(value));
+ dateManager->setMinimum(internProp, qvariant_cast<QDate>(value));
return;
} else if (QtPointFPropertyManager *pointFManager = qobject_cast<QtPointFPropertyManager *>(manager)) {
if (attribute == d_ptr->m_decimalsAttribute)
- pointFManager->setDecimals(internProp, qVariantValue<int>(value));
+ pointFManager->setDecimals(internProp, qvariant_cast<int>(value));
return;
} else if (QtSizePropertyManager *sizeManager = qobject_cast<QtSizePropertyManager *>(manager)) {
if (attribute == d_ptr->m_maximumAttribute)
- sizeManager->setMaximum(internProp, qVariantValue<QSize>(value));
+ sizeManager->setMaximum(internProp, qvariant_cast<QSize>(value));
if (attribute == d_ptr->m_minimumAttribute)
- sizeManager->setMinimum(internProp, qVariantValue<QSize>(value));
+ sizeManager->setMinimum(internProp, qvariant_cast<QSize>(value));
return;
} else if (QtSizeFPropertyManager *sizeFManager = qobject_cast<QtSizeFPropertyManager *>(manager)) {
if (attribute == d_ptr->m_maximumAttribute)
- sizeFManager->setMaximum(internProp, qVariantValue<QSizeF>(value));
+ sizeFManager->setMaximum(internProp, qvariant_cast<QSizeF>(value));
if (attribute == d_ptr->m_minimumAttribute)
- sizeFManager->setMinimum(internProp, qVariantValue<QSizeF>(value));
+ sizeFManager->setMinimum(internProp, qvariant_cast<QSizeF>(value));
if (attribute == d_ptr->m_decimalsAttribute)
- sizeFManager->setDecimals(internProp, qVariantValue<int>(value));
+ sizeFManager->setDecimals(internProp, qvariant_cast<int>(value));
return;
} else if (QtRectPropertyManager *rectManager = qobject_cast<QtRectPropertyManager *>(manager)) {
if (attribute == d_ptr->m_constraintAttribute)
- rectManager->setConstraint(internProp, qVariantValue<QRect>(value));
+ rectManager->setConstraint(internProp, qvariant_cast<QRect>(value));
return;
} else if (QtRectFPropertyManager *rectFManager = qobject_cast<QtRectFPropertyManager *>(manager)) {
if (attribute == d_ptr->m_constraintAttribute)
- rectFManager->setConstraint(internProp, qVariantValue<QRectF>(value));
+ rectFManager->setConstraint(internProp, qvariant_cast<QRectF>(value));
if (attribute == d_ptr->m_decimalsAttribute)
- rectFManager->setDecimals(internProp, qVariantValue<int>(value));
+ rectFManager->setDecimals(internProp, qvariant_cast<int>(value));
return;
} else if (QtEnumPropertyManager *enumManager = qobject_cast<QtEnumPropertyManager *>(manager)) {
if (attribute == d_ptr->m_enumNamesAttribute)
- enumManager->setEnumNames(internProp, qVariantValue<QStringList>(value));
+ enumManager->setEnumNames(internProp, qvariant_cast<QStringList>(value));
if (attribute == d_ptr->m_enumIconsAttribute)
- enumManager->setEnumIcons(internProp, qVariantValue<QtIconMap>(value));
+ enumManager->setEnumIcons(internProp, qvariant_cast<QtIconMap>(value));
return;
} else if (QtFlagPropertyManager *flagManager = qobject_cast<QtFlagPropertyManager *>(manager)) {
if (attribute == d_ptr->m_flagNamesAttribute)
- flagManager->setFlagNames(internProp, qVariantValue<QStringList>(value));
+ flagManager->setFlagNames(internProp, qvariant_cast<QStringList>(value));
return;
}
}
@@ -1997,87 +1997,87 @@ QtVariantEditorFactory::~QtVariantEditorFactory()
*/
void QtVariantEditorFactory::connectPropertyManager(QtVariantPropertyManager *manager)
{
- QList<QtIntPropertyManager *> intPropertyManagers = qFindChildren<QtIntPropertyManager *>(manager);
+ QList<QtIntPropertyManager *> intPropertyManagers = manager->findChildren<QtIntPropertyManager *>();
QListIterator<QtIntPropertyManager *> itInt(intPropertyManagers);
while (itInt.hasNext())
d_ptr->m_spinBoxFactory->addPropertyManager(itInt.next());
- QList<QtDoublePropertyManager *> doublePropertyManagers = qFindChildren<QtDoublePropertyManager *>(manager);
+ QList<QtDoublePropertyManager *> doublePropertyManagers = manager->findChildren<QtDoublePropertyManager *>();
QListIterator<QtDoublePropertyManager *> itDouble(doublePropertyManagers);
while (itDouble.hasNext())
d_ptr->m_doubleSpinBoxFactory->addPropertyManager(itDouble.next());
- QList<QtBoolPropertyManager *> boolPropertyManagers = qFindChildren<QtBoolPropertyManager *>(manager);
+ QList<QtBoolPropertyManager *> boolPropertyManagers = manager->findChildren<QtBoolPropertyManager *>();
QListIterator<QtBoolPropertyManager *> itBool(boolPropertyManagers);
while (itBool.hasNext())
d_ptr->m_checkBoxFactory->addPropertyManager(itBool.next());
- QList<QtStringPropertyManager *> stringPropertyManagers = qFindChildren<QtStringPropertyManager *>(manager);
+ QList<QtStringPropertyManager *> stringPropertyManagers = manager->findChildren<QtStringPropertyManager *>();
QListIterator<QtStringPropertyManager *> itString(stringPropertyManagers);
while (itString.hasNext())
d_ptr->m_lineEditFactory->addPropertyManager(itString.next());
- QList<QtDatePropertyManager *> datePropertyManagers = qFindChildren<QtDatePropertyManager *>(manager);
+ QList<QtDatePropertyManager *> datePropertyManagers = manager->findChildren<QtDatePropertyManager *>();
QListIterator<QtDatePropertyManager *> itDate(datePropertyManagers);
while (itDate.hasNext())
d_ptr->m_dateEditFactory->addPropertyManager(itDate.next());
- QList<QtTimePropertyManager *> timePropertyManagers = qFindChildren<QtTimePropertyManager *>(manager);
+ QList<QtTimePropertyManager *> timePropertyManagers = manager->findChildren<QtTimePropertyManager *>();
QListIterator<QtTimePropertyManager *> itTime(timePropertyManagers);
while (itTime.hasNext())
d_ptr->m_timeEditFactory->addPropertyManager(itTime.next());
- QList<QtDateTimePropertyManager *> dateTimePropertyManagers = qFindChildren<QtDateTimePropertyManager *>(manager);
+ QList<QtDateTimePropertyManager *> dateTimePropertyManagers = manager->findChildren<QtDateTimePropertyManager *>();
QListIterator<QtDateTimePropertyManager *> itDateTime(dateTimePropertyManagers);
while (itDateTime.hasNext())
d_ptr->m_dateTimeEditFactory->addPropertyManager(itDateTime.next());
- QList<QtKeySequencePropertyManager *> keySequencePropertyManagers = qFindChildren<QtKeySequencePropertyManager *>(manager);
+ QList<QtKeySequencePropertyManager *> keySequencePropertyManagers = manager->findChildren<QtKeySequencePropertyManager *>();
QListIterator<QtKeySequencePropertyManager *> itKeySequence(keySequencePropertyManagers);
while (itKeySequence.hasNext())
d_ptr->m_keySequenceEditorFactory->addPropertyManager(itKeySequence.next());
- QList<QtCharPropertyManager *> charPropertyManagers = qFindChildren<QtCharPropertyManager *>(manager);
+ QList<QtCharPropertyManager *> charPropertyManagers = manager->findChildren<QtCharPropertyManager *>();
QListIterator<QtCharPropertyManager *> itChar(charPropertyManagers);
while (itChar.hasNext())
d_ptr->m_charEditorFactory->addPropertyManager(itChar.next());
- QList<QtLocalePropertyManager *> localePropertyManagers = qFindChildren<QtLocalePropertyManager *>(manager);
+ QList<QtLocalePropertyManager *> localePropertyManagers = manager->findChildren<QtLocalePropertyManager *>();
QListIterator<QtLocalePropertyManager *> itLocale(localePropertyManagers);
while (itLocale.hasNext())
d_ptr->m_comboBoxFactory->addPropertyManager(itLocale.next()->subEnumPropertyManager());
- QList<QtPointPropertyManager *> pointPropertyManagers = qFindChildren<QtPointPropertyManager *>(manager);
+ QList<QtPointPropertyManager *> pointPropertyManagers = manager->findChildren<QtPointPropertyManager *>();
QListIterator<QtPointPropertyManager *> itPoint(pointPropertyManagers);
while (itPoint.hasNext())
d_ptr->m_spinBoxFactory->addPropertyManager(itPoint.next()->subIntPropertyManager());
- QList<QtPointFPropertyManager *> pointFPropertyManagers = qFindChildren<QtPointFPropertyManager *>(manager);
+ QList<QtPointFPropertyManager *> pointFPropertyManagers = manager->findChildren<QtPointFPropertyManager *>();
QListIterator<QtPointFPropertyManager *> itPointF(pointFPropertyManagers);
while (itPointF.hasNext())
d_ptr->m_doubleSpinBoxFactory->addPropertyManager(itPointF.next()->subDoublePropertyManager());
- QList<QtSizePropertyManager *> sizePropertyManagers = qFindChildren<QtSizePropertyManager *>(manager);
+ QList<QtSizePropertyManager *> sizePropertyManagers = manager->findChildren<QtSizePropertyManager *>();
QListIterator<QtSizePropertyManager *> itSize(sizePropertyManagers);
while (itSize.hasNext())
d_ptr->m_spinBoxFactory->addPropertyManager(itSize.next()->subIntPropertyManager());
- QList<QtSizeFPropertyManager *> sizeFPropertyManagers = qFindChildren<QtSizeFPropertyManager *>(manager);
+ QList<QtSizeFPropertyManager *> sizeFPropertyManagers = manager->findChildren<QtSizeFPropertyManager *>();
QListIterator<QtSizeFPropertyManager *> itSizeF(sizeFPropertyManagers);
while (itSizeF.hasNext())
d_ptr->m_doubleSpinBoxFactory->addPropertyManager(itSizeF.next()->subDoublePropertyManager());
- QList<QtRectPropertyManager *> rectPropertyManagers = qFindChildren<QtRectPropertyManager *>(manager);
+ QList<QtRectPropertyManager *> rectPropertyManagers = manager->findChildren<QtRectPropertyManager *>();
QListIterator<QtRectPropertyManager *> itRect(rectPropertyManagers);
while (itRect.hasNext())
d_ptr->m_spinBoxFactory->addPropertyManager(itRect.next()->subIntPropertyManager());
- QList<QtRectFPropertyManager *> rectFPropertyManagers = qFindChildren<QtRectFPropertyManager *>(manager);
+ QList<QtRectFPropertyManager *> rectFPropertyManagers = manager->findChildren<QtRectFPropertyManager *>();
QListIterator<QtRectFPropertyManager *> itRectF(rectFPropertyManagers);
while (itRectF.hasNext())
d_ptr->m_doubleSpinBoxFactory->addPropertyManager(itRectF.next()->subDoublePropertyManager());
- QList<QtColorPropertyManager *> colorPropertyManagers = qFindChildren<QtColorPropertyManager *>(manager);
+ QList<QtColorPropertyManager *> colorPropertyManagers = manager->findChildren<QtColorPropertyManager *>();
QListIterator<QtColorPropertyManager *> itColor(colorPropertyManagers);
while (itColor.hasNext()) {
QtColorPropertyManager *manager = itColor.next();
@@ -2085,12 +2085,12 @@ void QtVariantEditorFactory::connectPropertyManager(QtVariantPropertyManager *ma
d_ptr->m_spinBoxFactory->addPropertyManager(manager->subIntPropertyManager());
}
- QList<QtEnumPropertyManager *> enumPropertyManagers = qFindChildren<QtEnumPropertyManager *>(manager);
+ QList<QtEnumPropertyManager *> enumPropertyManagers = manager->findChildren<QtEnumPropertyManager *>();
QListIterator<QtEnumPropertyManager *> itEnum(enumPropertyManagers);
while (itEnum.hasNext())
d_ptr->m_comboBoxFactory->addPropertyManager(itEnum.next());
- QList<QtSizePolicyPropertyManager *> sizePolicyPropertyManagers = qFindChildren<QtSizePolicyPropertyManager *>(manager);
+ QList<QtSizePolicyPropertyManager *> sizePolicyPropertyManagers = manager->findChildren<QtSizePolicyPropertyManager *>();
QListIterator<QtSizePolicyPropertyManager *> itSizePolicy(sizePolicyPropertyManagers);
while (itSizePolicy.hasNext()) {
QtSizePolicyPropertyManager *manager = itSizePolicy.next();
@@ -2098,7 +2098,7 @@ void QtVariantEditorFactory::connectPropertyManager(QtVariantPropertyManager *ma
d_ptr->m_comboBoxFactory->addPropertyManager(manager->subEnumPropertyManager());
}
- QList<QtFontPropertyManager *> fontPropertyManagers = qFindChildren<QtFontPropertyManager *>(manager);
+ QList<QtFontPropertyManager *> fontPropertyManagers = manager->findChildren<QtFontPropertyManager *>();
QListIterator<QtFontPropertyManager *> itFont(fontPropertyManagers);
while (itFont.hasNext()) {
QtFontPropertyManager *manager = itFont.next();
@@ -2108,12 +2108,12 @@ void QtVariantEditorFactory::connectPropertyManager(QtVariantPropertyManager *ma
d_ptr->m_checkBoxFactory->addPropertyManager(manager->subBoolPropertyManager());
}
- QList<QtCursorPropertyManager *> cursorPropertyManagers = qFindChildren<QtCursorPropertyManager *>(manager);
+ QList<QtCursorPropertyManager *> cursorPropertyManagers = manager->findChildren<QtCursorPropertyManager *>();
QListIterator<QtCursorPropertyManager *> itCursor(cursorPropertyManagers);
while (itCursor.hasNext())
d_ptr->m_cursorEditorFactory->addPropertyManager(itCursor.next());
- QList<QtFlagPropertyManager *> flagPropertyManagers = qFindChildren<QtFlagPropertyManager *>(manager);
+ QList<QtFlagPropertyManager *> flagPropertyManagers = manager->findChildren<QtFlagPropertyManager *>();
QListIterator<QtFlagPropertyManager *> itFlag(flagPropertyManagers);
while (itFlag.hasNext())
d_ptr->m_checkBoxFactory->addPropertyManager(itFlag.next()->subBoolPropertyManager());
@@ -2141,87 +2141,87 @@ QWidget *QtVariantEditorFactory::createEditor(QtVariantPropertyManager *manager,
*/
void QtVariantEditorFactory::disconnectPropertyManager(QtVariantPropertyManager *manager)
{
- QList<QtIntPropertyManager *> intPropertyManagers = qFindChildren<QtIntPropertyManager *>(manager);
+ QList<QtIntPropertyManager *> intPropertyManagers = manager->findChildren<QtIntPropertyManager *>();
QListIterator<QtIntPropertyManager *> itInt(intPropertyManagers);
while (itInt.hasNext())
d_ptr->m_spinBoxFactory->removePropertyManager(itInt.next());
- QList<QtDoublePropertyManager *> doublePropertyManagers = qFindChildren<QtDoublePropertyManager *>(manager);
+ QList<QtDoublePropertyManager *> doublePropertyManagers = manager->findChildren<QtDoublePropertyManager *>();
QListIterator<QtDoublePropertyManager *> itDouble(doublePropertyManagers);
while (itDouble.hasNext())
d_ptr->m_doubleSpinBoxFactory->removePropertyManager(itDouble.next());
- QList<QtBoolPropertyManager *> boolPropertyManagers = qFindChildren<QtBoolPropertyManager *>(manager);
+ QList<QtBoolPropertyManager *> boolPropertyManagers = manager->findChildren<QtBoolPropertyManager *>();
QListIterator<QtBoolPropertyManager *> itBool(boolPropertyManagers);
while (itBool.hasNext())
d_ptr->m_checkBoxFactory->removePropertyManager(itBool.next());
- QList<QtStringPropertyManager *> stringPropertyManagers = qFindChildren<QtStringPropertyManager *>(manager);
+ QList<QtStringPropertyManager *> stringPropertyManagers = manager->findChildren<QtStringPropertyManager *>();
QListIterator<QtStringPropertyManager *> itString(stringPropertyManagers);
while (itString.hasNext())
d_ptr->m_lineEditFactory->removePropertyManager(itString.next());
- QList<QtDatePropertyManager *> datePropertyManagers = qFindChildren<QtDatePropertyManager *>(manager);
+ QList<QtDatePropertyManager *> datePropertyManagers = manager->findChildren<QtDatePropertyManager *>();
QListIterator<QtDatePropertyManager *> itDate(datePropertyManagers);
while (itDate.hasNext())
d_ptr->m_dateEditFactory->removePropertyManager(itDate.next());
- QList<QtTimePropertyManager *> timePropertyManagers = qFindChildren<QtTimePropertyManager *>(manager);
+ QList<QtTimePropertyManager *> timePropertyManagers = manager->findChildren<QtTimePropertyManager *>();
QListIterator<QtTimePropertyManager *> itTime(timePropertyManagers);
while (itTime.hasNext())
d_ptr->m_timeEditFactory->removePropertyManager(itTime.next());
- QList<QtDateTimePropertyManager *> dateTimePropertyManagers = qFindChildren<QtDateTimePropertyManager *>(manager);
+ QList<QtDateTimePropertyManager *> dateTimePropertyManagers = manager->findChildren<QtDateTimePropertyManager *>();
QListIterator<QtDateTimePropertyManager *> itDateTime(dateTimePropertyManagers);
while (itDateTime.hasNext())
d_ptr->m_dateTimeEditFactory->removePropertyManager(itDateTime.next());
- QList<QtKeySequencePropertyManager *> keySequencePropertyManagers = qFindChildren<QtKeySequencePropertyManager *>(manager);
+ QList<QtKeySequencePropertyManager *> keySequencePropertyManagers = manager->findChildren<QtKeySequencePropertyManager *>();
QListIterator<QtKeySequencePropertyManager *> itKeySequence(keySequencePropertyManagers);
while (itKeySequence.hasNext())
d_ptr->m_keySequenceEditorFactory->removePropertyManager(itKeySequence.next());
- QList<QtCharPropertyManager *> charPropertyManagers = qFindChildren<QtCharPropertyManager *>(manager);
+ QList<QtCharPropertyManager *> charPropertyManagers = manager->findChildren<QtCharPropertyManager *>();
QListIterator<QtCharPropertyManager *> itChar(charPropertyManagers);
while (itChar.hasNext())
d_ptr->m_charEditorFactory->removePropertyManager(itChar.next());
- QList<QtLocalePropertyManager *> localePropertyManagers = qFindChildren<QtLocalePropertyManager *>(manager);
+ QList<QtLocalePropertyManager *> localePropertyManagers = manager->findChildren<QtLocalePropertyManager *>();
QListIterator<QtLocalePropertyManager *> itLocale(localePropertyManagers);
while (itLocale.hasNext())
d_ptr->m_comboBoxFactory->removePropertyManager(itLocale.next()->subEnumPropertyManager());
- QList<QtPointPropertyManager *> pointPropertyManagers = qFindChildren<QtPointPropertyManager *>(manager);
+ QList<QtPointPropertyManager *> pointPropertyManagers = manager->findChildren<QtPointPropertyManager *>();
QListIterator<QtPointPropertyManager *> itPoint(pointPropertyManagers);
while (itPoint.hasNext())
d_ptr->m_spinBoxFactory->removePropertyManager(itPoint.next()->subIntPropertyManager());
- QList<QtPointFPropertyManager *> pointFPropertyManagers = qFindChildren<QtPointFPropertyManager *>(manager);
+ QList<QtPointFPropertyManager *> pointFPropertyManagers = manager->findChildren<QtPointFPropertyManager *>();
QListIterator<QtPointFPropertyManager *> itPointF(pointFPropertyManagers);
while (itPointF.hasNext())
d_ptr->m_doubleSpinBoxFactory->removePropertyManager(itPointF.next()->subDoublePropertyManager());
- QList<QtSizePropertyManager *> sizePropertyManagers = qFindChildren<QtSizePropertyManager *>(manager);
+ QList<QtSizePropertyManager *> sizePropertyManagers = manager->findChildren<QtSizePropertyManager *>();
QListIterator<QtSizePropertyManager *> itSize(sizePropertyManagers);
while (itSize.hasNext())
d_ptr->m_spinBoxFactory->removePropertyManager(itSize.next()->subIntPropertyManager());
- QList<QtSizeFPropertyManager *> sizeFPropertyManagers = qFindChildren<QtSizeFPropertyManager *>(manager);
+ QList<QtSizeFPropertyManager *> sizeFPropertyManagers = manager->findChildren<QtSizeFPropertyManager *>();
QListIterator<QtSizeFPropertyManager *> itSizeF(sizeFPropertyManagers);
while (itSizeF.hasNext())
d_ptr->m_doubleSpinBoxFactory->removePropertyManager(itSizeF.next()->subDoublePropertyManager());
- QList<QtRectPropertyManager *> rectPropertyManagers = qFindChildren<QtRectPropertyManager *>(manager);
+ QList<QtRectPropertyManager *> rectPropertyManagers = manager->findChildren<QtRectPropertyManager *>();
QListIterator<QtRectPropertyManager *> itRect(rectPropertyManagers);
while (itRect.hasNext())
d_ptr->m_spinBoxFactory->removePropertyManager(itRect.next()->subIntPropertyManager());
- QList<QtRectFPropertyManager *> rectFPropertyManagers = qFindChildren<QtRectFPropertyManager *>(manager);
+ QList<QtRectFPropertyManager *> rectFPropertyManagers = manager->findChildren<QtRectFPropertyManager *>();
QListIterator<QtRectFPropertyManager *> itRectF(rectFPropertyManagers);
while (itRectF.hasNext())
d_ptr->m_doubleSpinBoxFactory->removePropertyManager(itRectF.next()->subDoublePropertyManager());
- QList<QtColorPropertyManager *> colorPropertyManagers = qFindChildren<QtColorPropertyManager *>(manager);
+ QList<QtColorPropertyManager *> colorPropertyManagers = manager->findChildren<QtColorPropertyManager *>();
QListIterator<QtColorPropertyManager *> itColor(colorPropertyManagers);
while (itColor.hasNext()) {
QtColorPropertyManager *manager = itColor.next();
@@ -2229,12 +2229,12 @@ void QtVariantEditorFactory::disconnectPropertyManager(QtVariantPropertyManager
d_ptr->m_spinBoxFactory->removePropertyManager(manager->subIntPropertyManager());
}
- QList<QtEnumPropertyManager *> enumPropertyManagers = qFindChildren<QtEnumPropertyManager *>(manager);
+ QList<QtEnumPropertyManager *> enumPropertyManagers = manager->findChildren<QtEnumPropertyManager *>();
QListIterator<QtEnumPropertyManager *> itEnum(enumPropertyManagers);
while (itEnum.hasNext())
d_ptr->m_comboBoxFactory->removePropertyManager(itEnum.next());
- QList<QtSizePolicyPropertyManager *> sizePolicyPropertyManagers = qFindChildren<QtSizePolicyPropertyManager *>(manager);
+ QList<QtSizePolicyPropertyManager *> sizePolicyPropertyManagers = manager->findChildren<QtSizePolicyPropertyManager *>();
QListIterator<QtSizePolicyPropertyManager *> itSizePolicy(sizePolicyPropertyManagers);
while (itSizePolicy.hasNext()) {
QtSizePolicyPropertyManager *manager = itSizePolicy.next();
@@ -2242,7 +2242,7 @@ void QtVariantEditorFactory::disconnectPropertyManager(QtVariantPropertyManager
d_ptr->m_comboBoxFactory->removePropertyManager(manager->subEnumPropertyManager());
}
- QList<QtFontPropertyManager *> fontPropertyManagers = qFindChildren<QtFontPropertyManager *>(manager);
+ QList<QtFontPropertyManager *> fontPropertyManagers = manager->findChildren<QtFontPropertyManager *>();
QListIterator<QtFontPropertyManager *> itFont(fontPropertyManagers);
while (itFont.hasNext()) {
QtFontPropertyManager *manager = itFont.next();
@@ -2252,12 +2252,12 @@ void QtVariantEditorFactory::disconnectPropertyManager(QtVariantPropertyManager
d_ptr->m_checkBoxFactory->removePropertyManager(manager->subBoolPropertyManager());
}
- QList<QtCursorPropertyManager *> cursorPropertyManagers = qFindChildren<QtCursorPropertyManager *>(manager);
+ QList<QtCursorPropertyManager *> cursorPropertyManagers = manager->findChildren<QtCursorPropertyManager *>();
QListIterator<QtCursorPropertyManager *> itCursor(cursorPropertyManagers);
while (itCursor.hasNext())
d_ptr->m_cursorEditorFactory->removePropertyManager(itCursor.next());
- QList<QtFlagPropertyManager *> flagPropertyManagers = qFindChildren<QtFlagPropertyManager *>(manager);
+ QList<QtFlagPropertyManager *> flagPropertyManagers = manager->findChildren<QtFlagPropertyManager *>();
QListIterator<QtFlagPropertyManager *> itFlag(flagPropertyManagers);
while (itFlag.hasNext())
d_ptr->m_checkBoxFactory->removePropertyManager(itFlag.next()->subBoolPropertyManager());
diff --git a/tools/xmlpatterns/main.cpp b/tools/xmlpatterns/main.cpp
index b0e9e67..8479de7 100644
--- a/tools/xmlpatterns/main.cpp
+++ b/tools/xmlpatterns/main.cpp
@@ -145,14 +145,14 @@ protected:
}
/* The value.isNull() check ensures we can bind variables whose value is an empty string. */
- return qVariantFromValue(Parameter(name, value.isNull() ? QString(QLatin1String("")) : value ));
+ return QVariant::fromValue(Parameter(name, value.isNull() ? QString(QLatin1String("")) : value ));
}
else if(arg.name() == QLatin1String("output"))
{
QFile *const f = new QFile(input);
if(f->open(QIODevice::WriteOnly))
- return qVariantFromValue(static_cast<QIODevice *>(f));
+ return QVariant::fromValue(static_cast<QIODevice *>(f));
else
{
message(QXmlPatternistCLI::tr("Failed to open file %1 for writing: %2").arg(f->fileName(), f->errorString()));
@@ -168,7 +168,7 @@ protected:
return QVariant();
}
else
- return qVariantFromValue(name);
+ return QVariant::fromValue(name);
}
else
return QApplicationArgumentParser::convertToValue(arg, input);
@@ -200,7 +200,7 @@ protected:
out->open(stdout, QIODevice::WriteOnly);
#endif
- return qVariantFromValue(static_cast<QIODevice *>(out));
+ return QVariant::fromValue(static_cast<QIODevice *>(out));
}
else
return QApplicationArgumentParser::defaultValue(argument);
@@ -317,7 +317,7 @@ int main(int argc, char **argv)
QXmlQuery query(lang, namePool);
- query.setInitialTemplateName(qVariantValue<QXmlName>(parser.value(initialTemplateName)));
+ query.setInitialTemplateName(qvariant_cast<QXmlName>(parser.value(initialTemplateName)));
/* Bind external variables. */
{
@@ -329,7 +329,7 @@ int main(int argc, char **argv)
for(int i = 0; i < len; ++i)
{
- const Parameter p(qVariantValue<Parameter>(parameters.at(i)));
+ const Parameter p(qvariant_cast<Parameter>(parameters.at(i)));
if(usedParameters.contains(p.first))
{
@@ -359,7 +359,7 @@ int main(int argc, char **argv)
query.setQuery(effectiveURI);
- const QPatternist::AutoPtr<QIODevice> outDevice(qVariantValue<QIODevice *>(parser.value(output)));
+ const QPatternist::AutoPtr<QIODevice> outDevice(qvariant_cast<QIODevice *>(parser.value(output)));
Q_ASSERT(outDevice);
Q_ASSERT(outDevice->isWritable());
diff --git a/translations/assistant_de.ts b/translations/assistant_de.ts
index bfafc71..0f4d0d6 100644
--- a/translations/assistant_de.ts
+++ b/translations/assistant_de.ts
@@ -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 @@ Grund:
%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 @@ Grund:
%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 @@ Grund:
<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 @@ Grund:
<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 @@ Grund:
<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 @@ Grund:
<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 @@ Grund:
<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 @@ Grund:
<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 @@ Grund:
<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 @@ Grund:
<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 @@ Grund:
<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 @@ Grund:
<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 @@ Grund:
<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 @@ Grund:
<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>
diff --git a/translations/assistant_fr.ts b/translations/assistant_fr.ts
index 4c6c5a0..e117663 100644
--- a/translations/assistant_fr.ts
+++ b/translations/assistant_fr.ts
@@ -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 line="-463"/>
+ <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="+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 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>
- <location line="+38"/>
+ <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"/>
+ <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>
<source>Add Bookmark...</source>
- <translation>Ajouter un signet…</translation>
+ <translation type="obsolete">Ajouter un signet...</translation>
</message>
<message>
- <location line="+2"/>
<source>CTRL+D</source>
- <translation>CTRL+D</translation>
+ <translation type="obsolete">CTRL+D</translation>
</message>
<message>
- <location line="+2"/>
+ <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>
- <location line="-7"/>
- <location line="+12"/>
<source>Missing help file!</source>
- <translation>Fichier d&apos;aide manquant !</translation>
+ <translation type="obsolete">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 @@ Raison :
<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 @@ Raison :
<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>
diff --git a/translations/assistant_ru.ts b/translations/assistant_ru.ts
index 5244483..f5ba461 100644
--- a/translations/assistant_ru.ts
+++ b/translations/assistant_ru.ts
@@ -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 @@ Reason:
%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 @@ Reason:
%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 @@ Reason:
<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 @@ Reason:
<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 @@ Reason:
<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 @@ Reason:
<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 @@ Reason:
<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 @@ Reason:
<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 @@ Reason:
<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 @@ Reason:
<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 @@ Reason:
<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 @@ Reason:
<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 @@ Reason:
<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 @@ Reason:
<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>
diff --git a/translations/assistant_uk.ts b/translations/assistant_uk.ts
new file mode 100644
index 0000000..78fd59d
--- /dev/null
+++ b/translations/assistant_uk.ts
@@ -0,0 +1,969 @@
+<?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>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>
+ <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>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>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>&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;письма</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>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>IndexWindow</name>
+ <message>
+ <source>&amp;Look for:</source>
+ <translation></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>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></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>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>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>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>
diff --git a/translations/designer_de.ts b/translations/designer_de.ts
index b508b7f..9ff5099 100644
--- a/translations/designer_de.ts
+++ b/translations/designer_de.ts
@@ -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 @@ This indicates an inconsistency in the ui-file.</source>
<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 @@ This indicates an inconsistency in the ui-file.</source>
<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 @@ This indicates an inconsistency in the ui-file.</source>
<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 @@ Script: %3</source>
<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 @@ Script: %3</source>
<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 @@ Would you like to retry or select a different file?</source>
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 @@ Would you like to retry?</source>
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 @@ Möchten Sie es noch einmal versuchen?</translation>
<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 @@ Möchten Sie es noch einmal versuchen?</translation>
<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 @@ Möchten Sie es noch einmal versuchen?</translation>
<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 @@ Möchten Sie es noch einmal versuchen?</translation>
<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 @@ Möchten Sie es noch einmal versuchen?</translation>
<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 @@ Möchten Sie es noch einmal versuchen?</translation>
<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 @@ Möchten Sie es noch einmal versuchen?</translation>
<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 @@ Möchten Sie es noch einmal versuchen?</translation>
<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 @@ Möchten Sie es noch einmal versuchen?</translation>
<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 @@ Möchten Sie es noch einmal versuchen?</translation>
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<context>
<name>QtColorEditWidget</name>
<message>
- <location line="+605"/>
<source>...</source>
<translation>...</translation>
</message>
@@ -2501,22 +2039,18 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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 @@ zu:
%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 @@ Dies kann zum Beispiel eine Sprachkennung wie &quot;_de&quot; sein.</translation
<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 @@ Dies kann zum Beispiel eine Sprachkennung wie &quot;_de&quot; sein.</translation
<context>
<name>QtResourceViewDialog</name>
<message>
- <location line="+252"/>
<source>Select Resource</source>
<translation>Ressource auswählen</translation>
</message>
@@ -3530,17 +2862,14 @@ Dies kann zum Beispiel eine Sprachkennung wie &quot;_de&quot; sein.</translation
<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 @@ Dies kann zum Beispiel eine Sprachkennung wie &quot;_de&quot; sein.</translation
<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 @@ Dies kann zum Beispiel eine Sprachkennung wie &quot;_de&quot; sein.</translation
<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 @@ Dies kann zum Beispiel eine Sprachkennung wie &quot;_de&quot; sein.</translation
<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 @@ Dies kann zum Beispiel eine Sprachkennung wie &quot;_de&quot; sein.</translation
<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 @@ Dies kann zum Beispiel eine Sprachkennung wie &quot;_de&quot; sein.</translation
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
</translation>
</message>
<message numerus="yes">
- <location line="+51"/>
<source>Add %n buddies</source>
<translation>
<numerusform>Buddy hinzufügen</numerusform>
@@ -4141,7 +3402,6 @@ Möchten Sie sie überschreiben?</translation>
</translation>
</message>
<message>
- <location line="+47"/>
<source>Set automatically</source>
<translation>Automatisch setzen</translation>
</message>
@@ -4149,7 +3409,6 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
</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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
</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 @@ Möchten Sie sie überschreiben?</translation>
</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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Möchten Sie sie überschreiben?</translation>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PreviewManager</name>
<message>
- <location line="+426"/>
<source>%1 - [Preview]</source>
<translation>%1 - [Vorschau]</translation>
</message>
@@ -5881,7 +4821,6 @@ Please select another name.</source>
<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 @@ ate the goose who was loose.</source>
<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 @@ ate the goose who was loose.</source>
<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 @@ ate the goose who was loose.</source>
<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 @@ ate the goose who was loose.</source>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
</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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ Klasse: %2</translation>
<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 @@ This indicates an inconsistency in the ui-file.</source>
<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 @@ This indicates an inconsistency in the ui-file.</source>
<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 @@ This indicates an inconsistency in the ui-file.</source>
<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>
diff --git a/translations/designer_fr.ts b/translations/designer_fr.ts
index bfdbb73..9bf3810 100644
--- a/translations/designer_fr.ts
+++ b/translations/designer_fr.ts
@@ -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>
+ <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"/>
+ <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>
+ <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"/>
+ <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 @@ Ceci indique une incohérence dans le fichier ui.</translation>
<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 @@ Ceci indique une incohérence dans le fichier ui.</translation>
<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 @@ Ceci indique une incohérence dans le fichier ui.</translation>
<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 @@ Script : %3</translation>
<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 @@ Script : %3</translation>
<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 @@ Raison : %2
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 @@ Raison : %2
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 @@ Voulez-vous réessayer ?</translation>
<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 @@ Voulez-vous réessayer ?</translation>
<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 @@ Voulez-vous réessayer ?</translation>
<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 @@ Voulez-vous réessayer ?</translation>
<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 @@ Voulez-vous réessayer ?</translation>
<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 @@ Voulez-vous réessayer ?</translation>
<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 @@ Voulez-vous réessayer ?</translation>
<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 @@ Voulez-vous réessayer ?</translation>
<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 @@ Voulez-vous réessayer ?</translation>
<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 @@ Voulez-vous réessayer ?</translation>
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
</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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans
<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 @@ vers
%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 @@ vers
<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 @@ vers
<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 @@ vers
<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 @@ vers
<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 @@ vers
<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 @@ vers
<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 @@ vers
<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 @@ vers
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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>
+ <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"/>
+ <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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
</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 @@ Voulez-vous le remplacer ?</translation>
</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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
</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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
</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 @@ Voulez-vous le remplacer ?</translation>
</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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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>
+ <translation type="obsolete">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"/>
+ <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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Voulez-vous le remplacer ?</translation>
<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 @@ Veuillez sélectionner un autre nom.</translation>
<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 @@ Veuillez sélectionner un autre nom.</translation>
<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 @@ Veuillez sélectionner un autre nom.</translation>
<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 @@ Veuillez sélectionner un autre nom.</translation>
<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 @@ Veuillez sélectionner un autre nom.</translation>
<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 @@ Veuillez sélectionner un autre nom.</translation>
<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 @@ Veuillez sélectionner un autre nom.</translation>
<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 @@ Veuillez sélectionner un autre nom.</translation>
<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 @@ Veuillez sélectionner un autre nom.</translation>
<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 @@ Veuillez sélectionner un autre nom.</translation>
<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 @@ Veuillez sélectionner un autre nom.</translation>
<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,50 +5891,47 @@ Veuillez sélectionner un autre nom.</translation>
<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>
-</context>
-<context>
- <name>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate</name>
<message>
- <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="285"/>
+ <location line="+118"/>
<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"/>
+ <location line="+2"/>
<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"/>
+ <location line="+16"/>
<source>%1 - Duplicate Skin</source>
<translation>%1 - Revêtement doublon</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="304"/>
+ <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 filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="318"/>
+ <location line="+14"/>
<source>%1 - Error</source>
- <translation>%1 - -Erreur</translation>
+ <translation>%1 - Erreur</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="319"/>
+ <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 :
@@ -5847,26 +5939,55 @@ Veuillez sélectionner un autre nom.</translation>
</message>
</context>
<context>
+ <name>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate</name>
+ <message>
+ <source>Load Custom Device Skin</source>
+ <translation type="obsolete">Charger le revêtement d&apos;appareil personnalisé</translation>
+ </message>
+ <message>
+ <source>All QVFB Skins (*.%1)</source>
+ <translation type="obsolete">Tous les revêtements QVFB (*.%1)</translation>
+ </message>
+ <message>
+ <source>%1 - Duplicate Skin</source>
+ <translation type="obsolete">%1 - Revêtement doublon</translation>
+ </message>
+ <message>
+ <source>The skin &apos;%1&apos; already exists.</source>
+ <translation type="obsolete">Le revêtement &apos;%1&apos; existe déjà.</translation>
+ </message>
+ <message>
+ <source>%1 - Error</source>
+ <translation type="obsolete">%1 - -Erreur</translation>
+ </message>
+ <message>
+ <source>%1 is not a valid skin directory:
+%2</source>
+ <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 @@ Veuillez sélectionner un autre nom.</translation>
<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 @@ Veuillez sélectionner un autre nom.</translation>
<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 @@ je préfère les mines de Pompéi.</translation>
<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 @@ je préfère les mines de Pompéi.</translation>
<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 @@ je préfère les mines de Pompéi.</translation>
<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 @@ je préfère les mines de Pompéi.</translation>
<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>
+ <translation>Liste déroulante</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="238"/>
+ <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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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>
+ <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"/>
+ <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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Classe : %2</translation>
<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 @@ Ceci indique une inconsistance dans le fichier ui.</translation>
<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 @@ Ceci indique une inconsistance dans le fichier ui.</translation>
<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 @@ Ceci indique une inconsistance dans le fichier ui.</translation>
<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>
diff --git a/translations/designer_ru.ts b/translations/designer_ru.ts
index 72f3532..89977b1 100644
--- a/translations/designer_ru.ts
+++ b/translations/designer_ru.ts
@@ -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 @@ This indicates an inconsistency in the ui-file.</source>
<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 @@ This indicates an inconsistency in the ui-file.</source>
<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 @@ This indicates an inconsistency in the ui-file.</source>
<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 @@ Script: %3</source>
<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 @@ Script: %3</source>
<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 @@ Would you like to retry or select a different file?</source>
Вы хотите повторить или выбрать другой файл?</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 @@ Would you like to retry?</source>
Желаете повторить?</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 @@ Would you like to retry?</source>
<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 @@ Would you like to retry?</source>
<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 @@ Would you like to retry?</source>
<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 @@ Would you like to retry?</source>
<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 @@ Would you like to retry?</source>
<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 @@ Would you like to retry?</source>
<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 @@ Would you like to retry?</source>
<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 @@ Would you like to retry?</source>
<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 @@ Would you like to retry?</source>
<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 @@ Would you like to retry?</source>
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
</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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<context>
<name>QtColorEditWidget</name>
<message>
- <location line="+605"/>
<source>...</source>
<translation>...</translation>
</message>
@@ -2506,22 +2044,18 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<context>
<name>QtGradientDialog</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientdialog.ui"/>
<source>Edit Gradient</source>
<translation>Правка градиента</translation>
</message>
@@ -2686,304 +2191,242 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ Container pages should only be added by specifying them in XML returned by the d
<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 @@ to
%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 @@ to
<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 @@ to
<context>
<name>QtResourceViewDialog</name>
<message>
- <location line="+252"/>
<source>Select Resource</source>
<translation>Выбрать ресурс</translation>
</message>
@@ -3535,17 +2867,14 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
</translation>
</message>
<message numerus="yes">
- <location line="+51"/>
<source>Add %n buddies</source>
<translation>
<numerusform>Добавить %n партнёра</numerusform>
@@ -4149,7 +3410,6 @@ Do you want overwrite the template?</source>
</translation>
</message>
<message>
- <location line="+47"/>
<source>Set automatically</source>
<translation>Установить автоматически</translation>
</message>
@@ -4157,7 +3417,6 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
</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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
</translation>
</message>
<message numerus="yes">
- <location line="+2"/>
<source>Paste %n widget(s)</source>
<translation type="unfinished">
<numerusform>Вставлен %n виджет</numerusform>
@@ -4809,53 +3948,42 @@ Do you want overwrite the template?</source>
</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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Do you want overwrite the template?</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PreviewManager</name>
<message>
- <location line="+426"/>
<source>%1 - [Preview]</source>
<translation>%1 - [Предпросмотр]</translation>
</message>
@@ -5893,7 +4833,6 @@ Please select another name.</source>
<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 @@ ate the goose who was loose.</source>
<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 @@ ate the goose who was loose.</source>
<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 @@ ate the goose who was loose.</source>
<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 @@ ate the goose who was loose.</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ Class: %2</source>
<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 @@ This indicates an inconsistency in the ui-file.</source>
<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 @@ This indicates an inconsistency in the ui-file.</source>
<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 @@ This indicates an inconsistency in the ui-file.</source>
<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>
diff --git a/translations/designer_sl.ts b/translations/designer_sl.ts
index 9399022..8d2a161 100644
--- a/translations/designer_sl.ts
+++ b/translations/designer_sl.ts
@@ -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-05 02:42+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/>
<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,51 +785,46 @@
<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>
</message>
@@ -1009,22 +832,18 @@
<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 @@ To nakazuje na neskladnost v datoteki *.ui.</translation>
<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 @@ To nakazuje na neskladnost v datoteki *.ui.</translation>
<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 @@ To nakazuje na neskladnost v datoteki *.ui.</translation>
<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 @@ Skript: %3</translation>
<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 @@ Skript: %3</translation>
<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 @@ Razlog: %2
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 @@ Razlog: %2
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 @@ Ali želite poskusiti znova?</translation>
<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 @@ Ali želite poskusiti znova?</translation>
<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 @@ Ali želite poskusiti znova?</translation>
<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 @@ Ali želite poskusiti znova?</translation>
<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 @@ Ali želite poskusiti znova?</translation>
<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 @@ Ali želite poskusiti znova?</translation>
<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 @@ Ali želite poskusiti znova?</translation>
<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 @@ Ali želite poskusiti znova?</translation>
<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 @@ Ali želite poskusiti znova?</translation>
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<context>
<name>QtColorEditWidget</name>
<message>
- <location line="+605"/>
<source>...</source>
<translation>...</translation>
</message>
@@ -2500,22 +2076,18 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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"/>
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml(
<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 @@ v
%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 @@ v
<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 @@ v
<context>
<name>QtResourceViewDialog</name>
<message>
- <location line="+250"/>
<source>Select Resource</source>
<translation>Izberite vir</translation>
</message>
@@ -3528,17 +2899,14 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
</translation>
</message>
<message numerus="yes">
- <location line="+51"/>
<source>Add %n buddies</source>
<translation>
<numerusform>Dodaj %n kolega</numerusform>
@@ -4123,7 +3444,6 @@ Ali želite nadomestiti predlogo?</translation>
</translation>
</message>
<message>
- <location line="+47"/>
<source>Set automatically</source>
<translation>Nastavi samodejno</translation>
</message>
@@ -4131,7 +3451,6 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
</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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
</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 @@ Ali želite nadomestiti predlogo?</translation>
</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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Ali želite nadomestiti predlogo?</translation>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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;Najdi v besedilu ...</translation>
+ <source>Change Current Page</source>
+ <translation type="unfinished">Spreminjanje trenutne strani</translation>
</message>
-</context>
-<context>
- <name>qdesigner_internal::ObjectInspector::ObjectInspectorPrivate</name>
<message>
- <location line="-438"/>
- <source>Change Current Page</source>
- <translation>Spreminjanje trenutne strani</translation>
+ <source>&amp;Find in Text...</source>
+ <translation>&amp;Najdi v besedilu ...</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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<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"/>
<source>Load Custom Device Skin</source>
- <translation>Naloži temo za napravo po meri</translation>
+ <translation type="unfinished">Naloži temo za napravo po meri</translation>
</message>
<message>
- <location line="+2"/>
<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 @@ Please select another name.</source>
<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 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PreviewManager</name>
<message>
- <location line="+426"/>
<source>%1 - [Preview]</source>
<translation>%1 - [ogled]</translation>
</message>
@@ -5865,10 +4873,10 @@ Please select another name.</source>
<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 @@ skuhal domače žgance.</translation>
<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 @@ skuhal domače žgance.</translation>
<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 @@ skuhal domače žgance.</translation>
<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 @@ skuhal domače žgance.</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
</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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
%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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ Razred: %2</translation>
<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 @@ To nakazuje na neskladnost v datoteki *.ui.</translation>
<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 @@ To nakazuje na neskladnost v datoteki *.ui.</translation>
<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>
diff --git a/translations/designer_uk.ts b/translations/designer_uk.ts
new file mode 100644
index 0000000..24b2a44
--- /dev/null
+++ b/translations/designer_uk.ts
@@ -0,0 +1,5783 @@
+<?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>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>%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 не зміг знайти контейнер без розташування для вставки.</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>Qt Designer couldn&apos;t find any plugins</source>
+ <translation>Qt Designer не зміг знайти жодного додатку</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>
diff --git a/translations/linguist_de.ts b/translations/linguist_de.ts
index 5597458..b4e0a45 100644
--- a/translations/linguist_de.ts
+++ b/translations/linguist_de.ts
@@ -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 @@ Es wird mit einer einfachen Universalform gearbeitet.</translation>
<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 @@ Es wird mit einer einfachen Universalform gearbeitet.</translation>
<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 @@ Es wird mit einer einfachen Universalform gearbeitet.</translation>
<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 @@ Es wird mit einer einfachen Universalform gearbeitet.</translation>
<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 @@ Es wird mit einer einfachen Universalform gearbeitet.</translation>
</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 @@ Es wird mit einer einfachen Universalform gearbeitet.</translation>
</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 @@ Es wird mit einer einfachen Universalform gearbeitet.</translation>
</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 @@ Es wird mit einer einfachen Universalform gearbeitet.</translation>
<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 @@ Close the open file(s) first?</source>
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 @@ Skip loading the first named file?</source>
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 @@ Soll die erstgenannte Datei übersprungen werden?</translation>
</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 @@ Alle Dateien (*)</translation>
</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 @@ Alle Dateien (*)</translation>
</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 @@ Alle Dateien (*)</translation>
<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 @@ Zeile: %2</translation>
<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 @@ Zeile: %2</translation>
<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 @@ Zeile: %2</translation>
<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 @@ Zeile: %2</translation>
<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 @@ Zeile: %2</translation>
<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 @@ Zeile: %2</translation>
<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 @@ Zeile: %2</translation>
<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 @@ Zeile: %2</translation>
<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 @@ Zeile: %2</translation>
<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 @@ Zeile: %2</translation>
<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>
diff --git a/translations/linguist_fr.ts b/translations/linguist_fr.ts
index 873adb7..c186adc 100644
--- a/translations/linguist_fr.ts
+++ b/translations/linguist_fr.ts
@@ -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,17 +80,22 @@
</message>
<message>
<location/>
- <source>The batch translator will search through the selected phrase books in the order given above.</source>
+ <source>&amp;Run</source>
<translation type="unfinished"></translation>
</message>
<message>
<location/>
- <source>&amp;Run</source>
+ <source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location/>
- <source>Cancel</source>
+ <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>
@@ -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 @@ Will assume a single universal form.</source>
</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>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>
+ <source> Ignored %n untranslated source text(s)</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
@@ -400,7 +441,7 @@ Will assume a single universal form.</source>
<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 @@ Will assume a single universal form.</source>
</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 @@ Will assume a single universal form.</source>
</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 @@ Will assume a single universal form.</source>
</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 @@ Will assume a single universal form.</source>
<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 @@ Will assume a single universal form.</source>
</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 @@ Will assume a single universal form.</source>
</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 @@ Will assume a single universal form.</source>
<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 @@ Will assume a single universal form.</source>
</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 @@ Will assume a single universal form.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+125"/>
+ <location line="+139"/>
<source>Loading...</source>
<translation type="unfinished"></translation>
</message>
@@ -1002,7 +988,7 @@ Skip loading the first named file?</source>
</translation>
</message>
<message>
- <location line="+93"/>
+ <location line="+94"/>
<source>Related files (%1);;</source>
<translation type="unfinished"></translation>
</message>
@@ -1018,14 +1004,14 @@ Skip loading the first named file?</source>
<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 @@ All files (*)</source>
<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 @@ All files (*)</source>
<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 @@ All files (*)</source>
<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 @@ All files (*)</source>
<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 @@ All files (*)</source>
<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 @@ All files (*)</source>
<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 @@ All files (*)</source>
<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 @@ All files (*)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+314"/>
+ <location line="+349"/>
<source>All</source>
<translation type="unfinished"></translation>
</message>
@@ -1398,13 +1384,13 @@ All files (*)</source>
<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 @@ All files (*)</source>
<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 @@ All files (*)</source>
<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 @@ All files (*)</source>
<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 @@ All files (*)</source>
<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 @@ All files (*)</source>
<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 @@ All files (*)</source>
<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 @@ Line: %2</source>
<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 @@ Line: %2</source>
<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 @@ Line: %2</source>
<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 @@ Line: %2</source>
<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 @@ Line: %2</source>
<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 @@ Line: %2</source>
<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 @@ Line: %2</source>
<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 @@ Line: %2</source>
<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 @@ Line: %2</source>
<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>
diff --git a/translations/linguist_ru.ts b/translations/linguist_ru.ts
index 625a0f1..2d06f25 100644
--- a/translations/linguist_ru.ts
+++ b/translations/linguist_ru.ts
@@ -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 @@ Will assume a single universal form.</source>
<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 @@ Will assume a single universal form.</source>
<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 @@ Will assume a single universal form.</source>
<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 @@ Will assume a single universal form.</source>
<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 @@ Will assume a single universal form.</source>
</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 @@ Will assume a single universal form.</source>
</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 @@ Close the open file(s) first?</source>
Закрыть открытые файлы?</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 @@ Skip loading the first named file?</source>
Пропустить загрузку файла?</translation>
</message>
<message numerus="yes">
- <location line="+61"/>
<source>%n translation unit(s) loaded.</source>
<translation>
<numerusform>Загружена %n запись.</numerusform>
@@ -463,124 +374,84 @@ Skip loading the first named file?</source>
</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 @@ All files (*)</source>
</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 @@ All files (*)</source>
</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 @@ All files (*)</source>
<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 @@ Line: %2</source>
<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 @@ Line: %2</source>
<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 @@ Line: %2</source>
<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 @@ Line: %2</source>
<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 @@ Line: %2</source>
<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 @@ Line: %2</source>
<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 @@ Line: %2</source>
<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 @@ Line: %2</source>
<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 @@ Line: %2</source>
<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>
diff --git a/translations/linguist_uk.ts b/translations/linguist_uk.ts
new file mode 100644
index 0000000..92d16dd
--- /dev/null
+++ b/translations/linguist_uk.ts
@@ -0,0 +1,1602 @@
+<?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>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>
+</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>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>
+</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>
diff --git a/translations/qt_de.ts b/translations/qt_de.ts
index 74bd048..7a062dc 100644
--- a/translations/qt_de.ts
+++ b/translations/qt_de.ts
@@ -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 @@ Die Audio- und Video-Unterstützung steht nicht zur Verfügung.</translation>
<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 @@ have libgstreamer-plugins-base installed.</source>
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 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass
<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 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass
<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 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass
<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 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass
<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 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass
<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 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass
<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 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass
<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 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass
<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 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass
<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 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass
<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 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass
<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 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass
<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 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass
<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 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass
<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 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass
<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 @@ Datei kann nicht gefunden werden.
Ü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 @@ Datei kann nicht gefunden werden.
<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 @@ nach
%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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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>
+ <translation type="obsolete">Ungültige Zuweisung bei Eigenschaft: Es wird eine Gleitkommazahl erwartet</translation>
</message>
<message>
- <location line="+3"/>
<source>Invalid property assignment: double expected</source>
- <translation>Ungültige Zuweisung bei Eigenschaft: Es wird eine Gleitkommazahl (double) erwartet</translation>
+ <translation type="obsolete">Ungültige Zuweisung bei Eigenschaft: Es wird eine Gleitkommazahl (double) erwartet</translation>
</message>
<message>
- <location line="+6"/>
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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>QDeclarativePixmapCache</name>
+ <name>QDeclarativePixmap</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"/>
<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"/>
<source>Cannot open: %1</source>
<translation>Fehlschlag beim Öffnen: %1</translation>
</message>
+</context>
+<context>
+ <name>QDeclarativePixmapCache</name>
+ <message>
+ <source>Error decoding: %1: %2</source>
+ <translation type="obsolete">Fehler beim Decodieren: %1: %2</translation>
+ </message>
+ <message>
+ <source>Failed to get image from provider: %1</source>
+ <translation type="obsolete">Bilddaten konnten nicht erhalten werden: %1</translation>
+ </message>
+ <message>
+ <source>Cannot open: %1</source>
+ <translation type="obsolete">Fehlschlag beim Öffnen: %1</translation>
+ </message>
<message>
- <location line="+37"/>
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ nach
<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 @@ Die Datei konnte nicht gefunden werden.
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 @@ Das Verzeichnis konnte nicht gefunden werden.
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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<context>
<name>QNetworkReplyImpl</name>
<message>
- <location line="+120"/>
- <location line="+28"/>
<source>Operation canceled</source>
<translation>Operation abgebrochen</translation>
</message>
@@ -4965,7 +3936,6 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Möchten Sie die Datei trotzdem löschen?</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QRadioButton</name>
<message>
- <location line="+12"/>
<source>Check</source>
<translation>Ankreuzen</translation>
</message>
@@ -6174,57 +4890,46 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
</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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5806"/>
<source>*</source>
<translation>*</translation>
</message>
@@ -9500,57 +7578,46 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
</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 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
</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>
diff --git a/translations/qt_fr.ts b/translations/qt_fr.ts
index 77feab6..1dd80be 100644
--- a/translations/qt_fr.ts
+++ b/translations/qt_fr.ts
@@ -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>
+ <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>
- <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;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>
+ <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>
- <location line="+3"/>
<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 @@ so on.</source>
</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 @@ have libgstreamer-plugins-base installed.</source>
<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 @@ d&apos;avoir installé libgstreamer-plugins-base.</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>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 @@ d&apos;avoir installé libgstreamer-plugins-base.</translation>
</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 @@ d&apos;avoir installé libgstreamer-plugins-base.</translation>
</message>
<message>
<source>Directory:</source>
- <translation>Dossier :</translation>
+ <translation>Dossier : </translation>
</message>
<message>
<source>Error</source>
@@ -580,7 +938,7 @@ File not found.
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 @@ en
<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 @@ en
<name>Q3ToolBar</name>
<message>
<source>More...</source>
- <translation>Reste...</translation>
+ <translation>Plus...</translation>
</message>
</context>
<context>
@@ -893,9 +1250,15 @@ en
</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 @@ en
</message>
<message>
<source>QT_LAYOUT_DIRECTION</source>
- <translation>LTR</translation>
+ <translation type="obsolete">LTR</translation>
</message>
</context>
<context>
@@ -937,7 +1300,7 @@ en
</message>
<message>
<source>COM &amp;Object:</source>
- <translation>&amp;Objet COM :</translation>
+ <translation>&amp;Objet COM : </translation>
</message>
</context>
<context>
@@ -959,31 +1322,31 @@ en
<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 @@ en
<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>
+ <translation>%1 : erreur inconnue %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: clé vide</translation>
+ <translation>%1 : clé vide</translation>
</message>
<message>
- <location line="+12"/>
<source>%1: unable to make key</source>
<comment>QSystemSemaphore</comment>
- <translation>%1: impossible de créer la clé</translation>
+ <translation>%1 : impossible de créer la clé</translation>
</message>
<message>
- <location line="+9"/>
<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 @@ en
</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 @@ en
</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 @@ en
</message>
<message>
<source>SliderHandle</source>
- <translation>Poignée</translation>
+ <translation>Poignée du slider</translation>
</message>
</context>
<context>
@@ -1312,13 +2580,11 @@ en
<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 @@ en
</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 @@ en
</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 @@ en
</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 @@ Veuillez vérifier que le nom du fichier est correct.</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
<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 @@ Voulez-vous quand même le supprimer ?</translation>
</message>
<message>
<source>Show </source>
- <translation>Montrer </translation>
+ <translation>Afficher</translation>
</message>
<message>
<source>Forward</source>
@@ -1575,11 +2861,11 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
<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 @@ Voulez-vous quand même le supprimer ?</translation>
</message>
<message>
<source>My Computer</source>
- <translation>Mon ordinateur</translation>
+ <translation>Poste de travail</translation>
</message>
<message>
<source>Computer</source>
@@ -1666,11 +2974,11 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
</message>
<message>
<source>Light</source>
- <translation>Léger</translation>
+ <translation>Maigre</translation>
</message>
<message>
<source>Italic</source>
@@ -1745,11 +3053,11 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
</message>
<message>
<source>Tamil</source>
- <translation>Tamil</translation>
+ <translation>Tamoul</translation>
</message>
<message>
<source>Telugu</source>
@@ -1909,11 +3217,11 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
<message>
<source>Login failed:
%1</source>
- <translation>Échec du login:
+ <translation>Échec du login :
%1</translation>
</message>
<message>
@@ -1995,11 +3303,22 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
<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 @@ Voulez-vous quand même le supprimer ?</translation>
<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 @@ Voulez-vous quand même le supprimer ?</translation>
<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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
<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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</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;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 @@ Voulez-vous quand même le supprimer ?</translation>
<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 @@ Voulez-vous quand même le supprimer ?</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 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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
<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 @@ Voulez-vous quand même le supprimer ?</translation>
<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 @@ Voulez-vous quand même le supprimer ?</translation>
<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>
+ <translation type="obsolete">URI invalide : %1</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
<source>Write error writing to %1: %2</source>
- <translation>Erreur d&apos;écriture sur %1 : %2</translation>
+ <translation type="obsolete">Erreur d&apos;écriture sur %1 : %2</translation>
</message>
<message>
- <location line="+57"/>
<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>
+ <translation type="obsolete">L&apos;hôte distant a fermé sa connexion de façon prématurée sur %1</translation>
</message>
<message>
- <location line="+99"/>
<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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
<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 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Voulez-vous quand même le supprimer ?</translation>
</message>
<message>
<source>Size:</source>
- <translation type="obsolete">Taille :</translation>
+ <translation type="obsolete">Taille : </translation>
</message>
<message>
<source>Properties</source>
@@ -3511,7 +4944,7 @@ Voulez-vous quand même le supprimer ?</translation>
</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 @@ Veuillez choisir un nom de fichier différent.</translation>
</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 @@ Veuillez choisir un nom de fichier différent.</translation>
</message>
<message>
<source>Page Setup</source>
- <translation>Configuration de la page</translation>
+ <translation>Mise en page</translation>
</message>
</context>
<context>
@@ -3885,7 +5318,7 @@ Veuillez choisir un nom de fichier différent.</translation>
</message>
<message>
<source>Copies:</source>
- <translation>Copies :</translation>
+ <translation>Copies : </translation>
</message>
<message>
<source>Collate</source>
@@ -3927,6 +5360,10 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
</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 @@ Veuillez choisir un nom de fichier différent.</translation>
</message>
<message>
<source>Location:</source>
- <translation>Emplacement :</translation>
+ <translation>Emplacement : </translation>
</message>
<message>
<source>Preview</source>
@@ -3956,11 +5393,11 @@ Veuillez choisir un nom de fichier différent.</translation>
</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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
</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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</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>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 @@ Veuillez choisir un nom de fichier différent.</translation>
</message>
<message>
<source>Left edge</source>
- <translation>Extrême gauche</translation>
+ <translation>Bord gauche</translation>
</message>
<message>
<source>Top</source>
@@ -4189,7 +5898,7 @@ Veuillez choisir un nom de fichier différent.</translation>
</message>
<message>
<source>Right edge</source>
- <translation>Extrême droite</translation>
+ <translation>Bord droit</translation>
</message>
<message>
<source>Bottom</source>
@@ -4283,9 +5992,8 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
</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 @@ Veuillez choisir un nom de fichier différent.</translation>
</message>
<message>
<source>Print</source>
- <translation>Impr écran</translation>
+ <translation>Imprimer</translation>
</message>
<message>
<source>SysReq</source>
@@ -4436,7 +6145,7 @@ Veuillez choisir un nom de fichier différent.</translation>
</message>
<message>
<source>Stop</source>
- <translation>Stop</translation>
+ <translation>Arrêter</translation>
</message>
<message>
<source>Refresh</source>
@@ -4657,17 +6366,164 @@ Veuillez choisir un nom de fichier différent.</translation>
</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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
</message>
<message>
<source>View</source>
- <translation>Afficher</translation>
+ <translation>Affichage</translation>
</message>
<message>
<source>Top Menu</source>
@@ -5139,6 +7005,33 @@ Veuillez choisir un nom de fichier différent.</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>QSpinBox</name>
<message>
<source>More</source>
@@ -5239,13 +7132,12 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
</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 @@ Veuillez choisir un nom de fichier différent.</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>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 @@ Veuillez choisir un nom de fichier différent.</translation>
</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 @@ Veuillez choisir un nom de fichier différent.</translation>
</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 @@ Veuillez choisir un nom de fichier différent.</translation>
<name>QToolButton</name>
<message>
<source>Press</source>
- <translation>Presser</translation>
+ <translation>Appuyer</translation>
</message>
<message>
<source>Open</source>
@@ -5461,7 +7372,7 @@ Veuillez choisir un nom de fichier différent.</translation>
</message>
<message>
<source>Redo</source>
- <translation>Répéter</translation>
+ <translation>Rétablir</translation>
</message>
</context>
<context>
@@ -5479,7 +7390,7 @@ Veuillez choisir un nom de fichier différent.</translation>
</message>
<message>
<source>Redo</source>
- <translation>Répéter</translation>
+ <translation>Rétablir</translation>
</message>
</context>
<context>
@@ -5544,9 +7455,8 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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>
+ <translation>Arrêter</translation>
</message>
<message>
- <location line="+5"/>
<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>
+ <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>
- <location line="+5"/>
<source>LTR</source>
<comment>Left to Right context menu item</comment>
- <translation>De la gauche vers la droite</translation>
+ <translation type="obsolete">De la gauche vers la droite</translation>
</message>
<message>
- <location line="+5"/>
<source>RTL</source>
<comment>Right to Left context menu item</comment>
- <translation>De la droite vers la gauche</translation>
+ <translation type="obsolete">De la droite vers la gauche</translation>
</message>
<message>
- <location line="+5"/>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
</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 @@ Veuillez choisir un nom de fichier différent.</translation>
</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 @@ Veuillez choisir un nom de fichier différent.</translation>
</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 @@ Veuillez choisir un nom de fichier différent.</translation>
</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>
+ <translation type="obsolete">Un attribute %1 avec la valeur %2 est déjà déclaré.</translation>
</message>
<message>
- <location line="+13"/>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
</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 @@ Veuillez choisir un nom de fichier différent.</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>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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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>
+ <translation type="obsolete">Pas d&apos;opérande dans une division entière, %1, peut être %2.</translation>
</message>
<message>
- <location line="+7"/>
<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>
+ <translation type="obsolete">Le premier opérande dans une division entière, %1, ne peut être infini (%2).</translation>
</message>
<message>
- <location line="+6"/>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
</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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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>
+ <translation type="obsolete">Aucun cast n&apos;est possible avec %1 comme type de destination.</translation>
</message>
<message>
- <location line="+15"/>
<source>It is not possible to cast from %1 to %2.</source>
- <translation>Il est impossible de caster de %1 en %2.</translation>
+ <translation type="obsolete">Il est impossible de caster de %1 en %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>Caster vers %1 est impossible parce que c&apos;est un type abstrait qui ne peut donc être instancié.</translation>
+ <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>
- <location line="+23"/>
<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>
+ <translation type="obsolete">I lest impossible de caster la valeur %1 de type %2 en %3</translation>
</message>
<message>
- <location line="+8"/>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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>
+ <translation type="obsolete">Aucune comparaison ne peut être faite avec le type %1.</translation>
</message>
<message>
- <location line="+14"/>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
</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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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>
+ <translation type="obsolete">Construct n&apos;est autorisé que dans XQuery.</translation>
</message>
<message>
- <location line="+118"/>
<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>
+ <translation type="obsolete">La valeur de l&apos;attribut %1 doit être du type %2, %3 n&apos;en est pas.</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>Le préfixe %1 ne peut être lié. Par défault, il est déjà lié au namespace %2.</translation>
+ <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>
- <location line="+312"/>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
<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>
+ <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>
- <location line="+6"/>
<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>
+ <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>
- <location line="+8"/>
<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>
+ <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>
- <location line="+9"/>
<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>
+ <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>
- <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>Les attributs XSL-T sur des éléments XSL-T doivent être dans le namespace null, et pas dans %1.</translation>
+ <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>
- <location line="+12"/>
<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>
+ <translation type="obsolete">L&apos;attribut %1 doit apparaître sur l&apos;élément %2.</translation>
</message>
<message>
- <location line="+8"/>
<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 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>VolumeSlider</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/volumeslider.cpp" line="+184"/>
<source>Muted</source>
- <translation>Muet</translation>
+ <translation type="obsolete">Muet</translation>
</message>
<message>
- <location line="+5"/>
- <location line="+15"/>
<source>Volume: %1%</source>
- <translation>Volume : %1%</translation>
+ <translation type="obsolete">Volume : %1%</translation>
</message>
</context>
<context>
@@ -8915,655 +10967,4 @@ Veuillez choisir un nom de fichier différent.</translation>
<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>
diff --git a/translations/qt_help_de.ts b/translations/qt_help_de.ts
index c7a8103..1f0cf32 100644
--- a/translations/qt_help_de.ts
+++ b/translations/qt_help_de.ts
@@ -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>
diff --git a/translations/qt_help_fr.ts b/translations/qt_help_fr.ts
index 3835d10..62bfccc 100644
--- a/translations/qt_help_fr.ts
+++ b/translations/qt_help_fr.ts
@@ -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,64 +260,140 @@
<source>Cannot register contents!</source>
<translation>Impossible de référencer le contenu !</translation>
</message>
+ <message>
+ <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="+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="+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="+9"/>
+ <source>Invalid links in HTML files.</source>
+ <translation>Liens invalides dans les fichiers HTML.</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpProject</name>
+ <message>
+ <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+88"/>
+ <source>Unknown token.</source>
+ <translation>Identificateur inconnu.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Unknown token. Expected &quot;QtHelpProject&quot;!</source>
+ <translation>Identificateur inconnu. &quot;QtHelpProject&quot; attendu !</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Error in line %1: %2</source>
+ <translation>Erreur à la ligne %1 : %2</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Virtual folder has invalid syntax.</source>
+ <translation>Syntaxe invalide pour le dossier virtuel.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Namespace has invalid syntax.</source>
+ <translation>Syntaxe invalide pour l&apos;espace de noms.</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Missing namespace in QtHelpProject.</source>
+ <translation>Espace de noms manquant dans QtHelpProject.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Missing virtual folder in QtHelpProject</source>
+ <translation>Dossier virtuel manquant dans QtHelpProject</translation>
+ </message>
+ <message>
+ <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="+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="+411"/>
+ <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+124"/>
<source>Search for:</source>
<translation>Rechercher :</translation>
</message>
<message>
- <location line="+5"/>
+ <location line="+1"/>
<source>Previous search</source>
<translation>Recherche précédente</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+1"/>
<source>Next search</source>
<translation>Recherche suivante</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Search</source>
<translation>Recherche</translation>
</message>
<message>
- <location line="+20"/>
+ <location line="+2"/>
<source>Advanced search</source>
<translation>Recherche avancée</translation>
</message>
<message>
- <location line="+18"/>
+ <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="+6"/>
+ <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="+6"/>
+ <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="+6"/>
+ <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="+6"/>
+ <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 filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+235"/>
+ <location line="+61"/>
<source>0 - 0 of 0 Hits</source>
<translation>0 - 0 de 0 résultats</translation>
</message>
@@ -313,63 +401,52 @@
<context>
<name>QHelpSearchResultWidgetPrivate</name>
<message>
- <location line="-61"/>
<source>%1 - %2 of %3 Hits</source>
- <translation>%1 - %2 de %3 résultats</translation>
+ <translation type="obsolete">%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>
+ <translation type="obsolete">Sans titre</translation>
</message>
<message>
- <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+85"/>
<source>Unknown token.</source>
<translatorcomment>contexte peu clair...</translatorcomment>
- <translation>Identificateur inconnu.</translation>
+ <translation type="obsolete">Identificateur inconnu.</translation>
</message>
<message>
- <location line="+13"/>
<source>Unknown token. Expected &quot;QtHelpProject&quot;!</source>
- <translation>Identificateur inconnu. &quot;QtHelpProject&quot; attendu !</translation>
+ <translation type="obsolete">Identificateur inconnu. &quot;QtHelpProject&quot; attendu !</translation>
</message>
<message>
- <location line="+5"/>
<source>Error in line %1: %2</source>
- <translation>Erreur à la ligne %1 : %2</translation>
+ <translation type="obsolete">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>
+ <translation type="obsolete">Un dossier virtuel ne doit pas contenir le caractère &apos;/&apos; !</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>
+ <translation type="obsolete">Un espace de noms ne doit pas contenir le caractère &apos;/&apos; !</translation>
</message>
<message>
- <location line="+16"/>
<source>Missing namespace in QtHelpProject.</source>
- <translation>Espace de noms manquant dans QtHelpProject.</translation>
+ <translation type="obsolete">Espace de noms manquant dans QtHelpProject.</translation>
</message>
<message>
- <location line="+2"/>
<source>Missing virtual folder in QtHelpProject</source>
- <translation>Dossier virtuel manquant dans QtHelpProject</translation>
+ <translation type="obsolete">Dossier virtuel manquant dans QtHelpProject</translation>
</message>
<message>
- <location line="+88"/>
<source>Missing attribute in keyword at line %1.</source>
- <translation>Attribut manquant pour le mot clé à la ligne %1.</translation>
+ <translation type="obsolete">Attribut manquant pour le mot clé à la ligne %1.</translation>
</message>
<message>
- <location line="+123"/>
<source>The input file %1 could not be opened!</source>
- <translation>Le fichier source %1 n&apos;a pas pu être ouvert !</translation>
+ <translation type="obsolete">Le fichier source %1 n&apos;a pas pu être ouvert !</translation>
</message>
</context>
</TS>
diff --git a/translations/qt_help_ru.ts b/translations/qt_help_ru.ts
index f1aa0fa..be3583c 100644
--- a/translations/qt_help_ru.ts
+++ b/translations/qt_help_ru.ts
@@ -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>
diff --git a/translations/qt_help_uk.ts b/translations/qt_help_uk.ts
new file mode 100644
index 0000000..1687959
--- /dev/null
+++ b/translations/qt_help_uk.ts
@@ -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>
diff --git a/translations/qt_ru.ts b/translations/qt_ru.ts
index deae134..5fbd6e3 100644
--- a/translations/qt_ru.ts
+++ b/translations/qt_ru.ts
@@ -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 @@ have libgstreamer-plugins-base installed.</source>
что пакет 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 @@ have libgstreamer-plugins-base installed.</source>
<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 @@ have libgstreamer-plugins-base installed.</source>
<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 @@ have libgstreamer-plugins-base installed.</source>
<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 @@ have libgstreamer-plugins-base installed.</source>
<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 @@ have libgstreamer-plugins-base installed.</source>
<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 @@ have libgstreamer-plugins-base installed.</source>
<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 @@ have libgstreamer-plugins-base installed.</source>
<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 @@ have libgstreamer-plugins-base installed.</source>
<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 @@ have libgstreamer-plugins-base installed.</source>
<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>
+ <translation>Ошибка открытия источника: тип не поддерживается</translation>
</message>
<message>
- <location line="+18"/>
<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 @@ have libgstreamer-plugins-base installed.</source>
<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 @@ have libgstreamer-plugins-base installed.</source>
<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 @@ have libgstreamer-plugins-base installed.</source>
<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 @@ have libgstreamer-plugins-base installed.</source>
<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 @@ have libgstreamer-plugins-base installed.</source>
<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 @@ Check path and filename.</source>
Проверьте правильность пути и имени файла.</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 @@ Check path and filename.</source>
<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 @@ to
%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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<context>
<name>Q3ToolBar</name>
<message>
- <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
<source>More...</source>
<translation>Больше...</translation>
</message>
@@ -1169,51 +930,38 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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>
+ <source>Invalid property assignment: number expected</source>
+ <translation>Некорректное присваивание свойства: ожидается число</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: 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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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>
+ <name>QDeclarativePixmap</name>
<message>
- <location filename="../src/declarative/util/qdeclarativepixmapcache.cpp" line="+190"/>
<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>
+ <translation>Не удалось получить изображение от постащика изображений: %1</translation>
</message>
<message>
- <location line="+19"/>
- <location line="+345"/>
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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 @@ to
<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>
+ <translation>&quot;%1&quot; защищён от записи.
+Действительно желаете удалить?</translation>
</message>
<message>
- <location line="+424"/>
<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 @@ Please verify the correct file name was given.</source>
Проверьте правильность указанного имени файла.</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 @@ Please verify the correct directory name was given.</source>
Проверьте правильность указанного имени каталога.</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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<context>
<name>QMdiArea</name>
<message>
- <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
<source>(Untitled)</source>
<translation>(Неозаглавлено)</translation>
</message>
@@ -4492,92 +3523,74 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<context>
<name>QNetworkReplyImpl</name>
<message>
- <location line="+120"/>
- <location line="+28"/>
<source>Operation canceled</source>
<translation>Операция отменена</translation>
</message>
@@ -4956,7 +3895,6 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please verify the correct directory name was given.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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>
+ <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>
- <location/>
<source>Current Page</source>
<translation>Текущая страница</translation>
</message>
@@ -6031,47 +4751,38 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<context>
<name>QProgressDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+196"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
@@ -6150,7 +4836,6 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<context>
<name>QRadioButton</name>
<message>
- <location line="+12"/>
<source>Check</source>
<translation>Отметить</translation>
</message>
@@ -6166,57 +4850,46 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<context>
<name>QScriptNewBreakpointWidget</name>
<message>
- <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="-223"/>
<source>Close</source>
<translation>Закрыть</translation>
</message>
@@ -6661,84 +5252,66 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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>
+ <translation type="unfinished">Начать воспроизведение</translation>
</message>
<message>
- <location line="+1"/>
<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>
+ <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>
- <location line="+2"/>
<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>
+ <translation type="unfinished">Сверхширокополосная связь</translation>
</message>
<message>
- <location line="+1"/>
<source>Audio Forward</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Последовательное воспроизведение</translation>
</message>
<message>
- <location line="+1"/>
<source>Audio Repeat</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Воспроизведение по кругу</translation>
</message>
<message>
- <location line="+1"/>
<source>Audio Random Play</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Случайное воспроизведение</translation>
</message>
<message>
- <location line="+1"/>
<source>Subtitle</source>
<translation type="unfinished">Субтитры</translation>
</message>
<message>
- <location line="+1"/>
<source>Audio Cycle Track</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Зацикленное воспроизведение дорожки</translation>
</message>
<message>
- <location line="+1"/>
<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>
+ <translation type="unfinished">Приостановить</translation>
</message>
<message>
- <location line="+1"/>
<source>Hibernate</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Усыпить</translation>
</message>
<message>
- <location line="+4"/>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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>
+ <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 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>
+ <translation>Воспроизведение в режиме отображения на весь экран</translation>
</message>
<message>
- <location line="+2"/>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5802"/>
<source>*</source>
<translation>*</translation>
</message>
@@ -9463,57 +7541,46 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
<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 @@ Please choose a different file name.</source>
</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 @@ Please choose a different file name.</source>
</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>
diff --git a/translations/qt_sl.ts b/translations/qt_sl.ts
index 6c42bb8..e0cee0f 100644
--- a/translations/qt_sl.ts
+++ b/translations/qt_sl.ts
@@ -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-05 12:59+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 @@ Preverite namestitev GStreamerja in se prepričajte,
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 @@ da je nameščen paket libgstreamer-plugins-base.</translation>
<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>
+ <source>Enabled</source>
+ <translation>Omogočeno</translation>
</message>
+</context>
+<context>
+ <name>Phonon::MMF::EnvironmentalReverb</name>
<message>
- <location line="+2"/>
- <source>Bass boost</source>
- <translation>Ojačanje basov</translation>
+ <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>
- <location line="+2"/>
- <source>Distance Attenuation</source>
- <translation>Utišanje zaradi razdalje</translation>
+ <source>Decay time (ms)</source>
+ <extracomment>DecayTime: Time over which reverberation is diminished.
+</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
- <location line="+2"/>
- <source>Environmental Reverb</source>
- <translation>Okoljsko odmevanje</translation>
+ <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>
- <location line="+2"/>
- <source>Loudness</source>
- <translation>Glasnost</translation>
+ <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>
- <location line="+2"/>
- <source>Source Orientation</source>
- <translation>Usmerjenost vira</translation>
+ <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>
- <location line="+2"/>
- <source>Stereo Widening</source>
- <translation>Razširitev sterea</translation>
+ <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 @@ da je nameščen paket libgstreamer-plugins-base.</translation>
<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 @@ da je nameščen paket libgstreamer-plugins-base.</translation>
<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 @@ da je nameščen paket libgstreamer-plugins-base.</translation>
<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 @@ Datoteke ni moč najti.
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 @@ Preverite pot in ime datoteke.</translation>
<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 @@ v
%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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 type="unfinished">Ob zapolnjevanju je bila zaznana možna zanka sidra.</translation>
+ </message>
+ <message>
+ <source>Possible anchor loop detected on centerIn.</source>
+ <translation type="unfinished">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 type="unfinished">Na objekt, ki ni nadrejen ali enakovreden, se ni moč zasidrati.</translation>
+ </message>
+ <message>
+ <source>Possible anchor loop detected on vertical anchor.</source>
+ <translation type="unfinished">Ob navpičnem sidru je bila zaznana možna zanka sidra.</translation>
+ </message>
+ <message>
+ <source>Possible anchor loop detected on horizontal anchor.</source>
+ <translation type="unfinished">Ob vodoravnem sidru je bila zaznana možna zanka sidra.</translation>
+ </message>
+ <message>
+ <source>Cannot specify left, right, and hcenter anchors.</source>
+ <translation type="unfinished">Levih, desnih in vodoravno sredinskih sider ni moč določiti.</translation>
+ </message>
+ <message>
+ <source>Cannot anchor to a null item.</source>
+ <translation type="unfinished">Na ničelni objekt se ni moč zasidrati.</translation>
+ </message>
+ <message>
+ <source>Cannot anchor a horizontal edge to a vertical edge.</source>
+ <translation type="unfinished">Vodoravnega roba ni moč zasidrati na navpični rob.</translation>
+ </message>
+ <message>
+ <source>Cannot anchor item to self.</source>
+ <translation type="unfinished">Objekta ni moč zasidrati samega nase.</translation>
+ </message>
+ <message>
+ <source>Cannot specify top, bottom, and vcenter anchors.</source>
+ <translation type="unfinished">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 type="unfinished">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 type="unfinished">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 type="unfinished">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 type="unfinished">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 type="unfinished">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 type="unfinished">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 type="unfinished">Neveljavna prireditev lastnosti: »%1« je lastnost, ki je samo za branje</translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: unknown enumeration</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: neznano oštevilčenje</translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: string expected</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovan je niz</translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: url expected</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovan je URL</translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: unsigned int expected</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovano je nepredznačeno celo število</translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: int expected</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovano je celo število</translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: number expected</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovano je število</translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: color expected</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovana je barva</translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: date expected</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovan je datum</translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: time expected</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovan je čas</translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: datetime expected</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovana sta datum in čas</translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: point expected</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovana je točka</translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: size expected</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovana je velikost</translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: rect expected</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovan je pravokotnik</translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: boolean expected</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovana je logična vrednost</translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: 3D vector expected</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovan je 3D vektor</translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: unsupported type &quot;%1&quot;</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: nepodprta vrsta »%1«</translation>
+ </message>
+ <message>
+ <source>Element is not creatable.</source>
+ <translation type="unfinished">Elementa ni moč ustvariti.</translation>
+ </message>
+ <message>
+ <source>Component elements may not contain properties other than id</source>
+ <translation type="unfinished">Elementi komponent ne smejo vsebovati drugih lastnosti kot ID</translation>
+ </message>
+ <message>
+ <source>Invalid component id specification</source>
+ <translation type="unfinished">Neveljavno določen ID komponente</translation>
+ </message>
+ <message>
+ <source>id is not unique</source>
+ <translation type="unfinished">ID ni edinstven</translation>
+ </message>
+ <message>
+ <source>Invalid component body specification</source>
+ <translation type="unfinished">Neveljavno določeno telo komponente</translation>
+ </message>
+ <message>
+ <source>Component objects cannot declare new properties.</source>
+ <translation type="unfinished">Objekti komponent ne morejo deklarirati novih lastnosti.</translation>
+ </message>
+ <message>
+ <source>Component objects cannot declare new signals.</source>
+ <translation type="unfinished">Objekti komponent ne morejo deklarirati novih signalov.</translation>
+ </message>
+ <message>
+ <source>Component objects cannot declare new functions.</source>
+ <translation type="unfinished">Objekti komponent ne morejo deklarirati novih funkcij.</translation>
+ </message>
+ <message>
+ <source>Cannot create empty component specification</source>
+ <translation type="unfinished">Prazne specifikacije komponente ni moč ustvariti</translation>
+ </message>
+ <message>
+ <source>Incorrectly specified signal assignment</source>
+ <translation type="unfinished">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 type="unfinished">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 type="unfinished">Pripete lastnosti tu ne morejo biti uporabljene</translation>
+ </message>
+ <message>
+ <source>Non-existent attached object</source>
+ <translation type="unfinished">Neobstoječ pripet objekt</translation>
+ </message>
+ <message>
+ <source>Invalid attached object assignment</source>
+ <translation type="unfinished">Neveljavna prireditev pripetega objekta</translation>
+ </message>
+ <message>
+ <source>Cannot assign to non-existent default property</source>
+ <translation type="unfinished">Neobstoječi privzeti lastnosti ni moč prirediti</translation>
+ </message>
+ <message>
+ <source>Cannot assign to non-existent property &quot;%1&quot;</source>
+ <translation type="unfinished">Neobstoječi lastnosti »%1« ni moč prirediti</translation>
+ </message>
+ <message>
+ <source>Invalid use of namespace</source>
+ <translation type="unfinished">Napačna raba imenskega prostora</translation>
+ </message>
+ <message>
+ <source>Not an attached property name</source>
+ <translation type="unfinished">Ni ime pripete lastnosti</translation>
+ </message>
+ <message>
+ <source>Invalid use of id property</source>
+ <translation type="unfinished">Napačna raba lastnosti ID</translation>
+ </message>
+ <message>
+ <source>Property has already been assigned a value</source>
+ <translation type="unfinished">Lastnosti je že bila prirejena vrednost</translation>
+ </message>
+ <message>
+ <source>Invalid grouped property access</source>
+ <translation type="unfinished">Neveljaven dostop do skupinske lastnosti</translation>
+ </message>
+ <message>
+ <source>Cannot assign a value directly to a grouped property</source>
+ <translation type="unfinished">Skupinski lastnosti ni moč neposredno prirediti vrednosti</translation>
+ </message>
+ <message>
+ <source>Invalid property use</source>
+ <translation type="unfinished">Neveljavna raba lastnosti</translation>
+ </message>
+ <message>
+ <source>Property assignment expected</source>
+ <translation type="unfinished">Pričakovana je prireditev lastnosti</translation>
+ </message>
+ <message>
+ <source>Single property assignment expected</source>
+ <translation type="unfinished">Pričakovana je enojna prireditev lastnosti</translation>
+ </message>
+ <message>
+ <source>Unexpected object assignment</source>
+ <translation type="unfinished">Nepričakovana prireditev objekta</translation>
+ </message>
+ <message>
+ <source>Cannot assign object to list</source>
+ <translation type="unfinished">Objekta ni moč prirediti seznamu</translation>
+ </message>
+ <message>
+ <source>Can only assign one binding to lists</source>
+ <translation type="unfinished">Seznamom je moč prirediti le eno vezavo</translation>
+ </message>
+ <message>
+ <source>Cannot assign primitives to lists</source>
+ <translation type="unfinished">Seznamom ni moč prirediti osnovnih tipov</translation>
+ </message>
+ <message>
+ <source>Cannot assign multiple values to a script property</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Invalid property assignment: script expected</source>
+ <translation type="unfinished">Neveljavna prireditev lastnosti: pričakovan je skript</translation>
+ </message>
+ <message>
+ <source>Cannot assign object to property</source>
+ <translation type="unfinished">Objekta ni moč prirediti lastnosti</translation>
+ </message>
+ <message>
+ <source>&quot;%1&quot; cannot operate on &quot;%2&quot;</source>
+ <translation type="unfinished">»%1« ne more delovati na »%2«</translation>
+ </message>
+ <message>
+ <source>Duplicate default property</source>
+ <translation type="unfinished">Podvojena privzeta lastnost</translation>
+ </message>
+ <message>
+ <source>Duplicate property name</source>
+ <translation type="unfinished">Podvojeno ime lastnosti</translation>
+ </message>
+ <message>
+ <source>Property names cannot begin with an upper case letter</source>
+ <translation type="unfinished">Imena lastnosti se ne smejo začeti z veliko črko</translation>
+ </message>
+ <message>
+ <source>Illegal property name</source>
+ <translation type="unfinished">Neveljavno ime lastnosti</translation>
+ </message>
+ <message>
+ <source>Duplicate signal name</source>
+ <translation type="unfinished">Podvojeno ime signala</translation>
+ </message>
+ <message>
+ <source>Signal names cannot begin with an upper case letter</source>
+ <translation type="unfinished">Imena signalov se ne smejo začeti z veliko črko</translation>
+ </message>
+ <message>
+ <source>Illegal signal name</source>
+ <translation type="unfinished">Neveljavno ime signala</translation>
+ </message>
+ <message>
+ <source>Duplicate method name</source>
+ <translation type="unfinished">Podvojeno ime metode</translation>
+ </message>
+ <message>
+ <source>Method names cannot begin with an upper case letter</source>
+ <translation type="unfinished">Imena metod se ne smejo začeti z veliko črko</translation>
+ </message>
+ <message>
+ <source>Illegal method name</source>
+ <translation type="unfinished">Neveljavno ime metode</translation>
+ </message>
+ <message>
+ <source>Property value set multiple times</source>
+ <translation type="unfinished">Vrednost lastnosti je bila nastavljena večkrat</translation>
+ </message>
+ <message>
+ <source>Invalid property nesting</source>
+ <translation type="unfinished">Neveljavno gnezdenje lastnosti</translation>
+ </message>
+ <message>
+ <source>Cannot override FINAL property</source>
+ <translation type="unfinished">Lastnosti FINAL ni moč povoziti</translation>
+ </message>
+ <message>
+ <source>Invalid property type</source>
+ <translation type="unfinished">Neveljavna vrsta lastnosti</translation>
+ </message>
+ <message>
+ <source>Invalid empty ID</source>
+ <translation type="unfinished">Neveljaven prazen ID</translation>
+ </message>
+ <message>
+ <source>IDs cannot start with an uppercase letter</source>
+ <translation type="unfinished">ID-ji se ne smejo začeti z veliko črko</translation>
+ </message>
+ <message>
+ <source>IDs must start with a letter or underscore</source>
+ <translation type="unfinished">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 type="unfinished">ID-ji lahko vsebujejo le črke, števke in podčrtaje</translation>
+ </message>
+ <message>
+ <source>ID illegally masks global JavaScript property</source>
+ <translation type="unfinished">ID neveljavno zakriva globalno lastnost JavaScripta</translation>
+ </message>
+ <message>
+ <source>No property alias location</source>
+ <translation type="unfinished">Brez lokacije aliasa lastnosti</translation>
+ </message>
+ <message>
+ <source>Invalid alias location</source>
+ <translation type="unfinished">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 type="unfinished">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 type="unfinished">Neveljavna referenca aliasa. ID-ja »%1« ni moč najti</translation>
+ </message>
+</context>
+<context>
+ <name>QDeclarativeComponent</name>
+ <message>
+ <source>Invalid empty URL</source>
+ <translation type="unfinished">Neveljaven prazen URL</translation>
+ </message>
+</context>
+<context>
+ <name>QDeclarativeCompositeTypeManager</name>
+ <message>
+ <source>Resource %1 unavailable</source>
+ <translation type="unfinished">Vir %1 ni na voljo</translation>
+ </message>
+ <message>
+ <source>Namespace %1 cannot be used as a type</source>
+ <translation type="unfinished">Imenskega prostora %1 ni moč uporabiti kot vrste</translation>
+ </message>
+ <message>
+ <source>%1 %2</source>
+ <translation type="unfinished">%1 % {1 %2?}</translation>
+ </message>
+ <message>
+ <source>Type %1 unavailable</source>
+ <translation type="unfinished">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 type="unfinished">Neobstoječi lastnosti »%1« ni moč prirediti</translation>
+ </message>
+ <message>
+ <source>Connections: nested objects not allowed</source>
+ <translation type="unfinished">Povezave: gnezdeni objekti niso dovoljeni</translation>
+ </message>
+ <message>
+ <source>Connections: syntax error</source>
+ <translation type="unfinished">Povezave: napaka v skladnji</translation>
+ </message>
+ <message>
+ <source>Connections: script expected</source>
+ <translation type="unfinished">Povezave: pričakovan je skript</translation>
+ </message>
+</context>
+<context>
+ <name>QDeclarativeEngine</name>
+ <message>
+ <source>executeSql called outside transaction()</source>
+ <translation type="unfinished">executeSql je bil klican izven transaction()</translation>
+ </message>
+ <message>
+ <source>Read-only Transaction</source>
+ <translation type="unfinished">Transakcija samo za branje</translation>
+ </message>
+ <message>
+ <source>Version mismatch: expected %1, found %2</source>
+ <translation type="unfinished">Neujemanje različic: pričakovana %1, najdena %2</translation>
+ </message>
+ <message>
+ <source>SQL transaction failed</source>
+ <translation type="unfinished">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 type="unfinished">SQL: neujemanje različice podatkovne zbirke</translation>
+ </message>
+</context>
+<context>
+ <name>QDeclarativeFlipable</name>
+ <message>
+ <source>front is a write-once property</source>
+ <translation type="unfinished">front je lastnost, ki se jo lahko zapiše samo enkrat</translation>
+ </message>
+ <message>
+ <source>back is a write-once property</source>
+ <translation type="unfinished">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 type="unfinished">definicije »%2« modula »%1« ni moč brati</translation>
+ </message>
+ <message>
+ <source>plugin cannot be loaded for module &quot;%1&quot;: %2</source>
+ <translation type="unfinished">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 type="unfinished">vstavek »%2« modula »%1« ni bil najden</translation>
+ </message>
+ <message>
+ <source>module &quot;%1&quot; version %2.%3 is not installed</source>
+ <translation type="unfinished">modul »%1« različice %2.%3 ni nameščen</translation>
+ </message>
+ <message>
+ <source>module &quot;%1&quot; is not installed</source>
+ <translation type="unfinished">modul »%1« ni nameščen</translation>
+ </message>
+ <message>
+ <source>&quot;%1&quot;: no such directory</source>
+ <translation type="unfinished">»%1«: mapa ne obstaja</translation>
+ </message>
+ <message>
+ <source>import &quot;%1&quot; has no qmldir and no namespace</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>- %1 is not a namespace</source>
+ <translation type="unfinished">– %1 ni imenski prostor</translation>
+ </message>
+ <message>
+ <source>- nested namespaces not allowed</source>
+ <translation type="unfinished">– gnezdeni imenski prostori niso dovoljeni</translation>
+ </message>
+ <message>
+ <source>local directory</source>
+ <translation type="unfinished">krajevna mapa</translation>
+ </message>
+ <message>
+ <source>is ambiguous. Found in %1 and in %2</source>
+ <translation type="unfinished">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 type="unfinished">je dvoumno. Najdeno v %1 v različicah %2.%3 in %4.%5</translation>
+ </message>
+ <message>
+ <source>is instantiated recursively</source>
+ <translation type="unfinished">je instanciran rekurzivno</translation>
+ </message>
+ <message>
+ <source>is not a type</source>
+ <translation type="unfinished">ni vrsta</translation>
+ </message>
+</context>
+<context>
+ <name>QDeclarativeKeyNavigationAttached</name>
+ <message>
+ <source>KeyNavigation is only available via attached properties</source>
+ <translation type="unfinished">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 type="unfinished">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 type="unfinished">remove: indeks %1 je izven obsega</translation>
+ </message>
+ <message>
+ <source>insert: value is not an object</source>
+ <translation type="unfinished">insert: vrednost ni objekt</translation>
+ </message>
+ <message>
+ <source>insert: index %1 out of range</source>
+ <translation type="unfinished">insert: indeks %1 je izven obsega</translation>
+ </message>
+ <message>
+ <source>move: out of range</source>
+ <translation type="unfinished">move: izven obsega</translation>
+ </message>
+ <message>
+ <source>append: value is not an object</source>
+ <translation type="unfinished">append: vrednost ni objekt</translation>
+ </message>
+ <message>
+ <source>set: value is not an object</source>
+ <translation type="unfinished">set: vrednost ni objekt</translation>
+ </message>
+ <message>
+ <source>set: index %1 out of range</source>
+ <translation type="unfinished">set: indeks %1 je izven obsega</translation>
+ </message>
+ <message>
+ <source>ListElement: cannot contain nested elements</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ListElement: cannot use reserved &quot;id&quot; property</source>
+ <translation type="unfinished">ListElement: ne more uporabiti rezervirane lastnosti »id«</translation>
+ </message>
+ <message>
+ <source>ListElement: cannot use script for property value</source>
+ <translation type="unfinished">ListElement: ne more uporabiti skripta za vrednost lastnosti</translation>
+ </message>
+ <message>
+ <source>ListModel: undefined property &apos;%1&apos;</source>
+ <translation type="unfinished">ListModel: nedoločena lastnost »%1«</translation>
+ </message>
+</context>
+<context>
+ <name>QDeclarativeLoader</name>
+ <message>
+ <source>Loader does not support loading non-visual elements.</source>
+ <translation type="unfinished">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 type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unable to preserve appearance under non-uniform scale</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unable to preserve appearance under scale of 0</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QDeclarativeParentChange</name>
+ <message>
+ <source>Unable to preserve appearance under complex transform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unable to preserve appearance under non-uniform scale</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unable to preserve appearance under scale of 0</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QDeclarativeParser</name>
+ <message>
+ <source>Illegal unicode escape sequence</source>
+ <translation type="unfinished">Neveljavno ubežno zaporedje Unicode</translation>
+ </message>
+ <message>
+ <source>Illegal character</source>
+ <translation type="unfinished">Neveljaven znak</translation>
+ </message>
+ <message>
+ <source>Unclosed string at end of line</source>
+ <translation type="unfinished">Nezaprt niz na koncu vrstice</translation>
+ </message>
+ <message>
+ <source>Illegal escape squence</source>
+ <translation type="unfinished">Neveljavno ubežno zaporedje</translation>
+ </message>
+ <message>
+ <source>Unclosed comment at end of file</source>
+ <translation type="unfinished">Nezaprt komentar na koncu datoteke</translation>
+ </message>
+ <message>
+ <source>Illegal syntax for exponential number</source>
+ <translation type="unfinished">Neveljavna skladnja za eksponentno število</translation>
+ </message>
+ <message>
+ <source>Identifier cannot start with numeric literal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unterminated regular expression literal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Invalid regular expression flag &apos;%0&apos;</source>
+ <translation type="unfinished">Neveljavna zastavica »%0« regularnega izraza</translation>
+ </message>
+ <message>
+ <source>Unterminated regular expression backslash sequence</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unterminated regular expression class</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Syntax error</source>
+ <translation type="unfinished">Skladenjska napaka</translation>
+ </message>
+ <message>
+ <source>Unexpected token `%1&apos;</source>
+ <translation type="unfinished">Nepričakovan žeton »%1«</translation>
+ </message>
+ <message>
+ <source>Expected token `%1&apos;</source>
+ <translation type="unfinished">Pričakovan žeton »%1«</translation>
+ </message>
+ <message>
+ <source>Property value set multiple times</source>
+ <translation type="unfinished">Vrednost lastnosti je bila nastavljena večkrat</translation>
+ </message>
+ <message>
+ <source>Expected type name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Invalid import qualifier ID</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Reserved name &quot;Qt&quot; cannot be used as an qualifier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Script import qualifiers must be unique.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Script import requires a qualifier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Library import requires a version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Expected parameter type</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Invalid property type modifier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unexpected property type modifier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Expected property type</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Readonly not yet supported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>JavaScript declaration outside Script element</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QDeclarativePauseAnimation</name>
+ <message>
+ <source>Cannot set a duration of &lt; 0</source>
+ <translation type="unfinished">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 type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failed to get image from provider: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot open: %1</source>
+ <translation type="unfinished">Ni moč odpreti %1: %2</translation>
+ </message>
+</context>
+<context>
+ <name>QDeclarativePropertyAnimation</name>
+ <message>
+ <source>Cannot set a duration of &lt; 0</source>
+ <translation type="unfinished">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 type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot assign to non-existent property &quot;%1&quot;</source>
+ <translation type="unfinished">Neobstoječi lastnosti »%1« ni moč prirediti</translation>
+ </message>
+ <message>
+ <source>Cannot assign to read-only property &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QDeclarativeTextInput</name>
+ <message>
+ <source>Could not load cursor delegate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Could not instantiate cursor delegate</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QDeclarativeVME</name>
+ <message>
+ <source>Unable to create object of type %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot assign value %1 to property %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot assign object type %1 with no default method</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot connect mismatched signal/slot %1 %vs. %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot assign an object to signal property %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot assign object to list</source>
+ <translation type="unfinished">Objekta ni moč prirediti seznamu</translation>
+ </message>
+ <message>
+ <source>Cannot assign object to interface property</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unable to create attached object</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot set properties on %1 as it is null</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QDeclarativeVisualDataModel</name>
+ <message>
+ <source>Delegate component must be Item type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QDeclarativeXmlListModel</name>
+ <message>
+ <source>Qt was built without support for xmlpatterns</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QDeclarativeXmlListModelRole</name>
+ <message>
+ <source>An XmlRole query must not start with &apos;/&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QDeclarativeXmlRoleList</name>
+ <message>
+ <source>An XmlListModel query must start with &apos;/&apos; or &quot;//&quot;</source>
+ <translation type="unfinished"></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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ v
<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 @@ Datoteka ni bila najdena.
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 @@ Mapa ni bila najdena.
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 type="unfinished">Vrni se nazaj</translation>
+ </message>
+ <message>
+ <source>Go forward</source>
+ <translation type="unfinished">Napreduj naprej</translation>
+ </message>
+ <message>
+ <source>Go to the parent directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Create a New Folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Change to list view mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Change to detail view mode</source>
+ <translation type="unfinished"></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 type="unfinished"></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>
+ <translation type="unfinished">Črna</translation>
</message>
<message>
- <location line="-1304"/>
<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>
+ <translation>Oriya</translation>
</message>
<message>
- <location line="+3"/>
<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>
+ <translation>Kannada</translation>
</message>
<message>
- <location line="+3"/>
<source>Malayalam</source>
- <translation type="unfinished">malayalam</translation>
+ <translation>Malayalam</translation>
</message>
<message>
- <location line="+3"/>
<source>Sinhala</source>
- <translation type="unfinished">Sinhala</translation>
+ <translation>Sinhala</translation>
</message>
<message>
- <location line="+3"/>
<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 type="unfinished"></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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 type="unfinished">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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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"/>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 type="unfinished">Dejanje na %1 ni podprto</translation>
+ </message>
+ <message>
+ <source>Invalid URI: %1</source>
+ <translation type="unfinished">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 type="unfinished">Napaka vtičnice na %1: %2</translation>
+ </message>
+ <message>
+ <source>Remote host closed the connection prematurely on %1</source>
+ <translation type="unfinished">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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 type="unfinished"></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 type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Temporary network failure.</source>
+ <translation type="unfinished"></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 type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QNetworkSessionPrivateImpl</name>
+ <message>
+ <source>Roaming error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Session aborted by user or system</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unidentified Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unknown session error.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The session was aborted by the user or system.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The requested operation is not supported by the system.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The specified configuration cannot be used.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Roaming was aborted or is not possible.</source>
+ <translation type="unfinished"></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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<context>
<name>QObject</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="-97"/>
- <source>Invalid hostname</source>
- <translation>Neveljavno ime gostitelja</translation>
+ <source>PulseAudio Sound Server</source>
+ <translation type="unfinished">Zvočni strežnik PulseAudio</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>
+ <source>&quot;%1&quot; duplicates a previous role name and will be disabled.</source>
+ <translation type="unfinished"></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>invalid query: &quot;%1&quot;</source>
+ <translation type="unfinished"></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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 @@ Ali jo kljub temu želite izbrisati?</translation>
<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 type="unfinished"></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 @@ Izberite drugo ime datoteke.</translation>
<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 type="unfinished">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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 type="unfinished"></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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<context>
<name>QRadioButton</name>
<message>
- <location line="+12"/>
<source>Check</source>
<translation>Označi</translation>
</message>
@@ -4568,57 +4881,46 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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>
+ <translation>Shift+F5</translation>
</message>
<message>
- <location line="+15"/>
<source>Continue</source>
<translation>Nadaljuj</translation>
</message>
<message>
- <location line="+2"/>
<source>F5</source>
- <translation type="unfinished"></translation>
+ <translation>F5</translation>
</message>
<message>
- <location line="+15"/>
<source>Step Into</source>
<translation>Vstopi</translation>
</message>
<message>
- <location line="+2"/>
<source>F11</source>
- <translation type="unfinished"></translation>
+ <translation>F11</translation>
</message>
<message>
- <location line="+15"/>
<source>Step Over</source>
<translation>Prestopi</translation>
</message>
<message>
- <location line="+2"/>
<source>F10</source>
- <translation type="unfinished"></translation>
+ <translation>F10</translation>
</message>
<message>
- <location line="+15"/>
<source>Step Out</source>
<translation>Izstopi</translation>
</message>
<message>
- <location line="+2"/>
<source>Shift+F11</source>
- <translation type="unfinished"></translation>
+ <translation>Shift+F11</translation>
</message>
<message>
- <location line="+15"/>
<source>Run to Cursor</source>
<translation>Zaženi do kazalca</translation>
</message>
<message>
- <location line="+2"/>
<source>Ctrl+F10</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+F10</translation>
</message>
<message>
- <location line="+16"/>
<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>
+ <translation>F9</translation>
</message>
<message>
- <location line="+14"/>
<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>
+ <translation>Ctrl+F</translation>
</message>
<message>
- <location line="+17"/>
<source>Find &amp;Next</source>
<translation>Najdi &amp;naslednje</translation>
</message>
<message>
- <location line="+2"/>
<source>F3</source>
- <translation type="unfinished"></translation>
+ <translation>F3</translation>
</message>
<message>
- <location line="+13"/>
<source>Find &amp;Previous</source>
<translation>Najdi &amp;predhodno</translation>
</message>
<message>
- <location line="+2"/>
<source>Shift+F3</source>
- <translation type="unfinished"></translation>
+ <translation>Shift+F3</translation>
</message>
<message>
- <location line="+14"/>
<source>Ctrl+G</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+G</translation>
</message>
<message>
- <location line="+11"/>
<source>Debug</source>
<translation>Razhrošči</translation>
</message>
@@ -4915,32 +5161,26 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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"/>
<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 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>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 type="unfinished">Povečaj svetlost zaslon</translation>
+ </message>
+ <message>
+ <source>Monitor Brightness Down</source>
+ <translation type="unfinished">Zmanjšaj svetlost zaslona</translation>
+ </message>
+ <message>
+ <source>Keyboard Light On/Off</source>
+ <translation type="unfinished">Vklop/izklop lučk na tipkovnici</translation>
+ </message>
+ <message>
+ <source>Keyboard Brightness Up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Keyboard Brightness Down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Power Off</source>
+ <translation type="unfinished">Izklopi</translation>
+ </message>
+ <message>
+ <source>Wake Up</source>
+ <translation type="unfinished">Zbudi se</translation>
+ </message>
+ <message>
+ <source>Eject</source>
+ <translation type="unfinished">Izvrzi</translation>
+ </message>
+ <message>
+ <source>Screensaver</source>
+ <translation type="unfinished">Ohranjevalnik zaslona</translation>
+ </message>
+ <message>
+ <source>WWW</source>
+ <translation type="unfinished">WWW</translation>
+ </message>
+ <message>
+ <source>Sleep</source>
+ <translation type="unfinished">V pripravljenost</translation>
+ </message>
+ <message>
+ <source>LightBulb</source>
+ <translation type="unfinished">Žarnica</translation>
+ </message>
+ <message>
+ <source>Shop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>History</source>
+ <translation type="unfinished">Zgodovina</translation>
+ </message>
+ <message>
+ <source>Add Favorite</source>
+ <translation type="unfinished">Dodaj najljubšo</translation>
+ </message>
+ <message>
+ <source>Hot Links</source>
+ <translation type="unfinished">Vroče povezave</translation>
+ </message>
+ <message>
+ <source>Adjust Brightness</source>
+ <translation type="unfinished">Prilagodi svetlost</translation>
+ </message>
+ <message>
+ <source>Finance</source>
+ <translation type="unfinished">Finance</translation>
+ </message>
+ <message>
+ <source>Community</source>
+ <translation type="unfinished">Skupnost</translation>
+ </message>
+ <message>
+ <source>Audio Rewind</source>
+ <translation type="unfinished">Samodejno previj</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 type="unfinished">Knjiga</translation>
+ </message>
+ <message>
+ <source>CD</source>
+ <translation type="unfinished">CD</translation>
+ </message>
+ <message>
+ <source>Calculator</source>
+ <translation type="unfinished">Računalo</translation>
+ </message>
+ <message>
+ <source>Clear</source>
+ <translation type="unfinished">Počisti</translation>
+ </message>
+ <message>
+ <source>Clear Grab</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Close</source>
+ <translation type="unfinished">Zapri</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation type="unfinished">Kopiraj</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation type="unfinished">Izreži</translation>
+ </message>
+ <message>
+ <source>Display</source>
+ <translation type="unfinished">Prikaz</translation>
+ </message>
+ <message>
+ <source>DOS</source>
+ <translation type="unfinished">DOS</translation>
+ </message>
+ <message>
+ <source>Documents</source>
+ <translation type="unfinished">Dokumenti</translation>
+ </message>
+ <message>
+ <source>Spreadsheet</source>
+ <translation type="unfinished">Preglednica</translation>
+ </message>
+ <message>
+ <source>Browser</source>
+ <translation type="unfinished">Brskalnik</translation>
+ </message>
+ <message>
+ <source>Game</source>
+ <translation type="unfinished">Igra</translation>
+ </message>
+ <message>
+ <source>Go</source>
+ <translation type="unfinished">Pojdi</translation>
+ </message>
+ <message>
+ <source>iTouch</source>
+ <translation type="unfinished">iTouch</translation>
+ </message>
+ <message>
+ <source>Logoff</source>
+ <translation type="unfinished">Odjava</translation>
+ </message>
+ <message>
+ <source>Market</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Meeting</source>
+ <translation type="unfinished">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 type="unfinished">Moje strani</translation>
+ </message>
+ <message>
+ <source>News</source>
+ <translation type="unfinished">Novice</translation>
+ </message>
+ <message>
+ <source>Home Office</source>
+ <translation type="unfinished">Domača pisarna</translation>
+ </message>
+ <message>
+ <source>Option</source>
+ <translation type="unfinished">Možnost</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation type="unfinished">Prilepi</translation>
+ </message>
+ <message>
+ <source>Phone</source>
+ <translation type="unfinished">Telefon</translation>
+ </message>
+ <message>
+ <source>Reply</source>
+ <translation type="unfinished">Odgovori</translation>
+ </message>
+ <message>
+ <source>Reload</source>
+ <translation type="unfinished">Znova naloži</translation>
+ </message>
+ <message>
+ <source>Rotate Windows</source>
+ <translation type="unfinished">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 type="unfinished">Shrani</translation>
+ </message>
+ <message>
+ <source>Send</source>
+ <translation type="unfinished">Pošlji</translation>
+ </message>
+ <message>
+ <source>Spellchecker</source>
+ <translation type="unfinished">Črkovalnik</translation>
+ </message>
+ <message>
+ <source>Split Screen</source>
+ <translation type="unfinished">Razdeli zaslon</translation>
+ </message>
+ <message>
+ <source>Support</source>
+ <translation type="unfinished">Podpora</translation>
+ </message>
+ <message>
+ <source>Task Panel</source>
+ <translation type="unfinished">Opravilna vrstica</translation>
+ </message>
+ <message>
+ <source>Terminal</source>
+ <translation type="unfinished">Terminal</translation>
+ </message>
+ <message>
+ <source>Tools</source>
+ <translation type="unfinished">Orodja</translation>
+ </message>
+ <message>
+ <source>Travel</source>
+ <translation type="unfinished">Potovanje</translation>
+ </message>
+ <message>
+ <source>Video</source>
+ <translation type="unfinished">Video</translation>
+ </message>
+ <message>
+ <source>Word Processor</source>
+ <translation type="unfinished">Urejevalnik besedila</translation>
+ </message>
+ <message>
+ <source>XFer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Zoom In</source>
+ <translation type="unfinished">Približaj</translation>
+ </message>
+ <message>
+ <source>Zoom Out</source>
+ <translation type="unfinished">Oddalji</translation>
+ </message>
+ <message>
+ <source>Away</source>
+ <translation type="unfinished">Odsoten</translation>
+ </message>
+ <message>
+ <source>Messenger</source>
+ <translation type="unfinished">Sporočilnik</translation>
+ </message>
+ <message>
+ <source>WebCam</source>
+ <translation type="unfinished">Spletna kamera</translation>
+ </message>
+ <message>
+ <source>Mail Forward</source>
+ <translation type="unfinished">Posreduj sporočilo naprej</translation>
+ </message>
+ <message>
+ <source>Pictures</source>
+ <translation type="unfinished">Slike</translation>
+ </message>
+ <message>
+ <source>Music</source>
+ <translation type="unfinished">Glasba</translation>
+ </message>
+ <message>
+ <source>Battery</source>
+ <translation type="unfinished">Baterija</translation>
+ </message>
+ <message>
+ <source>Bluetooth</source>
+ <translation type="unfinished">Bluetooth</translation>
+ </message>
+ <message>
+ <source>Wireless</source>
+ <translation type="unfinished">Brezžično</translation>
+ </message>
+ <message>
+ <source>Ultra Wide Band</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Audio Forward</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Audio Repeat</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Audio Random Play</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Subtitle</source>
+ <translation type="unfinished">Podnaslov</translation>
+ </message>
+ <message>
+ <source>Audio Cycle Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Time</source>
+ <translation type="unfinished">Čas</translation>
+ </message>
+ <message>
+ <source>View</source>
+ <translation type="unfinished">Pogled</translation>
+ </message>
+ <message>
+ <source>Top Menu</source>
+ <translation type="unfinished">Vrhnji meni</translation>
+ </message>
+ <message>
+ <source>Suspend</source>
+ <translation type="unfinished">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>
+ <translation type="unfinished">Scroll Lock</translation>
</message>
<message>
- <location line="+1"/>
<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 type="unfinished"></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 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>
+ <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 type="unfinished">Hiragana</translation>
+ </message>
+ <message>
+ <source>Katakana</source>
+ <translation type="unfinished">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 type="unfinished"></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 type="unfinished">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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 type="unfinished"></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 type="unfinished"></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 type="unfinished">Brez napake</translation>
+ </message>
+ <message>
+ <source>The issuer certificate could not be found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The certificate signature could not be decrypted</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The public key in the certificate could not be read</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The signature of the certificate is invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The certificate is not yet valid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The certificate has expired</source>
+ <translation type="unfinished">Potrdilo je preteklo</translation>
+ </message>
+ <message>
+ <source>The certificate&apos;s notBefore field contains an invalid time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The certificate&apos;s notAfter field contains an invalid time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The certificate is self-signed, and untrusted</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The root certificate of the certificate chain is self-signed, and untrusted</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The issuer certificate of a locally looked up certificate could not be found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>No certificates could be verified</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>One of the CA certificates is invalid</source>
+ <translation type="unfinished"></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 type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The root CA certificate is not trusted for this purpose</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The root CA certificate is marked to reject the specified purpose</source>
+ <translation type="unfinished"></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 type="unfinished">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 type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unknown error</source>
+ <translation type="unfinished">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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<context>
<name>QWebPage</name>
<message>
- <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+406"/>
+ <source>Redirection limit reached</source>
+ <translation type="unfinished"></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 type="unfinished"></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>
+ <translation>Drsnik za mesto v posnetku</translation>
</message>
<message>
- <location line="+2"/>
<source>Movie time scrubber thumb</source>
<comment>Media controller element</comment>
- <translation type="unfinished"></translation>
+ <translation>Drsnik za mesto v posnetku</translation>
</message>
<message>
- <location line="+2"/>
<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 @@ Izberite drugo ime datoteke.</translation>
</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 @@ Izberite drugo ime datoteke.</translation>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5672"/>
<source>*</source>
<translation>*</translation>
</message>
@@ -7142,57 +7581,46 @@ Izberite drugo ime datoteke.</translation>
<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 @@ Izberite drugo ime datoteke.</translation>
<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,302 +7683,260 @@ Izberite drugo ime datoteke.</translation>
<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 type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Warning in %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unknown location</source>
+ <translation type="unfinished">Neznana lokacija</translation>
+ </message>
+ <message>
+ <source>Error %1 in %2, at line %3, column %4: %5</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error %1 in %2: %3</source>
+ <translation type="unfinished">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"/>
<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"/>
<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"/>
<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>
</message>
@@ -7573,240 +7944,190 @@ Izberite drugo ime datoteke.</translation>
<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"/>
<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>
+ <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>
- <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"></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 @@ Izberite drugo ime datoteke.</translation>
</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 @@ Izberite drugo ime datoteke.</translation>
</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>
+ <translation type="unfinished">%1 ni celovito število minut,</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+58"/>
<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>
+ <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>
- <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"></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>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location line="+14"/>
<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>
+ <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>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>
+ <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="+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>
+ <translation>Preproste vrste izpeljanega elementa %1 ni moč veljavno izpeljati iz osnovnega elementa.</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>
+ <translation>Kompleksne vrste izpeljanega elementa %1 ni moč veljavno izpeljati iz osnovnega elementa.</translation>
</message>
<message>
- <location line="+24"/>
<source>Element %1 is missing in derived particle.</source>
- <translation type="unfinished"></translation>
+ <translation>Element %1 v izpeljanem delcu manjka.</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>
+ <translation>Vzorec v izpeljanem delcu ni veljavna podmnoživa vzorca iz osnovnega razreda.</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>
+ <translation>processContent vzorca v izpeljanem delcu je šibkejši kot vzorec v osnovnem delcu.</translation>
</message>
<message>
- <location line="+240"/>
<source>Derived particle allows content that is not allowed in the base particle.</source>
- <translation type="unfinished"></translation>
+ <translation>Izpeljani delec dovoljuje vsebino, ki v osnovnem delcu ni dovoljena.</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>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>
+ <translation>Lastnost %1 elementa %2 mora imeti vrednost %3, ker je nastavljena lastnost %4.</translation>
</message>
<message>
- <location line="+187"/>
<source>Specifying use=&apos;prohibited&apos; inside an attribute group has no effect.</source>
- <translation type="unfinished"></translation>
+ <translation>Določitev use=&apos;prohibited&apos; znotraj skupine lastnosti nima nobenega učinka.</translation>
</message>
<message>
- <location line="+353"/>
<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>
+ <translation>Element %1 mora imeti bodisi lastnost %2 bodisi vsebovati %3 ali %4 kot podelement.</translation>
</message>
<message>
- <location line="+55"/>
<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>
+ <translation>Sklici na besedilo ali entiteto znotraj elementa %1 niso dovoljeni.</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>
+ <translation>Lastnost %1 elementa %2 mora vsebovati %3, %4 ali pa seznam URI-jev.</translation>
</message>
<message>
- <location line="+126"/>
<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>
+ <translation>Lastnost %1 elementa %2 ima višjo vrednost kot lastnost %3.</translation>
</message>
<message>
- <location line="+25"/>
<source>Prefix of qualified name %1 is not defined.</source>
- <translation type="unfinished"></translation>
+ <translation>Predpona kvalificiranega imena %1 ni določena.</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>
+ <translation>Lastnost %1 elementa %2 mora vsebovati bodisi %3 bodisi druge vrednosti.</translation>
</message>
<message>
- <location line="+131"/>
- <source>Component with id %1 has been defined previously.</source>
- <translation>Komponenta z ID-jem %1 je že bila definirana.</translation>
+ <source>Component with ID %1 has been defined previously.</source>
+ <translation type="unfinished">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>
+ <translation>Omejitev identitete %1 je že določena.</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 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>
+ <translation>Obstaja ena vrednost IDREF brez ustreznega ID-ja: %1</translation>
</message>
<message>
- <location line="+27"/>
<source>Loaded schema file is invalid.</source>
- <translation type="unfinished"></translation>
+ <translation>Naložena datoteka s shemo ni veljavna.</translation>
</message>
<message>
- <location line="+16"/>
<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>
+ <translation>Določene ni nobene sheme za potrjevanje.</translation>
</message>
<message>
- <location line="+10"/>
<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>
+ <translation>Določena vrsta %1 shemi ni znana.</translation>
</message>
<message>
- <location line="-176"/>
<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>
+ <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>
- <location line="+32"/>
<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>
+ <translation>Vsebina elementa %1 ne ustreza določeni omejitvi vrednosti.</translation>
</message>
<message>
- <location line="-73"/>
<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>
+ <translation>Lastnost %1 ne ustreza vzorcu za lastnost.</translation>
</message>
<message>
- <location line="+9"/>
<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>
+ <translation>Vsebina lastnosti %1 ne ustreza zanjo določeni vrsti: %2.</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>
+ <translation>Vsebina lastnosti %1 ne ustreza zanjo določeni omejitvi vrednosti.</translation>
</message>
<message>
- <location line="+88"/>
<source>Non-unique value found for constraint %1.</source>
- <translation type="unfinished"></translation>
+ <translation>Za omejitev %1 je bila najdena ne-edinstvena vrednost.</translation>
</message>
<message>
- <location line="+20"/>
<source>Key constraint %1 contains absent fields.</source>
- <translation type="unfinished"></translation>
+ <translation>Omejitev ključa %1 vsebuje manjkajoča polja.</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>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>
+</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>
- <location filename="Obsolete_PO_entries"/>
<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>
diff --git a/translations/qtconfig_ru.ts b/translations/qtconfig_ru.ts
index 2d435e6..7137d21 100644
--- a/translations/qtconfig_ru.ts
+++ b/translations/qtconfig_ru.ts
@@ -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 @@ p, li { white-space: pre-wrap; }
&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 @@ p, li { white-space: pre-wrap; }
&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 @@ p, li { white-space: pre-wrap; }
&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 @@ p, li { white-space: pre-wrap; }
<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 @@ p, li { white-space: pre-wrap; }
<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 @@ p, li { white-space: pre-wrap; }
<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;
diff --git a/translations/qtconfig_uk.ts b/translations/qtconfig_uk.ts
new file mode 100644
index 0000000..9d5b0a7
--- /dev/null
+++ b/translations/qtconfig_uk.ts
@@ -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>
diff --git a/translations/qvfb_ru.ts b/translations/qvfb_ru.ts
index 28f7010..a1988de 100644
--- a/translations/qvfb_ru.ts
+++ b/translations/qvfb_ru.ts
@@ -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>
diff --git a/translations/qvfb_uk.ts b/translations/qvfb_uk.ts
new file mode 100644
index 0000000..142863b
--- /dev/null
+++ b/translations/qvfb_uk.ts
@@ -0,0 +1,276 @@
+<?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>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>
+</TS>