summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--FAQ.txt4
-rwxr-xr-xconfig.tests/unix/objcopy.test2
-rwxr-xr-xconfigure75
-rw-r--r--configure.exebin1134592 -> 860160 bytes
-rw-r--r--demos/embeddeddialogs/customproxy.cpp17
-rw-r--r--demos/embeddeddialogs/customproxy.h1
-rw-r--r--demos/embeddeddialogs/main.cpp1
-rw-r--r--demos/qtdemo/colors.cpp34
-rw-r--r--demos/qtdemo/colors.h4
-rw-r--r--demos/qtdemo/mainwindow.cpp15
-rw-r--r--demos/qtdemo/menumanager.cpp3
-rw-r--r--demos/qtdemo/xml/examples.xml7
-rw-r--r--dist/README12
-rw-r--r--dist/changes-4.5.1474
-rw-r--r--dist/changes-4.5.2123
-rw-r--r--dist/changes-4.6.041
-rw-r--r--doc/doc.pri4
-rw-r--r--doc/src/activeqt.qdoc6
-rw-r--r--doc/src/deployment.qdoc2
-rw-r--r--doc/src/designer-manual.qdoc12
-rw-r--r--doc/src/examples.qdoc3
-rw-r--r--doc/src/examples/fancybrowser.qdoc51
-rw-r--r--doc/src/examples/flowlayout.qdoc115
-rw-r--r--doc/src/examples/googlechat.qdoc (renamed from tests/auto/math3d/shared/math3dincludes.cpp)19
-rw-r--r--doc/src/examples/googlesuggest.qdoc51
-rw-r--r--doc/src/examples/qxmlstreambookmarks.qdoc5
-rw-r--r--doc/src/exportedfunctions.qdoc3
-rw-r--r--doc/src/images/fancybrowser-example.pngbin0 -> 98031 bytes
-rw-r--r--doc/src/images/flowlayout-example.pngbin5054 -> 29350 bytes
-rw-r--r--doc/src/images/googlechat-example.pngbin0 -> 52624 bytes
-rw-r--r--doc/src/images/googlesuggest-example.pngbin0 -> 18809 bytes
-rw-r--r--doc/src/index.qdoc6
-rw-r--r--doc/src/known-issues.qdoc9
-rw-r--r--doc/src/layout.qdoc2
-rw-r--r--doc/src/licenses.qdoc18
-rw-r--r--doc/src/phonon-api.qdoc4
-rw-r--r--doc/src/platform-notes.qdoc4
-rw-r--r--doc/src/qnamespace.qdoc40
-rw-r--r--doc/src/qt4-intro.qdoc9
-rw-r--r--doc/src/qtcocoa-known-issues.qdoc168
-rw-r--r--doc/src/snippets/alphachannel.cpp7
-rw-r--r--doc/src/snippets/code/doc_src_installation.qdoc2
-rw-r--r--doc/src/snippets/code/doc_src_qtestlib.qdoc6
-rw-r--r--doc/src/snippets/code/src_qdbus_qdbusargument.cpp2
-rw-r--r--examples/dialogs/standarddialogs/dialog.cpp6
-rw-r--r--examples/examples.pro2
-rw-r--r--examples/graphicsview/elasticnodes/edge.cpp18
-rw-r--r--examples/itemviews/chart/pieview.cpp2
-rw-r--r--examples/layouts/flowlayout/flowlayout.cpp88
-rw-r--r--examples/layouts/flowlayout/flowlayout.h12
-rw-r--r--examples/layouts/flowlayout/window.cpp3
-rw-r--r--examples/layouts/flowlayout/window.h3
-rw-r--r--examples/network/googlesuggest/googlesuggest.cpp223
-rw-r--r--examples/network/googlesuggest/googlesuggest.h (renamed from src/gui/painting/qwindowsurface_d3d_p.h)60
-rw-r--r--examples/network/googlesuggest/googlesuggest.pro9
-rw-r--r--examples/network/googlesuggest/main.cpp (renamed from doc/src/snippets/webkit/simple/main.cpp)16
-rw-r--r--examples/network/googlesuggest/searchbox.cpp69
-rw-r--r--examples/network/googlesuggest/searchbox.h64
-rw-r--r--examples/network/network.pro1
-rw-r--r--examples/tutorials/addressbook/README2
-rw-r--r--examples/webkit/fancybrowser/fancybrowser.pro11
-rw-r--r--examples/webkit/fancybrowser/jquery.min.js19
-rw-r--r--examples/webkit/fancybrowser/jquery.qrc5
-rw-r--r--examples/webkit/fancybrowser/main.cpp51
-rw-r--r--examples/webkit/fancybrowser/mainwindow.cpp167
-rw-r--r--examples/webkit/fancybrowser/mainwindow.h (renamed from src/gui/math3d/qmath3dutil_p.h)74
-rw-r--r--examples/webkit/googlechat/form.ui214
-rw-r--r--examples/webkit/googlechat/googlechat.cpp163
-rw-r--r--examples/webkit/googlechat/googlechat.h71
-rw-r--r--examples/webkit/googlechat/googlechat.pro11
-rw-r--r--examples/webkit/googlechat/main.cpp51
-rw-r--r--examples/webkit/webkit.pro4
-rw-r--r--examples/widgets/codeeditor/codeeditor.cpp2
-rw-r--r--mkspecs/features/moc.prf62
-rw-r--r--mkspecs/features/uic.prf10
-rw-r--r--qmake/generators/win32/winmakefile.cpp18
-rw-r--r--qmake/project.cpp2
-rw-r--r--src/3rdparty/phonon/ds9/mediaobject.cpp27
-rw-r--r--src/3rdparty/webkit/ChangeLog8
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ChangeLog57
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.cpp1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Lexer.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Nodes.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp8
-rw-r--r--src/3rdparty/webkit/VERSION2
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog165
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSPropertyNames.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.c5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/ColorData.c5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/DocTypeStrings.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/HTMLEntityNames.c5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/tokenizer.cpp2315
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMWindow.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMWindow.h2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp33
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsContextQt.cpp78
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageBufferQt.cpp108
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageQt.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/PathQt.cpp74
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/qt/ResourceRequestQt.cpp16
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/WheelEventQt.cpp13
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp6
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp21
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp14
-rw-r--r--src/3rdparty/webkit/WebKit/qt/ChangeLog50
-rw-r--r--src/3rdparty/webkit/WebKit/qt/docs/docs.pri15
-rw-r--r--src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc (renamed from doc/src/qtwebkit.qdoc)6
-rw-r--r--src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdocconf195
-rw-r--r--src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/qtwebkit_build_snippet.qdoc (renamed from doc/src/snippets/code/doc_src_qtwebkit.qdoc)0
-rw-r--r--src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/qtwebkit_qwebview_snippet.cpp (renamed from doc/src/snippets/code/src_3rdparty_webkit_WebKit_qt_Api_qwebview.cpp)0
-rw-r--r--src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/simple/main.cpp34
-rw-r--r--src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/simple/simple.pro (renamed from doc/src/snippets/webkit/simple/simple.pro)0
-rw-r--r--src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/webpage/main.cpp (renamed from doc/src/snippets/webkit/webpage/main.cpp)19
-rw-r--r--src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/webpage/webpage.pro (renamed from doc/src/snippets/webkit/webpage/webpage.pro)0
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp28
-rw-r--r--src/activeqt/container/container.pro40
-rw-r--r--src/activeqt/container/qaxwidget.cpp12
-rw-r--r--src/activeqt/control/control.pro30
-rw-r--r--src/corelib/codecs/qtextcodec.cpp77
-rw-r--r--src/corelib/codecs/qtextcodec.h3
-rw-r--r--src/corelib/codecs/qtsciicodec.cpp3
-rw-r--r--src/corelib/codecs/qutfcodec.cpp4
-rw-r--r--src/corelib/global/qfeatures.h22
-rw-r--r--src/corelib/global/qglobal.h32
-rw-r--r--src/corelib/global/qlibraryinfo.cpp107
-rw-r--r--src/corelib/global/qnamespace.h13
-rw-r--r--src/corelib/io/qdir.cpp12
-rw-r--r--src/corelib/io/qfile.cpp3
-rw-r--r--src/corelib/io/qfileinfo.cpp10
-rw-r--r--src/corelib/io/qfilesystemwatcher_inotify.cpp2
-rw-r--r--src/corelib/io/qfsfileengine_win.cpp11
-rw-r--r--src/corelib/io/qprocess_unix.cpp8
-rw-r--r--src/corelib/io/qresource.cpp78
-rw-r--r--src/corelib/io/qsettings.cpp4
-rw-r--r--src/corelib/io/qtemporaryfile.cpp266
-rw-r--r--src/corelib/io/qtextstream.cpp9
-rw-r--r--src/corelib/kernel/qcoreapplication.cpp29
-rw-r--r--src/corelib/kernel/qcoreevent.cpp1
-rw-r--r--src/corelib/kernel/qcoreevent.h1
-rw-r--r--src/corelib/kernel/qeventdispatcher_glib.cpp3
-rw-r--r--src/corelib/kernel/qeventdispatcher_win.cpp15
-rw-r--r--src/corelib/kernel/qeventloop.cpp5
-rw-r--r--src/corelib/kernel/qfunctions_wince.cpp5
-rw-r--r--src/corelib/kernel/qfunctions_wince.h5
-rw-r--r--src/corelib/kernel/qsharedmemory_unix.cpp7
-rw-r--r--src/corelib/kernel/qvariant.cpp158
-rw-r--r--src/corelib/kernel/qvariant.h15
-rw-r--r--src/corelib/kernel/qvariant_p.h34
-rw-r--r--src/corelib/thread/qthread_unix.cpp3
-rw-r--r--src/corelib/thread/qthread_win.cpp3
-rw-r--r--src/corelib/tools/qbytearraymatcher.cpp3
-rw-r--r--src/corelib/tools/qbytearraymatcher.h7
-rw-r--r--src/corelib/tools/qhash.cpp4
-rw-r--r--src/corelib/tools/qlistdata.cpp8
-rw-r--r--src/corelib/tools/qpoint.cpp13
-rw-r--r--src/corelib/tools/qpoint.h2
-rw-r--r--src/corelib/tools/qsize.h8
-rw-r--r--src/corelib/tools/qstring.cpp34
-rw-r--r--src/corelib/tools/qvector.h2
-rw-r--r--src/dbus/qdbusintegrator.cpp2
-rw-r--r--src/gui/accessible/qaccessible_mac.mm122
-rw-r--r--src/gui/accessible/qaccessible_win.cpp8
-rw-r--r--src/gui/accessible/qaccessiblewidget.cpp13
-rw-r--r--src/gui/dialogs/qcolordialog.cpp6
-rw-r--r--src/gui/dialogs/qdialog.cpp18
-rw-r--r--src/gui/dialogs/qdialog.h4
-rw-r--r--src/gui/dialogs/qdialog_p.h2
-rw-r--r--src/gui/dialogs/qerrormessage.cpp8
-rw-r--r--src/gui/dialogs/qfiledialog.cpp322
-rw-r--r--src/gui/dialogs/qfiledialog_mac.mm21
-rw-r--r--src/gui/dialogs/qfiledialog_win.cpp10
-rw-r--r--src/gui/dialogs/qfilesystemmodel.h2
-rw-r--r--src/gui/dialogs/qfilesystemmodel_p.h18
-rw-r--r--src/gui/dialogs/qfontdialog.cpp4
-rw-r--r--src/gui/dialogs/qfontdialog_mac.mm73
-rw-r--r--src/gui/dialogs/qinputdialog.cpp181
-rw-r--r--src/gui/dialogs/qmessagebox.cpp80
-rw-r--r--src/gui/dialogs/qmessagebox.h2
-rw-r--r--src/gui/dialogs/qprintdialog_unix.cpp4
-rw-r--r--src/gui/dialogs/qsidebar.cpp25
-rw-r--r--src/gui/dialogs/qsidebar_p.h13
-rw-r--r--src/gui/dialogs/qwizard.cpp4
-rw-r--r--src/gui/embedded/qscreentransformed_qws.cpp4
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp101
-rw-r--r--src/gui/graphicsview/qgraphicsitem_p.h3
-rw-r--r--src/gui/graphicsview/qgraphicsproxywidget.cpp9
-rw-r--r--src/gui/graphicsview/qgraphicsscene.cpp40
-rw-r--r--src/gui/graphicsview/qgraphicsview.cpp59
-rw-r--r--src/gui/graphicsview/qgraphicswidget.cpp5
-rw-r--r--src/gui/graphicsview/qgraphicswidget_p.cpp8
-rw-r--r--src/gui/image/qicon.cpp2
-rw-r--r--src/gui/image/qimage.cpp8
-rw-r--r--src/gui/image/qnativeimage.cpp6
-rw-r--r--src/gui/image/qpixmap.cpp16
-rw-r--r--src/gui/image/qpixmap.h2
-rw-r--r--src/gui/image/qpixmap_raster.cpp9
-rw-r--r--src/gui/image/qpixmap_raster_p.h7
-rw-r--r--src/gui/image/qpixmap_win.cpp12
-rw-r--r--src/gui/image/qpixmap_x11.cpp2
-rw-r--r--src/gui/image/qpixmapcache.cpp13
-rw-r--r--src/gui/image/qpixmapdata_p.h2
-rw-r--r--src/gui/inputmethod/qmacinputcontext_mac.cpp20
-rw-r--r--src/gui/inputmethod/qmacinputcontext_p.h5
-rw-r--r--src/gui/inputmethod/qwininputcontext_win.cpp18
-rw-r--r--src/gui/itemviews/qabstractitemview.cpp28
-rw-r--r--src/gui/itemviews/qabstractitemview_p.h1
-rw-r--r--src/gui/itemviews/qdirmodel.cpp11
-rw-r--r--src/gui/itemviews/qfileiconprovider.cpp2
-rw-r--r--src/gui/itemviews/qheaderview.cpp61
-rw-r--r--src/gui/itemviews/qheaderview_p.h12
-rw-r--r--src/gui/itemviews/qitemselectionmodel.cpp20
-rw-r--r--src/gui/itemviews/qsortfilterproxymodel.cpp68
-rw-r--r--src/gui/itemviews/qtreeview.cpp1
-rw-r--r--src/gui/kernel/kernel.pri2
-rw-r--r--src/gui/kernel/qaction.cpp2
-rw-r--r--src/gui/kernel/qapplication.cpp37
-rw-r--r--src/gui/kernel/qapplication.h4
-rw-r--r--src/gui/kernel/qapplication_mac.mm36
-rw-r--r--src/gui/kernel/qapplication_p.h4
-rw-r--r--src/gui/kernel/qapplication_win.cpp106
-rw-r--r--src/gui/kernel/qapplication_x11.cpp42
-rw-r--r--src/gui/kernel/qclipboard.cpp24
-rw-r--r--src/gui/kernel/qclipboard_x11.cpp2
-rw-r--r--src/gui/kernel/qcocoaapplication_mac.mm22
-rw-r--r--src/gui/kernel/qcocoaapplicationdelegate_mac.mm24
-rw-r--r--src/gui/kernel/qcocoamenuloader_mac.mm22
-rw-r--r--src/gui/kernel/qcocoapanel_mac.mm13
-rw-r--r--src/gui/kernel/qcocoaview_mac.mm154
-rw-r--r--src/gui/kernel/qcocoaview_mac_p.h1
-rw-r--r--src/gui/kernel/qcocoawindow_mac.mm33
-rw-r--r--src/gui/kernel/qcocoawindowdelegate_mac.mm39
-rw-r--r--src/gui/kernel/qcursor.h2
-rw-r--r--src/gui/kernel/qcursor_mac.mm16
-rw-r--r--src/gui/kernel/qcursor_win.cpp8
-rw-r--r--src/gui/kernel/qdesktopwidget_win.cpp12
-rw-r--r--src/gui/kernel/qdnd_x11.cpp23
-rw-r--r--src/gui/kernel/qkeymapper_mac.cpp15
-rw-r--r--src/gui/kernel/qlayout.cpp2
-rw-r--r--src/gui/kernel/qmacdefines_mac.h2
-rw-r--r--src/gui/kernel/qshortcutmap.cpp6
-rw-r--r--src/gui/kernel/qt_cocoa_helpers_mac.mm17
-rw-r--r--src/gui/kernel/qt_cocoa_helpers_mac_p.h1
-rw-r--r--src/gui/kernel/qt_mac.cpp2
-rw-r--r--src/gui/kernel/qt_mac_p.h2
-rw-r--r--src/gui/kernel/qt_x11_p.h4
-rw-r--r--src/gui/kernel/qwidget.cpp63
-rw-r--r--src/gui/kernel/qwidget.h4
-rw-r--r--src/gui/kernel/qwidget_mac.mm196
-rw-r--r--src/gui/kernel/qwidget_p.h8
-rw-r--r--src/gui/kernel/qwidget_win.cpp91
-rw-r--r--src/gui/kernel/qwidget_wince.cpp12
-rw-r--r--src/gui/kernel/qwidget_x11.cpp4
-rw-r--r--src/gui/kernel/qx11embed_x11.cpp7
-rw-r--r--src/gui/mac/images/leopard-unified-toolbar-on.pngbin0 -> 356 bytes
-rw-r--r--src/gui/mac/macresources.qrc (renamed from src/gui/mac/maccursors.qrc)3
-rw-r--r--src/gui/math3d/math3d.pri5
-rw-r--r--src/gui/math3d/qfixedpt.cpp711
-rw-r--r--src/gui/math3d/qfixedpt.h551
-rw-r--r--src/gui/math3d/qgenericmatrix.cpp6
-rw-r--r--src/gui/math3d/qgenericmatrix.h22
-rw-r--r--src/gui/math3d/qmath3dglobal.h102
-rw-r--r--src/gui/math3d/qmath3dutil.cpp194
-rw-r--r--src/gui/math3d/qmatrix4x4.cpp385
-rw-r--r--src/gui/math3d/qmatrix4x4.h177
-rw-r--r--src/gui/math3d/qquaternion.cpp105
-rw-r--r--src/gui/math3d/qquaternion.h56
-rw-r--r--src/gui/math3d/qvector2d.cpp39
-rw-r--r--src/gui/math3d/qvector2d.h37
-rw-r--r--src/gui/math3d/qvector3d.cpp38
-rw-r--r--src/gui/math3d/qvector3d.h44
-rw-r--r--src/gui/math3d/qvector4d.cpp43
-rw-r--r--src/gui/math3d/qvector4d.h49
-rw-r--r--src/gui/painting/painting.pri10
-rw-r--r--src/gui/painting/qbackingstore.cpp16
-rw-r--r--src/gui/painting/qbezier.cpp24
-rw-r--r--src/gui/painting/qblendfunctions.cpp166
-rw-r--r--src/gui/painting/qcolor.cpp4
-rw-r--r--src/gui/painting/qcolor_p.cpp2
-rw-r--r--src/gui/painting/qcolormap_win.cpp8
-rw-r--r--src/gui/painting/qdrawhelper.cpp98
-rw-r--r--src/gui/painting/qdrawutil.cpp297
-rw-r--r--src/gui/painting/qdrawutil.h38
-rw-r--r--src/gui/painting/qmatrix.h6
-rw-r--r--src/gui/painting/qmemrotate.cpp1
-rw-r--r--src/gui/painting/qmemrotate_p.h1
-rw-r--r--src/gui/painting/qpaintengine.cpp4
-rw-r--r--src/gui/painting/qpaintengine_d3d.cpp4576
-rw-r--r--src/gui/painting/qpaintengine_d3d.fx608
-rw-r--r--src/gui/painting/qpaintengine_d3d.qrc5
-rw-r--r--src/gui/painting/qpaintengine_d3d_p.h120
-rw-r--r--src/gui/painting/qpaintengine_p.h12
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp90
-rw-r--r--src/gui/painting/qpaintengine_x11.cpp9
-rw-r--r--src/gui/painting/qpainter.cpp69
-rw-r--r--src/gui/painting/qpainterpath.cpp10
-rw-r--r--src/gui/painting/qpathclipper.cpp36
-rw-r--r--src/gui/painting/qprintengine_mac.mm66
-rw-r--r--src/gui/painting/qprintengine_mac_p.h1
-rw-r--r--src/gui/painting/qprintengine_win.cpp2
-rw-r--r--src/gui/painting/qprinter.cpp18
-rw-r--r--src/gui/painting/qstroker.cpp12
-rw-r--r--src/gui/painting/qtessellator.cpp2
-rw-r--r--src/gui/painting/qtransform.cpp46
-rw-r--r--src/gui/painting/qtransform.h2
-rw-r--r--src/gui/painting/qwindowsurface.cpp7
-rw-r--r--src/gui/painting/qwindowsurface_d3d.cpp169
-rw-r--r--src/gui/painting/qwindowsurface_raster.cpp14
-rw-r--r--src/gui/styles/gtksymbols.cpp229
-rw-r--r--src/gui/styles/qcleanlooksstyle.cpp14
-rw-r--r--src/gui/styles/qcommonstyle.cpp77
-rw-r--r--src/gui/styles/qgtkstyle.cpp20
-rw-r--r--src/gui/styles/qmacstyle_mac.mm55
-rw-r--r--src/gui/styles/qstylehelper.cpp70
-rw-r--r--src/gui/styles/qstylehelper_p.h4
-rw-r--r--src/gui/styles/qstylesheetstyle.cpp236
-rw-r--r--src/gui/styles/qstylesheetstyle_p.h2
-rw-r--r--src/gui/styles/qwindowsmobilestyle.cpp11
-rw-r--r--src/gui/styles/qwindowsvistastyle.cpp3
-rw-r--r--src/gui/styles/qwindowsvistastyle_p.h1
-rw-r--r--src/gui/styles/qwindowsxpstyle.cpp4
-rw-r--r--src/gui/text/qfont.cpp10
-rw-r--r--src/gui/text/qfontdatabase_win.cpp22
-rw-r--r--src/gui/text/qfontengine_mac.mm110
-rw-r--r--src/gui/text/qfontengine_p.h3
-rw-r--r--src/gui/text/qfontengine_win.cpp38
-rw-r--r--src/gui/text/qtextengine.cpp4
-rw-r--r--src/gui/text/qtextengine_p.h2
-rw-r--r--src/gui/text/qtextformat.h6
-rw-r--r--src/gui/text/qtextlayout.cpp39
-rw-r--r--src/gui/text/qtextodfwriter.cpp2
-rw-r--r--src/gui/util/qcompleter.cpp2
-rw-r--r--src/gui/util/qsystemtrayicon.cpp10
-rw-r--r--src/gui/util/qsystemtrayicon_win.cpp10
-rw-r--r--src/gui/widgets/qabstractbutton.cpp9
-rw-r--r--src/gui/widgets/qabstractbutton.h3
-rw-r--r--src/gui/widgets/qcocoamenu_mac.mm41
-rw-r--r--src/gui/widgets/qcombobox.cpp37
-rw-r--r--src/gui/widgets/qcombobox_p.h1
-rw-r--r--src/gui/widgets/qdockwidget.cpp2
-rw-r--r--src/gui/widgets/qlabel.cpp22
-rw-r--r--src/gui/widgets/qlineedit.cpp2
-rw-r--r--src/gui/widgets/qmaccocoaviewcontainer_mac.mm22
-rw-r--r--src/gui/widgets/qmacnativewidget_mac.mm22
-rw-r--r--src/gui/widgets/qmainwindow.cpp4
-rw-r--r--src/gui/widgets/qmainwindowlayout_mac.mm48
-rw-r--r--src/gui/widgets/qmdisubwindow.cpp2
-rw-r--r--src/gui/widgets/qmenu.cpp6
-rw-r--r--src/gui/widgets/qmenu.h4
-rw-r--r--src/gui/widgets/qmenu_mac.mm34
-rw-r--r--src/gui/widgets/qmenu_p.h8
-rw-r--r--src/gui/widgets/qmenu_wince.cpp4
-rw-r--r--src/gui/widgets/qmenubar.cpp121
-rw-r--r--src/gui/widgets/qmenubar.h8
-rw-r--r--src/gui/widgets/qmenubar_p.h15
-rw-r--r--src/gui/widgets/qplaintextedit.cpp7
-rw-r--r--src/gui/widgets/qtabbar.cpp100
-rw-r--r--src/gui/widgets/qtabbar_p.h33
-rw-r--r--src/gui/widgets/qtoolbar.cpp11
-rw-r--r--src/network/access/qhttpnetworkconnection.cpp8
-rw-r--r--src/network/access/qhttpnetworkreply_p.h10
-rw-r--r--src/network/access/qnetworkaccessmanager.cpp3
-rw-r--r--src/network/access/qnetworkcookie.cpp9
-rw-r--r--src/network/access/qnetworkdiskcache.cpp3
-rw-r--r--src/network/socket/qabstractsocket.cpp4
-rw-r--r--src/network/socket/qlocalserver_unix.cpp6
-rw-r--r--src/network/socket/qlocalsocket_win.cpp2
-rw-r--r--src/network/socket/qnativesocketengine_unix.cpp19
-rw-r--r--src/opengl/opengl.pro10
-rw-r--r--src/opengl/qgl.cpp183
-rw-r--r--src/opengl/qgl_mac.mm30
-rw-r--r--src/opengl/qgl_p.h1
-rw-r--r--src/opengl/qglpixelbuffer_mac.mm6
-rw-r--r--src/opengl/qpaintengine_opengl.cpp19
-rw-r--r--src/opengl/qwindowsurface_gl.cpp2
-rw-r--r--src/plugins/gfxdrivers/directfb/directfb.pro38
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbkeyboard.cpp130
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbmouse.cpp41
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbmouse.h1
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.cpp19
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp514
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.h1
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp195
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h7
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp494
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbscreen.h33
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbsurface.cpp65
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbsurface.h6
-rw-r--r--src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable.c68
-rw-r--r--src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable_p.h2
-rw-r--r--src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.cpp2
-rw-r--r--src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp12
-rw-r--r--src/plugins/imageformats/ico/qicohandler.cpp331
-rw-r--r--src/plugins/qpluginbase.pri2
-rw-r--r--src/qt3support/dialogs/q3filedialog.cpp13
-rw-r--r--src/scripttools/debugging/qscriptbreakpointswidget.cpp8
-rw-r--r--src/scripttools/debugging/qscriptcompletiontask.cpp8
-rw-r--r--src/scripttools/debugging/qscriptdebugger.cpp6
-rw-r--r--src/scripttools/debugging/qscriptdebuggeragent.cpp19
-rw-r--r--src/scripttools/debugging/qscriptdebuggeragent_p.h3
-rw-r--r--src/scripttools/debugging/qscriptdebuggeragent_p_p.h6
-rw-r--r--src/scripttools/debugging/qscriptdebuggerbackend.cpp2
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandexecutor.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsoleglobalobject.cpp5
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalswidget.cpp8
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp18
-rw-r--r--src/scripttools/debugging/qscriptedit.cpp10
-rw-r--r--src/scripttools/debugging/qscriptenginedebugger.h4
-rw-r--r--src/sql/drivers/db2/qsql_db2.cpp105
-rw-r--r--src/sql/drivers/ibase/qsql_ibase.cpp56
-rw-r--r--src/sql/drivers/mysql/qsql_mysql.cpp19
-rw-r--r--src/sql/drivers/mysql/qsql_mysql.h3
-rw-r--r--src/sql/drivers/oci/qsql_oci.cpp60
-rw-r--r--src/sql/drivers/odbc/qsql_odbc.cpp149
-rw-r--r--src/sql/drivers/odbc/qsql_odbc.h4
-rw-r--r--src/sql/drivers/psql/qsql_psql.cpp32
-rw-r--r--src/sql/drivers/sqlite/qsql_sqlite.cpp16
-rw-r--r--src/sql/drivers/sqlite2/qsql_sqlite2.cpp20
-rw-r--r--src/sql/drivers/tds/qsql_tds.cpp21
-rw-r--r--src/sql/kernel/qsqldriver.cpp131
-rw-r--r--src/sql/kernel/qsqldriver.h6
-rw-r--r--src/sql/models/qsqlrelationaltablemodel.cpp73
-rw-r--r--src/sql/models/qsqltablemodel.cpp20
-rw-r--r--src/src.pro2
-rw-r--r--src/svg/qgraphicssvgitem.cpp2
-rw-r--r--src/svg/qsvggenerator.cpp2
-rw-r--r--src/svg/qsvggraphics.cpp16
-rw-r--r--src/svg/qsvghandler.cpp3
-rw-r--r--src/svg/qsvgstyle.cpp1
-rw-r--r--src/svg/qsvgwidget.cpp16
-rw-r--r--src/testlib/qtestcase.cpp2
-rw-r--r--src/tools/uic/cpp/cppwriteinitialization.cpp16
-rw-r--r--tests/arthur/common/paintcommands.cpp19
-rw-r--r--tests/arthur/common/qengines.cpp4
-rw-r--r--tests/auto/bic/tst_bic.cpp19
-rw-r--r--tests/auto/collections/tst_collections.cpp38
-rw-r--r--tests/auto/compilerwarnings/tst_compilerwarnings.cpp2
-rw-r--r--tests/auto/math3d/math3d.pro3
-rw-r--r--tests/auto/math3d/qfixedpt/qfixedpt.pro2
-rw-r--r--tests/auto/math3d/qfixedpt/tst_qfixedpt.cpp643
-rw-r--r--tests/auto/math3d/qmatrixnxn/tst_qmatrixnxn.cpp83
-rw-r--r--tests/auto/math3d/qmatrixnxn_fixed/qmatrixnxn_fixed.pro8
-rw-r--r--tests/auto/math3d/qquaternion/tst_qquaternion.cpp75
-rw-r--r--tests/auto/math3d/qquaternion_fixed/qquaternion_fixed.pro8
-rw-r--r--tests/auto/math3d/qvectornd/tst_qvectornd.cpp18
-rw-r--r--tests/auto/math3d/qvectornd_fixed/qvectornd_fixed.pro8
-rw-r--r--tests/auto/math3d/shared/math3dincludes.h35
-rw-r--r--tests/auto/mediaobject/tst_mediaobject.cpp20
-rw-r--r--tests/auto/moc/tst_moc.cpp28
-rw-r--r--tests/auto/q3accel/tst_q3accel.cpp86
-rw-r--r--tests/auto/q3cstring/tst_q3cstring.cpp86
-rw-r--r--tests/auto/q3header/tst_q3header.cpp4
-rw-r--r--tests/auto/q3ptrlist/tst_q3ptrlist.cpp13
-rw-r--r--tests/auto/q3table/tst_q3table.cpp1
-rw-r--r--tests/auto/q3textedit/tst_q3textedit.cpp2
-rw-r--r--tests/auto/q3textstream/tst_q3textstream.cpp10
-rw-r--r--tests/auto/q3timeedit/tst_q3timeedit.cpp4
-rw-r--r--tests/auto/q3valuelist/tst_q3valuelist.cpp6
-rw-r--r--tests/auto/qabstractitemmodel/tst_qabstractitemmodel.cpp5
-rw-r--r--tests/auto/qabstractitemview/tst_qabstractitemview.cpp68
-rw-r--r--tests/auto/qabstractslider/tst_qabstractslider.cpp4
-rw-r--r--tests/auto/qaccessibility/tst_qaccessibility.cpp525
-rw-r--r--tests/auto/qalgorithms/tst_qalgorithms.cpp8
-rw-r--r--tests/auto/qbitarray/tst_qbitarray.cpp163
-rw-r--r--tests/auto/qbuttongroup/tst_qbuttongroup.cpp19
-rw-r--r--tests/auto/qbytearraymatcher/qbytearraymatcher.pro4
-rw-r--r--tests/auto/qbytearraymatcher/tst_qbytearraymatcher.cpp124
-rw-r--r--tests/auto/qcache/tst_qcache.cpp14
-rw-r--r--tests/auto/qcheckbox/tst_qcheckbox.cpp6
-rw-r--r--tests/auto/qcolordialog/tst_qcolordialog.cpp2
-rw-r--r--tests/auto/qcombobox/tst_qcombobox.cpp28
-rw-r--r--tests/auto/qcommandlinkbutton/tst_qcommandlinkbutton.cpp4
-rw-r--r--tests/auto/qcssparser/tst_cssparser.cpp10
-rw-r--r--tests/auto/qdatastream/tst_qdatastream.cpp4
-rw-r--r--tests/auto/qdate/tst_qdate.cpp21
-rw-r--r--tests/auto/qdatetime/tst_qdatetime.cpp15
-rw-r--r--tests/auto/qdesktopservices/tst_qdesktopservices.cpp5
-rw-r--r--tests/auto/qdialog/tst_qdialog.cpp21
-rw-r--r--tests/auto/qdir/tst_qdir.cpp4
-rw-r--r--tests/auto/qdirmodel/tst_qdirmodel.cpp2
-rw-r--r--tests/auto/qfile/tst_qfile.cpp91
-rw-r--r--tests/auto/qfiledialog/tst_qfiledialog.cpp145
-rw-r--r--tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp41
-rw-r--r--tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp6
-rw-r--r--tests/auto/qfont/tst_qfont.cpp3
-rw-r--r--tests/auto/qfontdatabase/tst_qfontdatabase.cpp2
-rw-r--r--tests/auto/qgl/tst_qgl.cpp65
-rw-r--r--tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp267
-rw-r--r--tests/auto/qgraphicsitemanimation/tst_qgraphicsitemanimation.cpp6
-rw-r--r--tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp64
-rw-r--r--tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp31
-rw-r--r--tests/auto/qgraphicsview/tst_qgraphicsview.cpp57
-rw-r--r--tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp381
-rw-r--r--tests/auto/qhash/tst_qhash.cpp25
-rw-r--r--tests/auto/qheaderview/tst_qheaderview.cpp24
-rw-r--r--tests/auto/qhostinfo/tst_qhostinfo.cpp2
-rw-r--r--tests/auto/qhttp/tst_qhttp.cpp2
-rw-r--r--tests/auto/qicoimageformat/tst_qticoimageformat.cpp35
-rw-r--r--tests/auto/qicon/tst_qicon.cpp2
-rw-r--r--tests/auto/qimage/tst_qimage.cpp5
-rw-r--r--tests/auto/qimagereader/baseline/35floppy.icobin0 -> 4286 bytes
-rw-r--r--tests/auto/qimagereader/baseline/kde_favicon.icobin0 -> 1150 bytes
-rw-r--r--tests/auto/qimagereader/baseline/semitransparent.icobin0 -> 9662 bytes
-rw-r--r--tests/auto/qimagereader/tst_qimagereader.cpp57
-rw-r--r--tests/auto/qiodevice/tst_qiodevice.cpp6
-rw-r--r--tests/auto/qitemdelegate/tst_qitemdelegate.cpp1
-rw-r--r--tests/auto/qitemeditorfactory/tst_qitemeditorfactory.cpp4
-rw-r--r--tests/auto/qitemmodel/modelstotest.cpp9
-rw-r--r--tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp46
-rw-r--r--tests/auto/qitemview/tst_qitemview.cpp20
-rw-r--r--tests/auto/qkeysequence/tst_qkeysequence.cpp8
-rw-r--r--tests/auto/qlabel/tst_qlabel.cpp2
-rw-r--r--tests/auto/qlibrary/tst_qlibrary.cpp11
-rw-r--r--tests/auto/qline/tst_qline.cpp8
-rw-r--r--tests/auto/qlineedit/tst_qlineedit.cpp4
-rw-r--r--tests/auto/qlistview/tst_qlistview.cpp28
-rw-r--r--tests/auto/qlocalsocket/test/test.pro14
-rw-r--r--tests/auto/qlocalsocket/tst_qlocalsocket.cpp22
-rw-r--r--tests/auto/qmainwindow/tst_qmainwindow.cpp10
-rw-r--r--tests/auto/qmake/testdata/functions/functions.pro14
-rw-r--r--tests/auto/qmap/tst_qmap.cpp10
-rw-r--r--tests/auto/qmenu/tst_qmenu.cpp34
-rw-r--r--tests/auto/qmenubar/tst_qmenubar.cpp36
-rw-r--r--tests/auto/qmetaobject/tst_qmetaobject.cpp4
-rw-r--r--tests/auto/qmetatype/tst_qmetatype.cpp2
-rw-r--r--tests/auto/qmovie/tst_qmovie.cpp5
-rw-r--r--tests/auto/qmutexlocker/tst_qmutexlocker.cpp4
-rw-r--r--tests/auto/qnativesocketengine/tst_qnativesocketengine.cpp6
-rw-r--r--tests/auto/qnetworkcookie/tst_qnetworkcookie.cpp8
-rw-r--r--tests/auto/qnetworkinterface/tst_qnetworkinterface.cpp6
-rw-r--r--tests/auto/qnetworkreply/tst_qnetworkreply.cpp4
-rw-r--r--tests/auto/qobject/tst_qobject.cpp6
-rw-r--r--tests/auto/qpainter/tst_qpainter.cpp20
-rw-r--r--tests/auto/qpainterpath/tst_qpainterpath.cpp2
-rw-r--r--tests/auto/qpicture/tst_qpicture.cpp2
-rw-r--r--tests/auto/qpixmapcache/tst_qpixmapcache.cpp10
-rw-r--r--tests/auto/qpoint/tst_qpoint.cpp20
-rw-r--r--tests/auto/qprinter/tst_qprinter.cpp20
-rw-r--r--tests/auto/qprocess/testProcessEnvironment/main.cpp34
-rw-r--r--tests/auto/qprocess/tst_qprocess.cpp2
-rw-r--r--tests/auto/qpushbutton/tst_qpushbutton.cpp4
-rw-r--r--tests/auto/qreadlocker/tst_qreadlocker.cpp4
-rw-r--r--tests/auto/qrect/tst_qrect.cpp40
-rw-r--r--tests/auto/qregexp/tst_qregexp.cpp18
-rw-r--r--tests/auto/qregion/tst_qregion.cpp13
-rw-r--r--tests/auto/qset/tst_qset.cpp8
-rw-r--r--tests/auto/qsettings/tst_qsettings.cpp14
-rw-r--r--tests/auto/qsidebar/tst_qsidebar.cpp26
-rw-r--r--tests/auto/qsizef/tst_qsizef.cpp23
-rw-r--r--tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp167
-rw-r--r--tests/auto/qsqldatabase/tst_databases.h40
-rw-r--r--tests/auto/qsqldriver/qsqldriver.pro16
-rw-r--r--tests/auto/qsqldriver/tst_qsqldriver.cpp218
-rw-r--r--tests/auto/qsqlquery/tst_qsqlquery.cpp34
-rw-r--r--tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp455
-rw-r--r--tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp15
-rw-r--r--tests/auto/qstandarditemmodel/tst_qstandarditemmodel.cpp52
-rw-r--r--tests/auto/qstring/tst_qstring.cpp4
-rw-r--r--tests/auto/qstyle/tst_qstyle.cpp7
-rw-r--r--tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp57
-rw-r--r--tests/auto/qsvgdevice/tst_qsvgdevice.cpp10
-rw-r--r--tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp44
-rw-r--r--tests/auto/qsystemtrayicon/tst_qsystemtrayicon.cpp5
-rw-r--r--tests/auto/qtabbar/tst_qtabbar.cpp32
-rw-r--r--tests/auto/qtemporaryfile/tst_qtemporaryfile.cpp7
-rw-r--r--tests/auto/qtextcodec/test/test.pro1
-rw-r--r--tests/auto/qtextcodec/tst_qtextcodec.cpp71
-rw-r--r--tests/auto/qtextcursor/tst_qtextcursor.cpp10
-rw-r--r--tests/auto/qtextdocument/tst_qtextdocument.cpp81
-rw-r--r--tests/auto/qtextdocumentfragment/tst_qtextdocumentfragment.cpp17
-rw-r--r--tests/auto/qtextlayout/tst_qtextlayout.cpp3
-rw-r--r--tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp2
-rw-r--r--tests/auto/qtextstream/tst_qtextstream.cpp4
-rw-r--r--tests/auto/qthread/tst_qthread.cpp5
-rw-r--r--tests/auto/qtime/tst_qtime.cpp14
-rw-r--r--tests/auto/qtimeline/tst_qtimeline.cpp6
-rw-r--r--tests/auto/qtimer/tst_qtimer.cpp65
-rw-r--r--tests/auto/qtransform/tst_qtransform.cpp10
-rw-r--r--tests/auto/qtranslator/qtranslator.pro2
-rw-r--r--tests/auto/qtreeview/tst_qtreeview.cpp65
-rw-r--r--tests/auto/qtreewidget/tst_qtreewidget.cpp9
-rw-r--r--tests/auto/qtreewidgetitemiterator/tst_qtreewidgetitemiterator.cpp14
-rw-r--r--tests/auto/qudpsocket/tst_qudpsocket.cpp4
-rw-r--r--tests/auto/qurl/tst_qurl.cpp8
-rw-r--r--tests/auto/qvariant/tst_qvariant.cpp54
-rw-r--r--tests/auto/qwaitcondition/tst_qwaitcondition.cpp14
-rw-r--r--tests/auto/qwidget/tst_qwidget.cpp250
-rw-r--r--tests/auto/qwmatrix/tst_qwmatrix.cpp17
-rw-r--r--tests/auto/qwritelocker/tst_qwritelocker.cpp4
-rw-r--r--tests/auto/rcc/tst_rcc.cpp15
-rw-r--r--tests/auto/selftests/xunit/tst_xunit.cpp34
-rw-r--r--tests/auto/uiloader/baseline/css_borderimage.ui125
-rw-r--r--tests/auto/uiloader/baseline/css_borderimage_allwidgets.ui210
-rw-r--r--tests/auto/uiloader/baseline/images/borderimage.pngbin0 -> 1672 bytes
-rw-r--r--tests/auto/uiloader/baseline/images/splitter_horizontal.pngbin0 -> 199 bytes
-rw-r--r--tests/auto/uiloader/baseline/images/splitter_vertical.pngbin0 -> 193 bytes
-rw-r--r--tests/auto/windowsmobile/test/ddhelper.cpp121
-rw-r--r--tests/auto/windowsmobile/test/ddhelper.h21
-rw-r--r--tests/auto/windowsmobile/test/test.pro24
-rw-r--r--tests/auto/windowsmobile/test/testQMenuBar_current.pngbin0 -> 23702 bytes
-rw-r--r--tests/auto/windowsmobile/test/testSimpleWidget_current.pngbin0 -> 21940 bytes
-rw-r--r--tests/auto/windowsmobile/test/tst_windowsmobile.cpp191
-rw-r--r--tests/auto/windowsmobile/test/windowsmobile.qrc6
-rw-r--r--tests/auto/windowsmobile/testQMenuBar/main.cpp72
-rw-r--r--tests/auto/windowsmobile/testQMenuBar/testQMenuBar.pro2
-rw-r--r--tests/auto/windowsmobile/windowsmobile.pro9
-rw-r--r--tests/benchmarks/qimagereader/tst_qimagereader.cpp2
-rw-r--r--tests/benchmarks/qobject/main.cpp14
-rw-r--r--tests/benchmarks/qpainter/tst_qpainter.cpp6
-rw-r--r--tools/activeqt/activeqt.pro11
-rw-r--r--tools/assistant/compat/mainwindow.cpp24
-rw-r--r--tools/assistant/tools/assistant/assistant.qchbin366592 -> 368640 bytes
-rw-r--r--tools/assistant/tools/assistant/centralwidget.cpp461
-rw-r--r--tools/assistant/tools/assistant/centralwidget.h17
-rw-r--r--tools/assistant/tools/assistant/doc/HOWTO5
-rw-r--r--tools/assistant/tools/assistant/doc/assistant.qdocconf5
-rw-r--r--tools/assistant/tools/assistant/helpviewer.cpp13
-rw-r--r--tools/assistant/tools/assistant/helpviewer.h6
-rw-r--r--tools/assistant/tools/assistant/indexwindow.cpp2
-rw-r--r--tools/assistant/tools/assistant/mainwindow.cpp107
-rw-r--r--tools/assistant/tools/assistant/mainwindow.h4
-rw-r--r--tools/assistant/tools/assistant/searchwidget.cpp73
-rw-r--r--tools/assistant/tools/assistant/searchwidget.h4
-rw-r--r--tools/assistant/translations/qt_help.pro1
-rw-r--r--tools/assistant/translations/translations.pro1
-rw-r--r--tools/assistant/translations/translations_adp.pro1
-rw-r--r--tools/configure/configureapp.cpp78
-rw-r--r--tools/configure/tools.cpp7
-rw-r--r--tools/designer/src/components/propertyeditor/designerpropertymanager.cpp2
-rw-r--r--tools/designer/src/components/propertyeditor/propertyeditor.cpp7
-rw-r--r--tools/designer/src/designer/versiondialog.cpp24
-rw-r--r--tools/designer/src/lib/shared/actioneditor.cpp8
-rw-r--r--tools/designer/src/lib/shared/actionrepository.cpp17
-rw-r--r--tools/designer/src/lib/shared/actionrepository_p.h7
-rw-r--r--tools/designer/src/lib/shared/newactiondialog.cpp4
-rw-r--r--tools/designer/src/lib/shared/newactiondialog_p.h2
-rw-r--r--tools/designer/src/lib/shared/qdesigner_utils.cpp2
-rw-r--r--tools/designer/src/lib/uilib/resourcebuilder.cpp16
-rw-r--r--tools/designer/src/uitools/quiloader.cpp4
-rw-r--r--tools/designer/translations/translations.pro1
-rw-r--r--tools/linguist/linguist/linguist.pro1
-rw-r--r--tools/linguist/linguist/mainwindow.cpp24
-rw-r--r--tools/linguist/linguist/messageeditor.cpp7
-rw-r--r--tools/linguist/lupdate/ui.cpp24
-rw-r--r--tools/linguist/shared/profileevaluator.cpp128
-rw-r--r--tools/linguist/shared/translatormessage.h4
-rw-r--r--tools/macdeployqt/macdeployqt/main.cpp2
-rw-r--r--tools/qdbus/qdbusviewer/qdbusviewer.cpp17
-rw-r--r--tools/qdoc3/qdoc3.pro7
-rw-r--r--tools/qdoc3/test/assistant.qdocconf4
-rw-r--r--tools/qdoc3/test/carbide-eclipse-integration.qdocconf6
-rw-r--r--tools/qdoc3/test/designer.qdocconf4
-rw-r--r--tools/qdoc3/test/eclipse-integration.qdocconf2
-rw-r--r--tools/qdoc3/test/jambi.qdocconf4
-rw-r--r--tools/qdoc3/test/linguist.qdocconf4
-rw-r--r--tools/qdoc3/test/qmake.qdocconf4
-rw-r--r--tools/qdoc3/test/qt-build-docs.qdocconf11
-rw-r--r--tools/qdoc3/test/qt-html-templates.qdocconf3
-rw-r--r--tools/qdoc3/test/qt-inc.qdocconf7
-rw-r--r--tools/qdoc3/test/qt.qdocconf11
-rw-r--r--tools/qdoc3/test/standalone-eclipse-integration.qdocconf6
-rw-r--r--tools/qtconfig/mainwindow.cpp14
-rw-r--r--tools/qvfb/config.ui1665
-rw-r--r--tools/qvfb/qvfb.cpp15
-rw-r--r--tools/qvfb/qvfbview.cpp66
-rw-r--r--tools/qvfb/qvfbview.h5
-rw-r--r--tools/shared/qtpropertybrowser/qtbuttonpropertybrowser.cpp4
-rw-r--r--tools/shared/qtpropertybrowser/qtbuttonpropertybrowser.h4
-rw-r--r--tools/shared/qtpropertybrowser/qteditorfactory.cpp4
-rw-r--r--tools/shared/qtpropertybrowser/qteditorfactory.h4
-rw-r--r--tools/shared/qtpropertybrowser/qtgroupboxpropertybrowser.cpp4
-rw-r--r--tools/shared/qtpropertybrowser/qtgroupboxpropertybrowser.h4
-rw-r--r--tools/shared/qtpropertybrowser/qtpropertybrowser.cpp4
-rw-r--r--tools/shared/qtpropertybrowser/qtpropertybrowser.h6
-rw-r--r--tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp7
-rw-r--r--tools/shared/qtpropertybrowser/qtpropertybrowserutils_p.h4
-rw-r--r--tools/shared/qtpropertybrowser/qtpropertymanager.cpp27
-rw-r--r--tools/shared/qtpropertybrowser/qtpropertymanager.h4
-rw-r--r--tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp4
-rw-r--r--tools/shared/qtpropertybrowser/qttreepropertybrowser.h4
-rw-r--r--tools/shared/qtpropertybrowser/qtvariantproperty.cpp8
-rw-r--r--tools/shared/qtpropertybrowser/qtvariantproperty.h4
-rw-r--r--tools/tools.pro2
-rw-r--r--translations/assistant_adp_de.ts59
-rw-r--r--translations/assistant_adp_ja.ts56
-rw-r--r--translations/assistant_adp_pl.ts50
-rw-r--r--translations/assistant_adp_untranslated.ts60
-rw-r--r--translations/assistant_adp_zh_CN.ts43
-rw-r--r--translations/assistant_adp_zh_TW.ts223
-rw-r--r--translations/assistant_de.ts226
-rw-r--r--translations/assistant_ja.ts259
-rw-r--r--translations/assistant_pl.ts231
-rw-r--r--translations/assistant_untranslated.ts259
-rw-r--r--translations/assistant_zh_CN.ts219
-rw-r--r--translations/assistant_zh_TW.ts293
-rw-r--r--translations/designer_de.ts571
-rw-r--r--translations/designer_ja.ts729
-rw-r--r--translations/designer_pl.ts727
-rw-r--r--translations/designer_untranslated.ts556
-rw-r--r--translations/designer_zh_CN.ts704
-rw-r--r--translations/designer_zh_TW.ts1664
-rw-r--r--translations/linguist_de.ts147
-rw-r--r--translations/linguist_fr.ts152
-rw-r--r--translations/linguist_ja.ts140
-rw-r--r--translations/linguist_pl.ts145
-rw-r--r--translations/linguist_untranslated.ts150
-rw-r--r--translations/linguist_zh_CN.ts142
-rw-r--r--translations/linguist_zh_TW.ts477
-rw-r--r--translations/qt_ar.ts576
-rw-r--r--translations/qt_de.ts575
-rw-r--r--translations/qt_es.ts564
-rw-r--r--translations/qt_fr.ts579
-rw-r--r--translations/qt_help_de.ts28
-rw-r--r--translations/qt_help_ja.ts27
-rw-r--r--translations/qt_help_pl.ts28
-rw-r--r--translations/qt_help_untranslated.ts27
-rw-r--r--translations/qt_help_zh_CN.ts27
-rw-r--r--translations/qt_help_zh_TW.ts78
-rw-r--r--translations/qt_iw.ts578
-rw-r--r--translations/qt_ja_JP.ts570
-rw-r--r--translations/qt_pl.ts618
-rw-r--r--translations/qt_pt.ts564
-rw-r--r--translations/qt_ru.ts576
-rw-r--r--translations/qt_sk.ts570
-rw-r--r--translations/qt_sv.ts566
-rw-r--r--translations/qt_uk.ts564
-rw-r--r--translations/qt_untranslated.ts572
-rw-r--r--translations/qt_zh_CN.ts575
-rw-r--r--translations/qt_zh_TW.ts1892
-rw-r--r--translations/qtconfig_pl.ts40
-rw-r--r--translations/qtconfig_untranslated.ts33
-rw-r--r--translations/qtconfig_zh_CN.ts43
-rw-r--r--translations/qtconfig_zh_TW.ts203
-rw-r--r--translations/qvfb_pl.ts8
-rw-r--r--translations/qvfb_untranslated.ts7
-rw-r--r--translations/qvfb_zh_CN.ts4
-rw-r--r--translations/qvfb_zh_TW.ts70
-rw-r--r--util/qlalr/doc/qlalr.qdocconf2
-rwxr-xr-xutil/scripts/make_qfeatures_dot_h12
-rwxr-xr-xutil/webkit/mkdist-webkit2
742 files changed, 28462 insertions, 24105 deletions
diff --git a/FAQ.txt b/FAQ.txt
index c243e5c..1d2266d 100644
--- a/FAQ.txt
+++ b/FAQ.txt
@@ -1,4 +1,4 @@
-This is a list of Frequently Asked Questions regarding Qt Release 4.5.0.
+This is a list of Frequently Asked Questions regarding this Qt release.
Q: I'm using a Unix system and I downloaded the Zip package. However, when I try
to run the configure script, I get the following error message:
@@ -8,7 +8,7 @@ to Unix style line endings (LF). To avoid this problem, uncompress the file
again and give the option "-a" to unzip, which will then add the correct line
endings.
-Q: I'm running Windows XP and I downloaded the qt-win-eval-4.5.0-vs2008.exe
+Q: I'm running Windows XP and I downloaded the qt-win-eval-%VERSION%-vs2008.exe
version of Qt. However, when I try to run the examples I get an error saying:
"The application failed to start because the application configuration is
incorrect. Reinstalling the application may fix this problem.". I reinstalled
diff --git a/config.tests/unix/objcopy.test b/config.tests/unix/objcopy.test
index eb2173d..e2051a7 100755
--- a/config.tests/unix/objcopy.test
+++ b/config.tests/unix/objcopy.test
@@ -1,6 +1,6 @@
#!/bin/sh
-TEST_PATH=`dirname $0`
+TEST_PATH=`dirname "$0"`
SEP_DEBUG_SUPPORT=no
COMPILER=$1
QMAKE_OBJCOPY=$2
diff --git a/configure b/configure
index 35fbd2d..c30d70d 100755
--- a/configure
+++ b/configure
@@ -119,7 +119,13 @@ elif [ -f "$relpath"/src/gui/kernel/qapplication_qws.cpp ]; then
# ~ src/gui/base/qapplication_qws.cpp is present
# ~ this is the free or commercial edition
# ~ this is the internal edition and Qt Embedded is explicitly enabled
- PLATFORM_QWS=maybe
+ if [ -f "$relpath"/src/gui/kernel/qapplication_mac.mm ]; then
+ # This is a depot build, or an all-platforms package
+ PLATFORM_QWS=maybe
+ else
+ # This must be the embedded package, since the Qt/Mac source files are not present
+ PLATFORM_QWS=yes
+ fi
fi
#-----------------------------------------------------------------------------
@@ -199,10 +205,10 @@ earlyArgParse()
h|help|--help|-help)
if [ "$VAL" = "yes" ]; then
OPT_HELP="$VAL"
- COMMERCIAL_USER="yes" #doesn't matter we will display the help
+ COMMERCIAL_USER="no" #doesn't matter we will display the help
else
UNKNOWN_OPT=yes
- COMMERCIAL_USER="yes" #doesn't matter we will display the help
+ COMMERCIAL_USER="no" #doesn't matter we will display the help
fi
;;
--*)
@@ -735,7 +741,7 @@ CFG_SQL_AVAILABLE=
if [ -d "$relpath/src/plugins/sqldrivers" ]; then
for a in "$relpath/src/plugins/sqldrivers/"*; do
if [ -d "$a" ]; then
- base_a=`basename $a`
+ base_a=`basename "$a"`
CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
eval "CFG_SQL_${base_a}=auto"
fi
@@ -746,7 +752,7 @@ CFG_DECORATION_PLUGIN_AVAILABLE=
if [ -d "$relpath/src/plugins/decorations" ]; then
for a in "$relpath/src/plugins/decorations/"*; do
if [ -d "$a" ]; then
- base_a=`basename $a`
+ base_a=`basename "$a"`
CFG_DECORATION_PLUGIN_AVAILABLE="${CFG_DECORATION_PLUGIN_AVAILABLE} ${base_a}"
fi
done
@@ -756,7 +762,7 @@ CFG_KBD_PLUGIN_AVAILABLE=
if [ -d "$relpath/src/plugins/kbddrivers" ]; then
for a in "$relpath/src/plugins/kbddrivers/"*; do
if [ -d "$a" ]; then
- base_a=`basename $a`
+ base_a=`basename "$a"`
CFG_KBD_PLUGIN_AVAILABLE="${CFG_KBD_PLUGIN_AVAILABLE} ${base_a}"
fi
done
@@ -766,7 +772,7 @@ CFG_MOUSE_PLUGIN_AVAILABLE=
if [ -d "$relpath/src/plugins/mousedrivers" ]; then
for a in "$relpath/src/plugins/mousedrivers/"*; do
if [ -d "$a" ]; then
- base_a=`basename $a`
+ base_a=`basename "$a"`
CFG_MOUSE_PLUGIN_AVAILABLE="${CFG_MOUSE_PLUGIN_AVAILABLE} ${base_a}"
fi
done
@@ -776,7 +782,7 @@ CFG_GFX_PLUGIN_AVAILABLE=
if [ -d "$relpath/src/plugins/gfxdrivers" ]; then
for a in "$relpath/src/plugins/gfxdrivers/"*; do
if [ -d "$a" ]; then
- base_a=`basename $a`
+ base_a=`basename "$a"`
CFG_GFX_PLUGIN_AVAILABLE="${CFG_GFX_PLUGIN_AVAILABLE} ${base_a}"
fi
done
@@ -2125,7 +2131,7 @@ if [ -z "$MAKE" ]; then
MAKE=
for mk in gmake make; do
if "$WHICH" $mk >/dev/null 2>&1; then
- MAKE=`$WHICH $mk`
+ MAKE=`"$WHICH" $mk`
break
fi
done
@@ -2663,7 +2669,7 @@ if [ -z "$PKG_CONFIG" ]; then
PKG_CONFIG=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%PKG_CONFIG[^_].*=%%p' | tr '\n' ' '`
fi
if [ -z "$PKG_CONFIG" ]; then
- PKG_CONFIG=`$WHICH pkg-config 2>/dev/null`
+ PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
fi
# Work out if we can use pkg-config
@@ -2695,14 +2701,17 @@ fi
# check -arch arguments for validity.
if [ "$PLATFORM_MAC" = "yes" ]; then
- ALLOWED="x86 ppc x86_64 ppc64"
+ ALLOWED="x86 ppc x86_64 ppc64 i386"
for i in $CFG_MAC_ARCHS
do
if echo "$ALLOWED" | grep -w -v "$i" > /dev/null 2>&1; then
- echo "Unknown architecture: \"$i\". Supported architechtures: x86 ppc x86_64 ppc64";
+ echo "Unknown architecture: \"$i\". Supported architectures: x86[i386] ppc x86_64 ppc64";
exit 2;
fi
done
+
+# replace "i386" with "x86" to support configuring with -arch i386 as an alias for x86.
+ CFG_MAC_ARCHS="${CFG_MAC_ARCHS/i386/x86}"
fi
# find the default framework value
@@ -3965,7 +3974,7 @@ if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
[ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
if [ "$OPT_SHADOW" = "yes" ]; then
"$outpath/bin/syncqt" $SYNCQT_OPTS
- elif [ "$CFG_DEV" = "yes" ]; then
+ elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ]; then
QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS
fi
fi
@@ -4050,9 +4059,9 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
fi
[ -f "$in_mkfile" ] || continue
- echo "########################################################################" >$mkfile
- echo "## This file was autogenerated by configure, all changes will be lost ##" >>$mkfile
- echo "########################################################################" >>$mkfile
+ echo "########################################################################" > "$mkfile"
+ echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
+ echo "########################################################################" >> "$mkfile"
EXTRA_OBJS=
EXTRA_SRCS=
EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
@@ -4063,8 +4072,8 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
fi
- [ -n "$CC" ] && echo "CC = $CC" >>$mkfile
- [ -n "$CXX" ] && echo "CXX = $CXX" >>$mkfile
+ [ -n "$CC" ] && echo "CC = $CC" >> "$mkfile"
+ [ -n "$CXX" ] && echo "CXX = $CXX" >> "$mkfile"
if [ "$CFG_SILENT" = "yes" ]; then
[ -z "$CC" ] && setBootstrapVariable QMAKE_CC 's,QMAKE_CC.*=,CC=\@,'
[ -z "$CXX" ] && setBootstrapVariable QMAKE_CXX 's,QMAKE_CXX.*=,CXX=\@,'
@@ -4100,9 +4109,9 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
fi
if [ "$PLATFORM_MAC" = "yes" ]; then
if [ "$PLATFORM" = "macx-icc" ]; then
- echo "export MACOSX_DEPLOYMENT_TARGET = 10.4" >>"$mkfile"
+ echo "export MACOSX_DEPLOYMENT_TARGET = 10.4" >> "$mkfile"
else
- echo "export MACOSX_DEPLOYMENT_TARGET = 10.3" >>"$mkfile"
+ echo "export MACOSX_DEPLOYMENT_TARGET = 10.3" >> "$mkfile"
fi
echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
@@ -4146,18 +4155,20 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
echo >>"$mkfile"
adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
+ adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
-e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
-e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
-e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
-e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
-e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
- -e "s,@QMAKESPEC@,$QMAKESPEC,g" "$in_mkfile" >>"$mkfile"
+ -e "s,@QMAKESPEC@,$adjqmakespec,g" "$in_mkfile" >>"$mkfile"
if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
(cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
- sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"${mkfile}.tmp"
- mv "${mkfile}.tmp" "${mkfile}"
+ sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
+ sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
+ rm "$mkfile.tmp"
fi
done
@@ -4326,7 +4337,7 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
case $_SQLDR in
mysql)
if [ "$CFG_SQL_mysql" != "no" ]; then
- [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`$WHICH mysql_config`
+ [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
if [ -x "$CFG_MYSQL_CONFIG" ]; then
QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
@@ -5996,10 +6007,11 @@ if [ "$CFG_EXCEPTIONS" = "no" ]; then
QMAKE_CONFIG="$QMAKE_CONFIG exceptions_off"
fi
-# On Mac, set the minimum deployment target using Xarch when that is supported (10.5 and up).
-# On 10.4 the deployment version is set to 10.3 globally using the QMAKE_MACOSX_DEPLOYMENT_TARGET env. variable
-# "-cocoa" on the command line means Cocoa is used in 32-bit mode also, in this case fall back on
-# QMAKE_MACOSX_DEPLOYMENT_TARGET which will be set to 10.5.
+# On Mac, set the minimum deployment target for the different architechtures
+# using the Xarch compiler option when supported (10.5 and up). On 10.4 the
+# deployment version is set to 10.3 globally using the QMAKE_MACOSX_DEPLOYMENT_TARGET
+# env. variable. "-cocoa" on the command line means Cocoa is used in 32-bit mode also,
+# in this case fall back on QMAKE_MACOSX_DEPLOYMENT_TARGET which will be set to 10.5.
if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_XARCH" != "no" ] && [ "$COMMANDLINE_MAC_COCOA" != "yes" ]; then
if echo "$CFG_MAC_ARCHS" | grep '\<x86\>' > /dev/null 2>&1; then
QMakeVar add QMAKE_CFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
@@ -6205,6 +6217,9 @@ QT_BUILD_KEY_COMPAT=
if [ "$QT_CROSS_COMPILE" = "no" ]; then
# previous versions of Qt used a build key built from the uname
QT_BUILD_KEY_COMPAT="$CFG_USER_BUILD_KEY $UNAME_MACHINE $UNAME_SYSTEM $COMPILER $BUILD_OPTIONS"
+ if [ -n "$QT_NAMESPACE" ]; then
+ QT_BUILD_KEY_COMPAT="$QT_BUILD_KEY_COMPAT $QT_NAMESPACE"
+ fi
fi
# strip out leading/trailing/extra whitespace
QT_BUILD_KEY=`echo $QT_BUILD_KEY | sed -e "s, *, ,g" -e "s,^ *,," -e "s, *$,,"`
@@ -7136,7 +7151,7 @@ for file in .projects .projects.3; do
*tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*) SPEC=$QMAKESPEC ;;
*) SPEC=$XQMAKESPEC ;;
esac
- dir=`dirname $a | sed -e "s;$sepath;.;g"`
+ dir=`dirname "$a" | sed -e "s;$sepath;.;g"`
test -d "$dir" || mkdir -p "$dir"
OUTDIR="$outpath/$dir"
if [ -f "${OUTDIR}/Makefile" ] && [ "$OPT_FAST" = "yes" ]; then
@@ -7279,7 +7294,7 @@ if [ -n "$RPATH_MESSAGE" ]; then
echo "$RPATH_MESSAGE"
fi
-MAKE=`basename $MAKE`
+MAKE=`basename "$MAKE"`
echo
echo Qt is now configured for building. Just run \'$MAKE\'.
if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
diff --git a/configure.exe b/configure.exe
index 13ca0e5..ff71f08 100644
--- a/configure.exe
+++ b/configure.exe
Binary files differ
diff --git a/demos/embeddeddialogs/customproxy.cpp b/demos/embeddeddialogs/customproxy.cpp
index 56a0548..dd8766f 100644
--- a/demos/embeddeddialogs/customproxy.cpp
+++ b/demos/embeddeddialogs/customproxy.cpp
@@ -44,7 +44,7 @@
#include <QtGui>
CustomProxy::CustomProxy(QGraphicsItem *parent, Qt::WindowFlags wFlags)
- : QGraphicsProxyWidget(parent, wFlags), popupShown(false)
+ : QGraphicsProxyWidget(parent, wFlags), popupShown(false), currentPopup(0)
{
timeLine = new QTimeLine(250, this);
connect(timeLine, SIGNAL(valueChanged(qreal)),
@@ -111,8 +111,19 @@ bool CustomProxy::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
QVariant CustomProxy::itemChange(GraphicsItemChange change, const QVariant &value)
{
- if (change == ItemChildRemovedChange)
- removeSceneEventFilter(this);
+ if (change == ItemChildAddedChange || change == ItemChildRemovedChange) {
+ if (change == ItemChildAddedChange) {
+ currentPopup = qVariantValue<QGraphicsItem *>(value);
+ currentPopup->setCacheMode(ItemCoordinateCache);
+ if (scene())
+ currentPopup->installSceneEventFilter(this);
+ } else if (scene()) {
+ currentPopup->removeSceneEventFilter(this);
+ currentPopup = 0;
+ }
+ } else if (currentPopup && change == ItemSceneHasChanged) {
+ currentPopup->installSceneEventFilter(this);
+ }
return QGraphicsProxyWidget::itemChange(change, value);
}
diff --git a/demos/embeddeddialogs/customproxy.h b/demos/embeddeddialogs/customproxy.h
index 0a5fbaf..d324426 100644
--- a/demos/embeddeddialogs/customproxy.h
+++ b/demos/embeddeddialogs/customproxy.h
@@ -70,6 +70,7 @@ private slots:
private:
QTimeLine *timeLine;
bool popupShown;
+ QGraphicsItem *currentPopup;
};
#endif
diff --git a/demos/embeddeddialogs/main.cpp b/demos/embeddeddialogs/main.cpp
index 4cf7325..cfb31c4 100644
--- a/demos/embeddeddialogs/main.cpp
+++ b/demos/embeddeddialogs/main.cpp
@@ -68,7 +68,6 @@ int main(int argc, char *argv[])
proxy->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
scene.addItem(proxy);
- proxy->installSceneEventFilter(proxy);
}
}
scene.setSceneRect(scene.itemsBoundingRect());
diff --git a/demos/qtdemo/colors.cpp b/demos/qtdemo/colors.cpp
index 18343cb..733b285 100644
--- a/demos/qtdemo/colors.cpp
+++ b/demos/qtdemo/colors.cpp
@@ -72,10 +72,8 @@ int Colors::contentHeight = 510;
// Properties:
bool Colors::openGlRendering = false;
-bool Colors::direct3dRendering = false;
bool Colors::softwareRendering = false;
-bool Colors::openGlAwailable = true;
-bool Colors::direct3dAwailable = true;
+bool Colors::openGlAvailable = true;
bool Colors::xRenderPresent = true;
bool Colors::noTicker = false;
@@ -206,8 +204,6 @@ void Colors::parseArgs(int argc, char *argv[])
QString s(argv[i]);
if (s == "-opengl")
Colors::openGlRendering = true;
- else if (s == "-direct3d")
- Colors::direct3dRendering = true;
else if (s == "-software")
Colors::softwareRendering = true;
else if (s == "-no-opengl") // support old style
@@ -270,7 +266,7 @@ void Colors::parseArgs(int argc, char *argv[])
Colors::fps = int(parseFloat(s, "-fps"));
else if (s.startsWith("-h") || s.startsWith("-help")){
QMessageBox::warning(0, "Arguments",
- QString("Usage: qtdemo [-verbose] [-no-adapt] [-opengl] [-direct3d] [-software] [-fullscreen] [-ticker[0|1]] ")
+ QString("Usage: qtdemo [-verbose] [-no-adapt] [-opengl] [-software] [-fullscreen] [-ticker[0|1]] ")
+ "[-animations[0|1]] [-no-blending] [-no-sync] [-use-timer-update[0|1]] [-pause[0|1]] "
+ "[-use-window-mask] [-no-rescale] "
+ "[-use-pixmaps] [-show-fps] [-show-br] [-8bit[0|1]] [-menu<int>] [-use-loop] [-use-balls] "
@@ -278,6 +274,9 @@ void Colors::parseArgs(int argc, char *argv[])
+ "[-low] [-ticker-letters<int>] [-ticker-speed<float>] [-no-ticker-morph] "
+ "[-ticker-morph-speed<float>] [-ticker-text<string>]");
exit(0);
+ } else{
+ QMessageBox::warning(0, "QtDemo", QString("Unrecognized argument:\n") + s);
+ exit(0);
}
}
@@ -287,7 +286,6 @@ void Colors::parseArgs(int argc, char *argv[])
void Colors::setLowSettings()
{
Colors::openGlRendering = false;
- Colors::direct3dRendering = false;
Colors::softwareRendering = true;
Colors::noTicker = true;
Colors::noTimerUpdate = true;
@@ -322,15 +320,11 @@ void Colors::detectSystemResources()
qDebug() << "- OpenGL not supported by current build of Qt";
#endif
{
- Colors::openGlAwailable = false;
+ Colors::openGlAvailable = false;
if (Colors::verbose)
qDebug("- OpenGL not recommended on this system");
}
-#if defined(Q_WS_WIN)
- Colors::direct3dAwailable = false; // for now.
-#endif
-
#if defined(Q_WS_X11)
// check if X render is present:
QPixmap tmp(1, 1);
@@ -366,21 +360,9 @@ void Colors::postConfigure()
}
}
-#if !defined(Q_WS_WIN)
- if (Colors::direct3dRendering){
- Colors::direct3dRendering = false;
- qDebug() << "- WARNING: Direct3D specified, but not supported on this platform";
- }
-#endif
-
- if (!Colors::openGlRendering && !Colors::direct3dRendering && !Colors::softwareRendering){
+ if (!Colors::openGlRendering && !Colors::softwareRendering){
// The user has not decided rendering system. So we do it instead:
-#if defined(Q_WS_WIN)
- if (Colors::direct3dAwailable)
- Colors::direct3dRendering = true;
- else
-#endif
- if (Colors::openGlAwailable)
+ if (Colors::openGlAvailable)
Colors::openGlRendering = true;
else
Colors::softwareRendering = true;
diff --git a/demos/qtdemo/colors.h b/demos/qtdemo/colors.h
index 58865c6..31eb93b 100644
--- a/demos/qtdemo/colors.h
+++ b/demos/qtdemo/colors.h
@@ -81,11 +81,9 @@ public:
static int contentHeight;
// properties:
+ static bool openGlAvailable;
static bool openGlRendering;
- static bool direct3dRendering;
static bool softwareRendering;
- static bool openGlAwailable;
- static bool direct3dAwailable;
static bool xRenderPresent;
static bool noAdapt;
static bool noTicker;
diff --git a/demos/qtdemo/mainwindow.cpp b/demos/qtdemo/mainwindow.cpp
index 8723823..0da69b2 100644
--- a/demos/qtdemo/mainwindow.cpp
+++ b/demos/qtdemo/mainwindow.cpp
@@ -100,14 +100,8 @@ void MainWindow::setRenderingSystem()
{
QWidget *viewport = 0;
- if (Colors::direct3dRendering){
- viewport->setAttribute(Qt::WA_MSWindowsUseDirect3D);
- setCacheMode(QGraphicsView::CacheNone);
- if (Colors::verbose)
- qDebug() << "- using Direct3D";
- }
#ifndef QT_NO_OPENGL
- else if (Colors::openGlRendering){
+ if (Colors::openGlRendering) {
QGLWidget *glw = new QGLWidget(QGLFormat(QGL::SampleBuffers));
if (Colors::noScreenSync)
glw->format().setSwapInterval(0);
@@ -116,9 +110,10 @@ void MainWindow::setRenderingSystem()
setCacheMode(QGraphicsView::CacheNone);
if (Colors::verbose)
qDebug() << "- using OpenGL";
- }
+ } else // software rendering
#endif
- else{ // software rendering
+ {
+ // software rendering
viewport = new QWidget;
setCacheMode(QGraphicsView::CacheBackground);
if (Colors::verbose)
@@ -389,8 +384,6 @@ void MainWindow::keyPressEvent(QKeyEvent *event)
s += "Rendering system: ";
if (Colors::openGlRendering)
s += "OpenGL";
- else if (Colors::direct3dRendering)
- s += "Direct3D";
else
s += "software";
diff --git a/demos/qtdemo/menumanager.cpp b/demos/qtdemo/menumanager.cpp
index bfa2e3f..a9e9b4b 100644
--- a/demos/qtdemo/menumanager.cpp
+++ b/demos/qtdemo/menumanager.cpp
@@ -184,7 +184,6 @@ void MenuManager::itemSelected(int userCode, const QString &menuName)
this->tickerInAnim->startDelay = 2000;
this->ticker->useGuideQt();
this->score->queueMovie("ticker", Score::NEW_ANIMATION_ONLY);
- this->window->switchTimerOnOff(true);
}
break;
case MENU1:
@@ -220,7 +219,6 @@ void MenuManager::itemSelected(int userCode, const QString &menuName)
this->score->queueMovie(this->currentInfo + " -buttons", Score::NEW_ANIMATION_ONLY);
if (!Colors::noTicker){
this->score->queueMovie("ticker -out", Score::NEW_ANIMATION_ONLY);
- this->window->switchTimerOnOff(false);
}
break;
case UP:{
@@ -257,7 +255,6 @@ void MenuManager::itemSelected(int userCode, const QString &menuName)
this->ticker->doIntroTransitions = false;
this->tickerInAnim->startDelay = 500;
this->score->queueMovie("ticker", Score::NEW_ANIMATION_ONLY);
- this->window->switchTimerOnOff(true);
}
} else if (this->currentMenuCode != ROOT)
itemSelected(ROOT, Colors::rootMenuName);
diff --git a/demos/qtdemo/xml/examples.xml b/demos/qtdemo/xml/examples.xml
index 03b59f3..96a3e80 100644
--- a/demos/qtdemo/xml/examples.xml
+++ b/demos/qtdemo/xml/examples.xml
@@ -118,6 +118,7 @@
<example filename="threadedfortuneserver" name="Threaded Fort. Server" />
<example filename="torrent" name="Torrent Client" />
<example filename="securesocketclient" name="Secure Socket Client" />
+ <example filename="googlesuggest" name="Google Suggest" />
</category>
<category dirname="opengl" name="OpenGL">
<example filename="2dpainting" name="2D Painting" />
@@ -213,6 +214,12 @@
<example filename="wiggly" name="Wiggly" />
<example filename="windowflags" name="Window Flags" />
</category>
+ <category dirname="webkit" name="WebKit">
+ <example filename="formextractor" name="Form Extractor" />
+ <example filename="previewer" name="HTML Previewer" />
+ <example filename="fancybrowser" name="Fancy Browser" />
+ <example filename="googlechat" name="Google Chat" />
+ </category>
<category dirname="xml" name="XML">
<example filename="saxbookmarks" name="SAX Bookmarks" />
<example filename="dombookmarks" name="DOM Bookmarks" />
diff --git a/dist/README b/dist/README
index 38b3a1c..c9e7677 100644
--- a/dist/README
+++ b/dist/README
@@ -2,11 +2,11 @@ This is Qt version %VERSION%.
Qt is a comprehensive cross-platform C++ application framework. Qt 4
introduces new features and many improvements over the 3.x series. See
-http://doc.trolltech.com/latest/qt4-intro.html for details.
+http://doc.qtsoftware.com/latest/qt4-intro.html for details.
The Qt 4.x series is not binary compatible or source compatible with
the 3.x series. For more information on porting from Qt 3 to Qt 4, see
-http://doc.trolltech.com/latest/porting4.html.
+http://doc.qtsoftware.com/latest/porting4.html .
INSTALLING Qt
@@ -37,7 +37,7 @@ The Qt reference documentation is available locally in Qt's doc/html
directory. You can use Qt Assistant to view it; to launch Assistant,
type 'assistant' on the command line or use the Start menu. On Mac OS
X, you can find it in /Developer/Applications/Qt. The latest
-documentation is available at http://doc.trolltech.com/.
+documentation is available at http://doc.qtsoftware.com/ .
SUPPORTED PLATFORMS
@@ -90,10 +90,10 @@ For this release, the following platforms have been tested:
wincewm60standard-msvc2008
For a complete list of supported platforms, see
-http://www.qtsoftware.com/developer/supported-platforms/supported-platforms/
+http://doc.qtsoftware.com/latest/supported-platforms.html
For a description of Qt's platform support policy, see
-http://www.qtsoftware.com/support-services/support/platform-support-policy
+http://qtsoftware.com/support-services/support/platform-support-policy
COMMERCIAL EDITIONS
@@ -106,7 +106,7 @@ the QtCore, QtGui (except QGraphicsView), QtTest, QtDBus and
Qt3Support modules.
For a full listing of the contents of each module, please refer to
-http://doc.trolltech.com/4.4/modules.html.
+http://doc.qtsoftware.com/latest/modules.html
HOW TO REPORT A BUG
diff --git a/dist/changes-4.5.1 b/dist/changes-4.5.1
index 1d2286e..c9e689f 100644
--- a/dist/changes-4.5.1
+++ b/dist/changes-4.5.1
@@ -24,6 +24,27 @@ General Improvements
--------------------
- Documentation and Examples
+ * Added printing feature for the Spreadsheet demo.
+ * [245675] Clarified the differences between QItemDelegate and
+ QStyledItemDelegate.
+ * [248752] Marked QPrintDialog::printer(), setPrinter() and addButton()
+ as Unix only functions, part of Qt3Support.
+
+- Embedded Dialogs demo
+ * [246517] Fixed warnings and bugs in hover handling on Mac OS X
+
+
+Optimizations
+-------------
+
+- Graphics View Framework has been optimized in several areas
+ * Improved the performance of QGraphicsItem::clipPath().
+ * Improved the performance of QGraphicsItem::setPos().
+ * Improved the performance of QGraphicsItem::effectiveOpacity().
+ * Improved the performance of QGrahicsScene::items(*).
+ * Improved handling of updates.
+ * Reduced the number of floating point operations.
+ * Reduced QVariant overhead.
Third party components
----------------------
@@ -33,13 +54,240 @@ Third party components
* Library *
****************************************************************************
+- QAbstractItemModel
+ * Clarified some warning messages printed if the model is invalid.
+
+- QAbstractEventDispatcher
+ * [248805] Duplicate timerids could occur if a timer is running while the
+ QObject is moved to another thread, stopping timers from working.
+
+- QAbstractSocket
+ * [192037] Emit the disconnected signal only if we were connected before.
+
+- QAccessible
+ * [221731] Fixed a bug where the accessibility plugin could crash if
+ there was an "&" at the end or spin forever if a label had a sequence of
+ "&&".
+ * [241161] Fixed a bug in browsing menus with the keyboard.
+
+- QAtomicInt
+ * [216492] Fixed compilation on 64-bit PowerPC machines with gcc 4.3.
+
+- QAuthenticator
+ * [237979] Fixed implementation of md5-sess.
+
+- QByteArray
+ * [246233] QByteArray::fromHex() fails with input of size 1.
+
+- QColorDialog
+ * [247349] Fixed a bug causing the wrong alpha value to be returned.
+
+- QCombobox
+ * [248094] Fixed scrollbar from appearing when not required.
+
+- QCompleter
+ * [246056] Fixed an assertion failure in setCompletionPrefix().
+ * [250064] Fixed a regression in focus policy propagation.
+
+- QtConcurrent
+ * [244718] Reduced the number of calls to QThread::idealThreadCount().
+
+- QDirIterator
+ * [247645] Fixed a bug that may loose all cached data inside QFileInfo.
+
+- QFile
+ * [244485] Renaming a file does not change QFile::fileName().
+ * [244500] QFile::rename() does not always return false when the method
+ fails
+
+- QFileInfo
+ * [205244] Return valid file info also for relative UNC paths.
+
+- QFileDialog
+ * [221323] Fixed a bug in QFileDialog's programmatical file selection.
+ * [248332] QFileDialog is slow after visiting a large directory.
+ * [250194] Fixed an issue with QFileDialog and QSortFilterProxyModel
+ index mapping.
+
+- QGLFramebufferObject
+ * Framebuffer object extension resolution now works with OpenGL/ES 2.0.
+
+- QGraphicsItem
+ * Fixed a slow down regression in QGraphicsItem::ItemCoordinateCache.
+ * [247890] Cached QGraphicsItems are not updated if update() is called
+ when they are hidden.
+ * [250272] Fixed a crash that could occur when an item is deleted but
+ it does not get removed from the sceneeventfilters.
+
+- QGraphicsGridLayout
+ * [242472] Fixed a bug where the calculation of the maximum width of a
+ column was incorrect.
+
+- QGraphicsScene
+ * [243707] Fixed a crash when adding a child before a parent to the
+ scene.
+
+- QGraphicsView
+ * [245766] Rubber Band drag mode does not update correctly when
+ scrolling.
+
+- QGraphicsWidget
+ * [246215] Fixed a regression where we could cache the wrong size hint
+ because we called the virtual sizeHint() from the constructor.
+
+- QHttp
+ * Compile fixes for QT_BEGIN_NAMESPACE being in the wrong place in some
+ private headers.
+ * [208445] Cancel request upon receiving unknown authentication method.
+
+- QHostAddress
+ * [247330] Fixed compilation on MinGW by adding a missing QPair include.
+
+- QLocalSocket
+ * Fixed a bug that would cause QLocalSocket to disconnect 30 seconds
+ after a succesful delayed connection on UNIX.
+
+- QMacStyle
+ * Adjusted the opacity value for popups.
+ * [248769] Fixed a regression where QMacStyle would only draw tabs when
+ passed a QStyleOptionTabV3.
+
+- QMainWindow
+ * [248048] Fixed a regression that would cause tooltips to disappear when
+ using the unified toolbar.
+
+- QMetaType
+ * [248890] The detailed description of QMetaType no longer contradicts
+ the documentation of QMetaType::type()
+
+- QMutex
+ * Fixed a performance regression for contended mutexes as reported on the
+ qt4-preview-feedback list.
+
+- QPainter
+ * Compile fixes for OpenGL paint engine on OpenGL/ES 1.1 CommonLite and
+ OpenGL/ES 1.0.
+ * [246573] Fixed a very slow stroking of paths in the X11 paint engine.
+ * [247083] Fixed the scale applied to antialiased cosmetic pens in X11
+ paint engine.
+ * [247492] Fixed a rendering bug in the raster paint engine causing
+ * [247505] Fixed missing fills of rectangles with negative width/height
+ in raster paint engine.
+ one-pixel offset when drawing premultiplied ARGB32 images on RGB16
+ images.
+ * [249490] Fixed one-pixel offset between stroke and fills of ellipses in
+ the X11 paint engine.
+ * [249628] Fixed a crash in OpenGL paint engine when filling using
+ Qt::NoBrush.
+
+
+- QPixmap
+ * [249175] Fixed QPixmap::fromImage() of monochrome images to result in
+ black/white pixels and not transparent/white pixels.
+
+- QProcess
+ * [247865] Fixed a crash when calling QProcess::start() and
+ startDetached() with an empty program string.
+
+- QScrollBar
+ * [247985] Stylesheet: added the feature to style scrollbar menus.
+
- QSharedPointer
- * [246843] Fixed a crash caused by using QSharedPointer in global statics
+ * [246843] Fixed a crash caused by using QSharedPointer in global statics.
+
+- QSortFilterProxyModel
+ * [247867] Properly sort when calling appendRows().
+ * [248868] Re-sort when the model is reset if dynamicSort is enabled.
+ * [248868] Fixed QSortFilterProxyModel::sort() if dynamicSort was disabled.
+
+- QSSlSocket
+ * [245668] Set also protocol, verifyMode and verifyDepth in
+ setSslConfiguration().
+
+- QString
+ * [249517] Fixed a regression in replace(int, int, QChar) when the string
+ is empty.
+
+- QStyleSheetStyle
+ * Improved support for setting background and foreground roles in styles
+ such as the text color in a combo box popup on Mac and Cleanlooks, or
+ the background of QScrollBar.
+ * Fixed a crash that occured while styling the title bar of a QMdiArea.
+ * [188195] Fixed the background of QAbstractScrollArea losing its color
+ if styled with pseudo-class.
+ * [246542] Fixed a bug in QToolButton::hover{ color:.... }.
+
+- QThread
+ * [249997] Added documentation indicating that the priority set by the
+ programmer may be ignored, for example on Linux.
+
+- QTreeView
+ * Fixed a crash that may occur when events are processed immediately
+ after a QSortFilterProxyModel is invalidated.
+ * [246025] Fixed auto-expand that occured when quickly collapsing an item
+ after clicking on a child.
+ * [248163] Fixed a possible crash in the paintEvent() when spans are used.
+ * [248805] Calling QTreeView::sortByColumn() programmatically was not
+ working if manual sorting was disabled.
+
+- QWidget
+ * [250388] Fixed a potential crash in QWidget::scroll() when using the
+ raster graphics system.
+
+- QWidget
+ * [246852] Improved handling of WindowMaximizeButtonHint for widgets with
+ layouts.
+
+-QLocale
+ * String-to-number conversion functions will now ignore trailing and
+ leading whitespaces in all locales as documented.
+
+- QWizard
+ * [248107] Fixed a bug on Windows Vista causing the Back button to
+ connect to the back() signal twice.
+
+- Q3ListView
+ * [248689] Fixed a bug in Q3ListView that would not update under certain
+ conditions.
+
+- QtWebKit
+ * Fixed a bug in cookie handling (WebKit Bugzilla 24062, Benjamin Meyer).
+ * Fixed a bug in calling from JavaScript into NPAPI plugins on Windows.
+ * Fixed the updating state of WebActions (Erik Bunce)
+ * Fixed a bug in HTML 5 Canvas clearRect() (Dirk Schulze)
+ * Fixed the theming of text fields with KDE 4 Oxygen style (Zack Rusin)
+ * Fixed path fill styles (Zack Rusin)
+ * Fixed pre-edit text handling with input methods.
+ * [248643] Fixed compiling with the "-pedantic" compile option.
+
+- QSqlTableModel
+ * Made setTable() try and use the database's letter case (uppercase/
+ lowercase) of the given tablename.
+ * [189093] QSqlTableModel did not handle updates when one of the fields
+ had a NULL value.
****************************************************************************
* Database Drivers *
****************************************************************************
+ * Fixed the DB2 driver returning a double field as empty.
+ * Fixed a memory leak in the DB2 driver.
+ * Fixed the DB2 driver not quoting table/field names properly.
+ * Fixed an issue with ODBC & FreeTDS not accepting quotes in statements.
+ * Fixed a bug in the sqlite2 driver not returning false on failing to
+ execute a statement.
+ * PrecisionPolicy now works in the oracle driver.
+ * Fixed a bug in the ODBC driver returning a list of tables when
+ requested.
+ * Fixed Interbase retrieving scale/precision information on numeric/
+ decimal fields.
+ * Stopped drivers from quoting again when escapeIdentifier is called
+ twice.
+ * Fixed a bug in the sqlite2 driver not quoting fields correctly.
+ * [232769] Fixed a memory overflow issue on bound out strings in ODBC
+ Driver
+ * [249059] Fixed a bug that handled QPSQL datetime/time fields with
+ negative timezone offsets incorrectly.
****************************************************************************
* Platform Specific Changes *
@@ -48,22 +296,191 @@ Third party components
Qt for Linux/X11
----------------
+ * Ensured proper resetting for input contexts when switching between
+ multiple input context plugins.
+ * Input methods preedit strings are now reset properly when user switches
+ focus without commiting a string.
+ * Unicode conversion functions will handle Latin-1 character set only if
+ they are used before a QCoreApplication/QApplication is constructed.
+ * Improved handling of failed unicode conversion.
+ * Fixed clipboard handling when the user manually creates an instance of
+ the QDesktopWidget.
+ * [226048] Ensured that the QDesktopWidget::resized() signal is emitted
+ properly when a new screen appears or the screen geometry is changed
+ without affecting the whole desktop's geometry.
+ * [232632] Fixed a bug in reparenting widgets to a difference X11 screen.
+ * [241888] The background of the drag-n-drop cursor is now respected,
+ according to the stylesheet.
+ * [244337] Improved input method handling when a widget's native window
+ id is recreated.
+ * [244607] Current focus widget is properly set and input method is
+ properly initialized when showing a toplevel widget that accepts
+ keyboard input.
+
+- Phonon/GStreamer
+ * [233188] Fixed a problem where the seek slider reset to 0 while being
+ dragged.
+ * [244259] Fixed a problem where the backend failed to indicate an error
+ when the streaming failed.
+ * [246097] Added support for the MediaController interface to allow audio
+ CD playback.
+ * [246189] Fixed a problem where the backend failed to correctly escape
+ certain file names casuing playback to not start.
+
+
+- QGtkStyle
+ * The system palette is no longer strictly forced. Also improved behavior
+ related to system theme changes.
+ * Fixed palette and styling issues with the background color of combo box
+ popups.
+ * [238196] Allowed middle click to set scrollbar position, following GTK+
+ behavior.
+ * [239829] Disabled alt-key navigation for QGtkStyle following GTK+
+ behavior.
+ * [247653] Fixed a compilation issue on Solaris.
+ * [249363] QFrame is now styled as a GtkScrolledWindow.
+
+- Font rendering
+ * Improved performance of subpixel antialiased text rendering by using a
+ mask in the calls to XRender's text compositing function.
+ * [248387] Properly respect the font config LCD filter settings for
+ subpixel antialiased text rendering when Freetype's native subpixel
+ rendering is disabled.
+ * [248498] Fix garbled rendering of subpixel antialiased text when using
+ Freetype's native subpixel rendering for vertical subpixel layouts.
+ * [248644] Fall back to Qt's subpixel rendering if Freetype's subpixel
+ rendering was available at compile-time but not at run-time.
+
+- QEventDispatcherGlib
+ * Event posted to a thread before it is started are not processed until
+ others events are posted.
+
+- QWidget
+ * [213512] Fixed a bug that caused wrong clipping when using the
+ Qt::WA_PaintOutsidePaintEvent attribute.
+
Qt for Windows
--------------
+ * [240891] Corrected the focus behavior of native file dialogs, when an
+ application has multiple toplevel widgets.
+ * [243583] Improved drag-and-drop handling when switching mouse buttons
+ quickly.
+ * [244875] The system menu will now be shown for a fullscreen window.
+ * [245330] Fixed a bug that caused mouse inputs to be ignored on modal
+ dialogs, when shown from an ActiveQt control.
+ * [249576] Fixed a crash when using a combobox with Qt::NoFocus.
+
+
+- QCoreApplication
+ * [247401] Fixed a bug that caused a restarted timer to fire too early,
+ resulting in QtWebKit's Javascript consuming 100% CPU on Windows.
+- QWindowsXPStyle
+ * [248036] Fixed an issue where tool buttons were hovering incorrectly
+ when disabled.
+
+- QWidget
+ * [248391] Fixed a bug that made it impossible to dynamically switch from
+ QPainter-based graphics to native graphics API and back.
+
Qt for Mac OS X
---------------
+ * Fixed a crash when showing a widget that is a modal window but has no
+ parent.
+ * Added QSysInfo::MV_10_6 as an enum to test against.
+ * Various compile fixes for the preliminary supported Snow Leopard.
+ * The uninstall-qt.py script included in the binary package no longer
+ complains about removing itself multiple times.
+- * Improved the documentation for how qt_mac_set_dock_menu() works.
+ * Fixed an issue with the focus frame's transparency as it was difficult
+ to use the QWidget with stylesheets.
+ * [223525] Fixed a crash in the MacMainWindow Demo.
+ * [248803] Ensured that two dialogs shown at the same time will both not
+ have visible default buttons.
+
+- QDesktopWidget
+ * [244004] Properly support multiple screens with different sizes.
+
+- QDialog
+ * [195904] Parent dialog is displayed on top of its modal child.
+ * [218980] Modeless dialogs should be stacked above normal windows.
+ * [239155] QDialog(foo, Qt::Sheet) with QComboBox has non-native
+ behavior.
+
+- QFileDialog
+ * [219844] Fixed a crash caused by QFileDialog::getOpenFileName()'s
+ search buttons (native version).
+ * [225705] QFileDialog::getSaveFileName()'s filter does not display
+ correctly.
+
+- QMenu
+ * [228017] Ensured that QMenu closes when expanding a system menu.
+
+- QTestLib
+ * Activate the test application when launched from the command line.
+
+- Event system
+ * [210912] Fixed a bug where ShowEvent not sent when reshowing a window
+ after it was minimized.
+
+- macdeployqt
+ * The binary packages now include this tool.
+ * macdeployqt now runs 'strip' on the deployed binaries.
+ * Fixed an issue that prevented the QtSvg module from being deployed.
+
+- configure script
+ * Now supports "-arch i386" as an alias for "-arch x86".
+ * Detects invalid arch arguemnts and exits.
+
+- Cocoa port
+ * Fixed a bug where actions in the native menubar were not disabled
+ properly.
+ * Made shortcuts work properly when using the Dvorak-QWERTY+CMD keyboard
+ layout.
+ * Fixed a bug where dialogs were positioned in the wrong place on the
+ screen.
+ * The build-key for Cocoa was changed in the unlikely case that a plugin
+ may make assumptions on how Qt was built. All Cocoa plugins built
+ against Qt 4.5.0 will NOT work with Qt 4.5.1; we do not foresee
+ changing this again.
+ * Fixed a bug where some windows did not get activation when they
+ normally should.
+ * Fixed a bug where key events sent to popups were not propagated
+ onwards.
+ * QFileOpenEvents will no longer be sent for items passed via command
+ line.
+ * Various fixes for determining the metrics of text and the ability to
+ disable kerning.
+ * Modified the Colliding Mice Example to work better with coalesced
+ updates.
+ * Fixed a bug where the drag cursor was not updated when modifier keys
+ were used.
+ * [239043] Fixed a bug that caused QGraphicsProxyWidget to shrink when
+ moved.
+ * [244369] Window flags on Cocoa windows should look similar to the
+ Carbon ones.
+ * [247947] Fixed a crash in drag and drop.
+ * [248918] Fixed color matching for themed text items.
+ * The command + h shortcut is now enabled. (Hides the current window.)
+ * [249296] Fixed a bug where line edits on a second page of a stack
+ widget were not getting key events.
Qt for Embedded Linux
---------------------
+- * Various improvements to the Qt DirectFB plugin.
+ * Fixed recreation of temporary EGL surfaces in the PowerVR QScreen
+ driver.
+- * Document some necessary #define's for building the PowerVR QScreen
+ driver.
Qt for Windows CE
-----------------
+ * [246619] Fixed a tap and hold bug for QCheckbox.
****************************************************************************
* Compiler Specific Changes *
@@ -80,41 +497,62 @@ Qt for Windows CE
- Designer
- * [249097] Fixed a crash related to undoing a QGridLayout re-layouting
- operation.
- * [247995] Fixed a crash occurring after layout operations that cause
- an instance of QGridLayout or QFormLayout to shrink.
- * [248000] Fixed a crash ocurring when re-layouting empty grid layouts.
- * [245961] Restricted objectname-validation to known object name
- properties only.
- * [245503] Fixed redundant backslashes in string property in property browser.
+ * [245503] Fixed redundant backslashes in string property in the property
+ browser.
+ * [245961] Restricted objectname-validation to known object name
+ properties only.
+ * [247995] Fixed a crash occurring after layout operations that caused
+ an instance of QGridLayout or QFormLayout to shrink.
+ * [248000] Fixed a crash ocurring when re-layouting empty grid layouts.
+ * [249097] Fixed a crash related to undoing a QGridLayout re-layout
+ operation.
- Linguist
+
- Linguist GUI
- - lupdate
+ * [248076] Fixed a crash caused by opening files for which we have no
+ plural rules.
+ * [249519] Fixed a crash upon dropping text into a non-focused line
+ edit.
- - lrelease
+ - Entire Linguist toolchain
+ * [244035] Fixed an infinite loop in PO writer.
+ * [247738] Improved handling of duplicated messages.
+ * [248849] Fixed the encoding in XLIFF writer.
+ * [249022] Fixed TS' and QM's handling of messages which appear in
+ multiple encodings.
+
+ - lupdate
+
+ * [248724] Fixed the encoding of messages from .ui files if CODECFORTR
+ is not utf8.
+ * [249633] Fixed the processing of C++ backslash line continuations.
- rcc
- moc
-
+ * [240368] moc parsing issue with "unsigned" subphrase
- uic
- * [244998] Fixed include file generation for phonon widgets.
- * [248070] Fixed code generation for QStringList-type properties to use
- encoding properly.
- * [242447] Made uic generate class-specific code correctly in the case
- of multiple levels of inheritance.
+ * [244998] Fixed include file generation for phonon widgets.
+ * [248070] Fixed code generation for QStringList-type properties to use
+ encoding properly.
+ * [242447] Made uic generate class-specific code correctly in the case of
+ multiple levels of inheritance.
- uic3
- qmake
-
+ * On Mac OS, properly escape file names in QMAKE_BUNDLE_DATA.
+ * Fixed moc and uic features to make shadow builds work even if a
+ non-shadow build is present
+ * [201495] Comment processing in qmake prevented file from being moc'ed
+ * [248806] Ensured that the Xcode generator includes the right path to
+ frameworks.
- configure
diff --git a/dist/changes-4.5.2 b/dist/changes-4.5.2
new file mode 100644
index 0000000..a772bf7
--- /dev/null
+++ b/dist/changes-4.5.2
@@ -0,0 +1,123 @@
+Qt 4.5.2 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 4.5.0. For more details,
+refer to the online documentation included in this distribution. The
+documentation is also available online:
+
+ http://doc.trolltech.com/4.5
+
+The Qt version 4.5 series is binary compatible with the 4.4.x series.
+Applications compiled for 4.4 will continue to run with 4.5.
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Task Tracker:
+
+ http://www.qtsoftware.com/developer/task-tracker
+
+Each of these identifiers can be entered in the task tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* General *
+****************************************************************************
+
+General Improvements
+--------------------
+
+- Documentation and Examples
+
+Third party components
+----------------------
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+
+****************************************************************************
+* Database Drivers *
+****************************************************************************
+
+
+****************************************************************************
+* Platform Specific Changes *
+****************************************************************************
+
+Qt for Linux/X11
+----------------
+
+
+Qt for Windows
+--------------
+
+
+Qt for Mac OS X
+---------------
+
+
+Qt for Embedded Linux
+---------------------
+
+
+Qt for Windows CE
+-----------------
+
+
+****************************************************************************
+* Compiler Specific Changes *
+****************************************************************************
+
+
+****************************************************************************
+* Tools *
+****************************************************************************
+
+- Build System
+
+- Assistant
+
+
+- Designer
+
+
+- Linguist
+ - Linguist GUI
+
+ - lupdate
+
+ - lrelease
+
+
+- rcc
+
+
+- moc
+
+
+- uic
+
+
+- uic3
+
+
+- qmake
+
+
+- configure
+
+
+- qtconfig
+
+
+- qt3to4
+
+
+****************************************************************************
+* Plugins *
+****************************************************************************
+
+
+****************************************************************************
+* Important Behavior Changes *
+****************************************************************************
+
diff --git a/dist/changes-4.6.0 b/dist/changes-4.6.0
new file mode 100644
index 0000000..db4ab5f
--- /dev/null
+++ b/dist/changes-4.6.0
@@ -0,0 +1,41 @@
+Qt 4.6 introduces many new features and improvements as well as bugfixes
+over the 4.5.x series. For more details, refer to the online documentation
+included in this distribution. The documentation is also available online:
+
+ http://doc.trolltech.com/4.6
+
+The Qt version 4.6 series is binary compatible with the 4.5.x series.
+Applications compiled for 4.5 will continue to run with 4.6.
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Task Tracker:
+
+ http://www.qtsoftware.com/developer/task-tracker
+
+Each of these identifiers can be entered in the task tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* General *
+****************************************************************************
+
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+
+****************************************************************************
+* Platform Specific Changes *
+****************************************************************************
+
+
+
+****************************************************************************
+* Important Behavior Changes *
+****************************************************************************
+
+ - The experimental Direct3D paint engine has been removed. The
+ reasons for this is that Qt Software focuses on OpenGL for desktop
+ hardware accelerated rendering. \ No newline at end of file
diff --git a/doc/doc.pri b/doc/doc.pri
index 6b77f88..a4c77fe 100644
--- a/doc/doc.pri
+++ b/doc/doc.pri
@@ -4,7 +4,7 @@
win32 {
QT_WINCONFIG = release/
- CONFIG(debug, debug|release) {
+ !CONFIG(release, debug|release) {
QT_WINCONFIG = debug/
}
}
@@ -24,7 +24,7 @@ $$unixstyle {
QDOC = cd $$QT_SOURCE_TREE/tools/qdoc3/test && QT_BUILD_TREE=$$QT_BUILD_TREE QT_SOURCE_TREE=$$QT_SOURCE_TREE $$QT_BUILD_TREE/tools/qdoc3/$${QT_WINCONFIG}qdoc3 $$DOCS_GENERATION_DEFINES
} else {
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/tools/qdoc3/$${QT_WINCONFIG}qdoc3.exe $$DOCS_GENERATION_DEFINES
- QDOC = $$replace(QDOC, "/", "\\\\")
+ QDOC = $$replace(QDOC, "/", "\\")
}
macx {
ADP_DOCS_QDOCCONF_FILE = qt-build-docs-with-xcode.qdocconf
diff --git a/doc/src/activeqt.qdoc b/doc/src/activeqt.qdoc
index ea13e59..473f815 100644
--- a/doc/src/activeqt.qdoc
+++ b/doc/src/activeqt.qdoc
@@ -73,7 +73,7 @@
To build the static libraries, change into the \c activeqt directory
(usually \c QTDIR/src/activeqt), and run \c qmake and your make
tool in both the \c container and the \c control subdirectory.
- The libraries \c qaxcontainer.lib and \c qaxserver.lib will be linked
+ The libraries \c qaxcontainer.lib and \c qaxserver.lib will be linked
into \c QTDIR/lib.
If you are using a shared configuration of Qt enter the \c plugin
@@ -81,8 +81,8 @@
plugin that integrates the QAxContainer module into \l{Qt
Designer}.
- The ActiveQt modules are part of the \l{Qt Full Framework Edition}. They
- are \e not part of the \l{Open Source Versions of Qt}.
+ The ActiveQt modules are part of the \l{Qt Full Framework Edition} and
+ the \l{Open Source Versions of Qt}.
\sa {QAxContainer Module}, {QAxServer Module}
*/
diff --git a/doc/src/deployment.qdoc b/doc/src/deployment.qdoc
index d9f7c1a..bcfa93d 100644
--- a/doc/src/deployment.qdoc
+++ b/doc/src/deployment.qdoc
@@ -911,7 +911,7 @@
Then qApp->libraryPaths() would return something like this:
"C:/customPath/plugins "
- "C:/Qt/4.5.0/plugins"
+ "C:/Qt/%VERSION%/plugins"
"E:/myApplication/directory/"
The executable will look for the plugins in these directories and
diff --git a/doc/src/designer-manual.qdoc b/doc/src/designer-manual.qdoc
index 97713b1..2706182 100644
--- a/doc/src/designer-manual.qdoc
+++ b/doc/src/designer-manual.qdoc
@@ -344,10 +344,14 @@
of a QLineEdit or the width and height of item view widgets. This is where
the widget size constraints -- \l{QWidget::minimumSize()}{minimumSize} and
\l{QWidget::maximumSize()}{maximumSize} constraints come into play. These
- are properties you can set in the property editor. Alternatively, to use
- the current size as a size constraint value, choose one of the
- \gui{Size Constraint} options from the widget's context menu. The layout
- will then ensure that those constraints are met.
+ are properties you can set in the property editor. For example, to override
+ the default \l{QWidget::}{sizeHint()}, simply set
+ \l{QWidget::minimumSize()}{minimumSize} and \l{QWidget::maximumSize()}
+ {maximumSize} to the same value. Alternatively, to use the current size as
+ a size constraint value, choose one of the \gui{Size Constraint} options
+ from the widget's context menu. The layout will then ensure that those
+ constraints are met. To control the size of your widgets via code, you can
+ reimplement \l{QWidget::}{sizeHint()} in your code.
The screenshot below shows the breakdown of a basic user interface designed
using a grid. The coordinates on the screenshot show the position of each
diff --git a/doc/src/examples.qdoc b/doc/src/examples.qdoc
index e3c2291..29c6c0b 100644
--- a/doc/src/examples.qdoc
+++ b/doc/src/examples.qdoc
@@ -209,6 +209,7 @@
\o \l{network/loopback}{Loopback}
\o \l{network/threadedfortuneserver}{Threaded Fortune Server}\raisedaster
\o \l{network/torrent}{Torrent}
+ \o \l{network/googlesuggest}{Google Suggest}
\endlist
\section1 OpenGL
@@ -348,6 +349,8 @@
\list
\o \l{webkit/previewer}{Previewer}\raisedaster
\o \l{webkit/formextractor}{Form Extractor}
+ \o \l{webkit/googlechat}{Google Chat}
+ \o \l{webkit/fancybrowser}{Fancy Browser}
\endlist
\section1 Widgets
diff --git a/doc/src/examples/fancybrowser.qdoc b/doc/src/examples/fancybrowser.qdoc
new file mode 100644
index 0000000..9001c20
--- /dev/null
+++ b/doc/src/examples/fancybrowser.qdoc
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example webkit/fancybrowser
+ \title Fancy Browser Example
+
+ The Fancy Browser example shows how to use jQuery with QtWebKit to
+ make a web browser with some special effects and content manipulation.
+
+ \image fancybrowser-example.png
+
+*/
diff --git a/doc/src/examples/flowlayout.qdoc b/doc/src/examples/flowlayout.qdoc
index 557ba39..3e7ec22 100644
--- a/doc/src/examples/flowlayout.qdoc
+++ b/doc/src/examples/flowlayout.qdoc
@@ -43,8 +43,117 @@
\example layouts/flowlayout
\title Flow Layout Example
- The Flow Layout example demonstrates a custom layout that arranges child widgets from
- left to right and top to bottom in a top-level widget.
+ The Flow Layout example demonstrates a custom layout that arranges child
+ widgets from left to right and top to bottom in a top-level widget.
+
+ \image flowlayout-example.png Screenshot of the Flow Layout example
+
+ The items are first laid out horizontally and then vertically when each line
+ in the layout runs out of space.
+
+ The Flowlayout class mainly uses QLayout and QWidgetItem, while the
+ Window uses QWidget and QLabel. We will only document the definition
+ and implementation of \c FlowLayout below.
+
+ \section1 FlowLayout Class Definition
+
+ The \c FlowLayout class inherits QLayout. It is a custom layout class
+ that arranges its child widgets horizontally and vertically.
+
+ \snippet examples/layouts/flowlayout/flowlayout.h 0
+
+ We reimplement functions inherited from QLayout. These functions add items to
+ the layout and handle their orientation and geometry.
+
+ We also declare two private methods, \c doLayout() and \c smartSpacing().
+ \c doLayout() lays out the layout items, while the \c
+ smartSpacing() function calculates the spacing between them.
+
+ \section1 FlowLayout Class Implementation
+
+ We start off by looking at the constructor:
+
+ \snippet examples/layouts/flowlayout/flowlayout.cpp 1
+
+ In the constructor we call \c setContentsMargins() to set the left, top,
+ right and bottom margin. By default, QLayout uses values provided by
+ the current style (see QStyle::PixelMetric).
+
+ \snippet examples/layouts/flowlayout/flowlayout.cpp 2
+
+ In this example we reimplement \c addItem(), which is a pure virtual
+ function. When using \c addItem() the ownership of the layout items is
+ transferred to the layout, and it is therefore the layout's
+ responsibility to delete them.
+
+ \snippet examples/layouts/flowlayout/flowlayout.cpp 3
+
+ \c addItem() is implemented to add items to the layout.
+
+ \snippet examples/layouts/flowlayout/flowlayout.cpp 4
+
+ We implement \c horizontalSpacing() and \c verticalSpacing() to get
+ hold of the spacing between the widgets inside the layout. If the value
+ is less than or equal to 0, this value will be used. If not,
+ \c smartSpacing() will be called to calculate the spacing.
+
+ \snippet examples/layouts/flowlayout/flowlayout.cpp 5
+
+ We then implement \c count() to return the number of items in the
+ layout. To navigate the list of items we use \c itemAt() and
+ takeAt() to remove and return items from the list. If an item is
+ removed, the remaining items will be renumbered. All three
+ functions are pure virtual functions from QLayout.
+
+ \snippet examples/layouts/flowlayout/flowlayout.cpp 6
+
+ \c expandingDirections() returns the \l{Qt::Orientation}s in which the
+ layout can make use of more space than its \c sizeHint().
+
+ \snippet examples/layouts/flowlayout/flowlayout.cpp 7
+
+ To adjust to widgets of which height is dependent on width, we implement \c
+ heightForWidth(). The function \c hasHeightForWidth() is used to test for this
+ dependency, and \c heightForWidth() passes the width on to \c doLayout() which
+ in turn uses the width as an argument for the layout rect, i.e., the bounds in
+ which the items are laid out. This rect does not include the layout margin().
+
+ \snippet examples/layouts/flowlayout/flowlayout.cpp 8
+
+ \c setGeometry() is normally used to do the actual layout, i.e., calculate
+ the geometry of the layout's items. In this example, it calls \c doLayout()
+ and passes the layout rect.
+
+ \c sizeHint() returns the preferred size of the layout and \c minimumSize()
+ returns the minimum size of the layout.
+
+ \snippet examples/layouts/flowlayout/flowlayout.cpp 9
+
+ \c doLayout() handles the layout if \c horizontalSpacing() or \c
+ verticalSpacing() don't return the default value. It uses
+ \c getContentsMargins() to calculate the area available to the
+ layout items.
+
+ \snippet examples/layouts/flowlayout/flowlayout.cpp 10
+
+ It then sets the proper amount of spacing for each widget in the
+ layout, based on the current style.
+
+ \snippet examples/layouts/flowlayout/flowlayout.cpp 11
+
+ The position of each item in the layout is then calculated by
+ adding the items width and the line height to the initial x and y
+ coordinates. This in turn lets us find out whether the next item
+ will fit on the current line or if it must be moved down to the next.
+ We also find the height of the current line based on the widgets height.
+
+ \snippet examples/layouts/flowlayout/flowlayout.cpp 12
+
+ \c smartSpacing() is designed to get the default spacing for either
+ the top-level layouts or the sublayouts. The default spacing for
+ top-level layouts, when the parent is a QWidget, will be determined
+ by querying the style. The default spacing for sublayouts, when
+ the parent is a QLayout, will be determined by querying the spacing
+ of the parent layout.
- \image flowlayout-example.png
*/
diff --git a/tests/auto/math3d/shared/math3dincludes.cpp b/doc/src/examples/googlechat.qdoc
index 725079d..f2d61cf 100644
--- a/tests/auto/math3d/shared/math3dincludes.cpp
+++ b/doc/src/examples/googlechat.qdoc
@@ -3,7 +3,7 @@
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
**
-** This file is part of the $MODULE$ of the Qt Toolkit.
+** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
@@ -39,16 +39,13 @@
**
****************************************************************************/
-#include "math3dincludes.h"
+/*!
+ \example webkit/googlechat
+ \title Google Chat Example
-#if defined(FIXED_POINT_TESTS)
+ The Google Chat example shows how to use implement a simple Google Chat
+ client with QtWebKit.
-#include "qmatrix4x4.cpp"
-#include "qgenericmatrix.cpp"
-#include "qvector2d.cpp"
-#include "qvector3d.cpp"
-#include "qvector4d.cpp"
-#include "qquaternion.cpp"
-#include "qmath3dutil.cpp"
+ \image googlechat-example.png
-#endif
+*/
diff --git a/doc/src/examples/googlesuggest.qdoc b/doc/src/examples/googlesuggest.qdoc
new file mode 100644
index 0000000..a9b09f9
--- /dev/null
+++ b/doc/src/examples/googlesuggest.qdoc
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example network/googlesuggest
+ \title Google Suggest Example
+
+ The Google Suggest example shows how to use the network access manager
+ to get the list of suggested search terms from Google.
+
+ \image googlesuggest-example.png
+
+*/
diff --git a/doc/src/examples/qxmlstreambookmarks.qdoc b/doc/src/examples/qxmlstreambookmarks.qdoc
index 7059043..fb3a1c1 100644
--- a/doc/src/examples/qxmlstreambookmarks.qdoc
+++ b/doc/src/examples/qxmlstreambookmarks.qdoc
@@ -103,8 +103,9 @@
The \c read() function accepts a QIODevice and sets it using
\l{QXmlStreamReader::setDevice()}{setDevice()}. The actual process
- of reading only takes place in event the file is a valid XBEL 1.0
- file. Otherwise, the \l{QXmlStreamReader::raiseError()}
+ of reading only takes place if the file is a valid XBEL 1.0 file.
+ Note that the XML input needs to be well-formed to be accepted by
+ QXmlStreamReader. Otherwise, the \l{QXmlStreamReader::raiseError()}
{raiseError()} function is used to display an error message.
\snippet examples/xml/streambookmarks/xbelreader.cpp 1
diff --git a/doc/src/exportedfunctions.qdoc b/doc/src/exportedfunctions.qdoc
index f67950c..f051ddc 100644
--- a/doc/src/exportedfunctions.qdoc
+++ b/doc/src/exportedfunctions.qdoc
@@ -129,6 +129,9 @@
on Mac OS X or be part of the main window. This feature is on by
default.
+ In Qt 4.6, this is equivalent to
+ \c { QApplication::instance()->setAttribute(Qt::AA_DontUseNativeMenuBar); }.
+
\section1 void qt_mac_set_press_and_hold_context(bool \e{enable})
Turns emulation of the right mouse button by clicking and holding
diff --git a/doc/src/images/fancybrowser-example.png b/doc/src/images/fancybrowser-example.png
new file mode 100644
index 0000000..717ac9d
--- /dev/null
+++ b/doc/src/images/fancybrowser-example.png
Binary files differ
diff --git a/doc/src/images/flowlayout-example.png b/doc/src/images/flowlayout-example.png
index 27660d6..61abe1f 100644
--- a/doc/src/images/flowlayout-example.png
+++ b/doc/src/images/flowlayout-example.png
Binary files differ
diff --git a/doc/src/images/googlechat-example.png b/doc/src/images/googlechat-example.png
new file mode 100644
index 0000000..0338445
--- /dev/null
+++ b/doc/src/images/googlechat-example.png
Binary files differ
diff --git a/doc/src/images/googlesuggest-example.png b/doc/src/images/googlesuggest-example.png
new file mode 100644
index 0000000..4ef072a
--- /dev/null
+++ b/doc/src/images/googlesuggest-example.png
Binary files differ
diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc
index 49dfafd..4ead9e4 100644
--- a/doc/src/index.qdoc
+++ b/doc/src/index.qdoc
@@ -85,12 +85,6 @@
\endif
\endif
- \if defined(opensourceedition)
- \bold{Note:} This edition is for the development of \l{Qt
- Open Source Edition}{Free and Open Source} software only; see
- \l{Qt Commercial Editions}.
- \endif
-
\raw HTML
<table cellpadding="2" cellspacing="1" border="0" width="100%" bgcolor="#e5e5e5">
<tr>
diff --git a/doc/src/known-issues.qdoc b/doc/src/known-issues.qdoc
index 60fd63d..91e122f 100644
--- a/doc/src/known-issues.qdoc
+++ b/doc/src/known-issues.qdoc
@@ -60,11 +60,10 @@
\section2 Intel Compiler Support
- Although it is possible to build applications against Qt 4.5.0 using Intel
- CC 10, these applications will crash when run. A fix for this issue is
- scheduled for Qt 4.5.1. We recommend that developers who rely on this
- compiler wait until the fix is applied before upgrading to the Qt 4.5.x
- series of releases.
+ Although it is possible to build applications against Qt 4.5.x using Intel
+ CC 10, these applications will crash when run. We recommend that developers
+ who rely on this compiler wait until a fix is available before upgrading to
+ the Qt 4.5.x series of releases.
\section2 X11 Hardware Support
diff --git a/doc/src/layout.qdoc b/doc/src/layout.qdoc
index 38163c8..55dfd8b 100644
--- a/doc/src/layout.qdoc
+++ b/doc/src/layout.qdoc
@@ -371,7 +371,7 @@
should store the value in a local variable if you need it again
later within in the same function.
\o You should not call QLayoutItem::setGeometry() twice on the same
- item in the smae function. This call can be very expensive if the
+ item in the same function. This call can be very expensive if the
item has several child widgets, because the layout manager must do
a complete layout every time. Instead, calculate the geometry and
then set it. (This does not only apply to layouts, you should do
diff --git a/doc/src/licenses.qdoc b/doc/src/licenses.qdoc
index b42b882..1c3f6d2 100644
--- a/doc/src/licenses.qdoc
+++ b/doc/src/licenses.qdoc
@@ -239,6 +239,24 @@
\o Parts of the internal QImageSmoothScaler::scale() function use code
based on pnmscale.c by Jef Poskanzer.
\endlist
+
+ \hr
+
+ jQuery JavaScript Library v1.3.2
+ http://jquery.com/
+
+ Copyright (c) 2009 John Resig
+ Dual licensed under the MIT and GPL licenses.
+ http://docs.jquery.com/License
+
+ Sizzle CSS Selector Engine - v0.9.3
+ Copyright 2009, The Dojo Foundation
+ Released under the MIT, BSD, and GPL Licenses.
+ More information: http://sizzlejs.com/
+
+ \list
+ \o examples/webkit/fancybrowser/jquery.min.js
+ \endlist
*/
/*!
diff --git a/doc/src/phonon-api.qdoc b/doc/src/phonon-api.qdoc
index 3d04c68..501b5a5 100644
--- a/doc/src/phonon-api.qdoc
+++ b/doc/src/phonon-api.qdoc
@@ -4457,12 +4457,12 @@
*/
/*!
- \fn QList<int> Phonon::GlobalConfig::audioOutputDeviceListFor(Phonon::Category category, HideAdvancedDevicesOverride override = FromSettings) const
+ \fn QList<int> Phonon::GlobalConfig::audioOutputDeviceListFor(Phonon::Category category, int override = AdvancedDevicesFromSettings) const
\internal
*/
/*!
- \fn int Phonon::GlobalConfig::audioOutputDeviceFor(Phonon::Category category) const
+ \fn int Phonon::GlobalConfig::audioOutputDeviceFor(Phonon::Category category, int override = AdvancedDevicesFromSettings) const
\internal
*/
diff --git a/doc/src/platform-notes.qdoc b/doc/src/platform-notes.qdoc
index 6532d1e..c8046c4 100644
--- a/doc/src/platform-notes.qdoc
+++ b/doc/src/platform-notes.qdoc
@@ -232,9 +232,7 @@
\section1 Windows Vista
- Known issues for Qt on Vista will be listed here.
-
- As of Qt 4.2.0 no Vista-specific issues are known.
+ At the time Qt %VERSION% was released, there were no known Vista-specific issues.
\target Windows NT
\section1 Windows XP, Windows 2000 and Windows NT
diff --git a/doc/src/qnamespace.qdoc b/doc/src/qnamespace.qdoc
index e6a1a36..ad59b8d 100644
--- a/doc/src/qnamespace.qdoc
+++ b/doc/src/qnamespace.qdoc
@@ -129,20 +129,15 @@
Therefore, if it is important to minimize resource
consumption, do not set this attribute.
- \value AA_MSWindowsUseDirect3DByDefault Is a Windows specific
- attribute, that will make the Direct3D paint engine the
- default Qt widget paint engine. Note that you can toggle
- usage of the Direct3D engine on individual QWidgets by
- setting/clearing the \c WA_MSWindowsUseDirect3D attribute
- on a specific widget. \bold {This functionality is
- experimental}.
+ \value AA_MSWindowsUseDirect3DByDefault This value is obsolete and
+ has no effect.
\value AA_DontShowIconsInMenus Actions with the Icon property won't be
shown in any menus unless specifically set by the
QAction::iconVisibleInMenu property.
Menus that are currently open or menus already created in the native
- Mac OS X menubar MAY NOT pick up a change in this attribute. Changes
+ Mac OS X menubar \e{may not} pick up a change in this attribute. Changes
in the QAction::iconVisibleInMenu property will always be picked up.
\value AA_NativeWindows Ensures that widgets have native windows.
@@ -151,10 +146,16 @@
widgets stay non-native unless specifically set by the
Qt::WA_NativeWindow attribute.
- \value AA_MacPluginApplication Stops the a Qt mac application from doing
+ \value AA_MacPluginApplication Stops the Qt mac application from doing
specific initializations that do not necessarily make sense when using Qt
to author a plugin. This includes avoiding loading our nib for the main
- menu and not taking possession of the native menu bar.
+ menu and not taking possession of the native menu bar. When setting this
+ attribute to true will also set the AA_DontUseNativeMenuBar attribute
+ to true.
+
+ \value AA_DontUseNativeMenuBar All menubars created while this attribute is
+ set to true won't be used as a native menubar (e.g, the menubar at
+ the top of the main screen on Mac OS X or at the bottom in Windows CE).
\omitvalue AA_AttributeCount
*/
@@ -948,10 +949,8 @@
position. This is set/cleared by QWidget::move() and
by QWidget::setGeometry().
- \value WA_MSWindowsUseDirect3D Makes drawing to a widget
- with this attribute set use the Direct3D paint engine, if the
- Direct3D paint engine is available. \bold {This functionality
- is experimental.}
+ \value WA_MSWindowsUseDirect3D This value is obsolete and has no
+ effect.
\value WA_NoBackground This value is obsolete. Use
WA_OpaquePaintEvent instead.
@@ -2658,3 +2657,16 @@
\sa QGraphicsWidget::windowFrameSectionAt()
*/
+
+/*!
+ \enum Qt::TileRule
+ \since 4.6
+
+ This enum describes how to repeat or stretch the parts of an image when drawing.
+
+ \value Stretch Scale the image to fit to the available area.
+ \value Repeat Tile the image until there is no more space. May crop the last image.
+ \value Round Like Repeat, but scales the images down to ensure that the last image is not cropped.
+
+ \sa QPixmapBorders, qDrawBorderPixmap()
+*/
diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc
index cd66c10..5d83ef2 100644
--- a/doc/src/qt4-intro.qdoc
+++ b/doc/src/qt4-intro.qdoc
@@ -161,9 +161,9 @@
\o Support for OLE verbs and MIME data handling in \l{ActiveQt}.
\endlist
- For more information about improvements in the current release, see
- the \l{http://www.qtsoftware.com/developer/changes/changes-4.1.4/}
- {detailed list of changes}.
+ For more information about improvements in each Qt release, see
+ the \l{http://www.qtsoftware.com/developer/changes/}
+ {detailed lists of changes}.
\section1 Significant Improvements
@@ -447,11 +447,10 @@
\l{http://www.qtsoftware.com/developer/changes/changes-4.5.0}{available online}.
A \l{Known Issues in %VERSION%}{list of known issues} for this release is also
available.
- \omit
+
Changes between this release and the previous release are provided
in the \c{changes-%VERSION%} file (also
\l{http://www.qtsoftware.com/developer/changes/changes-%VERSION%}{available online}).
- \endomit
A list of other Qt 4 features can be found on the
\bold{\l{What's New in Qt 4}} page.
diff --git a/doc/src/qtcocoa-known-issues.qdoc b/doc/src/qtcocoa-known-issues.qdoc
deleted file mode 100644
index eedbd68..0000000
--- a/doc/src/qtcocoa-known-issues.qdoc
+++ /dev/null
@@ -1,168 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (qt-info@nokia.com)
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the either Technology Preview License Agreement or the
-** Beta Release License Agreement.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
-** package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtcocoa-known-issues.html
- \title Known Issues with the Qt/Mac Cocoa Port
-
- This document explains the current list of features in the Qt/Mac Cocoa port
- that are currently not working. Most of the issues will be addressed in
- upcoming snapshots and beta releases. We hope that all the issues should be
- addressed by the time the of the final 4.5.0 release.
-
- \tableofcontents
-
- \section1 What Works
-
- Here are the things that we can say about the current state of the Qt/Mac Cocoa port.
-
- \list
- \i \e{64-bit Support}:
- The Qt libraries currently do build and link as 64-bit frameworks and it is
- possible to build and run many of the Qt examples as 64-bit.
-
- \i \e{HIViews are now NSViews}:
- Every QWidget is now backed by an NSView pointer instead of an HIViewRef.
- QWidget::winId() will return an NSView pointer that can be used in other
- Cocoa technologies (e.g., Core Animation).
-
- \i \e{Some Native Dialogs Work}:
- QFileDialog and QColorDialog have been ported to use NSOpen-/NSSavePanel and
- NSColorPanel respectively. QPrintDialog and QPageSetupDialog are not in
- this release, but are on their way. Currently, none of these dialogs show
- up as sheets pending the creation of an asynchronous API.
-
- \i \e{Painting, Printing, and Styles}:
- Since printing and painting used Quartz 2D and styling used HITheme, these
- sub-systems work without any changes.
-
- \i \e {OpenGL}:
- OpenGL is fully supported,including pixel buffers and framebuffer objects.
-
- \i \e{Clipboard}:
- Using QClipboard to copy and paste data works as expected.
-
- \i \e{Mouse, Keyboard, and Wheel events}:
- Mouse, keyboard, and wheel events are dispatched to the proper
- widget. The Qt/Mac Cocoa port respects Cocoa's idea of a "First
- Responder."
-
- \endlist
-
- \section1 Current Known Issues
-
- The following are items that don't currently work, but that we plan to have
- resolved before the final release of the Qt/Mac Cocoa port. Please do not
- file bugs on these.
-
- \list
- \i \e{Carbon Support}:
- The current source tree for the Qt/Mac Cocoa port contains source for
- building Qt/Mac with Cocoa. It contains some of the source code that is
- used for the Carbon port, but it is currently not set up to build the
- Carbon Qt/Mac libraries. Please use a normal release or snapshot if you
- want to use Carbon.
-
- \i \e{Drag and Drop Support}:
- Drag and Drop is currently not implemented and needs to be ported to Cocoa,
- but using the clipboard does work at this time.
-
- \i \e {Accessibility}:
- Accessibility support is not implemented and needs to be ported to Cocoa.
-
- \i \e {Text}:
- Most text rendering works fine for Latin-1 characters. However, rendering
- non-Latin-1 characters has not been tested.
-
- \i \e {Input Methods}:
- Input methods also need to be ported to Cocoa.
-
- \i \e {Shortcuts}:
- Shortcuts that exist outside of the menu bar may not be dispatched.
-
- \i \e {Tablet Support}:
- The tablet support has not been ported from Carbon yet. However, it should
- still be possible to use the tablet as a mouse.
-
- \i \e {Phonon}:
- Phonon uses the QuickTime backend that is only available on 32-bit. Using
- Phonon in 64-bit requires a QTKit-based backend and has not been done.
-
- \i \e {Unified Toolbar}:
- The QMainWindow::setUnifiedTitleAndToolBarOnMac() method currently does nothing.
-
- \i \e {Dialogs, Tool Windows, Sheets, and Drawers}:
- At the moment, all windows are subclasses of NSWindow. This means that
- window types like drawers and sheets do not work and tool windows do not
- get the right decorations. Modal dialogs do show up at the correct window
- level, but are not yet considered "panels." Many window flags are not
- recognized.
-
- \endlist
-
- \section1 Things We Don't Expect to Support
-
- The following items that we do not plan on spending any resources on unless
- there is monumental outcry for their inclusion.
-
- \list
- \i \e{Qt3Support}:
- At this time we have no plans for making the Qt3Support module work with
- the Qt/Mac Cocoa port in 64-bit mode. Following in footsteps of Apple, we
- would like to encourage you to consider the time of going Cocoa and 64-bit
- as a chance to jettison Qt 3 constructs and classes.
-
- \i \e{Support for versions of Mac OS X below 10.5}:
- We are using methods and classes that are only available in 10.5 and
- higher. Most of these functions don't have any equivalent on earlier
- versions. We recommend using the Carbon version for earlier versions of Mac
- OS X. We anticipate keeping the Carbon port supported at least for the
- lifetime of 4.5.
-
- \i \e{Support for -no-framework or -static}:
- Cocoa requires that we load a nib in order to properly access the global
- menu bar. This nib has to reside on disk somewhere. The most logical place
- for it to reside is inside the QtGui framework. For this reason, building
- Qt as standard "dylibs" or statically is no longer supported.
-
- \endlist
-
-*/
diff --git a/doc/src/snippets/alphachannel.cpp b/doc/src/snippets/alphachannel.cpp
index 7783271..ad0885a 100644
--- a/doc/src/snippets/alphachannel.cpp
+++ b/doc/src/snippets/alphachannel.cpp
@@ -47,11 +47,8 @@
#include <qfile.h>
#include <qdir.h>
#include <qfileinfo.h>
-
-#if (QT_VERSION) >= 0x040000
#include <QtGui>
#include <QtCore>
-#endif
class MyClass : public QWidget
{
@@ -95,12 +92,10 @@ protected:
//! [0]
}
- QPixmap channelImage, pixmap;
+ QPixmap channelImage, pixmap;
QSize sizeHint() const { return QSize(500, 500); }
};
-
-
int main(int argc, char **argv)
{
QApplication app(argc, argv);
diff --git a/doc/src/snippets/code/doc_src_installation.qdoc b/doc/src/snippets/code/doc_src_installation.qdoc
index 66bb998..e35dad9 100644
--- a/doc/src/snippets/code/doc_src_installation.qdoc
+++ b/doc/src/snippets/code/doc_src_installation.qdoc
@@ -44,7 +44,7 @@ PATH - to locate qmake, moc and other Qt tools
//! [8]
C:
-cd /D C:\Qt\4.4.0-rc1
+cd /D C:\Qt\%VERSION%
configure
//! [8]
diff --git a/doc/src/snippets/code/doc_src_qtestlib.qdoc b/doc/src/snippets/code/doc_src_qtestlib.qdoc
index a4ef52e..a0e4944 100644
--- a/doc/src/snippets/code/doc_src_qtestlib.qdoc
+++ b/doc/src/snippets/code/doc_src_qtestlib.qdoc
@@ -61,7 +61,7 @@ void TestQString::toUpper()
//! [9]
-/myTestDirectory$ qmake -project "QT += testlib"
+/myTestDirectory$ qmake -project "CONFIG += qtestlib"
/myTestDirectory$ qmake
/myTestDirectory$ make
//! [9]
@@ -69,7 +69,7 @@ void TestQString::toUpper()
//! [10]
********* Start testing of TestQString *********
-Config: Using QTest library 4.1.0, Qt 4.1.0
+Config: Using QTest library %VERSION%, Qt %VERSION%
PASS : TestQString::initTestCase()
PASS : TestQString::toUpper()
PASS : TestQString::cleanupTestCase()
@@ -99,4 +99,4 @@ private slots:
}
}
};
-//! [12] \ No newline at end of file
+//! [12]
diff --git a/doc/src/snippets/code/src_qdbus_qdbusargument.cpp b/doc/src/snippets/code/src_qdbus_qdbusargument.cpp
index b982510..efd54ac 100644
--- a/doc/src/snippets/code/src_qdbus_qdbusargument.cpp
+++ b/doc/src/snippets/code/src_qdbus_qdbusargument.cpp
@@ -4,7 +4,7 @@ struct MyStructure
int count;
QString name;
};
-QT_DECLARE_METATYPE(MyStructure)
+Q_DECLARE_METATYPE(MyStructure)
// Marshall the MyStructure data into a D-Bus argument
QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &mystruct)
diff --git a/examples/dialogs/standarddialogs/dialog.cpp b/examples/dialogs/standarddialogs/dialog.cpp
index 0fe1f7e..1f7c5ef 100644
--- a/examples/dialogs/standarddialogs/dialog.cpp
+++ b/examples/dialogs/standarddialogs/dialog.cpp
@@ -59,7 +59,7 @@ Dialog::Dialog(QWidget *parent)
integerLabel = new QLabel;
integerLabel->setFrameStyle(frameStyle);
QPushButton *integerButton =
- new QPushButton(tr("QInputDialog::get&Integer()"));
+ new QPushButton(tr("QInputDialog::get&Int()"));
doubleLabel = new QLabel;
doubleLabel->setFrameStyle(frameStyle);
@@ -198,8 +198,8 @@ void Dialog::setInteger()
{
//! [0]
bool ok;
- int i = QInputDialog::getInteger(this, tr("QInputDialog::getInteger()"),
- tr("Percentage:"), 25, 0, 100, 1, &ok);
+ int i = QInputDialog::getInt(this, tr("QInputDialog::getInteger()"),
+ tr("Percentage:"), 25, 0, 100, 1, &ok);
if (ok)
integerLabel->setText(tr("%1%").arg(i));
//! [0]
diff --git a/examples/examples.pro b/examples/examples.pro
index 2c4fc81..41501a0 100644
--- a/examples/examples.pro
+++ b/examples/examples.pro
@@ -33,7 +33,7 @@ embedded:SUBDIRS += qws
}
contains(QT_CONFIG, opengl): SUBDIRS += opengl
contains(QT_CONFIG, dbus): SUBDIRS += dbus
-win32:!contains(QT_EDITION, OpenSource|Console):SUBDIRS += activeqt
+win32: SUBDIRS += activeqt
contains(QT_CONFIG, xmlpatterns): SUBDIRS += xmlpatterns
contains(DEFINES, QT_NO_CURSOR): SUBDIRS -= mainwindows
diff --git a/examples/graphicsview/elasticnodes/edge.cpp b/examples/graphicsview/elasticnodes/edge.cpp
index 4018c25..eb02143 100644
--- a/examples/graphicsview/elasticnodes/edge.cpp
+++ b/examples/graphicsview/elasticnodes/edge.cpp
@@ -93,11 +93,16 @@ void Edge::adjust()
QLineF line(mapFromItem(source, 0, 0), mapFromItem(dest, 0, 0));
qreal length = line.length();
- QPointF edgeOffset((line.dx() * 10) / length, (line.dy() * 10) / length);
prepareGeometryChange();
- sourcePoint = line.p1() + edgeOffset;
- destPoint = line.p2() - edgeOffset;
+
+ if (length > qreal(20.)) {
+ QPointF edgeOffset((line.dx() * 10) / length, (line.dy() * 10) / length);
+ sourcePoint = line.p1() + edgeOffset;
+ destPoint = line.p2() - edgeOffset;
+ } else {
+ sourcePoint = destPoint = line.p1();
+ }
}
QRectF Edge::boundingRect() const
@@ -119,12 +124,15 @@ void Edge::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *)
if (!source || !dest)
return;
- // Draw the line itself
QLineF line(sourcePoint, destPoint);
+ if (qFuzzyCompare(line.length(), qreal(0.)))
+ return;
+
+ // Draw the line itself
painter->setPen(QPen(Qt::black, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
painter->drawLine(line);
- // Draw the arrows if there's enough room
+ // Draw the arrows
double angle = ::acos(line.dx() / line.length());
if (line.dy() >= 0)
angle = TwoPi - angle;
diff --git a/examples/itemviews/chart/pieview.cpp b/examples/itemviews/chart/pieview.cpp
index 6b62f25..48f4073 100644
--- a/examples/itemviews/chart/pieview.cpp
+++ b/examples/itemviews/chart/pieview.cpp
@@ -254,7 +254,7 @@ void PieView::mousePressEvent(QMouseEvent *event)
QAbstractItemView::mousePressEvent(event);
origin = event->pos();
if (!rubberBand)
- rubberBand = new QRubberBand(QRubberBand::Rectangle, this);
+ rubberBand = new QRubberBand(QRubberBand::Rectangle, viewport());
rubberBand->setGeometry(QRect(origin, QSize()));
rubberBand->show();
}
diff --git a/examples/layouts/flowlayout/flowlayout.cpp b/examples/layouts/flowlayout/flowlayout.cpp
index d1e857d..263911d 100644
--- a/examples/layouts/flowlayout/flowlayout.cpp
+++ b/examples/layouts/flowlayout/flowlayout.cpp
@@ -42,31 +42,57 @@
#include <QtGui>
#include "flowlayout.h"
-
-FlowLayout::FlowLayout(QWidget *parent, int margin, int spacing)
- : QLayout(parent)
+//! [1]
+FlowLayout::FlowLayout(QWidget *parent, int margin, int hSpacing, int vSpacing)
+ : QLayout(parent), m_hSpace(hSpacing), m_vSpace(vSpacing)
{
- setMargin(margin);
- setSpacing(spacing);
+ setContentsMargins(margin, margin, margin, margin);
}
-FlowLayout::FlowLayout(int spacing)
+FlowLayout::FlowLayout(int margin, int hSpacing, int vSpacing)
+ : m_hSpace(hSpacing), m_vSpace(vSpacing)
{
- setSpacing(spacing);
+ setContentsMargins(margin, margin, margin, margin);
}
+//! [1]
+//! [2]
FlowLayout::~FlowLayout()
{
QLayoutItem *item;
while ((item = takeAt(0)))
delete item;
}
+//! [2]
+//! [3]
void FlowLayout::addItem(QLayoutItem *item)
{
itemList.append(item);
}
+//! [3]
+
+//! [4]
+int FlowLayout::horizontalSpacing() const
+{
+ if (m_hSpace >= 0) {
+ return m_hSpace;
+ } else {
+ return smartSpacing(QStyle::PM_LayoutHorizontalSpacing);
+ }
+}
+
+int FlowLayout::verticalSpacing() const
+{
+ if (m_vSpace >= 0) {
+ return m_vSpace;
+ } else {
+ return smartSpacing(QStyle::PM_LayoutVerticalSpacing);
+ }
+}
+//! [4]
+//! [5]
int FlowLayout::count() const
{
return itemList.size();
@@ -84,12 +110,16 @@ QLayoutItem *FlowLayout::takeAt(int index)
else
return 0;
}
+//! [5]
+//! [6]
Qt::Orientations FlowLayout::expandingDirections() const
{
return 0;
}
+//! [6]
+//! [7]
bool FlowLayout::hasHeightForWidth() const
{
return true;
@@ -100,7 +130,9 @@ int FlowLayout::heightForWidth(int width) const
int height = doLayout(QRect(0, 0, width, 0), true);
return height;
}
+//! [7]
+//! [8]
void FlowLayout::setGeometry(const QRect &rect)
{
QLayout::setGeometry(rect);
@@ -122,23 +154,36 @@ QSize FlowLayout::minimumSize() const
size += QSize(2*margin(), 2*margin());
return size;
}
+//! [8]
+//! [9]
int FlowLayout::doLayout(const QRect &rect, bool testOnly) const
{
- int x = rect.x();
- int y = rect.y();
+ int left, top, right, bottom;
+ getContentsMargins(&left, &top, &right, &bottom);
+ QRect effectiveRect = rect.adjusted(+left, +top, -right, -bottom);
+ int x = effectiveRect.x();
+ int y = effectiveRect.y();
int lineHeight = 0;
+//! [9]
+//! [10]
QLayoutItem *item;
foreach (item, itemList) {
QWidget *wid = item->widget();
- int spaceX = spacing() + wid->style()->layoutSpacing(
+ int spaceX = horizontalSpacing();
+ if (spaceX == -1)
+ spaceX = wid->style()->layoutSpacing(
QSizePolicy::PushButton, QSizePolicy::PushButton, Qt::Horizontal);
- int spaceY = spacing() + wid->style()->layoutSpacing(
+ int spaceY = verticalSpacing();
+ if (spaceY == -1)
+ spaceY = wid->style()->layoutSpacing(
QSizePolicy::PushButton, QSizePolicy::PushButton, Qt::Vertical);
+//! [10]
+//! [11]
int nextX = x + item->sizeHint().width() + spaceX;
- if (nextX - spaceX > rect.right() && lineHeight > 0) {
- x = rect.x();
+ if (nextX - spaceX > effectiveRect.right() && lineHeight > 0) {
+ x = effectiveRect.x();
y = y + lineHeight + spaceY;
nextX = x + item->sizeHint().width() + spaceX;
lineHeight = 0;
@@ -150,5 +195,20 @@ int FlowLayout::doLayout(const QRect &rect, bool testOnly) const
x = nextX;
lineHeight = qMax(lineHeight, item->sizeHint().height());
}
- return y + lineHeight - rect.y();
+ return y + lineHeight - rect.y() + bottom;
+}
+//! [11]
+//! [12]
+int FlowLayout::smartSpacing(QStyle::PixelMetric pm) const
+{
+ QObject *parent = this->parent();
+ if (!parent) {
+ return -1;
+ } else if (parent->isWidgetType()) {
+ QWidget *pw = static_cast<QWidget *>(parent);
+ return pw->style()->pixelMetric(pm, 0, pw);
+ } else {
+ return static_cast<QLayout *>(parent)->spacing();
+ }
}
+//! [12]
diff --git a/examples/layouts/flowlayout/flowlayout.h b/examples/layouts/flowlayout/flowlayout.h
index f864d8e..bab7f36 100644
--- a/examples/layouts/flowlayout/flowlayout.h
+++ b/examples/layouts/flowlayout/flowlayout.h
@@ -45,15 +45,17 @@
#include <QLayout>
#include <QRect>
#include <QWidgetItem>
-
+//! [0]
class FlowLayout : public QLayout
{
public:
- FlowLayout(QWidget *parent, int margin = -1, int spacing = 0);
- FlowLayout(int spacing = 0);
+ FlowLayout(QWidget *parent, int margin = -1, int hSpacing = -1, int vSpacing = -1);
+ FlowLayout(int margin = -1, int hSpacing = -1, int vSpacing = -1);
~FlowLayout();
void addItem(QLayoutItem *item);
+ int horizontalSpacing() const;
+ int verticalSpacing() const;
Qt::Orientations expandingDirections() const;
bool hasHeightForWidth() const;
int heightForWidth(int) const;
@@ -66,8 +68,12 @@ public:
private:
int doLayout(const QRect &rect, bool testOnly) const;
+ int smartSpacing(QStyle::PixelMetric pm) const;
QList<QLayoutItem *> itemList;
+ int m_hSpace;
+ int m_vSpace;
};
+//! [0]
#endif
diff --git a/examples/layouts/flowlayout/window.cpp b/examples/layouts/flowlayout/window.cpp
index 51d9886..b7d9eae 100644
--- a/examples/layouts/flowlayout/window.cpp
+++ b/examples/layouts/flowlayout/window.cpp
@@ -43,7 +43,7 @@
#include "flowlayout.h"
#include "window.h"
-
+//! [1]
Window::Window()
{
FlowLayout *flowLayout = new FlowLayout;
@@ -57,3 +57,4 @@ Window::Window()
setWindowTitle(tr("Flow Layout"));
}
+//! [1] \ No newline at end of file
diff --git a/examples/layouts/flowlayout/window.h b/examples/layouts/flowlayout/window.h
index ffd60af..77f8b6f 100644
--- a/examples/layouts/flowlayout/window.h
+++ b/examples/layouts/flowlayout/window.h
@@ -47,7 +47,7 @@
QT_BEGIN_NAMESPACE
class QLabel;
QT_END_NAMESPACE
-
+//! [0]
class Window : public QWidget
{
Q_OBJECT
@@ -55,5 +55,6 @@ class Window : public QWidget
public:
Window();
};
+//! [0]
#endif
diff --git a/examples/network/googlesuggest/googlesuggest.cpp b/examples/network/googlesuggest/googlesuggest.cpp
new file mode 100644
index 0000000..285a018
--- /dev/null
+++ b/examples/network/googlesuggest/googlesuggest.cpp
@@ -0,0 +1,223 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore>
+#include <QtGui>
+#include <QtNetwork>
+
+#include "googlesuggest.h"
+
+#define GSUGGEST_URL "http://google.com/complete/search?output=toolbar&q=%1"
+
+GSuggestCompletion::GSuggestCompletion(QLineEdit *parent): QObject(parent), editor(parent)
+{
+ popup = new QTreeWidget;
+ popup->setColumnCount(2);
+ popup->setUniformRowHeights(true);
+ popup->setRootIsDecorated(false);
+ popup->setEditTriggers(QTreeWidget::NoEditTriggers);
+ popup->setSelectionBehavior(QTreeWidget::SelectRows);
+ popup->setFrameStyle(QFrame::Box | QFrame::Plain);
+ popup->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+
+ popup->header()->hide();
+ popup->installEventFilter(this);
+ popup->setMouseTracking(true);
+
+ connect(popup, SIGNAL(itemClicked(QTreeWidgetItem*, int)),
+ SLOT(doneCompletion()));
+
+ popup->setWindowFlags(Qt::Popup);
+ popup->setFocusPolicy(Qt::NoFocus);
+ popup->setFocusProxy(parent);
+
+ timer = new QTimer(this);
+ timer->setSingleShot(true);
+ timer->setInterval(500);
+ connect(timer, SIGNAL(timeout()), SLOT(autoSuggest()));
+ connect(editor, SIGNAL(textEdited(QString)), timer, SLOT(start()));
+
+ connect(&networkManager, SIGNAL(finished(QNetworkReply*)),
+ this, SLOT(handleNetworkData(QNetworkReply*)));
+
+}
+
+GSuggestCompletion::~GSuggestCompletion()
+{
+ delete popup;
+}
+
+bool GSuggestCompletion::eventFilter(QObject *obj, QEvent *ev)
+{
+ if (obj != popup)
+ return false;
+
+ if (ev->type() == QEvent::MouseButtonPress) {
+ popup->hide();
+ editor->setFocus();
+ return true;
+ }
+
+ if (ev->type() == QEvent::KeyPress) {
+
+ bool consumed = false;
+ int key = static_cast<QKeyEvent*>(ev)->key();
+ switch (key) {
+ case Qt::Key_Enter:
+ case Qt::Key_Return:
+ doneCompletion();
+ consumed = true;
+
+ case Qt::Key_Escape:
+ editor->setFocus();
+ popup->hide();
+ consumed = true;
+
+ case Qt::Key_Up:
+ case Qt::Key_Down:
+ case Qt::Key_Home:
+ case Qt::Key_End:
+ case Qt::Key_PageUp:
+ case Qt::Key_PageDown:
+ break;
+
+ default:
+ editor->setFocus();
+ editor->event(ev);
+ popup->hide();
+ break;
+ }
+
+ return consumed;
+ }
+
+ return false;
+}
+
+void GSuggestCompletion::showCompletion(const QStringList &choices, const QStringList &hits)
+{
+
+ if (choices.isEmpty() || choices.count() != hits.count())
+ return;
+
+ const QPalette &pal = editor->palette();
+ QColor color = pal.color(QPalette::Disabled, QPalette::WindowText);
+
+ popup->setUpdatesEnabled(false);
+ popup->clear();
+ for (int i = 0; i < choices.count(); ++i) {
+ QTreeWidgetItem * item;
+ item = new QTreeWidgetItem(popup);
+ item->setText(0, choices[i]);
+ item->setText(1, hits[i]);
+ item->setTextAlignment(1, Qt::AlignRight);
+ item->setTextColor(1, color);
+ }
+ popup->setCurrentItem(popup->topLevelItem(0));
+ popup->resizeColumnToContents(0);
+ popup->resizeColumnToContents(1);
+ popup->adjustSize();
+ popup->setUpdatesEnabled(true);
+
+ int h = popup->sizeHintForRow(0) * qMin(7, choices.count()) + 3;
+ popup->resize(popup->width(), h);
+
+ popup->move(editor->mapToGlobal(QPoint(0, editor->height())));
+ popup->setFocus();
+ popup->show();
+}
+
+void GSuggestCompletion::doneCompletion()
+{
+ timer->stop();
+ popup->hide();
+ editor->setFocus();
+ QTreeWidgetItem *item = popup->currentItem();
+ if (item) {
+ editor->setText(item->text(0));
+ QKeyEvent *e;
+ e = new QKeyEvent(QEvent::KeyPress, Qt::Key_Enter, Qt::NoModifier);
+ QApplication::postEvent(editor, e);
+ e = new QKeyEvent(QEvent::KeyRelease, Qt::Key_Enter, Qt::NoModifier);
+ QApplication::postEvent(editor, e);
+ }
+}
+
+void GSuggestCompletion::preventSuggest()
+{
+ timer->stop();
+}
+
+void GSuggestCompletion::autoSuggest()
+{
+ QString str = editor->text();
+ QString url = QString(GSUGGEST_URL).arg(str);
+ networkManager.get(QNetworkRequest(QString(url)));
+}
+
+void GSuggestCompletion::handleNetworkData(QNetworkReply *networkReply)
+{
+ QUrl url = networkReply->url();
+ if (!networkReply->error()) {
+ QStringList choices;
+ QStringList hits;
+
+ QString response(networkReply->readAll());
+ QXmlStreamReader xml(response);
+ while (!xml.atEnd()) {
+ xml.readNext();
+ if (xml.tokenType() == QXmlStreamReader::StartElement)
+ if (xml.name() == "suggestion") {
+ QStringRef str = xml.attributes().value("data");
+ choices << str.toString();
+ }
+ if (xml.tokenType() == QXmlStreamReader::StartElement)
+ if (xml.name() == "num_queries") {
+ QStringRef str = xml.attributes().value("int");
+ hits << str.toString();
+ }
+ }
+
+ showCompletion(choices, hits);
+ }
+
+ networkReply->deleteLater();
+}
diff --git a/src/gui/painting/qwindowsurface_d3d_p.h b/examples/network/googlesuggest/googlesuggest.h
index 9cdfe29..0267709 100644
--- a/src/gui/painting/qwindowsurface_d3d_p.h
+++ b/examples/network/googlesuggest/googlesuggest.h
@@ -3,7 +3,7 @@
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
**
-** This file is part of the QtGui module of the Qt Toolkit.
+** This file is part of the examples of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
@@ -39,46 +39,42 @@
**
****************************************************************************/
-#ifndef QWINDOWSURFACE_D3D_P_H
-#define QWINDOWSURFACE_D3D_P_H
+#ifndef GOOGLESUGGEST_H
+#define GOOGLESUGGEST_H
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists for the convenience
-// of the QLibrary class. This header file may change from
-// version to version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <qglobal.h>
-#include "private/qwindowsurface_p.h"
+#include <QObject>
+#include <QNetworkAccessManager>
QT_BEGIN_NAMESPACE
+class QLineEdit;
+class QNetworkReply;
+class QTimer;
+class QTreeWidget;
+QT_END_NAMESPACE
-class QPaintDevice;
-class QPoint;
-class QRegion;
-class QWidget;
-struct QD3DWindowSurfacePrivate;
-
-class QD3DWindowSurface : public QWindowSurface
+class GSuggestCompletion : public QObject
{
+ Q_OBJECT
+
public:
- QD3DWindowSurface(QWidget *widget);
- ~QD3DWindowSurface();
+ GSuggestCompletion(QLineEdit *parent = 0);
+ ~GSuggestCompletion();
+ bool eventFilter(QObject *obj, QEvent *ev);
+ void showCompletion(const QStringList &choices, const QStringList &hits);
+
+public slots:
- QPaintDevice *paintDevice();
- void flush(QWidget *widget, const QRegion &region, const QPoint &offset);
- void setGeometry(const QRect &rect);
- bool scroll(const QRegion &area, int dx, int dy);
+ void doneCompletion();
+ void preventSuggest();
+ void autoSuggest();
+ void handleNetworkData(QNetworkReply *networkReply);
private:
- QD3DWindowSurfacePrivate *d_ptr;
+ QLineEdit *editor;
+ QTreeWidget *popup;
+ QTimer *timer;
+ QNetworkAccessManager networkManager;
};
-QT_END_NAMESPACE
+#endif // GOOGLESUGGEST_H
-#endif // QWINDOWSURFACE_D3D_P_H
diff --git a/examples/network/googlesuggest/googlesuggest.pro b/examples/network/googlesuggest/googlesuggest.pro
new file mode 100644
index 0000000..afd600f
--- /dev/null
+++ b/examples/network/googlesuggest/googlesuggest.pro
@@ -0,0 +1,9 @@
+QT += network
+SOURCES = main.cpp searchbox.cpp googlesuggest.cpp
+HEADERS = searchbox.h googlesuggest.h
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/webkit/googlesuggest
+sources.files = $$SOURCES $$HEADERS *.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/webkit/googlesuggest
+INSTALLS += target sources
diff --git a/doc/src/snippets/webkit/simple/main.cpp b/examples/network/googlesuggest/main.cpp
index a6a4fc2..f8d9bc5 100644
--- a/doc/src/snippets/webkit/simple/main.cpp
+++ b/examples/network/googlesuggest/main.cpp
@@ -3,7 +3,7 @@
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
**
-** This file is part of the documentation of the Qt Toolkit.
+** This file is part of the examples of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
@@ -40,17 +40,13 @@
****************************************************************************/
#include <QApplication>
-#include <QUrl>
-#include <QWebView>
-int main(int argc, char *argv[])
+#include "searchbox.h"
+
+int main(int argc, char * argv[])
{
QApplication app(argc, argv);
- QWidget *parent = 0;
-//! [Using QWebView]
- QWebView *view = new QWebView(parent);
- view->load(QUrl("http://qtsoftware.com/"));
- view->show();
-//! [Using QWebView]
+ SearchBox *searchEdit = new SearchBox;
+ searchEdit->show();
return app.exec();
}
diff --git a/examples/network/googlesuggest/searchbox.cpp b/examples/network/googlesuggest/searchbox.cpp
new file mode 100644
index 0000000..cd7b122
--- /dev/null
+++ b/examples/network/googlesuggest/searchbox.cpp
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QDesktopServices>
+#include <QUrl>
+
+#include "searchbox.h"
+#include "googlesuggest.h"
+
+#define GSEARCH_URL "http://www.google.com/search?q=%1"
+
+
+SearchBox::SearchBox(QWidget *parent): QLineEdit(parent)
+{
+ completer = new GSuggestCompletion(this);
+
+ connect(this, SIGNAL(returnPressed()), SLOT(doSearch()));
+
+ setWindowTitle("Search with Google");
+
+ adjustSize();
+ resize(400, height());
+ setFocus();
+}
+
+void SearchBox::doSearch()
+{
+ completer->preventSuggest();
+ QString url = QString(GSEARCH_URL).arg(text());
+ QDesktopServices::openUrl(QUrl(url));
+}
diff --git a/examples/network/googlesuggest/searchbox.h b/examples/network/googlesuggest/searchbox.h
new file mode 100644
index 0000000..75ceffd
--- /dev/null
+++ b/examples/network/googlesuggest/searchbox.h
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SEARCHBOX_H
+#define SEARCHBOX_H
+
+#include <QLineEdit>
+
+class GSuggestCompletion;
+
+class SearchBox: public QLineEdit
+{
+ Q_OBJECT
+
+public:
+ SearchBox(QWidget *parent = 0);
+
+protected slots:
+ void doSearch();
+
+private:
+ GSuggestCompletion *completer;
+};
+
+
+#endif // SEARCHBOX_H
diff --git a/examples/network/network.pro b/examples/network/network.pro
index 13b3116..8c45745 100644
--- a/examples/network/network.pro
+++ b/examples/network/network.pro
@@ -11,6 +11,7 @@ SUBDIRS = blockingfortuneclient \
http \
loopback \
threadedfortuneserver \
+ googlesuggest \
torrent
contains(QT_CONFIG, openssl):SUBDIRS += securesocketclient
diff --git a/examples/tutorials/addressbook/README b/examples/tutorials/addressbook/README
index 2d528b5..9b7f908 100644
--- a/examples/tutorials/addressbook/README
+++ b/examples/tutorials/addressbook/README
@@ -4,7 +4,7 @@ Qt documentation, which can be viewed using Qt Assistant or a Web browser.
The tutorial is also available online at
-http://doc.trolltech.com/4.4/tutorial.html
+http://doc.trolltech.com/tutorial.html
All programs corresponding to the chapters in the tutorial should
automatically be built when Qt is compiled, or will be provided as
diff --git a/examples/webkit/fancybrowser/fancybrowser.pro b/examples/webkit/fancybrowser/fancybrowser.pro
new file mode 100644
index 0000000..3de3036
--- /dev/null
+++ b/examples/webkit/fancybrowser/fancybrowser.pro
@@ -0,0 +1,11 @@
+QT += webkit
+HEADERS = mainwindow.h
+SOURCES = main.cpp \
+ mainwindow.cpp
+RESOURCES = jquery.qrc
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/webkit/fancybrowser
+sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/webkit/fancybrowser
+INSTALLS += target sources
diff --git a/examples/webkit/fancybrowser/jquery.min.js b/examples/webkit/fancybrowser/jquery.min.js
new file mode 100644
index 0000000..b1ae21d
--- /dev/null
+++ b/examples/webkit/fancybrowser/jquery.min.js
@@ -0,0 +1,19 @@
+/*
+ * jQuery JavaScript Library v1.3.2
+ * http://jquery.com/
+ *
+ * Copyright (c) 2009 John Resig
+ * Dual licensed under the MIT and GPL licenses.
+ * http://docs.jquery.com/License
+ *
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
+ * Revision: 6246
+ */
+(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
+/*
+ * Sizzle CSS Selector Engine - v0.9.3
+ * Copyright 2009, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file
diff --git a/examples/webkit/fancybrowser/jquery.qrc b/examples/webkit/fancybrowser/jquery.qrc
new file mode 100644
index 0000000..1022d68
--- /dev/null
+++ b/examples/webkit/fancybrowser/jquery.qrc
@@ -0,0 +1,5 @@
+<RCC>
+ <qresource prefix="/" >
+ <file>jquery.min.js</file>
+ </qresource>
+</RCC>
diff --git a/examples/webkit/fancybrowser/main.cpp b/examples/webkit/fancybrowser/main.cpp
new file mode 100644
index 0000000..5936469
--- /dev/null
+++ b/examples/webkit/fancybrowser/main.cpp
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+#include "mainwindow.h"
+
+int main(int argc, char * argv[])
+{
+ QApplication app(argc, argv);
+ MainWindow *browser = new MainWindow;
+ browser->show();
+ return app.exec();
+}
diff --git a/examples/webkit/fancybrowser/mainwindow.cpp b/examples/webkit/fancybrowser/mainwindow.cpp
new file mode 100644
index 0000000..bf61f9c
--- /dev/null
+++ b/examples/webkit/fancybrowser/mainwindow.cpp
@@ -0,0 +1,167 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+#include <QtWebKit>
+#include "mainwindow.h"
+
+MainWindow::MainWindow()
+{
+ progress = 0;
+
+ QFile file;
+ file.setFileName(":/jquery.min.js");
+ file.open(QIODevice::ReadOnly);
+ jQuery = file.readAll();
+ file.close();
+
+ view = new QWebView(this);
+ view->load(QUrl("http://www.google.com/ncr"));
+ connect(view, SIGNAL(loadFinished(bool)), SLOT(adjustLocation()));
+ connect(view, SIGNAL(titleChanged(const QString&)), SLOT(adjustTitle()));
+ connect(view, SIGNAL(loadProgress(int)), SLOT(setProgress(int)));
+ connect(view, SIGNAL(loadFinished(bool)), SLOT(finishLoading(bool)));
+
+ locationEdit = new QLineEdit(this);
+ locationEdit->setSizePolicy(QSizePolicy::Expanding, locationEdit->sizePolicy().verticalPolicy());
+ connect(locationEdit, SIGNAL(returnPressed()), SLOT(changeLocation()));
+
+ QToolBar *toolBar = addToolBar(tr("Navigation"));
+ toolBar->addAction(view->pageAction(QWebPage::Back));
+ toolBar->addAction(view->pageAction(QWebPage::Forward));
+ toolBar->addAction(view->pageAction(QWebPage::Reload));
+ toolBar->addAction(view->pageAction(QWebPage::Stop));
+ toolBar->addWidget(locationEdit);
+
+ QMenu *effectMenu = menuBar()->addMenu(tr("&Effect"));
+ effectMenu->addAction("Highlight all links", this, SLOT(highlightAllLinks()));
+
+ QAction *rotateAction = new QAction(this);
+ rotateAction->setIcon(style()->standardIcon(QStyle::SP_FileDialogDetailedView));
+ rotateAction->setCheckable(true);
+ rotateAction->setText(tr("Turn images upside down"));
+ connect(rotateAction, SIGNAL(toggled(bool)), this, SLOT(rotateImages(bool)));
+ effectMenu->addAction(rotateAction);
+
+ QMenu *toolsMenu = menuBar()->addMenu(tr("&Tools"));
+ toolsMenu->addAction(tr("Remove GIF images"), this, SLOT(removeGifImages()));
+ toolsMenu->addAction(tr("Remove all inline frames"), this, SLOT(removeInlineFrames()));
+ toolsMenu->addAction(tr("Remove all object elements"), this, SLOT(removeObjectElements()));
+ toolsMenu->addAction(tr("Remove all embedded elements"), this, SLOT(removeEmbeddedElements()));
+
+ setCentralWidget(view);
+}
+
+void MainWindow::adjustLocation()
+{
+ locationEdit->setText(view->url().toString());
+}
+
+void MainWindow::changeLocation()
+{
+ QUrl url = QUrl(locationEdit->text());
+ locationEdit->setText(url.toString());
+ view->load(url);
+ view->setFocus();
+}
+
+void MainWindow::adjustTitle()
+{
+ if (progress <= 0 || progress >= 100)
+ setWindowTitle(view->title());
+ else
+ setWindowTitle(QString("%1 (%2%)").arg(view->title()).arg(progress));
+}
+
+void MainWindow::setProgress(int p)
+{
+ progress = p;
+ adjustTitle();
+}
+
+void MainWindow::finishLoading(bool)
+{
+ progress = 100;
+ adjustTitle();
+ view->page()->mainFrame()->evaluateJavaScript(jQuery);
+}
+
+void MainWindow::highlightAllLinks()
+{
+ QString code = "$('a').each( function () { $(this).css('background-color', 'yellow') } )";
+ view->page()->mainFrame()->evaluateJavaScript(code);
+}
+
+void MainWindow::rotateImages(bool toggle)
+{
+ QString code = "$('img').each( function () { $(this).css('-webkit-transition', '-webkit-transform 2s') } )";
+ view->page()->mainFrame()->evaluateJavaScript(code);
+ if (toggle)
+ code = "$('img').each( function () { $(this).css('-webkit-transform', 'rotate(180deg)') } )";
+ else
+ code = "$('img').each( function () { $(this).css('-webkit-transform', 'rotate(0deg)') } )";
+ view->page()->mainFrame()->evaluateJavaScript(code);
+}
+
+void MainWindow::removeGifImages()
+{
+ QString code = "$('[src*=gif]').remove()";
+ view->page()->mainFrame()->evaluateJavaScript(code);
+}
+
+void MainWindow::removeInlineFrames()
+{
+ QString code = "$('iframe').remove()";
+ view->page()->mainFrame()->evaluateJavaScript(code);
+}
+
+void MainWindow::removeObjectElements()
+{
+ QString code = "$('object').remove()";
+ view->page()->mainFrame()->evaluateJavaScript(code);
+}
+
+void MainWindow::removeEmbeddedElements()
+{
+ QString code = "$('embed').remove()";
+ view->page()->mainFrame()->evaluateJavaScript(code);
+}
+
diff --git a/src/gui/math3d/qmath3dutil_p.h b/examples/webkit/fancybrowser/mainwindow.h
index fa4c156..9362ca7 100644
--- a/src/gui/math3d/qmath3dutil_p.h
+++ b/examples/webkit/fancybrowser/mainwindow.h
@@ -3,7 +3,7 @@
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
**
-** This file is part of the $MODULE$ of the Qt Toolkit.
+** This file is part of the examples of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
@@ -39,58 +39,38 @@
**
****************************************************************************/
-#ifndef QMATH3DUTIL_P_H
-#define QMATH3DUTIL_P_H
-
-#include <QtGui/qmath3dglobal.h>
-#include <QtCore/qmath.h>
+#include <QMainWindow>
QT_BEGIN_NAMESPACE
+class QWebView;
+class QLineEdit;
+QT_END_NAMESPACE
-#ifdef QT_GL_FIXED_PREFERRED
-#define qvtsqrt(x) ((x).sqrtF())
-#else
-#define qvtsqrt(x) qSqrt((x))
-#endif
-
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
-#endif
-
-void qt_math3d_sincos(qreal degrees, qrealinner *s, qrealinner *c);
-
-#ifdef QT_GL_FIXED_PREFERRED
-
-inline qrealinner qf2vt_round(qreal x)
+class MainWindow : public QMainWindow
{
- QFixedPt<16> result;
- if (x >= 0.0f)
- result.setBits(int(x * 65536.0f + 0.5f));
- else
- result.setBits(int(x * 65536.0f - 0.5f));
- return result;
-}
-
-// Helper macros for computing dot products without losing precision.
-// In fixed-point mode, a 64-bit intermediate result is used.
-#define qvtmul64(x,y) ((qint64((x).bits())) * (qint64((y).bits())))
-#define qvtsqrt64(x) \
- (qt_math3d_fixed_sqrt((x) << 16) / (qreal)(1 << 24))
-#define qvtdot64(x) ((x) / (qreal)(((qint64)1) << 32))
+ Q_OBJECT
-#else
+public:
+ MainWindow();
-inline qrealinner qf2vt_round(qreal x)
-{
- return x;
-}
+protected slots:
-#define qvtmul64(x,y) ((x) * (y))
-#define qvtsqrt64(x) (qvtsqrt((x)))
-#define qvtdot64(x) ((x))
+ void adjustLocation();
+ void changeLocation();
+ void adjustTitle();
+ void setProgress(int p);
+ void finishLoading(bool);
-#endif
-
-QT_END_NAMESPACE
+ void highlightAllLinks();
+ void rotateImages(bool toggle);
+ void removeGifImages();
+ void removeInlineFrames();
+ void removeObjectElements();
+ void removeEmbeddedElements();
-#endif
+private:
+ QString jQuery;
+ QWebView *view;
+ QLineEdit *locationEdit;
+ int progress;
+};
diff --git a/examples/webkit/googlechat/form.ui b/examples/webkit/googlechat/form.ui
new file mode 100644
index 0000000..3b9fb82
--- /dev/null
+++ b/examples/webkit/googlechat/form.ui
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Form</class>
+ <widget class="QWidget" name="Form">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>286</width>
+ <height>413</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Google Talk Client</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QStackedWidget" name="stackedWidget">
+ <property name="currentIndex">
+ <number>1</number>
+ </property>
+ <widget class="QWidget" name="page_3">
+ <layout class="QVBoxLayout" name="verticalLayout_4">
+ <item>
+ <spacer name="verticalSpacer_4">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>170</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="statusLabel">
+ <property name="text">
+ <string>TextLabel</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QProgressBar" name="progressBar">
+ <property name="value">
+ <number>24</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_5">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>169</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="page">
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <spacer name="verticalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>119</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="userNameLabel">
+ <property name="text">
+ <string>Google username:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="userNameEdit"/>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>17</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="passwordLabel">
+ <property name="text">
+ <string>Password:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="passwordEdit">
+ <property name="echoMode">
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>118</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="loginButton">
+ <property name="text">
+ <string>Login</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="page_2">
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QWebView" name="webView">
+ <property name="url">
+ <url>
+ <string>about:blank</string>
+ </url>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>QWebView</class>
+ <extends>QWidget</extends>
+ <header>QtWebKit/QWebView</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/examples/webkit/googlechat/googlechat.cpp b/examples/webkit/googlechat/googlechat.cpp
new file mode 100644
index 0000000..9ac2cd2
--- /dev/null
+++ b/examples/webkit/googlechat/googlechat.cpp
@@ -0,0 +1,163 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+#include <QtWebKit>
+
+#include "googlechat.h"
+
+#define GOOGLECHAT_URL "http://talkgadget.google.com/talkgadget/m"
+
+GoogleChat::GoogleChat(): QWidget() {
+ form.setupUi(this);
+ setFixedSize(320, 480);
+
+ form.userNameEdit->setFocus();
+ connect(form.userNameEdit, SIGNAL(textChanged(QString)), SLOT(adjustLoginButton()));
+ connect(form.userNameEdit, SIGNAL(returnPressed()), SLOT(inputPassword()));
+
+ connect(form.passwordEdit, SIGNAL(textChanged(QString)), SLOT(adjustLoginButton()));
+ connect(form.passwordEdit, SIGNAL(returnPressed()), SLOT(doLogin()));
+
+ form.loginButton->setEnabled(false);
+ connect(form.loginButton, SIGNAL(clicked()), SLOT(doLogin()));
+
+ connect(form.webView, SIGNAL(loadFinished(bool)), SLOT(initialPage(bool)));
+ connect(form.webView, SIGNAL(loadProgress(int)),
+ form.progressBar, SLOT(setValue(int)));
+ form.webView->setUrl((QUrl(GOOGLECHAT_URL)));
+ form.webView->setContextMenuPolicy(Qt::PreventContextMenu);
+
+ showStatus("Wait...");
+}
+
+void GoogleChat::showStatus(const QString &msg) {
+ form.statusLabel->setText(msg);
+ form.stackedWidget->setCurrentIndex(0);
+}
+
+void GoogleChat::showError(const QString &msg) {
+ form.progressBar->hide();
+ showStatus(QString("Error: %1").arg(msg));
+}
+
+QString GoogleChat::evalJS(const QString &js) {
+ QWebFrame *frame = form.webView->page()->mainFrame();
+ return frame->evaluateJavaScript(js).toString();
+}
+
+void GoogleChat::adjustLoginButton() {
+ userName = form.userNameEdit->text();
+ password = form.passwordEdit->text();
+ bool ok = !userName.isEmpty() && !password.isEmpty();
+ form.loginButton->setEnabled(ok);
+}
+
+void GoogleChat::inputPassword() {
+ if (!form.userNameEdit->text().isEmpty())
+ form.passwordEdit->setFocus();
+}
+
+void GoogleChat::doLogin() {
+ userName = form.userNameEdit->text();
+ password = form.passwordEdit->text();
+ bool ok = !userName.isEmpty() && !password.isEmpty();
+ if (!ok)
+ return;
+
+ form.progressBar->setValue(0);
+ form.progressBar->show();
+ connect(form.webView, SIGNAL(loadFinished(bool)), SLOT(loginPage(bool)));
+ connect(form.webView, SIGNAL(loadProgress(int)),
+ form.progressBar, SLOT(setValue(int)));
+ showStatus("Logging in...");
+
+ QString userEmail = userName + "@gmail.com";
+ evalJS(QString("document.getElementById('Email').value = \"%1\";").arg(userEmail));
+ evalJS(QString("document.getElementById('Passwd').value = \"%1\";").arg(password));
+ evalJS("document.getElementById('gaia_loginform').submit();");
+}
+
+void GoogleChat::initialPage(bool ok) {
+ if (ok) {
+ QString s1 = evalJS("document.getElementById('Email').name");
+ QString s2 = evalJS("document.getElementById('Passwd').name");
+ QString s3 = evalJS("document.getElementById('gaia_loginform').id");
+ if (s1 == "Email" && s2 == "Passwd" && s3 == "gaia_loginform") {
+ form.stackedWidget->setCurrentIndex(1);
+ form.webView->disconnect();
+ return;
+ }
+ }
+
+ showError("SERVICE unavailable.");
+}
+
+void GoogleChat::hideElements()
+{
+ evalJS("var e = document.getElementsByClassName('footer-footer')[0]; e.parentElement.removeChild(e)");
+ evalJS("var e = document.getElementsByClassName('title-bar-bg title-bar')[0]; e.parentElement.removeChild(e)");
+ QTimer::singleShot(2000, this, SLOT(hideElements()));
+}
+
+void GoogleChat::loginPage(bool ok) {
+ QString location = form.webView->url().toString();
+ if (!ok) {
+ if (location.indexOf("CheckCookie"))
+ return;
+ showError("Service unavailable");
+ } else {
+ // check for any error message
+ QString c = evalJS("document.getElementsByClassName('errormsg').length");
+ if (c == "0") {
+ form.stackedWidget->setCurrentIndex(2);
+ QTimer::singleShot(500, this, SLOT(hideElements()));
+ return;
+ }
+
+ QString err = "Unknown login failure.";
+ if (c == "1") {
+ err = evalJS("document.getElementsByClassName('errormsg')[0].textContent");
+ err = err.simplified();
+ }
+ showError(err);
+ }
+}
diff --git a/examples/webkit/googlechat/googlechat.h b/examples/webkit/googlechat/googlechat.h
new file mode 100644
index 0000000..c92632c
--- /dev/null
+++ b/examples/webkit/googlechat/googlechat.h
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QWidget>
+
+#include "ui_form.h"
+
+class GoogleChat: public QWidget
+{
+ Q_OBJECT
+
+public:
+ GoogleChat();
+
+protected:
+ void showStatus(const QString &msg);
+ void showError(const QString &msg);
+ QString evalJS(const QString &js);
+
+private slots:
+
+ void adjustLoginButton();
+ void inputPassword();
+ void doLogin();
+ void initialPage(bool ok);
+ void loginPage(bool ok);
+ void hideElements();
+
+private:
+ Ui::Form form;
+ QString userName;
+ QString password;
+};
diff --git a/examples/webkit/googlechat/googlechat.pro b/examples/webkit/googlechat/googlechat.pro
new file mode 100644
index 0000000..14b7085
--- /dev/null
+++ b/examples/webkit/googlechat/googlechat.pro
@@ -0,0 +1,11 @@
+QT += webkit
+HEADERS = googlechat.h
+SOURCES = main.cpp \
+ googlechat.cpp
+FORMS = form.ui
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/webkit/googlechat
+sources.files = $$SOURCES $$HEADERS $$FORMS *.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/webkit/googlechat
+INSTALLS += target sources
diff --git a/examples/webkit/googlechat/main.cpp b/examples/webkit/googlechat/main.cpp
new file mode 100644
index 0000000..26feeea
--- /dev/null
+++ b/examples/webkit/googlechat/main.cpp
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+#include "googlechat.h"
+
+int main(int argc, char * argv[])
+{
+ QApplication app(argc, argv);
+ GoogleChat *chat = new GoogleChat;
+ chat->show();
+ return app.exec();
+}
diff --git a/examples/webkit/webkit.pro b/examples/webkit/webkit.pro
index 3777eec..225816a 100644
--- a/examples/webkit/webkit.pro
+++ b/examples/webkit/webkit.pro
@@ -1,6 +1,8 @@
TEMPLATE = subdirs
SUBDIRS += formextractor \
- previewer
+ previewer \
+ fancybrowser \
+ googlechat
# install
target.path = $$[QT_INSTALL_EXAMPLES]/webkit
diff --git a/examples/widgets/codeeditor/codeeditor.cpp b/examples/widgets/codeeditor/codeeditor.cpp
index b855c7a..615f39f 100644
--- a/examples/widgets/codeeditor/codeeditor.cpp
+++ b/examples/widgets/codeeditor/codeeditor.cpp
@@ -41,7 +41,7 @@
#include <QtGui>
-#include <codeeditor.h>
+#include "codeeditor.h"
//![constructor]
diff --git a/mkspecs/features/moc.prf b/mkspecs/features/moc.prf
index f18d462..60508c8 100644
--- a/mkspecs/features/moc.prf
+++ b/mkspecs/features/moc.prf
@@ -8,30 +8,50 @@ isEmpty(MOC_DIR):MOC_DIR = .
isEmpty(QMAKE_H_MOD_MOC):QMAKE_H_MOD_MOC = moc_
isEmpty(QMAKE_EXT_CPP_MOC):QMAKE_EXT_CPP_MOC = .moc
-# This function on Windows puts the includes into a .inc file which moc will read, if the project
-# has more than 30 includes. We do this to overcome a command-line limit on Win < XP
-# Otherwise the function simply returns the normal command-line for moc
-defineReplace(mocCmd) {
- win32:count($$list($$INCPATH), 40, >) {
- EOC = $$escape_expand(\n\t)
+# On Windows, put the includes into a .inc file which moc will read, if the project
+# has too many includes. We do this to overcome a command-line limit on Win < XP
+INCLUDETEMP=
+WIN_INCLUDETEMP=
+win32:count($$list($$INCPATH), 40, >) {
+ INCLUDETEMP = $$MOC_DIR/mocinclude.tmp
- if(contains(TEMPLATE, "vc.*")|contains(TEMPLATE_PREFIX, "vc")) {
- # the VCPROJ generator will replace the \r\h with the coded \r\n: &#x0d;&#x0a;
- # No other generator understands the \h
- if(win32-msvc.net|win32-msvc2*|wince*msvc*): EOC = $$escape_expand(\r\h)
- else: EOC = $$escape_expand(\\)$$escape_expand(\n\t)
- }
+ # Remove any existing mocinclude.tmp when qmake runs
+ WIN_INCLUDETEMP=$$INCLUDETEMP
+ WIN_INCLUDETEMP~=s,/,\,g
+ system($$QMAKE_DEL_FILE $$WIN_INCLUDETEMP > NUL 2>&1)
+
+ EOC = $$escape_expand(\n\t)
- INCLUDETEMP = mocinclude.tmp
- unset(INCFILELIST)
+ if(contains(TEMPLATE, "vc.*")|contains(TEMPLATE_PREFIX, "vc")) {
+ # the VCPROJ generator will replace the \r\h with the coded \r\n: &#x0d;&#x0a;
+ # No other generator understands the \h
+ if(win32-msvc.net|win32-msvc2*|wince*msvc*): EOC = $$escape_expand(\r\h)
+ else: EOC = $$escape_expand(\\)$$escape_expand(\n\t)
+ }
+
+ unset(INCFILELIST)
+ RET =
+ for(incfile, $$list($$INCPATH)) {
+ INCFILELIST = -I$$incfile
+ isEmpty(RET): RET += @echo $$INCFILELIST> $$WIN_INCLUDETEMP $$EOC
+ else: RET += @echo $$INCFILELIST>> $$WIN_INCLUDETEMP $$EOC
+ }
+ !isEmpty(INCFILELIST):RET += @echo $$INCFILELIST>> $$WIN_INCLUDETEMP $$EOC
+
+ build_pass|isEmpty(BUILDS) {
+ mocinclude.target = $$INCLUDETEMP
+ mocinclude.commands = $$RET
+ QMAKE_EXTRA_TARGETS += mocinclude
+ }
+}
+
+defineReplace(mocCmd) {
+ !isEmpty(WIN_INCLUDETEMP) {
RET =
- for(incfile, $$list($$INCPATH)) {
- INCFILELIST = -I$$incfile
- isEmpty(RET): RET += @echo $$INCFILELIST> $$INCLUDETEMP $$EOC
- else: RET += @echo $$INCFILELIST>> $$INCLUDETEMP $$EOC
+ if(contains(TEMPLATE, "vc.*")|contains(TEMPLATE_PREFIX, "vc")) {
+ RET += $$mocinclude.commands
}
- !isEmpty(INCFILELIST):RET += @echo $$INCFILELIST>> $$INCLUDETEMP $$EOC
- RET += $$QMAKE_MOC $(DEFINES) @$$INCLUDETEMP $$join(QMAKE_COMPILER_DEFINES, " -D", -D) $$1 -o $$2
+ RET += $$QMAKE_MOC $(DEFINES) @$$WIN_INCLUDETEMP $$join(QMAKE_COMPILER_DEFINES, " -D", -D) $$1 -o $$2
return($$RET)
}
return($$QMAKE_MOC $(DEFINES) $(INCPATH) $$join(QMAKE_COMPILER_DEFINES, " -D", -D) $$1 -o $$2)
@@ -45,6 +65,7 @@ moc_header.output = $$MOC_DIR/$${QMAKE_H_MOD_MOC}${QMAKE_FILE_BASE}$${first(QMAK
moc_header.input = HEADERS
moc_header.variable_out = SOURCES
moc_header.name = MOC ${QMAKE_FILE_IN}
+!isEmpty(INCLUDETEMP):moc_header.depends += $$INCLUDETEMP
silent:moc_header.commands = @echo moc ${QMAKE_FILE_IN} && $$moc_header.commands
QMAKE_EXTRA_COMPILERS += moc_header
INCREDIBUILD_XGE += moc_header
@@ -56,6 +77,7 @@ moc_source.commands = ${QMAKE_FUNC_mocCmd}
moc_source.output = $$MOC_DIR/$${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_EXT_CPP_MOC}
moc_source.input = SOURCES OBJECTIVE_SOURCES
moc_source.name = MOC ${QMAKE_FILE_IN}
+!isEmpty(INCLUDETEMP):moc_source.depends += $$INCLUDETEMP
silent:moc_source.commands = @echo moc ${QMAKE_FILE_IN} && $$moc_source.commands
QMAKE_EXTRA_COMPILERS += moc_source
INCREDIBUILD_XGE += moc_source
diff --git a/mkspecs/features/uic.prf b/mkspecs/features/uic.prf
index 0c7fb1b..d2985f9 100644
--- a/mkspecs/features/uic.prf
+++ b/mkspecs/features/uic.prf
@@ -34,10 +34,12 @@ isEmpty(QMAKE_MOD_UIC):QMAKE_MOD_UIC = ui_
INCREDIBUILD_XGE += uic
}
-ui_dir_short = $$UI_HEADERS_DIR
-win32:ui_dir_short ~= s,^.:,/,
-contains(ui_dir_short, ^[/\\\\].*):INCLUDEPATH += $$UI_HEADERS_DIR
-else:INCLUDEPATH += $$OUT_PWD/$$UI_HEADERS_DIR
+!isEmpty(FORMS)|!isEmpty(FORMS3) {
+ ui_dir_short = $$UI_HEADERS_DIR
+ win32:ui_dir_short ~= s,^.:,/,
+ contains(ui_dir_short, ^[/\\\\].*):INCLUDEPATH += $$UI_HEADERS_DIR
+ else:INCLUDEPATH += $$OUT_PWD/$$UI_HEADERS_DIR
+}
# Backwards compatibility: Make shadow builds with default UI_DIR work
# if the user did not add the source dir explicitly.
diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp
index 60a27be..87f55cf 100644
--- a/qmake/generators/win32/winmakefile.cpp
+++ b/qmake/generators/win32/winmakefile.cpp
@@ -432,9 +432,21 @@ void Win32MakefileGenerator::processRcFileVar()
writeRcFile = rcFile.readAll() != rcString;
rcFile.close();
}
- if (writeRcFile && rcFile.open(QFile::WriteOnly)) {
- rcFile.write(rcString);
- rcFile.close();
+ if (writeRcFile) {
+ bool ok;
+ ok = rcFile.open(QFile::WriteOnly);
+ if (!ok) {
+ // The file can't be opened... try creating the containing
+ // directory first (needed for clean shadow builds)
+ QDir().mkpath(QFileInfo(rcFile).path());
+ ok = rcFile.open(QFile::WriteOnly);
+ }
+ if (!ok) {
+ ::fprintf(stderr, "Cannot open for writing: %s", rcFile.fileName().toLatin1().constData());
+ ::exit(1);
+ }
+ rcFile.write(rcString);
+ rcFile.close();
}
if (project->values("QMAKE_WRITE_DEFAULT_RC").isEmpty())
project->values("RC_FILE").insert(0, rcFile.fileName());
diff --git a/qmake/project.cpp b/qmake/project.cpp
index eef32db..00bb2f0 100644
--- a/qmake/project.cpp
+++ b/qmake/project.cpp
@@ -57,7 +57,7 @@
#include <unistd.h>
#include <sys/utsname.h>
#elif defined(Q_OS_WIN32)
-#include <Windows.h>
+#include <windows.h>
#endif
#include <stdio.h>
#include <stdlib.h>
diff --git a/src/3rdparty/phonon/ds9/mediaobject.cpp b/src/3rdparty/phonon/ds9/mediaobject.cpp
index 93a19b0..1d0b69d 100644
--- a/src/3rdparty/phonon/ds9/mediaobject.cpp
+++ b/src/3rdparty/phonon/ds9/mediaobject.cpp
@@ -519,6 +519,15 @@ namespace Phonon
qSwap(m_graphs[0], m_graphs[1]); //swap the graphs
+ if (currentGraph()->mediaSource().type() != Phonon::MediaSource::Invalid &&
+ catchComError(currentGraph()->renderResult())) {
+ setState(Phonon::ErrorState);
+ return;
+ }
+
+ //we need to play the next media
+ play();
+
//we tell the video widgets to switch now to the new source
#ifndef QT_NO_PHONON_VIDEO
for (int i = 0; i < m_videoWidgets.count(); ++i) {
@@ -527,15 +536,6 @@ namespace Phonon
#endif //QT_NO_PHONON_VIDEO
emit currentSourceChanged(currentGraph()->mediaSource());
-
- if (currentGraph()->isLoading()) {
- //will simply tell that when loading is finished
- //it should start the playback
- play();
- }
-
-
-
emit metaDataChanged(currentGraph()->metadata());
if (nextGraph()->hasVideo() != currentGraph()->hasVideo()) {
@@ -548,15 +548,6 @@ namespace Phonon
#ifndef QT_NO_PHONON_MEDIACONTROLLER
setTitles(currentGraph()->titles());
#endif //QT_NO_PHONON_MEDIACONTROLLER
-
- //this manages only gapless transitions
- if (currentGraph()->mediaSource().type() != Phonon::MediaSource::Invalid) {
- if (catchComError(currentGraph()->renderResult())) {
- setState(Phonon::ErrorState);
- } else {
- play();
- }
- }
}
Phonon::State MediaObject::state() const
diff --git a/src/3rdparty/webkit/ChangeLog b/src/3rdparty/webkit/ChangeLog
index ec8242d..76cfc80 100644
--- a/src/3rdparty/webkit/ChangeLog
+++ b/src/3rdparty/webkit/ChangeLog
@@ -1,3 +1,11 @@
+2009-04-24 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Ariya Hidayat.
+
+ Added support for generating API docs in the Qt build using "make docs"
+
+ * WebKit.pro: Include docs.pri for "make docs" target.
+
2008-12-19 Marco Barisione <marco.barisione@collabora.co.uk>
Reviewed by Holger Freyther.
diff --git a/src/3rdparty/webkit/JavaScriptCore/ChangeLog b/src/3rdparty/webkit/JavaScriptCore/ChangeLog
index fe85bb9..3321570 100644
--- a/src/3rdparty/webkit/JavaScriptCore/ChangeLog
+++ b/src/3rdparty/webkit/JavaScriptCore/ChangeLog
@@ -1,3 +1,60 @@
+2009-01-22 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ <rdar://problem/6516853> (r39682-r39736) JSFunFuzz: crash on "(function(){({ x2: x }), })()"
+ <https://bugs.webkit.org/show_bug.cgi?id=23479>
+
+ Automatic semicolon insertion was resulting in this being accepted in the initial
+ nodeless parsing, but subsequent reparsing for code generation would fail, leading
+ to a crash. The solution is to ensure that reparsing a function performs parsing
+ in the same state as the initial parse. We do this by modifying the saved source
+ ranges to include rather than exclude the opening and closing braces.
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::reparseForExceptionInfoIfNecessary): add an assertion for successful recompile
+ * parser/Lexer.h:
+ (JSC::Lexer::sourceCode): include rather than exclude braces.
+ * parser/Nodes.h:
+ (JSC::FunctionBodyNode::toSourceString): No need to append braces anymore.
+
+2009-01-21 Alexey Proskuryakov <ap@webkit.org>
+
+ Suggested by Oliver Hunt. Reviewed by Oliver Hunt.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23456
+ Function argument names leak
+
+ * parser/Nodes.cpp: (JSC::FunctionBodyNode::~FunctionBodyNode): Destruct parameter names.
+
+2009-01-22 Beth Dakin <bdakin@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Fix for https://bugs.webkit.org/show_bug.cgi?id=23461 LayoutTests/
+ fast/js/numeric-conversion.html is broken, and corresponding
+ <rdar://problem/6514842>
+
+ The basic problem here is that parseInt(Infinity) should be NaN,
+ but we were returning 0. NaN matches Safari 3.2.1 and Firefox.
+
+ * runtime/JSGlobalObjectFunctions.cpp:
+ (JSC::globalFuncParseInt):
+
+2009-01-13 Beth Dakin <bdakin@apple.com>
+
+ Reviewed by Darin Adler and Oliver Hunt.
+
+ <rdar://problem/6489314> REGRESSION: Business widget's front side
+ fails to render correctly when flipping widget
+
+ The problem here is that parseInt was parsing NaN as 0. This patch
+ corrects that by parsing NaN as NaN. This matches our old behavior
+ and Firefox.
+
+ * runtime/JSGlobalObjectFunctions.cpp:
+ (JSC::globalFuncParseInt):
+
2009-02-13 Adam Treat <adam.treat@torchmobile.com>
Reviewed by George Staikos.
diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.cpp b/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.cpp
index 91fb1c0..9207c8a 100644
--- a/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.cpp
@@ -1397,6 +1397,7 @@ void CodeBlock::reparseForExceptionInfoIfNecessary(CallFrame* callFrame)
case FunctionCode: {
FunctionBodyNode* ownerFunctionBodyNode = static_cast<FunctionBodyNode*>(m_ownerNode);
RefPtr<FunctionBodyNode> newFunctionBody = m_globalData->parser->reparse<FunctionBodyNode>(m_globalData, ownerFunctionBodyNode);
+ ASSERT(newFunctionBody);
newFunctionBody->finishParsing(ownerFunctionBodyNode->copyParameters(), ownerFunctionBodyNode->parameterCount());
CodeBlock& newCodeBlock = newFunctionBody->bytecodeForExceptionInfoReparse(scopeChain);
ASSERT(newCodeBlock.m_exceptionInfo);
diff --git a/src/3rdparty/webkit/JavaScriptCore/parser/Lexer.h b/src/3rdparty/webkit/JavaScriptCore/parser/Lexer.h
index cb553af..afcf09f 100644
--- a/src/3rdparty/webkit/JavaScriptCore/parser/Lexer.h
+++ b/src/3rdparty/webkit/JavaScriptCore/parser/Lexer.h
@@ -88,7 +88,7 @@ namespace JSC {
bool sawError() const { return m_error; }
void clear();
- SourceCode sourceCode(int openBrace, int closeBrace, int firstLine) { return SourceCode(m_source->provider(), openBrace + 1, closeBrace, firstLine); }
+ SourceCode sourceCode(int openBrace, int closeBrace, int firstLine) { return SourceCode(m_source->provider(), openBrace, closeBrace + 1, firstLine); }
private:
friend class JSGlobalData;
diff --git a/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp b/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp
index bdc5d2f..201af28 100644
--- a/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp
@@ -2552,6 +2552,8 @@ FunctionBodyNode::FunctionBodyNode(JSGlobalData* globalData, SourceElements* chi
FunctionBodyNode::~FunctionBodyNode()
{
ASSERT(!m_refCount);
+ for (size_t i = 0; i < m_parameterCount; ++i)
+ m_parameters[i].~Identifier();
fastFree(m_parameters);
}
diff --git a/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.h b/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.h
index f8512f7..20885c3 100644
--- a/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.h
+++ b/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.h
@@ -2205,7 +2205,7 @@ namespace JSC {
void finishParsing(const SourceCode&, ParameterNode*);
void finishParsing(Identifier* parameters, size_t parameterCount);
- UString toSourceString() const JSC_FAST_CALL { return UString("{") + source().toString() + UString("}"); }
+ UString toSourceString() const JSC_FAST_CALL { return source().toString(); }
// These objects are ref/deref'd a lot in the scope chain, so this is a faster ref/deref.
// If the virtual machine changes so this doesn't happen as much we can change back.
diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp
index f12d2f3..ecdddcf 100644
--- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp
@@ -302,9 +302,11 @@ JSValuePtr globalFuncParseInt(ExecState* exec, JSObject*, JSValuePtr, const ArgL
if (JSImmediate::isImmediate(value))
return value;
double d = value->uncheckedGetNumber();
- if (!isfinite(d))
- return JSImmediate::zeroImmediate();
- return jsNumber(exec, floor(d));
+ if (isfinite(d))
+ return jsNumber(exec, floor(d));
+ if (isnan(d) || isinf(d))
+ return jsNaN(&exec->globalData());
+ return JSImmediate::zeroImmediate();
}
return jsNumber(exec, parseInt(value->toString(exec), radix));
diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION
index 9decb66..26ce489 100644
--- a/src/3rdparty/webkit/VERSION
+++ b/src/3rdparty/webkit/VERSION
@@ -8,4 +8,4 @@ The commit imported was from the
and has the sha1 checksum
- f72c14123c593dc9d649d25b7186334bba0026b5
+ a6ebe3865025e2bb4d767a79435af4daf5a9b4db
diff --git a/src/3rdparty/webkit/WebCore/ChangeLog b/src/3rdparty/webkit/WebCore/ChangeLog
index d0382f2..00bd427 100644
--- a/src/3rdparty/webkit/WebCore/ChangeLog
+++ b/src/3rdparty/webkit/WebCore/ChangeLog
@@ -1,3 +1,168 @@
+2009-03-13 Adam Bergkvist <adam.bergkvist@ericsson.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24349
+ [QT] HTTP status text is never set
+
+ Set HTTP status text to the reason phrase attribute of QNetworkReply.
+
+ * platform/network/qt/QNetworkReplyHandler.cpp:
+ (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
+
+2009-03-02 Dirk Schulze <krit@webkit.org>
+
+ Reviewed by Holger Freyther.
+
+ Added putImageData to Qt. Discussed with Ariya Hidayat.
+
+ [Qt] lacks putImageData support in Canvas
+ https://bugs.webkit.org/show_bug.cgi?id=22186
+
+ * platform/graphics/qt/ImageBufferQt.cpp:
+ (WebCore::ImageBuffer::putImageData):
+
+2009-03-01 Larry Ewing <lewing@novell.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24080
+ NPN_GetValue casting to the wrong type and writing outside bounds
+
+ Make sure to cast the value to the correct type so that only
+ memory owned by the value is written to.
+
+ * plugins/gtk/PluginViewGtk.cpp (PluginView::getValueStatic):
+ * plugins/qt/PluginViewQt.cpp (PluginView::getValueStatic):
+ * plugins/mac/PluginViewMac.cpp (PluginView::getValueStatic):
+ (PluginView::getValue):
+
+2009-02-27 Adam Treat <adam.treat@torchmobile.com>
+
+ Reviewed by Eric Seidel.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24229
+ If an image has no alpha channel there is no reason to use SourceOver.
+
+ * platform/graphics/qt/ImageQt.cpp:
+ (WebCore::Image::drawPattern):
+ (WebCore::BitmapImage::draw):
+
+2009-02-27 Zack Rusin <zack@kde.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ Qt: be more reasonable about scrolled lines
+
+ cMouseWheelPixelsPerLineStep is currently a constant set to 13.3. it doesn't
+ match our metrics meaning that Qt scrolls by ~2 lines by default which is quite
+ irritating. so lets scroll vertically by the Qt set number of lines * Qt default
+ single step scroll
+
+ * platform/qt/WheelEventQt.cpp:
+
+2009-02-25 Dirk Schulze <krit@webkit.org>
+
+ Reviewed by Oliver Hunt.
+
+ Ported arcTo to Qt. Qt has no native support for arcTo. This changes
+ calculate the behavior of arcTo and draws it with lineTo and arc.
+
+ [QT] implement Canvas arcTo
+ https://bugs.webkit.org/show_bug.cgi?id=23873
+
+ * platform/graphics/qt/PathQt.cpp:
+ (WebCore::Path::addArcTo):
+
+2009-03-12 Adam Treat <adam.treat@torchmobile.com>
+
+ Reviewed by Oliver Hunt.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24498
+ Fix the Qt port to use the same algorithm for drawing dashed and dotted
+ borders as the other ports. This makes the Qt port pixel-for-pixel perfect
+ compared to border drawing with Apple's canonical mac port and much closer
+ to konqueror and firefox behavior.
+
+ * platform/graphics/qt/GraphicsContextQt.cpp:
+ (WebCore::GraphicsContext::drawLine):
+
+2009-03-09 Adam Treat <adam.treat@torchmobile.com>
+
+ Reviewed by George Staikos.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24463
+ WebCore::qstring is detaching and copying twice for every single
+ WebCore::TextRun that is processed and drawn. This elevates this method
+ to one of the top-ten most expensive methods in all of QtWebKit according
+ to profiling. This changes the method so that QString only detaches
+ when absolutely necessary.
+
+ * platform/graphics/qt/FontQt.cpp:
+ (WebCore::qstring):
+ (WebCore::fixSpacing):
+ (WebCore::Font::drawComplexText):
+ (WebCore::Font::floatWidthForComplexText):
+ (WebCore::Font::offsetForPositionForComplexText):
+ (WebCore::Font::selectionRectForComplexText):
+
+2009-02-04 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Unreviewed Qt build fix.
+
+ Changed ASSERT(image) to ASSERT(!image.isNull()).
+
+ * platform/graphics/qt/ImageBufferQt.cpp:
+ (WebCore::ImageBuffer::getImageData):
+
+2009-02-03 Dirk Schulze <krit@webkit.org>
+
+ Reviewed by Sam Weinig.
+
+ This is a follow up of r40546. Call toImage() once speeds up ImageBuffer::getImageData()
+
+ * platform/graphics/qt/ImageBufferQt.cpp:
+ (WebCore::ImageBuffer::getImageData):
+
+2009-02-03 Dirk Schulze <krit@webkit.org>
+
+ Reviewed by Sam Weinig and Oliver Hunt.
+
+ Added getImageData() support for QtWebKit.
+
+ [QT] lacks getImageData / putImageData support in Canvas
+ https://bugs.webkit.org/show_bug.cgi?id=22186
+
+ * platform/graphics/qt/ImageBufferQt.cpp:
+ (WebCore::ImageBuffer::getImageData):
+
+2009-04-14 Benjamin C Meyer <benjamin.meyer@torchmobile.com>
+
+ Reviewed by George Staikos.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25099
+
+ When creating a QNetworkRequest make sure to populate the
+ CacheLoadControlAttribute with the value set by the ResourceRequest::cachePolicy() so that the cache will be used as WebKit expects.
+
+ * WebKit/qt/tests/qwebpage/tst_qwebpage.cpp:
+ (tst_QWebPage::requestCache):
+
+ * platform/network/qt/ResourceRequestQt.cpp:
+ (WebCore::ResourceRequest::toNetworkRequest):
+
+2009-04-07 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Darin Adler
+
+ While working on <rdar://problem/5968249>, noticed some glaring problems with LocalStorage.
+
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::localStorage): Return the cached m_localStorage object if it exists to
+ avoid creating multiple representations for the same underlying StorageArea.
+ * page/DOMWindow.h:
+ (WebCore::DOMWindow::optionalLocalStorage): Return m_localStorage, not m_sessionStorage.
+
2009-04-06 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed by Simon Hausmann.
diff --git a/src/3rdparty/webkit/WebCore/generated/CSSPropertyNames.cpp b/src/3rdparty/webkit/WebCore/generated/CSSPropertyNames.cpp
index ca4ea5a..25313ac 100644
--- a/src/3rdparty/webkit/WebCore/generated/CSSPropertyNames.cpp
+++ b/src/3rdparty/webkit/WebCore/generated/CSSPropertyNames.cpp
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.0.2 */
+/* ANSI-C code produced by gperf version 3.0.3 */
/* Command-line: gperf -a -L ANSI-C -E -C -c -o -t --key-positions='*' -NfindProp -Hhash_prop -Wwordlist_prop -D -s 2 CSSPropertyNames.gperf */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -217,6 +217,9 @@ hash_prop (register const char *str, register unsigned int len)
#ifdef __GNUC__
__inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
#endif
const struct props *
findProp (register const char *str, register unsigned int len)
diff --git a/src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.c b/src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.c
index d0433e0..5ff0858 100644
--- a/src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.c
+++ b/src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.c
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.0.2 */
+/* ANSI-C code produced by gperf version 3.0.3 */
/* Command-line: gperf -L ANSI-C -E -C -n -o -t --key-positions='*' -NfindValue -Hhash_val -Wwordlist_value -D CSSValueKeywords.gperf */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -179,6 +179,9 @@ hash_val (register const char *str, register unsigned int len)
#ifdef __GNUC__
__inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
#endif
const struct css_value *
findValue (register const char *str, register unsigned int len)
diff --git a/src/3rdparty/webkit/WebCore/generated/ColorData.c b/src/3rdparty/webkit/WebCore/generated/ColorData.c
index 18d9926..478566c 100644
--- a/src/3rdparty/webkit/WebCore/generated/ColorData.c
+++ b/src/3rdparty/webkit/WebCore/generated/ColorData.c
@@ -1,5 +1,5 @@
#include <string.h>// bogus
-/* ANSI-C code produced by gperf version 3.0.2 */
+/* ANSI-C code produced by gperf version 3.0.3 */
/* Command-line: gperf -CDEot -L ANSI-C --key-positions='*' -N findColor -D -s 2 */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -141,6 +141,9 @@ hash (register const char *str, register unsigned int len)
#ifdef __GNUC__
__inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
#endif
const struct NamedColor *
findColor (register const char *str, register unsigned int len)
diff --git a/src/3rdparty/webkit/WebCore/generated/DocTypeStrings.cpp b/src/3rdparty/webkit/WebCore/generated/DocTypeStrings.cpp
index ad63b9e..686629c 100644
--- a/src/3rdparty/webkit/WebCore/generated/DocTypeStrings.cpp
+++ b/src/3rdparty/webkit/WebCore/generated/DocTypeStrings.cpp
@@ -1,5 +1,5 @@
#include <string.h>// bogus
-/* ANSI-C code produced by gperf version 3.0.2 */
+/* ANSI-C code produced by gperf version 3.0.3 */
/* Command-line: gperf -CEot -L ANSI-C --key-positions='*' -N findDoctypeEntry -F ,PubIDInfo::eAlmostStandards,PubIDInfo::eAlmostStandards */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -331,6 +331,9 @@ hash (register const char *str, register unsigned int len)
#ifdef __GNUC__
__inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
#endif
const struct PubIDInfo *
findDoctypeEntry (register const char *str, register unsigned int len)
diff --git a/src/3rdparty/webkit/WebCore/generated/HTMLEntityNames.c b/src/3rdparty/webkit/WebCore/generated/HTMLEntityNames.c
index 470c4cd..993e106 100644
--- a/src/3rdparty/webkit/WebCore/generated/HTMLEntityNames.c
+++ b/src/3rdparty/webkit/WebCore/generated/HTMLEntityNames.c
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.0.2 */
+/* ANSI-C code produced by gperf version 3.0.3 */
/* Command-line: gperf -a -L ANSI-C -C -G -c -o -t --key-positions='*' -N findEntity -D -s 2 */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -520,6 +520,9 @@ static const short lookup[] =
#ifdef __GNUC__
__inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
#endif
const struct Entity *
findEntity (register const char *str, register unsigned int len)
diff --git a/src/3rdparty/webkit/WebCore/generated/tokenizer.cpp b/src/3rdparty/webkit/WebCore/generated/tokenizer.cpp
index 1da1a0b..8462f51 100644
--- a/src/3rdparty/webkit/WebCore/generated/tokenizer.cpp
+++ b/src/3rdparty/webkit/WebCore/generated/tokenizer.cpp
@@ -78,42 +78,42 @@ static yyconst flex_int16_t yy_accept[479] =
{ 0,
0, 0, 0, 0, 0, 0, 69, 67, 2, 2,
67, 67, 67, 67, 67, 67, 67, 67, 67, 56,
- 67, 67, 67, 67, 15, 15, 15, 67, 67, 66,
+ 67, 67, 15, 15, 15, 67, 67, 67, 67, 66,
15, 15, 15, 65, 15, 2, 0, 0, 0, 14,
- 0, 0, 0, 0, 18, 18, 8, 0, 0, 9,
- 0, 0, 0, 15, 15, 15, 57, 0, 55, 0,
- 0, 56, 0, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 16, 54, 54, 51, 54, 0, 0,
- 0, 35, 35, 35, 35, 35, 35, 35, 15, 15,
- 7, 62, 15, 0, 0, 15, 15, 0, 15, 6,
+ 0, 0, 0, 18, 18, 0, 8, 0, 0, 9,
+ 0, 0, 15, 15, 15, 0, 57, 0, 55, 0,
+ 0, 56, 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 16, 54, 54, 51, 54, 0, 54, 0, 0,
+ 35, 35, 35, 35, 35, 35, 35, 0, 62, 15,
+ 0, 0, 15, 15, 0, 15, 15, 15, 7, 6,
5, 15, 15, 15, 15, 0, 0, 0, 14, 0,
- 0, 0, 18, 18, 18, 0, 18, 0, 0, 14,
- 0, 0, 4, 16, 15, 0, 0, 54, 54, 54,
- 0, 54, 41, 54, 37, 39, 54, 52, 43, 54,
- 42, 50, 54, 45, 44, 40, 54, 54, 0, 35,
- 35, 35, 35, 0, 35, 35, 35, 35, 35, 35,
- 15, 15, 15, 16, 15, 15, 63, 63, 15, 12,
- 10, 15, 13, 0, 0, 0, 17, 18, 18, 18,
- 17, 0, 0, 15, 0, 1, 54, 54, 54, 54,
- 46, 54, 53, 16, 47, 54, 3, 35, 35, 35,
-
- 35, 35, 35, 35, 35, 35, 35, 15, 15, 58,
- 0, 63, 63, 63, 62, 11, 0, 0, 0, 18,
- 18, 18, 0, 15, 0, 0, 54, 54, 54, 48,
- 49, 35, 35, 35, 35, 35, 35, 35, 35, 20,
- 15, 15, 64, 63, 63, 63, 63, 0, 0, 0,
- 0, 60, 0, 0, 0, 0, 18, 18, 18, 0,
- 15, 54, 54, 38, 35, 35, 35, 35, 35, 35,
- 21, 35, 15, 15, 64, 63, 63, 63, 63, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,
- 0, 0, 0, 0, 17, 18, 18, 17, 0, 15,
-
- 54, 54, 35, 35, 35, 35, 35, 19, 35, 15,
- 15, 64, 63, 63, 63, 63, 63, 63, 0, 59,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 18, 18, 0, 15, 54, 54, 35,
- 35, 35, 23, 35, 35, 15, 64, 63, 63, 63,
+ 0, 0, 18, 18, 0, 18, 18, 0, 0, 14,
+ 0, 0, 4, 16, 15, 0, 0, 54, 0, 41,
+ 54, 37, 39, 54, 52, 43, 54, 42, 50, 54,
+ 45, 44, 40, 54, 54, 54, 54, 54, 0, 35,
+ 35, 0, 35, 35, 35, 35, 35, 35, 35, 35,
+ 15, 15, 16, 15, 15, 63, 63, 15, 15, 12,
+ 10, 15, 13, 0, 0, 0, 17, 17, 18, 18,
+ 18, 0, 0, 15, 0, 1, 54, 54, 46, 54,
+ 53, 16, 47, 54, 54, 54, 3, 35, 35, 35,
+
+ 35, 35, 35, 35, 35, 35, 35, 15, 58, 0,
+ 63, 63, 63, 62, 15, 11, 0, 0, 0, 18,
+ 18, 18, 0, 15, 0, 0, 54, 48, 49, 54,
+ 54, 35, 35, 35, 35, 35, 35, 35, 20, 35,
+ 15, 64, 63, 63, 63, 63, 0, 0, 0, 0,
+ 60, 0, 15, 0, 0, 0, 18, 18, 18, 0,
+ 15, 54, 54, 38, 35, 35, 35, 35, 35, 21,
+ 35, 35, 15, 64, 63, 63, 63, 63, 63, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 60, 0,
+ 0, 15, 0, 0, 17, 17, 18, 18, 0, 15,
+
+ 54, 54, 35, 35, 35, 35, 19, 35, 35, 15,
+ 64, 63, 63, 63, 63, 63, 63, 0, 59, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 15, 0, 0, 18, 18, 0, 15, 54, 54, 35,
+ 35, 23, 35, 35, 35, 15, 64, 63, 63, 63,
63, 63, 63, 63, 0, 59, 0, 0, 0, 59,
0, 0, 0, 0, 18, 15, 54, 35, 35, 35,
35, 64, 0, 0, 0, 36, 15, 35, 35, 35,
@@ -122,7 +122,7 @@ static yyconst flex_int16_t yy_accept[479] =
35, 35, 35, 35, 35, 35, 35, 35, 0, 0,
0, 0, 0, 0, 35, 35, 35, 35, 25, 35,
- 35, 35, 0, 0, 0, 61, 0, 0, 26, 35,
+ 35, 35, 0, 61, 0, 0, 0, 0, 26, 35,
35, 35, 35, 27, 35, 0, 0, 0, 0, 31,
35, 35, 35, 35, 0, 0, 0, 35, 35, 35,
35, 0, 0, 35, 35, 29, 35, 0, 0, 35,
@@ -138,437 +138,909 @@ static yyconst flex_int32_t yy_ec[256] =
1, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 12, 18, 19, 20, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 12, 22, 23,
- 24, 25, 26, 27, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- 12, 28, 12, 29, 30, 12, 31, 32, 33, 34,
-
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 12, 59, 1, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
-
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 12, 54, 12, 55, 56, 12, 57, 58, 59, 60,
+
+ 61, 62, 63, 64, 65, 37, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 12, 84, 1, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85
} ;
-static yyconst flex_int32_t yy_meta[61] =
+static yyconst flex_int32_t yy_meta[86] =
{ 0,
- 1, 2, 3, 3, 3, 4, 5, 5, 5, 5,
- 5, 5, 5, 6, 7, 5, 5, 8, 5, 5,
- 9, 5, 5, 5, 5, 10, 5, 11, 5, 11,
- 12, 12, 12, 12, 12, 12, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 5, 5, 5, 11
+ 1, 2, 3, 4, 4, 5, 6, 7, 6, 6,
+ 6, 6, 7, 8, 9, 6, 6, 10, 6, 6,
+ 11, 6, 6, 6, 6, 12, 6, 13, 13, 13,
+ 13, 13, 13, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 6, 14, 13, 13, 13, 13,
+ 13, 13, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 6, 6, 6, 14
} ;
-static yyconst flex_int16_t yy_base[517] =
+static yyconst flex_int16_t yy_base[550] =
{ 0,
- 0, 0, 39, 41, 1573, 1566, 1594, 2399, 62, 71,
- 76, 61, 69, 1560, 78, 1559, 89, 1561, 1565, 132,
- 1573, 91, 123, 1555, 80, 104, 97, 1554, 1551, 2399,
- 85, 176, 175, 2399, 177, 193, 204, 1531, 84, 2399,
- 242, 110, 180, 196, 1545, 205, 2399, 113, 277, 2399,
- 1547, 72, 221, 133, 206, 234, 181, 1555, 1548, 1530,
- 1528, 0, 268, 118, 1515, 221, 60, 240, 92, 230,
- 95, 223, 244, 267, 238, 286, 1512, 268, 1521, 279,
- 294, 1510, 278, 190, 290, 232, 292, 293, 308, 335,
- 2399, 2399, 317, 326, 1516, 351, 336, 356, 366, 2399,
-
- 2399, 320, 367, 369, 370, 1478, 393, 327, 345, 420,
- 455, 398, 1495, 490, 1481, 446, 481, 372, 365, 386,
- 525, 560, 2399, 325, 388, 1491, 387, 1477, 595, 1476,
- 516, 399, 1475, 34, 1472, 1461, 378, 1438, 1430, 318,
- 1429, 1426, 323, 1424, 1423, 1422, 231, 387, 1430, 377,
- 1411, 630, 1396, 551, 382, 108, 415, 408, 419, 412,
- 586, 436, 665, 1400, 624, 456, 419, 1382, 457, 490,
- 491, 625, 492, 1362, 526, 656, 672, 681, 1378, 716,
- 707, 527, 723, 561, 1374, 2399, 732, 1346, 767, 437,
- 1322, 410, 1312, 445, 1311, 546, 2399, 469, 758, 1303,
-
- 802, 576, 482, 580, 470, 440, 472, 793, 809, 2399,
- 818, 515, 1288, 1273, 853, 552, 1205, 839, 855, 861,
- 877, 883, 899, 645, 1227, 483, 905, 921, 612, 1183,
- 1168, 609, 927, 943, 626, 517, 628, 508, 629, 1167,
- 949, 965, 971, 550, 1167, 1157, 1123, 1006, 1020, 666,
- 682, 2399, 1047, 1091, 1006, 1038, 1055, 1063, 1071, 1079,
- 632, 1087, 1095, 1105, 539, 1103, 1111, 542, 543, 681,
- 1097, 683, 1119, 1127, 1135, 585, 1091, 1083, 1067, 1039,
- 721, 752, 772, 1170, 717, 1205, 1184, 1217, 1244, 1258,
- 1285, 1320, 984, 1244, 2399, 1276, 1311, 917, 1328, 767,
-
- 1336, 1344, 733, 1352, 1360, 734, 578, 899, 582, 1395,
- 1381, 1397, 623, 853, 822, 794, 793, 760, 807, 2399,
- 875, 788, 1432, 1459, 1494, 818, 769, 1440, 1529, 1564,
- 1438, 702, 1485, 919, 1520, 1555, 849, 963, 1572, 587,
- 1299, 1580, 706, 441, 614, 1615, 1601, 715, 2399, 2399,
- 2399, 2399, 2399, 2399, 1473, 839, 856, 1617, 1652, 804,
- 852, 1638, 1654, 633, 1480, 871, 1508, 1650, 1542, 644,
- 834, 1673, 1679, 1695, 1701, 2399, 1015, 872, 915, 916,
- 877, 959, 704, 616, 586, 2399, 1717, 1723, 1739, 1002,
- 1148, 514, 961, 989, 990, 1016, 1745, 1761, 1767, 1802,
-
- 1137, 1008, 1018, 1017, 985, 1129, 878, 1038, 1790, 1806,
- 1829, 1211, 1827, 1849, 944, 1057, 1152, 787, 584, 615,
- 1196, 918, 1863, 1890, 1279, 2399, 1869, 1867, 516, 1199,
- 1154, 943, 1242, 515, 653, 1904, 1906, 1941, 1968, 480,
- 945, 1200, 1149, 1214, 1927, 1949, 1947, 1239, 1301, 1207,
- 1302, 1974, 1990, 1392, 1267, 411, 1354, 1996, 2012, 1310,
- 376, 1241, 1039, 2018, 2034, 1338, 348, 1377, 2040, 1216,
- 1391, 1421, 1394, 324, 1226, 1376, 263, 2399, 2075, 2080,
- 2091, 2096, 2101, 2110, 2117, 2128, 2137, 2142, 2153, 2165,
- 2167, 2176, 2181, 2190, 2195, 2204, 2213, 2225, 2234, 2243,
-
- 2248, 2260, 2265, 2276, 2281, 2292, 2303, 2314, 2319, 2330,
- 2341, 2346, 2357, 2366, 2377, 2386
+ 0, 0, 64, 66, 54, 56, 1407, 6578, 93, 98,
+ 107, 83, 155, 1376, 77, 1350, 99, 1345, 1328, 207,
+ 1334, 275, 100, 108, 125, 326, 1315, 1313, 1312, 6578,
+ 141, 110, 151, 6578, 105, 197, 295, 89, 107, 6578,
+ 387, 120, 0, 429, 1281, 471, 6578, 117, 532, 6578,
+ 1283, 269, 137, 176, 281, 574, 283, 1289, 1292, 1246,
+ 1257, 0, 1221, 249, 135, 282, 276, 153, 91, 169,
+ 299, 308, 318, 266, 1219, 320, 616, 102, 1246, 348,
+ 1209, 316, 127, 359, 346, 347, 375, 658, 6578, 208,
+ 700, 1241, 400, 409, 1220, 397, 327, 761, 6578, 6578,
+
+ 6578, 411, 419, 414, 424, 248, 368, 355, 356, 822,
+ 883, 0, 1191, 925, 967, 1190, 1028, 381, 421, 464,
+ 1089, 1150, 6578, 214, 456, 1225, 312, 1151, 1192, 1142,
+ 442, 1139, 1134, 452, 1131, 1104, 458, 1082, 1060, 358,
+ 1046, 1028, 1027, 462, 453, 1000, 1253, 469, 1023, 463,
+ 986, 1295, 492, 486, 500, 484, 502, 513, 969, 1356,
+ 425, 1417, 1001, 545, 494, 193, 993, 543, 1459, 544,
+ 554, 558, 555, 508, 398, 1520, 0, 1562, 956, 1623,
+ 1684, 570, 1745, 563, 993, 6578, 948, 1806, 935, 520,
+ 921, 498, 914, 546, 1848, 564, 6578, 585, 913, 1909,
+
+ 568, 576, 586, 606, 631, 640, 1951, 2012, 6578, 0,
+ 203, 924, 907, 694, 2054, 565, 543, 2115, 0, 2157,
+ 2218, 2279, 2340, 669, 912, 505, 2401, 856, 840, 2443,
+ 612, 615, 2504, 608, 557, 639, 682, 668, 839, 2546,
+ 2607, 0, 288, 863, 841, 819, 741, 794, 573, 418,
+ 6578, 2668, 2710, 620, 2771, 0, 2813, 2874, 2935, 2996,
+ 3057, 3131, 3173, 3234, 670, 3295, 718, 719, 729, 763,
+ 684, 3337, 3398, 0, 456, 782, 777, 760, 742, 829,
+ 649, 834, 3459, 572, 3520, 854, 894, 915, 920, 3581,
+ 3642, 3684, 593, 3745, 6578, 697, 3806, 3867, 3928, 3989,
+
+ 4050, 4111, 730, 4172, 731, 683, 672, 759, 4214, 4275,
+ 0, 762, 682, 429, 417, 414, 411, 859, 6578, 650,
+ 838, 957, 4336, 4397, 607, 926, 988, 4458, 4519, 4580,
+ 1002, 672, 1010, 4622, 4664, 1042, 752, 4706, 4767, 756,
+ 4828, 376, 812, 847, 1069, 1033, 0, 387, 6578, 6578,
+ 6578, 6578, 6578, 6578, 1122, 924, 963, 4870, 1162, 1049,
+ 1050, 4912, 4973, 678, 1063, 850, 1074, 5005, 1103, 841,
+ 989, 0, 5062, 5104, 5146, 6578, 1066, 1080, 1081, 1084,
+ 1108, 1137, 877, 328, 273, 6578, 5188, 5230, 5272, 641,
+ 1140, 884, 916, 836, 1105, 1161, 5314, 5356, 1233, 1286,
+
+ 1147, 1138, 919, 1206, 1165, 1186, 1141, 1207, 1291, 1263,
+ 1316, 1345, 1327, 5398, 1086, 1029, 1225, 1133, 258, 1247,
+ 1248, 1310, 1388, 6578, 1427, 5440, 1449, 5501, 242, 1311,
+ 1341, 1324, 1326, 173, 1317, 1454, 5562, 1480, 5604, 170,
+ 1061, 1328, 1355, 1372, 1552, 5646, 5688, 1351, 1374, 1389,
+ 1409, 5730, 5772, 1419, 1456, 154, 1453, 5814, 5856, 1457,
+ 112, 897, 793, 5898, 1557, 1418, 109, 1348, 1582, 1550,
+ 1477, 1481, 1485, 90, 1564, 1458, 39, 6578, 5959, 5964,
+ 5977, 5982, 5987, 5994, 6004, 6017, 296, 6022, 6032, 6045,
+ 6059, 651, 6064, 6074, 6079, 6089, 6099, 6103, 571, 6112,
+
+ 6125, 6138, 6152, 6166, 6176, 6186, 6191, 6203, 657, 6217,
+ 758, 6222, 6234, 6247, 801, 6261, 859, 6266, 6278, 6291,
+ 6304, 6317, 6330, 1086, 6335, 6348, 1120, 6353, 6365, 6378,
+ 6391, 6404, 6417, 6430, 6435, 6448, 1216, 6453, 6465, 6478,
+ 6491, 6504, 6517, 1219, 1220, 6530, 6543, 6553, 6563
} ;
-static yyconst flex_int16_t yy_def[517] =
+static yyconst flex_int16_t yy_def[550] =
{ 0,
478, 1, 1, 1, 1, 1, 478, 478, 478, 478,
478, 479, 480, 478, 481, 478, 482, 478, 478, 478,
- 478, 483, 484, 478, 485, 485, 485, 478, 478, 478,
- 485, 485, 485, 478, 485, 478, 478, 478, 479, 478,
- 486, 480, 478, 487, 488, 488, 478, 481, 489, 478,
- 478, 478, 484, 485, 485, 485, 20, 490, 478, 491,
- 478, 20, 492, 493, 493, 493, 493, 493, 493, 493,
- 493, 493, 493, 493, 493, 493, 493, 493, 478, 483,
- 494, 495, 495, 495, 495, 495, 495, 495, 485, 485,
- 478, 478, 485, 496, 478, 485, 485, 478, 485, 478,
-
- 478, 485, 485, 485, 485, 478, 479, 479, 479, 479,
- 486, 478, 488, 46, 488, 497, 46, 481, 481, 481,
- 481, 489, 478, 478, 485, 490, 498, 493, 493, 493,
- 499, 493, 493, 493, 493, 493, 493, 493, 493, 493,
+ 478, 483, 484, 484, 484, 485, 478, 478, 478, 478,
+ 484, 484, 484, 478, 484, 478, 478, 478, 479, 478,
+ 486, 480, 487, 488, 488, 489, 478, 481, 490, 478,
+ 478, 478, 484, 484, 484, 485, 20, 491, 478, 492,
+ 478, 20, 493, 493, 493, 493, 493, 493, 493, 493,
+ 493, 493, 493, 493, 493, 493, 494, 493, 478, 483,
+ 495, 495, 495, 495, 495, 495, 495, 496, 478, 484,
+ 497, 478, 484, 484, 498, 484, 484, 484, 478, 478,
+
+ 478, 484, 484, 484, 484, 478, 479, 479, 479, 479,
+ 486, 499, 488, 488, 500, 488, 114, 501, 501, 501,
+ 501, 502, 478, 478, 484, 503, 504, 493, 505, 493,
+ 493, 493, 493, 493, 493, 493, 493, 493, 493, 493,
493, 493, 493, 493, 493, 493, 493, 493, 478, 495,
- 495, 495, 495, 500, 495, 495, 495, 495, 495, 495,
- 90, 485, 90, 478, 485, 485, 501, 478, 485, 485,
- 485, 485, 485, 478, 479, 110, 478, 114, 488, 114,
- 46, 481, 121, 485, 502, 478, 129, 493, 129, 493,
- 493, 493, 493, 493, 493, 493, 478, 495, 152, 495,
-
- 152, 495, 495, 495, 495, 495, 495, 90, 163, 478,
- 478, 503, 478, 478, 504, 485, 478, 110, 478, 114,
- 180, 46, 121, 485, 502, 498, 129, 189, 493, 493,
- 493, 495, 152, 201, 495, 495, 495, 495, 495, 495,
- 90, 163, 478, 505, 478, 478, 478, 504, 504, 506,
- 507, 478, 508, 478, 110, 478, 114, 180, 46, 121,
- 485, 129, 189, 493, 495, 152, 201, 495, 495, 495,
- 495, 495, 90, 163, 478, 509, 478, 478, 478, 478,
- 478, 506, 478, 510, 507, 511, 504, 504, 504, 504,
- 504, 508, 478, 110, 478, 114, 180, 488, 121, 485,
-
- 129, 189, 495, 152, 201, 495, 495, 495, 495, 485,
- 163, 478, 512, 478, 478, 478, 478, 478, 478, 478,
- 506, 506, 506, 506, 510, 507, 507, 507, 507, 511,
- 291, 478, 110, 488, 180, 121, 485, 493, 189, 495,
- 495, 201, 495, 495, 495, 485, 478, 478, 478, 478,
- 478, 478, 478, 478, 506, 506, 506, 324, 507, 507,
- 507, 329, 291, 478, 488, 485, 493, 495, 495, 495,
- 495, 478, 324, 329, 291, 478, 485, 495, 495, 495,
- 495, 495, 495, 495, 495, 478, 324, 329, 291, 485,
- 495, 495, 495, 495, 495, 495, 324, 329, 291, 513,
-
- 495, 495, 495, 495, 495, 495, 495, 495, 324, 329,
- 513, 411, 514, 515, 495, 495, 495, 495, 495, 495,
- 495, 495, 515, 515, 478, 478, 515, 516, 495, 495,
- 495, 495, 495, 495, 495, 515, 424, 515, 424, 495,
- 495, 495, 495, 495, 424, 515, 439, 495, 495, 495,
- 495, 424, 439, 495, 495, 495, 495, 424, 439, 495,
- 495, 495, 495, 424, 439, 495, 495, 495, 439, 495,
+ 495, 506, 495, 495, 495, 495, 495, 495, 495, 495,
+ 484, 98, 478, 484, 484, 507, 478, 484, 98, 484,
+ 484, 484, 484, 478, 508, 508, 509, 114, 488, 114,
+ 114, 501, 501, 484, 510, 478, 493, 147, 493, 493,
+ 493, 493, 493, 493, 147, 493, 478, 495, 495, 160,
+
+ 495, 495, 495, 495, 495, 495, 160, 98, 478, 511,
+ 512, 478, 478, 513, 98, 484, 478, 514, 515, 114,
+ 114, 114, 501, 484, 510, 516, 147, 493, 493, 147,
+ 493, 495, 160, 495, 495, 495, 495, 495, 495, 160,
+ 98, 517, 518, 478, 478, 478, 519, 519, 520, 521,
+ 478, 522, 98, 478, 523, 524, 525, 525, 258, 526,
+ 98, 147, 147, 147, 495, 160, 495, 495, 495, 495,
+ 495, 160, 98, 527, 528, 478, 478, 478, 478, 478,
+ 520, 478, 529, 530, 531, 532, 532, 532, 532, 532,
+ 533, 98, 478, 534, 478, 535, 535, 297, 536, 98,
+
+ 147, 301, 495, 160, 495, 495, 495, 495, 160, 98,
+ 537, 538, 478, 478, 478, 478, 478, 478, 478, 539,
+ 539, 539, 539, 540, 541, 541, 541, 541, 542, 543,
+ 300, 478, 534, 297, 298, 536, 300, 301, 301, 495,
+ 160, 495, 495, 495, 495, 300, 544, 478, 478, 478,
+ 478, 478, 478, 478, 539, 539, 539, 323, 541, 541,
+ 541, 328, 543, 478, 335, 300, 339, 495, 495, 495,
+ 495, 545, 323, 328, 363, 478, 300, 495, 495, 495,
+ 495, 495, 495, 495, 495, 478, 323, 328, 363, 300,
+ 495, 495, 495, 495, 495, 495, 323, 328, 543, 546,
+
+ 495, 495, 495, 495, 495, 495, 495, 495, 539, 541,
+ 546, 546, 547, 548, 495, 495, 495, 495, 495, 495,
+ 495, 495, 478, 478, 547, 549, 547, 547, 495, 495,
+ 495, 495, 495, 495, 495, 547, 428, 547, 428, 495,
+ 495, 495, 495, 495, 547, 437, 428, 495, 495, 495,
+ 495, 437, 428, 495, 495, 495, 495, 437, 428, 495,
+ 495, 495, 495, 437, 547, 495, 495, 495, 547, 495,
495, 495, 495, 495, 495, 495, 495, 0, 478, 478,
478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
- 478, 478, 478, 478, 478, 478
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478
} ;
-static yyconst flex_int16_t yy_nxt[2460] =
+static yyconst flex_int16_t yy_nxt[6664] =
{ 0,
8, 9, 10, 9, 9, 9, 11, 12, 13, 14,
8, 8, 15, 8, 8, 16, 8, 17, 18, 19,
- 20, 8, 21, 8, 8, 8, 22, 23, 24, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 26, 25, 25, 25, 25, 25, 25,
- 27, 25, 25, 25, 25, 25, 8, 28, 29, 25,
- 30, 131, 30, 36, 36, 36, 36, 36, 40, 31,
- 191, 31, 36, 36, 36, 36, 36, 37, 37, 37,
- 37, 37, 32, 33, 32, 33, 42, 131, 41, 43,
- 40, 40, 52, 92, 134, 34, 44, 34, 92, 46,
-
- 46, 46, 46, 46, 46, 49, 51, 94, 80, 52,
- 92, 41, 94, 98, 38, 124, 53, 92, 81, 131,
- 95, 96, 131, 83, 94, 40, 84, 478, 102, 85,
- 478, 94, 55, 86, 87, 154, 88, 44, 139, 137,
- 49, 56, 59, 90, 99, 131, 92, 132, 97, 60,
- 61, 203, 62, 90, 90, 90, 90, 90, 90, 63,
- 94, 64, 65, 65, 66, 67, 68, 65, 69, 70,
- 71, 65, 72, 65, 73, 74, 65, 75, 65, 76,
- 77, 78, 65, 65, 65, 65, 65, 65, 92, 92,
- 92, 65, 95, 96, 36, 36, 36, 36, 36, 478,
-
- 112, 57, 94, 94, 94, 37, 37, 37, 37, 37,
- 112, 112, 112, 112, 112, 112, 114, 154, 104, 92,
- 103, 105, 95, 96, 65, 117, 114, 114, 114, 114,
- 114, 114, 116, 94, 156, 117, 117, 117, 117, 117,
- 117, 90, 38, 39, 39, 39, 107, 92, 131, 109,
- 131, 90, 90, 90, 90, 90, 90, 131, 131, 154,
- 140, 94, 110, 133, 195, 131, 158, 131, 125, 111,
- 144, 131, 110, 110, 110, 110, 110, 110, 48, 48,
- 48, 118, 135, 95, 143, 138, 141, 145, 129, 120,
- 154, 146, 142, 136, 131, 131, 478, 121, 129, 129,
-
- 129, 129, 129, 129, 122, 154, 81, 121, 121, 121,
- 121, 121, 121, 131, 152, 155, 147, 154, 148, 154,
- 154, 92, 159, 160, 152, 152, 152, 152, 152, 152,
- 92, 150, 157, 92, 40, 94, 89, 89, 89, 89,
- 89, 95, 95, 194, 94, 131, 163, 94, 92, 92,
- 131, 154, 40, 170, 41, 161, 163, 163, 163, 163,
- 163, 163, 94, 94, 92, 161, 161, 161, 161, 161,
- 161, 165, 41, 193, 48, 154, 167, 40, 94, 92,
- 92, 168, 92, 92, 40, 166, 167, 167, 167, 167,
- 167, 167, 49, 94, 94, 39, 94, 94, 40, 49,
-
- 40, 92, 127, 154, 154, 131, 186, 169, 192, 154,
- 172, 198, 202, 49, 131, 94, 171, 173, 177, 184,
- 41, 108, 175, 175, 175, 108, 131, 40, 177, 177,
- 177, 177, 177, 177, 196, 154, 211, 131, 154, 154,
- 176, 205, 154, 230, 213, 190, 154, 41, 207, 92,
- 176, 176, 176, 176, 176, 176, 39, 39, 39, 107,
- 204, 206, 109, 94, 131, 194, 180, 154, 154, 210,
- 215, 229, 131, 370, 239, 110, 180, 180, 180, 180,
- 180, 180, 111, 94, 94, 110, 110, 110, 110, 110,
- 110, 113, 113, 113, 113, 113, 154, 154, 226, 154,
-
- 232, 181, 186, 92, 210, 92, 240, 154, 238, 154,
- 178, 181, 181, 181, 181, 181, 181, 94, 94, 94,
- 178, 178, 178, 178, 178, 178, 119, 182, 182, 182,
- 119, 236, 211, 40, 269, 154, 189, 40, 271, 40,
- 245, 154, 154, 154, 154, 183, 189, 189, 189, 189,
- 189, 189, 49, 41, 49, 183, 183, 183, 183, 183,
- 183, 48, 48, 48, 118, 92, 154, 211, 403, 154,
- 154, 201, 120, 131, 92, 277, 306, 303, 307, 94,
- 121, 201, 201, 201, 201, 201, 201, 122, 94, 231,
- 121, 121, 121, 121, 121, 121, 128, 128, 128, 128,
-
- 128, 224, 211, 154, 368, 154, 208, 154, 344, 154,
- 314, 154, 345, 154, 154, 187, 208, 208, 208, 208,
- 208, 208, 131, 235, 237, 187, 187, 187, 187, 187,
- 187, 151, 151, 151, 151, 151, 154, 92, 92, 131,
- 211, 154, 154, 154, 165, 92, 371, 433, 349, 265,
- 199, 94, 94, 154, 264, 154, 154, 154, 92, 94,
- 199, 199, 199, 199, 199, 199, 162, 162, 162, 162,
- 162, 154, 94, 283, 268, 270, 218, 272, 384, 216,
- 154, 300, 376, 261, 444, 209, 218, 218, 218, 218,
- 218, 218, 219, 284, 283, 209, 209, 209, 209, 209,
-
- 209, 220, 219, 219, 219, 219, 219, 219, 154, 286,
- 154, 220, 220, 220, 220, 220, 220, 179, 179, 179,
- 179, 179, 281, 281, 281, 281, 281, 222, 309, 283,
- 308, 154, 211, 154, 396, 252, 221, 222, 222, 222,
- 222, 222, 222, 223, 286, 364, 221, 221, 221, 221,
- 221, 221, 227, 223, 223, 223, 223, 223, 223, 283,
- 154, 154, 227, 227, 227, 227, 227, 227, 188, 188,
- 188, 188, 188, 319, 319, 319, 319, 319, 233, 284,
- 92, 283, 340, 343, 337, 354, 320, 228, 233, 233,
- 233, 233, 233, 233, 94, 283, 286, 228, 228, 228,
-
- 228, 228, 228, 200, 200, 200, 200, 200, 319, 319,
- 319, 319, 319, 241, 154, 284, 283, 432, 353, 352,
- 285, 320, 234, 241, 241, 241, 241, 241, 241, 242,
- 283, 286, 234, 234, 234, 234, 234, 234, 243, 242,
- 242, 242, 242, 242, 242, 286, 283, 351, 243, 243,
- 243, 243, 243, 243, 248, 248, 248, 248, 248, 255,
- 250, 154, 92, 283, 283, 251, 284, 252, 385, 255,
- 255, 255, 255, 255, 255, 256, 94, 282, 350, 286,
- 253, 257, 283, 284, 92, 256, 256, 256, 256, 256,
- 256, 257, 257, 257, 257, 257, 257, 258, 94, 154,
-
- 366, 377, 284, 259, 154, 154, 391, 258, 258, 258,
- 258, 258, 258, 259, 259, 259, 259, 259, 259, 260,
- 113, 113, 113, 113, 113, 262, 154, 394, 421, 260,
- 260, 260, 260, 260, 260, 262, 262, 262, 262, 262,
- 262, 263, 154, 154, 116, 154, 116, 266, 435, 392,
- 393, 263, 263, 263, 263, 263, 263, 266, 266, 266,
- 266, 266, 266, 267, 128, 128, 128, 128, 128, 273,
- 154, 154, 154, 267, 267, 267, 267, 267, 267, 273,
- 273, 273, 273, 273, 273, 274, 154, 448, 154, 442,
- 131, 275, 429, 395, 404, 274, 274, 274, 274, 274,
-
- 274, 275, 275, 275, 275, 275, 275, 248, 248, 248,
- 248, 248, 154, 250, 332, 400, 154, 154, 251, 419,
- 252, 281, 281, 281, 281, 281, 294, 478, 92, 94,
- 405, 406, 478, 253, 252, 154, 294, 294, 294, 294,
- 294, 294, 94, 154, 154, 154, 416, 253, 281, 281,
- 281, 281, 287, 417, 289, 418, 468, 407, 295, 289,
- 289, 290, 390, 408, 318, 154, 154, 291, 295, 295,
- 295, 295, 295, 295, 292, 296, 422, 291, 291, 291,
- 291, 291, 291, 297, 154, 296, 296, 296, 296, 296,
- 296, 298, 317, 297, 297, 297, 297, 297, 297, 299,
-
- 430, 298, 298, 298, 298, 298, 298, 301, 316, 299,
- 299, 299, 299, 299, 299, 302, 315, 301, 301, 301,
- 301, 301, 301, 304, 154, 302, 302, 302, 302, 302,
- 302, 305, 131, 304, 304, 304, 304, 304, 304, 310,
- 293, 305, 305, 305, 305, 305, 305, 311, 280, 310,
- 310, 310, 310, 310, 310, 312, 154, 311, 311, 311,
- 311, 311, 311, 420, 154, 312, 312, 312, 312, 312,
- 312, 282, 282, 282, 321, 154, 154, 323, 415, 154,
- 401, 154, 279, 402, 441, 281, 281, 281, 281, 281,
- 324, 478, 278, 450, 154, 131, 478, 325, 252, 431,
-
- 324, 324, 324, 324, 324, 324, 285, 285, 285, 326,
- 131, 253, 478, 478, 478, 478, 478, 328, 281, 281,
- 281, 281, 281, 154, 478, 329, 154, 154, 478, 478,
- 434, 252, 330, 440, 154, 329, 329, 329, 329, 329,
- 329, 154, 226, 154, 253, 281, 281, 281, 281, 281,
- 449, 478, 254, 154, 456, 451, 478, 472, 252, 281,
- 281, 281, 281, 281, 333, 478, 154, 476, 154, 154,
- 478, 253, 252, 454, 333, 333, 333, 333, 333, 333,
- 425, 425, 425, 425, 425, 253, 287, 287, 287, 287,
- 287, 443, 478, 426, 154, 467, 334, 478, 247, 252,
-
- 151, 151, 151, 151, 151, 331, 334, 334, 334, 334,
- 334, 334, 253, 246, 462, 331, 331, 331, 331, 331,
- 331, 281, 281, 281, 281, 287, 154, 289, 154, 154,
- 154, 335, 289, 289, 290, 455, 457, 154, 131, 131,
- 291, 335, 335, 335, 335, 335, 335, 292, 336, 131,
- 291, 291, 291, 291, 291, 291, 338, 466, 336, 336,
- 336, 336, 336, 336, 339, 154, 338, 338, 338, 338,
- 338, 338, 341, 131, 339, 339, 339, 339, 339, 339,
- 342, 154, 341, 341, 341, 341, 341, 341, 470, 226,
- 342, 342, 342, 342, 342, 342, 89, 89, 89, 89,
-
- 89, 346, 463, 154, 154, 116, 217, 214, 92, 460,
- 471, 346, 346, 346, 346, 346, 346, 347, 154, 154,
- 164, 154, 94, 154, 477, 473, 475, 347, 347, 347,
- 347, 347, 347, 355, 319, 319, 319, 355, 154, 283,
- 461, 359, 319, 319, 319, 359, 356, 197, 154, 131,
- 131, 131, 283, 131, 360, 474, 131, 131, 363, 284,
- 322, 357, 357, 357, 322, 131, 283, 286, 363, 363,
- 363, 363, 363, 363, 355, 319, 319, 319, 355, 358,
- 283, 179, 179, 179, 179, 179, 284, 356, 131, 358,
- 358, 358, 358, 358, 358, 282, 282, 282, 321, 131,
-
- 284, 323, 131, 131, 131, 39, 127, 116, 116, 188,
- 188, 188, 188, 188, 324, 39, 39, 39, 39, 39,
- 39, 325, 116, 174, 324, 324, 324, 324, 324, 324,
- 327, 361, 361, 361, 327, 131, 164, 154, 149, 131,
- 365, 283, 131, 200, 200, 200, 200, 200, 57, 362,
- 365, 365, 365, 365, 365, 365, 286, 63, 59, 362,
- 362, 362, 362, 362, 362, 285, 285, 285, 326, 154,
- 127, 123, 116, 106, 101, 48, 328, 100, 91, 79,
- 58, 57, 50, 47, 329, 48, 48, 48, 48, 48,
- 48, 330, 367, 478, 329, 329, 329, 329, 329, 329,
-
- 369, 35, 367, 367, 367, 367, 367, 367, 35, 478,
- 369, 369, 369, 369, 369, 369, 162, 162, 162, 162,
- 162, 372, 478, 478, 478, 478, 478, 478, 92, 478,
- 478, 372, 372, 372, 372, 372, 372, 373, 478, 478,
- 478, 478, 94, 478, 478, 478, 478, 373, 373, 373,
- 373, 373, 373, 359, 319, 319, 319, 359, 374, 478,
- 478, 478, 478, 478, 283, 478, 360, 478, 374, 374,
- 374, 374, 374, 374, 375, 478, 478, 154, 478, 286,
- 478, 478, 478, 378, 375, 375, 375, 375, 375, 375,
- 379, 478, 380, 386, 478, 478, 478, 381, 382, 387,
-
- 478, 383, 478, 386, 386, 386, 386, 386, 386, 387,
- 387, 387, 387, 387, 387, 388, 478, 478, 478, 478,
- 478, 389, 478, 478, 478, 388, 388, 388, 388, 388,
- 388, 389, 389, 389, 389, 389, 389, 397, 478, 478,
- 478, 478, 478, 398, 478, 478, 478, 397, 397, 397,
- 397, 397, 397, 398, 398, 398, 398, 398, 398, 399,
- 478, 478, 478, 478, 478, 409, 478, 478, 478, 399,
- 399, 399, 399, 399, 399, 409, 409, 409, 409, 409,
- 409, 410, 478, 478, 478, 478, 478, 249, 478, 478,
- 478, 410, 410, 410, 410, 410, 410, 249, 249, 249,
-
- 249, 249, 249, 411, 411, 411, 411, 411, 478, 478,
- 282, 478, 478, 478, 478, 478, 478, 478, 478, 412,
- 282, 282, 282, 282, 282, 282, 285, 478, 478, 413,
- 411, 411, 411, 411, 411, 478, 285, 285, 285, 285,
- 285, 285, 478, 478, 478, 478, 412, 424, 478, 478,
- 425, 425, 425, 425, 425, 478, 413, 424, 424, 424,
- 424, 424, 424, 426, 425, 425, 425, 425, 425, 478,
- 425, 425, 425, 425, 425, 478, 428, 426, 478, 478,
- 478, 478, 478, 426, 478, 478, 478, 439, 478, 478,
- 428, 436, 436, 436, 436, 436, 428, 439, 439, 439,
-
- 439, 439, 439, 478, 426, 425, 425, 425, 425, 425,
- 437, 478, 478, 478, 478, 478, 478, 428, 426, 478,
- 437, 437, 437, 437, 437, 437, 445, 478, 478, 478,
- 478, 428, 478, 478, 478, 478, 445, 445, 445, 445,
- 445, 445, 425, 425, 425, 425, 425, 452, 478, 478,
- 425, 425, 425, 425, 425, 426, 478, 452, 452, 452,
- 452, 452, 452, 426, 478, 478, 478, 453, 428, 446,
- 446, 446, 446, 446, 478, 478, 428, 453, 453, 453,
- 453, 453, 453, 478, 478, 478, 478, 478, 447, 478,
- 478, 478, 478, 478, 458, 478, 478, 478, 447, 447,
-
- 447, 447, 447, 447, 458, 458, 458, 458, 458, 458,
- 459, 478, 478, 478, 478, 478, 464, 478, 478, 478,
- 459, 459, 459, 459, 459, 459, 464, 464, 464, 464,
- 464, 464, 465, 478, 478, 478, 478, 478, 427, 478,
- 478, 478, 465, 465, 465, 465, 465, 465, 427, 427,
- 427, 427, 427, 427, 469, 478, 478, 478, 478, 478,
- 427, 478, 478, 478, 469, 469, 469, 469, 469, 469,
- 427, 427, 427, 427, 427, 427, 39, 478, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 45, 45, 478,
- 45, 45, 48, 478, 48, 48, 48, 48, 48, 48,
-
- 48, 48, 48, 54, 54, 478, 54, 54, 82, 478,
- 478, 82, 82, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 93, 478, 93, 93, 478, 93, 93, 108,
+ 20, 8, 21, 8, 8, 8, 22, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 24, 23, 23, 23, 23, 23, 23, 25, 23, 23,
+ 23, 23, 23, 26, 27, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 24, 23,
+ 23, 23, 23, 23, 23, 25, 23, 23, 23, 23,
+ 23, 8, 28, 29, 23, 30, 35, 30, 35, 40,
+ 40, 31, 152, 31, 36, 36, 36, 36, 36, 36,
+
+ 36, 36, 36, 36, 32, 33, 32, 33, 37, 37,
+ 37, 37, 37, 89, 40, 35, 51, 35, 89, 52,
+ 31, 89, 31, 89, 92, 93, 92, 93, 106, 40,
+ 49, 136, 32, 33, 32, 33, 41, 478, 89, 54,
+ 478, 95, 38, 152, 129, 34, 105, 34, 55, 94,
+ 89, 103, 56, 91, 89, 129, 106, 148, 91, 136,
+ 41, 91, 152, 91, 89, 152, 131, 54, 154, 96,
+ 49, 38, 42, 46, 105, 43, 55, 94, 91, 103,
+ 152, 102, 44, 44, 44, 44, 44, 44, 129, 89,
+ 91, 104, 92, 93, 91, 131, 154, 96, 36, 36,
+
+ 36, 36, 36, 137, 91, 135, 129, 152, 46, 102,
+ 210, 44, 44, 44, 44, 44, 44, 59, 212, 104,
+ 210, 89, 129, 152, 60, 61, 152, 62, 244, 91,
+ 92, 92, 137, 135, 63, 63, 64, 65, 66, 63,
+ 67, 68, 69, 63, 70, 63, 71, 72, 63, 73,
+ 63, 74, 75, 76, 63, 63, 63, 63, 63, 63,
+ 77, 91, 78, 63, 63, 64, 65, 66, 63, 67,
+ 68, 69, 70, 63, 71, 72, 63, 73, 63, 74,
+ 75, 76, 63, 63, 63, 63, 63, 63, 130, 52,
+ 174, 63, 80, 144, 89, 152, 37, 37, 37, 37,
+
+ 37, 478, 129, 57, 82, 210, 112, 83, 112, 124,
+ 84, 152, 125, 276, 85, 86, 130, 87, 174, 129,
+ 134, 132, 144, 63, 92, 140, 152, 127, 88, 129,
+ 38, 186, 133, 82, 91, 129, 83, 124, 138, 84,
+ 89, 125, 85, 86, 139, 87, 98, 141, 134, 132,
+ 153, 63, 129, 98, 98, 98, 98, 98, 98, 38,
+ 133, 129, 40, 40, 142, 478, 138, 145, 143, 152,
+ 39, 129, 139, 129, 157, 40, 141, 156, 192, 153,
+ 91, 152, 98, 98, 98, 98, 98, 98, 39, 39,
+ 39, 107, 142, 40, 109, 145, 143, 150, 155, 152,
+
+ 152, 88, 158, 157, 210, 40, 156, 110, 41, 41,
+ 89, 129, 152, 89, 110, 110, 110, 110, 110, 110,
+ 164, 41, 89, 478, 89, 150, 155, 89, 152, 152,
+ 282, 158, 89, 40, 49, 168, 354, 89, 89, 353,
+ 111, 170, 352, 110, 110, 110, 110, 110, 110, 114,
+ 91, 41, 172, 91, 351, 165, 114, 114, 114, 114,
+ 114, 114, 91, 168, 91, 171, 478, 91, 173, 89,
+ 170, 285, 91, 210, 49, 189, 40, 91, 91, 190,
+ 172, 313, 115, 165, 184, 114, 114, 114, 114, 114,
+ 114, 117, 193, 171, 198, 129, 173, 194, 117, 117,
+
+ 117, 117, 117, 117, 189, 129, 129, 209, 190, 91,
+ 191, 129, 196, 184, 204, 129, 152, 49, 192, 201,
+ 226, 193, 129, 198, 186, 194, 202, 117, 117, 117,
+ 117, 117, 117, 48, 48, 48, 118, 152, 191, 152,
+ 196, 205, 203, 204, 120, 152, 206, 91, 201, 217,
+ 228, 129, 121, 152, 202, 152, 214, 89, 89, 121,
+ 121, 121, 121, 121, 121, 164, 152, 209, 89, 205,
+ 203, 89, 478, 129, 268, 206, 89, 217, 89, 228,
+ 282, 177, 40, 177, 282, 122, 229, 254, 121, 121,
+ 121, 121, 121, 121, 98, 231, 91, 91, 91, 129,
+
+ 224, 98, 98, 98, 98, 98, 98, 91, 91, 216,
+ 152, 91, 234, 232, 229, 254, 91, 129, 91, 282,
+ 332, 152, 235, 49, 231, 285, 283, 236, 224, 152,
+ 98, 98, 98, 98, 98, 98, 147, 216, 152, 152,
+ 234, 237, 232, 147, 147, 147, 147, 147, 147, 332,
+ 235, 264, 265, 267, 400, 236, 282, 282, 90, 152,
+ 285, 152, 238, 63, 63, 129, 293, 219, 152, 219,
+ 237, 239, 147, 147, 147, 147, 147, 147, 160, 264,
+ 265, 267, 89, 269, 152, 160, 160, 160, 160, 160,
+ 160, 238, 152, 152, 293, 247, 247, 247, 247, 247,
+
+ 239, 249, 283, 283, 261, 303, 250, 350, 251, 270,
+ 343, 269, 364, 271, 160, 160, 160, 160, 160, 160,
+ 162, 152, 91, 152, 376, 152, 308, 162, 162, 162,
+ 162, 162, 162, 261, 303, 152, 152, 152, 270, 343,
+ 364, 271, 247, 247, 247, 247, 247, 252, 249, 305,
+ 115, 306, 376, 250, 308, 251, 162, 162, 162, 162,
+ 162, 162, 97, 97, 97, 97, 97, 317, 242, 90,
+ 242, 152, 152, 368, 89, 307, 340, 342, 305, 210,
+ 306, 169, 152, 152, 152, 316, 344, 349, 169, 169,
+ 169, 169, 169, 169, 252, 280, 280, 280, 280, 280,
+
+ 366, 478, 315, 307, 340, 342, 478, 314, 251, 152,
+ 468, 256, 152, 256, 91, 344, 152, 169, 169, 169,
+ 169, 169, 169, 108, 175, 175, 175, 108, 366, 40,
+ 280, 280, 280, 280, 280, 318, 318, 318, 318, 318,
+ 478, 370, 176, 251, 279, 282, 152, 252, 319, 176,
+ 176, 176, 176, 176, 176, 280, 280, 280, 280, 280,
+ 318, 318, 318, 318, 318, 152, 278, 90, 251, 274,
+ 370, 274, 384, 319, 405, 41, 371, 377, 176, 176,
+ 176, 176, 176, 176, 39, 39, 39, 107, 277, 152,
+ 109, 283, 152, 129, 152, 280, 280, 280, 280, 280,
+
+ 152, 384, 405, 110, 396, 371, 377, 252, 251, 129,
+ 110, 110, 110, 110, 110, 110, 280, 280, 280, 280,
+ 280, 280, 280, 280, 280, 280, 478, 226, 478, 251,
+ 152, 282, 246, 396, 251, 403, 111, 152, 282, 110,
+ 110, 110, 110, 110, 110, 178, 404, 252, 467, 245,
+ 152, 417, 178, 178, 178, 178, 178, 178, 355, 318,
+ 318, 318, 355, 403, 282, 478, 152, 129, 252, 152,
+ 282, 356, 152, 252, 129, 404, 467, 283, 115, 285,
+ 417, 178, 178, 178, 178, 178, 178, 180, 129, 359,
+ 318, 318, 318, 359, 180, 180, 180, 180, 180, 180,
+
+ 282, 129, 360, 97, 97, 97, 97, 97, 226, 115,
+ 283, 108, 175, 175, 175, 108, 283, 40, 213, 90,
+ 385, 163, 152, 180, 180, 180, 180, 180, 180, 116,
+ 116, 116, 116, 116, 161, 161, 161, 161, 161, 152,
+ 197, 285, 152, 119, 182, 182, 182, 119, 181, 385,
+ 90, 478, 478, 129, 40, 181, 181, 181, 181, 181,
+ 181, 282, 282, 41, 179, 179, 179, 179, 179, 430,
+ 159, 159, 159, 159, 159, 187, 187, 187, 187, 187,
+ 129, 129, 152, 90, 181, 181, 181, 181, 181, 181,
+ 119, 182, 182, 182, 119, 49, 295, 430, 295, 129,
+
+ 448, 40, 285, 285, 199, 199, 199, 199, 199, 183,
+ 390, 391, 392, 129, 152, 393, 183, 183, 183, 183,
+ 183, 183, 152, 355, 318, 318, 318, 355, 448, 282,
+ 311, 429, 311, 152, 152, 129, 356, 152, 390, 152,
+ 391, 392, 49, 406, 393, 183, 183, 183, 183, 183,
+ 183, 48, 48, 48, 118, 394, 152, 129, 152, 429,
+ 432, 152, 120, 359, 318, 318, 318, 359, 395, 401,
+ 121, 406, 402, 416, 282, 283, 360, 121, 121, 121,
+ 121, 121, 121, 394, 129, 415, 152, 129, 421, 432,
+ 152, 152, 129, 152, 152, 129, 419, 395, 401, 407,
+
+ 152, 402, 416, 122, 129, 408, 121, 121, 121, 121,
+ 121, 121, 188, 415, 152, 285, 421, 420, 152, 188,
+ 188, 188, 188, 188, 188, 419, 347, 407, 347, 372,
+ 386, 372, 386, 408, 286, 286, 286, 286, 286, 152,
+ 127, 418, 422, 115, 115, 167, 420, 251, 188, 188,
+ 188, 188, 188, 188, 146, 146, 146, 146, 146, 152,
+ 152, 163, 152, 149, 326, 361, 361, 361, 326, 431,
+ 418, 422, 129, 195, 129, 282, 433, 57, 152, 434,
+ 195, 195, 195, 195, 195, 195, 252, 411, 411, 411,
+ 411, 411, 321, 357, 357, 357, 321, 431, 282, 77,
+
+ 152, 152, 59, 412, 127, 433, 129, 123, 434, 195,
+ 195, 195, 195, 195, 195, 200, 285, 411, 411, 411,
+ 411, 411, 200, 200, 200, 200, 200, 200, 423, 423,
+ 423, 423, 423, 412, 115, 101, 100, 435, 99, 414,
+ 79, 424, 440, 58, 283, 444, 478, 478, 478, 478,
+ 478, 200, 200, 200, 200, 200, 200, 159, 159, 159,
+ 159, 159, 478, 152, 152, 57, 435, 442, 441, 414,
+ 152, 440, 443, 50, 444, 449, 207, 152, 471, 152,
+ 426, 152, 454, 207, 207, 207, 207, 207, 207, 423,
+ 423, 423, 423, 423, 152, 442, 450, 441, 414, 47,
+
+ 443, 152, 424, 449, 152, 455, 478, 471, 152, 152,
+ 451, 454, 207, 207, 207, 207, 207, 207, 161, 161,
+ 161, 161, 161, 478, 450, 152, 478, 152, 423, 423,
+ 423, 423, 423, 456, 455, 478, 460, 208, 451, 478,
+ 457, 424, 152, 478, 208, 208, 208, 208, 208, 208,
+ 423, 423, 423, 423, 423, 423, 423, 423, 423, 423,
+ 478, 456, 152, 424, 461, 470, 478, 478, 424, 457,
+ 478, 152, 152, 208, 208, 208, 208, 208, 208, 215,
+ 426, 423, 423, 423, 423, 423, 215, 215, 215, 215,
+ 215, 215, 461, 470, 424, 478, 478, 478, 463, 478,
+
+ 462, 466, 426, 477, 478, 478, 152, 426, 473, 152,
+ 152, 152, 474, 478, 475, 215, 215, 215, 215, 215,
+ 215, 108, 175, 175, 175, 108, 463, 40, 462, 466,
+ 152, 477, 478, 426, 152, 478, 478, 473, 152, 478,
+ 218, 474, 478, 475, 478, 478, 478, 218, 218, 218,
+ 218, 218, 218, 423, 423, 423, 423, 423, 438, 438,
+ 438, 438, 438, 478, 478, 478, 424, 478, 478, 478,
+ 478, 424, 478, 41, 478, 478, 218, 218, 218, 218,
+ 218, 218, 220, 445, 445, 445, 445, 445, 472, 220,
+ 220, 220, 220, 220, 220, 478, 424, 478, 478, 478,
+
+ 478, 478, 476, 152, 478, 426, 478, 478, 478, 478,
+ 426, 478, 478, 478, 478, 478, 472, 152, 220, 220,
+ 220, 220, 220, 220, 179, 179, 179, 179, 179, 478,
+ 476, 478, 478, 478, 478, 426, 478, 478, 478, 478,
+ 478, 478, 478, 221, 478, 478, 478, 478, 478, 478,
+ 221, 221, 221, 221, 221, 221, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 221,
+ 221, 221, 221, 221, 221, 116, 116, 116, 116, 116,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+
+ 478, 478, 478, 478, 222, 478, 478, 478, 478, 478,
+ 478, 222, 222, 222, 222, 222, 222, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 222, 222, 222, 222, 222, 222, 119, 182, 182, 182,
+ 119, 478, 478, 478, 478, 478, 478, 40, 478, 478,
+ 478, 478, 478, 478, 478, 223, 478, 478, 478, 478,
+ 478, 478, 223, 223, 223, 223, 223, 223, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 49, 478,
+
+ 478, 223, 223, 223, 223, 223, 223, 187, 187, 187,
+ 187, 187, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 227, 478, 478, 478,
+ 478, 478, 478, 227, 227, 227, 227, 227, 227, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 227, 227, 227, 227, 227, 227, 230, 478,
+ 478, 478, 478, 478, 478, 230, 230, 230, 230, 230,
+ 230, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+
+ 478, 478, 478, 478, 230, 230, 230, 230, 230, 230,
+ 199, 199, 199, 199, 199, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 233,
+ 478, 478, 478, 478, 478, 478, 233, 233, 233, 233,
+ 233, 233, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 233, 233, 233, 233, 233,
+ 233, 240, 478, 478, 478, 478, 478, 478, 240, 240,
+ 240, 240, 240, 240, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+
+ 478, 478, 478, 478, 478, 478, 478, 240, 240, 240,
+ 240, 240, 240, 161, 161, 161, 161, 161, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 241, 478, 478, 478, 478, 478, 478, 241,
+ 241, 241, 241, 241, 241, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 241, 241,
+ 241, 241, 241, 241, 253, 478, 478, 478, 478, 478,
+ 478, 253, 253, 253, 253, 253, 253, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 253, 253, 253, 253, 253, 253, 108, 175, 175, 175,
+ 108, 478, 40, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 255, 478, 478, 478, 478,
+ 478, 478, 255, 255, 255, 255, 255, 255, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 41, 478,
+ 478, 255, 255, 255, 255, 255, 255, 257, 478, 478,
+ 478, 478, 478, 478, 257, 257, 257, 257, 257, 257,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 257, 257, 257, 257, 257, 257, 179,
+ 179, 179, 179, 179, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 258, 478,
+ 478, 478, 478, 478, 478, 258, 258, 258, 258, 258,
+ 258, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 258, 258, 258, 258, 258, 258,
+ 116, 116, 116, 116, 116, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 259,
+
+ 478, 478, 478, 478, 478, 478, 259, 259, 259, 259,
+ 259, 259, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 259, 259, 259, 259, 259,
+ 259, 119, 182, 182, 182, 119, 478, 478, 478, 478,
+ 478, 478, 40, 478, 478, 478, 478, 478, 478, 478,
+ 260, 478, 478, 478, 478, 478, 478, 260, 260, 260,
+ 260, 260, 260, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 49, 478, 478, 260, 260, 260, 260,
+
+ 260, 260, 187, 187, 187, 187, 187, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 262, 478, 478, 478, 478, 478, 478, 262, 262,
+ 262, 262, 262, 262, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 262, 262, 262,
+ 262, 262, 262, 263, 478, 478, 478, 478, 478, 478,
+ 263, 263, 263, 263, 263, 263, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 263,
+
+ 263, 263, 263, 263, 263, 199, 199, 199, 199, 199,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 266, 478, 478, 478, 478, 478,
+ 478, 266, 266, 266, 266, 266, 266, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 266, 266, 266, 266, 266, 266, 272, 478, 478, 478,
+ 478, 478, 478, 272, 272, 272, 272, 272, 272, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+
+ 478, 478, 272, 272, 272, 272, 272, 272, 161, 161,
+ 161, 161, 161, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 273, 478, 478,
+ 478, 478, 478, 478, 273, 273, 273, 273, 273, 273,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 273, 273, 273, 273, 273, 273, 280,
+ 280, 280, 280, 286, 478, 288, 478, 478, 478, 478,
+ 288, 288, 289, 478, 478, 478, 478, 478, 290, 478,
+ 478, 478, 478, 478, 478, 290, 290, 290, 290, 290,
+
+ 290, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 291, 478, 478, 290, 290, 290, 290, 290, 290,
+ 292, 478, 478, 478, 478, 478, 478, 292, 292, 292,
+ 292, 292, 292, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 292, 292, 292, 292,
+ 292, 292, 108, 175, 175, 175, 108, 478, 40, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 294, 478, 478, 478, 478, 478, 478, 294, 294,
+
+ 294, 294, 294, 294, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 41, 478, 478, 294, 294, 294,
+ 294, 294, 294, 296, 478, 478, 478, 478, 478, 478,
+ 296, 296, 296, 296, 296, 296, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 115, 478, 478, 296,
+ 296, 296, 296, 296, 296, 179, 179, 179, 179, 179,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 297, 478, 478, 478, 478, 478,
+
+ 478, 297, 297, 297, 297, 297, 297, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 115, 478, 478,
+ 297, 297, 297, 297, 297, 297, 116, 116, 116, 116,
+ 116, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 298, 478, 478, 478, 478,
+ 478, 478, 298, 298, 298, 298, 298, 298, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 298, 298, 298, 298, 298, 298, 119, 182, 182,
+
+ 182, 119, 478, 478, 478, 478, 478, 478, 40, 478,
+ 478, 478, 478, 478, 478, 478, 299, 478, 478, 478,
+ 478, 478, 478, 299, 299, 299, 299, 299, 299, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 49,
+ 478, 478, 299, 299, 299, 299, 299, 299, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 90, 478, 478,
+ 478, 478, 478, 478, 90, 90, 90, 90, 90, 90,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+
+ 478, 478, 478, 300, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 90, 90, 90, 90, 90, 90, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 300, 187, 187, 187, 187, 187, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 301, 478, 478, 478, 478, 478, 478, 301, 301,
+ 301, 301, 301, 301, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 301, 301, 301,
+ 301, 301, 301, 302, 478, 478, 478, 478, 478, 478,
+
+ 302, 302, 302, 302, 302, 302, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 302,
+ 302, 302, 302, 302, 302, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 128, 478, 478, 478, 478, 478,
+ 478, 128, 128, 128, 128, 128, 128, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 128, 128, 128, 128, 128, 128, 199, 199, 199, 199,
+
+ 199, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 304, 478, 478, 478, 478,
+ 478, 478, 304, 304, 304, 304, 304, 304, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 304, 304, 304, 304, 304, 304, 309, 478, 478,
+ 478, 478, 478, 478, 309, 309, 309, 309, 309, 309,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 309, 309, 309, 309, 309, 309, 161,
+
+ 161, 161, 161, 161, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 310, 478,
+ 478, 478, 478, 478, 478, 310, 310, 310, 310, 310,
+ 310, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 310, 310, 310, 310, 310, 310,
+ 281, 281, 281, 320, 478, 478, 322, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 323,
+ 478, 478, 478, 478, 478, 478, 323, 323, 323, 323,
+ 323, 323, 478, 478, 478, 478, 478, 478, 478, 478,
+
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 324, 478, 478, 323, 323, 323, 323, 323,
+ 323, 284, 284, 284, 325, 478, 478, 478, 478, 478,
+ 478, 478, 327, 478, 478, 478, 478, 478, 478, 478,
+ 328, 478, 478, 478, 478, 478, 478, 328, 328, 328,
+ 328, 328, 328, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 329, 478, 478, 328, 328, 328, 328,
+ 328, 328, 286, 286, 286, 286, 286, 478, 478, 478,
+ 478, 478, 478, 478, 478, 251, 478, 478, 478, 478,
+
+ 478, 330, 478, 478, 478, 478, 478, 478, 330, 330,
+ 330, 330, 330, 330, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 252, 478, 478, 330, 330, 330,
+ 330, 330, 330, 280, 280, 280, 280, 286, 478, 288,
+ 478, 478, 478, 478, 288, 288, 289, 478, 478, 478,
+ 478, 478, 290, 478, 478, 478, 478, 478, 478, 290,
+ 290, 290, 290, 290, 290, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 291, 478, 478, 290, 290,
+
+ 290, 290, 290, 290, 331, 478, 478, 478, 478, 478,
+ 478, 331, 331, 331, 331, 331, 331, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 331, 331, 331, 331, 331, 331, 108, 175, 175, 175,
+ 108, 478, 40, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 333, 478, 478, 478, 478,
+ 478, 478, 333, 333, 333, 333, 333, 333, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 41, 478,
+
+ 478, 333, 333, 333, 333, 333, 333, 179, 179, 179,
+ 179, 179, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 334, 478, 478, 478,
+ 478, 478, 478, 334, 334, 334, 334, 334, 334, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 115,
+ 478, 478, 334, 334, 334, 334, 334, 334, 116, 116,
+ 116, 116, 116, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 335, 478, 478,
+ 478, 478, 478, 478, 335, 335, 335, 335, 335, 335,
+
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 335, 335, 335, 335, 335, 335, 119,
+ 182, 182, 182, 119, 478, 478, 478, 478, 478, 478,
+ 40, 478, 478, 478, 478, 478, 478, 478, 336, 478,
+ 478, 478, 478, 478, 478, 336, 336, 336, 336, 336,
+ 336, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 49, 478, 478, 336, 336, 336, 336, 336, 336,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+
+ 478, 478, 478, 478, 478, 478, 337, 478, 478, 90,
+ 478, 478, 478, 478, 478, 478, 90, 90, 90, 90,
+ 90, 90, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 90, 90, 90, 90, 90,
+ 90, 187, 187, 187, 187, 187, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 338, 478, 478, 478, 478, 478, 478, 338, 338, 338,
+ 338, 338, 338, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+
+ 478, 478, 478, 478, 478, 478, 338, 338, 338, 338,
+ 338, 338, 146, 146, 146, 146, 146, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 339, 478, 478, 478, 478, 478, 478, 339, 339,
+ 339, 339, 339, 339, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 339, 339, 339,
+ 339, 339, 339, 199, 199, 199, 199, 199, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 341, 478, 478, 478, 478, 478, 478, 341,
+
+ 341, 341, 341, 341, 341, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 341, 341,
+ 341, 341, 341, 341, 345, 478, 478, 478, 478, 478,
+ 478, 345, 345, 345, 345, 345, 345, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 345, 345, 345, 345, 345, 345, 161, 161, 161, 161,
+ 161, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 346, 478, 478, 478, 478,
+
+ 478, 478, 346, 346, 346, 346, 346, 346, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 346, 346, 346, 346, 346, 346, 321, 357, 357,
+ 357, 321, 478, 282, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 358, 478, 478, 478,
+ 478, 478, 478, 358, 358, 358, 358, 358, 358, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 283,
+ 478, 478, 358, 358, 358, 358, 358, 358, 281, 281,
+
+ 281, 320, 478, 478, 322, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 323, 478, 478,
+ 478, 478, 478, 478, 323, 323, 323, 323, 323, 323,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 324, 478, 478, 323, 323, 323, 323, 323, 323, 326,
+ 361, 361, 361, 326, 478, 478, 478, 478, 478, 478,
+ 282, 478, 478, 478, 478, 478, 478, 478, 362, 478,
+ 478, 478, 478, 478, 478, 362, 362, 362, 362, 362,
+ 362, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 285, 478, 478, 362, 362, 362, 362, 362, 362,
+ 284, 284, 284, 325, 478, 478, 478, 478, 478, 478,
+ 478, 327, 478, 478, 478, 478, 478, 478, 478, 328,
+ 478, 478, 478, 478, 478, 478, 328, 328, 328, 328,
+ 328, 328, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 329, 478, 478, 328, 328, 328, 328, 328,
+ 328, 286, 286, 286, 286, 286, 478, 478, 478, 478,
+ 478, 478, 478, 478, 251, 478, 478, 478, 478, 478,
+
+ 363, 478, 478, 478, 478, 478, 478, 363, 363, 363,
+ 363, 363, 363, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 252, 478, 478, 363, 363, 363, 363,
+ 363, 363, 365, 478, 478, 478, 478, 478, 478, 365,
+ 365, 365, 365, 365, 365, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 365, 365,
+ 365, 365, 365, 365, 113, 478, 478, 478, 478, 478,
+ 478, 113, 113, 113, 113, 113, 113, 478, 478, 478,
+
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 113, 113, 113, 113, 113, 113, 367, 478, 478, 478,
+ 478, 478, 478, 367, 367, 367, 367, 367, 367, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 367, 367, 367, 367, 367, 367, 146, 146,
+ 146, 146, 146, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 128, 478, 478,
+ 478, 478, 478, 478, 128, 128, 128, 128, 128, 128,
+
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 128, 128, 128, 128, 128, 128, 199,
+ 199, 199, 199, 199, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 369, 478,
+ 478, 478, 478, 478, 478, 369, 369, 369, 369, 369,
+ 369, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 369, 369, 369, 369, 369, 369,
+ 373, 478, 478, 478, 478, 478, 478, 373, 373, 373,
+
+ 373, 373, 373, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 373, 373, 373, 373,
+ 373, 373, 374, 478, 478, 478, 478, 478, 478, 374,
+ 374, 374, 374, 374, 374, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 374, 374,
+ 374, 374, 374, 374, 286, 286, 286, 286, 286, 478,
+ 478, 478, 478, 478, 478, 478, 478, 251, 478, 478,
+ 478, 478, 478, 375, 478, 478, 478, 478, 478, 478,
+
+ 375, 375, 375, 375, 375, 375, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 252, 478, 478, 375,
+ 375, 375, 375, 375, 375, 378, 478, 478, 478, 478,
+ 478, 478, 379, 478, 380, 478, 478, 478, 478, 381,
+ 382, 478, 478, 383, 478, 478, 478, 478, 152, 478,
+ 478, 478, 478, 478, 378, 478, 478, 478, 478, 478,
+ 379, 478, 380, 478, 478, 478, 478, 381, 382, 478,
+ 478, 383, 387, 478, 478, 478, 478, 478, 478, 387,
+ 387, 387, 387, 387, 387, 478, 478, 478, 478, 478,
+
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 387, 387,
+ 387, 387, 387, 387, 388, 478, 478, 478, 478, 478,
+ 478, 388, 388, 388, 388, 388, 388, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 388, 388, 388, 388, 388, 388, 389, 478, 478, 478,
+ 478, 478, 478, 389, 389, 389, 389, 389, 389, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+
+ 478, 478, 389, 389, 389, 389, 389, 389, 397, 478,
+ 478, 478, 478, 478, 478, 397, 397, 397, 397, 397,
+ 397, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 397, 397, 397, 397, 397, 397,
+ 398, 478, 478, 478, 478, 478, 478, 398, 398, 398,
+ 398, 398, 398, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 398, 398, 398, 398,
+ 398, 398, 399, 478, 478, 478, 478, 478, 478, 399,
+
+ 399, 399, 399, 399, 399, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 399, 399,
+ 399, 399, 399, 399, 409, 478, 478, 478, 478, 478,
+ 478, 409, 409, 409, 409, 409, 409, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 409, 409, 409, 409, 409, 409, 410, 478, 478, 478,
+ 478, 478, 478, 410, 410, 410, 410, 410, 410, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 410, 410, 410, 410, 410, 410, 428, 478,
+ 478, 478, 478, 478, 478, 428, 428, 428, 428, 428,
+ 428, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 428, 428, 428, 428, 428, 428,
+ 437, 478, 478, 478, 478, 478, 478, 437, 437, 437,
+ 437, 437, 437, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 437, 437, 437, 437,
+
+ 437, 437, 438, 438, 438, 438, 438, 478, 478, 478,
+ 478, 478, 478, 478, 478, 424, 478, 478, 478, 478,
+ 478, 439, 478, 478, 478, 478, 478, 478, 439, 439,
+ 439, 439, 439, 439, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 426, 478, 478, 439, 439, 439,
+ 439, 439, 439, 445, 445, 445, 445, 445, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 446, 478, 478, 478, 478, 478, 478, 446,
+ 446, 446, 446, 446, 446, 478, 478, 478, 478, 478,
+
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 446, 446,
+ 446, 446, 446, 446, 447, 478, 478, 478, 478, 478,
+ 478, 447, 447, 447, 447, 447, 447, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 447, 447, 447, 447, 447, 447, 452, 478, 478, 478,
+ 478, 478, 478, 452, 452, 452, 452, 452, 452, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+
+ 478, 478, 452, 452, 452, 452, 452, 452, 453, 478,
+ 478, 478, 478, 478, 478, 453, 453, 453, 453, 453,
+ 453, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 453, 453, 453, 453, 453, 453,
+ 458, 478, 478, 478, 478, 478, 478, 458, 458, 458,
+ 458, 458, 458, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 458, 458, 458, 458,
+ 458, 458, 459, 478, 478, 478, 478, 478, 478, 459,
+
+ 459, 459, 459, 459, 459, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 459, 459,
+ 459, 459, 459, 459, 464, 478, 478, 478, 478, 478,
+ 478, 464, 464, 464, 464, 464, 464, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 464, 464, 464, 464, 464, 464, 465, 478, 478, 478,
+ 478, 478, 478, 465, 465, 465, 465, 465, 465, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 465, 465, 465, 465, 465, 465, 469, 478,
+ 478, 478, 478, 478, 478, 469, 469, 469, 469, 469,
+ 469, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 469, 469, 469, 469, 469, 469,
+ 39, 478, 478, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 45, 45, 478, 45, 45, 48, 478,
+ 478, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 53, 53, 478, 53, 53, 81, 478, 478, 81,
+
+ 81, 90, 478, 90, 90, 478, 90, 90, 97, 97,
+ 97, 97, 97, 97, 97, 97, 97, 97, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 115,
- 115, 478, 115, 115, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 126, 126, 126, 126, 126,
- 126, 126, 126, 126, 126, 126, 126, 65, 65, 128,
- 128, 128, 128, 128, 128, 128, 128, 128, 130, 130,
- 478, 130, 130, 151, 151, 151, 151, 151, 151, 151,
-
- 151, 151, 153, 153, 478, 153, 153, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 179, 179, 179, 179,
- 179, 179, 179, 179, 179, 185, 185, 185, 185, 185,
- 185, 185, 185, 185, 185, 185, 185, 188, 188, 188,
- 188, 188, 188, 188, 188, 188, 200, 200, 200, 200,
- 200, 200, 200, 200, 200, 212, 212, 212, 478, 212,
+ 108, 113, 113, 478, 113, 113, 116, 116, 116, 116,
+ 116, 116, 116, 116, 116, 116, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 126,
+ 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
+ 126, 126, 126, 128, 128, 478, 128, 128, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146, 151, 151,
+ 478, 151, 151, 159, 159, 159, 159, 159, 159, 159,
+
+ 159, 159, 159, 161, 161, 161, 161, 161, 161, 161,
+ 161, 161, 161, 166, 166, 166, 179, 179, 179, 179,
+ 179, 179, 179, 179, 179, 179, 48, 48, 478, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 126, 126, 126, 126, 126, 126, 126, 126,
+ 126, 126, 126, 126, 126, 126, 185, 185, 185, 185,
+ 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 211, 211, 211, 211, 39, 478, 478, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 225, 225, 225,
225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
- 225, 225, 244, 244, 244, 478, 244, 249, 249, 249,
- 249, 478, 249, 249, 249, 249, 249, 249, 276, 276,
- 276, 478, 276, 282, 478, 282, 282, 282, 282, 282,
-
- 282, 282, 282, 282, 285, 478, 285, 285, 285, 285,
- 285, 285, 285, 285, 285, 288, 288, 288, 288, 288,
- 288, 288, 288, 288, 288, 288, 313, 313, 313, 478,
- 313, 322, 322, 322, 322, 322, 322, 322, 322, 322,
- 322, 322, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 348, 348, 348, 478, 348, 414, 414,
- 414, 478, 478, 478, 414, 478, 478, 414, 414, 423,
- 423, 423, 423, 423, 423, 423, 423, 423, 427, 427,
- 427, 478, 478, 427, 427, 427, 478, 427, 427, 438,
- 438, 438, 438, 438, 438, 438, 438, 438, 7, 478,
+ 225, 243, 243, 243, 243, 248, 248, 248, 248, 248,
+ 248, 478, 248, 248, 248, 248, 248, 248, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 185, 185, 185, 185, 185, 185, 185, 185, 185,
+ 185, 185, 185, 185, 185, 275, 275, 275, 275, 248,
+ 248, 248, 248, 248, 248, 478, 248, 248, 248, 248,
+ 248, 248, 281, 478, 478, 281, 281, 281, 281, 281,
+
+ 281, 281, 281, 281, 281, 284, 478, 478, 284, 284,
+ 284, 284, 284, 284, 284, 284, 284, 284, 287, 287,
+ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
+ 287, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 113, 113, 478, 113, 113, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 312, 312, 312, 312, 321, 321, 321, 321,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 284,
+ 478, 478, 284, 284, 284, 284, 284, 284, 284, 284,
+ 284, 284, 326, 326, 326, 326, 326, 326, 326, 326,
+
+ 326, 326, 326, 326, 326, 248, 248, 248, 248, 248,
+ 478, 478, 248, 248, 248, 248, 248, 248, 287, 287,
+ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
+ 287, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 113, 113, 478, 113, 113, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 348, 348, 348, 348, 281, 281, 478, 281,
+ 281, 281, 281, 281, 281, 281, 281, 281, 281, 321,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
+ 321, 321, 284, 284, 478, 284, 284, 284, 284, 284,
+
+ 284, 284, 284, 284, 284, 326, 326, 326, 326, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326, 248, 248,
+ 248, 248, 248, 478, 478, 248, 248, 248, 248, 248,
+ 248, 413, 413, 413, 413, 478, 478, 478, 478, 413,
+ 478, 478, 413, 413, 425, 425, 425, 425, 478, 478,
+ 478, 425, 425, 425, 478, 425, 425, 427, 427, 427,
+ 427, 427, 427, 427, 427, 427, 427, 436, 436, 436,
+ 436, 436, 436, 436, 436, 436, 436, 7, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
- 478, 478, 478, 478, 478, 478, 478, 478, 478
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478
} ;
-static yyconst flex_int16_t yy_chk[2460] =
+static yyconst flex_int16_t yy_chk[6664] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -576,270 +1048,733 @@ static yyconst flex_int16_t yy_chk[2460] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 3, 134, 4, 9, 9, 9, 9, 9, 12, 3,
- 134, 4, 10, 10, 10, 10, 10, 11, 11, 11,
- 11, 11, 3, 3, 4, 4, 13, 67, 12, 13,
- 15, 39, 52, 25, 67, 3, 13, 4, 31, 13,
-
- 13, 13, 13, 13, 13, 15, 17, 25, 22, 17,
- 27, 39, 31, 27, 11, 52, 17, 26, 22, 69,
- 26, 26, 71, 22, 27, 48, 22, 42, 31, 22,
- 42, 26, 17, 22, 22, 156, 22, 42, 71, 69,
- 48, 17, 20, 23, 27, 64, 54, 64, 26, 20,
- 20, 156, 20, 23, 23, 23, 23, 23, 23, 20,
- 54, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 3, 5, 4, 6, 15,
+ 12, 3, 477, 4, 9, 9, 9, 9, 9, 10,
+
+ 10, 10, 10, 10, 3, 3, 4, 4, 11, 11,
+ 11, 11, 11, 23, 39, 5, 17, 6, 35, 17,
+ 3, 24, 4, 32, 24, 24, 32, 32, 38, 48,
+ 15, 69, 3, 3, 4, 4, 12, 42, 25, 17,
+ 42, 25, 11, 474, 69, 3, 35, 4, 17, 24,
+ 53, 32, 17, 23, 31, 78, 38, 78, 35, 69,
+ 39, 24, 467, 32, 33, 461, 65, 17, 83, 25,
+ 48, 11, 13, 42, 35, 13, 17, 24, 25, 32,
+ 83, 31, 13, 13, 13, 13, 13, 13, 65, 54,
+ 53, 33, 54, 54, 31, 65, 83, 25, 36, 36,
+
+ 36, 36, 36, 70, 33, 68, 68, 456, 13, 31,
+ 166, 13, 13, 13, 13, 13, 13, 20, 166, 33,
+ 211, 90, 70, 440, 20, 20, 434, 20, 211, 54,
+ 124, 124, 70, 68, 20, 20, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 33, 32,
- 35, 20, 32, 32, 36, 36, 36, 36, 36, 57,
-
- 43, 57, 33, 32, 35, 37, 37, 37, 37, 37,
- 43, 43, 43, 43, 43, 43, 44, 84, 33, 55,
- 32, 35, 55, 55, 57, 46, 44, 44, 44, 44,
- 44, 44, 46, 55, 84, 46, 46, 46, 46, 46,
- 46, 53, 37, 41, 41, 41, 41, 56, 66, 41,
- 72, 53, 53, 53, 53, 53, 53, 70, 147, 86,
- 72, 56, 41, 66, 147, 75, 86, 68, 56, 41,
- 75, 73, 41, 41, 41, 41, 41, 41, 49, 49,
- 49, 49, 68, 74, 74, 70, 73, 75, 63, 49,
- 477, 75, 73, 68, 74, 78, 80, 49, 63, 63,
-
- 63, 63, 63, 63, 49, 83, 80, 49, 49, 49,
- 49, 49, 49, 76, 81, 83, 76, 85, 78, 87,
- 88, 89, 87, 88, 81, 81, 81, 81, 81, 81,
- 93, 80, 85, 102, 108, 89, 90, 90, 90, 90,
- 90, 124, 124, 143, 93, 140, 94, 102, 90, 97,
- 143, 474, 109, 102, 108, 90, 94, 94, 94, 94,
- 94, 94, 90, 97, 96, 90, 90, 90, 90, 90,
- 90, 96, 109, 140, 118, 467, 98, 119, 96, 99,
- 103, 98, 104, 105, 118, 97, 98, 98, 98, 98,
- 98, 98, 119, 99, 103, 107, 104, 105, 120, 118,
-
- 107, 125, 127, 461, 150, 137, 127, 99, 137, 155,
- 104, 150, 155, 120, 148, 125, 103, 105, 112, 125,
- 107, 110, 110, 110, 110, 110, 132, 110, 112, 112,
- 112, 112, 112, 112, 148, 158, 167, 192, 456, 160,
- 110, 158, 157, 192, 167, 132, 159, 110, 160, 162,
- 110, 110, 110, 110, 110, 110, 111, 111, 111, 111,
- 157, 159, 111, 162, 190, 194, 116, 206, 344, 166,
- 169, 190, 194, 344, 206, 111, 116, 116, 116, 116,
- 116, 116, 111, 166, 169, 111, 111, 111, 111, 111,
- 111, 114, 114, 114, 114, 114, 198, 205, 226, 207,
-
- 198, 117, 226, 170, 171, 173, 207, 440, 205, 203,
- 114, 117, 117, 117, 117, 117, 117, 170, 171, 173,
- 114, 114, 114, 114, 114, 114, 121, 121, 121, 121,
- 121, 203, 212, 175, 236, 238, 131, 121, 238, 182,
- 212, 392, 434, 429, 236, 121, 131, 131, 131, 131,
- 131, 131, 121, 175, 182, 121, 121, 121, 121, 121,
- 121, 122, 122, 122, 122, 216, 265, 244, 392, 268,
- 269, 154, 122, 196, 184, 244, 268, 265, 269, 216,
- 122, 154, 154, 154, 154, 154, 154, 122, 184, 196,
- 122, 122, 122, 122, 122, 122, 129, 129, 129, 129,
-
- 129, 184, 276, 202, 340, 307, 161, 204, 307, 309,
- 276, 419, 309, 385, 340, 129, 161, 161, 161, 161,
- 161, 161, 129, 202, 204, 129, 129, 129, 129, 129,
- 129, 152, 152, 152, 152, 152, 232, 165, 172, 229,
- 313, 345, 420, 384, 165, 261, 345, 420, 313, 232,
- 152, 165, 172, 235, 229, 237, 239, 152, 224, 261,
- 152, 152, 152, 152, 152, 152, 163, 163, 163, 163,
- 163, 370, 224, 250, 235, 237, 176, 239, 370, 172,
- 435, 261, 364, 224, 435, 163, 176, 176, 176, 176,
- 176, 176, 177, 250, 251, 163, 163, 163, 163, 163,
-
- 163, 178, 177, 177, 177, 177, 177, 177, 270, 251,
- 272, 178, 178, 178, 178, 178, 178, 180, 180, 180,
- 180, 180, 281, 281, 281, 281, 281, 181, 272, 285,
- 270, 383, 348, 343, 383, 281, 180, 181, 181, 181,
- 181, 181, 181, 183, 285, 332, 180, 180, 180, 180,
- 180, 180, 187, 183, 183, 183, 183, 183, 183, 282,
- 303, 306, 187, 187, 187, 187, 187, 187, 189, 189,
- 189, 189, 189, 283, 283, 283, 283, 283, 199, 282,
- 300, 327, 303, 306, 300, 318, 283, 189, 199, 199,
- 199, 199, 199, 199, 300, 322, 327, 189, 189, 189,
-
- 189, 189, 189, 201, 201, 201, 201, 201, 319, 319,
- 319, 319, 319, 208, 418, 322, 360, 418, 317, 316,
- 326, 319, 201, 208, 208, 208, 208, 208, 208, 209,
- 326, 360, 201, 201, 201, 201, 201, 201, 211, 209,
- 209, 209, 209, 209, 209, 326, 356, 315, 211, 211,
- 211, 211, 211, 211, 215, 215, 215, 215, 215, 218,
- 215, 371, 337, 357, 361, 215, 356, 215, 371, 218,
- 218, 218, 218, 218, 218, 219, 337, 321, 314, 361,
- 215, 220, 321, 357, 366, 219, 219, 219, 219, 219,
- 219, 220, 220, 220, 220, 220, 220, 221, 366, 378,
-
- 337, 366, 321, 222, 381, 407, 378, 221, 221, 221,
- 221, 221, 221, 222, 222, 222, 222, 222, 222, 223,
- 334, 334, 334, 334, 334, 227, 308, 381, 407, 223,
- 223, 223, 223, 223, 223, 227, 227, 227, 227, 227,
- 227, 228, 379, 380, 298, 422, 334, 233, 422, 379,
- 380, 228, 228, 228, 228, 228, 228, 233, 233, 233,
- 233, 233, 233, 234, 338, 338, 338, 338, 338, 241,
- 432, 415, 441, 234, 234, 234, 234, 234, 234, 241,
- 241, 241, 241, 241, 241, 242, 382, 441, 393, 432,
- 338, 243, 415, 382, 393, 242, 242, 242, 242, 242,
-
- 242, 243, 243, 243, 243, 243, 243, 248, 248, 248,
- 248, 248, 405, 248, 293, 390, 394, 395, 248, 405,
- 248, 249, 249, 249, 249, 249, 255, 249, 377, 390,
- 394, 395, 249, 248, 249, 402, 255, 255, 255, 255,
- 255, 255, 377, 396, 404, 403, 402, 249, 253, 253,
- 253, 253, 253, 403, 253, 404, 463, 396, 256, 253,
- 253, 253, 377, 396, 280, 408, 463, 253, 256, 256,
- 256, 256, 256, 256, 253, 257, 408, 253, 253, 253,
- 253, 253, 253, 258, 416, 257, 257, 257, 257, 257,
- 257, 259, 279, 258, 258, 258, 258, 258, 258, 260,
-
- 416, 259, 259, 259, 259, 259, 259, 262, 278, 260,
- 260, 260, 260, 260, 260, 263, 277, 262, 262, 262,
- 262, 262, 262, 266, 271, 263, 263, 263, 263, 263,
- 263, 267, 264, 266, 266, 266, 266, 266, 266, 273,
- 254, 267, 267, 267, 267, 267, 267, 274, 247, 273,
- 273, 273, 273, 273, 273, 275, 406, 274, 274, 274,
- 274, 274, 274, 406, 401, 275, 275, 275, 275, 275,
- 275, 284, 284, 284, 284, 391, 443, 284, 401, 417,
- 391, 431, 246, 391, 431, 287, 287, 287, 287, 287,
- 284, 287, 245, 443, 240, 231, 287, 284, 287, 417,
-
- 284, 284, 284, 284, 284, 284, 286, 286, 286, 286,
- 230, 287, 412, 412, 412, 412, 412, 286, 288, 288,
- 288, 288, 288, 421, 288, 286, 430, 442, 412, 288,
- 421, 288, 286, 430, 450, 286, 286, 286, 286, 286,
- 286, 444, 225, 470, 288, 289, 289, 289, 289, 289,
- 442, 289, 217, 475, 450, 444, 289, 470, 289, 290,
- 290, 290, 290, 290, 294, 290, 448, 475, 462, 433,
- 290, 289, 290, 448, 294, 294, 294, 294, 294, 294,
- 425, 425, 425, 425, 425, 290, 291, 291, 291, 291,
- 291, 433, 291, 425, 455, 462, 296, 291, 214, 291,
-
- 341, 341, 341, 341, 341, 291, 296, 296, 296, 296,
- 296, 296, 291, 213, 455, 291, 291, 291, 291, 291,
- 291, 292, 292, 292, 292, 292, 341, 292, 449, 451,
- 200, 297, 292, 292, 292, 449, 451, 460, 195, 193,
- 292, 297, 297, 297, 297, 297, 297, 292, 299, 191,
- 292, 292, 292, 292, 292, 292, 301, 460, 299, 299,
- 299, 299, 299, 299, 302, 466, 301, 301, 301, 301,
- 301, 301, 304, 188, 302, 302, 302, 302, 302, 302,
- 305, 457, 304, 304, 304, 304, 304, 304, 466, 185,
- 305, 305, 305, 305, 305, 305, 310, 310, 310, 310,
-
- 310, 311, 457, 476, 468, 179, 174, 168, 310, 454,
- 468, 311, 311, 311, 311, 311, 311, 312, 471, 454,
- 164, 473, 310, 153, 476, 471, 473, 312, 312, 312,
- 312, 312, 312, 323, 323, 323, 323, 323, 151, 323,
- 454, 328, 328, 328, 328, 328, 323, 149, 472, 146,
- 145, 144, 328, 142, 328, 472, 141, 139, 331, 323,
- 324, 324, 324, 324, 324, 138, 324, 328, 331, 331,
- 331, 331, 331, 331, 355, 355, 355, 355, 355, 324,
- 355, 365, 365, 365, 365, 365, 324, 355, 136, 324,
- 324, 324, 324, 324, 324, 325, 325, 325, 325, 135,
-
- 355, 325, 133, 130, 128, 333, 126, 365, 115, 367,
- 367, 367, 367, 367, 325, 333, 333, 333, 333, 333,
- 333, 325, 113, 106, 325, 325, 325, 325, 325, 325,
- 329, 329, 329, 329, 329, 367, 95, 82, 79, 77,
- 335, 329, 65, 369, 369, 369, 369, 369, 61, 329,
- 335, 335, 335, 335, 335, 335, 329, 60, 59, 329,
- 329, 329, 329, 329, 329, 330, 330, 330, 330, 369,
- 58, 51, 45, 38, 29, 336, 330, 28, 24, 21,
- 19, 18, 16, 14, 330, 336, 336, 336, 336, 336,
- 336, 330, 339, 7, 330, 330, 330, 330, 330, 330,
-
- 342, 6, 339, 339, 339, 339, 339, 339, 5, 0,
- 342, 342, 342, 342, 342, 342, 346, 346, 346, 346,
- 346, 347, 0, 0, 0, 0, 0, 0, 346, 0,
- 0, 347, 347, 347, 347, 347, 347, 358, 0, 0,
- 0, 0, 346, 0, 0, 0, 0, 358, 358, 358,
- 358, 358, 358, 359, 359, 359, 359, 359, 362, 0,
- 0, 0, 0, 0, 359, 0, 359, 0, 362, 362,
- 362, 362, 362, 362, 363, 0, 0, 368, 0, 359,
- 0, 0, 0, 368, 363, 363, 363, 363, 363, 363,
- 368, 0, 368, 372, 0, 0, 0, 368, 368, 373,
-
- 0, 368, 0, 372, 372, 372, 372, 372, 372, 373,
- 373, 373, 373, 373, 373, 374, 0, 0, 0, 0,
- 0, 375, 0, 0, 0, 374, 374, 374, 374, 374,
- 374, 375, 375, 375, 375, 375, 375, 387, 0, 0,
- 0, 0, 0, 388, 0, 0, 0, 387, 387, 387,
- 387, 387, 387, 388, 388, 388, 388, 388, 388, 389,
- 0, 0, 0, 0, 0, 397, 0, 0, 0, 389,
- 389, 389, 389, 389, 389, 397, 397, 397, 397, 397,
- 397, 398, 0, 0, 0, 0, 0, 399, 0, 0,
- 0, 398, 398, 398, 398, 398, 398, 399, 399, 399,
-
- 399, 399, 399, 400, 400, 400, 400, 400, 0, 0,
- 409, 0, 0, 0, 0, 0, 0, 0, 0, 400,
- 409, 409, 409, 409, 409, 409, 410, 0, 0, 400,
- 411, 411, 411, 411, 411, 0, 410, 410, 410, 410,
- 410, 410, 0, 0, 0, 0, 411, 413, 0, 0,
- 414, 414, 414, 414, 414, 0, 411, 413, 413, 413,
- 413, 413, 413, 414, 423, 423, 423, 423, 423, 0,
- 427, 427, 427, 427, 427, 0, 414, 423, 0, 0,
- 0, 0, 0, 427, 0, 0, 0, 428, 0, 0,
- 423, 424, 424, 424, 424, 424, 427, 428, 428, 428,
-
- 428, 428, 428, 0, 424, 436, 436, 436, 436, 436,
- 424, 0, 0, 0, 0, 0, 0, 424, 436, 0,
- 424, 424, 424, 424, 424, 424, 437, 0, 0, 0,
- 0, 436, 0, 0, 0, 0, 437, 437, 437, 437,
- 437, 437, 438, 438, 438, 438, 438, 445, 0, 0,
- 446, 446, 446, 446, 446, 438, 0, 445, 445, 445,
- 445, 445, 445, 446, 0, 0, 0, 447, 438, 439,
- 439, 439, 439, 439, 0, 0, 446, 447, 447, 447,
- 447, 447, 447, 0, 0, 0, 0, 0, 439, 0,
- 0, 0, 0, 0, 452, 0, 0, 0, 439, 439,
-
- 439, 439, 439, 439, 452, 452, 452, 452, 452, 452,
- 453, 0, 0, 0, 0, 0, 458, 0, 0, 0,
- 453, 453, 453, 453, 453, 453, 458, 458, 458, 458,
- 458, 458, 459, 0, 0, 0, 0, 0, 464, 0,
- 0, 0, 459, 459, 459, 459, 459, 459, 464, 464,
- 464, 464, 464, 464, 465, 0, 0, 0, 0, 0,
- 469, 0, 0, 0, 465, 465, 465, 465, 465, 465,
- 469, 469, 469, 469, 469, 469, 479, 0, 479, 479,
- 479, 479, 479, 479, 479, 479, 479, 480, 480, 0,
- 480, 480, 481, 0, 481, 481, 481, 481, 481, 481,
-
- 481, 481, 481, 482, 482, 0, 482, 482, 483, 0,
- 0, 483, 483, 484, 484, 484, 484, 484, 484, 484,
- 484, 484, 485, 0, 485, 485, 0, 485, 485, 486,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 90, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 64, 52,
+ 106, 20, 22, 74, 55, 429, 37, 37, 37, 37,
+
+ 37, 57, 64, 57, 22, 243, 487, 22, 487, 52,
+ 22, 419, 55, 243, 22, 22, 64, 22, 106, 74,
+ 67, 66, 74, 57, 72, 72, 385, 127, 22, 67,
+ 37, 127, 66, 22, 55, 66, 22, 52, 71, 22,
+ 97, 55, 22, 22, 71, 22, 26, 73, 67, 66,
+ 82, 57, 71, 26, 26, 26, 26, 26, 26, 37,
+ 66, 72, 108, 109, 73, 80, 71, 76, 73, 82,
+ 107, 73, 71, 76, 86, 107, 73, 85, 140, 82,
+ 97, 384, 26, 26, 26, 26, 26, 26, 41, 41,
+ 41, 41, 73, 118, 41, 76, 73, 80, 84, 85,
+
+ 86, 80, 87, 86, 348, 175, 85, 41, 108, 109,
+ 96, 140, 84, 93, 41, 41, 41, 41, 41, 41,
+ 93, 107, 94, 119, 102, 80, 84, 104, 87, 342,
+ 250, 87, 103, 119, 118, 96, 317, 105, 161, 316,
+ 41, 102, 315, 41, 41, 41, 41, 41, 41, 44,
+ 96, 175, 104, 93, 314, 94, 44, 44, 44, 44,
+ 44, 44, 94, 96, 102, 103, 120, 104, 105, 125,
+ 102, 250, 103, 275, 119, 131, 120, 105, 161, 134,
+ 104, 275, 44, 94, 125, 44, 44, 44, 44, 44,
+ 44, 46, 144, 103, 150, 131, 105, 145, 46, 46,
+
+ 46, 46, 46, 46, 131, 134, 145, 165, 134, 125,
+ 137, 137, 148, 125, 156, 144, 150, 120, 192, 153,
+ 226, 144, 148, 150, 226, 145, 154, 46, 46, 46,
+ 46, 46, 46, 49, 49, 49, 49, 156, 137, 154,
+ 148, 157, 155, 156, 49, 153, 158, 165, 153, 174,
+ 190, 192, 49, 155, 154, 157, 168, 170, 164, 49,
+ 49, 49, 49, 49, 49, 164, 158, 171, 173, 157,
+ 155, 172, 182, 190, 235, 158, 184, 174, 216, 190,
+ 249, 499, 182, 499, 284, 49, 194, 217, 49, 49,
+ 49, 49, 49, 49, 56, 196, 168, 170, 164, 194,
+
+ 184, 56, 56, 56, 56, 56, 56, 171, 173, 172,
+ 235, 172, 201, 198, 194, 217, 184, 196, 216, 325,
+ 293, 201, 202, 182, 196, 284, 249, 203, 184, 202,
+ 56, 56, 56, 56, 56, 56, 77, 172, 198, 203,
+ 201, 204, 198, 77, 77, 77, 77, 77, 77, 293,
+ 202, 231, 232, 234, 390, 203, 281, 320, 390, 204,
+ 325, 234, 205, 492, 492, 231, 254, 509, 232, 509,
+ 204, 206, 77, 77, 77, 77, 77, 77, 88, 231,
+ 232, 234, 224, 236, 205, 88, 88, 88, 88, 88,
+ 88, 205, 236, 206, 254, 214, 214, 214, 214, 214,
+
+ 206, 214, 281, 320, 224, 265, 214, 313, 214, 237,
+ 306, 236, 332, 238, 88, 88, 88, 88, 88, 88,
+ 91, 238, 224, 265, 364, 307, 271, 91, 91, 91,
+ 91, 91, 91, 224, 265, 237, 306, 271, 237, 306,
+ 332, 238, 247, 247, 247, 247, 247, 214, 247, 267,
+ 296, 268, 364, 247, 271, 247, 91, 91, 91, 91,
+ 91, 91, 98, 98, 98, 98, 98, 279, 511, 337,
+ 511, 267, 268, 340, 98, 269, 303, 305, 267, 312,
+ 268, 98, 269, 303, 305, 278, 308, 312, 98, 98,
+ 98, 98, 98, 98, 247, 248, 248, 248, 248, 248,
+
+ 337, 248, 277, 269, 303, 305, 248, 276, 248, 340,
+ 463, 515, 308, 515, 98, 308, 270, 98, 98, 98,
+ 98, 98, 98, 110, 110, 110, 110, 110, 337, 110,
+ 280, 280, 280, 280, 280, 282, 282, 282, 282, 282,
+ 321, 343, 110, 280, 246, 321, 463, 248, 282, 110,
+ 110, 110, 110, 110, 110, 286, 286, 286, 286, 286,
+ 318, 318, 318, 318, 318, 343, 245, 366, 286, 517,
+ 343, 517, 370, 318, 394, 110, 344, 366, 110, 110,
+ 110, 110, 110, 110, 111, 111, 111, 111, 244, 394,
+ 111, 321, 239, 229, 370, 287, 287, 287, 287, 287,
+
+ 344, 370, 394, 111, 383, 344, 366, 286, 287, 228,
+ 111, 111, 111, 111, 111, 111, 288, 288, 288, 288,
+ 288, 289, 289, 289, 289, 289, 356, 225, 326, 288,
+ 383, 356, 213, 383, 289, 392, 111, 392, 326, 111,
+ 111, 111, 111, 111, 111, 114, 393, 287, 462, 212,
+ 462, 403, 114, 114, 114, 114, 114, 114, 322, 322,
+ 322, 322, 322, 392, 322, 357, 199, 193, 288, 393,
+ 357, 322, 403, 289, 191, 393, 462, 356, 114, 326,
+ 403, 114, 114, 114, 114, 114, 114, 115, 189, 327,
+ 327, 327, 327, 327, 115, 115, 115, 115, 115, 115,
+
+ 327, 187, 327, 331, 331, 331, 331, 331, 185, 179,
+ 322, 333, 333, 333, 333, 333, 357, 333, 167, 331,
+ 371, 163, 159, 115, 115, 115, 115, 115, 115, 117,
+ 117, 117, 117, 117, 346, 346, 346, 346, 346, 151,
+ 149, 327, 371, 336, 336, 336, 336, 336, 117, 371,
+ 346, 360, 361, 146, 336, 117, 117, 117, 117, 117,
+ 117, 360, 361, 333, 365, 365, 365, 365, 365, 416,
+ 345, 345, 345, 345, 345, 367, 367, 367, 367, 367,
+ 143, 142, 416, 377, 117, 117, 117, 117, 117, 117,
+ 121, 121, 121, 121, 121, 336, 524, 416, 524, 141,
+
+ 441, 121, 360, 361, 369, 369, 369, 369, 369, 121,
+ 377, 378, 379, 139, 441, 380, 121, 121, 121, 121,
+ 121, 121, 345, 355, 355, 355, 355, 355, 441, 355,
+ 527, 415, 527, 378, 379, 138, 355, 380, 377, 415,
+ 378, 379, 121, 395, 380, 121, 121, 121, 121, 121,
+ 121, 122, 122, 122, 122, 381, 369, 136, 395, 415,
+ 418, 381, 122, 359, 359, 359, 359, 359, 382, 391,
+ 122, 395, 391, 402, 359, 355, 359, 122, 122, 122,
+ 122, 122, 122, 381, 135, 401, 418, 133, 407, 418,
+ 382, 402, 132, 391, 407, 130, 405, 382, 391, 396,
+
+ 401, 391, 402, 122, 128, 396, 122, 122, 122, 122,
+ 122, 122, 129, 401, 396, 359, 407, 406, 405, 129,
+ 129, 129, 129, 129, 129, 405, 537, 396, 537, 544,
+ 545, 544, 545, 396, 399, 399, 399, 399, 399, 406,
+ 126, 404, 408, 116, 113, 95, 406, 399, 129, 129,
+ 129, 129, 129, 129, 147, 147, 147, 147, 147, 404,
+ 408, 92, 81, 79, 410, 410, 410, 410, 410, 417,
+ 404, 408, 75, 147, 63, 410, 420, 61, 417, 421,
+ 147, 147, 147, 147, 147, 147, 399, 400, 400, 400,
+ 400, 400, 409, 409, 409, 409, 409, 417, 409, 60,
+
+ 420, 421, 59, 400, 58, 420, 147, 51, 421, 147,
+ 147, 147, 147, 147, 147, 152, 410, 411, 411, 411,
+ 411, 411, 152, 152, 152, 152, 152, 152, 413, 413,
+ 413, 413, 413, 411, 45, 29, 28, 422, 27, 400,
+ 21, 413, 430, 19, 409, 435, 412, 412, 412, 412,
+ 412, 152, 152, 152, 152, 152, 152, 160, 160, 160,
+ 160, 160, 412, 422, 430, 18, 422, 432, 431, 411,
+ 435, 430, 433, 16, 435, 442, 160, 432, 468, 433,
+ 413, 442, 448, 160, 160, 160, 160, 160, 160, 423,
+ 423, 423, 423, 423, 431, 432, 443, 431, 412, 14,
+
+ 433, 468, 423, 442, 448, 449, 7, 468, 443, 160,
+ 444, 448, 160, 160, 160, 160, 160, 160, 162, 162,
+ 162, 162, 162, 0, 443, 444, 0, 449, 425, 425,
+ 425, 425, 425, 450, 449, 0, 454, 162, 444, 0,
+ 451, 425, 450, 0, 162, 162, 162, 162, 162, 162,
+ 427, 427, 427, 427, 427, 436, 436, 436, 436, 436,
+ 0, 450, 451, 427, 454, 466, 0, 0, 436, 451,
+ 0, 466, 454, 162, 162, 162, 162, 162, 162, 169,
+ 425, 438, 438, 438, 438, 438, 169, 169, 169, 169,
+ 169, 169, 454, 466, 438, 0, 0, 0, 457, 0,
+
+ 455, 460, 427, 476, 0, 0, 457, 436, 471, 455,
+ 460, 476, 472, 0, 473, 169, 169, 169, 169, 169,
+ 169, 176, 176, 176, 176, 176, 457, 176, 455, 460,
+ 471, 476, 0, 438, 472, 0, 0, 471, 473, 0,
+ 176, 472, 0, 473, 0, 0, 0, 176, 176, 176,
+ 176, 176, 176, 445, 445, 445, 445, 445, 465, 465,
+ 465, 465, 465, 0, 0, 0, 445, 0, 0, 0,
+ 0, 465, 0, 176, 0, 0, 176, 176, 176, 176,
+ 176, 176, 178, 469, 469, 469, 469, 469, 470, 178,
+ 178, 178, 178, 178, 178, 0, 469, 0, 0, 0,
+
+ 0, 0, 475, 470, 0, 445, 0, 0, 0, 0,
+ 465, 0, 0, 0, 0, 0, 470, 475, 178, 178,
+ 178, 178, 178, 178, 180, 180, 180, 180, 180, 0,
+ 475, 0, 0, 0, 0, 469, 0, 0, 0, 0,
+ 0, 0, 0, 180, 0, 0, 0, 0, 0, 0,
+ 180, 180, 180, 180, 180, 180, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 180,
+ 180, 180, 180, 180, 180, 181, 181, 181, 181, 181,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 181, 0, 0, 0, 0, 0,
+ 0, 181, 181, 181, 181, 181, 181, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 181, 181, 181, 181, 181, 181, 183, 183, 183, 183,
+ 183, 0, 0, 0, 0, 0, 0, 183, 0, 0,
+ 0, 0, 0, 0, 0, 183, 0, 0, 0, 0,
+ 0, 0, 183, 183, 183, 183, 183, 183, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 183, 0,
+
+ 0, 183, 183, 183, 183, 183, 183, 188, 188, 188,
+ 188, 188, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 188, 0, 0, 0,
+ 0, 0, 0, 188, 188, 188, 188, 188, 188, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 188, 188, 188, 188, 188, 188, 195, 0,
+ 0, 0, 0, 0, 0, 195, 195, 195, 195, 195,
+ 195, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 195, 195, 195, 195, 195, 195,
+ 200, 200, 200, 200, 200, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 200,
+ 0, 0, 0, 0, 0, 0, 200, 200, 200, 200,
+ 200, 200, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 200, 200, 200, 200, 200,
+ 200, 207, 0, 0, 0, 0, 0, 0, 207, 207,
+ 207, 207, 207, 207, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 207, 207, 207,
+ 207, 207, 207, 208, 208, 208, 208, 208, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 208, 0, 0, 0, 0, 0, 0, 208,
+ 208, 208, 208, 208, 208, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 208, 208,
+ 208, 208, 208, 208, 215, 0, 0, 0, 0, 0,
+ 0, 215, 215, 215, 215, 215, 215, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 215, 215, 215, 215, 215, 215, 218, 218, 218, 218,
+ 218, 0, 218, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 218, 0, 0, 0, 0,
+ 0, 0, 218, 218, 218, 218, 218, 218, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 218, 0,
+ 0, 218, 218, 218, 218, 218, 218, 220, 0, 0,
+ 0, 0, 0, 0, 220, 220, 220, 220, 220, 220,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 220, 220, 220, 220, 220, 220, 221,
+ 221, 221, 221, 221, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 221, 0,
+ 0, 0, 0, 0, 0, 221, 221, 221, 221, 221,
+ 221, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 221, 221, 221, 221, 221, 221,
+ 222, 222, 222, 222, 222, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 222,
+
+ 0, 0, 0, 0, 0, 0, 222, 222, 222, 222,
+ 222, 222, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 222, 222, 222, 222, 222,
+ 222, 223, 223, 223, 223, 223, 0, 0, 0, 0,
+ 0, 0, 223, 0, 0, 0, 0, 0, 0, 0,
+ 223, 0, 0, 0, 0, 0, 0, 223, 223, 223,
+ 223, 223, 223, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 223, 0, 0, 223, 223, 223, 223,
+
+ 223, 223, 227, 227, 227, 227, 227, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 227, 0, 0, 0, 0, 0, 0, 227, 227,
+ 227, 227, 227, 227, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 227, 227, 227,
+ 227, 227, 227, 230, 0, 0, 0, 0, 0, 0,
+ 230, 230, 230, 230, 230, 230, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 230,
+
+ 230, 230, 230, 230, 230, 233, 233, 233, 233, 233,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 233, 0, 0, 0, 0, 0,
+ 0, 233, 233, 233, 233, 233, 233, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 233, 233, 233, 233, 233, 233, 240, 0, 0, 0,
+ 0, 0, 0, 240, 240, 240, 240, 240, 240, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 240, 240, 240, 240, 240, 240, 241, 241,
+ 241, 241, 241, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 241, 0, 0,
+ 0, 0, 0, 0, 241, 241, 241, 241, 241, 241,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 241, 241, 241, 241, 241, 241, 252,
+ 252, 252, 252, 252, 0, 252, 0, 0, 0, 0,
+ 252, 252, 252, 0, 0, 0, 0, 0, 252, 0,
+ 0, 0, 0, 0, 0, 252, 252, 252, 252, 252,
+
+ 252, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 252, 0, 0, 252, 252, 252, 252, 252, 252,
+ 253, 0, 0, 0, 0, 0, 0, 253, 253, 253,
+ 253, 253, 253, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 253, 253, 253, 253,
+ 253, 253, 255, 255, 255, 255, 255, 0, 255, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 255, 0, 0, 0, 0, 0, 0, 255, 255,
+
+ 255, 255, 255, 255, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 0, 0, 255, 255, 255,
+ 255, 255, 255, 257, 0, 0, 0, 0, 0, 0,
+ 257, 257, 257, 257, 257, 257, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 257, 0, 0, 257,
+ 257, 257, 257, 257, 257, 258, 258, 258, 258, 258,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 258, 0, 0, 0, 0, 0,
+
+ 0, 258, 258, 258, 258, 258, 258, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 258, 0, 0,
+ 258, 258, 258, 258, 258, 258, 259, 259, 259, 259,
+ 259, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 259, 0, 0, 0, 0,
+ 0, 0, 259, 259, 259, 259, 259, 259, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 259, 259, 259, 259, 259, 259, 260, 260, 260,
+
+ 260, 260, 0, 0, 0, 0, 0, 0, 260, 0,
+ 0, 0, 0, 0, 0, 0, 260, 0, 0, 0,
+ 0, 0, 0, 260, 260, 260, 260, 260, 260, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 260,
+ 0, 0, 260, 260, 260, 260, 260, 260, 261, 261,
+ 261, 261, 261, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 261, 0, 0,
+ 0, 0, 0, 0, 261, 261, 261, 261, 261, 261,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 261, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 261, 261, 261, 261, 261, 261, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 261, 262, 262, 262, 262, 262, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 262, 0, 0, 0, 0, 0, 0, 262, 262,
+ 262, 262, 262, 262, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 262, 262, 262,
+ 262, 262, 262, 263, 0, 0, 0, 0, 0, 0,
+
+ 263, 263, 263, 263, 263, 263, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 263,
+ 263, 263, 263, 263, 263, 264, 264, 264, 264, 264,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 264, 0, 0, 0, 0, 0,
+ 0, 264, 264, 264, 264, 264, 264, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 264, 264, 264, 264, 264, 264, 266, 266, 266, 266,
+
+ 266, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 266, 0, 0, 0, 0,
+ 0, 0, 266, 266, 266, 266, 266, 266, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 266, 266, 266, 266, 266, 266, 272, 0, 0,
+ 0, 0, 0, 0, 272, 272, 272, 272, 272, 272,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 272, 272, 272, 272, 272, 272, 273,
+
+ 273, 273, 273, 273, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 273, 0,
+ 0, 0, 0, 0, 0, 273, 273, 273, 273, 273,
+ 273, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 273, 273, 273, 273, 273, 273,
+ 283, 283, 283, 283, 0, 0, 283, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 283,
+ 0, 0, 0, 0, 0, 0, 283, 283, 283, 283,
+ 283, 283, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 283, 0, 0, 283, 283, 283, 283, 283,
+ 283, 285, 285, 285, 285, 0, 0, 0, 0, 0,
+ 0, 0, 285, 0, 0, 0, 0, 0, 0, 0,
+ 285, 0, 0, 0, 0, 0, 0, 285, 285, 285,
+ 285, 285, 285, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 285, 0, 0, 285, 285, 285, 285,
+ 285, 285, 290, 290, 290, 290, 290, 0, 0, 0,
+ 0, 0, 0, 0, 0, 290, 0, 0, 0, 0,
+
+ 0, 290, 0, 0, 0, 0, 0, 0, 290, 290,
+ 290, 290, 290, 290, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 290, 0, 0, 290, 290, 290,
+ 290, 290, 290, 291, 291, 291, 291, 291, 0, 291,
+ 0, 0, 0, 0, 291, 291, 291, 0, 0, 0,
+ 0, 0, 291, 0, 0, 0, 0, 0, 0, 291,
+ 291, 291, 291, 291, 291, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 291, 0, 0, 291, 291,
+
+ 291, 291, 291, 291, 292, 0, 0, 0, 0, 0,
+ 0, 292, 292, 292, 292, 292, 292, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 292, 292, 292, 292, 292, 292, 294, 294, 294, 294,
+ 294, 0, 294, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 294, 0, 0, 0, 0,
+ 0, 0, 294, 294, 294, 294, 294, 294, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 294, 0,
+
+ 0, 294, 294, 294, 294, 294, 294, 297, 297, 297,
+ 297, 297, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 297, 0, 0, 0,
+ 0, 0, 0, 297, 297, 297, 297, 297, 297, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 297,
+ 0, 0, 297, 297, 297, 297, 297, 297, 298, 298,
+ 298, 298, 298, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 298, 0, 0,
+ 0, 0, 0, 0, 298, 298, 298, 298, 298, 298,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 298, 298, 298, 298, 298, 298, 299,
+ 299, 299, 299, 299, 0, 0, 0, 0, 0, 0,
+ 299, 0, 0, 0, 0, 0, 0, 0, 299, 0,
+ 0, 0, 0, 0, 0, 299, 299, 299, 299, 299,
+ 299, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 299, 0, 0, 299, 299, 299, 299, 299, 299,
+ 300, 300, 300, 300, 300, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 300, 0, 0, 300,
+ 0, 0, 0, 0, 0, 0, 300, 300, 300, 300,
+ 300, 300, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 300, 300, 300, 300, 300,
+ 300, 301, 301, 301, 301, 301, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 301, 0, 0, 0, 0, 0, 0, 301, 301, 301,
+ 301, 301, 301, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 301, 301, 301, 301,
+ 301, 301, 302, 302, 302, 302, 302, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 302, 0, 0, 0, 0, 0, 0, 302, 302,
+ 302, 302, 302, 302, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 302, 302, 302,
+ 302, 302, 302, 304, 304, 304, 304, 304, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 304, 0, 0, 0, 0, 0, 0, 304,
+
+ 304, 304, 304, 304, 304, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 304, 304,
+ 304, 304, 304, 304, 309, 0, 0, 0, 0, 0,
+ 0, 309, 309, 309, 309, 309, 309, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 309, 309, 309, 309, 309, 309, 310, 310, 310, 310,
+ 310, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 310, 0, 0, 0, 0,
+
+ 0, 0, 310, 310, 310, 310, 310, 310, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 310, 310, 310, 310, 310, 310, 323, 323, 323,
+ 323, 323, 0, 323, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 323, 0, 0, 0,
+ 0, 0, 0, 323, 323, 323, 323, 323, 323, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 323,
+ 0, 0, 323, 323, 323, 323, 323, 323, 324, 324,
+
+ 324, 324, 0, 0, 324, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 324, 0, 0,
+ 0, 0, 0, 0, 324, 324, 324, 324, 324, 324,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 324, 0, 0, 324, 324, 324, 324, 324, 324, 328,
+ 328, 328, 328, 328, 0, 0, 0, 0, 0, 0,
+ 328, 0, 0, 0, 0, 0, 0, 0, 328, 0,
+ 0, 0, 0, 0, 0, 328, 328, 328, 328, 328,
+ 328, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 328, 0, 0, 328, 328, 328, 328, 328, 328,
+ 329, 329, 329, 329, 0, 0, 0, 0, 0, 0,
+ 0, 329, 0, 0, 0, 0, 0, 0, 0, 329,
+ 0, 0, 0, 0, 0, 0, 329, 329, 329, 329,
+ 329, 329, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 329, 0, 0, 329, 329, 329, 329, 329,
+ 329, 330, 330, 330, 330, 330, 0, 0, 0, 0,
+ 0, 0, 0, 0, 330, 0, 0, 0, 0, 0,
+
+ 330, 0, 0, 0, 0, 0, 0, 330, 330, 330,
+ 330, 330, 330, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 330, 0, 0, 330, 330, 330, 330,
+ 330, 330, 334, 0, 0, 0, 0, 0, 0, 334,
+ 334, 334, 334, 334, 334, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 334, 334,
+ 334, 334, 334, 334, 335, 0, 0, 0, 0, 0,
+ 0, 335, 335, 335, 335, 335, 335, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 335, 335, 335, 335, 335, 335, 338, 0, 0, 0,
+ 0, 0, 0, 338, 338, 338, 338, 338, 338, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 338, 338, 338, 338, 338, 338, 339, 339,
+ 339, 339, 339, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 339, 0, 0,
+ 0, 0, 0, 0, 339, 339, 339, 339, 339, 339,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 339, 339, 339, 339, 339, 339, 341,
+ 341, 341, 341, 341, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 341, 0,
+ 0, 0, 0, 0, 0, 341, 341, 341, 341, 341,
+ 341, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 341, 341, 341, 341, 341, 341,
+ 358, 0, 0, 0, 0, 0, 0, 358, 358, 358,
+
+ 358, 358, 358, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 358, 358, 358, 358,
+ 358, 358, 362, 0, 0, 0, 0, 0, 0, 362,
+ 362, 362, 362, 362, 362, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 362, 362,
+ 362, 362, 362, 362, 363, 363, 363, 363, 363, 0,
+ 0, 0, 0, 0, 0, 0, 0, 363, 0, 0,
+ 0, 0, 0, 363, 0, 0, 0, 0, 0, 0,
+
+ 363, 363, 363, 363, 363, 363, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 363, 0, 0, 363,
+ 363, 363, 363, 363, 363, 368, 0, 0, 0, 0,
+ 0, 0, 368, 0, 368, 0, 0, 0, 0, 368,
+ 368, 0, 0, 368, 0, 0, 0, 0, 368, 0,
+ 0, 0, 0, 0, 368, 0, 0, 0, 0, 0,
+ 368, 0, 368, 0, 0, 0, 0, 368, 368, 0,
+ 0, 368, 373, 0, 0, 0, 0, 0, 0, 373,
+ 373, 373, 373, 373, 373, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 373, 373,
+ 373, 373, 373, 373, 374, 0, 0, 0, 0, 0,
+ 0, 374, 374, 374, 374, 374, 374, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 374, 374, 374, 374, 374, 374, 375, 0, 0, 0,
+ 0, 0, 0, 375, 375, 375, 375, 375, 375, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 375, 375, 375, 375, 375, 375, 387, 0,
+ 0, 0, 0, 0, 0, 387, 387, 387, 387, 387,
+ 387, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 387, 387, 387, 387, 387, 387,
+ 388, 0, 0, 0, 0, 0, 0, 388, 388, 388,
+ 388, 388, 388, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 388, 388, 388, 388,
+ 388, 388, 389, 0, 0, 0, 0, 0, 0, 389,
+
+ 389, 389, 389, 389, 389, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 389, 389,
+ 389, 389, 389, 389, 397, 0, 0, 0, 0, 0,
+ 0, 397, 397, 397, 397, 397, 397, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 397, 397, 397, 397, 397, 397, 398, 0, 0, 0,
+ 0, 0, 0, 398, 398, 398, 398, 398, 398, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 398, 398, 398, 398, 398, 398, 414, 0,
+ 0, 0, 0, 0, 0, 414, 414, 414, 414, 414,
+ 414, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 414, 414, 414, 414, 414, 414,
+ 426, 0, 0, 0, 0, 0, 0, 426, 426, 426,
+ 426, 426, 426, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 426, 426, 426, 426,
+
+ 426, 426, 428, 428, 428, 428, 428, 0, 0, 0,
+ 0, 0, 0, 0, 0, 428, 0, 0, 0, 0,
+ 0, 428, 0, 0, 0, 0, 0, 0, 428, 428,
+ 428, 428, 428, 428, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 428, 0, 0, 428, 428, 428,
+ 428, 428, 428, 437, 437, 437, 437, 437, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 437, 0, 0, 0, 0, 0, 0, 437,
+ 437, 437, 437, 437, 437, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 437, 437,
+ 437, 437, 437, 437, 439, 0, 0, 0, 0, 0,
+ 0, 439, 439, 439, 439, 439, 439, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 439, 439, 439, 439, 439, 439, 446, 0, 0, 0,
+ 0, 0, 0, 446, 446, 446, 446, 446, 446, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 446, 446, 446, 446, 446, 446, 447, 0,
+ 0, 0, 0, 0, 0, 447, 447, 447, 447, 447,
+ 447, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 447, 447, 447, 447, 447, 447,
+ 452, 0, 0, 0, 0, 0, 0, 452, 452, 452,
+ 452, 452, 452, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 452, 452, 452, 452,
+ 452, 452, 453, 0, 0, 0, 0, 0, 0, 453,
+
+ 453, 453, 453, 453, 453, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 453, 453,
+ 453, 453, 453, 453, 458, 0, 0, 0, 0, 0,
+ 0, 458, 458, 458, 458, 458, 458, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 458, 458, 458, 458, 458, 458, 459, 0, 0, 0,
+ 0, 0, 0, 459, 459, 459, 459, 459, 459, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 459, 459, 459, 459, 459, 459, 464, 0,
+ 0, 0, 0, 0, 0, 464, 464, 464, 464, 464,
+ 464, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 464, 464, 464, 464, 464, 464,
+ 479, 0, 0, 479, 479, 479, 479, 479, 479, 479,
+ 479, 479, 479, 480, 480, 0, 480, 480, 481, 0,
+ 0, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 482, 482, 0, 482, 482, 483, 0, 0, 483,
+
+ 483, 484, 0, 484, 484, 0, 484, 484, 485, 485,
+ 485, 485, 485, 485, 485, 485, 485, 485, 486, 486,
486, 486, 486, 486, 486, 486, 486, 486, 486, 486,
- 487, 487, 487, 487, 487, 487, 487, 487, 487, 488,
- 488, 0, 488, 488, 489, 489, 489, 489, 489, 489,
- 489, 489, 489, 489, 489, 490, 490, 490, 490, 490,
- 490, 490, 490, 490, 490, 490, 490, 491, 491, 492,
- 492, 492, 492, 492, 492, 492, 492, 492, 493, 493,
- 0, 493, 493, 494, 494, 494, 494, 494, 494, 494,
-
- 494, 494, 495, 495, 0, 495, 495, 496, 496, 496,
- 496, 496, 496, 496, 496, 496, 497, 497, 497, 497,
- 497, 497, 497, 497, 497, 498, 498, 498, 498, 498,
- 498, 498, 498, 498, 498, 498, 498, 499, 499, 499,
- 499, 499, 499, 499, 499, 499, 500, 500, 500, 500,
- 500, 500, 500, 500, 500, 501, 501, 501, 0, 501,
+ 486, 488, 488, 0, 488, 488, 489, 489, 489, 489,
+ 489, 489, 489, 489, 489, 489, 490, 490, 490, 490,
+ 490, 490, 490, 490, 490, 490, 490, 490, 490, 491,
+ 491, 491, 491, 491, 491, 491, 491, 491, 491, 491,
+ 491, 491, 491, 493, 493, 0, 493, 493, 494, 494,
+ 494, 494, 494, 494, 494, 494, 494, 494, 495, 495,
+ 0, 495, 495, 496, 496, 496, 496, 496, 496, 496,
+
+ 496, 496, 496, 497, 497, 497, 497, 497, 497, 497,
+ 497, 497, 497, 498, 498, 498, 500, 500, 500, 500,
+ 500, 500, 500, 500, 500, 500, 501, 501, 0, 501,
+ 501, 501, 501, 501, 501, 501, 501, 501, 501, 502,
502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
- 502, 502, 503, 503, 503, 0, 503, 504, 504, 504,
- 504, 0, 504, 504, 504, 504, 504, 504, 505, 505,
- 505, 0, 505, 506, 0, 506, 506, 506, 506, 506,
-
- 506, 506, 506, 506, 507, 0, 507, 507, 507, 507,
- 507, 507, 507, 507, 507, 508, 508, 508, 508, 508,
- 508, 508, 508, 508, 508, 508, 509, 509, 509, 0,
- 509, 510, 510, 510, 510, 510, 510, 510, 510, 510,
- 510, 510, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 512, 512, 512, 0, 512, 513, 513,
- 513, 0, 0, 0, 513, 0, 0, 513, 513, 514,
- 514, 514, 514, 514, 514, 514, 514, 514, 515, 515,
- 515, 0, 0, 515, 515, 515, 0, 515, 515, 516,
- 516, 516, 516, 516, 516, 516, 516, 516, 478, 478,
+ 502, 502, 503, 503, 503, 503, 503, 503, 503, 503,
+ 503, 503, 503, 503, 503, 503, 504, 504, 504, 504,
+ 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
+ 505, 505, 505, 505, 505, 505, 505, 505, 505, 505,
+ 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
+
+ 507, 507, 507, 507, 508, 0, 0, 508, 508, 508,
+ 508, 508, 508, 508, 508, 508, 508, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 512, 512, 512, 512, 513, 513, 513, 513, 513,
+ 513, 0, 513, 513, 513, 513, 513, 513, 514, 514,
+ 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
+ 514, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 518, 518, 518, 518, 519,
+ 519, 519, 519, 519, 519, 0, 519, 519, 519, 519,
+ 519, 519, 520, 0, 0, 520, 520, 520, 520, 520,
+
+ 520, 520, 520, 520, 520, 521, 0, 0, 521, 521,
+ 521, 521, 521, 521, 521, 521, 521, 521, 522, 522,
+ 522, 522, 522, 522, 522, 522, 522, 522, 522, 522,
+ 522, 523, 523, 523, 523, 523, 523, 523, 523, 523,
+ 523, 523, 523, 523, 525, 525, 0, 525, 525, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 526, 528, 528, 528, 528, 529, 529, 529, 529,
+ 529, 529, 529, 529, 529, 529, 529, 529, 529, 530,
+ 0, 0, 530, 530, 530, 530, 530, 530, 530, 530,
+ 530, 530, 531, 531, 531, 531, 531, 531, 531, 531,
+
+ 531, 531, 531, 531, 531, 532, 532, 532, 532, 532,
+ 0, 0, 532, 532, 532, 532, 532, 532, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 534, 534, 534, 534, 534, 534, 534, 534, 534,
+ 534, 534, 534, 534, 535, 535, 0, 535, 535, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 538, 538, 538, 538, 539, 539, 0, 539,
+ 539, 539, 539, 539, 539, 539, 539, 539, 539, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 541, 541, 0, 541, 541, 541, 541, 541,
+
+ 541, 541, 541, 541, 541, 542, 542, 542, 542, 542,
+ 542, 542, 542, 542, 542, 542, 542, 542, 543, 543,
+ 543, 543, 543, 0, 0, 543, 543, 543, 543, 543,
+ 543, 546, 546, 546, 546, 0, 0, 0, 0, 546,
+ 0, 0, 546, 546, 547, 547, 547, 547, 0, 0,
+ 0, 547, 547, 547, 0, 547, 547, 548, 548, 548,
+ 548, 548, 548, 548, 548, 548, 548, 549, 549, 549,
+ 549, 549, 549, 549, 549, 549, 549, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
- 478, 478, 478, 478, 478, 478, 478, 478, 478
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 478, 478
} ;
#line 1 "<stdin>"
@@ -878,7 +1813,7 @@ YY_DECL
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 2399 );
+ while ( yy_base[yy_current_state] != 6578 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -1250,7 +2185,7 @@ YY_RULE_SETUP
#line 110 "<stdin>"
ECHO;
YY_BREAK
-#line 1761 "<stdout>"
+#line 2738 "<stdout>"
case YY_STATE_EOF(INITIAL):
case YY_END_OF_BUFFER:
case YY_STATE_EOF(mediaquery):
diff --git a/src/3rdparty/webkit/WebCore/page/DOMWindow.cpp b/src/3rdparty/webkit/WebCore/page/DOMWindow.cpp
index 42d2e90..dd14fb9 100644
--- a/src/3rdparty/webkit/WebCore/page/DOMWindow.cpp
+++ b/src/3rdparty/webkit/WebCore/page/DOMWindow.cpp
@@ -333,6 +333,9 @@ Storage* DOMWindow::sessionStorage() const
Storage* DOMWindow::localStorage() const
{
+ if (m_localStorage)
+ return m_localStorage.get();
+
Document* document = this->document();
if (!document)
return 0;
diff --git a/src/3rdparty/webkit/WebCore/page/DOMWindow.h b/src/3rdparty/webkit/WebCore/page/DOMWindow.h
index 0277441..e7fab18 100644
--- a/src/3rdparty/webkit/WebCore/page/DOMWindow.h
+++ b/src/3rdparty/webkit/WebCore/page/DOMWindow.h
@@ -265,7 +265,7 @@ namespace WebCore {
Location* optionalLocation() const { return m_location.get(); }
#if ENABLE(DOM_STORAGE)
Storage* optionalSessionStorage() const { return m_sessionStorage.get(); }
- Storage* optionalLocalStorage() const { return m_sessionStorage.get(); }
+ Storage* optionalLocalStorage() const { return m_localStorage.get(); }
#endif
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
DOMApplicationCache* optionalApplicationCache() const { return m_applicationCache.get(); }
diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp
index deeea99..4e78083 100644
--- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp
@@ -37,20 +37,27 @@
#if QT_VERSION >= 0x040400
namespace WebCore {
-static QString qstring(const TextRun& run)
+static const QString qstring(const TextRun& run)
{
- QString string((QChar *)run.characters(), run.length());
- QChar *uc = string.data();
+ //We don't detach
+ return QString::fromRawData((const QChar *)run.characters(), run.length());
+}
+
+static const QString fixSpacing(const QString &string)
+{
+ //Only detach if we're actually changing something
+ QString possiblyDetached = string;
for (int i = 0; i < string.length(); ++i) {
- if (Font::treatAsSpace(uc[i].unicode()))
- uc[i] = 0x20;
- else if (Font::treatAsZeroWidthSpace(uc[i].unicode()))
- uc[i] = 0x200c;
+ const QChar c = string.at(i);
+ if (c.unicode() != 0x20 && Font::treatAsSpace(c.unicode())) {
+ possiblyDetached[i] = 0x20; //detach
+ } else if (c.unicode() != 0x200c && Font::treatAsZeroWidthSpace(c.unicode())) {
+ possiblyDetached[i] = 0x200c; //detach
+ }
}
- return string;
+ return possiblyDetached;
}
-
static QTextLine setupLayout(QTextLayout* layout, const TextRun& style)
{
int flags = style.rtl() ? Qt::TextForceRightToLeft : Qt::TextForceLeftToRight;
@@ -75,7 +82,7 @@ void Font::drawComplexText(GraphicsContext* ctx, const TextRun& run, const Float
Color color = ctx->fillColor();
p->setPen(QColor(color));
- QString string = qstring(run);
+ const QString string = fixSpacing(qstring(run));
// text shadow
IntSize shadowSize;
@@ -144,7 +151,7 @@ float Font::floatWidthForComplexText(const TextRun& run) const
{
if (!run.length())
return 0;
- QString string = qstring(run);
+ const QString string = fixSpacing(qstring(run));
QTextLayout layout(string, font());
QTextLine line = setupLayout(&layout, run);
int w = int(line.naturalTextWidth());
@@ -157,7 +164,7 @@ float Font::floatWidthForComplexText(const TextRun& run) const
int Font::offsetForPositionForComplexText(const TextRun& run, int position, bool includePartialGlyphs) const
{
- QString string = qstring(run);
+ const QString string = fixSpacing(qstring(run));
QTextLayout layout(string, font());
QTextLine line = setupLayout(&layout, run);
return line.xToCursor(position);
@@ -165,7 +172,7 @@ int Font::offsetForPositionForComplexText(const TextRun& run, int position, bool
FloatRect Font::selectionRectForComplexText(const TextRun& run, const IntPoint& pt, int h, int from, int to) const
{
- QString string = qstring(run);
+ const QString string = fixSpacing(qstring(run));
QTextLayout layout(string, font());
QTextLine line = setupLayout(&layout, run);
diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsContextQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
index 936c1ea..6c90ea3 100644
--- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
@@ -470,13 +470,21 @@ void GraphicsContext::drawLine(const IntPoint& point1, const IntPoint& point2)
if (paintingDisabled())
return;
+ StrokeStyle style = strokeStyle();
+ Color color = strokeColor();
+ if (style == NoStroke || !color.alpha())
+ return;
+
+ float width = strokeThickness();
+
FloatPoint p1 = point1;
FloatPoint p2 = point2;
+ bool isVerticalLine = (p1.x() == p2.x());
QPainter *p = m_data->p();
const bool antiAlias = p->testRenderHint(QPainter::Antialiasing);
p->setRenderHint(QPainter::Antialiasing, m_data->antiAliasingForRectsAndLines);
- adjustLineToPixelBoundaries(p1, p2, strokeThickness(), strokeStyle());
+ adjustLineToPixelBoundaries(p1, p2, width, style);
IntSize shadowSize;
int shadowBlur;
@@ -489,8 +497,76 @@ void GraphicsContext::drawLine(const IntPoint& point1, const IntPoint& point2)
p->restore();
}
+ int patWidth = 0;
+ switch (style) {
+ case NoStroke:
+ case SolidStroke:
+ break;
+ case DottedStroke:
+ patWidth = (int)width;
+ break;
+ case DashedStroke:
+ patWidth = 3 * (int)width;
+ break;
+ }
+
+ if (patWidth) {
+ p->save();
+
+ // Do a rect fill of our endpoints. This ensures we always have the
+ // appearance of being a border. We then draw the actual dotted/dashed line.
+ if (isVerticalLine) {
+ p->fillRect(FloatRect(p1.x() - width / 2, p1.y() - width, width, width), color);
+ p->fillRect(FloatRect(p2.x() - width / 2, p2.y(), width, width), color);
+ } else {
+ p->fillRect(FloatRect(p1.x() - width, p1.y() - width / 2, width, width), color);
+ p->fillRect(FloatRect(p2.x(), p2.y() - width / 2, width, width), color);
+ }
+
+ // Example: 80 pixels with a width of 30 pixels.
+ // Remainder is 20. The maximum pixels of line we could paint
+ // will be 50 pixels.
+ int distance = (isVerticalLine ? (point2.y() - point1.y()) : (point2.x() - point1.x())) - 2*(int)width;
+ int remainder = distance % patWidth;
+ int coverage = distance - remainder;
+ int numSegments = coverage / patWidth;
+
+ float patternOffset = 0.0f;
+ // Special case 1px dotted borders for speed.
+ if (patWidth == 1)
+ patternOffset = 1.0f;
+ else {
+ bool evenNumberOfSegments = numSegments % 2 == 0;
+ if (remainder)
+ evenNumberOfSegments = !evenNumberOfSegments;
+ if (evenNumberOfSegments) {
+ if (remainder) {
+ patternOffset += patWidth - remainder;
+ patternOffset += remainder / 2;
+ } else
+ patternOffset = patWidth / 2;
+ } else {
+ if (remainder)
+ patternOffset = (patWidth - remainder)/2;
+ }
+ }
+
+ QVector<qreal> dashes;
+ dashes << qreal(patWidth) / width << qreal(patWidth) / width;
+
+ QPen pen = p->pen();
+ pen.setWidthF(width);
+ pen.setCapStyle(Qt::FlatCap);
+ pen.setDashPattern(dashes);
+ pen.setDashOffset(patternOffset / width);
+ p->setPen(pen);
+ }
+
p->drawLine(p1, p2);
+ if (patWidth)
+ p->restore();
+
p->setRenderHint(QPainter::Antialiasing, antiAlias);
}
diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageBufferQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageBufferQt.cpp
index d4ab59f..29a02d4 100644
--- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageBufferQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageBufferQt.cpp
@@ -1,6 +1,7 @@
/*
* Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
* Copyright (C) 2008 Holger Hans Peter Freyther
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -31,10 +32,11 @@
#include "GraphicsContext.h"
#include "ImageData.h"
#include "MIMETypeRegistry.h"
-#include "NotImplemented.h"
#include "StillImageQt.h"
#include <QBuffer>
+#include <QColor>
+#include <QImage>
#include <QImageWriter>
#include <QPainter>
#include <QPixmap>
@@ -79,15 +81,109 @@ Image* ImageBuffer::image() const
return m_image.get();
}
-PassRefPtr<ImageData> ImageBuffer::getImageData(const IntRect&) const
+PassRefPtr<ImageData> ImageBuffer::getImageData(const IntRect& rect) const
{
- notImplemented();
- return 0;
+ PassRefPtr<ImageData> result = ImageData::create(rect.width(), rect.height());
+ unsigned char* data = result->data()->data();
+
+ if (rect.x() < 0 || rect.y() < 0 || (rect.x() + rect.width()) > m_size.width() || (rect.y() + rect.height()) > m_size.height())
+ memset(data, 0, result->data()->length());
+
+ int originx = rect.x();
+ int destx = 0;
+ if (originx < 0) {
+ destx = -originx;
+ originx = 0;
+ }
+ int endx = rect.x() + rect.width();
+ if (endx > m_size.width())
+ endx = m_size.width();
+ int numColumns = endx - originx;
+
+ int originy = rect.y();
+ int desty = 0;
+ if (originy < 0) {
+ desty = -originy;
+ originy = 0;
+ }
+ int endy = rect.y() + rect.height();
+ if (endy > m_size.height())
+ endy = m_size.height();
+ int numRows = endy - originy;
+
+ QImage image = m_data.m_pixmap.toImage().convertToFormat(QImage::Format_ARGB32);
+ ASSERT(!image.isNull());
+
+ unsigned destBytesPerRow = 4 * rect.width();
+ unsigned char* destRows = data + desty * destBytesPerRow + destx * 4;
+ for (int y = 0; y < numRows; ++y) {
+ for (int x = 0; x < numColumns; x++) {
+ QRgb value = image.pixel(x + originx, y + originy);
+ int basex = x * 4;
+
+ destRows[basex] = qRed(value);
+ destRows[basex + 1] = qGreen(value);
+ destRows[basex + 2] = qBlue(value);
+ destRows[basex + 3] = qAlpha(value);
+ }
+ destRows += destBytesPerRow;
+ }
+
+ return result;
}
-void ImageBuffer::putImageData(ImageData*, const IntRect&, const IntPoint&)
+void ImageBuffer::putImageData(ImageData* source, const IntRect& sourceRect, const IntPoint& destPoint)
{
- notImplemented();
+ ASSERT(sourceRect.width() > 0);
+ ASSERT(sourceRect.height() > 0);
+
+ int originx = sourceRect.x();
+ int destx = destPoint.x() + sourceRect.x();
+ ASSERT(destx >= 0);
+ ASSERT(destx < m_size.width());
+ ASSERT(originx >= 0);
+ ASSERT(originx <= sourceRect.right());
+
+ int endx = destPoint.x() + sourceRect.right();
+ ASSERT(endx <= m_size.width());
+
+ int numColumns = endx - destx;
+
+ int originy = sourceRect.y();
+ int desty = destPoint.y() + sourceRect.y();
+ ASSERT(desty >= 0);
+ ASSERT(desty < m_size.height());
+ ASSERT(originy >= 0);
+ ASSERT(originy <= sourceRect.bottom());
+
+ int endy = destPoint.y() + sourceRect.bottom();
+ ASSERT(endy <= m_size.height());
+ int numRows = endy - desty;
+
+ unsigned srcBytesPerRow = 4 * source->width();
+
+ bool isPainting = m_data.m_painter->isActive();
+ if (isPainting)
+ m_data.m_painter->end();
+
+ QImage image = m_data.m_pixmap.toImage().convertToFormat(QImage::Format_ARGB32);
+ ASSERT(!image.isNull());
+
+ unsigned char* srcRows = source->data()->data() + originy * srcBytesPerRow + originx * 4;
+ for (int y = 0; y < numRows; ++y) {
+ quint32* scanLine = reinterpret_cast<quint32*>(image.scanLine(y + desty));
+ for (int x = 0; x < numColumns; x++) {
+ int basex = x * 4;
+ scanLine[x + destx] = reinterpret_cast<quint32*>(srcRows + basex)[0];
+ }
+
+ srcRows += srcBytesPerRow;
+ }
+
+ m_data.m_pixmap = QPixmap::fromImage(image);
+
+ if (isPainting)
+ m_data.m_painter->begin(&m_data.m_pixmap);
}
// We get a mimeType here but QImageWriter does not support mimetypes but
diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageQt.cpp
index be7d1e0..e266c07 100644
--- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageQt.cpp
@@ -109,6 +109,8 @@ void Image::drawPattern(GraphicsContext* ctxt, const FloatRect& tileRect, const
ctxt->save();
ctxt->setCompositeOperation(op);
QPainter* p = ctxt->platformContext();
+ if (!pixmap.hasAlpha() && p->compositionMode() == QPainter::CompositionMode_SourceOver)
+ p->setCompositionMode(QPainter::CompositionMode_Source);
p->setBrushOrigin(phase);
p->fillRect(destRect, b);
ctxt->restore();
@@ -146,6 +148,9 @@ void BitmapImage::draw(GraphicsContext* ctxt, const FloatRect& dst,
QPainter* painter(ctxt->platformContext());
+ if (!image->hasAlpha() && painter->compositionMode() == QPainter::CompositionMode_SourceOver)
+ painter->setCompositionMode(QPainter::CompositionMode_Source);
+
// Test using example site at
// http://www.meyerweb.com/eric/css/edge/complexspiral/demo.html
painter->drawPixmap(dst, *image, src);
diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/PathQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/PathQt.cpp
index 90b342e..e68be2b 100644
--- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/PathQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/PathQt.cpp
@@ -1,6 +1,7 @@
/*
- * Copyright (C) 2006 Zack Rusin <zack@kde.org>
- * 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Zack Rusin <zack@kde.org>
+ * 2006 Rob Buis <buis@kde.org>
+ * 2009 Dirk Schulze <krit@webkit.org>
*
* All rights reserved.
*
@@ -139,9 +140,72 @@ void Path::addBezierCurveTo(const FloatPoint& cp1, const FloatPoint& cp2, const
void Path::addArcTo(const FloatPoint& p1, const FloatPoint& p2, float radius)
{
- //FIXME: busted
- qWarning("arcTo is busted");
- m_path->arcTo(p1.x(), p1.y(), p2.x(), p2.y(), radius, 90);
+ FloatPoint p0(m_path->currentPosition());
+
+ if ((p1.x() == p0.x() && p1.y() == p0.y()) || (p1.x() == p2.x() && p1.y() == p2.y()) || radius == 0.f) {
+ m_path->lineTo(p1);
+ return;
+ }
+
+ FloatPoint p1p0((p0.x() - p1.x()),(p0.y() - p1.y()));
+ FloatPoint p1p2((p2.x() - p1.x()),(p2.y() - p1.y()));
+ float p1p0_length = sqrtf(p1p0.x() * p1p0.x() + p1p0.y() * p1p0.y());
+ float p1p2_length = sqrtf(p1p2.x() * p1p2.x() + p1p2.y() * p1p2.y());
+
+ double cos_phi = (p1p0.x() * p1p2.x() + p1p0.y() * p1p2.y()) / (p1p0_length * p1p2_length);
+ // all points on a line logic
+ if (cos_phi == -1) {
+ m_path->lineTo(p1);
+ return;
+ }
+ if (cos_phi == 1) {
+ // add infinite far away point
+ unsigned int max_length = 65535;
+ double factor_max = max_length / p1p0_length;
+ FloatPoint ep((p0.x() + factor_max * p1p0.x()), (p0.y() + factor_max * p1p0.y()));
+ m_path->lineTo(ep);
+ return;
+ }
+
+ float tangent = radius / tan(acos(cos_phi) / 2);
+ float factor_p1p0 = tangent / p1p0_length;
+ FloatPoint t_p1p0((p1.x() + factor_p1p0 * p1p0.x()), (p1.y() + factor_p1p0 * p1p0.y()));
+
+ FloatPoint orth_p1p0(p1p0.y(), -p1p0.x());
+ float orth_p1p0_length = sqrt(orth_p1p0.x() * orth_p1p0.x() + orth_p1p0.y() * orth_p1p0.y());
+ float factor_ra = radius / orth_p1p0_length;
+
+ // angle between orth_p1p0 and p1p2 to get the right vector orthographic to p1p0
+ double cos_alpha = (orth_p1p0.x() * p1p2.x() + orth_p1p0.y() * p1p2.y()) / (orth_p1p0_length * p1p2_length);
+ if (cos_alpha < 0.f)
+ orth_p1p0 = FloatPoint(-orth_p1p0.x(), -orth_p1p0.y());
+
+ FloatPoint p((t_p1p0.x() + factor_ra * orth_p1p0.x()), (t_p1p0.y() + factor_ra * orth_p1p0.y()));
+
+ // calculate angles for addArc
+ orth_p1p0 = FloatPoint(-orth_p1p0.x(), -orth_p1p0.y());
+ float sa = acos(orth_p1p0.x() / orth_p1p0_length);
+ if (orth_p1p0.y() < 0.f)
+ sa = 2 * piDouble - sa;
+
+ // anticlockwise logic
+ bool anticlockwise = false;
+
+ float factor_p1p2 = tangent / p1p2_length;
+ FloatPoint t_p1p2((p1.x() + factor_p1p2 * p1p2.x()), (p1.y() + factor_p1p2 * p1p2.y()));
+ FloatPoint orth_p1p2((t_p1p2.x() - p.x()),(t_p1p2.y() - p.y()));
+ float orth_p1p2_length = sqrtf(orth_p1p2.x() * orth_p1p2.x() + orth_p1p2.y() * orth_p1p2.y());
+ float ea = acos(orth_p1p2.x() / orth_p1p2_length);
+ if (orth_p1p2.y() < 0)
+ ea = 2 * piDouble - ea;
+ if ((sa > ea) && ((sa - ea) < piDouble))
+ anticlockwise = true;
+ if ((sa < ea) && ((ea - sa) > piDouble))
+ anticlockwise = true;
+
+ m_path->lineTo(t_p1p0);
+
+ addArc(p, radius, sa, ea, anticlockwise);
}
void Path::closeSubpath()
diff --git a/src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp b/src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
index 2de2125..2c730a6 100644
--- a/src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
@@ -269,8 +269,10 @@ void QNetworkReplyHandler::sendResponseIfNeeded()
const bool isLocalFileReply = (m_reply->url().scheme() == QLatin1String("file"));
int statusCode = m_reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
- if (!isLocalFileReply)
+ if (!isLocalFileReply) {
response.setHTTPStatusCode(statusCode);
+ response.setHTTPStatusText(m_reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toByteArray().constData());
+ }
else if (m_reply->error() == QNetworkReply::ContentNotFoundError)
response.setHTTPStatusCode(404);
diff --git a/src/3rdparty/webkit/WebCore/platform/network/qt/ResourceRequestQt.cpp b/src/3rdparty/webkit/WebCore/platform/network/qt/ResourceRequestQt.cpp
index 9308878..c8f6ad5 100644
--- a/src/3rdparty/webkit/WebCore/platform/network/qt/ResourceRequestQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/network/qt/ResourceRequestQt.cpp
@@ -41,6 +41,22 @@ QNetworkRequest ResourceRequest::toNetworkRequest() const
request.setRawHeader(name, value);
}
+ switch (cachePolicy()) {
+ case ReloadIgnoringCacheData:
+ request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork);
+ break;
+ case ReturnCacheDataElseLoad:
+ request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache);
+ break;
+ case ReturnCacheDataDontLoad:
+ request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysCache);
+ break;
+ case UseProtocolCachePolicy:
+ // QNetworkRequest::PreferNetwork
+ default:
+ break;
+ }
+
return request;
}
diff --git a/src/3rdparty/webkit/WebCore/platform/qt/WheelEventQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/WheelEventQt.cpp
index cc8acd2..b25ae7a 100644
--- a/src/3rdparty/webkit/WebCore/platform/qt/WheelEventQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/qt/WheelEventQt.cpp
@@ -21,7 +21,9 @@
#include "PlatformWheelEvent.h"
#include "PlatformMouseEvent.h"
+#include "Scrollbar.h"
+#include <qapplication.h>
#include <QWheelEvent>
namespace WebCore {
@@ -54,9 +56,14 @@ PlatformWheelEvent::PlatformWheelEvent(QWheelEvent* e)
m_deltaY = (e->delta() / 120);
}
- // FIXME: retrieve the user setting for the number of lines to scroll on each wheel event
- m_deltaX *= horizontalLineMultiplier();
- m_deltaY *= verticalLineMultiplier();
+ m_deltaX *= QApplication::wheelScrollLines();
+ // use the same single scroll step as QTextEdit (in
+ // QTextEditPrivate::init [h,v]bar->setSingleStep )
+ // and divide by the default WebKit scroll step to
+ // get the Qt mouse wheel scroll behavior
+ static const float cDefaultQtScrollStep = 20.f;
+ m_deltaY *= QApplication::wheelScrollLines() *
+ (cDefaultQtScrollStep / cMouseWheelPixelsPerLineStep);
}
#endif // QT_NO_WHEELEVENT
diff --git a/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.cpp b/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.cpp
index 1d7d570..3229922 100644
--- a/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.cpp
+++ b/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.cpp
@@ -220,11 +220,11 @@ NPError PluginView::getValueStatic(NPNVariable variable, void* value)
switch (variable) {
case NPNVToolkit:
- *((uint32 *)value) = 0;
+ *static_cast<uint32*>(value) = 0;
return NPERR_NO_ERROR;
case NPNVjavascriptEnabledBool:
- *((uint32 *)value) = true;
+ *static_cast<NPBool*>(value) = true;
return NPERR_NO_ERROR;
default:
@@ -275,7 +275,7 @@ NPError PluginView::getValue(NPNVariable variable, void* value)
}
case NPNVsupportsCoreGraphicsBool:
- *((uint32 *)value) = true;
+ *static_cast<NPBool*>(value) = true;
return NPERR_NO_ERROR;
default:
diff --git a/src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp b/src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp
index 5aa8933..c8dd0e5 100644
--- a/src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp
+++ b/src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp
@@ -301,15 +301,15 @@ NPError PluginView::getValueStatic(NPNVariable variable, void* value)
{
switch (variable) {
case NPNVToolkit:
- *((uint32 *)value) = 0;
+ *static_cast<uint32*>(value) = 0;
return NPERR_NO_ERROR;
case NPNVSupportsXEmbedBool:
- *((uint32 *)value) = true;
+ *static_cast<NPBool*>(value) = true;
return NPERR_NO_ERROR;
case NPNVjavascriptEnabledBool:
- *((uint32 *)value) = true;
+ *static_cast<NPBool*>(value) = true;
return NPERR_NO_ERROR;
default:
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
index de37383..01b68eb 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
@@ -1095,7 +1095,7 @@ QVariant QWebPage::inputMethodQuery(Qt::InputMethodQuery property) const
This enum describes the types of action which can be performed on the web page.
Actions only have an effect when they are applicable. The availability of
- actions can be be determined by checking \l{QAction::}{enabled()} on the
+ actions can be be determined by checking \l{QAction::}{isEnabled()} on the
action returned by \l{QWebPage::}{action()}.
One method of enabling the text editing, cursor movement, and text selection actions
@@ -1198,18 +1198,18 @@ QVariant QWebPage::inputMethodQuery(Qt::InputMethodQuery property) const
Suppose we have a \c Thumbnail class as follows:
- \snippet doc/src/snippets/webkit/webpage/main.cpp 0
+ \snippet webkitsnippets/webpage/main.cpp 0
The \c Thumbnail's constructor takes in a \a url. We connect our QWebPage
object's \l{QWebPage::}{loadFinished()} signal to our private slot,
\c render().
- \snippet doc/src/snippets/webkit/webpage/main.cpp 1
+ \snippet webkitsnippets/webpage/main.cpp 1
The \c render() function shows how we can paint a thumbnail using a
QWebPage object.
- \snippet doc/src/snippets/webkit/webpage/main.cpp 2
+ \snippet webkitsnippets/webpage/main.cpp 2
We begin by setting the \l{QWebPage::viewportSize()}{viewportSize} and
then we instantiate a QImage object, \c image, with the same size as our
@@ -1450,9 +1450,16 @@ void QWebPage::triggerAction(WebAction action, bool checked)
openNewWindow(url, frame);
break;
}
- case CopyLinkToClipboard:
+ case CopyLinkToClipboard: {
+#if defined(Q_WS_X11)
+ bool oldSelectionMode = Pasteboard::generalPasteboard()->isSelectionMode();
+ Pasteboard::generalPasteboard()->setSelectionMode(true);
+ editor->copyURL(d->hitTestResult.linkUrl(), d->hitTestResult.linkText());
+ Pasteboard::generalPasteboard()->setSelectionMode(oldSelectionMode);
+#endif
editor->copyURL(d->hitTestResult.linkUrl(), d->hitTestResult.linkText());
break;
+ }
case OpenImageInNewWindow:
openNewWindow(d->hitTestResult.imageUrl(), frame);
break;
@@ -2517,7 +2524,7 @@ void QWebPagePrivate::_q_onLoadProgressChanged(int) {
\sa bytesReceived()
*/
quint64 QWebPage::totalBytes() const {
- return d->m_bytesReceived;
+ return d->m_totalBytes;
}
@@ -2527,7 +2534,7 @@ quint64 QWebPage::totalBytes() const {
\sa totalBytes()
*/
quint64 QWebPage::bytesReceived() const {
- return d->m_totalBytes;
+ return d->m_bytesReceived;
}
/*!
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp
index a843eba..9753f4f 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp
@@ -86,7 +86,7 @@ public:
Qt Widgets, the show() function must be invoked in order to display
QWebView. The snippet below illustrates this:
- \snippet doc/src/snippets/webkit/simple/main.cpp Using QWebView
+ \snippet webkitsnippets/simple/main.cpp Using QWebView
Alternatively, setUrl() can also be used to load a web site. If you have
the HTML content readily available, you can use setHtml() instead.
@@ -325,7 +325,7 @@ void QWebView::setContent(const QByteArray &data, const QString &mimeType, const
It is equivalent to
- \snippet doc/src/snippets/code/src_3rdparty_webkit_WebKit_qt_Api_qwebview.cpp 0
+ \snippet webkitsnippets/qtwebkit_qwebview_snippet.cpp 0
*/
QWebHistory *QWebView::history() const
{
@@ -337,7 +337,7 @@ QWebHistory *QWebView::history() const
It is equivalent to
- \snippet doc/src/snippets/code/src_3rdparty_webkit_WebKit_qt_Api_qwebview.cpp 1
+ \snippet webkitsnippets/qtwebkit_qwebview_snippet.cpp 1
\sa QWebSettings::globalSettings()
*/
@@ -429,7 +429,7 @@ QAction *QWebView::pageAction(QWebPage::WebAction action) const
The following example triggers the copy action and therefore copies any
selected text to the clipboard.
- \snippet doc/src/snippets/code/src_3rdparty_webkit_WebKit_qt_Api_qwebview.cpp 2
+ \snippet webkitsnippets/qtwebkit_qwebview_snippet.cpp 2
\sa pageAction()
*/
@@ -606,7 +606,7 @@ void QWebView::print(QPrinter *printer) const
It is equivalent to
- \snippet doc/src/snippets/code/src_3rdparty_webkit_WebKit_qt_Api_qwebview.cpp 3
+ \snippet webkitsnippets/qtwebkit_qwebview_snippet.cpp 3
\sa reload(), pageAction(), loadFinished()
*/
@@ -622,7 +622,7 @@ void QWebView::stop()
It is equivalent to
- \snippet doc/src/snippets/code/src_3rdparty_webkit_WebKit_qt_Api_qwebview.cpp 4
+ \snippet webkitsnippets/qtwebkit_qwebview_snippet.cpp 4
\sa forward(), pageAction()
*/
@@ -638,7 +638,7 @@ void QWebView::back()
It is equivalent to
- \snippet doc/src/snippets/code/src_3rdparty_webkit_WebKit_qt_Api_qwebview.cpp 5
+ \snippet webkitsnippets/qtwebkit_qwebview_snippet.cpp 5
\sa back(), pageAction()
*/
diff --git a/src/3rdparty/webkit/WebKit/qt/ChangeLog b/src/3rdparty/webkit/WebKit/qt/ChangeLog
index 41ca520..c3bd633 100644
--- a/src/3rdparty/webkit/WebKit/qt/ChangeLog
+++ b/src/3rdparty/webkit/WebKit/qt/ChangeLog
@@ -1,3 +1,53 @@
+2009-04-24 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Rubber-stamped by Ariya Hidayat.
+
+ Fix qdoc warning about link to QAction::isEnabled.
+
+ * Api/qwebpage.cpp:
+
+2009-04-24 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Ariya Hidayat.
+
+ Added support for generating API docs in the Qt build using "make docs"
+
+ Added code snippets and overview from the Qt sources references in the API docs.
+
+ * Api/qwebpage.cpp: Adjust paths to snippets.
+ * Api/qwebview.cpp: Ditto.
+ * docs/docs.pri: Added.
+ * docs/qtwebkit.qdoc: Added.
+ * docs/qtwebkit.qdocconf: Added.
+ * docs/webkitsnippets/qtwebkit_build_snippet.qdoc: Added.
+ * docs/webkitsnippets/qtwebkit_qwebview_snippet.cpp: Added.
+ * docs/webkitsnippets/simple/main.cpp: Added.
+ * docs/webkitsnippets/simple/simple.pro: Added.
+ * docs/webkitsnippets/webpage/main.cpp: Added.
+ * docs/webkitsnippets/webpage/webpage.pro: Added.
+
+2009-03-02 Benjamin C Meyer <benjamin.meyer@torchmobile.com>
+
+ Reviewed by George Staikos.
+
+ https://bugs.webkit.org/show_bug.cgi?id=21230
+ On X11 match the behavior of Firefox and also copy the url to the
+ clipboard selection when the action Copy Link Location is executed.
+
+ * Api/qwebpage.cpp:
+ (QWebPage::triggerAction):
+
+2009-03-07 Adam Treat <adam.treat@torchmobile.com>
+
+ Reviewed by Cameron Zwarich.
+
+ These methods are clearly returning the wrong values as the two were
+ returning swapped information.
+
+ * Api/qwebpage.cpp:
+ (QWebPage::totalBytes):
+ (QWebPage::bytesReceived):
+
2009-04-02 Takumi Asaki <takumi.asaki@nokia.com>
Reviewed by Simon Hausmann.
diff --git a/src/3rdparty/webkit/WebKit/qt/docs/docs.pri b/src/3rdparty/webkit/WebKit/qt/docs/docs.pri
new file mode 100644
index 0000000..4a8c165
--- /dev/null
+++ b/src/3rdparty/webkit/WebKit/qt/docs/docs.pri
@@ -0,0 +1,15 @@
+include(../../../WebKit.pri)
+
+unix {
+ QDOC = SRCDIR=$$PWD/../../.. OUTPUT_DIR=$$OUTPUT_DIR $$(QTDIR)/tools/qdoc3/qdoc3
+} else {
+ QDOC = $$(QTDIR)\tools\qdoc3\release\qdoc3.exe
+}
+
+unix {
+docs.commands = $$QDOC $$PWD/qtwebkit.qdocconf
+} else {
+docs.commands = \"$$QDOC $$PWD/qtwebkit.qdocconf\"
+}
+
+QMAKE_EXTRA_TARGETS += docs
diff --git a/doc/src/qtwebkit.qdoc b/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc
index 0092950..06305e0 100644
--- a/doc/src/qtwebkit.qdoc
+++ b/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc
@@ -59,7 +59,7 @@
project file ensures that an application is compiled and linked
appropriately:
- \snippet doc/src/snippets/code/doc_src_qtwebkit.qdoc 0
+ \snippet webkitsnippets/qtwebkit_build_snippet.qdoc 0
This line is necessary because only the QtCore and QtGui modules are used
in the default build process.
@@ -67,7 +67,7 @@
To include the definitions of the module's classes, use the following
directive:
- \snippet doc/src/snippets/code/doc_src_qtwebkit.qdoc 1
+ \snippet webkitsnippets/qtwebkit_build_snippet.qdoc 1
\section1 Architecture
@@ -75,7 +75,7 @@
widget it can be embedded into your forms or a graphics view, and it
provides convenience functions for downloading and rendering web sites.
- \snippet snippets/webkit/simple/main.cpp Using QWebView
+ \snippet webkitsnippets/simple/main.cpp Using QWebView
QWebView acts as a view onto Web pages, each of which is represented by an
instance of the QWebPage class. QWebPage provides access to the document
diff --git a/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdocconf b/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdocconf
new file mode 100644
index 0000000..e60e586
--- /dev/null
+++ b/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdocconf
@@ -0,0 +1,195 @@
+# Run qdoc from the directory that contains this file.
+
+project = qtwebkit
+description = "Qt WebKit API Documentation"
+
+headerdirs = $SRCDIR/WebKit/qt/Api
+sourcedirs = $SRCDIR/WebKit/qt/Api $SRCDIR/WebKit/qt/docs
+outputdir = $OUTPUT_DIR/doc/html
+outputformats = HTML
+sources.fileextensions = "*.cpp *.doc *.qdoc *.h"
+exampledirs = $SRCDIR/WebKit/qt/docs
+
+indexes = $QTDIR/doc/html/qt.index
+
+# macros.qdocconf
+
+macro.aring.HTML = "&aring;"
+macro.Auml.HTML = "&Auml;"
+macro.author = "\\bold{Author:}"
+macro.br.HTML = "<br />"
+macro.BR.HTML = "<br />"
+macro.aacute.HTML = "&aacute;"
+macro.eacute.HTML = "&eacute;"
+macro.iacute.HTML = "&iacute;"
+macro.gui = "\\bold"
+macro.hr.HTML = "<hr />"
+macro.key = "\\bold"
+macro.menu = "\\bold"
+macro.note = "\\bold{Note:}"
+macro.oslash.HTML = "&oslash;"
+macro.ouml.HTML = "&ouml;"
+macro.QA = "\\e{Qt Assistant}"
+macro.QD = "\\e{Qt Designer}"
+macro.QL = "\\e{Qt Linguist}"
+macro.param = "\\e"
+macro.raisedaster.HTML = "<sup>*</sup>"
+macro.reg.HTML = "<sup>&reg;</sup>"
+macro.return = "Returns"
+macro.starslash = "\\c{*/}"
+macro.uuml.HTML = "&uuml;"
+macro.mdash.HTML = "&mdash;"
+
+# compat.qdocconf
+
+alias.i = e
+alias.include = input
+
+macro.0 = "\\\\0"
+macro.b = "\\\\b"
+macro.n = "\\\\n"
+macro.r = "\\\\r"
+macro.i = "\\o"
+macro.i11 = "\\o{1,1}"
+macro.i12 = "\\o{1,2}"
+macro.i13 = "\\o{1,3}"
+macro.i14 = "\\o{1,4}"
+macro.i15 = "\\o{1,5}"
+macro.i16 = "\\o{1,6}"
+macro.i17 = "\\o{1,7}"
+macro.i18 = "\\o{1,8}"
+macro.i19 = "\\o{1,9}"
+macro.i21 = "\\o{2,1}"
+macro.i31 = "\\o{3,1}"
+macro.i41 = "\\o{4,1}"
+macro.i51 = "\\o{5,1}"
+macro.i61 = "\\o{6,1}"
+macro.i71 = "\\o{7,1}"
+macro.i81 = "\\o{8,1}"
+macro.i91 = "\\o{9,1}"
+macro.img = "\\image"
+macro.endquote = "\\endquotation"
+
+spurious = "Missing comma in .*" \
+ "Missing pattern .*"
+
+# Doxygen compatibility commands
+
+macro.see = "\\sa"
+macro.function = "\\fn"
+
+# qt-cpp-ignore.qdocconf
+
+Cpp.ignoretokens = QAXFACTORY_EXPORT \
+ QDESIGNER_COMPONENTS_LIBRARY \
+ QDESIGNER_EXTENSION_LIBRARY \
+ QDESIGNER_SDK_LIBRARY \
+ QDESIGNER_SHARED_LIBRARY \
+ QDESIGNER_UILIB_LIBRARY \
+ QM_EXPORT_CANVAS \
+ QM_EXPORT_DNS \
+ QM_EXPORT_DOM \
+ QM_EXPORT_FTP \
+ QM_EXPORT_HTTP \
+ QM_EXPORT_ICONVIEW \
+ QM_EXPORT_NETWORK \
+ QM_EXPORT_OPENGL \
+ QM_EXPORT_SQL \
+ QM_EXPORT_TABLE \
+ QM_EXPORT_WORKSPACE \
+ QM_EXPORT_XML \
+ QT_ASCII_CAST_WARN \
+ QT_ASCII_CAST_WARN_CONSTRUCTOR \
+ QT_BEGIN_HEADER \
+ QT_DESIGNER_STATIC \
+ QT_END_HEADER \
+ QT_FASTCALL \
+ QT_WIDGET_PLUGIN_EXPORT \
+ Q_COMPAT_EXPORT \
+ Q_CORE_EXPORT \
+ Q_EXPLICIT \
+ Q_EXPORT \
+ Q_EXPORT_CODECS_CN \
+ Q_EXPORT_CODECS_JP \
+ Q_EXPORT_CODECS_KR \
+ Q_EXPORT_PLUGIN \
+ Q_GFX_INLINE \
+ Q_GUI_EXPORT \
+ Q_GUI_EXPORT_INLINE \
+ Q_GUI_EXPORT_STYLE_CDE \
+ Q_GUI_EXPORT_STYLE_COMPACT \
+ Q_GUI_EXPORT_STYLE_MAC \
+ Q_GUI_EXPORT_STYLE_MOTIF \
+ Q_GUI_EXPORT_STYLE_MOTIFPLUS \
+ Q_GUI_EXPORT_STYLE_PLATINUM \
+ Q_GUI_EXPORT_STYLE_POCKETPC \
+ Q_GUI_EXPORT_STYLE_SGI \
+ Q_GUI_EXPORT_STYLE_WINDOWS \
+ Q_GUI_EXPORT_STYLE_WINDOWSXP \
+ QHELP_EXPORT \
+ Q_INLINE_TEMPLATE \
+ Q_INTERNAL_WIN_NO_THROW \
+ Q_NETWORK_EXPORT \
+ Q_OPENGL_EXPORT \
+ Q_OUTOFLINE_TEMPLATE \
+ Q_SQL_EXPORT \
+ Q_SVG_EXPORT \
+ Q_SCRIPT_EXPORT \
+ Q_TESTLIB_EXPORT \
+ Q_TYPENAME \
+ Q_XML_EXPORT \
+ Q_XMLSTREAM_EXPORT \
+ Q_XMLPATTERNS_EXPORT \
+ QDBUS_EXPORT \
+ QT_BEGIN_NAMESPACE \
+ QT_BEGIN_INCLUDE_NAMESPACE \
+ QT_END_NAMESPACE \
+ QT_END_INCLUDE_NAMESPACE \
+ PHONON_EXPORT \
+ EXTENSIONSYSTEM_EXPORT
+Cpp.ignoredirectives = Q_DECLARE_HANDLE \
+ Q_DECLARE_INTERFACE \
+ Q_DECLARE_METATYPE \
+ Q_DECLARE_OPERATORS_FOR_FLAGS \
+ Q_DECLARE_PRIVATE \
+ Q_DECLARE_PUBLIC \
+ Q_DECLARE_SHARED \
+ Q_DECLARE_TR_FUNCTIONS \
+ Q_DECLARE_TYPEINFO \
+ Q_DISABLE_COPY \
+ QT_FORWARD_DECLARE_CLASS \
+ Q_DUMMY_COMPARISON_OPERATOR \
+ Q_ENUMS \
+ Q_FLAGS \
+ Q_INTERFACES \
+ __attribute__ \
+ K_DECLARE_PRIVATE \
+ PHONON_OBJECT \
+ PHONON_HEIR
+
+
+
+HTML.style = "" \
+ "h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm; }"\
+ "a:link { color: #004faf; text-decoration: none }"\
+ "a:visited { color: #672967; text-decoration: none }"\
+ "td.postheader { font-family: sans-serif }"\
+ "tr.address { font-family: sans-serif }"\
+ "body { background: #ffffff; color: black }"\
+ "table tr.odd { background: #f0f0f0; color: black; }"\
+ "table tr.even { background: #e4e4e4; color: black; }"\
+ "table.annotated th { padding: 3px; text-align: left }"\
+ "table.annotated td { padding: 3px; } "\
+ "table tr pre { padding-top: none; padding-bottom: none; padding-left: none; padding-right: none; border: none; background: none }"\
+ "tr.qt-style { background: #a2c511; color: black }"\
+ "body pre { padding: 0.2em; border: #e7e7e7 1px solid; background: #f1f1f1; color: black }"\
+ "span.preprocessor, span.preprocessor a { color: darkblue; }"\
+ "span.comment { color: darkred; font-style: italic }"\
+ "span.string,span.char { color: darkgreen; }"\
+ ".title { text-align: center }"\
+ ".subtitle { font-size: 0.8em }"\
+ ".small-subtitle { font-size: 0.65em }"
+
+HTML.postheader = ""
+
+HTML.footer = ""
diff --git a/doc/src/snippets/code/doc_src_qtwebkit.qdoc b/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/qtwebkit_build_snippet.qdoc
index d4fc2bd..d4fc2bd 100644
--- a/doc/src/snippets/code/doc_src_qtwebkit.qdoc
+++ b/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/qtwebkit_build_snippet.qdoc
diff --git a/doc/src/snippets/code/src_3rdparty_webkit_WebKit_qt_Api_qwebview.cpp b/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/qtwebkit_qwebview_snippet.cpp
index f04cd29..f04cd29 100644
--- a/doc/src/snippets/code/src_3rdparty_webkit_WebKit_qt_Api_qwebview.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/qtwebkit_qwebview_snippet.cpp
diff --git a/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/simple/main.cpp b/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/simple/main.cpp
new file mode 100644
index 0000000..82f5b6c
--- /dev/null
+++ b/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/simple/main.cpp
@@ -0,0 +1,34 @@
+/*
+ Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#include <QApplication>
+#include <QUrl>
+#include <QWebView>
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+ QWidget *parent = 0;
+//! [Using QWebView]
+ QWebView *view = new QWebView(parent);
+ view->load(QUrl("http://qtsoftware.com/"));
+ view->show();
+//! [Using QWebView]
+ return app.exec();
+}
diff --git a/doc/src/snippets/webkit/simple/simple.pro b/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/simple/simple.pro
index 61cd3bf..61cd3bf 100644
--- a/doc/src/snippets/webkit/simple/simple.pro
+++ b/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/simple/simple.pro
diff --git a/doc/src/snippets/webkit/webpage/main.cpp b/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/webpage/main.cpp
index b433ac2..b91bc30 100644
--- a/doc/src/snippets/webkit/webpage/main.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/webpage/main.cpp
@@ -1,3 +1,22 @@
+/*
+ Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
#include <QtGui>
#include <QWebPage>
#include <QWebFrame>
diff --git a/doc/src/snippets/webkit/webpage/webpage.pro b/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/webpage/webpage.pro
index fcad03b..fcad03b 100644
--- a/doc/src/snippets/webkit/webpage/webpage.pro
+++ b/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/webpage/webpage.pro
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
index d85e880..fe74fac 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
@@ -106,6 +106,8 @@ private slots:
void textSelection();
void textEditing();
+ void requestCache();
+
private:
@@ -989,6 +991,32 @@ void tst_QWebPage::textEditing()
delete page;
}
+void tst_QWebPage::requestCache()
+{
+ TestPage page;
+ QSignalSpy loadSpy(&page, SIGNAL(loadFinished(bool)));
+
+ page.mainFrame()->setUrl(QString("data:text/html,<a href=\"data:text/html,Reached\" target=\"_blank\">Click me</a>"));
+ QTRY_COMPARE(loadSpy.count(), 1);
+ QTRY_COMPARE(page.navigations.count(), 1);
+
+ page.mainFrame()->setUrl(QString("data:text/html,<a href=\"data:text/html,Reached\" target=\"_blank\">Click me2</a>"));
+ QTRY_COMPARE(loadSpy.count(), 2);
+ QTRY_COMPARE(page.navigations.count(), 2);
+
+ page.triggerAction(QWebPage::Stop);
+ QVERIFY(page.history()->canGoBack());
+ page.triggerAction(QWebPage::Back);
+
+ QTRY_COMPARE(loadSpy.count(), 3);
+ QTRY_COMPARE(page.navigations.count(), 3);
+ QCOMPARE(page.navigations.at(0).request.attribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferNetwork).toInt(),
+ (int)QNetworkRequest::PreferNetwork);
+ QCOMPARE(page.navigations.at(1).request.attribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferNetwork).toInt(),
+ (int)QNetworkRequest::PreferNetwork);
+ QCOMPARE(page.navigations.at(2).request.attribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferNetwork).toInt(),
+ (int)QNetworkRequest::PreferCache);
+}
QTEST_MAIN(tst_QWebPage)
#include "tst_qwebpage.moc"
diff --git a/src/activeqt/container/container.pro b/src/activeqt/container/container.pro
index ceedacf..d654f92 100644
--- a/src/activeqt/container/container.pro
+++ b/src/activeqt/container/container.pro
@@ -21,25 +21,21 @@ LIBS += -lole32 -loleaut32
!wince*:LIBS += -luser32 -lgdi32 -ladvapi32
win32-g++:LIBS += -luuid
-contains(QT_EDITION, OpenSource|Console) {
- message( "You are not licensed to use ActiveQt." )
-} else {
- HEADERS = ../control/qaxaggregated.h \
- qaxbase.h \
- qaxwidget.h \
- qaxobject.h \
- qaxscript.h \
- qaxselect.h \
- ../shared/qaxtypes.h
-
- SOURCES = qaxbase.cpp \
- qaxdump.cpp \
- qaxwidget.cpp \
- qaxobject.cpp \
- qaxscript.cpp \
- qaxscriptwrapper.cpp \
- qaxselect.cpp \
- ../shared/qaxtypes.cpp
-
- FORMS = qaxselect.ui
-}
+HEADERS = ../control/qaxaggregated.h \
+ qaxbase.h \
+ qaxwidget.h \
+ qaxobject.h \
+ qaxscript.h \
+ qaxselect.h \
+ ../shared/qaxtypes.h
+
+SOURCES = qaxbase.cpp \
+ qaxdump.cpp \
+ qaxwidget.cpp \
+ qaxobject.cpp \
+ qaxscript.cpp \
+ qaxscriptwrapper.cpp \
+ qaxselect.cpp \
+ ../shared/qaxtypes.cpp
+
+FORMS = qaxselect.ui
diff --git a/src/activeqt/container/qaxwidget.cpp b/src/activeqt/container/qaxwidget.cpp
index 4e8473f..7f20a5c 100644
--- a/src/activeqt/container/qaxwidget.cpp
+++ b/src/activeqt/container/qaxwidget.cpp
@@ -383,7 +383,7 @@ public:
bool eventTranslated : 1;
private:
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
struct OleMenuItem {
OleMenuItem(HMENU hm = 0, int ID = 0, QMenu *menu = 0)
: hMenu(hm), id(ID), subMenu(menu)
@@ -408,7 +408,7 @@ private:
bool canHostDocument : 1;
DWORD m_dwOleObject;
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
HWND m_menuOwner;
#endif
CONTROLINFO control_info;
@@ -417,7 +417,7 @@ private:
unsigned long ref;
QAxWidget *widget;
QAxHostWidget *host;
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
QPointer<QMenuBar> menuBar;
QMap<QAction*,OleMenuItem> menuItemMap;
#endif
@@ -467,7 +467,7 @@ static QAbstractEventDispatcher::EventFilter previous_filter = 0;
#if QT_VERSION >= 0x050000
#error "Fix QAbstractEventDispatcher::setEventFilter"
#endif
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
static int filter_ref = 0;
#else
static const char *qaxatom = "QAxContainer4_Atom";
@@ -551,7 +551,7 @@ QAxClientSite::QAxClientSite(QAxWidget *c)
canHostDocument = false;
m_dwOleObject = 0;
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
m_menuOwner = 0;
menuBar = 0;
#endif
@@ -1132,7 +1132,7 @@ HRESULT WINAPI QAxClientSite::OnPosRectChange(LPCRECT /*lprcPosRect*/)
}
//**** IOleInPlaceFrame
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
HRESULT WINAPI QAxClientSite::InsertMenus(HMENU /*hmenuShared*/, LPOLEMENUGROUPWIDTHS /*lpMenuWidths*/)
{
return E_NOTIMPL;
diff --git a/src/activeqt/control/control.pro b/src/activeqt/control/control.pro
index 65b0251..bf3647e 100644
--- a/src/activeqt/control/control.pro
+++ b/src/activeqt/control/control.pro
@@ -24,20 +24,16 @@ win32-borland:DEFINES += QT_NEEDS_QMAIN
LIBS += -luser32 -lole32 -loleaut32 -lgdi32
win32-g++:LIBS += -luuid
-contains(QT_EDITION, OpenSource|Console) {
- message( "You are not licensed to use ActiveQt." )
-} else {
- HEADERS = qaxaggregated.h \
- qaxbindable.h \
- qaxfactory.h \
- ../shared/qaxtypes.h
-
- SOURCES = qaxserver.cpp \
- qaxserverbase.cpp \
- qaxbindable.cpp \
- qaxfactory.cpp \
- qaxservermain.cpp \
- qaxserverdll.cpp \
- qaxmain.cpp \
- ../shared/qaxtypes.cpp
-}
+HEADERS = qaxaggregated.h \
+ qaxbindable.h \
+ qaxfactory.h \
+ ../shared/qaxtypes.h
+
+SOURCES = qaxserver.cpp \
+ qaxserverbase.cpp \
+ qaxbindable.cpp \
+ qaxfactory.cpp \
+ qaxservermain.cpp \
+ qaxserverdll.cpp \
+ qaxmain.cpp \
+ ../shared/qaxtypes.cpp
diff --git a/src/corelib/codecs/qtextcodec.cpp b/src/corelib/codecs/qtextcodec.cpp
index 6e8ffa1..51ca43e 100644
--- a/src/corelib/codecs/qtextcodec.cpp
+++ b/src/corelib/codecs/qtextcodec.cpp
@@ -1508,9 +1508,14 @@ QString QTextDecoder::toUnicode(const QByteArray &ba)
/*!
\since 4.4
- Tries to detect the encoding of the provided snippet of HTML in the given byte array, \a ba,
- and returns a QTextCodec instance that is capable of decoding the html to unicode.
- If the codec cannot be detected from the content provided, \a defaultCodec is returned.
+ Tries to detect the encoding of the provided snippet of HTML in
+ the given byte array, \a ba, by checking the BOM (Byte Order Mark)
+ and the content-type meta header and returns a QTextCodec instance
+ that is capable of decoding the html to unicode. If the codec
+ cannot be detected from the content provided, \a defaultCodec is
+ returned.
+
+ \sa codecForUtfText
*/
QTextCodec *QTextCodec::codecForHtml(const QByteArray &ba, QTextCodec *defaultCodec)
{
@@ -1518,15 +1523,8 @@ QTextCodec *QTextCodec::codecForHtml(const QByteArray &ba, QTextCodec *defaultCo
int pos;
QTextCodec *c = 0;
- if (ba.size() > 1 && (((uchar)ba[0] == 0xfe && (uchar)ba[1] == 0xff)
- || ((uchar)ba[0] == 0xff && (uchar)ba[1] == 0xfe))) {
- c = QTextCodec::codecForMib(1015); // utf16
- } else if (ba.size() > 2
- && (uchar)ba[0] == 0xef
- && (uchar)ba[1] == 0xbb
- && (uchar)ba[2] == 0xbf) {
- c = QTextCodec::codecForMib(106); // utf-8
- } else {
+ c = QTextCodec::codecForUtfText(ba, c);
+ if (!c) {
QByteArray header = ba.left(512).toLower();
if ((pos = header.indexOf("http-equiv=")) != -1) {
pos = header.indexOf("charset=", pos) + int(strlen("charset="));
@@ -1554,6 +1552,61 @@ QTextCodec *QTextCodec::codecForHtml(const QByteArray &ba)
return codecForHtml(ba, QTextCodec::codecForMib(/*Latin 1*/ 4));
}
+/*!
+ \since 4.6
+
+ Tries to detect the encoding of the provided snippet \a ba by
+ using the BOM (Byte Order Mark) and returns a QTextCodec instance
+ that is capable of decoding the text to unicode. If the codec
+ cannot be detected from the content provided, \a defaultCodec is
+ returned.
+
+ \sa codecForHtml
+*/
+QTextCodec *QTextCodec::codecForUtfText(const QByteArray &ba, QTextCodec *defaultCodec)
+{
+ const uint arraySize = ba.size();
+
+ if (arraySize > 3) {
+ if ((uchar)ba[0] == 0x00
+ && (uchar)ba[1] == 0x00
+ && (uchar)ba[2] == 0xFE
+ && (uchar)ba[3] == 0xFF)
+ return QTextCodec::codecForMib(1018); // utf-32 be
+ else if ((uchar)ba[0] == 0xFF
+ && (uchar)ba[1] == 0xFE
+ && (uchar)ba[2] == 0x00
+ && (uchar)ba[3] == 0x00)
+ return QTextCodec::codecForMib(1019); // utf-32 le
+ }
+
+ if (arraySize < 2)
+ return defaultCodec;
+ if ((uchar)ba[0] == 0xfe && (uchar)ba[1] == 0xff)
+ return QTextCodec::codecForMib(1013); // utf16 be
+ else if ((uchar)ba[0] == 0xff && (uchar)ba[1] == 0xfe)
+ return QTextCodec::codecForMib(1014); // utf16 le
+
+ if (arraySize < 3)
+ return defaultCodec;
+ if ((uchar)ba[0] == 0xef
+ && (uchar)ba[1] == 0xbb
+ && (uchar)ba[2] == 0xbf)
+ return QTextCodec::codecForMib(106); // utf-8
+
+ return defaultCodec;
+}
+
+/*!
+ \overload
+
+ If the codec cannot be detected, this overload returns a Latin-1 QTextCodec.
+*/
+QTextCodec *QTextCodec::codecForUtfText(const QByteArray &ba)
+{
+ return codecForUtfText(ba, QTextCodec::codecForMib(/*Latin 1*/ 4));
+}
+
/*! \internal
\since 4.3
diff --git a/src/corelib/codecs/qtextcodec.h b/src/corelib/codecs/qtextcodec.h
index e32650f..83097a5 100644
--- a/src/corelib/codecs/qtextcodec.h
+++ b/src/corelib/codecs/qtextcodec.h
@@ -82,6 +82,9 @@ public:
static QTextCodec *codecForHtml(const QByteArray &ba);
static QTextCodec *codecForHtml(const QByteArray &ba, QTextCodec *defaultCodec);
+ static QTextCodec *codecForUtfText(const QByteArray &ba);
+ static QTextCodec *codecForUtfText(const QByteArray &ba, QTextCodec *defaultCodec);
+
QTextDecoder* makeDecoder() const;
QTextEncoder* makeEncoder() const;
diff --git a/src/corelib/codecs/qtsciicodec.cpp b/src/corelib/codecs/qtsciicodec.cpp
index 14d2c9c..0ec0567 100644
--- a/src/corelib/codecs/qtsciicodec.cpp
+++ b/src/corelib/codecs/qtsciicodec.cpp
@@ -180,8 +180,7 @@ QByteArray QTsciiCodec::name() const
*/
int QTsciiCodec::mibEnum() const
{
- /* There is no MIBEnum for TSCII now */
- return -3197;
+ return 2107;
}
static const int UnToTsLast = 124; // 125 items -- so the last will be 124
diff --git a/src/corelib/codecs/qutfcodec.cpp b/src/corelib/codecs/qutfcodec.cpp
index 281bf75..1ac592e 100644
--- a/src/corelib/codecs/qutfcodec.cpp
+++ b/src/corelib/codecs/qutfcodec.cpp
@@ -413,9 +413,7 @@ QByteArray QUtf16Codec::name() const
QList<QByteArray> QUtf16Codec::aliases() const
{
- QList<QByteArray> list;
- list << "ISO-10646-UCS-2";
- return list;
+ return QList<QByteArray>();
}
int QUtf16BECodec::mibEnum() const
diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h
index c172f5f..f11c9df 100644
--- a/src/corelib/global/qfeatures.h
+++ b/src/corelib/global/qfeatures.h
@@ -386,11 +386,6 @@
#define QT_NO_PHONON_VOLUMESLIDER
#endif
-// QPrinter
-#if !defined(QT_NO_PRINTER) && (defined(QT_NO_TEXTSTREAM))
-#define QT_NO_PRINTER
-#endif
-
// QProcess
#if !defined(QT_NO_PROCESS) && (defined(QT_NO_THREAD))
#define QT_NO_PROCESS
@@ -516,6 +511,11 @@
#define QT_NO_LIBRARY
#endif
+// QPrinter
+#if !defined(QT_NO_PRINTER) && (defined(QT_NO_TEXTSTREAM) || defined(QT_NO_PICTURE))
+#define QT_NO_PRINTER
+#endif
+
// QScrollArea
#if !defined(QT_NO_SCROLLAREA) && (defined(QT_NO_SCROLLBAR))
#define QT_NO_SCROLLAREA
@@ -646,11 +646,6 @@
#define QT_NO_WHATSTHIS
#endif
-// Common UNIX Printing System
-#if !defined(QT_NO_CUPS) && (defined(QT_NO_PRINTER) || defined(QT_NO_LIBRARY))
-#define QT_NO_CUPS
-#endif
-
// QDirModel
#if !defined(QT_NO_DIRMODEL) && (defined(QT_NO_ITEMVIEWS))
#define QT_NO_DIRMODEL
@@ -731,6 +726,11 @@
#define QT_NO_COMPLETER
#endif
+// Common UNIX Printing System
+#if !defined(QT_NO_CUPS) && (defined(QT_NO_PRINTER) || defined(QT_NO_LIBRARY))
+#define QT_NO_CUPS
+#endif
+
// QDataWidgetMapper
#if !defined(QT_NO_DATAWIDGETMAPPER) && (defined(QT_NO_ITEMVIEWS) || defined(QT_NO_PROPERTIES))
#define QT_NO_DATAWIDGETMAPPER
@@ -762,7 +762,7 @@
#endif
// QPrintPreviewWidget
-#if !defined(QT_NO_PRINTPREVIEWWIDGET) && (defined(QT_NO_GRAPHICSVIEW) || defined(QT_NO_PRINTER) || defined(QT_NO_PICTURE))
+#if !defined(QT_NO_PRINTPREVIEWWIDGET) && (defined(QT_NO_GRAPHICSVIEW) || defined(QT_NO_PRINTER))
#define QT_NO_PRINTPREVIEWWIDGET
#endif
diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h
index 28b9d08..3990c7d 100644
--- a/src/corelib/global/qglobal.h
+++ b/src/corelib/global/qglobal.h
@@ -747,6 +747,10 @@ namespace QT_NAMESPACE {}
# endif
#elif defined(Q_OS_WINCE)
# define Q_WS_WIN32
+# define Q_WS_WINCE
+# if defined(Q_OS_WINCE_WM)
+# define Q_WS_WINCE_WM
+# endif
#elif defined(Q_OS_OS2)
# define Q_WS_PM
# error "Qt does not work with OS/2 Presentation Manager or Workplace Shell"
@@ -764,10 +768,11 @@ namespace QT_NAMESPACE {}
# endif
#endif
-#if defined(Q_WS_WIN16) || defined(Q_WS_WIN32)
+#if defined(Q_WS_WIN16) || defined(Q_WS_WIN32) || defined(Q_WS_WINCE)
# define Q_WS_WIN
#endif
+
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
@@ -821,17 +826,12 @@ typedef quint64 qulonglong;
sizeof(void *) == sizeof(quintptr)
&& sizeof(void *) == sizeof(qptrdiff)
*/
-template <int> class QUintForSize { private: typedef void Type; };
-template <> class QUintForSize<4> { public: typedef quint32 Type; };
-template <> class QUintForSize<8> { public: typedef quint64 Type; };
-template <typename T> class QUintForType : public QUintForSize<sizeof(T)> { };
-typedef QUintForType<void *>::Type quintptr;
-
-template <int> class QIntForSize { private: typedef void Type; };
-template <> class QIntForSize<4> { public: typedef qint32 Type; };
-template <> class QIntForSize<8> { public: typedef qint64 Type; };
-template <typename T> class QIntForType : public QIntForSize<sizeof(T)> { };
-typedef QIntForType<void *>::Type qptrdiff;
+template <int> struct QIntegerForSize;
+template <> struct QIntegerForSize<4> { typedef quint32 Unsigned; typedef qint32 Signed; };
+template <> struct QIntegerForSize<8> { typedef quint64 Unsigned; typedef qint64 Signed; };
+template <class T> struct QIntegerForSizeof: QIntegerForSize<sizeof(T)> { };
+typedef QIntegerForSizeof<void*>::Unsigned quintptr;
+typedef QIntegerForSizeof<void*>::Signed qptrdiff;
/*
Useful type definitions for Qt
@@ -1709,7 +1709,7 @@ static inline bool qFuzzyCompare(float p1, float p2)
/*!
\internal
*/
-static inline bool qIsFuzzyNull(double d)
+static inline bool qFuzzyIsNull(double d)
{
return qAbs(d) <= 0.000000000001;
}
@@ -1717,7 +1717,7 @@ static inline bool qIsFuzzyNull(double d)
/*!
\internal
*/
-static inline bool qIsFuzzyNull(float f)
+static inline bool qFuzzyIsNull(float f)
{
return qAbs(f) <= 0.00001f;
}
@@ -2281,9 +2281,9 @@ QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathSysconf();
| QT_MODULE_GRAPHICSVIEW \
| QT_MODULE_HELP \
| QT_MODULE_TEST \
- | QT_MODULE_DBUS)
-#define QT_EDITION_DESKTOP (QT_EDITION_OPENSOURCE \
+ | QT_MODULE_DBUS \
| QT_MODULE_ACTIVEQT)
+#define QT_EDITION_DESKTOP (QT_EDITION_OPENSOURCE)
#define QT_EDITION_UNIVERSAL QT_EDITION_DESKTOP
#define QT_EDITION_ACADEMIC QT_EDITION_DESKTOP
#define QT_EDITION_EDUCATIONAL QT_EDITION_DESKTOP
diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
index ada08c7..29e356e 100644
--- a/src/corelib/global/qlibraryinfo.cpp
+++ b/src/corelib/global/qlibraryinfo.cpp
@@ -485,100 +485,27 @@ QT_END_NAMESPACE
#if defined(Q_CC_GNU) && defined(Q_OS_LINUX) && !defined(QT_LINUXBASE) && !defined(QT_BOOTSTRAPPED)
-# include <sys/syscall.h>
-# include <unistd.h>
-
-static const char boilerplate[] =
- "This is the QtCore library version " QT_VERSION_STR "\n"
- "Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).\n"
- "Contact: Qt Software Information (qt-info@nokia.com)\n"
- "\n"
- "Build key: " QT_BUILD_KEY;
-
-extern "C" {
-void qt_core_init_boilerplate() __attribute__((noreturn));
-}
+# include <stdio.h>
+# include <stdlib.h>
-# if defined(QT_ARCH_I386)
-#define sysinit() (void)0
-#define syswrite(msg, len) \
- ({ int res; \
- asm volatile ("movl %%ebx, %%edi\n" \
- "movl $1, %%ebx\n" \
- "int $0x80\n" \
- "movl %%edi, %%ebx\n" \
- : "=a" (res) : "0" (SYS_write), "c" (msg), "d" (len) : "edi"); res; })
-#define sysexit(c) \
- asm ("xor %%ebx, %%ebx\n" \
- "int $0x80\n" \
- : : "a" (SYS_exit)); _exit(c)
-
-# elif defined(QT_ARCH_X86_64)
-#define sysinit() (void)0
-#define syswrite(msg, len) \
- ({ int res; \
- asm volatile ("syscall\n" \
- : "=a" (res) : "0" (SYS_write), "D" (1), "S" (msg), "d" (len) : "rcx"); res; })
-#define sysexit(c) \
- asm ("syscall\n" \
- : : "a" (SYS_exit), "D" (0)); _exit(c)
-
-# elif defined(QT_ARCH_IA64)
-#define sysinit() \
- asm volatile ("{.mlx\n" \
- " nop.m 0\n" \
- " movl r2 = @pcrel(boilerplate);;" \
- "}\n" \
- "{.mii\n" \
- " mov r10 = @ltoffx(boilerplate)\n" \
- " mov r1 = ip\n" \
- " adds r2 = -16, r2\n;;\n" \
- "}\n" \
- " add r1 = r2, r1;;\n" \
- " sub r1 = r1, r10;;\n" \
- : : : "r2", "r10")
-#define syswrite(msg, len) \
- ({ const char *_msg = msg; \
- asm ("mov out0=%1\n" \
- "mov out1=%2\n" \
- "mov out2=%3\n" \
- ";;\n" \
- "mov r15=%0\n" \
- "break 0x100000;;\n" \
- : : "I" (SYS_write), "I" (1), "r" (_msg), "r" (len)); })
-#define sysexit(c) \
- asm ("mov out0=%1\n" \
- ";;\n" \
- "mov r15=%0\n" \
- "break 0x100000;;\n" \
- : : "I" (SYS_exit), "O" (0)); write(1, 0, 0); _exit(c)
-# else
-#define sysinit() (void)0
-#define syswrite(msg, len) (msg); (len)
-#define sysexit(c) __builtin_exit(c)
-# endif
-
-#define sysputs(msg) syswrite(msg, -1 + sizeof(msg))
-#define sysendl() syswrite("\n", 1)
-#define print_qt_configure(_which) \
- ({const char *which = _which; \
- which += 12; \
- int len = 0; \
- while (which[len]) ++len; \
- syswrite(which, len); })
+extern const char qt_core_interpreter[] __attribute__((section(".interp")))
+ = "/lib/ld-linux.so.2";
+extern "C"
void qt_core_init_boilerplate()
{
- sysinit();
- sysputs(boilerplate);
- sysputs("\nInstallation prefix: ");
- print_qt_configure(qt_configure_prefix_path_str);
- sysputs("\nLibrary path: ");
- print_qt_configure(qt_configure_libraries_path_str);
- sysputs("\nInclude path: ");
- print_qt_configure(qt_configure_headers_path_str);
- sysendl();
- sysexit(0);
+ printf("This is the QtCore library version " QT_VERSION_STR "\n"
+ "Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).\n"
+ "Contact: Qt Software Information (qt-info@nokia.com)\n"
+ "\n"
+ "Build key: " QT_BUILD_KEY "\n"
+ "Installation prefix: %s\n"
+ "Library path: %s\n"
+ "Include path: %s\n",
+ qt_configure_prefix_path_str + 12,
+ qt_configure_libraries_path_str + 12,
+ qt_configure_headers_path_str + 12);
+ exit(0);
}
#endif
diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h
index fb7fa0c..4873b17 100644
--- a/src/corelib/global/qnamespace.h
+++ b/src/corelib/global/qnamespace.h
@@ -188,6 +188,12 @@ public:
#endif
};
+ enum TileRule {
+ Stretch,
+ Repeat,
+ Round
+ };
+
// Text formatting flags for QPainter::drawText and QLabel.
// The following two enums can be combined to one integer which
// is passed as 'flags' to drawText and qt_format_text.
@@ -280,9 +286,7 @@ public:
WindowStaysOnTopHint = 0x00040000,
// reserved for Qt3Support:
// WMouseNoMask = 0x00080000,
- WindowOkButtonHint = 0x00080000,
// WDestructiveClose = 0x00100000,
- WindowCancelButtonHint = 0x00100000,
// WStaticContents = 0x00200000,
// WGroupLeader = 0x00400000,
// WShowModal = 0x00800000,
@@ -291,7 +295,9 @@ public:
WindowStaysOnBottomHint = 0x04000000,
WindowCloseButtonHint = 0x08000000,
MacWindowToolBarButtonHint = 0x10000000,
- BypassGraphicsProxyWidget = 0x20000000
+ BypassGraphicsProxyWidget = 0x20000000,
+ WindowOkButtonHint = 0x00080000,
+ WindowCancelButtonHint = 0x00100000
#ifdef QT3_SUPPORT
,
@@ -497,6 +503,7 @@ public:
AA_NativeWindows = 3,
AA_DontCreateNativeWidgetSiblings = 4,
AA_MacPluginApplication = 5,
+ AA_DontUseNativeMenuBar = 6,
// Add new attributes before this line
AA_AttributeCount
diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp
index 6d75c59..d62328f 100644
--- a/src/corelib/io/qdir.cpp
+++ b/src/corelib/io/qdir.cpp
@@ -54,6 +54,8 @@
# include "qresource.h"
#endif
+#include "qvarlengtharray.h"
+
#include "../kernel/qcoreglobaldata_p.h"
#include <stdlib.h>
@@ -2065,11 +2067,13 @@ QString QDir::cleanPath(const QString &path)
QString name = path;
QChar dir_separator = separator();
if(dir_separator != QLatin1Char('/'))
- name.replace(dir_separator, QLatin1Char('/'));
+ name.replace(dir_separator, QLatin1Char('/'));
int used = 0, levels = 0;
const int len = name.length();
- QVector<QChar> out(len);
+ QVarLengthArray<QChar> outVector(len);
+ QChar *out = outVector.data();
+
const QChar *p = name.unicode();
for(int i = 0, last = -1, iwrite = 0; i < len; i++) {
if(p[i] == QLatin1Char('/')) {
@@ -2169,7 +2173,7 @@ QString QDir::cleanPath(const QString &path)
if(used == len)
ret = name;
else
- ret = QString(out.data(), used);
+ ret = QString(out, used);
// Strip away last slash except for root directories
if (ret.endsWith(QLatin1Char('/'))
@@ -2232,7 +2236,7 @@ QStringList QDir::nameFiltersFromString(const QString &nameFilter)
\snippet doc/src/snippets/code/src_corelib_io_qdir.cpp 13
- If the file name contains characters that cannot be part of a valid C++ function name
+ If the file name contains characters that cannot be part of a valid C++ function name
(such as '-'), they have to be replaced by the underscore character ('_').
Note: This macro cannot be used in a namespace. It should be called from
diff --git a/src/corelib/io/qfile.cpp b/src/corelib/io/qfile.cpp
index d7da800..04750b0 100644
--- a/src/corelib/io/qfile.cpp
+++ b/src/corelib/io/qfile.cpp
@@ -708,6 +708,7 @@ QFile::rename(const QString &newName)
d->setError(QFile::RenameError, tr("Destination file exists"));
return false;
}
+ unsetError();
close();
if(error() == QFile::NoError) {
if (fileEngine()->rename(newName)) {
@@ -849,6 +850,7 @@ QFile::copy(const QString &newName)
d->setError(QFile::CopyError, tr("Destination file exists"));
return false;
}
+ unsetError();
close();
if(error() == QFile::NoError) {
if(fileEngine()->copy(newName)) {
@@ -908,6 +910,7 @@ QFile::copy(const QString &newName)
out.setAutoRemove(false);
#endif
}
+ close();
}
if(!error) {
QFile::setPermissions(newName, permissions());
diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp
index 96e0f82..a8d28cb 100644
--- a/src/corelib/io/qfileinfo.cpp
+++ b/src/corelib/io/qfileinfo.cpp
@@ -537,8 +537,7 @@ QFileInfo &QFileInfo::operator=(const QFileInfo &fileinfo)
void QFileInfo::setFile(const QString &file)
{
- Q_D(QFileInfo);
- d->initFileEngine(file);
+ *this = QFileInfo(file);
}
/*!
@@ -555,8 +554,7 @@ void QFileInfo::setFile(const QString &file)
void QFileInfo::setFile(const QFile &file)
{
- Q_D(QFileInfo);
- d->initFileEngine(file.fileName());
+ *this = QFileInfo(file.fileName());
}
/*!
@@ -574,7 +572,7 @@ void QFileInfo::setFile(const QFile &file)
void QFileInfo::setFile(const QDir &dir, const QString &file)
{
Q_D(QFileInfo);
- d->initFileEngine(dir.filePath(file));
+ *this = QFileInfo(dir.filePath(file));
}
/*!
@@ -921,7 +919,7 @@ 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
\c{"~/examples/191697"}.
diff --git a/src/corelib/io/qfilesystemwatcher_inotify.cpp b/src/corelib/io/qfilesystemwatcher_inotify.cpp
index 4445e3c..fa44531 100644
--- a/src/corelib/io/qfilesystemwatcher_inotify.cpp
+++ b/src/corelib/io/qfilesystemwatcher_inotify.cpp
@@ -316,7 +316,7 @@ void QInotifyFileSystemWatcherEngine::readFromInotify()
// qDebug() << "QInotifyFileSystemWatcherEngine::readFromInotify";
int buffSize = 0;
- ioctl(inotifyFd, FIONREAD, &buffSize);
+ ioctl(inotifyFd, FIONREAD, (char *) &buffSize);
QVarLengthArray<char, 4096> buffer(buffSize);
buffSize = read(inotifyFd, buffer.data(), buffSize);
const char *at = buffer.data();
diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp
index 522be20..63506c2 100644
--- a/src/corelib/io/qfsfileengine_win.cpp
+++ b/src/corelib/io/qfsfileengine_win.cpp
@@ -346,8 +346,15 @@ bool QFSFileEnginePrivate::uncListSharesOnServer(const QString &server, QStringL
static bool isUncRoot(const QString &server)
{
QString localPath = QDir::toNativeSeparators(server);
- QStringList parts = localPath.split(QLatin1Char('\\'), QString::SkipEmptyParts);
- return localPath.startsWith(QLatin1String("\\\\")) && parts.count() <= 1;
+ if (!localPath.startsWith(QLatin1String("\\\\")))
+ return false;
+
+ int idx = localPath.indexOf(QLatin1Char('\\'), 2);
+ if (idx == -1 || idx + 1 == localPath.length())
+ return true;
+
+ localPath = localPath.right(localPath.length() - idx - 1).trimmed();
+ return localPath.isEmpty();
}
static bool isUncPath(const QString &path)
diff --git a/src/corelib/io/qprocess_unix.cpp b/src/corelib/io/qprocess_unix.cpp
index 5537c9d..2f05f6e 100644
--- a/src/corelib/io/qprocess_unix.cpp
+++ b/src/corelib/io/qprocess_unix.cpp
@@ -856,10 +856,10 @@ bool QProcessPrivate::processStarted()
qint64 QProcessPrivate::bytesAvailableFromStdout() const
{
- size_t nbytes = 0;
+ int nbytes = 0;
qint64 available = 0;
if (::ioctl(stdoutChannel.pipe[0], FIONREAD, (char *) &nbytes) >= 0)
- available = (qint64) *((int *) &nbytes);
+ available = (qint64) nbytes;
#if defined (QPROCESS_DEBUG)
qDebug("QProcessPrivate::bytesAvailableFromStdout() == %lld", available);
#endif
@@ -868,10 +868,10 @@ qint64 QProcessPrivate::bytesAvailableFromStdout() const
qint64 QProcessPrivate::bytesAvailableFromStderr() const
{
- size_t nbytes = 0;
+ int nbytes = 0;
qint64 available = 0;
if (::ioctl(stderrChannel.pipe[0], FIONREAD, (char *) &nbytes) >= 0)
- available = (qint64) *((int *) &nbytes);
+ available = (qint64) nbytes;
#if defined (QPROCESS_DEBUG)
qDebug("QProcessPrivate::bytesAvailableFromStderr() == %lld", available);
#endif
diff --git a/src/corelib/io/qresource.cpp b/src/corelib/io/qresource.cpp
index a1f921e..779a742 100644
--- a/src/corelib/io/qresource.cpp
+++ b/src/corelib/io/qresource.cpp
@@ -60,6 +60,37 @@
QT_BEGIN_NAMESPACE
+
+class QStringSplitter
+{
+public:
+ QStringSplitter(const QString &s)
+ : m_string(s), m_data(m_string.constData()), m_len(s.length()), m_pos(0)
+ {
+ m_splitChar = QLatin1Char('/');
+ }
+
+ inline bool hasNext() {
+ while (m_pos < m_len && m_data[m_pos] == m_splitChar)
+ ++m_pos;
+ return m_pos < m_len;
+ }
+
+ inline QStringRef next() {
+ int start = m_pos;
+ while (m_pos < m_len && m_data[m_pos] != m_splitChar)
+ ++m_pos;
+ return QStringRef(&m_string, start, m_pos - start);
+ }
+
+ QString m_string;
+ const QChar *m_data;
+ QChar m_splitChar;
+ int m_len;
+ int m_pos;
+};
+
+
//resource glue
class QResourceRoot
{
@@ -101,6 +132,16 @@ protected:
}
};
+static QString cleanPath(const QString &_path)
+{
+ QString path = QDir::cleanPath(_path);
+ // QDir::cleanPath does not remove two trailing slashes under _Windows_
+ // due to support for UNC paths. Remove those manually.
+ if (path.startsWith(QLatin1String("//")))
+ path.remove(0, 1);
+ return path;
+}
+
Q_DECLARE_TYPEINFO(QResourceRoot, Q_MOVABLE_TYPE);
Q_GLOBAL_STATIC_WITH_ARGS(QMutex, resourceMutex, (QMutex::Recursive))
@@ -216,9 +257,10 @@ QResourcePrivate::load(const QString &file)
related.clear();
QMutexLocker lock(resourceMutex());
const ResourceList *list = resourceList();
+ QString cleaned = cleanPath(file);
for(int i = 0; i < list->size(); ++i) {
QResourceRoot *res = list->at(i);
- const int node = res->findNode(file);
+ const int node = res->findNode(cleaned);
if(node != -1) {
if(related.isEmpty()) {
container = res->isContainer(node);
@@ -292,6 +334,7 @@ QResourcePrivate::ensureChildren() const
if(path.startsWith(QLatin1Char(':')))
path = path.mid(1);
QSet<QString> kids;
+ QString cleaned = cleanPath(path);
for(int i = 0; i < related.size(); ++i) {
QResourceRoot *res = related.at(i);
if(res->mappingRootSubdir(path, &k) && !k.isEmpty()) {
@@ -300,7 +343,7 @@ QResourcePrivate::ensureChildren() const
kids.insert(k);
}
} else {
- const int node = res->findNode(path);
+ const int node = res->findNode(cleaned);
if(node != -1) {
QStringList related_children = res->children(node);
for(int kid = 0; kid < related_children.size(); ++kid) {
@@ -562,18 +605,20 @@ inline QString QResourceRoot::name(int node) const
(names[name_offset+1] << 0);
name_offset += 2;
name_offset += 4; //jump past hash
- for(int i = 0; i < name_length*2; i+=2)
- ret += QChar(names[name_offset+i+1], names[name_offset+i]);
+
+ ret.resize(name_length);
+ QChar *strData = ret.data();
+ for(int i = 0; i < name_length*2; i+=2) {
+ QChar c(names[name_offset+i+1], names[name_offset+i]);
+ *strData = c;
+ ++strData;
+ }
return ret;
}
+
int QResourceRoot::findNode(const QString &_path, const QLocale &locale) const
{
- QString path = QDir::cleanPath(_path);
- // QDir::cleanPath does not remove two trailing slashes under _Windows_
- // due to support for UNC paths. Remove those manually.
- if (path.startsWith(QLatin1String("//")))
- path.remove(0, 1);
-
+ QString path = _path;
{
QString root = mappingRoot();
if(!root.isEmpty()) {
@@ -604,12 +649,11 @@ int QResourceRoot::findNode(const QString &_path, const QLocale &locale) const
//now iterate up the tree
int node = -1;
- QStringList segments = path.split(QLatin1Char('/'), QString::SkipEmptyParts);
-#ifdef DEBUG_RESOURCE_MATCH
- qDebug() << "****" << segments;
-#endif
- for(int i = 0; child_count && i < segments.size(); ++i) {
- const QString &segment = segments[i];
+
+ QStringSplitter splitter(path);
+ while (child_count && splitter.hasNext()) {
+ QStringRef segment = splitter.next();
+
#ifdef DEBUG_RESOURCE_MATCH
qDebug() << " CHILDREN" << segment;
for(int j = 0; j < child_count; ++j) {
@@ -651,7 +695,7 @@ int QResourceRoot::findNode(const QString &_path, const QLocale &locale) const
(tree[offset+1] << 0);
offset += 2;
- if(i == segments.size()-1) {
+ if(!splitter.hasNext()) {
if(!(flags & Directory)) {
const short country = (tree[offset+0] << 8) +
(tree[offset+1] << 0);
diff --git a/src/corelib/io/qsettings.cpp b/src/corelib/io/qsettings.cpp
index 62b4ed5..484e79a 100644
--- a/src/corelib/io/qsettings.cpp
+++ b/src/corelib/io/qsettings.cpp
@@ -2330,6 +2330,10 @@ void QConfFileSettingsPrivate::ensureSectionParsed(QConfFile *confFile,
\o \c{HKEY_LOCAL_MACHINE\Software\MySoft}
\endlist
+ \note On Windows, for 32-bit programs running in WOW64 mode, settings are
+ stored in the following registry path:
+ \c{HKEY_LOCAL_MACHINE\Software\WOW6432node}.
+
If the file format is IniFormat, the following files are
used on Unix and Mac OS X:
diff --git a/src/corelib/io/qtemporaryfile.cpp b/src/corelib/io/qtemporaryfile.cpp
index 3cfce83..4856353 100644
--- a/src/corelib/io/qtemporaryfile.cpp
+++ b/src/corelib/io/qtemporaryfile.cpp
@@ -105,100 +105,100 @@ QT_BEGIN_NAMESPACE
*/
static int _gettemp(char *path, int *doopen, int domkdir, int slen)
{
- char *start, *trv, *suffp;
- QT_STATBUF sbuf;
- int rval;
+ char *start, *trv, *suffp;
+ QT_STATBUF sbuf;
+ int rval;
#if defined(Q_OS_WIN)
int pid;
#else
- pid_t pid;
+ pid_t pid;
#endif
- if (doopen && domkdir) {
- errno = EINVAL;
- return(0);
- }
-
- for (trv = path; *trv; ++trv)
- ;
- trv -= slen;
- suffp = trv;
- --trv;
- if (trv < path) {
- errno = EINVAL;
- return (0);
- }
+ if (doopen && domkdir) {
+ errno = EINVAL;
+ return 0;
+ }
+
+ for (trv = path; *trv; ++trv)
+ ;
+ trv -= slen;
+ suffp = trv;
+ --trv;
+ if (trv < path) {
+ errno = EINVAL;
+ return 0;
+ }
#if defined(Q_OS_WIN) && defined(_MSC_VER) && _MSC_VER >= 1400
- pid = _getpid();
+ pid = _getpid();
#else
- pid = getpid();
+ pid = getpid();
#endif
- while (trv >= path && *trv == 'X' && pid != 0) {
- *trv-- = (pid % 10) + '0';
- pid /= 10;
- }
+ while (trv >= path && *trv == 'X' && pid != 0) {
+ *trv-- = (pid % 10) + '0';
+ pid /= 10;
+ }
#ifndef S_ISDIR
-#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
+# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif
- while (trv >= path && *trv == 'X') {
- char c;
-
- // CHANGE arc4random() -> random()
- pid = (qrand() & 0xffff) % (26+26);
- if (pid < 26)
- c = pid + 'A';
- else
- c = (pid - 26) + 'a';
- *trv-- = c;
- }
- start = trv + 1;
-
- /*
- * check the target directory; if you have six X's and it
- * doesn't exist this runs for a *very* long time.
- */
- if (doopen || domkdir) {
- for (;; --trv) {
- if (trv <= path)
- break;
- if (*trv == '/') {
- *trv = '\0';
+ while (trv >= path && *trv == 'X') {
+ char c;
+
+ // CHANGE arc4random() -> random()
+ pid = (qrand() & 0xffff) % (26+26);
+ if (pid < 26)
+ c = pid + 'A';
+ else
+ c = (pid - 26) + 'a';
+ *trv-- = c;
+ }
+ start = trv + 1;
+
+ /*
+ * check the target directory; if you have six X's and it
+ * doesn't exist this runs for a *very* long time.
+ */
+ if (doopen || domkdir) {
+ for (;; --trv) {
+ if (trv <= path)
+ break;
+ if (*trv == '/') {
+ *trv = '\0';
#if defined (Q_OS_WIN) && !defined(Q_OS_WINCE)
- if (trv - path == 2 && path[1] == ':') {
- // Special case for Windows drives
- // (e.g., "C:" => "C:\").
- // ### Better to use a Windows
- // call for this.
- char drive[] = "c:\\";
- drive[0] = path[0];
- rval = QT_STAT(drive, &sbuf);
- } else
+ if (trv - path == 2 && path[1] == ':') {
+ // Special case for Windows drives
+ // (e.g., "C:" => "C:\").
+ // ### Better to use a Windows
+ // call for this.
+ char drive[] = "c:\\";
+ drive[0] = path[0];
+ rval = QT_STAT(drive, &sbuf);
+ } else
#endif
- rval = QT_STAT(path, &sbuf);
- *trv = '/';
- if (rval != 0)
- return(0);
- if (!S_ISDIR(sbuf.st_mode)) {
- errno = ENOTDIR;
- return(0);
- }
- break;
- }
- }
- }
-
- for (;;) {
- if (doopen) {
+ rval = QT_STAT(path, &sbuf);
+ *trv = '/';
+ if (rval != 0)
+ return 0;
+ if (!S_ISDIR(sbuf.st_mode)) {
+ errno = ENOTDIR;
+ return 0;
+ }
+ break;
+ }
+ }
+ }
+
+ for (;;) {
+ if (doopen) {
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) && defined(_MSC_VER) && _MSC_VER >= 1400
- if (_sopen_s(doopen, path, QT_OPEN_CREAT|O_EXCL|QT_OPEN_RDWR|QT_OPEN_BINARY
-#ifdef QT_LARGEFILE_SUPPORT
- |QT_OPEN_LARGEFILE
-#endif
- , _SH_DENYNO, _S_IREAD | _S_IWRITE)== 0)
-#else
-#if defined(Q_OS_WINCE)
+ if (_sopen_s(doopen, path, QT_OPEN_CREAT|O_EXCL|QT_OPEN_RDWR|QT_OPEN_BINARY
+# ifdef QT_LARGEFILE_SUPPORT
+ |QT_OPEN_LARGEFILE
+# endif
+ , _SH_DENYNO, _S_IREAD | _S_IWRITE)== 0)
+#else // WIN && !CE
+# if defined(Q_OS_WINCE)
QString targetPath;
if (QDir::isAbsolutePath(QString::fromLatin1(path)))
targetPath = QLatin1String(path);
@@ -207,72 +207,84 @@ static int _gettemp(char *path, int *doopen, int domkdir, int slen)
if ((*doopen =
QT_OPEN(targetPath.toLocal8Bit(), O_CREAT|O_EXCL|O_RDWR
-#else
- if ((*doopen =
- open(path, QT_OPEN_CREAT|O_EXCL|QT_OPEN_RDWR
-#endif
-#ifdef QT_LARGEFILE_SUPPORT
- |QT_OPEN_LARGEFILE
-#endif
+# else // CE
+ if ((*doopen =
+ open(path, QT_OPEN_CREAT|O_EXCL|QT_OPEN_RDWR
+# endif
+# ifdef QT_LARGEFILE_SUPPORT
+ |QT_OPEN_LARGEFILE
+# endif
# if defined(Q_OS_WINCE)
- |_O_BINARY
+ |_O_BINARY
# elif defined(Q_OS_WIN)
- |O_BINARY
+ |O_BINARY
+# endif
+# ifdef O_CLOEXEC
+ // supported on Linux >= 2.6.23; avoids one extra system call
+ // and avoids a race condition: if another thread forks, we could
+ // end up leaking a file descriptor...
+ |O_CLOEXEC
# endif
- , 0600)) >= 0)
+ , 0600)) >= 0)
+#endif // WIN && !CE
+ {
+#if defined(Q_OS_UNIX) && !defined(O_CLOEXEC)
+ fcntl(*doopen, F_SETFD, FD_CLOEXEC);
#endif
-
- return(1);
- if (errno != EEXIST)
- return(0);
- } else if (domkdir) {
+ return 1;
+ }
+ if (errno != EEXIST)
+ return 0;
+ } else if (domkdir) {
#ifdef Q_OS_WIN
- if (QT_MKDIR(path) == 0)
+ if (QT_MKDIR(path) == 0)
#else
- if (mkdir(path, 0700) == 0)
+ if (mkdir(path, 0700) == 0)
#endif
- return(1);
- if (errno != EEXIST)
- return(0);
- }
+ return 1;
+ if (errno != EEXIST)
+ return 0;
+ }
#ifndef Q_OS_WIN
- else if (QT_LSTAT(path, &sbuf))
- return(errno == ENOENT ? 1 : 0);
+ else if (QT_LSTAT(path, &sbuf))
+ return (errno == ENOENT) ? 1 : 0;
#else
- if (!QFileInfo(QLatin1String(path)).exists())
- return 1;
+ if (!QFileInfo(QLatin1String(path)).exists())
+ return 1;
#endif
- /* tricky little algorwwithm for backward compatibility */
- for (trv = start;;) {
- if (!*trv)
- return (0);
- if (*trv == 'Z') {
- if (trv == suffp)
- return (0);
- *trv++ = 'a';
- } else {
- if (isdigit(*trv))
- *trv = 'a';
- else if (*trv == 'z') /* inc from z to A */
- *trv = 'A';
- else {
- if (trv == suffp)
- return (0);
- ++*trv;
- }
- break;
- }
+ /* tricky little algorwwithm for backward compatibility */
+ for (trv = start;;) {
+ if (!*trv)
+ return 0;
+ if (*trv == 'Z') {
+ if (trv == suffp)
+ return 0;
+ *trv++ = 'a';
+ } else {
+ if (isdigit(*trv))
+ *trv = 'a';
+ else if (*trv == 'z') /* inc from z to A */
+ *trv = 'A';
+ else {
+ if (trv == suffp)
+ return 0;
+ ++*trv;
}
+ break;
+ }
}
- /*NOTREACHED*/
+ }
+ /*NOTREACHED*/
}
+#ifndef Q_WS_WIN
static int qt_mkstemps(char *path, int slen)
{
- int fd = 0;
- return (_gettemp(path, &fd, 0, slen) ? fd : -1);
+ int fd = 0;
+ return (_gettemp(path, &fd, 0, slen) ? fd : -1);
}
+#endif
//************* QTemporaryFileEngine
class QTemporaryFileEngine : public QFSFileEngine
diff --git a/src/corelib/io/qtextstream.cpp b/src/corelib/io/qtextstream.cpp
index 73408dc..3c015da 100644
--- a/src/corelib/io/qtextstream.cpp
+++ b/src/corelib/io/qtextstream.cpp
@@ -559,13 +559,8 @@ bool QTextStreamPrivate::fillReadBuffer(qint64 maxBytes)
if (!codec || autoDetectUnicode) {
autoDetectUnicode = false;
- if (bytesRead >= 4 && ((uchar(buf[0]) == 0xff && uchar(buf[1]) == 0xfe && uchar(buf[2]) == 0 && uchar(buf[3]) == 0)
- || (uchar(buf[0]) == 0 && uchar(buf[1]) == 0 && uchar(buf[2]) == 0xfe && uchar(buf[3]) == 0xff))) {
- codec = QTextCodec::codecForName("UTF-32");
- } else if (bytesRead >= 2 && ((uchar(buf[0]) == 0xff && uchar(buf[1]) == 0xfe)
- || (uchar(buf[0]) == 0xfe && uchar(buf[1]) == 0xff))) {
- codec = QTextCodec::codecForName("UTF-16");
- } else if (!codec) {
+ codec = QTextCodec::codecForUtfText(QByteArray::fromRawData(buf, bytesRead), 0);
+ if (!codec) {
codec = QTextCodec::codecForLocale();
writeConverterState.flags |= QTextCodec::IgnoreHeader;
}
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp
index a23b2dd..c21cf87 100644
--- a/src/corelib/kernel/qcoreapplication.cpp
+++ b/src/corelib/kernel/qcoreapplication.cpp
@@ -377,12 +377,12 @@ QString qAppName()
QLibrary) can be retrieved with libraryPaths() and manipulated by
setLibraryPaths(), addLibraryPath(), and removeLibraryPath().
- On Unix/Linux Qt is configured to use the system local settings by
- default. This can cause a conflict when using POSIX functions, for
- instance, when converting between data types such as floats and
- strings, since the notation may differ between locales. To get
- around this problem call the POSIX function setlocale(LC_NUMERIC,"C")
- right after initializing QApplication or QCoreApplication to reset
+ On Unix/Linux Qt is configured to use the system local settings by
+ default. This can cause a conflict when using POSIX functions, for
+ instance, when converting between data types such as floats and
+ strings, since the notation may differ between locales. To get
+ around this problem call the POSIX function setlocale(LC_NUMERIC,"C")
+ right after initializing QApplication or QCoreApplication to reset
the locale that is used for number formatting to "C"-locale.
\sa QApplication, QAbstractEventDispatcher, QEventLoop,
@@ -556,6 +556,20 @@ void QCoreApplication::setAttribute(Qt::ApplicationAttribute attribute, bool on)
QCoreApplicationPrivate::attribs |= 1 << attribute;
else
QCoreApplicationPrivate::attribs &= ~(1 << attribute);
+#ifdef Q_OS_MAC
+ // Turn on the no native menubar here, since we used to
+ // do this implicitly. We DO NOT flip it off if someone sets
+ // it to false.
+ // Ideally, we'd have magic that would be something along the lines of
+ // "follow MacPluginApplication" unless explicitly set.
+ // Considering this attribute isn't only at the beginning
+ // it's unlikely it will ever be a problem, but I want
+ // to have the behavior documented here.
+ if (attribute == Qt::AA_MacPluginApplication && on
+ && !testAttribute(Qt::AA_DontUseNativeMenuBar)) {
+ setAttribute(Qt::AA_DontUseNativeMenuBar, true);
+ }
+#endif
}
/*!
@@ -1908,8 +1922,7 @@ QStringList QCoreApplication::arguments()
l1arg == "-qdebug" ||
l1arg == "-reverse" ||
l1arg == "-stylesheet" ||
- l1arg == "-widgetcount" ||
- l1arg == "-direct3d")
+ l1arg == "-widgetcount")
;
else if (l1arg.startsWith("-style="))
;
diff --git a/src/corelib/kernel/qcoreevent.cpp b/src/corelib/kernel/qcoreevent.cpp
index 3fcfc98..11a2d3c 100644
--- a/src/corelib/kernel/qcoreevent.cpp
+++ b/src/corelib/kernel/qcoreevent.cpp
@@ -260,6 +260,7 @@ QT_BEGIN_NAMESPACE
\omitvalue ApplicationActivated
\omitvalue ApplicationDeactivated
\omitvalue MacGLWindowChange
+ \omitvalue MacGLClearDrawable
\omitvalue NetworkReplyUpdated
\omitvalue FutureCallOut
\omitvalue CocoaRequestModal
diff --git a/src/corelib/kernel/qcoreevent.h b/src/corelib/kernel/qcoreevent.h
index 5487703..fa472e6 100644
--- a/src/corelib/kernel/qcoreevent.h
+++ b/src/corelib/kernel/qcoreevent.h
@@ -264,6 +264,7 @@ public:
GrabKeyboard = 188,
UngrabKeyboard = 189,
CocoaRequestModal = 190, // Internal for requesting an application modal Cocoa Window
+ MacGLClearDrawable = 191, // Internal Cocoa, the window has changed, so we must clear
// 512 reserved for Qt Jambi's MetaCall event
// 513 reserved for Qt Jambi's DeleteOnMainThread event
diff --git a/src/corelib/kernel/qeventdispatcher_glib.cpp b/src/corelib/kernel/qeventdispatcher_glib.cpp
index 3fd768a..3c5b277 100644
--- a/src/corelib/kernel/qeventdispatcher_glib.cpp
+++ b/src/corelib/kernel/qeventdispatcher_glib.cpp
@@ -42,6 +42,7 @@
#include "qeventdispatcher_glib_p.h"
#include "qeventdispatcher_unix_p.h"
+#include <private/qmutexpool_p.h>
#include <private/qthread_p.h>
#include "qcoreapplication.h"
@@ -224,6 +225,8 @@ QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(GMainContext *context)
: mainContext(context)
{
if (qgetenv("QT_NO_THREADED_GLIB").isEmpty()) {
+ static int dummyValue = 0; // only used for its address
+ QMutexLocker locker(QMutexPool::instance()->get(&dummyValue));
if (!g_thread_supported())
g_thread_init(NULL);
}
diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp
index 880e95c..c4061f4 100644
--- a/src/corelib/kernel/qeventdispatcher_win.cpp
+++ b/src/corelib/kernel/qeventdispatcher_win.cpp
@@ -1059,11 +1059,20 @@ bool QEventDispatcherWin32::event(QEvent *e)
QZeroTimerEvent *zte = static_cast<QZeroTimerEvent*>(e);
WinTimerInfo *t = d->timerDict.value(zte->timerId());
if (t) {
+ t->inTimerEvent = true;
+
QTimerEvent te(zte->timerId());
QCoreApplication::sendEvent(t->obj, &te);
- WinTimerInfo *tn = d->timerDict.value(zte->timerId());
- if (tn && t == tn)
- QCoreApplication::postEvent(this, new QZeroTimerEvent(zte->timerId()));
+
+ t = d->timerDict.value(zte->timerId());
+ if (t) {
+ if (t->interval == 0 && t->inTimerEvent) {
+ // post the next zero timer event as long as the timer was not restarted
+ QCoreApplication::postEvent(this, new QZeroTimerEvent(zte->timerId()));
+ }
+
+ t->inTimerEvent = false;
+ }
}
return true;
} else if (e->type() == QEvent::Timer) {
diff --git a/src/corelib/kernel/qeventloop.cpp b/src/corelib/kernel/qeventloop.cpp
index 92bdf73..600f787 100644
--- a/src/corelib/kernel/qeventloop.cpp
+++ b/src/corelib/kernel/qeventloop.cpp
@@ -188,8 +188,9 @@ int QEventLoop::exec(ProcessEventsFlags flags)
d->threadData->eventLoops.push(this);
// remove posted quit events when entering a new event loop
- if (qApp->thread() == thread())
- QCoreApplication::removePostedEvents(qApp, QEvent::Quit);
+ QCoreApplication *app = QCoreApplication::instance();
+ if (app && app->thread() == thread())
+ QCoreApplication::removePostedEvents(app, QEvent::Quit);
#if defined(QT_NO_EXCEPTIONS)
while (!d->exit)
diff --git a/src/corelib/kernel/qfunctions_wince.cpp b/src/corelib/kernel/qfunctions_wince.cpp
index 1c929c7..e0f7687 100644
--- a/src/corelib/kernel/qfunctions_wince.cpp
+++ b/src/corelib/kernel/qfunctions_wince.cpp
@@ -285,11 +285,6 @@ int qt_wince_SetErrorMode(int newValue)
return result;
}
-HRESULT qt_wince_CoInitialize(void* reserved)
-{
- return CoInitializeEx(reserved, 0);
-}
-
bool qt_wince__chmod(const char *file, int mode)
{
return _wchmod( reinterpret_cast<const wchar_t *> (QString::fromLatin1(file).utf16()), mode);
diff --git a/src/corelib/kernel/qfunctions_wince.h b/src/corelib/kernel/qfunctions_wince.h
index 123bd23..5f08bb3 100644
--- a/src/corelib/kernel/qfunctions_wince.h
+++ b/src/corelib/kernel/qfunctions_wince.h
@@ -199,7 +199,9 @@ int qt_wince__fstat( int handle, struct stat *buffer);
#define SEM_FAILCRITICALERRORS 0x0001
#define SEM_NOOPENFILEERRORBOX 0x0002
int qt_wince_SetErrorMode(int);
-HRESULT qt_wince_CoInitialize(void* reserved);
+#ifndef CoInitialize
+#define CoInitialize(x) CoInitializeEx(x, COINIT_MULTITHREADED)
+#endif
bool qt_wince__chmod(const char *file, int mode);
bool qt_wince__wchmod(const WCHAR *file, int mode);
@@ -376,7 +378,6 @@ typedef DWORD OLE_COLOR;
#define _rename(a,b) qt_wince__rename(a,b)
#define _remove(a) qt_wince__remove(a)
#define SetErrorMode(a) qt_wince_SetErrorMode(a)
-#define CoInitialize(a) qt_wince_CoInitialize(a)
#define _chmod(a,b) qt_wince__chmod(a,b)
#define _wchmod(a,b) qt_wince__wchmod(a,b)
#define CreateFileA(a,b,c,d,e,f,g) qt_wince_CreateFileA(a,b,c,d,e,f,g)
diff --git a/src/corelib/kernel/qsharedmemory_unix.cpp b/src/corelib/kernel/qsharedmemory_unix.cpp
index 487c653..cd248dc 100644
--- a/src/corelib/kernel/qsharedmemory_unix.cpp
+++ b/src/corelib/kernel/qsharedmemory_unix.cpp
@@ -47,12 +47,9 @@
#include <qdir.h>
#include <qdebug.h>
-#include <errno.h>
-
-QT_BEGIN_NAMESPACE
-
#ifndef QT_NO_SHAREDMEMORY
+#include <errno.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
@@ -61,6 +58,8 @@ QT_BEGIN_NAMESPACE
#include <fcntl.h>
#include <unistd.h>
+QT_BEGIN_NAMESPACE
+
QSharedMemoryPrivate::QSharedMemoryPrivate()
: QObjectPrivate(), memory(0), size(0), error(QSharedMemory::NoError),
#ifndef QT_NO_SYSTEMSEMAPHORE
diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp
index b4427c0..b53e91f 100644
--- a/src/corelib/kernel/qvariant.cpp
+++ b/src/corelib/kernel/qvariant.cpp
@@ -71,27 +71,6 @@ QT_BEGIN_NAMESPACE
# define FLT_DIG 6
#endif
-
-static const void *constDataHelper(const QVariant::Private &d)
-{
- switch (d.type) {
- case QVariant::Int:
- return &d.data.i;
- case QVariant::UInt:
- return &d.data.u;
- case QVariant::Bool:
- return &d.data.b;
- case QVariant::LongLong:
- return &d.data.ll;
- case QVariant::ULongLong:
- return &d.data.ull;
- case QVariant::Double:
- return &d.data.d;
- default:
- return d.is_shared ? d.data.shared->ptr : reinterpret_cast<const void *>(&d.data.ptr);
- }
-}
-
static void construct(QVariant::Private *x, const void *copy)
{
x->is_shared = false;
@@ -179,6 +158,9 @@ static void construct(QVariant::Private *x, const void *copy)
case QVariant::Double:
x->data.d = copy ? *static_cast<const double*>(copy) : 0.0;
break;
+ case QMetaType::Float:
+ x->data.f = copy ? *static_cast<const float*>(copy) : 0.0f;
+ break;
case QVariant::LongLong:
x->data.ll = copy ? *static_cast<const qlonglong *>(copy) : Q_INT64_C(0);
break;
@@ -274,6 +256,7 @@ static void clear(QVariant::Private *d)
case QVariant::LongLong:
case QVariant::ULongLong:
case QVariant::Double:
+ case QMetaType::Float:
break;
case QVariant::Invalid:
case QVariant::UserType:
@@ -342,6 +325,7 @@ static bool isNull(const QVariant::Private *d)
case QVariant::ULongLong:
case QVariant::Bool:
case QVariant::Double:
+ case QMetaType::Float:
break;
}
return d->is_null;
@@ -433,6 +417,8 @@ static bool compare(const QVariant::Private *a, const QVariant::Private *b)
return a->data.b == b->data.b;
case QVariant::Double:
return a->data.d == b->data.d;
+ case QMetaType::Float:
+ return a->data.f == b->data.f;
case QVariant::Date:
return *v_cast<QDate>(a) == *v_cast<QDate>(b);
case QVariant::Time:
@@ -491,7 +477,7 @@ static qlonglong qMetaTypeNumber(const QVariant::Private *d)
case QMetaType::Long:
return qlonglong(*static_cast<long *>(d->data.shared->ptr));
case QMetaType::Float:
- return qRound64(*static_cast<float *>(d->data.shared->ptr));
+ return qRound64(d->data.f);
case QVariant::Double:
return qRound64(d->data.d);
}
@@ -628,7 +614,7 @@ static bool convert(const QVariant::Private *d, QVariant::Type t, void *result,
*str = QString::number(qMetaTypeUNumber(d));
break;
case QMetaType::Float:
- *str = QString::number(*static_cast<float *>(d->data.shared->ptr), 'g', FLT_DIG);
+ *str = QString::number(d->data.f, 'g', FLT_DIG);
break;
case QVariant::Double:
*str = QString::number(d->data.d, 'g', DBL_DIG);
@@ -799,7 +785,7 @@ static bool convert(const QVariant::Private *d, QVariant::Type t, void *result,
*ba = QByteArray::number(d->data.d, 'g', DBL_DIG);
break;
case QMetaType::Float:
- *ba = QByteArray::number(*static_cast<float *>(d->data.shared->ptr), 'g', FLT_DIG);
+ *ba = QByteArray::number(d->data.f, 'g', FLT_DIG);
break;
case QMetaType::Char:
case QMetaType::UChar:
@@ -901,7 +887,7 @@ static bool convert(const QVariant::Private *d, QVariant::Type t, void *result,
*f = double(d->data.b);
break;
case QMetaType::Float:
- *f = *static_cast<float *>(d->data.shared->ptr);
+ *f = double(d->data.f);
break;
case QVariant::LongLong:
case QVariant::Int:
@@ -1355,7 +1341,7 @@ void QVariant::create(int type, const void *copy)
QVariant::~QVariant()
{
- if (d.type > Char && (!d.is_shared || !d.data.shared->ref.deref()))
+ if (d.type > Char && d.type != QMetaType::Float && (!d.is_shared || !d.data.shared->ref.deref()))
handler->clear(&d);
}
@@ -1371,7 +1357,7 @@ QVariant::QVariant(const QVariant &p)
{
if (d.is_shared) {
d.data.shared->ref.ref();
- } else if (p.d.type > Char) {
+ } else if (p.d.type > Char && p.d.type != QMetaType::Float) {
handler->construct(&d, p.constData());
d.is_null = p.d.is_null;
}
@@ -1565,6 +1551,12 @@ QVariant::QVariant(const char *val)
*/
/*!
+ \fn QVariant::QVariant(float val)
+
+ Constructs a new variant with a floating point value, \a val.
+*/
+
+/*!
\fn QVariant::QVariant(const QList<QVariant> &val)
Constructs a new variant with a list value, \a val.
@@ -1619,44 +1611,44 @@ QVariant::QVariant(double val)
{ d.is_null = false; d.type = Double; d.data.d = val; }
QVariant::QVariant(const QByteArray &val)
-{ create(ByteArray, &val); }
+{ d.is_null = false; d.type = ByteArray; v_construct<QByteArray>(&d, val); }
QVariant::QVariant(const QBitArray &val)
-{ create(BitArray, &val); }
+{ d.is_null = false; d.type = BitArray; v_construct<QBitArray>(&d, val); }
QVariant::QVariant(const QString &val)
-{ create(String, &val); }
+{ d.is_null = false; d.type = String; v_construct<QString>(&d, val); }
QVariant::QVariant(const QChar &val)
-{ create (Char, &val); }
+{ d.is_null = false; d.type = Char; v_construct<QChar>(&d, val); }
QVariant::QVariant(const QLatin1String &val)
-{ QString str(val); create(String, &str); }
+{ QString str(val); d.is_null = false; d.type = String; v_construct<QString>(&d, str); }
QVariant::QVariant(const QStringList &val)
-{ create(StringList, &val); }
+{ d.is_null = false; d.type = StringList; v_construct<QStringList>(&d, val); }
QVariant::QVariant(const QDate &val)
-{ create(Date, &val); }
+{ d.is_null = false; d.type = Date; v_construct<QDate>(&d, val); }
QVariant::QVariant(const QTime &val)
-{ create(Time, &val); }
+{ d.is_null = false; d.type = Time; v_construct<QTime>(&d, val); }
QVariant::QVariant(const QDateTime &val)
-{ create(DateTime, &val); }
+{ d.is_null = false; d.type = DateTime; v_construct<QDateTime>(&d, val); }
QVariant::QVariant(const QList<QVariant> &list)
-{ create(List, &list); }
+{ d.is_null = false; d.type = List; v_construct<QVariantList>(&d, list); }
QVariant::QVariant(const QMap<QString, QVariant> &map)
-{ create(Map, &map); }
+{ d.is_null = false; d.type = Map; v_construct<QVariantMap>(&d, map); }
QVariant::QVariant(const QHash<QString, QVariant> &hash)
-{ create(Hash, &hash); }
+{ d.is_null = false; d.type = Hash; v_construct<QVariantHash>(&d, hash); }
#ifndef QT_NO_GEOM_VARIANT
-QVariant::QVariant(const QPoint &pt) { create(Point, &pt); }
-QVariant::QVariant(const QPointF &pt) { create (PointF, &pt); }
-QVariant::QVariant(const QRectF &r) { create (RectF, &r); }
-QVariant::QVariant(const QLineF &l) { create (LineF, &l); }
-QVariant::QVariant(const QLine &l) { create (Line, &l); }
-QVariant::QVariant(const QRect &r) { create(Rect, &r); }
-QVariant::QVariant(const QSize &s) { create(Size, &s); }
-QVariant::QVariant(const QSizeF &s) { create(SizeF, &s); }
+QVariant::QVariant(const QPoint &pt) { d.is_null = false; d.type = Point; v_construct<QPoint>(&d, pt); }
+QVariant::QVariant(const QPointF &pt) { d.is_null = false; d.type = PointF; v_construct<QPointF>(&d, pt); }
+QVariant::QVariant(const QRectF &r) { d.is_null = false; d.type = RectF; v_construct<QRectF>(&d, r); }
+QVariant::QVariant(const QLineF &l) { d.is_null = false; d.type = LineF; v_construct<QLineF>(&d, l); }
+QVariant::QVariant(const QLine &l) { d.is_null = false; d.type = Line; v_construct<QLine>(&d, l); }
+QVariant::QVariant(const QRect &r) { d.is_null = false; d.type = Rect; v_construct<QRect>(&d, r); }
+QVariant::QVariant(const QSize &s) { d.is_null = false; d.type = Size; v_construct<QSize>(&d, s); }
+QVariant::QVariant(const QSizeF &s) { d.is_null = false; d.type = SizeF; v_construct<QSizeF>(&d, s); }
#endif
-QVariant::QVariant(const QUrl &u) { create(Url, &u); }
-QVariant::QVariant(const QLocale &l) { create(Locale, &l); }
+QVariant::QVariant(const QUrl &u) { d.is_null = false; d.type = Url; v_construct<QUrl>(&d, u); }
+QVariant::QVariant(const QLocale &l) { d.is_null = false; d.type = Locale; v_construct<QLocale>(&d, l); }
#ifndef QT_NO_REGEXP
-QVariant::QVariant(const QRegExp &regExp) { create(RegExp, &regExp); }
+QVariant::QVariant(const QRegExp &regExp) { d.is_null = false; d.type = RegExp; v_construct<QRegExp>(&d, regExp); }
#endif
QVariant::QVariant(Qt::GlobalColor color) { create(62, &color); }
@@ -1721,7 +1713,7 @@ QVariant& QVariant::operator=(const QVariant &variant)
if (variant.d.is_shared) {
variant.d.data.shared->ref.ref();
d = variant.d;
- } else if (variant.d.type > Char) {
+ } else if (variant.d.type > Char && variant.d.type != QMetaType::Float) {
d.type = variant.d.type;
handler->construct(&d, variant.constData());
d.is_null = variant.d.is_null;
@@ -1907,7 +1899,7 @@ void QVariant::load(QDataStream &s)
}
// const cast is safe since we operate on a newly constructed variant
- if (!QMetaType::load(s, d.type, const_cast<void *>(constDataHelper(d)))) {
+ if (!QMetaType::load(s, d.type, const_cast<void *>(constData()))) {
s.setStatus(QDataStream::ReadCorruptData);
qWarning("QVariant::load: unable to load type %d.", d.type);
}
@@ -1947,7 +1939,7 @@ void QVariant::save(QDataStream &s) const
return;
}
- if (!QMetaType::save(s, d.type, constDataHelper(d))) {
+ if (!QMetaType::save(s, d.type, constData())) {
Q_ASSERT_X(false, "QVariant::save", "Invalid type to save");
qWarning("QVariant::save: unable to save type %d.", d.type);
}
@@ -2565,57 +2557,63 @@ static const quint32 qCanConvertMatrix[QVariant::LastCoreType + 1] =
*/
bool QVariant::canConvert(Type t) const
{
- if (d.type == uint(t))
+ //we can treat floats as double
+ //the reason for not doing it the "proper" way is that QMetaType::Float's value is 135,
+ //which can't be handled by qCanConvertMatrix
+ //In addition QVariant::Type doesn't have a Float value, so we're using QMetaType::Float
+ const uint currentType = ((d.type == QMetaType::Float) ? QVariant::Double : d.type);
+ if (uint(t) == uint(QMetaType::Float)) t = QVariant::Double;
+
+ if (currentType == uint(t))
return true;
- if (d.type > QVariant::LastCoreType || t > QVariant::LastCoreType) {
+ if (currentType > QVariant::LastCoreType || t > QVariant::LastCoreType) {
switch (uint(t)) {
case QVariant::Int:
- return d.type == QVariant::KeySequence
- || d.type == QMetaType::ULong
- || d.type == QMetaType::Long
- || d.type == QMetaType::UShort
- || d.type == QMetaType::UChar
- || d.type == QMetaType::Char
- || d.type == QMetaType::Short;
+ return currentType == QVariant::KeySequence
+ || currentType == QMetaType::ULong
+ || currentType == QMetaType::Long
+ || currentType == QMetaType::UShort
+ || currentType == QMetaType::UChar
+ || currentType == QMetaType::Char
+ || currentType == QMetaType::Short;
case QVariant::Image:
- return d.type == QVariant::Pixmap || d.type == QVariant::Bitmap;
+ return currentType == QVariant::Pixmap || currentType == QVariant::Bitmap;
case QVariant::Pixmap:
- return d.type == QVariant::Image || d.type == QVariant::Bitmap
- || d.type == QVariant::Brush;
+ return currentType == QVariant::Image || currentType == QVariant::Bitmap
+ || currentType == QVariant::Brush;
case QVariant::Bitmap:
- return d.type == QVariant::Pixmap || d.type == QVariant::Image;
+ return currentType == QVariant::Pixmap || currentType == QVariant::Image;
case QVariant::ByteArray:
- return d.type == QVariant::Color;
+ return currentType == QVariant::Color;
case QVariant::String:
- return d.type == QVariant::KeySequence || d.type == QVariant::Font
- || d.type == QVariant::Color;
+ return currentType == QVariant::KeySequence || currentType == QVariant::Font
+ || currentType == QVariant::Color;
case QVariant::KeySequence:
- return d.type == QVariant::String || d.type == QVariant::Int;
+ return currentType == QVariant::String || currentType == QVariant::Int;
case QVariant::Font:
- return d.type == QVariant::String;
+ return currentType == QVariant::String;
case QVariant::Color:
- return d.type == QVariant::String || d.type == QVariant::ByteArray
- || d.type == QVariant::Brush;
+ return currentType == QVariant::String || currentType == QVariant::ByteArray
+ || currentType == QVariant::Brush;
case QVariant::Brush:
- return d.type == QVariant::Color || d.type == QVariant::Pixmap;
+ return currentType == QVariant::Color || currentType == QVariant::Pixmap;
case QMetaType::Long:
case QMetaType::Char:
case QMetaType::UChar:
case QMetaType::ULong:
case QMetaType::Short:
case QMetaType::UShort:
- case QMetaType::Float:
- return qCanConvertMatrix[QVariant::Int] & (1 << d.type) || d.type == QVariant::Int;
+ return qCanConvertMatrix[QVariant::Int] & (1 << currentType) || currentType == QVariant::Int;
default:
return false;
}
}
- if(t == String && d.type == StringList)
+ if(t == String && currentType == StringList)
return v_cast<QStringList>(&d)->count() == 1;
else
- return qCanConvertMatrix[t] & (1 << d.type);
+ return qCanConvertMatrix[t] & (1 << currentType);
}
/*!
@@ -2726,7 +2724,7 @@ bool QVariant::cmp(const QVariant &v) const
const void *QVariant::constData() const
{
- return constDataHelper(d);
+ return d.is_shared ? d.data.shared->ptr : reinterpret_cast<const void *>(&d.data.ptr);
}
/*!
@@ -2739,7 +2737,7 @@ const void *QVariant::constData() const
void* QVariant::data()
{
detach();
- return const_cast<void *>(constDataHelper(d));
+ return const_cast<void *>(constData());
}
diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h
index d7b7e3c..d73fcbc 100644
--- a/src/corelib/kernel/qvariant.h
+++ b/src/corelib/kernel/qvariant.h
@@ -181,6 +181,7 @@ class Q_CORE_EXPORT QVariant
QVariant(qulonglong ull);
QVariant(bool b);
QVariant(double d);
+ QVariant(float f) { d.is_null = false; d.type = QMetaType::Float; d.data.f = f; }
#ifndef QT_NO_CAST_FROM_ASCII
QT_ASCII_CAST_WARN_CONSTRUCTOR QVariant(const char *str);
#endif
@@ -349,6 +350,7 @@ class Q_CORE_EXPORT QVariant
uint u;
bool b;
double d;
+ float f;
qlonglong ll;
qulonglong ull;
void *ptr;
@@ -443,7 +445,18 @@ inline QVariant qVariantFromValue(const QVariant &t) { return t; }
template <typename T>
inline void qVariantSetValue(QVariant &v, const T &t)
{
- v = QVariant(qMetaTypeId<T>(reinterpret_cast<T *>(0)), &t);
+ //if possible we reuse the current QVariant private
+ const int type = qMetaTypeId<T>(reinterpret_cast<T *>(0));
+ QVariant::Private &d = v.data_ptr();
+ if (type <= int(QVariant::Char) || (type == d.type && v.isDetached())) {
+ d.type = type;
+ T *old = reinterpret_cast<T*>(d.is_shared ? d.data.shared->ptr : &d.data.ptr);
+ if (QTypeInfo<T>::isComplex)
+ old->~T();
+ new (old) T(t); //call the copy constructor
+ } else {
+ v = QVariant(type, &t);
+ }
}
inline QVariant::QVariant() {}
diff --git a/src/corelib/kernel/qvariant_p.h b/src/corelib/kernel/qvariant_p.h
index 727a390..033b760 100644
--- a/src/corelib/kernel/qvariant_p.h
+++ b/src/corelib/kernel/qvariant_p.h
@@ -91,13 +91,36 @@ inline T *v_cast(QVariant::Private *d, T * = 0)
#endif
+
+//a simple template that avoids to allocate 2 memory chunks when creating a QVariant
+template <class T> class QVariantPrivateSharedEx : public QVariant::PrivateShared
+{
+public:
+ QVariantPrivateSharedEx() : QVariant::PrivateShared(&m_t) { }
+ QVariantPrivateSharedEx(const T&t) : QVariant::PrivateShared(&m_t), m_t(t) { }
+
+private:
+ T m_t;
+};
+
// constructs a new variant if copy is 0, otherwise copy-constructs
template <class T>
+inline void v_construct(QVariant::Private *x, const T &t)
+{
+ if (sizeof(T) > sizeof(QVariant::Private::Data)) {
+ x->data.shared = new QVariantPrivateSharedEx<T>(t);
+ x->is_shared = true;
+ } else {
+ new (&x->data.ptr) T(t);
+ }
+}
+
+template <class T>
inline void v_construct(QVariant::Private *x, const void *copy, T * = 0)
{
if (sizeof(T) > sizeof(QVariant::Private::Data)) {
- x->data.shared = copy ? new QVariant::PrivateShared(new T(*static_cast<const T *>(copy)))
- : new QVariant::PrivateShared(new T);
+ x->data.shared = copy ? new QVariantPrivateSharedEx<T>(*static_cast<const T *>(copy))
+ : new QVariantPrivateSharedEx<T>;
x->is_shared = true;
} else {
if (copy)
@@ -111,12 +134,15 @@ inline void v_construct(QVariant::Private *x, const void *copy, T * = 0)
template <class T>
inline void v_clear(QVariant::Private *d, T* = 0)
{
+
if (sizeof(T) > sizeof(QVariant::Private::Data)) {
- delete v_cast<T>(d);
- delete d->data.shared;
+ //now we need to cast
+ //because QVariant::PrivateShared doesn't have a virtual destructor
+ delete static_cast<QVariantPrivateSharedEx<T>*>(d->data.shared);
} else {
v_cast<T>(d)->~T();
}
+
}
QT_END_NAMESPACE
diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp
index f602821..8f1c698 100644
--- a/src/corelib/thread/qthread_unix.cpp
+++ b/src/corelib/thread/qthread_unix.cpp
@@ -180,8 +180,7 @@ void *QThreadPrivate::start(void *arg)
data->quitNow = false;
// ### TODO: allow the user to create a custom event dispatcher
- if (QCoreApplication::instance())
- createEventDispatcher(data);
+ createEventDispatcher(data);
emit thr->started();
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
diff --git a/src/corelib/thread/qthread_win.cpp b/src/corelib/thread/qthread_win.cpp
index 27193c6..7094e3d 100644
--- a/src/corelib/thread/qthread_win.cpp
+++ b/src/corelib/thread/qthread_win.cpp
@@ -292,8 +292,7 @@ unsigned int __stdcall QThreadPrivate::start(void *arg)
data->quitNow = false;
// ### TODO: allow the user to create a custom event dispatcher
- if (QCoreApplication::instance())
- createEventDispatcher(data);
+ createEventDispatcher(data);
#if !defined(QT_NO_DEBUG) && defined(Q_CC_MSVC) && !defined(Q_OS_WINCE)
// sets the name of the current thread.
diff --git a/src/corelib/tools/qbytearraymatcher.cpp b/src/corelib/tools/qbytearraymatcher.cpp
index cd4cf90..211d190 100644
--- a/src/corelib/tools/qbytearraymatcher.cpp
+++ b/src/corelib/tools/qbytearraymatcher.cpp
@@ -120,6 +120,7 @@ QByteArrayMatcher::QByteArrayMatcher()
: d(0)
{
p.p = 0;
+ p.l = 0;
qMemSet(p.q_skiptable, 0, sizeof(p.q_skiptable));
}
@@ -170,7 +171,7 @@ QByteArrayMatcher::~QByteArrayMatcher()
QByteArrayMatcher &QByteArrayMatcher::operator=(const QByteArrayMatcher &other)
{
q_pattern = other.q_pattern;
- qMemCopy(p.q_skiptable, other.p.q_skiptable, sizeof(p.q_skiptable));
+ qMemCopy(&p, &other.p, sizeof(p));
return *this;
}
diff --git a/src/corelib/tools/qbytearraymatcher.h b/src/corelib/tools/qbytearraymatcher.h
index d7f2366..633e92c 100644
--- a/src/corelib/tools/qbytearraymatcher.h
+++ b/src/corelib/tools/qbytearraymatcher.h
@@ -67,7 +67,12 @@ public:
int indexIn(const QByteArray &ba, int from = 0) const;
int indexIn(const char *str, int len, int from = 0) const;
- inline QByteArray pattern() const { return q_pattern; }
+ inline QByteArray pattern() const
+ {
+ if (q_pattern.isNull())
+ return QByteArray((const char*)p.p, p.l);
+ return q_pattern;
+ }
private:
QByteArrayMatcherPrivate *d;
diff --git a/src/corelib/tools/qhash.cpp b/src/corelib/tools/qhash.cpp
index 540f43d..21d98b5 100644
--- a/src/corelib/tools/qhash.cpp
+++ b/src/corelib/tools/qhash.cpp
@@ -91,7 +91,7 @@ static uint hash(const QChar *p, int n)
uint qHash(const QByteArray &key)
{
- return hash(reinterpret_cast<const uchar *>(key.data()), key.size());
+ return hash(reinterpret_cast<const uchar *>(key.constData()), key.size());
}
uint qHash(const QString &key)
@@ -107,7 +107,7 @@ uint qHash(const QStringRef &key)
uint qHash(const QBitArray &bitArray)
{
int m = bitArray.d.size() - 1;
- uint result = hash(reinterpret_cast<const uchar *>(bitArray.d.data()), qMax(0, m));
+ uint result = hash(reinterpret_cast<const uchar *>(bitArray.d.constData()), qMax(0, m));
// deal with the last 0 to 7 bits manually, because we can't trust that
// the padding is initialized to 0 in bitArray.d
diff --git a/src/corelib/tools/qlistdata.cpp b/src/corelib/tools/qlistdata.cpp
index d7c39a7..d40b6b6 100644
--- a/src/corelib/tools/qlistdata.cpp
+++ b/src/corelib/tools/qlistdata.cpp
@@ -764,6 +764,10 @@ void **QListData::erase(void **xi)
This function requires the value type to have an implementation of
\c operator==().
+ Note that QList uses 0-based indexes, just like C++ arrays. Negative
+ indexes are not supported with the exception of the value mentioned
+ above.
+
\sa lastIndexOf(), contains()
*/
@@ -780,6 +784,10 @@ void **QListData::erase(void **xi)
This function requires the value type to have an implementation of
\c operator==().
+ Note that QList uses 0-based indexes, just like C++ arrays. Negative
+ indexes are not supported with the exception of the value mentioned
+ above.
+
\sa indexOf()
*/
diff --git a/src/corelib/tools/qpoint.cpp b/src/corelib/tools/qpoint.cpp
index feea473..5cc71d6 100644
--- a/src/corelib/tools/qpoint.cpp
+++ b/src/corelib/tools/qpoint.cpp
@@ -442,6 +442,19 @@ QDebug operator<<(QDebug d, const QPointF &p)
otherwise returns false.
*/
+
+/*!
+ Returns the sum of the absolute values of x() and y(),
+ traditionally known as the "Manhattan length" of the vector from
+ the origin to the point.
+
+ \sa QPoint::manhattanLength()
+*/
+qreal QPointF::manhattanLength() const
+{
+ return qAbs(x())+qAbs(y());
+}
+
/*!
\fn qreal QPointF::x() const
diff --git a/src/corelib/tools/qpoint.h b/src/corelib/tools/qpoint.h
index 1dab7e2..e716bf7 100644
--- a/src/corelib/tools/qpoint.h
+++ b/src/corelib/tools/qpoint.h
@@ -192,6 +192,8 @@ public:
QPointF(const QPoint &p);
QPointF(qreal xpos, qreal ypos);
+ qreal manhattanLength() const;
+
bool isNull() const;
qreal x() const;
diff --git a/src/corelib/tools/qsize.h b/src/corelib/tools/qsize.h
index 57c55ca..34a6c99 100644
--- a/src/corelib/tools/qsize.h
+++ b/src/corelib/tools/qsize.h
@@ -171,14 +171,14 @@ inline const QSize operator*(qreal c, const QSize &s)
inline QSize &QSize::operator/=(qreal c)
{
- Q_ASSERT(!qFuzzyCompare(c + 1, 1));
+ Q_ASSERT(!qFuzzyIsNull(c));
wd = qRound(wd/c); ht = qRound(ht/c);
return *this;
}
inline const QSize operator/(const QSize &s, qreal c)
{
- Q_ASSERT(!qFuzzyCompare(c + 1, 1));
+ Q_ASSERT(!qFuzzyIsNull(c));
return QSize(qRound(s.wd/c), qRound(s.ht/c));
}
@@ -327,14 +327,14 @@ inline const QSizeF operator*(qreal c, const QSizeF &s)
inline QSizeF &QSizeF::operator/=(qreal c)
{
- Q_ASSERT(!qFuzzyCompare(c + 1, 1));
+ Q_ASSERT(!qFuzzyIsNull(c));
wd = wd/c; ht = ht/c;
return *this;
}
inline const QSizeF operator/(const QSizeF &s, qreal c)
{
- Q_ASSERT(!qFuzzyCompare(c + 1, 1));
+ Q_ASSERT(!qFuzzyIsNull(c));
return QSizeF(s.wd/c, s.ht/c);
}
diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp
index 9c637ac..375d672 100644
--- a/src/corelib/tools/qstring.cpp
+++ b/src/corelib/tools/qstring.cpp
@@ -579,7 +579,7 @@ const QString::Null QString::null = { };
'\\0' character for a null string (\e not a null pointer), and
QString() compares equal to QString(""). We recommend that you
always use the isEmpty() function and avoid isNull().
-
+
\section1 Argument Formats
In member functions where an argument \e format can be specified
@@ -1433,7 +1433,7 @@ QString &QString::append(QChar ch)
truncated at the specified \a position.
\snippet doc/src/snippets/qstring/main.cpp 37
-
+
\sa insert(), replace()
*/
QString &QString::remove(int pos, int len)
@@ -1552,7 +1552,7 @@ QString &QString::replace(int pos, int len, const QChar *unicode, int size)
return *this;
if (pos + len > d->size)
len = d->size - pos;
-
+
uint index = pos;
replace_helper(&index, 1, len, unicode, size);
return *this;
@@ -1561,15 +1561,13 @@ QString &QString::replace(int pos, int len, const QChar *unicode, int size)
/*!
\fn QString &QString::replace(int position, int n, QChar after)
\overload replace()
-
+
Replaces \a n characters beginning at index \a position with the
character \a after and returns a reference to this string.
*/
QString &QString::replace(int pos, int len, QChar after)
{
- uint index = pos;
- replace_helper(&index, 1, len, &after, 1);
- return *this;
+ return replace(pos, len, &after, 1);
}
/*!
@@ -1602,7 +1600,7 @@ void QString::replace_helper(uint *indices, int nIndices, int blen, const QChar
{
if (blen == alen) {
detach();
- for (int i = 0; i < nIndices; ++i)
+ for (int i = 0; i < nIndices; ++i)
memcpy(d->data + indices[i], after, alen * sizeof(QChar));
} else if (alen < blen) {
detach();
@@ -1633,7 +1631,7 @@ void QString::replace_helper(uint *indices, int nIndices, int blen, const QChar
int newLen = d->size + adjust;
int moveend = d->size;
resize(newLen);
-
+
while (nIndices) {
--nIndices;
int movestart = indices[nIndices] + blen;
@@ -1685,7 +1683,7 @@ QString &QString::replace(const QChar *before, int blen,
memcpy(copy, before, blen*sizeof(QChar));
b = copy;
}
-
+
QStringMatcher matcher(b, blen, cs);
int index = 0;
@@ -1712,7 +1710,7 @@ QString &QString::replace(const QChar *before, int blen,
// index has to be adjusted in case we get back into the loop above.
index += pos*(alen-blen);
}
-
+
if (a != after)
::free((QChar *)a);
if (b != before)
@@ -2250,7 +2248,7 @@ int QString::indexOf(const QLatin1String &str, int from, Qt::CaseSensitivity cs)
QVarLengthArray<ushort> s(len);
for (int i = 0; i < len; ++i)
s[i] = str.latin1()[i];
-
+
return qFindString(unicode(), length(), from, (const QChar *)s.data(), len, cs);
}
@@ -2346,7 +2344,7 @@ static int lastIndexOfHelper(const ushort *haystack, int from, const ushort *nee
/*
See indexOf() for explanations.
*/
-
+
const ushort *end = haystack;
haystack += from;
const int sl_minus_1 = sl-1;
@@ -2408,7 +2406,7 @@ int QString::lastIndexOf(const QString &str, int from, Qt::CaseSensitivity cs) c
const int sl = str.d->size;
if (sl == 1)
return lastIndexOf(QChar(str.d->data[0]), from, cs);
-
+
const int l = d->size;
if (from < 0)
from += l;
@@ -2446,7 +2444,7 @@ int QString::lastIndexOf(const QLatin1String &str, int from, Qt::CaseSensitivity
const int sl = qstrlen(str.latin1());
if (sl == 1)
return lastIndexOf(QLatin1Char(str.latin1()[0]), from, cs);
-
+
const int l = d->size;
if (from < 0)
from += l;
@@ -5995,7 +5993,7 @@ QString QString::normalized(QString::NormalizationForm mode, QChar::UnicodeVersi
}
if (simple)
return *this;
-
+
QString s = *this;
if (version != CURRENT_VERSION) {
for (int i = 0; i < NumNormalizationCorrections; ++i) {
@@ -6207,7 +6205,7 @@ static QString replaceArgEscapes(const QString &s, const ArgEscapeData &d, int f
/*!
Returns a copy of this string with the lowest numbered place marker
replaced by string \a a, i.e., \c %1, \c %2, ..., \c %99.
-
+
\a fieldWidth specifies the minimum amount of space that argument \a
a shall occupy. If \a a requires less space than \a fieldWidth, it
is padded to \a fieldWidth with character \a fillChar. A positive
@@ -6819,7 +6817,7 @@ void QString::updateProperties() const
Appends the given \a ch character onto the end of this string.
*/
-/*!
+/*!
\fn std::string QString::toStdString() const
Returns a std::string object with the data contained in this
diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h
index 6bea03b..3fd52ee 100644
--- a/src/corelib/tools/qvector.h
+++ b/src/corelib/tools/qvector.h
@@ -98,6 +98,8 @@ struct QVectorTypedData
T array[1];
};
+class QRegion;
+
template <typename T>
class QVector
{
diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
index 8c701f5..2c27381 100644
--- a/src/dbus/qdbusintegrator.cpp
+++ b/src/dbus/qdbusintegrator.cpp
@@ -1102,7 +1102,7 @@ void QDBusConnectionPrivate::socketWrite(int fd)
}
for (int i = 0; i < pendingWatches.size(); ++i)
- if (!q_dbus_watch_handle(pendingWatches[i], DBUS_WATCH_READABLE))
+ if (!q_dbus_watch_handle(pendingWatches[i], DBUS_WATCH_WRITABLE))
qDebug("OUT OF MEM");
}
diff --git a/src/gui/accessible/qaccessible_mac.mm b/src/gui/accessible/qaccessible_mac.mm
index b6412c2..68efb8f 100644
--- a/src/gui/accessible/qaccessible_mac.mm
+++ b/src/gui/accessible/qaccessible_mac.mm
@@ -72,55 +72,36 @@ typedef NSString * const QAXRoleType;
#define QAXApplicationRole NSAccessibilityApplicationRole
#define QAXButtonRole NSAccessibilityButtonRole
#define QAXCancelAction NSAccessibilityCancelAction
-#define QAXCancelAction NSAccessibilityCancelAction
#define QAXCheckBoxRole NSAccessibilityCheckBoxRole
#define QAXChildrenAttribute NSAccessibilityChildrenAttribute
-#define QAXChildrenAttribute NSAccessibilityChildrenAttribute
-#define QAXChildrenAttribute NSAccessibilityChildrenAttribute
#define QAXCloseButtonAttribute NSAccessibilityCloseButtonAttribute
#define QAXCloseButtonAttribute NSAccessibilityCloseButtonAttribute
#define QAXColumnRole NSAccessibilityColumnRole
#define QAXConfirmAction NSAccessibilityConfirmAction
-#define QAXConfirmAction NSAccessibilityConfirmAction
#define QAXContentsAttribute NSAccessibilityContentsAttribute
-#define QAXContentsAttribute NSAccessibilityContentsAttribute
-#define QAXDecrementAction NSAccessibilityDecrementAction
#define QAXDecrementAction NSAccessibilityDecrementAction
#define QAXDecrementArrowSubrole NSAccessibilityDecrementArrowSubrole
#define QAXDecrementPageSubrole NSAccessibilityDecrementPageSubrole
#define QAXDescriptionAttribute NSAccessibilityDescriptionAttribute
-#define QAXDescriptionAttribute NSAccessibilityDescriptionAttribute
-#define QAXDescriptionAttribute NSAccessibilityDescriptionAttribute
-#define QAXDescriptionAttribute NSAccessibilityDescriptionAttribute
-#define QAXEnabledAttribute NSAccessibilityEnabledAttribute
#define QAXEnabledAttribute NSAccessibilityEnabledAttribute
#define QAXExpandedAttribute NSAccessibilityExpandedAttribute
#define QAXFocusedAttribute NSAccessibilityFocusedAttribute
-#define QAXFocusedAttribute NSAccessibilityFocusedAttribute
-#define QAXFocusedAttribute NSAccessibilityFocusedAttribute
#define QAXFocusedUIElementChangedNotification NSAccessibilityFocusedUIElementChangedNotification
#define QAXFocusedWindowChangedNotification NSAccessibilityFocusedWindowChangedNotification
#define QAXGroupRole NSAccessibilityGroupRole
#define QAXGrowAreaAttribute NSAccessibilityGrowAreaAttribute
-#define QAXGrowAreaAttribute NSAccessibilityGrowAreaAttribute
#define QAXGrowAreaRole NSAccessibilityGrowAreaRole
#define QAXHelpAttribute NSAccessibilityHelpAttribute
-#define QAXHelpAttribute NSAccessibilityHelpAttribute
-#define QAXHelpAttribute NSAccessibilityHelpAttribute
#define QAXHorizontalOrientationValue NSAccessibilityHorizontalOrientationValue
#define QAXHorizontalScrollBarAttribute NSAccessibilityHorizontalScrollBarAttribute
-#define QAXHorizontalScrollBarAttribute NSAccessibilityHorizontalScrollBarAttribute
-#define QAXIncrementAction NSAccessibilityIncrementAction
#define QAXIncrementAction NSAccessibilityIncrementAction
#define QAXIncrementArrowSubrole NSAccessibilityIncrementArrowSubrole
#define QAXIncrementPageSubrole NSAccessibilityIncrementPageSubrole
#define QAXIncrementorRole NSAccessibilityIncrementorRole
#define QAXLinkedUIElementsAttribute NSAccessibilityLinkedUIElementsAttribute
-#define QAXLinkedUIElementsAttribute NSAccessibilityLinkedUIElementsAttribute
#define QAXListRole NSAccessibilityListRole
#define QAXMainAttribute NSAccessibilityMainAttribute
#define QAXMaxValueAttribute NSAccessibilityMaxValueAttribute
-#define QAXMaxValueAttribute NSAccessibilityMaxValueAttribute
#define QAXMenuBarRole NSAccessibilityMenuBarRole
#define QAXMenuButtonRole NSAccessibilityMenuButtonRole
#define QAXMenuClosedNotification NSAccessibilityMenuClosedNotification
@@ -128,151 +109,90 @@ typedef NSString * const QAXRoleType;
#define QAXMenuOpenedNotification NSAccessibilityMenuOpenedNotification
#define QAXMenuRole NSAccessibilityMenuRole
#define QAXMinValueAttribute NSAccessibilityMinValueAttribute
-#define QAXMinValueAttribute NSAccessibilityMinValueAttribute
#define QAXMinimizeButtonAttribute NSAccessibilityMinimizeButtonAttribute
-#define QAXMinimizeButtonAttribute NSAccessibilityMinimizeButtonAttribute
-#define QAXMinimizedAttribute NSAccessibilityMinimizedAttribute
#define QAXMinimizedAttribute NSAccessibilityMinimizedAttribute
#define QAXNextContentsAttribute NSAccessibilityNextContentsAttribute
-#define QAXNextContentsAttribute NSAccessibilityNextContentsAttribute
-#define QAXOrientationAttribute NSAccessibilityOrientationAttribute
-#define QAXOrientationAttribute NSAccessibilityOrientationAttribute
#define QAXOrientationAttribute NSAccessibilityOrientationAttribute
#define QAXParentAttribute NSAccessibilityParentAttribute
#define QAXPickAction NSAccessibilityPickAction
-#define QAXPickAction NSAccessibilityPickAction
#define QAXPopUpButtonRole NSAccessibilityPopUpButtonRole
#define QAXPositionAttribute NSAccessibilityPositionAttribute
-#define QAXPositionAttribute NSAccessibilityPositionAttribute
-#define QAXPressAction NSAccessibilityPressAction
#define QAXPressAction NSAccessibilityPressAction
#define QAXPreviousContentsAttribute NSAccessibilityPreviousContentsAttribute
-#define QAXPreviousContentsAttribute NSAccessibilityPreviousContentsAttribute
-#define QAXPreviousContentsAttribute NSAccessibilityPreviousContentsAttribute
#define QAXProgressIndicatorRole NSAccessibilityProgressIndicatorRole
#define QAXRadioButtonRole NSAccessibilityRadioButtonRole
#define QAXRoleAttribute NSAccessibilityRoleAttribute
-#define QAXRoleAttribute NSAccessibilityRoleAttribute
#define QAXRoleDescriptionAttribute NSAccessibilityRoleDescriptionAttribute
#define QAXRowRole NSAccessibilityRowRole
#define QAXRowsAttribute NSAccessibilityRowsAttribute
-#define QAXRowsAttribute NSAccessibilityRowsAttribute
-#define QAXScrollAreaRole NSAccessibilityScrollAreaRole
-#define QAXScrollAreaRole NSAccessibilityScrollAreaRole
#define QAXScrollAreaRole NSAccessibilityScrollAreaRole
#define QAXScrollBarRole NSAccessibilityScrollBarRole
#define QAXSelectedAttribute NSAccessibilitySelectedAttribute
#define QAXSelectedChildrenAttribute NSAccessibilitySelectedChildrenAttribute
#define QAXSelectedRowsAttribute NSAccessibilitySelectedRowsAttribute
-#define QAXSelectedRowsAttribute NSAccessibilitySelectedRowsAttribute
-#define QAXSizeAttribute NSAccessibilitySizeAttribute
#define QAXSizeAttribute NSAccessibilitySizeAttribute
#define QAXSliderRole NSAccessibilitySliderRole
#define QAXSplitGroupRole NSAccessibilitySplitGroupRole
#define QAXSplitterRole NSAccessibilitySplitterRole
-#define QAXSplitterRole NSAccessibilitySplitterRole
-#define QAXSplitterRole NSAccessibilitySplitterRole
-#define QAXSplittersAttribute NSAccessibilitySplittersAttribute
#define QAXSplittersAttribute NSAccessibilitySplittersAttribute
#define QAXStaticTextRole NSAccessibilityStaticTextRole
-#define QAXStaticTextRole NSAccessibilityStaticTextRole
-#define QAXSubroleAttribute NSAccessibilitySubroleAttribute
#define QAXSubroleAttribute NSAccessibilitySubroleAttribute
#define QAXSubroleAttribute NSAccessibilitySubroleAttribute
#define QAXTabGroupRole NSAccessibilityTabGroupRole
-#define QAXTabGroupRole NSAccessibilityTabGroupRole
#define QAXTableRole NSAccessibilityTableRole
#define QAXTabsAttribute NSAccessibilityTabsAttribute
-#define QAXTabsAttribute NSAccessibilityTabsAttribute
#define QAXTextFieldRole NSAccessibilityTextFieldRole
-#define QAXTextFieldRole NSAccessibilityTextFieldRole
-#define QAXTitleAttribute NSAccessibilityTitleAttribute
-#define QAXTitleAttribute NSAccessibilityTitleAttribute
#define QAXTitleAttribute NSAccessibilityTitleAttribute
-#define QAXTitleAttribute NSAccessibilityTitleAttribute
-#define QAXTitleUIElementAttribute NSAccessibilityTitleUIElementAttribute
#define QAXTitleUIElementAttribute NSAccessibilityTitleUIElementAttribute
#define QAXToolbarButtonAttribute NSAccessibilityToolbarButtonAttribute
-#define QAXToolbarButtonAttribute NSAccessibilityToolbarButtonAttribute
#define QAXToolbarRole NSAccessibilityToolbarRole
#define QAXTopLevelUIElementAttribute NSAccessibilityTopLevelUIElementAttribute
-#define QAXTopLevelUIElementAttribute NSAccessibilityTopLevelUIElementAttribute
-#define QAXTopLevelUIElementAttribute NSAccessibilityTopLevelUIElementAttribute
-#define QAXUnknownRole NSAccessibilityUnknownRole
#define QAXUnknownRole NSAccessibilityUnknownRole
#define QAXValueAttribute NSAccessibilityValueAttribute
-#define QAXValueAttribute NSAccessibilityValueAttribute
-#define QAXValueAttribute NSAccessibilityValueAttribute
-#define QAXValueAttribute NSAccessibilityValueAttribute
#define QAXValueChangedNotification NSAccessibilityValueChangedNotification
#define QAXValueIndicatorRole NSAccessibilityValueIndicatorRole
#define QAXVerticalOrientationValue NSAccessibilityVerticalOrientationValue
#define QAXVerticalScrollBarAttribute NSAccessibilityVerticalScrollBarAttribute
-#define QAXVerticalScrollBarAttribute NSAccessibilityVerticalScrollBarAttribute
#define QAXVisibleRowsAttribute NSAccessibilityVisibleRowsAttribute
-#define QAXVisibleRowsAttribute NSAccessibilityVisibleRowsAttribute
-#define QAXWindowAttribute NSAccessibilityWindowAttribute
-#define QAXWindowAttribute NSAccessibilityWindowAttribute
#define QAXWindowAttribute NSAccessibilityWindowAttribute
#define QAXWindowCreatedNotification NSAccessibilityWindowCreatedNotification
#define QAXWindowMovedNotification NSAccessibilityWindowMovedNotification
#define QAXWindowRole NSAccessibilityWindowRole
#define QAXZoomButtonAttribute NSAccessibilityZoomButtonAttribute
-#define QAXZoomButtonAttribute NSAccessibilityZoomButtonAttribute
#else
typedef CFStringRef const QAXRoleType;
#define QAXApplicationRole kAXApplicationRole
#define QAXButtonRole kAXButtonRole
#define QAXCancelAction kAXCancelAction
-#define QAXCancelAction kAXCancelAction
#define QAXCheckBoxRole kAXCheckBoxRole
#define QAXChildrenAttribute kAXChildrenAttribute
-#define QAXChildrenAttribute kAXChildrenAttribute
-#define QAXChildrenAttribute kAXChildrenAttribute
-#define QAXCloseButtonAttribute kAXCloseButtonAttribute
#define QAXCloseButtonAttribute kAXCloseButtonAttribute
#define QAXColumnRole kAXColumnRole
#define QAXConfirmAction kAXConfirmAction
-#define QAXConfirmAction kAXConfirmAction
#define QAXContentsAttribute kAXContentsAttribute
-#define QAXContentsAttribute kAXContentsAttribute
-#define QAXDecrementAction kAXDecrementAction
#define QAXDecrementAction kAXDecrementAction
#define QAXDecrementArrowSubrole kAXDecrementArrowSubrole
#define QAXDecrementPageSubrole kAXDecrementPageSubrole
#define QAXDescriptionAttribute kAXDescriptionAttribute
-#define QAXDescriptionAttribute kAXDescriptionAttribute
-#define QAXDescriptionAttribute kAXDescriptionAttribute
-#define QAXDescriptionAttribute kAXDescriptionAttribute
-#define QAXEnabledAttribute kAXEnabledAttribute
#define QAXEnabledAttribute kAXEnabledAttribute
#define QAXExpandedAttribute kAXExpandedAttribute
#define QAXFocusedAttribute kAXFocusedAttribute
-#define QAXFocusedAttribute kAXFocusedAttribute
-#define QAXFocusedAttribute kAXFocusedAttribute
#define QAXFocusedUIElementChangedNotification kAXFocusedUIElementChangedNotification
#define QAXFocusedWindowChangedNotification kAXFocusedWindowChangedNotification
#define QAXGroupRole kAXGroupRole
#define QAXGrowAreaAttribute kAXGrowAreaAttribute
-#define QAXGrowAreaAttribute kAXGrowAreaAttribute
#define QAXGrowAreaRole kAXGrowAreaRole
#define QAXHelpAttribute kAXHelpAttribute
-#define QAXHelpAttribute kAXHelpAttribute
-#define QAXHelpAttribute kAXHelpAttribute
#define QAXHorizontalOrientationValue kAXHorizontalOrientationValue
#define QAXHorizontalScrollBarAttribute kAXHorizontalScrollBarAttribute
-#define QAXHorizontalScrollBarAttribute kAXHorizontalScrollBarAttribute
-#define QAXIncrementAction kAXIncrementAction
#define QAXIncrementAction kAXIncrementAction
#define QAXIncrementArrowSubrole kAXIncrementArrowSubrole
#define QAXIncrementPageSubrole kAXIncrementPageSubrole
#define QAXIncrementorRole kAXIncrementorRole
#define QAXLinkedUIElementsAttribute kAXLinkedUIElementsAttribute
-#define QAXLinkedUIElementsAttribute kAXLinkedUIElementsAttribute
#define QAXListRole kAXListRole
#define QAXMainAttribute kAXMainAttribute
#define QAXMaxValueAttribute kAXMaxValueAttribute
-#define QAXMaxValueAttribute kAXMaxValueAttribute
#define QAXMenuBarRole kAXMenuBarRole
#define QAXMenuButtonRole kAXMenuButtonRole
#define QAXMenuClosedNotification kAXMenuClosedNotification
@@ -280,97 +200,55 @@ typedef CFStringRef const QAXRoleType;
#define QAXMenuOpenedNotification kAXMenuOpenedNotification
#define QAXMenuRole kAXMenuRole
#define QAXMinValueAttribute kAXMinValueAttribute
-#define QAXMinValueAttribute kAXMinValueAttribute
#define QAXMinimizeButtonAttribute kAXMinimizeButtonAttribute
-#define QAXMinimizeButtonAttribute kAXMinimizeButtonAttribute
-#define QAXMinimizedAttribute kAXMinimizedAttribute
#define QAXMinimizedAttribute kAXMinimizedAttribute
#define QAXNextContentsAttribute kAXNextContentsAttribute
-#define QAXNextContentsAttribute kAXNextContentsAttribute
-#define QAXOrientationAttribute kAXOrientationAttribute
-#define QAXOrientationAttribute kAXOrientationAttribute
#define QAXOrientationAttribute kAXOrientationAttribute
#define QAXParentAttribute kAXParentAttribute
#define QAXPickAction kAXPickAction
-#define QAXPickAction kAXPickAction
#define QAXPopUpButtonRole kAXPopUpButtonRole
#define QAXPositionAttribute kAXPositionAttribute
-#define QAXPositionAttribute kAXPositionAttribute
-#define QAXPressAction kAXPressAction
#define QAXPressAction kAXPressAction
#define QAXPreviousContentsAttribute kAXPreviousContentsAttribute
-#define QAXPreviousContentsAttribute kAXPreviousContentsAttribute
-#define QAXPreviousContentsAttribute kAXPreviousContentsAttribute
#define QAXProgressIndicatorRole kAXProgressIndicatorRole
#define QAXRadioButtonRole kAXRadioButtonRole
#define QAXRoleAttribute kAXRoleAttribute
-#define QAXRoleAttribute kAXRoleAttribute
#define QAXRoleDescriptionAttribute kAXRoleDescriptionAttribute
#define QAXRowRole kAXRowRole
#define QAXRowsAttribute kAXRowsAttribute
-#define QAXRowsAttribute kAXRowsAttribute
-#define QAXScrollAreaRole kAXScrollAreaRole
-#define QAXScrollAreaRole kAXScrollAreaRole
#define QAXScrollAreaRole kAXScrollAreaRole
#define QAXScrollBarRole kAXScrollBarRole
#define QAXSelectedAttribute kAXSelectedAttribute
#define QAXSelectedChildrenAttribute kAXSelectedChildrenAttribute
#define QAXSelectedRowsAttribute kAXSelectedRowsAttribute
-#define QAXSelectedRowsAttribute kAXSelectedRowsAttribute
-#define QAXSizeAttribute kAXSizeAttribute
#define QAXSizeAttribute kAXSizeAttribute
#define QAXSliderRole kAXSliderRole
#define QAXSplitGroupRole kAXSplitGroupRole
#define QAXSplitterRole kAXSplitterRole
-#define QAXSplitterRole kAXSplitterRole
-#define QAXSplitterRole kAXSplitterRole
-#define QAXSplittersAttribute kAXSplittersAttribute
#define QAXSplittersAttribute kAXSplittersAttribute
#define QAXStaticTextRole kAXStaticTextRole
-#define QAXStaticTextRole kAXStaticTextRole
-#define QAXSubroleAttribute kAXSubroleAttribute
#define QAXSubroleAttribute kAXSubroleAttribute
-#define QAXSubroleAttribute kAXSubroleAttribute
-#define QAXTabGroupRole kAXTabGroupRole
#define QAXTabGroupRole kAXTabGroupRole
#define QAXTableRole kAXTableRole
#define QAXTabsAttribute kAXTabsAttribute
-#define QAXTabsAttribute kAXTabsAttribute
-#define QAXTextFieldRole kAXTextFieldRole
#define QAXTextFieldRole kAXTextFieldRole
#define QAXTitleAttribute kAXTitleAttribute
-#define QAXTitleAttribute kAXTitleAttribute
-#define QAXTitleAttribute kAXTitleAttribute
-#define QAXTitleAttribute kAXTitleAttribute
#define QAXTitleUIElementAttribute kAXTitleUIElementAttribute
-#define QAXTitleUIElementAttribute kAXTitleUIElementAttribute
-#define QAXToolbarButtonAttribute kAXToolbarButtonAttribute
#define QAXToolbarButtonAttribute kAXToolbarButtonAttribute
#define QAXToolbarRole kAXToolbarRole
#define QAXTopLevelUIElementAttribute kAXTopLevelUIElementAttribute
-#define QAXTopLevelUIElementAttribute kAXTopLevelUIElementAttribute
-#define QAXTopLevelUIElementAttribute kAXTopLevelUIElementAttribute
#define QAXUnknownRole kAXUnknownRole
-#define QAXUnknownRole kAXUnknownRole
-#define QAXValueAttribute kAXValueAttribute
-#define QAXValueAttribute kAXValueAttribute
-#define QAXValueAttribute kAXValueAttribute
#define QAXValueAttribute kAXValueAttribute
#define QAXValueChangedNotification kAXValueChangedNotification
#define QAXValueIndicatorRole kAXValueIndicatorRole
#define QAXVerticalOrientationValue kAXVerticalOrientationValue
#define QAXVerticalScrollBarAttribute kAXVerticalScrollBarAttribute
-#define QAXVerticalScrollBarAttribute kAXVerticalScrollBarAttribute
-#define QAXVisibleRowsAttribute kAXVisibleRowsAttribute
#define QAXVisibleRowsAttribute kAXVisibleRowsAttribute
#define QAXWindowAttribute kAXWindowAttribute
-#define QAXWindowAttribute kAXWindowAttribute
-#define QAXWindowAttribute kAXWindowAttribute
#define QAXWindowCreatedNotification kAXWindowCreatedNotification
#define QAXWindowMovedNotification kAXWindowMovedNotification
#define QAXWindowRole kAXWindowRole
#define QAXZoomButtonAttribute kAXZoomButtonAttribute
-#define QAXZoomButtonAttribute kAXZoomButtonAttribute
#endif
diff --git a/src/gui/accessible/qaccessible_win.cpp b/src/gui/accessible/qaccessible_win.cpp
index 99cc272..f287874 100644
--- a/src/gui/accessible/qaccessible_win.cpp
+++ b/src/gui/accessible/qaccessible_win.cpp
@@ -50,7 +50,7 @@
#include <winuser.h>
#if !defined(WINABLEAPI)
-# if defined(Q_OS_WINCE)
+# if defined(Q_WS_WINCE)
# include <bldver.h>
# endif
# include <winable.h>
@@ -61,7 +61,7 @@
#include <comdef.h>
#endif
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
#include "qguifunctions_wince.h"
#endif
@@ -239,7 +239,7 @@ void QAccessible::updateAccessibility(QObject *o, int who, Event reason)
typedef void (WINAPI *PtrNotifyWinEvent)(DWORD, HWND, LONG, LONG);
-#if defined(Q_OS_WINCE) // ### TODO: check for NotifyWinEvent in CE 6.0
+#if defined(Q_WS_WINCE) // ### TODO: check for NotifyWinEvent in CE 6.0
// There is no user32.lib nor NotifyWinEvent for CE
return;
#else
@@ -289,7 +289,7 @@ void QAccessible::updateAccessibility(QObject *o, int who, Event reason)
if (reason != MenuCommand) { // MenuCommand is faked
ptrNotifyWinEvent(reason, w->winId(), OBJID_CLIENT, who);
}
-#endif // Q_OS_WINCE
+#endif // Q_WS_WINCE
}
void QAccessible::setRootObject(QObject *o)
diff --git a/src/gui/accessible/qaccessiblewidget.cpp b/src/gui/accessible/qaccessiblewidget.cpp
index 4b2b2ab..753ac57 100644
--- a/src/gui/accessible/qaccessiblewidget.cpp
+++ b/src/gui/accessible/qaccessiblewidget.cpp
@@ -131,9 +131,16 @@ QString Q_GUI_EXPORT qt_accHotKey(const QString &text)
int fa = 0;
QChar ac;
while ((fa = text.indexOf(QLatin1Char('&'), fa)) != -1) {
- if (fa == text.length() - 1 || text.at(fa+1) != QLatin1Char('&')) {
- ac = text.at(fa+1);
- break;
+ ++fa;
+ if (fa < text.length()) {
+ // ignore "&&"
+ if (text.at(fa) == QLatin1Char('&')) {
+ ++fa;
+ continue;
+ } else {
+ ac = text.at(fa);
+ break;
+ }
}
}
if (ac.isNull())
diff --git a/src/gui/dialogs/qcolordialog.cpp b/src/gui/dialogs/qcolordialog.cpp
index 3aa04f6..e06d14a 100644
--- a/src/gui/dialogs/qcolordialog.cpp
+++ b/src/gui/dialogs/qcolordialog.cpp
@@ -1066,7 +1066,7 @@ QColorShower::QColorShower(QColorDialog *parent)
QGridLayout *gl = new QGridLayout(this);
gl->setMargin(gl->spacing());
lab = new QColorShowLabel(this);
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
lab->setMinimumWidth(60);
#else
lab->setMinimumWidth(20);
@@ -1369,7 +1369,7 @@ void QColorDialogPrivate::init(const QColor &initial)
leftLay = 0;
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
smallDisplay = true;
const int lumSpace = 20;
#else
@@ -1409,7 +1409,7 @@ void QColorDialogPrivate::init(const QColor &initial)
leftLay->addWidget(lblBasicColors);
leftLay->addWidget(standard);
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
leftLay->addStretch();
#endif
diff --git a/src/gui/dialogs/qdialog.cpp b/src/gui/dialogs/qdialog.cpp
index 14d8162..b3f3c5b 100644
--- a/src/gui/dialogs/qdialog.cpp
+++ b/src/gui/dialogs/qdialog.cpp
@@ -55,7 +55,7 @@
#ifndef QT_NO_ACCESSIBILITY
#include "qaccessible.h"
#endif
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
#include "qt_windows.h"
#include "qmenubar.h"
#include "qpointer.h"
@@ -251,7 +251,7 @@ QDialog::QDialog(QWidget *parent, Qt::WindowFlags f)
: QWidget(*new QDialogPrivate, parent,
f | QFlag((f & Qt::WindowType_Mask) == 0 ? Qt::Dialog : 0))
{
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
if (!qt_wince_is_smartphone())
setWindowFlags(windowFlags() | Qt::WindowOkButtonHint | QFlag(qt_wince_is_mobile() ? 0 : Qt::WindowCancelButtonHint));
#endif
@@ -280,7 +280,7 @@ QDialog::QDialog(QWidget *parent, const char *name, bool modal, Qt::WindowFlags
QDialog::QDialog(QDialogPrivate &dd, QWidget *parent, Qt::WindowFlags f)
: QWidget(dd, parent, f | QFlag((f & Qt::WindowType_Mask) == 0 ? Qt::Dialog : 0))
{
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
if (!qt_wince_is_smartphone())
setWindowFlags(windowFlags() | Qt::WindowOkButtonHint | QFlag(qt_wince_is_mobile() ? 0 : Qt::WindowCancelButtonHint));
#endif
@@ -364,8 +364,8 @@ void QDialogPrivate::resetModalitySetByOpen()
resetModalityTo = -1;
}
-#ifdef Q_OS_WINCE
-#ifdef Q_OS_WINCE_WM
+#ifdef Q_WS_WINCE
+#ifdef Q_WS_WINCE_WM
void QDialogPrivate::_q_doneAction()
{
//Done...
@@ -473,7 +473,7 @@ int QDialog::exec()
setResult(0);
//On Windows Mobile we create an empty menu to hide the current menu
-#ifdef Q_OS_WINCE_WM
+#ifdef Q_WS_WINCE_WM
#ifndef QT_NO_MENUBAR
QMenuBar *menuBar = 0;
if (!findChild<QMenuBar *>())
@@ -484,7 +484,7 @@ int QDialog::exec()
connect(doneAction, SIGNAL(triggered()), this, SLOT(_q_doneAction()));
}
#endif //QT_NO_MENUBAR
-#endif //Q_OS_WINCE_WM
+#endif //Q_WS_WINCE_WM
show();
@@ -505,12 +505,12 @@ int QDialog::exec()
int res = result();
if (deleteOnClose)
delete this;
-#ifdef Q_OS_WINCE_WM
+#ifdef Q_WS_WINCE_WM
#ifndef QT_NO_MENUBAR
else if (menuBar)
delete menuBar;
#endif //QT_NO_MENUBAR
-#endif //Q_OS_WINCE_WM
+#endif //Q_WS_WINCE_WM
return res;
}
diff --git a/src/gui/dialogs/qdialog.h b/src/gui/dialogs/qdialog.h
index ee1997a..bd86251 100644
--- a/src/gui/dialogs/qdialog.h
+++ b/src/gui/dialogs/qdialog.h
@@ -107,7 +107,7 @@ public Q_SLOTS:
protected:
QDialog(QDialogPrivate &, QWidget *parent, Qt::WindowFlags f = 0);
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
bool event(QEvent *e);
#endif
void keyPressEvent(QKeyEvent *);
@@ -124,7 +124,7 @@ private:
Q_DECLARE_PRIVATE(QDialog)
Q_DISABLE_COPY(QDialog)
-#ifdef Q_OS_WINCE_WM
+#ifdef Q_WS_WINCE_WM
Q_PRIVATE_SLOT(d_func(), void _q_doneAction())
#endif
};
diff --git a/src/gui/dialogs/qdialog_p.h b/src/gui/dialogs/qdialog_p.h
index 81a7b19..e4f551a 100644
--- a/src/gui/dialogs/qdialog_p.h
+++ b/src/gui/dialogs/qdialog_p.h
@@ -93,7 +93,7 @@ public:
void hideDefault();
void resetModalitySetByOpen();
-#ifdef Q_OS_WINCE_WM
+#ifdef Q_WS_WINCE_WM
void _q_doneAction();
#endif
diff --git a/src/gui/dialogs/qerrormessage.cpp b/src/gui/dialogs/qerrormessage.cpp
index f79c6b2..ca39d31 100644
--- a/src/gui/dialogs/qerrormessage.cpp
+++ b/src/gui/dialogs/qerrormessage.cpp
@@ -61,7 +61,7 @@
#include <stdio.h>
#include <stdlib.h>
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
extern bool qt_wince_is_mobile(); //defined in qguifunctions_wince.cpp
extern bool qt_wince_is_high_dpi(); //defined in qguifunctions_wince.cpp
@@ -100,7 +100,7 @@ public:
QSize QErrorMessageTextView::minimumSizeHint() const
{
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
if (qt_wince_is_mobile())
if (qt_wince_is_high_dpi())
return QSize(200, 200);
@@ -115,7 +115,7 @@ QSize QErrorMessageTextView::minimumSizeHint() const
QSize QErrorMessageTextView::sizeHint() const
{
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
if (qt_wince_is_mobile())
if (qt_wince_is_high_dpi())
return QSize(400, 200);
@@ -240,7 +240,7 @@ QErrorMessage::QErrorMessage(QWidget * parent)
d->again->setChecked(true);
grid->addWidget(d->again, 1, 1, Qt::AlignTop);
d->ok = new QPushButton(this);
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
d->ok->setFixedSize(0,0);
#endif
connect(d->ok, SIGNAL(clicked()), this, SLOT(accept()));
diff --git a/src/gui/dialogs/qfiledialog.cpp b/src/gui/dialogs/qfiledialog.cpp
index 5131271..044aa43 100644
--- a/src/gui/dialogs/qfiledialog.cpp
+++ b/src/gui/dialogs/qfiledialog.cpp
@@ -58,7 +58,7 @@
#include <qdebug.h>
#include <qapplication.h>
#include <qstylepainter.h>
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
#include "ui_qfiledialog.h"
#else
#include "ui_qfiledialog_wince.h"
@@ -96,9 +96,8 @@ Q_GUI_EXPORT _qt_filedialog_save_filename_hook qt_filedialog_save_filename_hook
order to select one or many files or a directory.
The easiest way to create a QFileDialog is to use the static
- functions. On Windows, these static functions will call the native
- Windows file dialog, and on Mac OS X these static function will call
- the native Mac OS X file dialog.
+ functions. On Windows, Mac OS X, KDE and GNOME, these static functions will
+ call the native file dialog when possible.
\snippet doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp 0
@@ -216,7 +215,7 @@ Q_GUI_EXPORT _qt_filedialog_save_filename_hook qt_filedialog_save_filename_hook
are resolved.
\value DontConfirmOverwrite Don't ask for confirmation if an existing file is selected.
By default confirmation is requested.
- \value DontUseNativeDialog Don't use the native file dialog. By default on Mac OS X and Windows,
+ \value DontUseNativeDialog Don't use the native file dialog. By default on Mac OS X,
the native file dialog is used unless you use a subclass of QFileDialog that contains the
Q_OBJECT macro.
\value ReadOnly Indicates that the model is readonly.
@@ -693,7 +692,10 @@ void QFileDialog::setVisible(bool visible)
*/
void QFileDialogPrivate::_q_goToUrl(const QUrl &url)
{
- QModelIndex idx = model->index(url.toLocalFile());
+ //The shortcut in the side bar may have a parent that is not fetched yet (e.g. an hidden file)
+ //so we force the fetching
+ QFileSystemModelPrivate::QFileSystemNode *node = model->d_func()->node(url.toLocalFile(), true);
+ QModelIndex idx = model->d_func()->index(node);
_q_enterDirectory(idx);
}
@@ -957,25 +959,29 @@ void QFileDialog::setNameFilters(const QStringList &filters)
{
Q_D(QFileDialog);
d->defaultFileTypes = (filters == QStringList(QFileDialog::tr("All Files (*)")));
- d->nameFilters = filters;
+ QStringList cleanedFilters;
+ for (int i = 0; i < filters.count(); ++i) {
+ cleanedFilters << filters[i].simplified();
+ }
+ d->nameFilters = cleanedFilters;
if (d->nativeDialogInUse){
- d->setNameFilters_sys(filters);
+ d->setNameFilters_sys(cleanedFilters);
return;
}
d->qFileDialogUi->fileTypeCombo->clear();
- if (filters.isEmpty())
+ if (cleanedFilters.isEmpty())
return;
if (testOption(HideNameFilterDetails)) {
QStringList strippedFilters;
- for (int i = 0; i < filters.count(); ++i) {
- strippedFilters.append(filters[i].mid(0, filters[i].indexOf(QLatin1String(" ("))));
+ for (int i = 0; i < cleanedFilters.count(); ++i) {
+ strippedFilters.append(cleanedFilters[i].mid(0, cleanedFilters[i].indexOf(QLatin1String(" ("))));
}
d->qFileDialogUi->fileTypeCombo->addItems(strippedFilters);
} else {
- d->qFileDialogUi->fileTypeCombo->addItems(filters);
+ d->qFileDialogUi->fileTypeCombo->addItems(cleanedFilters);
}
d->_q_useNameFilter(0);
}
@@ -1433,6 +1439,8 @@ void QFileDialog::setIconProvider(QFileIconProvider *provider)
{
Q_D(QFileDialog);
d->model->setIconProvider(provider);
+ //It forces the refresh of all entries in the side bar, then we can get new icons
+ d->qFileDialogUi->sidebar->setUrls(d->qFileDialogUi->sidebar->urls());
}
/*!
@@ -1529,52 +1537,51 @@ extern QString qt_win_get_existing_directory(const QFileDialogArgs &args);
#endif
/*!
- This is a convenience static function that returns an existing file
- selected by the user. If the user presses Cancel, it returns a null
- string.
+ This is a convenience static function that returns an existing file
+ selected by the user. If the user presses Cancel, it returns a null string.
- \snippet doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp 8
+ \snippet doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp 8
- The function creates a modal file dialog with the given \a parent widget.
- If the parent is not 0, the dialog will be shown centered over the
- parent widget.
+ The function creates a modal file dialog with the given \a parent widget.
+ If \a parent is not 0, the dialog will be shown centered over the parent
+ widget.
- The file dialog's working directory will be set to \a dir. If \a
- dir includes a file name, the file will be selected. Only files
- that match the given \a filter are shown. The filter selected is
- set to \a selectedFilter. The parameters \a dir, \a
- selectedFilter, and \a filter may be empty strings. If you want
- multiple filters, separate them with ';;', for example:
+ The file dialog's working directory will be set to \a dir. If \a dir
+ includes a file name, the file will be selected. Only files that match the
+ given \a filter are shown. The filter selected is set to \a selectedFilter.
+ The parameters \a dir, \a selectedFilter, and \a filter may be empty
+ strings. If you want multiple filters, separate them with ';;', for
+ example:
- \code
+ \code
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
- \endcode
+ \endcode
- The \a options argument holds various
- options about how to run the dialog, see the QFileDialog::Option enum for
- more information on the flags you can pass.
+ The \a options argument holds various options about how to run the dialog,
+ see the QFileDialog::Option enum for more information on the flags you can
+ pass.
- The dialog's caption is set to \a caption. If \a caption is not
- specified then a default caption will be used.
+ The dialog's caption is set to \a caption. If \a caption is not specified
+ then a default caption will be used.
- Under Windows and Mac OS X, this static function will use the native
- file dialog and not a QFileDialog.
+ On Windows and Mac OS X, this static function will use the native file
+ dialog and not a QFileDialog.
- Note that on Windows the dialog will spin a blocking modal event loop
- that will not dispatch any QTimers, and if parent is not 0 then it will
- position the dialog just under the parent's title bar.
+ On Windows the dialog will spin a blocking modal event loop that will not
+ dispatch any QTimers, and if \a parent is not 0 then it will position the
+ dialog just below the parent's title bar.
- Under Unix/X11, the normal behavior of the file dialog is to resolve
- and follow symlinks. For example, if \c{/usr/tmp} is a symlink to
- \c{/var/tmp}, the file dialog will change to \c{/var/tmp} after
- entering \c{/usr/tmp}. If \a options includes DontResolveSymlinks,
- the file dialog will treat symlinks as regular directories.
+ On Unix/X11, the normal behavior of the file dialog is to resolve and
+ follow symlinks. For example, if \c{/usr/tmp} is a symlink to \c{/var/tmp},
+ the file dialog will change to \c{/var/tmp} after entering \c{/usr/tmp}. If
+ \a options includes DontResolveSymlinks, the file dialog will treat
+ symlinks as regular directories.
- \warning Do not delete \a parent during the execution of the dialog.
- If you want to do this, you should create the dialog
- yourself using one of the QFileDialog constructors.
+ \warning Do not delete \a parent during the execution of the dialog. If you
+ want to do this, you should create the dialog yourself using one of the
+ QFileDialog constructors.
- \sa getOpenFileNames(), getSaveFileName(), getExistingDirectory()
+ \sa getOpenFileNames(), getSaveFileName(), getExistingDirectory()
*/
QString QFileDialog::getOpenFileName(QWidget *parent,
const QString &caption,
@@ -1589,7 +1596,12 @@ QString QFileDialog::getOpenFileName(QWidget *parent,
args.parent = parent;
args.caption = caption;
args.directory = QFileDialogPrivate::workingDirectory(dir);
- args.selection = QFileDialogPrivate::initialSelection(dir);
+ //If workingDirectory returned a different path than the initial one,
+ //it means that the initial path was invalid. There is no point to try select a file
+ if (args.directory != QFileInfo(dir).path())
+ args.selection = QString();
+ else
+ args.selection = QFileDialogPrivate::initialSelection(dir);
args.filter = filter;
args.mode = ExistingFile;
args.options = options;
@@ -1612,54 +1624,53 @@ QString QFileDialog::getOpenFileName(QWidget *parent,
}
/*!
- This is a convenience static function that will return one or more
- existing files selected by the user.
+ This is a convenience static function that will return one or more existing
+ files selected by the user.
- \snippet doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp 9
+ \snippet doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp 9
- This function creates a modal file dialog with the given \a parent
- widget. If the parent is not 0, the dialog will be shown centered
- over the parent widget.
+ This function creates a modal file dialog with the given \a parent widget.
+ If \a parent is not 0, the dialog will be shown centered over the parent
+ widget.
- The file dialog's working directory will be set to \a dir. If \a
- dir includes a file name, the file will be selected. The filter
- is set to \a filter so that only those files which match the filter
- are shown. The filter selected is set to \a selectedFilter. The parameters
- \a dir, \a selectedFilter and \a filter may be empty strings. If you
- need multiple filters, separate them with ';;', for instance:
+ The file dialog's working directory will be set to \a dir. If \a dir
+ includes a file name, the file will be selected. The filter is set to
+ \a filter so that only those files which match the filter are shown. The
+ filter selected is set to \a selectedFilter. The parameters \a dir,
+ \a selectedFilter and \a filter may be empty strings. If you need multiple
+ filters, separate them with ';;', for instance:
- \code
+ \code
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
- \endcode
+ \endcode
- The dialog's caption is set to \a caption. If \a caption is not
- specified then a default caption will be used.
+ The dialog's caption is set to \a caption. If \a caption is not specified
+ then a default caption will be used.
- Under Windows and Mac OS X, this static function will use the native
- file dialog and not a QFileDialog. On Mac OS X, the \a dir argument
- is ignored, the native dialog always displays the last visited directory.
+ On Windows and Mac OS X, this static function will use the native file
+ dialog and not a QFileDialog.
- Note that on Windows the dialog will spin a blocking modal event loop
- that will not dispatch any QTimers, and if parent is not 0 then it will
- position the dialog just under the parent's title bar.
+ On Windows the dialog will spin a blocking modal event loop that will not
+ dispatch any QTimers, and if \a parent is not 0 then it will position the
+ dialog just below the parent's title bar.
- Under Unix/X11, the normal behavior of the file dialog is to resolve
- and follow symlinks. For example, if \c{/usr/tmp} is a symlink to
- \c{/var/tmp}, the file dialog will change to \c{/var/tmp} after
- entering \c{/usr/tmp}. The \a options argument holds various
- options about how to run the dialog, see the QFileDialog::Option enum for
- more information on the flags you can pass.
+ On Unix/X11, the normal behavior of the file dialog is to resolve and
+ follow symlinks. For example, if \c{/usr/tmp} is a symlink to \c{/var/tmp},
+ the file dialog will change to \c{/var/tmp} after entering \c{/usr/tmp}.
+ The \a options argument holds various options about how to run the dialog,
+ see the QFileDialog::Option enum for more information on the flags you can
+ pass.
- Note that if you want to iterate over the list of files, you should
- iterate over a copy. For example:
+ \note If you want to iterate over the list of files, you should iterate
+ over a copy. For example:
\snippet doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp 10
- \warning Do not delete \a parent during the execution of the dialog.
- If you want to do this, you should create the dialog
- yourself using one of the QFileDialog constructors.
+ \warning Do not delete \a parent during the execution of the dialog. If you
+ want to do this, you should create the dialog yourself using one of the
+ QFileDialog constructors.
- \sa getOpenFileName(), getSaveFileName(), getExistingDirectory()
+ \sa getOpenFileName(), getSaveFileName(), getExistingDirectory()
*/
QStringList QFileDialog::getOpenFileNames(QWidget *parent,
const QString &caption,
@@ -1674,7 +1685,12 @@ QStringList QFileDialog::getOpenFileNames(QWidget *parent,
args.parent = parent;
args.caption = caption;
args.directory = QFileDialogPrivate::workingDirectory(dir);
- args.selection = QFileDialogPrivate::initialSelection(dir);
+ //If workingDirectory returned a different path than the initial one,
+ //it means that the initial path was invalid. There is no point to try select a file
+ if (args.directory != QFileInfo(dir).path())
+ args.selection = QString();
+ else
+ args.selection = QFileDialogPrivate::initialSelection(dir);
args.filter = filter;
args.mode = ExistingFiles;
args.options = options;
@@ -1698,54 +1714,54 @@ QStringList QFileDialog::getOpenFileNames(QWidget *parent,
}
/*!
- This is a convenience static function that will return a file name
- selected by the user. The file does not have to exist.
+ This is a convenience static function that will return a file name selected
+ by the user. The file does not have to exist.
- It creates a modal file dialog with the given \a parent widget. If the
- parent is not 0, the dialog will be shown centered over the parent
- widget.
+ It creates a modal file dialog with the given \a parent widget. If
+ \a parent is not 0, the dialog will be shown centered over the parent
+ widget.
- \snippet doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp 11
+ \snippet doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp 11
- The file dialog's working directory will be set to \a dir. If \a
- dir includes a file name, the file will be selected. Only files that
- match the \a filter are shown. The filter selected is set to
- \a selectedFilter. The parameters \a dir, \a selectedFilter, and
- \a filter may be empty strings. Multiple filters are separated with ';;'.
- For instance:
+ The file dialog's working directory will be set to \a dir. If \a dir
+ includes a file name, the file will be selected. Only files that match the
+ \a filter are shown. The filter selected is set to \a selectedFilter. The
+ parameters \a dir, \a selectedFilter, and \a filter may be empty strings.
+ Multiple filters are separated with ';;'. For instance:
- \code
+ \code
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
- \endcode
+ \endcode
- The \a options argument holds various
- options about how to run the dialog, see the QFileDialog::Option enum for
- more information on the flags you can pass.
+ The \a options argument holds various options about how to run the dialog,
+ see the QFileDialog::Option enum for more information on the flags you can
+ pass.
- The default filter can be chosen by setting \a selectedFilter to the desired value.
+ The default filter can be chosen by setting \a selectedFilter to the
+ desired value.
- The dialog's caption is set to \a caption. If \a caption is not
- specified then a default caption will be used.
+ The dialog's caption is set to \a caption. If \a caption is not specified,
+ a default caption will be used.
- Under Windows and Mac OS X, this static function will use the native
- file dialog and not a QFileDialog.
+ On Windows and Mac OS X, this static function will use the native file
+ dialog and not a QFileDialog.
- Note that on Windows the dialog will spin a blocking modal event loop
- that will not dispatch any QTimers, and if parent is not 0 then it will
- position the dialog just under the parent's title bar.
- On Mac OS X, the filter argument is ignored.
+ On Windows the dialog will spin a blocking modal event loop that will not
+ dispatch any QTimers, and if \a parent is not 0 then it will position the
+ dialog just below the parent's title bar. On Mac OS X, with its native file
+ dialog, the filter argument is ignored.
- Under Unix/X11, the normal behavior of the file dialog is to resolve
- and follow symlinks. For example, if \c{/usr/tmp} is a symlink to
- \c{/var/tmp}, the file dialog will change to \c{/var/tmp} after
- entering \c{/usr/tmp}. If \a options includes DontResolveSymlinks,
- the file dialog will treat symlinks as regular directories.
+ On Unix/X11, the normal behavior of the file dialog is to resolve and
+ follow symlinks. For example, if \c{/usr/tmp} is a symlink to \c{/var/tmp},
+ the file dialog will change to \c{/var/tmp} after entering \c{/usr/tmp}. If
+ \a options includes DontResolveSymlinks the file dialog will treat symlinks
+ as regular directories.
- \warning Do not delete \a parent during the execution of the dialog.
- If you want to do this, you should create the dialog
- yourself using one of the QFileDialog constructors.
+ \warning Do not delete \a parent during the execution of the dialog. If you
+ want to do this, you should create the dialog yourself using one of the
+ QFileDialog constructors.
- \sa getOpenFileName(), getOpenFileNames(), getExistingDirectory()
+ \sa getOpenFileName(), getOpenFileNames(), getExistingDirectory()
*/
QString QFileDialog::getSaveFileName(QWidget *parent,
const QString &caption,
@@ -1760,7 +1776,12 @@ QString QFileDialog::getSaveFileName(QWidget *parent,
args.parent = parent;
args.caption = caption;
args.directory = QFileDialogPrivate::workingDirectory(dir);
- args.selection = QFileDialogPrivate::initialSelection(dir);
+ //If workingDirectory returned a different path than the initial one,
+ //it means that the initial path was invalid. There is no point to try select a file
+ if (args.directory != QFileInfo(dir).path())
+ args.selection = QString();
+ else
+ args.selection = QFileDialogPrivate::initialSelection(dir);
args.filter = filter;
args.mode = AnyFile;
args.options = options;
@@ -1786,46 +1807,43 @@ QString QFileDialog::getSaveFileName(QWidget *parent,
}
/*!
- This is a convenience static function that will return an existing
- directory selected by the user.
+ This is a convenience static function that will return an existing
+ directory selected by the user.
- \snippet doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp 12
+ \snippet doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp 12
- This function creates a modal file dialog with the given \a parent
- widget. If the parent is not 0, the dialog will be shown centered over
- the parent widget.
+ This function creates a modal file dialog with the given \a parent widget.
+ If \a parent is not 0, the dialog will be shown centered over the parent
+ widget.
- The dialog's working directory is set to \a dir, and the caption is
- set to \a caption. Either of these may be an empty string in which case
- the current directory and a default caption will be used
- respectively.
+ The dialog's working directory is set to \a dir, and the caption is set to
+ \a caption. Either of these may be an empty string in which case the
+ current directory and a default caption will be used respectively.
- The \a options argument holds various
- options about how to run the dialog, see the QFileDialog::Option enum for
- more information on the flags you can pass. Note that \l{QFileDialog::}{ShowDirsOnly}
- must be set to ensure a native file dialog.
+ The \a options argument holds various options about how to run the dialog,
+ see the QFileDialog::Option enum for more information on the flags you can
+ pass. To ensure a native file dialog, \l{QFileDialog::}{ShowDirsOnly} must
+ be set.
- Under Windows and Mac OS X, this static function will use the native
- file dialog and not a QFileDialog. On Mac OS X, the \a dir argument
- is ignored, the native dialog always displays the last visited directory.
- On Windows CE, if the device has no native file dialog, a QFileDialog
- will be used.
+ On Windows and Mac OS X, this static function will use the native file
+ dialog and not a QFileDialog. On Windows CE, if the device has no native
+ file dialog, a QFileDialog will be used.
- Under Unix/X11, the normal behavior of the file dialog is to resolve
- and follow symlinks. For example, if \c{/usr/tmp} is a symlink to
- \c{/var/tmp}, the file dialog will change to \c{/var/tmp} after
- entering \c{/usr/tmp}. If \a options includes DontResolveSymlinks,
- the file dialog will treat symlinks as regular directories.
+ On Unix/X11, the normal behavior of the file dialog is to resolve and
+ follow symlinks. For example, if \c{/usr/tmp} is a symlink to \c{/var/tmp},
+ the file dialog will change to \c{/var/tmp} after entering \c{/usr/tmp}. If
+ \a options includes DontResolveSymlinks, the file dialog will treat
+ symlinks as regular directories.
- Note that on Windows the dialog will spin a blocking modal event loop
- that will not dispatch any QTimers, and if parent is not 0 then it will
- position the dialog just under the parent's title bar.
+ On Windows the dialog will spin a blocking modal event loop that will not
+ dispatch any QTimers, and if \a parent is not 0 then it will position the
+ dialog just below the parent's title bar.
- \warning Do not delete \a parent during the execution of the dialog.
- If you want to do this, you should create the dialog
- yourself using one of the QFileDialog constructors.
+ \warning Do not delete \a parent during the execution of the dialog. If you
+ want to do this, you should create the dialog yourself using one of the
+ QFileDialog constructors.
- \sa getOpenFileName(), getOpenFileNames(), getSaveFileName()
+ \sa getOpenFileName(), getOpenFileNames(), getSaveFileName()
*/
QString QFileDialog::getExistingDirectory(QWidget *parent,
const QString &caption,
@@ -1843,7 +1861,7 @@ QString QFileDialog::getExistingDirectory(QWidget *parent,
#if defined(Q_WS_WIN)
if (qt_use_native_dialogs && !(args.options & DontUseNativeDialog) && (options & ShowDirsOnly)
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
&& qt_priv_ptr_valid
#endif
) {
@@ -2057,7 +2075,7 @@ void QFileDialogPrivate::init(const QString &directory, const QString &nameFilte
q->restoreState(settings.value(QLatin1String("filedialog")).toByteArray());
#endif
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
qFileDialogUi->lookInLabel->setVisible(false);
qFileDialogUi->fileNameLabel->setVisible(false);
qFileDialogUi->fileTypeLabel->setVisible(false);
@@ -2774,7 +2792,7 @@ void QFileDialogPrivate::_q_enterDirectory(const QModelIndex &index)
{
Q_Q(QFileDialog);
// My Computer or a directory
- QModelIndex sourceIndex = mapToSource(index);
+ QModelIndex sourceIndex = index.model() == proxyModel ? mapToSource(index) : index;
QString path = sourceIndex.data(QFileSystemModel::FilePathRole).toString();
if (path.isEmpty() || model->isDir(sourceIndex)) {
q->setDirectory(path);
diff --git a/src/gui/dialogs/qfiledialog_mac.mm b/src/gui/dialogs/qfiledialog_mac.mm
index 4c13d01..39a231b 100644
--- a/src/gui/dialogs/qfiledialog_mac.mm
+++ b/src/gui/dialogs/qfiledialog_mac.mm
@@ -278,7 +278,7 @@ QT_USE_NAMESPACE
{
Q_UNUSED(sender);
QString qtFileName = QT_PREPEND_NAMESPACE(qt_mac_NSStringToQString)(filename);
- QFileInfo info(qtFileName);
+ QFileInfo info(qtFileName.normalized(QT_PREPEND_NAMESPACE(QString::NormalizationForm_C)));
QString path = info.absolutePath();
if (path != *mLastFilterCheckPath){
*mLastFilterCheckPath = path;
@@ -911,8 +911,9 @@ void QFileDialogPrivate::createNavServicesDialog()
navOptions.windowTitle = QCFString::toCFStringRef(q->windowTitle());
- static const int w = 450, h = 350;
- navOptions.location.h = navOptions.location.v = -1;
+ navOptions.location.h = -1;
+ navOptions.location.v = -1;
+
QWidget *parent = q->parentWidget();
if (parent && parent->isVisible()) {
WindowClass wclass;
@@ -920,20 +921,6 @@ void QFileDialogPrivate::createNavServicesDialog()
parent = parent->window();
QString s = parent->windowTitle();
navOptions.clientName = QCFString::toCFStringRef(s);
- navOptions.location.h = (parent->x() + (parent->width() / 2)) - (w / 2);
- navOptions.location.v = (parent->y() + (parent->height() / 2)) - (h / 2);
-
- QRect r = QApplication::desktop()->screenGeometry(
- QApplication::desktop()->screenNumber(parent));
- const int border = 10;
- if (navOptions.location.h + w > r.right())
- navOptions.location.h -= (navOptions.location.h + w) - r.right() + border;
- if (navOptions.location.v + h > r.bottom())
- navOptions.location.v -= (navOptions.location.v + h) - r.bottom() + border;
- if (navOptions.location.h < r.left())
- navOptions.location.h = r.left() + border;
- if (navOptions.location.v < r.top())
- navOptions.location.v = r.top() + border;
}
filterInfo.currentSelection = 0;
diff --git a/src/gui/dialogs/qfiledialog_win.cpp b/src/gui/dialogs/qfiledialog_win.cpp
index 8431488..6962674 100644
--- a/src/gui/dialogs/qfiledialog_win.cpp
+++ b/src/gui/dialogs/qfiledialog_win.cpp
@@ -60,7 +60,7 @@
#include <shlobj.h>
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
#include <commdlg.h>
# ifndef BFFM_SETSELECTION
# define BFFM_SETSELECTION (WM_USER + 102)
@@ -112,7 +112,7 @@ static void qt_win_resolve_libs()
triedResolve = true;
if (!(QSysInfo::WindowsVersion & QSysInfo::WV_DOS_based)) {
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
QLibrary lib(QLatin1String("shell32"));
ptrSHBrowseForFolder = (PtrSHBrowseForFolder) lib.resolve("SHBrowseForFolderW");
ptrSHGetPathFromIDList = (PtrSHGetPathFromIDList) lib.resolve("SHGetPathFromIDListW");
@@ -186,7 +186,7 @@ static QString qt_win_selected_filter(const QString &filter, DWORD idx)
return qt_win_make_filters_list(filter).at((int)idx - 1);
}
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
// Static vars for OFNA funcs:
static QByteArray aInitDir;
static QByteArray aInitSel;
@@ -505,7 +505,7 @@ QString qt_win_get_save_file_name(const QFileDialogArgs &args,
}
qt_win_clean_up_OFNA(&ofn);
});
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
int semIndex = result.indexOf(QLatin1Char(';'));
if (semIndex >= 0)
result = result.left(semIndex);
@@ -700,7 +700,7 @@ QString qt_win_get_existing_directory(const QFileDialogArgs &args)
modal_widget.setAttribute(Qt::WA_NoChildEventsForParent, true);
modal_widget.setParent(parent, Qt::Window);
QApplicationPrivate::enterModal(&modal_widget);
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
QT_WA({
qt_win_resolve_libs();
QString initDir = QDir::toNativeSeparators(args.directory);
diff --git a/src/gui/dialogs/qfilesystemmodel.h b/src/gui/dialogs/qfilesystemmodel.h
index 52ecaf9..995268b 100644
--- a/src/gui/dialogs/qfilesystemmodel.h
+++ b/src/gui/dialogs/qfilesystemmodel.h
@@ -158,6 +158,8 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_performDelayedSort())
Q_PRIVATE_SLOT(d_func(), void _q_fileSystemChanged(const QString &path, const QList<QPair<QString, QFileInfo> > &))
Q_PRIVATE_SLOT(d_func(), void _q_resolvedName(const QString &fileName, const QString &resolvedName))
+
+ friend class QFileDialogPrivate;
};
inline bool QFileSystemModel::rmdir(const QModelIndex &aindex) const
diff --git a/src/gui/dialogs/qfilesystemmodel_p.h b/src/gui/dialogs/qfilesystemmodel_p.h
index 77c35a2..61e8b4c 100644
--- a/src/gui/dialogs/qfilesystemmodel_p.h
+++ b/src/gui/dialogs/qfilesystemmodel_p.h
@@ -163,7 +163,14 @@ public:
info->icon = iconProvider->icon(QFileInfo(path));
QHash<QString, QFileSystemNode *>::const_iterator iterator;
for(iterator = children.constBegin() ; iterator != children.constEnd() ; ++iterator) {
- iterator.value()->updateIcon(iconProvider, path + QLatin1Char('/') + iterator.value()->fileName);
+ //On windows the root (My computer) has no path so we don't want to add a / for nothing (e.g. /C:/)
+ if (!path.isEmpty()) {
+ if (path.endsWith(QLatin1Char('/')))
+ iterator.value()->updateIcon(iconProvider, path + iterator.value()->fileName);
+ else
+ iterator.value()->updateIcon(iconProvider, path + QLatin1Char('/') + iterator.value()->fileName);
+ } else
+ iterator.value()->updateIcon(iconProvider, iterator.value()->fileName);
}
}
@@ -172,7 +179,14 @@ public:
info->displayType = iconProvider->type(QFileInfo(path));
QHash<QString, QFileSystemNode *>::const_iterator iterator;
for(iterator = children.constBegin() ; iterator != children.constEnd() ; ++iterator) {
- iterator.value()->retranslateStrings(iconProvider, path + QLatin1Char('/') + iterator.value()->fileName);
+ //On windows the root (My computer) has no path so we don't want to add a / for nothing (e.g. /C:/)
+ if (!path.isEmpty()) {
+ if (path.endsWith(QLatin1Char('/')))
+ iterator.value()->retranslateStrings(iconProvider, path + iterator.value()->fileName);
+ else
+ iterator.value()->retranslateStrings(iconProvider, path + QLatin1Char('/') + iterator.value()->fileName);
+ } else
+ iterator.value()->retranslateStrings(iconProvider, iterator.value()->fileName);
}
}
diff --git a/src/gui/dialogs/qfontdialog.cpp b/src/gui/dialogs/qfontdialog.cpp
index 4c5bf4f..d8a2c7c 100644
--- a/src/gui/dialogs/qfontdialog.cpp
+++ b/src/gui/dialogs/qfontdialog.cpp
@@ -311,11 +311,11 @@ void QFontDialogPrivate::init()
buttonBox->addButton(QDialogButtonBox::Cancel);
QObject::connect(buttonBox, SIGNAL(rejected()), q, SLOT(reject()));
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
q->resize(180, 120);
#else
q->resize(500, 360);
-#endif // Q_OS_WINCE
+#endif // Q_WS_WINCE
sizeEdit->installEventFilter(q);
familyList->installEventFilter(q);
diff --git a/src/gui/dialogs/qfontdialog_mac.mm b/src/gui/dialogs/qfontdialog_mac.mm
index d6ddfa3..50917a1 100644
--- a/src/gui/dialogs/qfontdialog_mac.mm
+++ b/src/gui/dialogs/qfontdialog_mac.mm
@@ -87,7 +87,6 @@ const int StyleMask = NSTitledWindowMask | NSClosableWindowMask | NSResizableWin
NSButton *mOkButton;
NSButton *mCancelButton;
QFontDialogPrivate *mPriv;
- NSFont *mCocoaFont;
QFont *mQtFont;
BOOL mPanelHackedWithButtons;
CGFloat mDialogExtraWidth;
@@ -119,6 +118,29 @@ const int StyleMask = NSTitledWindowMask | NSClosableWindowMask | NSResizableWin
- (void)cleanUpAfterMyself;
@end
+static QFont qfontForCocoaFont(NSFont *cocoaFont, const QFont &resolveFont)
+{
+ QFont newFont;
+ if (cocoaFont) {
+ int pSize = qRound([cocoaFont pointSize]);
+ QString family(QCFString::toQString(reinterpret_cast<CFStringRef>([cocoaFont familyName])));
+ QString typeface(QCFString::toQString(reinterpret_cast<CFStringRef>([cocoaFont fontName])));
+// qDebug() << "original family" << family << "typeface" << typeface << "psize" << pSize;
+ int hyphenPos = typeface.indexOf(QLatin1Char('-'));
+ if (hyphenPos != -1) {
+ typeface.remove(0, hyphenPos + 1);
+ } else {
+ typeface = QLatin1String("Normal");
+ }
+// qDebug() << " massaged family" << family << "typeface" << typeface << "psize" << pSize;
+ newFont = QFontDatabase().font(family, typeface, pSize);
+ newFont.setUnderline(resolveFont.underline());
+ newFont.setStrikeOut(resolveFont.strikeOut());
+
+ }
+ return newFont;
+}
+
@implementation QCocoaFontPanelDelegate
- (id)initWithFontPanel:(NSFontPanel *)panel
stolenContentView:(NSView *)stolenContentView
@@ -134,7 +156,6 @@ const int StyleMask = NSTitledWindowMask | NSClosableWindowMask | NSResizableWin
mOkButton = okButton;
mCancelButton = cancelButton;
mPriv = priv;
- mCocoaFont = 0;
mPanelHackedWithButtons = (okButton != 0);
mDialogExtraWidth = extraWidth;
mDialogExtraHeight = extraHeight;
@@ -155,42 +176,14 @@ const int StyleMask = NSTitledWindowMask | NSClosableWindowMask | NSResizableWin
- (void)dealloc
{
- if (mCocoaFont)
- [mCocoaFont release];
delete mQtFont;
[super dealloc];
}
- (void)changeFont:(id)sender
{
- Q_UNUSED(sender);
-
- QFont newFont;
-
- if (mCocoaFont)
- [mCocoaFont autorelease];
NSFont *dummyFont = [NSFont userFontOfSize:12.0];
- mCocoaFont = [sender convertFont:dummyFont];
- if (mCocoaFont) {
- [mCocoaFont retain];
-
- int pSize = qRound([mCocoaFont pointSize]);
- QString family(QCFString::toQString(reinterpret_cast<CFStringRef>([mCocoaFont familyName])));
- QString typeface(QCFString::toQString(reinterpret_cast<CFStringRef>([mCocoaFont fontName])));
-// qDebug() << "original family" << family << "typeface" << typeface << "psize" << pSize;
- int hyphenPos = typeface.indexOf(QLatin1Char('-'));
- if (hyphenPos != -1) {
- typeface.remove(0, hyphenPos + 1);
- } else {
- typeface = QLatin1String("Normal");
- }
-// qDebug() << " massaged family" << family << "typeface" << typeface << "psize" << pSize;
- newFont = QFontDatabase().font(family, typeface, pSize);
- newFont.setUnderline(mQtFont->underline());
- newFont.setStrikeOut(mQtFont->strikeOut());
- }
-
- [self setQtFont:newFont];
+ [self setQtFont:qfontForCocoaFont([sender convertFont:dummyFont], *mQtFont)];
if (mPriv)
mPriv->updateSampleFont(*mQtFont);
}
@@ -317,6 +310,9 @@ const int StyleMask = NSTitledWindowMask | NSClosableWindowMask | NSResizableWin
- (void)onOkClicked
{
Q_ASSERT(mPanelHackedWithButtons);
+ NSFontManager *fontManager = [NSFontManager sharedFontManager];
+ [self setQtFont:qfontForCocoaFont([fontManager convertFont:[fontManager selectedFont]],
+ *mQtFont)];
[[mStolenContentView window] close];
[self finishOffWithCode:NSOKButton];
}
@@ -357,8 +353,8 @@ const int StyleMask = NSTitledWindowMask | NSClosableWindowMask | NSResizableWin
- (void)setQtFont:(const QFont &)newFont
{
- delete mQtFont;
- mQtFont = new QFont(newFont);
+ delete mQtFont;
+ mQtFont = new QFont(newFont);
}
- (QFont)qtFont
@@ -374,16 +370,7 @@ const int StyleMask = NSTitledWindowMask | NSClosableWindowMask | NSResizableWin
mModalSession = 0;
}
- // temporary hack to work around bug in deleteLater() in Qt/Mac Cocoa
-#if 1
- bool deleteDialog = mPriv->fontDialog()->testAttribute(Qt::WA_DeleteOnClose);
- mPriv->fontDialog()->setAttribute(Qt::WA_DeleteOnClose, false);
-#endif
mPriv->done((code == NSOKButton) ? QDialog::Accepted : QDialog::Rejected);
-#if 1
- if (deleteDialog)
- delete mPriv->fontDialog();
-#endif
} else {
[NSApp stopModalWithCode:code];
}
@@ -404,6 +391,7 @@ const int StyleMask = NSTitledWindowMask | NSClosableWindowMask | NSResizableWin
}
[mFontPanel setDelegate:nil];
[[NSFontManager sharedFontManager] setDelegate:nil];
+ [[NSFontManager sharedFontManager] setTarget:nil];
}
@end
@@ -527,6 +515,7 @@ void *QFontDialogPrivate::openCocoaFontPanel(const QFont &initial,
extraHeight:dialogExtraHeight];
[ourPanel setDelegate:delegate];
[[NSFontManager sharedFontManager] setDelegate:delegate];
+ [[NSFontManager sharedFontManager] setTarget:delegate];
setFont(delegate, initial);
// hack to get correct initial layout
diff --git a/src/gui/dialogs/qinputdialog.cpp b/src/gui/dialogs/qinputdialog.cpp
index b63c8ee..78d99e3 100644
--- a/src/gui/dialogs/qinputdialog.cpp
+++ b/src/gui/dialogs/qinputdialog.cpp
@@ -424,26 +424,27 @@ void QInputDialogPrivate::_q_currentRowChanged(const QModelIndex &newIndex,
/*!
\class QInputDialog
- \brief The QInputDialog class provides a simple convenience dialog to get a single value from the user.
+ \brief The QInputDialog class provides a simple convenience dialog to get a
+ single value from the user.
\ingroup dialogs
\mainclass
- The input value can be a string, a number or an item from a list. A
- label must be set to tell the user what they should enter.
+ The input value can be a string, a number or an item from a list. A label
+ must be set to tell the user what they should enter.
- Four static convenience functions are provided:
- getText(), getInt(), getDouble(), and getItem(). All the
- functions can be used in a similar way, for example:
+ Four static convenience functions are provided: getText(), getInt(),
+ getDouble(), and getItem(). All the functions can be used in a similar way,
+ for example:
\snippet examples/dialogs/standarddialogs/dialog.cpp 3
- The \c ok variable is set to true if the user clicks \gui OK;
- otherwise it is set to false.
+ The \c ok variable is set to true if the user clicks \gui OK; otherwise it
+ is set to false.
\img inputdialogs.png Input Dialogs
- The \l{dialogs/standarddialogs}{Standard Dialogs} example shows
- how to use QInputDialog as well as other built-in Qt dialogs.
+ The \l{dialogs/standarddialogs}{Standard Dialogs} example shows how to use
+ QInputDialog as well as other built-in Qt dialogs.
\sa QMessageBox, {Standard Dialogs Example}
*/
@@ -452,11 +453,13 @@ void QInputDialogPrivate::_q_currentRowChanged(const QModelIndex &newIndex,
\enum QInputDialog::InputMode
\since 4.5
- This enum describes the different modes of input that can be selected for the dialog.
+ This enum describes the different modes of input that can be selected for
+ the dialog.
\value TextInput Used to input text strings.
\value IntInput Used to input integers.
- \value DoubleInput Used to input floating point numbers with double precision accuracy.
+ \value DoubleInput Used to input floating point numbers with double
+ precision accuracy.
\sa inputMode
*/
@@ -487,7 +490,8 @@ QInputDialog::~QInputDialog()
\brief the mode used for input
- This property help determines which widget is used for entering input into the dialog.
+ This property help determines which widget is used for entering input into
+ the dialog.
*/
void QInputDialog::setInputMode(InputMode mode)
{
@@ -1104,15 +1108,18 @@ void QInputDialog::done(int result)
}
/*!
- Static convenience function to get a string from the user. \a
- title is the text which is displayed in the title bar of the
- dialog. \a label is the text which is shown to the user (it should
- say what should be entered). \a text is the default text which is
- placed in the line edit. The \a mode is the echo mode the line
- edit will use. If \a ok is nonnull \e *\a ok will be set to true
- if the user pressed \gui OK and to false if the user pressed
- \gui Cancel. The dialog's parent is \a parent. The dialog will be
- modal and uses the specified widget \a flags.
+ Static convenience function to get a string from the user.
+
+ \a title is the text which is displayed in the title bar of the dialog.
+ \a label is the text which is shown to the user (it should say what should
+ be entered).
+ \a text is the default text which is placed in the line edit.
+ \a mode is the echo mode the line edit will use.
+
+ If \a ok is nonnull \e *\a ok will be set to true if the user pressed
+ \gui OK and to false if the user pressed \gui Cancel. The dialog's parent
+ is \a parent. The dialog will be modal and uses the specified widget
+ \a flags.
This function returns the text which has been entered in the line
edit. It will not return an empty string.
@@ -1121,11 +1128,11 @@ void QInputDialog::done(int result)
\snippet examples/dialogs/standarddialogs/dialog.cpp 3
- \warning Do not delete \a parent during the execution of the dialog.
- If you want to do this, you should create the dialog
- yourself using one of the QInputDialog constructors.
+ \warning Do not delete \a parent during the execution of the dialog. If you
+ want to do this, you should create the dialog yourself using one of the
+ QInputDialog constructors.
- \sa getInteger(), getDouble(), getItem()
+ \sa getInt(), getDouble(), getItem()
*/
QString QInputDialog::getText(QWidget *parent, const QString &title, const QString &label,
@@ -1149,30 +1156,32 @@ QString QInputDialog::getText(QWidget *parent, const QString &title, const QStri
}
/*!
- Static convenience function to get an integer input from the
- user. \a title is the text which is displayed in the title bar
- of the dialog. \a label is the text which is shown to the user
- (it should say what should be entered). \a value is the default
- integer which the spinbox will be set to. \a min and \a
- max are the minimum and maximum values the user may choose,
- and \a step is the amount by which the values change as the user
- presses the arrow buttons to increment or decrement the value.
-
- If \a ok is nonnull *\a ok will be set to true if the user
- pressed \gui OK and to false if the user pressed \gui Cancel. The
- dialog's parent is \a parent. The dialog will be modal and uses
- the widget \a flags.
-
- On success, this function returns the integer which has been
- entered by the user; on failure, it returns the initial \a value.
+ \since 4.5
+
+ Static convenience function to get an integer input from the user.
+
+ \a title is the text which is displayed in the title bar of the dialog.
+ \a label is the text which is shown to the user (it should say what should
+ be entered).
+ \a value is the default integer which the spinbox will be set to.
+ \a min and \a max are the minimum and maximum values the user may choose.
+ \a step is the amount by which the values change as the user presses the
+ arrow buttons to increment or decrement the value.
+
+ If \a ok is nonnull *\a ok will be set to true if the user pressed \gui OK
+ and to false if the user pressed \gui Cancel. The dialog's parent is
+ \a parent. The dialog will be modal and uses the widget \a flags.
+
+ On success, this function returns the integer which has been entered by the
+ user; on failure, it returns the initial \a value.
Use this static function like this:
\snippet examples/dialogs/standarddialogs/dialog.cpp 0
- \warning Do not delete \a parent during the execution of the dialog.
- If you want to do this, you should create the dialog
- yourself using one of the QInputDialog constructors.
+ \warning Do not delete \a parent during the execution of the dialog. If you
+ want to do this, you should create the dialog yourself using one of the
+ QInputDialog constructors.
\sa getText(), getDouble(), getItem()
*/
@@ -1198,32 +1207,32 @@ int QInputDialog::getInt(QWidget *parent, const QString &title, const QString &l
}
/*!
- Static convenience function to get a floating point number from
- the user. \a title is the text which is displayed in the title
- bar of the dialog. \a label is the text which is shown to the user
- (it should say what should be entered). \a value is the default
- floating point number that the line edit will be set to. \a
- min and \a max are the minimum and maximum values the
- user may choose, and \a decimals is the maximum number of decimal
- places the number may have.
-
- If \a ok is nonnull, *\a ok will be set to true if the user
- pressed \gui OK and to false if the user pressed \gui Cancel. The
- dialog's parent is \a parent. The dialog will be modal and uses
- the widget \a flags.
-
- This function returns the floating point number which has been
- entered by the user.
+ Static convenience function to get a floating point number from the user.
+
+ \a title is the text which is displayed in the title bar of the dialog.
+ \a label is the text which is shown to the user (it should say what should
+ be entered).
+ \a value is the default floating point number that the line edit will be
+ set to.
+ \a min and \a max are the minimum and maximum values the user may choose.
+ \a decimals is the maximum number of decimal places the number may have.
+
+ If \a ok is nonnull, *\a ok will be set to true if the user pressed \gui OK
+ and to false if the user pressed \gui Cancel. The dialog's parent is
+ \a parent. The dialog will be modal and uses the widget \a flags.
+
+ This function returns the floating point number which has been entered by
+ the user.
Use this static function like this:
\snippet examples/dialogs/standarddialogs/dialog.cpp 1
- \warning Do not delete \a parent during the execution of the dialog.
- If you want to do this, you should create the dialog
- yourself using one of the QInputDialog constructors.
+ \warning Do not delete \a parent during the execution of the dialog. If you
+ want to do this, you should create the dialog yourself using one of the
+ QInputDialog constructors.
- \sa getText(), getInteger(), getItem()
+ \sa getText(), getInt(), getItem()
*/
double QInputDialog::getDouble(QWidget *parent, const QString &title, const QString &label,
@@ -1248,32 +1257,34 @@ double QInputDialog::getDouble(QWidget *parent, const QString &title, const QStr
}
/*!
- Static convenience function to let the user select an item from a
- string list. \a title is the text which is displayed in the title
- bar of the dialog. \a label is the text which is shown to the user (it
- should say what should be entered). \a items is the
- string list which is inserted into the combobox, and \a current is the number
- of the item which should be the current item. If \a editable is true
- the user can enter their own text; if \a editable is false the user
- may only select one of the existing items.
-
- If \a ok is nonnull \e *\a ok will be set to true if the user
- pressed \gui OK and to false if the user pressed \gui Cancel. The
- dialog's parent is \a parent. The dialog will be modal and uses
- the widget \a flags.
-
- This function returns the text of the current item, or if \a
- editable is true, the current text of the combobox.
+ Static convenience function to let the user select an item from a string
+ list.
+
+ \a title is the text which is displayed in the title bar of the dialog.
+ \a label is the text which is shown to the user (it should say what should
+ be entered).
+ \a items is the string list which is inserted into the combobox.
+ \a current is the number of the item which should be the current item.
+
+ If \a editable is true the user can enter their own text; otherwise the
+ user may only select one of the existing items.
+
+ If \a ok is nonnull \e *\a ok will be set to true if the user pressed
+ \gui OK and to false if the user pressed \gui Cancel. The dialog's parent
+ is \a parent. The dialog will be modal and uses the widget \a flags.
+
+ This function returns the text of the current item, or if \a editable is
+ true, the current text of the combobox.
Use this static function like this:
\snippet examples/dialogs/standarddialogs/dialog.cpp 2
- \warning Do not delete \a parent during the execution of the dialog.
- If you want to do this, you should create the dialog
- yourself using one of the QInputDialog constructors.
+ \warning Do not delete \a parent during the execution of the dialog. If you
+ want to do this, you should create the dialog yourself using one of the
+ QInputDialog constructors.
- \sa getText(), getInteger(), getDouble()
+ \sa getText(), getInt(), getDouble()
*/
QString QInputDialog::getItem(QWidget *parent, const QString &title, const QString &label,
diff --git a/src/gui/dialogs/qmessagebox.cpp b/src/gui/dialogs/qmessagebox.cpp
index 1967837..3b622b7 100644
--- a/src/gui/dialogs/qmessagebox.cpp
+++ b/src/gui/dialogs/qmessagebox.cpp
@@ -63,7 +63,7 @@
#include <QtGui/qfontmetrics.h>
#include <QtGui/qclipboard.h>
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
extern bool qt_wince_is_mobile(); //defined in qguifunctions_wince.cpp
extern bool qt_wince_is_smartphone();//defined in qguifunctions_wince.cpp
extern bool qt_wince_is_pocket_pc(); //defined in qguifunctions_wince.cpp
@@ -152,7 +152,7 @@ public:
int layoutMinimumWidth();
void retranslateStrings();
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
void hideSpecial();
#endif
@@ -272,14 +272,14 @@ void QMessageBoxPrivate::updateSize()
return;
QSize screenSize = QApplication::desktop()->availableGeometry(QCursor::pos()).size();
-#ifdef Q_WS_QWS
- // the width of the screen, less the window border.
- int hardLimit = screenSize.width() - (q->frameGeometry().width() - q->geometry().width());
-#elif defined(Q_OS_WINCE)
+#if defined(Q_WS_QWS) || defined(Q_WS_WINCE)
// the width of the screen, less the window border.
int hardLimit = screenSize.width() - (q->frameGeometry().width() - q->geometry().width());
#else
int hardLimit = qMin(screenSize.width() - 480, 1000); // can never get bigger than this
+ // on small screens allows the messagebox be the same size as the screen
+ if (screenSize.width() <= 1024)
+ hardLimit = screenSize.width();
#endif
#ifdef Q_WS_MAC
int softLimit = qMin(screenSize.width()/2, 420);
@@ -287,11 +287,11 @@ void QMessageBoxPrivate::updateSize()
int softLimit = qMin(hardLimit, 500);
#else
// note: ideally on windows, hard and soft limits but it breaks compat
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
int softLimit = qMin(screenSize.width()/2, 500);
#else
int softLimit = qMin(screenSize.width() * 3 / 4, 500);
-#endif //Q_OS_WINCE
+#endif //Q_WS_WINCE
#endif
if (informativeLabel)
@@ -348,7 +348,7 @@ void QMessageBoxPrivate::updateSize()
}
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
/*!
\internal
Hides special buttons which are rather shown in the title bar
@@ -1210,7 +1210,7 @@ bool QMessageBox::event(QEvent *e)
case QEvent::LanguageChange:
d_func()->retranslateStrings();
break;
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
case QEvent::OkRequest:
case QEvent::HelpRequest: {
QString bName =
@@ -1353,7 +1353,7 @@ void QMessageBox::keyPressEvent(QKeyEvent *e)
QDialog::keyPressEvent(e);
}
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
/*!
\reimp
*/
@@ -1422,7 +1422,7 @@ void QMessageBox::showEvent(QShowEvent *e)
Q_D(QMessageBox);
if (d->autoAddOkButton) {
addButton(Ok);
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
d->hideSpecial();
#endif
}
@@ -1680,7 +1680,7 @@ void QMessageBox::aboutQt(QWidget *parent, const QString &title)
{
#ifdef Q_WS_MAC
static QPointer<QMessageBox> oldMsgBox;
-
+
if (oldMsgBox) {
oldMsgBox->show();
oldMsgBox->raise();
@@ -1692,29 +1692,35 @@ void QMessageBox::aboutQt(QWidget *parent, const QString &title)
QString translatedTextAboutQt;
translatedTextAboutQt = QMessageBox::tr(
"<h3>About Qt</h3>"
- "%1<p>Qt is a C++ toolkit for cross-platform "
- "application development.</p>"
- "<p>Qt provides single-source "
- "portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, "
- "Linux, and all major commercial Unix variants. Qt is also"
- " available for embedded devices as Qt for Embedded Linux"
- " and Qt for Windows CE.</p>"
- "<p>Qt is a Nokia product. See "
- "<a href=\"http://qtsoftware.com/qt/\">qtsoftware.com/qt/</a> for more information.</p>"
- )
-#if QT_EDITION != QT_EDITION_OPENSOURCE
- .arg(QMessageBox::tr("<p>This program uses Qt version %1.</p>"))
-#else
- .arg(QMessageBox::tr("<p>This program uses Qt Open Source Edition version %1.</p>"
- "<p>Qt Open Source Edition is intended for the development "
- "of Open Source applications. You need a commercial Qt "
- "license for development of proprietary (closed source) "
- "applications.</p>"
- "<p>Please see <a href=\"http://qtsoftware.com/company/model/\">qtsoftware.com/company/model/</a> "
- "for an overview of Qt licensing.</p>"))
-#endif
-
- .arg(QLatin1String(QT_VERSION_STR));
+ "<p>This program uses Qt version %1.</p>"
+ "<p>Qt is a C++ toolkit for cross-platform application "
+ "development.</p>"
+ "<p>Qt provides single-source portability across MS&nbsp;Windows, "
+ "Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. "
+ "Qt is also available for embedded devices as Qt for Embedded Linux "
+ "and Qt for Windows CE.</p>"
+ "<p>Qt is available under three different licensing options designed "
+ "to accommodate the needs of our various users.</p>"
+ "Qt licensed under our commercial license agreement is appropriate "
+ "for development of proprietary/commercial software where you do not "
+ "want to share any source code with third parties or otherwise cannot "
+ "comply with the terms of the GNU LGPL version 2.1 or GNU GPL version "
+ "3.0.</p>"
+ "<p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the "
+ "development of Qt applications (proprietary or open source) provided "
+ "you can comply with the terms and conditions of the GNU LGPL version "
+ "2.1.</p>"
+ "<p>Qt licensed under the GNU General Public License version 3.0 is "
+ "appropriate for the development of Qt applications where you wish to "
+ "use such applications in combination with software subject to the "
+ "terms of the GNU GPL version 3.0 or where you are otherwise willing "
+ "to comply with the terms of the GNU GPL version 3.0.</p>"
+ "<p>Please see <a href=\"http://www.qtsoftware.com/products/licensing\">www.qtsoftware.com/products/licensing</a> "
+ "for an overview of Qt licensing.</p>"
+ "<p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</p>"
+ "<p>Qt is a Nokia product. See <a href=\"http://www.qtsoftware.com/qt/\">www.qtsoftware.com/qt</a> "
+ "for more information.</p>"
+ ).arg(QLatin1String(QT_VERSION_STR));
QMessageBox *msgBox = new QMessageBox(parent);
msgBox->setAttribute(Qt::WA_DeleteOnClose);
@@ -1724,7 +1730,7 @@ void QMessageBox::aboutQt(QWidget *parent, const QString &title)
QPixmap pm(QLatin1String(":/trolltech/qmessagebox/images/qtlogo-64.png"));
if (!pm.isNull())
msgBox->setIconPixmap(pm);
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
msgBox->setDefaultButton(msgBox->addButton(QMessageBox::Ok));
#endif
diff --git a/src/gui/dialogs/qmessagebox.h b/src/gui/dialogs/qmessagebox.h
index e1667d6..8d9b9fa 100644
--- a/src/gui/dialogs/qmessagebox.h
+++ b/src/gui/dialogs/qmessagebox.h
@@ -145,7 +145,7 @@ public:
QPushButton *addButton(StandardButton button);
void removeButton(QAbstractButton *button);
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
void setVisible(bool visible);
#endif
diff --git a/src/gui/dialogs/qprintdialog_unix.cpp b/src/gui/dialogs/qprintdialog_unix.cpp
index 76c22d0..87a4e65 100644
--- a/src/gui/dialogs/qprintdialog_unix.cpp
+++ b/src/gui/dialogs/qprintdialog_unix.cpp
@@ -727,7 +727,9 @@ void QUnixPrintWidgetPrivate::updateWidget()
widget.printers->removeItem(widget.printers->count()-1); // remove separator
filePrintersAdded = false;
}
- if (printer && filePrintersAdded && printer->printerName().isEmpty()) {
+ if (printer && filePrintersAdded && (printer->outputFormat() != QPrinter::NativeFormat
+ || printer->printerName().isEmpty()))
+ {
if (printer->outputFormat() == QPrinter::PdfFormat)
widget.printers->setCurrentIndex(widget.printers->count() - 2);
else if (printer->outputFormat() == QPrinter::PostScriptFormat)
diff --git a/src/gui/dialogs/qsidebar.cpp b/src/gui/dialogs/qsidebar.cpp
index 1bd2b7d..26108d7 100644
--- a/src/gui/dialogs/qsidebar.cpp
+++ b/src/gui/dialogs/qsidebar.cpp
@@ -55,6 +55,18 @@
QT_BEGIN_NAMESPACE
+void QSideBarDelegate::initStyleOption(QStyleOptionViewItem *option,
+ const QModelIndex &index) const
+{
+ QStyledItemDelegate::initStyleOption(option,index);
+ QVariant value = index.data(QUrlModel::EnabledRole);
+ if (value.isValid()) {
+ //If the bookmark/entry is not enabled then we paint it in gray
+ if (!qvariant_cast<bool>(value))
+ option->state &= ~QStyle::State_Enabled;
+ }
+}
+
/*!
QUrlModel lets you have indexes from a QFileSystemModel to a list. When QFileSystemModel
changes them QUrlModel will automatically update.
@@ -88,9 +100,6 @@ Qt::ItemFlags QUrlModel::flags(const QModelIndex &index) const
if (index.data(Qt::DecorationRole).isNull())
flags &= ~Qt::ItemIsEnabled;
- if (invalidUrls.contains(index.data(UrlRole).toUrl()))
- flags &= ~Qt::ItemIsEnabled;
-
return flags;
}
@@ -193,6 +202,11 @@ void QUrlModel::setUrl(const QModelIndex &index, const QUrl &url, const QModelIn
newName = QFileInfo(url.toLocalFile()).fileName();
if (!invalidUrls.contains(url))
invalidUrls.append(url);
+ //The bookmark is invalid then we set to false the EnabledRole
+ setData(index, false, EnabledRole);
+ } else {
+ //The bookmark is valid then we set to true the EnabledRole
+ setData(index, true, EnabledRole);
}
// Make sure that we have at least 32x32 images
@@ -234,7 +248,11 @@ void QUrlModel::addUrls(const QList<QUrl> &list, int row, bool move)
if (!url.isValid() || url.scheme() != QLatin1String("file"))
continue;
for (int j = 0; move && j < rowCount(); ++j) {
+#if defined(Q_OS_WIN)
+ if (index(j, 0).data(UrlRole).toUrl().toLocalFile().toLower() == url.toLocalFile().toLower()) {
+#else
if (index(j, 0).data(UrlRole) == url) {
+#endif
removeRow(j);
if (j <= row)
row--;
@@ -356,6 +374,7 @@ void QSidebar::init(QFileSystemModel *model, const QList<QUrl> &newUrls)
urlModel = new QUrlModel(this);
urlModel->setFileSystemModel(model);
setModel(urlModel);
+ setItemDelegate(new QSideBarDelegate(this));
connect(selectionModel(), SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)),
this, SLOT(clicked(const QModelIndex &)));
diff --git a/src/gui/dialogs/qsidebar_p.h b/src/gui/dialogs/qsidebar_p.h
index ecbbb37..56fd6d4 100644
--- a/src/gui/dialogs/qsidebar_p.h
+++ b/src/gui/dialogs/qsidebar_p.h
@@ -55,6 +55,7 @@
#include <qlistwidget.h>
#include <qstandarditemmodel.h>
+#include <qstyleditemdelegate.h>
#include <qurl.h>
#ifndef QT_NO_FILEDIALOG
@@ -62,13 +63,23 @@
QT_BEGIN_NAMESPACE
class QFileSystemModel;
+
+class QSideBarDelegate : public QStyledItemDelegate
+{
+ public:
+ QSideBarDelegate(QWidget *parent = 0) : QStyledItemDelegate(parent) {}
+ void initStyleOption(QStyleOptionViewItem *option,
+ const QModelIndex &index) const;
+};
+
class Q_AUTOTEST_EXPORT QUrlModel : public QStandardItemModel
{
Q_OBJECT
public:
enum Roles {
- UrlRole = Qt::UserRole + 1
+ UrlRole = Qt::UserRole + 1,
+ EnabledRole = Qt::UserRole + 2
};
QUrlModel(QObject *parent = 0);
diff --git a/src/gui/dialogs/qwizard.cpp b/src/gui/dialogs/qwizard.cpp
index 32395c4..6f2ab0a 100644
--- a/src/gui/dialogs/qwizard.cpp
+++ b/src/gui/dialogs/qwizard.cpp
@@ -69,7 +69,7 @@
#include "private/qdialog_p.h"
#include <qdebug.h>
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
extern bool qt_wince_is_mobile(); //defined in qguifunctions_wce.cpp
#endif
@@ -2120,7 +2120,7 @@ QWizard::QWizard(QWidget *parent, Qt::WindowFlags flags)
{
Q_D(QWizard);
d->init();
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
if (!qt_wince_is_mobile())
setWindowFlags(windowFlags() & ~Qt::WindowOkButtonHint);
#endif
diff --git a/src/gui/embedded/qscreentransformed_qws.cpp b/src/gui/embedded/qscreentransformed_qws.cpp
index f988789..46ac1d1 100644
--- a/src/gui/embedded/qscreentransformed_qws.cpp
+++ b/src/gui/embedded/qscreentransformed_qws.cpp
@@ -410,7 +410,9 @@ void QTransformedScreen::blit(const QImage &image, const QPoint &topLeft,
#endif
#ifdef QT_QWS_DEPTH_8
case 8:
- if (image.depth() == 16)
+ if (image.format() == QImage::Format_RGB444)
+ SET_BLIT_FUNC(quint8, qrgb444, trans, func);
+ else if (image.depth() == 16)
SET_BLIT_FUNC(quint8, quint16, trans, func);
else
SET_BLIT_FUNC(quint8, quint32, trans, func);
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index 4574334..5d7d81f 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -885,6 +885,38 @@ void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent, bool de
/*!
\internal
+ Returns the bounding rect of this item's children (excluding itself).
+*/
+void QGraphicsItemPrivate::childrenBoundingRectHelper(QTransform *x, QRectF *rect)
+{
+ for (int i = 0; i < children.size(); ++i) {
+ QGraphicsItem *child = children.at(i);
+ QGraphicsItemPrivate *childd = child->d_ptr;
+ bool hasX = childd->hasTransform;
+ bool hasPos = !childd->pos.isNull();
+ if (hasPos || hasX) {
+ QTransform matrix;
+ if (hasX)
+ matrix = child->transform();
+ if (hasPos) {
+ const QPointF &p = childd->pos;
+ matrix *= QTransform::fromTranslate(p.x(), p.y());
+ }
+ matrix *= *x;
+ *rect |= matrix.mapRect(child->boundingRect());
+ if (!childd->children.isEmpty())
+ childd->childrenBoundingRectHelper(&matrix, rect);
+ } else {
+ *rect |= x->mapRect(child->boundingRect());
+ if (!childd->children.isEmpty())
+ childd->childrenBoundingRectHelper(x, rect);
+ }
+ }
+}
+
+/*!
+ \internal
+
Empty all cached pixmaps from the pixmap cache.
*/
void QGraphicsItemCache::purge()
@@ -1906,11 +1938,11 @@ void QGraphicsItem::setOpacity(qreal opacity)
newOpacity = qBound<qreal>(0.0, newOpacity, 1.0);
// No change? Done.
- if (qIsFuzzyNull(newOpacity - this->opacity()))
+ if (qFuzzyIsNull(newOpacity - this->opacity()))
return;
// Assign local opacity.
- if (qIsFuzzyNull(newOpacity - 1)) {
+ if (qFuzzyIsNull(newOpacity - 1)) {
// Opaque, unset opacity.
d_ptr->hasOpacity = 0;
d_ptr->unsetExtra(QGraphicsItemPrivate::ExtraOpacity);
@@ -3019,13 +3051,8 @@ void QGraphicsItem::setZValue(qreal z)
QRectF QGraphicsItem::childrenBoundingRect() const
{
QRectF childRect;
- foreach (QGraphicsItem *child, children()) {
- QPointF childPos = child->pos();
- QTransform matrix = child->transform();
- if (!childPos.isNull())
- matrix *= QTransform::fromTranslate(childPos.x(), childPos.y());
- childRect |= matrix.mapRect(child->boundingRect() | child->childrenBoundingRect());
- }
+ QTransform x;
+ d_ptr->childrenBoundingRectHelper(&x, &childRect);
return childRect;
}
@@ -3771,7 +3798,7 @@ void QGraphicsItemPrivate::resolveEffectiveOpacity(qreal parentEffectiveOpacity)
}
// Set this item's resolved opacity.
- if (qIsFuzzyNull(myEffectiveOpacity - 1)) {
+ if (qFuzzyIsNull(myEffectiveOpacity - 1)) {
// Opaque, unset effective opacity.
hasEffectiveOpacity = 0;
unsetExtra(ExtraEffectiveOpacity);
@@ -4002,11 +4029,18 @@ bool QGraphicsItemPrivate::isProxyWidget() const
*/
void QGraphicsItem::update(const QRectF &rect)
{
- if ((rect.isEmpty() && !rect.isNull()) || d_ptr->discardUpdateRequest())
+ if (rect.isEmpty() && !rect.isNull())
return;
if (CacheMode(d_ptr->cacheMode) != NoCache) {
QGraphicsItemCache *cache = d_ptr->extraItemCache();
+ if (d_ptr->discardUpdateRequest(/* ignoreVisibleBit = */ false,
+ /* ignoreClipping = */ false,
+ /* ignoreDirtyBit = */ true)) {
+ return;
+ }
+
+ // Invalidate cache.
if (!cache->allExposed) {
if (rect.isNull()) {
cache->allExposed = true;
@@ -4015,6 +4049,11 @@ void QGraphicsItem::update(const QRectF &rect)
cache->exposed.append(rect);
}
}
+ // Only invalidate cache; item is already dirty.
+ if (d_ptr->dirty)
+ return;
+ } else if (d_ptr->discardUpdateRequest()) {
+ return;
}
// Effectively the same as updateHelper(rect);
@@ -4091,7 +4130,7 @@ void QGraphicsItem::scroll(qreal dx, qreal dy, const QRectF &rect)
return;
if (d->cacheMode != NoCache) {
QGraphicsItemCache *c;
- bool scrollCache = qFuzzyCompare(dx - int(dx), qreal(0.0)) && qFuzzyCompare(dy - int(dy), qreal(0.0))
+ bool scrollCache = qFuzzyIsNull(dx - int(dx)) && qFuzzyIsNull(dy - int(dy))
&& (c = (QGraphicsItemCache *)qVariantValue<void *>(d_ptr->extra(QGraphicsItemPrivate::ExtraCacheData)))
&& (d->cacheMode == ItemCoordinateCache && !c->fixedSize.isValid());
if (scrollCache) {
@@ -4285,7 +4324,9 @@ QPointF QGraphicsItem::mapToItem(const QGraphicsItem *item, const QPointF &point
*/
QPointF QGraphicsItem::mapToParent(const QPointF &point) const
{
- return d_ptr->pos + (d_ptr->hasTransform ? transform().map(point) : point);
+ if (!d_ptr->hasTransform)
+ return point + d_ptr->pos;
+ return transform().map(point) + d_ptr->pos;
}
/*!
@@ -4351,8 +4392,8 @@ QPolygonF QGraphicsItem::mapToItem(const QGraphicsItem *item, const QRectF &rect
QPolygonF QGraphicsItem::mapToParent(const QRectF &rect) const
{
if (!d_ptr->hasTransform)
- return QPolygonF(rect.translated(d_ptr->pos));
- return transform().map(rect.translated(d_ptr->pos));
+ return rect.translated(d_ptr->pos);
+ return transform().map(rect).translated(d_ptr->pos);
}
/*!
@@ -4419,8 +4460,8 @@ QRectF QGraphicsItem::mapRectToItem(const QGraphicsItem *item, const QRectF &rec
*/
QRectF QGraphicsItem::mapRectToParent(const QRectF &rect) const
{
- QRectF r = rect.translated(d_ptr->pos.x(), d_ptr->pos.y());
- return !d_ptr->hasTransform ? r : transform().mapRect(r);
+ QRectF r = !d_ptr->hasTransform ? rect : transform().mapRect(rect);
+ return r.translated(d_ptr->pos);
}
/*!
@@ -4551,9 +4592,9 @@ QPolygonF QGraphicsItem::mapToItem(const QGraphicsItem *item, const QPolygonF &p
*/
QPolygonF QGraphicsItem::mapToParent(const QPolygonF &polygon) const
{
- QPolygonF p = polygon;
- p.translate(d_ptr->pos);
- return d_ptr->hasTransform ? transform().map(p) : p;
+ if (!d_ptr->hasTransform)
+ return polygon.translated(d_ptr->pos);
+ return transform().map(polygon).translated(d_ptr->pos);
}
/*!
@@ -4595,9 +4636,9 @@ QPainterPath QGraphicsItem::mapToItem(const QGraphicsItem *item, const QPainterP
*/
QPainterPath QGraphicsItem::mapToParent(const QPainterPath &path) const
{
- QPainterPath p(path);
- p.translate(d_ptr->pos);
- return d_ptr->hasTransform ? transform().map(p) : p;
+ if (!d_ptr->hasTransform)
+ return path.translated(d_ptr->pos);
+ return transform().map(path).translated(d_ptr->pos);
}
/*!
@@ -5822,12 +5863,11 @@ void QGraphicsItem::removeFromIndex()
*/
void QGraphicsItem::prepareGeometryChange()
{
- if (!d_ptr->scene)
- return;
-
- d_ptr->updateHelper(QRectF(), false, /*maybeDirtyClipPath=*/!d_ptr->inSetPosHelper);
- QGraphicsScenePrivate *scenePrivate = d_ptr->scene->d_func();
- scenePrivate->index->updateItem(this);
+ if (d_ptr->scene) {
+ d_ptr->updateHelper(QRectF(), false, /*maybeDirtyClipPath=*/!d_ptr->inSetPosHelper);
+ QGraphicsScenePrivate *scenePrivate = d_ptr->scene->d_func();
+ scenePrivate->index->updateItem(this);
+ }
if (d_ptr->inSetPosHelper)
return;
@@ -5850,7 +5890,7 @@ static void qt_graphicsItem_highlightSelected(
QGraphicsItem *item, QPainter *painter, const QStyleOptionGraphicsItem *option)
{
const QRectF murect = painter->transform().mapRect(QRectF(0, 0, 1, 1));
- if (qIsFuzzyNull(qMax(murect.width(), murect.height())))
+ if (qFuzzyIsNull(qMax(murect.width(), murect.height())))
return;
const QRectF mbrect = painter->transform().mapRect(item->boundingRect());
@@ -8612,6 +8652,7 @@ void QGraphicsSimpleTextItem::setText(const QString &text)
return;
d->text = text;
d->updateBoundingRect();
+ update();
}
/*!
diff --git a/src/gui/graphicsview/qgraphicsitem_p.h b/src/gui/graphicsview/qgraphicsitem_p.h
index 77db691..940e566 100644
--- a/src/gui/graphicsview/qgraphicsitem_p.h
+++ b/src/gui/graphicsview/qgraphicsitem_p.h
@@ -178,6 +178,7 @@ public:
void addChild(QGraphicsItem *child);
void removeChild(QGraphicsItem *child);
void setParentItemHelper(QGraphicsItem *parent, bool deleting);
+ void childrenBoundingRectHelper(QTransform *x, QRectF *rect);
virtual void resolveFont(uint inheritedMask)
{
@@ -269,7 +270,7 @@ public:
void updateCachedClipPathFromSetPosHelper(const QPointF &newPos);
inline bool isFullyTransparent() const
- { return hasEffectiveOpacity && qIsFuzzyNull(q_func()->effectiveOpacity()); }
+ { return hasEffectiveOpacity && qFuzzyIsNull(q_func()->effectiveOpacity()); }
inline bool childrenCombineOpacity() const
{ return allChildrenCombineOpacity || children.isEmpty(); }
diff --git a/src/gui/graphicsview/qgraphicsproxywidget.cpp b/src/gui/graphicsview/qgraphicsproxywidget.cpp
index e660879..01b7593 100644
--- a/src/gui/graphicsview/qgraphicsproxywidget.cpp
+++ b/src/gui/graphicsview/qgraphicsproxywidget.cpp
@@ -460,7 +460,7 @@ void QGraphicsProxyWidgetPrivate::embedSubWindow(QWidget *subWin)
{
QWExtra *extra;
if (!((extra = subWin->d_func()->extra) && extra->proxyWidget)) {
- QGraphicsProxyWidget *subProxy = new QGraphicsProxyWidget(q_func());
+ QGraphicsProxyWidget *subProxy = new QGraphicsProxyWidget(q_func(), subWin->windowFlags());
subProxy->d_func()->setWidget_helper(subWin, false);
}
}
@@ -544,6 +544,9 @@ QGraphicsProxyWidget::~QGraphicsProxyWidget()
hidden or disabled after embedding is complete. The class documentation
has a full overview over the shared state.
+ QGraphicsProxyWidget's window flags determine whether the widget, after
+ embedding, will be given window decorations or not.
+
After this function returns, QGraphicsProxyWidget will keep its state
synchronized with that of \a widget whenever possible.
@@ -661,10 +664,6 @@ void QGraphicsProxyWidgetPrivate::setWidget_helper(QWidget *newWidget, bool auto
if (newWidget->testAttribute(Qt::WA_SetCursor))
q->setCursor(widget->cursor());
#endif
- Qt::WFlags flags = newWidget->windowFlags();
- if (newWidget->windowType() == Qt::Window)
- flags &= ~Qt::Window;
- q->setWindowFlags(flags);
q->setEnabled(newWidget->isEnabled());
q->setVisible(newWidget->isVisible());
q->setLayoutDirection(newWidget->layoutDirection());
diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp
index 8140f79..e9fad68 100644
--- a/src/gui/graphicsview/qgraphicsscene.cpp
+++ b/src/gui/graphicsview/qgraphicsscene.cpp
@@ -552,6 +552,15 @@ void QGraphicsScenePrivate::_q_removeItemLater(QGraphicsItem *item)
unpolishedItems.removeAll(item);
dirtyItems.removeAll(item);
+ //We remove all references of item from the sceneEventFilter arrays
+ QMultiMap<QGraphicsItem*, QGraphicsItem*>::iterator iterator = sceneEventFilters.begin();
+ while (iterator != sceneEventFilters.end()) {
+ if (iterator.value() == item || iterator.key() == item)
+ iterator = sceneEventFilters.erase(iterator);
+ else
+ ++iterator;
+ }
+
// Remove from scene transform cache
int transformIndex = item->d_func()->sceneTransformIndex;
if (transformIndex != -1) {
@@ -635,11 +644,18 @@ void QGraphicsScenePrivate::grabMouse(QGraphicsItem *item, bool implicit)
{
// Append to list of mouse grabber items, and send a mouse grab event.
if (mouseGrabberItems.contains(item)) {
- if (mouseGrabberItems.last() == item)
- qWarning("QGraphicsItem::grabMouse: already a mouse grabber");
- else
+ if (mouseGrabberItems.last() == item) {
+ Q_ASSERT(!implicit);
+ if (!lastMouseGrabberItemHasImplicitMouseGrab) {
+ qWarning("QGraphicsItem::grabMouse: already a mouse grabber");
+ } else {
+ // Upgrade to an explicit mouse grab
+ lastMouseGrabberItemHasImplicitMouseGrab = false;
+ }
+ } else {
qWarning("QGraphicsItem::grabMouse: already blocked by mouse grabber: %p",
mouseGrabberItems.last());
+ }
return;
}
@@ -3089,6 +3105,16 @@ void QGraphicsScene::removeItem(QGraphicsItem *item)
d->unpolishedItems.removeAll(item);
d->dirtyItems.removeAll(item);
+ //We remove all references of item from the sceneEventFilter arrays
+ QMultiMap<QGraphicsItem*, QGraphicsItem*>::iterator iterator = d->sceneEventFilters.begin();
+ while (iterator != d->sceneEventFilters.end()) {
+ if (iterator.value() == item || iterator.key() == item)
+ iterator = d->sceneEventFilters.erase(iterator);
+ else
+ ++iterator;
+ }
+
+
//Ensure dirty flag have the correct default value so the next time it will be added it will receive updates
item->d_func()->dirty = 0;
item->d_func()->dirtyChildren = 0;
@@ -4389,7 +4415,7 @@ static void _q_paintItem(QGraphicsItem *item, QPainter *painter,
? proxy->widget()->windowOpacity() : 1.0;
const qreal oldPainterOpacity = painter->opacity();
- if (qIsFuzzyNull(windowOpacity))
+ if (qFuzzyIsNull(windowOpacity))
return;
// Set new painter opacity.
if (windowOpacity < 1.0)
@@ -4666,9 +4692,11 @@ void QGraphicsScenePrivate::drawItemHelper(QGraphicsItem *item, QPainter *painte
if (newCacheIndent != deviceData->cacheIndent || deviceRect.size() != pix.size()) {
QPoint diff = newCacheIndent - deviceData->cacheIndent;
QPixmap newPix(deviceRect.size());
+ // ### Investigate removing this fill (test with Plasma and
+ // graphicssystem raster).
+ newPix.fill(Qt::transparent);
if (!pix.isNull()) {
QPainter newPixPainter(&newPix);
- newPixPainter.setCompositionMode(QPainter::CompositionMode_Source);
newPixPainter.drawPixmap(-diff, pix);
newPixPainter.end();
}
@@ -5029,7 +5057,7 @@ void QGraphicsScene::itemUpdated(QGraphicsItem *item, const QRectF &rect)
// Deliver the actual update.
if (!d->updateAll) {
if (d->views.isEmpty() || ((d->connectedSignals & d->changedSignalMask) && !item->d_ptr->itemIsUntransformable()
- && qIsFuzzyNull(item->boundingRegionGranularity()))) {
+ && qFuzzyIsNull(item->boundingRegionGranularity()))) {
// This block of code is kept for compatibility. Since 4.5, by default
// QGraphicsView does not connect the signal and we use the below
// method of delivering updates.
diff --git a/src/gui/graphicsview/qgraphicsview.cpp b/src/gui/graphicsview/qgraphicsview.cpp
index 797c895..7720a10 100644
--- a/src/gui/graphicsview/qgraphicsview.cpp
+++ b/src/gui/graphicsview/qgraphicsview.cpp
@@ -1075,7 +1075,7 @@ QList<QGraphicsItem *> QGraphicsViewPrivate::findItems(const QRegion &exposedReg
// Step 1) If all items are contained within the expose region, then
// return a list of all visible items.
- const QRectF exposedRegionSceneBounds = q->mapToScene(exposedRegion.boundingRect().adjusted(-1, -1, 2, 2))
+ const QRectF exposedRegionSceneBounds = q->mapToScene(exposedRegion.boundingRect().adjusted(-1, -1, 1, 1))
.boundingRect();
if (exposedRegionSceneBounds.contains(scene->d_func()->growingItemsBoundingRect)) {
Q_ASSERT(allItems);
@@ -2313,7 +2313,7 @@ QList<QGraphicsItem *> QGraphicsView::items(const QPoint &pos) const
QTransform xinv = viewportTransform().inverted();
return d->scene->items(xinv.mapRect(QRectF(pos.x(), pos.y(), 1, 1)));
}
- return d->scene->items(mapToScene(pos.x(), pos.y(), 2, 2));
+ return d->scene->items(mapToScene(pos.x(), pos.y(), 1, 1));
}
QPainterPath path;
@@ -2475,10 +2475,11 @@ QPolygonF QGraphicsView::mapToScene(const QRect &rect) const
return QPolygonF();
QPointF scrollOffset(d->horizontalScroll(), d->verticalScroll());
- QPointF tl = scrollOffset + rect.topLeft();
- QPointF tr = scrollOffset + rect.topRight();
- QPointF br = scrollOffset + rect.bottomRight();
- QPointF bl = scrollOffset + rect.bottomLeft();
+ QRect r = rect.adjusted(0, 0, 1, 1);
+ QPointF tl = scrollOffset + r.topLeft();
+ QPointF tr = scrollOffset + r.topRight();
+ QPointF br = scrollOffset + r.bottomRight();
+ QPointF bl = scrollOffset + r.bottomLeft();
QPolygonF poly;
poly.resize(4);
@@ -2808,9 +2809,7 @@ void QGraphicsView::setupViewport(QWidget *widget)
const bool isGLWidget = widget->inherits("QGLWidget");
- d->accelerateScrolling = !(isGLWidget
- || widget->testAttribute(Qt::WA_MSWindowsUseDirect3D)
- || qApp->testAttribute(Qt::AA_MSWindowsUseDirect3DByDefault));
+ d->accelerateScrolling = !(isGLWidget);
widget->setFocusPolicy(Qt::StrongFocus);
@@ -3471,7 +3470,7 @@ void QGraphicsView::paintEvent(QPaintEvent *event)
exposedRegion = viewport()->rect();
else if (d->viewportUpdateMode == BoundingRectViewportUpdate)
exposedRegion = event->rect();
- QRectF exposedSceneRect = mapToScene(exposedRegion.boundingRect().adjusted(0, 0, 1, 1)).boundingRect();
+ QRectF exposedSceneRect = mapToScene(exposedRegion.boundingRect()).boundingRect();
// Set up the painter
QPainter painter(viewport());
@@ -3647,30 +3646,30 @@ void QGraphicsView::scrollContentsBy(int dx, int dy)
if (isRightToLeft())
dx = -dx;
- if (d->viewportUpdateMode != QGraphicsView::NoViewportUpdate
- && d->viewportUpdateMode != QGraphicsView::FullViewportUpdate) {
- for (int i = 0; i < d->dirtyRects.size(); ++i)
- d->dirtyRects[i].translate(dx, dy);
- for (int i = 0; i < d->dirtyRegions.size(); ++i)
- d->dirtyRegions[i].translate(dx, dy);
- }
-
+ if (d->viewportUpdateMode != QGraphicsView::NoViewportUpdate) {
+ if (d->viewportUpdateMode != QGraphicsView::FullViewportUpdate) {
+ for (int i = 0; i < d->dirtyRects.size(); ++i)
+ d->dirtyRects[i].translate(dx, dy);
+ for (int i = 0; i < d->dirtyRegions.size(); ++i)
+ d->dirtyRegions[i].translate(dx, dy);
+ if (d->accelerateScrolling) {
#ifndef QT_NO_RUBBERBAND
- // Update old rubberband
- if (d->viewportUpdateMode != QGraphicsView::NoViewportUpdate && !d->rubberBandRect.isEmpty()) {
- if (d->viewportUpdateMode != FullViewportUpdate)
- viewport()->update(d->rubberBandRegion(viewport(), d->rubberBandRect));
- else
- viewport()->update();
- }
+ // Update new and old rubberband regions
+ if (!d->rubberBandRect.isEmpty()) {
+ QRegion rubberBandRegion(d->rubberBandRegion(viewport(), d->rubberBandRect));
+ rubberBandRegion += rubberBandRegion.translated(-dx, -dy);
+ viewport()->update(rubberBandRegion);
+ }
#endif
-
- if (d->viewportUpdateMode != QGraphicsView::NoViewportUpdate){
- if (d->accelerateScrolling && d->viewportUpdateMode != FullViewportUpdate)
- viewport()->scroll(dx, dy);
- else
+ viewport()->scroll(dx, dy);
+ } else {
+ viewport()->update();
+ }
+ } else {
viewport()->update();
+ }
}
+
d->updateLastCenterPoint();
if ((d->cacheMode & CacheBackground)
diff --git a/src/gui/graphicsview/qgraphicswidget.cpp b/src/gui/graphicsview/qgraphicswidget.cpp
index 2e7d82a..66930f2 100644
--- a/src/gui/graphicsview/qgraphicswidget.cpp
+++ b/src/gui/graphicsview/qgraphicswidget.cpp
@@ -1039,10 +1039,6 @@ QVariant QGraphicsWidget::itemChange(GraphicsItemChange change, const QVariant &
break;
}
case ItemParentHasChanged: {
- // reset window type on parent change in order to automagically remove decorations etc.
- Qt::WindowFlags wflags = d->windowFlags & ~Qt::WindowType_Mask;
- d->adjustWindowFlags(&wflags);
- setWindowFlags(wflags);
// Deliver ParentChange.
QEvent event(QEvent::ParentChange);
QApplication::sendEvent(this, &event);
@@ -1623,6 +1619,7 @@ void QGraphicsWidget::setWindowFlags(Qt::WindowFlags wFlags)
return;
bool wasPopup = (d->windowFlags & Qt::WindowType_Mask) == Qt::Popup;
+ d->adjustWindowFlags(&wFlags);
d->windowFlags = wFlags;
if (!d->setWindowFrameMargins)
unsetWindowFrameMargins();
diff --git a/src/gui/graphicsview/qgraphicswidget_p.cpp b/src/gui/graphicsview/qgraphicswidget_p.cpp
index 789f8da..4b41a31 100644
--- a/src/gui/graphicsview/qgraphicswidget_p.cpp
+++ b/src/gui/graphicsview/qgraphicswidget_p.cpp
@@ -66,15 +66,15 @@ void QGraphicsWidgetPrivate::init(QGraphicsItem *parentItem, Qt::WindowFlags wFl
isWidget = 1; // QGraphicsItem::isWidget() returns true.
focusNext = focusPrev = q;
focusPolicy = Qt::NoFocus;
+
+ adjustWindowFlags(&wFlags);
+ windowFlags = wFlags;
+
q->setParentItem(parentItem);
q->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred, QSizePolicy::DefaultType));
q->setGraphicsItem(q);
resolveLayoutDirection();
-
- if (!parentItem)
- adjustWindowFlags(&wFlags);
- windowFlags = wFlags;
q->unsetWindowFrameMargins();
}
qreal QGraphicsWidgetPrivate::titleBarHeight(const QStyleOptionTitleBar &options) const
diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp
index 3c71f15..0514567 100644
--- a/src/gui/image/qicon.cpp
+++ b/src/gui/image/qicon.cpp
@@ -304,6 +304,8 @@ QPixmap QPixmapIconEngine::pixmap(const QSize &size, QIcon::Mode mode, QIcon::St
QString key = QLatin1String("$qt_icon_")
+ QString::number(pm.cacheKey())
+ QString::number(pe->mode)
+ + QString::number(qApp->palette().cacheKey())
+ + QLatin1Char('_')
+ QString::number(actualSize.width())
+ QLatin1Char('_')
+ QString::number(actualSize.height())
diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp
index c7a20db..14e8b8f 100644
--- a/src/gui/image/qimage.cpp
+++ b/src/gui/image/qimage.cpp
@@ -1691,8 +1691,12 @@ void QImage::setColorTable(const QVector<QRgb> colors)
d->colortable = colors;
d->has_alpha_clut = false;
- for (int i = 0; i < d->colortable.size(); ++i)
- d->has_alpha_clut |= (qAlpha(d->colortable.at(i)) != 255);
+ for (int i = 0; i < d->colortable.size(); ++i) {
+ if (qAlpha(d->colortable.at(i)) != 255) {
+ d->has_alpha_clut = true;
+ break;
+ }
+ }
}
/*!
diff --git a/src/gui/image/qnativeimage.cpp b/src/gui/image/qnativeimage.cpp
index 33e565c..dc01fe4 100644
--- a/src/gui/image/qnativeimage.cpp
+++ b/src/gui/image/qnativeimage.cpp
@@ -65,7 +65,7 @@ typedef struct {
QNativeImage::QNativeImage(int width, int height, QImage::Format format, bool isTextBuffer, QWidget *)
{
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
Q_UNUSED(isTextBuffer);
#endif
BITMAPINFO_MASK bmi;
@@ -78,7 +78,7 @@ QNativeImage::QNativeImage(int width, int height, QImage::Format format, bool is
if (format == QImage::Format_RGB16) {
bmi.bmiHeader.biBitCount = 16;
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
if (isTextBuffer) {
bmi.bmiHeader.biCompression = BI_RGB;
bmi.redMask = 0;
@@ -116,7 +116,7 @@ QNativeImage::QNativeImage(int width, int height, QImage::Format format, bool is
Q_ASSERT(image.paintEngine()->type() == QPaintEngine::Raster);
static_cast<QRasterPaintEngine *>(image.paintEngine())->setDC(hdc);
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
GdiFlush();
#endif
}
diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp
index 3b82da8..5568c0d 100644
--- a/src/gui/image/qpixmap.cpp
+++ b/src/gui/image/qpixmap.cpp
@@ -1359,14 +1359,6 @@ bool QPixmap::isDetached() const
void QPixmap::deref()
{
if (data && !data->ref.deref()) { // Destroy image if last ref
-#if !defined(QT_NO_DIRECT3D) && defined(Q_WS_WIN)
- if (data->classId() == QPixmapData::RasterClass) {
- QRasterPixmapData *rData = static_cast<QRasterPixmapData*>(data);
- if (rData->texture)
- rData->texture->Release();
- rData->texture = 0;
- }
-#endif
if (data->is_cached && qt_pixmap_cleanup_hook_64)
qt_pixmap_cleanup_hook_64(cacheKey());
delete data;
@@ -1903,7 +1895,7 @@ int QPixmap::defaultDepth()
return QScreen::instance()->depth();
#elif defined(Q_WS_X11)
return QX11Info::appDepth();
-#elif defined(Q_OS_WINCE)
+#elif defined(Q_WS_WINCE)
return QColormap::instance().depth();
#elif defined(Q_WS_WIN)
return 32; // XXX
@@ -1938,12 +1930,6 @@ void QPixmap::detach()
if (id == QPixmapData::RasterClass) {
QRasterPixmapData *rasterData = static_cast<QRasterPixmapData*>(data);
rasterData->image.detach();
-#if defined(Q_WS_WIN) && !defined(QT_NO_DIRECT3D)
- if (rasterData->texture) {
- rasterData->texture->Release();
- rasterData->texture = 0;
- }
-#endif
}
if (data->is_cached && qt_pixmap_cleanup_hook_64 && data->ref == 1)
diff --git a/src/gui/image/qpixmap.h b/src/gui/image/qpixmap.h
index cd3b465..a5609e4 100644
--- a/src/gui/image/qpixmap.h
+++ b/src/gui/image/qpixmap.h
@@ -254,8 +254,6 @@ private:
friend class QWidgetPrivate;
friend class QRasterPaintEngine;
friend class QRasterBuffer;
- friend class QDirect3DPaintEngine;
- friend class QDirect3DPaintEnginePrivate;
friend class QDetachedPixmap;
#if !defined(QT_NO_DATASTREAM)
friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QPixmap &);
diff --git a/src/gui/image/qpixmap_raster.cpp b/src/gui/image/qpixmap_raster.cpp
index 145b02a..b5556cd 100644
--- a/src/gui/image/qpixmap_raster.cpp
+++ b/src/gui/image/qpixmap_raster.cpp
@@ -50,12 +50,6 @@
#include <private/qwidget_p.h>
#include <private/qdrawhelper_p.h>
-#if !defined(QT_NO_DIRECT3D) && defined(Q_WS_WIN)
-#include <private/qpaintengine_d3d_p.h>
-#include <d3d9.h>
-extern QDirect3DPaintEngine *qt_d3dEngine();
-#endif
-
QT_BEGIN_NAMESPACE
const uchar qt_pixmap_bit_mask[] = { 0x01, 0x02, 0x04, 0x08,
@@ -63,9 +57,6 @@ const uchar qt_pixmap_bit_mask[] = { 0x01, 0x02, 0x04, 0x08,
QRasterPixmapData::QRasterPixmapData(PixelType type)
: QPixmapData(type, RasterClass)
-#if defined(Q_WS_WIN) && !defined(QT_NO_DIRECT3D)
- , texture(0)
-#endif
{
}
diff --git a/src/gui/image/qpixmap_raster_p.h b/src/gui/image/qpixmap_raster_p.h
index 48d5cf8..9d3bf72 100644
--- a/src/gui/image/qpixmap_raster_p.h
+++ b/src/gui/image/qpixmap_raster_p.h
@@ -58,9 +58,6 @@
#ifdef Q_WS_WIN
# include "qt_windows.h"
-# ifndef QT_NO_DIRECT3D
-# include <d3d9.h>
-# endif
#endif
QT_BEGIN_NAMESPACE
@@ -88,10 +85,6 @@ protected:
int metric(QPaintDevice::PaintDeviceMetric metric) const;
private:
-#if defined(Q_WS_WIN) && !defined(QT_NO_DIRECT3D)
- friend class QDirect3DPaintEnginePrivate;
- IDirect3DTexture9 *texture;
-#endif
friend class QPixmap;
friend class QBitmap;
friend class QDetachedPixmap;
diff --git a/src/gui/image/qpixmap_win.cpp b/src/gui/image/qpixmap_win.cpp
index 3ec441b..20bed02 100644
--- a/src/gui/image/qpixmap_win.cpp
+++ b/src/gui/image/qpixmap_win.cpp
@@ -59,7 +59,7 @@
#include "qdebug.h"
#include "qt_windows.h"
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
#include <winbase.h>
#include "qguifunctions_wince.h"
extern bool qt_wince_is_high_dpi();
@@ -80,7 +80,7 @@ QPixmap QPixmap::grabWindow(WId winId, int x, int y, int w, int h )
if (w < 0) w = r.right - r.left;
if (h < 0) h = r.bottom - r.top;
-#ifdef Q_OS_WINCE_WM
+#ifdef Q_WS_WINCE_WM
if (qt_wince_is_pocket_pc()) {
QWidget *widget = QWidget::find(winId);
if (qobject_cast<QDesktopWidget *>(widget)) {
@@ -101,7 +101,7 @@ QPixmap QPixmap::grabWindow(WId winId, int x, int y, int w, int h )
// copy data
HDC window_dc = GetDC(winId);
BitBlt(bitmap_dc, 0, 0, w, h, window_dc, x, y, SRCCOPY
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
| CAPTUREBLT
#endif
);
@@ -288,7 +288,7 @@ QPixmap QPixmap::fromWinHBITMAP(HBITMAP bitmap, HBitmapFormat format)
}
#ifdef Q_WS_WIN
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
static QImage qt_fromWinHBITMAP(HDC hdc, HBITMAP bitmap, int w, int h)
{
@@ -391,7 +391,7 @@ QPixmap convertHIconToPixmap( const HICON icon)
DeleteDC(hdc);
return QPixmap::fromImage(image);
}
-#else //ifndef Q_OS_WINCE
+#else //ifndef Q_WS_WINCE
QPixmap convertHIconToPixmap( const HICON icon, bool large)
{
HDC screenDevice = GetDC(0);
@@ -456,7 +456,7 @@ QPixmap convertHIconToPixmap( const HICON icon, bool large)
DeleteDC(hdc);
return QPixmap::fromImage(image);
}
-#endif //ifndef Q_OS_WINCE
+#endif //ifndef Q_WS_WINCE
QPixmap loadIconFromShell32( int resourceId, int size )
{
diff --git a/src/gui/image/qpixmap_x11.cpp b/src/gui/image/qpixmap_x11.cpp
index 725caeb..d9c10db 100644
--- a/src/gui/image/qpixmap_x11.cpp
+++ b/src/gui/image/qpixmap_x11.cpp
@@ -1437,7 +1437,7 @@ QImage QX11PixmapData::toImage() const
// we may have to swap the byte order
if ((QSysInfo::ByteOrder == QSysInfo::LittleEndian && xi->byte_order == MSBFirst)
- || (QSysInfo::ByteOrder == QSysInfo::BigEndian))
+ || (QSysInfo::ByteOrder == QSysInfo::BigEndian && xi->byte_order == LSBFirst))
{
for (int i=0; i < image.height(); i++) {
uint *p = (uint*)image.scanLine(i);
diff --git a/src/gui/image/qpixmapcache.cpp b/src/gui/image/qpixmapcache.cpp
index 4253f8d..4916489 100644
--- a/src/gui/image/qpixmapcache.cpp
+++ b/src/gui/image/qpixmapcache.cpp
@@ -86,7 +86,7 @@ QT_BEGIN_NAMESPACE
\sa QCache, QPixmap
*/
-#if defined(Q_WS_QWS) || defined(Q_OS_WINCE)
+#if defined(Q_WS_QWS) || defined(Q_WS_WINCE)
static int cache_limit = 2048; // 2048 KB cache limit for embedded
#else
static int cache_limit = 10240; // 10 MB cache limit for desktop
@@ -187,6 +187,11 @@ bool QPMCache::insert(const QString& key, const QPixmap &pixmap, int cost)
cacheKeys.insert(key, cacheKey);
return true;
}
+ qint64 oldCacheKey = cacheKeys.value(key, -1);
+ //If for the same key we add already a pixmap we should delete it
+ if (oldCacheKey != -1)
+ QCache<qint64, QDetachedPixmap>::remove(oldCacheKey);
+
bool success = QCache<qint64, QDetachedPixmap>::insert(cacheKey, new QDetachedPixmap(pixmap), cost);
if (success) {
cacheKeys.insert(key, cacheKey);
@@ -275,7 +280,8 @@ bool QPixmapCache::insert(const QString &key, const QPixmap &pm)
/*!
Returns the cache limit (in kilobytes).
- The default cache limit is 2048 KB for Embedded, 10240 KB for Desktops.
+ The default cache limit is 2048 KB for Embedded, 10240 KB for
+ Desktops.
\sa setCacheLimit()
*/
@@ -288,7 +294,8 @@ int QPixmapCache::cacheLimit()
/*!
Sets the cache limit to \a n kilobytes.
- The default setting is 1024 kilobytes.
+ The default setting is 2048 KB for Embedded, 10240 KB for
+ Desktops.
\sa cacheLimit()
*/
diff --git a/src/gui/image/qpixmapdata_p.h b/src/gui/image/qpixmapdata_p.h
index abb3181..27bc70d 100644
--- a/src/gui/image/qpixmapdata_p.h
+++ b/src/gui/image/qpixmapdata_p.h
@@ -122,7 +122,7 @@ private:
};
#ifdef Q_WS_WIN
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
QPixmap convertHIconToPixmap( const HICON icon);
#else
QPixmap convertHIconToPixmap( const HICON icon, bool large = false);
diff --git a/src/gui/inputmethod/qmacinputcontext_mac.cpp b/src/gui/inputmethod/qmacinputcontext_mac.cpp
index f0e7ea9..86385fa 100644
--- a/src/gui/inputmethod/qmacinputcontext_mac.cpp
+++ b/src/gui/inputmethod/qmacinputcontext_mac.cpp
@@ -45,6 +45,7 @@
#include "qtextformat.h"
#include <qdebug.h>
#include <private/qapplication_p.h>
+#include <private/qkeymapper_p.h>
QT_BEGIN_NAMESPACE
@@ -63,7 +64,8 @@ static QTextFormat qt_mac_compose_format()
}
QMacInputContext::QMacInputContext(QObject *parent)
- : QInputContext(parent), composing(false), recursionGuard(false), textDocument(0)
+ : QInputContext(parent), composing(false), recursionGuard(false), textDocument(0),
+ keydownEvent(0)
{
// createTextDocument();
}
@@ -183,6 +185,16 @@ QMacInputContext::cleanup()
#endif
}
+void QMacInputContext::setLastKeydownEvent(EventRef event)
+{
+ EventRef tmpEvent = keydownEvent;
+ keydownEvent = event;
+ if (keydownEvent)
+ RetainEvent(keydownEvent);
+ if (tmpEvent)
+ ReleaseEvent(tmpEvent);
+}
+
OSStatus
QMacInputContext::globalEventProcessor(EventHandlerCallRef, EventRef event, void *)
{
@@ -335,6 +347,12 @@ QMacInputContext::globalEventProcessor(EventHandlerCallRef, EventRef event, void
GetEventParameter(key_ev, kEventParamKeyMacCharCodes, typeChar, 0, sizeof(chr), 0, &chr);
if(!chr || chr >= 128 || (text.length() > 0 && (text.length() > 1 || text.at(0) != QLatin1Char(chr))))
handled_event = !widget->testAttribute(Qt::WA_InputMethodEnabled);
+ QMacInputContext *context = qobject_cast<QMacInputContext*>(qApp->inputContext());
+ if (context && context->lastKeydownEvent()) {
+ qt_keymapper_private()->translateKeyEvent(widget, 0, context->lastKeydownEvent(),
+ 0, false);
+ context->setLastKeydownEvent(0);
+ }
}
break; }
default:
diff --git a/src/gui/inputmethod/qmacinputcontext_p.h b/src/gui/inputmethod/qmacinputcontext_p.h
index f708040..c3f245a 100644
--- a/src/gui/inputmethod/qmacinputcontext_p.h
+++ b/src/gui/inputmethod/qmacinputcontext_p.h
@@ -78,6 +78,10 @@ public:
static OSStatus globalEventProcessor(EventHandlerCallRef, EventRef, void *);
static void initialize();
static void cleanup();
+
+ EventRef lastKeydownEvent() { return keydownEvent; }
+ void setLastKeydownEvent(EventRef);
+
protected:
void mouseHandler(int pos, QMouseEvent *);
private:
@@ -85,6 +89,7 @@ private:
bool recursionGuard;
TSMDocumentID textDocument;
QString currentText;
+ EventRef keydownEvent;
};
QT_END_NAMESPACE
diff --git a/src/gui/inputmethod/qwininputcontext_win.cpp b/src/gui/inputmethod/qwininputcontext_win.cpp
index 663184f..dd966d5 100644
--- a/src/gui/inputmethod/qwininputcontext_win.cpp
+++ b/src/gui/inputmethod/qwininputcontext_win.cpp
@@ -57,14 +57,16 @@
#ifdef Q_IME_DEBUG
#include "qdebug.h"
-#endif
+#endif
+
+#if defined(Q_WS_WINCE)
+extern void qt_wince_show_SIP(bool show); // defined in qguifunctions_wince.cpp
+#endif
QT_BEGIN_NAMESPACE
extern bool qt_sendSpontaneousEvent(QObject*, QEvent*);
-#if defined(Q_OS_WINCE)
-extern void qt_wince_show_SIP(bool show); // defined in qguifunctions_wince.cpp
-#endif
+
DEFINE_GUID(IID_IActiveIMMApp,
0x08c0e040, 0x62d1, 0x11d1, 0x93, 0x26, 0x0, 0x60, 0xb0, 0x67, 0xb8, 0x6e);
@@ -235,7 +237,7 @@ QWinInputContext::QWinInputContext(QObject *parent)
aimmpump->Start();
}
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
QSysInfo::WinVersion ver = QSysInfo::windowsVersion();
if (ver & QSysInfo::WV_NT_based && ver >= QSysInfo::WV_VISTA) {
// Since the IsValidLanguageGroup/IsValidLocale functions always return true on
@@ -347,7 +349,7 @@ static LONG getCompositionString(HIMC himc, DWORD dwIndex, LPVOID lpbuf, DWORD d
if(QSysInfo::WindowsVersion != QSysInfo::WV_95) {
len = ImmGetCompositionStringW(himc, dwIndex, lpbuf, dBufLen);
}
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
else {
len = ImmGetCompositionStringA(himc, dwIndex, lpbuf, dBufLen);
if (unicode)
@@ -736,7 +738,7 @@ inline void enableIme(QWidget *w, bool value)
// enable ime
if (defaultContext)
ImmAssociateContext(w->effectiveWinId(), defaultContext);
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
if (qApp->autoSipEnabled())
qt_wince_show_SIP(true);
#endif
@@ -745,7 +747,7 @@ inline void enableIme(QWidget *w, bool value)
HIMC oldimc = ImmAssociateContext(w->effectiveWinId(), 0);
if (!defaultContext)
defaultContext = oldimc;
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
if (qApp->autoSipEnabled())
qt_wince_show_SIP(false);
#endif
diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp
index 09ea444..4e4392f 100644
--- a/src/gui/itemviews/qabstractitemview.cpp
+++ b/src/gui/itemviews/qabstractitemview.cpp
@@ -88,6 +88,7 @@ QAbstractItemViewPrivate::QAbstractItemViewPrivate()
autoScroll(true),
autoScrollMargin(16),
autoScrollCount(0),
+ shouldScrollToCurrentOnShow(false),
alternatingColors(false),
textElideMode(Qt::ElideRight),
verticalScrollMode(QAbstractItemView::ScrollPerItem),
@@ -1380,8 +1381,9 @@ bool QAbstractItemView::event(QEvent *event)
d->executePostedLayout(); //make sure we set the layout properly
break;
case QEvent::Show:
- {
- d->executePostedLayout(); //make sure we set the layout properly
+ d->executePostedLayout(); //make sure we set the layout properly
+ if (d->shouldScrollToCurrentOnShow) {
+ d->shouldScrollToCurrentOnShow = false;
const QModelIndex current = currentIndex();
if (current.isValid() && (d->state == QAbstractItemView::EditingState || d->autoScroll))
scrollTo(current);
@@ -1400,6 +1402,9 @@ bool QAbstractItemView::event(QEvent *event)
case QEvent::FocusOut:
d->checkPersistentEditorFocus();
break;
+ case QEvent::FontChange:
+ d->doDelayedItemsLayout(); // the size of the items will change
+ break;
default:
break;
}
@@ -3157,13 +3162,18 @@ void QAbstractItemView::currentChanged(const QModelIndex &current, const QModelI
update(previous);
}
}
- if (isVisible() && current.isValid() && !d->autoScrollTimer.isActive()) {
- if (d->autoScroll)
- scrollTo(current);
- update(current);
- edit(current, CurrentChanged, 0);
- if (current.row() == (d->model->rowCount(d->root) - 1))
- d->_q_fetchMore();
+
+ if (current.isValid() && !d->autoScrollTimer.isActive()) {
+ if (isVisible()) {
+ if (d->autoScroll)
+ scrollTo(current);
+ update(current);
+ edit(current, CurrentChanged, 0);
+ if (current.row() == (d->model->rowCount(d->root) - 1))
+ d->_q_fetchMore();
+ } else {
+ d->shouldScrollToCurrentOnShow = d->autoScroll;
+ }
}
}
diff --git a/src/gui/itemviews/qabstractitemview_p.h b/src/gui/itemviews/qabstractitemview_p.h
index 37fe4a2..16bd1ab 100644
--- a/src/gui/itemviews/qabstractitemview_p.h
+++ b/src/gui/itemviews/qabstractitemview_p.h
@@ -359,6 +359,7 @@ public:
QBasicTimer autoScrollTimer;
int autoScrollMargin;
int autoScrollCount;
+ bool shouldScrollToCurrentOnShow; //used to know if we should scroll to current on show event
bool alternatingColors;
diff --git a/src/gui/itemviews/qdirmodel.cpp b/src/gui/itemviews/qdirmodel.cpp
index 7da7c7a..65e3032 100644
--- a/src/gui/itemviews/qdirmodel.cpp
+++ b/src/gui/itemviews/qdirmodel.cpp
@@ -44,6 +44,7 @@
#ifndef QT_NO_DIRMODEL
#include <qstack.h>
#include <qfile.h>
+#include <qfilesystemmodel.h>
#include <qurl.h>
#include <qmime.h>
#include <qpair.h>
@@ -1335,14 +1336,14 @@ QString QDirModelPrivate::size(const QModelIndex &index) const
const quint64 tb = 1024 * gb;
quint64 bytes = n->info.size();
if (bytes >= tb)
- return QLocale().toString(bytes / tb) + QString::fromLatin1(" TB");
+ return QFileSystemModel::tr("%1 TB").arg(QLocale().toString(qreal(bytes) / tb, 'f', 3));
if (bytes >= gb)
- return QLocale().toString(bytes / gb) + QString::fromLatin1(" GB");
+ return QFileSystemModel::tr("%1 GB").arg(QLocale().toString(qreal(bytes) / gb, 'f', 2));
if (bytes >= mb)
- return QLocale().toString(bytes / mb) + QString::fromLatin1(" MB");
+ return QFileSystemModel::tr("%1 MB").arg(QLocale().toString(qreal(bytes) / mb, 'f', 1));
if (bytes >= kb)
- return QLocale().toString(bytes / kb) + QString::fromLatin1(" KB");
- return QLocale().toString(bytes) + QString::fromLatin1(" bytes");
+ return QFileSystemModel::tr("%1 KB").arg(QLocale().toString(bytes / kb));
+ return QFileSystemModel::tr("%1 bytes").arg(QLocale().toString(bytes));
}
QString QDirModelPrivate::type(const QModelIndex &index) const
diff --git a/src/gui/itemviews/qfileiconprovider.cpp b/src/gui/itemviews/qfileiconprovider.cpp
index ac62551..9f33af3 100644
--- a/src/gui/itemviews/qfileiconprovider.cpp
+++ b/src/gui/itemviews/qfileiconprovider.cpp
@@ -356,7 +356,7 @@ QIcon QFileIconProvider::icon(const QFileInfo &info) const
return icon;
#endif
if (info.isRoot())
-#if defined (Q_WS_WIN) && !defined(Q_OS_WINCE)
+#if defined (Q_WS_WIN) && !defined(Q_WS_WINCE)
{
uint type = DRIVE_UNKNOWN;
QT_WA({ type = GetDriveTypeW((wchar_t *)info.absoluteFilePath().utf16()); },
diff --git a/src/gui/itemviews/qheaderview.cpp b/src/gui/itemviews/qheaderview.cpp
index aacfab0..6238df5 100644
--- a/src/gui/itemviews/qheaderview.cpp
+++ b/src/gui/itemviews/qheaderview.cpp
@@ -1195,7 +1195,7 @@ QHeaderView::ResizeMode QHeaderView::resizeMode(int logicalIndex) const
Q_D(const QHeaderView);
int visual = visualIndex(logicalIndex);
Q_ASSERT(visual != -1);
- return d->visualIndexResizeMode(visual);
+ return d->headerSectionResizeMode(visual);
}
/*!
@@ -1234,7 +1234,7 @@ void QHeaderView::setSortIndicatorShown(bool show)
if (sortIndicatorSection() < 0 || sortIndicatorSection() > count())
return;
- if (d->visualIndexResizeMode(sortIndicatorSection()) == ResizeToContents)
+ if (d->headerSectionResizeMode(sortIndicatorSection()) == ResizeToContents)
resizeSections();
d->viewport->update();
@@ -1388,8 +1388,7 @@ int QHeaderView::defaultSectionSize() const
void QHeaderView::setDefaultSectionSize(int size)
{
Q_D(QHeaderView);
- d->defaultSectionSize = size;
- d->forceInitializing = true;
+ d->setDefaultSectionSize(size);
}
/*!
@@ -1894,9 +1893,6 @@ void QHeaderView::initializeSections()
//make sure we update the hidden sections
if (newCount < oldCount)
d->updateHiddenSections(0, newCount-1);
- } else if (d->forceInitializing) {
- initializeSections(0, newCount - 1);
- d->forceInitializing = false;
}
}
@@ -1952,7 +1948,7 @@ void QHeaderView::initializeSections(int start, int end)
if (!d->sectionHidden.isEmpty())
d->sectionHidden.resize(d->sectionCount);
- if (d->sectionCount > oldCount || d->forceInitializing)
+ if (d->sectionCount > oldCount)
d->createSectionSpan(start, end, (end - start + 1) * d->defaultSectionSize, d->globalResizeMode);
//Q_ASSERT(d->headerLength() == d->length);
@@ -2937,22 +2933,25 @@ int QHeaderViewPrivate::lastVisibleVisualIndex() const
void QHeaderViewPrivate::resizeSections(QHeaderView::ResizeMode globalMode, bool useGlobalMode)
{
Q_Q(QHeaderView);
+ //stop the timer in case it is delayed
+ delayedResize.stop();
executePostedLayout();
if (sectionCount == 0)
return;
+
+ if (resizeRecursionBlock)
+ return;
+ resizeRecursionBlock = true;
+
invalidateCachedSizeHint();
+ const int lastVisibleSection = lastVisibleVisualIndex();
+
// find stretchLastSection if we have it
int stretchSection = -1;
- if (stretchLastSection && !useGlobalMode) {
- for (int i = sectionCount - 1; i >= 0; --i) {
- if (!isVisualIndexHidden(i)) {
- stretchSection = i;
- break;
- }
- }
- }
+ if (stretchLastSection && !useGlobalMode)
+ stretchSection = lastVisibleVisualIndex();
// count up the number of strected sections and how much space left for them
int lengthToStrech = (orientation == Qt::Horizontal ? viewport->width() : viewport->height());
@@ -2966,7 +2965,7 @@ void QHeaderViewPrivate::resizeSections(QHeaderView::ResizeMode globalMode, bool
if (useGlobalMode && (i != stretchSection))
resizeMode = globalMode;
else
- resizeMode = (i == stretchSection ? QHeaderView::Stretch : visualIndexResizeMode(i));
+ resizeMode = (i == stretchSection ? QHeaderView::Stretch : headerSectionResizeMode(i));
if (resizeMode == QHeaderView::Stretch) {
++numberOfStretchedSections;
@@ -2998,7 +2997,6 @@ void QHeaderViewPrivate::resizeSections(QHeaderView::ResizeMode globalMode, bool
int spanStartSection = 0;
int previousSectionLength = 0;
- const int lastVisibleSection = lastVisibleVisualIndex();
QHeaderView::ResizeMode previousSectionResizeMode = QHeaderView::Interactive;
@@ -3017,7 +3015,7 @@ void QHeaderViewPrivate::resizeSections(QHeaderView::ResizeMode globalMode, bool
else
resizeMode = (i == stretchSection
? QHeaderView::Stretch
- : visualIndexResizeMode(i));
+ : newSectionResizeMode);
if (resizeMode == QHeaderView::Stretch && stretchSectionLength != -1) {
if (i == lastVisibleSection)
newSectionLength = qMax(stretchSectionLength, lastSectionSize);
@@ -3054,7 +3052,7 @@ void QHeaderViewPrivate::resizeSections(QHeaderView::ResizeMode globalMode, bool
(sectionCount - spanStartSection) * previousSectionLength,
previousSectionResizeMode);
//Q_ASSERT(headerLength() == length);
-
+ resizeRecursionBlock = false;
viewport->update();
}
@@ -3363,6 +3361,29 @@ void QHeaderViewPrivate::cascadingResize(int visual, int newSize)
viewport->update();
}
+void QHeaderViewPrivate::setDefaultSectionSize(int size)
+{
+ Q_Q(QHeaderView);
+ defaultSectionSize = size;
+ int currentVisualIndex = 0;
+ for (int i = 0; i < sectionSpans.count(); ++i) {
+ QHeaderViewPrivate::SectionSpan &span = sectionSpans[i];
+ if (span.size > 0) {
+ //we resize it if it is not hidden (ie size > 0)
+ const int newSize = span.count * size;
+ if (newSize != span.size) {
+ length += newSize - span.size; //the whole length is changed
+ const int oldSectionSize = span.sectionSize();
+ span.size = span.count * size;
+ for (int i = currentVisualIndex; i < currentVisualIndex + span.count; ++i) {
+ emit q->sectionResized(logicalIndex(i), oldSectionSize, size);
+ }
+ }
+ }
+ currentVisualIndex += span.count;
+ }
+}
+
void QHeaderViewPrivate::resizeSectionSpan(int visualIndex, int oldSize, int newSize)
{
Q_Q(QHeaderView);
diff --git a/src/gui/itemviews/qheaderview_p.h b/src/gui/itemviews/qheaderview_p.h
index fbba69a..cfb1c3e 100644
--- a/src/gui/itemviews/qheaderview_p.h
+++ b/src/gui/itemviews/qheaderview_p.h
@@ -90,7 +90,7 @@ public:
highlightSelected(false),
stretchLastSection(false),
cascadingResizing(false),
- forceInitializing(false),
+ resizeRecursionBlock(false),
stretchSections(0),
contentsSections(0),
minimumSectionSize(-1),
@@ -170,10 +170,6 @@ public:
if (!sectionHidden.isEmpty()) sectionHidden.setBit(visual, hidden);
}
- inline QHeaderView::ResizeMode visualIndexResizeMode(int visual) const {
- return headerSectionResizeMode(visual);
- }
-
inline bool hasAutoResizeSections() const {
return stretchSections || stretchLastSection || contentsSections;
}
@@ -211,7 +207,7 @@ public:
}
inline bool sectionIsCascadable(int visual) const {
- return visualIndexResizeMode(visual) == QHeaderView::Interactive;
+ return headerSectionResizeMode(visual) == QHeaderView::Interactive;
}
inline int modelSectionCount() const {
@@ -231,7 +227,6 @@ public:
inline void executePostedResize() const {
if (delayedResize.isActive() && state == NoState) {
- delayedResize.stop();
const_cast<QHeaderView*>(q_func())->resizeSections();
}
}
@@ -275,7 +270,7 @@ public:
bool highlightSelected;
bool stretchLastSection;
bool cascadingResizing;
- bool forceInitializing;
+ bool resizeRecursionBlock;
int stretchSections;
int contentsSections;
int defaultSectionSize;
@@ -310,6 +305,7 @@ public:
void createSectionSpan(int start, int end, int size, QHeaderView::ResizeMode mode);
void removeSectionsFromSpans(int start, int end);
void resizeSectionSpan(int visualIndex, int oldSize, int newSize);
+ void setDefaultSectionSize(int size);
inline int headerSectionCount() const { // for debugging
int count = 0;
diff --git a/src/gui/itemviews/qitemselectionmodel.cpp b/src/gui/itemviews/qitemselectionmodel.cpp
index 1a3ae2d..8baefdf 100644
--- a/src/gui/itemviews/qitemselectionmodel.cpp
+++ b/src/gui/itemviews/qitemselectionmodel.cpp
@@ -1313,11 +1313,11 @@ bool QItemSelectionModel::rowIntersectsSelection(int row, const QModelIndex &par
int left = sel.at(i).left();
int right = sel.at(i).right();
if (top <= row && bottom >= row) {
- Qt::ItemFlags leftFlags = d->model->index(row, left, parent).flags();
- Qt::ItemFlags rightFlags = d->model->index(row, right, parent).flags();
- if ((leftFlags & Qt::ItemIsSelectable) && (leftFlags & Qt::ItemIsEnabled)
- && (rightFlags & Qt::ItemIsSelectable) && (rightFlags & Qt::ItemIsEnabled))
- return true;
+ for (int j = left; j <= right; j++) {
+ const Qt::ItemFlags flags = d->model->index(row, j, parent).flags();
+ if ((flags & Qt::ItemIsSelectable) && (flags & Qt::ItemIsEnabled))
+ return true;
+ }
}
}
@@ -1342,11 +1342,11 @@ bool QItemSelectionModel::columnIntersectsSelection(int column, const QModelInde
int top = sel.at(i).top();
int bottom = sel.at(i).bottom();
if (left <= column && right >= column) {
- Qt::ItemFlags topFlags = d->model->index(top, column, parent).flags();
- Qt::ItemFlags bottomFlags = d->model->index(bottom, column, parent).flags();
- if ((topFlags & Qt::ItemIsSelectable) && (topFlags & Qt::ItemIsEnabled)
- && (bottomFlags & Qt::ItemIsSelectable) && (bottomFlags & Qt::ItemIsEnabled))
- return true;
+ for (int j = top; j <= bottom; j++) {
+ const Qt::ItemFlags flags = d->model->index(j, column, parent).flags();
+ if ((flags & Qt::ItemIsSelectable) && (flags & Qt::ItemIsEnabled))
+ return true;
+ }
}
}
diff --git a/src/gui/itemviews/qsortfilterproxymodel.cpp b/src/gui/itemviews/qsortfilterproxymodel.cpp
index 10bcb9a..56925b8 100644
--- a/src/gui/itemviews/qsortfilterproxymodel.cpp
+++ b/src/gui/itemviews/qsortfilterproxymodel.cpp
@@ -56,6 +56,15 @@ QT_BEGIN_NAMESPACE
typedef QList<QPair<QModelIndex, QPersistentModelIndex> > QModelIndexPairList;
+static inline QSet<int> qVectorToSet(const QVector<int> &vector)
+{
+ QSet<int> set;
+ set.reserve(vector.size());
+ for(int i=0; i < vector.size(); ++i)
+ set << vector.at(i);
+ return set;
+}
+
class QSortFilterProxyModelLessThan
{
public:
@@ -144,6 +153,7 @@ public:
const QModelIndex &proxy_index) const
{
Q_ASSERT(proxy_index.isValid());
+ Q_ASSERT(proxy_index.model() == q_func());
const void *p = proxy_index.internalPointer();
Q_ASSERT(p);
QMap<QModelIndex, Mapping *>::const_iterator it =
@@ -223,8 +233,8 @@ public:
QModelIndexPairList store_persistent_indexes();
void update_persistent_indexes(const QModelIndexPairList &source_indexes);
- void filter_changed();
- void handle_filter_changed(
+ void filter_changed(const QModelIndex &source_parent = QModelIndex());
+ QSet<int> handle_filter_changed(
QVector<int> &source_to_proxy, QVector<int> &proxy_to_source,
const QModelIndex &source_parent, Qt::Orientation orient);
@@ -311,6 +321,10 @@ QModelIndex QSortFilterProxyModelPrivate::proxy_to_source(const QModelIndex &pro
{
if (!proxy_index.isValid())
return QModelIndex(); // for now; we may want to be able to set a root index later
+ if (proxy_index.model() != q_func()) {
+ qWarning() << "QSortFilterProxyModel: index from wrong model passed to mapToSource";
+ return QModelIndex();
+ }
IndexMap::const_iterator it = index_to_iterator(proxy_index);
Mapping *m = it.value();
if ((proxy_index.row() >= m->source_rows.size()) || (proxy_index.column() >= m->source_columns.size()))
@@ -324,6 +338,10 @@ QModelIndex QSortFilterProxyModelPrivate::source_to_proxy(const QModelIndex &sou
{
if (!source_index.isValid())
return QModelIndex(); // for now; we may want to be able to set a root index later
+ if (source_index.model() != model) {
+ qWarning() << "QSortFilterProxyModel: index from wrong model passed to mapFromSource";
+ return QModelIndex();
+ }
QModelIndex source_parent = source_index.parent();
IndexMap::const_iterator it = create_mapping(source_parent);
Mapping *m = it.value();
@@ -928,27 +946,39 @@ void QSortFilterProxyModelPrivate::update_persistent_indexes(
q->changePersistentIndexList(from, to);
}
+
/*!
\internal
Updates the proxy model (adds/removes rows) based on the
new filter.
*/
-void QSortFilterProxyModelPrivate::filter_changed()
+void QSortFilterProxyModelPrivate::filter_changed(const QModelIndex &source_parent)
{
- QMap<QModelIndex, Mapping *>::const_iterator it;
- for (it = source_index_mapping.constBegin(); it != source_index_mapping.constEnd(); ++it) {
- QModelIndex source_parent = it.key();
- Mapping *m = it.value();
- handle_filter_changed(m->proxy_rows, m->source_rows, source_parent, Qt::Vertical);
- handle_filter_changed(m->proxy_columns, m->source_columns, source_parent, Qt::Horizontal);
+ IndexMap::const_iterator it = source_index_mapping.constFind(source_parent);
+ if (it == source_index_mapping.constEnd())
+ return;
+ Mapping *m = it.value();
+ QSet<int> rows_removed = handle_filter_changed(m->proxy_rows, m->source_rows, source_parent, Qt::Vertical);
+ QSet<int> columns_removed = handle_filter_changed(m->proxy_columns, m->source_columns, source_parent, Qt::Horizontal);
+ QVector<QModelIndex>::iterator it2 = m->mapped_children.end();
+ while (it2 != m->mapped_children.begin()) {
+ --it2;
+ const QModelIndex source_child_index = *it2;
+ if (rows_removed.contains(source_child_index.row()) || columns_removed.contains(source_child_index.column())) {
+ it2 = m->mapped_children.erase(it2);
+ remove_from_mapping(source_child_index);
+ } else {
+ filter_changed(source_child_index);
+ }
}
}
/*!
\internal
+ returns the removed items indexes
*/
-void QSortFilterProxyModelPrivate::handle_filter_changed(
+QSet<int> QSortFilterProxyModelPrivate::handle_filter_changed(
QVector<int> &source_to_proxy, QVector<int> &proxy_to_source,
const QModelIndex &source_parent, Qt::Orientation orient)
{
@@ -985,6 +1015,7 @@ void QSortFilterProxyModelPrivate::handle_filter_changed(
insert_source_items(source_to_proxy, proxy_to_source,
source_items_insert, source_parent, orient);
}
+ return qVectorToSet(source_items_remove);
}
void QSortFilterProxyModelPrivate::_q_sourceDataChanged(const QModelIndex &source_top_left,
@@ -1032,9 +1063,20 @@ void QSortFilterProxyModelPrivate::_q_sourceDataChanged(const QModelIndex &sourc
}
}
- if (!source_rows_remove.isEmpty())
+ if (!source_rows_remove.isEmpty()) {
remove_source_items(m->proxy_rows, m->source_rows,
source_rows_remove, source_parent, Qt::Vertical);
+ QSet<int> source_rows_remove_set = qVectorToSet(source_rows_remove);
+ QVector<QModelIndex>::iterator it = m->mapped_children.end();
+ while (it != m->mapped_children.begin()) {
+ --it;
+ const QModelIndex source_child_index = *it;
+ if (source_rows_remove_set.contains(source_child_index.row())) {
+ it = m->mapped_children.erase(it);
+ remove_from_mapping(source_child_index);
+ }
+ }
+ }
if (!source_rows_resort.isEmpty()) {
// Re-sort the rows
@@ -1569,6 +1611,10 @@ bool QSortFilterProxyModel::hasChildren(const QModelIndex &parent) const
return false;
if (!d->model->hasChildren(source_parent))
return false;
+
+ if (d->model->canFetchMore(source_parent))
+ return true; //we assume we might have children that can be fetched
+
QSortFilterProxyModelPrivate::Mapping *m = d->create_mapping(source_parent).value();
return m->source_rows.count() != 0 && m->source_columns.count() != 0;
}
diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
index 6dddfab..61f1b5b 100644
--- a/src/gui/itemviews/qtreeview.cpp
+++ b/src/gui/itemviews/qtreeview.cpp
@@ -2019,6 +2019,7 @@ int QTreeView::verticalOffset() const
// If we are scrolling per item and have non-uniform row heights,
// finding the vertical offset in pixels is going to be relatively slow.
// ### find a faster way to do this
+ d->executePostedLayout();
int offset = 0;
for (int i = 0; i < d->viewItems.count(); ++i) {
if (i == verticalScrollBar()->value())
diff --git a/src/gui/kernel/kernel.pri b/src/gui/kernel/kernel.pri
index cb2b014..a1b982a 100644
--- a/src/gui/kernel/kernel.pri
+++ b/src/gui/kernel/kernel.pri
@@ -193,7 +193,7 @@ embedded {
MENU_NIB.path = Resources
MENU_NIB.version = Versions
QMAKE_BUNDLE_DATA += MENU_NIB
- RESOURCES += mac/maccursors.qrc
+ RESOURCES += mac/macresources.qrc
LIBS += -framework AppKit
}
diff --git a/src/gui/kernel/qaction.cpp b/src/gui/kernel/qaction.cpp
index c6addc1..b2afbd0 100644
--- a/src/gui/kernel/qaction.cpp
+++ b/src/gui/kernel/qaction.cpp
@@ -1370,7 +1370,7 @@ QAction::MenuRole QAction::menuRole() const
void QAction::setIconVisibleInMenu(bool visible)
{
Q_D(QAction);
- if (visible != (bool)d->iconVisibleInMenu) {
+ if (d->iconVisibleInMenu == -1 || visible != bool(d->iconVisibleInMenu)) {
int oldValue = d->iconVisibleInMenu;
d->iconVisibleInMenu = visible;
// Only send data changed if we really need to.
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index d5a96bd..98285f0 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -89,7 +89,7 @@
#include "qapplication.h"
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
#include "qdatetime.h"
#include "qguifunctions_wince.h"
extern bool qt_wince_is_smartphone(); //qguifunctions_wince.cpp
@@ -101,15 +101,12 @@ extern bool qt_wince_is_pocket_pc(); //qguifunctions_wince.cpp
static void initResources()
{
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
Q_INIT_RESOURCE(qstyle_wince);
#else
Q_INIT_RESOURCE(qstyle);
#endif
-#if !defined(QT_NO_DIRECT3D) && defined(Q_WS_WIN)
- Q_INIT_RESOURCE(qpaintengine_d3d);
-#endif
Q_INIT_RESOURCE(qmessagebox);
#if !defined(QT_NO_PRINTDIALOG)
Q_INIT_RESOURCE(qprintdialog);
@@ -130,7 +127,7 @@ QInputContext *QApplicationPrivate::inputContext;
bool QApplicationPrivate::quitOnLastWindowClosed = true;
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
int QApplicationPrivate::autoMaximizeThreshold = -1;
bool QApplicationPrivate::autoSipEnabled = false;
#endif
@@ -442,7 +439,7 @@ bool QApplicationPrivate::fade_tooltip = false;
bool QApplicationPrivate::animate_toolbox = false;
bool QApplicationPrivate::widgetCount = false;
QString* QApplicationPrivate::styleOverride = 0;
-#if defined(Q_WS_WIN) && !defined(Q_OS_WINCE)
+#if defined(Q_WS_WIN) && !defined(Q_WS_WINCE)
bool QApplicationPrivate::inSizeMove = false;
#endif
#ifdef QT_KEYPAD_NAVIGATION
@@ -620,13 +617,6 @@ void QApplicationPrivate::process_cmdline()
and QPixmaps. Available options are \c{raster} and \c{opengl}.
\endlist
- The Windows version of Qt supports an additional command line option, if
- Direct3D support has been compiled into Qt:
- \list
- \o -direct3d will make the Direct3D paint engine the default widget
- paint engine in Qt. \bold {This functionality is experimental.}
- \endlist
-
The X11 version of Qt supports some traditional X11 command line options:
\list
\o -display \e display, sets the X display (default is $DISPLAY).
@@ -832,12 +822,13 @@ QApplication::QApplication(Display *dpy, int &argc, char **argv,
#endif // Q_WS_X11
+extern void qInitDrawhelperAsm();
/*!
+ \fn void QApplicationPrivate::initialize()
+
Initializes the QApplication object, called from the constructors.
*/
-extern void qInitDrawhelperAsm();
-
void QApplicationPrivate::initialize()
{
QWidgetPrivate::mapper = new QWidgetMapper;
@@ -865,7 +856,7 @@ void QApplicationPrivate::initialize()
q->setAttribute(Qt::AA_NativeWindows);
#endif
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
#ifdef QT_AUTO_MAXIMIZE_THRESHOLD
autoMaximizeThreshold = QT_AUTO_MAXIMIZE_THRESHOLD;
#else
@@ -874,7 +865,7 @@ void QApplicationPrivate::initialize()
else
autoMaximizeThreshold = -1;
#endif //QT_AUTO_MAXIMIZE_THRESHOLD
-#endif //Q_OS_WINCE
+#endif //Q_WS_WINCE
// Set up which span functions should be used in raster engine...
qInitDrawhelperAsm();
@@ -1226,7 +1217,7 @@ bool QApplication::compressEvent(QEvent *event, QObject *receiver, QPostEventLis
the WA_InputMethodEnabled attribute set.
*/
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
void QApplication::setAutoMaximizeThreshold(const int threshold)
{
QApplicationPrivate::autoMaximizeThreshold = threshold;
@@ -1301,7 +1292,7 @@ QStyle *QApplication::style()
delete QApplicationPrivate::styleOverride;
QApplicationPrivate::styleOverride = 0;
} else {
-#if defined(Q_WS_WIN) && defined(Q_OS_WINCE)
+#if defined(Q_WS_WIN) && defined(Q_WS_WINCE)
if (qt_wince_is_smartphone() || qt_wince_is_pocket_pc())
style = QLatin1String("WindowsMobile");
else
@@ -2100,8 +2091,8 @@ void QApplicationPrivate::setFocusWidget(QWidget *focus, Qt::FocusReason reason)
if (that)
QApplication::sendEvent(that->style(), &in);
}
+ emit qApp->focusChanged(prev, focus_widget);
}
- emit qApp->focusChanged(prev, focus_widget);
}
}
@@ -3498,7 +3489,7 @@ void QApplication::changeOverrideCursor(const QCursor &cursor)
It is necessary to call this function to start event handling. The main
event loop receives events from the window system and dispatches these to
the application widgets.
-
+
Generally, no user interaction can take place before calling exec(). As a
special case, modal widgets like QMessageBox can be used before calling
exec(), because modal widgets call exec() to start a local event loop.
@@ -4036,7 +4027,7 @@ bool QApplicationPrivate::notify_helper(QObject *receiver, QEvent * e)
if (receiver->isWidgetType()) {
QWidget *widget = static_cast<QWidget *>(receiver);
-#if !defined(Q_OS_WINCE) || (defined(GWES_ICONCURS) && !defined(QT_NO_CURSOR))
+#if !defined(Q_WS_WINCE) || (defined(GWES_ICONCURS) && !defined(QT_NO_CURSOR))
// toggle HasMouse widget state on enter and leave
if ((e->type() == QEvent::Enter || e->type() == QEvent::DragEnter) &&
(!qApp->activePopupWidget() || qApp->activePopupWidget() == widget->window()))
diff --git a/src/gui/kernel/qapplication.h b/src/gui/kernel/qapplication.h
index 1d6941d..2baf6dc 100644
--- a/src/gui/kernel/qapplication.h
+++ b/src/gui/kernel/qapplication.h
@@ -102,7 +102,7 @@ class Q_GUI_EXPORT QApplication : public QCoreApplication
#ifndef QT_NO_STYLE_STYLESHEET
Q_PROPERTY(QString styleSheet READ styleSheet WRITE setStyleSheet)
#endif
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
Q_PROPERTY(int autoMaximizeThreshold READ autoMaximizeThreshold WRITE setAutoMaximizeThreshold)
Q_PROPERTY(bool autoSipEnabled READ autoSipEnabled WRITE setAutoSipEnabled)
#endif
@@ -281,7 +281,7 @@ public Q_SLOTS:
#ifndef QT_NO_STYLE_STYLESHEET
void setStyleSheet(const QString& sheet);
#endif
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
void setAutoMaximizeThreshold(const int threshold);
int autoMaximizeThreshold() const;
void setAutoSipEnabled(const bool enabled);
diff --git a/src/gui/kernel/qapplication_mac.mm b/src/gui/kernel/qapplication_mac.mm
index ae99e83..d5fa9ea 100644
--- a/src/gui/kernel/qapplication_mac.mm
+++ b/src/gui/kernel/qapplication_mac.mm
@@ -194,8 +194,8 @@ static bool appNoGrab = false; // mouse/keyboard grabbing
#ifndef QT_MAC_USE_COCOA
static EventHandlerRef app_proc_handler = 0;
static EventHandlerUPP app_proc_handlerUPP = 0;
-static AEEventHandlerUPP app_proc_ae_handlerUPP = NULL;
#endif
+static AEEventHandlerUPP app_proc_ae_handlerUPP = NULL;
static EventHandlerRef tablet_proximity_handler = 0;
static EventHandlerUPP tablet_proximity_UPP = 0;
bool QApplicationPrivate::native_modal_dialog_active;
@@ -951,7 +951,6 @@ void qt_mac_event_release(QWidget *w)
}
}
-#ifndef QT_MAC_USE_COCOA
struct QMacAppleEventTypeSpec {
AEEventClass mac_class;
AEEventID mac_id;
@@ -959,6 +958,7 @@ struct QMacAppleEventTypeSpec {
{ kCoreEventClass, kAEQuitApplication },
{ kCoreEventClass, kAEOpenDocuments }
};
+#ifndef QT_MAC_USE_COCOA
/* watched events */
static EventTypeSpec app_events[] = {
{ kEventClassQt, kEventQtRequestWindowChange },
@@ -1156,13 +1156,13 @@ void qt_init(QApplicationPrivate *priv, int)
qt_init_app_proc_handler();
}
+#endif
if (!app_proc_ae_handlerUPP) {
app_proc_ae_handlerUPP = AEEventHandlerUPP(QApplicationPrivate::globalAppleEventProcessor);
for(uint i = 0; i < sizeof(app_apple_events) / sizeof(QMacAppleEventTypeSpec); ++i)
AEInstallEventHandler(app_apple_events[i].mac_class, app_apple_events[i].mac_id,
app_proc_ae_handlerUPP, SRefCon(qApp), true);
}
-#endif
if (QApplicationPrivate::app_style) {
QEvent ev(QEvent::Style);
@@ -1196,10 +1196,6 @@ void qt_init(QApplicationPrivate *priv, int)
[qtMenuLoader release];
}
#endif
- if (QApplication::testAttribute(Qt::AA_MacPluginApplication)) {
- extern void qt_mac_set_native_menubar(bool);
- qt_mac_set_native_menubar(false);
- }
// Register for Carbon tablet proximity events on the event monitor target.
// This means that we should receive proximity events even when we aren't the active application.
if (!tablet_proximity_handler) {
@@ -1210,6 +1206,17 @@ void qt_init(QApplicationPrivate *priv, int)
}
+void qt_release_apple_event_handler()
+{
+ if(app_proc_ae_handlerUPP) {
+ for(uint i = 0; i < sizeof(app_apple_events) / sizeof(QMacAppleEventTypeSpec); ++i)
+ AERemoveEventHandler(app_apple_events[i].mac_class, app_apple_events[i].mac_id,
+ app_proc_ae_handlerUPP, true);
+ DisposeAEEventHandlerUPP(app_proc_ae_handlerUPP);
+ app_proc_ae_handlerUPP = 0;
+ }
+}
+
/*****************************************************************************
qt_cleanup() - cleans up when the application is finished
*****************************************************************************/
@@ -1223,15 +1230,8 @@ void qt_cleanup()
DisposeEventHandlerUPP(app_proc_handlerUPP);
app_proc_handlerUPP = 0;
}
- if(app_proc_ae_handlerUPP) {
- for(uint i = 0; i < sizeof(app_apple_events) / sizeof(QMacAppleEventTypeSpec); ++i)
- AERemoveEventHandler(app_apple_events[i].mac_class, app_apple_events[i].mac_id,
- app_proc_ae_handlerUPP, true);
- DisposeAEEventHandlerUPP(app_proc_ae_handlerUPP);
- app_proc_ae_handlerUPP = NULL;
- }
#endif
-
+ qt_release_apple_event_handler();
qt_release_tablet_proximity_handler();
if (tablet_proximity_UPP)
DisposeEventHandlerUPP(tablet_proximity_UPP);
@@ -2358,6 +2358,12 @@ QApplicationPrivate::globalEventProcessor(EventHandlerCallRef er, EventRef event
#endif
}
+// In Carbon this is your one stop for apple events.
+// In Cocoa, it ISN'T. This is the catch-all Apple Event handler that exists
+// for the time between instantiating the NSApplication, but before the
+// NSApplication has installed it's OWN Apple Event handler. When Cocoa has
+// that set up, we remove this. So, if you are debugging problems, you likely
+// want to check out QCocoaApplicationDelegate instead.
OSStatus QApplicationPrivate::globalAppleEventProcessor(const AppleEvent *ae, AppleEvent *, long handlerRefcon)
{
QApplication *app = (QApplication *)handlerRefcon;
diff --git a/src/gui/kernel/qapplication_p.h b/src/gui/kernel/qapplication_p.h
index 7487f0a..7e97418 100644
--- a/src/gui/kernel/qapplication_p.h
+++ b/src/gui/kernel/qapplication_p.h
@@ -219,7 +219,7 @@ public:
#endif
static bool quitOnLastWindowClosed;
static void emitLastWindowClosed();
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
static int autoMaximizeThreshold;
static bool autoSipEnabled;
#endif
@@ -358,7 +358,7 @@ public:
#ifdef Q_WS_MAC
static bool native_modal_dialog_active;
#endif
-#if defined(Q_WS_WIN) && !defined(Q_OS_WINCE)
+#if defined(Q_WS_WIN) && !defined(Q_WS_WINCE)
static bool inSizeMove;
#endif
diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp
index fae0335..07b3865 100644
--- a/src/gui/kernel/qapplication_win.cpp
+++ b/src/gui/kernel/qapplication_win.cpp
@@ -39,7 +39,7 @@
**
****************************************************************************/
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
#include "qguifunctions_wince.h"
#include "qmenubar.h"
extern bool qt_wince_is_mobile(); //defined in qguifunctions_wince.cpp
@@ -48,7 +48,7 @@ extern bool qt_wince_is_smartphone(); //defined in qguifunctions_wince.c
extern bool qt_wince_is_pocket_pc(); //defined in qguifunctions_wince.cpp
extern void qt_wince_hide_taskbar(HWND hwnd); //defined in qguifunctions_wince.cpp
#endif
-#ifdef Q_OS_WINCE_WM
+#ifdef Q_WS_WINCE_WM
#include <windowsm.h>
#include <tpcshell.h>
#endif
@@ -106,7 +106,7 @@ extern void qt_wince_hide_taskbar(HWND hwnd); //defined in qguifunctions_wince.c
#include <winuser.h>
#if !defined(WINABLEAPI)
-# if defined(Q_OS_WINCE)
+# if defined(Q_WS_WINCE)
# include <bldver.h>
# endif
# include <winable.h>
@@ -155,7 +155,7 @@ static PtrFlashWindowEx pFlashWindowEx = 0;
QT_BEGIN_NAMESPACE
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
#ifndef SHRG_RETURNCMD
struct SHRGINFO {
DWORD cbSize;
@@ -266,7 +266,7 @@ Q_CORE_EXPORT bool winPostMessage(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lPa
#define MK_XBUTTON2 0x0040
#endif
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
#define GET_KEYSTATE_WPARAM(wParam) (LOWORD(wParam))
#endif
@@ -497,7 +497,7 @@ static void qt_set_windows_color_resources()
pal.setColor(QPalette::HighlightedText,
QColor(qt_colorref2qrgb(GetSysColor(COLOR_HIGHLIGHTTEXT))));
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
// ### hardcoded until I find out how to get it from the system settings.
pal.setColor(QPalette::LinkVisited, pal.highlight().color().dark(150));
pal.setColor(QPalette::Link, pal.highlight().color().light(130));
@@ -573,7 +573,7 @@ static void qt_set_windows_color_resources()
static void qt_set_windows_font_resources()
{
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
QFont menuFont;
QFont messageFont;
QFont statusFont;
@@ -625,7 +625,7 @@ static void qt_set_windows_font_resources()
smallerFont.setPointSize(systemFont.pointSize()-1);
QApplication::setFont(smallerFont, "QTabBar");
}
-#endif// Q_OS_WINCE
+#endif// Q_WS_WINCE
}
static void qt_win_read_cleartype_settings()
@@ -745,9 +745,6 @@ void qt_init(QApplicationPrivate *priv, int)
appNoGrab = !appNoGrab;
else
#endif // QT_DEBUG
- if (qstrcmp(argv[i], "-direct3d") == 0)
- QApplication::setAttribute(Qt::AA_MSWindowsUseDirect3DByDefault);
- else
argv[j++] = argv[i];
}
if(j < priv->argc) {
@@ -756,7 +753,7 @@ void qt_init(QApplicationPrivate *priv, int)
}
// Get the application name/instance if qWinMain() was not invoked
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
// No message boxes but important ones
SetErrorMode(SetErrorMode(0) | SEM_FAILCRITICALERRORS|SEM_NOOPENFILEERRORBOX);
#endif
@@ -769,7 +766,7 @@ void qt_init(QApplicationPrivate *priv, int)
});
}
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
// Initialize OLE/COM
// S_OK means success and S_FALSE means that it has already
// been initialized
@@ -781,7 +778,7 @@ void qt_init(QApplicationPrivate *priv, int)
#endif
// Misc. initialization
-#if defined(QT_DEBUG) && !defined(Q_OS_WINCE)
+#if defined(QT_DEBUG) && !defined(Q_WS_WINCE)
GdiSetBatchLimit(1);
#endif
@@ -795,7 +792,7 @@ void qt_init(QApplicationPrivate *priv, int)
#endif
qApp->setObjectName(QLatin1String(theAppName));
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
// default font
HFONT hfont = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
QFont f(QLatin1String("MS Sans Serif"),8);
@@ -815,7 +812,7 @@ void qt_init(QApplicationPrivate *priv, int)
&& f.family() == QLatin1String("MS Shell Dlg"))
f.setFamily(QLatin1String("MS Shell Dlg 2"));
QApplicationPrivate::setSystemFont(f);
-#else //Q_OS_WINCE
+#else //Q_WS_WINCE
LOGFONT lf;
HGDIOBJ stockFont = GetStockObject(SYSTEM_FONT);
int result = 0;
@@ -823,7 +820,7 @@ void qt_init(QApplicationPrivate *priv, int)
QFont font = qt_LOGFONTtoQFont(lf, true);
if (result)
QApplicationPrivate::setSystemFont(font);
-#endif //Q_OS_WINCE
+#endif //Q_WS_WINCE
// QFont::locale_init(); ### Uncomment when it does something on Windows
@@ -880,7 +877,7 @@ void qt_cleanup()
delete QApplicationPrivate::inputContext;
QApplicationPrivate::inputContext = 0;
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
// Deinitialize OLE/COM
OleUninitialize();
#endif
@@ -928,7 +925,7 @@ const QString qt_reg_winclass(QWidget *w) // register window class
if (flags & Qt::MSWindowsOwnDC) {
cname = QLatin1String("QWidgetOwnDC");
style = CS_DBLCLKS;
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
style |= CS_OWNDC;
#endif
icon = true;
@@ -943,14 +940,14 @@ const QString qt_reg_winclass(QWidget *w) // register window class
} else {
cname = QLatin1String("QTool");
}
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
style |= CS_SAVEBITS;
#endif
icon = false;
} else if (type == Qt::Popup) {
cname = QLatin1String("QPopup");
style = CS_DBLCLKS;
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
style |= CS_SAVEBITS;
#endif
if ((QSysInfo::WindowsVersion >= QSysInfo::WV_XP
@@ -963,7 +960,7 @@ const QString qt_reg_winclass(QWidget *w) // register window class
icon = true;
}
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
// force CS_OWNDC when the GL graphics system is
// used as the default renderer
if (qt_win_owndc_required)
@@ -1008,7 +1005,7 @@ const QString qt_reg_winclass(QWidget *w) // register window class
return cname;
ATOM atom;
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
HBRUSH bgBrush = (HBRUSH)GetSysColorBrush(COLOR_WINDOW);
QT_WA({
WNDCLASS wc;
@@ -1388,7 +1385,7 @@ void QApplication::winFocus(QWidget *widget, bool gotFocus)
&& (QApplicationPrivate::active_window->windowType() == Qt::Dialog)) {
// raise the entire application, not just the dialog
QWidget* mw = QApplicationPrivate::active_window;
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
while(mw->parentWidget() && (mw->windowType() == Qt::Dialog))
mw = mw->parentWidget()->window();
if (mw->testAttribute(Qt::WA_WState_Created) && mw != QApplicationPrivate::active_window)
@@ -1439,7 +1436,7 @@ static bool qt_is_translatable_mouse_event(UINT message)
message >= WM_XBUTTONDOWN && message <= WM_XBUTTONDBLCLK)
&& message != WM_MOUSEWHEEL
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
|| message >= WM_NCMOUSEMOVE && message <= WM_NCMBUTTONDBLCLK
#endif
;
@@ -1479,7 +1476,7 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
msg.pt.y = GET_Y_LPARAM(lParam);
// If it's a non-client-area message the coords are screen coords, otherwise they are
// client coords.
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
if (message < WM_NCMOUSEMOVE || message > WM_NCMBUTTONDBLCLK)
#endif
ClientToScreen(msg.hwnd, &msg.pt);
@@ -1509,7 +1506,7 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
if (imeParentWnd && QApplication::activePopupWidget()
&& (message == WM_MBUTTONDOWN || message == WM_XBUTTONDOWN
|| message == WM_LBUTTONDOWN || message == WM_RBUTTONDOWN
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
|| message == WM_NCMBUTTONDOWN || message == WM_NCLBUTTONDOWN
|| message == WM_NCRBUTTONDOWN)) {
#else
@@ -1519,7 +1516,7 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
}
switch (message) {
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
case WM_QUERYENDSESSION: {
if (sm_smActive) // bogus message from windows
RETURN(true);
@@ -1570,7 +1567,7 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
#endif
case WM_SETTINGCHANGE:
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
// CE SIP hide/show
if (wParam == SPI_SETSIPINFO) {
QResizeEvent re(QSize(0, 0), QSize(0, 0)); // Calculated by QDesktopWidget
@@ -1672,7 +1669,7 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
if (!qt_tabletChokeMouse) {
result = widget->translateMouseEvent(msg); // mouse event
-#if defined(Q_OS_WINCE) && !defined(QT_NO_CONTEXTMENU)
+#if defined(Q_WS_WINCE) && !defined(QT_NO_CONTEXTMENU)
if (message == WM_LBUTTONDOWN && widget != qApp->activePopupWidget()) {
QWidget* alienWidget = widget;
if ((alienWidget != qApp->activePopupWidget()) && (alienWidget->contextMenuPolicy() != Qt::PreventContextMenu)) {
@@ -1900,7 +1897,7 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
}
break;
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
case WM_NCHITTEST:
if (widget->isWindow()) {
QPoint pos = widget->mapFromGlobal(QPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)));
@@ -1919,7 +1916,7 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
#endif
case WM_SYSCOMMAND: {
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
bool window_state_change = false;
Qt::WindowStates oldstate = Qt::WindowStates(widget->dataPtr()->window_state);
// MSDN:In WM_SYSCOMMAND messages, the four low-order bits of the wParam parameter are
@@ -1947,7 +1944,7 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
QHideEvent e;
qt_sendSpontaneousEvent(widget, &e);
widget->hideChildren(true);
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
const QString title = widget->windowIconText();
if (!title.isEmpty())
widget->setWindowTitle_helper(title);
@@ -1970,7 +1967,7 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
widget->showChildren(true);
QShowEvent e;
qt_sendSpontaneousEvent(widget, &e);
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
const QString title = widget->windowTitle();
if (!title.isEmpty())
widget->setWindowTitle_helper(title);
@@ -2020,7 +2017,7 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
result = widget->translatePaintEvent(msg);
break;
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
case WM_ENTERSIZEMOVE:
autoCaptureWnd = hwnd;
QApplicationPrivate::inSizeMove = true;
@@ -2077,7 +2074,7 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
// where it got it from; it would simply get a 0 value as the old focus widget.
if (!(widget->windowState() & Qt::WindowMinimized)) {
// Ignore the activate message send by WindowsXP to a minimized window
-#ifdef Q_OS_WINCE_WM
+#ifdef Q_WS_WINCE_WM
if (widget->windowState() & Qt::WindowFullScreen)
qt_wince_hide_taskbar(widget->winId());
#endif
@@ -2104,7 +2101,7 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
}
break;
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
case WM_MOUSEACTIVATE:
if (widget->window()->windowType() == Qt::Tool) {
QWidget *w = widget;
@@ -2193,7 +2190,7 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
result = false;
break;
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
case WM_WINDOWPOSCHANGING:
{
result = false;
@@ -2309,7 +2306,7 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
break;
}
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
case WM_CHANGECBCHAIN:
case WM_DRAWCLIPBOARD:
#endif
@@ -2416,7 +2413,7 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
#endif // QT_NO_TABLETEVENT
}
break;
-#ifdef Q_OS_WINCE_WM
+#ifdef Q_WS_WINCE_WM
case WM_SETFOCUS: {
HIMC hC;
hC = ImmGetContext(hwnd);
@@ -2460,7 +2457,7 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
widget->update();
break;
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
case WM_INPUTLANGCHANGE: {
char info[7];
if (!GetLocaleInfoA(MAKELCID(lParam, SORT_DEFAULT), LOCALE_IDEFAULTANSICODEPAGE, info, 6)) {
@@ -2658,19 +2655,19 @@ bool qt_try_modal(QWidget *widget, MSG *msg, int& ret)
int type = msg->message;
bool block_event = false;
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
if (type != WM_NCHITTEST)
#endif
if ((type >= WM_MOUSEFIRST && type <= WM_MOUSELAST) ||
type == WM_MOUSEWHEEL || type == (int)WM95_MOUSEWHEEL ||
type == WM_MOUSELEAVE ||
(type >= WM_KEYFIRST && type <= WM_KEYLAST)
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
|| type == WM_NCMOUSEMOVE
#endif
) {
if (type == WM_MOUSEMOVE
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
|| type == WM_NCMOUSEMOVE
#endif
) {
@@ -2688,7 +2685,7 @@ bool qt_try_modal(QWidget *widget, MSG *msg, int& ret)
} else if (type == WM_CLOSE) {
block_event = true;
}
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
else if (type == WM_MOUSEACTIVATE || type == WM_NCLBUTTONDOWN){
if (!top->isActiveWindow()) {
top->activateWindow();
@@ -2846,7 +2843,7 @@ static const ushort mouseTbl[] = {
WM_XBUTTONUP, QEvent::MouseButtonRelease, Qt::XButton1,
WM_XBUTTONDBLCLK, QEvent::MouseButtonDblClick, Qt::XButton1,
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
WM_NCMOUSEMOVE, QEvent::NonClientAreaMouseMove, 0,
WM_NCLBUTTONDOWN, QEvent::NonClientAreaMouseButtonPress, Qt::LeftButton,
WM_NCLBUTTONUP, QEvent::NonClientAreaMouseButtonRelease, Qt::LeftButton,
@@ -3164,10 +3161,7 @@ bool QETWidget::translateMouseEvent(const MSG &msg)
if (popupButtonFocus) {
target = popupButtonFocus;
} else if (popupChild) {
- // forward mouse events to the popup child. mouse move events
- // are only forwarded to popup children that enable mouse tracking.
- if (type != QEvent::MouseMove || popupChild->hasMouseTracking())
- target = popupChild;
+ target = popupChild;
}
pos = target->mapFromGlobal(globalPos);
@@ -3649,7 +3643,7 @@ bool QETWidget::translateConfigEvent(const MSG &msg)
WORD b = HIWORD(msg.lParam);
QSize oldSize = size();
QSize newSize(a, b);
-#ifdef Q_OS_WINCE_WM
+#ifdef Q_WS_WINCE_WM
if (isFullScreen() && (oldSize.width() == newSize.height()) && (oldSize.height() == newSize.width()))
qt_wince_hide_taskbar(internalWinId());
#endif
@@ -3661,7 +3655,7 @@ bool QETWidget::translateConfigEvent(const MSG &msg)
// Capture SIZE_MINIMIZED without preceding WM_SYSCOMMAND
// (like Windows+M)
if (msg.wParam == SIZE_MINIMIZED && !isMinimized()) {
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
const QString title = windowIconText();
if (!title.isEmpty())
d_func()->setWindowTitle_helper(title);
@@ -3673,7 +3667,7 @@ bool QETWidget::translateConfigEvent(const MSG &msg)
hideChildren(true);
}
} else if (msg.wParam != SIZE_MINIMIZED && isMinimized()) {
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
const QString title = windowTitle();
if (!title.isEmpty())
d_func()->setWindowTitle_helper(title);
@@ -3719,7 +3713,7 @@ bool QETWidget::translateConfigEvent(const MSG &msg)
QPoint oldPos = geometry().topLeft();
QPoint newCPos(a, b);
// Ignore silly Windows move event to wild pos after iconify.
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
if (!IsIconic(internalWinId()) && newCPos != oldPos) {
#endif
cr.moveTopLeft(newCPos);
@@ -3731,7 +3725,7 @@ bool QETWidget::translateConfigEvent(const MSG &msg)
QMoveEvent * e = new QMoveEvent(newCPos, oldPos);
QApplication::postEvent(this, e);
}
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
}
#endif
}
@@ -3773,7 +3767,7 @@ int QApplication::cursorFlashTime()
void QApplication::setDoubleClickInterval(int ms)
{
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
SetDoubleClickTime(ms);
#endif
QApplicationPrivate::mouse_double_click_time = ms;
diff --git a/src/gui/kernel/qapplication_x11.cpp b/src/gui/kernel/qapplication_x11.cpp
index b1270bc..d7ca2f4 100644
--- a/src/gui/kernel/qapplication_x11.cpp
+++ b/src/gui/kernel/qapplication_x11.cpp
@@ -294,6 +294,10 @@ static const char * x11_atomnames = {
// XEMBED
"_XEMBED\0"
"_XEMBED_INFO\0"
+
+ "Wacom Stylus\0"
+ "Wacom Cursor\0"
+ "Wacom Eraser\0"
};
Q_GUI_EXPORT QX11Data *qt_x11Data = 0;
@@ -398,7 +402,7 @@ extern bool qt_xdnd_dragging;
// gui or non-gui from qapplication.cpp
extern bool qt_is_gui_used;
-/*!
+/*!
\internal
Try to resolve a \a symbol from \a library with the version specified
by \a vernum.
@@ -836,7 +840,7 @@ bool QApplicationPrivate::x11_apply_settings()
}
int kdeSessionVersion = QString::fromLocal8Bit(qgetenv("KDE_SESSION_VERSION")).toInt();
-
+
if (!appFont) {
QFont font(QApplication::font());
QString fontDescription;
@@ -1579,6 +1583,7 @@ static PtrWacomConfigOpenDevice ptrWacomConfigOpenDevice = 0;
static PtrWacomConfigGetRawParam ptrWacomConfigGetRawParam = 0;
static PtrWacomConfigCloseDevice ptrWacomConfigCloseDevice = 0;
static PtrWacomConfigTerm ptrWacomConfigTerm = 0;
+Q_GLOBAL_STATIC(QByteArray, wacomDeviceName)
#endif
#endif
@@ -1948,11 +1953,17 @@ void qt_init(QApplicationPrivate *priv, int,
{
QString displayName = QLatin1String(XDisplayName(NULL));
- // apparently MITSHM only works for local displays, so do a quick check here
- // to determine whether the display is local or not (not 100 % accurate)
+ // MITSHM only works for local displays, so do a quick check here
+ // to determine whether the display is local or not (not 100 % accurate).
+ // BGR server layouts are not supported either, since it requires the raster
+ // engine to work on a QImage with BGR layout.
bool local = displayName.isEmpty() || displayName.lastIndexOf(QLatin1Char(':')) == 0;
- if (local && (qgetenv("QT_X11_NO_MITSHM").toInt() == 0))
- X11->use_mitshm = mitshm_pixmaps;
+ if (local && (qgetenv("QT_X11_NO_MITSHM").toInt() == 0)) {
+ Visual *defaultVisual = DefaultVisual(X11->display, DefaultScreen(X11->display));
+ X11->use_mitshm = mitshm_pixmaps && (defaultVisual->red_mask == 0xff0000
+ && defaultVisual->green_mask == 0xff00
+ && defaultVisual->blue_mask == 0xff);
+ }
}
#endif // QT_NO_MITSHM
@@ -2350,13 +2361,6 @@ void qt_init(QApplicationPrivate *priv, int,
XAxisInfoPtr a;
XDevice *dev = 0;
-#if !defined(Q_OS_IRIX)
- // XFree86 divides a stylus and eraser into 2 devices, so we must do for both...
- const QString XFREENAMESTYLUS = QLatin1String("stylus");
- const QString XFREENAMEPEN = QLatin1String("pen");
- const QString XFREENAMEERASER = QLatin1String("eraser");
-#endif
-
if (X11->ptrXListInputDevices) {
devices = X11->ptrXListInputDevices(X11->display, &ndev);
if (!devices)
@@ -2371,18 +2375,19 @@ void qt_init(QApplicationPrivate *priv, int,
gotStylus = false;
gotEraser = false;
- QString devName = QString::fromLocal8Bit(devs->name).toLower();
#if defined(Q_OS_IRIX)
+ QString devName = QString::fromLocal8Bit(devs->name).toLower();
if (devName == QLatin1String(WACOM_NAME)) {
deviceType = QTabletEvent::Stylus;
gotStylus = true;
}
#else
- if (devName.startsWith(XFREENAMEPEN)
- || devName.startsWith(XFREENAMESTYLUS)) {
+ if (devs->type == ATOM(XWacomStylus)) {
deviceType = QTabletEvent::Stylus;
+ if (wacomDeviceName()->isEmpty())
+ wacomDeviceName()->append(devs->name);
gotStylus = true;
- } else if (devName.startsWith(XFREENAMEERASER)) {
+ } else if (devs->type == ATOM(XWacomEraser)) {
deviceType = QTabletEvent::XFreeEraser;
gotEraser = true;
}
@@ -4515,8 +4520,7 @@ void fetchWacomToolId(int &deviceType, qint64 &serialId)
WACOMCONFIG *config = ptrWacomConfigInit(X11->display, 0);
if (config == 0)
return;
- const char *name = "stylus"; // TODO get this from the X config instead (users may have called it differently)
- WACOMDEVICE *device = ptrWacomConfigOpenDevice (config, name);
+ WACOMDEVICE *device = ptrWacomConfigOpenDevice (config, wacomDeviceName()->constData());
if (device == 0)
return;
unsigned keys[1];
diff --git a/src/gui/kernel/qclipboard.cpp b/src/gui/kernel/qclipboard.cpp
index 917b5d5..6daf433 100644
--- a/src/gui/kernel/qclipboard.cpp
+++ b/src/gui/kernel/qclipboard.cpp
@@ -50,6 +50,7 @@
#include "qvariant.h"
#include "qbuffer.h"
#include "qimage.h"
+#include "qtextcodec.h"
QT_BEGIN_NAMESPACE
@@ -276,11 +277,12 @@ QClipboard::~QClipboard()
*/
QString QClipboard::text(QString &subtype, Mode mode) const
{
- const QMimeData *data = mimeData(mode);
+ const QMimeData *const data = mimeData(mode);
if (!data)
return QString();
+
+ const QStringList formats = data->formats();
if (subtype.isEmpty()) {
- QStringList formats = data->formats();
if (formats.contains(QLatin1String("text/plain")))
subtype = QLatin1String("plain");
else {
@@ -289,13 +291,21 @@ QString QClipboard::text(QString &subtype, Mode mode) const
subtype = formats.at(i).mid(5);
break;
}
+ if (subtype.isEmpty())
+ return QString();
}
- }
- if (subtype.isEmpty())
+ } else if (!formats.contains(QLatin1String("text/") + subtype)) {
return QString();
- if (subtype == QLatin1String("plain"))
- return data->text();
- return QString::fromUtf8(data->data(QLatin1String("text/") + subtype));
+ }
+
+ const QByteArray rawData = data->data(QLatin1String("text/") + subtype);
+
+ QTextCodec* codec = QTextCodec::codecForMib(106); // utf-8 is default
+ if (subtype == QLatin1String("html"))
+ codec = QTextCodec::codecForHtml(rawData, codec);
+ else
+ codec = QTextCodec::codecForUtfText(rawData, codec);
+ return codec->toUnicode(rawData);
}
/*!
diff --git a/src/gui/kernel/qclipboard_x11.cpp b/src/gui/kernel/qclipboard_x11.cpp
index 089cc43..d7eb111 100644
--- a/src/gui/kernel/qclipboard_x11.cpp
+++ b/src/gui/kernel/qclipboard_x11.cpp
@@ -786,7 +786,7 @@ static Atom send_selection(QClipboardData *d, Atom target, Window window, Atom p
QByteArray data;
QByteArray fmt = X11->xdndAtomToString(target);
- if (fmt.isEmpty() || !QInternalMimeData::hasFormatHelper(QString::fromAscii(fmt), d->source())) { // Not a MIME type we have
+ if (fmt.isEmpty()) { // Not a MIME type we have
DEBUG("QClipboard: send_selection(): converting to type '%s' is not supported", fmt.data());
return XNone;
}
diff --git a/src/gui/kernel/qcocoaapplication_mac.mm b/src/gui/kernel/qcocoaapplication_mac.mm
index f95f004f..a3cc2c1 100644
--- a/src/gui/kernel/qcocoaapplication_mac.mm
+++ b/src/gui/kernel/qcocoaapplication_mac.mm
@@ -1,11 +1,11 @@
/****************************************************************************
- **
- ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
- **
- ** This file is part of the QtGui module of the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
+**
+** 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
@@ -36,11 +36,11 @@
** If you are unsure which license is appropriate for your use, please
** contact the sales department at qt-sales@nokia.com.
** $QT_END_LICENSE$
- **
- ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
- ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- **
- ****************************************************************************/
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+****************************************************************************/
/****************************************************************************
**
diff --git a/src/gui/kernel/qcocoaapplicationdelegate_mac.mm b/src/gui/kernel/qcocoaapplicationdelegate_mac.mm
index e6bd511..dad15d9 100644
--- a/src/gui/kernel/qcocoaapplicationdelegate_mac.mm
+++ b/src/gui/kernel/qcocoaapplicationdelegate_mac.mm
@@ -1,11 +1,11 @@
/****************************************************************************
- **
- ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
- **
- ** This file is part of the QtGui module of the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
+**
+** 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
@@ -36,11 +36,11 @@
** If you are unsure which license is appropriate for your use, please
** contact the sales department at qt-sales@nokia.com.
** $QT_END_LICENSE$
- **
- ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
- ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- **
- ****************************************************************************/
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+****************************************************************************/
/****************************************************************************
**
@@ -204,6 +204,8 @@ static void cleanupCocoaApplicationDelegate()
{
Q_UNUSED(aNotification);
inLaunch = false;
+ extern void qt_release_apple_event_handler(); //qapplication_mac.mm
+ qt_release_apple_event_handler();
}
- (void)application:(NSApplication *)sender openFiles:(NSArray *)filenames
diff --git a/src/gui/kernel/qcocoamenuloader_mac.mm b/src/gui/kernel/qcocoamenuloader_mac.mm
index 7ecb765..e836286 100644
--- a/src/gui/kernel/qcocoamenuloader_mac.mm
+++ b/src/gui/kernel/qcocoamenuloader_mac.mm
@@ -1,11 +1,11 @@
/****************************************************************************
- **
- ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
- **
- ** This file is part of the QtGui module of the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
+**
+** 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
@@ -36,11 +36,11 @@
** If you are unsure which license is appropriate for your use, please
** contact the sales department at qt-sales@nokia.com.
** $QT_END_LICENSE$
- **
- ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
- ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- **
- ****************************************************************************/
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+****************************************************************************/
#include "qmacdefines_mac.h"
#ifdef QT_MAC_USE_COCOA
diff --git a/src/gui/kernel/qcocoapanel_mac.mm b/src/gui/kernel/qcocoapanel_mac.mm
index c17b30c..c69826f 100644
--- a/src/gui/kernel/qcocoapanel_mac.mm
+++ b/src/gui/kernel/qcocoapanel_mac.mm
@@ -49,8 +49,10 @@
#include <QtGui/QWidget>
+QT_FORWARD_DECLARE_CLASS(QWidget);
+QT_BEGIN_NAMESPACE
extern Qt::MouseButton cocoaButton2QtButton(NSInteger buttonNum); // qcocoaview.mm
-
+QT_END_NAMESPACE
QT_USE_NAMESPACE
@implementation QT_MANGLE_NAMESPACE(QCocoaPanel)
@@ -108,7 +110,7 @@ QT_USE_NAMESPACE
[self retain];
QWidget *widget = [[QT_MANGLE_NAMESPACE(QCocoaWindowDelegate) sharedDelegate] qt_qwidgetForWindow:self];
- QCocoaView *view = static_cast<QCocoaView *>(qt_mac_nativeview_for(widget));
+ QT_MANGLE_NAMESPACE(QCocoaView) *view = static_cast<QT_MANGLE_NAMESPACE(QCocoaView) *>(qt_mac_nativeview_for(widget));
Qt::MouseButton mouseButton = cocoaButton2QtButton([event buttonNumber]);
// sometimes need to redirect mouse events to the popup.
@@ -157,10 +159,11 @@ QT_USE_NAMESPACE
[self release];
}
-
- (BOOL)makeFirstResponder:(NSResponder *)responder
{
- if (responder == nil)
+ // For some reason Cocoa wants to flip the first responder
+ // when Qt doesn't want to, sorry, but "No" :-)
+ if (responder == nil && qApp->focusWidget())
return NO;
return [super makeFirstResponder:responder];
}
@@ -171,7 +174,7 @@ QT_USE_NAMESPACE
+ (Class)frameViewClassForStyleMask:(NSUInteger)styleMask
{
if (styleMask & QtMacCustomizeWindow)
- return [QCocoaWindowCustomThemeFrame class];
+ return [QT_MANGLE_NAMESPACE(QCocoaWindowCustomThemeFrame) class];
return [super frameViewClassForStyleMask:styleMask];
}
diff --git a/src/gui/kernel/qcocoaview_mac.mm b/src/gui/kernel/qcocoaview_mac.mm
index 19367d1..60ac062 100644
--- a/src/gui/kernel/qcocoaview_mac.mm
+++ b/src/gui/kernel/qcocoaview_mac.mm
@@ -181,6 +181,7 @@ QT_FORWARD_DECLARE_CLASS(QAbstractScrollAreaPrivate)
QT_FORWARD_DECLARE_CLASS(QPaintEvent)
QT_FORWARD_DECLARE_CLASS(QPainter)
QT_FORWARD_DECLARE_CLASS(QHoverEvent)
+QT_FORWARD_DECLARE_CLASS(QCursor)
QT_USE_NAMESPACE
extern "C" {
extern NSString *NSTextInputReplacementRangeAttributeName;
@@ -195,6 +196,7 @@ extern "C" {
if (self) {
[self finishInitWithQWidget:widget widgetPrivate:widgetprivate];
}
+ composingText = new QString();
composing = false;
sendKeyEvents = true;
[self setHidden:YES];
@@ -236,6 +238,34 @@ extern "C" {
}
}
+- (void)resetCursorRects
+{
+ QWidget *cursorWidget = qwidget;
+
+ if (cursorWidget->testAttribute(Qt::WA_TransparentForMouseEvents))
+ cursorWidget = QApplication::widgetAt(qwidget->mapToGlobal(qwidget->rect().center()));
+
+ if (cursorWidget == 0)
+ return;
+
+ if (!cursorWidget->testAttribute(Qt::WA_SetCursor)) {
+ [super resetCursorRects];
+ return;
+ }
+
+ QRegion mask = qt_widget_private(cursorWidget)->extra->mask;
+ NSCursor *nscursor = static_cast<NSCursor *>(nsCursorForQCursor(cursorWidget->cursor()));
+ if (mask.isEmpty()) {
+ [self addCursorRect:[qt_mac_nativeview_for(cursorWidget) visibleRect] cursor:nscursor];
+ } else {
+ const QVector<QRect> &rects = mask.rects();
+ for (int i = 0; i < rects.size(); ++i) {
+ const QRect &rect = rects.at(i);
+ [self addCursorRect:NSMakeRect(rect.x(), rect.y(), rect.width(), rect.height()) cursor:nscursor];
+ }
+ }
+}
+
- (void)removeDropData
{
if (dropData) {
@@ -263,9 +293,18 @@ extern "C" {
QPoint posDrag(localPoint.x, localPoint.y);
NSDragOperation nsActions = [sender draggingSourceOperationMask];
Qt::DropActions qtAllowed = qt_mac_mapNSDragOperations(nsActions);
+ QT_PREPEND_NAMESPACE(qt_mac_dnd_answer_rec.lastOperation) = nsActions;
+ Qt::KeyboardModifiers modifiers = Qt::NoModifier;
+ if ([sender draggingSource] != nil) {
+ // modifier flags might have changed, update it here since we don't send any input events.
+ QApplicationPrivate::modifier_buttons = qt_cocoaModifiers2QtModifiers([[NSApp currentEvent] modifierFlags]);
+ modifiers = QApplication::keyboardModifiers();
+ } else {
+ // when the source is from another application the above technique will not work.
+ modifiers = qt_cocoaDragOperation2QtModifiers(nsActions);
+ }
// send the drag enter event to the widget.
- QDragEnterEvent qDEEvent(posDrag, qtAllowed, mimeData,
- QApplication::mouseButtons(), QApplication::keyboardModifiers());
+ QDragEnterEvent qDEEvent(posDrag, qtAllowed, mimeData, QApplication::mouseButtons(), modifiers);
QApplication::sendEvent(qwidget, &qDEEvent);
if (!qDEEvent.isAccepted()) {
// widget is not interested in this drag, so ignore this drop data.
@@ -273,24 +312,23 @@ extern "C" {
return NSDragOperationNone;
} else {
// send a drag move event immediately after a drag enter event (as per documentation).
- QDragMoveEvent qDMEvent(posDrag, qtAllowed, mimeData,
- QApplication::mouseButtons(), QApplication::keyboardModifiers());
+ QDragMoveEvent qDMEvent(posDrag, qtAllowed, mimeData, QApplication::mouseButtons(), modifiers);
qDMEvent.setDropAction(qDEEvent.dropAction());
qDMEvent.accept(); // accept by default, since enter event was accepted.
QApplication::sendEvent(qwidget, &qDMEvent);
if (!qDMEvent.isAccepted() || qDMEvent.dropAction() == Qt::IgnoreAction) {
// since we accepted the drag enter event, the widget expects
// future drage move events.
- // ### check if we need to treat this like the drag enter event.
+ // ### check if we need to treat this like the drag enter event.
nsActions = QT_PREPEND_NAMESPACE(qt_mac_mapDropAction)(qDEEvent.dropAction());
} else {
nsActions = QT_PREPEND_NAMESPACE(qt_mac_mapDropAction)(qDMEvent.dropAction());
- }
+ }
QT_PREPEND_NAMESPACE(qt_mac_copy_answer_rect)(qDMEvent);
- return nsActions;
+ return nsActions;
}
}
-
+
- (NSDragOperation)draggingUpdated:(id < NSDraggingInfo >)sender
{
// drag enter event was rejected, so ignore the move event.
@@ -300,17 +338,27 @@ extern "C" {
NSPoint windowPoint = [sender draggingLocation];
NSPoint globalPoint = [[sender draggingDestinationWindow] convertBaseToScreen:windowPoint];
NSPoint localPoint = [self convertPoint:windowPoint fromView:nil];
+ NSDragOperation nsActions = [sender draggingSourceOperationMask];
QPoint posDrag(localPoint.x, localPoint.y);
- if (qt_mac_mouse_inside_answer_rect(posDrag))
+ if (qt_mac_mouse_inside_answer_rect(posDrag)
+ && QT_PREPEND_NAMESPACE(qt_mac_dnd_answer_rec.lastOperation) == nsActions)
return QT_PREPEND_NAMESPACE(qt_mac_mapDropActions)(QT_PREPEND_NAMESPACE(qt_mac_dnd_answer_rec.lastAction));
// send drag move event to the widget
- NSDragOperation nsActions = [sender draggingSourceOperationMask];
+ QT_PREPEND_NAMESPACE(qt_mac_dnd_answer_rec.lastOperation) = nsActions;
Qt::DropActions qtAllowed = QT_PREPEND_NAMESPACE(qt_mac_mapNSDragOperations)(nsActions);
+ Qt::KeyboardModifiers modifiers = Qt::NoModifier;
+ if ([sender draggingSource] != nil) {
+ // modifier flags might have changed, update it here since we don't send any input events.
+ QApplicationPrivate::modifier_buttons = qt_cocoaModifiers2QtModifiers([[NSApp currentEvent] modifierFlags]);
+ modifiers = QApplication::keyboardModifiers();
+ } else {
+ // when the source is from another application the above technique will not work.
+ modifiers = qt_cocoaDragOperation2QtModifiers(nsActions);
+ }
QMimeData *mimeData = dropData;
if (QDragManager::self()->source())
mimeData = QDragManager::self()->dragPrivate()->data;
- QDragMoveEvent qDMEvent(posDrag, qtAllowed, mimeData,
- QApplication::mouseButtons(), QApplication::keyboardModifiers());
+ QDragMoveEvent qDMEvent(posDrag, qtAllowed, mimeData, QApplication::mouseButtons(), modifiers);
qDMEvent.setDropAction(QT_PREPEND_NAMESPACE(qt_mac_dnd_answer_rec).lastAction);
qDMEvent.accept();
QApplication::sendEvent(qwidget, &qDMEvent);
@@ -339,12 +387,12 @@ extern "C" {
- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender
{
[self addDropData:sender];
-
+
NSPoint windowPoint = [sender draggingLocation];
NSPoint globalPoint = [[sender draggingDestinationWindow] convertBaseToScreen:windowPoint];
NSPoint localPoint = [self convertPoint:windowPoint fromView:nil];
QPoint posDrop(localPoint.x, localPoint.y);
-
+
NSDragOperation nsActions = [sender draggingSourceOperationMask];
Qt::DropActions qtAllowed = qt_mac_mapNSDragOperations(nsActions);
QMimeData *mimeData = dropData;
@@ -356,6 +404,8 @@ extern "C" {
if (QDragManager::self()->object)
QDragManager::self()->dragPrivate()->target = qwidget;
QApplication::sendEvent(qwidget, &de);
+ if (QDragManager::self()->object)
+ QDragManager::self()->dragPrivate()->executed_action = de.dropAction();
if (!de.isAccepted())
return NO;
else
@@ -364,6 +414,7 @@ extern "C" {
- (void)dealloc
{
+ delete composingText;
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
}
@@ -386,10 +437,9 @@ extern "C" {
- (void) setFrameSize:(NSSize)newSize
{
[super setFrameSize:newSize];
-
+
// A change in size has required the view to be invalidated.
- if ([self inLiveResize])
- {
+ if ([self inLiveResize]) {
NSRect rects[4];
NSInteger count;
[self getRectsExposedDuringLiveResize:rects count:&count];
@@ -397,9 +447,7 @@ extern "C" {
{
[self setNeedsDisplayInRect:rects[count]];
}
- }
- else
- {
+ } else {
[self setNeedsDisplay:YES];
}
}
@@ -534,7 +582,7 @@ extern "C" {
if (!qAppInstance()->activeModalWidget() || QApplicationPrivate::tryModalHelper(qwidget, 0)) {
QApplication::sendEvent(qwidget, &enterEvent);
qt_mouseover = qwidget;
-
+
// Update cursor and dispatch hover events.
qt_mac_update_cursor_at_global_pos(flipPoint(globalPoint).toPoint());
if (qwidget->testAttribute(Qt::WA_Hover) &&
@@ -589,7 +637,7 @@ extern "C" {
[viewsToLookAt addObject:qt_mac_nativeview_for(parentWidget)];
parentWidget = parentWidget->parentWidget();
}
-
+
// Now walk through the subviews of each view and determine which subview should
// get the event. We look through all the subviews at a given level with
// the assumption that the last item to be found the candidate has a higher z-order.
@@ -599,7 +647,7 @@ extern "C" {
for (NSView *lookView in viewsToLookAt) {
NSPoint tmpPoint = [lookView convertPoint:windowPoint fromView:nil];
for (NSView *view in [lookView subviews]) {
- if (view == mouseView)
+ if (view == mouseView || [view isHidden])
continue;
NSRect frameRect = [view frame];
if (NSMouseInRect(tmpPoint, [view frame], [view isFlipped]))
@@ -618,7 +666,7 @@ extern "C" {
NSPoint tmpPoint = [viewForDescent convertPoint:windowPoint fromView:nil];
// Apply same rule as above wrt z-order.
for (NSView *view in [viewForDescent subviews]) {
- if (NSMouseInRect(tmpPoint, [view frame], [view isFlipped]))
+ if (![view isHidden] && NSMouseInRect(tmpPoint, [view frame], [view isFlipped]))
lowerView = view;
}
if (!lowerView) // Low as we can be at this point.
@@ -725,7 +773,7 @@ extern "C" {
if (currentIManager && [currentIManager wantsToHandleMouseEvents]) {
[currentIManager handleMouseEvent:theEvent];
}
-
+
NSPoint windowPoint = [theEvent locationInWindow];
NSPoint globalPoint = [[theEvent window] convertBaseToScreen:windowPoint];
NSPoint localPoint = [self convertPoint:windowPoint fromView:nil];
@@ -734,7 +782,7 @@ extern "C" {
Qt::MouseButton buttons = cocoaButton2QtButton([theEvent buttonNumber]);
bool wheelOK = false;
Qt::KeyboardModifiers keyMods = qt_cocoaModifiers2QtModifiers([theEvent modifierFlags]);
-
+
// Mouse wheel deltas seem to tick in at increments of 0.1. Qt widgets
// expect the delta to be a multiple of 120.
const int ScrollFactor = 10 * 120;
@@ -756,20 +804,20 @@ extern "C" {
wheelOK = qwe2.isAccepted();
}
}
-
+
if (deltaY) {
QWheelEvent qwe(qlocal, qglobal, deltaY, buttons, keyMods, Qt::Vertical);
qt_sendSpontaneousEvent(qwidget, &qwe);
wheelOK = qwe.isAccepted();
- if (wheelOK && QApplicationPrivate::focus_widget
+ if (!wheelOK && QApplicationPrivate::focus_widget
&& QApplicationPrivate::focus_widget != qwidget) {
QWheelEvent qwe2(QApplicationPrivate::focus_widget->mapFromGlobal(qglobal), qglobal,
- deltaZ, buttons, keyMods, Qt::Vertical);
+ deltaY, buttons, keyMods, Qt::Vertical);
qt_sendSpontaneousEvent(QApplicationPrivate::focus_widget, &qwe2);
wheelOK = qwe2.isAccepted();
}
}
-
+
if (deltaZ) {
// Qt doesn't explicitly support wheels with a Z component. In a misguided attempt to
// try to be ahead of the pack, I'm adding this extra value.
@@ -858,6 +906,11 @@ extern "C" {
Q_UNUSED(anImage);
Q_UNUSED(aPoint);
qMacDnDParams()->performedAction = operation;
+ if (QDragManager::self()->object
+ && QDragManager::self()->dragPrivate()->executed_action != Qt::ActionMask) {
+ qMacDnDParams()->performedAction =
+ qt_mac_mapDropAction(QDragManager::self()->dragPrivate()->executed_action);
+ }
}
- (QWidget *)qt_qwidget
@@ -913,11 +966,32 @@ extern "C" {
}
}
+- (void)viewWillMoveToWindow:(NSWindow *)window
+{
+ if (qwidget->windowFlags() & Qt::MSWindowsOwnDC
+ && (window != [self window])) { // OpenGL Widget
+ // Create a stupid ClearDrawable Event
+ QEvent event(QEvent::MacGLClearDrawable);
+ qApp->sendEvent(qwidget, &event);
+ }
+}
+
+- (void)viewDidMoveToWindow
+{
+ if (qwidget->windowFlags() & Qt::MSWindowsOwnDC && [self window]) {
+ // call update paint event
+ qwidgetprivate->needWindowChange = true;
+ QEvent event(QEvent::MacGLWindowChange);
+ qApp->sendEvent(qwidget, &event);
+ }
+}
+
+
// NSTextInput Protocol implementation
- (void) insertText:(id)aString
{
- if (composing) {
+ if ([aString length]) {
// Send the commit string to the widget.
QString commitText;
if ([aString isKindOfClass:[NSAttributedString class]]) {
@@ -931,6 +1005,7 @@ extern "C" {
e.setCommitString(commitText);
qt_sendSpontaneousEvent(qwidget, &e);
}
+ composingText->clear();
}
- (void) setMarkedText:(id)aString selectedRange:(NSRange)selRange
@@ -984,12 +1059,21 @@ extern "C" {
attrs<<QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat,
0, composingLength, format);
}
+ *composingText = qtText;
QInputMethodEvent e(qtText, attrs);
qt_sendSpontaneousEvent(qwidget, &e);
+ if (!composingLength)
+ composing = false;
}
- (void) unmarkText
{
+ if (composing) {
+ QInputMethodEvent e;
+ e.setCommitString(*composingText);
+ qt_sendSpontaneousEvent(qwidget, &e);
+ }
+ composingText->clear();
composing = false;
}
@@ -1150,13 +1234,13 @@ Qt::DropAction QDragManager::drag(QDrag *o)
so we just bail early to prevent it */
if(!(GetCurrentEventButtonState() & kEventMouseButtonPrimary))
return Qt::IgnoreAction;
-
+
if(object) {
dragPrivate()->source->removeEventFilter(this);
cancel();
beingCancelled = false;
}
-
+
object = o;
dragPrivate()->target = 0;
@@ -1168,7 +1252,7 @@ Qt::DropAction QDragManager::drag(QDrag *o)
QMacPasteboard dragBoard((CFStringRef) NSDragPboard, QMacPasteboardMime::MIME_DND);
dragPrivate()->data->setData(QLatin1String("application/x-qt-mime-type-name"), QByteArray());
dragBoard.setMimeData(dragPrivate()->data);
-
+
// create the image
QPoint hotspot;
QPixmap pix = dragPrivate()->pixmap;
@@ -1214,6 +1298,7 @@ Qt::DropAction QDragManager::drag(QDrag *o)
NSSize mouseOffset = {0.0, 0.0};
NSPasteboard *pboard = [NSPasteboard pasteboardWithName:NSDragPboard];
NSPoint windowPoint = [dndParams->theEvent locationInWindow];
+ dragPrivate()->executed_action = Qt::ActionMask;
// do the drag
[dndParams->view retain];
[dndParams->view dragImage:image
@@ -1225,6 +1310,7 @@ Qt::DropAction QDragManager::drag(QDrag *o)
slideBack:YES];
[dndParams->view release];
[image release];
+ dragPrivate()->executed_action = Qt::IgnoreAction;
object = 0;
Qt::DropAction performedAction(qt_mac_mapNSDragOperation(dndParams->performedAction));
// do post drag processing, if required.
diff --git a/src/gui/kernel/qcocoaview_mac_p.h b/src/gui/kernel/qcocoaview_mac_p.h
index 9de94d5..ec1281e 100644
--- a/src/gui/kernel/qcocoaview_mac_p.h
+++ b/src/gui/kernel/qcocoaview_mac_p.h
@@ -83,6 +83,7 @@ Q_GUI_EXPORT
bool composing;
int composingLength;
bool sendKeyEvents;
+ QString *composingText;
}
- (id)initWithQWidget:(QWidget *)widget widgetPrivate:(QWidgetPrivate *)widgetprivate;
- (void) finishInitWithQWidget:(QWidget *)widget widgetPrivate:(QWidgetPrivate *)widgetprivate;
diff --git a/src/gui/kernel/qcocoawindow_mac.mm b/src/gui/kernel/qcocoawindow_mac.mm
index ba121cd..89f481f 100644
--- a/src/gui/kernel/qcocoawindow_mac.mm
+++ b/src/gui/kernel/qcocoawindow_mac.mm
@@ -1,11 +1,11 @@
/****************************************************************************
- **
- ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
- **
- ** This file is part of the QtGui module of the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
+**
+** 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
@@ -36,11 +36,11 @@
** If you are unsure which license is appropriate for your use, please
** contact the sales department at qt-sales@nokia.com.
** $QT_END_LICENSE$
- **
- ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
- ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- **
- ****************************************************************************/
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+****************************************************************************/
#include "qmacdefines_mac.h"
#ifdef QT_MAC_USE_COCOA
@@ -53,9 +53,10 @@
#include <QtGui/QWidget>
QT_FORWARD_DECLARE_CLASS(QWidget);
-QT_USE_NAMESPACE
-
+QT_BEGIN_NAMESPACE
extern Qt::MouseButton cocoaButton2QtButton(NSInteger buttonNum); // qcocoaview.mm
+QT_END_NAMESPACE
+QT_USE_NAMESPACE
@implementation NSWindow (QT_MANGLE_NAMESPACE(QWidgetIntegration))
@@ -130,7 +131,7 @@ extern Qt::MouseButton cocoaButton2QtButton(NSInteger buttonNum); // qcocoaview.
[self retain];
QWidget *widget = [[QT_MANGLE_NAMESPACE(QCocoaWindowDelegate) sharedDelegate] qt_qwidgetForWindow:self];
- QCocoaView *view = static_cast<QCocoaView *>(qt_mac_nativeview_for(widget));
+ QT_MANGLE_NAMESPACE(QCocoaView) *view = static_cast<QT_MANGLE_NAMESPACE(QCocoaView) *>(qt_mac_nativeview_for(widget));
Qt::MouseButton mouseButton = cocoaButton2QtButton([event buttonNumber]);
// sometimes need to redirect mouse events to the popup.
@@ -182,7 +183,9 @@ extern Qt::MouseButton cocoaButton2QtButton(NSInteger buttonNum); // qcocoaview.
- (BOOL)makeFirstResponder:(NSResponder *)responder
{
- if (responder == nil)
+ // For some reason Cocoa wants to flip the first responder
+ // when Qt doesn't want to, sorry, but "No" :-)
+ if (responder == nil && qApp->focusWidget())
return NO;
return [super makeFirstResponder:responder];
}
diff --git a/src/gui/kernel/qcocoawindowdelegate_mac.mm b/src/gui/kernel/qcocoawindowdelegate_mac.mm
index 8480179..fa325f4 100644
--- a/src/gui/kernel/qcocoawindowdelegate_mac.mm
+++ b/src/gui/kernel/qcocoawindowdelegate_mac.mm
@@ -1,11 +1,11 @@
/****************************************************************************
- **
- ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
- **
- ** This file is part of the QtGui module of the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
+**
+** 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
@@ -36,11 +36,11 @@
** If you are unsure which license is appropriate for your use, please
** contact the sales department at qt-sales@nokia.com.
** $QT_END_LICENSE$
- **
- ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
- ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- **
- ****************************************************************************/
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+****************************************************************************/
#import "private/qcocoawindowdelegate_mac_p.h"
#ifdef QT_MAC_USE_COCOA
@@ -194,7 +194,6 @@ static void cleanupCocoaWindowDelegate()
{
NSWindow *window = [notification object];
QWidget *qwidget = m_windowHash->value(window);
- // Just here to handle the is zoomed method.
QWidgetData *widgetData = qt_qwidget_data(qwidget);
if (!(qwidget->windowState() & (Qt::WindowMaximized | Qt::WindowFullScreen)) && [window isZoomed]) {
widgetData->window_state = widgetData->window_state | Qt::WindowMaximized;
@@ -202,7 +201,6 @@ static void cleanupCocoaWindowDelegate()
& ~Qt::WindowMaximized));
qt_sendSpontaneousEvent(qwidget, &e);
}
- [self checkForMove:[window frame] forWidget:qwidget];
NSRect rect = [[window contentView] frame];
const QSize newSize(rect.size.width, rect.size.height);
const QSize &oldSize = widgetData->crect.size();
@@ -212,12 +210,18 @@ static void cleanupCocoaWindowDelegate()
}
}
-- (void)checkForMove:(const NSRect &)newRect forWidget:(QWidget *)qwidget
+- (void)windowDidMove:(NSNotification *)notification
{
- // newRect's origin is bottom left.
+ // The code underneath needs to translate the window location
+ // from bottom left (which is the origin used by Cocoa) to
+ // upper left (which is the origin used by Qt):
+ NSWindow *window = [notification object];
+ NSRect newRect = [window frame];
+ QWidget *qwidget = m_windowHash->value(window);
QPoint qtPoint = flipPoint(NSMakePoint(newRect.origin.x,
newRect.origin.y + newRect.size.height)).toPoint();
const QRect &oldRect = qwidget->frameGeometry();
+
if (qtPoint.x() != oldRect.x() || qtPoint.y() != oldRect.y()) {
QWidgetData *widgetData = qt_qwidget_data(qwidget);
QRect oldCRect = widgetData->crect;
@@ -233,11 +237,6 @@ static void cleanupCocoaWindowDelegate()
}
}
-- (void)windowDidMove:(NSNotification *)notification
-{
- [self windowDidResize:notification];
-}
-
-(BOOL)windowShouldClose:(id)windowThatWantsToClose
{
QWidget *qwidget = m_windowHash->value(windowThatWantsToClose);
diff --git a/src/gui/kernel/qcursor.h b/src/gui/kernel/qcursor.h
index 15b4597..ad1860d 100644
--- a/src/gui/kernel/qcursor.h
+++ b/src/gui/kernel/qcursor.h
@@ -77,6 +77,7 @@ class QBitmap;
class QPixmap;
#if defined(Q_WS_MAC)
+void *nsCursorForQCursor(const QCursor &c);
void qt_mac_set_cursor(const QCursor *c, const QPoint &p);
#endif
@@ -128,6 +129,7 @@ public:
private:
QCursorData *d;
#if defined(Q_WS_MAC)
+ friend void *nsCursorForQCursor(const QCursor &c);
friend void qt_mac_set_cursor(const QCursor *c, const QPoint &p);
#endif
};
diff --git a/src/gui/kernel/qcursor_mac.mm b/src/gui/kernel/qcursor_mac.mm
index d632eb79..ae98f2e 100644
--- a/src/gui/kernel/qcursor_mac.mm
+++ b/src/gui/kernel/qcursor_mac.mm
@@ -95,9 +95,19 @@ protected:
}
};
+void *nsCursorForQCursor(const QCursor &c)
+{
+ c.d->update();
+ return [[static_cast<NSCursor *>(c.d->curs.cp.nscursor) retain] autorelease];
+}
+
static QCursorData *currentCursor = 0; //current cursor
void qt_mac_set_cursor(const QCursor *c, const QPoint &)
{
+#ifdef QT_MAC_USE_COCOA
+ Q_UNUSED(c);
+ return;
+#else
if (!c) {
currentCursor = 0;
return;
@@ -128,10 +138,15 @@ void qt_mac_set_cursor(const QCursor *c, const QPoint &)
}
}
currentCursor = c->d;
+#endif
}
void qt_mac_update_cursor_at_global_pos(const QPoint &globalPos)
{
+#ifdef QT_MAC_USE_COCOA
+ Q_UNUSED(globalPos);
+ return;
+#else
QCursor cursor(Qt::ArrowCursor);
if (QApplication::overrideCursor()) {
cursor = *QApplication::overrideCursor();
@@ -144,6 +159,7 @@ void qt_mac_update_cursor_at_global_pos(const QPoint &globalPos)
}
}
qt_mac_set_cursor(&cursor, globalPos);
+#endif
}
void qt_mac_update_cursor()
diff --git a/src/gui/kernel/qcursor_win.cpp b/src/gui/kernel/qcursor_win.cpp
index 85d5a11..a475882 100644
--- a/src/gui/kernel/qcursor_win.cpp
+++ b/src/gui/kernel/qcursor_win.cpp
@@ -66,7 +66,7 @@ QCursorData::~QCursorData()
{
delete bm;
delete bmm;
-#if !defined(Q_OS_WINCE) || defined(GWES_ICONCURS)
+#if !defined(Q_WS_WINCE) || defined(GWES_ICONCURS)
if (hcurs)
DestroyCursor(hcurs);
#endif
@@ -129,7 +129,7 @@ extern HBITMAP qt_createIconMask(const QBitmap &bitmap);
static HCURSOR create32BitCursor(const QPixmap &pixmap, int hx, int hy)
{
HCURSOR cur = 0;
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
QBitmap mask = pixmap.mask();
if (mask.isNull()) {
mask = QBitmap(pixmap.size());
@@ -407,7 +407,7 @@ void QCursorData::update()
}
int n = qMax(1, bbits.width() / 8);
int h = bbits.height();
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
uchar* xBits = new uchar[h * n];
uchar* xMask = new uchar[h * n];
int x = 0;
@@ -430,7 +430,7 @@ void QCursorData::update()
xBits, xMask);
delete [] xBits;
delete [] xMask;
-#elif defined(GWES_ICONCURS) // Q_OS_WINCE
+#elif defined(GWES_ICONCURS) // Q_WS_WINCE
// Windows CE only supports fixed cursor size.
int sysW = GetSystemMetrics(SM_CXCURSOR);
int sysH = GetSystemMetrics(SM_CYCURSOR);
diff --git a/src/gui/kernel/qdesktopwidget_win.cpp b/src/gui/kernel/qdesktopwidget_win.cpp
index 725e985..b9e2e1e 100644
--- a/src/gui/kernel/qdesktopwidget_win.cpp
+++ b/src/gui/kernel/qdesktopwidget_win.cpp
@@ -45,7 +45,7 @@
#include "qlibrary.h"
#include <qvector.h>
#include <limits.h>
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
#include <sipapi.h>
#endif
#include "qwidget_p.h"
@@ -92,7 +92,7 @@ QVector<QRect> *QDesktopWidgetPrivate::rects = 0;
QVector<QRect> *QDesktopWidgetPrivate::workrects = 0;
static int screen_number = 0;
int QDesktopWidgetPrivate::refcount = 0;
-#ifdef Q_OS_WINCE_WM
+#ifdef Q_WS_WINCE_WM
// Use SIP information, if available
// SipGetInfo is not supported by SSDK (no definition!).
static inline void qt_get_sip_info(QRect &rect)
@@ -208,7 +208,7 @@ void QDesktopWidgetPrivate::init(QDesktopWidget *that)
SystemParametersInfo(SPI_GETWORKAREA, 0, &r, 0);
QRect qr = QRect(QPoint(r.left, r.top), QPoint(r.right - 1, r.bottom - 1));
-#if defined(Q_OS_WINCE_WM)
+#if defined(Q_WS_WINCE_WM)
qt_get_sip_info(qr);
#endif
@@ -222,7 +222,7 @@ void QDesktopWidgetPrivate::init(QDesktopWidget *that)
enumDisplayMonitors(0, 0, enumCallback, 0);
enumDisplayMonitors = 0;
getMonitorInfo = 0;
-#endif // Q_OS_WINCE
+#endif // Q_WS_WINCE
}
QDesktopWidgetPrivate::~QDesktopWidgetPrivate()
@@ -303,7 +303,7 @@ QWidget *QDesktopWidget::screen(int /* screen */)
const QRect QDesktopWidget::availableGeometry(int screen) const
{
Q_D(const QDesktopWidget);
-#ifdef Q_OS_WINCE_WM
+#ifdef Q_WS_WINCE_WM
for(int i=0; i < d->workrects->size(); ++i)
qt_get_sip_info((*d->workrects)[i]);
#endif
@@ -385,7 +385,7 @@ void QDesktopWidget::resizeEvent(QResizeEvent *)
QDesktopWidgetPrivate::cleanup();
QDesktopWidgetPrivate::init(this);
-#ifdef Q_OS_WINCE_WM
+#ifdef Q_WS_WINCE_WM
for(int i=0; i < d->workrects->size(); ++i)
qt_get_sip_info((*d->workrects)[i]);
#endif
diff --git a/src/gui/kernel/qdnd_x11.cpp b/src/gui/kernel/qdnd_x11.cpp
index 4c9c73c..ed93b34 100644
--- a/src/gui/kernel/qdnd_x11.cpp
+++ b/src/gui/kernel/qdnd_x11.cpp
@@ -542,6 +542,8 @@ bool QX11Data::xdndMimeDataForAtom(Atom a, QMimeData *mimeData, QByteArray *data
dm->xdndMimeTransferedPixmapIndex =
(dm->xdndMimeTransferedPixmapIndex + 1) % 2;
}
+ } else {
+ DEBUG("QClipboard: xdndMimeDataForAtom(): converting to type '%s' is not supported", atomName);
}
}
return data;
@@ -623,27 +625,12 @@ QVariant QX11Data::xdndMimeConvertToFormat(Atom a, const QByteArray &data, const
if (a == XA_PIXMAP && data.size() == sizeof(Pixmap)) {
Pixmap xpm = *((Pixmap*)data.data());
Display *dpy = display;
- Window r;
- int x,y;
- uint w,h,bw,d;
if (!xpm)
return QByteArray();
- XGetGeometry(dpy,xpm, &r,&x,&y,&w,&h,&bw,&d);
+ QPixmap qpm = QPixmap::fromX11Pixmap(xpm);
QImageWriter imageWriter;
- GC gc = XCreateGC(dpy, xpm, 0, 0);
- QImage imageToWrite;
- if (d == 1) {
- QBitmap qbm(w,h);
- XCopyArea(dpy,xpm,qbm.handle(),gc,0,0,w,h,0,0);
- imageWriter.setFormat("PBMRAW");
- imageToWrite = qbm.toImage();
- } else {
- QPixmap qpm(w,h);
- XCopyArea(dpy,xpm,qpm.handle(),gc,0,0,w,h,0,0);
- imageWriter.setFormat("PPMRAW");
- imageToWrite = qpm.toImage();
- }
- XFreeGC(dpy,gc);
+ imageWriter.setFormat("PPMRAW");
+ QImage imageToWrite = qpm.toImage();
QBuffer buf;
buf.open(QIODevice::WriteOnly);
imageWriter.setDevice(&buf);
diff --git a/src/gui/kernel/qkeymapper_mac.cpp b/src/gui/kernel/qkeymapper_mac.cpp
index 1a0fb08..39abc5e 100644
--- a/src/gui/kernel/qkeymapper_mac.cpp
+++ b/src/gui/kernel/qkeymapper_mac.cpp
@@ -48,6 +48,7 @@
#include <qinputcontext.h>
#include <private/qkeymapper_p.h>
#include <private/qapplication_p.h>
+#include <private/qmacinputcontext_p.h>
QT_BEGIN_NAMESPACE
@@ -480,7 +481,8 @@ static bool translateKeyEventInternal(EventHandlerCallRef er, EventRef keyEvent,
#ifdef QT_MAC_USE_COCOA
if (outHandled) {
qt_mac_eat_unicode_key = false;
- CallNextEventHandler(er, keyEvent);
+ if (er)
+ CallNextEventHandler(er, keyEvent);
*outHandled = qt_mac_eat_unicode_key;
}
#endif
@@ -692,8 +694,14 @@ bool QKeyMapperPrivate::translateKeyEvent(QWidget *widget, EventHandlerCallRef e
return true;
}
- if (qApp->inputContext() && qApp->inputContext()->isComposing())
+ if (qApp->inputContext() && qApp->inputContext()->isComposing()) {
+ if (ekind == kEventRawKeyDown) {
+ QMacInputContext *context = qobject_cast<QMacInputContext*>(qApp->inputContext());
+ if (context)
+ context->setLastKeydownEvent(event);
+ }
return false;
+ }
//get modifiers
Qt::KeyboardModifiers modifiers;
int qtKey;
@@ -721,7 +729,8 @@ bool QKeyMapperPrivate::translateKeyEvent(QWidget *widget, EventHandlerCallRef e
//is it of use to text services? If so we won't bother
//with a QKeyEvent.
qt_mac_eat_unicode_key = false;
- CallNextEventHandler(er, event);
+ if (er)
+ CallNextEventHandler(er, event);
extern bool qt_mac_menubar_is_open();
if (qt_mac_eat_unicode_key || qt_mac_menubar_is_open()) {
return true;
diff --git a/src/gui/kernel/qlayout.cpp b/src/gui/kernel/qlayout.cpp
index aa46249..1d5a70d 100644
--- a/src/gui/kernel/qlayout.cpp
+++ b/src/gui/kernel/qlayout.cpp
@@ -1239,7 +1239,7 @@ bool QLayout::activate()
Must be implemented in subclasses to remove the layout item at \a
index from the layout, and return the item. If there is no such
item, the function must do nothing and return 0. Items are numbered
- consecutively from 0. If an item is deleted, other items will be
+ consecutively from 0. If an item is removed, other items will be
renumbered.
The following code fragment shows a safe way to remove all items
diff --git a/src/gui/kernel/qmacdefines_mac.h b/src/gui/kernel/qmacdefines_mac.h
index 97ec544..035b8c5 100644
--- a/src/gui/kernel/qmacdefines_mac.h
+++ b/src/gui/kernel/qmacdefines_mac.h
@@ -105,7 +105,7 @@ Yes, it is an informative comment ;-)
# undef qDebug
#endif
-#if __LP64__
+#ifdef __LP64__
typedef signed int OSStatus;
#else
typedef signed long OSStatus;
diff --git a/src/gui/kernel/qshortcutmap.cpp b/src/gui/kernel/qshortcutmap.cpp
index ed9654b..b6703e2 100644
--- a/src/gui/kernel/qshortcutmap.cpp
+++ b/src/gui/kernel/qshortcutmap.cpp
@@ -61,8 +61,6 @@
QT_BEGIN_NAMESPACE
-extern bool qt_mac_no_native_menubar; // qmenu_mac.cpp
-
// To enable verbose output uncomment below
//#define DEBUG_QSHORTCUTMAP
@@ -660,7 +658,7 @@ bool QShortcutMap::correctWidgetContext(Qt::ShortcutContext context, QWidget *w,
{
bool visible = w->isVisible();
#ifdef Q_WS_MAC
- if (!qt_mac_no_native_menubar && qobject_cast<QMenuBar *>(w))
+ if (!qApp->testAttribute(Qt::AA_DontUseNativeMenuBar) && qobject_cast<QMenuBar *>(w))
visible = true;
#endif
@@ -723,7 +721,7 @@ bool QShortcutMap::correctGraphicsWidgetContext(Qt::ShortcutContext context, QGr
{
bool visible = w->isVisible();
#ifdef Q_WS_MAC
- if (!qt_mac_no_native_menubar && qobject_cast<QMenuBar *>(w))
+ if (!qApp->testAttribute(Qt::AA_DontUseNativeMenuBar) && qobject_cast<QMenuBar *>(w))
visible = true;
#endif
diff --git a/src/gui/kernel/qt_cocoa_helpers_mac.mm b/src/gui/kernel/qt_cocoa_helpers_mac.mm
index 9c381b4..f000292 100644
--- a/src/gui/kernel/qt_cocoa_helpers_mac.mm
+++ b/src/gui/kernel/qt_cocoa_helpers_mac.mm
@@ -515,6 +515,18 @@ Qt::KeyboardModifiers qt_cocoaModifiers2QtModifiers(ulong modifierFlags)
return qtMods;
}
+Qt::KeyboardModifiers qt_cocoaDragOperation2QtModifiers(uint dragOperations)
+{
+ Qt::KeyboardModifiers qtMods =Qt::NoModifier;
+ if (dragOperations & NSDragOperationLink)
+ qtMods |= Qt::MetaModifier;
+ if (dragOperations & NSDragOperationGeneric)
+ qtMods |= Qt::ControlModifier;
+ if (dragOperations & NSDragOperationCopy)
+ qtMods |= Qt::AltModifier;
+ return qtMods;
+}
+
static inline QEvent::Type cocoaEvent2QtEvent(NSUInteger eventType)
{
// Handle the trivial cases that can be determined from the type.
@@ -555,12 +567,15 @@ bool qt_dispatchKeyEventWithCocoa(void * /*NSEvent * */ keyEvent, QWidget *widge
int keyLength = [keyChars length];
if (keyLength == 0)
return false; // Dead Key, nothing to do!
+ bool ignoreText = false;
Qt::Key qtKey = Qt::Key_unknown;
if (keyLength == 1) {
QChar ch([keyChars characterAtIndex:0]);
if (ch.isLower())
ch = ch.toUpper();
qtKey = cocoaKey2QtKey(ch);
+ // Do not set the text for Function-Key Unicodes characters (0xF700–0xF8FF).
+ ignoreText = (ch.unicode() >= 0xF700 && ch.unicode() <= 0xF8FF);
}
Qt::KeyboardModifiers keyMods = qt_cocoaModifiers2QtModifiers([event modifierFlags]);
QString text;
@@ -568,7 +583,7 @@ bool qt_dispatchKeyEventWithCocoa(void * /*NSEvent * */ keyEvent, QWidget *widge
// To quote from the Carbon port: This is actually wrong--but it is the best that
// can be done for now because of the Control/Meta mapping issues
// (we always get text on the Mac)
- if (!(keyMods & (Qt::ControlModifier | Qt::MetaModifier)))
+ if (!ignoreText && !(keyMods & (Qt::ControlModifier | Qt::MetaModifier)))
text = QCFString::toQString(reinterpret_cast<CFStringRef>(keyChars));
UInt32 macScanCode = 1;
diff --git a/src/gui/kernel/qt_cocoa_helpers_mac_p.h b/src/gui/kernel/qt_cocoa_helpers_mac_p.h
index ef55aa4..63a301c 100644
--- a/src/gui/kernel/qt_cocoa_helpers_mac_p.h
+++ b/src/gui/kernel/qt_cocoa_helpers_mac_p.h
@@ -141,6 +141,7 @@ inline QApplication *qAppInstance() { return static_cast<QApplication *>(QCoreAp
struct ::TabletProximityRec;
void qt_dispatchTabletProximityEvent(const ::TabletProximityRec &proxRec);
Qt::KeyboardModifiers qt_cocoaModifiers2QtModifiers(ulong modifierFlags);
+Qt::KeyboardModifiers qt_cocoaDragOperation2QtModifiers(uint dragOperations);
inline int flipYCoordinate(int y)
{
return QApplication::desktop()->screenGeometry(0).height() - y;
diff --git a/src/gui/kernel/qt_mac.cpp b/src/gui/kernel/qt_mac.cpp
index b1247e8..44e10a8 100644
--- a/src/gui/kernel/qt_mac.cpp
+++ b/src/gui/kernel/qt_mac.cpp
@@ -131,7 +131,7 @@ QColor qcolorForTheme(ThemeBrush brush)
QColor qcolorForThemeTextColor(ThemeTextColor themeColor)
{
-#ifdef QT_OS_MAC32
+#ifdef Q_OS_MAC32
RGBColor c;
GetThemeTextColor(themeColor, 32, true, &c);
QColor color = QColor(c.red / 265, c.green / 256, c.blue / 256);
diff --git a/src/gui/kernel/qt_mac_p.h b/src/gui/kernel/qt_mac_p.h
index e65492d..ca995dc 100644
--- a/src/gui/kernel/qt_mac_p.h
+++ b/src/gui/kernel/qt_mac_p.h
@@ -250,11 +250,13 @@ struct QMacDndAnswerRecord {
Qt::KeyboardModifiers modifiers;
Qt::MouseButtons buttons;
Qt::DropAction lastAction;
+ unsigned int lastOperation;
void clear() {
rect = QRect();
modifiers = Qt::NoModifier;
buttons = Qt::NoButton;
lastAction = Qt::IgnoreAction;
+ lastOperation = 0;
}
};
extern QMacDndAnswerRecord qt_mac_dnd_answer_rec;
diff --git a/src/gui/kernel/qt_x11_p.h b/src/gui/kernel/qt_x11_p.h
index 563b7e9..b9ace9d 100644
--- a/src/gui/kernel/qt_x11_p.h
+++ b/src/gui/kernel/qt_x11_p.h
@@ -652,6 +652,10 @@ struct QX11Data
_XEMBED,
_XEMBED_INFO,
+ XWacomStylus,
+ XWacomCursor,
+ XWacomEraser,
+
NPredefinedAtoms,
_QT_SETTINGS_TIMESTAMP = NPredefinedAtoms,
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index 20b79ce..dd95053 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -183,6 +183,7 @@ QWidgetPrivate::QWidgetPrivate(int version) :
,inDirtyList(0)
,isScrolled(0)
,isMoved(0)
+ ,usesDoubleBufferedGLContext(0)
#ifdef Q_WS_WIN
,noPaintOnScreen(0)
#endif
@@ -1026,7 +1027,7 @@ void QWidgetPrivate::adjustFlags(Qt::WindowFlags &flags, QWidget *w)
if (customize)
; // don't modify window flags if the user explicitely set them.
else if (type == Qt::Dialog || type == Qt::Sheet)
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
flags |= Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowContextHelpButtonHint | Qt::WindowCloseButtonHint;
#else
flags |= Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint;
@@ -1093,7 +1094,7 @@ void QWidgetPrivate::init(QWidget *parentWidget, Qt::WindowFlags f)
if (f & Qt::MSWindowsOwnDC)
q->setAttribute(Qt::WA_NativeWindow);
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
data.window_state_internal = 0;
#endif
@@ -2132,6 +2133,10 @@ QWidget *QWidget::find(WId id)
If a widget is non-native (alien) and winId() is invoked on it, that widget
will be provided a native handle.
+ On Mac OS X, the type returned depends on which framework Qt was linked
+ against. If Qt is using Carbon, the {WId} is actually an HIViewRef. If Qt
+ is using Cocoa, {WId} is a pointer to an NSView.
+
\note We recommend that you do not store this value as it is likely to
change at run-time.
@@ -2234,9 +2239,10 @@ WId QWidget::effectiveWinId() const
The style sheet contains a textual description of customizations to the
widget's style, as described in the \l{Qt Style Sheets} document.
- \note Qt style sheets are currently not supported for QMacStyle
- (the default style on Mac OS X). We plan to address this in some future
- release.
+ Since Qt 4.5, Qt style sheets fully supports Mac OS X.
+
+ \warning Qt style sheets are currently not supported for custom QStyle
+ subclasses. We plan to address this in some future release.
\sa setStyle(), QApplication::styleSheet, {Qt Style Sheets}
*/
@@ -4195,7 +4201,7 @@ const QPalette &QWidget::palette() const
if (!isEnabled()) {
data->pal.setCurrentColorGroup(QPalette::Disabled);
} else if ((!isVisible() || isActiveWindow())
-#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
+#if defined(Q_OS_WIN) && !defined(Q_WS_WINCE)
&& !QApplicationPrivate::isBlockedByModal(const_cast<QWidget *>(this))
#endif
) {
@@ -4713,10 +4719,13 @@ void QWidget::render(QPaintDevice *target, const QPoint &targetOffset,
if (redirected) {
target = redirected;
offset -= redirectionOffset;
- if (!inRenderWithPainter) { // Clip handled by shared painter (in qpainter.cpp).
- const QRegion redirectedSystemClip = redirected->paintEngine()->systemClip();
- if (!redirectedSystemClip.isEmpty())
- paintRegion &= redirectedSystemClip.translated(-offset);
+ }
+
+ if (!inRenderWithPainter) { // Clip handled by shared painter (in qpainter.cpp).
+ if (QPaintEngine *targetEngine = target->paintEngine()) {
+ const QRegion targetSystemClip = targetEngine->systemClip();
+ if (!targetSystemClip.isEmpty())
+ paintRegion &= targetSystemClip.translated(-offset);
}
}
@@ -4780,7 +4789,7 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset,
}
const qreal opacity = painter->opacity();
- if (qFuzzyCompare(opacity + 1, qreal(1.0)))
+ if (qFuzzyIsNull(opacity))
return; // Fully transparent.
Q_D(QWidget);
@@ -4820,8 +4829,13 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset,
const QRegion oldSystemClip = enginePriv->systemClip;
const QRegion oldSystemViewport = enginePriv->systemViewport;
- // This ensures that transformed system clips are inside the current system clip.
- enginePriv->setSystemViewport(oldSystemClip);
+ // This ensures that all painting triggered by render() is clipped to the current engine clip.
+ if (painter->hasClipping()) {
+ const QRegion painterClip = painter->deviceTransform().map(painter->clipRegion());
+ enginePriv->setSystemViewport(oldSystemClip.isEmpty() ? painterClip : oldSystemClip & painterClip);
+ } else {
+ enginePriv->setSystemViewport(oldSystemClip);
+ }
render(target, targetOffset, toBePainted, renderFlags);
@@ -7324,7 +7338,7 @@ QSize QWidgetPrivate::adjustedSize() const
#else // all others
QRect screen = QApplication::desktop()->screenGeometry(q->pos());
#endif
-#if defined (Q_OS_WINCE)
+#if defined (Q_WS_WINCE)
s.setWidth(qMin(s.width(), screen.width()));
s.setHeight(qMin(s.height(), screen.height()));
#else
@@ -9791,27 +9805,6 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on)
QEvent e(QEvent::MouseTrackingChange);
QApplication::sendEvent(this, &e);
break; }
-#if !defined(QT_NO_DIRECT3D) && defined(Q_WS_WIN)
- case Qt::WA_MSWindowsUseDirect3D:
- if (!qApp->testAttribute(Qt::AA_MSWindowsUseDirect3DByDefault)) {
- if (on) {
- if (!d->extra)
- d->createExtra();
- d->extra->had_auto_fill_bg = d->extra->autoFillBackground;
- d->extra->had_no_system_bg = testAttribute(Qt::WA_NoSystemBackground);
- d->extra->had_paint_on_screen = testAttribute(Qt::WA_PaintOnScreen);
- // enforce the opaque widget state D3D needs
- d->extra->autoFillBackground = true;
- setAttribute(Qt::WA_PaintOnScreen);
- setAttribute(Qt::WA_NoSystemBackground);
- } else if (d->extra) {
- d->extra->autoFillBackground = d->extra->had_auto_fill_bg;
- setAttribute(Qt::WA_PaintOnScreen, d->extra->had_paint_on_screen);
- setAttribute(Qt::WA_NoSystemBackground, d->extra->had_no_system_bg);
- }
- }
- break;
-#endif
case Qt::WA_NativeWindow: {
QInputContext *ic = 0;
if (on && !internalWinId() && testAttribute(Qt::WA_InputMethodEnabled) && hasFocus()) {
diff --git a/src/gui/kernel/qwidget.h b/src/gui/kernel/qwidget.h
index 309463e..6703d26 100644
--- a/src/gui/kernel/qwidget.h
+++ b/src/gui/kernel/qwidget.h
@@ -130,7 +130,7 @@ public:
int alloc_region_index;
// int alloc_region_revision;
#endif
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
uint window_state_internal : 4;
#endif
QRect wrect;
@@ -469,7 +469,7 @@ public Q_SLOTS:
virtual void setVisible(bool visible);
inline void setHidden(bool hidden) { setVisible(!hidden); }
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
inline void show() { setVisible(true); }
#else
void show();
diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm
index 9eac321..9da0b6b 100644
--- a/src/gui/kernel/qwidget_mac.mm
+++ b/src/gui/kernel/qwidget_mac.mm
@@ -459,7 +459,18 @@ Q_GUI_EXPORT OSWindowRef qt_mac_window_for(const QWidget *w)
if (hiview){
OSWindowRef window = qt_mac_window_for(hiview);
if (!window && qt_isGenuineQWidget(hiview)) {
- w->window()->d_func()->createWindow_sys();
+ QWidget *myWindow = w->window();
+ // This is a workaround for NSToolbar. When a widget is hidden
+ // by clicking the toolbar button, Cocoa reparents the widgets
+ // to another window (but Qt doesn't know about it).
+ // When we start showing them, it reparents back,
+ // but at this point it's window is nil, but the window it's being brought
+ // into (the Qt one) is for sure created.
+ // This stops the hierarchy moving under our feet.
+ if (myWindow != w && qt_mac_window_for(qt_mac_nativeview_for(myWindow)))
+ return qt_mac_window_for(qt_mac_nativeview_for(myWindow));
+
+ myWindow->d_func()->createWindow_sys();
// Reget the hiview since the "create window could potentially move the view (I guess).
hiview = qt_mac_nativeview_for(w);
window = qt_mac_window_for(hiview);
@@ -2145,6 +2156,7 @@ void QWidgetPrivate::finishCreateWindow_sys_Carbon(OSWindowRef windowRef)
setWindowModified_sys(q->isWindowModified());
updateFrameStrut();
qt_mac_update_sizer(q);
+ applyMaxAndMinSizeOnWindow();
}
#else // QT_MAC_USE_COCOA
void QWidgetPrivate::finishCreateWindow_sys_Cocoa(void * /*NSWindow * */ voidWindowRef)
@@ -2166,7 +2178,10 @@ void QWidgetPrivate::finishCreateWindow_sys_Cocoa(void * /*NSWindow * */ voidWin
if ((popup || type == Qt::Tool || type == Qt::ToolTip) && !q->isModal()) {
[windowRef setHidesOnDeactivate:YES];
[windowRef setHasShadow:YES];
+ } else {
+ [windowRef setHidesOnDeactivate:NO];
}
+
Q_UNUSED(parentWidget);
Q_UNUSED(dialog);
@@ -2227,6 +2242,7 @@ void QWidgetPrivate::finishCreateWindow_sys_Cocoa(void * /*NSWindow * */ voidWin
syncCocoaMask();
macUpdateIsOpaque();
qt_mac_update_sizer(q);
+ applyMaxAndMinSizeOnWindow();
}
#endif // QT_MAC_USE_COCOA
@@ -2838,12 +2854,26 @@ void QWidgetPrivate::updateSystemBackground()
void QWidgetPrivate::setCursor_sys(const QCursor &)
{
+#ifndef QT_MAC_USE_COCOA
qt_mac_update_cursor();
+#else
+ Q_Q(QWidget);
+ if (q->testAttribute(Qt::WA_WState_Created)) {
+ [qt_mac_window_for(q) invalidateCursorRectsForView:qt_mac_nativeview_for(q)];
+ }
+#endif
}
void QWidgetPrivate::unsetCursor_sys()
{
+#ifndef QT_MAC_USE_COCOA
qt_mac_update_cursor();
+#else
+ Q_Q(QWidget);
+ if (q->testAttribute(Qt::WA_WState_Created)) {
+ [qt_mac_window_for(q) invalidateCursorRectsForView:qt_mac_nativeview_for(q)];
+ }
+#endif
}
void QWidgetPrivate::setWindowTitle_sys(const QString &caption)
@@ -3967,6 +3997,53 @@ void QWidgetPrivate::setWSGeometry(bool dontShow, const QRect &oldRect)
}
}
+void QWidgetPrivate::adjustWithinMaxAndMinSize(int &w, int &h)
+{
+ if (QWExtra *extra = extraData()) {
+ w = qMin(w, extra->maxw);
+ h = qMin(h, extra->maxh);
+ w = qMax(w, extra->minw);
+ h = qMax(h, extra->minh);
+
+ // Deal with size increment
+ if (QTLWExtra *top = topData()) {
+ if(top->incw) {
+ w = w/top->incw;
+ w *= top->incw;
+ }
+ if(top->inch) {
+ h = h/top->inch;
+ h *= top->inch;
+ }
+ }
+ }
+
+ if (isRealWindow()) {
+ w = qMax(0, w);
+ h = qMax(0, h);
+ }
+}
+
+void QWidgetPrivate::applyMaxAndMinSizeOnWindow()
+{
+ Q_Q(QWidget);
+ const float max_f(20000);
+#ifndef QT_MAC_USE_COCOA
+#define SF(x) ((x > max_f) ? max_f : x)
+ HISize max = CGSizeMake(SF(extra->maxw), SF(extra->maxh));
+ HISize min = CGSizeMake(SF(extra->minw), SF(extra->minh));
+#undef SF
+ SetWindowResizeLimits(qt_mac_window_for(q), &min, &max);
+#else
+#define SF(x) ((x > max_f) ? max_f : x)
+ NSSize max = NSMakeSize(SF(extra->maxw), SF(extra->maxh));
+ NSSize min = NSMakeSize(SF(extra->minw), SF(extra->minh));
+#undef SF
+ [qt_mac_window_for(q) setMinSize:min];
+ [qt_mac_window_for(q) setMaxSize:max];
+#endif
+}
+
void QWidgetPrivate::setGeometry_sys(int x, int y, int w, int h, bool isMove)
{
Q_Q(QWidget);
@@ -3977,12 +4054,19 @@ void QWidgetPrivate::setGeometry_sys(int x, int y, int w, int h, bool isMove)
QMacCocoaAutoReleasePool pool;
bool realWindow = isRealWindow();
- if (realWindow && !(w == 0 && h == 0) && !q->testAttribute(Qt::WA_DontShowOnScreen)) {
- topData()->isSetGeometry = 1;
- topData()->isMove = isMove;
+
+ if (realWindow && !q->testAttribute(Qt::WA_DontShowOnScreen)){
+ adjustWithinMaxAndMinSize(w, h);
#ifndef QT_MAC_USE_COCOA
- Rect r; SetRect(&r, x, y, x + w, y + h);
- SetWindowBounds(qt_mac_window_for(q), kWindowContentRgn, &r);
+ if (w != 0 && h != 0) {
+ topData()->isSetGeometry = 1;
+ topData()->isMove = isMove;
+ Rect r; SetRect(&r, x, y, x + w, y + h);
+ SetWindowBounds(qt_mac_window_for(q), kWindowContentRgn, &r);
+ topData()->isSetGeometry = 0;
+ } else {
+ setGeometry_sys_helper(x, y, w, h, isMove);
+ }
#else
NSWindow *window = qt_mac_window_for(q);
const QRect &fStrut = frameStrut();
@@ -3991,9 +4075,25 @@ void QWidgetPrivate::setGeometry_sys(int x, int y, int w, int h, bool isMove)
fStrut.top() + fStrut.bottom() + h));
NSRect cocoaFrameRect = NSMakeRect(frameRect.x(), flipYCoordinate(frameRect.bottom() + 1),
frameRect.width(), frameRect.height());
- [window setFrame:cocoaFrameRect display:NO];
+
+ QPoint currTopLeft = data.crect.topLeft();
+ if (currTopLeft.x() == x && currTopLeft.y() == y
+ && cocoaFrameRect.size.width != 0
+ && cocoaFrameRect.size.height != 0) {
+ [window setFrame:cocoaFrameRect display:NO];
+ } else {
+ // The window is moved and resized (or resized to zero).
+ // Since Cocoa usually only sends us a resize callback after
+ // setting a window frame, we issue an explicit move as
+ // well. To stop Cocoa from optimize away the move (since the move
+ // would have the same origin as the setFrame call) we shift the
+ // window back and forth inbetween.
+ cocoaFrameRect.origin.y += 1;
+ [window setFrame:cocoaFrameRect display:NO];
+ cocoaFrameRect.origin.y -= 1;
+ [window setFrameOrigin:cocoaFrameRect.origin];
+ }
#endif
- topData()->isSetGeometry = 0;
} else {
setGeometry_sys_helper(x, y, w, h, isMove);
}
@@ -4003,74 +4103,34 @@ void QWidgetPrivate::setGeometry_sys_helper(int x, int y, int w, int h, bool isM
{
Q_Q(QWidget);
bool realWindow = isRealWindow();
- if(QWExtra *extra = extraData()) { // any size restrictions?
- if(realWindow) {
- qt_mac_update_sizer(q);
- if(q->windowFlags() & Qt::WindowMaximizeButtonHint) {
-#ifndef QT_MAC_USE_COCOA
- OSWindowRef window = qt_mac_window_for(q);
- if(extra->maxw && extra->maxh && extra->maxw == extra->minw
- && extra->maxh == extra->minh) {
- ChangeWindowAttributes(window, kWindowNoAttributes, kWindowFullZoomAttribute);
- } else {
- ChangeWindowAttributes(window, kWindowFullZoomAttribute, kWindowNoAttributes);
- }
-#endif
- }
- }
-
- w = qMin(w,extra->maxw);
- h = qMin(h,extra->maxh);
- w = qMax(w,extra->minw);
- h = qMax(h,extra->minh);
-
- // Deal with size increment
- if(QTLWExtra *top = topData()) {
- if(top->incw) {
- w = w/top->incw;
- w *= top->incw;
- }
- if(top->inch) {
- h = h/top->inch;
- h *= top->inch;
- }
- }
- }
-
- if (realWindow) {
- w = qMax(0, w);
- h = qMax(0, h);
- }
QPoint oldp = q->pos();
QSize olds = q->size();
const bool isResize = (olds != QSize(w, h));
- if(!realWindow && !isResize && QPoint(x, y) == oldp)
+
+ if (!realWindow && !isResize && QPoint(x, y) == oldp)
return;
- if(isResize && q->isMaximized())
+
+ if (isResize)
data.window_state = data.window_state & ~Qt::WindowMaximized;
+
const bool visible = q->isVisible();
data.crect = QRect(x, y, w, h);
- if(realWindow) {
- if(QWExtra *extra = extraData()) { //set constraints
- const float max_f(20000);
+ if (realWindow) {
+ adjustWithinMaxAndMinSize(w, h);
+ qt_mac_update_sizer(q);
+
#ifndef QT_MAC_USE_COCOA
-#define SF(x) ((x > max_f) ? max_f : x)
- HISize max = CGSizeMake(SF(extra->maxw), SF(extra->maxh));
- HISize min = CGSizeMake(SF(extra->minw), SF(extra->minh));
-#undef SF
- SetWindowResizeLimits(qt_mac_window_for(q), &min, &max);
-#else
-#define SF(x) ((x > max_f) ? max_f : x)
- NSSize max = NSMakeSize(SF(extra->maxw), SF(extra->maxh));
- NSSize min = NSMakeSize(SF(extra->minw), SF(extra->minh));
-#undef SF
- [qt_mac_window_for(q) setMinSize:min];
- [qt_mac_window_for(q) setMaxSize:max];
-#endif
+ if (q->windowFlags() & Qt::WindowMaximizeButtonHint) {
+ OSWindowRef window = qt_mac_window_for(q);
+ if (extra->maxw && extra->maxh && extra->maxw == extra->minw
+ && extra->maxh == extra->minh) {
+ ChangeWindowAttributes(window, kWindowNoAttributes, kWindowFullZoomAttribute);
+ } else {
+ ChangeWindowAttributes(window, kWindowFullZoomAttribute, kWindowNoAttributes);
+ }
}
-#ifndef QT_MAC_USE_COCOA
HIRect bounds = CGRectMake(0, 0, w, h);
HIViewSetFrame(qt_mac_nativeview_for(q), &bounds);
#else
@@ -4116,6 +4176,7 @@ void QWidgetPrivate::setGeometry_sys_helper(int x, int y, int w, int h, bool isM
void QWidgetPrivate::setConstraints_sys()
{
updateMaximizeButton_sys();
+ applyMaxAndMinSizeOnWindow();
}
void QWidgetPrivate::updateMaximizeButton_sys()
@@ -4584,8 +4645,11 @@ void QWidgetPrivate::setModal_sys()
if (windowParent && q->windowModality() == Qt::WindowModal){
// Window should be window-modal, which implies a sheet.
- if (!alreadySheet)
+ if (!alreadySheet) {
+ // NB: the following call will call setModal_sys recursivly:
recreateMacWindow();
+ windowRef = qt_mac_window_for(q);
+ }
if ([windowRef isKindOfClass:[NSPanel class]]){
// If the primary window of the sheet parent is a child of a modal dialog,
// the sheet parent should not be modally shaddowed.
diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h
index 9e93f66..8c6a234 100644
--- a/src/gui/kernel/qwidget_p.h
+++ b/src/gui/kernel/qwidget_p.h
@@ -177,11 +177,6 @@ struct QWExtra {
//bit flags at the end to improve packing
#if defined(Q_WS_WIN)
uint shown_mode : 8; // widget show mode
-#ifndef QT_NO_DIRECT3D
- uint had_paint_on_screen : 1;
- uint had_no_system_bg : 1;
- uint had_auto_fill_bg : 1;
-#endif
#endif
#if defined(Q_WS_X11)
uint compress_events : 1;
@@ -257,6 +252,8 @@ public:
void macUpdateIsOpaque();
void setEnabled_helper_sys(bool enable);
bool isRealWindow() const;
+ void adjustWithinMaxAndMinSize(int &w, int &h);
+ void applyMaxAndMinSizeOnWindow();
#endif
void raise_sys();
@@ -535,6 +532,7 @@ public:
uint inDirtyList : 1;
uint isScrolled : 1;
uint isMoved : 1;
+ uint usesDoubleBufferedGLContext : 1;
#ifdef Q_WS_WIN
uint noPaintOnScreen : 1; // see qwidget_win.cpp ::paintEngine()
diff --git a/src/gui/kernel/qwidget_win.cpp b/src/gui/kernel/qwidget_win.cpp
index ffbb341..cfdabaf 100644
--- a/src/gui/kernel/qwidget_win.cpp
+++ b/src/gui/kernel/qwidget_win.cpp
@@ -56,19 +56,13 @@
#include "private/qbackingstore_p.h"
#include "private/qwindowsurface_raster_p.h"
-#ifndef QT_NO_DIRECT3D
-#include "private/qpaintengine_d3d_p.h"
-#include "private/qwindowsurface_d3d_p.h"
-#endif
-
-
#include <qdebug.h>
#include <private/qapplication_p.h>
#include <private/qwininputcontext_p.h>
#include <private/qpaintengine_raster_p.h>
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
#include "qguifunctions_wince.h"
QT_USE_NAMESPACE
extern void qt_wince_maximize(QWidget *widget); //defined in qguifunctions_wince.cpp
@@ -257,7 +251,7 @@ extern "C" LRESULT CALLBACK QtWndProc(HWND, UINT, WPARAM, LPARAM);
QWidget member functions
*****************************************************************************/
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyOldWindow)
{
Q_Q(QWidget);
@@ -546,7 +540,7 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
}
}
-#endif //Q_OS_WINCE
+#endif //Q_WS_WINCE
void QWidget::destroy(bool destroyWindow, bool destroySubWindows)
@@ -574,7 +568,7 @@ void QWidget::destroy(bool destroyWindow, bool destroySubWindows)
if (destroyWindow && !(windowType() == Qt::Desktop) && internalWinId()) {
DestroyWindow(internalWinId());
}
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
if (destroyWindow && (windowType() == Qt::Desktop) && !GetDesktopWindow()) {
DestroyWindow(internalWinId());
}
@@ -681,7 +675,7 @@ void QWidgetPrivate::setParent_sys(QWidget *parent, Qt::WindowFlags f)
EnableMenuItem(systemMenu, SC_CLOSE, MF_BYCOMMAND|MF_GRAYED);
}
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
// Show borderless toplevel windows in tasklist & NavBar
if (!parent) {
QString txt = q->windowTitle().isEmpty()?qAppName():q->windowTitle();
@@ -877,12 +871,12 @@ QCursor *qt_grab_cursor()
}
// The procedure does nothing, but is required for mousegrabbing to work
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
LRESULT CALLBACK qJournalRecordProc(int nCode, WPARAM wParam, LPARAM lParam)
{
return CallNextHookEx(journalRec, nCode, wParam, lParam);
}
-#endif //Q_OS_WINCE
+#endif //Q_WS_WINCE
/* Works only as long as pointer is inside the application's window,
which is good enough for QDockWidget.
@@ -905,7 +899,7 @@ void QWidgetPrivate::grabMouseWhileInWindow()
}
}
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
void QWidget::grabMouse()
{
if (!qt_nograb()) {
@@ -982,7 +976,7 @@ void QWidget::activateWindow()
SetForegroundWindow(window()->internalWinId());
}
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
void QWidget::setWindowState(Qt::WindowStates newstate)
{
Q_D(QWidget);
@@ -1084,7 +1078,7 @@ void QWidget::setWindowState(Qt::WindowStates newstate)
QWindowStateChangeEvent e(oldstate);
QApplication::sendEvent(this, &e);
}
-#endif //Q_OS_WINCE
+#endif //Q_WS_WINCE
/*
@@ -1097,7 +1091,7 @@ void QWidgetPrivate::hide_sys()
Q_Q(QWidget);
deactivateWidgetCleanup();
Q_ASSERT(q->testAttribute(Qt::WA_WState_Created));
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
if (!qt_wince_is_mobile() && q->isFullScreen()) {
HWND handle = FindWindow(L"HHTaskBar", L"");
if (handle) {
@@ -1126,7 +1120,7 @@ void QWidgetPrivate::hide_sys()
\internal
Platform-specific part of QWidget::show().
*/
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
void QWidgetPrivate::show_sys()
{
Q_Q(QWidget);
@@ -1194,7 +1188,7 @@ void QWidgetPrivate::show_sys()
invalidateBuffer(q->rect());
}
-#endif //Q_OS_WINCE
+#endif //Q_WS_WINCE
void QWidgetPrivate::setFocus_sys()
{
@@ -1452,7 +1446,7 @@ void QWidgetPrivate::setGeometry_sys(int x, int y, int w, int h, bool isMove)
show_sys();
} else if (!q->testAttribute(Qt::WA_DontShowOnScreen)) {
q->setAttribute(Qt::WA_OutsideWSRange, false);
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
// If the window is hidden and in maximized state or minimized, instead of moving the
// window, set the normal position of the window.
WINDOWPLACEMENT wndpl;
@@ -1571,7 +1565,7 @@ bool QWidgetPrivate::shouldShowMaximizeButton()
void QWidgetPrivate::winUpdateIsOpaque()
{
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
Q_Q(QWidget);
if (!q->isWindow() || !q->testAttribute(Qt::WA_TranslucentBackground))
@@ -1592,7 +1586,7 @@ void QWidgetPrivate::winUpdateIsOpaque()
void QWidgetPrivate::setConstraints_sys()
{
-#ifndef Q_OS_WINCE_WM
+#ifndef Q_WS_WINCE_WM
Q_Q(QWidget);
if (q->isWindow() && q->testAttribute(Qt::WA_WState_Created)) {
int style = GetWindowLongA(q->internalWinId(), GWL_STYLE);
@@ -1710,23 +1704,18 @@ int QWidget::metric(PaintDeviceMetric m) const
return val;
}
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
void QWidgetPrivate::createSysExtra()
{
#ifndef QT_NO_DRAGANDDROP
extra->dropTarget = 0;
#endif
-#ifndef QT_NO_DIRECT3D
- extra->had_auto_fill_bg = 0;
- extra->had_paint_on_screen = 0;
- extra->had_no_system_bg = 0;
-#endif
}
void QWidgetPrivate::deleteSysExtra()
{
}
-#endif //Q_OS_WINCE
+#endif //Q_WS_WINCE
void QWidgetPrivate::createTLSysExtra()
{
@@ -1877,7 +1866,7 @@ void QWidgetPrivate::updateFrameStrut()
GetWindowLongA(q->internalWinId(), GWL_EXSTYLE));
uint style = QT_WA_INLINE(GetWindowLongW(q->internalWinId(), GWL_STYLE),
GetWindowLongA(q->internalWinId(), GWL_STYLE));
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
if (AdjustWindowRectEx(&rect, style & ~(WS_OVERLAPPED), FALSE, exstyle)) {
#else
if (AdjustWindowRectEx(&rect, style, FALSE, exstyle)) {
@@ -1887,7 +1876,7 @@ void QWidgetPrivate::updateFrameStrut()
}
}
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
void QWidgetPrivate::setWindowOpacity_sys(qreal level)
{
Q_Q(QWidget);
@@ -1922,7 +1911,7 @@ void QWidgetPrivate::setWindowOpacity_sys(qreal level)
}
(*ptrSetLayeredWindowAttributes)(q->internalWinId(), 0, (int)(level * 255), Q_LWA_ALPHA);
}
-#endif //Q_OS_WINCE
+#endif //Q_WS_WINCE
// class QGlobalRasterPaintEngine: public QRasterPaintEngine
// {
@@ -1931,22 +1920,6 @@ void QWidgetPrivate::setWindowOpacity_sys(qreal level)
// };
// Q_GLOBAL_STATIC(QGlobalRasterPaintEngine, globalRasterPaintEngine)
-#ifndef QT_NO_DIRECT3D
-static void cleanup_d3d_engine();
-Q_GLOBAL_STATIC_WITH_INITIALIZER(QDirect3DPaintEngine, _qt_d3dEngine,
- {
- qAddPostRoutine(cleanup_d3d_engine);
- })
-static void cleanup_d3d_engine()
-{
- _qt_d3dEngine()->cleanup();
-}
-QDirect3DPaintEngine* qt_d3dEngine()
-{
- return _qt_d3dEngine();
-}
-#endif
-
#ifndef QT_NO_DIRECTDRAW
static uchar *qt_primary_surface_bits;
@@ -2059,19 +2032,6 @@ void qt_win_initialize_directdraw() { }
QPaintEngine *QWidget::paintEngine() const
{
-#ifndef QT_NO_DIRECT3D
- if ((qApp->testAttribute(Qt::AA_MSWindowsUseDirect3DByDefault)
- || testAttribute(Qt::WA_MSWindowsUseDirect3D))
- && qt_d3dEngine()->hasDirect3DSupport())
- {
- QDirect3DPaintEngine *engine = qt_d3dEngine();
- if (qApp->testAttribute(Qt::AA_MSWindowsUseDirect3DByDefault))
- engine->setFlushOnEnd(false);
- else
- engine->setFlushOnEnd(true);
- return engine;
- }
-#endif
#ifndef QT_NO_DIRECTDRAW
QOnScreenRasterPaintEngine *pe = onScreenPaintEngine();
pe->widget = this;
@@ -2100,13 +2060,6 @@ QPaintEngine *QWidget::paintEngine() const
QWindowSurface *QWidgetPrivate::createDefaultWindowSurface_sys()
{
Q_Q(QWidget);
-#ifndef QT_NO_DIRECT3D
- extern QDirect3DPaintEngine *qt_d3dEngine();
- if (qApp->testAttribute(Qt::AA_MSWindowsUseDirect3DByDefault) && (q->windowOpacity() == 1.0f)
- && qt_d3dEngine()->hasDirect3DSupport()) {
- return new QD3DWindowSurface(q);
- }
-#endif
return new QRasterWindowSurface(q);
}
@@ -2119,6 +2072,6 @@ void QWidgetPrivate::setModal_sys()
QT_END_NAMESPACE
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
# include "qwidget_wince.cpp"
#endif
diff --git a/src/gui/kernel/qwidget_wince.cpp b/src/gui/kernel/qwidget_wince.cpp
index bb9681e..cca928e 100644
--- a/src/gui/kernel/qwidget_wince.cpp
+++ b/src/gui/kernel/qwidget_wince.cpp
@@ -39,7 +39,7 @@
**
****************************************************************************/
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
#include "qguifunctions_wince.h"
@@ -211,7 +211,7 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
style |= WS_SYSMENU;
if (flags & Qt::WindowContextHelpButtonHint)
exsty |= WS_EX_CONTEXTHELP;
-#ifndef Q_OS_WINCE_WM
+#ifndef Q_WS_WINCE_WM
if (flags & Qt::WindowMinimizeButtonHint)
style |= WS_MINIMIZEBOX;
if (shouldShowMaximizeButton())
@@ -414,7 +414,7 @@ void QWidgetPrivate::show_sys() {
int sm = SW_SHOW;
bool fakedMaximize = false;
if (q->isWindow()) {
-#ifndef Q_OS_WINCE_WM
+#ifndef Q_WS_WINCE_WM
if (q->isMinimized()) {
sm = SW_SHOWMINIMIZED;
} else if (q->isMaximized()) {
@@ -450,7 +450,7 @@ void QWidgetPrivate::show_sys() {
if (q->isMaximized() && q->isWindow())
qt_wince_maximize(q);
-#ifndef Q_OS_WINCE_WM
+#ifndef Q_WS_WINCE_WM
if (!qt_wince_is_mobile() && q->isFullScreen()) {
HWND handle = FindWindow(L"HHTaskBar", L"");
if (handle) {
@@ -583,7 +583,7 @@ void QWidget::setWindowState(Qt::WindowStates newstate)
}
if ((newstate & Qt::WindowMaximized) && !(newstate & Qt::WindowFullScreen)) {
QRect r = d->topData()->normalGeometry;
-#ifdef Q_OS_WINCE_WM
+#ifdef Q_WS_WINCE_WM
if (!inherits("QDialog") && !inherits("QMdiArea") && !isVisible()) {
d->data.crect.setRect(0, 0, -1, -1);
}
@@ -704,4 +704,4 @@ void QWidget::show()
QT_END_NAMESPACE
-#endif Q_OS_WINCE
+#endif // Q_WS_WINCE
diff --git a/src/gui/kernel/qwidget_x11.cpp b/src/gui/kernel/qwidget_x11.cpp
index ea8af93..76734d4 100644
--- a/src/gui/kernel/qwidget_x11.cpp
+++ b/src/gui/kernel/qwidget_x11.cpp
@@ -1750,8 +1750,8 @@ void QWidgetPrivate::show_sys()
mwmhints.functions &= ~MWM_FUNC_RESIZE;
}
- mwmhints.flags |= MWM_HINTS_DECORATIONS;
if (mwmhints.decorations == MWM_DECOR_ALL) {
+ mwmhints.flags |= MWM_HINTS_DECORATIONS;
mwmhints.decorations = (MWM_DECOR_BORDER
| MWM_DECOR_TITLE
| MWM_DECOR_MENU);
@@ -1760,10 +1760,12 @@ void QWidgetPrivate::show_sys()
}
if (q->windowFlags() & Qt::WindowMinimizeButtonHint) {
+ mwmhints.flags |= MWM_HINTS_DECORATIONS;
mwmhints.decorations |= MWM_DECOR_MINIMIZE;
mwmhints.functions |= MWM_FUNC_MINIMIZE;
}
if (q->windowFlags() & Qt::WindowMaximizeButtonHint) {
+ mwmhints.flags |= MWM_HINTS_DECORATIONS;
mwmhints.decorations |= MWM_DECOR_MAXIMIZE;
mwmhints.functions |= MWM_FUNC_MAXIMIZE;
}
diff --git a/src/gui/kernel/qx11embed_x11.cpp b/src/gui/kernel/qx11embed_x11.cpp
index e49c4d6..6329135 100644
--- a/src/gui/kernel/qx11embed_x11.cpp
+++ b/src/gui/kernel/qx11embed_x11.cpp
@@ -481,7 +481,7 @@ QX11EmbedWidget::QX11EmbedWidget(QWidget *parent)
| ExposureMask | StructureNotifyMask
| SubstructureNotifyMask | PropertyChangeMask);
- unsigned int data[] = {XEMBED_VERSION, XEMBED_MAPPED};
+ long data[] = {XEMBED_VERSION, XEMBED_MAPPED};
XChangeProperty(x11Info().display(), internalWinId(), ATOM(_XEMBED_INFO),
ATOM(_XEMBED_INFO), 32, PropModeReplace,
(unsigned char*) data, 2);
@@ -1571,7 +1571,7 @@ void QX11EmbedContainer::showEvent(QShowEvent *)
{
Q_D(QX11EmbedContainer);
if (d->client) {
- unsigned int data[] = {XEMBED_VERSION, XEMBED_MAPPED};
+ long data[] = {XEMBED_VERSION, XEMBED_MAPPED};
XChangeProperty(x11Info().display(), d->client, ATOM(_XEMBED_INFO), ATOM(_XEMBED_INFO), 32,
PropModeReplace, (unsigned char *) data, 2);
}
@@ -1587,8 +1587,7 @@ void QX11EmbedContainer::hideEvent(QHideEvent *)
{
Q_D(QX11EmbedContainer);
if (d->client) {
- unsigned int data[] = {XEMBED_VERSION, XEMBED_MAPPED};
-
+ long data[] = {XEMBED_VERSION, XEMBED_MAPPED};
XChangeProperty(x11Info().display(), d->client, ATOM(_XEMBED_INFO), ATOM(_XEMBED_INFO), 32,
PropModeReplace, (unsigned char *) data, 2);
}
diff --git a/src/gui/mac/images/leopard-unified-toolbar-on.png b/src/gui/mac/images/leopard-unified-toolbar-on.png
new file mode 100644
index 0000000..6716597
--- /dev/null
+++ b/src/gui/mac/images/leopard-unified-toolbar-on.png
Binary files differ
diff --git a/src/gui/mac/maccursors.qrc b/src/gui/mac/macresources.qrc
index d80a63b..9696002 100644
--- a/src/gui/mac/maccursors.qrc
+++ b/src/gui/mac/macresources.qrc
@@ -6,4 +6,7 @@
<file>images/waitcursor.png</file>
<file>images/pluscursor.png</file>
</qresource>
+<qresource prefix="/trolltech/mac/style">
+<file>images/leopard-unified-toolbar-on.png</file>
+</qresource>
</RCC>
diff --git a/src/gui/math3d/math3d.pri b/src/gui/math3d/math3d.pri
index 581adbd..e4dd53a 100644
--- a/src/gui/math3d/math3d.pri
+++ b/src/gui/math3d/math3d.pri
@@ -1,8 +1,5 @@
HEADERS += \
- math3d/qfixedpt.h \
math3d/qgenericmatrix.h \
- math3d/qmath3dglobal.h \
- math3d/qmath3dutil_p.h \
math3d/qmatrix4x4.h \
math3d/qquaternion.h \
math3d/qvector2d.h \
@@ -10,9 +7,7 @@ HEADERS += \
math3d/qvector4d.h
SOURCES += \
- math3d/qfixedpt.cpp \
math3d/qgenericmatrix.cpp \
- math3d/qmath3dutil.cpp \
math3d/qmatrix4x4.cpp \
math3d/qquaternion.cpp \
math3d/qvector2d.cpp \
diff --git a/src/gui/math3d/qfixedpt.cpp b/src/gui/math3d/qfixedpt.cpp
deleted file mode 100644
index 93f2150..0000000
--- a/src/gui/math3d/qfixedpt.cpp
+++ /dev/null
@@ -1,711 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (qt-info@nokia.com)
-**
-** This file is part of the $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 either Technology Preview License Agreement or the
-** Beta Release License Agreement.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
-** package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qfixedpt.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \internal
- Returns the fixed-point square root of \a value.
-*/
-qint64 qt_math3d_fixed_sqrt(qint64 value)
-{
- qint64 result = 0;
- qint64 bit = ((qint64)1) << 62;
- while (bit > value)
- bit >>= 2;
- while (bit != 0) {
- if (value >= (result + bit)) {
- value -= result + bit;
- result += (bit << 1);
- }
- result >>= 1;
- bit >>= 2;
- }
- return result;
-}
-
-/*!
- \class QFixedPt
- \brief The QFixedPt class represents fixed-point numbers within a 32-bit integer with a configurable precision.
-
- The template parameter is the number of bits of precision after
- the decimal point. For example, QFixedPt<5> indicates that there
- are 27 bits before the decimal point, and 5 bits of precision after
- the decimal point.
-*/
-
-/*!
- \fn QFixedPt::QFixedPt()
-
- Constructs a default fixed-point number. The initial value
- is undefined.
-*/
-
-/*!
- \fn QFixedPt::QFixedPt(int value)
-
- Constructs a fixed-point number from the integer \a value.
-*/
-
-/*!
- \fn QFixedPt::QFixedPt(qreal value)
-
- Constructs a fixed-point number from the floating-point \a value.
-*/
-
-/*!
- \fn QFixedPt<PrecBits>& QFixedPt::operator=(int value)
-
- Assigns the integer \a value to this fixed-point variable.
-*/
-
-/*!
- \fn QFixedPt<PrecBits>& QFixedPt::operator=(qreal value)
-
- Assigns the floating-point \a value to this fixed-point variable.
-*/
-
-/*!
- \fn int QFixedPt::bits() const
-
- Returns the raw bits that represent the fixed-point value of this object.
-
- \sa setBits()
-*/
-
-/*!
- \fn void QFixedPt::setBits(int value)
-
- Sets the raw bits that represent the fixed-point value of
- this object to \a value.
-
- \sa bits()
-*/
-
-#if !defined(QT_NO_MEMBER_TEMPLATES) || defined(Q_QDOC)
-
-/*!
- \fn QFixedPt<Prec> QFixedPt::toPrecision() const
-
- Returns this fixed-point number, converted to the new fixed-point
- precision Prec.
-
- \sa qFixedPtToPrecision()
-*/
-
-#endif
-
-/*!
- \fn QFixedPt<Prec> qFixedPtToPrecision(const QFixedPt<PrecBits>& value)
-
- Returns the fixed-point number \a value, converted to the new fixed-point
- precision Prec.
-
- \sa QFixedPt::toPrecision()
-*/
-
-/*!
- \fn QFixedPt<PrecBits>& QFixedPt::operator+=(const QFixedPt<PrecBits>& value)
-
- Adds \a value to this fixed-point number.
-*/
-
-/*!
- \fn QFixedPt<PrecBits>& QFixedPt::operator+=(int value)
-
- Adds an integer \a value to this fixed-point number.
-*/
-
-/*!
- \fn QFixedPt<PrecBits>& QFixedPt::operator+=(qreal value)
-
- Adds a floating-point \a value to this fixed-point number.
-*/
-
-/*!
- \fn QFixedPt<PrecBits>& QFixedPt::operator-=(const QFixedPt<PrecBits>& value)
-
- Subtracts \a value from this fixed-point number.
-*/
-
-/*!
- \fn QFixedPt<PrecBits>& QFixedPt::operator-=(int value)
-
- Subtracts an integer \a value from this fixed-point number.
-*/
-
-/*!
- \fn QFixedPt<PrecBits>& QFixedPt::operator-=(qreal value)
-
- Subtracts a floating-point \a value from this fixed-point number.
-*/
-
-/*!
- \fn QFixedPt<PrecBits>& QFixedPt::operator*=(const QFixedPt<PrecBits>& value)
-
- Multiplies this fixed-point number by \a value.
-*/
-
-/*!
- \fn QFixedPt<PrecBits>& QFixedPt::operator*=(int value)
-
- Multiplies this fixed-point number by an integer \a value.
-*/
-
-/*!
- \fn QFixedPt<PrecBits>& QFixedPt::operator*=(qreal value)
-
- Multiplies this fixed-point number by a floating-point \a value.
-*/
-
-/*!
- \fn QFixedPt<PrecBits>& QFixedPt::operator/=(const QFixedPt<PrecBits>& value)
-
- Divides this fixed-point number by \a value. Division by zero
- will result in zero.
-*/
-
-/*!
- \fn QFixedPt<PrecBits>& QFixedPt::operator/=(int value)
-
- Divides this fixed-point number by an integer \a value. Division
- by zero will result in zero.
-*/
-
-/*!
- \fn QFixedPt<PrecBits>& QFixedPt::operator/=(qreal value)
-
- Divides this fixed-point number by a floating-point \a value. Division
- by zero will result in zero.
-*/
-
-/*!
- \fn QFixedPt<PrecBits>& QFixedPt::operator<<=(int value)
-
- Shifts this fixed-point number left by \a value bits.
-*/
-
-/*!
- \fn QFixedPt<PrecBits>& QFixedPt::operator>>=(int value)
-
- Shifts this fixed-point number right by \a value bits.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::operator<<(int value) const
-
- Returns the result of shifting this fixed-point number
- left by \a value bits.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::operator>>(int value) const
-
- Returns the result of shifting this fixed-point number
- right by \a value bits.
-*/
-
-/*!
- \fn bool QFixedPt::operator==(const QFixedPt<PrecBits>& value) const
-
- Returns true if this fixed-point number is equal to \a value;
- false otherwise.
-*/
-
-/*!
- \fn bool operator==(const QFixedPt<PrecBits>& v1, int v2)
- \relates QFixedPt
-
- Returns true if \a v1 is equal to \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator==(int v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns true if \a v1 is equal to \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator==(const QFixedPt<PrecBits>& v1, qreal v2)
- \relates QFixedPt
-
- Returns true if \a v1 is equal to \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator==(qreal v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns true if \a v1 is equal to \a v2; false otherwise.
-*/
-
-/*!
- \fn bool QFixedPt::operator!=(const QFixedPt<PrecBits>& value) const
-
- Returns true if this fixed-point number is not equal to \a value;
- false otherwise.
-*/
-
-/*!
- \fn bool operator!=(const QFixedPt<PrecBits>& v1, int v2)
- \relates QFixedPt
-
- Returns true if \a v1 is not equal to \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator!=(int v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns true if \a v1 is not equal to \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator!=(const QFixedPt<PrecBits>& v1, qreal v2)
- \relates QFixedPt
-
- Returns true if \a v1 is not equal to \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator!=(qreal v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns true if \a v1 is not equal to \a v2; false otherwise.
-*/
-
-/*!
- \fn bool QFixedPt::operator<=(const QFixedPt<PrecBits>& value) const
-
- Returns true if this fixed-point number is less than or equal to
- \a value; false otherwise.
-*/
-
-/*!
- \fn bool operator<=(const QFixedPt<PrecBits>& v1, int v2)
- \relates QFixedPt
-
- Returns true if \a v1 is less than or equal to \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator<=(int v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns true if \a v1 is less than or equal to \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator<=(const QFixedPt<PrecBits>& v1, qreal v2)
- \relates QFixedPt
-
- Returns true if \a v1 is less than or equal to \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator<=(qreal v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns true if \a v1 is less than or equal to \a v2; false otherwise.
-*/
-
-/*!
- \fn bool QFixedPt::operator<(const QFixedPt<PrecBits>& value) const
-
- Returns true if this fixed-point number is less than \a value;
- false otherwise.
-*/
-
-/*!
- \fn bool operator<(const QFixedPt<PrecBits>& v1, int v2)
- \relates QFixedPt
-
- Returns true if \a v1 is less than \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator<(int v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns true if \a v1 is less than \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator<(const QFixedPt<PrecBits>& v1, qreal v2)
- \relates QFixedPt
-
- Returns true if \a v1 is less than \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator<(qreal v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns true if \a v1 is less than \a v2; false otherwise.
-*/
-
-/*!
- \fn bool QFixedPt::operator>=(const QFixedPt<PrecBits>& value) const
-
- Returns true if this fixed-point number is greater than or equal to
- \a value; false otherwise.
-*/
-
-/*!
- \fn bool operator>=(const QFixedPt<PrecBits>& v1, int v2)
- \relates QFixedPt
-
- Returns true if \a v1 is greater than or equal to \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator>=(int v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns true if \a v1 is greater than or equal to \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator>=(const QFixedPt<PrecBits>& v1, qreal v2)
- \relates QFixedPt
-
- Returns true if \a v1 is greater than or equal to \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator>=(qreal v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns true if \a v1 is greater than or equal to \a v2; false otherwise.
-*/
-
-/*!
- \fn bool QFixedPt::operator>(const QFixedPt<PrecBits>& value) const
-
- Returns true if this fixed-point number is greater than \a value;
- false otherwise.
-*/
-
-/*!
- \fn bool operator>(const QFixedPt<PrecBits>& v1, int v2)
- \relates QFixedPt
-
- Returns true if \a v1 is greater than \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator>(int v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns true if \a v1 is greater than \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator>(const QFixedPt<PrecBits>& v1, qreal v2)
- \relates QFixedPt
-
- Returns true if \a v1 is greater than \a v2; false otherwise.
-*/
-
-/*!
- \fn bool operator>(qreal v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns true if \a v1 is greater than \a v2; false otherwise.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::operator+(const QFixedPt<PrecBits>& value) const
-
- Returns the result of adding this fixed-point number and \a value.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::operator+(int value) const
-
- Returns the result of adding this fixed-point number and \a value.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::operator+(qreal value) const
-
- Returns the result of adding this fixed-point number and \a value.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> operator+(int v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns the result of adding \a v1 and \a v2.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> operator+(qreal v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns the result of adding \a v1 and \a v2.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::operator-(const QFixedPt<PrecBits>& value) const
-
- Returns the result of subtracting \a value from this fixed-point number.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::operator-(int value) const
-
- Returns the result of subtracting \a value from this fixed-point number.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::operator-(qreal value) const
-
- Returns the result of subtracting \a value from this fixed-point number.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> operator-(int v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns the result of subtracting \a v2 from \a v1.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> operator-(qreal v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns the result of subtracting \a v2 from \a v1.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::operator*(const QFixedPt<PrecBits>& value) const
-
- Returns the result of multiplying this fixed-point number by \a value.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::operator*(int value) const
-
- Returns the result of multiplying this fixed-point number by \a value.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::operator*(qreal value) const
-
- Returns the result of multiplying this fixed-point number by \a value.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> operator*(int v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns the result of multiplying \a v1 by \a v2.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> operator*(qreal v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns the result of multiplying \a v1 by \a v2.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::operator/(const QFixedPt<PrecBits>& value) const
-
- Returns the result of dividing this fixed-point number by \a value.
- Division by zero will result in zero.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::operator/(int value) const
-
- Returns the result of dividing this fixed-point number by \a value.
- Division by zero will result in zero.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::operator/(qreal value) const
-
- Returns the result of dividing this fixed-point number by \a value.
- Division by zero will result in zero.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> operator/(int v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns the result of dividing \a v1 by \a v2. Division by zero will
- result in zero.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> operator/(qreal v1, const QFixedPt<PrecBits>& v2)
- \relates QFixedPt
-
- Returns the result of dividing \a v1 by \a v2. Division by zero will
- result in zero.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::operator-() const
-
- Returns the negation of this fixed-point number.
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::sqrt() const
-
- Returns the square root of this fixed-point number.
-
- \sa sqrtF()
-*/
-
-/*!
- \fn qreal QFixedPt::sqrtF() const
-
- Return the square root of this fixed-point number as a
- floating-point value.
-
- \sa sqrt()
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::round() const
-
- Returns this fixed-point number, rounded to the nearest integer.
-
- \sa floor(), ceil(), truncate()
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::floor() const;
-
- Returns the largest integer that is less than or equal to
- this fixed-point number.
-
- \sa round(), ceil(), truncate()
-*/
-
-/*!
- \fn QFixedPt<PrecBits> QFixedPt::ceil() const
-
- Returns the smallest integer that is greater than or equal to
- this fixed-point number.
-
- \sa round(), floor(), truncate()
-*/
-
-/*!
- \fn int QFixedPt::truncate() const
-
- Returns this fixed-point number with the bits after the
- decimal point truncated.
-
- \sa round(), floor(), ceil()
-*/
-
-/*!
- \fn int QFixedPt::toInt() const
-
- Returns this fixed-point number, rounded to the nearest integer.
-
- \sa toReal()
-*/
-
-/*!
- \fn qreal QFixedPt::toReal() const
-
- Returns this fixed-point number as a floating-point value.
-
- \sa toInt()
-*/
-
-/*!
- \fn int qCeil(const QFixedPt<PrecBits>& value)
- \relates QFixedPt
-
- Returns the smallest integer that is greater than or equal to
- \a value.
-
- \sa qFloor(), qRound(), QFixedPt::ceil()
-*/
-
-/*!
- \fn int qFloor(const QFixedPt<PrecBits>& value)
- \relates QFixedPt
-
- Returns the largest integer that is less than or equal to
- \a value.
-
- \sa qCeil(), qRound(), QFixedPt::floor()
-*/
-
-/*!
- \fn int qRound(const QFixedPt<PrecBits>& value)
- \relates QFixedPt
-
- Returns \a value, rounded to the nearest integer.
-
- \sa qCeil(), qFloor(), QFixedPt::round()
-*/
-
-/*!
- \fn bool qFuzzyCompare(const QFixedPt<PrecBits>& v1, const QFixedPt<PrecBits>& v2, int compareBits)
- \relates QFixedPt
-
- Returns true if \a v1 is almost equal to \a v2; false otherwise.
- The \a compareBits parameter specifies the number of bits of precision
- that should be considered relevant when performing the comparison.
- By default, \a compareBits is PrecBits / 4.
-*/
-
-/*!
- \fn bool qIsNull(const QFixedPt<PrecBits>& v)
- \relates QFixedPt
-
- Returns true if \a v is zero; false otherwise.
-*/
-
-QT_END_NAMESPACE
diff --git a/src/gui/math3d/qfixedpt.h b/src/gui/math3d/qfixedpt.h
deleted file mode 100644
index 142f62f..0000000
--- a/src/gui/math3d/qfixedpt.h
+++ /dev/null
@@ -1,551 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (qt-info@nokia.com)
-**
-** This file is part of the $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 either Technology Preview License Agreement or the
-** Beta Release License Agreement.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
-** package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QFIXEDPT_H
-#define QFIXEDPT_H
-
-#include <QtCore/qglobal.h>
-#include <QtCore/qdebug.h>
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(Gui)
-
-Q_GUI_EXPORT qint64 qt_math3d_fixed_sqrt(qint64 value);
-
-// Should be called QFixed or QFixedPoint, but both of those
-// are already in use in src/gui/painting/qfixed_p.h.
-template <int PrecBits>
-class QFixedPt
-{
-public:
- inline QFixedPt() {} // Deliberately not initialized - don't change this.
- inline QFixedPt(int value) : val(value << PrecBits) {}
- inline QFixedPt(qreal value) : val(int(value * (1 << PrecBits))) {}
-
- inline QFixedPt<PrecBits>& operator=(int value)
- { val = value << PrecBits; return *this; }
- inline QFixedPt<PrecBits>& operator=(qreal value)
- { val = int(value * (1 << PrecBits)); return *this; }
-
- inline int bits() const { return val; }
- inline void setBits(int value) { val = value; }
-
-#if !defined(QT_NO_MEMBER_TEMPLATES) || defined(Q_QDOC)
- template <int Prec>
- inline QFixedPt<Prec> toPrecision() const
- {
- QFixedPt<Prec> result;
- if (Prec < PrecBits)
- result.setBits(shiftRight(val, (PrecBits - Prec)));
- else
- result.setBits(shiftLeft(val, (Prec - PrecBits)));
- return result;
- }
-#endif
-
- inline QFixedPt<PrecBits>& operator+=(const QFixedPt<PrecBits>& value)
- { val += value.val; return *this; }
- inline QFixedPt<PrecBits>& operator+=(int value)
- { val += (value << PrecBits); return *this; }
- inline QFixedPt<PrecBits>& operator+=(qreal value)
- { val += int(value * (1 << PrecBits)); return *this; }
-
- inline QFixedPt<PrecBits>& operator-=(const QFixedPt<PrecBits>& value)
- { val -= value.val; return *this; }
- inline QFixedPt<PrecBits>& operator-=(int value)
- { val -= (value << PrecBits); return *this; }
- inline QFixedPt<PrecBits>& operator-=(qreal value)
- { val -= int(value * (1 << PrecBits)); return *this; }
-
- inline QFixedPt<PrecBits>& operator*=(const QFixedPt<PrecBits>& value)
- { val = mul(val, value.val); return *this; }
- inline QFixedPt<PrecBits>& operator*=(int value)
- { val = mul(val, (value << PrecBits)); return *this; }
- inline QFixedPt<PrecBits>& operator*=(qreal value)
- { val = mul(val, int(value * (1 << PrecBits))); return *this; }
-
- inline QFixedPt<PrecBits>& operator/=(const QFixedPt<PrecBits>& value)
- { val = div(val, value.val); return *this; }
- inline QFixedPt<PrecBits>& operator/=(int value)
- { val = div(val, (value << PrecBits)); return *this; }
- inline QFixedPt<PrecBits>& operator/=(qreal value)
- { val = div(val, int(value * (1 << PrecBits))); return *this; }
-
- inline QFixedPt<PrecBits>& operator<<=(int value)
- { val <<= value; return *this; }
- inline QFixedPt<PrecBits>& operator>>=(int value)
- { val >>= value; return *this; }
-
- inline QFixedPt<PrecBits> operator<<(int value) const
- { QFixedPt<PrecBits> result; result.val = val << value; return result; }
- inline QFixedPt<PrecBits> operator>>(int value) const
- { QFixedPt<PrecBits> result; result.val = val >> value; return result; }
-
- inline bool operator==(const QFixedPt<PrecBits>& value) const
- { return val == value.val; }
- inline bool operator!=(const QFixedPt<PrecBits>& value) const
- { return val != value.val; }
- inline bool operator<=(const QFixedPt<PrecBits>& value) const
- { return val <= value.val; }
- inline bool operator<(const QFixedPt<PrecBits>& value) const
- { return val < value.val; }
- inline bool operator>=(const QFixedPt<PrecBits>& value) const
- { return val >= value.val; }
- inline bool operator>(const QFixedPt<PrecBits>& value) const
- { return val > value.val; }
-
- inline QFixedPt<PrecBits> operator+(const QFixedPt<PrecBits>& value) const
- { QFixedPt<PrecBits> result;
- result.val = val + value.val; return result; }
- inline QFixedPt<PrecBits> operator+(int value) const
- { QFixedPt<PrecBits> result;
- result.val = val + (value << PrecBits); return result; }
- inline QFixedPt<PrecBits> operator+(qreal value) const
- { QFixedPt<PrecBits> result;
- result.val = val + int(value * (1 << PrecBits)); return result; }
-
- inline QFixedPt<PrecBits> operator-(const QFixedPt<PrecBits>& value) const
- { QFixedPt<PrecBits> result;
- result.val = val - value.val; return result; }
- inline QFixedPt<PrecBits> operator-(int value) const
- { QFixedPt<PrecBits> result;
- result.val = val - (value << PrecBits); return result; }
- inline QFixedPt<PrecBits> operator-(qreal value) const
- { QFixedPt<PrecBits> result;
- result.val = val - int(value * (1 << PrecBits)); return result; }
-
- inline QFixedPt<PrecBits> operator*(const QFixedPt<PrecBits>& value) const
- { QFixedPt<PrecBits> result;
- result.val = mul(val, value.val); return result; }
- inline QFixedPt<PrecBits> operator*(int value) const
- { QFixedPt<PrecBits> result;
- result.val = mul(val, (value << PrecBits)); return result; }
- inline QFixedPt<PrecBits> operator*(qreal value) const
- { QFixedPt<PrecBits> result;
- result.val = mul(val, int(value * (1 << PrecBits))); return result; }
-
- inline QFixedPt<PrecBits> operator/(const QFixedPt<PrecBits>& value) const
- { QFixedPt<PrecBits> result;
- result.val = div(val, value.val); return result; }
- inline QFixedPt<PrecBits> operator/(int value) const
- { QFixedPt<PrecBits> result;
- result.val = div(val, (value << PrecBits)); return result; }
- inline QFixedPt<PrecBits> operator/(qreal value) const
- { QFixedPt<PrecBits> result;
- result.val = div(val, int(value * (1 << PrecBits))); return result; }
-
- inline QFixedPt<PrecBits> operator-() const
- { QFixedPt<PrecBits> result; result.val = -val; return result; }
-
- inline QFixedPt<PrecBits> sqrt() const;
- inline qreal sqrtF() const;
- inline QFixedPt<PrecBits> round() const;
- inline QFixedPt<PrecBits> floor() const;
- inline QFixedPt<PrecBits> ceil() const;
- inline int truncate() const { return val >> PrecBits; }
-
- inline int toInt() const { return (val + (1 << (PrecBits - 1))) >> PrecBits; }
- inline qreal toReal() const { return qreal(val) / qreal(1 << PrecBits); }
-
-#if !defined(Q_NO_TEMPLATE_FRIENDS)
- template <int Prec>
- friend QFixedPt<Prec> operator/(int v1, const QFixedPt<Prec>& v2);
- template <int Prec>
- friend QFixedPt<Prec> operator/(qreal v1, const QFixedPt<Prec>& v2);
-
-private:
-#endif
- int val;
-
- inline static int mul(int v1, int v2)
- {
- return int((qint64(v1) * qint64(v2)) >> PrecBits);
- }
-
- inline static int div(int v1, int v2)
- {
- if (v2)
- return int((qint64(v1) << PrecBits) / qint64(v2));
- else
- return 0;
- }
-
- // These are used by toPrecision() to avoid a silly gcc compiler warning
- // related to negative shift values that will never actually be used.
- inline static int shiftRight(int val, int shift)
- {
- return val >> shift;
- }
- inline static int shiftLeft(int val, int shift)
- {
- return val << shift;
- }
-
-#if !defined(Q_NO_TEMPLATE_FRIENDS)
- template <int Prec, int Prec2>
- friend QFixedPt<Prec> qFixedPtToPrecision(const QFixedPt<Prec2>& value);
-#endif
-};
-
-template <int PrecBits>
-inline bool operator==(const QFixedPt<PrecBits>& v1, int v2)
-{
- return v1.bits() == (v2 << PrecBits);
-}
-
-template <int PrecBits>
-inline bool operator==(int v1, const QFixedPt<PrecBits>& v2)
-{
- return (v1 << PrecBits) == v2.bits();
-}
-
-template <int PrecBits>
-inline bool operator==(const QFixedPt<PrecBits>& v1, qreal v2)
-{
- return v1.bits() == int(v2 * (1 << PrecBits));
-}
-
-template <int PrecBits>
-inline bool operator==(qreal v1, const QFixedPt<PrecBits>& v2)
-{
- return int(v1 * (1 << PrecBits)) == v2.bits();
-}
-
-template <int PrecBits>
-inline bool operator!=(const QFixedPt<PrecBits>& v1, int v2)
-{
- return v1.bits() != (v2 << PrecBits);
-}
-
-template <int PrecBits>
-inline bool operator!=(int v1, const QFixedPt<PrecBits>& v2)
-{
- return (v1 << PrecBits) != v2.bits();
-}
-
-template <int PrecBits>
-inline bool operator!=(const QFixedPt<PrecBits>& v1, qreal v2)
-{
- return v1.bits() != int(v2 * (1 << PrecBits));
-}
-
-template <int PrecBits>
-inline bool operator!=(qreal v1, const QFixedPt<PrecBits>& v2)
-{
- return int(v1 * (1 << PrecBits)) != v2.bits();
-}
-
-template <int PrecBits>
-inline bool operator<=(const QFixedPt<PrecBits>& v1, int v2)
-{
- return v1.bits() <= (v2 << PrecBits);
-}
-
-template <int PrecBits>
-inline bool operator<=(int v1, const QFixedPt<PrecBits>& v2)
-{
- return (v1 << PrecBits) <= v2.bits();
-}
-
-template <int PrecBits>
-inline bool operator<=(const QFixedPt<PrecBits>& v1, qreal v2)
-{
- return v1.bits() <= int(v2 * (1 << PrecBits));
-}
-
-template <int PrecBits>
-inline bool operator<=(qreal v1, const QFixedPt<PrecBits>& v2)
-{
- return int(v1 * (1 << PrecBits)) <= v2.bits();
-}
-
-template <int PrecBits>
-inline bool operator<(const QFixedPt<PrecBits>& v1, int v2)
-{
- return v1.bits() < (v2 << PrecBits);
-}
-
-template <int PrecBits>
-inline bool operator<(int v1, const QFixedPt<PrecBits>& v2)
-{
- return (v1 << PrecBits) < v2.bits();
-}
-
-template <int PrecBits>
-inline bool operator<(const QFixedPt<PrecBits>& v1, qreal v2)
-{
- return v1.bits() < int(v2 * (1 << PrecBits));
-}
-
-template <int PrecBits>
-inline bool operator<(qreal v1, const QFixedPt<PrecBits>& v2)
-{
- return int(v1 * (1 << PrecBits)) < v2.bits();
-}
-
-template <int PrecBits>
-inline bool operator>=(const QFixedPt<PrecBits>& v1, int v2)
-{
- return v1.bits() >= (v2 << PrecBits);
-}
-
-template <int PrecBits>
-inline bool operator>=(int v1, const QFixedPt<PrecBits>& v2)
-{
- return (v1 << PrecBits) >= v2.bits();
-}
-
-template <int PrecBits>
-inline bool operator>=(const QFixedPt<PrecBits>& v1, qreal v2)
-{
- return v1.bits() >= int(v2 * (1 << PrecBits));
-}
-
-template <int PrecBits>
-inline bool operator>=(qreal v1, const QFixedPt<PrecBits>& v2)
-{
- return int(v1 * (1 << PrecBits)) >= v2.bits();
-}
-
-template <int PrecBits>
-inline bool operator>(const QFixedPt<PrecBits>& v1, int v2)
-{
- return v1.bits() > (v2 << PrecBits);
-}
-
-template <int PrecBits>
-inline bool operator>(int v1, const QFixedPt<PrecBits>& v2)
-{
- return (v1 << PrecBits) > v2.bits();
-}
-
-template <int PrecBits>
-inline bool operator>(const QFixedPt<PrecBits>& v1, qreal v2)
-{
- return v1.bits() > int(v2 * (1 << PrecBits));
-}
-
-template <int PrecBits>
-inline bool operator>(qreal v1, const QFixedPt<PrecBits>& v2)
-{
- return int(v1 * (1 << PrecBits)) > v2.bits();
-}
-
-template <int PrecBits>
-inline QFixedPt<PrecBits> operator+(int v1, const QFixedPt<PrecBits>& v2)
-{
- return v2 + v1;
-}
-
-template <int PrecBits>
-inline QFixedPt<PrecBits> operator+(qreal v1, const QFixedPt<PrecBits>& v2)
-{
- return v2 + v1;
-}
-
-template <int PrecBits>
-inline QFixedPt<PrecBits> operator-(int v1, const QFixedPt<PrecBits>& v2)
-{
- return -(v2 - v1);
-}
-
-template <int PrecBits>
-inline QFixedPt<PrecBits> operator-(qreal v1, const QFixedPt<PrecBits>& v2)
-{
- return -(v2 - v1);
-}
-
-template <int PrecBits>
-inline QFixedPt<PrecBits> operator*(int v1, const QFixedPt<PrecBits>& v2)
-{
- return v2 * v1;
-}
-
-template <int PrecBits>
-inline QFixedPt<PrecBits> operator*(qreal v1, const QFixedPt<PrecBits>& v2)
-{
- return v2 * v1;
-}
-
-template <int PrecBits>
-inline QFixedPt<PrecBits> operator/(int v1, const QFixedPt<PrecBits>& v2)
-{
- QFixedPt<PrecBits> result;
- result.val = QFixedPt<PrecBits>::div(v1 << PrecBits, v2.val);
- return result;
-}
-
-template <int PrecBits>
-inline QFixedPt<PrecBits> operator/(qreal v1, const QFixedPt<PrecBits>& v2)
-{
- QFixedPt<PrecBits> result;
- result.val = QFixedPt<PrecBits>::div(int(v1 * (1 << PrecBits)), v2.val);
- return result;
-}
-
-template <int PrecBits>
-inline QFixedPt<PrecBits> QFixedPt<PrecBits>::sqrt() const
-{
- QFixedPt<PrecBits> result;
- result.val = int(qt_math3d_fixed_sqrt
- (qint64(val) << (PrecBits * 2)) >> (PrecBits / 2));
- return result;
-}
-
-template <int PrecBits>
-inline qreal QFixedPt<PrecBits>::sqrtF() const
-{
- return qt_math3d_fixed_sqrt
- (qint64(val) << (PrecBits * 2)) / (qreal)(1 << (PrecBits + (PrecBits / 2)));
-}
-
-template <int PrecBits>
-inline QFixedPt<PrecBits> QFixedPt<PrecBits>::round() const
-{
- QFixedPt<PrecBits> result;
- result.val = (val + (1 << (PrecBits - 1))) & ~((1 << PrecBits) - 1);
- return result;
-}
-
-template <int PrecBits>
-inline QFixedPt<PrecBits> QFixedPt<PrecBits>::floor() const
-{
- QFixedPt<PrecBits> result;
- result.val = val & ~((1 << PrecBits) - 1);
- return result;
-}
-
-template <int PrecBits>
-inline QFixedPt<PrecBits> QFixedPt<PrecBits>::ceil() const
-{
- QFixedPt<PrecBits> result;
- result.val = (val + (1 << PrecBits) - 1) & ~((1 << PrecBits) - 1);
- return result;
-}
-
-template <int PrecBits>
-inline int qCeil(const QFixedPt<PrecBits>& value)
-{
- return value.ceil().bits() >> PrecBits;
-}
-
-template <int PrecBits>
-inline int qFloor(const QFixedPt<PrecBits>& value)
-{
- return value.floor().bits() >> PrecBits;
-}
-
-template <int PrecBits>
-inline int qRound(const QFixedPt<PrecBits>& value)
-{
- return value.round().bits() >> PrecBits;
-}
-
-template <int PrecBits>
-inline bool qFuzzyCompare(const QFixedPt<PrecBits>& v1, const QFixedPt<PrecBits>& v2, int compareBits = (PrecBits / 4))
-{
- return ((v1.bits() ^ v2.bits()) & ~((1 << compareBits) - 1)) == 0;
-}
-
-template <int PrecBits>
-inline bool qIsNull(const QFixedPt<PrecBits>& v)
-{
- return v.bits() == 0;
-}
-
-template <int Prec, int PrecBits>
-QFixedPt<Prec> qFixedPtToPrecision(const QFixedPt<PrecBits>& value)
-{
- QFixedPt<Prec> result;
- if (Prec < PrecBits)
- result.setBits(QFixedPt<PrecBits>::shiftRight(value.bits(), (PrecBits - Prec)));
- else
- result.setBits(QFixedPt<PrecBits>::shiftLeft(value.bits(), (Prec - PrecBits)));
- return result;
-}
-
-template <int PrecBits>
-inline QDebug &operator<<(QDebug &dbg, const QFixedPt<PrecBits> &f)
-{
- return dbg << f.toReal();
-}
-
-Q_DECLARE_TYPEINFO(QFixedPt<0>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<1>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<2>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<3>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<4>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<5>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<6>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<7>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<8>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<9>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<10>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<11>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<12>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<13>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<14>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<15>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<16>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<17>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<18>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<19>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<20>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<21>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<22>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<23>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<24>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<25>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<26>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<27>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<28>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<29>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<30>, Q_PRIMITIVE_TYPE);
-Q_DECLARE_TYPEINFO(QFixedPt<31>, Q_PRIMITIVE_TYPE);
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif
diff --git a/src/gui/math3d/qgenericmatrix.cpp b/src/gui/math3d/qgenericmatrix.cpp
index 734c1e6..a77ca42 100644
--- a/src/gui/math3d/qgenericmatrix.cpp
+++ b/src/gui/math3d/qgenericmatrix.cpp
@@ -224,7 +224,7 @@ QT_BEGIN_NAMESPACE
/*!
\fn InnerT *QGenericMatrix::data()
- Returns a pointer to the raw data of this matrix. This is indended
+ Returns a pointer to the raw data of this matrix. This is intended
for use with raw GL functions.
\sa constData()
@@ -234,7 +234,7 @@ QT_BEGIN_NAMESPACE
\fn const InnerT *QGenericMatrix::data() const
Returns a constant pointer to the raw data of this matrix.
- This is indended for use with raw GL functions.
+ This is intended for use with raw GL functions.
\sa constData()
*/
@@ -243,7 +243,7 @@ QT_BEGIN_NAMESPACE
\fn const InnerT *QGenericMatrix::constData() const
Returns a constant pointer to the raw data of this matrix.
- This is indended for use with raw GL functions.
+ This is intended for use with raw GL functions.
\sa data()
*/
diff --git a/src/gui/math3d/qgenericmatrix.h b/src/gui/math3d/qgenericmatrix.h
index dbeaaf3..d0b22de 100644
--- a/src/gui/math3d/qgenericmatrix.h
+++ b/src/gui/math3d/qgenericmatrix.h
@@ -42,8 +42,8 @@
#ifndef QGENERICMATRIX_H
#define QGENERICMATRIX_H
-#include <QtGui/qmath3dglobal.h>
#include <QtCore/qmetatype.h>
+#include <QtCore/qdebug.h>
QT_BEGIN_HEADER
@@ -134,7 +134,7 @@ template <int N, int M, typename T, typename InnerT>
Q_INLINE_TEMPLATE T QGenericMatrix<N, M, T, InnerT>::operator()(int row, int column) const
{
Q_ASSERT(row >= 0 && row < M && column >= 0 && column < N);
- return qt_math3d_convert<T, InnerT>(m[column][row]);
+ return T(m[column][row]);
}
template <int N, int M, typename T, typename InnerT>
@@ -323,18 +323,18 @@ Q_OUTOFLINE_TEMPLATE void QGenericMatrix<N, M, T, InnerT>::toValueArray(T *value
{
for (int col = 0; col < N; ++col)
for (int row = 0; row < M; ++row)
- values[row * N + col] = qt_math3d_convert<T, InnerT>(m[col][row]);
+ values[row * N + col] = T(m[col][row]);
}
// Define aliases for the useful variants of QGenericMatrix.
-typedef QGenericMatrix<2, 2, qreal, qrealinner> QMatrix2x2;
-typedef QGenericMatrix<2, 3, qreal, qrealinner> QMatrix2x3;
-typedef QGenericMatrix<2, 4, qreal, qrealinner> QMatrix2x4;
-typedef QGenericMatrix<3, 2, qreal, qrealinner> QMatrix3x2;
-typedef QGenericMatrix<3, 3, qreal, qrealinner> QMatrix3x3;
-typedef QGenericMatrix<3, 4, qreal, qrealinner> QMatrix3x4;
-typedef QGenericMatrix<4, 2, qreal, qrealinner> QMatrix4x2;
-typedef QGenericMatrix<4, 3, qreal, qrealinner> QMatrix4x3;
+typedef QGenericMatrix<2, 2, qreal, float> QMatrix2x2;
+typedef QGenericMatrix<2, 3, qreal, float> QMatrix2x3;
+typedef QGenericMatrix<2, 4, qreal, float> QMatrix2x4;
+typedef QGenericMatrix<3, 2, qreal, float> QMatrix3x2;
+typedef QGenericMatrix<3, 3, qreal, float> QMatrix3x3;
+typedef QGenericMatrix<3, 4, qreal, float> QMatrix3x4;
+typedef QGenericMatrix<4, 2, qreal, float> QMatrix4x2;
+typedef QGenericMatrix<4, 3, qreal, float> QMatrix4x3;
#ifndef QT_NO_DEBUG_STREAM
diff --git a/src/gui/math3d/qmath3dglobal.h b/src/gui/math3d/qmath3dglobal.h
deleted file mode 100644
index c2f7184..0000000
--- a/src/gui/math3d/qmath3dglobal.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (qt-info@nokia.com)
-**
-** This file is part of the $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 either Technology Preview License Agreement or the
-** Beta Release License Agreement.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
-** package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QMATH3DGLOBAL_H
-#define QMATH3DGLOBAL_H
-
-#include <QtCore/qglobal.h>
-#include <QtGui/qfixedpt.h>
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(Gui)
-
-// Detect the presence of a fixed-point OpenGL implementation.
-#if defined(QT_OPENGL_ES_1_CL) || defined(QT_NO_GL_FLOAT)
-#ifndef QT_GL_FIXED_PREFERRED
-#define QT_GL_FIXED_PREFERRED 1
-#endif
-#endif
-
-// QT_GL_FIXED_PREFERRED indicates that fixed-point should be
-// preferred over floating-point for operations requiring high performance.
-//
-// qreal is the floating-point type that should be used in
-// user-visible functions. qrealinner is used internally where
-// values may be stored as either floating-point or fixed-point.
-// qrealinner will typically be the same size as GLfloat or GLfixed.
-#if defined(QT_GL_FIXED_PREFERRED)
-typedef QFixedPt<16> qrealinner;
-#else
-typedef float qrealinner;
-#endif
-
-// Explicit conversion operator, primarily for converting from
-// fixed point back to floating-point. This is safer than
-// declaring conversion operators in the QFixedPt class.
-template <typename T1, typename T2>
-T1 qt_math3d_convert(T2 v)
-{
- return T1(v);
-}
-template <>
-inline float qt_math3d_convert< float, QFixedPt<16> >(QFixedPt<16> v)
-{
- return float(v.toReal());
-}
-template <>
-inline double qt_math3d_convert< double, QFixedPt<16> >(QFixedPt<16> v)
-{
- return double(v.toReal());
-}
-template <>
-inline int qt_math3d_convert< int, QFixedPt<16> >(QFixedPt<16> v)
-{
- return v.toInt();
-}
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif
diff --git a/src/gui/math3d/qmath3dutil.cpp b/src/gui/math3d/qmath3dutil.cpp
deleted file mode 100644
index ad84162..0000000
--- a/src/gui/math3d/qmath3dutil.cpp
+++ /dev/null
@@ -1,194 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (qt-info@nokia.com)
-**
-** This file is part of the $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 either Technology Preview License Agreement or the
-** Beta Release License Agreement.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
-** package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qmath3dutil_p.h"
-
-QT_BEGIN_NAMESPACE
-
-#ifdef QT_GL_FIXED_PREFERRED
-
-// The table that follows was automatically generated by the following code:
-//
-//#include <math.h>
-//#include <stdio.h>
-//
-//int main()
-//{
-// double angle;
-// int count = 0;
-// for (angle = 0.0; angle < 360.0; angle += 1.0) {
-// if ((count % 4) == 0)
-// printf(" ");
-// printf(" qf2vt(%f)", sin(angle * M_PI / 180.0));
-// ++count;
-// if (count != 360)
-// printf(",");
-// if ((count % 4) == 0)
-// printf("\n");
-// }
-// return 0;
-//}
-
-#define qf2vt(x) (int((x) * 65536.0))
-
-static int const sinTable[360] = {
- qf2vt(0.000000), qf2vt(0.017452), qf2vt(0.034899), qf2vt(0.052336),
- qf2vt(0.069756), qf2vt(0.087156), qf2vt(0.104528), qf2vt(0.121869),
- qf2vt(0.139173), qf2vt(0.156434), qf2vt(0.173648), qf2vt(0.190809),
- qf2vt(0.207912), qf2vt(0.224951), qf2vt(0.241922), qf2vt(0.258819),
- qf2vt(0.275637), qf2vt(0.292372), qf2vt(0.309017), qf2vt(0.325568),
- qf2vt(0.342020), qf2vt(0.358368), qf2vt(0.374607), qf2vt(0.390731),
- qf2vt(0.406737), qf2vt(0.422618), qf2vt(0.438371), qf2vt(0.453990),
- qf2vt(0.469472), qf2vt(0.484810), qf2vt(0.500000), qf2vt(0.515038),
- qf2vt(0.529919), qf2vt(0.544639), qf2vt(0.559193), qf2vt(0.573576),
- qf2vt(0.587785), qf2vt(0.601815), qf2vt(0.615661), qf2vt(0.629320),
- qf2vt(0.642788), qf2vt(0.656059), qf2vt(0.669131), qf2vt(0.681998),
- qf2vt(0.694658), qf2vt(0.707107), qf2vt(0.719340), qf2vt(0.731354),
- qf2vt(0.743145), qf2vt(0.754710), qf2vt(0.766044), qf2vt(0.777146),
- qf2vt(0.788011), qf2vt(0.798636), qf2vt(0.809017), qf2vt(0.819152),
- qf2vt(0.829038), qf2vt(0.838671), qf2vt(0.848048), qf2vt(0.857167),
- qf2vt(0.866025), qf2vt(0.874620), qf2vt(0.882948), qf2vt(0.891007),
- qf2vt(0.898794), qf2vt(0.906308), qf2vt(0.913545), qf2vt(0.920505),
- qf2vt(0.927184), qf2vt(0.933580), qf2vt(0.939693), qf2vt(0.945519),
- qf2vt(0.951057), qf2vt(0.956305), qf2vt(0.961262), qf2vt(0.965926),
- qf2vt(0.970296), qf2vt(0.974370), qf2vt(0.978148), qf2vt(0.981627),
- qf2vt(0.984808), qf2vt(0.987688), qf2vt(0.990268), qf2vt(0.992546),
- qf2vt(0.994522), qf2vt(0.996195), qf2vt(0.997564), qf2vt(0.998630),
- qf2vt(0.999391), qf2vt(0.999848), qf2vt(1.000000), qf2vt(0.999848),
- qf2vt(0.999391), qf2vt(0.998630), qf2vt(0.997564), qf2vt(0.996195),
- qf2vt(0.994522), qf2vt(0.992546), qf2vt(0.990268), qf2vt(0.987688),
- qf2vt(0.984808), qf2vt(0.981627), qf2vt(0.978148), qf2vt(0.974370),
- qf2vt(0.970296), qf2vt(0.965926), qf2vt(0.961262), qf2vt(0.956305),
- qf2vt(0.951057), qf2vt(0.945519), qf2vt(0.939693), qf2vt(0.933580),
- qf2vt(0.927184), qf2vt(0.920505), qf2vt(0.913545), qf2vt(0.906308),
- qf2vt(0.898794), qf2vt(0.891007), qf2vt(0.882948), qf2vt(0.874620),
- qf2vt(0.866025), qf2vt(0.857167), qf2vt(0.848048), qf2vt(0.838671),
- qf2vt(0.829038), qf2vt(0.819152), qf2vt(0.809017), qf2vt(0.798636),
- qf2vt(0.788011), qf2vt(0.777146), qf2vt(0.766044), qf2vt(0.754710),
- qf2vt(0.743145), qf2vt(0.731354), qf2vt(0.719340), qf2vt(0.707107),
- qf2vt(0.694658), qf2vt(0.681998), qf2vt(0.669131), qf2vt(0.656059),
- qf2vt(0.642788), qf2vt(0.629320), qf2vt(0.615661), qf2vt(0.601815),
- qf2vt(0.587785), qf2vt(0.573576), qf2vt(0.559193), qf2vt(0.544639),
- qf2vt(0.529919), qf2vt(0.515038), qf2vt(0.500000), qf2vt(0.484810),
- qf2vt(0.469472), qf2vt(0.453990), qf2vt(0.438371), qf2vt(0.422618),
- qf2vt(0.406737), qf2vt(0.390731), qf2vt(0.374607), qf2vt(0.358368),
- qf2vt(0.342020), qf2vt(0.325568), qf2vt(0.309017), qf2vt(0.292372),
- qf2vt(0.275637), qf2vt(0.258819), qf2vt(0.241922), qf2vt(0.224951),
- qf2vt(0.207912), qf2vt(0.190809), qf2vt(0.173648), qf2vt(0.156434),
- qf2vt(0.139173), qf2vt(0.121869), qf2vt(0.104528), qf2vt(0.087156),
- qf2vt(0.069756), qf2vt(0.052336), qf2vt(0.034899), qf2vt(0.017452),
- qf2vt(0.000000), qf2vt(-0.017452), qf2vt(-0.034899), qf2vt(-0.052336),
- qf2vt(-0.069756), qf2vt(-0.087156), qf2vt(-0.104528), qf2vt(-0.121869),
- qf2vt(-0.139173), qf2vt(-0.156434), qf2vt(-0.173648), qf2vt(-0.190809),
- qf2vt(-0.207912), qf2vt(-0.224951), qf2vt(-0.241922), qf2vt(-0.258819),
- qf2vt(-0.275637), qf2vt(-0.292372), qf2vt(-0.309017), qf2vt(-0.325568),
- qf2vt(-0.342020), qf2vt(-0.358368), qf2vt(-0.374607), qf2vt(-0.390731),
- qf2vt(-0.406737), qf2vt(-0.422618), qf2vt(-0.438371), qf2vt(-0.453990),
- qf2vt(-0.469472), qf2vt(-0.484810), qf2vt(-0.500000), qf2vt(-0.515038),
- qf2vt(-0.529919), qf2vt(-0.544639), qf2vt(-0.559193), qf2vt(-0.573576),
- qf2vt(-0.587785), qf2vt(-0.601815), qf2vt(-0.615661), qf2vt(-0.629320),
- qf2vt(-0.642788), qf2vt(-0.656059), qf2vt(-0.669131), qf2vt(-0.681998),
- qf2vt(-0.694658), qf2vt(-0.707107), qf2vt(-0.719340), qf2vt(-0.731354),
- qf2vt(-0.743145), qf2vt(-0.754710), qf2vt(-0.766044), qf2vt(-0.777146),
- qf2vt(-0.788011), qf2vt(-0.798636), qf2vt(-0.809017), qf2vt(-0.819152),
- qf2vt(-0.829038), qf2vt(-0.838671), qf2vt(-0.848048), qf2vt(-0.857167),
- qf2vt(-0.866025), qf2vt(-0.874620), qf2vt(-0.882948), qf2vt(-0.891007),
- qf2vt(-0.898794), qf2vt(-0.906308), qf2vt(-0.913545), qf2vt(-0.920505),
- qf2vt(-0.927184), qf2vt(-0.933580), qf2vt(-0.939693), qf2vt(-0.945519),
- qf2vt(-0.951057), qf2vt(-0.956305), qf2vt(-0.961262), qf2vt(-0.965926),
- qf2vt(-0.970296), qf2vt(-0.974370), qf2vt(-0.978148), qf2vt(-0.981627),
- qf2vt(-0.984808), qf2vt(-0.987688), qf2vt(-0.990268), qf2vt(-0.992546),
- qf2vt(-0.994522), qf2vt(-0.996195), qf2vt(-0.997564), qf2vt(-0.998630),
- qf2vt(-0.999391), qf2vt(-0.999848), qf2vt(-1.000000), qf2vt(-0.999848),
- qf2vt(-0.999391), qf2vt(-0.998630), qf2vt(-0.997564), qf2vt(-0.996195),
- qf2vt(-0.994522), qf2vt(-0.992546), qf2vt(-0.990268), qf2vt(-0.987688),
- qf2vt(-0.984808), qf2vt(-0.981627), qf2vt(-0.978148), qf2vt(-0.974370),
- qf2vt(-0.970296), qf2vt(-0.965926), qf2vt(-0.961262), qf2vt(-0.956305),
- qf2vt(-0.951057), qf2vt(-0.945519), qf2vt(-0.939693), qf2vt(-0.933580),
- qf2vt(-0.927184), qf2vt(-0.920505), qf2vt(-0.913545), qf2vt(-0.906308),
- qf2vt(-0.898794), qf2vt(-0.891007), qf2vt(-0.882948), qf2vt(-0.874620),
- qf2vt(-0.866025), qf2vt(-0.857167), qf2vt(-0.848048), qf2vt(-0.838671),
- qf2vt(-0.829038), qf2vt(-0.819152), qf2vt(-0.809017), qf2vt(-0.798636),
- qf2vt(-0.788011), qf2vt(-0.777146), qf2vt(-0.766044), qf2vt(-0.754710),
- qf2vt(-0.743145), qf2vt(-0.731354), qf2vt(-0.719340), qf2vt(-0.707107),
- qf2vt(-0.694658), qf2vt(-0.681998), qf2vt(-0.669131), qf2vt(-0.656059),
- qf2vt(-0.642788), qf2vt(-0.629320), qf2vt(-0.615661), qf2vt(-0.601815),
- qf2vt(-0.587785), qf2vt(-0.573576), qf2vt(-0.559193), qf2vt(-0.544639),
- qf2vt(-0.529919), qf2vt(-0.515038), qf2vt(-0.500000), qf2vt(-0.484810),
- qf2vt(-0.469472), qf2vt(-0.453990), qf2vt(-0.438371), qf2vt(-0.422618),
- qf2vt(-0.406737), qf2vt(-0.390731), qf2vt(-0.374607), qf2vt(-0.358368),
- qf2vt(-0.342020), qf2vt(-0.325568), qf2vt(-0.309017), qf2vt(-0.292372),
- qf2vt(-0.275637), qf2vt(-0.258819), qf2vt(-0.241922), qf2vt(-0.224951),
- qf2vt(-0.207912), qf2vt(-0.190809), qf2vt(-0.173648), qf2vt(-0.156434),
- qf2vt(-0.139173), qf2vt(-0.121869), qf2vt(-0.104528), qf2vt(-0.087156),
- qf2vt(-0.069756), qf2vt(-0.052336), qf2vt(-0.034899), qf2vt(-0.017452)
-};
-
-void qt_math3d_sincos(qreal angle, qrealinner *s, qrealinner *c)
-{
- if (angle == qFloor(angle)) {
- // The angle is an integer number of degrees, so look up the results.
- int a = (int)angle;
- if (a >= 0)
- a = (a % 360);
- else
- a = 360 - (-a % 360);
- s->setBits(sinTable[a]);
- c->setBits(sinTable[(a + 90) % 360]);
- } else {
- qreal a = angle * M_PI / 180.0f;
- *s = qSin(a);
- *c = qCos(a);
- }
-}
-
-#else
-
-void qt_math3d_sincos(qreal angle, qrealinner *s, qrealinner *c)
-{
- qreal a = angle * M_PI / 180.0f;
- *s = qSin(a);
- *c = qCos(a);
-}
-
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/gui/math3d/qmatrix4x4.cpp b/src/gui/math3d/qmatrix4x4.cpp
index bcb3066..a8dabf3 100644
--- a/src/gui/math3d/qmatrix4x4.cpp
+++ b/src/gui/math3d/qmatrix4x4.cpp
@@ -40,7 +40,6 @@
****************************************************************************/
#include "qmatrix4x4.h"
-#include "qmath3dutil_p.h"
#include <QtCore/qmath.h>
#include <QtGui/qmatrix.h>
#include <QtGui/qtransform.h>
@@ -106,7 +105,7 @@ QMatrix4x4::QMatrix4x4(const qreal *values)
#if !defined(QT_NO_MEMBER_TEMPLATES) || defined(Q_QDOC)
/*!
- \fn QMatrix4x4::QMatrix4x4(const QGenericMatrix<N, M, qreal, qrealinner>& matrix)
+ \fn QMatrix4x4::QMatrix4x4(const QGenericMatrix<N, M, qreal, float>& matrix)
Constructs a 4x4 matrix from the left-most 4 columns and top-most
4 rows of \a matrix. If \a matrix has less than 4 columns or rows,
@@ -117,7 +116,7 @@ QMatrix4x4::QMatrix4x4(const qreal *values)
*/
/*!
- \fn QGenericMatrix<N, M, qreal, qrealinner> QMatrix4x4::toGenericMatrix() const
+ \fn QGenericMatrix<N, M, qreal, float> QMatrix4x4::toGenericMatrix() const
Constructs a NxM generic matrix from the left-most N columns and
top-most M rows of this 4x4 matrix. If N or M is greater than 4,
@@ -130,7 +129,7 @@ QMatrix4x4::QMatrix4x4(const qreal *values)
#endif
/*!
- \fn QMatrix4x4 qGenericMatrixToMatrix4x4(const QGenericMatrix<N, M, qreal, qrealinner>& matrix)
+ \fn QMatrix4x4 qGenericMatrixToMatrix4x4(const QGenericMatrix<N, M, qreal, float>& matrix)
\relates QMatrix4x4
Returns a 4x4 matrix constructed from the left-most 4 columns and
@@ -142,7 +141,7 @@ QMatrix4x4::QMatrix4x4(const qreal *values)
*/
/*!
- \fn QGenericMatrix<N, M, qreal, qrealinner> qGenericMatrixFromMatrix4x4(const QMatrix4x4& matrix)
+ \fn QGenericMatrix<N, M, qreal, float> qGenericMatrixFromMatrix4x4(const QMatrix4x4& matrix)
\relates QMatrix4x4
Returns a NxM generic matrix constructed from the left-most N columns
@@ -156,7 +155,7 @@ QMatrix4x4::QMatrix4x4(const qreal *values)
/*!
\internal
*/
-QMatrix4x4::QMatrix4x4(const qrealinner *values, int cols, int rows)
+QMatrix4x4::QMatrix4x4(const float *values, int cols, int rows)
{
for (int col = 0; col < 4; ++col) {
for (int row = 0; row < 4; ++row) {
@@ -244,7 +243,7 @@ QMatrix4x4::QMatrix4x4(const QTransform& transform)
*/
/*!
- \fn qrealinner& QMatrix4x4::operator()(int row, int column)
+ \fn float& QMatrix4x4::operator()(int row, int column)
Returns a reference to the element at position (\a row, \a column)
in this matrix so that the element can be assigned to.
@@ -316,8 +315,8 @@ QMatrix4x4::QMatrix4x4(const QTransform& transform)
// | A B C |
// M = | D E F | det(M) = A * (EI - HF) - B * (DI - GF) + C * (DH - GE)
// | G H I |
-static inline qrealinner matrixDet3
- (const qrealinner m[4][4], int col0, int col1, int col2,
+static inline float matrixDet3
+ (const float m[4][4], int col0, int col1, int col2,
int row0, int row1, int row2)
{
return m[col0][row0] *
@@ -332,9 +331,9 @@ static inline qrealinner matrixDet3
}
// Calculate the determinant of a 4x4 matrix.
-static inline qrealinner matrixDet4(const qrealinner m[4][4])
+static inline float matrixDet4(const float m[4][4])
{
- qrealinner det;
+ float det;
det = m[0][0] * matrixDet3(m, 1, 2, 3, 1, 2, 3);
det -= m[1][0] * matrixDet3(m, 0, 2, 3, 1, 2, 3);
det += m[2][0] * matrixDet3(m, 0, 1, 3, 1, 2, 3);
@@ -347,7 +346,7 @@ static inline qrealinner matrixDet4(const qrealinner m[4][4])
*/
qreal QMatrix4x4::determinant() const
{
- return qt_math3d_convert<qreal, qrealinner>(matrixDet4(m));
+ return qreal(matrixDet4(m));
}
/*!
@@ -386,13 +385,13 @@ QMatrix4x4 QMatrix4x4::inverted(bool *invertible) const
QMatrix4x4 inv(1); // The "1" says to not load the identity.
- qrealinner det = matrixDet4(m);
+ float det = matrixDet4(m);
if (det == 0.0f) {
if (invertible)
*invertible = false;
return QMatrix4x4();
}
- det = qrealinner(1.0f) / det;
+ det = 1.0f / det;
inv.m[0][0] = matrixDet3(m, 1, 2, 3, 1, 2, 3) * det;
inv.m[0][1] = -matrixDet3(m, 0, 2, 3, 1, 2, 3) * det;
@@ -434,18 +433,18 @@ QMatrix3x3 QMatrix4x4::normalMatrix() const
} else if (flagBits == Scale || flagBits == (Translation | Scale)) {
if (m[0][0] == 0.0f || m[1][1] == 0.0f || m[2][2] == 0.0f)
return inv;
- inv.data()[0] = qrealinner(1.0f) / m[0][0];
- inv.data()[4] = qrealinner(1.0f) / m[1][1];
- inv.data()[8] = qrealinner(1.0f) / m[2][2];
+ inv.data()[0] = 1.0f / m[0][0];
+ inv.data()[4] = 1.0f / m[1][1];
+ inv.data()[8] = 1.0f / m[2][2];
return inv;
}
- qrealinner det = matrixDet3(m, 0, 1, 2, 0, 1, 2);
+ float det = matrixDet3(m, 0, 1, 2, 0, 1, 2);
if (det == 0.0f)
return inv;
- det = qrealinner(1.0f) / det;
+ det = 1.0f / det;
- qrealinner *invm = inv.data();
+ float *invm = inv.data();
// Invert and transpose in a single step.
invm[0 + 0 * 3] = (m[1][1] * m[2][2] - m[2][1] * m[1][2]) * det;
@@ -507,23 +506,22 @@ QMatrix4x4 QMatrix4x4::transposed() const
*/
QMatrix4x4& QMatrix4x4::operator/=(qreal divisor)
{
- qrealinner d(divisor);
- m[0][0] /= d;
- m[0][1] /= d;
- m[0][2] /= d;
- m[0][3] /= d;
- m[1][0] /= d;
- m[1][1] /= d;
- m[1][2] /= d;
- m[1][3] /= d;
- m[2][0] /= d;
- m[2][1] /= d;
- m[2][2] /= d;
- m[2][3] /= d;
- m[3][0] /= d;
- m[3][1] /= d;
- m[3][2] /= d;
- m[3][3] /= d;
+ m[0][0] /= divisor;
+ m[0][1] /= divisor;
+ m[0][2] /= divisor;
+ m[0][3] /= divisor;
+ m[1][0] /= divisor;
+ m[1][1] /= divisor;
+ m[1][2] /= divisor;
+ m[1][3] /= divisor;
+ m[2][0] /= divisor;
+ m[2][1] /= divisor;
+ m[2][2] /= divisor;
+ m[2][3] /= divisor;
+ m[3][0] /= divisor;
+ m[3][1] /= divisor;
+ m[3][2] /= divisor;
+ m[3][3] /= divisor;
flagBits = General;
return *this;
}
@@ -665,23 +663,22 @@ QMatrix4x4& QMatrix4x4::operator/=(qreal divisor)
QMatrix4x4 operator/(const QMatrix4x4& matrix, qreal divisor)
{
QMatrix4x4 m(1); // The "1" says to not load the identity.
- qrealinner d(divisor);
- m.m[0][0] = matrix.m[0][0] / d;
- m.m[0][1] = matrix.m[0][1] / d;
- m.m[0][2] = matrix.m[0][2] / d;
- m.m[0][3] = matrix.m[0][3] / d;
- m.m[1][0] = matrix.m[1][0] / d;
- m.m[1][1] = matrix.m[1][1] / d;
- m.m[1][2] = matrix.m[1][2] / d;
- m.m[1][3] = matrix.m[1][3] / d;
- m.m[2][0] = matrix.m[2][0] / d;
- m.m[2][1] = matrix.m[2][1] / d;
- m.m[2][2] = matrix.m[2][2] / d;
- m.m[2][3] = matrix.m[2][3] / d;
- m.m[3][0] = matrix.m[3][0] / d;
- m.m[3][1] = matrix.m[3][1] / d;
- m.m[3][2] = matrix.m[3][2] / d;
- m.m[3][3] = matrix.m[3][3] / d;
+ m.m[0][0] = matrix.m[0][0] / divisor;
+ m.m[0][1] = matrix.m[0][1] / divisor;
+ m.m[0][2] = matrix.m[0][2] / divisor;
+ m.m[0][3] = matrix.m[0][3] / divisor;
+ m.m[1][0] = matrix.m[1][0] / divisor;
+ m.m[1][1] = matrix.m[1][1] / divisor;
+ m.m[1][2] = matrix.m[1][2] / divisor;
+ m.m[1][3] = matrix.m[1][3] / divisor;
+ m.m[2][0] = matrix.m[2][0] / divisor;
+ m.m[2][1] = matrix.m[2][1] / divisor;
+ m.m[2][2] = matrix.m[2][2] / divisor;
+ m.m[2][3] = matrix.m[2][3] / divisor;
+ m.m[3][0] = matrix.m[3][0] / divisor;
+ m.m[3][1] = matrix.m[3][1] / divisor;
+ m.m[3][2] = matrix.m[3][2] / divisor;
+ m.m[3][3] = matrix.m[3][3] / divisor;
return m;
}
@@ -703,9 +700,9 @@ QMatrix4x4 operator/(const QMatrix4x4& matrix, qreal divisor)
*/
QMatrix4x4& QMatrix4x4::scale(const QVector3D& vector)
{
- qrealinner vx = vector.xp;
- qrealinner vy = vector.yp;
- qrealinner vz = vector.zp;
+ float vx = vector.xp;
+ float vy = vector.yp;
+ float vz = vector.zp;
if (flagBits == Identity) {
m[0][0] = vx;
m[1][1] = vy;
@@ -749,9 +746,9 @@ QMatrix4x4& QMatrix4x4::scale(const QVector3D& vector)
*/
QMatrix4x4& QMatrix4x4::scale(qreal x, qreal y, qreal z)
{
- qrealinner vx(x);
- qrealinner vy(y);
- qrealinner vz(z);
+ float vx(x);
+ float vy(y);
+ float vz(z);
if (flagBits == Identity) {
m[0][0] = vx;
m[1][1] = vy;
@@ -794,34 +791,33 @@ QMatrix4x4& QMatrix4x4::scale(qreal x, qreal y, qreal z)
*/
QMatrix4x4& QMatrix4x4::scale(qreal factor)
{
- qrealinner f(factor);
if (flagBits == Identity) {
- m[0][0] = f;
- m[1][1] = f;
- m[2][2] = f;
+ m[0][0] = factor;
+ m[1][1] = factor;
+ m[2][2] = factor;
flagBits = Scale;
} else if (flagBits == Scale || flagBits == (Scale | Translation)) {
- m[0][0] *= f;
- m[1][1] *= f;
- m[2][2] *= f;
+ m[0][0] *= factor;
+ m[1][1] *= factor;
+ m[2][2] *= factor;
} else if (flagBits == Translation) {
- m[0][0] = f;
- m[1][1] = f;
- m[2][2] = f;
+ m[0][0] = factor;
+ m[1][1] = factor;
+ m[2][2] = factor;
flagBits |= Scale;
} else {
- m[0][0] *= f;
- m[0][1] *= f;
- m[0][2] *= f;
- m[0][3] *= f;
- m[1][0] *= f;
- m[1][1] *= f;
- m[1][2] *= f;
- m[1][3] *= f;
- m[2][0] *= f;
- m[2][1] *= f;
- m[2][2] *= f;
- m[2][3] *= f;
+ m[0][0] *= factor;
+ m[0][1] *= factor;
+ m[0][2] *= factor;
+ m[0][3] *= factor;
+ m[1][0] *= factor;
+ m[1][1] *= factor;
+ m[1][2] *= factor;
+ m[1][3] *= factor;
+ m[2][0] *= factor;
+ m[2][1] *= factor;
+ m[2][2] *= factor;
+ m[2][3] *= factor;
flagBits = General;
}
return *this;
@@ -836,9 +832,9 @@ QMatrix4x4& QMatrix4x4::scale(qreal factor)
*/
QMatrix4x4& QMatrix4x4::translate(const QVector3D& vector)
{
- qrealinner vx = vector.xp;
- qrealinner vy = vector.yp;
- qrealinner vz = vector.zp;
+ float vx = vector.xp;
+ float vy = vector.yp;
+ float vz = vector.zp;
if (flagBits == Identity) {
m[3][0] = vx;
m[3][1] = vy;
@@ -882,9 +878,9 @@ QMatrix4x4& QMatrix4x4::translate(const QVector3D& vector)
*/
QMatrix4x4& QMatrix4x4::translate(qreal x, qreal y, qreal z)
{
- qrealinner vx(x);
- qrealinner vy(y);
- qrealinner vz(z);
+ float vx(x);
+ float vy(y);
+ float vz(z);
if (flagBits == Identity) {
m[3][0] = vx;
m[3][1] = vy;
@@ -931,6 +927,10 @@ QMatrix4x4& QMatrix4x4::rotate(qreal angle, const QVector3D& vector)
#endif
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
/*!
\overload
@@ -942,8 +942,10 @@ QMatrix4x4& QMatrix4x4::rotate(qreal angle, const QVector3D& vector)
QMatrix4x4& QMatrix4x4::rotate(qreal angle, qreal x, qreal y, qreal z)
{
QMatrix4x4 m(1); // The "1" says to not load the identity.
- qrealinner c, s, ic;
- qt_math3d_sincos(angle, &s, &c);
+ qreal a = angle * M_PI / 180.0f;
+ qreal c = qCos(a);
+ qreal s = qSin(a);
+ qreal ic;
bool quick = false;
if (x == 0.0f) {
if (y == 0.0f) {
@@ -993,27 +995,25 @@ QMatrix4x4& QMatrix4x4::rotate(qreal angle, qreal x, qreal y, qreal z)
quick = true;
}
if (!quick) {
- qrealinner vx(x);
- qrealinner vy(y);
- qrealinner vz(z);
- qrealinner len(qvtsqrt(vx * vx + vy * vy + vz * vz));
- if (len != 0) {
- vx /= len;
- vy /= len;
- vz /= len;
+ qreal len = x * x + y * y + z * z;
+ if (!qFuzzyIsNull(len - 1.0f) && !qFuzzyIsNull(len)) {
+ len = qSqrt(len);
+ x /= len;
+ y /= len;
+ z /= len;
}
ic = 1.0f - c;
- m.m[0][0] = vx * vx * ic + c;
- m.m[1][0] = vx * vy * ic - vz * s;
- m.m[2][0] = vx * vz * ic + vy * s;
+ m.m[0][0] = x * x * ic + c;
+ m.m[1][0] = x * y * ic - z * s;
+ m.m[2][0] = x * z * ic + y * s;
m.m[3][0] = 0.0f;
- m.m[0][1] = vy * vx * ic + vz * s;
- m.m[1][1] = vy * vy * ic + c;
- m.m[2][1] = vy * vz * ic - vx * s;
+ m.m[0][1] = y * x * ic + z * s;
+ m.m[1][1] = y * y * ic + c;
+ m.m[2][1] = y * z * ic - x * s;
m.m[3][1] = 0.0f;
- m.m[0][2] = vx * vz * ic - vy * s;
- m.m[1][2] = vy * vz * ic + vx * s;
- m.m[2][2] = vz * vz * ic + c;
+ m.m[0][2] = x * z * ic - y * s;
+ m.m[1][2] = y * z * ic + x * s;
+ m.m[2][2] = z * z * ic + c;
m.m[3][2] = 0.0f;
m.m[0][3] = 0.0f;
m.m[1][3] = 0.0f;
@@ -1043,15 +1043,15 @@ QMatrix4x4& QMatrix4x4::rotate(const QQuaternion& quaternion)
// Algorithm from:
// http://www.j3d.org/matrix_faq/matrfaq_latest.html#Q54
QMatrix4x4 m(1);
- qrealinner xx = quaternion.xp * quaternion.xp;
- qrealinner xy = quaternion.xp * quaternion.yp;
- qrealinner xz = quaternion.xp * quaternion.zp;
- qrealinner xw = quaternion.xp * quaternion.wp;
- qrealinner yy = quaternion.yp * quaternion.yp;
- qrealinner yz = quaternion.yp * quaternion.zp;
- qrealinner yw = quaternion.yp * quaternion.wp;
- qrealinner zz = quaternion.zp * quaternion.zp;
- qrealinner zw = quaternion.zp * quaternion.wp;
+ float xx = quaternion.xp * quaternion.xp;
+ float xy = quaternion.xp * quaternion.yp;
+ float xz = quaternion.xp * quaternion.zp;
+ float xw = quaternion.xp * quaternion.wp;
+ float yy = quaternion.yp * quaternion.yp;
+ float yz = quaternion.yp * quaternion.zp;
+ float yw = quaternion.yp * quaternion.wp;
+ float zz = quaternion.zp * quaternion.zp;
+ float zw = quaternion.zp * quaternion.wp;
m.m[0][0] = 1.0f - 2 * (yy + zz);
m.m[1][0] = 2 * (xy - zw);
m.m[2][0] = 2 * (xz + yw);
@@ -1137,33 +1137,33 @@ QMatrix4x4& QMatrix4x4::ortho(qreal left, qreal right, qreal bottom, qreal top,
// which will be more efficient to modify with further
// transformations than producing a "General" matrix.
translate(QVector3D
- (qf2vt_round(-(left + right) / width),
- qf2vt_round(-(top + bottom) / invheight),
+ (-(left + right) / width,
+ -(top + bottom) / invheight,
0.0f, 1));
scale(QVector3D
- (qf2vt_round(2.0f / width),
- qf2vt_round(2.0f / invheight),
+ (2.0f / width,
+ 2.0f / invheight,
-1.0f, 1));
return *this;
}
#endif
QMatrix4x4 m(1);
- m.m[0][0] = qf2vt_round(2.0f / width);
- m.m[1][0] = qf2vt_round(0.0f);
- m.m[2][0] = qf2vt_round(0.0f);
- m.m[3][0] = qf2vt_round(-(left + right) / width);
- m.m[0][1] = qf2vt_round(0.0f);
- m.m[1][1] = qf2vt_round(2.0f / invheight);
- m.m[2][1] = qf2vt_round(0.0f);
- m.m[3][1] = qf2vt_round(-(top + bottom) / invheight);
- m.m[0][2] = qf2vt_round(0.0f);
- m.m[1][2] = qf2vt_round(0.0f);
- m.m[2][2] = qf2vt_round(-2.0f / clip);
- m.m[3][2] = qf2vt_round(-(nearPlane + farPlane) / clip);
- m.m[0][3] = qf2vt_round(0.0f);
- m.m[1][3] = qf2vt_round(0.0f);
- m.m[2][3] = qf2vt_round(0.0f);
- m.m[3][3] = qf2vt_round(1.0f);
+ m.m[0][0] = 2.0f / width;
+ m.m[1][0] = 0.0f;
+ m.m[2][0] = 0.0f;
+ m.m[3][0] = -(left + right) / width;
+ m.m[0][1] = 0.0f;
+ m.m[1][1] = 2.0f / invheight;
+ m.m[2][1] = 0.0f;
+ m.m[3][1] = -(top + bottom) / invheight;
+ m.m[0][2] = 0.0f;
+ m.m[1][2] = 0.0f;
+ m.m[2][2] = -2.0f / clip;
+ m.m[3][2] = -(nearPlane + farPlane) / clip;
+ m.m[0][3] = 0.0f;
+ m.m[1][3] = 0.0f;
+ m.m[2][3] = 0.0f;
+ m.m[3][3] = 1.0f;
// Apply the projection.
*this *= m;
@@ -1189,22 +1189,22 @@ QMatrix4x4& QMatrix4x4::frustum(qreal left, qreal right, qreal bottom, qreal top
qreal width = right - left;
qreal invheight = top - bottom;
qreal clip = farPlane - nearPlane;
- m.m[0][0] = qf2vt_round(2.0f * nearPlane / width);
- m.m[1][0] = qf2vt_round(0.0f);
- m.m[2][0] = qf2vt_round((left + right) / width);
- m.m[3][0] = qf2vt_round(0.0f);
- m.m[0][1] = qf2vt_round(0.0f);
- m.m[1][1] = qf2vt_round(2.0f * nearPlane / invheight);
- m.m[2][1] = qf2vt_round((top + bottom) / invheight);
- m.m[3][1] = qf2vt_round(0.0f);
- m.m[0][2] = qf2vt_round(0.0f);
- m.m[1][2] = qf2vt_round(0.0f);
- m.m[2][2] = qf2vt_round(-(nearPlane + farPlane) / clip);
- m.m[3][2] = qf2vt_round(-(2.0f * nearPlane * farPlane) / clip);
- m.m[0][3] = qf2vt_round(0.0f);
- m.m[1][3] = qf2vt_round(0.0f);
- m.m[2][3] = qf2vt_round(-1.0f);
- m.m[3][3] = qf2vt_round(0.0f);
+ m.m[0][0] = 2.0f * nearPlane / width;
+ m.m[1][0] = 0.0f;
+ m.m[2][0] = (left + right) / width;
+ m.m[3][0] = 0.0f;
+ m.m[0][1] = 0.0f;
+ m.m[1][1] = 2.0f * nearPlane / invheight;
+ m.m[2][1] = (top + bottom) / invheight;
+ m.m[3][1] = 0.0f;
+ m.m[0][2] = 0.0f;
+ m.m[1][2] = 0.0f;
+ m.m[2][2] = -(nearPlane + farPlane) / clip;
+ m.m[3][2] = -2.0f * nearPlane * farPlane / clip;
+ m.m[0][3] = 0.0f;
+ m.m[1][3] = 0.0f;
+ m.m[2][3] = -1.0f;
+ m.m[3][3] = 0.0f;
// Apply the projection.
*this *= m;
@@ -1234,22 +1234,22 @@ QMatrix4x4& QMatrix4x4::perspective(qreal angle, qreal aspect, qreal nearPlane,
return *this;
qreal cotan = qCos(radians) / sine;
qreal clip = farPlane - nearPlane;
- m.m[0][0] = qf2vt_round(cotan / aspect);
- m.m[1][0] = qf2vt_round(0.0f);
- m.m[2][0] = qf2vt_round(0.0f);
- m.m[3][0] = qf2vt_round(0.0f);
- m.m[0][1] = qf2vt_round(0.0f);
- m.m[1][1] = qf2vt_round(cotan);
- m.m[2][1] = qf2vt_round(0.0f);
- m.m[3][1] = qf2vt_round(0.0f);
- m.m[0][2] = qf2vt_round(0.0f);
- m.m[1][2] = qf2vt_round(0.0f);
- m.m[2][2] = qf2vt_round(-(nearPlane + farPlane) / clip);
- m.m[3][2] = qf2vt_round(-(2.0f * nearPlane * farPlane) / clip);
- m.m[0][3] = qf2vt_round(0.0f);
- m.m[1][3] = qf2vt_round(0.0f);
- m.m[2][3] = qf2vt_round(-1.0f);
- m.m[3][3] = qf2vt_round(0.0f);
+ m.m[0][0] = cotan / aspect;
+ m.m[1][0] = 0.0f;
+ m.m[2][0] = 0.0f;
+ m.m[3][0] = 0.0f;
+ m.m[0][1] = 0.0f;
+ m.m[1][1] = cotan;
+ m.m[2][1] = 0.0f;
+ m.m[3][1] = 0.0f;
+ m.m[0][2] = 0.0f;
+ m.m[1][2] = 0.0f;
+ m.m[2][2] = -(nearPlane + farPlane) / clip;
+ m.m[3][2] = -(2.0f * nearPlane * farPlane) / clip;
+ m.m[0][3] = 0.0f;
+ m.m[1][3] = 0.0f;
+ m.m[2][3] = -1.0f;
+ m.m[3][3] = 0.0f;
// Apply the projection.
*this *= m;
@@ -1339,7 +1339,7 @@ void QMatrix4x4::toValueArray(qreal *values) const
{
for (int row = 0; row < 4; ++row)
for (int col = 0; col < 4; ++col)
- values[row * 4 + col] = qt_math3d_convert<qreal, qrealinner>(m[col][row]);
+ values[row * 4 + col] = qreal(m[col][row]);
}
/*!
@@ -1351,12 +1351,9 @@ void QMatrix4x4::toValueArray(qreal *values) const
*/
QMatrix QMatrix4x4::toAffine() const
{
- return QMatrix(qt_math3d_convert<qreal, qrealinner>(m[0][0]),
- qt_math3d_convert<qreal, qrealinner>(m[0][1]),
- qt_math3d_convert<qreal, qrealinner>(m[1][0]),
- qt_math3d_convert<qreal, qrealinner>(m[1][1]),
- qt_math3d_convert<qreal, qrealinner>(m[3][0]),
- qt_math3d_convert<qreal, qrealinner>(m[3][1]));
+ return QMatrix(qreal(m[0][0]), qreal(m[0][1]),
+ qreal(m[1][0]), qreal(m[1][1]),
+ qreal(m[3][0]), qreal(m[3][1]));
}
/*!
@@ -1368,15 +1365,9 @@ QMatrix QMatrix4x4::toAffine() const
*/
QTransform QMatrix4x4::toTransform() const
{
- return QTransform(qt_math3d_convert<qreal, qrealinner>(m[0][0]),
- qt_math3d_convert<qreal, qrealinner>(m[0][1]),
- qt_math3d_convert<qreal, qrealinner>(m[0][3]),
- qt_math3d_convert<qreal, qrealinner>(m[1][0]),
- qt_math3d_convert<qreal, qrealinner>(m[1][1]),
- qt_math3d_convert<qreal, qrealinner>(m[1][3]),
- qt_math3d_convert<qreal, qrealinner>(m[3][0]),
- qt_math3d_convert<qreal, qrealinner>(m[3][1]),
- qt_math3d_convert<qreal, qrealinner>(m[3][3]));
+ return QTransform(qreal(m[0][0]), qreal(m[0][1]), qreal(m[0][3]),
+ qreal(m[1][0]), qreal(m[1][1]), qreal(m[1][3]),
+ qreal(m[3][0]), qreal(m[3][1]), qreal(m[3][3]));
}
/*!
@@ -1442,28 +1433,28 @@ QTransform QMatrix4x4::toTransform() const
*/
/*!
- \fn qrealinner *QMatrix4x4::data()
+ \fn float *QMatrix4x4::data()
- Returns a pointer to the raw data of this matrix. This is indended
+ Returns a pointer to the raw data of this matrix. This is intended
for use with raw GL functions.
\sa constData(), inferSpecialType()
*/
/*!
- \fn const qrealinner *QMatrix4x4::data() const
+ \fn const float *QMatrix4x4::data() const
Returns a constant pointer to the raw data of this matrix.
- This is indended for use with raw GL functions.
+ This is intended for use with raw GL functions.
\sa constData()
*/
/*!
- \fn const qrealinner *QMatrix4x4::constData() const
+ \fn const float *QMatrix4x4::constData() const
Returns a constant pointer to the raw data of this matrix.
- This is indended for use with raw GL functions.
+ This is intended for use with raw GL functions.
\sa data()
*/
@@ -1519,12 +1510,12 @@ void QMatrix4x4::extractAxisRotation(qreal &angle, QVector3D &axis) const
{
// Orientation is dependent on the upper 3x3 matrix; subtract the
// homogeneous scaling element from the trace of the 4x4 matrix
- qrealinner tr = m[0][0] + m[1][1] + m[2][2];
- qreal cosa = qt_math3d_convert<qreal, qrealinner>(0.5f * (tr - 1.0f));
+ float tr = m[0][0] + m[1][1] + m[2][2];
+ qreal cosa = qreal(0.5f * (tr - 1.0f));
angle = acos(cosa) * 180.0f / M_PI;
// Any axis will work if r is zero (means no rotation)
- if (qFuzzyCompare(angle, (qreal)0.0f)) {
+ if (qFuzzyIsNull(angle)) {
axis.setX(1.0f);
axis.setY(0.0f);
axis.setZ(0.0f);
@@ -1540,11 +1531,11 @@ void QMatrix4x4::extractAxisRotation(qreal &angle, QVector3D &axis) const
}
// rads == PI
- qrealinner tmp;
+ float tmp;
// r00 is maximum
if ((m[0][0] >= m[2][2]) && (m[0][0] >= m[1][1])) {
- axis.xp = 0.5f * qvtsqrt(m[0][0] - m[1][1] - m[2][2] + 1.0f);
+ axis.xp = 0.5f * qSqrt(m[0][0] - m[1][1] - m[2][2] + 1.0f);
tmp = 0.5f / axis.x();
axis.yp = m[1][0] * tmp;
axis.zp = m[2][0] * tmp;
@@ -1552,7 +1543,7 @@ void QMatrix4x4::extractAxisRotation(qreal &angle, QVector3D &axis) const
// r11 is maximum
if ((m[1][1] >= m[2][2]) && (m[1][1] >= m[0][0])) {
- axis.yp = 0.5f * qvtsqrt(m[1][1] - m[0][0] - m[2][2] + 1.0f);
+ axis.yp = 0.5f * qSqrt(m[1][1] - m[0][0] - m[2][2] + 1.0f);
tmp = 0.5f / axis.y();
axis.xp = tmp * m[1][0];
axis.zp = tmp * m[2][1];
@@ -1560,7 +1551,7 @@ void QMatrix4x4::extractAxisRotation(qreal &angle, QVector3D &axis) const
// r22 is maximum
if ((m[2][2] >= m[1][1]) && (m[2][2] >= m[0][0])) {
- axis.zp = 0.5f * qvtsqrt(m[2][2] - m[0][0] - m[1][1] + 1.0f);
+ axis.zp = 0.5f * qSqrt(m[2][2] - m[0][0] - m[1][1] + 1.0f);
tmp = 0.5f / axis.z();
axis.xp = m[2][0]*tmp;
axis.yp = m[2][1]*tmp;
diff --git a/src/gui/math3d/qmatrix4x4.h b/src/gui/math3d/qmatrix4x4.h
index 6428b20..2b485c1 100644
--- a/src/gui/math3d/qmatrix4x4.h
+++ b/src/gui/math3d/qmatrix4x4.h
@@ -70,14 +70,14 @@ public:
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, qrealinner>& matrix);
+ explicit QMatrix4x4(const QGenericMatrix<N, M, qreal, float>& matrix);
#endif
- QMatrix4x4(const qrealinner *values, int cols, int rows);
+ QMatrix4x4(const float *values, int cols, int rows);
QMatrix4x4(const QTransform& transform);
QMatrix4x4(const QMatrix& matrix);
inline qreal operator()(int row, int column) const;
- inline qrealinner& operator()(int row, int column);
+ inline float& operator()(int row, int column);
inline QVector4D column(int index) const;
inline void setColumn(int index, const QVector4D& value);
@@ -171,12 +171,12 @@ public:
#if !defined(QT_NO_MEMBER_TEMPLATES) || defined(Q_QDOC)
template <int N, int M>
- QGenericMatrix<N, M, qreal, qrealinner> toGenericMatrix() const;
+ QGenericMatrix<N, M, qreal, float> toGenericMatrix() const;
#endif
- inline qrealinner *data();
- inline const qrealinner *data() const { return m[0]; }
- inline const qrealinner *constData() const { return m[0]; }
+ inline float *data();
+ inline const float *data() const { return m[0]; }
+ inline const float *constData() const { return m[0]; }
void inferSpecialType();
@@ -185,7 +185,7 @@ public:
#endif
private:
- qrealinner m[4][4]; // Column-major order to match OpenGL.
+ float m[4][4]; // Column-major order to match OpenGL.
int flagBits; // Flag bits from the enum below.
enum {
@@ -219,9 +219,9 @@ inline QMatrix4x4::QMatrix4x4
template <int N, int M>
Q_INLINE_TEMPLATE QMatrix4x4::QMatrix4x4
- (const QGenericMatrix<N, M, qreal, qrealinner>& matrix)
+ (const QGenericMatrix<N, M, qreal, float>& matrix)
{
- const qrealinner *values = matrix.constData();
+ const float *values = matrix.constData();
for (int col = 0; col < 4; ++col) {
for (int row = 0; row < 4; ++row) {
if (col < N && row < M)
@@ -236,10 +236,10 @@ Q_INLINE_TEMPLATE QMatrix4x4::QMatrix4x4
}
template <int N, int M>
-QGenericMatrix<N, M, qreal, qrealinner> QMatrix4x4::toGenericMatrix() const
+QGenericMatrix<N, M, qreal, float> QMatrix4x4::toGenericMatrix() const
{
- QGenericMatrix<N, M, qreal, qrealinner> result;
- qrealinner *values = result.data();
+ QGenericMatrix<N, M, qreal, float> result;
+ float *values = result.data();
for (int col = 0; col < N; ++col) {
for (int row = 0; row < M; ++row) {
if (col < 4 && row < 4)
@@ -258,10 +258,10 @@ QGenericMatrix<N, M, qreal, qrealinner> QMatrix4x4::toGenericMatrix() const
inline qreal QMatrix4x4::operator()(int row, int column) const
{
Q_ASSERT(row >= 0 && row < 4 && column >= 0 && column < 4);
- return qt_math3d_convert<qreal, qrealinner>(m[column][row]);
+ return qreal(m[column][row]);
}
-inline qrealinner& QMatrix4x4::operator()(int row, int column)
+inline float& QMatrix4x4::operator()(int row, int column)
{
Q_ASSERT(row >= 0 && row < 4 && column >= 0 && column < 4);
flagBits = General;
@@ -420,23 +420,22 @@ inline QMatrix4x4& QMatrix4x4::operator*=(const QMatrix4x4& other)
inline QMatrix4x4& QMatrix4x4::operator*=(qreal factor)
{
- qrealinner f(factor);
- m[0][0] *= f;
- m[0][1] *= f;
- m[0][2] *= f;
- m[0][3] *= f;
- m[1][0] *= f;
- m[1][1] *= f;
- m[1][2] *= f;
- m[1][3] *= f;
- m[2][0] *= f;
- m[2][1] *= f;
- m[2][2] *= f;
- m[2][3] *= f;
- m[3][0] *= f;
- m[3][1] *= f;
- m[3][2] *= f;
- m[3][3] *= f;
+ m[0][0] *= factor;
+ m[0][1] *= factor;
+ m[0][2] *= factor;
+ m[0][3] *= factor;
+ m[1][0] *= factor;
+ m[1][1] *= factor;
+ m[1][2] *= factor;
+ m[1][3] *= factor;
+ m[2][0] *= factor;
+ m[2][1] *= factor;
+ m[2][2] *= factor;
+ m[2][3] *= factor;
+ m[3][0] *= factor;
+ m[3][1] *= factor;
+ m[3][2] *= factor;
+ m[3][3] *= factor;
flagBits = General;
return *this;
}
@@ -604,7 +603,7 @@ inline QMatrix4x4 operator*(const QMatrix4x4& m1, const QMatrix4x4& m2)
inline QVector3D operator*(const QVector3D& vector, const QMatrix4x4& matrix)
{
- qrealinner x, y, z, w;
+ float x, y, z, w;
x = vector.xp * matrix.m[0][0] +
vector.yp * matrix.m[0][1] +
vector.zp * matrix.m[0][2] +
@@ -629,7 +628,7 @@ inline QVector3D operator*(const QVector3D& vector, const QMatrix4x4& matrix)
inline QVector3D operator*(const QMatrix4x4& matrix, const QVector3D& vector)
{
- qrealinner x, y, z, w;
+ float x, y, z, w;
x = vector.xp * matrix.m[0][0] +
vector.yp * matrix.m[1][0] +
vector.zp * matrix.m[2][0] +
@@ -658,7 +657,7 @@ inline QVector3D operator*(const QMatrix4x4& matrix, const QVector3D& vector)
inline QVector4D operator*(const QVector4D& vector, const QMatrix4x4& matrix)
{
- qrealinner x, y, z, w;
+ float x, y, z, w;
x = vector.xp * matrix.m[0][0] +
vector.yp * matrix.m[0][1] +
vector.zp * matrix.m[0][2] +
@@ -680,7 +679,7 @@ inline QVector4D operator*(const QVector4D& vector, const QMatrix4x4& matrix)
inline QVector4D operator*(const QMatrix4x4& matrix, const QVector4D& vector)
{
- qrealinner x, y, z, w;
+ float x, y, z, w;
x = vector.xp * matrix.m[0][0] +
vector.yp * matrix.m[1][0] +
vector.zp * matrix.m[2][0] +
@@ -704,8 +703,8 @@ inline QVector4D operator*(const QMatrix4x4& matrix, const QVector4D& vector)
inline QPoint operator*(const QPoint& point, const QMatrix4x4& matrix)
{
- qrealinner xin, yin;
- qrealinner x, y, w;
+ float xin, yin;
+ float x, y, w;
xin = point.x();
yin = point.y();
x = xin * matrix.m[0][0] +
@@ -725,8 +724,8 @@ inline QPoint operator*(const QPoint& point, const QMatrix4x4& matrix)
inline QPointF operator*(const QPointF& point, const QMatrix4x4& matrix)
{
- qrealinner xin, yin;
- qrealinner x, y, w;
+ float xin, yin;
+ float x, y, w;
xin = point.x();
yin = point.y();
x = xin * matrix.m[0][0] +
@@ -739,18 +738,16 @@ inline QPointF operator*(const QPointF& point, const QMatrix4x4& matrix)
yin * matrix.m[3][1] +
matrix.m[3][3];
if (w == 1.0f) {
- return QPointF(qt_math3d_convert<qreal, qrealinner>(x),
- qt_math3d_convert<qreal, qrealinner>(y));
+ return QPointF(qreal(x), qreal(y));
} else {
- return QPointF(qt_math3d_convert<qreal, qrealinner>(x / w),
- qt_math3d_convert<qreal, qrealinner>(y / w));
+ return QPointF(qreal(x / w), qreal(y / w));
}
}
inline QPoint operator*(const QMatrix4x4& matrix, const QPoint& point)
{
- qrealinner xin, yin;
- qrealinner x, y, w;
+ float xin, yin;
+ float x, y, w;
xin = point.x();
yin = point.y();
x = xin * matrix.m[0][0] +
@@ -770,8 +767,8 @@ inline QPoint operator*(const QMatrix4x4& matrix, const QPoint& point)
inline QPointF operator*(const QMatrix4x4& matrix, const QPointF& point)
{
- qrealinner xin, yin;
- qrealinner x, y, w;
+ float xin, yin;
+ float x, y, w;
xin = point.x();
yin = point.y();
x = xin * matrix.m[0][0] +
@@ -784,11 +781,9 @@ inline QPointF operator*(const QMatrix4x4& matrix, const QPointF& point)
yin * matrix.m[1][3] +
matrix.m[3][3];
if (w == 1.0f) {
- return QPointF(qt_math3d_convert<qreal, qrealinner>(x),
- qt_math3d_convert<qreal, qrealinner>(y));
+ return QPointF(qreal(x), qreal(y));
} else {
- return QPointF(qt_math3d_convert<qreal, qrealinner>(x / w),
- qt_math3d_convert<qreal, qrealinner>(y / w));
+ return QPointF(qreal(x / w), qreal(y / w));
}
}
@@ -817,46 +812,44 @@ inline QMatrix4x4 operator-(const QMatrix4x4& matrix)
inline QMatrix4x4 operator*(qreal factor, const QMatrix4x4& matrix)
{
QMatrix4x4 m(1);
- qrealinner f(factor);
- m.m[0][0] = matrix.m[0][0] * f;
- m.m[0][1] = matrix.m[0][1] * f;
- m.m[0][2] = matrix.m[0][2] * f;
- m.m[0][3] = matrix.m[0][3] * f;
- m.m[1][0] = matrix.m[1][0] * f;
- m.m[1][1] = matrix.m[1][1] * f;
- m.m[1][2] = matrix.m[1][2] * f;
- m.m[1][3] = matrix.m[1][3] * f;
- m.m[2][0] = matrix.m[2][0] * f;
- m.m[2][1] = matrix.m[2][1] * f;
- m.m[2][2] = matrix.m[2][2] * f;
- m.m[2][3] = matrix.m[2][3] * f;
- m.m[3][0] = matrix.m[3][0] * f;
- m.m[3][1] = matrix.m[3][1] * f;
- m.m[3][2] = matrix.m[3][2] * f;
- m.m[3][3] = matrix.m[3][3] * f;
+ m.m[0][0] = matrix.m[0][0] * factor;
+ m.m[0][1] = matrix.m[0][1] * factor;
+ m.m[0][2] = matrix.m[0][2] * factor;
+ m.m[0][3] = matrix.m[0][3] * factor;
+ m.m[1][0] = matrix.m[1][0] * factor;
+ m.m[1][1] = matrix.m[1][1] * factor;
+ m.m[1][2] = matrix.m[1][2] * factor;
+ m.m[1][3] = matrix.m[1][3] * factor;
+ m.m[2][0] = matrix.m[2][0] * factor;
+ m.m[2][1] = matrix.m[2][1] * factor;
+ m.m[2][2] = matrix.m[2][2] * factor;
+ m.m[2][3] = matrix.m[2][3] * factor;
+ m.m[3][0] = matrix.m[3][0] * factor;
+ m.m[3][1] = matrix.m[3][1] * factor;
+ m.m[3][2] = matrix.m[3][2] * factor;
+ m.m[3][3] = matrix.m[3][3] * factor;
return m;
}
inline QMatrix4x4 operator*(const QMatrix4x4& matrix, qreal factor)
{
QMatrix4x4 m(1);
- qrealinner f(factor);
- m.m[0][0] = matrix.m[0][0] * f;
- m.m[0][1] = matrix.m[0][1] * f;
- m.m[0][2] = matrix.m[0][2] * f;
- m.m[0][3] = matrix.m[0][3] * f;
- m.m[1][0] = matrix.m[1][0] * f;
- m.m[1][1] = matrix.m[1][1] * f;
- m.m[1][2] = matrix.m[1][2] * f;
- m.m[1][3] = matrix.m[1][3] * f;
- m.m[2][0] = matrix.m[2][0] * f;
- m.m[2][1] = matrix.m[2][1] * f;
- m.m[2][2] = matrix.m[2][2] * f;
- m.m[2][3] = matrix.m[2][3] * f;
- m.m[3][0] = matrix.m[3][0] * f;
- m.m[3][1] = matrix.m[3][1] * f;
- m.m[3][2] = matrix.m[3][2] * f;
- m.m[3][3] = matrix.m[3][3] * f;
+ m.m[0][0] = matrix.m[0][0] * factor;
+ m.m[0][1] = matrix.m[0][1] * factor;
+ m.m[0][2] = matrix.m[0][2] * factor;
+ m.m[0][3] = matrix.m[0][3] * factor;
+ m.m[1][0] = matrix.m[1][0] * factor;
+ m.m[1][1] = matrix.m[1][1] * factor;
+ m.m[1][2] = matrix.m[1][2] * factor;
+ m.m[1][3] = matrix.m[1][3] * factor;
+ m.m[2][0] = matrix.m[2][0] * factor;
+ m.m[2][1] = matrix.m[2][1] * factor;
+ m.m[2][2] = matrix.m[2][2] * factor;
+ m.m[2][3] = matrix.m[2][3] * factor;
+ m.m[3][0] = matrix.m[3][0] * factor;
+ m.m[3][1] = matrix.m[3][1] * factor;
+ m.m[3][2] = matrix.m[3][2] * factor;
+ m.m[3][3] = matrix.m[3][3] * factor;
return m;
}
@@ -934,7 +927,7 @@ inline QRectF QMatrix4x4::mapRect(const QRectF& rect) const
return QRectF(QPointF(xmin, ymin), QPointF(xmax, ymax));
}
-inline qrealinner *QMatrix4x4::data()
+inline float *QMatrix4x4::data()
{
// We have to assume that the caller will modify the matrix elements,
// so we flip it over to "General" mode.
@@ -947,17 +940,17 @@ Q_GUI_EXPORT QDebug operator<<(QDebug dbg, const QMatrix4x4 &m);
#endif
template <int N, int M>
-QMatrix4x4 qGenericMatrixToMatrix4x4(const QGenericMatrix<N, M, qreal, qrealinner>& matrix)
+QMatrix4x4 qGenericMatrixToMatrix4x4(const QGenericMatrix<N, M, qreal, float>& matrix)
{
return QMatrix4x4(matrix.constData(), N, M);
}
template <int N, int M>
-QGenericMatrix<N, M, qreal, qrealinner> qGenericMatrixFromMatrix4x4(const QMatrix4x4& matrix)
+QGenericMatrix<N, M, qreal, float> qGenericMatrixFromMatrix4x4(const QMatrix4x4& matrix)
{
- QGenericMatrix<N, M, qreal, qrealinner> result;
- const qrealinner *m = matrix.constData();
- qrealinner *values = result.data();
+ QGenericMatrix<N, M, qreal, float> result;
+ const float *m = matrix.constData();
+ float *values = result.data();
for (int col = 0; col < N; ++col) {
for (int row = 0; row < M; ++row) {
if (col < 4 && row < 4)
diff --git a/src/gui/math3d/qquaternion.cpp b/src/gui/math3d/qquaternion.cpp
index 121ff51..96659ea 100644
--- a/src/gui/math3d/qquaternion.cpp
+++ b/src/gui/math3d/qquaternion.cpp
@@ -40,8 +40,8 @@
****************************************************************************/
#include "qquaternion.h"
-#include "qmath3dutil_p.h"
#include <QtCore/qmath.h>
+#include <QtCore/qdebug.h>
QT_BEGIN_NAMESPACE
@@ -74,13 +74,6 @@ QT_BEGIN_NAMESPACE
and \a scalar.
*/
-/*!
- \fn QQuaternion::QQuaternion(int scalar, int xpos, int ypos, int zpos)
-
- Constructs a quaternion with the vector (\a xpos, \a ypos, \a zpos)
- and \a scalar.
-*/
-
#ifndef QT_NO_VECTOR3D
/*!
@@ -223,8 +216,7 @@ QT_BEGIN_NAMESPACE
*/
qreal QQuaternion::length() const
{
- return qvtsqrt64(qvtmul64(xp, xp) + qvtmul64(yp, yp) +
- qvtmul64(zp, zp) + qvtmul64(wp, wp));
+ return qSqrt(xp * xp + yp * yp + zp * zp + wp * wp);
}
/*!
@@ -234,45 +226,50 @@ qreal QQuaternion::length() const
*/
qreal QQuaternion::lengthSquared() const
{
- return qvtdot64(qvtmul64(xp, xp) + qvtmul64(yp, yp) +
- qvtmul64(zp, zp) + qvtmul64(wp, wp));
+ return xp * xp + yp * yp + zp * zp + wp * wp;
}
/*!
- Returns the normalized unit form of this quaternion. If this quaternion
- is not null, the returned quaternion is guaranteed to be 1.0 in length.
+ Returns the normalized unit form of this quaternion.
+
If this quaternion is null, then a null quaternion is returned.
+ If the length of the quaternion is very close to 1, then the quaternion
+ will be returned as-is. Otherwise the normalized form of the
+ quaternion of length 1 will be returned.
\sa length(), normalize()
*/
QQuaternion QQuaternion::normalized() const
{
- qreal len = length();
- if (!qIsNull(len))
- return *this / len;
+ qreal len = lengthSquared();
+ if (qFuzzyIsNull(len - 1.0f))
+ return *this;
+ else if (!qFuzzyIsNull(len))
+ return *this / qSqrt(len);
else
return QQuaternion(0.0f, 0.0f, 0.0f, 0.0f);
}
/*!
Normalizes the currect quaternion in place. Nothing happens if this
- is a null quaternion.
+ is a null quaternion or the length of the quaternion is very close to 1.
\sa length(), normalized()
*/
void QQuaternion::normalize()
{
- qreal len = length();
- if (qIsNull(len))
+ qreal len = lengthSquared();
+ if (qFuzzyIsNull(len - 1.0f) || qFuzzyIsNull(len))
return;
+ len = qSqrt(len);
+
xp /= len;
yp /= len;
zp /= len;
wp /= len;
}
-
/*!
\fn QQuaternion QQuaternion::conjugate() const
@@ -342,6 +339,10 @@ QVector3D QQuaternion::rotateVector(const QVector3D& vector) const
\sa operator*=()
*/
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
#ifndef QT_NO_VECTOR3D
/*!
@@ -354,9 +355,10 @@ QQuaternion QQuaternion::fromAxisAndAngle(const QVector3D& axis, qreal angle)
// http://www.j3d.org/matrix_faq/matrfaq_latest.html#Q56
// We normalize the result just in case the values are close
// to zero, as suggested in the above FAQ.
- qrealinner s, c;
+ qreal a = (angle / 2.0f) * M_PI / 180.0f;
+ qreal s = qSin(a);
+ qreal c = qCos(a);
QVector3D ax = axis.normalized();
- qt_math3d_sincos(angle / 2.0f, &s, &c);
return QQuaternion(c, ax.xp * s, ax.yp * s, ax.zp * s, 1).normalized();
}
@@ -369,17 +371,18 @@ QQuaternion QQuaternion::fromAxisAndAngle(const QVector3D& axis, qreal angle)
QQuaternion QQuaternion::fromAxisAndAngle
(qreal x, qreal y, qreal z, qreal angle)
{
- qrealinner xp = x;
- qrealinner yp = y;
- qrealinner zp = z;
- qrealinner s, c;
- qreal length = qvtsqrt(xp * xp + yp * yp + zp * zp);
+ float xp = x;
+ float yp = y;
+ float zp = z;
+ qreal length = qSqrt(xp * xp + yp * yp + zp * zp);
if (!qIsNull(length)) {
xp /= length;
yp /= length;
zp /= length;
}
- qt_math3d_sincos(angle / 2.0f, &s, &c);
+ qreal a = (angle / 2.0f) * M_PI / 180.0f;
+ qreal s = qSin(a);
+ qreal c = qCos(a);
return QQuaternion(c, xp * s, yp * s, zp * s, 1).normalized();
}
@@ -487,8 +490,10 @@ QQuaternion QQuaternion::fromAxisAndAngle
If \a t is less than or equal to 0, then \a q1 will be returned.
If \a t is greater than or equal to 1, then \a q2 will be returned.
+
+ \sa nlerp()
*/
-QQuaternion QQuaternion::interpolate
+QQuaternion QQuaternion::slerp
(const QQuaternion& q1, const QQuaternion& q2, qreal t)
{
// Handle the easy cases first.
@@ -500,8 +505,7 @@ QQuaternion QQuaternion::interpolate
// Determine the angle between the two quaternions.
QQuaternion q2b;
qreal dot;
- dot = qvtdot64(qvtmul64(q1.xp, q2.xp) + qvtmul64(q1.yp, q2.yp) +
- qvtmul64(q1.zp, q2.zp) + qvtmul64(q1.wp, q2.wp));
+ dot = q1.xp * q2.xp + q1.yp * q2.yp + q1.zp * q2.zp + q1.wp * q2.wp;
if (dot >= 0.0f) {
q2b = q2;
} else {
@@ -526,6 +530,43 @@ QQuaternion QQuaternion::interpolate
return q1 * factor1 + q2b * factor2;
}
+/*!
+ Interpolates along the shortest linear path between the rotational
+ positions \a q1 and \a q2. The value \a t should be between 0 and 1,
+ indicating the distance to travel between \a q1 and \a q2.
+ The result will be normalized().
+
+ If \a t is less than or equal to 0, then \a q1 will be returned.
+ If \a t is greater than or equal to 1, then \a q2 will be returned.
+
+ The nlerp() function is typically faster than slerp() and will
+ give approximate results to spherical interpolation that are
+ good enough for some applications.
+
+ \sa slerp()
+*/
+QQuaternion QQuaternion::nlerp
+ (const QQuaternion& q1, const QQuaternion& q2, qreal t)
+{
+ // Handle the easy cases first.
+ if (t <= 0.0f)
+ return q1;
+ else if (t >= 1.0f)
+ return q2;
+
+ // Determine the angle between the two quaternions.
+ QQuaternion q2b;
+ qreal dot;
+ dot = q1.xp * q2.xp + q1.yp * q2.yp + q1.zp * q2.zp + q1.wp * q2.wp;
+ if (dot >= 0.0f)
+ q2b = q2;
+ else
+ q2b = -q2;
+
+ // Perform the linear interpolation.
+ return (q1 * (1.0f - t) + q2b * t).normalized();
+}
+
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, const QQuaternion &q)
diff --git a/src/gui/math3d/qquaternion.h b/src/gui/math3d/qquaternion.h
index 6ba63ec..c05c641 100644
--- a/src/gui/math3d/qquaternion.h
+++ b/src/gui/math3d/qquaternion.h
@@ -60,7 +60,6 @@ class Q_GUI_EXPORT QQuaternion
public:
QQuaternion();
QQuaternion(qreal scalar, qreal xpos, qreal ypos, qreal zpos);
- QQuaternion(int scalar, int xpos, int ypos, int zpos);
#ifndef QT_NO_VECTOR3D
QQuaternion(qreal scalar, const QVector3D& vector);
#endif
@@ -125,15 +124,17 @@ public:
static QQuaternion fromAxisAndAngle
(qreal x, qreal y, qreal z, qreal angle);
- static QQuaternion interpolate
+ static QQuaternion slerp
+ (const QQuaternion& q1, const QQuaternion& q2, qreal t);
+ static QQuaternion nlerp
(const QQuaternion& q1, const QQuaternion& q2, qreal t);
private:
- qrealinner wp, xp, yp, zp;
+ float wp, xp, yp, zp;
friend class QMatrix4x4;
- QQuaternion(qrealinner scalar, qrealinner xpos, qrealinner ypos, qrealinner zpos, int dummy);
+ QQuaternion(float scalar, float xpos, float ypos, float zpos, int dummy);
};
inline QQuaternion::QQuaternion() : wp(1.0f), xp(0.0f), yp(0.0f), zp(0.0f) {}
@@ -141,9 +142,7 @@ inline QQuaternion::QQuaternion() : wp(1.0f), xp(0.0f), yp(0.0f), zp(0.0f) {}
inline QQuaternion::QQuaternion(qreal scalar, qreal xpos, qreal ypos, qreal zpos) : wp(scalar), xp(xpos), yp(ypos), zp(zpos) {}
-inline QQuaternion::QQuaternion(qrealinner scalar, qrealinner xpos, qrealinner ypos, qrealinner zpos, int) : wp(scalar), xp(xpos), yp(ypos), zp(zpos) {}
-
-inline QQuaternion::QQuaternion(int scalar, int xpos, int ypos, int zpos) : wp(scalar), xp(xpos), yp(ypos), zp(zpos) {}
+inline QQuaternion::QQuaternion(float scalar, float xpos, float ypos, float zpos, int) : wp(scalar), xp(xpos), yp(ypos), zp(zpos) {}
inline bool QQuaternion::isNull() const
{
@@ -155,10 +154,10 @@ inline bool QQuaternion::isIdentity() const
return qIsNull(xp) && qIsNull(yp) && qIsNull(zp) && wp == 1.0f;
}
-inline qreal QQuaternion::x() const { return qt_math3d_convert<qreal, qrealinner>(xp); }
-inline qreal QQuaternion::y() const { return qt_math3d_convert<qreal, qrealinner>(yp); }
-inline qreal QQuaternion::z() const { return qt_math3d_convert<qreal, qrealinner>(zp); }
-inline qreal QQuaternion::scalar() const { return qt_math3d_convert<qreal, qrealinner>(wp); }
+inline qreal QQuaternion::x() const { return qreal(xp); }
+inline qreal QQuaternion::y() const { return qreal(yp); }
+inline qreal QQuaternion::z() const { return qreal(zp); }
+inline qreal QQuaternion::scalar() const { return qreal(wp); }
inline void QQuaternion::setX(qreal x) { xp = x; }
inline void QQuaternion::setY(qreal y) { yp = y; }
@@ -190,11 +189,10 @@ inline QQuaternion &QQuaternion::operator-=(const QQuaternion &quaternion)
inline QQuaternion &QQuaternion::operator*=(qreal factor)
{
- qrealinner f(factor);
- xp *= f;
- yp *= f;
- zp *= f;
- wp *= f;
+ xp *= factor;
+ yp *= factor;
+ zp *= factor;
+ wp *= factor;
return *this;
}
@@ -202,19 +200,19 @@ inline const QQuaternion operator*(const QQuaternion &q1, const QQuaternion& q2)
{
// Algorithm from:
// http://www.j3d.org/matrix_faq/matrfaq_latest.html#Q53
- qrealinner x = q1.wp * q2.xp +
+ float x = q1.wp * q2.xp +
q1.xp * q2.wp +
q1.yp * q2.zp -
q1.zp * q2.yp;
- qrealinner y = q1.wp * q2.yp +
+ float y = q1.wp * q2.yp +
q1.yp * q2.wp +
q1.zp * q2.xp -
q1.xp * q2.zp;
- qrealinner z = q1.wp * q2.zp +
+ float z = q1.wp * q2.zp +
q1.zp * q2.wp +
q1.xp * q2.yp -
q1.yp * q2.xp;
- qrealinner w = q1.wp * q2.wp -
+ float w = q1.wp * q2.wp -
q1.xp * q2.xp -
q1.yp * q2.yp -
q1.zp * q2.zp;
@@ -229,11 +227,10 @@ inline QQuaternion &QQuaternion::operator*=(const QQuaternion &quaternion)
inline QQuaternion &QQuaternion::operator/=(qreal divisor)
{
- qrealinner d(divisor);
- xp /= d;
- yp /= d;
- zp /= d;
- wp /= d;
+ xp /= divisor;
+ yp /= divisor;
+ zp /= divisor;
+ wp /= divisor;
return *this;
}
@@ -259,14 +256,12 @@ inline const QQuaternion operator-(const QQuaternion &q1, const QQuaternion &q2)
inline const QQuaternion operator*(qreal factor, const QQuaternion &quaternion)
{
- qrealinner f(factor);
- return QQuaternion(quaternion.wp * f, quaternion.xp * f, quaternion.yp * f, quaternion.zp * f, 1);
+ return QQuaternion(quaternion.wp * factor, quaternion.xp * factor, quaternion.yp * factor, quaternion.zp * factor, 1);
}
inline const QQuaternion operator*(const QQuaternion &quaternion, qreal factor)
{
- qrealinner f(factor);
- return QQuaternion(quaternion.wp * f, quaternion.xp * f, quaternion.yp * f, quaternion.zp * f, 1);
+ return QQuaternion(quaternion.wp * factor, quaternion.xp * factor, quaternion.yp * factor, quaternion.zp * factor, 1);
}
inline const QQuaternion operator-(const QQuaternion &quaternion)
@@ -276,8 +271,7 @@ inline const QQuaternion operator-(const QQuaternion &quaternion)
inline const QQuaternion operator/(const QQuaternion &quaternion, qreal divisor)
{
- qrealinner d(divisor);
- return QQuaternion(quaternion.wp / d, quaternion.xp / d, quaternion.yp / d, quaternion.zp / d, 1);
+ return QQuaternion(quaternion.wp / divisor, quaternion.xp / divisor, quaternion.yp / divisor, quaternion.zp / divisor, 1);
}
inline bool qFuzzyCompare(const QQuaternion& q1, const QQuaternion& q2)
diff --git a/src/gui/math3d/qvector2d.cpp b/src/gui/math3d/qvector2d.cpp
index 0426fc5..c3aaa42 100644
--- a/src/gui/math3d/qvector2d.cpp
+++ b/src/gui/math3d/qvector2d.cpp
@@ -42,7 +42,8 @@
#include "qvector2d.h"
#include "qvector3d.h"
#include "qvector4d.h"
-#include "qmath3dutil_p.h"
+#include <QtCore/qdebug.h>
+#include <QtCore/qmath.h>
QT_BEGIN_NAMESPACE
@@ -74,12 +75,6 @@ QT_BEGIN_NAMESPACE
*/
/*!
- \fn QVector2D::QVector2D(int xpos, int ypos)
-
- Constructs a vector with coordinates (\a xpos, \a ypos).
-*/
-
-/*!
\fn QVector2D::QVector2D(const QPoint& point)
Constructs a vector with x and y coordinates from a 2D \a point.
@@ -169,7 +164,7 @@ QVector2D::QVector2D(const QVector4D& vector)
*/
qreal QVector2D::length() const
{
- return qvtsqrt64(qvtmul64(xp, xp) + qvtmul64(yp, yp));
+ return qSqrt(xp * xp + yp * yp);
}
/*!
@@ -180,37 +175,43 @@ qreal QVector2D::length() const
*/
qreal QVector2D::lengthSquared() const
{
- return qvtdot64(qvtmul64(xp, xp) + qvtmul64(yp, yp));
+ return xp * xp + yp * yp;
}
/*!
- Returns the normalized unit vector form of this vector. If this vector
- is not null, the returned vector is guaranteed to be 1.0 in length.
- If this vector is null, then a null vector is returned.
+ Returns the normalized unit vector form of this vector.
+
+ If this vector is null, then a null vector is returned. If the length
+ of the vector is very close to 1, then the vector will be returned as-is.
+ Otherwise the normalized form of the vector of length 1 will be returned.
\sa length(), normalize()
*/
QVector2D QVector2D::normalized() const
{
- qreal len = length();
- if (!qIsNull(len))
- return *this / len;
+ qreal len = lengthSquared();
+ if (qFuzzyIsNull(len - 1.0f))
+ return *this;
+ else if (!qFuzzyIsNull(len))
+ return *this / qSqrt(len);
else
return QVector2D();
}
/*!
Normalizes the currect vector in place. Nothing happens if this
- vector is a null vector.
+ vector is a null vector or the length of the vector is very close to 1.
\sa length(), normalized()
*/
void QVector2D::normalize()
{
- qreal len = length();
- if (qIsNull(len))
+ qreal len = lengthSquared();
+ if (qFuzzyIsNull(len - 1.0f) || qFuzzyIsNull(len))
return;
+ len = qSqrt(len);
+
xp /= len;
yp /= len;
}
@@ -263,7 +264,7 @@ void QVector2D::normalize()
*/
qreal QVector2D::dotProduct(const QVector2D& v1, const QVector2D& v2)
{
- return qvtdot64(qvtmul64(v1.xp, v2.xp) + qvtmul64(v1.yp, v2.yp));
+ return v1.xp * v2.xp + v1.yp * v2.yp;
}
/*!
diff --git a/src/gui/math3d/qvector2d.h b/src/gui/math3d/qvector2d.h
index a72ecc5..b027df4 100644
--- a/src/gui/math3d/qvector2d.h
+++ b/src/gui/math3d/qvector2d.h
@@ -42,7 +42,6 @@
#ifndef QVECTOR2D_H
#define QVECTOR2D_H
-#include <QtGui/qmath3dglobal.h>
#include <QtCore/qpoint.h>
#include <QtCore/qmetatype.h>
@@ -62,7 +61,6 @@ class Q_GUI_EXPORT QVector2D
public:
QVector2D();
QVector2D(qreal xpos, qreal ypos);
- QVector2D(int xpos, int ypos);
explicit QVector2D(const QPoint& point);
explicit QVector2D(const QPointF& point);
#ifndef QT_NO_VECTOR3D
@@ -117,23 +115,20 @@ public:
QPointF toPointF() const;
private:
- qrealinner xp, yp;
+ float xp, yp;
- QVector2D(qrealinner xpos, qrealinner ypos, int dummy);
+ QVector2D(float xpos, float ypos, int dummy);
friend class QVector3D;
friend class QVector4D;
- friend class QVertexArray;
};
inline QVector2D::QVector2D() : xp(0.0f), yp(0.0f) {}
-inline QVector2D::QVector2D(qrealinner xpos, qrealinner ypos, int) : xp(xpos), yp(ypos) {}
+inline QVector2D::QVector2D(float xpos, float ypos, int) : xp(xpos), yp(ypos) {}
inline QVector2D::QVector2D(qreal xpos, qreal ypos) : xp(xpos), yp(ypos) {}
-inline QVector2D::QVector2D(int xpos, int ypos) : xp(xpos), yp(ypos) {}
-
inline QVector2D::QVector2D(const QPoint& point) : xp(point.x()), yp(point.y()) {}
inline QVector2D::QVector2D(const QPointF& point) : xp(point.x()), yp(point.y()) {}
@@ -143,8 +138,8 @@ inline bool QVector2D::isNull() const
return qIsNull(xp) && qIsNull(yp);
}
-inline qreal QVector2D::x() const { return qt_math3d_convert<qreal, qrealinner>(xp); }
-inline qreal QVector2D::y() const { return qt_math3d_convert<qreal, qrealinner>(yp); }
+inline qreal QVector2D::x() const { return qreal(xp); }
+inline qreal QVector2D::y() const { return qreal(yp); }
inline void QVector2D::setX(qreal x) { xp = x; }
inline void QVector2D::setY(qreal y) { yp = y; }
@@ -165,9 +160,8 @@ inline QVector2D &QVector2D::operator-=(const QVector2D &vector)
inline QVector2D &QVector2D::operator*=(qreal factor)
{
- qrealinner f(factor);
- xp *= f;
- yp *= f;
+ xp *= factor;
+ yp *= factor;
return *this;
}
@@ -180,9 +174,8 @@ inline QVector2D &QVector2D::operator*=(const QVector2D &vector)
inline QVector2D &QVector2D::operator/=(qreal divisor)
{
- qrealinner d(divisor);
- xp /= d;
- yp /= d;
+ xp /= divisor;
+ yp /= divisor;
return *this;
}
@@ -208,14 +201,12 @@ inline const QVector2D operator-(const QVector2D &v1, const QVector2D &v2)
inline const QVector2D operator*(qreal factor, const QVector2D &vector)
{
- qrealinner f(factor);
- return QVector2D(vector.xp * f, vector.yp * f, 1);
+ return QVector2D(vector.xp * factor, vector.yp * factor, 1);
}
inline const QVector2D operator*(const QVector2D &vector, qreal factor)
{
- qrealinner f(factor);
- return QVector2D(vector.xp * f, vector.yp * f, 1);
+ return QVector2D(vector.xp * factor, vector.yp * factor, 1);
}
inline const QVector2D operator*(const QVector2D &v1, const QVector2D &v2)
@@ -230,8 +221,7 @@ inline const QVector2D operator-(const QVector2D &vector)
inline const QVector2D operator/(const QVector2D &vector, qreal divisor)
{
- qrealinner d(divisor);
- return QVector2D(vector.xp / d, vector.yp / d, 1);
+ return QVector2D(vector.xp / divisor, vector.yp / divisor, 1);
}
inline bool qFuzzyCompare(const QVector2D& v1, const QVector2D& v2)
@@ -246,8 +236,7 @@ inline QPoint QVector2D::toPoint() const
inline QPointF QVector2D::toPointF() const
{
- return QPointF(qt_math3d_convert<qreal, qrealinner>(xp),
- qt_math3d_convert<qreal, qrealinner>(yp));
+ return QPointF(qreal(xp), qreal(yp));
}
#ifndef QT_NO_DEBUG_STREAM
diff --git a/src/gui/math3d/qvector3d.cpp b/src/gui/math3d/qvector3d.cpp
index 32068ee..c83cd60 100644
--- a/src/gui/math3d/qvector3d.cpp
+++ b/src/gui/math3d/qvector3d.cpp
@@ -42,8 +42,8 @@
#include "qvector3d.h"
#include "qvector2d.h"
#include "qvector4d.h"
-#include "qmath3dutil_p.h"
#include <QtCore/qmath.h>
+#include <QtCore/qdebug.h>
QT_BEGIN_NAMESPACE
@@ -79,12 +79,6 @@ QT_BEGIN_NAMESPACE
*/
/*!
- \fn QVector3D::QVector3D(int xpos, int ypos, int zpos)
-
- Constructs a vector with coordinates (\a xpos, \a ypos, \a zpos).
-*/
-
-/*!
\fn QVector3D::QVector3D(const QPoint& point)
Constructs a vector with x and y coordinates from a 2D \a point, and a
@@ -201,33 +195,39 @@ QVector3D::QVector3D(const QVector4D& vector)
*/
/*!
- Returns the normalized unit vector form of this vector. If this vector
- is not null, the returned vector is guaranteed to be 1.0 in length.
- If this vector is null, then a null vector is returned.
+ Returns the normalized unit vector form of this vector.
+
+ If this vector is null, then a null vector is returned. If the length
+ of the vector is very close to 1, then the vector will be returned as-is.
+ Otherwise the normalized form of the vector of length 1 will be returned.
\sa length(), normalize()
*/
QVector3D QVector3D::normalized() const
{
- qreal len = length();
- if (!qIsNull(len))
- return *this / len;
+ qreal len = lengthSquared();
+ if (qFuzzyIsNull(len - 1.0f))
+ return *this;
+ else if (!qFuzzyIsNull(len))
+ return *this / qSqrt(len);
else
return QVector3D();
}
/*!
Normalizes the currect vector in place. Nothing happens if this
- vector is a null vector.
+ vector is a null vector or the length of the vector is very close to 1.
\sa length(), normalized()
*/
void QVector3D::normalize()
{
- qreal len = length();
- if (qIsNull(len))
+ qreal len = lengthSquared();
+ if (qFuzzyIsNull(len - 1.0f) || qFuzzyIsNull(len))
return;
+ len = qSqrt(len);
+
xp /= len;
yp /= len;
zp /= len;
@@ -287,7 +287,7 @@ void QVector3D::normalize()
*/
qreal QVector3D::dotProduct(const QVector3D& v1, const QVector3D& v2)
{
- return qvtdot64(qvtmul64(v1.xp, v2.xp) + qvtmul64(v1.yp, v2.yp) + qvtmul64(v1.zp, v2.zp));
+ return v1.xp * v2.xp + v1.yp * v2.yp + v1.zp * v2.zp;
}
/*!
@@ -535,7 +535,7 @@ QVector4D QVector3D::toVector4D() const
*/
qreal QVector3D::length() const
{
- return qvtsqrt64(qvtmul64(xp, xp) + qvtmul64(yp, yp) + qvtmul64(zp, zp));
+ return qSqrt(xp * xp + yp * yp + zp * zp);
}
/*!
@@ -546,7 +546,7 @@ qreal QVector3D::length() const
*/
qreal QVector3D::lengthSquared() const
{
- return qvtdot64(qvtmul64(xp, xp) + qvtmul64(yp, yp) + qvtmul64(zp, zp));
+ return xp * xp + yp * yp + zp * zp;
}
#ifndef QT_NO_DEBUG_STREAM
diff --git a/src/gui/math3d/qvector3d.h b/src/gui/math3d/qvector3d.h
index 8f8f3b4..02873f2 100644
--- a/src/gui/math3d/qvector3d.h
+++ b/src/gui/math3d/qvector3d.h
@@ -42,7 +42,6 @@
#ifndef QVECTOR3D_H
#define QVECTOR3D_H
-#include <QtGui/qmath3dglobal.h>
#include <QtCore/qpoint.h>
#include <QtCore/qmetatype.h>
@@ -64,7 +63,6 @@ class Q_GUI_EXPORT QVector3D
public:
QVector3D();
QVector3D(qreal xpos, qreal ypos, qreal zpos);
- QVector3D(int xpos, int ypos, int zpos);
explicit QVector3D(const QPoint& point);
explicit QVector3D(const QPointF& point);
#ifndef QT_NO_VECTOR2D
@@ -130,16 +128,14 @@ public:
QPointF toPointF() const;
private:
- qrealinner xp, yp, zp;
+ float xp, yp, zp;
- QVector3D(qrealinner xpos, qrealinner ypos, qrealinner zpos, int dummy);
+ QVector3D(float xpos, float ypos, float zpos, int dummy);
friend class QVector2D;
friend class QVector4D;
friend class QQuaternion;
friend class QMatrix4x4;
- friend class QVertexArray;
- friend class QGLPainter;
#ifndef QT_NO_MATRIX4X4
friend QVector3D operator*(const QVector3D& vector, const QMatrix4x4& matrix);
friend QVector3D operator*(const QMatrix4x4& matrix, const QVector3D& vector);
@@ -150,9 +146,7 @@ inline QVector3D::QVector3D() : xp(0.0f), yp(0.0f), zp(0.0f) {}
inline QVector3D::QVector3D(qreal xpos, qreal ypos, qreal zpos) : xp(xpos), yp(ypos), zp(zpos) {}
-inline QVector3D::QVector3D(qrealinner xpos, qrealinner ypos, qrealinner zpos, int) : xp(xpos), yp(ypos), zp(zpos) {}
-
-inline QVector3D::QVector3D(int xpos, int ypos, int zpos) : xp(xpos), yp(ypos), zp(zpos) {}
+inline QVector3D::QVector3D(float xpos, float ypos, float zpos, int) : xp(xpos), yp(ypos), zp(zpos) {}
inline QVector3D::QVector3D(const QPoint& point) : xp(point.x()), yp(point.y()), zp(0.0f) {}
@@ -163,9 +157,9 @@ inline bool QVector3D::isNull() const
return qIsNull(xp) && qIsNull(yp) && qIsNull(zp);
}
-inline qreal QVector3D::x() const { return qt_math3d_convert<qreal, qrealinner>(xp); }
-inline qreal QVector3D::y() const { return qt_math3d_convert<qreal, qrealinner>(yp); }
-inline qreal QVector3D::z() const { return qt_math3d_convert<qreal, qrealinner>(zp); }
+inline qreal QVector3D::x() const { return qreal(xp); }
+inline qreal QVector3D::y() const { return qreal(yp); }
+inline qreal QVector3D::z() const { return qreal(zp); }
inline void QVector3D::setX(qreal x) { xp = x; }
inline void QVector3D::setY(qreal y) { yp = y; }
@@ -189,10 +183,9 @@ inline QVector3D &QVector3D::operator-=(const QVector3D &vector)
inline QVector3D &QVector3D::operator*=(qreal factor)
{
- qrealinner f(factor);
- xp *= f;
- yp *= f;
- zp *= f;
+ xp *= factor;
+ yp *= factor;
+ zp *= factor;
return *this;
}
@@ -206,10 +199,9 @@ inline QVector3D &QVector3D::operator*=(const QVector3D& vector)
inline QVector3D &QVector3D::operator/=(qreal divisor)
{
- qrealinner d(divisor);
- xp /= d;
- yp /= d;
- zp /= d;
+ xp /= divisor;
+ yp /= divisor;
+ zp /= divisor;
return *this;
}
@@ -235,14 +227,12 @@ inline const QVector3D operator-(const QVector3D &v1, const QVector3D &v2)
inline const QVector3D operator*(qreal factor, const QVector3D &vector)
{
- qrealinner f(factor);
- return QVector3D(vector.xp * f, vector.yp * f, vector.zp * f, 1);
+ return QVector3D(vector.xp * factor, vector.yp * factor, vector.zp * factor, 1);
}
inline const QVector3D operator*(const QVector3D &vector, qreal factor)
{
- qrealinner f(factor);
- return QVector3D(vector.xp * f, vector.yp * f, vector.zp * f, 1);
+ return QVector3D(vector.xp * factor, vector.yp * factor, vector.zp * factor, 1);
}
inline const QVector3D operator*(const QVector3D &v1, const QVector3D& v2)
@@ -257,8 +247,7 @@ inline const QVector3D operator-(const QVector3D &vector)
inline const QVector3D operator/(const QVector3D &vector, qreal divisor)
{
- qrealinner d(divisor);
- return QVector3D(vector.xp / d, vector.yp / d, vector.zp / d, 1);
+ return QVector3D(vector.xp / divisor, vector.yp / divisor, vector.zp / divisor, 1);
}
inline bool qFuzzyCompare(const QVector3D& v1, const QVector3D& v2)
@@ -275,8 +264,7 @@ inline QPoint QVector3D::toPoint() const
inline QPointF QVector3D::toPointF() const
{
- return QPointF(qt_math3d_convert<qreal, qrealinner>(xp),
- qt_math3d_convert<qreal, qrealinner>(yp));
+ return QPointF(qreal(xp), qreal(yp));
}
#ifndef QT_NO_DEBUG_STREAM
diff --git a/src/gui/math3d/qvector4d.cpp b/src/gui/math3d/qvector4d.cpp
index 4287806..010fa53 100644
--- a/src/gui/math3d/qvector4d.cpp
+++ b/src/gui/math3d/qvector4d.cpp
@@ -42,7 +42,8 @@
#include "qvector4d.h"
#include "qvector3d.h"
#include "qvector2d.h"
-#include "qmath3dutil_p.h"
+#include <QtCore/qdebug.h>
+#include <QtCore/qmath.h>
QT_BEGIN_NAMESPACE
@@ -76,12 +77,6 @@ QT_BEGIN_NAMESPACE
*/
/*!
- \fn QVector4D::QVector4D(int xpos, int ypos, int zpos, int wpos)
-
- Constructs a vector with coordinates (\a xpos, \a ypos, \a zpos, \a wpos).
-*/
-
-/*!
\fn QVector4D::QVector4D(const QPoint& point)
Constructs a vector with x and y coordinates from a 2D \a point, and
@@ -237,8 +232,7 @@ QVector4D::QVector4D(const QVector3D& vector, qreal wpos)
*/
qreal QVector4D::length() const
{
- return qvtsqrt64(qvtmul64(xp, xp) + qvtmul64(yp, yp) +
- qvtmul64(zp, zp) + qvtmul64(wp, wp));
+ return qSqrt(xp * xp + yp * yp + zp * zp + wp * wp);
}
/*!
@@ -249,45 +243,49 @@ qreal QVector4D::length() const
*/
qreal QVector4D::lengthSquared() const
{
- return qvtdot64(qvtmul64(xp, xp) + qvtmul64(yp, yp) +
- qvtmul64(zp, zp) + qvtmul64(wp, wp));
+ return xp * xp + yp * yp + zp * zp + wp * wp;
}
/*!
- Returns the normalized unit vector form of this vector. If this vector
- is not null, the returned vector is guaranteed to be 1.0 in length.
- If this vector is null, then a null vector is returned.
+ Returns the normalized unit vector form of this vector.
+
+ If this vector is null, then a null vector is returned. If the length
+ of the vector is very close to 1, then the vector will be returned as-is.
+ Otherwise the normalized form of the vector of length 1 will be returned.
\sa length(), normalize()
*/
QVector4D QVector4D::normalized() const
{
- qreal len = length();
- if (!qIsNull(len))
- return *this / len;
+ qreal len = lengthSquared();
+ if (qFuzzyIsNull(len - 1.0f))
+ return *this;
+ else if (!qFuzzyIsNull(len))
+ return *this / qSqrt(len);
else
return QVector4D();
}
/*!
Normalizes the currect vector in place. Nothing happens if this
- vector is a null vector.
+ vector is a null vector or the length of the vector is very close to 1.
\sa length(), normalized()
*/
void QVector4D::normalize()
{
- qreal len = length();
- if (qIsNull(len))
+ qreal len = lengthSquared();
+ if (qFuzzyIsNull(len - 1.0f) || qFuzzyIsNull(len))
return;
+ len = qSqrt(len);
+
xp /= len;
yp /= len;
zp /= len;
wp /= len;
}
-
/*!
\fn QVector4D &QVector4D::operator+=(const QVector4D &vector)
@@ -336,8 +334,7 @@ void QVector4D::normalize()
*/
qreal QVector4D::dotProduct(const QVector4D& v1, const QVector4D& v2)
{
- return qvtdot64(qvtmul64(v1.xp, v2.xp) + qvtmul64(v1.yp, v2.yp) +
- qvtmul64(v1.zp, v2.zp) + qvtmul64(v1.wp, v2.wp));
+ return v1.xp * v2.xp + v1.yp * v2.yp + v1.zp * v2.zp + v1.wp * v2.wp;
}
/*!
diff --git a/src/gui/math3d/qvector4d.h b/src/gui/math3d/qvector4d.h
index 4ac6ae8..8e673f3 100644
--- a/src/gui/math3d/qvector4d.h
+++ b/src/gui/math3d/qvector4d.h
@@ -42,7 +42,6 @@
#ifndef QVECTOR4D_H
#define QVECTOR4D_H
-#include <QtGui/qmath3dglobal.h>
#include <QtCore/qpoint.h>
#include <QtCore/qmetatype.h>
@@ -64,7 +63,6 @@ class Q_GUI_EXPORT QVector4D
public:
QVector4D();
QVector4D(qreal xpos, qreal ypos, qreal zpos, qreal wpos);
- QVector4D(int xpos, int ypos, int zpos, int wpos);
explicit QVector4D(const QPoint& point);
explicit QVector4D(const QPointF& point);
#ifndef QT_NO_VECTOR2D
@@ -127,15 +125,14 @@ public:
QPointF toPointF() const;
private:
- qrealinner xp, yp, zp, wp;
+ float xp, yp, zp, wp;
- QVector4D(qrealinner xpos, qrealinner ypos, qrealinner zpos, qrealinner wpos, int dummy);
+ QVector4D(float xpos, float ypos, float zpos, float wpos, int dummy);
friend class QVector2D;
friend class QVector3D;
friend class QQuaternion;
friend class QMatrix4x4;
- friend class QVertexArray;
#ifndef QT_NO_MATRIX4X4
friend QVector4D operator*(const QVector4D& vector, const QMatrix4x4& matrix);
friend QVector4D operator*(const QMatrix4x4& matrix, const QVector4D& vector);
@@ -146,9 +143,7 @@ inline QVector4D::QVector4D() : xp(0.0f), yp(0.0f), zp(0.0f), wp(0.0f) {}
inline QVector4D::QVector4D(qreal xpos, qreal ypos, qreal zpos, qreal wpos) : xp(xpos), yp(ypos), zp(zpos), wp(wpos) {}
-inline QVector4D::QVector4D(qrealinner xpos, qrealinner ypos, qrealinner zpos, qrealinner wpos, int) : xp(xpos), yp(ypos), zp(zpos), wp(wpos) {}
-
-inline QVector4D::QVector4D(int xpos, int ypos, int zpos, int wpos) : xp(xpos), yp(ypos), zp(zpos), wp(wpos) {}
+inline QVector4D::QVector4D(float xpos, float ypos, float zpos, float wpos, int) : xp(xpos), yp(ypos), zp(zpos), wp(wpos) {}
inline QVector4D::QVector4D(const QPoint& point) : xp(point.x()), yp(point.y()), zp(0.0f), wp(0.0f) {}
@@ -159,10 +154,10 @@ inline bool QVector4D::isNull() const
return qIsNull(xp) && qIsNull(yp) && qIsNull(zp) && qIsNull(wp);
}
-inline qreal QVector4D::x() const { return qt_math3d_convert<qreal, qrealinner>(xp); }
-inline qreal QVector4D::y() const { return qt_math3d_convert<qreal, qrealinner>(yp); }
-inline qreal QVector4D::z() const { return qt_math3d_convert<qreal, qrealinner>(zp); }
-inline qreal QVector4D::w() const { return qt_math3d_convert<qreal, qrealinner>(wp); }
+inline qreal QVector4D::x() const { return qreal(xp); }
+inline qreal QVector4D::y() const { return qreal(yp); }
+inline qreal QVector4D::z() const { return qreal(zp); }
+inline qreal QVector4D::w() const { return qreal(wp); }
inline void QVector4D::setX(qreal x) { xp = x; }
inline void QVector4D::setY(qreal y) { yp = y; }
@@ -189,11 +184,10 @@ inline QVector4D &QVector4D::operator-=(const QVector4D &vector)
inline QVector4D &QVector4D::operator*=(qreal factor)
{
- qrealinner f(factor);
- xp *= f;
- yp *= f;
- zp *= f;
- wp *= f;
+ xp *= factor;
+ yp *= factor;
+ zp *= factor;
+ wp *= factor;
return *this;
}
@@ -208,11 +202,10 @@ inline QVector4D &QVector4D::operator*=(const QVector4D &vector)
inline QVector4D &QVector4D::operator/=(qreal divisor)
{
- qrealinner d(divisor);
- xp /= d;
- yp /= d;
- zp /= d;
- wp /= d;
+ xp /= divisor;
+ yp /= divisor;
+ zp /= divisor;
+ wp /= divisor;
return *this;
}
@@ -238,14 +231,12 @@ inline const QVector4D operator-(const QVector4D &v1, const QVector4D &v2)
inline const QVector4D operator*(qreal factor, const QVector4D &vector)
{
- qrealinner f(factor);
- return QVector4D(vector.xp * f, vector.yp * f, vector.zp * f, vector.wp * f, 1);
+ return QVector4D(vector.xp * factor, vector.yp * factor, vector.zp * factor, vector.wp * factor, 1);
}
inline const QVector4D operator*(const QVector4D &vector, qreal factor)
{
- qrealinner f(factor);
- return QVector4D(vector.xp * f, vector.yp * f, vector.zp * f, vector.wp * f, 1);
+ return QVector4D(vector.xp * factor, vector.yp * factor, vector.zp * factor, vector.wp * factor, 1);
}
inline const QVector4D operator*(const QVector4D &v1, const QVector4D& v2)
@@ -260,8 +251,7 @@ inline const QVector4D operator-(const QVector4D &vector)
inline const QVector4D operator/(const QVector4D &vector, qreal divisor)
{
- qrealinner d(divisor);
- return QVector4D(vector.xp / d, vector.yp / d, vector.zp / d, vector.wp / d, 1);
+ return QVector4D(vector.xp / divisor, vector.yp / divisor, vector.zp / divisor, vector.wp / divisor, 1);
}
inline bool qFuzzyCompare(const QVector4D& v1, const QVector4D& v2)
@@ -279,8 +269,7 @@ inline QPoint QVector4D::toPoint() const
inline QPointF QVector4D::toPointF() const
{
- return QPointF(qt_math3d_convert<qreal, qrealinner>(xp),
- qt_math3d_convert<qreal, qrealinner>(yp));
+ return QPointF(qreal(xp), qreal(yp));
}
#ifndef QT_NO_DEBUG_STREAM
diff --git a/src/gui/painting/painting.pri b/src/gui/painting/painting.pri
index 528559c..34d1779 100644
--- a/src/gui/painting/painting.pri
+++ b/src/gui/painting/painting.pri
@@ -103,12 +103,6 @@ win32 {
painting/qprinterinfo_win.cpp \
painting/qregion_win.cpp
!win32-borland:!wince*:LIBS += -lmsimg32
- contains(QT_CONFIG, direct3d) {
- HEADERS += painting/qpaintengine_d3d_p.h
- SOURCES += painting/qpaintengine_d3d.cpp
- RESOURCES += painting/qpaintengine_d3d.qrc
- LIBS += -ldxguid
- }
}
embedded {
@@ -362,8 +356,4 @@ embedded {
SOURCES += painting/qwindowsurface_qws.cpp
}
-win32:contains(QT_CONFIG, direct3d) {
- HEADERS += painting/qwindowsurface_d3d_p.h
- SOURCES += painting/qwindowsurface_d3d.cpp
-}
diff --git a/src/gui/painting/qbackingstore.cpp b/src/gui/painting/qbackingstore.cpp
index fbac811a..341331b 100644
--- a/src/gui/painting/qbackingstore.cpp
+++ b/src/gui/painting/qbackingstore.cpp
@@ -491,7 +491,7 @@ static inline void sendUpdateRequest(QWidget *widget, bool updateImmediately)
if (!widget)
return;
-#if defined(Q_WS_WIN) && !defined(Q_OS_WINCE)
+#if defined(Q_WS_WIN) && !defined(Q_WS_WINCE)
if (QApplicationPrivate::inSizeMove && widget->internalWinId() && !updateImmediately) {
// Tell Windows to send us a paint event if we're in WM_SIZE/WM_MOVE; posted events
// are blocked until the mouse button is released. See task 146849.
@@ -1510,6 +1510,9 @@ void QWidgetPrivate::invalidateBuffer(const QRect &rect)
void QWidgetPrivate::repaint_sys(const QRegion &rgn)
{
+ if (data.in_destructor)
+ return;
+
Q_Q(QWidget);
if (q->testAttribute(Qt::WA_StaticContents)) {
if (!extra)
@@ -1517,13 +1520,20 @@ void QWidgetPrivate::repaint_sys(const QRegion &rgn)
extra->staticContentsSize = data.crect.size();
}
+ QPaintEngine *engine = q->paintEngine();
+ // QGLWidget does not support partial updates if:
+ // 1) The context is double buffered
+ // 2) The context is single buffered and auto-fill background is enabled.
+ const bool noPartialUpdateSupport = (engine && engine->type() == QPaintEngine::OpenGL)
+ && (usesDoubleBufferedGLContext || q->autoFillBackground());
+ QRegion toBePainted(noPartialUpdateSupport ? q->rect() : rgn);
+
#ifdef Q_WS_MAC
// No difference between update() and repaint() on the Mac.
- update_sys(rgn);
+ update_sys(toBePainted);
return;
#endif
- QRegion toBePainted(rgn);
toBePainted &= clipRect();
clipToEffectiveMask(toBePainted);
if (toBePainted.isEmpty())
diff --git a/src/gui/painting/qbezier.cpp b/src/gui/painting/qbezier.cpp
index 8317dd8..7ed521e 100644
--- a/src/gui/painting/qbezier.cpp
+++ b/src/gui/painting/qbezier.cpp
@@ -127,13 +127,13 @@ static inline void flattenBezierWithoutInflections(QBezier &bez,
qreal dy = bez.y2 - bez.y1;
qreal normalized = qSqrt(dx * dx + dy * dy);
- if (qFuzzyCompare(normalized + 1, 1))
+ if (qFuzzyIsNull(normalized))
break;
qreal d = qAbs(dx * (bez.y3 - bez.y2) - dy * (bez.x3 - bez.x2));
qreal t = qSqrt(4. / 3. * normalized * flatness / d);
- if (t > 1 || qFuzzyCompare(t, (qreal)1.))
+ if (t > 1 || qFuzzyIsNull(t - (qreal)1.))
break;
bez.parameterSplitLeft(t, &left);
p->append(bez.pt1());
@@ -144,19 +144,19 @@ static inline void flattenBezierWithoutInflections(QBezier &bez,
static inline int quadraticRoots(qreal a, qreal b, qreal c,
qreal *x1, qreal *x2)
{
- if (qFuzzyCompare(a + 1, 1)) {
- if (qFuzzyCompare(b + 1, 1))
+ if (qFuzzyIsNull(a)) {
+ if (qFuzzyIsNull(b))
return 0;
*x1 = *x2 = (-c / b);
return 1;
} else {
const qreal det = b * b - 4 * a * c;
- if (qFuzzyCompare(det + 1, 1)) {
+ if (qFuzzyIsNull(det)) {
*x1 = *x2 = -b / (2 * a);
return 1;
}
if (det > 0) {
- if (qFuzzyCompare(b + 1, 1)) {
+ if (qFuzzyIsNull(b)) {
*x2 = qSqrt(-c / a);
*x1 = -(*x2);
return 2;
@@ -187,7 +187,7 @@ static inline bool findInflections(qreal a, qreal b, qreal c,
*t1 = r2;
*t2 = r1;
}
- if (!qFuzzyCompare(a + 1, 1))
+ if (!qFuzzyIsNull(a))
*tCups = 0.5 * (-b / a);
else
*tCups = 2;
@@ -243,7 +243,7 @@ void QBezier::addToPolygonMixed(QPolygonF *polygon) const
qreal b = 6 * (ay * cx - ax * cy);
qreal c = 2 * (by * cx - bx * cy);
- if ((qFuzzyCompare(a + 1, 1) && qFuzzyCompare(b + 1, 1)) ||
+ if ((qFuzzyIsNull(a) && qFuzzyIsNull(b)) ||
(b * b - 4 * a *c) < 0) {
QBezier bez(*this);
flattenBezierWithoutInflections(bez, polygon);
@@ -447,7 +447,7 @@ static ShiftResult shift(const QBezier *orig, QBezier *shifted, qreal offset, qr
qreal r = 1.0 + prev_normal.x() * next_normal.x()
+ prev_normal.y() * next_normal.y();
- if (qFuzzyCompare(r + 1, 1)) {
+ if (qFuzzyIsNull(r)) {
points_shifted[i] = points[i] + offset * prev_normal;
} else {
qreal k = offset / r;
@@ -477,12 +477,12 @@ static bool addCircle(const QBezier *b, qreal offset, QBezier *o)
normals[0] = QPointF(b->y2 - b->y1, b->x1 - b->x2);
qreal dist = qSqrt(normals[0].x()*normals[0].x() + normals[0].y()*normals[0].y());
- if (qFuzzyCompare(dist + 1, 1))
+ if (qFuzzyIsNull(dist))
return false;
normals[0] /= dist;
normals[2] = QPointF(b->y4 - b->y3, b->x3 - b->x4);
dist = qSqrt(normals[2].x()*normals[2].x() + normals[2].y()*normals[2].y());
- if (qFuzzyCompare(dist + 1, 1))
+ if (qFuzzyIsNull(dist))
return false;
normals[2] /= dist;
@@ -1022,7 +1022,7 @@ int QBezier::stationaryYPoints(qreal &t0, qreal &t1) const
QList<qreal> result;
- if (qFuzzyCompare(reciprocal + 1, 1)) {
+ if (qFuzzyIsNull(reciprocal)) {
t0 = -b / (2 * a);
return 1;
} else if (reciprocal > 0) {
diff --git a/src/gui/painting/qblendfunctions.cpp b/src/gui/painting/qblendfunctions.cpp
index 6589439..16dd617 100644
--- a/src/gui/painting/qblendfunctions.cpp
+++ b/src/gui/painting/qblendfunctions.cpp
@@ -44,19 +44,6 @@
QT_BEGIN_NAMESPACE
-
-// This ifdef is made with the best of intention. GCC fails to
-// optimzie the code properly so the bytemul approach is the fastest
-// it gets. Both on ARM and on MSVC the code is optimized to be better
-// than the bytemul approach... On the other hand... This code is
-// almost never run on i386 so it may be downright silly to have this
-// piece of code here...
-#if defined (Q_CC_GNU) && (defined (QT_ARCH_I386) || defined (QT_ARCH_X86_64))
-# define QT_BLEND_USE_BYTEMUL
-#endif
-
-// #define QT_DEBUG_DRAW
-
static const qreal aliasedCoordinateDelta = 0.5 - 0.015625;
struct SourceOnlyAlpha
@@ -286,7 +273,7 @@ static void qt_blend_rgb16_on_rgb16(uchar *dst, int dbpl,
int const_alpha)
{
#ifdef QT_DEBUG_DRAW
- printf("qt_blend_argb16_on_rgb16: dst=(%p, %d), src=(%p, %d), dim=(%d, %d) alpha=%d\n",
+ printf("qt_blend_rgb16_on_rgb16: dst=(%p, %d), src=(%p, %d), dim=(%d, %d) alpha=%d\n",
dst, dbpl, src, sbpl, w, h, const_alpha);
#endif
@@ -347,11 +334,6 @@ template <typename T> void qt_blend_argb24_on_rgb16(uchar *destPixels, int dbpl,
if (alpha == 255) {
*dst = spix;
} else if (alpha != 0) {
-#ifdef QT_BLEND_USE_BYTEMUL
- // truncate green channel to avoid overflow
- *dst = (alphaFunc.bytemul(spix) & 0xffdf)
- + (quint16) qrgb565(*dst).byte_mul(qrgb565::ialpha(alpha));
-#else
quint16 dpix = *dst;
quint32 sia = 255 - alpha;
@@ -363,12 +345,11 @@ template <typename T> void qt_blend_argb24_on_rgb16(uchar *destPixels, int dbpl,
quint32 siag = dg * sia;
quint32 siab = db * sia;
- quint32 rr = ((siar + (siar>>8) + (0x80 << 11)) >> 8) & 0xf800;
- quint32 rg = ((siag + (siag>>8) + (0x80 << 5)) >> 8) & 0x07e0;
- quint32 rb = ((siab + (siab>>8) + (0x80 >> 3)) >> 8);
+ quint32 rr = ((siar + (siar>>8) + (0x80 << 8)) >> 8) & 0xf800;
+ quint32 rg = ((siag + (siag>>8) + (0x80 << 3)) >> 8) & 0x07e0;
+ quint32 rb = ((siab + (siab>>8) + (0x80 >> 3)) >> 8) & 0x001f;
*dst = alphaFunc.bytemul(spix) + rr + rg + rb;
-#endif
}
++dst;
@@ -435,113 +416,45 @@ static void qt_blend_argb32_on_rgb16(uchar *destPixels, int dbpl,
}
quint16 *dst = (quint16 *) destPixels;
- int dstExtraStride = dbpl / 2 - w;
-
- const quint32 *src = (const quint32 *) srcPixels;
- int srcExtraStride = sbpl / 4 - w;
+ quint32 *src = (quint32 *) srcPixels;
for (int y=0; y<h; ++y) {
- int length = w;
- const int dstAlign = ((quintptr)dst) & 0x3;
- if (dstAlign) {
- const quint8 alpha = qAlpha(*src);
- if (alpha) {
- quint16 s = convert_argb32_to_rgb16(*src);
- if (alpha < 255)
- s += BYTE_MUL_RGB16(*dst, 255 - alpha);
- *dst = s;
- }
- ++dst;
- ++src;
- --length;
- }
+ for (int x=0; x<w; ++x) {
- const int length32 = length >> 1;
- const int srcAlign = ((quintptr)src) & 0x3;
- if (length32) {
- if (srcAlign) {
- for (int i = 0; i < length32; ++i) {
- quint32 *dest32 = reinterpret_cast<quint32*>(dst);
- const quint8 a1 = qAlpha(src[0]);
- const quint8 a2 = qAlpha(src[1]);
- quint32 s;
-
- if (!a1 && !a2) {
- src += 2;
- dst +=2;
- continue;
- }
-
- s = convert_argb32_to_rgb16(src[0])
- | (convert_argb32_to_rgb16(src[1]) << 16);
-
- if (a1 == a2) {
- if (a1 < 255) {
- const quint8 sa = ((255 - a1)+1) >> 3;
- s += BYTE_MUL_RGB16_32(*dest32, sa);
- }
- } else {
- if (a1 < 255)
- s += BYTE_MUL_RGB16(dst[0], 255 - a1);
- if (a2 < 255)
- s += BYTE_MUL_RGB16(dst[1], 255 - a2) << 16;
- }
-
- *dest32 = s;
- src += 2;
- dst += 2;
- }
- } else {
- for (int i = 0; i < length32; ++i) {
- quint32 *dest32 = reinterpret_cast<quint32*>(dst);
- const quint8 a1 = qAlpha(src[0]);
- const quint8 a2 = qAlpha(src[1]);
- quint32 s;
-
- if (!a1 && !a2) {
- src += 2;
- dst +=2;
- continue;
- }
-
- const quint64 *src64 =
- reinterpret_cast<const quint64*>(src);
- s = qConvertRgb32To16x2(*src64);
-
- if (a1 == a2) {
- if (a1 < 255) {
- const quint8 sa = ((255 - a1)+1) >> 3;
- s += BYTE_MUL_RGB16_32(*dest32, sa);
- }
- } else {
- if (a1 < 255)
- s += BYTE_MUL_RGB16(dst[0], 255 - a1);
- if (a2 < 255)
- s += BYTE_MUL_RGB16(dst[1], 255 - a2) << 16;
- }
-
- *dest32 = s;
- src += 2;
- dst += 2;
- }
- }
- }
- const int tail = length & 0x1;
- if (tail) {
- const quint8 alpha = qAlpha(*src);
- if (alpha) {
- quint16 s = convert_argb32_to_rgb16(*src);
- if (alpha < 255)
- s += BYTE_MUL_RGB16(*dst, 255 - alpha);
- *dst = s;
+ quint32 spix = src[x];
+ quint32 alpha = spix >> 24;
+
+ if (alpha == 255) {
+ dst[x] = convert_argb32_to_rgb16(spix);
+ } else if (alpha != 0) {
+ quint32 dpix = dst[x];
+
+ quint32 sia = 255 - alpha;
+
+ quint32 sr = (spix >> 8) & 0xf800;
+ quint32 sg = (spix >> 5) & 0x07e0;
+ quint32 sb = (spix >> 3) & 0x001f;
+
+ quint32 dr = (dpix & 0x0000f800);
+ quint32 dg = (dpix & 0x000007e0);
+ quint32 db = (dpix & 0x0000001f);
+
+ quint32 siar = dr * sia;
+ quint32 siag = dg * sia;
+ quint32 siab = db * sia;
+
+ quint32 rr = sr + ((siar + (siar>>8) + (0x80 << 8)) >> 8);
+ quint32 rg = sg + ((siag + (siag>>8) + (0x80 << 3)) >> 8);
+ quint32 rb = sb + ((siab + (siab>>8) + (0x80 >> 3)) >> 8);
+
+ dst[x] = (rr & 0xf800)
+ | (rg & 0x07e0)
+ | (rb);
}
- ++dst;
- ++src;
}
- dst += dstExtraStride;
- src += srcExtraStride;
+ dst = (quint16 *) (((uchar *) dst) + dbpl);
+ src = (quint32 *) (((uchar *) src) + sbpl);
}
-
}
@@ -605,11 +518,10 @@ static void qt_blend_argb32_on_argb32(uchar *destPixels, int dbpl,
for (int y=0; y<h; ++y) {
for (int x=0; x<w; ++x) {
uint s = src[x];
- if ((s & 0xff000000) == 0xff000000)
+ if (s >= 0xff000000)
dst[x] = s;
- else {
+ else if (s != 0)
dst[x] = s + BYTE_MUL(dst[x], qAlpha(~s));
- }
}
dst = (quint32 *)(((uchar *) dst) + dbpl);
src = (const quint32 *)(((const uchar *) src) + sbpl);
diff --git a/src/gui/painting/qcolor.cpp b/src/gui/painting/qcolor.cpp
index 5d7d4ab..24d167e 100644
--- a/src/gui/painting/qcolor.cpp
+++ b/src/gui/painting/qcolor.cpp
@@ -1387,7 +1387,7 @@ QColor QColor::toHsv() const
const qreal min = Q_MIN_3(r, g, b);
const qreal delta = max - min;
color.ct.ahsv.value = qRound(max * USHRT_MAX);
- if (qFuzzyCompare(delta + 1, 1)) {
+ if (qFuzzyIsNull(delta)) {
// achromatic case, hue is undefined
color.ct.ahsv.hue = USHRT_MAX;
color.ct.ahsv.saturation = 0;
@@ -1441,7 +1441,7 @@ QColor QColor::toCmyk() const
// cmy -> cmyk
const qreal k = qMin(c, qMin(m, y));
- if (!qFuzzyCompare(k,1)) {
+ if (!qFuzzyIsNull(k - 1)) {
c = (c - k) / (1.0 - k);
m = (m - k) / (1.0 - k);
y = (y - k) / (1.0 - k);
diff --git a/src/gui/painting/qcolor_p.cpp b/src/gui/painting/qcolor_p.cpp
index 5bdbee4..fb6d10c 100644
--- a/src/gui/painting/qcolor_p.cpp
+++ b/src/gui/painting/qcolor_p.cpp
@@ -49,7 +49,7 @@
#include "qrgb.h"
#include "qstringlist.h"
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
#include "qguifunctions_wince.h"
#endif
QT_BEGIN_NAMESPACE
diff --git a/src/gui/painting/qcolormap_win.cpp b/src/gui/painting/qcolormap_win.cpp
index d61b933..9ca2521 100644
--- a/src/gui/painting/qcolormap_win.cpp
+++ b/src/gui/painting/qcolormap_win.cpp
@@ -44,7 +44,7 @@
#include "qvector.h"
#include "qt_windows.h"
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
#include "qguifunctions_wince.h"
#endif
@@ -138,7 +138,11 @@ void QColormap::cleanup()
}
QColormap QColormap::instance(int)
-{ return QColormap(); }
+{
+ Q_ASSERT_X(screenMap, "QColormap",
+ "A QApplication object needs to be constructed before QColormap is used.");
+ return QColormap();
+}
QColormap::QColormap()
: d(screenMap)
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index 789d96a..ec4737c 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -311,7 +311,7 @@ Q_STATIC_TEMPLATE_FUNCTION void QT_FASTCALL destStore(QRasterBuffer *rasterBuffe
const uint *buffer, int length)
{
DST *dest = reinterpret_cast<DST*>(rasterBuffer->scanLine(y)) + x;
- const quint32 *src = reinterpret_cast<const quint32*>(buffer);
+ const quint32p *src = reinterpret_cast<const quint32p*>(buffer);
while (length--)
*dest++ = DST(*src++);
}
@@ -4517,7 +4517,7 @@ void QT_FASTCALL blendUntransformed(int count, const QSpan *spans, void *userDat
static void blend_untransformed_rgb888(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_24)
+#if defined(QT_QWS_DEPTH_24)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_RGB888)
@@ -4530,7 +4530,7 @@ static void blend_untransformed_rgb888(int count, const QSpan *spans,
static void blend_untransformed_argb6666(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -4545,7 +4545,7 @@ static void blend_untransformed_argb6666(int count, const QSpan *spans,
static void blend_untransformed_rgb666(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -4560,7 +4560,7 @@ static void blend_untransformed_rgb666(int count, const QSpan *spans,
static void blend_untransformed_argb8565(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -4575,7 +4575,7 @@ static void blend_untransformed_argb8565(int count, const QSpan *spans,
static void blend_untransformed_rgb565(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -4590,7 +4590,7 @@ static void blend_untransformed_rgb565(int count, const QSpan *spans,
static void blend_untransformed_argb8555(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -4605,7 +4605,7 @@ static void blend_untransformed_argb8555(int count, const QSpan *spans,
static void blend_untransformed_rgb555(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -4620,7 +4620,7 @@ static void blend_untransformed_rgb555(int count, const QSpan *spans,
static void blend_untransformed_argb4444(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -4635,7 +4635,7 @@ static void blend_untransformed_argb4444(int count, const QSpan *spans,
static void blend_untransformed_rgb444(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -4826,7 +4826,7 @@ Q_STATIC_TEMPLATE_FUNCTION void blendTiled(int count, const QSpan *spans, void *
static void blend_tiled_rgb888(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_24)
+#if defined(QT_QWS_DEPTH_24)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_RGB888)
@@ -4838,7 +4838,7 @@ static void blend_tiled_rgb888(int count, const QSpan *spans, void *userData)
static void blend_tiled_argb6666(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -4852,7 +4852,7 @@ static void blend_tiled_argb6666(int count, const QSpan *spans, void *userData)
static void blend_tiled_rgb666(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -4866,7 +4866,7 @@ static void blend_tiled_rgb666(int count, const QSpan *spans, void *userData)
static void blend_tiled_argb8565(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -4880,7 +4880,7 @@ static void blend_tiled_argb8565(int count, const QSpan *spans, void *userData)
static void blend_tiled_rgb565(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -4894,7 +4894,7 @@ static void blend_tiled_rgb565(int count, const QSpan *spans, void *userData)
static void blend_tiled_argb8555(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -4908,7 +4908,7 @@ static void blend_tiled_argb8555(int count, const QSpan *spans, void *userData)
static void blend_tiled_rgb555(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -4922,7 +4922,7 @@ static void blend_tiled_rgb555(int count, const QSpan *spans, void *userData)
static void blend_tiled_argb4444(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -4936,7 +4936,7 @@ static void blend_tiled_argb4444(int count, const QSpan *spans, void *userData)
static void blend_tiled_rgb444(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -5330,7 +5330,7 @@ Q_STATIC_TEMPLATE_FUNCTION void blendTransformedBilinear(int count, const QSpan
static void blend_transformed_bilinear_rgb888(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_24)
+#if defined(QT_QWS_DEPTH_24)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_RGB888)
@@ -5342,7 +5342,7 @@ static void blend_transformed_bilinear_rgb888(int count, const QSpan *spans, voi
static void blend_transformed_bilinear_argb6666(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -5356,7 +5356,7 @@ static void blend_transformed_bilinear_argb6666(int count, const QSpan *spans, v
static void blend_transformed_bilinear_rgb666(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -5370,7 +5370,7 @@ static void blend_transformed_bilinear_rgb666(int count, const QSpan *spans, voi
static void blend_transformed_bilinear_argb8565(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -5385,7 +5385,7 @@ static void blend_transformed_bilinear_argb8565(int count, const QSpan *spans, v
static void blend_transformed_bilinear_rgb565(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_RGB16)
@@ -5399,7 +5399,7 @@ static void blend_transformed_bilinear_rgb565(int count, const QSpan *spans,
static void blend_transformed_bilinear_argb8555(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -5413,7 +5413,7 @@ static void blend_transformed_bilinear_argb8555(int count, const QSpan *spans, v
static void blend_transformed_bilinear_rgb555(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -5427,7 +5427,7 @@ static void blend_transformed_bilinear_rgb555(int count, const QSpan *spans, voi
static void blend_transformed_bilinear_argb4444(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -5441,7 +5441,7 @@ static void blend_transformed_bilinear_argb4444(int count, const QSpan *spans, v
static void blend_transformed_bilinear_rgb444(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -5914,7 +5914,7 @@ Q_STATIC_TEMPLATE_FUNCTION void blendTransformed(int count, const QSpan *spans,
static void blend_transformed_rgb888(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_24)
+#if defined(QT_QWS_DEPTH_24)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_RGB888)
@@ -5927,7 +5927,7 @@ static void blend_transformed_rgb888(int count, const QSpan *spans,
static void blend_transformed_argb6666(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -5942,7 +5942,7 @@ static void blend_transformed_argb6666(int count, const QSpan *spans,
static void blend_transformed_rgb666(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -5957,7 +5957,7 @@ static void blend_transformed_rgb666(int count, const QSpan *spans,
static void blend_transformed_argb8565(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -5972,7 +5972,7 @@ static void blend_transformed_argb8565(int count, const QSpan *spans,
static void blend_transformed_rgb565(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -5987,7 +5987,7 @@ static void blend_transformed_rgb565(int count, const QSpan *spans,
static void blend_transformed_argb8555(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -6002,7 +6002,7 @@ static void blend_transformed_argb8555(int count, const QSpan *spans,
static void blend_transformed_rgb555(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -6017,7 +6017,7 @@ static void blend_transformed_rgb555(int count, const QSpan *spans,
static void blend_transformed_argb4444(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -6032,7 +6032,7 @@ static void blend_transformed_argb4444(int count, const QSpan *spans,
static void blend_transformed_rgb444(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -6327,7 +6327,7 @@ Q_STATIC_TEMPLATE_FUNCTION void blendTransformedTiled(int count, const QSpan *sp
static void blend_transformed_tiled_rgb888(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_24)
+#if defined(QT_QWS_DEPTH_24)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_RGB888)
@@ -6340,7 +6340,7 @@ static void blend_transformed_tiled_rgb888(int count, const QSpan *spans,
static void blend_transformed_tiled_argb6666(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -6355,7 +6355,7 @@ static void blend_transformed_tiled_argb6666(int count, const QSpan *spans,
static void blend_transformed_tiled_rgb666(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -6370,7 +6370,7 @@ static void blend_transformed_tiled_rgb666(int count, const QSpan *spans,
static void blend_transformed_tiled_argb8565(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -6385,7 +6385,7 @@ static void blend_transformed_tiled_argb8565(int count, const QSpan *spans,
static void blend_transformed_tiled_rgb565(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -6400,7 +6400,7 @@ static void blend_transformed_tiled_rgb565(int count, const QSpan *spans,
static void blend_transformed_tiled_argb8555(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -6415,7 +6415,7 @@ static void blend_transformed_tiled_argb8555(int count, const QSpan *spans,
static void blend_transformed_tiled_rgb555(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -6430,7 +6430,7 @@ static void blend_transformed_tiled_rgb555(int count, const QSpan *spans,
static void blend_transformed_tiled_argb4444(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -6445,7 +6445,7 @@ static void blend_transformed_tiled_argb4444(int count, const QSpan *spans,
static void blend_transformed_tiled_rgb444(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -6933,6 +6933,12 @@ static void qt_alphamapblit_quint16(QRasterBuffer *rasterBuffer,
void qt_build_pow_tables() {
qreal smoothing = 1.7;
+#ifdef Q_WS_MAC
+ // decided by testing a few things on an iMac, should probably get this from the
+ // system...
+ smoothing = 2.0;
+#endif
+
#ifdef Q_WS_WIN
int winSmooth;
if (SystemParametersInfo(0x200C /* SPI_GETFONTSMOOTHINGCONTRAST */, 0, &winSmooth, 0))
diff --git a/src/gui/painting/qdrawutil.cpp b/src/gui/painting/qdrawutil.cpp
index 2beeb0e..230d30b 100644
--- a/src/gui/painting/qdrawutil.cpp
+++ b/src/gui/painting/qdrawutil.cpp
@@ -1038,4 +1038,301 @@ void qDrawItem(QPainter *p, Qt::GUIStyle gs,
#endif
+/*!
+ \struct QMargins
+ \since 4.6
+
+ Holds the borders used to split a pixmap into nine segments in order to
+ draw it, similar to \l{http://www.w3.org/TR/css3-background/}
+ {CSS3 border-images}.
+
+ \sa qDrawBorderPixmap, Qt::TileRule, QTileRules
+*/
+
+/*!
+ \struct QTileRules
+ \since 4.6
+
+ Holds the rules used to draw a pixmap or image split into nine segments,
+ similar to \l{http://www.w3.org/TR/css3-background/}{CSS3 border-images}.
+
+ \sa qDrawBorderPixmap, Qt::TileRule, QMargins
+*/
+
+/*!
+ \fn qDrawBorderPixmap(QPainter *painter, const QRect &target, const QMargins &margins, const QPixmap &pixmap)
+ \since 4.6
+
+ Draws the given \a pixmap into the given \a target rectangle, using the
+ given \a painter. The pixmap will be split into nine segments and drawn
+ according to the \a margins structure.
+*/
+
+static inline void qVerticalRepeat(QPainter *painter, const QRect &target, const QPixmap &pixmap, const QRect &source,
+ void (*drawPixmap)(QPainter*, const QRect&, const QPixmap&, const QRect&))
+{
+ const int x = target.x();
+ const int width = target.width();
+ const int height = source.height();
+ const int bottom = target.bottom() - height;
+ int y = target.y();
+ for (; y < bottom; y += height)
+ (*drawPixmap)(painter, QRect(x, y, width, height), pixmap, source);
+ const QRect remaining(source.x(), source.y(), source.width(), target.bottom() - y + 1);
+ (*drawPixmap)(painter, QRect(x, y, width, remaining.height()), pixmap, remaining);
+}
+
+static inline void qHorizontalRepeat(QPainter *painter, const QRect &target, const QPixmap &pixmap, const QRect &source,
+ void (*drawPixmap)(QPainter*, const QRect&, const QPixmap&, const QRect&))
+{
+ const int y = target.y();
+ const int width = source.width();
+ const int height = target.height();
+ const int right = target.right() - width;
+ int x = target.x();
+ for (; x < right; x += width)
+ (*drawPixmap)(painter, QRect(x, y, width, height), pixmap, source);
+ const QRect remaining(source.x(), source.y(), target.right() - x + 1, source.height());
+ (*drawPixmap)(painter, QRect(x, y, remaining.width(), height), pixmap, remaining);
+}
+
+static inline void qVerticalRound(QPainter *painter, const QRect &target, const QPixmap &pixmap, const QRect &source,
+ void (*drawPixmap)(QPainter*, const QRect&, const QPixmap&, const QRect&))
+{
+ // qreal based - slow on non-fpu devices
+ const qreal x = target.x();
+ const qreal width = target.width();
+ const qreal verticalFactor = static_cast<qreal>(target.height()) / static_cast<qreal>(source.height());
+ const qreal verticalIncrement = static_cast<qreal>(target.height()) / static_cast<int>(verticalFactor + 0.5);
+ const qreal bottom = target.bottom();
+ for (qreal y = static_cast<qreal>(target.y()); y < bottom; y += verticalIncrement)
+ (*drawPixmap)(painter, QRectF(x, y, width, verticalIncrement).toRect(), pixmap, source);
+
+}
+
+static inline void qHorizontalRound(QPainter *painter, const QRect &target, const QPixmap &pixmap, const QRect &source,
+ void (*drawPixmap)(QPainter*, const QRect&, const QPixmap&, const QRect&))
+{
+ // qreal based - slow on non-fpu devices
+ const qreal y = target.y();
+ const qreal height = target.height();
+ const qreal horizontalFactor = static_cast<qreal>(target.width()) / static_cast<qreal>(source.width());
+ const qreal horizontalIncrement = static_cast<qreal>(target.width()) / static_cast<int>(horizontalFactor + 0.5);
+ const qreal right = target.right();
+ for (qreal x = target.x(); x < right; x += horizontalIncrement)
+ (*drawPixmap)(painter, QRectF(x, y, horizontalIncrement, height).toRect(), pixmap, source);
+}
+
+static inline void qDrawPixmap(QPainter *painter, const QRect &target, const QPixmap &pixmap, const QRect &source)
+{
+ painter->drawPixmap(target, pixmap, source);
+}
+
+static inline void qDrawVerticallyRepeatedPixmap(QPainter *painter, const QRect &target, const QPixmap &pixmap, const QRect &source)
+{
+ qVerticalRepeat(painter, target, pixmap, source, qDrawPixmap);
+}
+
+static inline void qDrawHorizontallyRepeatedPixmap(QPainter *painter, const QRect &target, const QPixmap &pixmap, const QRect &source)
+{
+ qHorizontalRepeat(painter, target, pixmap, source, qDrawPixmap);
+}
+
+static inline void qDrawVerticallyRoundedPixmap(QPainter *painter, const QRect &target, const QPixmap &pixmap, const QRect &source)
+{
+ qVerticalRound(painter, target, pixmap, source, qDrawPixmap);
+}
+
+static inline void qDrawHorizontallyRoundedPixmap(QPainter *painter, const QRect &target, const QPixmap &pixmap, const QRect &source)
+{
+ qHorizontalRound(painter, target, pixmap, source, qDrawPixmap);
+}
+
+/*!
+ \since 4.6
+
+ Draws the indicated \a sourceRect rectangle from the given \a pixmap into
+ the given \a targetRect rectangle, using the given \a painter. The pixmap
+ will be split into nine segments according to the given \a targetMargins
+ and \a sourceMargins structures. Finally, the pixmap will be drawn
+ according to the given \a rules.
+
+ This function is used to draw a scaled pixmap, similar to
+ \l{http://www.w3.org/TR/css3-background/}{CSS3 border-images}
+
+ \sa Qt::TileRule, QTileRules, QMargins
+*/
+
+void qDrawBorderPixmap(QPainter *painter, const QRect &targetRect, const QMargins &targetMargins, const QPixmap &pixmap,
+ const QRect &sourceRect, const QMargins &sourceMargins, const QTileRules &rules)
+{
+ // source center
+ const int sourceTop = sourceRect.top();
+ const int sourceLeft = sourceRect.left();
+ const int sourceCenterTop = sourceTop + sourceMargins.top;
+ const int sourceCenterLeft = sourceLeft + sourceMargins.left;
+ const int sourceCenterBottom = sourceRect.bottom() - sourceMargins.bottom + 1;
+ const int sourceCenterRight = sourceRect.right() - sourceMargins.right + 1;
+ const int sourceCenterWidth = sourceCenterRight - sourceMargins.left;
+ const int sourceCenterHeight = sourceCenterBottom - sourceMargins.top;
+ // target center
+ const int targetTop = targetRect.top();
+ const int targetLeft = targetRect.left();
+ const int targetCenterTop = targetTop + targetMargins.top;
+ const int targetCenterLeft = targetLeft + targetMargins.left;
+ const int targetCenterBottom = targetRect.bottom() - targetMargins.bottom + 1;
+ const int targetCenterRight = targetRect.right() - targetMargins.right + 1;
+ const int targetCenterWidth = targetCenterRight - targetCenterLeft;
+ const int targetCenterHeight = targetCenterBottom - targetCenterTop;
+
+ // corners
+ if (targetMargins.top > 0 && targetMargins.left > 0 && sourceMargins.top > 0 && sourceMargins.left > 0) { // top left
+ const QRect targetTopLeftRect(targetLeft, targetTop, targetMargins.left, targetMargins.top);
+ const QRect sourceTopLeftRect(sourceLeft, sourceTop, sourceMargins.left, sourceMargins.top);
+ qDrawPixmap(painter, targetTopLeftRect, pixmap, sourceTopLeftRect);
+ }
+ if (targetMargins.top > 0 && targetMargins.right > 0 && sourceMargins.top > 0 && sourceMargins.right > 0) { // top right
+ const QRect targetTopRightRect(targetCenterRight, targetTop, targetMargins.right, targetMargins.top);
+ const QRect sourceTopRightRect(sourceCenterRight, sourceTop, sourceMargins.right, sourceMargins.top);
+ qDrawPixmap(painter, targetTopRightRect, pixmap, sourceTopRightRect);
+ }
+ if (targetMargins.bottom > 0 && targetMargins.left > 0 && sourceMargins.bottom > 0 && sourceMargins.left > 0) { // bottom left
+ const QRect targetBottomLeftRect(targetLeft, targetCenterBottom, targetMargins.left, targetMargins.bottom);
+ const QRect sourceBottomLeftRect(sourceLeft, sourceCenterBottom, sourceMargins.left, sourceMargins.bottom);
+ qDrawPixmap(painter, targetBottomLeftRect, pixmap, sourceBottomLeftRect);
+ }
+ if (targetMargins.bottom > 0 && targetMargins.right > 0 && sourceMargins.bottom > 0 && sourceMargins.right > 0) { // bottom right
+ const QRect targetBottomRightRect(targetCenterRight, targetCenterBottom, targetMargins.right, targetMargins.bottom);
+ const QRect sourceBottomRightRect(sourceCenterRight, sourceCenterBottom, sourceMargins.right, sourceMargins.bottom);
+ qDrawPixmap(painter, targetBottomRightRect, pixmap, sourceBottomRightRect);
+ }
+
+ // horizontal edges
+ switch (rules.horizontal) {
+ case Qt::Stretch:
+ if (targetMargins.top > 0 && sourceMargins.top > 0) { // top
+ const QRect targetTopRect(targetCenterLeft, targetTop, targetCenterWidth, targetMargins.top);
+ const QRect sourceTopRect(sourceCenterLeft, sourceTop, sourceCenterWidth, sourceMargins.top);
+ qDrawPixmap(painter, targetTopRect, pixmap, sourceTopRect);
+ }
+ if (targetMargins.bottom > 0 && sourceMargins.bottom > 0) { // bottom
+ const QRect targetBottomRect(targetCenterLeft, targetCenterBottom, targetCenterWidth, targetMargins.bottom);
+ const QRect sourceBottomRect(sourceCenterLeft, sourceCenterBottom, sourceCenterWidth, sourceMargins.bottom);
+ qDrawPixmap(painter, targetBottomRect, pixmap, sourceBottomRect);
+ }
+ break;
+ case Qt::Repeat:
+ if (targetMargins.top > 0 && sourceMargins.top > 0) { // top
+ const QRect targetTopRect(targetCenterLeft, targetTop, targetCenterWidth, targetMargins.top);
+ const QRect sourceTopRect(sourceCenterLeft, sourceTop, sourceCenterWidth, sourceMargins.top);
+ qDrawHorizontallyRepeatedPixmap(painter, targetTopRect, pixmap, sourceTopRect);
+ }
+ if (targetMargins.bottom > 0 && sourceMargins.bottom > 0) { // bottom
+ const QRect targetBottomRect(targetCenterLeft, targetCenterBottom, targetCenterWidth, targetMargins.bottom);
+ const QRect sourceBottomRect(sourceCenterLeft, sourceCenterBottom, sourceCenterWidth, sourceMargins.bottom);
+ qDrawHorizontallyRepeatedPixmap(painter, targetBottomRect, pixmap, sourceBottomRect);
+ }
+ break;
+ case Qt::Round:
+ if (targetMargins.top > 0 && sourceMargins.top > 0) { // top
+ const QRect targetTopRect(targetCenterLeft, targetTop, targetCenterWidth, targetMargins.top);
+ const QRect sourceTopRect(sourceCenterLeft, sourceTop, sourceCenterWidth, sourceMargins.top);
+ qDrawHorizontallyRoundedPixmap(painter, targetTopRect, pixmap, sourceTopRect);
+ }
+ if (targetMargins.bottom > 0 && sourceMargins.bottom > 0) { // bottom
+ const QRect targetBottomRect(targetCenterLeft, targetCenterBottom, targetCenterWidth, targetMargins.bottom);
+ const QRect sourceBottomRect(sourceCenterLeft, sourceCenterBottom, sourceCenterWidth, sourceMargins.bottom);
+ qDrawHorizontallyRoundedPixmap(painter, targetBottomRect, pixmap, sourceBottomRect);
+ }
+ break;
+ }
+
+ // vertical edges
+ switch (rules.vertical) {
+ case Qt::Stretch:
+ if (targetMargins.left > 0 && sourceMargins.left > 0) { // left
+ const QRect targetLeftRect(targetLeft, targetCenterTop, targetMargins.left, targetCenterHeight);
+ const QRect sourceLeftRect(sourceLeft, sourceCenterTop, sourceMargins.left, sourceCenterHeight);
+ qDrawPixmap(painter, targetLeftRect, pixmap, sourceLeftRect);
+ }
+ if (targetMargins.right > 0 && sourceMargins.right > 0) { // right
+ const QRect targetRightRect(targetCenterRight, targetCenterTop, targetMargins.right, targetCenterHeight);
+ const QRect sourceRightRect(sourceCenterRight, sourceCenterTop, sourceMargins.right, sourceCenterHeight);
+ qDrawPixmap(painter, targetRightRect, pixmap, sourceRightRect);
+ }
+ break;
+ case Qt::Repeat:
+ if (targetMargins.left > 0 && sourceMargins.left > 0) { // left
+ const QRect targetLeftRect(targetLeft, targetCenterTop, targetMargins.left, targetCenterHeight);
+ const QRect sourceLeftRect(sourceLeft, sourceCenterTop, sourceMargins.left, sourceCenterHeight);
+ qDrawVerticallyRepeatedPixmap(painter, targetLeftRect, pixmap, sourceLeftRect);
+ }
+ if (targetMargins.right > 0 && sourceMargins.right > 0) { // right
+ const QRect targetRightRect(targetCenterRight, targetCenterTop, targetMargins.right, targetCenterHeight);
+ const QRect sourceRightRect(sourceCenterRight, sourceCenterTop, sourceMargins.right, sourceCenterHeight);
+ qDrawVerticallyRepeatedPixmap(painter, targetRightRect, pixmap, sourceRightRect);
+ }
+ break;
+ case Qt::Round:
+ if (targetMargins.left > 0 && sourceMargins.left > 0) { // left
+ const QRect targetLeftRect(targetLeft, targetCenterTop, targetMargins.left, targetCenterHeight);
+ const QRect sourceLeftRect(sourceLeft, sourceCenterTop, sourceMargins.left, sourceCenterHeight);
+ qDrawVerticallyRoundedPixmap(painter, targetLeftRect, pixmap, sourceLeftRect);
+ }
+ if (targetMargins.right > 0 && sourceMargins.right > 0) { // right
+ const QRect targetRightRect(targetCenterRight, targetCenterTop, targetMargins.right, targetCenterHeight);
+ const QRect sourceRightRect(sourceCenterRight, sourceCenterTop, sourceMargins.right, sourceCenterHeight);
+ qDrawVerticallyRoundedPixmap(painter, targetRightRect, pixmap, sourceRightRect);
+ }
+ break;
+ }
+
+ // center
+ if (targetCenterWidth > 0 && targetCenterHeight > 0 && sourceCenterWidth > 0 && sourceCenterHeight > 0) {
+ const QRect targetCenterRect(targetCenterLeft, targetCenterTop, targetCenterWidth, targetCenterHeight);
+ const QRect sourceCenterRect(sourceCenterLeft, sourceCenterTop, sourceCenterWidth, sourceCenterHeight);
+ switch (rules.horizontal) {
+ case Qt::Stretch:
+ switch (rules.vertical) {
+ case Qt::Stretch: // stretch stretch
+ qDrawPixmap(painter, targetCenterRect, pixmap, sourceCenterRect);
+ break;
+ case Qt::Repeat: // stretch repeat
+ qVerticalRepeat(painter, targetCenterRect, pixmap, sourceCenterRect, qDrawPixmap);
+ break;
+ case Qt::Round: // stretch round
+ qVerticalRound(painter, targetCenterRect, pixmap, sourceCenterRect, qDrawPixmap);
+ break;
+ }
+ break;
+ case Qt::Repeat:
+ switch (rules.vertical) {
+ case Qt::Stretch: // repeat stretch
+ qHorizontalRepeat(painter, targetCenterRect, pixmap, sourceCenterRect, qDrawPixmap);
+ break;
+ case Qt::Repeat: // repeat repeat
+ qVerticalRepeat(painter, targetCenterRect, pixmap, sourceCenterRect, qDrawHorizontallyRepeatedPixmap);
+ break;
+ case Qt::Round: // repeat round
+ qVerticalRound(painter, targetCenterRect, pixmap, sourceCenterRect, qDrawHorizontallyRepeatedPixmap);
+ break;
+ }
+ break;
+ case Qt::Round:
+ switch (rules.vertical) {
+ case Qt::Stretch: // round stretch
+ qHorizontalRound(painter, targetCenterRect, pixmap, sourceCenterRect, qDrawPixmap);
+ break;
+ case Qt::Repeat: // round repeat
+ qHorizontalRound(painter, targetCenterRect, pixmap, sourceCenterRect, qDrawVerticallyRepeatedPixmap);
+ break;
+ case Qt::Round: // round round
+ qHorizontalRound(painter, targetCenterRect, pixmap, sourceCenterRect, qDrawVerticallyRoundedPixmap);
+ break;
+ }
+ break;
+ }
+ }
+}
+
QT_END_NAMESPACE
diff --git a/src/gui/painting/qdrawutil.h b/src/gui/painting/qdrawutil.h
index 14901f3..38d9ec0 100644
--- a/src/gui/painting/qdrawutil.h
+++ b/src/gui/painting/qdrawutil.h
@@ -44,6 +44,7 @@
#include <QtCore/qnamespace.h>
#include <QtCore/qstring.h> // char*->QString conversion
+#include <QtGui/qpixmap.h>
QT_BEGIN_HEADER
@@ -60,7 +61,6 @@ class QPoint;
class QColor;
class QBrush;
class QRect;
-class QPixmap;
//
// Standard shade drawing
@@ -133,6 +133,42 @@ Q_GUI_EXPORT QT3_SUPPORT void qDrawArrow(QPainter *p, Qt::ArrowType type, Qt::GU
const QPalette &pal, bool enabled);
#endif
+struct Q_GUI_EXPORT QMargins
+{
+ inline QMargins(int margin = 0)
+ : top(margin),
+ left(margin),
+ bottom(margin),
+ right(margin) {}
+ inline QMargins(int topMargin, int leftMargin, int bottomMargin, int rightMargin)
+ : top(topMargin),
+ left(leftMargin),
+ bottom(bottomMargin),
+ right(rightMargin) {}
+ int top;
+ int left;
+ int bottom;
+ int right;
+};
+
+struct Q_GUI_EXPORT QTileRules
+{
+ inline QTileRules(Qt::TileRule horizontalRule, Qt::TileRule verticalRule = Qt::Stretch)
+ : horizontal(horizontalRule), vertical(verticalRule) {}
+ inline QTileRules(Qt::TileRule rule = Qt::Stretch)
+ : horizontal(rule), vertical(rule) {}
+ Qt::TileRule horizontal;
+ Qt::TileRule vertical;
+};
+
+Q_GUI_EXPORT void qDrawBorderPixmap(QPainter *painter, const QRect &targetRect, const QMargins &targetMargins, const QPixmap &pixmap,
+ const QRect &sourceRect, const QMargins &sourceMargins, const QTileRules &rules = QTileRules());
+
+Q_GUI_EXPORT inline void qDrawBorderPixmap(QPainter *painter, const QRect &target, const QMargins &margins, const QPixmap &pixmap)
+{
+ qDrawBorderPixmap(painter, target, margins, pixmap, pixmap.rect(), margins);
+}
+
QT_END_NAMESPACE
QT_END_HEADER
diff --git a/src/gui/painting/qmatrix.h b/src/gui/painting/qmatrix.h
index 1b6bd6d..1e5fbb4 100644
--- a/src/gui/painting/qmatrix.h
+++ b/src/gui/painting/qmatrix.h
@@ -99,7 +99,7 @@ public:
QMatrix &shear(qreal sh, qreal sv);
QMatrix &rotate(qreal a);
- bool isInvertible() const { return !qFuzzyCompare(_m11*_m22 - _m12*_m21 + 1, 1); }
+ bool isInvertible() const { return !qFuzzyIsNull(_m11*_m22 - _m12*_m21); }
qreal det() const { return _m11*_m22 - _m12*_m21; }
QMatrix inverted(bool *invertible = 0) const;
@@ -161,8 +161,8 @@ Q_GUI_EXPORT QPainterPath operator *(const QPainterPath &p, const QMatrix &m);
inline bool QMatrix::isIdentity() const
{
- return qIsFuzzyNull(_m11 - 1) && qIsFuzzyNull(_m22 - 1) && qIsFuzzyNull(_m12)
- && qIsFuzzyNull(_m21) && qIsFuzzyNull(_dx) && qIsFuzzyNull(_dy);
+ return qFuzzyIsNull(_m11 - 1) && qFuzzyIsNull(_m22 - 1) && qFuzzyIsNull(_m12)
+ && qFuzzyIsNull(_m21) && qFuzzyIsNull(_dx) && qFuzzyIsNull(_dy);
}
/*****************************************************************************
diff --git a/src/gui/painting/qmemrotate.cpp b/src/gui/painting/qmemrotate.cpp
index 7ad0e42..4058143 100644
--- a/src/gui/painting/qmemrotate.cpp
+++ b/src/gui/painting/qmemrotate.cpp
@@ -537,6 +537,7 @@ QT_IMPL_MEMROTATE(quint32, quint24)
QT_IMPL_MEMROTATE(quint32, quint18)
QT_IMPL_MEMROTATE(quint32, quint8)
QT_IMPL_MEMROTATE(quint16, quint8)
+QT_IMPL_MEMROTATE(qrgb444, quint8)
QT_IMPL_MEMROTATE(quint8, quint8)
#ifdef QT_QWS_DEPTH_GENERIC
QT_IMPL_MEMROTATE(quint32, qrgb_generic16)
diff --git a/src/gui/painting/qmemrotate_p.h b/src/gui/painting/qmemrotate_p.h
index bd6006b..c1eb93e 100644
--- a/src/gui/painting/qmemrotate_p.h
+++ b/src/gui/painting/qmemrotate_p.h
@@ -90,6 +90,7 @@ QT_DECL_MEMROTATE(quint32, quint24);
QT_DECL_MEMROTATE(quint32, quint18);
QT_DECL_MEMROTATE(quint32, quint8);
QT_DECL_MEMROTATE(quint16, quint8);
+QT_DECL_MEMROTATE(qrgb444, quint8);
QT_DECL_MEMROTATE(quint8, quint8);
#ifdef QT_QWS_DEPTH_GENERIC
QT_DECL_MEMROTATE(quint32, qrgb_generic16);
diff --git a/src/gui/painting/qpaintengine.cpp b/src/gui/painting/qpaintengine.cpp
index ad09060..7de1ec4 100644
--- a/src/gui/painting/qpaintengine.cpp
+++ b/src/gui/painting/qpaintengine.cpp
@@ -949,8 +949,8 @@ void QPaintEngine::setSystemClip(const QRegion &region)
Q_D(QPaintEngine);
d->systemClip = region;
// Be backward compatible and only call d->systemStateChanged()
- // if we currently have a system transform set.
- if (d->hasSystemTransform) {
+ // if we currently have a system transform/viewport set.
+ if (d->hasSystemTransform || d->hasSystemViewport) {
d->transformSystemClip();
d->systemStateChanged();
}
diff --git a/src/gui/painting/qpaintengine_d3d.cpp b/src/gui/painting/qpaintengine_d3d.cpp
deleted file mode 100644
index bb81623..0000000
--- a/src/gui/painting/qpaintengine_d3d.cpp
+++ /dev/null
@@ -1,4576 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
-** Beta Release License Agreement.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
-** package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <qdebug.h>
-#include "qpaintengine_d3d_p.h"
-
-#include "private/qdrawhelper_p.h"
-#include "private/qfont_p.h"
-#include "private/qfontengine_p.h"
-#include "private/qpaintengine_p.h"
-#include "private/qtessellator_p.h"
-#include <private/qbezier_p.h>
-#include <private/qpainter_p.h>
-#include <private/qpixmap_raster_p.h>
-#include <private/qpolygonclipper_p.h>
-#include <qbuffer.h>
-#include <qcache.h>
-#include <qdir.h>
-#include <qfileinfo.h>
-#include <qlibrary.h>
-#include <qlibraryinfo.h>
-#include <qmath.h>
-#include <qpaintdevice.h>
-#include <qpixmapcache.h>
-
-#include <qwidget.h>
-#include <d3d9.h>
-#include <d3dx9.h>
-
-#include <mmintrin.h>
-#include <xmmintrin.h>
-
-QT_BEGIN_NAMESPACE
-
-#ifndef M_PI
- #define M_PI 3.14159265358979323846
-#endif
-
-#define QD3D_MASK_MARGIN 1
-#define QD3D_BATCH_SIZE 256
-
-// for the ClearType detection stuff..
-#ifndef SPI_GETFONTSMOOTHINGTYPE
-#define SPI_GETFONTSMOOTHINGTYPE 0x200A
-#endif
-
-#ifndef FE_FONTSMOOTHINGCLEARTYPE
-#define FE_FONTSMOOTHINGCLEARTYPE 0x0002
-#endif
-
-//#include <performance.h>
-#define PM_INIT
-#define PM_MEASURE(A)
-#define PM_DISPLAY
-
-//debugging
-//#define QT_DEBUG_VERTEXBUFFER_ACCESS
-//#define QT_DEBUG_D3D
-//#define QT_DEBUG_D3D_CALLS
-
-#define QD3D_SET_MARK(output) \
- D3DPERF_SetMarker(0, QString(output).utf16());
-
-#define QT_VERTEX_RESET_LIMIT 24576
-#define QT_VERTEX_BUF_SIZE 32768
-#define QD3DFVF_CSVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX2 | D3DFVF_TEXCOORDSIZE4(0) | D3DFVF_TEXCOORDSIZE4(1))
-
-// this is a different usage of the effect framework than intended,
-// but it's convenient for us to use (See effect file)
-#define PASS_STENCIL_ODDEVEN 0
-#define PASS_STENCIL_WINDING 1
-#define PASS_STENCIL_DRAW 2
-#define PASS_STENCIL_DRAW_DIRECT 3
-#define PASS_STENCIL_CLIP 4
-#define PASS_STENCIL_NOSTENCILCHECK 5
-#define PASS_STENCIL_NOSTENCILCHECK_DIRECT 6
-#define PASS_TEXT 7
-#define PASS_CLEARTYPE_TEXT 8
-#define PASS_ALIASED_LINES 9
-#define PASS_ALIASED_LINES_DIRECT 10
-
-#define PASS_AA_CREATEMASK 0
-#define PASS_AA_DRAW 1
-#define PASS_AA_DRAW_DIRECT 2
-
-#define D3D_STAGE_COUNT 2
-#define D3D_RENDER_STATES 210
-#define D3D_TEXTURE_STATES 33
-#define D3D_SAMPLE_STATES 14
-
-
-typedef HRESULT (APIENTRY *PFND3DXCREATEBUFFER)(DWORD, LPD3DXBUFFER *);
-typedef HRESULT (APIENTRY *PFND3DXCREATEEFFECT)(LPDIRECT3DDEVICE9, LPCVOID, UINT, CONST D3DXMACRO *,
- LPD3DXINCLUDE, DWORD, LPD3DXEFFECTPOOL,
- LPD3DXEFFECT *, LPD3DXBUFFER *);
-typedef D3DXMATRIX *(APIENTRY *PFND3DXMATRIXORTHOOFFCENTERLH)(D3DMATRIX *, FLOAT, FLOAT,
- FLOAT, FLOAT, FLOAT, FLOAT);
-typedef IDirect3D9 *(APIENTRY *PFNDIRECT3DCREATE9)(uint);
-
-static PFNDIRECT3DCREATE9 pDirect3DCreate9 = 0;
-static PFND3DXCREATEBUFFER pD3DXCreateBuffer = 0;
-static PFND3DXCREATEEFFECT pD3DXCreateEffect = 0;
-static PFND3DXMATRIXORTHOOFFCENTERLH pD3DXMatrixOrthoOffCenterLH = 0;
-
-
-class QD3DSurfaceManager : public QObject {
- Q_OBJECT
-
-public:
- enum QD3DSurfaceManagerStatus {
- NoStatus = 0,
- NeedsResetting = 0x01,
- MaxSizeChanged = 0x02
- };
-
- QD3DSurfaceManager();
- ~QD3DSurfaceManager();
-
- void init(LPDIRECT3D9 object);
-
- void setPaintDevice(QPaintDevice *pd);
-
- int status() const;
- void reset();
-
- LPDIRECT3DSURFACE9 renderTarget();
-
- LPDIRECT3DSURFACE9 surface(QPaintDevice *pd);
- LPDIRECT3DSWAPCHAIN9 swapChain(QPaintDevice *pd);
- void releasePaintDevice(QPaintDevice *pd);
-
- LPDIRECT3DDEVICE9 device();
- void cleanup();
-
- QSize maxSize() const;
-
-private:
- struct D3DSwapChain {
- QSize size;
- LPDIRECT3DSWAPCHAIN9 swapchain;
- LPDIRECT3DSURFACE9 surface;
- };
-
- void updateMaxSize();
- void initPresentParameters(D3DPRESENT_PARAMETERS *params);
- D3DSwapChain *createSwapChain(QWidget *w);
-
- QSize m_max_size;
- int m_status;
- QMap<QPaintDevice *, D3DSwapChain *> m_swapchains;
-
- LPDIRECT3DDEVICE9 m_device;
- QPaintDevice *m_pd;
- HWND m_dummy;
- D3DSwapChain *m_current;
-
-private Q_SLOTS:
- void cleanupPaintDevice(QObject *);
-};
-
-struct vertex {
- D3DVECTOR pos;
- DWORD color;
- FLOAT s0, t0, r0, q0;
- FLOAT s1, t1, r1, q1;
-};
-
-struct QD3DMaskPosition {
- int x, y, channel;
-};
-
-
-struct QD3DBatchItem {
- enum QD3DBatchInfo {
- BI_WINDING = 0x0001,
- BI_AA = 0x0002,
- BI_BRECT = 0x0004,
- BI_MASKFULL = 0x0008,
- BI_TEXT = 0x0010,
- BI_MASK = 0x0020,
- BI_CLIP = 0x0040,
- BI_SCISSOR = 0x0080,
-
- BI_PIXMAP = 0x0100,
- BI_IMAGE = 0x0200,
- BI_COMPLEXBRUSH = 0x0400,
-
- BI_CLEARCLIP = 0x0800, // clip nothing (filling the clip mask with 0)
- BI_TRANSFORM = 0x1000,
- BI_MASKSCISSOR = 0x2000,
- BI_FASTLINE = 0x4000,
- BI_COSMETICPEN = 0x8000
- };
-
- int m_info;
-
- int m_count;
- int m_offset;
-
- QD3DMaskPosition m_maskpos;
- qreal m_xoffset;
- qreal m_yoffset;
- qreal m_opacity;
-
- QPixmap m_pixmap;
- QRectF m_brect;
- QBrush m_brush;
-
- IDirect3DTexture9 *m_texture;
-
- qreal m_width;
- qreal m_distance;
-
- QTransform m_matrix;
- QPainter::CompositionMode m_cmode;
-
- QVector<int> m_pointstops;
-};
-
-struct QD3DBatch {
- int m_item_index;
- QD3DBatchItem items[QD3D_BATCH_SIZE];
-};
-
-class QD3DStateManager;
-class QD3DFontCache;
-class QD3DDrawHelper;
-class QD3DGradientCache;
-
-class QDirect3DPaintEnginePrivate : public QPaintEnginePrivate
-{
- Q_DECLARE_PUBLIC(QDirect3DPaintEngine)
-
-public:
- enum RenderTechnique {
- RT_NoTechnique,
- RT_Antialiased,
- RT_Aliased,
- };
-
- QDirect3DPaintEnginePrivate()
- : m_d3d_object(0)
- , m_d3d_device(0)
- , m_txop(QTransform::TxNone)
- , m_effect(0)
- , m_flush_on_end(0)
- { init(); }
-
- ~QDirect3DPaintEnginePrivate();
-
- bool init();
- void initDevice();
-
- inline QD3DBatchItem *nextBatchItem();
-
- QPolygonF brushCoordinates(const QRectF &r, bool stroke, qreal *fp) const;
- void fillAliasedPath(QPainterPath path, const QRectF &brect, const QTransform &txform);
- void fillAntialiasedPath(const QPainterPath &path, const QRectF &brect,
- const QTransform &txform, bool stroke);
- void fillPath(const QPainterPath &path, QRectF brect);
-
- void strokePath(const QPainterPath &path, QRectF brect, bool simple = false);
- QPainterPath strokePathFastPen(const QPainterPath &path);
- void strokeAliasedPath(QPainterPath path, const QRectF &brect, const QTransform &txform);
-
- void flushBatch();
- int flushAntialiased(int offset);
- void flushAliased(QD3DBatchItem *item, int offset);
- void flushText(QD3DBatchItem *item, int offset);
- void flushLines(QD3DBatchItem *item, int offset);
-
- void updateTransform(const QTransform &matrix);
- void updatePen(const QPen &pen);
- void updateBrush(const QBrush &pen);
- void updateClipRegion(const QRegion &clipregion, Qt::ClipOperation op = Qt::ReplaceClip);
- void updateClipPath(const QPainterPath &clipregion, Qt::ClipOperation op = Qt::ReplaceClip);
- void updateFont(const QFont &font);
-
- void setRenderTechnique(RenderTechnique technique);
-
- QPointF transformPoint(const QPointF &p, qreal *w) const;
-
- bool prepareBatch(QD3DBatchItem *item, int offset);
- void prepareItem(QD3DBatchItem *item);
- void cleanupItem(QD3DBatchItem *item);
- void setCompositionMode(QPainter::CompositionMode mode);
-
- void verifyTexture(const QPixmap &pixmap);
-
- bool isFastRect(const QRectF &rect);
-
- void releaseDC();
-
- void cleanup();
- bool testCaps();
-
- QPixmap getPattern(Qt::BrushStyle style) const;
-
- // clipping
- QPainterPath m_sysclip_path;
- QPainterPath m_clip_path;
- QRegion m_sysclip_region;
- QRegion m_clip_region;
-
- qreal m_opacity;
- D3DCOLOR m_opacity_color;
-
- int m_current_state;
-
- ID3DXEffect* m_effect;
-
- RenderTechnique m_current_technique;
-
- QTransform m_matrix;
- qreal m_inv_scale;
-
- QPen m_pen;
- Qt::BrushStyle m_pen_brush_style;
- QTransform m_inv_pen_matrix;
- D3DCOLOR m_pen_color;
- qreal m_pen_width;
-
- QBrush m_brush;
- Qt::BrushStyle m_brush_style;
- QTransform m_inv_brush_matrix;
- D3DCOLOR m_brush_color;
- QTransform m_brush_origin;
-
- uint m_clipping_enabled : 1;
- uint m_has_complex_clipping : 1;
- uint m_cleartype_text: 1;
- uint m_has_pen : 1;
- uint m_has_cosmetic_pen : 1;
- uint m_has_brush : 1;
- uint m_has_fast_pen : 1;
- uint m_has_aa_fast_pen : 1;
- uint m_flush_on_end : 1;
- uint m_supports_d3d : 1;
-
- QTransform::TransformationType m_txop;
-
- QPainter::CompositionMode m_cmode;
-
- QD3DSurfaceManager m_surface_manager;
- QSize m_surface_size;
-
- LPDIRECT3D9 m_d3d_object;
- LPDIRECT3DDEVICE9 m_d3d_device;
- IDirect3DSurface9 *m_current_surface;
- bool m_in_scene;
-
- QD3DGradientCache *m_gradient_cache;
- QD3DDrawHelper *m_draw_helper;
- QD3DBatch m_batch;
- QD3DStateManager *m_statemanager;
-
- HDC m_dc;
- IDirect3DSurface9 *m_dcsurface;
-
- QMap<Qt::BrushStyle, QPixmap> m_patterns;
-};
-
-
-class QD3DStateManager : public ID3DXEffectStateManager {
-public:
- QD3DStateManager(LPDIRECT3DDEVICE9 pDevice, ID3DXEffect *effect);
- void reset();
-
- inline void startStateBlock();
- inline void endStateBlock();
-
- inline void setCosmeticPen(bool enabled);
- inline void setBrushMode(int mode);
- inline void setTexture(LPDIRECT3DBASETEXTURE9 pTexture);
- inline void setTexture(LPDIRECT3DBASETEXTURE9 pTexture, QGradient::Spread spread);
- inline void setTransformation(const QTransform *matrix = 0);
- inline void setProjection(const D3DXMATRIX *pMatrix);
- inline void setMaskChannel(int channel);
- inline void setMaskOffset(qreal x, qreal y);
- inline void setFocalDistance(const qreal &fd);
-
- inline void beginPass(int pass);
- inline void endPass();
-
- STDMETHOD(QueryInterface)(REFIID iid, LPVOID *ppv);
- STDMETHOD_(ULONG, AddRef)();
- STDMETHOD_(ULONG, Release)();
-
- STDMETHOD(SetTransform)(D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX *pMatrix);
- STDMETHOD(SetMaterial)(CONST D3DMATERIAL9 *pMaterial);
- STDMETHOD(SetLight)(DWORD Index, CONST D3DLIGHT9 *pLight);
- STDMETHOD(LightEnable)(DWORD Index, BOOL Enable);
- STDMETHOD(SetRenderState)(D3DRENDERSTATETYPE State, DWORD Value);
- STDMETHOD(SetTexture)(DWORD Stage, LPDIRECT3DBASETEXTURE9 pTexture);
- STDMETHOD(SetTextureStageState)(DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value);
- STDMETHOD(SetSamplerState)(DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value);
- STDMETHOD(SetNPatchMode)(FLOAT NumSegments);
- STDMETHOD(SetFVF)(DWORD FVF);
- STDMETHOD(SetVertexShader)(LPDIRECT3DVERTEXSHADER9 pShader);
- STDMETHOD(SetVertexShaderConstantF)(UINT RegisterIndex, CONST FLOAT *pConstantData, UINT RegisterCount);
- STDMETHOD(SetVertexShaderConstantI)(UINT RegisterIndex, CONST INT *pConstantData, UINT RegisterCount);
- STDMETHOD(SetVertexShaderConstantB)(UINT RegisterIndex, CONST BOOL *pConstantData, UINT RegisterCount);
- STDMETHOD(SetPixelShader)(LPDIRECT3DPIXELSHADER9 pShader);
- STDMETHOD(SetPixelShaderConstantF)(UINT RegisterIndex, CONST FLOAT *pConstantData, UINT RegisterCount);
- STDMETHOD(SetPixelShaderConstantI)(UINT RegisterIndex, CONST INT *pConstantData, UINT RegisterCount);
- STDMETHOD(SetPixelShaderConstantB)(UINT RegisterIndex, CONST BOOL *pConstantData, UINT RegisterCount);
-private:
- LPDIRECT3DVERTEXSHADER9 m_vertexshader;
- LPDIRECT3DPIXELSHADER9 m_pixelshader;
-
- LPDIRECT3DBASETEXTURE9 m_textures[D3D_STAGE_COUNT];
- DWORD m_texturestates[D3D_STAGE_COUNT][D3D_TEXTURE_STATES];
- DWORD m_samplerstates[D3D_STAGE_COUNT][D3D_SAMPLE_STATES];
- DWORD m_renderstate[D3D_RENDER_STATES];
-
- qreal m_radgradfd;
-
- bool m_cosmetic_pen;
- int m_pass;
- int m_maskchannel;
- int m_brushmode;
- LPDIRECT3DBASETEXTURE9 m_texture;
- D3DXMATRIX m_projection;
-
- D3DXMATRIX m_d3dIdentityMatrix;
- bool m_isIdentity;
- QTransform m_transformation;
-
- LPDIRECT3DDEVICE9 m_pDevice;
- ID3DXEffect *m_effect;
-
- LONG m_refs;
- bool m_changed;
- qreal m_xoffset, m_yoffset;
- static int m_mask_channels[4][4];
-};
-
-//
-// font cache stuff
-//
-
-struct QD3DGlyphCoord {
- // stores the offset and size of a glyph texture
- qreal x;
- qreal y;
- qreal width;
- qreal height;
- qreal log_width;
- qreal log_height;
- QFixed x_offset;
- QFixed y_offset;
-};
-
-struct QD3DFontTexture {
- int x_offset; // current glyph offset within the texture
- int y_offset;
- int width;
- int height;
- IDirect3DTexture9 *texture;
-};
-
-typedef QHash<glyph_t, QD3DGlyphCoord*> QD3DGlyphHash;
-typedef QHash<QFontEngine*, QD3DGlyphHash*> QD3DFontGlyphHash;
-typedef QHash<quint64, QD3DFontTexture*> QD3DFontTexHash;
-
-class QD3DGlyphCache : public QObject
-{
- Q_OBJECT
-public:
- QD3DGlyphCache()
- : QObject(0)
- , current_cache(0) {}
- ~QD3DGlyphCache();
- QD3DGlyphCoord *lookup(QFontEngine *, glyph_t);
- void cacheGlyphs(QDirect3DPaintEngine *, const QTextItemInt &, const QVarLengthArray<glyph_t> &,
- bool);
- void cleanCache();
- inline QD3DFontTexture *fontTexture(QFontEngine *engine) {
- return font_textures.constFind(reinterpret_cast<quint64>(engine)).value();
- }
-
-public slots:
- void fontEngineDestroyed(QObject *);
-
-private:
- QImage clearTypeGlyph(QFontEngine *, glyph_t glyph);
- QD3DGlyphHash *current_cache;
- QD3DFontTexHash font_textures;
- QD3DFontGlyphHash font_cache;
-};
-
-QD3DGlyphCache::~QD3DGlyphCache()
-{
-}
-
-QD3DGlyphCoord *QD3DGlyphCache::lookup(QFontEngine *, glyph_t g)
-{
- Q_ASSERT(current_cache != 0);
- QD3DGlyphHash::const_iterator it = current_cache->constFind(g);
- if (it == current_cache->constEnd())
- return 0;
- return it.value();
-}
-
-void QD3DGlyphCache::cleanCache()
-{
- QList<quint64> keys = font_textures.keys();
- for (int i=0; i<keys.size(); ++i)
- font_textures.value(keys.at(i))->texture->Release();
-
- qDeleteAll(font_textures);
- qDeleteAll(font_cache);
- font_textures.clear();
- font_cache.clear();
- current_cache = 0;
-}
-
-void QD3DGlyphCache::fontEngineDestroyed(QObject *object)
-{
-// qDebug() << "=> font engine destroyed: " << object;
- QFontEngine *engine = static_cast<QFontEngine *>(object);
-
- QD3DFontGlyphHash::iterator cache_it = font_cache.find(engine);
- if (cache_it != font_cache.end()) {
- QD3DGlyphHash *cache = font_cache.take(engine);
- delete cache;
- }
-
- quint64 font_key = reinterpret_cast<quint64>(engine);
- QD3DFontTexture *tex = font_textures.take(font_key);
- if (tex) {
- tex->texture->Release();
- delete tex;
- }
-}
-
-QImage QD3DGlyphCache::clearTypeGlyph(QFontEngine *engine, glyph_t glyph)
-{
- glyph_metrics_t gm = engine->boundingBox(glyph);
- int glyph_x = qFloor(gm.x.toReal());
- int glyph_y = qFloor(gm.y.toReal());
- int glyph_width = qCeil((gm.x + gm.width).toReal()) - glyph_x + 2;
- int glyph_height = qCeil((gm.y + gm.height).toReal()) - glyph_y + 2;
-
- if (glyph_width + glyph_x <= 0 || glyph_height <= 0)
- return QImage();
- QImage im(glyph_width + glyph_x, glyph_height, QImage::Format_ARGB32_Premultiplied);
- im.fill(0xff000000); // solid black
- QPainter p(&im);
-
- p.setPen(Qt::white);
- p.setBrush(Qt::NoBrush);
-
- QTextItemInt ti;
- ti.ascent = engine->ascent();
- ti.descent = engine->descent();
- ti.width = glyph_width;
- ti.fontEngine = engine;
-
- QGlyphLayoutArray<1> glyphLayout;
- ti.glyphs = glyphLayout;
- ti.glyphs.glyphs[0] = glyph;
- ti.glyphs.advances_x[0] = glyph_width;
- p.drawTextItem(QPointF(-glyph_x, -glyph_y), ti);
- p.end();
- return im;
-}
-
-#if 0
-static void dump_font_texture(QD3DFontTexture *tex)
-{
- QColor color(Qt::red);
- D3DLOCKED_RECT rect;
- if (FAILED(tex->texture->LockRect(0, &rect, 0, 0))) {
- qDebug() << "debug: unable to lock texture rect.";
- return;
- }
-
-// cleartype version
-// uint *tex_data = (uint *) rect.pBits;
-// QImage im(tex->width, tex->height, QImage::Format_ARGB32);
-// for (int y=0; y<tex->height; ++y) {
-// for (int x=0; x<tex->width; ++x) {
-// im.setPixel(x, y, ((*(tex_data+x+y*tex->width))));
-// }
-// }
- uchar *tex_data = (uchar *) rect.pBits;
- QImage im(rect.Pitch, tex->height, QImage::Format_ARGB32);
- for (int y=0; y<tex->height; ++y) {
- for (int x=0; x<rect.Pitch; ++x) {
- uchar val = ((*(tex_data+x+y*rect.Pitch)));
- im.setPixel(x, y, 0xff000000 | (val << 16) | (val << 8) | val);
- }
- }
- tex->texture->UnlockRect(0);
- static int i= 0;
- im.save(QString("tx%1.png").arg(i++));
-}
-#endif
-
-void QD3DGlyphCache::cacheGlyphs(QDirect3DPaintEngine *engine, const QTextItemInt &ti,
- const QVarLengthArray<glyph_t> &glyphs, bool clearType)
-{
- IDirect3DDevice9 *device = engine->d_func()->m_d3d_device;
- QD3DFontGlyphHash::const_iterator cache_it = font_cache.constFind(ti.fontEngine);
- QD3DGlyphHash *cache = 0;
- if (cache_it == font_cache.constEnd()) {
- cache = new QD3DGlyphHash;
- font_cache.insert(ti.fontEngine, cache);
- connect(ti.fontEngine, SIGNAL(destroyed(QObject *)), SLOT(fontEngineDestroyed(QObject *)));
- } else {
- cache = cache_it.value();
- }
-
- current_cache = cache;
-
- D3DFORMAT tex_format = clearType ? D3DFMT_A8R8G8B8 : D3DFMT_A8;
- quint64 font_key = reinterpret_cast<quint64>(ti.fontEngine);
- QD3DFontTexHash::const_iterator it = font_textures.constFind(font_key);
- QD3DFontTexture *font_tex = 0;
- if (it == font_textures.constEnd()) {
- // alloc a new texture, put it into the cache
- int tex_height = qCeil(ti.ascent.toReal() + ti.descent.toReal()) + 5;
- int tex_width = tex_height * 30; // ###
- IDirect3DTexture9 *tex;
- if (FAILED(device->CreateTexture(tex_width, tex_height, 1, 0,
- tex_format, D3DPOOL_MANAGED, &tex, NULL)))
- {
- qWarning("QD3DGlyphCache::cacheGlyphs(): can't allocate font texture (%dx%d).",
- tex_width, tex_height);
- return;
- } else {
-// qDebug() << "=> new font texture: " << QSize(tex_width,tex_height);
- font_tex = new QD3DFontTexture;
- font_tex->texture = tex;
- font_tex->x_offset = 0;
- font_tex->y_offset = 0;
- font_tex->width = tex_width;
- font_tex->height = tex_height;
- font_textures.insert(font_key, font_tex);
- }
- } else {
- font_tex = it.value();
- // make it current render target..
- }
-
- // cache each glyph
- for (int i=0; i<glyphs.size(); ++i) {
- QD3DGlyphHash::const_iterator it = cache->constFind(glyphs[i]);
- if (it == cache->constEnd()) {
- glyph_metrics_t metrics = ti.fontEngine->boundingBox(glyphs[i]);
- int glyph_width = qCeil(metrics.width.toReal()) + 5;
- int glyph_height = qCeil(ti.ascent.toReal() + ti.descent.toReal()) + 5;
- if (font_tex->x_offset + glyph_width > font_tex->width) {
- // no room on the current line, start new glyph strip
- int strip_height = glyph_height;
- font_tex->x_offset = 0;
- font_tex->y_offset += strip_height;
- if (font_tex->y_offset >= font_tex->height) {
- // if no room in the current texture - realloc a larger texture
- int old_tex_height = font_tex->height;
- font_tex->height += strip_height;
-
- IDirect3DTexture9 *new_tex;
- if (FAILED(device->CreateTexture(font_tex->width, font_tex->height, 1, 0,
- tex_format, D3DPOOL_MANAGED, &new_tex, NULL)))
- {
- qWarning("QD3DGlyphCache(): can't re-allocate font texture.");
- return;
- } else {
-// qDebug() << " -> new glyph strip added:" << QSize(font_tex->width,font_tex->height);
-
- D3DLOCKED_RECT new_rect, old_rect;
- if (FAILED(font_tex->texture->LockRect(0, &old_rect, 0, D3DLOCK_READONLY))) {
- qDebug() << "QD3DGlyphCache: unable to lock texture rect.";
- return;
- }
- if (FAILED(new_tex->LockRect(0, &new_rect, 0, 0))) {
- qDebug() << "QD3DGlyphCache: unable to lock texture rect.";
- return;
- }
- memcpy(new_rect.pBits, old_rect.pBits, new_rect.Pitch * old_tex_height);
- font_tex->texture->UnlockRect(0);
- new_tex->UnlockRect(0);
- engine->d_func()->flushBatch();
- font_tex->texture->Release();
- font_tex->texture = new_tex;
- }
-
- // update the texture coords and the y offset for the existing glyphs in
- // the cache, because of the texture size change
- QD3DGlyphHash::iterator it = cache->begin();
- while (it != cache->end()) {
- it.value()->height = (it.value()->height * old_tex_height) / font_tex->height;
- it.value()->y = (it.value()->y * old_tex_height) / font_tex->height;
- ++it;
- }
- }
- }
- QD3DGlyphCoord *d3d_glyph = new QD3DGlyphCoord;
- d3d_glyph->x = qreal(font_tex->x_offset) / font_tex->width;
- d3d_glyph->y = qreal(font_tex->y_offset) / font_tex->height;
- d3d_glyph->width = qreal(glyph_width) / font_tex->width;
- d3d_glyph->height = qreal(glyph_height) / font_tex->height;
- d3d_glyph->log_width = d3d_glyph->width * font_tex->width;
- d3d_glyph->log_height = d3d_glyph->height * font_tex->height;
- d3d_glyph->x_offset = -metrics.x;
- d3d_glyph->y_offset = metrics.y;
-
- QImage glyph_im;
- if (clearType)
- glyph_im = clearTypeGlyph(ti.fontEngine, glyphs[i]);
- else
- glyph_im = ti.fontEngine->alphaMapForGlyph(glyphs[i]).convertToFormat(QImage::Format_Indexed8);
-
- // write glyph to texture
- D3DLOCKED_RECT rect;
- RECT glyph_rect = { font_tex->x_offset, font_tex->y_offset,
- font_tex->x_offset + glyph_im.width(),
- font_tex->y_offset + glyph_im.height() };
-
-// qDebug() << " > new glyph char added:" << QSize(glyph_im.width(), glyph_im.height());
- if (FAILED(font_tex->texture->LockRect(0, &rect, &glyph_rect, 0))) {
- qDebug() << "QD3DGlyphCache: unable to lock texture rect.";
- return;
- }
-
- // ### unify these loops
- if (clearType) {
- int ppl = rect.Pitch / 4;
- uint *tex_data = (uint *) rect.pBits;
- for (int y=0; y<glyph_im.height(); ++y) {
- uint *s = (uint *) glyph_im.scanLine(y);
- for (int x=0; x<glyph_im.width(); ++x) {
- tex_data[ppl*y + x] = *s;
- ++s;
- }
- }
- } else {
- int ppl = rect.Pitch;
- uchar *tex_data = (uchar *) rect.pBits;
- for (int y=0; y<glyph_im.height(); ++y) {
- uchar *s = (uchar *) glyph_im.scanLine(y);
- for (int x=0; x<glyph_im.width(); ++x) {
- tex_data[ppl*y + x] = *s;
- ++s;
- }
- }
- }
- font_tex->texture->UnlockRect(0);
-
- // debug
-// dump_font_texture(font_tex);
-
- if (font_tex->x_offset + glyph_width > font_tex->width) {
- font_tex->x_offset = 0;
- font_tex->y_offset += glyph_height;
- } else {
- font_tex->x_offset += glyph_width;
- }
-
- cache->insert(glyphs[i], d3d_glyph);
- }
- }
-}
-
-Q_GLOBAL_STATIC(QD3DGlyphCache, qd3d_glyph_cache)
-
-//
-// end font caching stuff
-//
-
-
-//
-// D3D image cache stuff
-//
-
-// ### keep the GL stuff in mind..
-typedef void (*_qt_image_cleanup_hook_64)(qint64);
-extern Q_GUI_EXPORT _qt_image_cleanup_hook_64 qt_image_cleanup_hook_64;
-
-static void qd3d_image_cleanup(qint64 key);
-
-class QD3DImage
-{
-public:
- QD3DImage(IDirect3DDevice9 *device, const QImage &image);
- ~QD3DImage();
-
- IDirect3DTexture9 *texture;
-};
-
-static QList<IDirect3DTexture9 *> qd3d_release_list;
-
-QD3DImage::QD3DImage(IDirect3DDevice9 *device, const QImage &image)
-{
- texture = 0;
- Q_ASSERT(device);
- QImage im = image.convertToFormat(QImage::Format_ARGB32);
- if (FAILED(device->CreateTexture(im.width(), im.height(), 1, 0,
- D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, &texture, 0))) {
- qWarning("QD3DImage(): unable to create Direct3D texture.");
- return;
- }
-// qDebug(" -> created image texture: %p - 0x%08x%08x",texture,uint (image.cacheKey() >> 32),uint (image.cacheKey() & 0xffffffff));
- D3DLOCKED_RECT rect;
- if (FAILED(texture->LockRect(0, &rect, 0, 0))) {
- qDebug() << "QD3DImage: unable to lock texture rect.";
- return;
- }
- DWORD *dst = (DWORD *) rect.pBits;
- DWORD *src = (DWORD *) im.scanLine(0);
-
- Q_ASSERT((rect.Pitch/4) == (im.bytesPerLine()/4));
- memcpy(dst, src, rect.Pitch*im.height());
- texture->UnlockRect(0);
-}
-
-QD3DImage::~QD3DImage()
-{
- if (texture)
- qd3d_release_list.append(texture);
-}
-
-static int qd3d_cache_limit = 64*1024; // cache ~64 MB worth of textures
-typedef QCache<quint64, QD3DImage> QD3DImageCache;
-
-class QD3DImageManager
-{
-public:
- QD3DImageManager() {
- // ### GL does the same!
- qt_image_cleanup_hook_64 = qd3d_image_cleanup;
- cache.setMaxCost(qd3d_cache_limit);
- }
- ~QD3DImageManager() {
-// qDebug() << "unhooking d3d image cache";
- qt_image_cleanup_hook_64 = 0;
- cache.clear();
- }
-
- IDirect3DTexture9 *lookup(IDirect3DDevice9 *device, const QImage &image);
- void remove(quint64 key);
-
-private:
- QD3DImageCache cache;
-};
-
-IDirect3DTexture9 *QD3DImageManager::lookup(IDirect3DDevice9 *device, const QImage &image)
-{
- QD3DImage *tex_image = 0;
-
- tex_image = cache.object(image.cacheKey());
- if (!tex_image) {
- // to avoid cache thrashing we remove images from the cache
- // that have the same serial no as the cached image, since
- // that image is most likely destoyed already, and we got a
- // stale cache entry
- uint serial = (uint) (image.cacheKey() >> 32);
- QList<quint64> keys = cache.keys();
- for (int i=0; i<keys.size(); ++i) {
- if ((uint)(keys.at(i) >> 32) == serial) {
- cache.remove(keys.at(i));
- break;
- }
- }
-// qDebug(" => cached: %d, adding cache image: 0x%08x%08x",cache.size(), uint (image.cacheKey() >> 32),uint (image.cacheKey() & 0xffffffff));
- // add cache entry
- int cost = image.width()*image.height()*4/1024;
- if (cache.totalCost() + cost > cache.maxCost()) {
- // no room for new entries? kick out half the cached images
- int old_max_cost = cache.maxCost();
- cache.setMaxCost(old_max_cost/2);
- cache.setMaxCost(old_max_cost);
- }
- tex_image = new QD3DImage(device, image);
- cache.insert(image.cacheKey(), tex_image, cost);
-// qDebug() << "==> total cache cost: " << cache.totalCost() << cost;
- }
-
- return tex_image->texture;
-}
-
-void QD3DImageManager::remove(quint64 key)
-{
-// QList<quint64> keys = cache.keys();
-// if (keys.contains(key))
-// qDebug() << "entery removed from cache";
- cache.remove(key);
-}
-
-Q_GLOBAL_STATIC(QD3DImageManager, qd3d_image_cache)
-
-static void qd3d_image_cleanup(qint64 key)
-{
-// qDebug() << "qd3d_image_cleanup:";
-// qDebug(" => key: 0x%08x%08x", (uint) (key >> 32), (uint)(key & 0xffffffff));
- qd3d_image_cache()->remove(key);
-}
-
-//
-// end D3D image cache stuff
-//
-
-class QD3DDrawHelper : public QTessellator
-{
-public:
- QD3DDrawHelper(QDirect3DPaintEnginePrivate *pe);
- ~QD3DDrawHelper();
-
- bool needsFlushing() const;
- QD3DMaskPosition allocateMaskPosition(const QRectF &brect, bool *breakbatch);
-
- void setClipPath(const QPainterPath &path, QD3DBatchItem **item);
-
- void queueAntialiasedMask(const QPolygonF &poly, QD3DBatchItem **item, const QRectF &brect);
- QRectF queueAliasedMask(const QPainterPath &path, QD3DBatchItem **item, D3DCOLOR color);
-
- void queueRect(const QRectF &rect, QD3DBatchItem *item, D3DCOLOR color, const QPolygonF &trect);
- void queueRect(const QRectF &rect, QD3DBatchItem *item, D3DCOLOR color);
-
- void queueTextGlyph(const QRectF &rect, const qreal *tex_coords, QD3DBatchItem *item,
- D3DCOLOR color);
-
- void queueAntialiasedLines(const QPainterPath &path, QD3DBatchItem **item, const QRectF &brect);
- void queueAliasedLines(const QLineF *lines, int lineCount, QD3DBatchItem **item);
-
- int drawAntialiasedMask(int offset, int maxoffset);
- void drawAliasedMask(int offset);
- void drawAntialiasedBoundingRect(QD3DBatchItem *item);
- void drawAliasedBoundingRect(QD3DBatchItem *item);
- void drawTextItem(QD3DBatchItem *item);
- void drawAliasedLines(QD3DBatchItem *item);
-
- void setMaskSize(QSize size);
-
- void beforeReset();
- void afterReset();
-
- IDirect3DSurface9 *freeMaskSurface();
-
- inline void lockVertexBuffer();
- inline void unlockVertexBuffer();
-
- inline int index() { return m_index; }
-
-#ifdef QT_DEBUG_VERTEXBUFFER_ACCESS
- enum VertexBufferAccess {
- CLEAR = 0x00,
- READ = 0x01,
- WRITE = 0x02
- };
- int accesscontrol[QT_VERTEX_BUF_SIZE];
-#endif
-
-private:
- void addTrap(const Trapezoid &trap);
- void tessellate(const QPolygonF &poly);
- inline void lineToStencil(qreal x, qreal y);
- inline void curveToStencil(const QPointF &cp1, const QPointF &cp2, const QPointF &ep);
- QRectF pathToVertexArrays(const QPainterPath &path);
- void resetMask();
-
- QDirect3DPaintEnginePrivate *m_pe;
-
- qreal m_xoffset, m_yoffset;
- int m_startindex;
- int m_index;
- int m_height, m_width;
- LPDIRECT3DVERTEXBUFFER9 m_d3dvbuff;
- vertex *m_vbuff;
- QD3DBatchItem *m_item;
- QRectF m_boundingRect;
-
- qreal max_x;
- qreal max_y;
- qreal min_x;
- qreal min_y;
- qreal firstx;
- qreal firsty;
-
- QPointF tess_lastpoint;
- int tess_index;
-
- bool m_locked;
- IDirect3DTexture9 *m_mask;
- IDirect3DSurface9 *m_maskSurface;
- IDirect3DSurface9 *m_depthStencilSurface;
-
- D3DCOLOR m_color;
- bool m_clearmask;
- bool m_isLine;
- bool m_firstPoint;
-
- QD3DMaskPosition m_mask_position;
- int m_mask_offsetX2;
- int m_mask_offsetY2;
-};
-
-QD3DStateManager::QD3DStateManager(LPDIRECT3DDEVICE9 pDevice, ID3DXEffect *effect)
- : m_pDevice(pDevice), m_effect(effect), m_refs(0)
-{
- if (FAILED(D3DXMatrixIdentity(&m_d3dIdentityMatrix))) {
- qWarning("QDirect3DPaintEngine: D3DXMatrixIdentity failed");
- }
- reset();
-}
-
-void QD3DStateManager::reset()
-{
- m_radgradfd = -1;
-
- m_cosmetic_pen = false;
- m_pass = -1;
- m_maskchannel = -1;
- m_brushmode = -1;
- m_texture = 0;
- m_xoffset = INT_MAX;
- m_yoffset = INT_MAX;
-
- m_vertexshader = 0;
- m_pixelshader = 0;
-
- m_isIdentity = true;
- m_transformation = QTransform();
- m_effect->SetMatrix("g_mTransformation", &m_d3dIdentityMatrix);
-
- ZeroMemory(&m_projection, sizeof(D3DMATRIX));
- ZeroMemory(m_textures, sizeof(LPDIRECT3DBASETEXTURE9) * D3D_STAGE_COUNT);
- FillMemory(m_samplerstates, sizeof(DWORD) * D3D_SAMPLE_STATES * D3D_STAGE_COUNT, 0xFFFFFFFE);
- FillMemory(m_texturestates, sizeof(DWORD) * D3D_TEXTURE_STATES * D3D_STAGE_COUNT, 0xFFFFFFFE);
- FillMemory(m_renderstate, sizeof(DWORD) * D3D_RENDER_STATES, 0xFFFFFFFE);
-}
-
-inline void QD3DStateManager::beginPass(int pass)
-{
- if (pass != m_pass) {
- if (m_pass != -1)
- m_effect->EndPass();
- m_effect->BeginPass(pass);
- m_pass = pass;
- }
-}
-
-inline void QD3DStateManager::endPass()
-{
- if (m_pass != -1) {
- m_pass = -1;
- m_effect->EndPass();
- }
-}
-
-inline void QD3DStateManager::startStateBlock() {
- m_changed = false;
-}
-
-inline void QD3DStateManager::setCosmeticPen(bool enabled)
-{
- if (enabled != m_cosmetic_pen) {
- m_effect->SetBool("g_mCosmeticPen", enabled);
- m_cosmetic_pen = enabled;
- m_changed = true;
- }
-}
-
-inline void QD3DStateManager::setBrushMode(int mode)
-{
- if (mode != m_brushmode) {
- m_effect->SetInt("g_mBrushMode", mode);
- m_brushmode = mode;
- m_changed = true;
- }
-}
-
-inline void QD3DStateManager::setTexture(LPDIRECT3DBASETEXTURE9 pTexture)
-{
- SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_BORDER);
- SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_BORDER);
-
- if (pTexture != m_texture) {
- m_texture = pTexture;
- m_effect->SetTexture("g_mTexture", pTexture);
- m_changed = true;
- }
-}
-
-inline void QD3DStateManager::setTexture(LPDIRECT3DBASETEXTURE9 pTexture, QGradient::Spread spread)
-{
- switch(spread) {
- case QGradient::RepeatSpread:
- SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_WRAP);
- SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_WRAP);
- break;
- case QGradient::ReflectSpread:
- SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_MIRROR);
- SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_MIRROR);
- break;
- default:
- SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP);
- SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP);
- break;
- };
-
- if (pTexture != m_texture) {
- m_texture = pTexture;
- m_effect->SetTexture("g_mTexture", pTexture);
- m_changed = true;
- }
-}
-
-inline void QD3DStateManager::setTransformation(const QTransform *matrix)
-{
- if (matrix) {
- if (*matrix != m_transformation) {
- D3DXMATRIX dxmatrix(matrix->m11(), matrix->m12(), 0, matrix->m13(),
- matrix->m21(), matrix->m22(), 0, matrix->m23(),
- 0, 0, 1, 0,
- matrix->dx(), matrix->dy(), 0, 1);
- m_effect->SetMatrix("g_mTransformation", &dxmatrix);
- m_transformation = *matrix;
- m_changed = true;
- m_isIdentity = false;
- }
- } else if (!m_isIdentity) {
- m_effect->SetMatrix("g_mTransformation", &m_d3dIdentityMatrix);
- m_transformation = QTransform();
- m_changed = true;
- m_isIdentity = true;
- }
-}
-
-inline void QD3DStateManager::setProjection(const D3DXMATRIX *pMatrix)
-{
- if (*pMatrix != m_projection) {
- m_effect->SetMatrix("g_mViewProjection", pMatrix);
- m_projection = *pMatrix;
- m_changed = true;
- }
-}
-
-inline void QD3DStateManager::setFocalDistance(const qreal &fd)
-{
- if (fd != m_radgradfd) {
- m_effect->SetFloat("g_mFocalDist", fd);
- m_changed = true;
- m_radgradfd = fd;
- }
-}
-
-inline void QD3DStateManager::setMaskOffset(qreal x, qreal y)
-{
- if (x != m_xoffset || y != m_yoffset) {
- float offset[2] = {x, y};
- m_effect->SetFloatArray("g_mMaskOffset", offset, 2);
- m_xoffset = x;
- m_yoffset = y;
- m_changed = true;
- }
-}
-
-inline void QD3DStateManager::setMaskChannel(int channel)
-{
- if (m_maskchannel != channel) {
- m_effect->SetIntArray("g_mChannel", m_mask_channels[channel], 4);
- m_maskchannel = channel;
- m_changed = true;
- }
-}
-
-inline void QD3DStateManager::endStateBlock()
-{
- if (m_changed) {
- m_effect->CommitChanges();
- m_changed = false;
- }
-}
-
-STDMETHODIMP QD3DStateManager::QueryInterface(REFIID iid, LPVOID *ppv)
-{
- if(iid == IID_IUnknown || iid == IID_ID3DXEffectStateManager)
- {
- *ppv = this;
- ++m_refs;
- return NOERROR;
- }
- *ppv = NULL;
- return ResultFromScode(E_NOINTERFACE);
-}
-
-STDMETHODIMP_(ULONG) QD3DStateManager::AddRef(void)
-{
- return (ULONG)InterlockedIncrement( &m_refs );
-}
-
-
-STDMETHODIMP_(ULONG) QD3DStateManager::Release(void)
-{
- if( 0L == InterlockedDecrement( &m_refs ) ) {
- delete this;
- return 0L;
- }
-
- return m_refs;
-}
-STDMETHODIMP QD3DStateManager::SetTransform(D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX *pMatrix)
-{
- return m_pDevice->SetTransform(State, pMatrix);
-}
-
-STDMETHODIMP QD3DStateManager::SetMaterial(CONST D3DMATERIAL9 *pMaterial)
-{
- return m_pDevice->SetMaterial(pMaterial);
-}
-
-STDMETHODIMP QD3DStateManager::SetLight(DWORD Index, CONST D3DLIGHT9 *pLight)
-{
- return m_pDevice->SetLight(Index, pLight);
-}
-
-STDMETHODIMP QD3DStateManager::LightEnable(DWORD Index, BOOL Enable)
-{
- return m_pDevice->LightEnable(Index, Enable);
-}
-
-STDMETHODIMP QD3DStateManager::SetRenderState(D3DRENDERSTATETYPE State, DWORD Value)
-{
- if (State < D3D_RENDER_STATES) {
- if (m_renderstate[State] == Value)
- return S_OK;
- m_renderstate[State] = Value;
- }
- return m_pDevice->SetRenderState(State, Value);
-}
-
-STDMETHODIMP QD3DStateManager::SetTexture(DWORD Stage, LPDIRECT3DBASETEXTURE9 pTexture)
-{
- if (Stage < D3D_STAGE_COUNT) {
- if (m_textures[Stage] == pTexture)
- return S_OK;
- m_textures[Stage] = pTexture;
- }
- return m_pDevice->SetTexture(Stage, pTexture);
-}
-
-STDMETHODIMP QD3DStateManager::SetTextureStageState(DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value)
-{
- if (Stage < D3D_STAGE_COUNT && Type < D3D_TEXTURE_STATES) {
- if (m_texturestates[Stage][Type] == Value)
- return S_OK;
- m_texturestates[Stage][Type] = Value;
- }
- return m_pDevice->SetTextureStageState(Stage, Type, Value);
-}
-
-STDMETHODIMP QD3DStateManager::SetSamplerState(DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value)
-{
- if (Sampler < D3D_STAGE_COUNT && Type < D3D_SAMPLE_STATES) {
- if (m_samplerstates[Sampler][Type] == Value)
- return S_OK;
- m_samplerstates[Sampler][Type] = Value;
- }
- return m_pDevice->SetSamplerState(Sampler, Type, Value);
-}
-
-STDMETHODIMP QD3DStateManager::SetNPatchMode(FLOAT NumSegments)
-{
- return m_pDevice->SetNPatchMode(NumSegments);
-}
-
-STDMETHODIMP QD3DStateManager::SetFVF(DWORD FVF)
-{
- return m_pDevice->SetFVF(FVF);
-}
-
-STDMETHODIMP QD3DStateManager::SetVertexShader(LPDIRECT3DVERTEXSHADER9 pShader)
-{
- if (m_vertexshader == pShader)
- return S_OK;
- m_vertexshader = pShader;
- return m_pDevice->SetVertexShader(pShader);
-}
-
-STDMETHODIMP QD3DStateManager::SetVertexShaderConstantF(UINT RegisterIndex, CONST FLOAT *pConstantData, UINT RegisterCount)
-{
- return m_pDevice->SetVertexShaderConstantF(RegisterIndex, pConstantData, RegisterCount);
-}
-
-STDMETHODIMP QD3DStateManager::SetVertexShaderConstantI(UINT RegisterIndex, CONST INT *pConstantData, UINT RegisterCount)
-{
- return m_pDevice->SetVertexShaderConstantI(RegisterIndex, pConstantData, RegisterCount);
-}
-
-STDMETHODIMP QD3DStateManager::SetVertexShaderConstantB(UINT RegisterIndex, CONST BOOL *pConstantData, UINT RegisterCount)
-{
- return m_pDevice->SetVertexShaderConstantB(RegisterIndex, pConstantData, RegisterCount);
-}
-
-STDMETHODIMP QD3DStateManager::SetPixelShader(LPDIRECT3DPIXELSHADER9 pShader)
-{
- if (m_pixelshader == pShader)
- return S_OK;
- m_pixelshader = pShader;
- return m_pDevice->SetPixelShader(pShader);
-}
-
-STDMETHODIMP QD3DStateManager::SetPixelShaderConstantF(UINT RegisterIndex, CONST FLOAT *pConstantData, UINT RegisterCount)
-{
- return m_pDevice->SetPixelShaderConstantF(RegisterIndex, pConstantData, RegisterCount);
-}
-
-STDMETHODIMP QD3DStateManager::SetPixelShaderConstantI(UINT RegisterIndex, CONST INT *pConstantData, UINT RegisterCount)
-{
- return m_pDevice->SetPixelShaderConstantI(RegisterIndex, pConstantData, RegisterCount);
-}
-
-STDMETHODIMP QD3DStateManager::SetPixelShaderConstantB(UINT RegisterIndex, CONST BOOL *pConstantData, UINT RegisterCount)
-{
- return m_pDevice->SetPixelShaderConstantB(RegisterIndex, pConstantData, RegisterCount);
-}
-
-#define QD3D_GRADIENT_CACHE_SIZE 60
-#define QD3D_GRADIENT_PALETTE_SIZE 1024
-
-class QD3DGradientCache
-{
- struct CacheInfo
- {
- inline CacheInfo(QGradientStops s, qreal op) :
- stops(s), opacity(op) {}
-
- IDirect3DTexture9 *texture;
- QGradientStops stops;
- qreal opacity;
- };
-
- typedef QMultiHash<quint64, CacheInfo> QD3DGradientColorTableHash;
-
-public:
- QD3DGradientCache(LPDIRECT3DDEVICE9 device);
- ~QD3DGradientCache();
-
- inline IDirect3DTexture9 *getBuffer(const QGradientStops &stops, qreal opacity);
-
-protected:
- inline void generateGradientColorTable(const QGradientStops& s,
- uint *colorTable,
- int size, qreal opacity) const;
- IDirect3DTexture9 *addCacheElement(quint64 hash_val, const QGradientStops &stops, qreal opacity);
- void cleanCache();
-
- QD3DGradientColorTableHash cache;
- LPDIRECT3DDEVICE9 m_device;
-};
-
-QD3DGradientCache::QD3DGradientCache(LPDIRECT3DDEVICE9 device)
- : m_device(device)
-{
-
-}
-
-QD3DGradientCache::~QD3DGradientCache()
-{
- cleanCache();
-}
-
-inline IDirect3DTexture9 *QD3DGradientCache::getBuffer(const QGradientStops &stops, qreal opacity)
-{
- quint64 hash_val = 0;
-
- for (int i = 0; i < stops.size() && i <= 2; i++)
- hash_val += stops[i].second.rgba();
-
- QD3DGradientColorTableHash::const_iterator it = cache.constFind(hash_val);
-
- if (it == cache.constEnd())
- return addCacheElement(hash_val, stops, opacity);
- else {
- do {
- const CacheInfo &cache_info = it.value();
- if (cache_info.stops == stops && cache_info.opacity == opacity) {
- return cache_info.texture;
- }
- ++it;
- } while (it != cache.constEnd() && it.key() == hash_val);
- // an exact match for these stops and opacity was not found, create new cache
- return addCacheElement(hash_val, stops, opacity);
- }
-}
-
-void QD3DGradientCache::generateGradientColorTable(const QGradientStops& s, uint *colorTable, int size, qreal opacity) const
-{
- int pos = 0;
- qreal fpos = 0.0;
- qreal incr = 1.0 / qreal(size);
- QVector<uint> colors(s.size());
-
- for (int i = 0; i < s.size(); ++i)
- colors[i] = s[i].second.rgba();
-
- uint alpha = qRound(opacity * 255);
- while (fpos < s.first().first) {
- colorTable[pos] = ARGB_COMBINE_ALPHA(colors[0], alpha);
- pos++;
- fpos += incr;
- }
-
- for (int i = 0; i < s.size() - 1; ++i) {
- qreal delta = 1/(s[i+1].first - s[i].first);
- while (fpos < s[i+1].first && pos < size) {
- int dist = int(256 * ((fpos - s[i].first) * delta));
- int idist = 256 - dist;
- uint current_color = ARGB_COMBINE_ALPHA(colors[i], alpha);
- uint next_color = ARGB_COMBINE_ALPHA(colors[i+1], alpha);
-#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
- colorTable[pos] = INTERPOLATE_PIXEL_256(current_color, idist, next_color, dist);
-#else
- uint c = INTERPOLATE_PIXEL_256(current_color, idist, next_color, dist);
- colorTable[pos] = ( (c << 24) & 0xff000000)
- | ((c >> 24) & 0x000000ff)
- | ((c << 8) & 0x00ff0000)
- | ((c >> 8) & 0x0000ff00);
-#endif // Q_BYTE_ORDER
- ++pos;
- fpos += incr;
- }
- }
- for (;pos < size; ++pos)
- colorTable[pos] = colors[s.size() - 1];
-}
-
-IDirect3DTexture9 *QD3DGradientCache::addCacheElement(quint64 hash_val, const QGradientStops &stops, qreal opacity)
-{
- if (cache.size() == QD3D_GRADIENT_CACHE_SIZE) {
- int elem_to_remove = qrand() % QD3D_GRADIENT_CACHE_SIZE;
- uint key = cache.keys()[elem_to_remove];
-
- // need to call release on each removed cache entry:
- QD3DGradientColorTableHash::const_iterator it = cache.constFind(key);
- do {
- it.value().texture->Release();
- } while (++it != cache.constEnd() && it.key() == key);
-
- cache.remove(key); // may remove more than 1, but OK
- }
-
- CacheInfo cache_entry(stops, opacity);
- uint buffer[QD3D_GRADIENT_PALETTE_SIZE];
- generateGradientColorTable(stops, buffer, QD3D_GRADIENT_PALETTE_SIZE, opacity);
-
- if (FAILED(m_device->CreateTexture(QD3D_GRADIENT_PALETTE_SIZE, 1, 1, 0,
- D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, &cache_entry.texture, 0))) {
- qWarning("QD3DGradientCache::addCacheElement(): unable to create Direct3D texture.");
- return 0;
- }
-
- D3DLOCKED_RECT rect;
- if (FAILED(cache_entry.texture->LockRect(0, &rect, 0, 0))) {
- qDebug() << "QD3DGradientCache::addCacheElement(): unable to lock texture rect.";
- return 0;
- }
- memcpy(rect.pBits, buffer, rect.Pitch);
- cache_entry.texture->UnlockRect(0);
-
- return cache.insert(hash_val, cache_entry).value().texture;
-}
-
-void QD3DGradientCache::cleanCache()
-{
- QD3DGradientColorTableHash::const_iterator it = cache.constBegin();
- for (; it != cache.constEnd(); ++it) {
- const CacheInfo &cache_info = it.value();
- cache_info.texture->Release();
- }
- cache.clear();
-}
-
-QD3DSurfaceManager::QD3DSurfaceManager() :
- m_status(NoStatus), m_dummy(0), m_device(0), m_pd(0), m_current(0)
-{
-
-}
-
-QD3DSurfaceManager::~QD3DSurfaceManager()
-{
-}
-
-void QD3DSurfaceManager::setPaintDevice(QPaintDevice *pd)
-{
- m_status = NoStatus;
- m_pd = pd;
- m_current = 0;
-
- if (m_device->TestCooperativeLevel() != D3D_OK) {
- m_status = NeedsResetting;
- return;
- }
-
- m_current = m_swapchains.value(pd, 0);
- QWidget *w = static_cast<QWidget*>(pd);
-
- if (m_current) {
- if (m_current->size != w->size()) {
- m_swapchains.remove(pd);
- m_current->surface->Release();
- m_current->swapchain->Release();
- delete m_current;
- m_current = 0;
- }
- }
-
- if (!m_current) {
- m_current = createSwapChain(w);
- updateMaxSize();
- }
-}
-
-int QD3DSurfaceManager::status() const
-{
- return m_status;
-}
-
-void QD3DSurfaceManager::reset()
-{
- QList<QPaintDevice *> pds = m_swapchains.keys();
-
- QMap<QPaintDevice *, D3DSwapChain *>::const_iterator i = m_swapchains.constBegin();
- while (i != m_swapchains.constEnd()) {
- i.value()->surface->Release();
- i.value()->swapchain->Release();
- ++i;
- }
- qDeleteAll(m_swapchains.values());
- m_swapchains.clear();
-
- D3DPRESENT_PARAMETERS params;
- initPresentParameters(&params);
- params.hDeviceWindow = m_dummy;
-
- HRESULT res = m_device->Reset(&params);
- if (FAILED(res)) {
- switch (res) {
- case D3DERR_DEVICELOST:
- qWarning("QDirect3DPaintEngine: Reset failed (D3DERR_DEVICELOST)");
- break;
- case D3DERR_DRIVERINTERNALERROR:
- qWarning("QDirect3DPaintEngine: Reset failed (D3DERR_DRIVERINTERNALERROR)");
- break;
- case D3DERR_OUTOFVIDEOMEMORY:
- qWarning("QDirect3DPaintEngine: Reset failed (D3DERR_OUTOFVIDEOMEMORY)");
- break;
- default:
- qWarning("QDirect3DPaintEngine: Reset failed");
- };
- }
-
- for (int i=0; i<pds.count(); ++i) {
- QWidget *w = static_cast<QWidget*>(pds.at(i));
- createSwapChain(w);
- }
-
- // reset the mask as well
- m_status = MaxSizeChanged;
-
- setPaintDevice(m_pd);
- updateMaxSize();
-}
-
-LPDIRECT3DSURFACE9 QD3DSurfaceManager::renderTarget()
-{
- return m_current ? m_current->surface : 0;
-}
-
-LPDIRECT3DSURFACE9 QD3DSurfaceManager::surface(QPaintDevice *pd)
-{
- D3DSwapChain *swapchain = m_swapchains.value(pd, 0);
- return swapchain ? swapchain->surface : 0;
-}
-
-LPDIRECT3DSWAPCHAIN9 QD3DSurfaceManager::swapChain(QPaintDevice *pd)
-{
- D3DSwapChain *swapchain = m_swapchains.value(pd, 0);
- return swapchain ? swapchain->swapchain : 0;
-}
-
-void QD3DSurfaceManager::releasePaintDevice(QPaintDevice *pd)
-{
- D3DSwapChain *swapchain = m_swapchains.take(pd);
-
- if (swapchain) {
- swapchain->surface->Release();
- swapchain->swapchain->Release();
- delete swapchain;
- if (swapchain == m_current)
- m_current = 0;
- }
-}
-
-LPDIRECT3DDEVICE9 QD3DSurfaceManager::device()
-{
- return m_device;
-}
-
-void QD3DSurfaceManager::cleanup()
-{
- QPixmapCache::clear();
- qd3d_glyph_cache()->cleanCache();
-
- // release doomed textures
- for (int k=0; k<qd3d_release_list.size(); ++k)
- qd3d_release_list.at(k)->Release();
- qd3d_release_list.clear();
-
- QMap<QPaintDevice *, D3DSwapChain *>::const_iterator i = m_swapchains.constBegin();
- while (i != m_swapchains.constEnd()) {
- i.value()->surface->Release();
- i.value()->swapchain->Release();
- ++i;
- }
- qDeleteAll(m_swapchains.values());
-
- if (m_device)
- m_device->Release();
-
- DestroyWindow(m_dummy);
- QString cname(QLatin1String("qt_d3d_dummy"));
- QT_WA({
- UnregisterClass((TCHAR*)cname.utf16(), (HINSTANCE)qWinAppInst());
- } , {
- UnregisterClassA(cname.toLatin1(), (HINSTANCE)qWinAppInst());
- });
-}
-
-QSize QD3DSurfaceManager::maxSize() const
-{
- return m_max_size;
-}
-
-extern "C" {
- LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
-};
-
-void QD3DSurfaceManager::init(LPDIRECT3D9 object)
-{
- QString cname(QLatin1String("qt_d3d_dummy"));
- uint style = CS_DBLCLKS | CS_SAVEBITS;
- ATOM atom;
- QT_WA({
- WNDCLASS wc;
- wc.style = style;
- wc.lpfnWndProc = (WNDPROC)QtWndProc;
- wc.cbClsExtra = 0;
- wc.cbWndExtra = 0;
- wc.hInstance = (HINSTANCE)qWinAppInst();
- wc.hIcon = 0;
- wc.hCursor = 0;
- wc.hbrBackground = 0;
- wc.lpszMenuName = 0;
- wc.lpszClassName = (TCHAR*)cname.utf16();
- atom = RegisterClass(&wc);
- } , {
- WNDCLASSA wc;
- wc.style = style;
- wc.lpfnWndProc = (WNDPROC)QtWndProc;
- wc.cbClsExtra = 0;
- wc.cbWndExtra = 0;
- wc.hInstance = (HINSTANCE)qWinAppInst();
- wc.hIcon = 0;
- wc.hCursor = 0;
- wc.hbrBackground = 0;
- wc.lpszMenuName = 0;
- QByteArray tempArray = cname.toLatin1();
- wc.lpszClassName = tempArray;
- atom = RegisterClassA(&wc);
- });
-
- QT_WA({
- const TCHAR *className = (TCHAR*)cname.utf16();
- m_dummy = CreateWindow(className, className, 0,
- 0, 0, 1, 1,
- 0, 0, qWinAppInst(), 0);
- } , {
- m_dummy = CreateWindowA(cname.toLatin1(), cname.toLatin1(), 0,
- 0, 0, 1, 1,
- 0, 0, qWinAppInst(), 0);
- });
-
- D3DPRESENT_PARAMETERS params;
- initPresentParameters(&params);
- params.hDeviceWindow = m_dummy;
-
- HRESULT res = object->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, 0,
- D3DCREATE_PUREDEVICE|D3DCREATE_HARDWARE_VERTEXPROCESSING|D3DCREATE_NOWINDOWCHANGES|D3DCREATE_FPU_PRESERVE,
- &params, &m_device);
-
- if (FAILED(res) || m_device == 0)
- qWarning("QDirect3DPaintEngine: failed to create Direct3D device (error=0x%x).", res);
-}
-
-void QD3DSurfaceManager::updateMaxSize()
-{
- int w = 0, h = 0;
- QMap<QPaintDevice *, D3DSwapChain *>::const_iterator i = m_swapchains.constBegin();
- while (i != m_swapchains.constEnd()) {
-
- int nw = i.key()->width();
- if (nw > w)
- w = nw;
-
- int nh = i.key()->height();
- if (nh > h)
- h = nh;
-
- ++i;
- }
-
- QSize newsize = QSize(w, h);
- if (newsize != m_max_size) {
- m_status |= MaxSizeChanged;
- m_max_size = newsize;
- }
-}
-
-void QD3DSurfaceManager::initPresentParameters(D3DPRESENT_PARAMETERS *params)
-{
- ZeroMemory(params, sizeof(D3DPRESENT_PARAMETERS));
- params->Windowed = true;
- params->SwapEffect = D3DSWAPEFFECT_COPY;
- params->BackBufferFormat = D3DFMT_UNKNOWN;
- params->PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
- params->Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
-}
-
-QD3DSurfaceManager::D3DSwapChain *QD3DSurfaceManager::createSwapChain(QWidget *w)
-{
- D3DPRESENT_PARAMETERS params;
- initPresentParameters(&params);
- params.hDeviceWindow = w->winId();
- D3DSwapChain *swapchain = new D3DSwapChain();
- swapchain->size = w->size();
- if (FAILED(m_device->CreateAdditionalSwapChain(&params, &swapchain->swapchain)))
- qWarning("QDirect3DPaintEngine: CreateAdditionalSwapChain failed");
- if (FAILED(swapchain->swapchain->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &swapchain->surface)))
- qWarning("QDirect3DPaintEngine: GetBackBuffer failed");
- m_swapchains.insert(w, swapchain);
- connect(w, SIGNAL(destroyed(QObject *)), SLOT(cleanupPaintDevice(QObject *)));
-
- // init with background color
- QColor bg = w->palette().color(QPalette::Background);
- m_device->ColorFill(swapchain->surface, 0, D3DCOLOR_ARGB(bg.alpha(), bg.red(),bg.green(),bg.blue()));
-
- return swapchain;
-}
-
-void QD3DSurfaceManager::cleanupPaintDevice(QObject *object)
-{
- QWidget *w = static_cast<QWidget *>(object);
- releasePaintDevice(w);
-}
-
-int QD3DStateManager::m_mask_channels[4][4] =
- {{1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1}};
-
-QD3DDrawHelper::QD3DDrawHelper(QDirect3DPaintEnginePrivate *pe)
- : m_pe(pe), m_d3dvbuff(0), m_maskSurface(0), m_depthStencilSurface(0),
- m_locked(false), m_mask(0), m_startindex(0), m_index(0), m_vbuff(0), m_clearmask(true),
- m_isLine(false), m_firstPoint(true)
-{
- resetMask();
-#ifdef QT_DEBUG_VERTEXBUFFER_ACCESS
- memset(accesscontrol, 0, QT_VERTEX_BUF_SIZE * sizeof(VertexBufferAccess));
-#endif
-
- // create vertex buffer
- afterReset();
-}
-
-QD3DDrawHelper::~QD3DDrawHelper()
-{
- if (m_maskSurface)
- m_maskSurface->Release();
-
- if (m_mask)
- m_mask->Release();
-
- if (m_depthStencilSurface)
- m_depthStencilSurface->Release();
-
- if (m_d3dvbuff)
- m_d3dvbuff->Release();
-}
-
-inline void QD3DDrawHelper::lockVertexBuffer()
-{
- if (!m_locked) {
- DWORD lockflags = D3DLOCK_NOOVERWRITE;
- if (m_startindex >= QT_VERTEX_RESET_LIMIT) {
- m_startindex = 0;
- m_index = 0;
-
-#ifdef QT_DEBUG_VERTEXBUFFER_ACCESS
- for (int i=0; i<QT_VERTEX_BUF_SIZE; ++i) {
- if (accesscontrol[i] != (WRITE|READ) && accesscontrol[i] != CLEAR)
- qDebug() << "Vertex Buffer: Access Error";
- }
- memset(accesscontrol, 0, QT_VERTEX_BUF_SIZE * sizeof(VertexBufferAccess));
-#endif
-
- lockflags = D3DLOCK_DISCARD;
- }
-
- if (FAILED(m_d3dvbuff->Lock(0, 0, (void**)&m_vbuff, lockflags))) {
- qWarning() << "QDirect3DPaintEngine: unable to lock vertex buffer.";
- }
- m_locked = true;
- }
-}
-
-inline void QD3DDrawHelper::unlockVertexBuffer()
-{
- if (m_locked) {
- if (FAILED(m_d3dvbuff->Unlock())) {
- qWarning() << "QDirect3DPaintEngine: unable to unlock vertex buffer.";
- }
- m_locked = false;
- }
-}
-
-void QD3DDrawHelper::setClipPath(const QPainterPath &path, QD3DBatchItem **item)
-{
- lockVertexBuffer();
-
- m_item = *item;
- m_item->m_maskpos.x = m_item->m_maskpos.y = 0;
- m_item->m_maskpos.channel = 3;
- m_item->m_info |= QD3DBatchItem::BI_CLIP;
-
- bool winding = (path.fillRule() == Qt::WindingFill);
- if (winding)
- m_item->m_info |= QD3DBatchItem::BI_WINDING;
-
- if (!path.isEmpty()) {
- m_item->m_info |= QD3DBatchItem::BI_MASK;
- m_item->m_info &= ~QD3DBatchItem::BI_AA;
- m_color = 0;
- QRectF brect = pathToVertexArrays(path);
- queueRect(brect, m_item, 0);
- }
-
- *item = m_item;
-}
-
-
-
-void QD3DDrawHelper::queueAntialiasedMask(const QPolygonF &poly, QD3DBatchItem **item, const QRectF &brect)
-{
- lockVertexBuffer();
-
- m_item = *item;
- m_item->m_info |= QD3DBatchItem::BI_MASK;
- setWinding(m_item->m_info & QD3DBatchItem::BI_WINDING);
-
- int xoffset = m_item->m_maskpos.x;
- int yoffset = m_item->m_maskpos.y;
-
- int x = brect.left();
- int y = brect.top();
-
- m_item->m_xoffset = (xoffset - x) + 1;
- m_item->m_yoffset = (yoffset - y) + 1;
-
- m_boundingRect = brect;
- tessellate(poly);
-
- *item = m_item;
-}
-
-QRectF QD3DDrawHelper::queueAliasedMask(const QPainterPath &path, QD3DBatchItem **item, D3DCOLOR color)
-{
- lockVertexBuffer();
-
- m_color = color;
- m_item = *item;
- m_item->m_info |= QD3DBatchItem::BI_MASK;
-
- bool winding = (path.fillRule() == Qt::WindingFill);
- if (winding)
- m_item->m_info |= QD3DBatchItem::BI_WINDING;
-
- QRectF result = pathToVertexArrays(path);
- *item = m_item;
- return result;
-}
-
-// used for drawing aliased transformed rects directly
-// don't use for antialiased or masked drawing
-void QD3DDrawHelper::queueRect(const QRectF &rect, QD3DBatchItem *item, D3DCOLOR color, const QPolygonF &trect)
-{
- lockVertexBuffer();
-
- qreal zval = (item->m_info & QD3DBatchItem::BI_CLIP) ? 0.0f : 0.5f;
- item->m_info |= QD3DBatchItem::BI_BRECT;
-
- // if the item does not have a mask, the offset is different
- if (!(item->m_info & QD3DBatchItem::BI_MASK)) {
- item->m_offset = m_index;
- item->m_count = (item->m_info & QD3DBatchItem::BI_AA) ? 0 : -2;
- }
-
- qreal x1 = rect.left();
- qreal y1 = rect.top();
- qreal x2 = rect.right();
- qreal y2 = rect.bottom();
-
- QPointF tc = trect.at(0);
- vertex v1 = { {x1, y1, zval} , color,
- tc.x(), tc.y(), 0.f, 0.f,
- 0.f , 0.f , 0.f, 0.f };
-
- tc = trect.at(1);
- vertex v2 = { {x2, y1, zval} , color,
- tc.x(), tc.y(), 0.f, 0.f,
- 0.f , 0.f , 0.f, 0.f};
-
- tc = trect.at(2);
- vertex v3 = { {x2, y2, zval} , color,
- tc.x(), tc.y(), 0.f, 0.f,
- 0.f , 0.f , 0.f, 0.f};;
-
- tc = trect.at(3);
- vertex v4 = { {x1, y2, zval} , color,
- tc.x(), tc.y(), 0.f, 0.f,
- 0.f , 0.f , 0.f, 0.f};
-
-#ifdef QT_DEBUG_VERTEXBUFFER_ACCESS
- for (int i=m_index; i<(m_index + 4); ++i) {
- if ((m_index + 4) > QT_VERTEX_BUF_SIZE)
- qDebug() << "Vertex Buffer: Buffer overflow";
- if (accesscontrol[i] != CLEAR)
- qDebug() << "Vertex Buffer: Access Error";
- accesscontrol[i] |= WRITE;
- }
-#endif
-
- m_vbuff[m_index++] = v1;
- m_vbuff[m_index++] = v2;
- m_vbuff[m_index++] = v3;
- m_vbuff[m_index++] = v4;
-
- m_startindex = m_index;
-}
-
-
-QD3DMaskPosition QD3DDrawHelper::allocateMaskPosition(const QRectF &brect, bool *breakbatch)
-{
- int w = brect.width();
- int h = brect.height();
-
- w += 3;
- h += 3;
-
- if (w > m_width)
- w = m_width;
- if (h > m_height)
- h = m_height;
-
- *breakbatch = false;
-
- if ((m_height - m_mask_offsetY2) >= h && (m_width - m_mask_position.x) >= w) {
- m_mask_position.y = m_mask_offsetY2;
- } else if ((m_width - m_mask_offsetX2) >= w) {
- m_mask_position.y = QD3D_MASK_MARGIN;
- m_mask_position.x = m_mask_offsetX2;
- } else if (m_mask_position.channel < 3) {
- ++m_mask_position.channel;
- m_mask_position.x = m_mask_position.y = QD3D_MASK_MARGIN;
- m_mask_offsetX2 = m_mask_offsetY2 = QD3D_MASK_MARGIN;
- } else {
- resetMask();
- *breakbatch = true;
- }
-
- int newoffset = m_mask_position.x + w;
- if (m_mask_offsetX2 < newoffset)
- m_mask_offsetX2 = newoffset;
- m_mask_offsetY2 = (m_mask_position.y + h);
-
- return m_mask_position;
-
-}
-
-void QD3DDrawHelper::queueRect(const QRectF &rect, QD3DBatchItem *item, D3DCOLOR color)
-{
- lockVertexBuffer();
-
- QRectF brect;
- item->m_info |= QD3DBatchItem::BI_BRECT;
- qreal zval = (item->m_info & QD3DBatchItem::BI_CLIP) ? 0.0f : 0.5f;
-
- if (item->m_info & QD3DBatchItem::BI_AA) {
- int xoffset = item->m_maskpos.x;
- int yoffset = item->m_maskpos.y;
-
- int x = rect.left();
- int y = rect.top();
-
- brect = QRectF(x, y, rect.width() + 1, rect.height() + 1);
-
- item->m_xoffset = (xoffset - x) + 1;
- item->m_yoffset = (yoffset - y) + 1;
-
- // if the item does not have a mask, the offset is different
- if (!(item->m_info & QD3DBatchItem::BI_MASK)) {
- item->m_offset = m_index;
- item->m_count = 0;
- }
- } else {
- brect = rect;
-
- if (!(item->m_info & QD3DBatchItem::BI_MASK)) {
- item->m_offset = m_index;
- item->m_count = -2;
- }
- }
-
- qreal left = brect.left();
- qreal right = brect.right();
- qreal top = brect.top();
- qreal bottom = brect.bottom();
-
- vertex v1 = { {left, bottom, zval}, color,
- 0.f, 0.f, 0.f, 0.f,
- 0.f, 0.f, 0.f, 0.f};
- vertex v2 = { {left, top, zval}, color,
- 0.f, 0.f, 0.f, 0.f,
- 0.f, 0.f, 0.f, 0.f};
- vertex v3 = { {right, top, zval}, color,
- 0.f, 0.f, 0.f, 0.f,
- 0.f, 0.f, 0.f, 0.f};
- vertex v4 = { {right, bottom, zval}, color,
- 0.f, 0.f, 0.f, 0.f,
- 0.f, 0.f, 0.f, 0.f};
-
-#ifdef QT_DEBUG_VERTEXBUFFER_ACCESS
- for (int i=m_index; i<(m_index + 4); ++i) {
- if ((m_index + 4) > QT_VERTEX_BUF_SIZE)
- qDebug() << "Vertex Buffer: Buffer overflow";
- if (accesscontrol[i] != CLEAR)
- qDebug() << "Vertex Buffer: Access Error";
- accesscontrol[i] |= WRITE;
- }
-#endif
-
- m_vbuff[m_index++] = v1;
- m_vbuff[m_index++] = v2;
- m_vbuff[m_index++] = v3;
- m_vbuff[m_index++] = v4;
-
- m_startindex = m_index;
-}
-
-void QD3DDrawHelper::queueAntialiasedLines(const QPainterPath &path, QD3DBatchItem **item, const QRectF &brect)
-{
- lockVertexBuffer();
-
- m_item = *item;
- m_item->m_info |= QD3DBatchItem::BI_MASK;
- setWinding(m_item->m_info & QD3DBatchItem::BI_WINDING);
-
- int xoffset = m_item->m_maskpos.x;
- int yoffset = m_item->m_maskpos.y;
- int x = brect.left();
- int y = brect.top();
-
- m_item->m_xoffset = (xoffset - x) + 1;
- m_item->m_yoffset = (yoffset - y) + 1;
-
- m_boundingRect = brect;
-
- m_xoffset = (x - xoffset) + 0.5f;
- m_yoffset = (y - yoffset) + 0.5f;
-
- QPointF last;
- for (int i = 0; i < path.elementCount(); ++i) {
- QPainterPath::Element element = path.elementAt(i);
-
- //Q_ASSERT(!element.isCurveTo());
-
- if (element.isLineTo())
- QTessellator::tessellateRect(last, element, m_item->m_width);
-
- last = element;
- }
-
- m_item->m_offset = m_startindex;
- m_item->m_count = ( m_index - m_startindex ) / 3;
- m_startindex = m_index;
-
- *item = m_item;
-}
-
-void QD3DDrawHelper::queueAliasedLines(const QLineF *lines, int lineCount, QD3DBatchItem **item)
-{
- lockVertexBuffer();
-
- m_item = *item;
- m_item->m_info |= QD3DBatchItem::BI_FASTLINE;
-
- for (int i=0; i<lineCount; ++i) {
- const QLineF line = lines[i];
- qreal p1x = line.p1().x();
- qreal p1y = line.p1().y();
- qreal p2x = line.p2().x();
- qreal p2y = line.p2().y();
-
- vertex v1 = { {p1x, p1y, m_pe->m_pen_width} , m_pe->m_pen_color,
- -1.f, -1.f, p2x, p2y,
- 0.f, 0.f, 0.f, 0.f };
- vertex v2 = { {p1x, p1y, m_pe->m_pen_width} , m_pe->m_pen_color,
- 1.f, -1.f, p2x, p2y,
- 0.f, 0.f, 0.f, 0.f };
- vertex v3 = { {p1x, p1y, m_pe->m_pen_width} , m_pe->m_pen_color,
- 1.f, 1.f, p2x, p2y,
- 0.f, 0.f, 0.f, 0.f };
- vertex v4 = { {p1x, p1y, m_pe->m_pen_width} , m_pe->m_pen_color,
- -1.f, 1.f, p2x, p2y,
- 0.f, 0.f, 0.f, 0.f };
-
- m_vbuff[m_index++] = v1;
- m_vbuff[m_index++] = v2;
- m_vbuff[m_index++] = v4;
- m_vbuff[m_index++] = v4;
- m_vbuff[m_index++] = v2;
- m_vbuff[m_index++] = v3;
-
- if (m_index >= (QT_VERTEX_BUF_SIZE - 16)) {
- m_item->m_offset = m_startindex;
- m_item->m_count = ( m_index - m_startindex ) / 2;
- m_startindex = m_index;
-
- QD3DBatchItem itemcopy = *m_item;
- m_item = m_pe->nextBatchItem();
- *m_item = itemcopy;
-
- lockVertexBuffer();
- }
- }
-
- m_item->m_offset = m_startindex;
- m_item->m_count = ( m_index - m_startindex ) - 2;
- m_startindex = m_index;
-
- *item = m_item;
-}
-
-void QD3DDrawHelper::queueTextGlyph(const QRectF &rect, const qreal *tex_coords,
- QD3DBatchItem *item, D3DCOLOR color)
-{
- lockVertexBuffer();
-
- qreal x1 = rect.left();
- qreal y1 = rect.top();
- qreal x2 = rect.right();
- qreal y2 = rect.bottom();
-
- vertex v1 = { {x1, y1, 0.5f}, color,
- tex_coords[0], tex_coords[1], 0.f, 0.f,
- 0.f , 0.f , 0.f, 0.f};
- vertex v2 = { {x2, y1, 0.5f}, color,
- tex_coords[2], tex_coords[1], 0.f, 0.f,
- 0.f , 0.f , 0.f, 0.f};
- vertex v3 = { {x2, y2, 0.5f}, color,
- tex_coords[2], tex_coords[3], 0.f, 0.f,
- 0.f , 0.f , 0.f, 0.f};
- vertex v4 = { {x1, y1, 0.5f}, color,
- tex_coords[0], tex_coords[1], 0.f, 0.f,
- 0.f , 0.f , 0.f, 0.f};
- vertex v5 = { {x2, y2, 0.5f}, color,
- tex_coords[2], tex_coords[3], 0.f, 0.f,
- 0.f , 0.f , 0.f, 0.f};
- vertex v6 = { {x1, y2, 0.5f}, color,
- tex_coords[0], tex_coords[3], 0.f, 0.f,
- 0.f , 0.f , 0.f, 0.f};
-
-#ifdef QT_DEBUG_VERTEXBUFFER_ACCESS
- for (int i=m_index; i<(m_index + 6); ++i) {
- if ((m_index + 6) > QT_VERTEX_BUF_SIZE)
- qDebug() << "Vertex Buffer: Buffer overflow";
- if (accesscontrol[i] != CLEAR)
- qDebug() << "Vertex Buffer: Access Error";
- accesscontrol[i] |= WRITE;
- }
-#endif
-
- m_vbuff[m_index++] = v1;
- m_vbuff[m_index++] = v2;
- m_vbuff[m_index++] = v3;
- m_vbuff[m_index++] = v4;
- m_vbuff[m_index++] = v5;
- m_vbuff[m_index++] = v6;
-
- m_startindex = m_index;
- ++item->m_count;
-}
-
-bool QD3DDrawHelper::needsFlushing() const
-{
- return (m_pe->m_batch.m_item_index >= QD3D_BATCH_SIZE || m_startindex >= QT_VERTEX_RESET_LIMIT);
-}
-
-void QD3DDrawHelper::setMaskSize(QSize size)
-{
- m_width = size.width();
- m_height = size.height();
-
- if (m_maskSurface)
- m_maskSurface->Release();
-
- if (m_mask)
- m_mask->Release();
-
- if (FAILED(m_pe->m_d3d_device->CreateTexture(m_width, m_height, 1, D3DUSAGE_RENDERTARGET,
- D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &m_mask, NULL))) {
- qWarning() << "QDirect3DPaintEngine: CreateTexture() failed.";
- }
-
- if (m_depthStencilSurface)
- m_depthStencilSurface->Release();
-
- if (FAILED(m_pe->m_d3d_device->CreateDepthStencilSurface(m_width, m_height, D3DFMT_D24S8, D3DMULTISAMPLE_NONE, 0,
- TRUE, &m_depthStencilSurface, NULL))) {
- qWarning() << "QDirect3DPaintEngine: CreateDepthStencilSurface() failed.";
- }
-
- m_pe->m_d3d_device->SetDepthStencilSurface(m_depthStencilSurface);
- m_pe->m_d3d_device->Clear(0, 0, D3DCLEAR_ZBUFFER|D3DCLEAR_STENCIL, 0, 0.0f, 0);
-
- if (FAILED(m_mask->GetSurfaceLevel(0, &m_maskSurface))) {
- qWarning() << "QDirect3DPaintEngine: GetSurfaceLevel() failed.";
- }
-
- m_pe->m_d3d_device->ColorFill(m_maskSurface, 0, D3DCOLOR_ARGB(0,0,0,0));
- D3DXMATRIX projMatrix;
- pD3DXMatrixOrthoOffCenterLH(&projMatrix, 0, m_width, m_height, 0, 0, 1);
- m_pe->m_effect->SetMatrix("g_mMaskProjection", &projMatrix);
- m_pe->m_effect->SetTexture("g_mAAMask", m_mask);
-}
-
-void QD3DDrawHelper::beforeReset()
-{
- resetMask();
- m_clearmask = true;
-
- if (m_maskSurface) {
- m_maskSurface->Release();
- m_maskSurface = 0;
- }
-
- if (m_mask) {
- m_mask->Release();
- m_mask = 0;
- }
-
- if (m_depthStencilSurface) {
- m_depthStencilSurface->Release();
- m_depthStencilSurface = 0;
- }
-
- if (m_d3dvbuff)
- m_d3dvbuff->Release();
-}
-
-void QD3DDrawHelper::afterReset()
-{
- if (FAILED(m_pe->m_d3d_device->CreateVertexBuffer(QT_VERTEX_BUF_SIZE*sizeof(vertex), D3DUSAGE_DYNAMIC|D3DUSAGE_WRITEONLY,
- QD3DFVF_CSVERTEX,
- D3DPOOL_DEFAULT, &m_d3dvbuff, NULL))) {
- qWarning() << "QDirect3DPaintEngine: failed to create vertex buffer.";
- }
-
- m_pe->m_d3d_device->SetStreamSource(0, m_d3dvbuff, 0, sizeof(vertex));
- m_pe->m_d3d_device->SetFVF(QD3DFVF_CSVERTEX);
-
- m_startindex = 0;
- m_index = 0;
-}
-
-IDirect3DSurface9 *QD3DDrawHelper::freeMaskSurface()
-{
- // we need to make sure the mask is cleared when it's used for something else
- resetMask();
- m_clearmask = true;
-
- return m_maskSurface;
-}
-
-int QD3DDrawHelper::drawAntialiasedMask(int offset, int maxoffset)
-{
- int newoffset = offset;
- QD3DBatchItem *item = &(m_pe->m_batch.items[offset]);
-
- // set mask as render target
- if (FAILED(m_pe->m_d3d_device->SetRenderTarget(0, m_maskSurface)))
- qWarning() << "QDirect3DPaintEngine: SetRenderTarget failed!";
-
- if (m_clearmask) {
- m_pe->m_d3d_device->Clear(0, 0, D3DCLEAR_TARGET,D3DCOLOR_ARGB(0,0,0,0), 0, 0);
- m_clearmask = false;
- }
-
- // fill the mask
- m_pe->m_statemanager->beginPass(PASS_AA_CREATEMASK);
- for (; newoffset<maxoffset; ++newoffset) {
- item = &(m_pe->m_batch.items[newoffset]);
- if (!(item->m_info & QD3DBatchItem::BI_AA) || !(item->m_info & QD3DBatchItem::BI_MASK)) {
- break;
- } else if (item->m_info & QD3DBatchItem::BI_MASKFULL) {
- item->m_info &= ~QD3DBatchItem::BI_MASKFULL;
- m_clearmask = true;
- break;
- }
-
- m_pe->m_statemanager->startStateBlock();
- if (item->m_info & QD3DBatchItem::BI_MASKSCISSOR) {
- RECT rect;
- QRectF srect = item->m_brect.adjusted(item->m_xoffset, item->m_yoffset,
- item->m_xoffset, item->m_yoffset);
- rect.left = qMax(qRound(srect.left()), 0);
- rect.top = qMax(qRound(srect.top()), 0);
- rect.bottom = qMin(m_height, qRound(srect.bottom()));
- rect.right = qMin(m_width, qRound(srect.right()));
- m_pe->m_d3d_device->SetScissorRect(&rect);
- m_pe->m_statemanager->SetRenderState(D3DRS_SCISSORTESTENABLE, TRUE);
- }
- m_pe->m_statemanager->setMaskChannel(item->m_maskpos.channel);
- m_pe->m_statemanager->endStateBlock();
-
-#ifdef QT_DEBUG_VERTEXBUFFER_ACCESS
- int vbstart = item->m_offset;
- for (int i=vbstart; i<(vbstart + (item->m_count * 3)); ++i) {
- if (accesscontrol[i] != WRITE)
- qDebug() << "Vertex Buffer: Access Error";
- accesscontrol[i] |= READ;
- }
-#endif
-
- m_pe->m_d3d_device->DrawPrimitive(D3DPT_TRIANGLELIST, item->m_offset, item->m_count);
-
- if (item->m_info & QD3DBatchItem::BI_MASKSCISSOR) {
- m_pe->m_statemanager->SetRenderState(D3DRS_SCISSORTESTENABLE, FALSE);
- }
- }
- m_pe->m_statemanager->endPass();
-
- return newoffset;
-}
-
-void QD3DDrawHelper::drawAliasedMask(int offset)
-{
- QD3DBatchItem *item = &(m_pe->m_batch.items[offset]);
- if (item->m_info & QD3DBatchItem::BI_MASK) {
- m_pe->m_statemanager->beginPass( (item->m_info & QD3DBatchItem::BI_WINDING) ? PASS_STENCIL_WINDING : PASS_STENCIL_ODDEVEN );
- int prev_stop = 0;
- for (int i=0; i<item->m_pointstops.count(); ++i) {
- int stop = item->m_pointstops.at(i);
-
-#ifdef QT_DEBUG_VERTEXBUFFER_ACCESS
- int vbstart = (item->m_offset + prev_stop);
- for (int j=vbstart; j<(vbstart+(stop - prev_stop)); ++j) {
- if (accesscontrol[j] != WRITE)
- qDebug() << "Vertex Buffer: Access Error";
- accesscontrol[j] |= READ;
- }
-#endif
- m_pe->m_d3d_device->DrawPrimitive(D3DPT_TRIANGLEFAN, item->m_offset + prev_stop, (stop - prev_stop) - 2);
- prev_stop = stop;
- }
- m_pe->m_statemanager->endPass();
- }
-}
-
-void QD3DDrawHelper::drawTextItem(QD3DBatchItem *item)
-{
-#ifdef QT_DEBUG_VERTEXBUFFER_ACCESS
- int vbstart = item->m_offset;
- for (int j=vbstart; j<(vbstart + ((item->m_count * 2) * 3)); ++j) {
- if (accesscontrol[j] != WRITE)
- qDebug() << "Vertex Buffer: Access Error";
- accesscontrol[j] |= READ;
- }
-#endif
- m_pe->m_d3d_device->DrawPrimitive(D3DPT_TRIANGLELIST, item->m_offset, item->m_count*2);
-}
-
-void QD3DDrawHelper::drawAliasedLines(QD3DBatchItem *item)
-{
- m_pe->m_statemanager->setCosmeticPen(item->m_info & QD3DBatchItem::BI_COSMETICPEN);
- if (item->m_info & QD3DBatchItem::BI_TRANSFORM) {
- m_pe->m_statemanager->setTransformation(&item->m_matrix);
- } else {
- m_pe->m_statemanager->setTransformation();
- }
- int pass = (item->m_info & QD3DBatchItem::BI_MASK)
- ? PASS_ALIASED_LINES
- : PASS_ALIASED_LINES_DIRECT;
- m_pe->m_statemanager->beginPass(pass);
- m_pe->m_d3d_device->DrawPrimitive(D3DPT_TRIANGLELIST, item->m_offset, (item->m_count + 2) / 3);
- m_pe->m_statemanager->endPass();
-}
-
-void QD3DDrawHelper::drawAntialiasedBoundingRect(QD3DBatchItem *item)
-{
- if (item->m_info & QD3DBatchItem::BI_SCISSOR) {
- RECT rect;
- rect.left = qMax(qRound(item->m_brect.left()), 0);
- rect.top = qMax(qRound(item->m_brect.top()), 0);
- rect.bottom = qMin(m_height, qRound(item->m_brect.bottom()));
- rect.right = qMin(m_width, qRound(item->m_brect.right()));
- m_pe->m_d3d_device->SetScissorRect(&rect);
- m_pe->m_statemanager->SetRenderState(D3DRS_SCISSORTESTENABLE, TRUE);
- }
-
-#ifdef QT_DEBUG_VERTEXBUFFER_ACCESS
- int vbstart = item->m_offset + (item->m_count * 3);
- for (int j=vbstart; j<(vbstart + 4); ++j) {
- if (accesscontrol[j] != WRITE)
- qDebug() << "Vertex Buffer: Access Error";
- accesscontrol[j] |= READ;
- }
-#endif
-
- m_pe->m_d3d_device->DrawPrimitive(D3DPT_TRIANGLEFAN, item->m_offset + (item->m_count * 3), 2);
-
- if (item->m_info & QD3DBatchItem::BI_SCISSOR) {
- m_pe->m_statemanager->SetRenderState(D3DRS_SCISSORTESTENABLE, FALSE);
- }
-}
-
-void QD3DDrawHelper::drawAliasedBoundingRect(QD3DBatchItem *item)
-{
-#ifdef QT_DEBUG_VERTEXBUFFER_ACCESS
- int vbstart = (item->m_offset + item->m_count + 2);
- for (int j=vbstart; j<(vbstart + 4); ++j) {
- if (accesscontrol[j] != WRITE)
- qDebug() << "Vertex Buffer: Access Error";
- accesscontrol[j] |= READ;
- }
-#endif
-
- m_pe->m_d3d_device->DrawPrimitive(D3DPT_TRIANGLEFAN, item->m_offset + item->m_count + 2, 2);
-}
-
-void QD3DDrawHelper::addTrap(const Trapezoid &trap)
-{
- qreal topLeftY = Q27Dot5ToDouble(trap.topLeft->y) - m_yoffset;
- qreal topLeftX = Q27Dot5ToDouble(trap.topLeft->x) - m_xoffset;
- qreal topRightY = Q27Dot5ToDouble(trap.topRight->y) - m_yoffset;
- qreal topRightX = Q27Dot5ToDouble(trap.topRight->x) - m_xoffset;
- qreal top = Q27Dot5ToDouble(trap.top) - m_yoffset;
- qreal bottom = Q27Dot5ToDouble(trap.bottom) - m_yoffset;
-
- Q27Dot5 _h = trap.topLeft->y - trap.bottomLeft->y;
- Q27Dot5 _w = trap.topLeft->x - trap.bottomLeft->x;
- qreal _leftA = (qreal)_w/_h;
- qreal _leftB = topLeftX - _leftA * topLeftY;
-
- _h = trap.topRight->y - trap.bottomRight->y;
- _w = trap.topRight->x - trap.bottomRight->x;
- qreal _rightA = (qreal)_w/_h;
- qreal _rightB = topRightX - _rightA * topRightY;
-
- qreal invLeftA = qFuzzyCompare(_leftA + 1, 1) ? 0.0 : 1.0 / _leftA;
- qreal invRightA = qFuzzyCompare(_rightA + 1, 1) ? 0.0 : 1.0 / _rightA;
-
- vertex v1 = { {1.f, top - 1.f, 0.5f}, 0.f,
- top, bottom, invLeftA, -invRightA,
- _leftA, _leftB, _rightA, _rightB};
- vertex v2 = { {0.f, top - 1.f, 0.5f}, 0.f,
- top, bottom, invLeftA, -invRightA,
- _leftA, _leftB, _rightA, _rightB};
- vertex v3 = { {0.f, bottom + 1.f, 0.5f}, 0.f,
- top, bottom, invLeftA, -invRightA,
- _leftA, _leftB, _rightA, _rightB};
-
- vertex v4 = { {1.f, top - 1.f, 0.5f}, 0.f,
- top, bottom, invLeftA, -invRightA,
- _leftA, _leftB, _rightA, _rightB};
- vertex v5 = { {0.f, bottom + 1.f, 0.5f}, 0.f,
- top, bottom, invLeftA, -invRightA,
- _leftA, _leftB, _rightA, _rightB};
- vertex v6 = { {1.f, bottom + 1.f, 0.5f}, 0.f,
- top, bottom, invLeftA, -invRightA,
- _leftA, _leftB, _rightA, _rightB};
-
-#ifdef QT_DEBUG_VERTEXBUFFER_ACCESS
- for (int i=m_index; i<(m_index + 6); ++i) {
- if ((m_index + 6) > QT_VERTEX_BUF_SIZE)
- qDebug() << "Vertex Buffer: Buffer overflow";
- if (accesscontrol[i] != CLEAR)
- qDebug() << "Vertex Buffer: Access Error";
- accesscontrol[i] |= WRITE;
- }
-#endif
-
- m_vbuff[m_index++] = v1;
- m_vbuff[m_index++] = v2;
- m_vbuff[m_index++] = v3;
- m_vbuff[m_index++] = v4;
- m_vbuff[m_index++] = v5;
- m_vbuff[m_index++] = v6;
-
- // check if buffer is full
- if (m_index >= (QT_VERTEX_BUF_SIZE - 16)) {
- m_item->m_offset = m_startindex;
- m_item->m_count = ( m_index - m_startindex ) / 3;
- m_startindex = m_index;
-
- QD3DBatchItem itemcopy = *m_item;
- m_item = m_pe->nextBatchItem();
- *m_item = itemcopy;
- m_item->m_info &= ~QD3DBatchItem::BI_MASKFULL;
-
- lockVertexBuffer();
- }
-}
-
-void QD3DDrawHelper::tessellate(const QPolygonF &poly) {
- int xoffset = m_item->m_maskpos.x;
- int yoffset = m_item->m_maskpos.y;
-
- int x = m_boundingRect.left();
- int y = m_boundingRect.top();
- m_xoffset = (x - xoffset) + 0.5f;
- m_yoffset = (y - yoffset) + 0.5f;
-
- QTessellator::tessellate(poly.data(), poly.count());
-
- m_item->m_offset = m_startindex;
- m_item->m_count = ( m_index - m_startindex ) / 3;
- m_startindex = m_index;
-}
-
-inline void QD3DDrawHelper::lineToStencil(qreal x, qreal y)
-{
- QPointF lastPt = tess_lastpoint;
- tess_lastpoint = QPointF(x, y);
-
- if (m_isLine && m_firstPoint)
- return;
-
-
-#ifdef QT_DEBUG_VERTEXBUFFER_ACCESS
- if (m_index > QT_VERTEX_BUF_SIZE)
- qDebug() << "Vertex Buffer: Buffer overflow";
- if (accesscontrol[m_index] != CLEAR)
- qDebug() << "Vertex Buffer: Access Error";
- accesscontrol[m_index] |= WRITE;
-#endif
-
- vertex v;
- if (m_isLine) {
- vertex v1 = { {lastPt.x(), lastPt.y(), m_pe->m_pen_width }, m_color,
- -1.f, -1.f, x, y,
- 0.f, 0.f, 0.f, 0.f};
- vertex v2 = { {lastPt.x(), lastPt.y(), m_pe->m_pen_width }, m_color,
- 1.f, -1.f, x, y,
- 0.f, 0.f, 0.f, 0.f};
- vertex v3 = { {lastPt.x(), lastPt.y(), m_pe->m_pen_width }, m_color,
- 1.f, 1.f, x, y,
- 0.f, 0.f, 0.f, 0.f};
- vertex v4 = { {lastPt.x(), lastPt.y(), m_pe->m_pen_width }, m_color,
- -1.f, 1.f, x, y,
- 0.f, 0.f, 0.f, 0.f};
- m_vbuff[m_index++] = v1;
- m_vbuff[m_index++] = v2;
- m_vbuff[m_index++] = v4;
- m_vbuff[m_index++] = v4;
- m_vbuff[m_index++] = v2;
- m_vbuff[m_index++] = v3;
- } else {
- vertex v1 = { {x, y, 0.5f}, m_color,
- 0.f, 0.f, 0.f, 0.f,
- 0.f, 0.f, 0.f, 0.f};
- m_vbuff[m_index++] = v1;
- v = v1;
- }
- ++tess_index;
-
- // check if buffer is full
- if (m_index >= (QT_VERTEX_BUF_SIZE - 16)) {
- int firstindex = m_startindex;
- if (!m_item->m_pointstops.isEmpty())
- firstindex = m_item->m_pointstops.last();
-
- vertex first = m_vbuff[firstindex];
-
- // finish current polygon
- m_item->m_pointstops.append(tess_index);
- m_item->m_offset = m_startindex;
- m_startindex = m_index;
-
- // copy item
- QD3DBatchItem itemcopy = *m_item;
- m_item = m_pe->nextBatchItem();
- *m_item = itemcopy;
-
- // start new polygon
- lockVertexBuffer();
- m_item->m_pointstops.clear();
- if (!m_isLine) {
- tess_index = 2;
-
-#ifdef QT_DEBUG_VERTEXBUFFER_ACCESS
- if (accesscontrol[m_index] != CLEAR)
- qDebug() << "Vertex Buffer: Access Error";
- accesscontrol[m_index] |= WRITE;
-#endif
-
- m_vbuff[m_index++] = first;
-
-#ifdef QT_DEBUG_VERTEXBUFFER_ACCESS
- if (accesscontrol[m_index] != CLEAR)
- qDebug() << "Vertex Buffer: Access Error";
- accesscontrol[m_index] |= WRITE;
-#endif
-
- m_vbuff[m_index++] = v;
- } else {
- tess_index = 0;
- }
- }
-
- if (x > max_x)
- max_x = x;
- else if (x < min_x)
- min_x = x;
- if (y > max_y)
- max_y = y;
- else if (y < min_y)
- min_y = y;
-}
-
-inline void QD3DDrawHelper::curveToStencil(const QPointF &cp1, const QPointF &cp2,
- const QPointF &ep)
-{
- qreal inverseScale = 0.5f;
- qreal inverseScaleHalf = inverseScale / 2;
-
- QBezier beziers[32];
- beziers[0] = QBezier::fromPoints(tess_lastpoint, cp1, cp2, ep);
- QBezier *b = beziers;
- while (b >= beziers) {
- // check if we can pop the top bezier curve from the stack
- qreal l = qAbs(b->x4 - b->x1) + qAbs(b->y4 - b->y1);
- qreal d;
- if (l > inverseScale) {
- d = qAbs( (b->x4 - b->x1)*(b->y1 - b->y2) - (b->y4 - b->y1)*(b->x1 - b->x2) )
- + qAbs( (b->x4 - b->x1)*(b->y1 - b->y3) - (b->y4 - b->y1)*(b->x1 - b->x3) );
- d /= l;
- } else {
- d = qAbs(b->x1 - b->x2) + qAbs(b->y1 - b->y2) +
- qAbs(b->x1 - b->x3) + qAbs(b->y1 - b->y3);
- }
- if (d < inverseScaleHalf || b == beziers + 31) {
- // good enough, we pop it off and add the endpoint
- lineToStencil(b->x4, b->y4);
- --b;
- } else {
- // split, second half of the polygon goes lower into the stack
- b->split(b+1, b);
- ++b;
- }
- }
-}
-
-QRectF QD3DDrawHelper::pathToVertexArrays(const QPainterPath &path)
-{
- m_isLine = (m_item->m_info & QD3DBatchItem::BI_FASTLINE);
- const QPainterPath::Element &first = path.elementAt(0);
- firstx = first.x;
- firsty = first.y;
- min_x = max_x = firstx;
- min_y = max_y = firsty;
-
- m_firstPoint = true;
- tess_index = 0;
- m_item->m_pointstops.clear();
- lineToStencil(firstx, firsty);
- m_firstPoint = false;
-
- for (int i=1; i<path.elementCount(); ++i) {
- const QPainterPath::Element &e = path.elementAt(i);
- switch (e.type) {
- case QPainterPath::MoveToElement:
- m_item->m_pointstops.append(tess_index);
- m_firstPoint = true;
- lineToStencil(e.x, e.y);
- m_firstPoint = false;
- break;
- case QPainterPath::LineToElement:
- lineToStencil(e.x, e.y);
- break;
- case QPainterPath::CurveToElement:
- curveToStencil(e, path.elementAt(i+1), path.elementAt(i+2));
- i+=2;
- break;
- default:
- break;
- }
- }
-
- if (!m_isLine)
- lineToStencil(firstx, firsty);
-
- m_item->m_pointstops.append(tess_index);
-
- m_item->m_offset = m_startindex;
- m_item->m_count = ( m_index - m_startindex ) - 2;
- m_startindex = m_index;
-
- QRectF result;
- result.setLeft(min_x);
- result.setRight(max_x);
- result.setTop(min_y);
- result.setBottom(max_y);
-
- if (m_isLine)
- result.adjust(0,0,1,1);
-
- return result;
-}
-
-void QD3DDrawHelper::resetMask()
-{
- m_mask_position.x = m_mask_position.y = QD3D_MASK_MARGIN;
- m_mask_position.channel = 0;
- m_mask_offsetX2 = m_mask_offsetY2 = QD3D_MASK_MARGIN;
-}
-
-
-static inline QPainterPath strokeForPath(const QPainterPath &path, const QPen &cpen) {
- QPainterPathStroker stroker;
- if (cpen.style() == Qt::CustomDashLine)
- stroker.setDashPattern(cpen.dashPattern());
- else
- stroker.setDashPattern(cpen.style());
-
- stroker.setCapStyle(cpen.capStyle());
- stroker.setJoinStyle(cpen.joinStyle());
- stroker.setMiterLimit(cpen.miterLimit());
- stroker.setWidth(cpen.widthF());
-
- QPainterPath stroke = stroker.createStroke(path);
- stroke.setFillRule(Qt::WindingFill);
- return stroke;
-}
-
-
-QDirect3DPaintEnginePrivate::~QDirect3DPaintEnginePrivate()
-{
-
-}
-
-void QDirect3DPaintEnginePrivate::updateClipPath(const QPainterPath &path, Qt::ClipOperation op)
-{
- //#### remove me
- QRegion r(path.toFillPolygon().toPolygon(), path.fillRule());
- updateClipRegion(r, op);
-
-/* if (m_draw_helper->needsFlushing())
- flushBatch();
-
- if (op == Qt::IntersectClip && !has_clipping)
- op = Qt::ReplaceClip;
-
- // switch to paths
- if (!m_has_complex_clipping) {
- m_clip_path = QPainterPath();
- m_clip_path.addRegion(m_clip_region);
- m_clip_region = QRegion();
- m_sysclip_path = QPainterPath();
- m_sysclip_path.addRegion(m_sysclip_region);
- m_sysclip_region = QRegion();
- m_has_complex_clipping = true;
- }
-
- QPainterPath cpath = m_matrix.map(path);
-
- QD3DBatchItem *item = &m_batch.items[m_batch.m_item_index++];
- item->m_info = QD3DBatchItem::BI_COMPLEXCLIP;
-
- switch (op) {
- case Qt::UniteClip:
- has_clipping = true;
- m_clip_path = m_clip_path.united(cpath);
- break;
- case Qt::ReplaceClip:
- has_clipping = true;
- m_clip_path = cpath;
- break;
- case Qt::NoClip:
- m_has_complex_clipping = false;
- has_clipping = false;
- item->m_info |= QD3DBatchItem::BI_CLEARCLIP;
- break;
- default: // intersect clip
- has_clipping = true;
- m_clip_path = m_clip_path.intersected(cpath);
- break;
- }
-
- if (!m_sysclip_path.isEmpty()) {
- item->m_info &= ~QD3DBatchItem::BI_CLEARCLIP;
- if (has_clipping)
- m_clip_path = m_clip_path.intersected(m_sysclip_path);
- else
- m_clip_path = m_sysclip_path;
- }
-
- // update the aliased clipping mask
- m_draw_helper->setClipPath(m_clip_path, item);
-
- // update the antialiased clipping mask
- if (m_draw_helper->needsFlushing())
- flushBatch();
-
- QD3DBatchItem *aaitem = &m_batch.items[m_batch.m_item_index++];
- aaitem->m_info = item->m_info|QD3DBatchItem::BI_AA;
- m_draw_helper->setClipPath(m_clip_path, aaitem); */
-}
-
-extern QPainterPath qt_regionToPath(const QRegion &region);
-
-void QDirect3DPaintEnginePrivate::updateClipRegion(const QRegion &clipregion, Qt::ClipOperation op)
-{
- if (m_draw_helper->needsFlushing())
- flushBatch();
- if (m_has_complex_clipping) {
- QPainterPath path = qt_regionToPath(clipregion);
- updateClipPath(path, op);
- return;
- }
-
- if (op == Qt::IntersectClip && m_clip_region.isEmpty())
- op = Qt::ReplaceClip;
-
- QRegion cregion = m_matrix.map(clipregion);
-
- QD3DBatchItem *item = nextBatchItem();
- item->m_info &= ~QD3DBatchItem::BI_AA;
-
- switch (op) {
- case Qt::UniteClip:
- m_clip_region = m_clip_region.united(cregion);
- break;
- case Qt::ReplaceClip:
- m_clip_region = cregion;
- break;
- case Qt::NoClip:
- m_clip_region = QRegion();
- item->m_info |= QD3DBatchItem::BI_CLEARCLIP;
- break;
- default: // intersect clip
- m_clip_region = m_clip_region.intersected(cregion);
- break;
- }
-
- QRegion crgn = m_clip_region;
- if (!m_sysclip_region.isEmpty()) {
- item->m_info &= ~QD3DBatchItem::BI_CLEARCLIP;
- if (!crgn.isEmpty())
- crgn = crgn.intersected(m_sysclip_region);
- else
- crgn = m_sysclip_region;
- }
-
- QPainterPath path = qt_regionToPath(crgn);
- m_draw_helper->setClipPath(path, &item);
-}
-
-void QDirect3DPaintEnginePrivate::updateFont(const QFont &)
-{
-}
-
-void QDirect3DPaintEnginePrivate::setRenderTechnique(RenderTechnique technique)
-{
- if (m_current_technique != technique) {
- if (m_current_technique != RT_NoTechnique)
- m_effect->End();
-
- if (technique == RT_Aliased) {
- m_effect->SetTechnique("Aliased");
- m_effect->Begin(0,D3DXFX_DONOTSAVESTATE);
- } else if (technique == RT_Antialiased) {
- m_effect->SetTechnique("Antialiased");
- m_effect->Begin(0,D3DXFX_DONOTSAVESTATE);
- }
- }
-
- m_current_technique = technique;
-}
-
-/*QPolygonF QDirect3DPaintEnginePrivate::transformedRect(const QRectF &brect) const
-{
- QPolygonF poly(brect);
- return m_matrix.map(poly);
-}
-
-QPolygonF QDirect3DPaintEnginePrivate::calcTextureCoords(const QPolygonF &trect) const
-{
- QPolygonF result(4);
- QRectF brect = trect.boundingRect();
- qreal angle = atan(trect.at(0).x() -
-}
-
-QPolygonF QDirect3DPaintEnginePrivate::offsetTextureCoords(const QRectF &brect, const QPolygonF &trect) const
-{
-
-}*/
-
-inline QD3DBatchItem *QDirect3DPaintEnginePrivate::nextBatchItem()
-{
- if (m_draw_helper->needsFlushing())
- flushBatch();
-
- QD3DBatchItem *item = &m_batch.items[m_batch.m_item_index++];
- item->m_info = m_current_state;
- item->m_cmode = m_cmode;
- return item;
-}
-
-qreal calculateAngle(qreal dx, qreal dy)
-{
- qreal angle;
-
- if (qFuzzyCompare(dx + 1, 1)) {
- angle = (dy < 0) ? -M_PI/2 : M_PI/2;
- } else {
- angle = atanf(dy/dx);
- if (dx < 0)
- angle += M_PI;
- }
-
- return angle;
-}
-
-QPolygonF QDirect3DPaintEnginePrivate::brushCoordinates(const QRectF &r, bool stroke, qreal *fd) const
-{
- QBrush brush;
- QTransform matrix;
- Qt::BrushStyle style;
-
- if (stroke) {
- brush = m_pen.brush();
- matrix = m_inv_pen_matrix;
- style = m_pen_brush_style;
- } else {
- brush = m_brush;
- matrix = m_inv_brush_matrix;
- style = m_brush_style;
- }
-
- QPolygonF bpoly;
- switch(style) {
- case Qt::TexturePattern: {
- QTransform totxcoords;
- QRectF adj_brect = r.adjusted(-0.5f, -0.5f, -0.5f, -0.5f);
- totxcoords.scale(1.0f/brush.texture().width(),
- 1.0f/brush.texture().height());
- bpoly = matrix.map(QPolygonF(adj_brect));
- bpoly = totxcoords.map(bpoly);
- break; }
- case Qt::LinearGradientPattern: {
- const QLinearGradient *g = static_cast<const QLinearGradient *>(brush.gradient());
- QPointF start = g->start();
- QPointF stop = g->finalStop();
- qreal dx = stop.x() - start.x();
- qreal dy = stop.y() - start.y();
- qreal length = sqrt(dx * dx + dy * dy);
- qreal angle = calculateAngle(dx, dy);
- QTransform totxcoords;
- QRectF adj_brect = r.adjusted(-0.5f, -0.5f, -0.5f, -0.5f);
- totxcoords.scale(1.0f/length, 1.0f/length);
- totxcoords.rotateRadians(-angle);
- totxcoords.translate(-start.x(), -start.y());
- bpoly = matrix.map(QPolygonF(adj_brect));
- bpoly = totxcoords.map(bpoly);
- break; }
- case Qt::ConicalGradientPattern: {
- const QConicalGradient *g = static_cast<const QConicalGradient *>(brush.gradient());
- QPointF center = g->center();
- qreal angle = g->angle();
- QTransform totxcoords;
- totxcoords.rotate(angle);
- totxcoords.translate(-center.x(), -center.y());
- bpoly = matrix.map(QPolygonF(r));
- bpoly = totxcoords.map(bpoly);
- break; }
- case Qt::RadialGradientPattern: {
- const QRadialGradient *g = static_cast<const QRadialGradient *>(brush.gradient());
- QPointF center = g->center();
- QPointF focalpoint = g->focalPoint();
- qreal dx = focalpoint.x() - center.x();
- qreal dy = focalpoint.y() - center.y();
- qreal radius = g->radius();
- *fd = sqrt(dx * dx + dy * dy) / radius;
- qreal angle = calculateAngle(dx, dy);
- QTransform totxcoords;
- totxcoords.scale(1.0f/radius, 1.0f/radius);
- totxcoords.rotateRadians(-angle);
- totxcoords.translate(-center.x(), -center.y());
- bpoly = matrix.map(QPolygonF(r));
- bpoly = totxcoords.map(bpoly);
- break; }
- default: {
- QTransform totxcoords;
- QRectF adj_brect = r.adjusted(-0.5f, -0.5f, -0.5f, -0.5f);
- QPixmap pat = getPattern(style);
- totxcoords.scale(1.0f/pat.width(),
- 1.0f/pat.height());
- bpoly = matrix.map(QPolygonF(adj_brect));
- bpoly = totxcoords.map(bpoly); }
- };
-
- return bpoly;
-}
-
-void QDirect3DPaintEnginePrivate::strokeAliasedPath(QPainterPath path, const QRectF &brect, const QTransform &txform)
-{
- D3DCOLOR solid_color;
- QD3DBatchItem *item = nextBatchItem();
-
- if (!txform.isIdentity())
- path = txform.map(path);
-
- QRectF trect;
- QPolygonF txcoord;
-
- solid_color = m_pen_color;
- bool has_complex_brush = false;
- if (m_pen_brush_style != Qt::SolidPattern) {
- has_complex_brush = true;
- item->m_brush = m_pen.brush();
- item->m_info |= QD3DBatchItem::BI_COMPLEXBRUSH;
- item->m_opacity = m_opacity;
- }
-
- if (m_has_fast_pen) {
- item->m_info |= QD3DBatchItem::BI_FASTLINE;
- if (m_pen_brush_style == Qt::SolidPattern) {
- m_draw_helper->queueAliasedMask(path, &item, solid_color);
- item->m_info &= ~QD3DBatchItem::BI_MASK; // bypass stencil buffer
- return;
- }
- }
-
- QRectF txrect = m_draw_helper->queueAliasedMask(path, &item, 0);
-
- if (has_complex_brush) {
- trect = brect;
- txcoord = brushCoordinates(brect, true, &item->m_distance);
- item->m_info |= QD3DBatchItem::BI_TRANSFORM;
- item->m_matrix = m_matrix;
- } else {
- trect = txrect;
- static const QPolygonF empty_poly(4);
- txcoord = empty_poly;
- }
-
- m_draw_helper->queueRect(trect, item, solid_color, txcoord);
-}
-
-void QDirect3DPaintEnginePrivate::fillAliasedPath(QPainterPath path, const QRectF &brect, const QTransform &txform)
-{
- D3DCOLOR solid_color;
- QD3DBatchItem *item = nextBatchItem();
-
- if (!txform.isIdentity())
- path = txform.map(path);
-
- QRectF trect;
- QPolygonF txcoord;
-
- solid_color = m_brush_color;
- bool has_complex_brush = false;
- if (m_brush_style != Qt::SolidPattern) {
- has_complex_brush = true;
- item->m_brush = m_brush;
- item->m_info |= QD3DBatchItem::BI_COMPLEXBRUSH;
- item->m_opacity = m_opacity;
- }
-
- QRectF txrect = m_draw_helper->queueAliasedMask(path, &item, 0);
-
- if (has_complex_brush) {
- trect = brect;
- txcoord = brushCoordinates(brect, false, &item->m_distance);
- item->m_info |= QD3DBatchItem::BI_TRANSFORM;
- item->m_matrix = m_matrix;
- } else {
- trect = txrect;
- static const QPolygonF empty_poly(4);
- txcoord = empty_poly;
- }
-
- m_draw_helper->queueRect(trect, item, solid_color, txcoord);
-}
-
-void QDirect3DPaintEnginePrivate::fillAntialiasedPath(const QPainterPath &path, const QRectF &brect,
- const QTransform &txform, bool stroke)
-{
- D3DCOLOR solid_color;
- bool winding = (path.fillRule() == Qt::WindingFill);
- QPolygonF poly;
- QRectF txrect;
- QPainterPath tpath;
-
- if (m_has_aa_fast_pen && stroke) {
- tpath = txform.map(path);
- txrect = tpath.controlPointRect();
- txrect.adjust(-(m_pen_width/2),-(m_pen_width/2), m_pen_width, m_pen_width);
- } else {
- poly = path.toFillPolygon(txform);
- txrect = poly.boundingRect();
- }
-
- // brect = approx. bounding rect before transformation
- // txrect = exact bounding rect after transformation
- // trect = the rectangle to be drawn
- // txcoord = the texture coordinates
- // adj_txrect = adjusted rect to include aliased outline
-
- bool use_scissor = false;
- if (txrect.left() < 0) {
- txrect.adjust(-txrect.left(),0,0,0);
- use_scissor = true;
- }
- if (txrect.top() < 0) {
- txrect.adjust(0,-txrect.top(),0,0);
- use_scissor = true;
- }
-
- if (!txrect.isValid())
- return;
-
- QD3DBatchItem *item = nextBatchItem();
-
- QRectF adj_txrect = txrect.adjusted(-1,-1,1,1);
- QRectF trect;
- QPolygonF txcoord;
-
- bool has_complex_brush = false;
- if (stroke) {
- solid_color = m_pen_color;
- if (m_pen_brush_style != Qt::SolidPattern) {
- has_complex_brush = true;
- item->m_brush = m_pen.brush();
- }
- item->m_width = m_pen_width;
- } else {
- solid_color = m_brush_color;
- if (m_brush_style != Qt::SolidPattern) {
- has_complex_brush = true;
- item->m_brush = m_brush;
- }
- }
-
- qreal focaldist = 0;
- if (has_complex_brush) {
- trect = brect;
- txcoord = brushCoordinates(brect, stroke, &focaldist);
- } else {
- trect = adj_txrect;
- static const QPolygonF empty_poly(4);
- txcoord = empty_poly;
- }
-
- bool maskfull;
- item->m_maskpos = m_draw_helper->allocateMaskPosition(txrect, &maskfull);
- if (maskfull)
- item->m_info |= QD3DBatchItem::BI_MASKFULL;
- item->m_distance = focaldist;
-
- if (winding)
- item->m_info |= QD3DBatchItem::BI_WINDING;
-
- if (has_complex_brush) {
- item->m_info |= QD3DBatchItem::BI_SCISSOR|QD3DBatchItem::BI_COMPLEXBRUSH|
- QD3DBatchItem::BI_TRANSFORM;
- item->m_brect = adj_txrect;
- item->m_matrix = m_matrix;
- item->m_opacity = m_opacity;
- }
- if (use_scissor) {
- item->m_info |= QD3DBatchItem::BI_MASKSCISSOR;
- item->m_brect = adj_txrect;
- }
-
- if (m_has_aa_fast_pen && stroke) {
- m_draw_helper->queueAntialiasedLines(tpath, &item, txrect);
- } else {
- m_draw_helper->queueAntialiasedMask(poly, &item, txrect);
- }
-
- m_draw_helper->queueRect(trect, item, solid_color, txcoord);
-}
-
-QPainterPath QDirect3DPaintEnginePrivate::strokePathFastPen(const QPainterPath &path)
-{
- QPainterPath result;
- QBezier beziers[32];
- for (int i=0; i<path.elementCount(); ++i) {
- const QPainterPath::Element &e = path.elementAt(i);
- switch (e.type) {
- case QPainterPath::MoveToElement:
- result.moveTo(e.x, e.y);
- break;
- case QPainterPath::LineToElement:
- result.lineTo(e.x, e.y);
- break;
-
- case QPainterPath::CurveToElement:
- {
- QPointF sp = path.elementAt(i-1);
- QPointF cp2 = path.elementAt(i+1);
- QPointF ep = path.elementAt(i+2);
- i+=2;
-
- qreal inverseScaleHalf = m_inv_scale / 2;
- beziers[0] = QBezier::fromPoints(sp, e, cp2, ep);
- QBezier *b = beziers;
- while (b >= beziers) {
- // check if we can pop the top bezier curve from the stack
- qreal l = qAbs(b->x4 - b->x1) + qAbs(b->y4 - b->y1);
- qreal d;
- if (l > m_inv_scale) {
- d = qAbs( (b->x4 - b->x1)*(b->y1 - b->y2)
- - (b->y4 - b->y1)*(b->x1 - b->x2) )
- + qAbs( (b->x4 - b->x1)*(b->y1 - b->y3)
- - (b->y4 - b->y1)*(b->x1 - b->x3) );
- d /= l;
- } else {
- d = qAbs(b->x1 - b->x2) + qAbs(b->y1 - b->y2) +
- qAbs(b->x1 - b->x3) + qAbs(b->y1 - b->y3);
- }
- if (d < inverseScaleHalf || b == beziers + 31) {
- // good enough, we pop it off and add the endpoint
- result.lineTo(b->x4, b->y4);
- --b;
- } else {
- // split, second half of the polygon goes lower into the stack
- b->split(b+1, b);
- ++b;
- }
- }
- } // case CurveToElement
- default:
- break;
- } // end of switch
- }
- return result;
-}
-
-void QDirect3DPaintEnginePrivate::strokePath(const QPainterPath &path, QRectF brect, bool simple)
-{
- QTransform txform;
- QPainterPath tpath;
-
- if (m_has_fast_pen || m_has_aa_fast_pen) {
- if (!simple)
- tpath = strokePathFastPen(path);
- else
- tpath = path; //already only lines
- } else {
- tpath = strokeForPath(path, m_pen);
- }
-
- if (tpath.isEmpty())
- return;
-
- //brect is null if the path is not transformed
- if (brect.isNull())
- txform = m_matrix;
-
- if (!brect.isNull()) {
- // brect is set when the path is transformed already,
- // this is the case when we have a cosmetic pen.
- brect.adjust(-(m_pen_width/2),-(m_pen_width/2), m_pen_width, m_pen_width);
- }
-
- if (brect.isNull())
- brect = tpath.controlPointRect();
- brect.adjust(-m_inv_scale,-m_inv_scale,m_inv_scale,m_inv_scale); //adjust for antialiasing
-
- if (m_current_state & QD3DBatchItem::BI_AA) {
- fillAntialiasedPath(tpath, brect, txform, true);
- } else {
- strokeAliasedPath(tpath, brect, txform);
- }
-}
-
-void QDirect3DPaintEnginePrivate::fillPath(const QPainterPath &path, QRectF brect)
-{
- QTransform txform;
-
- //brect is null if the path is not transformed
- if (brect.isNull())
- txform = m_matrix;
-
- if (brect.isNull())
- brect = path.controlPointRect();
- brect.adjust(-m_inv_scale,-m_inv_scale,m_inv_scale,m_inv_scale); //adjust for antialiasing
-
- if (m_current_state & QD3DBatchItem::BI_AA) {
- fillAntialiasedPath(path, brect, txform, false);
- } else {
- fillAliasedPath(path, brect, txform);
- }
-}
-
-
-bool QDirect3DPaintEnginePrivate::init()
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEnginePrivate::init()";
-#endif
-
- m_draw_helper = 0;
- m_gradient_cache = 0;
- m_dc = 0;
- m_dcsurface = 0;
-
- m_supports_d3d = false;
- m_current_state = 0;
- m_in_scene = false;
- m_has_fast_pen = false;
- m_has_aa_fast_pen = false;
- m_has_pen = false;
- m_has_brush = false;
- m_pen_color = 0;
- m_brush_color = 0;
- m_current_surface = 0;
- m_batch.m_item_index = 0;
- m_current_technique = RT_NoTechnique;
-
- if (!pDirect3DCreate9) {
- QLibrary d3d_lib(QLatin1String("d3d9.dll"));
- pDirect3DCreate9 = (PFNDIRECT3DCREATE9) d3d_lib.resolve("Direct3DCreate9");
- if (!pDirect3DCreate9) {
- qWarning("QDirect3DPaintEngine: failed to resolve symbols from d3d9.dll.\n"
- "Make sure you have the DirectX run-time installed.");
- return false;
- }
- }
-
- if (!pD3DXCreateBuffer || !pD3DXCreateEffect || !pD3DXMatrixOrthoOffCenterLH) {
- QLibrary d3dx_lib(QLatin1String("d3dx9_32.dll"));
- pD3DXCreateBuffer = (PFND3DXCREATEBUFFER) d3dx_lib.resolve("D3DXCreateBuffer");
- pD3DXCreateEffect = (PFND3DXCREATEEFFECT) d3dx_lib.resolve("D3DXCreateEffect");
- pD3DXMatrixOrthoOffCenterLH = (PFND3DXMATRIXORTHOOFFCENTERLH)
- d3dx_lib.resolve("D3DXMatrixOrthoOffCenterLH");
- if (!(pD3DXCreateBuffer && pD3DXCreateEffect && pD3DXMatrixOrthoOffCenterLH)) {
- qWarning("QDirect3DPaintEngine: failed to resolve symbols from d3dx9_32.dll.\n"
- "Make sure you have the DirectX run-time installed.");
- return false;
- }
- }
-
- if (!m_d3d_object) {
- m_d3d_object = pDirect3DCreate9(D3D_SDK_VERSION);
- if (!m_d3d_object) {
- qWarning("QDirect3DPaintEngine: failed to create Direct3D object.\n"
- "Direct3D support in Qt will be disabled.");
- return false;
- }
- }
-
- m_supports_d3d = testCaps();
- if (!m_supports_d3d)
- return false;
-
- m_surface_manager.init(m_d3d_object);
- m_d3d_device = m_surface_manager.device();
-
- if (!m_d3d_device)
- return false;
-
- /* load shaders */
- QFile file(QLatin1String(":/qpaintengine_d3d.fx"));
- QByteArray fxFile;
- if (file.open(QFile::ReadOnly))
- fxFile = file.readAll();
-
- if (fxFile.size() > 0) {
- LPD3DXBUFFER compout;
- pD3DXCreateBuffer(4096, &compout);
- DWORD dwShaderFlags = D3DXFX_NOT_CLONEABLE|D3DXFX_DONOTSAVESTATE|D3DXSHADER_OPTIMIZATION_LEVEL3;
- if(FAILED(pD3DXCreateEffect(m_d3d_device, fxFile.constData(), fxFile.size(),
- NULL, NULL, dwShaderFlags, NULL, &m_effect, &compout))) {
- qWarning("QDirect3DPaintEngine: failed to compile effect file");
- if (compout)
- qWarning((char *)compout->GetBufferPointer());
- m_supports_d3d = false;
- return false;
- }
- if (m_effect) {
- m_statemanager = new QD3DStateManager(m_d3d_device, m_effect);
- m_effect->SetStateManager(m_statemanager);
- m_draw_helper = new QD3DDrawHelper(this);
- initDevice();
- m_gradient_cache = new QD3DGradientCache(m_d3d_device);
- }
- } else {
- return false;
- }
-
- return true;
-}
-
-QPixmap QDirect3DPaintEnginePrivate::getPattern(Qt::BrushStyle style) const
-{
- if (!m_patterns.contains(style)) {
- QImage img(16,16,QImage::Format_ARGB32);
- img.fill(0);
- QPainter p(&img);
- p.setBrush(QBrush(Qt::white, style));
- p.setPen(Qt::NoPen);
- p.drawRect(0,0,16,16);
- p.end();
- QPixmap pattern(QPixmap::fromImage(img));
- QDirect3DPaintEnginePrivate *ct = const_cast<QDirect3DPaintEnginePrivate *>(this);
- ct->verifyTexture(pattern);
- ct->m_patterns.insert(style, pattern);
- }
-
- return m_patterns.value(style);
-}
-
-bool QDirect3DPaintEnginePrivate::testCaps()
-{
- D3DCAPS9 caps;
- if (FAILED(m_d3d_object->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &caps)))
- return false;
-
- if ((caps.PresentationIntervals & D3DPRESENT_INTERVAL_IMMEDIATE)
- && (caps.DevCaps & D3DDEVCAPS_PUREDEVICE)
- && (caps.RasterCaps & D3DPRASTERCAPS_SCISSORTEST)
- && (caps.StencilCaps & D3DSTENCILCAPS_TWOSIDED))
- return true;
-#if 0
- qDebug() << "Direct3D caps:";
- qDebug() << "D3DPRESENT_INTERVAL_IMMEDIATE:" << ((caps.PresentationIntervals & D3DPRESENT_INTERVAL_IMMEDIATE) != 0);
- qDebug() << "D3DDEVCAPS_PUREDEVICE:" << ((caps.DevCaps & D3DDEVCAPS_PUREDEVICE) != 0);
- qDebug() << "D3DPRASTERCAPS_SCISSORTEST:" << ((caps.RasterCaps & D3DPRASTERCAPS_SCISSORTEST) != 0);
- qDebug() << "D3DSTENCILCAPS_TWOSIDED:" << ((caps.StencilCaps & D3DSTENCILCAPS_TWOSIDED) != 0);
-#endif
- return false;
-}
-
-void QDirect3DPaintEnginePrivate::initDevice()
-{
- m_statemanager->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
- m_statemanager->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
- m_statemanager->SetRenderState(D3DRS_ZWRITEENABLE, FALSE);
- m_statemanager->SetRenderState(D3DRS_LIGHTING, FALSE);
- m_statemanager->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
- m_statemanager->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
- m_statemanager->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_DESTALPHA);
-}
-
-void QDirect3DPaintEnginePrivate::updatePen(const QPen &pen)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::updatePen";
-#endif
- m_pen = pen;
- m_has_cosmetic_pen = false;
- m_has_pen = (m_pen.style() != Qt::NoPen);
- if (m_has_pen) {
- m_pen_brush_style = m_pen.brush().style();
-
- if (m_pen_brush_style >= Qt::SolidPattern && m_pen_brush_style <= Qt::DiagCrossPattern) {
- int a, r, g, b;
- m_pen.color().getRgb(&r, &g, &b, &a);
- m_pen_color = D3DCOLOR_ARGB((int)(a * m_opacity),r,g,b);
- } else {
- m_pen_color = m_opacity_color;
- }
-
- m_has_cosmetic_pen = m_pen.isCosmetic();
-
- if (m_pen_brush_style != Qt::NoBrush &&
- m_pen_brush_style != Qt::SolidPattern) {
- bool ok;
- m_inv_pen_matrix = m_pen.brush().transform().inverted(&ok);
- if (!ok)
- qWarning() << "QDirect3DPaintEngine: No inverse matix for pen brush matrix.";
- }
-
- m_pen_width = m_pen.widthF();
- if (m_pen_width == 0.0f)
- m_pen_width = 1.0f;
- }
-}
-
-void QDirect3DPaintEnginePrivate::updateBrush(const QBrush &brush)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::updateBrush";
-#endif
- m_brush = brush;
- m_brush_style = m_brush.style();
- m_has_brush = (m_brush_style != Qt::NoBrush);
- if (m_has_brush) {
- if (m_brush_style >= Qt::SolidPattern && m_brush_style <= Qt::DiagCrossPattern) {
- int a, r, g, b;
- m_brush.color().getRgb(&r, &g, &b, &a);
- m_brush_color = D3DCOLOR_ARGB((int)(a * m_opacity),r,g,b);
- } else {
- m_brush_color = m_opacity_color;
- }
-
- if (m_brush_style != Qt::SolidPattern) {
- bool ok;
- m_inv_brush_matrix = (m_brush.transform() * m_brush_origin).inverted(&ok);
- if (!ok)
- qWarning() << "QDirect3DPaintEngine: No inverse matix for brush matrix.";
-
- // make sure the texture is loaded as a texture
- if (m_brush_style == Qt::TexturePattern)
- verifyTexture(m_brush.texture());
-
-
- }
- }
-}
-
-void QDirect3DPaintEnginePrivate::updateTransform(const QTransform &matrix)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::updateTransform";
-#endif
- m_matrix = matrix;
- m_inv_scale = qMax(1 / qMax( qMax(qAbs(m_matrix.m11()), qAbs(m_matrix.m22())),
- qMax(qAbs(m_matrix.m12()), qAbs(m_matrix.m21())) ), 0.0001);
- m_txop = matrix.type();
-}
-
-int QDirect3DPaintEnginePrivate::flushAntialiased(int offset)
-{
- // fills the mask (returns number of items added to the mask)
- int newoffset = m_draw_helper->drawAntialiasedMask(offset, m_batch.m_item_index);
-
- // set the render target to the current output surface
- if (FAILED(m_d3d_device->SetRenderTarget(0, m_current_surface)))
- qWarning() << "QDirect3DPaintEngine: SetRenderTarget failed!";
-
- // draw the bounding boxes (using the mask generated by drawAntialiasedMask)
- for (int i=offset; i<newoffset; ++i) {
- QD3DBatchItem *item = &(m_batch.items[i]);
- int pass = (item->m_info & QD3DBatchItem::BI_COMPLEXBRUSH) ? PASS_AA_DRAW : PASS_AA_DRAW_DIRECT;
- m_statemanager->beginPass(pass);
- prepareItem(item);
- if (item->m_info & QD3DBatchItem::BI_BRECT)
- m_draw_helper->drawAntialiasedBoundingRect(item);
- cleanupItem(item);
- }
-
- m_statemanager->endPass();
-
- return newoffset;
-}
-
-bool QDirect3DPaintEnginePrivate::prepareBatch(QD3DBatchItem *item, int offset)
-{
- if (item->m_info & QD3DBatchItem::BI_CLIP) {
- setRenderTechnique(RT_Aliased);
- if (item->m_info & QD3DBatchItem::BI_CLEARCLIP) {
- m_d3d_device->Clear(0, 0, D3DCLEAR_ZBUFFER, 0, 0.0f, 0);
- return true;
- }
-
- m_draw_helper->drawAliasedMask(offset);
- m_d3d_device->Clear(0, 0, D3DCLEAR_ZBUFFER, 0, 1.0f, 0);
- if (item->m_info & QD3DBatchItem::BI_BRECT) {
- m_statemanager->beginPass(PASS_STENCIL_CLIP);
- m_draw_helper->drawAliasedBoundingRect(item);
- m_statemanager->endPass();
- }
-
- return true;
- }
-
- if (item->m_info & QD3DBatchItem::BI_AA) {
- setRenderTechnique(RT_Antialiased);
- } else {
- setRenderTechnique(RT_Aliased);
- }
-
- return false;
-}
-
-void QDirect3DPaintEnginePrivate::prepareItem(QD3DBatchItem *item) {
- // pixmap
- int brushmode = 0;
- m_statemanager->startStateBlock();
- if ((item->m_info & QD3DBatchItem::BI_PIXMAP) || (item->m_info & QD3DBatchItem::BI_IMAGE)) {
- QRasterPixmapData *data = static_cast<QRasterPixmapData*>(item->m_pixmap.data);
- IDirect3DTexture9 *tex = (item->m_info & QD3DBatchItem::BI_PIXMAP) ?
- data->texture : item->m_texture;
- m_statemanager->setTexture(tex);
- brushmode = 5;
- }
-
- if (item->m_info & QD3DBatchItem::BI_AA) {
- m_statemanager->setMaskChannel(item->m_maskpos.channel);
- m_statemanager->setMaskOffset(item->m_xoffset, item->m_yoffset);
- }
-
- if (item->m_info & QD3DBatchItem::BI_COMPLEXBRUSH) {
- const QBrush brush = item->m_brush;
- switch (brush.style()) {
- case Qt::TexturePattern: {
- QRasterPixmapData *data = static_cast<QRasterPixmapData*>(brush.texture().data);
- m_statemanager->setTexture(data->texture, QGradient::RepeatSpread);
- brushmode = 1;
- break;
- }
- case Qt::LinearGradientPattern:
- m_statemanager->setTexture(m_gradient_cache->
- getBuffer(brush.gradient()->stops(), item->m_opacity),
- brush.gradient()->spread());
- brushmode = 2;
- break;
- case Qt::ConicalGradientPattern:
- m_statemanager->setTexture(m_gradient_cache->
- getBuffer(brush.gradient()->stops(), item->m_opacity),
- brush.gradient()->spread());
- brushmode = 3;
- break;
- case Qt::RadialGradientPattern:
- m_statemanager->setTexture(m_gradient_cache->
- getBuffer(brush.gradient()->stops(), item->m_opacity),
- brush.gradient()->spread());
- m_statemanager->setFocalDistance(item->m_distance);
- brushmode = 4;
- break;
- default: {
- QRasterPixmapData *data = static_cast<QRasterPixmapData*>(getPattern(brush.style()).data);
- m_statemanager->setTexture(data->texture, QGradient::RepeatSpread);
- brushmode = 5;
- }
- };
- }
-
- if (item->m_info & QD3DBatchItem::BI_TRANSFORM) {
- m_statemanager->setTransformation(&item->m_matrix);
- } else {
- m_statemanager->setTransformation();
- }
-
- m_statemanager->setBrushMode(brushmode);
- setCompositionMode(item->m_cmode);
- m_statemanager->endStateBlock();
-}
-
-
-void QDirect3DPaintEnginePrivate::releaseDC()
-{
- if (m_dc) {
- m_dcsurface->ReleaseDC(m_dc);
- m_dcsurface = 0;
- m_dc = 0;
- }
-}
-
-
-void QDirect3DPaintEnginePrivate::cleanupItem(QD3DBatchItem *item)
-{
- if (item->m_info & QD3DBatchItem::BI_PIXMAP)
- item->m_pixmap = QPixmap();
- item->m_brush = QBrush();
-}
-
-void QDirect3DPaintEnginePrivate::verifyTexture(const QPixmap &pm)
-{
- QRasterPixmapData *pmData = static_cast<QRasterPixmapData*>(pm.data);
- if (!pmData->texture) {
- QImage im = pmData->image;
- // bitmaps are drawn with the current pen color
- if (im.depth() == 1) {
- QVector<QRgb> colors(2);
- colors[0] = 0;
- colors[1] = m_pen.color().rgba();
- im.setColorTable(colors);
- }
- im = im.convertToFormat(QImage::Format_ARGB32);
- if (FAILED(m_d3d_device->CreateTexture(im.width(), im.height(), 1, 0,
- D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, &pmData->texture, 0)))
- {
- qWarning("QDirect3DPaintEngine: unable to create Direct3D texture from pixmap.");
- return;
- }
- D3DLOCKED_RECT rect;
- if (FAILED(pmData->texture->LockRect(0, &rect, 0, 0))) {
- qDebug() << "QDirect3DPaintEngine: unable to lock texture rect.";
- return;
- }
- DWORD *dst = (DWORD *) rect.pBits;
- DWORD *src = (DWORD *) im.scanLine(0);
-
- Q_ASSERT((rect.Pitch/4) == (im.bytesPerLine()/4));
- memcpy(dst, src, rect.Pitch*im.height());
- pmData->texture->UnlockRect(0);
- }
-}
-
-bool QDirect3DPaintEnginePrivate::isFastRect(const QRectF &rect)
-{
- if (m_matrix.type() < QTransform::TxRotate) {
- QRectF r = m_matrix.mapRect(rect);
- return r.topLeft().toPoint() == r.topLeft()
- && r.bottomRight().toPoint() == r.bottomRight();
- }
-
- return false;
-}
-
-void QDirect3DPaintEnginePrivate::setCompositionMode(QPainter::CompositionMode mode)
-{
- switch(mode) {
- case QPainter::CompositionMode_SourceOver:
- default:
- m_statemanager->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
- m_statemanager->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
- };
-}
-
-void QDirect3DPaintEnginePrivate::cleanup()
-{
- // clean batch
- for(int i=0; i<QD3D_BATCH_SIZE; ++i) {
- m_batch.items[i].m_brush = QBrush();
- m_batch.items[i].m_pixmap = QPixmap();
- }
-
- m_surface_manager.cleanup();
- m_patterns.clear();
-
- delete m_gradient_cache;
- delete m_draw_helper;
-
- if (m_effect)
- m_effect->Release();
-
- if (m_d3d_object)
- m_d3d_object->Release();
-
- m_effect = 0;
- m_d3d_object = 0;
- m_gradient_cache = 0;
- m_draw_helper = 0;
-}
-
-void QDirect3DPaintEnginePrivate::flushAliased(QD3DBatchItem *item, int offset)
-{
- m_draw_helper->drawAliasedMask(offset);
-
- if (item->m_info & QD3DBatchItem::BI_BRECT) {
- int pass = (item->m_info & QD3DBatchItem::BI_MASK) ? PASS_STENCIL_DRAW_DIRECT : PASS_STENCIL_NOSTENCILCHECK_DIRECT;
- if (item->m_info & (QD3DBatchItem::BI_COMPLEXBRUSH|QD3DBatchItem::BI_IMAGE|QD3DBatchItem::BI_PIXMAP) )
- pass = (item->m_info & QD3DBatchItem::BI_MASK) ? PASS_STENCIL_DRAW : PASS_STENCIL_NOSTENCILCHECK;
- m_statemanager->beginPass(pass);
- prepareItem(item);
- m_draw_helper->drawAliasedBoundingRect(item);
- cleanupItem(item);
- m_statemanager->endPass();
- }
-}
-
-void QDirect3DPaintEnginePrivate::flushText(QD3DBatchItem *item, int)
-{
- prepareItem(item);
- m_statemanager->setTexture(item->m_texture);
- m_statemanager->setBrushMode(1);
-// m_statemanager->SetRenderState(D3DRS_BLENDFACTOR, item->m_brush.color().rgba());
- m_statemanager->beginPass(m_cleartype_text ? PASS_CLEARTYPE_TEXT : PASS_TEXT);
- m_draw_helper->drawTextItem(item);
- m_statemanager->endPass();
- cleanupItem(item);
-}
-
-void QDirect3DPaintEnginePrivate::flushLines(QD3DBatchItem *item, int)
-{
- m_draw_helper->drawAliasedLines(item);
-
- if (item->m_info & QD3DBatchItem::BI_BRECT) {
- int pass = (item->m_info & QD3DBatchItem::BI_COMPLEXBRUSH) ? PASS_STENCIL_DRAW : PASS_STENCIL_DRAW_DIRECT;
- m_statemanager->beginPass(pass);
- prepareItem(item);
- m_draw_helper->drawAliasedBoundingRect(item);
- cleanupItem(item);
- m_statemanager->endPass();
- }
-}
-
-void QDirect3DPaintEnginePrivate::flushBatch()
-{
-// static int dbgcounter = 0;
-// ++dbgcounter;
-// qDebug() << " -> flush" << dbgcounter;
-
- int offset = 0;
- m_draw_helper->unlockVertexBuffer();
- releaseDC();
-
- // iterate over all items in the batch
- while (offset != m_batch.m_item_index) {
- QD3DBatchItem *item = &(m_batch.items[offset]);
-
- if (prepareBatch(item, offset)) {
- ++offset;
- continue;
- }
-
- if (item->m_info & QD3DBatchItem::BI_FASTLINE) {
- flushLines(item, offset++);
- } else if (item->m_info & QD3DBatchItem::BI_AA) {
- offset = flushAntialiased(offset);
- } else if (item->m_info & QD3DBatchItem::BI_TEXT) {
- flushText(item, offset++);
- } else {
- flushAliased(item, offset++);
- }
- }
-
- // reset batch
- m_batch.m_item_index = 0;
-
- // release doomed textures
- for (int i=0; i<qd3d_release_list.size(); ++i)
- qd3d_release_list.at(i)->Release();
- qd3d_release_list.clear();
-}
-
-QDirect3DPaintEngine::QDirect3DPaintEngine()
- : QPaintEngine(*(new QDirect3DPaintEnginePrivate),
- PaintEngineFeatures(AllFeatures & ~ObjectBoundingModeGradients))
-{ }
-
-QDirect3DPaintEngine::~QDirect3DPaintEngine()
-{
-}
-
-bool QDirect3DPaintEngine::begin(QPaintDevice *device)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::begin";
-#endif
- Q_D(QDirect3DPaintEngine);
- setActive(true);
-
- QSize old_size = d->m_surface_size;
- d->m_surface_size = QRect(0, 0, device->width(), device->height()).size();
-
- d->m_current_state = 0;
- d->m_inv_scale = 1;
- d->m_opacity = 1.0f;
- d->m_opacity_color = D3DCOLOR_ARGB(255,255,255,255);
- d->m_matrix = QTransform();
- d->m_brush_origin = QTransform();
- d->m_txop = QTransform::TxNone;
- d->m_cmode = QPainter::CompositionMode_SourceOver;
-
- Q_ASSERT(device && device->devType() == QInternal::Widget);
- if (d->m_d3d_device == 0) {
- qWarning() << "QDirect3DPaintEngine: No Device!";
- return false;
- }
-
- d->m_cleartype_text = false;
-// QT_WA({
-// UINT result;
-// BOOL ok;
-// ok = SystemParametersInfoW(SPI_GETFONTSMOOTHINGTYPE, 0, &result, 0);
-// if (ok)
-// d->m_cleartype_text = (result == FE_FONTSMOOTHINGCLEARTYPE);
-// }, {
-// UINT result;
-// BOOL ok;
-// ok = SystemParametersInfoA(SPI_GETFONTSMOOTHINGTYPE, 0, &result, 0);
-// if (ok)
-// d->m_cleartype_text = (result == FE_FONTSMOOTHINGCLEARTYPE);
-// });
-
- d->m_surface_manager.setPaintDevice(device);
- int status = d->m_surface_manager.status();
- if (status & QD3DSurfaceManager::NeedsResetting) {
- d->m_effect->OnLostDevice();
- d->m_draw_helper->beforeReset();
- d->m_statemanager->reset();
- d->m_surface_manager.reset();
- d->m_draw_helper->afterReset();
- d->m_effect->OnResetDevice();
- d->initDevice();
- }
-
- LPDIRECT3DSURFACE9 newsurface = d->m_surface_manager.renderTarget();
- if (d->m_current_surface != newsurface) {
- d->m_current_surface = newsurface;
- if (FAILED(d->m_d3d_device->SetRenderTarget(0, newsurface)))
- qWarning() << "QDirect3DPaintEngine: SetRenderTarget failed!";
- }
-
- status = d->m_surface_manager.status();
- if (status & QD3DSurfaceManager::MaxSizeChanged) {
- QSize maxsize = d->m_surface_manager.maxSize();
- d->m_draw_helper->setMaskSize(maxsize);
- int masksize[2] = {maxsize.width(), maxsize.height()};
- d->m_effect->SetIntArray("g_mMaskSize", masksize, 2);
- }
-
- if (old_size != d->m_surface_size) {
- D3DXMATRIX projMatrix;
- pD3DXMatrixOrthoOffCenterLH(&projMatrix, 0, d->m_surface_size.width(), d->m_surface_size.height(), 0, 0.0f, 1.0f);
- d->m_statemanager->setProjection(&projMatrix);
- }
-
- if (!d->m_in_scene) {
- if (FAILED(d->m_d3d_device->BeginScene())) {
- qWarning() << "QDirect3DPaintEngine: BeginScene() failed.";
- return false;
- }
- QWidget *widget = static_cast<QWidget *>(device);
- if (widget->autoFillBackground() == true) {
- QColor color = widget->palette().brush(widget->backgroundRole()).color();
- RECT rect = {0, 0, widget->width(), widget->height()};
- d->m_d3d_device->ColorFill(d->m_current_surface, &rect,
- D3DCOLOR_ARGB(color.alpha(), color.red(), color.green(), color.blue()));
- }
- d->m_in_scene = true;
- }
-
- // set system clip
- d->m_clipping_enabled = false;
- d->m_has_complex_clipping = false;
-
- d->m_sysclip_region = systemClip();
- QVector<QRect> rects = d->m_sysclip_region.rects();
- if (rects.count() == 1 && rects.at(0).size() == d->m_surface_size)
- d->m_sysclip_region = QRegion();
-
- d->updateClipRegion(QRegion(), Qt::NoClip);
-
- return true;
-}
-
-void QDirect3DPaintEngine::drawEllipse(const QRectF &rect)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::drawEllipse (float)";
-#endif
- QPaintEngine::drawEllipse(rect);
-}
-
-void QDirect3DPaintEngine::drawEllipse(const QRect &rect)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::drawEllipse";
-#endif
- QPaintEngine::drawEllipse(rect);
-}
-
-void QDirect3DPaintEngine::drawImage(const QRectF &r, const QImage &image, const QRectF &sr,
- Qt::ImageConversionFlags)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::drawImage";
-#endif
-
- Q_D(QDirect3DPaintEngine);
- int width = image.width();
- int height = image.height();
-
- // transform rectangle
- QPolygonF txrect(QRectF(sr.left() / width, sr.top() / height,
- sr.width() / width, sr.height() / height));
-
- QD3DBatchItem *item = d->nextBatchItem();
- item->m_info = QD3DBatchItem::BI_IMAGE | QD3DBatchItem::BI_TRANSFORM;
- item->m_texture = qd3d_image_cache()->lookup(d->m_d3d_device, image);
- item->m_matrix = d->m_matrix;
- d->m_draw_helper->queueRect(r.adjusted(-0.5f,-0.5f,-0.5f,-0.5f), item, d->m_opacity_color, txrect);
-}
-
-void QDirect3DPaintEngine::drawLines(const QLineF *lines, int lineCount)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::drawLines (float)";
-#endif
- Q_D(QDirect3DPaintEngine);
-
- if (!d->m_has_pen)
- return;
-
- if (d->m_has_fast_pen && (d->m_pen_brush_style == Qt::SolidPattern)) {
- QD3DBatchItem *item = d->nextBatchItem();
- if (d->m_pen.isCosmetic())
- item->m_info |= QD3DBatchItem::BI_COSMETICPEN;
- item->m_info |= QD3DBatchItem::BI_TRANSFORM;
- item->m_matrix = d->m_matrix;
- d->m_draw_helper->queueAliasedLines(lines, lineCount, &item);
- } else {
- QRectF brect;
- QPainterPath path;
-
- // creates a path with the lines
- path.moveTo(lines[0].x1(), lines[0].y1());
- qreal lastx = lines[0].x2();
- qreal lasty = lines[0].y2();
- path.lineTo(lastx, lasty);
-
- for (int i=1; i<lineCount; ++i) {
- qreal x = lines[i].x1();
- qreal y = lines[i].y1();
- if (lastx != x || lasty != y) {
- path.moveTo(x, y);
- }
- path.lineTo(lines[i].x2(), lines[i].y2());
- }
-
- if (d->m_has_cosmetic_pen) {
- brect = path.controlPointRect();
- path = d->m_matrix.map(path);
- }
-
- d->strokePath(path, brect, true);
- }
-}
-
-void QDirect3DPaintEngine::drawLines(const QLine *lines, int lineCount)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::drawLines";
-#endif
- QPaintEngine::drawLines(lines, lineCount);
-}
-
-void QDirect3DPaintEngine::drawPath(const QPainterPath &path)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::drawPath";
-#endif
- Q_D(QDirect3DPaintEngine);
-
- if (path.isEmpty())
- return;
-
- QRectF brect;
- QPainterPath tpath;
-
- if (d->m_has_cosmetic_pen) {
- brect = path.controlPointRect();
- tpath = d->m_matrix.map(path);
- } else {
- tpath = path;
- }
-
- if (d->m_has_brush)
- d->fillPath(tpath, brect);
-
- if (d->m_has_pen)
- d->strokePath(tpath, brect);
-}
-
-
-QPointF QDirect3DPaintEnginePrivate::transformPoint(const QPointF &p, qreal *w) const
-{
- (*w) = 1.0f;
- qreal fx = p.x();
- qreal fy = p.y();
- qreal nx = m_matrix.m11()*fx + m_matrix.m21()*fy + m_matrix.m31();
- qreal ny = m_matrix.m12()*fx + m_matrix.m22()*fy + m_matrix.m32();
- if (!m_matrix.isAffine()) {
- *w = m_matrix.m13()*fx + m_matrix.m23()*fy + m_matrix.m33();
- //*w = 1/(*w);
- nx = nx/(*w);
- ny = ny/(*w);
- }
- return QPointF(nx, ny);
-}
-
-void QDirect3DPaintEngine::drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::drawPixmap";
-#endif
- Q_D(QDirect3DPaintEngine);
-
- if (d->m_draw_helper->needsFlushing())
- d->flushBatch();
-
- int width = pm.width();
- int height = pm.height();
-
- // transform rectangle
- QPolygonF txrect(QRectF(sr.left() / width, sr.top() / height,
- sr.width() / width, sr.height() / height));
-
- QD3DBatchItem *item = d->nextBatchItem();
- item->m_info = QD3DBatchItem::BI_PIXMAP|QD3DBatchItem::BI_TRANSFORM;
-
- item->m_pixmap = pm;
- d->verifyTexture(item->m_pixmap);
-
- item->m_matrix = d->m_matrix;
- d->m_draw_helper->queueRect(r.adjusted(-0.5f,-0.5f,-0.5f,-0.5f), item, d->m_opacity_color, txrect);
-}
-
-void QDirect3DPaintEngine::drawPoints(const QPointF *points, int pointCount)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::drawPoints (float)";
-#endif
- QPaintEngine::drawPoints(points, pointCount);
-}
-
-void QDirect3DPaintEngine::drawPoints(const QPoint *points, int pointCount)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::drawPoints";
-#endif
- QPaintEngine::drawPoints(points, pointCount);
-}
-
-void QDirect3DPaintEngine::drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::drawPolygon";
-#endif
- Q_D(QDirect3DPaintEngine);
-
- if (d->m_has_brush && mode != PolylineMode) {
- QPainterPath path;
- path.setFillRule(mode == WindingMode ? Qt::WindingFill : Qt::OddEvenFill);
- path.moveTo(points[0]);
- for (int i=1; i<pointCount; ++i)
- path.lineTo(points[i]);
- if (path.isEmpty())
- return;
- d->fillPath(path, QRectF());
- }
-
- if (d->m_has_pen) {
- QPainterPath path(points[0]);
- for (int i = 1; i < pointCount; ++i)
- path.lineTo(points[i]);
- if (mode != PolylineMode)
- path.lineTo(points[0]);
-
- if (path.isEmpty())
- return;
- QRectF brect;
- if (d->m_has_cosmetic_pen) {
- brect = path.controlPointRect();
- path = d->m_matrix.map(path);
- }
-
- d->strokePath(path, brect);
- }
-}
-
-void QDirect3DPaintEngine::drawPolygon(const QPoint *points, int pointCount, PolygonDrawMode mode)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::drawPolygon";
-#endif
- QPaintEngine::drawPolygon(points, pointCount, mode);
-}
-
-void QDirect3DPaintEngine::drawRects(const QRectF *rects, int rectCount)
-{
- Q_D(QDirect3DPaintEngine);
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::drawRects (float)";
-#endif
- for (int i=0; i<rectCount; ++i) {
- if ((d->m_brush_style == Qt::SolidPattern) &&
- (!(d->m_current_state & QD3DBatchItem::BI_AA) || d->isFastRect(rects[i]))) {
- QD3DBatchItem *item = d->nextBatchItem();
- item->m_info |= QD3DBatchItem::BI_TRANSFORM;
- item->m_info &= ~QD3DBatchItem::BI_AA;
- item->m_matrix = d->m_matrix;
- const QRectF rect = rects[i];
- d->m_draw_helper->queueRect(rect, item, d->m_brush_color);
-
- if (d->m_has_pen) {
- if (d->m_has_fast_pen && (d->m_pen_brush_style == Qt::SolidPattern)) {
- QLineF lines[4];
- qreal x1 = rect.x();
- qreal y1 = rect.y();
- qreal x2 = rect.width() + x1;
- qreal y2 = rect.height() + y1;
- lines[0] = QLineF(x1, y1, x2, y1);
- lines[1] = QLineF(x2, y1, x2, y2);
- lines[2] = QLineF(x2, y2, x1, y2);
- lines[3] = QLineF(x1, y2, x1, y1);
- QD3DBatchItem *item = d->nextBatchItem();
- if (d->m_pen.isCosmetic())
- item->m_info |= QD3DBatchItem::BI_COSMETICPEN;
- item->m_info |= QD3DBatchItem::BI_TRANSFORM;
- item->m_matrix = d->m_matrix;
- d->m_draw_helper->queueAliasedLines(lines, 4, &item);
- } else {
- QPainterPath path;
- QRectF brect;
-
- path.addRect(rects[i]);
- if (d->m_has_cosmetic_pen) {
- brect = path.controlPointRect();
- path = d->m_matrix.map(path);
- }
-
- d->strokePath(path, brect, true);
- }
- }
- } else {
- QPainterPath path;
- QRectF brect;
-
- path.addRect(rects[i]);
- if (d->m_has_cosmetic_pen) {
- brect = path.controlPointRect();
- path = d->m_matrix.map(path);
- }
-
- if (d->m_has_brush)
- d->fillPath(path, brect);
-
- if (d->m_has_pen)
- d->strokePath(path, brect, true);
- }
- }
-}
-
-void QDirect3DPaintEngine::drawRects(const QRect *rects, int rectCount)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::drawRects";
-#endif
- QPaintEngine::drawRects(rects, rectCount);
-}
-
-
-void QDirect3DPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textItem)
-{
- Q_D(QDirect3DPaintEngine);
-
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::drawTextItem";
-#endif
-// if (d->m_matrix.isScaling() || (d->m_pen_brush_style >= Qt::LinearGradientPattern
-// && d->m_pen_brush_style <= Qt::ConicalGradientPattern)) {
-// QPaintEngine::drawTextItem(p, textItem);
-// return;
-// }
-
- const QTextItemInt &ti = static_cast<const QTextItemInt &>(textItem);
- QVarLengthArray<QFixedPoint> positions;
- QVarLengthArray<glyph_t> glyphs;
- QTransform matrix;
- matrix.translate(p.x(), p.y());
- ti.fontEngine->getGlyphPositions(ti.glyphs, matrix, ti.flags, glyphs, positions);
-
- qd3d_glyph_cache()->cacheGlyphs(this, ti, glyphs, d->m_cleartype_text);
- QD3DFontTexture *font_tex = qd3d_glyph_cache()->fontTexture(ti.fontEngine);
-
- QD3DBatchItem *item = d->nextBatchItem();
- d->m_draw_helper->lockVertexBuffer();
-
- item->m_info = QD3DBatchItem::BI_TEXT
- | (d->m_current_state & ~QD3DBatchItem::BI_AA) | QD3DBatchItem::BI_TRANSFORM;
- item->m_texture = font_tex->texture;
- item->m_offset = d->m_draw_helper->index();
- item->m_matrix = d->m_matrix;
- item->m_count = 0;
- item->m_brush = d->m_pen.brush();
-
- for (int i=0; i< glyphs.size(); ++i) {
- QD3DGlyphCoord *g = qd3d_glyph_cache()->lookup(ti.fontEngine, glyphs[i]);
-
- // we don't cache glyphs with no width/height
- if (!g)
- continue;
-
- // texture coords
- qreal tex_coords[] = { g->x, g->y, g->x + g->width, g->y + g->height };
- QPointF logical_pos(qRound((positions[i].x - g->x_offset).toReal()) - 0.5f,
- qRound((positions[i].y + g->y_offset).toReal()) - 0.5f);
-
- QRectF glyph_rect(logical_pos, QSizeF(g->log_width, g->log_height));
- d->m_draw_helper->queueTextGlyph(glyph_rect, tex_coords, item, d->m_pen_color);
- }
-}
-
-void QDirect3DPaintEngine::drawTiledPixmap(const QRectF &rect, const QPixmap &pixmap, const QPointF &p)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::drawTiledPixmap";
-#endif
- QPaintEngine::drawTiledPixmap(rect, pixmap, p);
-}
-
-bool QDirect3DPaintEngine::end()
-{
- Q_D(QDirect3DPaintEngine);
-
- d->flushBatch();
-
- if (d->m_flush_on_end) {
- QPaintDevice *pdev = paintDevice();
- LPDIRECT3DSWAPCHAIN9 swapchain = swapChain(pdev);
-
-
- QWidget *w = 0;
- if (pdev->devType() == QInternal::Widget) {
- w = static_cast<QWidget *>(pdev);
- }
-
- if (w && swapchain) {
- QRect br = w->rect();
- QRect wbr = br;//.translated(-w->pos());
-
- RECT destrect;
- destrect.left = wbr.x();
- destrect.top = wbr.y();
- destrect.right = destrect.left + wbr.width();
- destrect.bottom = destrect.top + wbr.height();
-
- RECT srcrect;
- srcrect.left = br.x();// + w->x();
- srcrect.top = br.y();// + w->y();
- srcrect.right = wbr.width() + srcrect.left;
- srcrect.bottom = wbr.height() + srcrect.top;
- int devwidth = w->width();
- int devheight = w->height();
-
- if (devwidth <= srcrect.right) {
- int diff = srcrect.right - devwidth;
- srcrect.right -= diff;
- destrect.right -= diff;
- if (srcrect.right <= srcrect.left)
- return false;
- }
- if (devheight <= srcrect.bottom) {
- int diff = srcrect.bottom - devheight;
- srcrect.bottom -= diff;
- destrect.bottom -= diff;
- if (srcrect.bottom <= srcrect.top)
- return false;
- }
-
- if (FAILED(swapchain->Present(&srcrect, &destrect, w->winId(), 0, 0)))
- qWarning("QDirect3DPaintEngine: failed to present back buffer.");
- }
- }
-
-
- return true;
-}
-
-void QDirect3DPaintEngine::updateState(const QPaintEngineState &state)
-{
-#ifdef QT_DEBUG_D3D_CALLS
- qDebug() << "QDirect3DPaintEngine::updateState";
-#endif
- Q_D(QDirect3DPaintEngine);
-
- bool update_fast_pen = false;
- DirtyFlags flags = state.state();
-
- if (flags & DirtyOpacity) {
- d->m_opacity = state.opacity();
- if (d->m_opacity > 1.0f)
- d->m_opacity = 1.0f;
- if (d->m_opacity < 0.f)
- d->m_opacity = 0.f;
- uint c = (d->m_opacity * 255);
- d->m_opacity_color = D3DCOLOR_ARGB(c,c,c,c);
- flags |= (DirtyPen | DirtyBrush);
- }
-
- if (flags & DirtyCompositionMode) {
- d->m_cmode = state.compositionMode();
- }
-
- if (flags & DirtyTransform) {
- d->updateTransform(state.transform());
- update_fast_pen = true;
- }
-
- if (flags & DirtyHints) {
- if (state.renderHints() & QPainter::Antialiasing)
- d->m_current_state |= QD3DBatchItem::BI_AA;
- else
- d->m_current_state &= ~QD3DBatchItem::BI_AA;
- update_fast_pen = true;
- }
-
- if (flags & DirtyFont) {
- d->updateFont(state.font());
- }
-
- if (state.state() & DirtyClipEnabled) {
- if (state.isClipEnabled() && !d->m_clipping_enabled) {
- d->m_clipping_enabled = true;
- if (d->m_has_complex_clipping)
- d->updateClipPath(painter()->clipPath(), Qt::ReplaceClip);
- else
- d->updateClipRegion(painter()->clipRegion(), Qt::ReplaceClip);
- } else if (!state.isClipEnabled() && d->m_clipping_enabled) {
- d->m_clipping_enabled = false;
- if (d->m_has_complex_clipping)
- d->updateClipPath(QPainterPath(), Qt::NoClip);
- else
- d->updateClipRegion(QRegion(), Qt::NoClip);
- }
- }
-
- if (flags & DirtyClipRegion) {
- d->updateClipRegion(state.clipRegion(), state.clipOperation());
- }
-
- if (flags & DirtyClipPath) {
- d->updateClipPath(state.clipPath(), state.clipOperation());
- }
-
- if (flags & DirtyBrushOrigin) {
- d->m_brush_origin = QTransform();
- d->m_brush_origin.translate(-state.brushOrigin().x(),
- -state.brushOrigin().y());
- flags |= DirtyBrush;
- }
-
- if (flags & DirtyPen) {
- d->updatePen(state.pen());
- update_fast_pen = true;
- }
-
- if (flags & DirtyBrush)
- d->updateBrush(state.brush());
-
- if (update_fast_pen && d->m_has_pen) {
- if (d->m_current_state & QD3DBatchItem::BI_AA) {
- d->m_has_fast_pen = false;
- d->m_has_aa_fast_pen = ((d->m_txop <= QTransform::TxTranslate) || d->m_has_cosmetic_pen)
- && (d->m_pen_width <= 1.0f)
- && (d->m_pen.style() == Qt::SolidLine);
- } else {
- d->m_has_aa_fast_pen = false;
- d->m_has_fast_pen = ((d->m_txop <= QTransform::TxTranslate) || d->m_has_cosmetic_pen)
- && (d->m_pen.style() == Qt::SolidLine)
- && (d->m_pen.capStyle() == Qt::SquareCap);
- }
- }
-}
-
-void QDirect3DPaintEngine::cleanup()
-{
- Q_D(QDirect3DPaintEngine);
- d->cleanup();
-}
-
-void QDirect3DPaintEngine::scroll(QPaintDevice *pd, const RECT &srcrect, const RECT &destrect)
-{
- Q_D(QDirect3DPaintEngine);
- LPDIRECT3DSURFACE9 srcsurf = d->m_surface_manager.surface(pd);
- LPDIRECT3DSURFACE9 masksurf = d->m_draw_helper->freeMaskSurface();
- if (FAILED(d->m_d3d_device->StretchRect(srcsurf, &srcrect, masksurf, &srcrect, D3DTEXF_NONE)))
- qWarning("QDirect3DPaintEngine: StretchRect failed.");
- if (FAILED(d->m_d3d_device->StretchRect(masksurf, &srcrect, srcsurf, &destrect, D3DTEXF_NONE)))
- qWarning("QDirect3DPaintEngine: StretchRect failed.");
-}
-
-LPDIRECT3DSWAPCHAIN9 QDirect3DPaintEngine::swapChain(QPaintDevice *pd)
-{
- Q_D(QDirect3DPaintEngine);
-
- if (d->m_in_scene) {
- if (d->m_d3d_device == 0) {
- qWarning("QDirect3DPaintEngine: No device!");
- return false;
- }
-
- d->setRenderTechnique(QDirect3DPaintEnginePrivate::RT_NoTechnique);
- if (FAILED(d->m_d3d_device->EndScene()))
- qWarning("QDirect3DPaintEngine: failed to end scene.");
-
- d->m_in_scene = false;
- }
-
- return d->m_surface_manager.swapChain(pd);
-}
-
-void QDirect3DPaintEngine::releaseSwapChain(QPaintDevice *pd)
-{
- Q_D(QDirect3DPaintEngine);
- d->m_surface_manager.releasePaintDevice(pd);
-}
-
-HDC QDirect3DPaintEngine::getDC() const
-{
- QDirect3DPaintEnginePrivate *d = const_cast<QDirect3DPaintEnginePrivate *>(d_func());
-
- if (!d->m_dc && d->m_current_surface) {
- d->m_dcsurface = d->m_current_surface;
- if (FAILED(d->m_current_surface->GetDC(&d->m_dc)))
- qWarning() << "QDirect3DPaintEngine::getDC() failed!";
- }
-
- return d->m_dc;
-}
-
-void QDirect3DPaintEngine::setFlushOnEnd(bool flushOnEnd)
-{
- Q_D(QDirect3DPaintEngine);
-
- d->m_flush_on_end = flushOnEnd;
-}
-
-bool QDirect3DPaintEngine::hasDirect3DSupport()
-{
- Q_D(QDirect3DPaintEngine);
- return d->m_supports_d3d;
-}
-
-QT_END_NAMESPACE
-
-#include "qpaintengine_d3d.moc"
diff --git a/src/gui/painting/qpaintengine_d3d.fx b/src/gui/painting/qpaintengine_d3d.fx
deleted file mode 100644
index 1148b2a..0000000
--- a/src/gui/painting/qpaintengine_d3d.fx
+++ /dev/null
@@ -1,608 +0,0 @@
-bool g_mCosmeticPen;
-int4 g_mChannel;
-float2 g_mMaskOffset;
-int2 g_mMaskSize;
-float4x4 g_mMaskProjection;
-float4x4 g_mViewProjection;
-float4x4 g_mTransformation;
-texture g_mAAMask;
-texture g_mTexture;
-int g_mBrushMode;
-float g_mFocalDist;
-
-#define M_PI 3.14159265358979323846
-
-sampler PixmapSampler = sampler_state
-{
- texture = <g_mTexture>;
- MIPFILTER = NONE;
- MINFILTER = LINEAR;
- MAGFILTER = LINEAR;
-};
-
-sampler TextSampler = sampler_state
-{
- texture = <g_mTexture>;
- MIPFILTER = NONE;
- MINFILTER = POINT;
- MAGFILTER = POINT;
-};
-
-sampler AAMaskSampler = sampler_state
-{
- texture = <g_mAAMask>;
- AddressU = WRAP;
- AddressV = WRAP;
- AddressW = WRAP;
- MIPFILTER = NONE;
- MINFILTER = POINT;
- MAGFILTER = POINT;
-};
-
-struct VS_FULL
-{
- float4 Position : POSITION;
- float4 Diffuse : COLOR0;
- float4 TexCoords0 : TEXCOORD0;
- float4 TexCoords1 : TEXCOORD1;
-};
-
-VS_FULL TrapezoidVS( float4 Position : POSITION,
- float4 Diffuse : COLOR0,
- float4 TexCoords0 : TEXCOORD0,
- float4 TexCoords1 : TEXCOORD1)
-{
- VS_FULL Output;
-
- float a = (TexCoords1.x * Position.x) + (TexCoords1.z * (1.0 - Position.x) ); // left or right a
- float b = (TexCoords1.y * Position.x) + (TexCoords1.w * (1.0 - Position.x) ); // left or right b
- float d = 1.0 - (Position.x * 2);
-
- Position.x = (a * Position.y + b) + ( sqrt( abs(a * a) ) * d );
- //Position.x += step(abs(a), 0) * d;
- Position.x += (0.5 * d);
-
- Output.Position = mul(Position, g_mMaskProjection);
- Output.Diffuse = Diffuse;
- Output.TexCoords0 = TexCoords0;
- Output.TexCoords1 = TexCoords1;
-
- return Output;
-}
-
-struct PS_OUTPUT
-{
- float4 Color : COLOR0;
-};
-
-PS_OUTPUT TrapezoidPS(VS_FULL In, float2 pixelPos : VPOS)
-{
- PS_OUTPUT Out;
-
- float top = max(pixelPos.y - 0.5, In.TexCoords0.x);
- float bottom = min(pixelPos.y + 0.5, In.TexCoords0.y);
-
- float area = bottom - top;
-
- float left = pixelPos.x - 0.5;
- float right = pixelPos.x + 0.5;
-
- // use line equations to compute intersections of left/right edges with top/bottom of truncated pixel
- // vecX: x = (left, top), y = (left, bottom), z = (right, top), w = (right, bottom)
- float4 vecX = In.TexCoords1.xxzz * float2(top, bottom).xyxy + In.TexCoords1.yyww;
-
- float2 invA = In.TexCoords0.zw;
-
- // transform right line to left to be able to use same calculations for both
- vecX.zw = 2 * pixelPos.x - vecX.zw;
-
- float2 topX = float2(vecX.x, vecX.z);
- float2 bottomX = float2(vecX.y, vecX.w);
-
- // transform lines such that top intersection is to the right of bottom intersection
- float2 topXTemp = max(topX, bottomX);
- float2 bottomXTemp = min(topX, bottomX);
-
- // make sure line slope reflects mirrored lines
- invA = lerp(invA, -invA, step(topX, bottomX));
-
- float2 vecLeftRight = float2(left, right);
-
- // compute the intersections of the lines with the left and right edges of the pixel
- // intersectY: x = (left_line, left), y = (left_line, right), z = (right_line, left), w = (right_line, right)
- float4 intersectY = top + (vecLeftRight.xyxy - topXTemp.xxyy) * invA.xxyy;
-
- float2 temp = lerp(area - 0.5 * (right - bottomXTemp) * (bottom - intersectY.yw), // left < bottom < right < top
- (0.5 * (topXTemp + bottomXTemp) - left) * area, // left < bottom < top < right
- step(topXTemp, right));
-
- float2 excluded = 0.5 * (intersectY.xz - top) * (topXTemp - left); // bottom < left < top < right
-
- excluded = lerp(0.5 * (intersectY.yw + intersectY.xz) - top, // bottom < left < right < top
- excluded, step(topXTemp, right));
-
- excluded = lerp(temp, // left < bottom < right (see calculation of temp)
- excluded, step(bottomXTemp, left));
-
- excluded = lerp(float2(area, area), // right < bottom < top
- excluded, step(bottomXTemp, right));
-
- excluded *= step(left, topXTemp);
-
- float result = (area - excluded.x - excluded.y) * step(top, bottom);
- Out.Color.r = result * g_mChannel[0];
- Out.Color.g = result * g_mChannel[1];
- Out.Color.b = result * g_mChannel[2];
- Out.Color.a = result * g_mChannel[3];
-
- return Out;
-}
-
-VS_FULL ViewProjectionVS( float4 Position : POSITION,
- float4 Diffuse : COLOR0,
- float4 TexCoords0 : TEXCOORD0,
- float4 TexCoords1 : TEXCOORD1)
-{
- VS_FULL Output;
-
- Output.Position = mul(Position, g_mTransformation);
- Output.Position = mul(Output.Position, g_mViewProjection);
- Output.Diffuse = Diffuse;
- Output.TexCoords0 = TexCoords0;
- Output.TexCoords1 = TexCoords1;
-
- return Output;
-}
-
-PS_OUTPUT DirectMaskPS(VS_FULL In, float2 pixelPos : VPOS)
-{
- PS_OUTPUT Out;
- Out.Color = In.Diffuse;
-
- float2 maskcoords = ( (pixelPos + g_mMaskOffset) - 0.5 ) / g_mMaskSize;
- float2 clipcoords = (pixelPos - 0.5) / g_mMaskSize;
-
- float4 c = tex2D(AAMaskSampler, maskcoords.xy) * Out.Color.a;
- Out.Color.a = c.r * g_mChannel[0];
- Out.Color.a += c.g * g_mChannel[1];
- Out.Color.a += c.b * g_mChannel[2];
- Out.Color.a += c.a * g_mChannel[3];
-
- return Out;
-}
-
-PS_OUTPUT MaskPS(VS_FULL In, float2 pixelPos : VPOS)
-{
- PS_OUTPUT Out;
-
- if (g_mBrushMode == 1) {
- float x = In.TexCoords0.x;
- float y = In.TexCoords0.y;
- x = x - int(x);
- y = y - int(y);
- Out.Color = tex2D(PixmapSampler, float2(x, y));
- Out.Color.a = Out.Color.a * In.Diffuse.a;
- } else if (g_mBrushMode == 2) {
- Out.Color = tex1D(PixmapSampler, In.TexCoords0.x);
- } else if (g_mBrushMode == 3) {
- float t = atan2(In.TexCoords0.y, -In.TexCoords0.x) / (2 * M_PI);
- Out.Color = tex1D(PixmapSampler, t + 0.5);
- } else if (g_mBrushMode == 4) {
- float2 tc = float2(In.TexCoords0.x, abs(In.TexCoords0.y));
- float a = (tc.x - g_mFocalDist) / tc.y;
- float b = g_mFocalDist;
-
- float A = 1 + (a * a);
- float B = 2.0 * a * b;
- float C = (b * b) - 1;
-
- float y = (-B + sqrt(B*B - 4.0*A*C)) / (2.0*A);
- Out.Color = tex1D(PixmapSampler, (tc.y / y) );
- } else if (g_mBrushMode == 5) {
- Out.Color = tex2D(PixmapSampler, In.TexCoords0.xy);
- Out.Color = Out.Color * In.Diffuse;
- } else {
- Out.Color = In.Diffuse;
- }
-
- float2 maskcoords = ( (pixelPos + g_mMaskOffset) - 0.5 ) / g_mMaskSize;
-
- float4 c = tex2D(AAMaskSampler, maskcoords.xy) * Out.Color.a;
- Out.Color.a = c.r * g_mChannel[0];
- Out.Color.a += c.g * g_mChannel[1];
- Out.Color.a += c.b * g_mChannel[2];
- Out.Color.a += c.a * g_mChannel[3];
-
- return Out;
-}
-
-struct VS_NORMAL
-{
- float4 Position : POSITION;
- float4 Diffuse : COLOR0;
- float4 TexCoords : TEXCOORD0;
-};
-
-VS_NORMAL MaskProjectionVS(VS_NORMAL In)
-{
- VS_NORMAL Output;
-
- Output.Position = mul(In.Position, g_mMaskProjection);
- Output.Diffuse = In.Diffuse;
- Output.TexCoords = In.TexCoords;
-
- return Output;
-}
-
-float4 DirectSimplePS(float4 Color : COLOR0) : COLOR0
-{
- return Color;
-}
-
-float4 SimplePS(float4 Color : COLOR0, float4 TexCoords : TEXCOORD0) : COLOR0
-{
- if (g_mBrushMode == 1) {
- float opacity = Color.a;
- float x = TexCoords.x;
- float y = TexCoords.y;
- x = x - int(x);
- y = y - int(y);
- Color = tex2D(PixmapSampler, float2(x, y));
- Color.a = Color.a * opacity;
- } else if (g_mBrushMode == 2) {
- Color = tex1D(PixmapSampler, TexCoords.x);
- } else if (g_mBrushMode == 3) {
- float t = atan2(TexCoords.y, -TexCoords.x) / (2 * M_PI);
- Color = tex1D(PixmapSampler, t + 0.5);
- } else if (g_mBrushMode == 4) {
- float2 tc = float2(TexCoords.x, abs(TexCoords.y));
- float a = (tc.x - g_mFocalDist) / tc.y;
- float b = g_mFocalDist;
-
- float A = 1 + (a * a);
- float B = 2.0 * a * b;
- float C = (b * b) - 1;
-
- float y = (-B + sqrt(B*B - 4.0*A*C)) / (2.0*A);
- Color = tex1D(PixmapSampler, (tc.y / y) );
- } else if (g_mBrushMode == 5) {
- Color = tex2D(PixmapSampler, TexCoords.xy) * Color;
- }
-
- return Color;
-}
-
-float4 TextPS(float4 Color : COLOR0, float4 TexCoords : TEXCOORD0) : COLOR0
-{
- Color.a *= tex2D(TextSampler, TexCoords.xy).a;
- return Color;
-}
-
-float4 ClearTypePS(float4 Color : COLOR0, float4 TexCoords : TEXCOORD0) : COLOR0
-{
-// if (g_mUsePixmap) {
-// float4 MaskColor = tex2D(PixmapSampler, TexCoords.xy);
-// Color = float4(1.0, 0.0, 0.0, 1.0);
-// Color.a = (1 - MaskColor.a) + MaskColor.a * Color.a;
-// Color.r = (1.0 - MaskColor.r) + (MaskColor.r * Color.r);
-// Color.g = (1.0 - MaskColor.g) + (MaskColor.g * Color.g);
-// Color.b = (1.0 - MaskColor.b) + (MaskColor.b * Color.b);
-// Color = MaskColor;
- return tex2D(PixmapSampler, TexCoords.xy);
-}
-
-VS_NORMAL NoTxAliasedVS(VS_NORMAL In)
-{
- VS_NORMAL Output;
-
- Output.Position = mul(In.Position, g_mViewProjection);
- Output.Diffuse = In.Diffuse;
- Output.TexCoords = In.TexCoords;
-
- return Output;
-}
-
-VS_NORMAL AliasedVS(VS_NORMAL In)
-{
- VS_NORMAL Output;
-
- Output.Position = mul(In.Position, g_mTransformation);
- Output.Position = mul(Output.Position, g_mViewProjection);
- Output.Diffuse = In.Diffuse;
- Output.TexCoords = In.TexCoords;
-
- return Output;
-}
-
-VS_NORMAL AliasedLinesVS(VS_NORMAL In)
-{
- VS_NORMAL Output;
-
- float4 start = float4(In.Position.x, In.Position.y, 0.5, In.Position.w);
- float4 end = float4(In.TexCoords.z, In.TexCoords.w, 0.5, In.Position.w);
- if (g_mCosmeticPen) {
- start = mul(start, g_mTransformation);
- end = mul(end, g_mTransformation);
- }
-
- float2 line_vec = end - start;
- float2 vec = normalize(line_vec);
- float2 norm = float2(-vec.y, vec.x);
-
- float pen_width = In.Position.z;
- norm = norm * pen_width * 0.5;
- vec = vec * pen_width * 0.5;
-
- Output.Position.w = In.Position.w;
- Output.Position.x = start.x + (vec.x * In.TexCoords.x);
- Output.Position.x = Output.Position.x + (norm.x * In.TexCoords.y);
- Output.Position.x = Output.Position.x + (line_vec.x * step(0, In.TexCoords.x));
- Output.Position.y = start.y + (vec.y * In.TexCoords.x);
- Output.Position.y = Output.Position.y + (norm.y * In.TexCoords.y);
- Output.Position.y = Output.Position.y + (line_vec.y * step(0, In.TexCoords.x));
- Output.Position.z = 0.5;
-
- if (!g_mCosmeticPen) {
- Output.Position = mul(Output.Position, g_mTransformation);
- }
- Output.Position = mul(Output.Position, g_mViewProjection);
-
- Output.Diffuse = In.Diffuse;
- Output.TexCoords = In.TexCoords;
-
- return Output;
-}
-
-
-technique Antialiased
-{
- pass PASS_AA_CREATEMASK
- {
- StencilEnable = False;
- ZWriteEnable = False;
- ColorWriteEnable = 0x0f;
- ZEnable = False;
-
- SrcBlend = One;
- DestBlend = One;
-
- VertexShader = compile vs_3_0 TrapezoidVS();
- PixelShader = compile ps_3_0 TrapezoidPS();
- }
-
- pass PASS_AA_DRAW
- {
- StencilEnable = False;
- ZFunc = Greater;
- ZWriteEnable = False;
- ZEnable = True;
- ColorWriteEnable = 0x0f;
-
- VertexShader = compile vs_3_0 ViewProjectionVS();
- PixelShader = compile ps_3_0 MaskPS();
- }
-
- pass PASS_AA_DRAW_DIRECT
- {
- StencilEnable = False;
- ZFunc = Greater;
- ZEnable = True;
- ZWriteEnable = False;
- ColorWriteEnable = 0x0f;
-
- VertexShader = compile vs_3_0 ViewProjectionVS();
- PixelShader = compile ps_3_0 DirectMaskPS();
- }
-}
-
-technique Aliased
-{
- pass PASS_STENCIL_ODDEVEN
- {
- TwoSidedStencilMode = False;
- StencilEnable = True;
- StencilPass = Invert;
- StencilFunc = Always;
- ColorWriteEnable = 0;
-
- ZEnable = False;
- ZWriteEnable = False;
-
- VertexShader = compile vs_1_1 NoTxAliasedVS();
- PixelShader = compile ps_2_0 DirectSimplePS();
- }
-
- pass PASS_STENCIL_WINDING
- {
- TwoSidedStencilMode = True;
- StencilEnable = True;
- StencilRef = 0;
- StencilMask = 0xFFFFFFFF;
-
- CCW_StencilPass = Incr;
- CCW_StencilFunc = Always;
-
- StencilPass = Decr;
- StencilFunc = Always;
-
- ColorWriteEnable = 0;
-
- ZEnable = False;
- ZWriteEnable = False;
-
- VertexShader = compile vs_1_1 NoTxAliasedVS();
- PixelShader = compile ps_2_0 DirectSimplePS();
- }
-
- pass PASS_STENCIL_DRAW
- {
- TwoSidedStencilMode = False;
- StencilEnable = True;
- StencilFunc = NotEqual;
- StencilMask = 0xFFFFFFFF;
- StencilRef = 0;
- StencilPass = Zero;
- StencilFail = Zero;
- StencilZFail = Zero;
-
- ColorWriteEnable = 0x0f;
- ZEnable = True;
- ZWriteEnable = False;
- ZFunc = Greater;
-
- VertexShader = compile vs_1_1 AliasedVS();
- PixelShader = compile ps_2_0 SimplePS();
- }
-
- pass PASS_STENCIL_DRAW_DIRECT
- {
- TwoSidedStencilMode = False;
- StencilEnable = True;
- StencilFunc = NotEqual;
- StencilMask = 0xFFFFFFFF;
- StencilRef = 0;
- StencilPass = Zero;
- StencilFail = Zero;
- StencilZFail = Zero;
-
- ColorWriteEnable = 0x0f;
- ZEnable = True;
- ZWriteEnable = False;
- ZFunc = Greater;
-
- VertexShader = compile vs_1_1 AliasedVS();
- PixelShader = compile ps_2_0 DirectSimplePS();
- }
-
- pass PASS_STENCIL_CLIP
- {
- TwoSidedStencilMode = False;
- StencilEnable = True;
- StencilFunc = NotEqual;
- StencilMask = 0xFFFFFFFF;
- StencilRef = 0;
- StencilPass = Zero;
- StencilFail = Zero;
- StencilZFail = Zero;
-
- ColorWriteEnable = 0;
- ZEnable = True;
- ZWriteEnable = True;
- ZFunc = Always;
-
- VertexShader = compile vs_1_1 NoTxAliasedVS();
- PixelShader = compile ps_2_0 DirectSimplePS();
- }
-
- pass PASS_STENCIL_NOSTENCILCHECK
- {
- StencilEnable = False;
-
- ZEnable = True;
- ZWriteEnable = False;
- ZFunc = Greater;
-
- ColorWriteEnable = 0x0f;
-
- SrcBlend = SrcAlpha;
- DestBlend = InvSrcAlpha;
-
- VertexShader = compile vs_1_1 AliasedVS();
- PixelShader = compile ps_2_0 SimplePS();
- }
-
- pass PASS_STENCIL_NOSTENCILCHECK_DIRECT
- {
- StencilEnable = False;
-
- ZEnable = True;
- ZWriteEnable = False;
- ZFunc = Greater;
-
- ColorWriteEnable = 0x0f;
-
- SrcBlend = SrcAlpha;
- DestBlend = InvSrcAlpha;
-
- VertexShader = compile vs_1_1 AliasedVS();
- PixelShader = compile ps_2_0 DirectSimplePS();
- }
-
- pass PASS_TEXT
- {
- StencilEnable = False;
-
- ZEnable = True;
- ZWriteEnable = False;
- ZFunc = Greater;
-
- ColorWriteEnable = 0x0f;
-
- SrcBlend = SrcAlpha;
- DestBlend = InvSrcAlpha;
-
- VertexShader = compile vs_1_1 AliasedVS();
- PixelShader = compile ps_2_0 TextPS();
- }
-
- pass PASS_CLEARTYPE_TEXT
- {
- StencilEnable = False;
-
- ZEnable = True;
- ZWriteEnable = False;
- ZFunc = Greater;
-
- ColorWriteEnable = 0x0f;
-
-// SrcBlend = SrcAlpha;
-// DestBlend = InvSrcAlpha;
-
-// SrcBlend = DestColor;
-// DestBlend = Zero;
- SrcBlend = BlendFactor;
- DestBlend = InvSrcColor;
-
-// SrcBlend = Zero;
-// DestBlend = SrcColor;
-
-// SrcBlend = One;
-// DestBlend = Zero;
-
- VertexShader = compile vs_3_0 AliasedVS();
- PixelShader = compile ps_3_0 ClearTypePS();
- }
-
- pass PASS_ALIASED_LINES
- {
- TwoSidedStencilMode = False;
- StencilEnable = True;
- StencilPass = Invert;
- StencilFunc = Always;
- ColorWriteEnable = 0;
-
- ZEnable = False;
- ZWriteEnable = False;
-
- VertexShader = compile vs_1_1 AliasedLinesVS();
- PixelShader = compile ps_2_0 DirectSimplePS();
- }
-
- pass PASS_ALIASED_LINES_DIRECT
- {
- StencilEnable = False;
-
- ZEnable = True;
- ZWriteEnable = False;
- ZFunc = Greater;
-
- ColorWriteEnable = 0x0f;
-
- SrcBlend = SrcAlpha;
- DestBlend = InvSrcAlpha;
-
- VertexShader = compile vs_1_1 AliasedLinesVS();
- PixelShader = compile ps_2_0 DirectSimplePS();
- }
-}
-
diff --git a/src/gui/painting/qpaintengine_d3d.qrc b/src/gui/painting/qpaintengine_d3d.qrc
deleted file mode 100644
index c106f2b..0000000
--- a/src/gui/painting/qpaintengine_d3d.qrc
+++ /dev/null
@@ -1,5 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource>
- <file>qpaintengine_d3d.fx</file>
-</qresource>
-</RCC>
diff --git a/src/gui/painting/qpaintengine_d3d_p.h b/src/gui/painting/qpaintengine_d3d_p.h
deleted file mode 100644
index 8fa5cf6..0000000
--- a/src/gui/painting/qpaintengine_d3d_p.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
-** Beta Release License Agreement.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
-** package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QPAINTENGINE_D3D_P_H
-#define QPAINTENGINE_D3D_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists for the convenience
-// of other Qt classes. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "QtGui/qpaintengine.h"
-#include <d3d9.h>
-
-QT_BEGIN_NAMESPACE
-
-class QDirect3DPaintEnginePrivate;
-class QDirect3DPaintEngine : public QPaintEngine
-{
- Q_DECLARE_PRIVATE(QDirect3DPaintEngine)
-public:
- QDirect3DPaintEngine();
- ~QDirect3DPaintEngine();
- bool begin(QPaintDevice *device);
-
- void drawEllipse(const QRectF &rect);
- void drawEllipse(const QRect &rect);
-
- void drawImage(const QRectF &rectangle, const QImage &image, const QRectF &sr,
- Qt::ImageConversionFlags flags = Qt::AutoColor);
-
- void drawLines(const QLineF *lines, int lineCount);
- void drawLines(const QLine *lines, int lineCount);
-
- void drawPath(const QPainterPath &path);
-
- void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr);
-
- void drawPoints(const QPointF *points, int pointCount);
- void drawPoints(const QPoint *points, int pointCount);
-
- void drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode);
- void drawPolygon(const QPoint *points, int pointCount, PolygonDrawMode mode);
-
- void drawRects(const QRectF *rects, int rectCount);
- void drawRects(const QRect * rects, int rectCount);
-
- void drawTextItem(const QPointF &p, const QTextItem &textItem);
-
- void drawTiledPixmap(const QRectF &r, const QPixmap &pm, const QPointF &sr);
-
- bool end();
-
- Type type() const { return Direct3D; }
- void updateState(const QPaintEngineState &state);
-
- void cleanup();
-
- HDC getDC() const;
- void setFlushOnEnd(bool flushOnEnd);
- bool hasDirect3DSupport();
-
-public:
- void scroll(QPaintDevice *pd, const RECT &srcrect, const RECT &destrect);
- LPDIRECT3DSWAPCHAIN9 swapChain(QPaintDevice *pd);
- void releaseSwapChain(QPaintDevice *pd);
-
-private:
- Q_DISABLE_COPY(QDirect3DPaintEngine)
- friend class QPixmap;
- friend class QD3DGlyphCache;
-};
-
-QT_END_NAMESPACE
-
-#endif
diff --git a/src/gui/painting/qpaintengine_p.h b/src/gui/painting/qpaintengine_p.h
index eeba7ec..0b5e175 100644
--- a/src/gui/painting/qpaintengine_p.h
+++ b/src/gui/painting/qpaintengine_p.h
@@ -83,10 +83,12 @@ public:
if (systemClip.isEmpty())
return;
- if (systemTransform.type() <= QTransform::TxTranslate)
- systemClip.translate(qRound(systemTransform.dx()), qRound(systemTransform.dy()));
- else
- systemClip = systemTransform.map(systemClip);
+ if (hasSystemTransform) {
+ if (systemTransform.type() <= QTransform::TxTranslate)
+ systemClip.translate(qRound(systemTransform.dx()), qRound(systemTransform.dy()));
+ else
+ systemClip = systemTransform.map(systemClip);
+ }
// Make sure we're inside the viewport.
if (hasSystemViewport) {
@@ -101,7 +103,7 @@ public:
inline void setSystemTransform(const QTransform &xform)
{
systemTransform = xform;
- if ((hasSystemTransform = !xform.isIdentity()))
+ if ((hasSystemTransform = !xform.isIdentity()) || hasSystemViewport)
transformSystemClip();
systemStateChanged();
}
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index addd63d..9b13352 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -509,16 +509,20 @@ bool QRasterPaintEngine::begin(QPaintDevice *device)
if (d->mono_surface)
d->glyphCacheType = QFontEngineGlyphCache::Raster_Mono;
-#ifdef Q_WS_WIN
- else if (qt_cleartype_enabled) {
+#if defined(Q_WS_WIN)
+ else if (qt_cleartype_enabled)
+#elif defined (Q_WS_MAC)
+ else if (true)
+#else
+ else if (false)
+#endif
+ {
QImage::Format format = static_cast<QImage *>(d->device)->format();
if (format == QImage::Format_ARGB32_Premultiplied || format == QImage::Format_RGB32)
d->glyphCacheType = QFontEngineGlyphCache::Raster_RGBMask;
else
d->glyphCacheType = QFontEngineGlyphCache::Raster_A8;
- }
-#endif
- else
+ } else
d->glyphCacheType = QFontEngineGlyphCache::Raster_A8;
setActive(true);
@@ -618,22 +622,22 @@ void QRasterPaintEngine::updateMatrix(const QTransform &matrix)
d->isPlain45DegreeRotation = false;
if (txop >= QTransform::TxRotate) {
d->isPlain45DegreeRotation =
- (qFuzzyCompare(matrix.m11() + 1, qreal(1))
- && qFuzzyCompare(matrix.m12(), qreal(1))
- && qFuzzyCompare(matrix.m21(), qreal(-1))
- && qFuzzyCompare(matrix.m22() + 1, qreal(1))
+ (qFuzzyIsNull(matrix.m11())
+ && qFuzzyIsNull(matrix.m12() - qreal(1))
+ && qFuzzyIsNull(matrix.m21() + qreal(1))
+ && qFuzzyIsNull(matrix.m22())
)
||
- (qFuzzyCompare(matrix.m11(), qreal(-1))
- && qFuzzyCompare(matrix.m12() + 1, qreal(1))
- && qFuzzyCompare(matrix.m21() + 1, qreal(1))
- && qFuzzyCompare(matrix.m22(), qreal(-1))
+ (qFuzzyIsNull(matrix.m11() + qreal(1))
+ && qFuzzyIsNull(matrix.m12())
+ && qFuzzyIsNull(matrix.m21())
+ && qFuzzyIsNull(matrix.m22() + qreal(1))
)
||
- (qFuzzyCompare(matrix.m11() + 1, qreal(1))
- && qFuzzyCompare(matrix.m12(), qreal(-1))
- && qFuzzyCompare(matrix.m21(), qreal(1))
- && qFuzzyCompare(matrix.m22() + 1, qreal(1))
+ (qFuzzyIsNull(matrix.m11())
+ && qFuzzyIsNull(matrix.m12() + qreal(1))
+ && qFuzzyIsNull(matrix.m21() - qreal(1))
+ && qFuzzyIsNull(matrix.m22())
)
;
}
@@ -1140,6 +1144,33 @@ void QRasterPaintEnginePrivate::updateMatrixData(QSpanData *spanData, const QBru
}
}
+// #define QT_CLIPPING_RATIOS
+
+#ifdef QT_CLIPPING_RATIOS
+int rectClips;
+int regionClips;
+int totalClips;
+
+static void checkClipRatios(QRasterPaintEnginePrivate *d)
+{
+ if (d->clip()->hasRectClip)
+ rectClips++;
+ if (d->clip()->hasRegionClip)
+ regionClips++;
+ totalClips++;
+
+ if ((totalClips % 5000) == 0) {
+ printf("Clipping ratio: rectangular=%f%%, region=%f%%, complex=%f%%\n",
+ rectClips * 100.0 / (qreal) totalClips,
+ regionClips * 100.0 / (qreal) totalClips,
+ (totalClips - rectClips - regionClips) * 100.0 / (qreal) totalClips);
+ totalClips = 0;
+ rectClips = 0;
+ regionClips = 0;
+ }
+
+}
+#endif
/*!
\internal
@@ -1241,6 +1272,10 @@ void QRasterPaintEngine::clip(const QVectorPath &path, Qt::ClipOperation op)
d->solid_color_filler.clip = d->clip();
d->solid_color_filler.adjustSpanMethods();
+
+#ifdef QT_CLIPPING_RATIOS
+ checkClipRatios(d);
+#endif
}
@@ -1315,6 +1350,11 @@ void QRasterPaintEngine::clip(const QRect &rect, Qt::ClipOperation op)
d->solid_color_filler.clip = d->clip();
d->solid_color_filler.adjustSpanMethods();
+
+
+#ifdef QT_CLIPPING_RATIOS
+ checkClipRatios(d);
+#endif
}
/*!
@@ -3142,7 +3182,7 @@ void QRasterPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textIte
// ### cases we should delegate painting to the font engine
// ### directly...
-#if defined(Q_WS_WIN) && !defined(Q_OS_WINCE)
+#if defined(Q_WS_WIN) && !defined(Q_WS_WINCE)
QFontEngine::Type fontEngineType = ti.fontEngine->type();
// qDebug() << "type" << fontEngineType << s->matrix.type();
if ((fontEngineType == QFontEngine::Win && !((QFontEngineWin *) ti.fontEngine)->ttf && s->matrix.type() > QTransform::TxTranslate)
@@ -4369,6 +4409,9 @@ void QClipData::fixup()
*/
void QClipData::setClipRect(const QRect &rect)
{
+ if (rect == clipRect)
+ return;
+
// qDebug() << "setClipRect" << clipSpanHeight << count << allocated << rect;
hasRectClip = true;
clipRect = rect;
@@ -4378,6 +4421,11 @@ void QClipData::setClipRect(const QRect &rect)
ymin = qMin(rect.y(), clipSpanHeight);
ymax = qMin(rect.y() + rect.height(), clipSpanHeight);
+ if (m_spans) {
+ delete m_spans;
+ m_spans = 0;
+ }
+
// qDebug() << xmin << xmax << ymin << ymax;
}
@@ -4401,6 +4449,12 @@ void QClipData::setClipRegion(const QRegion &region)
ymin = rect.y();
ymax = rect.y() + rect.height();
}
+
+ if (m_spans) {
+ delete m_spans;
+ m_spans = 0;
+ }
+
}
/*!
diff --git a/src/gui/painting/qpaintengine_x11.cpp b/src/gui/painting/qpaintengine_x11.cpp
index d931f55..4b2fbca 100644
--- a/src/gui/painting/qpaintengine_x11.cpp
+++ b/src/gui/painting/qpaintengine_x11.cpp
@@ -1760,7 +1760,10 @@ void QX11PaintEngine::drawPath(const QPainterPath &path)
QRectF deviceRect(0, 0, d->pdev->width(), d->pdev->height());
// necessary to get aliased alphablended primitives to be drawn correctly
if (d->cpen.isCosmetic() || d->has_scaling_xform) {
- stroker.setWidth(width == 0 ? 1 : width * d->xform_scale);
+ if (d->cpen.isCosmetic())
+ stroker.setWidth(width == 0 ? 1 : width);
+ else
+ stroker.setWidth(width * d->xform_scale);
stroker.d_ptr->stroker.setClipRect(deviceRect);
stroke = stroker.createStroke(path * d->matrix);
if (stroke.isEmpty())
@@ -2349,7 +2352,9 @@ void QX11PaintEngine::drawFreetype(const QPointF &p, const QTextItemInt &ti)
GlyphSet glyphSet = set->id;
const QColor &pen = d->cpen.color();
::Picture src = X11->getSolidFill(d->scrn, pen);
- XRenderPictFormat *maskFormat = XRenderFindStandardFormat(X11->display, ft->xglyph_format);
+ XRenderPictFormat *maskFormat = 0;
+ if (ft->xglyph_format != PictStandardA1)
+ maskFormat = XRenderFindStandardFormat(X11->display, ft->xglyph_format);
enum { t_min = SHRT_MIN, t_max = SHRT_MAX };
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index 2beb8c2..b158392 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -1465,8 +1465,8 @@ bool QPainter::isActive() const
/*!
Initializes the painters pen, background and font to the same as
- the given \a widget. Call this function after begin() while the
- painter is active.
+ the given \a widget. This function is called automatically when the
+ painter is opened on a QWidget.
\sa begin(), {QPainter#Settings}{Settings}
*/
@@ -1484,7 +1484,9 @@ void QPainter::initFrom(const QWidget *widget)
d->state->bgBrush = pal.brush(widget->backgroundRole());
d->state->deviceFont = QFont(widget->font(), const_cast<QWidget*> (widget));
d->state->font = d->state->deviceFont;
- if (d->engine) {
+ if (d->extended) {
+ d->extended->penChanged();
+ } else if (d->engine) {
d->engine->setDirty(QPaintEngine::DirtyPen);
d->engine->setDirty(QPaintEngine::DirtyBrush);
d->engine->setDirty(QPaintEngine::DirtyFont);
@@ -2396,7 +2398,6 @@ QRegion QPainter::clipRegion() const
// ### Falcon: Use QPainterPath
for (int i=0; i<d->state->clipInfo.size(); ++i) {
const QPainterClipInfo &info = d->state->clipInfo.at(i);
- QRegion other;
switch (info.clipType) {
case QPainterClipInfo::RegionClip: {
@@ -2449,15 +2450,20 @@ QRegion QPainter::clipRegion() const
lastWasNothing = false;
continue;
}
- if (info.operation == Qt::IntersectClip)
- region &= QRegion(info.rect) * matrix;
- else if (info.operation == Qt::UniteClip)
+ if (info.operation == Qt::IntersectClip) {
+ // Use rect intersection if possible.
+ if (matrix.type() <= QTransform::TxScale)
+ region &= matrix.mapRect(info.rect);
+ else
+ region &= matrix.map(QRegion(info.rect));
+ } else if (info.operation == Qt::UniteClip) {
region |= QRegion(info.rect) * matrix;
- else if (info.operation == Qt::NoClip) {
+ } else if (info.operation == Qt::NoClip) {
lastWasNothing = true;
region = QRegion();
- } else
+ } else {
region = QRegion(info.rect) * matrix;
+ }
break;
}
@@ -2468,15 +2474,20 @@ QRegion QPainter::clipRegion() const
lastWasNothing = false;
continue;
}
- if (info.operation == Qt::IntersectClip)
- region &= QRegion(info.rectf.toRect()) * matrix;
- else if (info.operation == Qt::UniteClip)
+ if (info.operation == Qt::IntersectClip) {
+ // Use rect intersection if possible.
+ if (matrix.type() <= QTransform::TxScale)
+ region &= matrix.mapRect(info.rectf.toRect());
+ else
+ region &= matrix.map(QRegion(info.rectf.toRect()));
+ } else if (info.operation == Qt::UniteClip) {
region |= QRegion(info.rectf.toRect()) * matrix;
- else if (info.operation == Qt::NoClip) {
+ } else if (info.operation == Qt::NoClip) {
lastWasNothing = true;
region = QRegion();
- } else
+ } else {
region = QRegion(info.rectf.toRect()) * matrix;
+ }
break;
}
}
@@ -5165,6 +5176,9 @@ void QPainter::drawPixmap(const QPointF &p, const QPixmap &pm)
Q_D(QPainter);
+ if (!d->engine)
+ return;
+
#ifndef QT_NO_DEBUG
qt_painter_thread_test(d->device->devType(), "drawPixmap()");
#endif
@@ -5174,9 +5188,6 @@ void QPainter::drawPixmap(const QPointF &p, const QPixmap &pm)
return;
}
- if (!d->engine)
- return;
-
qreal x = p.x();
qreal y = p.y();
@@ -6055,22 +6066,22 @@ void QPainter::drawTextItem(const QPointF &p, const QTextItem &_ti)
const QTransform &m = d->state->matrix;
if (d->state->matrix.type() < QTransform::TxShear) {
bool isPlain90DegreeRotation =
- (qFuzzyCompare(m.m11() + 1, qreal(1))
- && qFuzzyCompare(m.m12(), qreal(1))
- && qFuzzyCompare(m.m21(), qreal(-1))
- && qFuzzyCompare(m.m22() + 1, qreal(1))
+ (qFuzzyIsNull(m.m11())
+ && qFuzzyIsNull(m.m12() - qreal(1))
+ && qFuzzyIsNull(m.m21() + qreal(1))
+ && qFuzzyIsNull(m.m22())
)
||
- (qFuzzyCompare(m.m11(), qreal(-1))
- && qFuzzyCompare(m.m12() + 1, qreal(1))
- && qFuzzyCompare(m.m21() + 1, qreal(1))
- && qFuzzyCompare(m.m22(), qreal(-1))
+ (qFuzzyIsNull(m.m11() + qreal(1))
+ && qFuzzyIsNull(m.m12())
+ && qFuzzyIsNull(m.m21())
+ && qFuzzyIsNull(m.m22() + qreal(1))
)
||
- (qFuzzyCompare(m.m11() + 1, qreal(1))
- && qFuzzyCompare(m.m12(), qreal(-1))
- && qFuzzyCompare(m.m21(), qreal(1))
- && qFuzzyCompare(m.m22() + 1, qreal(1))
+ (qFuzzyIsNull(m.m11())
+ && qFuzzyIsNull(m.m12() + qreal(1))
+ && qFuzzyIsNull(m.m21() - qreal(1))
+ && qFuzzyIsNull(m.m22())
)
;
aa = !isPlain90DegreeRotation;
diff --git a/src/gui/painting/qpainterpath.cpp b/src/gui/painting/qpainterpath.cpp
index 6ae908c..9b10f3c 100644
--- a/src/gui/painting/qpainterpath.cpp
+++ b/src/gui/painting/qpainterpath.cpp
@@ -1299,10 +1299,10 @@ static QRectF qt_painterpath_bezier_extrema(const QBezier &b)
qreal bx = QT_BEZIER_B(b, x);
qreal cx = QT_BEZIER_C(b, x);
// specialcase quadratic curves to avoid div by zero
- if (qFuzzyCompare(ax + 1, 1)) {
+ if (qFuzzyIsNull(ax)) {
// linear curves are covered by initialization.
- if (!qFuzzyCompare(bx + 1, 1)) {
+ if (!qFuzzyIsNull(bx)) {
qreal t = -cx / bx;
QT_BEZIER_CHECK_T(b, t);
}
@@ -1329,10 +1329,10 @@ static QRectF qt_painterpath_bezier_extrema(const QBezier &b)
qreal cy = QT_BEZIER_C(b, y);
// specialcase quadratic curves to avoid div by zero
- if (qFuzzyCompare(ay + 1, 1)) {
+ if (qFuzzyIsNull(ay)) {
// linear curves are covered by initialization.
- if (!qFuzzyCompare(by + 1, 1)) {
+ if (!qFuzzyIsNull(by)) {
qreal t = -cy / by;
QT_BEZIER_CHECK_T(b, t);
}
@@ -2923,7 +2923,7 @@ qreal QPainterPath::angleAtPercent(qreal t) const
return QLineF(0, 0, m1, m2).angle();
}
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
#pragma warning( disable : 4056 4756 )
#endif
diff --git a/src/gui/painting/qpathclipper.cpp b/src/gui/painting/qpathclipper.cpp
index 297cdd3..9ef3eb7 100644
--- a/src/gui/painting/qpathclipper.cpp
+++ b/src/gui/painting/qpathclipper.cpp
@@ -138,11 +138,11 @@ bool QIntersectionFinder::linesIntersect(const QLineF &a, const QLineF &b) const
const qreal par = pDelta.x() * qDelta.y() - pDelta.y() * qDelta.x();
- if (qFuzzyCompare(par + 1, 1)) {
+ if (qFuzzyIsNull(par)) {
const QPointF normal(-pDelta.y(), pDelta.x());
// coinciding?
- if (qFuzzyCompare(dot(normal, q1 - p1) + 1, 1)) {
+ if (qFuzzyIsNull(dot(normal, q1 - p1))) {
const qreal dp = dot(pDelta, pDelta);
const qreal tq1 = dot(pDelta, q1 - p1);
@@ -202,13 +202,13 @@ void QIntersectionFinder::intersectBeziers(const QBezier &one, const QBezier &tw
qreal alpha_q = t.at(i).second;
QPointF pt;
- if (qFuzzyCompare(alpha_p + 1, 1)) {
+ if (qFuzzyIsNull(alpha_p)) {
pt = one.pt1();
- } else if (qFuzzyCompare(alpha_p, 1)) {
+ } else if (qFuzzyIsNull(alpha_p - 1)) {
pt = one.pt4();
- } else if (qFuzzyCompare(alpha_q + 1, 1)) {
+ } else if (qFuzzyIsNull(alpha_q)) {
pt = two.pt1();
- } else if (qFuzzyCompare(alpha_q, 1)) {
+ } else if (qFuzzyIsNull(alpha_q - 1)) {
pt = two.pt4();
} else {
pt = one.pointAt(alpha_p);
@@ -250,11 +250,11 @@ void QIntersectionFinder::intersectLines(const QLineF &a, const QLineF &b, QData
const qreal par = pDelta.x() * qDelta.y() - pDelta.y() * qDelta.x();
- if (qFuzzyCompare(par + 1, 1)) {
+ if (qFuzzyIsNull(par)) {
const QPointF normal(-pDelta.y(), pDelta.x());
// coinciding?
- if (qFuzzyCompare(dot(normal, q1 - p1) + 1, 1)) {
+ if (qFuzzyIsNull(dot(normal, q1 - p1))) {
const qreal invDp = 1 / dot(pDelta, pDelta);
const qreal tq1 = dot(pDelta, q1 - p1) * invDp;
@@ -315,11 +315,11 @@ void QIntersectionFinder::intersectLines(const QLineF &a, const QLineF &b, QData
if (tp<0 || tp>1 || tq<0 || tq>1)
return;
- const bool p_zero = qFuzzyCompare(tp + 1, 1);
- const bool p_one = qFuzzyCompare(tp, 1);
+ const bool p_zero = qFuzzyIsNull(tp);
+ const bool p_one = qFuzzyIsNull(tp - 1);
- const bool q_zero = qFuzzyCompare(tq + 1, 1);
- const bool q_one = qFuzzyCompare(tq, 1);
+ const bool q_zero = qFuzzyIsNull(tq);
+ const bool q_one = qFuzzyIsNull(tq - 1);
if ((q_zero || q_one) && (p_zero || p_one))
return;
@@ -922,7 +922,7 @@ qreal QWingedEdge::delta(int vertex, int a, int b) const
qreal result = b_angle - a_angle;
- if (qFuzzyCompare(result + 1, 1) || qFuzzyCompare(result, 128))
+ if (qFuzzyIsNull(result) || qFuzzyCompare(result, 128))
return 0;
if (result < 0)
@@ -951,7 +951,7 @@ static inline QPointF tangentAt(const QWingedEdge &list, int vi, int ei)
if (ep->bezier) {
normal = ep->bezier->derivedAt(t);
- if (qFuzzyCompare(normal.x() + 1, 1) && qFuzzyCompare(normal.y() + 1, 1))
+ if (qFuzzyIsNull(normal.x()) && qFuzzyIsNull(normal.y()))
normal = ep->bezier->secondDerivedAt(t);
} else {
const QPointF a = *list.vertex(ep->first);
@@ -1080,7 +1080,7 @@ QWingedEdge::TraversalStatus QWingedEdge::findInsertStatus(int vi, int ei) const
qDebug() << "Delta to edge" << status.edge << d2 << ", angles: " << op->angle << op->invAngle;
#endif
- if (!(qFuzzyCompare(d2 + 1, 1) && isLeftOf(*this, vi, status.edge, ei))
+ if (!(qFuzzyIsNull(d2) && isLeftOf(*this, vi, status.edge, ei))
&& (d2 < d || (qFuzzyCompare(d2, d) && isLeftOf(*this, vi, status.edge, position)))) {
position = status.edge;
d = d2;
@@ -1232,10 +1232,10 @@ int QWingedEdge::addEdge(int fi, int si, const QBezier *bezier, qreal t0, qreal
QPointF aTangent = bezier->derivedAt(t0);
QPointF bTangent = -bezier->derivedAt(t1);
- if (qFuzzyCompare(aTangent.x() + 1, 1) && qFuzzyCompare(aTangent.y() + 1, 1))
+ if (qFuzzyIsNull(aTangent.x()) && qFuzzyIsNull(aTangent.y()))
aTangent = bezier->secondDerivedAt(t0);
- if (qFuzzyCompare(bTangent.x() + 1, 1) && qFuzzyCompare(bTangent.y() + 1, 1))
+ if (qFuzzyIsNull(bTangent.x()) && qFuzzyIsNull(bTangent.y()))
bTangent = bezier->secondDerivedAt(t1);
ep->angle = computeAngle(aTangent);
@@ -1400,7 +1400,7 @@ static void addLineTo(QPainterPath &path, const QPointF &point)
const QPointF p(-d1.y(), d1.x());
- if (qFuzzyCompare(dot(p, d2) + 1, 1)) {
+ if (qFuzzyIsNull(dot(p, d2))) {
path.setElementPositionAt(elementCount - 1, point.x(), point.y());
return;
}
diff --git a/src/gui/painting/qprintengine_mac.mm b/src/gui/painting/qprintengine_mac.mm
index 7a77e47..b1216b7 100644
--- a/src/gui/painting/qprintengine_mac.mm
+++ b/src/gui/painting/qprintengine_mac.mm
@@ -62,6 +62,10 @@ bool QMacPrintEngine::begin(QPaintDevice *dev)
{
Q_D(QMacPrintEngine);
+ Q_ASSERT(dev && dev->devType() == QInternal::Printer);
+ if (!static_cast<QPrinter *>(dev)->isValid())
+ return false;
+
if (d->state == QPrinter::Idle && !d->isPrintSessionInitialized()) // Need to reinitialize
d->initialize();
@@ -121,24 +125,8 @@ bool QMacPrintEngine::end()
if(d->paintEngine->type() == QPaintEngine::CoreGraphics)
static_cast<QCoreGraphicsPaintEngine*>(d->paintEngine)->d_func()->hd = 0;
d->paintEngine->end();
- if (d->state != QPrinter::Idle) {
-#ifndef QT_MAC_USE_COCOA
- if (d->shouldSuppressStatus()) {
- PMSessionEndPageNoDialog(d->session);
- PMSessionEndDocumentNoDialog(d->session);
- } else {
- PMSessionEndPage(d->session);
- PMSessionEndDocument(d->session);
- }
- PMRelease(d->session);
-#else
- PMSessionEndPageNoDialog(d->session);
- PMSessionEndDocumentNoDialog(d->session);
- [d->printInfo release];
-#endif
- d->printInfo = 0;
- d->session = 0;
- }
+ if (d->state != QPrinter::Idle)
+ d->releaseSession();
d->state = QPrinter::Idle;
return true;
}
@@ -509,6 +497,26 @@ void QMacPrintEnginePrivate::initialize()
}
}
+void QMacPrintEnginePrivate::releaseSession()
+{
+#ifndef QT_MAC_USE_COCOA
+ if (shouldSuppressStatus()) {
+ PMSessionEndPageNoDialog(session);
+ PMSessionEndDocumentNoDialog(session);
+ } else {
+ PMSessionEndPage(session);
+ PMSessionEndDocument(session);
+ }
+ PMRelease(session);
+#else
+ PMSessionEndPageNoDialog(session);
+ PMSessionEndDocumentNoDialog(session);
+ [printInfo release];
+#endif
+ printInfo = 0;
+ session = 0;
+}
+
bool QMacPrintEnginePrivate::newPage_helper()
{
Q_Q(QMacPrintEngine);
@@ -737,6 +745,7 @@ void QMacPrintEngine::setProperty(PrintEnginePropertyKey key, const QVariant &va
d->setPaperSize(QPrinter::PaperSize(value.toInt()));
break;
case PPK_PrinterName: {
+ bool printerNameSet = false;
OSStatus status = noErr;
QCFType<CFArrayRef> printerList;
status = PMServerCreatePrinterList(kPMServerLocal, &printerList);
@@ -747,12 +756,18 @@ void QMacPrintEngine::setProperty(PrintEnginePropertyKey key, const QVariant &va
QString name = QCFString::toQString(PMPrinterGetName(printer));
if (name == value.toString()) {
status = PMSessionSetCurrentPMPrinter(d->session, printer);
+ printerNameSet = true;
break;
}
}
}
if (status != noErr)
qWarning("QMacPrintEngine::setPrinterName: Error setting printer: %ld", long(status));
+ if (!printerNameSet) {
+ qWarning("QMacPrintEngine::setPrinterName: Failed to set printer named '%s'.", qPrintable(value.toString()));
+ d->releaseSession();
+ d->state = QPrinter::Idle;
+ }
break; }
case PPK_SuppressSystemPrintStatus:
d->suppressStatus = value.toBool();
@@ -876,17 +891,12 @@ QVariant QMacPrintEngine::property(PrintEnginePropertyKey key) const
ret = r;
break; }
case PPK_PrinterName: {
- CFIndex currIndex;
- PMPrinter unused;
- QCFType<CFArrayRef> printerList;
- OSStatus status = PMSessionCreatePrinterList(d->session, &printerList, &currIndex, &unused);
+ PMPrinter printer;
+ OSStatus status = PMSessionGetCurrentPrinter(d->session, &printer);
if (status != noErr)
- qWarning("QMacPrintEngine::printerName: Problem getting list of printers: %ld", long(status));
- if (currIndex != -1 && printerList && currIndex < CFArrayGetCount(printerList)) {
- const CFStringRef name = static_cast<CFStringRef>(CFArrayGetValueAtIndex(printerList, currIndex));
- if (name)
- ret = QCFString::toQString(name);
- }
+ qWarning("QMacPrintEngine::printerName: Failed getting current PMPrinter: %ld", long(status));
+ if (printer)
+ ret = QCFString::toQString(PMPrinterGetName(printer));
break; }
case PPK_Resolution: {
ret = d->resolution.hRes;
diff --git a/src/gui/painting/qprintengine_mac_p.h b/src/gui/painting/qprintengine_mac_p.h
index 5e18845..bc917e7 100644
--- a/src/gui/painting/qprintengine_mac_p.h
+++ b/src/gui/painting/qprintengine_mac_p.h
@@ -143,6 +143,7 @@ public:
hasCustomPaperSize(false), hasCustomPageMargins(false) {}
~QMacPrintEnginePrivate();
void initialize();
+ void releaseSession();
bool newPage_helper();
void setPaperSize(QPrinter::PaperSize ps);
QPrinter::PaperSize paperSize() const;
diff --git a/src/gui/painting/qprintengine_win.cpp b/src/gui/painting/qprintengine_win.cpp
index c8674b7..7601beb 100644
--- a/src/gui/painting/qprintengine_win.cpp
+++ b/src/gui/painting/qprintengine_win.cpp
@@ -1532,7 +1532,7 @@ QVariant QWin32PrintEngine::property(PrintEnginePropertyKey key) const
value = rect;
} else {
value = QTransform(1/d->stretch_x, 0, 0, 1/d->stretch_y, 0, 0)
- .mapRect(d->fullPage ? d->devPaperRect : d->devPageRect);
+ .mapRect(d->fullPage ? d->devPhysicalPageRect : d->devPageRect);
}
break;
diff --git a/src/gui/painting/qprinter.cpp b/src/gui/painting/qprinter.cpp
index 6c309c7..5161e32 100644
--- a/src/gui/painting/qprinter.cpp
+++ b/src/gui/painting/qprinter.cpp
@@ -284,6 +284,10 @@ void QPrinterPrivate::addToManualSetList(QPrintEngine::PrintEnginePropertyKey ke
to send PostScript or PDF output to the printer. As an alternative,
the printProgram() function can be used to specify the command or utility
to use instead of the system default.
+
+ Note that setting parameters like paper size and resolution on an
+ invalid printer is undefined. You can use QPrinter::isValid() to
+ verify this before changing any parameters.
QPrinter supports a number of parameters, most of which can be
changed by the end user through a \l{QPrintDialog}{print dialog}. In
@@ -830,11 +834,15 @@ void QPrinter::setPrinterName(const QString &name)
#endif
QList<QPrinterInfo> prnList = QPrinterInfo::availablePrinters();
- d->validPrinter = false;
- for (int i = 0; i < prnList.size(); ++i) {
- if (prnList[i].printerName() == name) {
- d->validPrinter = true;
- break;
+ if (name.isEmpty()) {
+ d->validPrinter = d->outputFormat == QPrinter::PdfFormat || d->outputFormat == QPrinter::PostScriptFormat;
+ } else {
+ d->validPrinter = false;
+ for (int i = 0; i < prnList.size(); ++i) {
+ if (prnList[i].printerName() == name) {
+ d->validPrinter = true;
+ break;
+ }
}
}
diff --git a/src/gui/painting/qstroker.cpp b/src/gui/painting/qstroker.cpp
index b894c62..5fffc72 100644
--- a/src/gui/painting/qstroker.cpp
+++ b/src/gui/painting/qstroker.cpp
@@ -763,7 +763,7 @@ template <class Iterator> bool qt_stroke_side(Iterator *it,
qreal qt_t_for_arc_angle(qreal angle)
{
- if (qFuzzyCompare(angle + 1, qreal(1)))
+ if (qFuzzyIsNull(angle))
return 0;
if (qFuzzyCompare(angle, qreal(90)))
@@ -904,13 +904,13 @@ QPointF qt_curves_for_arc(const QRectF &rect, qreal startAngle, qreal sweepLengt
}
// avoid empty start segment
- if (qFuzzyCompare(startT, qreal(1))) {
+ if (qFuzzyIsNull(startT - qreal(1))) {
startT = 0;
startSegment += delta;
}
// avoid empty end segment
- if (qFuzzyCompare(endT + 1, qreal(1))) {
+ if (qFuzzyIsNull(endT)) {
endT = 1;
endSegment -= delta;
}
@@ -918,8 +918,8 @@ QPointF qt_curves_for_arc(const QRectF &rect, qreal startAngle, qreal sweepLengt
startT = qt_t_for_arc_angle(startT * 90);
endT = qt_t_for_arc_angle(endT * 90);
- const bool splitAtStart = !qFuzzyCompare(startT + 1, qreal(1));
- const bool splitAtEnd = !qFuzzyCompare(endT, qreal(1));
+ const bool splitAtStart = !qFuzzyIsNull(startT);
+ const bool splitAtEnd = !qFuzzyIsNull(endT - qreal(1));
const int end = endSegment + delta;
@@ -1018,7 +1018,7 @@ void QDashStroker::processCurrentSubpath()
sumLength += dashes[i];
}
- if (qFuzzyCompare(sumLength + 1, qreal(1)))
+ if (qFuzzyIsNull(sumLength))
return;
Q_ASSERT(dashCount > 0);
diff --git a/src/gui/painting/qtessellator.cpp b/src/gui/painting/qtessellator.cpp
index e02f02d..ce5ab74 100644
--- a/src/gui/painting/qtessellator.cpp
+++ b/src/gui/painting/qtessellator.cpp
@@ -1436,7 +1436,7 @@ void QTessellator::tessellateRect(const QPointF &a_, const QPointF &b_, qreal wi
QPointF perp(pb.y() - pa.y(), pa.x() - pb.x());
qreal length = qSqrt(perp.x() * perp.x() + perp.y() * perp.y());
- if (qFuzzyCompare(length + 1, static_cast<qreal>(1)))
+ if (qFuzzyIsNull(length))
return;
// need the half of the width
diff --git a/src/gui/painting/qtransform.cpp b/src/gui/painting/qtransform.cpp
index 6c37ab6..4a33b92 100644
--- a/src/gui/painting/qtransform.cpp
+++ b/src/gui/painting/qtransform.cpp
@@ -353,8 +353,8 @@ QTransform QTransform::inverted(bool *invertible) const
invert.affine._dy = -affine._dy;
break;
case TxScale:
- inv = !qIsFuzzyNull(affine._m11);
- inv &= !qIsFuzzyNull(affine._m22);
+ inv = !qFuzzyIsNull(affine._m11);
+ inv &= !qFuzzyIsNull(affine._m22);
if (inv) {
invert.affine._m11 = 1. / affine._m11;
invert.affine._m22 = 1. / affine._m22;
@@ -369,7 +369,7 @@ QTransform QTransform::inverted(bool *invertible) const
default:
// general case
qreal det = determinant();
- inv = !qIsFuzzyNull(det);
+ inv = !qFuzzyIsNull(det);
if (inv)
invert = adjoint() / det;
break;
@@ -1387,12 +1387,16 @@ QRegion QTransform::map(const QRegion &r) const
TransformationType t = inline_type();
if (t == TxNone)
return r;
+
if (t == TxTranslate) {
QRegion copy(r);
copy.translate(qRound(affine._dx), qRound(affine._dy));
return copy;
}
+ if (t == TxScale && r.numRects() == 1)
+ return QRegion(mapRect(r.boundingRect()));
+
QPainterPath p = map(qt_regionToPath(r));
return p.toFillPolygon(QTransform()).toPolygon();
}
@@ -1784,13 +1788,12 @@ QRect QTransform::mapRect(const QRect &rect) const
return QRect(x, y, w, h);
} else if (t < TxProject) {
// see mapToPolygon for explanations of the algorithm.
- qreal x0 = 0, y0 = 0;
- qreal x, y;
- MAP(rect.left(), rect.top(), x0, y0);
- qreal xmin = x0;
- qreal ymin = y0;
- qreal xmax = x0;
- qreal ymax = y0;
+ qreal x = 0, y = 0;
+ MAP(rect.left(), rect.top(), x, y);
+ qreal xmin = x;
+ qreal ymin = y;
+ qreal xmax = x;
+ qreal ymax = y;
MAP(rect.right() + 1, rect.top(), x, y);
xmin = qMin(xmin, x);
ymin = qMin(ymin, y);
@@ -1854,13 +1857,12 @@ QRectF QTransform::mapRect(const QRectF &rect) const
}
return QRectF(x, y, w, h);
} else if (t < TxProject) {
- qreal x0 = 0, y0 = 0;
- qreal x, y;
- MAP(rect.x(), rect.y(), x0, y0);
- qreal xmin = x0;
- qreal ymin = y0;
- qreal xmax = x0;
- qreal ymax = y0;
+ qreal x = 0, y = 0;
+ MAP(rect.x(), rect.y(), x, y);
+ qreal xmin = x;
+ qreal ymin = y;
+ qreal xmax = x;
+ qreal ymax = y;
MAP(rect.x() + rect.width(), rect.y(), x, y);
xmin = qMin(xmin, x);
ymin = qMin(ymin, y);
@@ -1958,27 +1960,27 @@ QTransform::TransformationType QTransform::type() const
switch (static_cast<TransformationType>(m_dirty)) {
case TxProject:
- if (!qIsFuzzyNull(m_13) || !qIsFuzzyNull(m_23) || !qIsFuzzyNull(m_33 - 1)) {
+ if (!qFuzzyIsNull(m_13) || !qFuzzyIsNull(m_23) || !qFuzzyIsNull(m_33 - 1)) {
m_type = TxProject;
break;
}
case TxShear:
case TxRotate:
- if (!qIsFuzzyNull(affine._m12) || !qIsFuzzyNull(affine._m21)) {
+ if (!qFuzzyIsNull(affine._m12) || !qFuzzyIsNull(affine._m21)) {
const qreal dot = affine._m11 * affine._m12 + affine._m21 * affine._m22;
- if (qIsFuzzyNull(dot))
+ if (qFuzzyIsNull(dot))
m_type = TxRotate;
else
m_type = TxShear;
break;
}
case TxScale:
- if (!qIsFuzzyNull(affine._m11 - 1) || !qIsFuzzyNull(affine._m22 - 1)) {
+ if (!qFuzzyIsNull(affine._m11 - 1) || !qFuzzyIsNull(affine._m22 - 1)) {
m_type = TxScale;
break;
}
case TxTranslate:
- if (!qIsFuzzyNull(affine._dx) || !qIsFuzzyNull(affine._dy)) {
+ if (!qFuzzyIsNull(affine._dx) || !qFuzzyIsNull(affine._dy)) {
m_type = TxTranslate;
break;
}
diff --git a/src/gui/painting/qtransform.h b/src/gui/painting/qtransform.h
index 2d6c889..aac7c31 100644
--- a/src/gui/painting/qtransform.h
+++ b/src/gui/painting/qtransform.h
@@ -204,7 +204,7 @@ inline bool QTransform::isIdentity() const
inline bool QTransform::isInvertible() const
{
- return !qIsFuzzyNull(determinant());
+ return !qFuzzyIsNull(determinant());
}
inline bool QTransform::isScaling() const
diff --git a/src/gui/painting/qwindowsurface.cpp b/src/gui/painting/qwindowsurface.cpp
index bcb0380..d941a24 100644
--- a/src/gui/painting/qwindowsurface.cpp
+++ b/src/gui/painting/qwindowsurface.cpp
@@ -310,10 +310,13 @@ void qt_scrollRectInImage(QImage &img, const QRect &rect, const QPoint &offset)
int lineskip = img.bytesPerLine();
int depth = img.depth() >> 3;
-
- const QRect r = rect & QRect(0, 0, img.width(), img.height());
+ const QRect imageRect(0, 0, img.width(), img.height());
+ const QRect r = rect & imageRect & imageRect.translated(-offset);
const QPoint p = rect.topLeft() + offset;
+ if (r.isEmpty())
+ return;
+
const uchar *src;
uchar *dest;
diff --git a/src/gui/painting/qwindowsurface_d3d.cpp b/src/gui/painting/qwindowsurface_d3d.cpp
deleted file mode 100644
index 2b7f633..0000000
--- a/src/gui/painting/qwindowsurface_d3d.cpp
+++ /dev/null
@@ -1,169 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
-** Beta Release License Agreement.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
-** package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//#define D3D_DEBUG_BACKBUFFER
-
-#include <QtGui/QPaintDevice>
-#include <QtGui/QWidget>
-#include "qdebug.h"
-
-#include "qpaintengine_d3d_p.h"
-#include "qwindowsurface_d3d_p.h"
-#include "private/qwidget_p.h"
-#include "private/qbackingstore_p.h"
-
-#include <d3d9.h>
-
-QT_BEGIN_NAMESPACE
-
-extern QDirect3DPaintEngine *qt_d3dEngine();
-
-struct QD3DWindowSurfacePrivate
-{
- QSize m_lastSize;
- QWidget *m_widget;
-};
-
-QD3DWindowSurface::QD3DWindowSurface(QWidget *window)
- : QWindowSurface(window), d_ptr(new QD3DWindowSurfacePrivate)
-{
- Q_ASSERT(window->isTopLevel());
- d_ptr->m_widget = window;
-}
-
-
-QD3DWindowSurface::~QD3DWindowSurface()
-{
- delete d_ptr;
-}
-
-QPaintDevice *QD3DWindowSurface::paintDevice()
-{
- return d_ptr->m_widget;
-}
-
-
-void QD3DWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoint &offset)
-{
- QPoint wOffset = qt_qwidget_data(widget)->wrect.topLeft();
-
- QDirect3DPaintEngine *engine = qt_d3dEngine();
- LPDIRECT3DSWAPCHAIN9 swapchain = engine->swapChain(d_ptr->m_widget);
-
- if (swapchain) {
- QRect br = rgn.boundingRect();
- QRect wbr = br.translated(-wOffset);
-
- RECT destrect;
- destrect.left = wbr.x();
- destrect.top = wbr.y();
- destrect.right = destrect.left + wbr.width();
- destrect.bottom = destrect.top + wbr.height();
-
- RECT srcrect;
- srcrect.left = br.x() + offset.x();
- srcrect.top = br.y() + offset.y();
- srcrect.right = wbr.width() + srcrect.left;
- srcrect.bottom = wbr.height() + srcrect.top;
- int devwidth = d_ptr->m_lastSize.width();
- int devheight = d_ptr->m_lastSize.height();
-
- if (devwidth <= srcrect.right) {
- int diff = srcrect.right - devwidth;
- srcrect.right -= diff;
- destrect.right -= diff;
- if (srcrect.right <= srcrect.left)
- return;
- }
- if (devheight <= srcrect.bottom) {
- int diff = srcrect.bottom - devheight;
- srcrect.bottom -= diff;
- destrect.bottom -= diff;
- if (srcrect.bottom <= srcrect.top)
- return;
- }
-
- if (FAILED(swapchain->Present(&srcrect, &destrect, widget->winId(), 0, 0)))
- qWarning("QDirect3DPaintEngine: failed to present back buffer.");
-
-#ifdef D3D_DEBUG_BACKBUFFER
- qDebug() << widget << srcrect.left << srcrect.top << wbr.width() << wbr.height() << "Dest: " << destrect.left << destrect.top;
- IDirect3DSurface9 *surface;
- swapchain->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &surface);
- QString filename("C:\\test.bmp");
- D3DXSaveSurfaceToFile(filename.utf16(), D3DXIFF_BMP, surface, 0, 0);
- surface->Release();
-#endif
- }
-}
-
-void QD3DWindowSurface::setGeometry(const QRect &rect)
-{
- if (rect.isEmpty())
- qt_d3dEngine()->releaseSwapChain(d_ptr->m_widget);
-
- d_ptr->m_lastSize = rect.size();
- QWindowSurface::setGeometry(rect);
-}
-
-
-bool QD3DWindowSurface::scroll(const QRegion &area, int dx, int dy)
-{
- QDirect3DPaintEngine *engine = qt_d3dEngine();
- QRect rect = area.boundingRect();
-
- RECT destrect;
- destrect.left = rect.x()+dx;
- destrect.top = rect.y()+dy;
- destrect.right = rect.width() + destrect.left;
- destrect.bottom = rect.height() + destrect.top;
-
- RECT srcrect;
- srcrect.left = rect.x();
- srcrect.top = rect.y();
- srcrect.right = rect.width() + srcrect.left;
- srcrect.bottom = rect.height() + srcrect.top;
-
- engine->scroll(d_ptr->m_widget, srcrect, destrect);
- return true;
-}
-
-QT_END_NAMESPACE
diff --git a/src/gui/painting/qwindowsurface_raster.cpp b/src/gui/painting/qwindowsurface_raster.cpp
index 7a74fe0..dd4f7fd 100644
--- a/src/gui/painting/qwindowsurface_raster.cpp
+++ b/src/gui/painting/qwindowsurface_raster.cpp
@@ -82,7 +82,7 @@ public:
uint translucentBackground : 1;
#endif
#endif
-#if defined(Q_WS_WIN) && !defined(Q_OS_WINCE)
+#if defined(Q_WS_WIN) && !defined(Q_WS_WINCE)
uint canUseLayeredWindow : 1;
#endif
uint inSetGeometry : 1;
@@ -98,7 +98,7 @@ QRasterWindowSurface::QRasterWindowSurface(QWidget *window)
&& window->x11Info().depth() == 32;
#endif
#endif
-#if defined(Q_WS_WIN) && !defined(Q_OS_WINCE)
+#if defined(Q_WS_WIN) && !defined(Q_WS_WINCE)
d_ptr->canUseLayeredWindow = ptrUpdateLayeredWindowIndirect
&& (qt_widget_private(window)->data.window_flags & Qt::FramelessWindowHint);
#endif
@@ -127,9 +127,9 @@ QPaintDevice *QRasterWindowSurface::paintDevice()
void QRasterWindowSurface::beginPaint(const QRegion &rgn)
{
-#if (defined(Q_WS_X11) && !defined(QT_NO_XRENDER)) || (defined(Q_WS_WIN) && !defined(Q_OS_WINCE))
+#if (defined(Q_WS_X11) && !defined(QT_NO_XRENDER)) || (defined(Q_WS_WIN) && !defined(Q_WS_WINCE))
if (!qt_widget_private(window())->isOpaque) {
-#if defined(Q_WS_WIN) && !defined(Q_OS_WINCE)
+#if defined(Q_WS_WIN) && !defined(Q_WS_WINCE)
if (d_ptr->image->image.format() != QImage::Format_ARGB32_Premultiplied
&& d_ptr->canUseLayeredWindow)
prepareBuffer(QImage::Format_ARGB32_Premultiplied, window());
@@ -143,7 +143,7 @@ void QRasterWindowSurface::beginPaint(const QRegion &rgn)
}
}
#endif
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
Q_UNUSED(rgn);
#endif
}
@@ -160,7 +160,7 @@ void QRasterWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoi
#ifdef Q_WS_WIN
QRect br = rgn.boundingRect();
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
if (!qt_widget_private(window())->isOpaque && d->canUseLayeredWindow) {
QRect r = window()->frameGeometry();
QPoint frameOffset = qt_widget_private(window())->frameStrut().topLeft();
@@ -304,7 +304,7 @@ void QRasterWindowSurface::setGeometry(const QRect &rect)
Q_D(QRasterWindowSurface);
d->inSetGeometry = true;
if (d->image == 0 || d->image->width() < rect.width() || d->image->height() < rect.height()) {
-#if (defined(Q_WS_X11) && !defined(QT_NO_XRENDER)) || (defined(Q_WS_WIN) && !defined(Q_OS_WINCE))
+#if (defined(Q_WS_X11) && !defined(QT_NO_XRENDER)) || (defined(Q_WS_WIN) && !defined(Q_WS_WINCE))
#ifndef Q_WS_WIN
if (d_ptr->translucentBackground)
#else
diff --git a/src/gui/styles/gtksymbols.cpp b/src/gui/styles/gtksymbols.cpp
index f7af8f8..99d7261 100644
--- a/src/gui/styles/gtksymbols.cpp
+++ b/src/gui/styles/gtksymbols.cpp
@@ -207,118 +207,118 @@ static QString classPath(GtkWidget *widget)
static void resolveGtk()
{
- const QString GTK_PATH(QLS("gtk-x11-2.0"));
- QGtk::gtk_init = (Ptr_gtk_init)QLibrary::resolve(GTK_PATH, 0, "gtk_init");
- QGtk::gtk_window_new = (Ptr_gtk_window_new)QLibrary::resolve(GTK_PATH, 0, "gtk_window_new");
- QGtk::gtk_style_attach = (Ptr_gtk_style_attach)QLibrary::resolve(GTK_PATH, 0, "gtk_style_attach");
- QGtk::gtk_widget_destroy = (Ptr_gtk_widget_destroy)QLibrary::resolve(GTK_PATH, 0, "gtk_widget_destroy");
- QGtk::gtk_widget_realize = (Ptr_gtk_widget_realize)QLibrary::resolve(GTK_PATH, 0, "gtk_widget_realize");
-
- QGtk::gtk_file_chooser_set_current_folder = (Ptr_gtk_file_chooser_set_current_folder)QLibrary::resolve(GTK_PATH, 0, "gtk_file_chooser_set_current_folder");
- QGtk::gtk_file_filter_new = (Ptr_gtk_file_filter_new)QLibrary::resolve(GTK_PATH, 0, "gtk_file_filter_new");
- QGtk::gtk_file_filter_set_name = (Ptr_gtk_file_filter_set_name)QLibrary::resolve(GTK_PATH, 0, "gtk_file_filter_set_name");
- QGtk::gtk_file_filter_add_pattern = (Ptr_gtk_file_filter_add_pattern)QLibrary::resolve(GTK_PATH, 0, "gtk_file_filter_add_pattern");
- QGtk::gtk_file_chooser_add_filter = (Ptr_gtk_file_chooser_add_filter)QLibrary::resolve(GTK_PATH, 0, "gtk_file_chooser_add_filter");
- QGtk::gtk_file_chooser_set_filter = (Ptr_gtk_file_chooser_set_filter)QLibrary::resolve(GTK_PATH, 0, "gtk_file_chooser_set_filter");
- QGtk::gtk_file_chooser_dialog_new = (Ptr_gtk_file_chooser_dialog_new)QLibrary::resolve(GTK_PATH, 0, "gtk_file_chooser_dialog_new");
- QGtk::gtk_file_chooser_set_current_folder = (Ptr_gtk_file_chooser_set_current_folder)QLibrary::resolve(GTK_PATH, 0, "gtk_file_chooser_set_current_folder");
- QGtk::gtk_file_chooser_get_filename = (Ptr_gtk_file_chooser_get_filename)QLibrary::resolve(GTK_PATH, 0, "gtk_file_chooser_get_filename");
- QGtk::gtk_file_chooser_get_filenames = (Ptr_gtk_file_chooser_get_filenames)QLibrary::resolve(GTK_PATH, 0, "gtk_file_chooser_get_filenames");
- QGtk::gtk_file_chooser_set_current_name = (Ptr_gtk_file_chooser_set_current_name)QLibrary::resolve(GTK_PATH, 0, "gtk_file_chooser_set_current_name");
- QGtk::gtk_dialog_run = (Ptr_gtk_dialog_run)QLibrary::resolve(GTK_PATH, 0, "gtk_dialog_run");
- QGtk::gtk_file_chooser_set_filename = (Ptr_gtk_file_chooser_set_filename)QLibrary::resolve(GTK_PATH, 0, "gtk_file_chooser_set_filename");
-
- QGtk::gdk_pixbuf_get_pixels = (Ptr_gdk_pixbuf_get_pixels)QLibrary::resolve(GTK_PATH, 0, "gdk_pixbuf_get_pixels");
- QGtk::gdk_pixbuf_get_width = (Ptr_gdk_pixbuf_get_width)QLibrary::resolve(GTK_PATH, 0, "gdk_pixbuf_get_width");
- QGtk::gdk_pixbuf_get_height = (Ptr_gdk_pixbuf_get_height)QLibrary::resolve(GTK_PATH, 0, "gdk_pixbuf_get_height");
- QGtk::gdk_pixmap_new = (Ptr_gdk_pixmap_new)QLibrary::resolve(GTK_PATH, 0, "gdk_pixmap_new");
- QGtk::gdk_pixbuf_new = (Ptr_gdk_pixbuf_new)QLibrary::resolve(GTK_PATH, 0, "gdk_pixbuf_new");
- QGtk::gdk_pixbuf_get_from_drawable = (Ptr_gdk_pixbuf_get_from_drawable)QLibrary::resolve(GTK_PATH, 0, "gdk_pixbuf_get_from_drawable");
- QGtk::gdk_draw_rectangle = (Ptr_gdk_draw_rectangle)QLibrary::resolve(GTK_PATH, 0, "gdk_draw_rectangle");
- QGtk::gdk_pixbuf_unref = (Ptr_gdk_pixbuf_unref)QLibrary::resolve(GTK_PATH, 0, "gdk_pixbuf_unref");
- QGtk::gdk_drawable_unref = (Ptr_gdk_drawable_unref)QLibrary::resolve(GTK_PATH, 0, "gdk_drawable_unref");
- QGtk::gdk_drawable_get_depth = (Ptr_gdk_drawable_get_depth)QLibrary::resolve(GTK_PATH, 0, "gdk_drawable_get_depth");
- QGtk::gdk_color_free = (Ptr_gdk_color_free)QLibrary::resolve(GTK_PATH, 0, "gdk_color_free");
- QGtk::gdk_x11_window_set_user_time = (Ptr_gdk_x11_window_set_user_time)QLibrary::resolve(GTK_PATH, 0, "gdk_x11_window_set_user_time");
- QGtk::gdk_x11_drawable_get_xid = (Ptr_gdk_x11_drawable_get_xid)QLibrary::resolve(GTK_PATH, 0, "gdk_x11_drawable_get_xid");
- QGtk::gdk_x11_drawable_get_xdisplay = (Ptr_gdk_x11_drawable_get_xdisplay)QLibrary::resolve(GTK_PATH, 0, "gdk_x11_drawable_get_xdisplay");
-
- QGtk::gtk_widget_set_default_direction = (Ptr_gtk_widget_set_default_direction)QLibrary::resolve(GTK_PATH, 0, "gtk_widget_set_default_direction");
- QGtk::gtk_widget_modify_fg = (Ptr_gtk_widget_modify_color)QLibrary::resolve(GTK_PATH, 0, "gtk_widget_modify_fg");
- QGtk::gtk_widget_modify_bg = (Ptr_gtk_widget_modify_color)QLibrary::resolve(GTK_PATH, 0, "gtk_widget_modify_bg");
- QGtk::gtk_arrow_new = (Ptr_gtk_arrow_new)QLibrary::resolve(GTK_PATH, 0, "gtk_arrow_new");
- QGtk::gtk_menu_item_new = (Ptr_gtk_menu_item_new)QLibrary::resolve(GTK_PATH, 0, "gtk_menu_item_new");
- QGtk::gtk_check_menu_item_new = (Ptr_gtk_check_menu_item_new)QLibrary::resolve(GTK_PATH, 0, "gtk_check_menu_item_new");
- QGtk::gtk_menu_bar_new = (Ptr_gtk_menu_bar_new)QLibrary::resolve(GTK_PATH, 0, "gtk_menu_bar_new");
- QGtk::gtk_menu_new = (Ptr_gtk_menu_new)QLibrary::resolve(GTK_PATH, 0, "gtk_menu_new");
- QGtk::gtk_toolbar_new = (Ptr_gtk_toolbar_new)QLibrary::resolve(GTK_PATH, 0, "gtk_toolbar_new");
- QGtk::gtk_separator_tool_item_new = (Ptr_gtk_separator_tool_item_new)QLibrary::resolve(GTK_PATH, 0, "gtk_separator_tool_item_new");
- QGtk::gtk_toolbar_insert = (Ptr_gtk_toolbar_insert)QLibrary::resolve(GTK_PATH, 0, "gtk_toolbar_insert");
- QGtk::gtk_button_new = (Ptr_gtk_button_new)QLibrary::resolve(GTK_PATH, 0, "gtk_button_new");
- QGtk::gtk_hbutton_box_new = (Ptr_gtk_hbutton_box_new)QLibrary::resolve(GTK_PATH, 0, "gtk_hbutton_box_new");
- QGtk::gtk_check_button_new = (Ptr_gtk_check_button_new)QLibrary::resolve(GTK_PATH, 0, "gtk_check_button_new");
- QGtk::gtk_radio_button_new = (Ptr_gtk_radio_button_new)QLibrary::resolve(GTK_PATH, 0, "gtk_radio_button_new");
- QGtk::gtk_notebook_new = (Ptr_gtk_notebook_new)QLibrary::resolve(GTK_PATH, 0, "gtk_notebook_new");
- QGtk::gtk_progress_bar_new = (Ptr_gtk_progress_bar_new)QLibrary::resolve(GTK_PATH, 0, "gtk_progress_bar_new");
- QGtk::gtk_spin_button_new = (Ptr_gtk_spin_button_new)QLibrary::resolve(GTK_PATH, 0, "gtk_spin_button_new");
- QGtk::gtk_hscale_new = (Ptr_gtk_hscale_new)QLibrary::resolve(GTK_PATH, 0, "gtk_hscale_new");
- QGtk::gtk_vscale_new = (Ptr_gtk_vscale_new)QLibrary::resolve(GTK_PATH, 0, "gtk_vscale_new");
- QGtk::gtk_hscrollbar_new = (Ptr_gtk_hscrollbar_new)QLibrary::resolve(GTK_PATH, 0, "gtk_hscrollbar_new");
- QGtk::gtk_vscrollbar_new = (Ptr_gtk_vscrollbar_new)QLibrary::resolve(GTK_PATH, 0, "gtk_vscrollbar_new");
- QGtk::gtk_scrolled_window_new = (Ptr_gtk_scrolled_window_new)QLibrary::resolve(GTK_PATH, 0, "gtk_scrolled_window_new");
- QGtk::gtk_menu_shell_append = (Ptr_gtk_menu_shell_append)QLibrary::resolve(GTK_PATH, 0, "gtk_menu_shell_append");
- QGtk::gtk_entry_new = (Ptr_gtk_entry_new)QLibrary::resolve(GTK_PATH, 0, "gtk_entry_new");
- QGtk::gtk_tree_view_new = (Ptr_gtk_tree_view_new)QLibrary::resolve(GTK_PATH, 0, "gtk_tree_view_new");
- QGtk::gtk_combo_box_new = (Ptr_gtk_combo_box_new)QLibrary::resolve(GTK_PATH, 0, "gtk_combo_box_new");
- QGtk::gtk_progress_set_adjustment = (Ptr_gtk_progress_set_adjustment)QLibrary::resolve(GTK_PATH, 0, "gtk_progress_set_adjustment");
- QGtk::gtk_range_set_adjustment = (Ptr_gtk_range_set_adjustment)QLibrary::resolve(GTK_PATH, 0, "gtk_range_set_adjustment");
- QGtk::gtk_range_set_inverted = (Ptr_gtk_range_set_inverted)QLibrary::resolve(GTK_PATH, 0, "gtk_range_set_inverted");
- QGtk::gtk_container_add = (Ptr_gtk_container_add)QLibrary::resolve(GTK_PATH, 0, "gtk_container_add");
- QGtk::gtk_icon_factory_lookup_default = (Ptr_gtk_icon_factory_lookup_default)QLibrary::resolve(GTK_PATH, 0, "gtk_icon_factory_lookup_default");
- QGtk::gtk_widget_style_get = (Ptr_gtk_widget_style_get)QLibrary::resolve(GTK_PATH, 0, "gtk_widget_style_get");
- QGtk::gtk_icon_set_render_icon = (Ptr_gtk_icon_set_render_icon)QLibrary::resolve(GTK_PATH, 0, "gtk_icon_set_render_icon");
- QGtk::gtk_fixed_new = (Ptr_gtk_fixed_new)QLibrary::resolve(GTK_PATH, 0, "gtk_fixed_new");
- QGtk::gtk_tree_view_column_new = (Ptr_gtk_tree_view_column_new)QLibrary::resolve(GTK_PATH, 0, "gtk_tree_view_column_new");
- QGtk::gtk_tree_view_append_column= (Ptr_gtk_tree_view_append_column )QLibrary::resolve(GTK_PATH, 0, "gtk_tree_view_append_column");
- QGtk::gtk_tree_view_get_column = (Ptr_gtk_tree_view_get_column )QLibrary::resolve(GTK_PATH, 0, "gtk_tree_view_get_column");
- QGtk::gtk_paint_check = (Ptr_gtk_paint_check)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_check");
- QGtk::gtk_paint_box = (Ptr_gtk_paint_box)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_box");
- QGtk::gtk_paint_flat_box = (Ptr_gtk_paint_flat_box)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_flat_box");
- QGtk::gtk_paint_check = (Ptr_gtk_paint_check)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_check");
- QGtk::gtk_paint_box = (Ptr_gtk_paint_box)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_box");
- QGtk::gtk_paint_resize_grip = (Ptr_gtk_paint_resize_grip)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_resize_grip");
- QGtk::gtk_paint_focus = (Ptr_gtk_paint_focus)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_focus");
- QGtk::gtk_paint_shadow = (Ptr_gtk_paint_shadow)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_shadow");
- QGtk::gtk_paint_slider = (Ptr_gtk_paint_slider)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_slider");
- QGtk::gtk_paint_expander = (Ptr_gtk_paint_expander)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_expander");
- QGtk::gtk_paint_handle = (Ptr_gtk_paint_handle)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_handle");
- QGtk::gtk_paint_option = (Ptr_gtk_paint_option)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_option");
- QGtk::gtk_paint_arrow = (Ptr_gtk_paint_arrow)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_arrow");
- QGtk::gtk_paint_box_gap = (Ptr_gtk_paint_box_gap)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_box_gap");
- QGtk::gtk_paint_extension = (Ptr_gtk_paint_extension)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_extension");
- QGtk::gtk_paint_hline = (Ptr_gtk_paint_hline)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_hline");
- QGtk::gtk_paint_vline = (Ptr_gtk_paint_vline)QLibrary::resolve(GTK_PATH, 0, "gtk_paint_vline");
- QGtk::gtk_adjustment_new = (Ptr_gtk_adjustment_new)QLibrary::resolve(GTK_PATH, 0, "gtk_adjustment_new");
- QGtk::gtk_menu_item_set_submenu = (Ptr_gtk_menu_item_set_submenu)QLibrary::resolve(GTK_PATH, 0, "gtk_menu_item_set_submenu");
- QGtk::gtk_settings_get_default = (Ptr_gtk_settings_get_default)QLibrary::resolve(GTK_PATH, 0, "gtk_settings_get_default");
- QGtk::gtk_separator_menu_item_new = (Ptr_gtk_separator_menu_item_new)QLibrary::resolve(GTK_PATH, 0, "gtk_separator_menu_item_new");
- QGtk::gtk_frame_new = (Ptr_gtk_frame_new)QLibrary::resolve(GTK_PATH, 0, "gtk_frame_new");
- QGtk::gtk_expander_new = (Ptr_gtk_expander_new)QLibrary::resolve(GTK_PATH, 0, "gtk_expander_new");
- QGtk::gtk_statusbar_new = (Ptr_gtk_statusbar_new)QLibrary::resolve(GTK_PATH, 0, "gtk_statusbar_new");
- QGtk::gtk_combo_box_entry_new = (Ptr_gtk_combo_box_entry_new)QLibrary::resolve(GTK_PATH, 0, "gtk_combo_box_entry_new");
- QGtk::gtk_container_forall = (Ptr_gtk_container_forall)QLibrary::resolve(GTK_PATH, 0, "gtk_container_forall");
- QGtk::gtk_widget_size_allocate =(Ptr_gtk_widget_size_allocate)QLibrary::resolve(GTK_PATH, 0, "gtk_widget_size_allocate");
- QGtk::gtk_widget_set_direction =(Ptr_gtk_widget_set_direction)QLibrary::resolve(GTK_PATH, 0, "gtk_widget_set_direction");
- QGtk::gtk_widget_path =(Ptr_gtk_widget_path)QLibrary::resolve(GTK_PATH, 0, "gtk_widget_path");
- QGtk::gtk_container_get_type =(Ptr_gtk_container_get_type)QLibrary::resolve(GTK_PATH, 0, "gtk_container_get_type");
- QGtk::gtk_window_get_type =(Ptr_gtk_window_get_type)QLibrary::resolve(GTK_PATH, 0, "gtk_window_get_type");
- QGtk::gtk_widget_get_type =(Ptr_gtk_widget_get_type)QLibrary::resolve(GTK_PATH, 0, "gtk_widget_get_type");
- QGtk::gtk_rc_get_style_by_paths =(Ptr_gtk_rc_get_style_by_paths)QLibrary::resolve(GTK_PATH, 0, "gtk_rc_get_style_by_paths");
- QGtk::gtk_check_version =(Ptr_gtk_check_version)QLibrary::resolve(GTK_PATH, 0, "gtk_check_version");
- QGtk::pango_font_description_get_size = (Ptr_pango_font_description_get_size)QLibrary::resolve(GTK_PATH, 0, "pango_font_description_get_size");
- QGtk::pango_font_description_get_weight = (Ptr_pango_font_description_get_weight)QLibrary::resolve(GTK_PATH, 0, "pango_font_description_get_weight");
- QGtk::pango_font_description_get_family = (Ptr_pango_font_description_get_family)QLibrary::resolve(GTK_PATH, 0, "pango_font_description_get_family");
- QGtk::pango_font_description_get_style = (Ptr_pango_font_description_get_style)QLibrary::resolve(GTK_PATH, 0, "pango_font_description_get_style");
+ QLibrary libgtk(QLS("gtk-x11-2.0"));
+ QGtk::gtk_init = (Ptr_gtk_init)libgtk.resolve("gtk_init");
+ QGtk::gtk_window_new = (Ptr_gtk_window_new)libgtk.resolve("gtk_window_new");
+ QGtk::gtk_style_attach = (Ptr_gtk_style_attach)libgtk.resolve("gtk_style_attach");
+ QGtk::gtk_widget_destroy = (Ptr_gtk_widget_destroy)libgtk.resolve("gtk_widget_destroy");
+ QGtk::gtk_widget_realize = (Ptr_gtk_widget_realize)libgtk.resolve("gtk_widget_realize");
+
+ QGtk::gtk_file_chooser_set_current_folder = (Ptr_gtk_file_chooser_set_current_folder)libgtk.resolve("gtk_file_chooser_set_current_folder");
+ QGtk::gtk_file_filter_new = (Ptr_gtk_file_filter_new)libgtk.resolve("gtk_file_filter_new");
+ QGtk::gtk_file_filter_set_name = (Ptr_gtk_file_filter_set_name)libgtk.resolve("gtk_file_filter_set_name");
+ QGtk::gtk_file_filter_add_pattern = (Ptr_gtk_file_filter_add_pattern)libgtk.resolve("gtk_file_filter_add_pattern");
+ QGtk::gtk_file_chooser_add_filter = (Ptr_gtk_file_chooser_add_filter)libgtk.resolve("gtk_file_chooser_add_filter");
+ QGtk::gtk_file_chooser_set_filter = (Ptr_gtk_file_chooser_set_filter)libgtk.resolve("gtk_file_chooser_set_filter");
+ QGtk::gtk_file_chooser_dialog_new = (Ptr_gtk_file_chooser_dialog_new)libgtk.resolve("gtk_file_chooser_dialog_new");
+ QGtk::gtk_file_chooser_set_current_folder = (Ptr_gtk_file_chooser_set_current_folder)libgtk.resolve("gtk_file_chooser_set_current_folder");
+ QGtk::gtk_file_chooser_get_filename = (Ptr_gtk_file_chooser_get_filename)libgtk.resolve("gtk_file_chooser_get_filename");
+ QGtk::gtk_file_chooser_get_filenames = (Ptr_gtk_file_chooser_get_filenames)libgtk.resolve("gtk_file_chooser_get_filenames");
+ QGtk::gtk_file_chooser_set_current_name = (Ptr_gtk_file_chooser_set_current_name)libgtk.resolve("gtk_file_chooser_set_current_name");
+ QGtk::gtk_dialog_run = (Ptr_gtk_dialog_run)libgtk.resolve("gtk_dialog_run");
+ QGtk::gtk_file_chooser_set_filename = (Ptr_gtk_file_chooser_set_filename)libgtk.resolve("gtk_file_chooser_set_filename");
+
+ QGtk::gdk_pixbuf_get_pixels = (Ptr_gdk_pixbuf_get_pixels)libgtk.resolve("gdk_pixbuf_get_pixels");
+ QGtk::gdk_pixbuf_get_width = (Ptr_gdk_pixbuf_get_width)libgtk.resolve("gdk_pixbuf_get_width");
+ QGtk::gdk_pixbuf_get_height = (Ptr_gdk_pixbuf_get_height)libgtk.resolve("gdk_pixbuf_get_height");
+ QGtk::gdk_pixmap_new = (Ptr_gdk_pixmap_new)libgtk.resolve("gdk_pixmap_new");
+ QGtk::gdk_pixbuf_new = (Ptr_gdk_pixbuf_new)libgtk.resolve("gdk_pixbuf_new");
+ QGtk::gdk_pixbuf_get_from_drawable = (Ptr_gdk_pixbuf_get_from_drawable)libgtk.resolve("gdk_pixbuf_get_from_drawable");
+ QGtk::gdk_draw_rectangle = (Ptr_gdk_draw_rectangle)libgtk.resolve("gdk_draw_rectangle");
+ QGtk::gdk_pixbuf_unref = (Ptr_gdk_pixbuf_unref)libgtk.resolve("gdk_pixbuf_unref");
+ QGtk::gdk_drawable_unref = (Ptr_gdk_drawable_unref)libgtk.resolve("gdk_drawable_unref");
+ QGtk::gdk_drawable_get_depth = (Ptr_gdk_drawable_get_depth)libgtk.resolve("gdk_drawable_get_depth");
+ QGtk::gdk_color_free = (Ptr_gdk_color_free)libgtk.resolve("gdk_color_free");
+ QGtk::gdk_x11_window_set_user_time = (Ptr_gdk_x11_window_set_user_time)libgtk.resolve("gdk_x11_window_set_user_time");
+ QGtk::gdk_x11_drawable_get_xid = (Ptr_gdk_x11_drawable_get_xid)libgtk.resolve("gdk_x11_drawable_get_xid");
+ QGtk::gdk_x11_drawable_get_xdisplay = (Ptr_gdk_x11_drawable_get_xdisplay)libgtk.resolve("gdk_x11_drawable_get_xdisplay");
+
+ QGtk::gtk_widget_set_default_direction = (Ptr_gtk_widget_set_default_direction)libgtk.resolve("gtk_widget_set_default_direction");
+ QGtk::gtk_widget_modify_fg = (Ptr_gtk_widget_modify_color)libgtk.resolve("gtk_widget_modify_fg");
+ QGtk::gtk_widget_modify_bg = (Ptr_gtk_widget_modify_color)libgtk.resolve("gtk_widget_modify_bg");
+ QGtk::gtk_arrow_new = (Ptr_gtk_arrow_new)libgtk.resolve("gtk_arrow_new");
+ QGtk::gtk_menu_item_new = (Ptr_gtk_menu_item_new)libgtk.resolve("gtk_menu_item_new");
+ QGtk::gtk_check_menu_item_new = (Ptr_gtk_check_menu_item_new)libgtk.resolve("gtk_check_menu_item_new");
+ QGtk::gtk_menu_bar_new = (Ptr_gtk_menu_bar_new)libgtk.resolve("gtk_menu_bar_new");
+ QGtk::gtk_menu_new = (Ptr_gtk_menu_new)libgtk.resolve("gtk_menu_new");
+ QGtk::gtk_toolbar_new = (Ptr_gtk_toolbar_new)libgtk.resolve("gtk_toolbar_new");
+ QGtk::gtk_separator_tool_item_new = (Ptr_gtk_separator_tool_item_new)libgtk.resolve("gtk_separator_tool_item_new");
+ QGtk::gtk_toolbar_insert = (Ptr_gtk_toolbar_insert)libgtk.resolve("gtk_toolbar_insert");
+ QGtk::gtk_button_new = (Ptr_gtk_button_new)libgtk.resolve("gtk_button_new");
+ QGtk::gtk_hbutton_box_new = (Ptr_gtk_hbutton_box_new)libgtk.resolve("gtk_hbutton_box_new");
+ QGtk::gtk_check_button_new = (Ptr_gtk_check_button_new)libgtk.resolve("gtk_check_button_new");
+ QGtk::gtk_radio_button_new = (Ptr_gtk_radio_button_new)libgtk.resolve("gtk_radio_button_new");
+ QGtk::gtk_notebook_new = (Ptr_gtk_notebook_new)libgtk.resolve("gtk_notebook_new");
+ QGtk::gtk_progress_bar_new = (Ptr_gtk_progress_bar_new)libgtk.resolve("gtk_progress_bar_new");
+ QGtk::gtk_spin_button_new = (Ptr_gtk_spin_button_new)libgtk.resolve("gtk_spin_button_new");
+ QGtk::gtk_hscale_new = (Ptr_gtk_hscale_new)libgtk.resolve("gtk_hscale_new");
+ QGtk::gtk_vscale_new = (Ptr_gtk_vscale_new)libgtk.resolve("gtk_vscale_new");
+ QGtk::gtk_hscrollbar_new = (Ptr_gtk_hscrollbar_new)libgtk.resolve("gtk_hscrollbar_new");
+ QGtk::gtk_vscrollbar_new = (Ptr_gtk_vscrollbar_new)libgtk.resolve("gtk_vscrollbar_new");
+ QGtk::gtk_scrolled_window_new = (Ptr_gtk_scrolled_window_new)libgtk.resolve("gtk_scrolled_window_new");
+ QGtk::gtk_menu_shell_append = (Ptr_gtk_menu_shell_append)libgtk.resolve("gtk_menu_shell_append");
+ QGtk::gtk_entry_new = (Ptr_gtk_entry_new)libgtk.resolve("gtk_entry_new");
+ QGtk::gtk_tree_view_new = (Ptr_gtk_tree_view_new)libgtk.resolve("gtk_tree_view_new");
+ QGtk::gtk_combo_box_new = (Ptr_gtk_combo_box_new)libgtk.resolve("gtk_combo_box_new");
+ QGtk::gtk_progress_set_adjustment = (Ptr_gtk_progress_set_adjustment)libgtk.resolve("gtk_progress_set_adjustment");
+ QGtk::gtk_range_set_adjustment = (Ptr_gtk_range_set_adjustment)libgtk.resolve("gtk_range_set_adjustment");
+ QGtk::gtk_range_set_inverted = (Ptr_gtk_range_set_inverted)libgtk.resolve("gtk_range_set_inverted");
+ QGtk::gtk_container_add = (Ptr_gtk_container_add)libgtk.resolve("gtk_container_add");
+ QGtk::gtk_icon_factory_lookup_default = (Ptr_gtk_icon_factory_lookup_default)libgtk.resolve("gtk_icon_factory_lookup_default");
+ QGtk::gtk_widget_style_get = (Ptr_gtk_widget_style_get)libgtk.resolve("gtk_widget_style_get");
+ QGtk::gtk_icon_set_render_icon = (Ptr_gtk_icon_set_render_icon)libgtk.resolve("gtk_icon_set_render_icon");
+ QGtk::gtk_fixed_new = (Ptr_gtk_fixed_new)libgtk.resolve("gtk_fixed_new");
+ QGtk::gtk_tree_view_column_new = (Ptr_gtk_tree_view_column_new)libgtk.resolve("gtk_tree_view_column_new");
+ QGtk::gtk_tree_view_append_column= (Ptr_gtk_tree_view_append_column )libgtk.resolve("gtk_tree_view_append_column");
+ QGtk::gtk_tree_view_get_column = (Ptr_gtk_tree_view_get_column )libgtk.resolve("gtk_tree_view_get_column");
+ QGtk::gtk_paint_check = (Ptr_gtk_paint_check)libgtk.resolve("gtk_paint_check");
+ QGtk::gtk_paint_box = (Ptr_gtk_paint_box)libgtk.resolve("gtk_paint_box");
+ QGtk::gtk_paint_flat_box = (Ptr_gtk_paint_flat_box)libgtk.resolve("gtk_paint_flat_box");
+ QGtk::gtk_paint_check = (Ptr_gtk_paint_check)libgtk.resolve("gtk_paint_check");
+ QGtk::gtk_paint_box = (Ptr_gtk_paint_box)libgtk.resolve("gtk_paint_box");
+ QGtk::gtk_paint_resize_grip = (Ptr_gtk_paint_resize_grip)libgtk.resolve("gtk_paint_resize_grip");
+ QGtk::gtk_paint_focus = (Ptr_gtk_paint_focus)libgtk.resolve("gtk_paint_focus");
+ QGtk::gtk_paint_shadow = (Ptr_gtk_paint_shadow)libgtk.resolve("gtk_paint_shadow");
+ QGtk::gtk_paint_slider = (Ptr_gtk_paint_slider)libgtk.resolve("gtk_paint_slider");
+ QGtk::gtk_paint_expander = (Ptr_gtk_paint_expander)libgtk.resolve("gtk_paint_expander");
+ QGtk::gtk_paint_handle = (Ptr_gtk_paint_handle)libgtk.resolve("gtk_paint_handle");
+ QGtk::gtk_paint_option = (Ptr_gtk_paint_option)libgtk.resolve("gtk_paint_option");
+ QGtk::gtk_paint_arrow = (Ptr_gtk_paint_arrow)libgtk.resolve("gtk_paint_arrow");
+ QGtk::gtk_paint_box_gap = (Ptr_gtk_paint_box_gap)libgtk.resolve("gtk_paint_box_gap");
+ QGtk::gtk_paint_extension = (Ptr_gtk_paint_extension)libgtk.resolve("gtk_paint_extension");
+ QGtk::gtk_paint_hline = (Ptr_gtk_paint_hline)libgtk.resolve("gtk_paint_hline");
+ QGtk::gtk_paint_vline = (Ptr_gtk_paint_vline)libgtk.resolve("gtk_paint_vline");
+ QGtk::gtk_adjustment_new = (Ptr_gtk_adjustment_new)libgtk.resolve("gtk_adjustment_new");
+ QGtk::gtk_menu_item_set_submenu = (Ptr_gtk_menu_item_set_submenu)libgtk.resolve("gtk_menu_item_set_submenu");
+ QGtk::gtk_settings_get_default = (Ptr_gtk_settings_get_default)libgtk.resolve("gtk_settings_get_default");
+ QGtk::gtk_separator_menu_item_new = (Ptr_gtk_separator_menu_item_new)libgtk.resolve("gtk_separator_menu_item_new");
+ QGtk::gtk_frame_new = (Ptr_gtk_frame_new)libgtk.resolve("gtk_frame_new");
+ QGtk::gtk_expander_new = (Ptr_gtk_expander_new)libgtk.resolve("gtk_expander_new");
+ QGtk::gtk_statusbar_new = (Ptr_gtk_statusbar_new)libgtk.resolve("gtk_statusbar_new");
+ QGtk::gtk_combo_box_entry_new = (Ptr_gtk_combo_box_entry_new)libgtk.resolve("gtk_combo_box_entry_new");
+ QGtk::gtk_container_forall = (Ptr_gtk_container_forall)libgtk.resolve("gtk_container_forall");
+ QGtk::gtk_widget_size_allocate =(Ptr_gtk_widget_size_allocate)libgtk.resolve("gtk_widget_size_allocate");
+ QGtk::gtk_widget_set_direction =(Ptr_gtk_widget_set_direction)libgtk.resolve("gtk_widget_set_direction");
+ QGtk::gtk_widget_path =(Ptr_gtk_widget_path)libgtk.resolve("gtk_widget_path");
+ QGtk::gtk_container_get_type =(Ptr_gtk_container_get_type)libgtk.resolve("gtk_container_get_type");
+ QGtk::gtk_window_get_type =(Ptr_gtk_window_get_type)libgtk.resolve("gtk_window_get_type");
+ QGtk::gtk_widget_get_type =(Ptr_gtk_widget_get_type)libgtk.resolve("gtk_widget_get_type");
+ QGtk::gtk_rc_get_style_by_paths =(Ptr_gtk_rc_get_style_by_paths)libgtk.resolve("gtk_rc_get_style_by_paths");
+ QGtk::gtk_check_version =(Ptr_gtk_check_version)libgtk.resolve("gtk_check_version");
+ QGtk::pango_font_description_get_size = (Ptr_pango_font_description_get_size)libgtk.resolve("pango_font_description_get_size");
+ QGtk::pango_font_description_get_weight = (Ptr_pango_font_description_get_weight)libgtk.resolve("pango_font_description_get_weight");
+ QGtk::pango_font_description_get_family = (Ptr_pango_font_description_get_family)libgtk.resolve("pango_font_description_get_family");
+ QGtk::pango_font_description_get_style = (Ptr_pango_font_description_get_style)libgtk.resolve("pango_font_description_get_style");
}
void QGtk::cleanup_gtk_widgets()
@@ -549,6 +549,7 @@ void QGtkStyleUpdateScheduler::updateTheme()
QPalette newPalette = qApp->style()->standardPalette();
QApplicationPrivate::setSystemPalette(newPalette);
QApplication::setPalette(newPalette);
+ QGtk::initGtkWidgets();
QGtk::applyCustomPaletteHash();
QList<QWidget*> widgets = QApplication::allWidgets();
// Notify all widgets that size metrics might have changed
@@ -745,9 +746,9 @@ static void setupGtkFileChooser(GtkWidget* gtkFileChooser, QWidget *parent,
foreach (const QString &rawfilter, filters) {
GtkFileFilter *gtkFilter = QGtk::gtk_file_filter_new ();
QString name = rawfilter.left(rawfilter.indexOf(QLatin1Char('(')));
- QGtk::gtk_file_filter_set_name(gtkFilter, qPrintable(name));
-
QStringList extensions = extract_filter(rawfilter);
+ QGtk::gtk_file_filter_set_name(gtkFilter, qPrintable(name.isEmpty() ? extensions.join(QLS(", ")) : name));
+
foreach (const QString &fileExtension, extensions) {
QGtk::gtk_file_filter_add_pattern (gtkFilter, qPrintable(fileExtension));
}
diff --git a/src/gui/styles/qcleanlooksstyle.cpp b/src/gui/styles/qcleanlooksstyle.cpp
index 11f4d26..3fb63f2 100644
--- a/src/gui/styles/qcleanlooksstyle.cpp
+++ b/src/gui/styles/qcleanlooksstyle.cpp
@@ -3768,6 +3768,20 @@ QSize QCleanlooksStyle::sizeFromContents(ContentsType type, const QStyleOption *
}
break;
case CT_GroupBox:
+ // Since we use a bold font we have to recalculate base width
+ if (const QGroupBox *gb = qobject_cast<const QGroupBox*>(widget)) {
+ QFont font = gb->font();
+ font.setBold(true);
+ QFontMetrics metrics(font);
+ int baseWidth = metrics.width(gb->title()) + metrics.width(QLatin1Char(' '));
+ if (gb->isCheckable()) {
+ baseWidth += pixelMetric(QStyle::PM_IndicatorWidth, option, widget);
+ baseWidth += pixelMetric(QStyle::PM_CheckBoxLabelSpacing, option, widget);
+ }
+ newSize.setWidth(qMax(baseWidth, newSize.width()));
+ }
+ newSize += QSize(0, 1);
+ break;
case CT_RadioButton:
case CT_CheckBox:
newSize += QSize(0, 1);
diff --git a/src/gui/styles/qcommonstyle.cpp b/src/gui/styles/qcommonstyle.cpp
index d5ce8df..f8ae1a6 100644
--- a/src/gui/styles/qcommonstyle.cpp
+++ b/src/gui/styles/qcommonstyle.cpp
@@ -1780,7 +1780,46 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
case CE_TabBarTab:
if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
drawControl(CE_TabBarTabShape, tab, p, widget);
- drawControl(CE_TabBarTabLabel, tab, p, widget);
+
+ QStyleOptionTabV3 tabV3(*tab);
+ QRect labelRect = tabV3.rect;
+ QSize &left= tabV3.leftButtonSize;
+ QSize &right = tabV3.rightButtonSize;
+ const int spacing = 6 + 2;
+
+ // left widget
+ if (!left.isEmpty()) {
+ if (tabV3.shape == QTabBar::RoundedEast || tabV3.shape == QTabBar::TriangularEast )
+ labelRect.setTop(labelRect.top() + spacing + left.height());
+ else if (tabV3.shape == QTabBar::RoundedWest|| tabV3.shape == QTabBar::TriangularWest)
+ labelRect.setBottom(labelRect.bottom() - spacing - left.height());
+ else
+ labelRect.setLeft(labelRect.left() + spacing + left.width());
+ }
+
+ // right widget
+ if (!right.isEmpty()) {
+ if (tabV3.shape == QTabBar::RoundedEast || tabV3.shape == QTabBar::TriangularEast )
+ labelRect.setBottom(labelRect.bottom() - spacing - right.height());
+ else if (tabV3.shape == QTabBar::RoundedWest|| tabV3.shape == QTabBar::TriangularWest)
+ labelRect.setTop(labelRect.top() + spacing + right.height());
+ else
+ labelRect.setRight(labelRect.right() - spacing - right.width());
+ }
+
+ tabV3.rect = visualRect(opt->direction, opt->rect, labelRect);
+ drawControl(CE_TabBarTabLabel, &tabV3, p, widget);
+ if (tabV3.state & State_HasFocus) {
+ const int OFFSET = 1 + pixelMetric(PM_DefaultFrameWidth);
+ int x1, x2;
+ x1 = tab->rect.left();
+ x2 = tab->rect.right() - 1;
+ QStyleOptionFocusRect fropt;
+ fropt.QStyleOption::operator=(*tab);
+ fropt.rect.setRect(x1 + 1 + OFFSET, tab->rect.y() + OFFSET,
+ x2 - x1 - 2*OFFSET, tab->rect.height() - 2*OFFSET);
+ drawPrimitive(PE_FrameFocusRect, &fropt, p, widget);
+ }
}
break;
case CE_TabBarTabShape:
@@ -1980,14 +2019,12 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
: QIcon::Disabled);
QPixmap tabIcon = tabV2.icon.pixmap(iconSize,
(tabV2.state & State_Enabled) ? QIcon::Normal
- : QIcon::Disabled);
+ : QIcon::Disabled,
+ (tabV2.state & State_Selected) ? QIcon::On
+ : QIcon::Off);
- int offset = 4;
+ int offset = 6;
int left = opt->rect.left();
- if (tabV2.leftButtonSize.isEmpty())
- offset += 2;
- else
- left += tabV2.leftButtonSize.width() + (6 + 2) + 2;
QRect iconRect = QRect(left + offset, tr.center().y() - tabIcon.height() / 2,
tabIconSize.width(), tabIconSize.height());
if (!verticalTabs)
@@ -1998,20 +2035,6 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
drawItemText(p, tr, alignment, tab->palette, tab->state & State_Enabled, tab->text, QPalette::WindowText);
if (verticalTabs)
p->restore();
-
- if (tabV2.state & State_HasFocus) {
- const int OFFSET = 1 + pixelMetric(PM_DefaultFrameWidth);
-
- int x1, x2;
- x1 = tabV2.rect.left();
- x2 = tabV2.rect.right() - 1;
-
- QStyleOptionFocusRect fropt;
- fropt.QStyleOption::operator=(*tab);
- fropt.rect.setRect(x1 + 1 + OFFSET, tabV2.rect.y() + OFFSET,
- x2 - x1 - 2*OFFSET, tabV2.rect.height() - 2*OFFSET);
- drawPrimitive(PE_FrameFocusRect, &fropt, p, widget);
- }
}
break;
#endif // QT_NO_TABBAR
@@ -2859,12 +2882,6 @@ QRect QCommonStyle::subElementRect(SubElement sr, const QStyleOption *opt,
tr.setRight(tr.right() - horizontalShift);
}
- // left widget
- if (!tabV2.leftButtonSize.isEmpty()) {
- tr.setLeft(tr.left() + 6 + 2 +
- (verticalTabs ? tabV2.leftButtonSize.height() : tabV2.leftButtonSize.width()));
- }
-
// icon
if (!tabV2.icon.isNull()) {
QSize iconSize = tabV2.iconSize;
@@ -2886,12 +2903,6 @@ QRect QCommonStyle::subElementRect(SubElement sr, const QStyleOption *opt,
tr.setLeft(tr.left() + tabIconSize.width() + offset + 2);
}
- // right widget
- if (!tabV2.rightButtonSize.isEmpty()) {
- tr.setRight(tr.right() - 6 - 2 -
- (verticalTabs ? tabV2.rightButtonSize.height() : tabV2.rightButtonSize.width()));
- }
-
if (!verticalTabs)
tr = visualRect(opt->direction, opt->rect, tr);
r = tr;
diff --git a/src/gui/styles/qgtkstyle.cpp b/src/gui/styles/qgtkstyle.cpp
index b569b5c..ca71da2 100644
--- a/src/gui/styles/qgtkstyle.cpp
+++ b/src/gui/styles/qgtkstyle.cpp
@@ -951,14 +951,15 @@ void QGtkStyle::drawPrimitive(PrimitiveElement element,
"interior-focus", &interior_focus,
"focus-line-width", &focus_line_width, NULL);
+ // See https://bugzilla.mozilla.org/show_bug.cgi?id=405421 for info about this hack
+ g_object_set_data(G_OBJECT(gtkEntry), "transparent-bg-hint", GINT_TO_POINTER(TRUE));
+
if (!interior_focus && option->state & State_HasFocus)
rect.adjust(focus_line_width, focus_line_width, -focus_line_width, -focus_line_width);
-
gtkPainter.paintShadow(gtkEntry, "entry", rect, option->state & State_Enabled ?
GTK_STATE_NORMAL : GTK_STATE_INSENSITIVE,
GTK_SHADOW_IN, gtkEntry->style,
option->state & State_HasFocus ? QLS("focus") : QString());
-
if (!interior_focus && option->state & State_HasFocus)
gtkPainter.paintShadow(gtkEntry, "entry", option->rect, option->state & State_Enabled ?
GTK_STATE_ACTIVE : GTK_STATE_INSENSITIVE,
@@ -977,7 +978,7 @@ void QGtkStyle::drawPrimitive(PrimitiveElement element,
if (widget && widget->testAttribute(Qt::WA_SetPalette) &&
resolve_mask & (1 << QPalette::Base)) // Palette overridden by user
- painter->fillRect(textRect, option->palette.base().color());
+ painter->fillRect(textRect, option->palette.base());
else
gtkPainter.paintFlatBox( gtkEntry, "entry_bg", textRect,
option->state & State_Enabled ? GTK_STATE_NORMAL : GTK_STATE_INSENSITIVE, GTK_SHADOW_NONE, gtkEntry->style);
@@ -2507,6 +2508,10 @@ void QGtkStyle::drawControl(ControlElement element,
if (selected) {
QRect rect = option->rect.adjusted(0, 0, -1, -1);
+#ifndef QT_NO_COMBOBOX
+ if (qobject_cast<const QComboBox*>(widget))
+ rect = option->rect;
+#endif
gtkPainter.paintBox( gtkMenuItem, "menuitem", rect, GTK_STATE_PRELIGHT, GTK_SHADOW_OUT, style);
}
@@ -2756,10 +2761,13 @@ void QGtkStyle::drawControl(ControlElement element,
if (tab->state & State_Selected)
state = GTK_STATE_NORMAL;
- bool first = tab->position == QStyleOptionTab::Beginning || tab->position == QStyleOptionTab::OnlyOneTab;
- bool last = tab->position == QStyleOptionTab::End || tab->position == QStyleOptionTab::OnlyOneTab;
bool selected = (tab->state & State_Selected);
- if (option->direction == Qt::RightToLeft) {
+ bool first = false, last = false;
+ if (widget) {
+ // This is most accurate and avoids resizing tabs while moving
+ first = tab->rect.left() == widget->rect().left();
+ last = tab->rect.right() == widget->rect().right();
+ } else if (option->direction == Qt::RightToLeft) {
bool tmp = first;
first = last;
last = tmp;
diff --git a/src/gui/styles/qmacstyle_mac.mm b/src/gui/styles/qmacstyle_mac.mm
index 5d08c58..2558625 100644
--- a/src/gui/styles/qmacstyle_mac.mm
+++ b/src/gui/styles/qmacstyle_mac.mm
@@ -2161,8 +2161,11 @@ void qt_mac_fill_background(QPainter *painter, const QRegion &rgn, const QPoint
/*! \reimp */
void QMacStyle::polish(QPalette &pal)
{
- if (qt_mac_backgroundPattern == 0)
+ if (!qt_mac_backgroundPattern) {
+ if (!qApp)
+ return;
qt_mac_backgroundPattern = new QPixmap(d->generateBackgroundPattern());
+ }
QColor pc(Qt::black);
pc = qcolorForTheme(kThemeBrushDialogBackgroundActive);
@@ -2649,6 +2652,9 @@ int QMacStyle::pixelMetric(PixelMetric metric, const QStyleOption *opt, const QW
case PM_MenuHMargin:
ret = 0;
break;
+ case PM_ToolBarFrameWidth:
+ ret = 0;
+ break;
default:
ret = QWindowsStyle::pixelMetric(metric, opt, widget);
break;
@@ -3679,8 +3685,8 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
if (tb->toolButtonStyle != Qt::ToolButtonIconOnly) {
needText = true;
if (tb->toolButtonStyle == Qt::ToolButtonTextUnderIcon) {
- pr.setHeight(pixmap.size().height() + 6);
- cr.adjust(0, pr.bottom(), 0, -3);
+ pr.setHeight(pixmap.size().height());
+ cr.adjust(0, pr.bottom() + 1, 0, 1);
alignment |= Qt::AlignCenter;
} else {
pr.setWidth(pixmap.width() + 8);
@@ -3688,7 +3694,7 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
alignment |= Qt::AlignLeft | Qt::AlignVCenter;
}
}
- if (down) {
+ if (opt->state & State_Sunken) {
pr.translate(shiftX, shiftY);
pixmap = darkenPixmap(pixmap);
}
@@ -3718,7 +3724,8 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
}
drawItemText(p, cr, alignment, pal,
tb->state & State_Enabled, tb->text, role);
- if (QSysInfo::MacintoshVersion < QSysInfo::MV_10_5 && down) {
+ if (QSysInfo::MacintoshVersion < QSysInfo::MV_10_5 &&
+ (tb->state & State_Sunken)) {
// Draw a "drop shadow" in earlier versions.
drawItemText(p, cr.adjusted(0, 1, 0, 1), alignment,
tb->palette, tb->state & State_Enabled, tb->text);
@@ -4544,9 +4551,10 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
case CE_ToolBar: {
// For unified tool bars, draw nothing.
if (w) {
- if (QMainWindow * mainWindow = qobject_cast<QMainWindow *>(w->window()))
+ if (QMainWindow * mainWindow = qobject_cast<QMainWindow *>(w->window())) {
if (mainWindow->unifiedTitleAndToolBarOnMac())
break;
+ }
}
// draw background gradient
@@ -5270,6 +5278,7 @@ void QMacStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex
if (const QStyleOptionToolButton *tb
= qstyleoption_cast<const QStyleOptionToolButton *>(opt)) {
if (widget && qobject_cast<QToolBar *>(widget->parentWidget())) {
+// p->fillRect(tb->rect, QColor(155, 0, 155, 155));
if (tb->subControls & SC_ToolButtonMenu) {
QStyleOption arrowOpt(0);
arrowOpt.rect = subControlRect(cc, tb, SC_ToolButtonMenu, widget);
@@ -5282,16 +5291,22 @@ void QMacStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex
drawToolbarButtonArrow(tb->rect, tds, cg);
}
if (tb->state & State_On) {
- QPen oldPen = p->pen();
- p->setPen(QColor(0, 0, 0, 0x3a));
- p->fillRect(tb->rect.adjusted(1, 1, -1, -1), QColor(0, 0, 0, 0x12));
- p->drawLine(tb->rect.left() + 1, tb->rect.top(),
- tb->rect.right() - 1, tb->rect.top());
- p->drawLine(tb->rect.left() + 1, tb->rect.bottom(),
- tb->rect.right() - 1, tb->rect.bottom());
- p->drawLine(tb->rect.topLeft(), tb->rect.bottomLeft());
- p->drawLine(tb->rect.topRight(), tb->rect.bottomRight());
- p->setPen(oldPen);
+ if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_5) {
+ static QPixmap pm(QLatin1String(":/trolltech/mac/style/images/leopard-unified-toolbar-on.png"));
+ p->setRenderHint(QPainter::SmoothPixmapTransform);
+ QStyleHelper::drawBorderPixmap(pm, p, tb->rect, 2, 2, 2, 2);
+ } else {
+ QPen oldPen = p->pen();
+ p->setPen(QColor(0, 0, 0, 0x3a));
+ p->fillRect(tb->rect.adjusted(1, 1, -1, -1), QColor(0, 0, 0, 0x12));
+ p->drawLine(tb->rect.left() + 1, tb->rect.top(),
+ tb->rect.right() - 1, tb->rect.top());
+ p->drawLine(tb->rect.left() + 1, tb->rect.bottom(),
+ tb->rect.right() - 1, tb->rect.bottom());
+ p->drawLine(tb->rect.topLeft(), tb->rect.bottomLeft());
+ p->drawLine(tb->rect.topRight(), tb->rect.bottomRight());
+ p->setPen(oldPen);
+ }
}
drawControl(CE_ToolButtonLabel, opt, p, widget);
} else {
@@ -6009,6 +6024,14 @@ QSize QMacStyle::sizeFromContents(ContentsType ct, const QStyleOption *opt,
}
break;
case CT_ToolButton:
+ if (widget && qobject_cast<const QToolBar *>(widget->parentWidget())) {
+ sz.rwidth() += 4;
+ if (sz.height() <= 32) {
+ // Workaround strange HIToolBar bug when getting constraints.
+ sz.rheight() += 1;
+ }
+ return sz;
+ }
sz.rwidth() += 10;
sz.rheight() += 10;
return sz;
diff --git a/src/gui/styles/qstylehelper.cpp b/src/gui/styles/qstylehelper.cpp
index 3320970..69f8cd2 100644
--- a/src/gui/styles/qstylehelper.cpp
+++ b/src/gui/styles/qstylehelper.cpp
@@ -50,9 +50,10 @@
QT_BEGIN_NAMESPACE
-const bool QStyleHelper::UsePixmapCache = true;
+namespace QStyleHelper {
+const bool UsePixmapCache = true;
-QString QStyleHelper::uniqueName(const QString &key, const QStyleOption *option, const QSize &size)
+QString uniqueName(const QString &key, const QStyleOption *option, const QSize &size)
{
QString tmp;
const QStyleOptionComplex *complexOption = qstyleoption_cast<const QStyleOptionComplex *>(option);
@@ -74,7 +75,7 @@ QString QStyleHelper::uniqueName(const QString &key, const QStyleOption *option,
#ifndef QT_NO_DIAL
-int QStyleHelper::calcBigLineSize(int radius)
+int calcBigLineSize(int radius)
{
int bigLineSize = radius / 6;
if (bigLineSize < 4)
@@ -107,7 +108,7 @@ static QPointF calcRadialPos(const QStyleOptionSlider *dial, qreal offset)
return pos;
}
-qreal QStyleHelper::angle(const QPointF &p1, const QPointF &p2)
+qreal angle(const QPointF &p1, const QPointF &p2)
{
static const qreal rad_factor = 180 / Q_PI;
qreal _angle = 0;
@@ -139,7 +140,7 @@ qreal QStyleHelper::angle(const QPointF &p1, const QPointF &p2)
return _angle;
}
-QPolygonF QStyleHelper::calcLines(const QStyleOptionSlider *dial)
+QPolygonF calcLines(const QStyleOptionSlider *dial)
{
QPolygonF poly;
int width = dial->rect.width();
@@ -182,7 +183,7 @@ QPolygonF QStyleHelper::calcLines(const QStyleOptionSlider *dial)
// This will draw a nice and shiny QDial for us. We don't want
// all the shinyness in QWindowsStyle, hence we place it here
-void QStyleHelper::drawDial(const QStyleOptionSlider *option, QPainter *painter)
+void drawDial(const QStyleOptionSlider *option, QPainter *painter)
{
QPalette pal = option->palette;
QColor buttonColor = pal.button().color();
@@ -292,4 +293,61 @@ void QStyleHelper::drawDial(const QStyleOptionSlider *option, QPainter *painter)
}
#endif //QT_NO_DIAL
+void drawBorderPixmap(const QPixmap &pixmap, QPainter *painter, const QRect &rect,
+ int left, int top, int right,
+ int bottom)
+{
+ QSize size = pixmap.size();
+ //painter->setRenderHint(QPainter::SmoothPixmapTransform);
+
+ //top
+ if (top > 0) {
+ painter->drawPixmap(QRect(rect.left() + left, rect.top(), rect.width() -right - left, top), pixmap,
+ QRect(left, 0, size.width() -right - left, top));
+
+ //top-left
+ if(left > 0)
+ painter->drawPixmap(QRect(rect.left(), rect.top(), left, top), pixmap,
+ QRect(0, 0, left, top));
+
+ //top-right
+ if (right > 0)
+ painter->drawPixmap(QRect(rect.left() + rect.width() - right, rect.top(), right, top), pixmap,
+ QRect(size.width() - right, 0, right, top));
+ }
+
+ //left
+ if (left > 0)
+ painter->drawPixmap(QRect(rect.left(), rect.top()+top, left, rect.height() - top - bottom), pixmap,
+ QRect(0, top, left, size.height() - bottom - top));
+
+ //center
+ painter->drawPixmap(QRect(rect.left() + left, rect.top()+top, rect.width() -right - left,
+ rect.height() - bottom - top), pixmap,
+ QRect(left, top, size.width() -right -left,
+ size.height() - bottom - top));
+ //right
+ if (right > 0)
+ painter->drawPixmap(QRect(rect.left() +rect.width() - right, rect.top()+top, right, rect.height() - top - bottom), pixmap,
+ QRect(size.width() - right, top, right, size.height() - bottom - top));
+
+ //bottom
+ if (bottom > 0) {
+ painter->drawPixmap(QRect(rect.left() +left, rect.top() + rect.height() - bottom,
+ rect.width() - right - left, bottom), pixmap,
+ QRect(left, size.height() - bottom,
+ size.width() - right - left, bottom));
+ //bottom-left
+ if (left > 0)
+ painter->drawPixmap(QRect(rect.left(), rect.top() + rect.height() - bottom, left, bottom), pixmap,
+ QRect(0, size.height() - bottom, left, bottom));
+
+ //bottom-right
+ if (right > 0)
+ painter->drawPixmap(QRect(rect.left() + rect.width() - right, rect.top() + rect.height() - bottom, right, bottom), pixmap,
+ QRect(size.width() - right, size.height() - bottom, right, bottom));
+
+ }
+}
+}
QT_END_NAMESPACE
diff --git a/src/gui/styles/qstylehelper_p.h b/src/gui/styles/qstylehelper_p.h
index d9b2e28..711bd2d 100644
--- a/src/gui/styles/qstylehelper_p.h
+++ b/src/gui/styles/qstylehelper_p.h
@@ -19,6 +19,7 @@
QT_BEGIN_NAMESPACE
class QPainter;
+class QPixmap;
class QStyleOptionSlider;
class QStyleOption;
@@ -32,6 +33,9 @@ namespace QStyleHelper
int calcBigLineSize(int radius);
void drawDial(const QStyleOptionSlider *dial, QPainter *painter);
#endif //QT_NO_DIAL
+ void drawBorderPixmap(const QPixmap &pixmap, QPainter *painter, const QRect &rect,
+ int left = 0, int top = 0, int right = 0,
+ int bottom = 0);
}
QT_END_NAMESPACE
diff --git a/src/gui/styles/qstylesheetstyle.cpp b/src/gui/styles/qstylesheetstyle.cpp
index 49ac57a..ebddfd5 100644
--- a/src/gui/styles/qstylesheetstyle.cpp
+++ b/src/gui/styles/qstylesheetstyle.cpp
@@ -81,6 +81,7 @@
#include <private/qwidget_p.h>
#include <QAbstractSpinBox>
#include <QLabel>
+#include "qdrawutil.h"
#include <limits.h>
@@ -312,15 +313,10 @@ struct QStyleSheetBorderImageData : public QSharedData
for (int i = 0; i < 4; i++)
cuts[i] = -1;
}
- QPixmap topEdge, bottomEdge, leftEdge, rightEdge, middle;
- QRect topEdgeRect, bottomEdgeRect, leftEdgeRect, rightEdgeRect, middleRect;
- QRect topLeftCorner, topRightCorner, bottomRightCorner, bottomLeftCorner;
int cuts[4];
QPixmap pixmap;
QImage image;
QCss::TileMode horizStretch, vertStretch;
-
- void cutBorderImage();
};
struct QStyleSheetBackgroundData : public QSharedData
@@ -1122,176 +1118,27 @@ void QRenderRule::fixupBorder(int nativeWidth)
for (int i = 0; i < 4; i++) // assume, cut = border
bi->cuts[i] = int(border()->borders[i]);
}
- bi->cutBorderImage();
-}
-
-void QStyleSheetBorderImageData::cutBorderImage()
-{
- const int w = pixmap.width();
- const int h = pixmap.height();
- const int &l = cuts[LeftEdge], &r = cuts[RightEdge],
- &t = cuts[TopEdge], &b = cuts[BottomEdge];
-
- topEdgeRect = QRect(l, 0, w - r - l, t);
- bottomEdgeRect = QRect(l, h - b, w - l - r, b);
- if (horizStretch != TileMode_Stretch) {
- if (topEdgeRect.isValid())
- topEdge = pixmap.copy(topEdgeRect).scaledToHeight(t);
- if (bottomEdgeRect.isValid())
- bottomEdge = pixmap.copy(bottomEdgeRect).scaledToHeight(b);
- }
-
- leftEdgeRect = QRect(0, t, l, h - b - t);
- rightEdgeRect = QRect(w - r, t, r, h - t- b);
- if (vertStretch != TileMode_Stretch) {
- if (leftEdgeRect.isValid())
- leftEdge = pixmap.copy(leftEdgeRect).scaledToWidth(l);
- if (rightEdgeRect.isValid())
- rightEdge = pixmap.copy(rightEdgeRect).scaledToWidth(r);
- }
-
- middleRect = QRect(l, t, w - r -l, h - t - b);
- if (middleRect.isValid()
- && !(horizStretch == TileMode_Stretch && vertStretch == TileMode_Stretch)) {
- middle = pixmap.copy(middleRect);
- }
}
-static void qDrawCenterTiledPixmap(QPainter *p, const QRectF& r, const QPixmap& pix)
-{
- p->drawTiledPixmap(r, pix, QPoint(pix.width() - int(r.width())%pix.width(),
- pix.height() - int(r.height())%pix.height()));
-}
-
-// Note: Round is not supported
void QRenderRule::drawBorderImage(QPainter *p, const QRect& rect)
{
- setClip(p, rect);
- const QRectF br(rect);
- const int *borders = border()->borders;
- const int &l = borders[LeftEdge], &r = borders[RightEdge],
- &t = borders[TopEdge], &b = borders[BottomEdge];
- QRectF pr = br.adjusted(l, t, -r, -b);
+ static const Qt::TileRule tileMode2TileRule[] = {
+ Qt::Stretch, Qt::Round, Qt::Stretch, Qt::Repeat, Qt::Stretch };
+
+ const QStyleSheetBorderImageData *borderImageData = border()->borderImage();
+ const int *targetBorders = border()->borders;
+ const int *sourceBorders = borderImageData->cuts;
+ QMargins sourceMargins(sourceBorders[TopEdge], sourceBorders[LeftEdge],
+ sourceBorders[BottomEdge], sourceBorders[RightEdge]);
+ QMargins targetMargins(targetBorders[TopEdge], targetBorders[LeftEdge],
+ targetBorders[BottomEdge], targetBorders[RightEdge]);
bool wasSmoothPixmapTransform = p->renderHints() & QPainter::SmoothPixmapTransform;
p->setRenderHint(QPainter::SmoothPixmapTransform);
-
- const QStyleSheetBorderImageData *bi = border()->borderImage();
- const QPixmap& pix = bi->pixmap;
- const int *c = bi->cuts;
- QRectF tlc(0, 0, c[LeftEdge], c[TopEdge]);
- if (tlc.isValid())
- p->drawPixmap(QRectF(br.topLeft(), QSizeF(l, t)), pix, tlc);
- QRectF trc(pix.width() - c[RightEdge], 0, c[RightEdge], c[TopEdge]);
- if (trc.isValid())
- p->drawPixmap(QRectF(br.left() + br.width() - r, br.y(), r, t), pix, trc);
- QRectF blc(0, pix.height() - c[BottomEdge], c[LeftEdge], c[BottomEdge]);
- if (blc.isValid())
- p->drawPixmap(QRectF(br.x(), br.y() + br.height() - b, l, b), pix, blc);
- QRectF brc(pix.width() - c[RightEdge], pix.height() - c[BottomEdge],
- c[RightEdge], c[BottomEdge]);
- if (brc.isValid())
- p->drawPixmap(QRectF(br.x() + br.width() - r, br.y() + br.height() - b, r, b),
- pix, brc);
-
- QRectF topEdgeRect(br.x() + l, br.y(), pr.width(), t);
- QRectF bottomEdgeRect(br.x() + l, br.y() + br.height() - b, pr.width(), b);
-
- switch (bi->horizStretch) {
- case TileMode_Stretch:
- if (bi->topEdgeRect.isValid())
- p->drawPixmap(topEdgeRect, pix, bi->topEdgeRect);
- if (bi->bottomEdgeRect.isValid())
- p->drawPixmap(bottomEdgeRect, pix, bi->bottomEdgeRect);
- if (bi->middleRect.isValid()) {
- if (bi->vertStretch == TileMode_Stretch)
- p->drawPixmap(pr, pix, bi->middleRect);
- else if (bi->vertStretch == TileMode_Repeat) {
- QPixmap scaled = bi->middle.scaled(int(pr.width()), bi->middle.height());
- qDrawCenterTiledPixmap(p, pr, scaled);
- }
- }
- break;
- case TileMode_Repeat:
- if (!bi->topEdge.isNull() && !topEdgeRect.isEmpty()) {
- QPixmap scaled = bi->topEdge.scaled(bi->topEdge.width(), t);
- qDrawCenterTiledPixmap(p, topEdgeRect, scaled);
- }
- if (!bi->bottomEdge.isNull() && !bottomEdgeRect.isEmpty()) {
- QPixmap scaled = bi->bottomEdge.scaled(bi->bottomEdge.width(), b);
- qDrawCenterTiledPixmap(p, bottomEdgeRect, scaled);
- }
- if (bi->middleRect.isValid()) {
- if (bi->vertStretch == TileMode_Repeat) {
- qDrawCenterTiledPixmap(p, pr, bi->middle);
- } else if (bi->vertStretch == TileMode_Stretch) {
- QPixmap scaled = bi->middle.scaled(bi->middle.width(), int(pr.height()));
- qDrawCenterTiledPixmap(p, pr, scaled);
- }
- }
- break;
- case TileMode_Round:
- if (!bi->topEdge.isNull()) {
- int rwh = (int)pr.width()/ceil(pr.width()/bi->topEdge.width());
- QPixmap scaled = bi->topEdge.scaled(rwh, bi->topEdge.height());
- int blank = int(pr.width()) % rwh;
- p->drawTiledPixmap(QRectF(br.x() + l + blank/2, br.y(), pr.width() - blank, t),
- scaled);
- }
- if (!bi->bottomEdge.isNull()) {
- int rwh = (int) pr.width()/ceil(pr.width()/bi->bottomEdge.width());
- QPixmap scaled = bi->bottomEdge.scaled(rwh, bi->bottomEdge.height());
- int blank = int(pr.width()) % rwh;
- p->drawTiledPixmap(QRectF(br.x() + l+ blank/2, br.y()+br.height()-b,
- pr.width() - blank, b), scaled);
- }
- break;
- default:
- break;
- }
-
- QRectF leftEdgeRect(br.x(), br.y() + t, l, pr.height());
- QRectF rightEdgeRect(br.x() + br.width()- r, br.y() + t, r, pr.height());
-
- switch (bi->vertStretch) {
- case TileMode_Stretch:
- if (bi->leftEdgeRect.isValid())
- p->drawPixmap(leftEdgeRect, pix, bi->leftEdgeRect);
- if (bi->rightEdgeRect.isValid())
- p->drawPixmap(rightEdgeRect, pix, bi->rightEdgeRect);
- break;
- case TileMode_Repeat:
- if (!bi->leftEdge.isNull() && !leftEdgeRect.isEmpty()) {
- QPixmap scaled = bi->leftEdge.scaled(l, bi->leftEdge.height());
- qDrawCenterTiledPixmap(p, leftEdgeRect, scaled);
- }
- if (!bi->rightEdge.isNull() && !rightEdgeRect.isEmpty()) {
- QPixmap scaled = bi->rightEdge.scaled(r, bi->rightEdge.height());
- qDrawCenterTiledPixmap(p, rightEdgeRect, scaled);
- }
- break;
- case TileMode_Round:
- if (!bi->leftEdge.isNull()) {
- int rwh = (int) pr.height()/ceil(pr.height()/bi->leftEdge.height());
- QPixmap scaled = bi->leftEdge.scaled(bi->leftEdge.width(), rwh);
- int blank = int(pr.height()) % rwh;
- p->drawTiledPixmap(QRectF(br.x(), br.y() + t + blank/2, l, pr.height() - blank),
- scaled);
- }
- if (!bi->rightEdge.isNull()) {
- int rwh = (int) pr.height()/ceil(pr.height()/bi->rightEdge.height());
- QPixmap scaled = bi->rightEdge.scaled(bi->rightEdge.width(), rwh);
- int blank = int(pr.height()) % rwh;
- p->drawTiledPixmap(QRectF(br.x() + br.width() - r, br.y()+t+blank/2, r,
- pr.height() - blank), scaled);
- }
- break;
- default:
- break;
- }
-
+ qDrawBorderPixmap(p, rect, targetMargins, borderImageData->pixmap,
+ QRect(QPoint(), borderImageData->pixmap.size()), sourceMargins,
+ QTileRules(tileMode2TileRule[borderImageData->horizStretch], tileMode2TileRule[borderImageData->vertStretch]));
p->setRenderHint(QPainter::SmoothPixmapTransform, wasSmoothPixmapTransform);
- unsetClip(p);
}
QRect QRenderRule::originRect(const QRect &rect, Origin origin) const
@@ -1525,7 +1372,7 @@ void QRenderRule::configurePalette(QPalette *p, QPalette::ColorGroup cg, const Q
/* For embedded widgets (ComboBox, SpinBox and ScrollArea) we want the embedded widget
* to be transparent when we have a transparent background or border image */
if ((hasBackground() && background()->isTransparent())
- || (hasBorder() && border()->hasBorderImage() && border()->borderImage()->middleRect.isValid()))
+ || (hasBorder() && border()->hasBorderImage() && !border()->borderImage()->pixmap.isNull()))
p->setBrush(cg, w->backgroundRole(), Qt::NoBrush);
}
@@ -2876,12 +2723,6 @@ void QStyleSheetStyle::polish(QWidget *w)
QRenderRule rule = renderRule(w, PseudoElement_None, PseudoClass_Any);
if (rule.hasDrawable() || rule.hasBox()) {
if (w->metaObject() == &QWidget::staticMetaObject
-#ifndef QT_NO_MENUBAR
- || qobject_cast<QMenuBar *>(w)
-#endif
-#ifndef QT_NO_MENU
- || qobject_cast<QMenu *>(w)
-#endif
#ifndef QT_NO_ITEMVIEWS
|| qobject_cast<QHeaderView *>(w)
#endif
@@ -4164,9 +4005,8 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q
rule.configurePalette(&frmOpt.palette, QPalette::Text, QPalette::Base);
frmOpt.rect = rule.borderRect(frmOpt.rect);
baseStyle()->drawControl(ce, &frmOpt, p, w);
- } else {
- rule.drawBorder(p, rule.borderRect(opt->rect));
}
+ // else, borders are already drawn in PE_Widget
}
return;
@@ -4220,12 +4060,6 @@ void QStyleSheetStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *op
QRect rect = opt->rect;
switch (pe) {
- case PE_PanelStatusBar:
- if (rule.hasDrawable()) {
- rule.drawRule(p, opt->rect);
- return;
- }
- break;
case PE_FrameStatusBar: {
QRenderRule subRule = renderRule(w->parentWidget(), opt, PseudoElement_Item);
@@ -4337,36 +4171,34 @@ void QStyleSheetStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *op
return;
case PE_Widget:
- if (!rule.hasBackground()) {
+ if (!rule.hasDrawable()) {
QWidget *container = containerWidget(w);
if (autoFillDisabledWidgets->contains(container)
- && (container == w || !renderRule(container, opt).hasBackground())) {
+ && (container == w || !renderRule(container, opt).hasDrawable())) {
//we do not have a background, but we disabled the autofillbackground anyway. so fill the background now.
// (this may happen if we have rules like :focus)
p->fillRect(opt->rect, opt->palette.brush(w->backgroundRole()));
}
break;
}
-
#ifndef QT_NO_SCROLLAREA
if (const QAbstractScrollArea *sa = qobject_cast<const QAbstractScrollArea *>(w)) {
const QAbstractScrollAreaPrivate *sap = sa->d_func();
rule.drawBackground(p, opt->rect, sap->contentsOffset());
- } else
-#endif
- {
- rule.drawBackground(p, opt->rect);
+ if (rule.hasBorder())
+ rule.drawBorder(p, rule.borderRect(opt->rect));
+ break;
}
-
- return;
-
- case PE_FrameMenu:
+#endif
+ //fall tghought
+ case PE_PanelMenu:
case PE_PanelMenuBar:
- if (!rule.hasNativeBorder()) {
- rule.drawBorder(p, rule.borderRect(opt->rect));
+ case PE_PanelStatusBar:
+ if(rule.hasDrawable()) {
+ rule.drawRule(p, opt->rect);
return;
}
- break;
+ break;
case PE_IndicatorToolBarSeparator:
case PE_IndicatorToolBarHandle: {
@@ -5842,7 +5674,7 @@ QRect QStyleSheetStyle::subElementRect(SubElement se, const QStyleOption *opt, c
bool QStyleSheetStyle::event(QEvent *e)
{
- return baseStyle()->event(e) || ParentStyle::event(e);
+ return (baseStyle()->event(e) && e->isAccepted()) || ParentStyle::event(e);
}
void QStyleSheetStyle::updateStyleSheetFont(QWidget* w) const
@@ -5887,13 +5719,11 @@ void QStyleSheetStyle::clearWidgetFont(QWidget* w) const
w->setProperty("_q_styleSheetWidgetFont", QVariant(QVariant::Invalid));
}
-// Returns the palette that should be used when the particular widget is focused.
-// This needs to be called by some widgets that do drawing themselves instead
-// of through the style.
-// ### This should be removed ideally by Qt 4.5, and at least by Qt 5, and fixed
-// for good by letting the style draw everything.
+// Polish palette that should be used for a particular widget, with particular states
+// (eg. :focus, :hover, ...)
+// this is called by widgets that paint themself in their paint event
// Returns true if there is a new palette in pal.
-bool QStyleSheetStyle::focusPalette(const QWidget* w, const QStyleOption* opt, QPalette* pal)
+bool QStyleSheetStyle::styleSheetPalette(const QWidget* w, const QStyleOption* opt, QPalette* pal)
{
if (!w || !opt || !pal)
return false;
diff --git a/src/gui/styles/qstylesheetstyle_p.h b/src/gui/styles/qstylesheetstyle_p.h
index 1f61445..e057274 100644
--- a/src/gui/styles/qstylesheetstyle_p.h
+++ b/src/gui/styles/qstylesheetstyle_p.h
@@ -131,7 +131,7 @@ public:
void saveWidgetFont(QWidget* w, const QFont& font) const;
void clearWidgetFont(QWidget* w) const;
- bool focusPalette(const QWidget* w, const QStyleOption* opt, QPalette* pal);
+ bool styleSheetPalette(const QWidget* w, const QStyleOption* opt, QPalette* pal);
protected Q_SLOTS:
QIcon standardIconImplementation(StandardPixmap standardIcon, const QStyleOption *opt = 0,
diff --git a/src/gui/styles/qwindowsmobilestyle.cpp b/src/gui/styles/qwindowsmobilestyle.cpp
index c52c700..f56d46c 100644
--- a/src/gui/styles/qwindowsmobilestyle.cpp
+++ b/src/gui/styles/qwindowsmobilestyle.cpp
@@ -72,12 +72,12 @@
#include "qdebug.h"
#include "qtabwidget.h"
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
#include "qt_windows.h"
#include "qguifunctions_wince.h"
extern bool qt_wince_is_high_dpi(); //defined in qguifunctions_wince.cpp
extern bool qt_wince_is_smartphone(); //defined in qguifunctions_wince.cpp
-#endif // Q_OS_WINCE
+#endif // Q_WS_WINCE
QT_BEGIN_NAMESPACE
@@ -685,13 +685,13 @@ QWindowsMobileStyle::QWindowsMobileStyle() : QWindowsStyle(*new QWindowsMobileSt
QWindowsMobileStylePrivate::QWindowsMobileStylePrivate() :QWindowsStylePrivate() {
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
doubleControls = qt_wince_is_high_dpi();
smartphone = qt_wince_is_smartphone();
#else
doubleControls = false;
smartphone = false;
-#endif //Q_OS_WINCE
+#endif //Q_WS_WINCE
#ifndef QT_NO_IMAGEFORMAT_XPM
@@ -3401,6 +3401,9 @@ int QWindowsMobileStyle::styleHint(StyleHint hint, const QStyleOption *opt, cons
case SH_ScrollBar_ContextMenu:
ret = false;
break;
+ case SH_MenuBar_AltKeyNavigation:
+ ret = false;
+ break;
default:
ret = QWindowsStyle::styleHint(hint, opt, widget, returnData);
break;
diff --git a/src/gui/styles/qwindowsvistastyle.cpp b/src/gui/styles/qwindowsvistastyle.cpp
index b14b8b3..013ca1e 100644
--- a/src/gui/styles/qwindowsvistastyle.cpp
+++ b/src/gui/styles/qwindowsvistastyle.cpp
@@ -2396,6 +2396,9 @@ void QWindowsVistaStyle::polish(QWidget *widget)
else if (QTreeView *tree = qobject_cast<QTreeView *> (widget)) {
tree->viewport()->setAttribute(Qt::WA_Hover);
}
+ else if (QListView *list = qobject_cast<QListView *> (widget)) {
+ list->viewport()->setAttribute(Qt::WA_Hover);
+ }
}
/*!
diff --git a/src/gui/styles/qwindowsvistastyle_p.h b/src/gui/styles/qwindowsvistastyle_p.h
index 877bc50..cef2b71 100644
--- a/src/gui/styles/qwindowsvistastyle_p.h
+++ b/src/gui/styles/qwindowsvistastyle_p.h
@@ -76,6 +76,7 @@
#include <qscrollbar.h>
#include <qprogressbar.h>
#include <qdockwidget.h>
+#include <qlistview.h>
#include <qtreeview.h>
#include <qtextedit.h>
#include <qmessagebox.h>
diff --git a/src/gui/styles/qwindowsxpstyle.cpp b/src/gui/styles/qwindowsxpstyle.cpp
index 50cd13f..639eff0 100644
--- a/src/gui/styles/qwindowsxpstyle.cpp
+++ b/src/gui/styles/qwindowsxpstyle.cpp
@@ -608,7 +608,7 @@ void QWindowsXPStylePrivate::drawBackground(XPThemeData &themeData)
QPainter *painter = themeData.painter;
Q_ASSERT_X(painter != 0, "QWindowsXPStylePrivate::drawBackground()", "Trying to draw a theme part without a painter");
- if (!painter)
+ if (!painter || !painter->isActive())
return;
painter->save();
@@ -2835,7 +2835,7 @@ void QWindowsXPStyle::drawComplexControl(ComplexControl cc, const QStyleOptionCo
bflags |= State_MouseOver;
}
}
-
+
QStyleOption tool(0);
tool.palette = toolbutton->palette;
if (toolbutton->subControls & SC_ToolButton) {
diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp
index 43f5b1e..24ff10b 100644
--- a/src/gui/text/qfont.cpp
+++ b/src/gui/text/qfont.cpp
@@ -890,7 +890,10 @@ int QFont::pointSize() const
*/
void QFont::setPointSize(int pointSize)
{
- Q_ASSERT_X (pointSize > 0, "QFont::setPointSize", "point size must be greater than 0");
+ if (pointSize <= 0) {
+ qWarning("QFont::setPointSize: Point size <= 0 (%d), must be greater than 0", pointSize);
+ return;
+ }
detach();
@@ -909,7 +912,10 @@ void QFont::setPointSize(int pointSize)
*/
void QFont::setPointSizeF(qreal pointSize)
{
- Q_ASSERT_X(pointSize > 0.0, "QFont::setPointSizeF", "point size must be greater than 0");
+ if (pointSize <= 0) {
+ qWarning("QFont::setPointSizeF: Point size <= 0 (%d), must be greater than 0", pointSize);
+ return;
+ }
detach();
diff --git a/src/gui/text/qfontdatabase_win.cpp b/src/gui/text/qfontdatabase_win.cpp
index c9f5586..fe1c08c 100644
--- a/src/gui/text/qfontdatabase_win.cpp
+++ b/src/gui/text/qfontdatabase_win.cpp
@@ -364,7 +364,7 @@ void addFontToDatabase(QString familyName, const QString &scriptName,
signature->fsUsb[0], signature->fsUsb[1],
signature->fsUsb[2], signature->fsUsb[3]
};
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
if (signature->fsUsb[0] == 0) {
// If the unicode ranges bit mask is zero then
// EnumFontFamiliesEx failed to determine it properly.
@@ -699,6 +699,7 @@ QFontEngine *loadEngine(int script, const QFontPrivate *fp, const QFontDef &requ
}
bool stockFont = false;
+ bool preferClearTypeAA = false;
HFONT hfont = 0;
@@ -714,7 +715,7 @@ QFontEngine *loadEngine(int script, const QFontPrivate *fp, const QFontDef &requ
f = deffnt;
else if (fam == QLatin1String("system"))
f = SYSTEM_FONT;
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
else if (fam == QLatin1String("system_fixed"))
f = SYSTEM_FIXED_FONT;
else if (fam == QLatin1String("ansi_fixed"))
@@ -773,7 +774,7 @@ QFontEngine *loadEngine(int script, const QFontPrivate *fp, const QFontDef &requ
int strat = OUT_DEFAULT_PRECIS;
if (request.styleStrategy & QFont::PreferBitmap) {
strat = OUT_RASTER_PRECIS;
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
} else if (request.styleStrategy & QFont::PreferDevice) {
strat = OUT_DEVICE_PRECIS;
} else if (request.styleStrategy & QFont::PreferOutline) {
@@ -793,16 +794,18 @@ QFontEngine *loadEngine(int script, const QFontPrivate *fp, const QFontDef &requ
if (request.styleStrategy & QFont::PreferMatch)
qual = DRAFT_QUALITY;
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
else if (request.styleStrategy & QFont::PreferQuality)
qual = PROOF_QUALITY;
#endif
if (request.styleStrategy & QFont::PreferAntialias) {
- if (QSysInfo::WindowsVersion >= QSysInfo::WV_XP)
+ if (QSysInfo::WindowsVersion >= QSysInfo::WV_XP) {
qual = 5; // == CLEARTYPE_QUALITY;
- else
+ preferClearTypeAA = true;
+ } else {
qual = ANTIALIASED_QUALITY;
+ }
} else if (request.styleStrategy & QFont::NoAntialias) {
qual = NONANTIALIASED_QUALITY;
}
@@ -869,7 +872,7 @@ QFontEngine *loadEngine(int script, const QFontPrivate *fp, const QFontDef &requ
qErrnoWarning("QFontEngine::loadEngine: CreateFontIndirect with stretch failed");
}
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
if (hfont == 0) {
hfont = (HFONT)GetStockObject(ANSI_VAR_FONT);
stockFont = true;
@@ -884,6 +887,9 @@ QFontEngine *loadEngine(int script, const QFontPrivate *fp, const QFontDef &requ
}
QFontEngineWin *few = new QFontEngineWin(font_name, hfont, stockFont, lf);
+ if (preferClearTypeAA)
+ few->glyphFormat = QFontEngineGlyphCache::Raster_RGBMask;
+
// Also check for OpenType tables when using complex scripts
// ### TODO: This only works for scripts that require OpenType. More generally
// for scripts that do not require OpenType we should just look at the list of
@@ -1134,7 +1140,7 @@ static void getFamiliesAndSignatures(const QByteArray &fontData, QFontDatabasePr
signature.fsUsb[1] = qFromBigEndian<quint32>(table + 46);
signature.fsUsb[2] = qFromBigEndian<quint32>(table + 50);
signature.fsUsb[3] = qFromBigEndian<quint32>(table + 54);
-
+
signature.fsCsb[0] = qFromBigEndian<quint32>(table + 78);
signature.fsCsb[1] = qFromBigEndian<quint32>(table + 82);
}
diff --git a/src/gui/text/qfontengine_mac.mm b/src/gui/text/qfontengine_mac.mm
index 425cab2..6b5bd0f 100644
--- a/src/gui/text/qfontengine_mac.mm
+++ b/src/gui/text/qfontengine_mac.mm
@@ -135,12 +135,12 @@ QCoreTextFontEngineMulti::QCoreTextFontEngineMulti(const ATSFontFamilyRef &, con
symbolicTraits |= kCTFontItalicTrait;
break;
}
-
+
QCFString name;
ATSFontGetName(atsFontRef, kATSOptionFlagsDefault, &name);
- QCFType<CTFontDescriptorRef> descriptor = CTFontDescriptorCreateWithNameAndSize(name, fontDef.pixelSize);
- QCFType<CTFontRef> baseFont = CTFontCreateWithFontDescriptor(descriptor, fontDef.pixelSize, 0);
- ctfont = CTFontCreateCopyWithSymbolicTraits(baseFont, fontDef.pixelSize, 0, symbolicTraits, symbolicTraits);
+ QCFType<CTFontDescriptorRef> descriptor = CTFontDescriptorCreateWithNameAndSize(name, fontDef.pointSize);
+ QCFType<CTFontRef> baseFont = CTFontCreateWithFontDescriptor(descriptor, fontDef.pointSize, 0);
+ ctfont = CTFontCreateCopyWithSymbolicTraits(baseFont, fontDef.pointSize, 0, symbolicTraits, symbolicTraits);
// CTFontCreateCopyWithSymbolicTraits returns NULL if we ask for a trait that does
// not exist for the given font. (for example italic)
@@ -162,7 +162,7 @@ QCoreTextFontEngineMulti::QCoreTextFontEngineMulti(const ATSFontFamilyRef &, con
QCoreTextFontEngine *fe = new QCoreTextFontEngine(ctfont, fontDef, this);
fe->ref.ref();
engines.append(fe);
-
+
}
QCoreTextFontEngineMulti::~QCoreTextFontEngineMulti()
@@ -176,7 +176,7 @@ uint QCoreTextFontEngineMulti::fontIndexForFont(CTFontRef id) const
if (CFEqual(engineAt(i)->ctfont, id))
return i;
}
-
+
QCoreTextFontEngineMulti *that = const_cast<QCoreTextFontEngineMulti *>(this);
QCoreTextFontEngine *fe = new QCoreTextFontEngine(id, fontDef, that);
fe->ref.ref();
@@ -227,7 +227,7 @@ bool QCoreTextFontEngineMulti::stringToCMap(const QChar *str, int len, QGlyphLay
CTFontRef runFont = static_cast<CTFontRef>(CFDictionaryGetValue(runAttribs, NSFontAttributeName));
const uint fontIndex = (fontIndexForFont(runFont) << 24);
//NSLog(@"Run Font Name = %@", CTFontCopyFamilyName(runFont));
- QVarLengthArray<CGGlyph, 512> cgglyphs(0);
+ QVarLengthArray<CGGlyph, 512> cgglyphs(0);
const CGGlyph *tmpGlyphs = CTRunGetGlyphsPtr(run);
if (!tmpGlyphs) {
cgglyphs.resize(glyphCount);
@@ -260,7 +260,7 @@ bool QCoreTextFontEngineMulti::stringToCMap(const QChar *str, int len, QGlyphLay
CFIndex k = 0;
CFIndex i = 0;
- for (i = stringRange.location;
+ for (i = stringRange.location;
(i < stringRange.location + stringRange.length) && (k < glyphCount); ++i) {
if (tmpIndices[k * rtlSign + rtlOffset] == i || i == stringRange.location) {
logClusters[i] = k + firstGlyphIndex;
@@ -425,28 +425,28 @@ void QCoreTextFontEngine::draw(CGContextRef ctx, qreal x, qreal y, const QTextIt
getGlyphPositions(ti.glyphs, matrix, ti.flags, glyphs, positions);
if (glyphs.size() == 0)
return;
-
+
CGContextSetFontSize(ctx, fontDef.pixelSize);
-
+
CGAffineTransform oldTextMatrix = CGContextGetTextMatrix(ctx);
-
+
CGAffineTransform cgMatrix = CGAffineTransformMake(1, 0, 0, -1, 0, -paintDeviceHeight);
-
+
CGAffineTransformConcat(cgMatrix, oldTextMatrix);
-
+
if (synthesisFlags & QFontEngine::SynthesizedItalic)
cgMatrix = CGAffineTransformConcat(cgMatrix, CGAffineTransformMake(1, 0, -tanf(14 * acosf(0) / 90), 1, 0, 0));
-
+
// ### cgMatrix = CGAffineTransformConcat(cgMatrix, transform);
-
+
CGContextSetTextMatrix(ctx, cgMatrix);
-
+
CGContextSetTextDrawingMode(ctx, kCGTextFill);
-
-
+
+
QVarLengthArray<CGSize> advances(glyphs.size());
QVarLengthArray<CGGlyph> cgGlyphs(glyphs.size());
-
+
for (int i = 0; i < glyphs.size() - 1; ++i) {
advances[i].width = (positions[i + 1].x - positions[i].x).toReal();
advances[i].height = (positions[i + 1].y - positions[i].y).toReal();
@@ -455,21 +455,21 @@ void QCoreTextFontEngine::draw(CGContextRef ctx, qreal x, qreal y, const QTextIt
advances[glyphs.size() - 1].width = 0;
advances[glyphs.size() - 1].height = 0;
cgGlyphs[glyphs.size() - 1] = glyphs[glyphs.size() - 1];
-
+
CGContextSetFont(ctx, cgFont);
//NSLog(@"Font inDraw %@ ctfont %@", CGFontCopyFullName(cgFont), CTFontCopyFamilyName(ctfont));
-
+
CGContextSetTextPosition(ctx, positions[0].x.toReal(), positions[0].y.toReal());
-
+
CGContextShowGlyphsWithAdvances(ctx, cgGlyphs.data(), advances.data(), glyphs.size());
-
+
if (synthesisFlags & QFontEngine::SynthesizedBold) {
CGContextSetTextPosition(ctx, positions[0].x.toReal() + 0.5 * lineThickness().toReal(),
positions[0].y.toReal());
-
+
CGContextShowGlyphsWithAdvances(ctx, cgGlyphs.data(), advances.data(), glyphs.size());
}
-
+
CGContextSetTextMatrix(ctx, oldTextMatrix);
}
@@ -622,7 +622,7 @@ QFontEngine::FaceId QCoreTextFontEngine::faceId() const
bool QCoreTextFontEngine::canRender(const QChar *string, int len)
{
- QCFType<CTFontRef> retFont = CTFontCreateForString(ctfont,
+ QCFType<CTFontRef> retFont = CTFontCreateForString(ctfont,
QCFType<CFStringRef>(CFStringCreateWithCharactersNoCopy(0,
reinterpret_cast<const UniChar *>(string),
len, kCFAllocatorNull)),
@@ -672,7 +672,7 @@ QFontEngineMacMulti::QFontEngineMacMulti(const ATSFontFamilyRef &atsFamily, cons
} else {
if (fontDef.weight >= QFont::Bold)
fntStyle |= ::bold;
- if (fontDef.style != QFont::StyleNormal)
+ if (fontDef.style != QFont::StyleNormal)
fntStyle |= ::italic;
FMFontStyle intrinsicStyle;
@@ -955,7 +955,7 @@ bool QFontEngineMacMulti::stringToCMap(const QChar *str, int len, QGlyphLayout *
tmpItem.length = charCount;
tmpItem.glyphs = shaperItem.glyphs.mid(glyphIdx, glyphCount);
tmpItem.log_clusters = shaperItem.log_clusters + charIdx;
- if (!stringToCMapInternal(tmpItem.string + tmpItem.from, tmpItem.length,
+ if (!stringToCMapInternal(tmpItem.string + tmpItem.from, tmpItem.length,
&tmpItem.glyphs, &glyphCount, flags,
&tmpItem)) {
*nglyphs = glyphIdx + glyphCount;
@@ -1221,12 +1221,12 @@ QFontEngineMac::QFontEngineMac(ATSUStyle baseStyle, ATSUFontID fontID, const QFo
transform = multiEngine->transform;
else
transform = CGAffineTransformIdentity;
-
+
ATSUTextMeasurement metric;
ATSUGetAttribute(style, kATSUAscentTag, sizeof(metric), &metric, 0);
m_ascent = FixRound(metric);
-
+
ATSUGetAttribute(style, kATSUDescentTag, sizeof(metric), &metric, 0);
m_descent = FixRound(metric);
@@ -1422,11 +1422,16 @@ void QFontEngineMac::addGlyphsToPath(glyph_t *glyphs, QFixedPoint *positions, in
addGlyphsToPathHelper(style, glyphs, positions, numGlyphs, path);
}
-QImage QFontEngineMac::alphaMapForGlyph(glyph_t glyph)
+
+/*!
+ Helper function for alphaMapForGlyph and alphaRGBMapForGlyph. The two are identical, except for
+ the subpixel antialiasing...
+*/
+QImage QFontEngineMac::imageForGlyph(glyph_t glyph, int margin, bool colorful)
{
const glyph_metrics_t br = boundingBox(glyph);
QImage im(qRound(br.width)+2, qRound(br.height)+4, QImage::Format_RGB32);
- im.fill(0);
+ im.fill(0xff000000);
CGColorSpaceRef colorspace = QCoreGraphicsPaintEngine::macGenericColorSpace();
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4)
@@ -1444,7 +1449,7 @@ QImage QFontEngineMac::alphaMapForGlyph(glyph_t glyph)
CGContextSetFontSize(ctx, fontDef.pixelSize);
CGContextSetShouldAntialias(ctx, fontDef.pointSize > qt_antialiasing_threshold && !(fontDef.styleStrategy & QFont::NoAntialias));
// turn off sub-pixel hinting - no support for that in OpenGL
- CGContextSetShouldSmoothFonts(ctx, false);
+ CGContextSetShouldSmoothFonts(ctx, colorful);
CGAffineTransform oldTextMatrix = CGContextGetTextMatrix(ctx);
CGAffineTransform cgMatrix = CGAffineTransformMake(1, 0, 0, 1, 0, 0);
CGAffineTransformConcat(cgMatrix, oldTextMatrix);
@@ -1476,6 +1481,13 @@ QImage QFontEngineMac::alphaMapForGlyph(glyph_t glyph)
CGContextRelease(ctx);
+ return im;
+}
+
+QImage QFontEngineMac::alphaMapForGlyph(glyph_t glyph)
+{
+ QImage im = imageForGlyph(glyph, 2, false);
+
QImage indexed(im.width(), im.height(), QImage::Format_Indexed8);
QVector<QRgb> colors(256);
for (int i=0; i<256; ++i)
@@ -1495,6 +1507,32 @@ QImage QFontEngineMac::alphaMapForGlyph(glyph_t glyph)
return indexed;
}
+QImage QFontEngineMac::alphaRGBMapForGlyph(glyph_t glyph, int margin, const QTransform &t)
+{
+ QImage im = imageForGlyph(glyph, margin, true);
+
+ if (t.type() >= QTransform::TxScale) {
+ im = im.transformed(t);
+ }
+
+ extern uchar qt_pow_rgb_gamma[256];
+
+ // gamma correct the pixels back to linear color space...
+ for (int y=0; y<im.height(); ++y) {
+ uint *pixels = (uint *) im.scanLine(y);
+ for (int x=0; x<im.width(); ++x) {
+ uint p = pixels[x];
+ uint r = qt_pow_rgb_gamma[qRed(p)];
+ uint g = qt_pow_rgb_gamma[qGreen(p)];
+ uint b = qt_pow_rgb_gamma[qBlue(p)];
+ pixels[x] = (r << 16) | (g << 8) | b | 0xff000000;
+ }
+ }
+
+ return im;
+}
+
+
bool QFontEngineMac::canRender(const QChar *string, int len)
{
Q_ASSERT(false);
@@ -1648,7 +1686,7 @@ QFontEngine::Properties QFontEngineMac::properties() const
if (ATSFontGetTable(atsFont, MAKE_TAG('p', 'o', 's', 't'), 10, 2, &lw, 0) == noErr)
lw = qFromBigEndian<quint16>(lw);
props.lineWidth = lw;
-
+
// CTFontCopyPostScriptName
QCFString psName;
if (ATSFontGetPostScriptName(FMGetATSFontRefFromFont(fontID), kATSOptionFlagsDefault, &psName) == noErr)
@@ -1663,7 +1701,7 @@ void QFontEngineMac::getUnscaledGlyph(glyph_t glyph, QPainterPath *path, glyph_m
ATSUCreateAndCopyStyle(style, &unscaledStyle);
int emSquare = properties().emSquare.toInt();
-
+
const int maxAttributeCount = 4;
ATSUAttributeTag tags[maxAttributeCount + 1];
ByteCount sizes[maxAttributeCount + 1];
@@ -1675,7 +1713,7 @@ void QFontEngineMac::getUnscaledGlyph(glyph_t glyph, QPainterPath *path, glyph_m
sizes[attributeCount] = sizeof(size);
values[attributeCount] = &size;
++attributeCount;
-
+
Q_ASSERT(attributeCount < maxAttributeCount + 1);
OSStatus err = ATSUSetAttributes(unscaledStyle, attributeCount, tags, sizes, values);
Q_ASSERT(err == noErr);
diff --git a/src/gui/text/qfontengine_p.h b/src/gui/text/qfontengine_p.h
index 176c728..8f6b92a 100644
--- a/src/gui/text/qfontengine_p.h
+++ b/src/gui/text/qfontengine_p.h
@@ -525,8 +525,11 @@ public:
virtual Properties properties() const;
virtual void getUnscaledGlyph(glyph_t glyph, QPainterPath *path, glyph_metrics_t *metrics);
virtual QImage alphaMapForGlyph(glyph_t);
+ virtual QImage alphaRGBMapForGlyph(glyph_t, int margin, const QTransform &t);
private:
+ QImage imageForGlyph(glyph_t glyph, int margin, bool colorful);
+
ATSUFontID fontID;
QCFType<CGFontRef> cgFont;
ATSUStyle style;
diff --git a/src/gui/text/qfontengine_win.cpp b/src/gui/text/qfontengine_win.cpp
index 1996d44..6551e87 100644
--- a/src/gui/text/qfontengine_win.cpp
+++ b/src/gui/text/qfontengine_win.cpp
@@ -65,7 +65,7 @@
#include <private/qpaintengine_raster_p.h>
#include <private/qnativeimage_p.h>
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
#include "qguifunctions_wince.h"
#endif
@@ -205,7 +205,7 @@ QFixed QFontEngineWin::lineThickness() const
return QFontEngine::lineThickness();
}
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
static OUTLINETEXTMETRICW *getOutlineTextMetric(HDC hdc)
{
int size;
@@ -249,7 +249,7 @@ void QFontEngineWin::getCMap()
designToDevice = 1;
_faceId.index = 0;
if(cmap) {
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
OUTLINETEXTMETRICW *otm = getOutlineTextMetric(hdc);
#else
OUTLINETEXTMETRICA *otm = getOutlineTextMetric(hdc);
@@ -286,7 +286,7 @@ int QFontEngineWin::getGlyphIndexes(const QChar *str, int numChars, QGlyphLayout
int i = 0;
int glyph_pos = 0;
if (mirrored) {
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
{
#else
if (symbol) {
@@ -314,7 +314,7 @@ int QFontEngineWin::getGlyphIndexes(const QChar *str, int numChars, QGlyphLayout
for (; i < numChars; ++i, ++glyph_pos) {
uint ucs = QChar::mirroredChar(getChar(str, i, numChars));
if (
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
tm.w.tmFirstChar > 60000 || // see line 375
#endif
ucs >= first && ucs <= last)
@@ -324,7 +324,7 @@ int QFontEngineWin::getGlyphIndexes(const QChar *str, int numChars, QGlyphLayout
}
}
} else {
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
{
#else
if (symbol) {
@@ -352,7 +352,7 @@ int QFontEngineWin::getGlyphIndexes(const QChar *str, int numChars, QGlyphLayout
for (; i < numChars; ++i, ++glyph_pos) {
uint uc = getChar(str, i, numChars);
if (
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
tm.w.tmFirstChar > 60000 || // see comment in QFontEngineWin
#endif
uc >= first && uc <= last)
@@ -482,7 +482,7 @@ bool QFontEngineWin::stringToCMap(const QChar *str, int len, QGlyphLayout *glyph
if (flags & QTextEngine::GlyphIndicesOnly)
return true;
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
HDC hdc = shared_dc();
if (flags & QTextEngine::DesignMetrics) {
HGDIOBJ oldFont = 0;
@@ -585,7 +585,7 @@ void QFontEngineWin::recalcAdvances(QGlyphLayout *glyphs, QTextEngine::ShaperFla
designAdvances[glyph] = QFixed(width) / designToDevice;
} else {
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
GLYPHMETRICS gm;
DWORD res = GDI_ERROR;
MAT2 mat;
@@ -647,7 +647,7 @@ void QFontEngineWin::recalcAdvances(QGlyphLayout *glyphs, QTextEngine::ShaperFla
width -= overhang;
} else {
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
GLYPHMETRICS gm;
DWORD res = GDI_ERROR;
MAT2 mat;
@@ -693,14 +693,14 @@ glyph_metrics_t QFontEngineWin::boundingBox(const QGlyphLayout &glyphs)
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
typedef HRESULT (WINAPI *pGetCharABCWidthsFloat)(HDC, UINT, UINT, LPABCFLOAT);
static pGetCharABCWidthsFloat qt_GetCharABCWidthsFloat = 0;
#endif
glyph_metrics_t QFontEngineWin::boundingBox(glyph_t glyph, const QTransform &t)
{
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
GLYPHMETRICS gm;
HDC hdc = shared_dc();
@@ -871,7 +871,7 @@ qreal QFontEngineWin::minLeftBearing() const
qreal QFontEngineWin::minRightBearing() const
{
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
if (rbearing == SHRT_MIN) {
int ml = 0;
int mr = 0;
@@ -1047,7 +1047,7 @@ static inline QPointF qt_to_qpointf(const POINTFX &pt, qreal scale) {
static bool addGlyphToPath(glyph_t glyph, const QFixedPoint &position, HDC hdc,
QPainterPath *path, bool ttf, glyph_metrics_t *metric = 0, qreal scale = 1)
{
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
Q_UNUSED(glyph);
Q_UNUSED(hdc);
#endif
@@ -1064,7 +1064,7 @@ static bool addGlyphToPath(glyph_t glyph, const QFixedPoint &position, HDC hdc,
GLYPHMETRICS gMetric;
memset(&gMetric, 0, sizeof(GLYPHMETRICS));
int bufferSize = GDI_ERROR;
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
QT_WA( {
bufferSize = GetGlyphOutlineW(hdc, glyph, glyphFormat, &gMetric, 0, 0, &mat);
}, {
@@ -1077,7 +1077,7 @@ static bool addGlyphToPath(glyph_t glyph, const QFixedPoint &position, HDC hdc,
void *dataBuffer = new char[bufferSize];
DWORD ret = GDI_ERROR;
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
QT_WA( {
ret = GetGlyphOutlineW(hdc, glyph, glyphFormat, &gMetric, bufferSize,
dataBuffer, &mat);
@@ -1199,7 +1199,7 @@ void QFontEngineWin::addGlyphsToPath(glyph_t *glyphs, QFixedPoint *positions, in
void QFontEngineWin::addOutlineToPath(qreal x, qreal y, const QGlyphLayout &glyphs,
QPainterPath *path, QTextItem::RenderFlags flags)
{
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
if(tm.w.tmPitchAndFamily & (TMPF_TRUETYPE | TMPF_VECTOR)) {
hasOutline = true;
QFontEngine::addOutlineToPath(x, y, glyphs, path, flags);
@@ -1267,7 +1267,7 @@ QFontEngine::Properties QFontEngineWin::properties() const
});
HDC hdc = shared_dc();
HGDIOBJ oldfont = SelectObject(hdc, hf);
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
OUTLINETEXTMETRICW *otm = getOutlineTextMetric(hdc);
#else
OUTLINETEXTMETRICA *otm = getOutlineTextMetric(hdc);
@@ -1351,7 +1351,7 @@ QNativeImage *QFontEngineWin::drawGDIGlyph(HFONT font, glyph_t glyph, int margin
bool has_transformation = t.type() > QTransform::TxTranslate;
-#ifndef Q_OS_WINCE
+#ifndef Q_WS_WINCE
unsigned int options = ttf ? ETO_GLYPH_INDEX : 0;
XFORM xform;
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp
index 80a5425..faa06b7 100644
--- a/src/gui/text/qtextengine.cpp
+++ b/src/gui/text/qtextengine.cpp
@@ -868,7 +868,7 @@ void QTextEngine::shapeText(int item) const
#if defined(Q_WS_MAC)
shapeTextMac(item);
-#elif defined(Q_OS_WINCE)
+#elif defined(Q_WS_WINCE)
shapeTextWithCE(item);
#else
shapeTextWithHarfbuzz(item);
@@ -923,7 +923,7 @@ void QTextEngine::shapeText(int item) const
si.width += glyphs.advances_x[i];
}
-#if defined(Q_OS_WINCE) //TODO
+#if defined(Q_WS_WINCE) //TODO
// set the glyph attributes heuristically. Assumes a 1 to 1 relationship between chars and glyphs
// and no reordering.
// also computes logClusters heuristically
diff --git a/src/gui/text/qtextengine_p.h b/src/gui/text/qtextengine_p.h
index cf241fa..6be525f 100644
--- a/src/gui/text/qtextengine_p.h
+++ b/src/gui/text/qtextengine_p.h
@@ -581,7 +581,7 @@ private:
void addRequiredBoundaries() const;
void shapeText(int item) const;
void shapeTextWithHarfbuzz(int item) const;
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
void shapeTextWithCE(int item) const;
#endif
#if defined(Q_WS_MAC)
diff --git a/src/gui/text/qtextformat.h b/src/gui/text/qtextformat.h
index 0571d75..8eaeeb1 100644
--- a/src/gui/text/qtextformat.h
+++ b/src/gui/text/qtextformat.h
@@ -232,6 +232,12 @@ public:
ImageWidth = 0x5010,
ImageHeight = 0x5011,
+ // internal
+ /*
+ SuppressText = 0x5012,
+ SuppressBackground = 0x513
+ */
+
// selection properties
FullWidthSelection = 0x06000,
diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp
index 434d1ca..3222237 100644
--- a/src/gui/text/qtextlayout.cpp
+++ b/src/gui/text/qtextlayout.cpp
@@ -61,6 +61,8 @@
QT_BEGIN_NAMESPACE
#define ObjectSelectionBrush (QTextFormat::ForegroundBrush + 1)
+#define SuppressText 0x5012
+#define SuppressBackground 0x513
static inline QFixed leadingSpaceWidth(QTextEngine *eng, const QScriptLine &line)
{
@@ -1143,6 +1145,7 @@ void QTextLayout::draw(QPainter *p, const QPointF &pos, const QVector<FormatRang
}
QPainterPath excludedRegion;
+ QPainterPath needsTextButNoBackground;
for (int i = 0; i < selections.size(); ++i) {
FormatRange selection = selections.at(i);
const QBrush bg = selection.format.background();
@@ -1211,14 +1214,35 @@ void QTextLayout::draw(QPainter *p, const QPointF &pos, const QVector<FormatRang
selection.format.setProperty(QTextFormat::BackgroundBrush, QBrush());
selection.format.clearProperty(QTextFormat::OutlinePen);
+ bool noText = (selection.format.foreground().style() == Qt::NoBrush);
+
+ selection.format.setProperty(SuppressText, noText);
+
for (int line = firstLine; line < lastLine; ++line) {
QTextLine l(line, d);
l.draw(p, position, &selection);
}
p->restore();
- if (selection.format.foreground().style() != Qt::NoBrush) // i.e. we have drawn text
- excludedRegion += region;
+ if (noText)
+ needsTextButNoBackground += region;
+ else
+ needsTextButNoBackground -= region;
+ excludedRegion += region;
+ }
+
+ if (!needsTextButNoBackground.isEmpty()){
+ p->save();
+ p->setClipPath(needsTextButNoBackground, Qt::IntersectClip);
+ FormatRange selection;
+ selection.start = 0;
+ selection.length = INT_MAX;
+ selection.format.setProperty(SuppressBackground, true);
+ for (int line = firstLine; line < lastLine; ++line) {
+ QTextLine l(line, d);
+ l.draw(p, position, &selection);
+ }
+ p->restore();
}
if (!excludedRegion.isEmpty()) {
@@ -1912,14 +1936,17 @@ static void drawMenuText(QPainter *p, QFixed x, QFixed y, const QScriptItem &si,
static void setPenAndDrawBackground(QPainter *p, const QPen &defaultPen, const QTextCharFormat &chf, const QRectF &r)
{
QBrush c = chf.foreground();
- if (c.style() == Qt::NoBrush)
+ if (c.style() == Qt::NoBrush) {
p->setPen(defaultPen);
+ }
QBrush bg = chf.background();
- if (bg.style() != Qt::NoBrush)
+ if (bg.style() != Qt::NoBrush && !chf.property(SuppressBackground).toBool())
p->fillRect(r, bg);
- if (c.style() != Qt::NoBrush)
+ if (c.style() != Qt::NoBrush) {
p->setPen(QPen(c, 0));
+ }
+
}
/*!
@@ -1933,7 +1960,7 @@ void QTextLine::draw(QPainter *p, const QPointF &pos, const QTextLayout::FormatR
const QScriptLine &line = eng->lines[i];
QPen pen = p->pen();
- bool noText = (selection && selection->format.foreground().style() == Qt::NoBrush);
+ bool noText = (selection && selection->format.property(SuppressText).toBool());
if (!line.length) {
if (selection
diff --git a/src/gui/text/qtextodfwriter.cpp b/src/gui/text/qtextodfwriter.cpp
index 1edc3b8..75e89d2 100644
--- a/src/gui/text/qtextodfwriter.cpp
+++ b/src/gui/text/qtextodfwriter.cpp
@@ -477,7 +477,7 @@ void QTextOdfWriter::writeBlockFormat(QXmlStreamWriter &writer, QTextBlockFormat
if (format.hasProperty(QTextFormat::BlockRightMargin))
writer.writeAttribute(foNS, QString::fromLatin1("margin-right"), pixelToPoint(qMax(qreal(0.), format.rightMargin())) );
if (format.hasProperty(QTextFormat::TextIndent))
- writer.writeAttribute(foNS, QString::fromLatin1("text-indent"), QString::number(format.textIndent()));
+ writer.writeAttribute(foNS, QString::fromLatin1("text-indent"), pixelToPoint(format.textIndent()));
if (format.hasProperty(QTextFormat::PageBreakPolicy)) {
if (format.pageBreakPolicy() & QTextFormat::PageBreak_AlwaysBefore)
writer.writeAttribute(foNS, QString::fromLatin1("break-before"), QString::fromLatin1("page"));
diff --git a/src/gui/util/qcompleter.cpp b/src/gui/util/qcompleter.cpp
index 7571dfe..a622385 100644
--- a/src/gui/util/qcompleter.cpp
+++ b/src/gui/util/qcompleter.cpp
@@ -1080,7 +1080,7 @@ void QCompleter::setPopup(QAbstractItemView *popup)
popup->hide();
popup->setParent(0, Qt::Popup);
- Qt::FocusPolicy origPolicy;
+ Qt::FocusPolicy origPolicy = Qt::NoFocus;
if (d->widget)
origPolicy = d->widget->focusPolicy();
popup->setFocusPolicy(Qt::NoFocus);
diff --git a/src/gui/util/qsystemtrayicon.cpp b/src/gui/util/qsystemtrayicon.cpp
index 2e072c5..bfafe44 100644
--- a/src/gui/util/qsystemtrayicon.cpp
+++ b/src/gui/util/qsystemtrayicon.cpp
@@ -434,13 +434,13 @@ QBalloonTip::QBalloonTip(QSystemTrayIcon::MessageIcon icon, const QString& title
titleLabel->setText(title);
QFont f = titleLabel->font();
f.setBold(true);
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
f.setPointSize(f.pointSize() - 2);
#endif
titleLabel->setFont(f);
titleLabel->setTextFormat(Qt::PlainText); // to maintain compat with windows
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
const int iconSize = style()->pixelMetric(QStyle::PM_SmallIconSize);
const int closeButtonSize = style()->pixelMetric(QStyle::PM_SmallIconSize) - 2;
#else
@@ -456,7 +456,7 @@ QBalloonTip::QBalloonTip(QSystemTrayIcon::MessageIcon icon, const QString& title
QObject::connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
QLabel *msgLabel = new QLabel;
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
f.setBold(false);
msgLabel->setFont(f);
#endif
@@ -466,7 +466,7 @@ QBalloonTip::QBalloonTip(QSystemTrayIcon::MessageIcon icon, const QString& title
msgLabel->setAlignment(Qt::AlignTop | Qt::AlignLeft);
// smart size for the message label
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
int limit = QApplication::desktop()->availableGeometry(msgLabel).size().width() / 2;
#else
int limit = QApplication::desktop()->availableGeometry(msgLabel).size().width() / 3;
@@ -481,7 +481,7 @@ QBalloonTip::QBalloonTip(QSystemTrayIcon::MessageIcon icon, const QString& title
control->document()->setDefaultTextOption(opt);
}
}
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
// Make sure that the text isn't wrapped "somewhere" in the balloon widget
// in the case that we have a long title label.
setMaximumWidth(limit);
diff --git a/src/gui/util/qsystemtrayicon_win.cpp b/src/gui/util/qsystemtrayicon_win.cpp
index 84f9de4..a6dcea6 100644
--- a/src/gui/util/qsystemtrayicon_win.cpp
+++ b/src/gui/util/qsystemtrayicon_win.cpp
@@ -62,13 +62,13 @@
#include <QDesktopWidget>
#include <QSettings>
-#if defined(Q_OS_WINCE) && !defined(STANDARDSHELL_UI_MODEL)
+#if defined(Q_WS_WINCE) && !defined(STANDARDSHELL_UI_MODEL)
# include <streams.h>
#endif
QT_BEGIN_NAMESPACE
-#if defined(Q_OS_WINCE)
+#if defined(Q_WS_WINCE)
static const UINT q_uNOTIFYICONID = 13; // IDs from 0 to 12 are reserved on WinCE.
#else
static const UINT q_uNOTIFYICONID = 0;
@@ -331,7 +331,7 @@ bool QSystemTrayIconSys::showMessageA(const QString &title, const QString &messa
bool QSystemTrayIconSys::trayMessageA(DWORD msg)
{
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
NOTIFYICONDATAA tnd;
memset(&tnd, 0, notifyIconSizeA);
tnd.uID = q_uNOTIFYICONID;
@@ -462,7 +462,7 @@ bool QSystemTrayIconSys::winEvent( MSG *m, long *result )
emit q->activated(QSystemTrayIcon::Trigger);
break;
-#if !defined(Q_OS_WINCE)
+#if !defined(Q_WS_WINCE)
case WM_LBUTTONDBLCLK:
emit q->activated(QSystemTrayIcon::DoubleClick);
break;
@@ -726,7 +726,7 @@ void QSystemTrayIconPrivate::updateMenu_sys()
void QSystemTrayIconPrivate::updateToolTip_sys()
{
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
// Calling sys->trayMessage(NIM_MODIFY) on an existing icon is broken on Windows CE.
// So we need to call updateIcon_sys() which creates a new icon handle.
updateIcon_sys();
diff --git a/src/gui/widgets/qabstractbutton.cpp b/src/gui/widgets/qabstractbutton.cpp
index c25253a..f2a9ceb 100644
--- a/src/gui/widgets/qabstractbutton.cpp
+++ b/src/gui/widgets/qabstractbutton.cpp
@@ -1250,15 +1250,6 @@ void QAbstractButton::timerEvent(QTimerEvent *e)
}
}
-#if defined(Q_OS_WINCE) && !defined(QT_NO_CONTEXTMENU)
-/*! \reimp */
-void QAbstractButton::contextMenuEvent(QContextMenuEvent *e)
-{
- e->ignore();
- setDown(false);
-}
-#endif
-
/*! \reimp */
void QAbstractButton::focusInEvent(QFocusEvent *e)
{
diff --git a/src/gui/widgets/qabstractbutton.h b/src/gui/widgets/qabstractbutton.h
index 6503a56..f0cbb05 100644
--- a/src/gui/widgets/qabstractbutton.h
+++ b/src/gui/widgets/qabstractbutton.h
@@ -143,9 +143,6 @@ protected:
void focusOutEvent(QFocusEvent *e);
void changeEvent(QEvent *e);
void timerEvent(QTimerEvent *e);
-#ifdef Q_OS_WINCE
- void contextMenuEvent(QContextMenuEvent *e);
-#endif
#ifdef QT3_SUPPORT
public:
diff --git a/src/gui/widgets/qcocoamenu_mac.mm b/src/gui/widgets/qcocoamenu_mac.mm
index c92dfc0..6434289 100644
--- a/src/gui/widgets/qcocoamenu_mac.mm
+++ b/src/gui/widgets/qcocoamenu_mac.mm
@@ -1,11 +1,11 @@
/****************************************************************************
- **
- ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
- **
- ** This file is part of the QtGui module of the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
+**
+** 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
@@ -36,11 +36,11 @@
** If you are unsure which license is appropriate for your use, please
** contact the sales department at qt-sales@nokia.com.
** $QT_END_LICENSE$
- **
- ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
- ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- **
- ****************************************************************************/
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+****************************************************************************/
#include "qmacdefines_mac.h"
#include "qapplication.h"
@@ -55,11 +55,17 @@
QT_FORWARD_DECLARE_CLASS(QAction)
QT_FORWARD_DECLARE_CLASS(QWidget)
QT_FORWARD_DECLARE_CLASS(QApplication)
+QT_FORWARD_DECLARE_CLASS(QCoreApplication)
+QT_FORWARD_DECLARE_CLASS(QApplicationPrivate)
+QT_FORWARD_DECLARE_CLASS(QKeyEvent)
+QT_FORWARD_DECLARE_CLASS(QEvent)
QT_BEGIN_NAMESPACE
extern bool qt_sendSpontaneousEvent(QObject*, QEvent*); //qapplication.cpp
QT_END_NAMESPACE
+QT_USE_NAMESPACE
+
@implementation QT_MANGLE_NAMESPACE(QCocoaMenu)
- (id)initWithQMenu:(QMenu*)menu
@@ -134,8 +140,9 @@ QT_END_NAMESPACE
// If it does, then we will first send the key sequence to the QWidget that has focus
// since (in Qt's eyes) it needs to a chance at the key event first. If the widget
// accepts the key event, we then return YES, but set the target and action to be nil,
- // which means that the action should not be triggered. In every other case we return
- // NO, which means that Cocoa can do as it pleases (i.e., fire the menu action).
+ // which means that the action should not be triggered, and instead dispatch the event ourselves.
+ // In every other case we return NO, which means that Cocoa can do as it pleases
+ // (i.e., fire the menu action).
NSMenuItem *whichItem;
if ([self hasShortcut:menu
forKey:[event characters]
@@ -158,9 +165,11 @@ QT_END_NAMESPACE
accel_ev.ignore();
qt_sendSpontaneousEvent(widget, &accel_ev);
if (accel_ev.isAccepted()) {
- *target = nil;
- *action = nil;
- return YES;
+ if (qt_dispatchKeyEvent(event, widget)) {
+ *target = nil;
+ *action = nil;
+ return YES;
+ }
}
}
}
diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp
index 09a51fe..f30ece4 100644
--- a/src/gui/widgets/qcombobox.cpp
+++ b/src/gui/widgets/qcombobox.cpp
@@ -949,6 +949,7 @@ QComboBoxPrivateContainer* QComboBoxPrivate::viewContainer()
container->itemView()->setTextElideMode(Qt::ElideMiddle);
updateDelegate();
updateLayoutDirection();
+ updateViewContainerPaletteAndOpacity();
QObject::connect(container, SIGNAL(itemSelected(QModelIndex)),
q, SLOT(_q_itemSelected(QModelIndex)));
QObject::connect(container->itemView()->selectionModel(),
@@ -1051,6 +1052,27 @@ void QComboBoxPrivate::_q_rowsRemoved(const QModelIndex &parent, int /*start*/,
}
+void QComboBoxPrivate::updateViewContainerPaletteAndOpacity()
+{
+ if (!container)
+ return;
+ Q_Q(QComboBox);
+ QStyleOptionComboBox opt;
+ q->initStyleOption(&opt);
+#ifndef QT_NO_MENU
+ if (q->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, q)) {
+ QMenu menu;
+ menu.ensurePolished();
+ container->setPalette(menu.palette());
+ container->setWindowOpacity(menu.windowOpacity());
+ } else
+#endif
+ {
+ container->setPalette(q->palette());
+ container->setWindowOpacity(1.0);
+ }
+}
+
/*!
Initialize \a option with the values from this QComboBox. This method
is useful for subclasses when they need a QStyleOptionComboBox, but don't want
@@ -2572,20 +2594,7 @@ void QComboBox::changeEvent(QEvent *e)
hidePopup();
break;
case QEvent::PaletteChange: {
- QStyleOptionComboBox opt;
- initStyleOption(&opt);
-#ifndef QT_NO_MENU
- if (style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, this)) {
- QMenu menu;
- menu.ensurePolished();
- d->viewContainer()->setPalette(menu.palette());
- d->viewContainer()->setWindowOpacity(menu.windowOpacity());
- } else
-#endif
- {
- d->viewContainer()->setPalette(palette());
- d->viewContainer()->setWindowOpacity(1.0);
- }
+ d->updateViewContainerPaletteAndOpacity();
break;
}
case QEvent::FontChange:
diff --git a/src/gui/widgets/qcombobox_p.h b/src/gui/widgets/qcombobox_p.h
index c39a231..a0b76cf 100644
--- a/src/gui/widgets/qcombobox_p.h
+++ b/src/gui/widgets/qcombobox_p.h
@@ -370,6 +370,7 @@ public:
void updateDelegate();
void keyboardSearchString(const QString &text);
void modelChanged();
+ void updateViewContainerPaletteAndOpacity();
QAbstractItemModel *model;
QLineEdit *lineEdit;
diff --git a/src/gui/widgets/qdockwidget.cpp b/src/gui/widgets/qdockwidget.cpp
index a5be5f8..d573b8b 100644
--- a/src/gui/widgets/qdockwidget.cpp
+++ b/src/gui/widgets/qdockwidget.cpp
@@ -203,7 +203,7 @@ bool QDockWidgetLayout::nativeWindowDeco() const
bool QDockWidgetLayout::nativeWindowDeco(bool floating) const
{
-#if defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_WINCE)
+#if defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_WS_WINCE)
Q_UNUSED(floating);
return false;
#else
diff --git a/src/gui/widgets/qlabel.cpp b/src/gui/widgets/qlabel.cpp
index 63c1315..016b7c1 100644
--- a/src/gui/widgets/qlabel.cpp
+++ b/src/gui/widgets/qlabel.cpp
@@ -971,6 +971,13 @@ void QLabel::paintEvent(QPaintEvent *)
#endif
if (d->isTextLabel) {
QRectF lr = d->layoutRect();
+ QStyleOption opt;
+ opt.initFrom(this);
+#ifndef QT_NO_STYLE_STYLESHEET
+ if (QStyleSheetStyle* cssStyle = qobject_cast<QStyleSheetStyle*>(style)) {
+ cssStyle->styleSheetPalette(this, &opt, &opt.palette);
+ }
+#endif
if (d->control) {
#ifndef QT_NO_SHORTCUT
const bool underline = (bool)style->styleHint(QStyle::SH_UnderlineShortcut, 0, this, 0);
@@ -984,11 +991,9 @@ void QLabel::paintEvent(QPaintEvent *)
d->ensureTextLayouted();
QAbstractTextDocumentLayout::PaintContext context;
- QStyleOption opt(0);
- opt.init(this);
if (!isEnabled() && style->styleHint(QStyle::SH_EtchDisabledText, &opt, this)) {
- context.palette = palette();
+ context.palette = opt.palette;
context.palette.setColor(QPalette::Text, context.palette.light().color());
painter.save();
painter.translate(lr.x() + 1, lr.y() + 1);
@@ -999,12 +1004,7 @@ void QLabel::paintEvent(QPaintEvent *)
}
// Adjust the palette
- context.palette = palette();
-#ifndef QT_NO_STYLE_STYLESHEET
- if (QStyleSheetStyle* cssStyle = qobject_cast<QStyleSheetStyle*>(style)) {
- cssStyle->focusPalette(this, &opt, &context.palette);
- }
-#endif
+ context.palette = opt.palette;
if (foregroundRole() != QPalette::Text && isEnabled())
context.palette.setColor(QPalette::Text, context.palette.color(foregroundRole()));
@@ -1019,12 +1019,10 @@ void QLabel::paintEvent(QPaintEvent *)
int flags = align;
if (d->hasShortcut) {
flags |= Qt::TextShowMnemonic;
- QStyleOption opt;
- opt.initFrom(this);
if (!style->styleHint(QStyle::SH_UnderlineShortcut, &opt, this))
flags |= Qt::TextHideMnemonic;
}
- style->drawItemText(&painter, lr.toRect(), flags, palette(), isEnabled(), d->text, foregroundRole());
+ style->drawItemText(&painter, lr.toRect(), flags, opt.palette, isEnabled(), d->text, foregroundRole());
}
} else
#ifndef QT_NO_PICTURE
diff --git a/src/gui/widgets/qlineedit.cpp b/src/gui/widgets/qlineedit.cpp
index e243ad0..d16ed10 100644
--- a/src/gui/widgets/qlineedit.cpp
+++ b/src/gui/widgets/qlineedit.cpp
@@ -2518,7 +2518,7 @@ void QLineEdit::paintEvent(QPaintEvent *)
// draw text, selections and cursors
#ifndef QT_NO_STYLE_STYLESHEET
if (QStyleSheetStyle* cssStyle = qobject_cast<QStyleSheetStyle*>(style())) {
- cssStyle->focusPalette(this, &panel, &pal);
+ cssStyle->styleSheetPalette(this, &panel, &pal);
}
#endif
p.setPen(pal.text().color());
diff --git a/src/gui/widgets/qmaccocoaviewcontainer_mac.mm b/src/gui/widgets/qmaccocoaviewcontainer_mac.mm
index 710af6a..380e983 100644
--- a/src/gui/widgets/qmaccocoaviewcontainer_mac.mm
+++ b/src/gui/widgets/qmaccocoaviewcontainer_mac.mm
@@ -1,11 +1,11 @@
/****************************************************************************
- **
- ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
- **
- ** This file is part of the QtGui module of the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
+**
+** 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
@@ -36,11 +36,11 @@
** If you are unsure which license is appropriate for your use, please
** contact the sales department at qt-sales@nokia.com.
** $QT_END_LICENSE$
- **
- ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
- ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- **
- ****************************************************************************/
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+****************************************************************************/
#import <Cocoa/Cocoa.h>
#include <private/qwidget_p.h>
diff --git a/src/gui/widgets/qmacnativewidget_mac.mm b/src/gui/widgets/qmacnativewidget_mac.mm
index 1bc0430..0f4edf9 100644
--- a/src/gui/widgets/qmacnativewidget_mac.mm
+++ b/src/gui/widgets/qmacnativewidget_mac.mm
@@ -1,11 +1,11 @@
/****************************************************************************
- **
- ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
- **
- ** This file is part of the QtGui module of the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
+**
+** 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
@@ -36,11 +36,11 @@
** If you are unsure which license is appropriate for your use, please
** contact the sales department at qt-sales@nokia.com.
** $QT_END_LICENSE$
- **
- ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
- ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- **
- ****************************************************************************/
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+****************************************************************************/
#import <Cocoa/Cocoa.h>
#import <private/qcocoaview_mac_p.h>
diff --git a/src/gui/widgets/qmainwindow.cpp b/src/gui/widgets/qmainwindow.cpp
index 46d6471..1afb28a 100644
--- a/src/gui/widgets/qmainwindow.cpp
+++ b/src/gui/widgets/qmainwindow.cpp
@@ -480,8 +480,8 @@ void QMainWindow::setMenuBar(QMenuBar *menuBar)
oldMenuBar->hide();
oldMenuBar->deleteLater();
}
-#ifdef Q_OS_WINCE
- if (menuBar->size().height() > 0)
+#ifdef Q_WS_WINCE
+ if (menuBar && menuBar->size().height() > 0)
#endif
d->layout->setMenuBar(menuBar);
}
diff --git a/src/gui/widgets/qmainwindowlayout_mac.mm b/src/gui/widgets/qmainwindowlayout_mac.mm
index 950f758..53e1ad5 100644
--- a/src/gui/widgets/qmainwindowlayout_mac.mm
+++ b/src/gui/widgets/qmainwindowlayout_mac.mm
@@ -1,3 +1,47 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+****************************************************************************/
+
#include <private/qmainwindowlayout_p.h>
#include <qtoolbar.h>
#include <private/qtoolbarlayout_p.h>
@@ -458,11 +502,11 @@ void QMainWindowLayout::fixSizeInUnifiedToolbar(QToolBar *tb) const
QMacCocoaAutoReleasePool pool;
QWidgetItem layoutItem(tb);
QSize size = layoutItem.maximumSize();
- NSSize nssize = NSMakeSize(size.width(), size.height());
+ NSSize nssize = NSMakeSize(size.width(), size.height() - 2);
[item setMaxSize:nssize];
size = layoutItem.minimumSize();
nssize.width = size.width();
- nssize.height = size.height();
+ nssize.height = size.height() - 2;
[item setMinSize:nssize];
}
}
diff --git a/src/gui/widgets/qmdisubwindow.cpp b/src/gui/widgets/qmdisubwindow.cpp
index 6bf7633..56df8ea 100644
--- a/src/gui/widgets/qmdisubwindow.cpp
+++ b/src/gui/widgets/qmdisubwindow.cpp
@@ -1772,7 +1772,7 @@ bool QMdiSubWindowPrivate::drawTitleBarWhenMaximized() const
if (isChildOfTabbedQMdiArea(q))
return false;
-#if defined(Q_WS_MAC) && !defined(QT_NO_STYLE_MAC) || defined(Q_OS_WINCE_WM)
+#if defined(Q_WS_MAC) && !defined(QT_NO_STYLE_MAC) || defined(Q_WS_WINCE_WM)
return true;
#else
if (q->style()->styleHint(QStyle::SH_Workspace_FillSpaceOnMaximize, 0, q))
diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp
index ed3e338..3004841 100644
--- a/src/gui/widgets/qmenu.cpp
+++ b/src/gui/widgets/qmenu.cpp
@@ -2837,7 +2837,7 @@ void QMenu::actionEvent(QActionEvent *e)
}
#endif
-#if defined(Q_OS_WINCE) && !defined(QT_NO_MENUBAR)
+#if defined(Q_WS_WINCE) && !defined(QT_NO_MENUBAR)
if (!d->wce_menu)
d->wce_menu = new QMenuPrivate::QWceMenuPrivate;
if (e->type() == QEvent::ActionAdded)
@@ -2889,8 +2889,8 @@ void QMenu::internalDelayedPopup()
int subMenuOffset = style()->pixelMetric(QStyle::PM_SubMenuOverlap, 0, this);
const QRect actionRect(d->actionRect(d->currentAction));
const QSize menuSize(d->activeMenu->sizeHint());
- const QPoint rightPos(mapToGlobal(QPoint(rect().right() + subMenuOffset + 1, actionRect.top())));
- const QPoint leftPos(mapToGlobal(QPoint(rect().left() - subMenuOffset - menuSize.width(), actionRect.top())));
+ const QPoint rightPos(mapToGlobal(QPoint(actionRect.right() + subMenuOffset + 1, actionRect.top())));
+ const QPoint leftPos(mapToGlobal(QPoint(actionRect.left() - subMenuOffset - menuSize.width(), actionRect.top())));
QPoint pos(rightPos);
QMenu *caused = qobject_cast<QMenu*>(d->activeMenu->d_func()->causedPopup.widget);
diff --git a/src/gui/widgets/qmenu.h b/src/gui/widgets/qmenu.h
index 867baee..e1a6256 100644
--- a/src/gui/widgets/qmenu.h
+++ b/src/gui/widgets/qmenu.h
@@ -141,7 +141,7 @@ public:
OSMenuRef macMenu(OSMenuRef merge=0);
#endif
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
HMENU wceMenu(bool create = false);
#endif
@@ -174,7 +174,7 @@ protected:
bool focusNextPrevChild(bool next);
void initStyleOption(QStyleOptionMenuItem *option, const QAction *action) const;
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
QAction* wceCommands(uint command);
#endif
diff --git a/src/gui/widgets/qmenu_mac.mm b/src/gui/widgets/qmenu_mac.mm
index ad848c9..d2aad99 100644
--- a/src/gui/widgets/qmenu_mac.mm
+++ b/src/gui/widgets/qmenu_mac.mm
@@ -71,7 +71,6 @@ QT_BEGIN_NAMESPACE
/*****************************************************************************
QMenu globals
*****************************************************************************/
-bool qt_mac_no_native_menubar = false;
bool qt_mac_no_menubar_merge = false;
bool qt_mac_quit_menu_item_enabled = true;
int qt_mac_menus_open_count = 0;
@@ -166,7 +165,7 @@ bool qt_mac_activate_action(MenuRef menu, uint command, QAction::ActionEvent act
QMenuMergeList *list = 0;
GetMenuItemProperty(menu, 0, kMenuCreatorQt, kMenuPropertyMergeList,
sizeof(list), 0, &list);
- if (!list && qt_mac_current_menubar.qmenubar) {
+ if (!list && qt_mac_current_menubar.qmenubar && qt_mac_current_menubar.qmenubar->isNativeMenuBar()) {
MenuRef apple_menu = qt_mac_current_menubar.qmenubar->d_func()->mac_menubar->apple_menu;
GetMenuItemProperty(apple_menu, 0, kMenuCreatorQt, kMenuPropertyMergeList, sizeof(list), 0, &list);
if (list)
@@ -728,6 +727,18 @@ QMacMenuAction::~QMacMenuAction()
{
#ifdef QT_MAC_USE_COCOA
[menu release];
+ if (action) {
+ QAction::MenuRole role = action->menuRole();
+ // Check if the item is owned by Qt, and should be hidden to keep it from causing
+ // problems. Do it for everything but the quit menu item since that should always
+ // be visible.
+ if (role > QAction::ApplicationSpecificRole && role < QAction::QuitRole) {
+ [menuItem setHidden:YES];
+ } else if (role == QAction::TextHeuristicRole
+ && menuItem != [getMenuLoader() quitMenuItem]) {
+ [menuItem setHidden:YES];
+ }
+ }
[menuItem setTag:nil];
[menuItem release];
#endif
@@ -931,7 +942,8 @@ static QKeySequence qt_mac_menu_merge_accel(QMacMenuAction *action)
void Q_GUI_EXPORT qt_mac_set_menubar_icons(bool b)
{ QApplication::instance()->setAttribute(Qt::AA_DontShowIconsInMenus, !b); }
-void Q_GUI_EXPORT qt_mac_set_native_menubar(bool b) { qt_mac_no_native_menubar = !b; }
+void Q_GUI_EXPORT qt_mac_set_native_menubar(bool b)
+{ QApplication::instance()->setAttribute(Qt::AA_DontUseNativeMenuBar, !b); }
void Q_GUI_EXPORT qt_mac_set_menubar_merge(bool b) { qt_mac_no_menubar_merge = !b; }
/*****************************************************************************
@@ -1728,9 +1740,14 @@ QMenuBarPrivate::macCreateMenuBar(QWidget *parent)
{
Q_Q(QMenuBar);
static int checkEnv = -1;
+ // We call the isNativeMenuBar function here
+ // becasue that will make sure that local overrides
+ // are dealt with correctly.
+ bool qt_mac_no_native_menubar = !q->isNativeMenuBar();
if (qt_mac_no_native_menubar == false && checkEnv < 0) {
checkEnv = !qgetenv("QT_MAC_NO_NATIVE_MENUBAR").isEmpty();
- qt_mac_no_native_menubar = checkEnv;
+ QApplication::instance()->setAttribute(Qt::AA_DontUseNativeMenuBar, checkEnv);
+ qt_mac_no_native_menubar = !q->isNativeMenuBar();
}
if (!qt_mac_no_native_menubar) {
extern void qt_event_request_menubarupdate(); //qapplication_mac.cpp
@@ -1765,7 +1782,7 @@ void QMenuBarPrivate::macDestroyMenuBar()
OSMenuRef QMenuBarPrivate::macMenu()
{
Q_Q(QMenuBar);
- if (!mac_menubar) {
+ if (!q->isNativeMenuBar() || !mac_menubar) {
return 0;
} else if (!mac_menubar->menu) {
mac_menubar->menu = qt_mac_create_menu(q);
@@ -1886,9 +1903,6 @@ static void cancelAllMenuTracking()
*/
bool QMenuBar::macUpdateMenuBar()
{
- if (qt_mac_no_native_menubar) //nothing to be done..
- return true;
-
cancelAllMenuTracking();
QMenuBar *mb = 0;
//find a menu bar
@@ -1922,7 +1936,7 @@ bool QMenuBar::macUpdateMenuBar()
mb = fallback;
//now set it
bool ret = false;
- if (mb) {
+ if (mb && mb->isNativeMenuBar()) {
#ifdef QT_MAC_USE_COCOA
QMacCocoaAutoReleasePool pool;
#endif
@@ -1943,7 +1957,7 @@ bool QMenuBar::macUpdateMenuBar()
qt_mac_current_menubar.qmenubar = mb;
qt_mac_current_menubar.modal = QApplicationPrivate::modalState();
ret = true;
- } else if (qt_mac_current_menubar.qmenubar) {
+ } else if (qt_mac_current_menubar.qmenubar && qt_mac_current_menubar.qmenubar->isNativeMenuBar()) {
const bool modal = QApplicationPrivate::modalState();
if (modal != qt_mac_current_menubar.modal) {
ret = true;
diff --git a/src/gui/widgets/qmenu_p.h b/src/gui/widgets/qmenu_p.h
index e3c4890..dddd83e 100644
--- a/src/gui/widgets/qmenu_p.h
+++ b/src/gui/widgets/qmenu_p.h
@@ -112,7 +112,7 @@ struct QMenuMergeItem
typedef QList<QMenuMergeItem> QMenuMergeList;
#endif
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
struct QWceMenuAction {
uint command;
QPointer<QAction> action;
@@ -132,7 +132,7 @@ public:
#ifdef Q_WS_MAC
,mac_menu(0)
#endif
-#if defined(Q_OS_WINCE) && !defined(QT_NO_MENUBAR)
+#if defined(Q_WS_WINCE) && !defined(QT_NO_MENUBAR)
,wce_menu(0)
#endif
#ifdef QT3_SUPPORT
@@ -145,7 +145,7 @@ public:
#ifdef Q_WS_MAC
delete mac_menu;
#endif
-#if defined(Q_OS_WINCE) && !defined(QT_NO_MENUBAR)
+#if defined(Q_WS_WINCE) && !defined(QT_NO_MENUBAR)
delete wce_menu;
#endif
}
@@ -293,7 +293,7 @@ public:
bool emitHighlighted;
#endif
-#if defined(Q_OS_WINCE) && !defined(QT_NO_MENUBAR)
+#if defined(Q_WS_WINCE) && !defined(QT_NO_MENUBAR)
struct QWceMenuPrivate {
QList<QWceMenuAction*> actionItems;
HMENU menuHandle;
diff --git a/src/gui/widgets/qmenu_wince.cpp b/src/gui/widgets/qmenu_wince.cpp
index ea58d46..315bd51 100644
--- a/src/gui/widgets/qmenu_wince.cpp
+++ b/src/gui/widgets/qmenu_wince.cpp
@@ -40,7 +40,7 @@
****************************************************************************/
//Native menubars are only supported for Windows Mobile not the standard SDK/generic WinCE
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
#include "qmenu.h"
#include "qt_windows.h"
#include "qapplication.h"
@@ -605,4 +605,4 @@ void QMenuBarPrivate::QWceMenuBarPrivate::rebuild() {
QT_END_NAMESPACE
#endif //QT_NO_MENUBAR
-#endif //Q_OS_WINCE
+#endif //Q_WS_WINCE
diff --git a/src/gui/widgets/qmenubar.cpp b/src/gui/widgets/qmenubar.cpp
index ccf37db..d4de5bd 100644
--- a/src/gui/widgets/qmenubar.cpp
+++ b/src/gui/widgets/qmenubar.cpp
@@ -67,7 +67,7 @@
#include "qmenubar_p.h"
#include "qdebug.h"
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
extern bool qt_wince_is_mobile(); //defined in qguifunctions_wce.cpp
#endif
@@ -194,7 +194,7 @@ void QMenuBarPrivate::updateGeometries()
}
#ifdef Q_WS_MAC
- if(mac_menubar) {//nothing to see here folks, move along..
+ if(q->isNativeMenuBar()) {//nothing to see here folks, move along..
itemsDirty = false;
return;
}
@@ -725,7 +725,7 @@ void QMenuBarPrivate::init()
if(mac_menubar)
q->hide();
#endif
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
if (qt_wince_is_mobile()) {
wceCreateMenuBar(q->parentWidget());
if(wce_menubar)
@@ -776,7 +776,7 @@ QMenuBar::~QMenuBar()
Q_D(QMenuBar);
d->macDestroyMenuBar();
#endif
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
Q_D(QMenuBar);
if (qt_wince_is_mobile())
d->wceDestroyMenuBar();
@@ -1025,14 +1025,8 @@ void QMenuBar::paintEvent(QPaintEvent *e)
*/
void QMenuBar::setVisible(bool visible)
{
-#ifdef Q_WS_MAC
- Q_D(QMenuBar);
- if(d->mac_menubar)
- return;
-#endif
-#ifdef Q_OS_WINCE
- Q_D(QMenuBar);
- if(d->wce_menubar)
+#if defined(Q_WS_MAC) || defined(Q_OS_WINCE)
+ if (isNativeMenuBar())
return;
#endif
QWidget::setVisible(visible);
@@ -1272,24 +1266,19 @@ void QMenuBar::actionEvent(QActionEvent *e)
{
Q_D(QMenuBar);
d->itemsDirty = true;
+#if defined (Q_WS_MAC) || defined(Q_OS_WINCE)
+ if (isNativeMenuBar()) {
#ifdef Q_WS_MAC
- if(d->mac_menubar) {
- if(e->type() == QEvent::ActionAdded)
- d->mac_menubar->addAction(e->action(), d->mac_menubar->findAction(e->before()));
- else if(e->type() == QEvent::ActionRemoved)
- d->mac_menubar->removeAction(e->action());
- else if(e->type() == QEvent::ActionChanged)
- d->mac_menubar->syncAction(e->action());
- }
+ QMenuBarPrivate::QMacMenuBarPrivate *nativeMenuBar = d->mac_menubar;
+#else
+ QMenuBarPrivate::QWceMenuBarPrivate *nativeMenuBar = d->wce_menubar;
#endif
-#ifdef Q_OS_WINCE
- if(d->wce_menubar) {
if(e->type() == QEvent::ActionAdded)
- d->wce_menubar->addAction(e->action(), d->wce_menubar->findAction(e->before()));
+ nativeMenuBar->addAction(e->action(), nativeMenuBar->findAction(e->before()));
else if(e->type() == QEvent::ActionRemoved)
- d->wce_menubar->removeAction(e->action());
+ nativeMenuBar->removeAction(e->action());
else if(e->type() == QEvent::ActionChanged)
- d->wce_menubar->syncAction(e->action());
+ nativeMenuBar->syncAction(e->action());
}
#endif
if(e->type() == QEvent::ActionAdded) {
@@ -1374,7 +1363,7 @@ void QMenuBarPrivate::handleReparent()
macCreateMenuBar(newParent);
#endif
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
if (qt_wince_is_mobile() && wce_menubar)
wce_menubar->rebuild();
#endif
@@ -1612,10 +1601,8 @@ QRect QMenuBar::actionGeometry(QAction *act) const
QSize QMenuBar::minimumSizeHint() const
{
Q_D(const QMenuBar);
-#ifdef Q_WS_MAC
- const bool as_gui_menubar = !d->mac_menubar;
-#elif defined (Q_OS_WINCE)
- const bool as_gui_menubar = !d->wce_menubar;
+#if defined(Q_WS_MAC) || defined(Q_WS_WINCE)
+ const bool as_gui_menubar = !isNativeMenuBar();
#else
const bool as_gui_menubar = true;
#endif
@@ -1672,14 +1659,13 @@ QSize QMenuBar::minimumSizeHint() const
QSize QMenuBar::sizeHint() const
{
Q_D(const QMenuBar);
-#ifdef Q_WS_MAC
- const bool as_gui_menubar = !d->mac_menubar;
-#elif defined (Q_OS_WINCE)
- const bool as_gui_menubar = !d->wce_menubar;
+#if defined(Q_WS_MAC) || defined(Q_WS_WINCE)
+ const bool as_gui_menubar = !isNativeMenuBar();
#else
const bool as_gui_menubar = true;
#endif
+
ensurePolished();
QSize ret(0, 0);
const int hmargin = style()->pixelMetric(QStyle::PM_MenuBarHMargin, 0, this);
@@ -1735,13 +1721,12 @@ QSize QMenuBar::sizeHint() const
int QMenuBar::heightForWidth(int) const
{
Q_D(const QMenuBar);
-#ifdef Q_WS_MAC
- const bool as_gui_menubar = !d->mac_menubar;
-#elif defined (Q_OS_WINCE)
- const bool as_gui_menubar = !d->wce_menubar;
+#if defined(Q_WS_MAC) || defined(Q_WS_WINCE)
+ const bool as_gui_menubar = !isNativeMenuBar();
#else
const bool as_gui_menubar = true;
#endif
+
int height = 0;
const int vmargin = style()->pixelMetric(QStyle::PM_MenuBarVMargin, 0, this);
int fw = style()->pixelMetric(QStyle::PM_MenuBarPanelWidth, 0, this);
@@ -1856,6 +1841,60 @@ QWidget *QMenuBar::cornerWidget(Qt::Corner corner) const
}
/*!
+ \property QMenuBar::nativeMenuBar
+ \brief Whether or not a menubar will be used as a native menubar on platforms that support it
+ \since 4.6
+
+ This property specifies whether or not the menubar should be used as a native menubar on platforms
+ that support it. The currently supported platforms are Mac OS X and Windows CE. On these platforms
+ if this property is true, the menubar is used in the native menubar and is not in the window of
+ its parent, if false the menubar remains in the window. On other platforms the value of this
+ attribute has no effect.
+
+ The default is to follow whether the Qt::AA_DontUseNativeMenuBar attribute
+ is set for the application. Explicitly settings this property overrides
+ the presence (or abscence) of the attribute.
+*/
+
+void QMenuBar::setNativeMenuBar(bool nativeMenuBar)
+{
+ Q_D(QMenuBar);
+ if (d->nativeMenuBar == -1 || (nativeMenuBar != bool(d->nativeMenuBar))) {
+ d->nativeMenuBar = nativeMenuBar;
+#ifdef Q_WS_MAC
+ if (!d->nativeMenuBar) {
+ extern void qt_mac_clear_menubar();
+ qt_mac_clear_menubar();
+ d->macDestroyMenuBar();
+ const QList<QAction *> &menubarActions = actions();
+ for (int i = 0; i < menubarActions.size(); ++i) {
+ const QAction *action = menubarActions.at(i);
+ if (QMenu *menu = action->menu()) {
+ delete menu->d_func()->mac_menu;
+ menu->d_func()->mac_menu = 0;
+ }
+ }
+ } else {
+ d->macCreateMenuBar(parentWidget());
+ }
+ macUpdateMenuBar();
+ updateGeometry();
+ setVisible(false);
+ setVisible(true);
+#endif
+ }
+}
+
+bool QMenuBar::isNativeMenuBar() const
+{
+ Q_D(const QMenuBar);
+ if (d->nativeMenuBar == -1) {
+ return !QApplication::instance()->testAttribute(Qt::AA_DontUseNativeMenuBar);
+ }
+ return d->nativeMenuBar;
+}
+
+/*!
\since 4.4
Sets the default action to \a act.
@@ -1869,13 +1908,13 @@ QWidget *QMenuBar::cornerWidget(Qt::Corner corner) const
\sa defaultAction()
*/
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
void QMenuBar::setDefaultAction(QAction *act)
{
Q_D(QMenuBar);
if (d->defaultAction == act)
return;
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
if (qt_wince_is_mobile())
if (d->defaultAction) {
disconnect(d->defaultAction, SIGNAL(changed()), this, SLOT(_q_updateDefaultAction()));
@@ -1883,7 +1922,7 @@ void QMenuBar::setDefaultAction(QAction *act)
}
#endif
d->defaultAction = act;
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
if (qt_wince_is_mobile())
if (d->defaultAction) {
connect(d->defaultAction, SIGNAL(changed()), this, SLOT(_q_updateDefaultAction()));
diff --git a/src/gui/widgets/qmenubar.h b/src/gui/widgets/qmenubar.h
index 42f0c0c..58a03ff 100644
--- a/src/gui/widgets/qmenubar.h
+++ b/src/gui/widgets/qmenubar.h
@@ -64,6 +64,7 @@ class Q_GUI_EXPORT QMenuBar : public QWidget
Q_OBJECT
Q_PROPERTY(bool defaultUp READ isDefaultUp WRITE setDefaultUp)
+ Q_PROPERTY(bool nativeMenuBar READ isNativeMenuBar WRITE setNativeMenuBar)
public:
explicit QMenuBar(QWidget *parent = 0);
@@ -110,7 +111,7 @@ public:
static bool macUpdateMenuBar();
#endif
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
void setDefaultAction(QAction *);
QAction *defaultAction() const;
@@ -118,6 +119,9 @@ public:
static void wceRefresh();
#endif
+ bool isNativeMenuBar() const;
+ void setNativeMenuBar(bool nativeMenuBar);
+
public Q_SLOTS:
virtual void setVisible(bool visible);
@@ -339,7 +343,7 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_internalShortcutActivated(int))
Q_PRIVATE_SLOT(d_func(), void _q_updateLayout())
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
Q_PRIVATE_SLOT(d_func(), void _q_updateDefaultAction())
#endif
diff --git a/src/gui/widgets/qmenubar_p.h b/src/gui/widgets/qmenubar_p.h
index 223346b..5dab310 100644
--- a/src/gui/widgets/qmenubar_p.h
+++ b/src/gui/widgets/qmenubar_p.h
@@ -57,7 +57,7 @@
#include "QtGui/qstyleoption.h"
#include <private/qmenu_p.h> // Mac needs what in this file!
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
#include "qguifunctions_wince.h"
#endif
@@ -70,12 +70,13 @@ class QMenuBarPrivate : public QWidgetPrivate
Q_DECLARE_PUBLIC(QMenuBar)
public:
QMenuBarPrivate() : itemsDirty(0), itemsWidth(0), itemsStart(-1), currentAction(0), mouseDown(0),
- closePopupMode(0), defaultPopDown(1), popupState(0), keyboardState(0), altPressed(0)
+ closePopupMode(0), defaultPopDown(1), popupState(0), keyboardState(0), altPressed(0),
+ nativeMenuBar(-1)
#ifdef Q_WS_MAC
, mac_menubar(0)
#endif
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
, wce_menubar(0), wceClassicMenu(false)
#endif
{ }
@@ -84,7 +85,7 @@ public:
#ifdef Q_WS_MAC
delete mac_menubar;
#endif
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
delete wce_menubar;
#endif
}
@@ -119,6 +120,8 @@ public:
uint keyboardState : 1, altPressed : 1;
QPointer<QWidget> keyboardFocusWidget;
+
+ int nativeMenuBar : 3; // Only has values -1, 0, and 1
//firing of events
void activateAction(QAction *, QAction::ActionEvent);
@@ -127,7 +130,7 @@ public:
void _q_internalShortcutActivated(int);
void _q_updateLayout();
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
void _q_updateDefaultAction();
#endif
@@ -181,7 +184,7 @@ public:
void macDestroyMenuBar();
OSMenuRef macMenu();
#endif
-#ifdef Q_OS_WINCE
+#ifdef Q_WS_WINCE
void wceCreateMenuBar(QWidget *);
void wceDestroyMenuBar();
struct QWceMenuBarPrivate {
diff --git a/src/gui/widgets/qplaintextedit.cpp b/src/gui/widgets/qplaintextedit.cpp
index 2e9201d..a51ed2d 100644
--- a/src/gui/widgets/qplaintextedit.cpp
+++ b/src/gui/widgets/qplaintextedit.cpp
@@ -370,11 +370,16 @@ void QPlainTextDocumentLayout::layoutBlock(const QTextBlock &block)
extraMargin += fm.width(QChar(0x21B5));
}
tl->beginLayout();
+ qreal availableWidth = d->width;
+ if (availableWidth <= 0) {
+ availableWidth = INT_MAX; // similar to text edit with pageSize.width == 0
+ }
+ availableWidth -= 2*margin + extraMargin;
while (1) {
QTextLine line = tl->createLine();
if (!line.isValid())
break;
- line.setLineWidth(d->width - 2*margin - extraMargin);
+ line.setLineWidth(availableWidth);
height += leading;
line.setPosition(QPointF(margin, height));
diff --git a/src/gui/widgets/qtabbar.cpp b/src/gui/widgets/qtabbar.cpp
index 7d970ad..49de8c1 100644
--- a/src/gui/widgets/qtabbar.cpp
+++ b/src/gui/widgets/qtabbar.cpp
@@ -131,7 +131,7 @@ void QTabBar::initStyleOption(QStyleOptionTab *option, int tabIndex) const
option->state &= ~QStyle::State_Enabled;
if (isActiveWindow())
option->state |= QStyle::State_Active;
- if (option->rect == d->hoverRect)
+ if (!d->dragInProgress && option->rect == d->hoverRect)
option->state |= QStyle::State_MouseOver;
option->shape = d->shape;
option->text = tab.text;
@@ -454,9 +454,6 @@ void QTabBarPrivate::layoutTabs()
maxExtent = maxWidth;
}
- if (pressedIndex != -1 && movable)
- grabCache(0, tabList.count(), true);
-
Q_ASSERT(tabChainIndex == tabChain.count() - 1); // add an assert just to make sure.
// Mirror our front item.
tabChain[tabChainIndex].init();
@@ -1170,13 +1167,13 @@ void QTabBar::setCurrentIndex(int index)
d->currentIndex = index;
update();
d->makeVisible(index);
+ d->tabList[index].lastTab = oldIndex;
+ d->layoutWidgets(oldIndex);
+ d->layoutWidgets(index);
#ifdef QT3_SUPPORT
emit selected(index);
#endif
emit currentChanged(index);
- d->tabList[index].lastTab = oldIndex;
- d->layoutWidgets(oldIndex);
- d->layoutWidgets(index);
}
}
@@ -1484,6 +1481,8 @@ void QTabBar::paintEvent(QPaintEvent *)
bool vertical = verticalTabs(d->shape);
QStyleOptionTab cutTab;
selected = d->currentIndex;
+ if (d->dragInProgress)
+ selected = d->pressedIndex;
for (int i = 0; i < d->tabList.count(); ++i)
optTabBase.tabBarRect |= tabRect(i);
@@ -1522,11 +1521,7 @@ void QTabBar::paintEvent(QPaintEvent *)
if (i == selected)
continue;
- if (!d->tabList[i].animatingCache.isNull() && d->paintWithOffsets) {
- p.drawPixmap(tab.rect, d->tabList[i].animatingCache);
- } else {
- p.drawControl(QStyle::CE_TabBarTab, tab);
- }
+ p.drawControl(QStyle::CE_TabBarTab, tab);
}
// Draw the selected tab last to get it "on top"
@@ -1539,7 +1534,11 @@ void QTabBar::paintEvent(QPaintEvent *)
else
tab.rect.moveLeft(tab.rect.x() + d->tabList[selected].dragOffset);
}
- p.drawControl(QStyle::CE_TabBarTab, tab);
+ if (!d->dragInProgress)
+ p.drawControl(QStyle::CE_TabBarTab, tab);
+ else
+ d->movingTab->setGeometry(tab.rect);
+
}
// Only draw the tear indicator if necessary. Most of the time we don't need too.
@@ -1680,6 +1679,7 @@ void QTabBarPrivate::_q_moveTab(int offset)
if (!validIndex(index))
return;
tabList[index].dragOffset = offset;
+ layoutTab(index); // Make buttons follow tab
q->update();
}
}
@@ -1727,8 +1727,7 @@ void QTabBar::mouseMoveEvent(QMouseEvent *event)
if (!d->dragInProgress && d->pressedIndex != -1) {
if ((event->pos() - d->dragStartPosition).manhattanLength() > QApplication::startDragDistance()) {
d->dragInProgress = true;
- if (d->animations.isEmpty())
- d->grabCache(0, d->tabList.count(), false);
+ d->setupMovableTab();
}
}
@@ -1773,7 +1772,6 @@ void QTabBar::mouseMoveEvent(QMouseEvent *event)
if (dragDistance > needsToBeOver)
d->slide(i + offset, d->pressedIndex);
}
-
}
// Buttons needs to follow the dragged tab
d->layoutTab(d->pressedIndex);
@@ -1801,32 +1799,41 @@ void QTabBarPrivate::_q_moveTabFinished()
}
}
-void QTabBarPrivate::grabCache(int start, int end, bool unhide)
+void QTabBarPrivate::setupMovableTab()
{
Q_Q(QTabBar);
- paintWithOffsets = false;
- bool showButtonsAgain = rightB->isVisible();
- rightB->hide();
- leftB->hide();
-
- QWidget *topLevel = q->window();
- QPoint topLevelOffset(q->mapTo(topLevel, QPoint()));
- for (int i = start; i < end; ++i) {
- QRect tabRect = q->tabRect(i);
- tabRect.translate(topLevelOffset);
- if (unhide) {
- tabList[i].unHideWidgets();
- layoutWidgets(i);
- }
- tabList[i].animatingCache = QPixmap::grabWidget(topLevel, tabRect);
- if (i != pressedIndex)
- tabList[i].hideWidgets();
- }
- if (showButtonsAgain) {
- rightB->show();
- leftB->show();
- }
- paintWithOffsets = true;
+ if (!movingTab)
+ movingTab = new QWidget(q);
+
+ QRect grabRect = q->tabRect(pressedIndex);
+
+ QPixmap grabImage(grabRect.size());
+ grabImage.fill(Qt::transparent);
+ QStylePainter p(&grabImage, q);
+
+ QStyleOptionTabV3 tab;
+ q->initStyleOption(&tab, pressedIndex);
+ tab.rect.moveTopLeft(QPoint(0, 0));
+ p.drawControl(QStyle::CE_TabBarTab, tab);
+ p.end();
+
+ QPalette pal;
+ pal.setBrush(QPalette::All, QPalette::Window, grabImage);
+ movingTab->setPalette(pal);
+ movingTab->setGeometry(grabRect);
+ movingTab->setAutoFillBackground(true);
+ movingTab->raise();
+
+ // Re-arrange widget order to avoid overlaps
+ if (tabList[pressedIndex].leftWidget)
+ tabList[pressedIndex].leftWidget->raise();
+ if (tabList[pressedIndex].rightWidget)
+ tabList[pressedIndex].rightWidget->raise();
+ if (leftB)
+ leftB->raise();
+ if (rightB)
+ rightB->raise();
+ movingTab->setVisible(true);
}
void QTabBarPrivate::_q_moveTabFinished(int index)
@@ -1834,10 +1841,9 @@ void QTabBarPrivate::_q_moveTabFinished(int index)
Q_Q(QTabBar);
bool cleanup = (pressedIndex == index) || (pressedIndex == -1) || !validIndex(index);
if (animations.isEmpty() && cleanup) {
+ movingTab->setVisible(false); // We might not get a mouse release
for (int i = 0; i < tabList.count(); ++i) {
tabList[i].dragOffset = 0;
- tabList[i].unHideWidgets();
- tabList[i].animatingCache = QPixmap();
}
if (pressedIndex != -1 && movable) {
pressedIndex = -1;
@@ -1881,6 +1887,7 @@ void QTabBar::mouseReleaseEvent(QMouseEvent *event)
d->_q_moveTabFinished(d->pressedIndex);
}
d->dragInProgress = false;
+ d->movingTab->setVisible(false);
d->dragStartPosition = QPoint();
}
@@ -1934,8 +1941,10 @@ void QTabBar::changeEvent(QEvent *event)
if (event->type() == QEvent::StyleChange) {
d->elideMode = Qt::TextElideMode(style()->styleHint(QStyle::SH_TabBar_ElideMode, 0, this));
d->useScrollButtons = !style()->styleHint(QStyle::SH_TabBar_PreferNoArrows, 0, this);
+ d->refresh();
+ } else if (event->type() == QEvent::FontChange) {
+ d->refresh();
}
- d->refresh();
QWidget::changeEvent(event);
}
@@ -2203,19 +2212,16 @@ void QTabBar::setTabButton(int index, ButtonPosition position, QWidget *widget)
widget->setParent(this);
// make sure our left and right widgets stay on top
widget->lower();
+ widget->show();
}
if (position == LeftSide) {
if (d->tabList[index].leftWidget)
d->tabList[index].leftWidget->hide();
d->tabList[index].leftWidget = widget;
- if(!d->tabList[index].hidLeft && widget)
- widget->show();
} else {
if (d->tabList[index].rightWidget)
d->tabList[index].rightWidget->hide();
d->tabList[index].rightWidget = widget;
- if(!d->tabList[index].hidRight && widget)
- widget->show();
}
d->layoutTabs();
update();
diff --git a/src/gui/widgets/qtabbar_p.h b/src/gui/widgets/qtabbar_p.h
index a117aa3..cb1a15b 100644
--- a/src/gui/widgets/qtabbar_p.h
+++ b/src/gui/widgets/qtabbar_p.h
@@ -70,7 +70,6 @@
QT_BEGIN_NAMESPACE
-
class QTabBarPrivate : public QWidgetPrivate
{
Q_DECLARE_PUBLIC(QTabBar)
@@ -78,7 +77,7 @@ public:
QTabBarPrivate()
:currentIndex(-1), pressedIndex(-1),
shape(QTabBar::RoundedNorth),
- layoutDirty(false), drawBase(true), scrollOffset(0), expanding(true), closeButtonOnTabs(false), selectionBehaviorOnRemove(QTabBar::SelectRightTab), paintWithOffsets(true), movable(false), dragInProgress(false), documentMode(false) {}
+ layoutDirty(false), drawBase(true), scrollOffset(0), expanding(true), closeButtonOnTabs(false), selectionBehaviorOnRemove(QTabBar::SelectRightTab), paintWithOffsets(true), movable(false), dragInProgress(false), documentMode(false), movingTab(0) {}
int currentIndex;
int pressedIndex;
@@ -98,8 +97,6 @@ public:
, lastTab(-1)
, timeLine(0)
, dragOffset(0)
- , hidLeft(false)
- , hidRight(false)
{}
bool enabled;
int shortcutId;
@@ -123,9 +120,6 @@ public:
QTimeLine *timeLine;
int dragOffset;
- QPixmap animatingCache;
- bool hidLeft;
- bool hidRight;
void makeTimeLine(QWidget *q) {
if (timeLine)
@@ -135,27 +129,6 @@ public:
q->connect(timeLine, SIGNAL(finished()), q, SLOT(_q_moveTabFinished()));
}
- void hideWidgets() {
- if (!hidRight && rightWidget) {
- hidRight = rightWidget->isVisible();
- rightWidget->hide();
- }
-
- if (!hidLeft && leftWidget) {
- hidLeft = leftWidget->isVisible();
- leftWidget->hide();
- }
- }
-
- void unHideWidgets() {
- if (leftWidget && hidLeft)
- leftWidget->show();
- hidLeft = false;
- if (rightWidget && hidRight)
- rightWidget->show();
- hidRight = false;
- }
-
};
QList<Tab> tabList;
QHash<QTimeLine*, int> animations;
@@ -184,12 +157,12 @@ public:
void _q_moveTabFinished(int offset);
QRect hoverRect;
- void grabCache(int start, int end, bool unhide);
void refresh();
void layoutTabs();
void layoutWidgets(int index = -1);
void layoutTab(int index);
void updateMacBorderMetrics();
+ void setupMovableTab();
void makeVisible(int index);
QSize iconSize;
@@ -206,6 +179,8 @@ public:
bool dragInProgress;
bool documentMode;
+ QWidget *movingTab;
+
// shared by tabwidget and qtabbar
static void initStyleBaseOption(QStyleOptionTabBarBaseV2 *optTabBase, QTabBar *tabbar, QSize size)
{
diff --git a/src/gui/widgets/qtoolbar.cpp b/src/gui/widgets/qtoolbar.cpp
index 85d6ea2..fadccbc 100644
--- a/src/gui/widgets/qtoolbar.cpp
+++ b/src/gui/widgets/qtoolbar.cpp
@@ -1153,6 +1153,17 @@ bool QToolBar::event(QEvent *event)
if (d->mouseMoveEvent(static_cast<QMouseEvent*>(event)))
return true;
break;
+#ifdef Q_WS_WINCE
+ case QEvent::ContextMenu:
+ {
+ QContextMenuEvent* contextMenuEvent = static_cast<QContextMenuEvent*>(event);
+ QWidget* child = childAt(contextMenuEvent->pos());
+ QAbstractButton* button = qobject_cast<QAbstractButton*>(child);
+ if (button)
+ button->setDown(false);
+ }
+ break;
+#endif
case QEvent::Leave:
if (d->state != 0 && d->state->dragging) {
#ifdef Q_OS_WIN
diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp
index 980c0e0..5940fba 100644
--- a/src/network/access/qhttpnetworkconnection.cpp
+++ b/src/network/access/qhttpnetworkconnection.cpp
@@ -265,6 +265,11 @@ bool QHttpNetworkConnectionPrivate::ensureConnection(QAbstractSocket *socket)
if (socket->state() != QAbstractSocket::ConnectedState) {
// connect to the host if not already connected.
int index = indexOf(socket);
+ // resend this request after we receive the disconnected signal
+ if (socket->state() == QAbstractSocket::ClosingState) {
+ channels[index].resendCurrent = true;
+ return false;
+ }
channels[index].state = ConnectingState;
channels[index].pendingEncrypt = encrypt;
@@ -982,6 +987,9 @@ void QHttpNetworkConnectionPrivate::_q_disconnected()
channels[i].state = ReadingState;
if (channels[i].reply)
receiveReply(socket, channels[i].reply);
+ } else if (channels[i].state == IdleState && channels[i].resendCurrent) {
+ // re-sending request because the socket was in ClosingState
+ QMetaObject::invokeMethod(q, "_q_startNextRequest", Qt::QueuedConnection);
}
channels[i].state = IdleState;
}
diff --git a/src/network/access/qhttpnetworkreply_p.h b/src/network/access/qhttpnetworkreply_p.h
index 21f4116..c17c65c 100644
--- a/src/network/access/qhttpnetworkreply_p.h
+++ b/src/network/access/qhttpnetworkreply_p.h
@@ -66,12 +66,10 @@ static const unsigned char gz_magic[2] = {0x1f, 0x8b}; // gzip magic header
#define CHUNK 16384
#endif
-#ifndef QT_NO_OPENSSL
-# include <QtNetwork/qsslsocket.h>
-# include <QtNetwork/qsslerror.h>
-#else
-# include <QtNetwork/qtcpsocket.h>
-#endif
+#include <QtNetwork/qtcpsocket.h>
+// it's safe to include these even if SSL support is not enabled
+#include <QtNetwork/qsslsocket.h>
+#include <QtNetwork/qsslerror.h>
#include <QtNetwork/qnetworkrequest.h>
#include <QtNetwork/qnetworkreply.h>
diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp
index 11e1e46..bcbeef1 100644
--- a/src/network/access/qnetworkaccessmanager.cpp
+++ b/src/network/access/qnetworkaccessmanager.cpp
@@ -477,7 +477,8 @@ void QNetworkAccessManager::setCache(QAbstractNetworkCache *cache)
if (d->networkCache != cache) {
delete d->networkCache;
d->networkCache = cache;
- d->networkCache->setParent(this);
+ if (d->networkCache)
+ d->networkCache->setParent(this);
}
}
diff --git a/src/network/access/qnetworkcookie.cpp b/src/network/access/qnetworkcookie.cpp
index 01a743b..aaa5075 100644
--- a/src/network/access/qnetworkcookie.cpp
+++ b/src/network/access/qnetworkcookie.cpp
@@ -976,14 +976,14 @@ QList<QNetworkCookie> QNetworkCookie::parseCookies(const QByteArray &cookieStrin
cookie.setExpirationDate(dt);
} else if (field.first == "domain") {
QByteArray rawDomain = field.second;
- QString maybeLeadingDot;
if (rawDomain.startsWith('.')) {
- maybeLeadingDot = QLatin1Char('.');
rawDomain = rawDomain.mid(1);
}
-
QString normalizedDomain = QUrl::fromAce(QUrl::toAce(QString::fromUtf8(rawDomain)));
- cookie.setDomain(maybeLeadingDot + normalizedDomain);
+ // always add the dot, there are some servers that forget the
+ // leading dot. This is actually forbidden according to RFC 2109,
+ // but all browsers accept it anyway so we do that as well
+ cookie.setDomain(QLatin1Char('.') + normalizedDomain);
} else if (field.first == "max-age") {
bool ok = false;
int secs = field.second.toInt(&ok);
@@ -1184,7 +1184,6 @@ bool QNetworkCookieJar::setCookiesFromUrl(const QList<QNetworkCookie> &cookieLis
cookie.expirationDate() < now;
// validate the cookie & set the defaults if unset
- // (RFC 2965: "The request-URI MUST path-match the Path attribute of the cookie.")
if (cookie.path().isEmpty())
cookie.setPath(defaultPath);
else if (!isParentPath(pathAndFileName, cookie.path()))
diff --git a/src/network/access/qnetworkdiskcache.cpp b/src/network/access/qnetworkdiskcache.cpp
index e472b9d..14a04f1 100644
--- a/src/network/access/qnetworkdiskcache.cpp
+++ b/src/network/access/qnetworkdiskcache.cpp
@@ -255,7 +255,8 @@ void QNetworkDiskCachePrivate::storeItem(QCacheItem *cacheItem)
// ### use atomic rename rather then remove & rename
if (cacheItem->file->rename(fileName))
currentCacheSize += cacheItem->file->size();
- cacheItem->file->setAutoRemove(true);
+ else
+ cacheItem->file->setAutoRemove(true);
}
if (cacheItem->metaData.url() == lastItem.metaData.url())
lastItem.reset();
diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp
index 910e30a..f9750f2 100644
--- a/src/network/socket/qabstractsocket.cpp
+++ b/src/network/socket/qabstractsocket.cpp
@@ -1263,7 +1263,7 @@ void QAbstractSocket::connectToHostImplementation(const QString &hostName, quint
(int) openMode);
#endif
- if (d->state == ConnectedState || d->state == ConnectingState) {
+ if (d->state == ConnectedState || d->state == ConnectingState || d->state == ClosingState) {
qWarning("QAbstractSocket::connectToHost() called when already connecting/connected to \"%s\"", qPrintable(hostName));
return;
}
@@ -2279,7 +2279,7 @@ void QAbstractSocket::disconnectFromHostImplementation()
emit delayedCloseFinished(); // compat signal
#endif
// only emit disconnected if we were connected before
- if (previousState == ConnectedState || ClosingState)
+ if (previousState == ConnectedState || previousState == ClosingState)
emit disconnected();
d->localPort = 0;
diff --git a/src/network/socket/qlocalserver_unix.cpp b/src/network/socket/qlocalserver_unix.cpp
index 065a9de..e7d2252 100644
--- a/src/network/socket/qlocalserver_unix.cpp
+++ b/src/network/socket/qlocalserver_unix.cpp
@@ -148,9 +148,11 @@ void QLocalServerPrivate::closeServer()
QT_CLOSE(listenSocket);
listenSocket = -1;
- if (socketNotifier)
+ if (socketNotifier) {
+ socketNotifier->setEnabled(false); // Otherwise, closed socket is checked before deleter runs
socketNotifier->deleteLater();
- socketNotifier = 0;
+ socketNotifier = 0;
+ }
if (!fullServerName.isEmpty())
QFile::remove(fullServerName);
diff --git a/src/network/socket/qlocalsocket_win.cpp b/src/network/socket/qlocalsocket_win.cpp
index e759d0b..39c9284 100644
--- a/src/network/socket/qlocalsocket_win.cpp
+++ b/src/network/socket/qlocalsocket_win.cpp
@@ -298,7 +298,7 @@ qint64 QLocalSocketPrivate::bytesAvailable()
if (PeekNamedPipe(handle, NULL, 0, NULL, &bytes, NULL)) {
return bytes;
} else {
- if (ERROR_BROKEN_PIPE == GetLastError() && !pipeClosed) {
+ if (!pipeClosed) {
pipeClosed = true;
QTimer::singleShot(0, q, SLOT(_q_pipeClosed()));
}
diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp
index 73f6f84..cc372a6 100644
--- a/src/network/socket/qnativesocketengine_unix.cpp
+++ b/src/network/socket/qnativesocketengine_unix.cpp
@@ -506,26 +506,11 @@ int QNativeSocketEnginePrivate::nativeAccept()
qint64 QNativeSocketEnginePrivate::nativeBytesAvailable() const
{
- /*
- Apparently, there is not consistency among different operating
- systems on how to use FIONREAD.
-
- FreeBSD, Linux and Solaris all expect the 3rd argument to
- ioctl() to be an int, which is normally 32-bit even on 64-bit
- machines.
-
- IRIX, on the other hand, expects a size_t, which is 64-bit on
- 64-bit machines.
-
- So, the solution is to use size_t initialized to zero to make
- sure all bits are set to zero, preventing underflow with the
- FreeBSD/Linux/Solaris ioctls.
- */
- size_t nbytes = 0;
+ int nbytes = 0;
// gives shorter than true amounts on Unix domain sockets.
qint64 available = 0;
if (::ioctl(socketDescriptor, FIONREAD, (char *) &nbytes) >= 0)
- available = (qint64) *((int *) &nbytes);
+ available = (qint64) nbytes;
#if defined (QNATIVESOCKETENGINE_DEBUG)
qDebug("QNativeSocketEnginePrivate::nativeBytesAvailable() == %lli", available);
diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro
index 48d7caf..78aaddb 100644
--- a/src/opengl/opengl.pro
+++ b/src/opengl/opengl.pro
@@ -25,18 +25,16 @@ HEADERS += qgl.h \
qglcolormap.h \
qglpixelbuffer.h \
qglframebufferobject.h \
- qglpixmapfilter_p.h
SOURCES += qgl.cpp \
qglcolormap.cpp \
qglpixelbuffer.cpp \
qglframebufferobject.cpp \
qglextensions.cpp \
- qglpixmapfilter.cpp
!contains(QT_CONFIG, opengles2) {
- HEADERS += qpaintengine_opengl_p.h
- SOURCES += qpaintengine_opengl.cpp
+ HEADERS += qpaintengine_opengl_p.h qglpixmapfilter_p.h
+ SOURCES += qpaintengine_opengl.cpp qglpixmapfilter.cpp
}
contains(QT_CONFIG, opengles2) {
@@ -130,6 +128,10 @@ wince*: {
contains(QT_CONFIG,opengles1cl) {
QMAKE_LIBS += "libGLES_CL.lib"
}
+ contains(QT_CONFIG,opengles2) {
+ QMAKE_LIBS += "libGLESv2.lib"
+ }
+
} else {
QMAKE_LIBS += $$QMAKE_LIBS_OPENGL
}
diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp
index 4c152e2..2d58084 100644
--- a/src/opengl/qgl.cpp
+++ b/src/opengl/qgl.cpp
@@ -1328,13 +1328,21 @@ QImage qt_gl_read_framebuffer(const QSize &size, bool alpha_format, bool include
// This is an old legacy fix for PowerPC based Macs, which
// we shouldn't remove
while (p < end) {
- *p = 0xFF000000 | (*p>>8);
+ *p = 0xff000000 | (*p>>8);
++p;
}
}
} else {
// OpenGL gives ABGR (i.e. RGBA backwards); Qt wants ARGB
- img = img.rgbSwapped();
+ for (int y = 0; y < h; y++) {
+ uint *q = (uint*)img.scanLine(y);
+ for (int x=0; x < w; ++x) {
+ const uint pixel = *q;
+ *q = ((pixel << 16) & 0xff0000) | ((pixel >> 16) & 0xff) | (pixel & 0xff00ff00);
+ q++;
+ }
+ }
+
}
return img.mirrored();
}
@@ -1677,58 +1685,105 @@ static void qt_gl_clean_cache(qint64 cacheKey)
static void convertToGLFormatHelper(QImage &dst, const QImage &img, GLenum texture_format)
{
- Q_ASSERT(dst.size() == img.size());
Q_ASSERT(dst.depth() == 32);
Q_ASSERT(img.depth() == 32);
- const int width = img.width();
- const int height = img.height();
- const uint *p = (const uint*) img.scanLine(img.height() - 1);
- uint *q = (uint*) dst.scanLine(0);
-
- if (texture_format == GL_BGRA) {
- if (QSysInfo::ByteOrder == QSysInfo::BigEndian) {
- // mirror + swizzle
- for (int i=0; i < height; ++i) {
- const uint *end = p + width;
- while (p < end) {
- *q = ((*p << 24) & 0xff000000)
- | ((*p >> 24) & 0x000000ff)
- | ((*p << 8) & 0x00ff0000)
- | ((*p >> 8) & 0x0000ff00);
- p++;
- q++;
+ if (dst.size() != img.size()) {
+ int target_width = dst.width();
+ int target_height = dst.height();
+ qreal sx = target_width / qreal(img.width());
+ qreal sy = target_height / qreal(img.height());
+
+ quint32 *dest = (quint32 *) dst.scanLine(0); // NB! avoid detach here
+ uchar *srcPixels = (uchar *) img.scanLine(img.height() - 1);
+ int sbpl = img.bytesPerLine();
+ int dbpl = dst.bytesPerLine();
+
+ int ix = 0x00010000 / sx;
+ int iy = 0x00010000 / sy;
+
+ quint32 basex = int(0.5 * ix);
+ quint32 srcy = int(0.5 * iy);
+
+ // scale, swizzle and mirror in one loop
+ while (target_height--) {
+ const uint *src = (const quint32 *) (srcPixels - (srcy >> 16) * sbpl);
+ int srcx = basex;
+ for (int x=0; x<target_width; ++x) {
+ uint src_pixel = src[srcx >> 16];
+ if (texture_format == GL_BGRA) {
+ if (QSysInfo::ByteOrder == QSysInfo::BigEndian) {
+ dest[x] = ((src_pixel << 24) & 0xff000000)
+ | ((src_pixel >> 24) & 0x000000ff)
+ | ((src_pixel << 8) & 0x00ff0000)
+ | ((src_pixel >> 8) & 0x0000ff00);
+ } else {
+ dest[x] = src_pixel;
+ }
+ } else { // GL_RGBA
+ if (QSysInfo::ByteOrder == QSysInfo::BigEndian) {
+ dest[x] = (src_pixel << 8) | ((src_pixel >> 24) & 0xff);
+ } else {
+ dest[x] = ((src_pixel << 16) & 0xff0000)
+ | ((src_pixel >> 16) & 0xff)
+ | (src_pixel & 0xff00ff00);
+ }
}
- p -= 2 * width;
- }
- } else {
- const uint bytesPerLine = img.bytesPerLine();
- for (int i=0; i < height; ++i) {
- memcpy(q, p, bytesPerLine);
- q += width;
- p -= width;
+ srcx += ix;
}
+ dest = (quint32 *)(((uchar *) dest) + dbpl);
+ srcy += iy;
}
} else {
- if (QSysInfo::ByteOrder == QSysInfo::BigEndian) {
- for (int i=0; i < height; ++i) {
- const uint *end = p + width;
- while (p < end) {
- *q = (*p << 8) | ((*p >> 24) & 0xFF);
- p++;
- q++;
+ const int width = img.width();
+ const int height = img.height();
+ const uint *p = (const uint*) img.scanLine(img.height() - 1);
+ uint *q = (uint*) dst.scanLine(0);
+
+ if (texture_format == GL_BGRA) {
+ if (QSysInfo::ByteOrder == QSysInfo::BigEndian) {
+ // mirror + swizzle
+ for (int i=0; i < height; ++i) {
+ const uint *end = p + width;
+ while (p < end) {
+ *q = ((*p << 24) & 0xff000000)
+ | ((*p >> 24) & 0x000000ff)
+ | ((*p << 8) & 0x00ff0000)
+ | ((*p >> 8) & 0x0000ff00);
+ p++;
+ q++;
+ }
+ p -= 2 * width;
+ }
+ } else {
+ const uint bytesPerLine = img.bytesPerLine();
+ for (int i=0; i < height; ++i) {
+ memcpy(q, p, bytesPerLine);
+ q += width;
+ p -= width;
}
- p -= 2 * width;
}
} else {
- for (int i=0; i < height; ++i) {
- const uint *end = p + width;
- while (p < end) {
- *q = ((*p << 16) & 0xff0000) | ((*p >> 16) & 0xff) | (*p & 0xff00ff00);
- p++;
- q++;
+ if (QSysInfo::ByteOrder == QSysInfo::BigEndian) {
+ for (int i=0; i < height; ++i) {
+ const uint *end = p + width;
+ while (p < end) {
+ *q = (*p << 8) | ((*p >> 24) & 0xff);
+ p++;
+ q++;
+ }
+ p -= 2 * width;
+ }
+ } else {
+ for (int i=0; i < height; ++i) {
+ const uint *end = p + width;
+ while (p < end) {
+ *q = ((*p << 16) & 0xff0000) | ((*p >> 16) & 0xff) | (*p & 0xff00ff00);
+ p++;
+ q++;
+ }
+ p -= 2 * width;
}
- p -= 2 * width;
}
}
}
@@ -1771,19 +1826,18 @@ GLuint QGLContextPrivate::bindTexture(const QImage &image, GLenum target, GLint
}
// Scale the pixmap if needed. GL textures needs to have the
- // dimensions 2^n+2(border) x 2^m+2(border).
+ // dimensions 2^n+2(border) x 2^m+2(border), unless we're using GL
+ // 2.0 or use the GL_TEXTURE_RECTANGLE texture target
int tx_w = qt_next_power_of_two(image.width());
int tx_h = qt_next_power_of_two(image.height());
+ bool scale = false;
- // Note: the clean param is only true when a texture is bound
- // from the QOpenGLPaintEngine - in that case we have to force
- // a premultiplied texture format
QImage img = image;
if (( !(QGLFormat::openGLVersionFlags() & QGLFormat::OpenGL_Version_2_0) &&
!(QGLFormat::openGLVersionFlags() & QGLFormat::OpenGL_ES_Version_2_0) )
&& (target == GL_TEXTURE_2D && (tx_w != image.width() || tx_h != image.height())))
{
- img = image.scaled(tx_w, tx_h);
+ scale = true;
}
GLuint tx_id;
@@ -1815,17 +1869,24 @@ GLuint QGLContextPrivate::bindTexture(const QImage &image, GLenum target, GLint
ptr = reinterpret_cast<uchar *>(glMapBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, GL_WRITE_ONLY_ARB));
}
- if (ptr) {
- QImage::Format target_format = img.format();
- if (clean || img.format() != QImage::Format_ARGB32)
- target_format = QImage::Format_ARGB32_Premultiplied;
+ QImage::Format target_format = img.format();
+ // Note: the clean param is only true when a texture is bound
+ // from the QOpenGLPaintEngine - in that case we have to force
+ // a premultiplied texture format
+ if (clean || img.format() != QImage::Format_ARGB32)
+ target_format = QImage::Format_ARGB32_Premultiplied;
+ if (img.format() != target_format)
+ img = img.convertToFormat(target_format);
+ if (ptr) {
QImage buffer(ptr, img.width(), img.height(), target_format);
- convertToGLFormatHelper(buffer, img.convertToFormat(target_format), texture_format);
+ convertToGLFormatHelper(buffer, img, texture_format);
glUnmapBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB);
- glTexImage2D(target, 0, format, img.width(), img.height(), 0, texture_format, GL_UNSIGNED_BYTE, 0);
+ glTexImage2D(target, 0, format, img.width(), img.height(), 0, texture_format,
+ GL_UNSIGNED_BYTE, 0);
} else {
- QImage tx = convertToGLFormat(img, clean, texture_format);
+ QImage tx(scale ? QSize(tx_w, tx_h) : img.size(), target_format);
+ convertToGLFormatHelper(tx, img, texture_format);
glTexImage2D(target, 0, format, tx.width(), tx.height(), 0, texture_format,
GL_UNSIGNED_BYTE, tx.bits());
}
@@ -2399,6 +2460,10 @@ bool QGLContext::create(const QGLContext* shareContext)
return false;
reset();
d->valid = chooseContext(shareContext);
+ if (d->valid && d->paintDevice->devType() == QInternal::Widget) {
+ QWidgetPrivate *wd = qt_widget_private(static_cast<QWidget *>(d->paintDevice));
+ wd->usesDoubleBufferedGLContext = d->glFormat.doubleBuffer();
+ }
if (d->sharing) // ok, we managed to share
qgl_share_reg()->addShare(this, shareContext);
return d->valid;
@@ -2616,6 +2681,10 @@ const QGLContext* QGLContext::currentContext()
QGLWidget. This will side-step the issue altogether, and is what
we recommend for users that need this kind of functionality.
+ On Mac OS X, when Qt is built with Cocoa support, a QGLWidget
+ can't have any sibling widgets placed ontop of itself. This is due
+ to limitations in the Cocoa API and is not supported by Apple.
+
\section1 Overlays
The QGLWidget creates a GL overlay context in addition to the
@@ -3231,6 +3300,10 @@ bool QGLWidget::event(QEvent *e)
update();
}
return true;
+# if defined(QT_MAC_USE_COCOA)
+ } else if (e->type() == QEvent::MacGLClearDrawable) {
+ d->glcx->d_ptr->clearDrawable();
+# endif
}
#endif
diff --git a/src/opengl/qgl_mac.mm b/src/opengl/qgl_mac.mm
index 314c659..1319396 100644
--- a/src/opengl/qgl_mac.mm
+++ b/src/opengl/qgl_mac.mm
@@ -87,29 +87,6 @@ QT_FORWARD_DECLARE_CLASS(QWidget)
QT_FORWARD_DECLARE_CLASS(QWidgetPrivate)
QT_FORWARD_DECLARE_CLASS(QGLWidgetPrivate)
-@interface QT_MANGLE_NAMESPACE(QCocoaOpenGLView) : QT_MANGLE_NAMESPACE(QCocoaView)
-{
-}
-- (id)initWithQWidget:(QWidget *)widget widgetPrivate:(QWidgetPrivate *)widgetprivate;
-@end
-
-@implementation QT_MANGLE_NAMESPACE(QCocoaOpenGLView)
-- (id)initWithQWidget:(QWidget *)widget widgetPrivate:(QWidgetPrivate *)widgetprivate
-{
- self = [super initWithQWidget:widget widgetPrivate:widgetprivate];
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(_surfaceNeedsUpdate:)
- name:NSViewGlobalFrameDidChangeNotification
- object:self];
- return self;
-}
-
-- (void) _surfaceNeedsUpdate:(NSNotification*)notification
-{
- Q_UNUSED(notification);
- static_cast<QGLWidgetPrivate *>(qwidgetprivate)->glcx->updatePaintDevice();
-}
-@end
QT_BEGIN_NAMESPACE
void *qt_current_nsopengl_context()
@@ -435,6 +412,11 @@ void *QGLContextPrivate::tryFormat(const QGLFormat &format)
#endif
}
+void QGLContextPrivate::clearDrawable()
+{
+ [static_cast<NSOpenGLContext *>(cx) clearDrawable];
+}
+
/*!
\bold{Mac OS X only:} This virtual function tries to find a visual that
matches the format, reducing the demands if the original request
@@ -647,7 +629,7 @@ void QGLContext::updatePaintDevice()
// ideally we would use QWidget::isVisible(), but we get "invalid drawable" errors
if (![(NSWindow *)qt_mac_window_for(w) isVisible])
return;
- if ([static_cast<NSOpenGLContext *>(d->cx) view] != view)
+ if ([static_cast<NSOpenGLContext *>(d->cx) view] != view && ![view isHidden])
[static_cast<NSOpenGLContext *>(d->cx) setView:view];
} else if (d->paintDevice->devType() == QInternal::Pixmap) {
const QPixmap *pm = static_cast<const QPixmap *>(d->paintDevice);
diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h
index b15eebc..1214f20 100644
--- a/src/opengl/qgl_p.h
+++ b/src/opengl/qgl_p.h
@@ -234,6 +234,7 @@ public:
#if defined(Q_WS_MAC)
bool update;
void *tryFormat(const QGLFormat &format);
+ void clearDrawable();
#endif
QGLFormat glFormat;
QGLFormat reqFormat;
diff --git a/src/opengl/qglpixelbuffer_mac.mm b/src/opengl/qglpixelbuffer_mac.mm
index 14941ab..9a679b1 100644
--- a/src/opengl/qglpixelbuffer_mac.mm
+++ b/src/opengl/qglpixelbuffer_mac.mm
@@ -308,10 +308,6 @@ GLuint QGLPixelBuffer::generateDynamicTexture() const
GLuint texture;
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
- [static_cast<NSOpenGLContext *>(d->share_ctx)
- setTextureImageToPixelBuffer:static_cast<NSOpenGLPixelBuffer *>(d->pbuf)
- colorBuffer:GL_FRONT];
- glBindTexture(GL_TEXTURE_2D, texture); // updates texture target
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
@@ -322,8 +318,6 @@ GLuint QGLPixelBuffer::generateDynamicTexture() const
GLuint texture;
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
- aglTexImagePBuffer(d->share_ctx, d->pbuf, GL_FRONT);
- glBindTexture(GL_TEXTURE_2D, texture); // updates texture target
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
return texture;
diff --git a/src/opengl/qpaintengine_opengl.cpp b/src/opengl/qpaintengine_opengl.cpp
index 88fd379..77ff9fb 100644
--- a/src/opengl/qpaintengine_opengl.cpp
+++ b/src/opengl/qpaintengine_opengl.cpp
@@ -1924,15 +1924,15 @@ static void drawTrapezoid(const QGLTrapezoid &trap, const qreal offscreenHeight,
qreal leftB = trap.bottomLeftX + (trap.topLeftX - trap.bottomLeftX) * reciprocal;
qreal rightB = trap.bottomRightX + (trap.topRightX - trap.bottomRightX) * reciprocal;
- const bool topZero = qFuzzyCompare(topDist + 1, 1);
+ const bool topZero = qFuzzyIsNull(topDist);
reciprocal = topZero ? 1.0 / bottomDist : 1.0 / topDist;
qreal leftA = topZero ? (trap.bottomLeftX - leftB) * reciprocal : (trap.topLeftX - leftB) * reciprocal;
qreal rightA = topZero ? (trap.bottomRightX - rightB) * reciprocal : (trap.topRightX - rightB) * reciprocal;
- qreal invLeftA = qFuzzyCompare(leftA + 1, 1) ? 0.0 : 1.0 / leftA;
- qreal invRightA = qFuzzyCompare(rightA + 1, 1) ? 0.0 : 1.0 / rightA;
+ qreal invLeftA = qFuzzyIsNull(leftA) ? 0.0 : 1.0 / leftA;
+ qreal invRightA = qFuzzyIsNull(rightA) ? 0.0 : 1.0 / rightA;
// fragment program needs the negative of invRightA as it mirrors the line
glTexCoord4f(topDist, bottomDist, invLeftA, -invRightA);
@@ -3445,8 +3445,7 @@ QVector<QGLTrapezoid> QGLRectMaskGenerator::generateTrapezoids()
// manhattan distance (no rotation)
qreal width = qAbs(delta.x()) + qAbs(delta.y());
- Q_ASSERT(qFuzzyCompare(delta.x() + 1, static_cast<qreal>(1))
- || qFuzzyCompare(delta.y() + 1, static_cast<qreal>(1)));
+ Q_ASSERT(qFuzzyIsNull(delta.x()) || qFuzzyIsNull(delta.y()));
tessellator.tessellateRect(first, last, width);
} else {
@@ -3716,8 +3715,14 @@ void QOpenGLPaintEngine::drawRects(const QRectF *rects, int rectCount)
d->disableClipping();
GLuint program = qt_gl_program_cache()->getProgram(d->drawable.context(),
FRAGMENT_PROGRAM_MASK_TRAPEZOID_AA, 0, true);
- QGLRectMaskGenerator maskGenerator(path, d->matrix, d->offscreen, program);
- d->addItem(qt_mask_texture_cache()->getMask(maskGenerator, d));
+
+ if (d->matrix.type() >= QTransform::TxProject) {
+ QGLPathMaskGenerator maskGenerator(path, d->matrix, d->offscreen, program);
+ d->addItem(qt_mask_texture_cache()->getMask(maskGenerator, d));
+ } else {
+ QGLRectMaskGenerator maskGenerator(path, d->matrix, d->offscreen, program);
+ d->addItem(qt_mask_texture_cache()->getMask(maskGenerator, d));
+ }
d->enableClipping();
}
diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp
index 837ccf2..b41adf9 100644
--- a/src/opengl/qwindowsurface_gl.cpp
+++ b/src/opengl/qwindowsurface_gl.cpp
@@ -86,7 +86,7 @@ QT_BEGIN_NAMESPACE
// QGLGraphicsSystem
//
#ifdef Q_WS_WIN
-Q_GUI_EXPORT bool qt_win_owndc_required;
+extern Q_GUI_EXPORT bool qt_win_owndc_required;
#endif
QGLGraphicsSystem::QGLGraphicsSystem()
: QGraphicsSystem()
diff --git a/src/plugins/gfxdrivers/directfb/directfb.pro b/src/plugins/gfxdrivers/directfb/directfb.pro
index 399044e..67f5d61 100644
--- a/src/plugins/gfxdrivers/directfb/directfb.pro
+++ b/src/plugins/gfxdrivers/directfb/directfb.pro
@@ -3,7 +3,7 @@ include(../../qpluginbase.pri)
QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/gfxdrivers
-# These defines might be necessary if your DirectFB driver doesn't
+# These defines might be necessary if your DirectFB driver doesn't
# support all of the DirectFB API.
#
#DEFINES += QT_NO_DIRECTFB_WM
@@ -13,28 +13,30 @@ QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/gfxdrivers
#DEFINES += QT_NO_DIRECTFB_MOUSE
#DEFINES += QT_NO_DIRECTFB_KEYBOARD
#DEFINES += QT_DIRECTFB_TIMING
+#DEFINES += QT_NO_DIRECTFB_OPAQUE_DETECTION
+#DIRECTFB_DRAWINGOPERATIONS=DRAW_RECTS|DRAW_LINES|DRAW_IMAGE|DRAW_PIXMAP|DRAW_TILED_PIXMAP|STROKE_PATH|DRAW_PATH|DRAW_POINTS|DRAW_ELLIPSE|DRAW_POLYGON|DRAW_TEXT|FILL_PATH|FILL_RECT|DRAW_COLORSPANS
+#DEFINES += \"QT_DIRECTFB_WARN_ON_RASTERFALLBACKS=$$DIRECTFB_DRAWINGOPERATIONS\"
+#DEFINES += \"QT_DIRECTFB_DISABLE_RASTERFALLBACKS=$$DIRECTFB_DRAWINGOPERATIONS\"
target.path = $$[QT_INSTALL_PLUGINS]/gfxdrivers
INSTALLS += target
-HEADERS = \
- qdirectfbscreen.h \
- qdirectfbsurface.h \
- qdirectfbpaintengine.h \
- qdirectfbpaintdevice.h \
- qdirectfbpixmap.h \
- qdirectfbkeyboard.h \
- qdirectfbmouse.h
+HEADERS = qdirectfbscreen.h \
+ qdirectfbsurface.h \
+ qdirectfbpaintengine.h \
+ qdirectfbpaintdevice.h \
+ qdirectfbpixmap.h \
+ qdirectfbkeyboard.h \
+ qdirectfbmouse.h
-SOURCES = \
- qdirectfbscreen.cpp \
- qdirectfbscreenplugin.cpp \
- qdirectfbsurface.cpp \
- qdirectfbpaintengine.cpp \
- qdirectfbpaintdevice.cpp \
- qdirectfbpixmap.cpp \
- qdirectfbkeyboard.cpp \
- qdirectfbmouse.cpp
+SOURCES = qdirectfbscreen.cpp \
+ qdirectfbscreenplugin.cpp \
+ qdirectfbsurface.cpp \
+ qdirectfbpaintengine.cpp \
+ qdirectfbpaintdevice.cpp \
+ qdirectfbpixmap.cpp \
+ qdirectfbkeyboard.cpp \
+ qdirectfbmouse.cpp
QMAKE_CXXFLAGS += $$QT_CFLAGS_DIRECTFB
LIBS += $$QT_LIBS_DIRECTFB
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbkeyboard.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbkeyboard.cpp
index cd19f69..368b9f9 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbkeyboard.cpp
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbkeyboard.cpp
@@ -173,6 +173,22 @@ void QDirectFBKeyboardHandlerPrivate::readKeyboardData()
Qt::KeyboardModifiers modifiers = Qt::NoModifier;
+ // Not implemented:
+ // if (input.modifiers & DIMM_SUPER)
+ // if (input.modifiers & DIMM_HYPER)
+
+ if (!(input.flags & DIEF_KEYSYMBOL) ||
+ !(input.flags & DIEF_KEYID) ||
+ !(input.type & (DIET_KEYPRESS|DIET_KEYRELEASE)))
+ {
+ static bool first = true;
+ if (first) {
+ qWarning("QDirectFBKeyboardHandler - Getting unexpected non-keyboard related events");
+ first = false;
+ }
+ break;
+ }
+
if (input.flags & DIEF_MODIFIERS) {
if (input.modifiers & DIMM_SHIFT)
modifiers |= Qt::ShiftModifier;
@@ -185,31 +201,15 @@ void QDirectFBKeyboardHandlerPrivate::readKeyboardData()
if (input.modifiers & DIMM_META)
modifiers |= Qt::MetaModifier;
}
- // Not implemented:
- // if (input.modifiers & DIMM_SUPER)
- // if (input.modifiers & DIMM_HYPER)
- if ( !(input.flags & DIEF_KEYSYMBOL) ||
- !(input.flags & DIEF_KEYID) ||
- !(input.type & (DIET_KEYPRESS | DIET_KEYRELEASE)) )
- {
- static int warningCount = 0;
- if (!warningCount) {
- qWarning("QDirectFBKeyboardHandler - Getting unexpected non-keyboard related events");
- warningCount = 100;
- }
- else
- warningCount--;
- break;
- }
- bool press = input.type & DIET_KEYPRESS;
+ const bool press = input.type & DIET_KEYPRESS;
DFBInputDeviceKeySymbol symbol = input.key_symbol;
int unicode = -1;
int keycode = 0;
keycode = keymap()->value(symbol);
- if (keycode == 0 && DFB_KEY_TYPE(symbol) == DIKT_UNICODE)
+ if (DFB_KEY_TYPE(symbol) == DIKT_UNICODE)
unicode = symbol;
if (unicode != -1 || keycode != 0) {
@@ -314,6 +314,100 @@ KeyMap::KeyMap()
insert(DIKS_DEAD_SEMIVOICED_SOUND , Qt::Key_Dead_Semivoiced_Sound);
insert(DIKS_DEAD_TILDE , Qt::Key_Dead_Tilde);
insert(DIKS_DEAD_VOICED_SOUND , Qt::Key_Dead_Voiced_Sound);
+ insert(DIKS_SPACE , Qt::Key_Space);
+ insert(DIKS_EXCLAMATION_MARK , Qt::Key_Exclam);
+ insert(DIKS_QUOTATION , Qt::Key_QuoteDbl);
+ insert(DIKS_NUMBER_SIGN , Qt::Key_NumberSign);
+ insert(DIKS_DOLLAR_SIGN , Qt::Key_Dollar);
+ insert(DIKS_PERCENT_SIGN , Qt::Key_Percent);
+ insert(DIKS_AMPERSAND , Qt::Key_Ampersand);
+ insert(DIKS_APOSTROPHE , Qt::Key_Apostrophe);
+ insert(DIKS_PARENTHESIS_LEFT , Qt::Key_ParenLeft);
+ insert(DIKS_PARENTHESIS_RIGHT , Qt::Key_ParenRight);
+ insert(DIKS_ASTERISK , Qt::Key_Asterisk);
+ insert(DIKS_PLUS_SIGN , Qt::Key_Plus);
+ insert(DIKS_COMMA , Qt::Key_Comma);
+ insert(DIKS_MINUS_SIGN , Qt::Key_Minus);
+ insert(DIKS_PERIOD , Qt::Key_Period);
+ insert(DIKS_SLASH , Qt::Key_Slash);
+ insert(DIKS_0 , Qt::Key_0);
+ insert(DIKS_1 , Qt::Key_1);
+ insert(DIKS_2 , Qt::Key_2);
+ insert(DIKS_3 , Qt::Key_3);
+ insert(DIKS_4 , Qt::Key_4);
+ insert(DIKS_5 , Qt::Key_5);
+ insert(DIKS_6 , Qt::Key_6);
+ insert(DIKS_7 , Qt::Key_7);
+ insert(DIKS_8 , Qt::Key_8);
+ insert(DIKS_9 , Qt::Key_9);
+ insert(DIKS_COLON , Qt::Key_Colon);
+ insert(DIKS_SEMICOLON , Qt::Key_Semicolon);
+ insert(DIKS_LESS_THAN_SIGN , Qt::Key_Less);
+ insert(DIKS_EQUALS_SIGN , Qt::Key_Equal);
+ insert(DIKS_GREATER_THAN_SIGN , Qt::Key_Greater);
+ insert(DIKS_QUESTION_MARK , Qt::Key_Question);
+ insert(DIKS_AT , Qt::Key_At);
+ insert(DIKS_CAPITAL_A , Qt::Key_A);
+ insert(DIKS_CAPITAL_B , Qt::Key_B);
+ insert(DIKS_CAPITAL_C , Qt::Key_C);
+ insert(DIKS_CAPITAL_D , Qt::Key_D);
+ insert(DIKS_CAPITAL_E , Qt::Key_E);
+ insert(DIKS_CAPITAL_F , Qt::Key_F);
+ insert(DIKS_CAPITAL_G , Qt::Key_G);
+ insert(DIKS_CAPITAL_H , Qt::Key_H);
+ insert(DIKS_CAPITAL_I , Qt::Key_I);
+ insert(DIKS_CAPITAL_J , Qt::Key_J);
+ insert(DIKS_CAPITAL_K , Qt::Key_K);
+ insert(DIKS_CAPITAL_L , Qt::Key_L);
+ insert(DIKS_CAPITAL_M , Qt::Key_M);
+ insert(DIKS_CAPITAL_N , Qt::Key_N);
+ insert(DIKS_CAPITAL_O , Qt::Key_O);
+ insert(DIKS_CAPITAL_P , Qt::Key_P);
+ insert(DIKS_CAPITAL_Q , Qt::Key_Q);
+ insert(DIKS_CAPITAL_R , Qt::Key_R);
+ insert(DIKS_CAPITAL_S , Qt::Key_S);
+ insert(DIKS_CAPITAL_T , Qt::Key_T);
+ insert(DIKS_CAPITAL_U , Qt::Key_U);
+ insert(DIKS_CAPITAL_V , Qt::Key_V);
+ insert(DIKS_CAPITAL_W , Qt::Key_W);
+ insert(DIKS_CAPITAL_X , Qt::Key_X);
+ insert(DIKS_CAPITAL_Y , Qt::Key_Y);
+ insert(DIKS_CAPITAL_Z , Qt::Key_Z);
+ insert(DIKS_SQUARE_BRACKET_LEFT , Qt::Key_BracketLeft);
+ insert(DIKS_BACKSLASH , Qt::Key_Backslash);
+ insert(DIKS_SQUARE_BRACKET_RIGHT , Qt::Key_BracketRight);
+ insert(DIKS_CIRCUMFLEX_ACCENT , Qt::Key_AsciiCircum);
+ insert(DIKS_UNDERSCORE , Qt::Key_Underscore);
+ insert(DIKS_SMALL_A , Qt::Key_A);
+ insert(DIKS_SMALL_B , Qt::Key_B);
+ insert(DIKS_SMALL_C , Qt::Key_C);
+ insert(DIKS_SMALL_D , Qt::Key_D);
+ insert(DIKS_SMALL_E , Qt::Key_E);
+ insert(DIKS_SMALL_F , Qt::Key_F);
+ insert(DIKS_SMALL_G , Qt::Key_G);
+ insert(DIKS_SMALL_H , Qt::Key_H);
+ insert(DIKS_SMALL_I , Qt::Key_I);
+ insert(DIKS_SMALL_J , Qt::Key_J);
+ insert(DIKS_SMALL_K , Qt::Key_K);
+ insert(DIKS_SMALL_L , Qt::Key_L);
+ insert(DIKS_SMALL_M , Qt::Key_M);
+ insert(DIKS_SMALL_N , Qt::Key_N);
+ insert(DIKS_SMALL_O , Qt::Key_O);
+ insert(DIKS_SMALL_P , Qt::Key_P);
+ insert(DIKS_SMALL_Q , Qt::Key_Q);
+ insert(DIKS_SMALL_R , Qt::Key_R);
+ insert(DIKS_SMALL_S , Qt::Key_S);
+ insert(DIKS_SMALL_T , Qt::Key_T);
+ insert(DIKS_SMALL_U , Qt::Key_U);
+ insert(DIKS_SMALL_V , Qt::Key_V);
+ insert(DIKS_SMALL_W , Qt::Key_W);
+ insert(DIKS_SMALL_X , Qt::Key_X);
+ insert(DIKS_SMALL_Y , Qt::Key_Y);
+ insert(DIKS_SMALL_Z , Qt::Key_Z);
+ insert(DIKS_CURLY_BRACKET_LEFT , Qt::Key_BraceLeft);
+ insert(DIKS_VERTICAL_BAR , Qt::Key_Bar);
+ insert(DIKS_CURLY_BRACKET_RIGHT , Qt::Key_BraceRight);
+ insert(DIKS_TILDE , Qt::Key_AsciiTilde);
}
#include "qdirectfbkeyboard.moc"
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbmouse.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbmouse.cpp
index f4d9b46..b999dd2 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbmouse.cpp
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbmouse.cpp
@@ -56,9 +56,7 @@ public:
QDirectFBMouseHandlerPrivate(QDirectFBMouseHandler *h);
~QDirectFBMouseHandlerPrivate();
- void suspend();
- void resume();
-
+ void setEnabled(bool on);
private:
QDirectFBMouseHandler *handler;
IDirectFBEventBuffer *eventBuffer;
@@ -130,7 +128,7 @@ QDirectFBMouseHandlerPrivate::QDirectFBMouseHandlerPrivate(QDirectFBMouseHandler
mouseNotifier = new QSocketNotifier(fd, QSocketNotifier::Read, this);
connect(mouseNotifier, SIGNAL(activated(int)),this, SLOT(readMouseData()));
- resume();
+ setEnabled(true);
}
QDirectFBMouseHandlerPrivate::~QDirectFBMouseHandlerPrivate()
@@ -139,15 +137,32 @@ QDirectFBMouseHandlerPrivate::~QDirectFBMouseHandlerPrivate()
eventBuffer->Release(eventBuffer);
}
-void QDirectFBMouseHandlerPrivate::suspend()
+void QDirectFBMouseHandlerPrivate::setEnabled(bool on)
{
- mouseNotifier->setEnabled(false);
-}
+ if (mouseNotifier->isEnabled() != on) {
+#ifndef QT_NO_DIRECTFB_LAYER
+ DFBResult result;
+ result = layer->SetCooperativeLevel(layer, DLSCL_ADMINISTRATIVE);
+ if (result != DFB_OK) {
+ DirectFBError("QDirectFBScreenCursor::QDirectFBScreenCursor: "
+ "Unable to set cooperative level", result);
+ }
+ result = layer->EnableCursor(layer, on ? 1 : 0);
+ if (result != DFB_OK) {
+ DirectFBError("QDirectFBScreenCursor::QDirectFBScreenCursor: "
+ "Unable to enable cursor", result);
+ }
-void QDirectFBMouseHandlerPrivate::resume()
-{
- eventBuffer->Reset(eventBuffer);
- mouseNotifier->setEnabled(true);
+ result = layer->SetCooperativeLevel(layer, DLSCL_SHARED);
+ if (result != DFB_OK) {
+ DirectFBError("QDirectFBScreenCursor::show: "
+ "Unable to set cooperative level", result);
+ }
+
+ layer->SetCooperativeLevel(layer, DLSCL_SHARED);
+#endif
+ mouseNotifier->setEnabled(on);
+ }
}
void QDirectFBMouseHandlerPrivate::readMouseData()
@@ -260,12 +275,12 @@ QDirectFBMouseHandler::~QDirectFBMouseHandler()
void QDirectFBMouseHandler::suspend()
{
- d->suspend();
+ d->setEnabled(false);
}
void QDirectFBMouseHandler::resume()
{
- d->resume();
+ d->setEnabled(true);
}
#include "qdirectfbmouse.moc"
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbmouse.h b/src/plugins/gfxdrivers/directfb/qdirectfbmouse.h
index e81a4ba..d2eccfc 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbmouse.h
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbmouse.h
@@ -61,7 +61,6 @@ public:
void suspend();
void resume();
-
protected:
QDirectFBMouseHandlerPrivate *d;
};
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.cpp
index 2a2ef5c..924090c 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.cpp
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.cpp
@@ -56,23 +56,16 @@ IDirectFBSurface *QDirectFBPaintDevice::directFBSurface() const
}
-// Locks the dfb surface and creates a QImage (lockedImage) from the pointer
-void QDirectFBPaintDevice::lockDirectFB() {
-
+void QDirectFBPaintDevice::lockDirectFB()
+{
if (lockedImage)
return; // Already locked
- void *mem;
- int w, h;
- DFBResult result = dfbSurface->Lock(dfbSurface, DSLF_WRITE, &mem, &bpl);
- if (result != DFB_OK || !mem) {
- DirectFBError("QDirectFBPixmapData::buffer()", result);
- return;
+ if (uchar *mem = QDirectFBScreen::lockSurface(dfbSurface, DSLF_WRITE, &bpl)) {
+ const QSize s = size();
+ lockedImage = new QImage(mem, s.width(), s.height(), bpl,
+ QDirectFBScreen::getImageFormat(dfbSurface));
}
-
- dfbSurface->GetSize(dfbSurface, &w, &h);
- lockedImage = new QImage(static_cast<uchar*>(mem), w, h, bpl,
- QDirectFBScreen::getImageFormat(dfbSurface));
}
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp
index a93bbf7..14d2146 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp
@@ -54,6 +54,98 @@
#include <private/qpixmapdata_p.h>
#include <private/qpixmap_raster_p.h>
+#if defined QT_DIRECTFB_WARN_ON_RASTERFALLBACKS || defined QT_DIRECTFB_DISABLE_RASTERFALLBACKS
+#define VOID_ARG() static_cast<bool>(false)
+enum PaintOperation {
+ DRAW_RECTS = 0x0001,
+ DRAW_LINES = 0x0002,
+ DRAW_IMAGE = 0x0004,
+ DRAW_PIXMAP = 0x0008,
+ DRAW_TILED_PIXMAP = 0x0010,
+ STROKE_PATH = 0x0020,
+ DRAW_PATH = 0x0040,
+ DRAW_POINTS = 0x0080,
+ DRAW_ELLIPSE = 0x0100,
+ DRAW_POLYGON = 0x0200,
+ DRAW_TEXT = 0x0400,
+ FILL_PATH = 0x0800,
+ FILL_RECT = 0x1000,
+ DRAW_COLORSPANS = 0x2000,
+ ALL = 0xffff
+};
+#endif
+
+#ifdef QT_DIRECTFB_WARN_ON_RASTERFALLBACKS
+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>
+static void rasterFallbackWarn(const char *msg, const char *func, const device *dev,
+ bool matrixScale, bool matrixRotShear, bool simplePen,
+ bool dfbHandledClip, bool forceRasterPrimitives,
+ const char *nameOne, const T1 &one,
+ const char *nameTwo, const T2 &two,
+ const char *nameThree, const T3 &three)
+{
+ QString out;
+ QDebug dbg(&out);
+ dbg << msg << (QByteArray(func) + "()") << "painting on";
+ if (dev->devType() == QInternal::Widget) {
+ dbg << static_cast<const QWidget*>(dev);
+ } else {
+ dbg << dev << "of type" << dev->devType();
+ }
+
+ dbg << "matrixScale" << matrixScale
+ << "matrixRotShear" << matrixRotShear
+ << "simplePen" << simplePen
+ << "dfbHandledClip" << dfbHandledClip
+ << "forceRasterPrimitives" << forceRasterPrimitives;
+
+ const T1 *t1 = ptr(one);
+ const T2 *t2 = ptr(two);
+ const T3 *t3 = ptr(three);
+
+ if (t1) {
+ dbg << nameOne << *t1;
+ if (t2) {
+ dbg << nameTwo << *t2;
+ if (t3) {
+ dbg << nameThree << *t3;
+ }
+ }
+ }
+ qWarning("%s", qPrintable(out));
+}
+#endif
+
+#if defined QT_DIRECTFB_WARN_ON_RASTERFALLBACKS && defined QT_DIRECTFB_DISABLE_RASTERFALLBACKS
+#define RASTERFALLBACK(op, one, two, three) \
+ if (op & (QT_DIRECTFB_WARN_ON_RASTERFALLBACKS)) \
+ rasterFallbackWarn("Disabled raster engine operation", \
+ __FUNCTION__, state()->painter->device(), \
+ d_func()->matrixScale, d_func()->matrixRotShear, \
+ d_func()->simplePen, d_func()->dfbCanHandleClip(), \
+ d_func()->forceRasterPrimitives, \
+ #one, one, #two, two, #three, three); \
+ if (op & (QT_DIRECTFB_DISABLE_RASTERFALLBACKS)) \
+ return;
+#elif defined QT_DIRECTFB_DISABLE_RASTERFALLBACKS
+#define RASTERFALLBACK(op, one, two, three) \
+ if (op & (QT_DIRECTFB_DISABLE_RASTERFALLBACKS)) \
+ return;
+#elif defined QT_DIRECTFB_WARN_ON_RASTERFALLBACKS
+#define RASTERFALLBACK(op, one, two, three) \
+ if (op & (QT_DIRECTFB_WARN_ON_RASTERFALLBACKS)) \
+ rasterFallbackWarn("Falling back to raster engine for", \
+ __FUNCTION__, state()->painter->device(), \
+ d_func()->matrixScale, d_func()->matrixRotShear, \
+ d_func()->simplePen, d_func()->dfbCanHandleClip(), \
+ d_func()->forceRasterPrimitives, \
+ #one, one, #two, two, #three, three);
+#else
+#define RASTERFALLBACK(op, one, two, three)
+#endif
+
static inline uint ALPHA_MUL(uint x, uint a)
{
uint t = x * a;
@@ -97,11 +189,10 @@ CachedImage::CachedImage(const QImage &image)
: s(0)
{
IDirectFBSurface *tmpSurface = 0;
- DFBSurfaceDescription description;
- description = QDirectFBScreen::getSurfaceDescription(image);
+ DFBSurfaceDescription description = QDirectFBScreen::getSurfaceDescription(image);
QDirectFBScreen* screen = QDirectFBScreen::instance();
- tmpSurface = screen->createDFBSurface(&description, QDirectFBScreen::TrackSurface);
+ tmpSurface = screen->createDFBSurface(description, QDirectFBScreen::TrackSurface);
if (!tmpSurface) {
qWarning("CachedImage CreateSurface failed!");
return;
@@ -113,7 +204,7 @@ CachedImage::CachedImage(const QImage &image)
description.flags = DFBSurfaceDescriptionFlags(description.flags & ~DSDESC_PREALLOCATED);
- s = screen->createDFBSurface(&description, QDirectFBScreen::TrackSurface);
+ s = screen->createDFBSurface(description, QDirectFBScreen::TrackSurface);
if (!s)
qWarning("QDirectFBPaintEngine failed caching image");
@@ -145,10 +236,8 @@ IDirectFBSurface* SurfaceCache::getSurface(const uint *buf, int size)
clear();
- DFBSurfaceDescription description;
- description = QDirectFBScreen::getSurfaceDescription(buf, size);
-
- surface = QDirectFBScreen::instance()->createDFBSurface(&description, QDirectFBScreen::TrackSurface);
+ const DFBSurfaceDescription description = QDirectFBScreen::getSurfaceDescription(buf, size);
+ surface = QDirectFBScreen::instance()->createDFBSurface(description, QDirectFBScreen::TrackSurface);
if (!surface)
qWarning("QDirectFBPaintEngine: SurfaceCache: Unable to create surface");
@@ -181,25 +270,22 @@ public:
IDirectFBSurface *surface;
QPen pen;
- QBrush brush;
bool antialiased;
bool forceRasterPrimitives;
bool simplePen;
- bool simpleBrush;
bool matrixRotShear;
bool matrixScale;
void setTransform(const QTransform &m);
void setPen(const QPen &pen);
- void setBrush(const QBrush &brush);
void setCompositionMode(QPainter::CompositionMode mode);
- void setOpacity(const qreal value);
+ void setOpacity(quint8 value);
void setRenderHints(QPainter::RenderHints hints);
- inline void setDFBColor(const QColor &color) const;
+ inline void setDFBColor(const QColor &color);
inline void lock();
inline void unlock();
@@ -207,36 +293,35 @@ public:
inline bool dfbCanHandleClip(const QRect &rect) const;
inline bool dfbCanHandleClip(const QRectF &rect) const;
inline bool dfbCanHandleClip() const;
+ inline bool isSimpleBrush(const QBrush &brush) const;
+
+ void drawLines(const QLine *lines, int count);
+ void drawLines(const QLineF *lines, int count);
- void drawLines(const QLine *lines, int count) const;
- void drawLines(const QLineF *lines, int count) const;
+ void fillRegion(const QRegion &r);
+ void fillRects(const QRect *rects, int count);
+ void drawRects(const QRect *rects, int count);
+ void fillRects(const QRectF *rects, int count);
+ void drawRects(const QRectF *rects, int count);
- void fillRegion(const QRegion &r) const;
- void fillRects(const QRect *rects, int count) const;
- void drawRects(const QRect *rects, int count) const;
- void fillRects(const QRectF *rects, int count) const;
- void drawRects(const QRectF *rects, int count) const;
void drawPixmap(const QRectF &dest,
const QPixmap &pixmap, const QRectF &src);
void drawTiledPixmap(const QRectF &dest, const QPixmap &pixmap);
void drawImage(const QRectF &dest, const QImage &image, const QRectF &src);
- void updateClip();
- void updateFlags();
+ inline void updateClip();
inline void setClipDirty();
- void systemStateChanged(); //Needed to be notified when system clip changes
+ void systemStateChanged();
void begin(QPaintDevice *device);
void end();
+ void prepareForBlit(bool alpha);
SurfaceCache *surfaceCache;
QTransform transform;
int lastLockedHeight;
private:
-// QRegion rectsToClippedRegion(const QRect *rects, int n) const;
-// QRegion rectsToClippedRegion(const QRectF *rects, int n) const;
-
IDirectFB *fb;
DFBSurfaceDescription fbDescription;
int fbWidth;
@@ -244,12 +329,12 @@ private:
quint8 opacity;
- quint32 drawFlags;
- quint32 blitFlags;
- quint32 duffFlags;
- bool dirtyFlags;
+ quint32 drawFlagsFromCompositionMode, blitFlagsFromCompositionMode;
+ DFBSurfacePorterDuffRule porterDuffRule;
+
bool dirtyClip;
bool dfbHandledClip;
+ bool ignoreSystemClip;
QDirectFBPaintDevice *dfbDevice;
QDirectFBPaintEngine *q;
@@ -257,11 +342,13 @@ private:
QDirectFBPaintEnginePrivate::QDirectFBPaintEnginePrivate(QDirectFBPaintEngine *p)
: surface(0), antialiased(false), forceRasterPrimitives(false), simplePen(false),
- simpleBrush(false), matrixRotShear(false), matrixScale(false), lastLockedHeight(-1),
- fbWidth(-1), fbHeight(-1), opacity(255), drawFlags(0), blitFlags(0), duffFlags(0),
- dirtyFlags(false), dirtyClip(true), dfbHandledClip(false), dfbDevice(0), q(p)
+ matrixRotShear(false), matrixScale(false), lastLockedHeight(-1),
+ fbWidth(-1), fbHeight(-1), opacity(255), drawFlagsFromCompositionMode(0),
+ blitFlagsFromCompositionMode(0), porterDuffRule(DSPD_SRC_OVER), dirtyClip(true),
+ dfbHandledClip(false), dfbDevice(0), q(p)
{
fb = QDirectFBScreen::instance()->dfb();
+ ignoreSystemClip = QDirectFBScreen::instance()->directFBFlags() & QDirectFBScreen::IgnoreSystemClip;
surfaceCache = new SurfaceCache;
static int cacheLimit = qgetenv("QT_DIRECTFB_IMAGECACHE").toInt();
if (cacheLimit > 0)
@@ -290,12 +377,16 @@ bool QDirectFBPaintEnginePrivate::dfbCanHandleClip() const
return dfbHandledClip;
}
+bool QDirectFBPaintEnginePrivate::isSimpleBrush(const QBrush &brush) const
+{
+ return (brush.style() == Qt::NoBrush) || (brush.style() == Qt::SolidPattern && !antialiased);
+}
+
void QDirectFBPaintEnginePrivate::setClipDirty()
{
dirtyClip = true;
}
-
void QDirectFBPaintEnginePrivate::lock()
{
// We will potentially get a new pointer to the buffer after a
@@ -345,11 +436,8 @@ void QDirectFBPaintEnginePrivate::begin(QPaintDevice *device)
setTransform(QTransform());
antialiased = false;
- drawFlags = DSDRAW_BLEND;
- blitFlags = DSBLIT_BLEND_ALPHACHANNEL;
- duffFlags = DSPD_SRC_OVER;
opacity = 255;
- dirtyFlags = true;
+ setCompositionMode(q->state()->compositionMode());
dirtyClip = true;
setPen(q->state()->pen);
setDFBColor(pen.color());
@@ -373,100 +461,74 @@ void QDirectFBPaintEnginePrivate::setPen(const QPen &p)
&& (pen.widthF() <= 1 && !matrixScale));
}
-void QDirectFBPaintEnginePrivate::setBrush(const QBrush &b)
-{
- brush = b;
- simpleBrush = (brush.style() == Qt::NoBrush) ||
- (brush.style() == Qt::SolidPattern && !antialiased);
-}
-
void QDirectFBPaintEnginePrivate::setCompositionMode(QPainter::CompositionMode mode)
{
- drawFlags &= ~(DSDRAW_XOR);
- blitFlags &= ~(DSBLIT_XOR);
-
- // TODO: check these mappings!!!!
- quint32 duff = DSPD_NONE;
- quint32 blit = blitFlags;
+ blitFlagsFromCompositionMode = DSBLIT_NOFX;
+ drawFlagsFromCompositionMode = DSDRAW_NOFX;
+ bool blend = true;
switch (mode) {
case QPainter::CompositionMode_SourceOver:
- duff = DSPD_SRC_OVER;
- blit |= DSBLIT_BLEND_ALPHACHANNEL;
+ porterDuffRule = DSPD_SRC_OVER;
break;
case QPainter::CompositionMode_DestinationOver:
- duff = DSPD_DST_OVER;
- blit |= DSBLIT_BLEND_ALPHACHANNEL;
+ porterDuffRule = DSPD_DST_OVER;
break;
case QPainter::CompositionMode_Clear:
- duff = DSPD_CLEAR;
- blit &= ~DSBLIT_BLEND_ALPHACHANNEL;
+ porterDuffRule = DSPD_CLEAR;
+ blend = false;
break;
case QPainter::CompositionMode_Source:
- duff = DSPD_SRC;
- blit &= ~DSBLIT_BLEND_ALPHACHANNEL;
+ porterDuffRule = DSPD_SRC;
+ blend = false;
break;
case QPainter::CompositionMode_Destination:
- blit &= ~DSBLIT_BLEND_ALPHACHANNEL;
+ porterDuffRule = DSPD_NONE; // ### need to double check this
+ blend = false;
return;
case QPainter::CompositionMode_SourceIn:
- duff = DSPD_SRC_IN;
- blit |= DSBLIT_BLEND_ALPHACHANNEL;
+ porterDuffRule = DSPD_SRC_IN;
break;
case QPainter::CompositionMode_DestinationIn:
- duff = DSPD_DST_IN;
- blit |= DSBLIT_BLEND_ALPHACHANNEL;
+ porterDuffRule = DSPD_DST_IN;
break;
case QPainter::CompositionMode_SourceOut:
- duff = DSPD_SRC_OUT;
- blit |= DSBLIT_BLEND_ALPHACHANNEL;
+ porterDuffRule = DSPD_SRC_OUT;
break;
case QPainter::CompositionMode_DestinationOut:
- duff = DSPD_DST_OUT;
- blit |= DSBLIT_BLEND_ALPHACHANNEL;
- break;
- case QPainter::CompositionMode_SourceAtop:
- duff = DSPD_SRC_OVER;
- blit |= DSBLIT_BLEND_ALPHACHANNEL;
- break;
- case QPainter::CompositionMode_DestinationAtop:
- duff = DSPD_DST_OVER;
+ porterDuffRule = DSPD_DST_OUT;
break;
case QPainter::CompositionMode_Xor:
- duff = DSPD_NONE;
- blit |= DSBLIT_BLEND_ALPHACHANNEL;
- drawFlags |= DSDRAW_XOR;
- blit |= DSBLIT_XOR;
- dirtyFlags = true;
+ porterDuffRule = DSPD_XOR;
+ blitFlagsFromCompositionMode |= DSBLIT_XOR;
+ drawFlagsFromCompositionMode |= DSDRAW_XOR;
break;
+// case QPainter::CompositionMode_Plus: // ???
+// porterDuffRule = DSPD_ADD;
+// break;
default:
qWarning("QDirectFBPaintEnginePrivate::setCompositionMode(): "
"mode %d not implemented", mode);
- break;
+ return;
}
-
- if (duff != duffFlags || blit != blitFlags) {
- duffFlags = duff;
- blitFlags = blit;
- dirtyFlags = true;
+ // intentially not comparing with current porterDuffRule. surface might have changed.
+ if (blend) {
+ blitFlagsFromCompositionMode |= DSBLIT_BLEND_ALPHACHANNEL;
+ drawFlagsFromCompositionMode |= DSDRAW_BLEND;
+ }
+ if (opacity != 255) {
+ setOpacity(opacity);
}
}
-void QDirectFBPaintEnginePrivate::setOpacity(const qreal value)
+void QDirectFBPaintEnginePrivate::setOpacity(quint8 op)
{
- const bool wasOpaque = (opacity == 255);
- opacity = quint8(value * 255);
- const bool opaque = (opacity == 255);
-
- if (opaque == wasOpaque)
- return;
-
- if (opaque)
- blitFlags &= ~(DSBLIT_BLEND_COLORALPHA | DSBLIT_SRC_PREMULTCOLOR);
- else
- blitFlags |= (DSBLIT_BLEND_COLORALPHA | DSBLIT_SRC_PREMULTCOLOR);
-
- dirtyFlags = true;
+ opacity = op;
+ if (opacity == 255) {
+ blitFlagsFromCompositionMode &= ~DSBLIT_BLEND_COLORALPHA;
+ } else {
+ blitFlagsFromCompositionMode |= DSBLIT_BLEND_COLORALPHA;
+ }
}
void QDirectFBPaintEnginePrivate::setRenderHints(QPainter::RenderHints hints)
@@ -478,90 +540,64 @@ void QDirectFBPaintEnginePrivate::setRenderHints(QPainter::RenderHints hints)
}
}
-void QDirectFBPaintEnginePrivate::updateFlags()
+void QDirectFBPaintEnginePrivate::prepareForBlit(bool alpha)
{
- if (!dirtyFlags)
- return;
- surface->SetDrawingFlags(surface, DFBSurfaceDrawingFlags(drawFlags));
- surface->SetBlittingFlags(surface, DFBSurfaceBlittingFlags(blitFlags));
- surface->SetPorterDuff(surface, DFBSurfacePorterDuffRule(duffFlags));
- dirtyFlags = false;
+ quint32 blittingFlags = blitFlagsFromCompositionMode;
+ if (alpha) {
+ surface->SetPorterDuff(surface,
+ (blittingFlags & DSBLIT_BLEND_COLORALPHA)
+ ? DSPD_NONE
+ : porterDuffRule);
+ } else {
+ blittingFlags &= ~DSBLIT_BLEND_ALPHACHANNEL;
+ surface->SetPorterDuff(surface, DSPD_NONE);
+ }
+ surface->SetColor(surface, 0xff, 0xff, 0xff, opacity);
+ surface->SetBlittingFlags(surface, DFBSurfaceBlittingFlags(blittingFlags));
}
-void QDirectFBPaintEnginePrivate::setDFBColor(const QColor &color) const
+void QDirectFBPaintEnginePrivate::setDFBColor(const QColor &color)
{
+ Q_ASSERT(surface);
const quint8 alpha = (opacity == 255 ?
color.alpha() : ALPHA_MUL(color.alpha(), opacity));
surface->SetColor(surface,
color.red(), color.green(), color.blue(), alpha);
+ quint32 drawingFlags = drawFlagsFromCompositionMode;
+ if (alpha == 255) {
+ drawingFlags &= ~DSDRAW_BLEND;
+ }
+ surface->SetPorterDuff(surface, DSPD_NONE);
+ // PorterDuff messes up alpha values for primitives
+ surface->SetDrawingFlags(surface, DFBSurfaceDrawingFlags(drawingFlags));
}
-void QDirectFBPaintEnginePrivate::drawLines(const QLine *lines, int n) const
+void QDirectFBPaintEnginePrivate::drawLines(const QLine *lines, int n)
{
- QVarLengthArray<DFBRegion> regions(n);
-
for (int i = 0; i < n; ++i) {
const QLine l = transform.map(lines[i]);
-
- regions[i].x1 = l.x1();
- regions[i].y1 = l.y1();
- regions[i].x2 = l.x2();
- regions[i].y2 = l.y2();
+ surface->DrawLine(surface, l.x1(), l.y1(), l.x2(), l.y2());
}
- surface->DrawLines(surface, regions.data(), n);
}
-void QDirectFBPaintEnginePrivate::drawLines(const QLineF *lines, int n) const
+void QDirectFBPaintEnginePrivate::drawLines(const QLineF *lines, int n)
{
- QVarLengthArray<DFBRegion> regions(n);
-
for (int i = 0; i < n; ++i) {
const QLine l = transform.map(lines[i]).toLine();
-
- regions[i].x1 = l.x1();
- regions[i].y1 = l.y1();
- regions[i].x2 = l.x2();
- regions[i].y2 = l.y2();
+ surface->DrawLine(surface, l.x1(), l.y1(), l.x2(), l.y2());
}
- surface->DrawLines(surface, regions.data(), n);
}
-/* ### Commented out until it can be implemented properly using raster's QClipData
-QRegion QDirectFBPaintEnginePrivate::rectsToClippedRegion(const QRect *rects,
- int n) const
-{
- QRegion region;
-
- for (int i = 0; i < n; ++i) {
- const QRect r = transform.mapRect(rects[i]);
- region += clip & r;
- }
-
- return region;
-}
-
-QRegion QDirectFBPaintEnginePrivate::rectsToClippedRegion(const QRectF *rects,
- int n) const
-{
- QRegion region;
-
- for (int i = 0; i < n; ++i) {
- const QRect r = transform.mapRect(rects[i]).toRect();
- region += clip & r;
- }
-
- return region;
-}
-*/
-
-void QDirectFBPaintEnginePrivate::fillRegion(const QRegion &region) const
+void QDirectFBPaintEnginePrivate::fillRegion(const QRegion &region)
{
+ Q_ASSERT(isSimpleBrush(q->state()->brush));
+ setDFBColor(q->state()->brush.color());
const QVector<QRect> rects = region.rects();
const int n = rects.size();
fillRects(rects.constData(), n);
}
-void QDirectFBPaintEnginePrivate::fillRects(const QRect *rects, int n) const
+void QDirectFBPaintEnginePrivate::fillRects(const QRect *rects, int n)
{
for (int i = 0; i < n; ++i) {
const QRect r = transform.mapRect(rects[i]);
@@ -570,7 +606,7 @@ void QDirectFBPaintEnginePrivate::fillRects(const QRect *rects, int n) const
}
}
-void QDirectFBPaintEnginePrivate::fillRects(const QRectF *rects, int n) const
+void QDirectFBPaintEnginePrivate::fillRects(const QRectF *rects, int n)
{
for (int i = 0; i < n; ++i) {
const QRect r = transform.mapRect(rects[i]).toRect();
@@ -579,7 +615,7 @@ void QDirectFBPaintEnginePrivate::fillRects(const QRectF *rects, int n) const
}
}
-void QDirectFBPaintEnginePrivate::drawRects(const QRect *rects, int n) const
+void QDirectFBPaintEnginePrivate::drawRects(const QRect *rects, int n)
{
for (int i = 0; i < n; ++i) {
const QRect r = transform.mapRect(rects[i]);
@@ -588,7 +624,7 @@ void QDirectFBPaintEnginePrivate::drawRects(const QRect *rects, int n) const
}
}
-void QDirectFBPaintEnginePrivate::drawRects(const QRectF *rects, int n) const
+void QDirectFBPaintEnginePrivate::drawRects(const QRectF *rects, int n)
{
for (int i = 0; i < n; ++i) {
const QRect r = transform.mapRect(rects[i]).toRect();
@@ -601,15 +637,7 @@ void QDirectFBPaintEnginePrivate::drawPixmap(const QRectF &dest,
const QPixmap &pixmap,
const QRectF &src)
{
- surface->SetColor(surface, 0xff, 0xff, 0xff, opacity);
-
- const bool changeFlags = !pixmap.hasAlphaChannel()
- && (blitFlags & DSBLIT_BLEND_ALPHACHANNEL);
- if (changeFlags) {
- quint32 flags = blitFlags & ~DSBLIT_BLEND_ALPHACHANNEL;
- surface->SetBlittingFlags(surface, DFBSurfaceBlittingFlags(flags));
- }
-
+ prepareForBlit(pixmap.hasAlphaChannel());
QPixmapData *data = pixmap.pixmapData();
Q_ASSERT(data->classId() == QPixmapData::DirectFBClass);
QDirectFBPixmapData *dfbData = static_cast<QDirectFBPixmapData*>(data);
@@ -627,22 +655,12 @@ void QDirectFBPaintEnginePrivate::drawPixmap(const QRectF &dest,
}
if (result != DFB_OK)
DirectFBError("QDirectFBPaintEngine::drawPixmap()", result);
- if (changeFlags)
- surface->SetBlittingFlags(surface, DFBSurfaceBlittingFlags(blitFlags));
}
void QDirectFBPaintEnginePrivate::drawTiledPixmap(const QRectF &dest,
const QPixmap &pixmap)
{
- surface->SetColor(surface, 0xff, 0xff, 0xff, opacity);
-
- const bool changeFlags = !pixmap.hasAlphaChannel()
- && (blitFlags & DSBLIT_BLEND_ALPHACHANNEL);
- if (changeFlags) {
- quint32 flags = blitFlags & ~DSBLIT_BLEND_ALPHACHANNEL;
- surface->SetBlittingFlags(surface, DFBSurfaceBlittingFlags(flags));
- }
-
+ prepareForBlit(pixmap.hasAlphaChannel());
QPixmapData *data = pixmap.pixmapData();
Q_ASSERT(data->classId() == QPixmapData::DirectFBClass);
QDirectFBPixmapData *dfbData = static_cast<QDirectFBPixmapData*>(data);
@@ -688,22 +706,13 @@ void QDirectFBPaintEnginePrivate::drawTiledPixmap(const QRectF &dest,
if (result != DFB_OK)
DirectFBError("QDirectFBPaintEngine::drawTiledPixmap()", result);
-
- if (changeFlags)
- surface->SetBlittingFlags(surface, DFBSurfaceBlittingFlags(blitFlags));
}
void QDirectFBPaintEnginePrivate::drawImage(const QRectF &dest,
- const QImage &srcImage,
+ const QImage &image,
const QRectF &src)
{
- QImage image = srcImage;
- if (QDirectFBScreen::getSurfacePixelFormat(image.format()) == DSPF_UNKNOWN) {
- image = image.convertToFormat(image.hasAlphaChannel()
- ? QDirectFBScreen::instance()->alphaPixmapFormat()
- : QDirectFBScreen::instance()->pixelFormat());
- }
-
+ Q_ASSERT(QDirectFBScreen::getSurfacePixelFormat(image.format()) != DSPF_UNKNOWN);
CachedImage *img = imageCache[image.cacheKey()];
IDirectFBSurface *imgSurface = 0;
bool doRelease = false;
@@ -724,10 +733,8 @@ void QDirectFBPaintEnginePrivate::drawImage(const QRectF &dest,
}
if (!imgSurface) {
- DFBSurfaceDescription description;
-
- description = QDirectFBScreen::getSurfaceDescription(image);
- imgSurface = QDirectFBScreen::instance()->createDFBSurface(&description,
+ DFBSurfaceDescription description = QDirectFBScreen::getSurfaceDescription(image);
+ imgSurface = QDirectFBScreen::instance()->createDFBSurface(description,
QDirectFBScreen::DontTrackSurface);
if (!imgSurface) {
qWarning("QDirectFBPaintEnginePrivate::drawImage");
@@ -745,14 +752,7 @@ void QDirectFBPaintEnginePrivate::drawImage(const QRectF &dest,
const QRect dr = transform.mapRect(dest).toRect();
const DFBRectangle sRect = { sr.x(), sr.y(), sr.width(), sr.height() };
- surface->SetColor(surface, 0xff, 0xff, 0xff, opacity);
-
- const bool changeFlags = !image.hasAlphaChannel()
- && (blitFlags & DSBLIT_BLEND_ALPHACHANNEL);
- if (changeFlags) {
- quint32 flags = blitFlags & ~DSBLIT_BLEND_ALPHACHANNEL;
- surface->SetBlittingFlags(surface, DFBSurfaceBlittingFlags(flags));
- }
+ prepareForBlit(image.hasAlphaChannel());
if (dr.size() == sr.size()) {
surface->Blit(surface, imgSurface, &sRect, dr.x(), dr.y());
} else {
@@ -760,8 +760,6 @@ void QDirectFBPaintEnginePrivate::drawImage(const QRectF &dest,
dr.width(), dr.height() };
surface->StretchBlit(surface, imgSurface, &sRect, &dRect);
}
- if (changeFlags)
- surface->SetBlittingFlags(surface, DFBSurfaceBlittingFlags(blitFlags));
if (doRelease) {
surface->ReleaseSource(surface);
imgSurface->Release(imgSurface);
@@ -773,23 +771,24 @@ void QDirectFBPaintEnginePrivate::updateClip()
if (!dirtyClip)
return;
- if (!clip() || !clip()->enabled) {
+ const QClipData *clipData = clip();
+ if (!clipData || !clipData->enabled) {
surface->SetClip(surface, NULL);
dfbHandledClip = true;
- }
- else if (clip()->hasRectClip) {
+ } else if (clipData->hasRectClip) {
const DFBRegion r = {
- clip()->clipRect.x(),
- clip()->clipRect.y(),
- clip()->clipRect.x() + clip()->clipRect.width(),
- clip()->clipRect.y() + clip()->clipRect.height()
+ clipData->clipRect.x(),
+ clipData->clipRect.y(),
+ clipData->clipRect.x() + clipData->clipRect.width(),
+ clipData->clipRect.y() + clipData->clipRect.height()
};
surface->SetClip(surface, &r);
-
dfbHandledClip = true;
- }
- else
+ } else if (clipData->hasRegionClip && ignoreSystemClip && clipData->clipRegion == systemClip) {
+ dfbHandledClip = true;
+ } else {
dfbHandledClip = false;
+ }
dirtyClip = false;
}
@@ -845,19 +844,10 @@ void QDirectFBPaintEngine::penChanged()
QRasterPaintEngine::penChanged();
}
-void QDirectFBPaintEngine::brushChanged()
-{
- Q_D(QDirectFBPaintEngine);
- d->setBrush(state()->brush);
-
- QRasterPaintEngine::brushChanged();
-}
-
void QDirectFBPaintEngine::opacityChanged()
{
Q_D(QDirectFBPaintEngine);
- d->setOpacity(state()->opacity);
-
+ d->setOpacity(quint8(state()->opacity * 255));
QRasterPaintEngine::opacityChanged();
}
@@ -865,7 +855,6 @@ void QDirectFBPaintEngine::compositionModeChanged()
{
Q_D(QDirectFBPaintEngine);
d->setCompositionMode(state()->compositionMode());
-
QRasterPaintEngine::compositionModeChanged();
}
@@ -893,8 +882,7 @@ void QDirectFBPaintEngine::setState(QPainterState *s)
QRasterPaintEngine::setState(s);
d->setClipDirty();
d->setPen(state()->pen);
- d->setBrush(state()->brush);
- d->setOpacity(state()->opacity);
+ d->setOpacity(quint8(state()->opacity * 255));
d->setCompositionMode(state()->compositionMode());
d->setTransform(state()->transform());
}
@@ -913,7 +901,7 @@ void QDirectFBPaintEngine::clip(const QRect &rect, Qt::ClipOperation op)
{
Q_D(QDirectFBPaintEngine);
d->setClipDirty();
- if (!d->clip()->hasRectClip && d->clip()->enabled) {
+ if (d->clip() && !d->clip()->hasRectClip && d->clip()->enabled) {
const QPoint bottom = d->transform.map(QPoint(0, rect.bottom()));
if (bottom.y() >= d->lastLockedHeight)
d->lock();
@@ -926,8 +914,11 @@ void QDirectFBPaintEngine::drawRects(const QRect *rects, int rectCount)
{
Q_D(QDirectFBPaintEngine);
d->updateClip();
- if (!d->dfbCanHandleClip() || d->matrixRotShear || !d->simpleBrush
- || !d->simplePen || d->forceRasterPrimitives) {
+ const QBrush &brush = state()->brush;
+ if (!d->dfbCanHandleClip() || d->matrixRotShear
+ || !d->simplePen || d->forceRasterPrimitives
+ || !d->isSimpleBrush(brush)) {
+ RASTERFALLBACK(DRAW_RECTS, rectCount, VOID_ARG(), VOID_ARG());
d->lock();
QRasterPaintEngine::drawRects(rects, rectCount);
return;
@@ -935,13 +926,11 @@ void QDirectFBPaintEngine::drawRects(const QRect *rects, int rectCount)
d->unlock();
- if (d->brush != Qt::NoBrush) {
- d->updateFlags();
- d->setDFBColor(d->brush.color());
+ if (brush != Qt::NoBrush) {
+ d->setDFBColor(brush.color());
d->fillRects(rects, rectCount);
}
if (d->pen != Qt::NoPen) {
- d->updateFlags();
d->setDFBColor(d->pen.color());
d->drawRects(rects, rectCount);
}
@@ -951,8 +940,11 @@ void QDirectFBPaintEngine::drawRects(const QRectF *rects, int rectCount)
{
Q_D(QDirectFBPaintEngine);
d->updateClip();
- if (!d->dfbCanHandleClip() || d->matrixRotShear || !d->simpleBrush
- || !d->simplePen || d->forceRasterPrimitives) {
+ const QBrush &brush = state()->brush;
+ if (!d->dfbCanHandleClip() || d->matrixRotShear
+ || !d->simplePen || d->forceRasterPrimitives
+ || !d->isSimpleBrush(brush)) {
+ RASTERFALLBACK(DRAW_RECTS, rectCount, VOID_ARG(), VOID_ARG());
d->lock();
QRasterPaintEngine::drawRects(rects, rectCount);
return;
@@ -960,13 +952,11 @@ void QDirectFBPaintEngine::drawRects(const QRectF *rects, int rectCount)
d->unlock();
- if (d->brush != Qt::NoBrush) {
- d->updateFlags();
- d->setDFBColor(d->brush.color());
+ if (brush != Qt::NoBrush) {
+ d->setDFBColor(brush.color());
d->fillRects(rects, rectCount);
}
if (d->pen != Qt::NoPen) {
- d->updateFlags();
d->setDFBColor(d->pen.color());
d->drawRects(rects, rectCount);
}
@@ -977,6 +967,7 @@ void QDirectFBPaintEngine::drawLines(const QLine *lines, int lineCount)
Q_D(QDirectFBPaintEngine);
d->updateClip();
if (!d->simplePen || !d->dfbCanHandleClip() || d->forceRasterPrimitives) {
+ RASTERFALLBACK(DRAW_LINES, lineCount, VOID_ARG(), VOID_ARG());
d->lock();
QRasterPaintEngine::drawLines(lines, lineCount);
return;
@@ -984,7 +975,6 @@ void QDirectFBPaintEngine::drawLines(const QLine *lines, int lineCount)
if (d->pen != Qt::NoPen) {
d->unlock();
- d->updateFlags();
d->setDFBColor(d->pen.color());
d->drawLines(lines, lineCount);
}
@@ -995,6 +985,7 @@ void QDirectFBPaintEngine::drawLines(const QLineF *lines, int lineCount)
Q_D(QDirectFBPaintEngine);
d->updateClip();
if (!d->simplePen || !d->dfbCanHandleClip() || d->forceRasterPrimitives) {
+ RASTERFALLBACK(DRAW_LINES, lineCount, VOID_ARG(), VOID_ARG());
d->lock();
QRasterPaintEngine::drawLines(lines, lineCount);
return;
@@ -1002,7 +993,6 @@ void QDirectFBPaintEngine::drawLines(const QLineF *lines, int lineCount)
if (d->pen != Qt::NoPen) {
d->unlock();
- d->updateFlags();
d->setDFBColor(d->pen.color());
d->drawLines(lines, lineCount);
}
@@ -1017,9 +1007,11 @@ void QDirectFBPaintEngine::drawImage(const QRectF &r, const QImage &image,
#ifndef QT_NO_DIRECTFB_PREALLOCATED
d->updateClip();
- if (!d->dfbCanHandleClip(r) || d->matrixRotShear)
+ if (!d->dfbCanHandleClip(r) || d->matrixRotShear
+ || QDirectFBScreen::getSurfacePixelFormat(image.format()) == DSPF_UNKNOWN)
#endif
{
+ RASTERFALLBACK(DRAW_IMAGE, r, image.size(), sr);
d->lock();
QRasterPaintEngine::drawImage(r, image, sr, flags);
return;
@@ -1027,7 +1019,6 @@ void QDirectFBPaintEngine::drawImage(const QRectF &r, const QImage &image,
#ifndef QT_NO_DIRECTFB_PREALLOCATED
d->unlock();
- d->updateFlags();
d->drawImage(r, image, sr);
#endif
}
@@ -1044,17 +1035,16 @@ void QDirectFBPaintEngine::drawPixmap(const QRectF &r, const QPixmap &pixmap,
d->updateClip();
if (pixmap.pixmapData()->classId() != QPixmapData::DirectFBClass) {
+ RASTERFALLBACK(DRAW_PIXMAP, r, pixmap.size(), sr);
d->lock();
QRasterPaintEngine::drawPixmap(r, pixmap, sr);
- }
- else if (!d->dfbCanHandleClip(r) || d->matrixRotShear) {
+ } else if (!d->dfbCanHandleClip(r) || d->matrixRotShear) {
+ RASTERFALLBACK(DRAW_PIXMAP, r, pixmap.size(), sr);
const QImage *img = static_cast<QDirectFBPixmapData*>(pixmap.pixmapData())->buffer();
d->lock();
QRasterPaintEngine::drawImage(r, *img, sr);
- }
- else {
+ } else {
d->unlock();
- d->updateFlags();
d->drawPixmap(r, pixmap, sr);
}
}
@@ -1071,20 +1061,19 @@ void QDirectFBPaintEngine::drawTiledPixmap(const QRectF &r,
Q_D(QDirectFBPaintEngine);
d->updateClip();
if (pixmap.pixmapData()->classId() != QPixmapData::DirectFBClass) {
+ RASTERFALLBACK(DRAW_TILED_PIXMAP, r, pixmap.size(), sp);
d->lock();
QRasterPaintEngine::drawTiledPixmap(r, pixmap, sp);
- }
- else if (!d->dfbCanHandleClip(r) || d->matrixRotShear || !sp.isNull()) {
+ } else if (!d->dfbCanHandleClip(r) || d->matrixRotShear || !sp.isNull()) {
+ RASTERFALLBACK(DRAW_TILED_PIXMAP, r, pixmap.size(), sp);
const QImage *img = static_cast<QDirectFBPixmapData*>(pixmap.pixmapData())->buffer();
d->lock();
QRasterPixmapData *data = new QRasterPixmapData(QPixmapData::PixmapType);
data->fromImage(*img, Qt::AutoColor);
const QPixmap pix(data);
QRasterPaintEngine::drawTiledPixmap(r, pix, sp);
- }
- else {
+ } else {
d->unlock();
- d->updateFlags();
d->drawTiledPixmap(r, pixmap);
}
}
@@ -1092,6 +1081,7 @@ void QDirectFBPaintEngine::drawTiledPixmap(const QRectF &r,
void QDirectFBPaintEngine::stroke(const QVectorPath &path, const QPen &pen)
{
+ RASTERFALLBACK(STROKE_PATH, path, VOID_ARG(), VOID_ARG());
Q_D(QDirectFBPaintEngine);
d->lock();
QRasterPaintEngine::stroke(path, pen);
@@ -1099,6 +1089,7 @@ void QDirectFBPaintEngine::stroke(const QVectorPath &path, const QPen &pen)
void QDirectFBPaintEngine::drawPath(const QPainterPath &path)
{
+ RASTERFALLBACK(DRAW_PATH, path, VOID_ARG(), VOID_ARG());
Q_D(QDirectFBPaintEngine);
d->lock();
QRasterPaintEngine::drawPath(path);
@@ -1106,6 +1097,7 @@ void QDirectFBPaintEngine::drawPath(const QPainterPath &path)
void QDirectFBPaintEngine::drawPoints(const QPointF *points, int pointCount)
{
+ RASTERFALLBACK(DRAW_POINTS, pointCount, VOID_ARG(), VOID_ARG());
Q_D(QDirectFBPaintEngine);
d->lock();
QRasterPaintEngine::drawPoints(points, pointCount);
@@ -1113,6 +1105,7 @@ void QDirectFBPaintEngine::drawPoints(const QPointF *points, int pointCount)
void QDirectFBPaintEngine::drawPoints(const QPoint *points, int pointCount)
{
+ RASTERFALLBACK(DRAW_POINTS, pointCount, VOID_ARG(), VOID_ARG());
Q_D(QDirectFBPaintEngine);
d->lock();
QRasterPaintEngine::drawPoints(points, pointCount);
@@ -1120,6 +1113,7 @@ void QDirectFBPaintEngine::drawPoints(const QPoint *points, int pointCount)
void QDirectFBPaintEngine::drawEllipse(const QRectF &rect)
{
+ RASTERFALLBACK(DRAW_ELLIPSE, rect, VOID_ARG(), VOID_ARG());
Q_D(QDirectFBPaintEngine);
d->lock();
QRasterPaintEngine::drawEllipse(rect);
@@ -1128,6 +1122,7 @@ void QDirectFBPaintEngine::drawEllipse(const QRectF &rect)
void QDirectFBPaintEngine::drawPolygon(const QPointF *points, int pointCount,
PolygonDrawMode mode)
{
+ RASTERFALLBACK(DRAW_POLYGON, pointCount, mode, VOID_ARG());
Q_D(QDirectFBPaintEngine);
d->lock();
QRasterPaintEngine::drawPolygon(points, pointCount, mode);
@@ -1136,6 +1131,7 @@ void QDirectFBPaintEngine::drawPolygon(const QPointF *points, int pointCount,
void QDirectFBPaintEngine::drawPolygon(const QPoint *points, int pointCount,
PolygonDrawMode mode)
{
+ RASTERFALLBACK(DRAW_POLYGON, pointCount, mode, VOID_ARG());
Q_D(QDirectFBPaintEngine);
d->lock();
QRasterPaintEngine::drawPolygon(points, pointCount, mode);
@@ -1144,6 +1140,7 @@ void QDirectFBPaintEngine::drawPolygon(const QPoint *points, int pointCount,
void QDirectFBPaintEngine::drawTextItem(const QPointF &p,
const QTextItem &textItem)
{
+ RASTERFALLBACK(DRAW_TEXT, p, textItem.text(), VOID_ARG());
Q_D(QDirectFBPaintEngine);
d->lock();
QRasterPaintEngine::drawTextItem(p, textItem);
@@ -1151,6 +1148,7 @@ void QDirectFBPaintEngine::drawTextItem(const QPointF &p,
void QDirectFBPaintEngine::fill(const QVectorPath &path, const QBrush &brush)
{
+ RASTERFALLBACK(FILL_PATH, path, brush, VOID_ARG());
Q_D(QDirectFBPaintEngine);
d->lock();
QRasterPaintEngine::fill(path, brush);
@@ -1167,7 +1165,6 @@ void QDirectFBPaintEngine::fillRect(const QRectF &rect, const QBrush &brush)
if (d->forceRasterPrimitives)
break;
d->unlock();
- d->updateFlags();
d->setDFBColor(brush.color());
const QRect r = d->transform.mapRect(rect).toRect();
d->surface->FillRectangle(d->surface, r.x(), r.y(),
@@ -1177,7 +1174,6 @@ void QDirectFBPaintEngine::fillRect(const QRectF &rect, const QBrush &brush)
if (state()->brushOrigin == QPointF() && brush.transform().isIdentity()) {
//could handle certain types of brush.transform() E.g. scale
d->unlock();
- d->updateFlags();
d->drawTiledPixmap(rect, brush.texture());
return;
}
@@ -1186,6 +1182,7 @@ void QDirectFBPaintEngine::fillRect(const QRectF &rect, const QBrush &brush)
break;
}
}
+ RASTERFALLBACK(FILL_RECT, rect, brush, VOID_ARG());
d->lock();
QRasterPaintEngine::fillRect(rect, brush);
}
@@ -1195,11 +1192,11 @@ void QDirectFBPaintEngine::fillRect(const QRectF &rect, const QColor &color)
Q_D(QDirectFBPaintEngine);
d->updateClip();
if (!d->dfbCanHandleClip() || d->matrixRotShear || d->forceRasterPrimitives) {
+ RASTERFALLBACK(FILL_RECT, rect, color, VOID_ARG());
d->lock();
QRasterPaintEngine::fillRect(rect, color);
} else {
d->unlock();
- d->updateFlags();
d->setDFBColor(color);
const QRect r = d->transform.mapRect(rect).toRect();
d->surface->FillRectangle(d->surface, r.x(), r.y(),
@@ -1212,6 +1209,7 @@ void QDirectFBPaintEngine::drawColorSpans(const QSpan *spans, int count,
{
Q_D(QDirectFBPaintEngine);
if (d->forceRasterPrimitives) {
+ RASTERFALLBACK(DRAW_COLORSPANS, count, color, VOID_ARG());
d->lock();
QRasterPaintEngine::drawColorSpans(spans, count, color);
} else {
@@ -1229,6 +1227,7 @@ void QDirectFBPaintEngine::drawColorSpans(const QSpan *spans, int count,
} else {
DFBSpan span = { spans[i].x, spans[i].len };
uint c = BYTE_MUL(color, spans[i].coverage);
+ // ### how does this play with setDFBColor
d->surface->SetColor(d->surface,
qRed(c), qGreen(c), qBlue(c), qAlpha(c));
d->surface->FillSpans(d->surface, spans[i].y, &span, 1);
@@ -1249,6 +1248,7 @@ void QDirectFBPaintEngine::drawBufferSpan(const uint *buffer, int bufsize,
{
Q_D(QDirectFBPaintEngine);
IDirectFBSurface *src = d->surfaceCache->getSurface(buffer, bufsize);
+ // ### how does this play with setDFBColor
src->SetColor(src, 0, 0, 0, const_alpha);
const DFBRectangle rect = { 0, 0, length, 1 };
d->surface->Blit(d->surface, src, &rect, x, y);
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.h b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.h
index 3c2cefa..e79ec61 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.h
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.h
@@ -96,7 +96,6 @@ public:
virtual void clipEnabledChanged();
virtual void penChanged();
- virtual void brushChanged();
virtual void opacityChanged();
virtual void compositionModeChanged();
virtual void renderHintsChanged();
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp
index 35ab859..ea9bb3a 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp
@@ -51,7 +51,7 @@ static int global_ser_no = 0;
QDirectFBPixmapData::QDirectFBPixmapData(PixelType pixelType)
: QPixmapData(pixelType, DirectFBClass),
- engine(0)
+ engine(0), format(QImage::Format_Invalid), alpha(false)
{
setSerialNumber(0);
}
@@ -67,16 +67,18 @@ QDirectFBPixmapData::~QDirectFBPixmapData()
void QDirectFBPixmapData::resize(int width, int height)
{
if (width <= 0 || height <= 0) {
- setSerialNumber(0);
+ invalidate();
return;
}
- dfbSurface = screen->createDFBSurface(QSize(width, height),
- screen->pixelFormat(),
- QDirectFBScreen::TrackSurface);
- forceRaster = (screen->pixelFormat() == QImage::Format_RGB32);
+ format = screen->pixelFormat();
+ dfbSurface = QDirectFBScreen::instance()->createDFBSurface(QSize(width, height),
+ format,
+ QDirectFBScreen::TrackSurface);
+ alpha = false;
+ forceRaster = (format == QImage::Format_RGB32);
if (!dfbSurface) {
- setSerialNumber(0);
+ invalidate();
qWarning("QDirectFBPixmapData::resize(): Unable to allocate surface");
return;
}
@@ -84,18 +86,101 @@ void QDirectFBPixmapData::resize(int width, int height)
setSerialNumber(++global_ser_no);
}
-void QDirectFBPixmapData::fromImage(const QImage &img,
- Qt::ImageConversionFlags)
+
+// mostly duplicated from qimage.cpp (QImageData::checkForAlphaPixels)
+static bool checkForAlphaPixels(const QImage &img)
+{
+ const uchar *bits = img.bits();
+ const int bytes_per_line = img.bytesPerLine();
+ const uchar *end_bits = bits + bytes_per_line;
+ const int width = img.width();
+ const int height = img.height();
+ switch (img.format()) {
+ case QImage::Format_Indexed8:
+ return img.hasAlphaChannel();
+ case QImage::Format_ARGB32:
+ case QImage::Format_ARGB32_Premultiplied:
+ for (int y=0; y<height; ++y) {
+ for (int x=0; x<width; ++x) {
+ if ((((uint *)bits)[x] & 0xff000000) != 0xff000000) {
+ return true;
+ }
+ }
+ bits += bytes_per_line;
+ }
+ break;
+
+ case QImage::Format_ARGB8555_Premultiplied:
+ case QImage::Format_ARGB8565_Premultiplied:
+ for (int y=0; y<height; ++y) {
+ while (bits < end_bits) {
+ if (bits[0] != 0) {
+ return true;
+ }
+ bits += 3;
+ }
+ bits = end_bits;
+ end_bits += bytes_per_line;
+ }
+ break;
+
+ case QImage::Format_ARGB6666_Premultiplied:
+ for (int y=0; y<height; ++y) {
+ while (bits < end_bits) {
+ if ((bits[0] & 0xfc) != 0) {
+ return true;
+ }
+ bits += 3;
+ }
+ bits = end_bits;
+ end_bits += bytes_per_line;
+ }
+ break;
+
+ case QImage::Format_ARGB4444_Premultiplied:
+ for (int y=0; y<height; ++y) {
+ while (bits < end_bits) {
+ if ((bits[0] & 0xf0) != 0) {
+ return true;
+ }
+ bits += 2;
+ }
+ bits = end_bits;
+ end_bits += bytes_per_line;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return false;
+}
+
+void QDirectFBPixmapData::fromImage(const QImage &i,
+ Qt::ImageConversionFlags flags)
{
- const QImage::Format format = img.hasAlphaChannel() ?
- screen->alphaPixmapFormat()
- : screen->pixelFormat();
+#ifdef QT_NO_DIRECTFB_OPAQUE_DETECTION
+ Q_UNUSED(flags);
+#endif
+ const QImage img = (i.depth() == 1 ? i.convertToFormat(screen->alphaPixmapFormat()) : i);
+ if (img.hasAlphaChannel()
+#ifndef QT_NO_DIRECTFB_OPAQUE_DETECTION
+ && (flags & Qt::NoOpaqueDetection || ::checkForAlphaPixels(img))
+#endif
+ ) {
+ alpha = true;
+ format = screen->alphaPixmapFormat();
+ } else {
+ alpha = false;
+ format = screen->pixelFormat();
+ }
dfbSurface = screen->copyToDFBSurface(img, format,
QDirectFBScreen::TrackSurface);
forceRaster = (format == QImage::Format_RGB32);
if (!dfbSurface) {
qWarning("QDirectFBPixmapData::fromImage()");
- setSerialNumber(0);
+ invalidate();
return;
}
setSerialNumber(++global_ser_no);
@@ -110,15 +195,15 @@ void QDirectFBPixmapData::copy(const QPixmapData *data, const QRect &rect)
IDirectFBSurface *src = static_cast<const QDirectFBPixmapData*>(data)->directFBSurface();
const bool hasAlpha = data->hasAlphaChannel();
- const QImage::Format format = (hasAlpha
- ? screen->alphaPixmapFormat()
- : screen->pixelFormat());
+ format = (hasAlpha
+ ? QDirectFBScreen::instance()->alphaPixmapFormat()
+ : QDirectFBScreen::instance()->pixelFormat());
dfbSurface = screen->createDFBSurface(rect.size(), format,
QDirectFBScreen::TrackSurface);
if (!dfbSurface) {
qWarning("QDirectFBPixmapData::copy()");
- setSerialNumber(0);
+ invalidate();
return;
}
forceRaster = (format == QImage::Format_RGB32);
@@ -135,13 +220,28 @@ void QDirectFBPixmapData::copy(const QPixmapData *data, const QRect &rect)
dfbSurface->ReleaseSource(dfbSurface);
if (result != DFB_OK) {
DirectFBError("QDirectFBPixmapData::copy()", result);
- setSerialNumber(0);
+ invalidate();
return;
}
setSerialNumber(++global_ser_no);
}
+static inline bool isOpaqueFormat(QImage::Format format)
+{
+ switch (format) {
+ case QImage::Format_RGB32:
+ case QImage::Format_RGB16:
+ case QImage::Format_RGB666:
+ case QImage::Format_RGB555:
+ case QImage::Format_RGB888:
+ case QImage::Format_RGB444:
+ return true;
+ default:
+ break;
+ }
+ return false;
+}
void QDirectFBPixmapData::fill(const QColor &color)
{
@@ -150,17 +250,19 @@ void QDirectFBPixmapData::fill(const QColor &color)
Q_ASSERT(dfbSurface);
- if (color.alpha() < 255 && !hasAlphaChannel()) {
+ alpha = (color.alpha() < 255);
+ if (alpha && ::isOpaqueFormat(format)) {
QSize size;
dfbSurface->GetSize(dfbSurface, &size.rwidth(), &size.rheight());
screen->releaseDFBSurface(dfbSurface);
+ format = screen->alphaPixmapFormat();
dfbSurface = screen->createDFBSurface(size, screen->alphaPixmapFormat(), QDirectFBScreen::TrackSurface);
forceRaster = false;
setSerialNumber(++global_ser_no);
if (!dfbSurface) {
- qWarning("QDirectFBPixmapData::fill()");
- setSerialNumber(0);
+ qWarning("QDirecttFBPixmapData::fill()");
+ invalidate();
return;
}
}
@@ -168,35 +270,23 @@ void QDirectFBPixmapData::fill(const QColor &color)
if (forceRaster) {
// in DSPF_RGB32 all dfb drawing causes the Alpha byte to be
// set to 0. This causes issues for the raster engine.
- char *mem;
- int bpl;
- const int h = QPixmapData::height();
- dfbSurface->Lock(dfbSurface, DSLF_WRITE, (void**)&mem, &bpl);
- const int c = color.rgba();
- for (int i = 0; i < h; ++i) {
- memset(mem, c, bpl);
- mem += bpl;
+ uchar *mem = QDirectFBScreen::lockSurface(dfbSurface, DSLF_WRITE, &bpl);
+ if (mem) {
+ const int h = QPixmapData::height();
+ const int w = QPixmapData::width() * 4; // 4 bytes per 32 bit pixel
+ const int c = color.rgba();
+ for (int i = 0; i < h; ++i) {
+ memset(mem, c, w);
+ mem += bpl;
+ }
+ dfbSurface->Unlock(dfbSurface);
}
- dfbSurface->Unlock(dfbSurface);
} else {
dfbSurface->Clear(dfbSurface, color.red(), color.green(), color.blue(),
color.alpha());
}
}
-bool QDirectFBPixmapData::hasAlphaChannel() const
-{
- if (!serialNumber())
- return false;
- DFBSurfacePixelFormat format;
- dfbSurface->GetPixelFormat(dfbSurface, &format);
- return QDirectFBScreen::hasAlpha(format);
-
- // We don't need to ask DFB for this really. Can just keep track
- // of what image format this has. It should always have either
- // QDirectFBScreen::alphaPixmapFormat() or QScreen::pixelFormat()
-}
-
QPixmap QDirectFBPixmapData::transformed(const QTransform &transform,
Qt::TransformationMode mode) const
{
@@ -221,11 +311,10 @@ QPixmap QDirectFBPixmapData::transformed(const QTransform &transform,
return QPixmap();
QDirectFBPixmapData *data = new QDirectFBPixmapData(QPixmapData::PixmapType);
- QImage::Format format = screen->pixelFormat();
DFBSurfaceBlittingFlags flags = DSBLIT_NOFX;
- if (hasAlphaChannel()) {
+ data->alpha = alpha;
+ if (alpha) {
flags = DSBLIT_BLEND_ALPHACHANNEL;
- format = screen->alphaPixmapFormat();
}
data->dfbSurface = screen->createDFBSurface(size,
format,
@@ -250,7 +339,12 @@ QImage QDirectFBPixmapData::toImage() const
#ifndef QT_NO_DIRECTFB_PREALLOCATED
QImage ret(size(), QDirectFBScreen::getImageFormat(dfbSurface));
if (IDirectFBSurface *imgSurface = screen->createDFBSurface(ret, QDirectFBScreen::DontTrackSurface)) {
- imgSurface->SetBlittingFlags(imgSurface, hasAlphaChannel() ? DSBLIT_BLEND_ALPHACHANNEL : DSBLIT_NOFX);
+ if (hasAlphaChannel()) {
+ imgSurface->SetBlittingFlags(imgSurface, DSBLIT_BLEND_ALPHACHANNEL);
+ imgSurface->Clear(imgSurface, 0, 0, 0, 0);
+ } else {
+ imgSurface->SetBlittingFlags(imgSurface, DSBLIT_NOFX);
+ }
imgSurface->Blit(imgSurface, dfbSurface, 0, 0, 0);
imgSurface->ReleaseSource(imgSurface);
imgSurface->Release(imgSurface);
@@ -280,3 +374,10 @@ QImage* QDirectFBPixmapData::buffer()
lockDirectFB();
return lockedImage;
}
+
+void QDirectFBPixmapData::invalidate()
+{
+ setSerialNumber(0);
+ alpha = false;
+ format = QImage::Format_Invalid;
+}
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h b/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h
index 32676f8..6cfafcd 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h
@@ -64,7 +64,7 @@ public:
void fromImage(const QImage &image, Qt::ImageConversionFlags flags);
void copy(const QPixmapData *data, const QRect &rect);
void fill(const QColor &color);
- bool hasAlphaChannel() const;
+ inline bool hasAlphaChannel() const { return alpha; }
QPixmap transformed(const QTransform &matrix,
Qt::TransformationMode mode) const;
QImage toImage() const;
@@ -73,9 +73,12 @@ public:
// Pure virtual in QPixmapData, so re-implement here and delegate to QDirectFBPaintDevice
int metric(QPaintDevice::PaintDeviceMetric m) const {return QDirectFBPaintDevice::metric(m);}
-
+ inline QImage::Format pixelFormat() const { return format; }
private:
+ void invalidate();
QDirectFBPaintEngine *engine;
+ QImage::Format format;
+ bool alpha;
};
QT_END_HEADER
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp
index 4ae64f7..c1b75c5 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp
@@ -80,12 +80,12 @@ public:
#ifndef QT_NO_DIRECTFB_KEYBOARD
QDirectFBKeyboardHandler *keyboard;
#endif
- bool videoonly;
+ QDirectFBScreen::DirectFBFlags directFBFlags;
QImage::Format alphaPixmapFormat;
};
-QDirectFBScreenPrivate::QDirectFBScreenPrivate(QDirectFBScreen* screen)
- : QWSGraphicsSystem(screen), dfb(0), dfbSurface(0), flipFlags(DSFLIP_BLIT)
+QDirectFBScreenPrivate::QDirectFBScreenPrivate(QDirectFBScreen *screen)
+ : QWSGraphicsSystem(screen), dfb(0), dfbSurface(0), flipFlags(DSFLIP_NONE)
#ifndef QT_NO_DIRECTFB_LAYER
, dfbLayer(0)
#endif
@@ -96,7 +96,7 @@ QDirectFBScreenPrivate::QDirectFBScreenPrivate(QDirectFBScreen* screen)
#ifndef QT_NO_DIRECTFB_KEYBOARD
, keyboard(0)
#endif
- , videoonly(false)
+ , directFBFlags(QDirectFBScreen::NoFlags)
, alphaPixmapFormat(QImage::Format_Invalid)
{
#ifndef QT_NO_QWS_SIGNALHANDLER
@@ -113,7 +113,7 @@ QDirectFBScreenPrivate::~QDirectFBScreenPrivate()
delete keyboard;
#endif
- foreach (IDirectFBSurface* surf, allocatedSurfaces)
+ foreach (IDirectFBSurface *surf, allocatedSurfaces)
surf->Release(surf);
allocatedSurfaces.clear();
@@ -137,7 +137,7 @@ QDirectFBScreenPrivate::~QDirectFBScreenPrivate()
// creates a preallocated surface with the same format as the image if
// possible.
-IDirectFBSurface* QDirectFBScreen::createDFBSurface(const QImage &img, SurfaceCreationOptions options)
+IDirectFBSurface *QDirectFBScreen::createDFBSurface(const QImage &img, SurfaceCreationOptions options)
{
if (img.isNull()) // assert?
return 0;
@@ -155,19 +155,20 @@ IDirectFBSurface* QDirectFBScreen::createDFBSurface(const QImage &img, SurfaceCr
return surface;
}
- DFBSurfaceDescription desc = QDirectFBScreen::getSurfaceDescription(img);
- IDirectFBSurface *surface = createDFBSurface(&desc, options);
+ IDirectFBSurface *surface = createDFBSurface(QDirectFBScreen::getSurfaceDescription(img), options);
#ifdef QT_NO_DIRECTFB_PREALLOCATED
if (surface) {
- char *mem;
int bpl;
- surface->Lock(surface, DSLF_WRITE, (void**)&mem, &bpl);
- const int h = img.height();
- for (int i = 0; i < h; ++i) {
- memcpy(mem, img.scanLine(i), bpl);
- mem += bpl;
+ uchar *mem = QDirectFBScreen::lockSurface(surface, DSLF_WRITE, &bpl);
+ if (mem) {
+ const int h = img.height();
+ const int w = img.width() * img.depth() / 8;
+ for (int i = 0; i < h; ++i) {
+ memcpy(mem, img.scanLine(i), w);
+ mem += bpl;
+ }
+ surface->Unlock(surface);
}
- surface->Unlock(surface);
}
#endif
#ifndef QT_NO_DIRECTFB_PALETTE
@@ -209,41 +210,55 @@ IDirectFBSurface *QDirectFBScreen::createDFBSurface(const QSize &size,
return 0;
desc.width = size.width();
desc.height = size.height();
- return createDFBSurface(&desc, options);
+ return createDFBSurface(desc, options);
}
-IDirectFBSurface* QDirectFBScreen::createDFBSurface(const DFBSurfaceDescription *desc, SurfaceCreationOptions options)
+IDirectFBSurface *QDirectFBScreen::createDFBSurface(DFBSurfaceDescription desc, SurfaceCreationOptions options)
{
- DFBResult result;
- IDirectFBSurface* newSurface = 0;
+ DFBResult result = DFB_OK;
+ IDirectFBSurface *newSurface = 0;
if (!d_ptr->dfb) {
qWarning("QDirectFBScreen::createDFBSurface() - not connected");
return 0;
}
- if (d_ptr->videoonly && !(desc->flags & DSDESC_PREALLOCATED)) {
+ if (d_ptr->directFBFlags & VideoOnly && !(desc.flags & DSDESC_PREALLOCATED)) {
// Add the video only capability. This means the surface will be created in video ram
- DFBSurfaceDescription voDesc = *desc;
- if (!(voDesc.flags & DSDESC_CAPS)) {
- voDesc.caps = DSCAPS_VIDEOONLY;
- voDesc.flags = DFBSurfaceDescriptionFlags(voDesc.flags | DSDESC_CAPS);
+ if (!(desc.flags & DSDESC_CAPS)) {
+ desc.caps = DSCAPS_VIDEOONLY;
+ desc.flags = DFBSurfaceDescriptionFlags(desc.flags | DSDESC_CAPS);
} else {
- voDesc.caps = DFBSurfaceCapabilities(voDesc.caps | DSCAPS_VIDEOONLY);
+ desc.caps = DFBSurfaceCapabilities(desc.caps | DSCAPS_VIDEOONLY);
}
- result = d_ptr->dfb->CreateSurface(d_ptr->dfb, &voDesc, &newSurface);
+ result = d_ptr->dfb->CreateSurface(d_ptr->dfb, &desc, &newSurface);
+ if (result != DFB_OK
+#ifdef QT_NO_DEBUG
+ && (desc.flags & DSDESC_CAPS) && (desc.caps & DSCAPS_PRIMARY)
+#endif
+ ) {
+ qWarning("QDirectFBScreen::createDFBSurface() Failed to create surface in video memory!\n"
+ " Flags %0x Caps %0x width %d height %d pixelformat %0x %d preallocated %p %d\n%s",
+ desc.flags, desc.caps, desc.width, desc.height,
+ desc.pixelformat, DFB_PIXELFORMAT_INDEX(desc.pixelformat),
+ desc.preallocated[0].data, desc.preallocated[0].pitch,
+ DirectFBErrorString(result));
+ }
+ desc.caps = DFBSurfaceCapabilities(desc.caps & ~DSCAPS_VIDEOONLY);
}
+ if (d_ptr->directFBFlags & SystemOnly)
+ desc.caps = DFBSurfaceCapabilities(desc.caps | DSCAPS_SYSTEMONLY);
if (!newSurface)
- result = d_ptr->dfb->CreateSurface(d_ptr->dfb, desc, &newSurface);
+ result = d_ptr->dfb->CreateSurface(d_ptr->dfb, &desc, &newSurface);
if (result != DFB_OK) {
qWarning("QDirectFBScreen::createDFBSurface() Failed!\n"
" Flags %0x Caps %0x width %d height %d pixelformat %0x %d preallocated %p %d\n%s",
- desc->flags, desc->caps, desc->width, desc->height,
- desc->pixelformat, DFB_PIXELFORMAT_INDEX(desc->pixelformat),
- desc->preallocated[0].data, desc->preallocated[0].pitch,
+ desc.flags, desc.caps, desc.width, desc.height,
+ desc.pixelformat, DFB_PIXELFORMAT_INDEX(desc.pixelformat),
+ desc.preallocated[0].data, desc.preallocated[0].pitch,
DirectFBErrorString(result));
return 0;
}
@@ -305,15 +320,17 @@ IDirectFBSurface *QDirectFBScreen::copyToDFBSurface(const QImage &img,
imgSurface->Release(imgSurface);
#else // QT_NO_DIRECTFB_PREALLOCATED
Q_ASSERT(image.format() == pixmapFormat);
- char *mem;
int bpl;
- dfbSurface->Lock(dfbSurface, DSLF_WRITE, (void**)&mem, &bpl);
- const int w = image.width() * image.depth() / 8;
- for (int i = 0; i < image.height(); ++i) {
- memcpy(mem, image.scanLine(i), w);
- mem += bpl;
+ uchar *mem = QDirectFBScreen::lockSurface(dfbSurface, DSLF_WRITE, &bpl);
+ if (mem) {
+ const int h = image.height();
+ const int w = image.width() * image.depth() / 8;
+ for (int i=0; i<h; ++i) {
+ memcpy(mem, image.scanLine(i), w);
+ mem += bpl;
+ }
+ dfbSurface->Unlock(dfbSurface);
}
- dfbSurface->Unlock(dfbSurface);
#endif
return dfbSurface;
}
@@ -329,23 +346,22 @@ void QDirectFBScreen::releaseDFBSurface(IDirectFBSurface *surface)
//qDebug("Released surface at %p. New count = %d", surface, d_ptr->allocatedSurfaces.count());
}
-bool QDirectFBScreen::preferVideoOnly() const
+QDirectFBScreen::DirectFBFlags QDirectFBScreen::directFBFlags() const
{
- return d_ptr->videoonly;
+ return d_ptr->directFBFlags;
}
-
-IDirectFB* QDirectFBScreen::dfb()
+IDirectFB *QDirectFBScreen::dfb()
{
return d_ptr->dfb;
}
-IDirectFBSurface* QDirectFBScreen::dfbSurface()
+IDirectFBSurface *QDirectFBScreen::dfbSurface()
{
return d_ptr->dfbSurface;
}
#ifndef QT_NO_DIRECTFB_LAYER
-IDirectFBDisplayLayer* QDirectFBScreen::dfbDisplayLayer()
+IDirectFBDisplayLayer *QDirectFBScreen::dfbDisplayLayer()
{
return d_ptr->dfbLayer;
}
@@ -523,16 +539,12 @@ class Q_GUI_EXPORT QDirectFBScreenCursor : public QScreenCursor
{
public:
QDirectFBScreenCursor();
- ~QDirectFBScreenCursor();
-
- void set(const QImage &image, int hotx, int hoty);
- void move(int x, int y);
- void show();
- void hide();
-
+ virtual void set(const QImage &image, int hotx, int hoty);
+ virtual void move(int x, int y);
+ virtual void show();
+ virtual void hide();
private:
IDirectFBDisplayLayer *layer;
- bool implicitHide;
};
QDirectFBScreenCursor::QDirectFBScreenCursor()
@@ -542,116 +554,101 @@ QDirectFBScreenCursor::QDirectFBScreenCursor()
qFatal("QDirectFBScreenCursor: DirectFB not initialized");
layer = QDirectFBScreen::instance()->dfbDisplayLayer();
+ Q_ASSERT(layer);
- if (layer)
- layer->SetCooperativeLevel(layer, DLSCL_SHARED); // XXX: hw: remove?
- else
- qFatal("QDirectFBScreenCursor: Unable to get primary display layer!");
-
- enable = true;
+ enable = false;
hwaccel = true;
- implicitHide = false;
supportsAlpha = true;
-
- set(QImage(), 0, 0);
}
-QDirectFBScreenCursor::~QDirectFBScreenCursor()
-{
-}
-
-void QDirectFBScreenCursor::show()
+void QDirectFBScreenCursor::move(int x, int y)
{
- DFBResult result;
- result = layer->SetCooperativeLevel(layer, DLSCL_ADMINISTRATIVE);
- if (result != DFB_OK) {
- DirectFBError("QDirectFBScreenCursor::show: "
- "Unable to set cooperative level", result);
- }
- result = layer->EnableCursor(layer, 1);
- if (result != DFB_OK) {
- DirectFBError("QDirectFBScreenCursor::show: "
- "Unable to enable cursor", result);
- }
- result = layer->SetCooperativeLevel(layer, DLSCL_SHARED);
- if (result != DFB_OK) {
- DirectFBError("QDirectFBScreenCursor::show: "
- "Unable to reset cooperative level", result);
- }
- implicitHide = false;
+ layer->WarpCursor(layer, x, y);
}
void QDirectFBScreenCursor::hide()
{
- DFBResult result;
- result = layer->SetCooperativeLevel(layer, DLSCL_ADMINISTRATIVE);
- if (result != DFB_OK) {
- DirectFBError("QDirectFBScreenCursor::hide: "
- "Unable to set cooperative level", result);
- }
- result = layer->EnableCursor(layer, 0);
- if (result != DFB_OK) {
- DirectFBError("QDirectFBScreenCursor::hide: "
- "Unable to disable cursor", result);
- }
- result = layer->SetCooperativeLevel(layer, DLSCL_SHARED);
- if (result != DFB_OK) {
- DirectFBError("QDirectFBScreenCursor::hide: "
- "Unable to reset cooperative level", result);
+ if (enable) {
+ enable = false;
+ DFBResult result;
+ result = layer->SetCooperativeLevel(layer, DLSCL_ADMINISTRATIVE);
+ if (result != DFB_OK) {
+ DirectFBError("QDirectFBScreenCursor::hide: "
+ "Unable to set cooperative level", result);
+ }
+ result = layer->SetCursorOpacity(layer, 0);
+ if (result != DFB_OK) {
+ DirectFBError("QDirectFBScreenCursor::hide: "
+ "Unable to set cursor opacity", result);
+ }
+ result = layer->SetCooperativeLevel(layer, DLSCL_SHARED);
+ if (result != DFB_OK) {
+ DirectFBError("QDirectFBScreenCursor::hide: "
+ "Unable to set cooperative level", result);
+ }
}
- implicitHide = true;
}
-void QDirectFBScreenCursor::move(int x, int y)
+void QDirectFBScreenCursor::show()
{
- layer->WarpCursor(layer, x, y);
+ if (!enable) {
+ enable = true;
+ DFBResult result;
+ result = layer->SetCooperativeLevel(layer, DLSCL_ADMINISTRATIVE);
+ if (result != DFB_OK) {
+ DirectFBError("QDirectFBScreenCursor::show: "
+ "Unable to set cooperative level", result);
+ }
+ result = layer->SetCursorOpacity(layer, 255);
+ if (result != DFB_OK) {
+ DirectFBError("QDirectFBScreenCursor::show: "
+ "Unable to set cursor shape", result);
+ }
+ result = layer->SetCooperativeLevel(layer, DLSCL_SHARED);
+ if (result != DFB_OK) {
+ DirectFBError("QDirectFBScreenCursor::show: "
+ "Unable to set cooperative level", result);
+ }
+ }
}
void QDirectFBScreenCursor::set(const QImage &image, int hotx, int hoty)
{
- if (image.isNull() && isVisible()) {
- hide();
- implicitHide = true;
- } else if (!image.isNull() && implicitHide) {
- show();
- }
- cursor = image.convertToFormat(QDirectFBScreen::instance()->alphaPixmapFormat());
+ QDirectFBScreen *screen = QDirectFBScreen::instance();
+ if (!screen)
+ return;
- if (!image.isNull()) {
- Q_ASSERT(cursor.numColors() == 0);
+ if (image.isNull()) {
+ cursor = QImage();
+ hide();
+ } else {
+ cursor = image.convertToFormat(screen->alphaPixmapFormat());
size = cursor.size();
hotspot = QPoint(hotx, hoty);
-
- DFBSurfaceDescription description;
- description = QDirectFBScreen::getSurfaceDescription(cursor);
-
- IDirectFBSurface *surface;
- surface = QDirectFBScreen::instance()->createDFBSurface(&description,
- QDirectFBScreen::TrackSurface);
+ IDirectFBSurface *surface = screen->createDFBSurface(cursor, QDirectFBScreen::DontTrackSurface);
if (!surface) {
qWarning("QDirectFBScreenCursor::set: Unable to create surface");
return;
}
DFBResult result = layer->SetCooperativeLevel(layer, DLSCL_ADMINISTRATIVE);
if (result != DFB_OK) {
- DirectFBError("QDirectFBScreenCursor::set: "
+ DirectFBError("QDirectFBScreenCursor::show: "
"Unable to set cooperative level", result);
}
result = layer->SetCursorShape(layer, surface, hotx, hoty);
if (result != DFB_OK) {
- DirectFBError("QDirectFBScreenCursor::set: Unable to set cursor shape",
- result);
+ DirectFBError("QDirectFBScreenCursor::show: "
+ "Unable to set cursor shape", result);
}
-
+ surface->Release(surface);
result = layer->SetCooperativeLevel(layer, DLSCL_SHARED);
if (result != DFB_OK) {
- DirectFBError("QDirectFBScreenCursor::set: "
- "Unable to reset cooperative level", result);
+ DirectFBError("QDirectFBScreenCursor::show: "
+ "Unable to set cooperative level", result);
}
-
- if (surface)
- QDirectFBScreen::instance()->releaseDFBSurface(surface);
+ show();
}
+
}
#endif // QT_NO_DIRECTFB_LAYER
@@ -710,7 +707,7 @@ int QDirectFBScreen::depth(DFBSurfacePixelFormat format)
void QDirectFBScreenPrivate::setFlipFlags(const QStringList &args)
{
- QRegExp flipRegexp(QLatin1String("^flip=([\\w,]+)$"));
+ QRegExp flipRegexp(QLatin1String("^flip=([\\w,]*)$"));
int index = args.indexOf(flipRegexp);
if (index >= 0) {
const QStringList flips = flipRegexp.cap(1).split(QLatin1Char(','),
@@ -729,10 +726,12 @@ void QDirectFBScreenPrivate::setFlipFlags(const QStringList &args)
qWarning("QDirectFBScreen: Unknown flip argument: %s",
qPrintable(flip));
}
+ } else {
+ flipFlags = DFBSurfaceFlipFlags(DSFLIP_BLIT);
}
}
-QPixmapData* QDirectFBScreenPrivate::createPixmapData(QPixmapData::PixelType type) const
+QPixmapData *QDirectFBScreenPrivate::createPixmapData(QPixmapData::PixelType type) const
{
if (type == QPixmapData::BitmapType)
return QWSGraphicsSystem::createPixmapData(type);
@@ -740,6 +739,84 @@ QPixmapData* QDirectFBScreenPrivate::createPixmapData(QPixmapData::PixelType typ
return new QDirectFBPixmapData(type);
}
+#ifdef QT_NO_DEBUG
+struct FlagDescription;
+static const FlagDescription *accelerationDescriptions = 0;
+static const FlagDescription *blitDescriptions = 0;
+static const FlagDescription *drawDescriptions = 0;
+#else
+struct FlagDescription {
+ const char *name;
+ uint flag;
+};
+
+static const FlagDescription accelerationDescriptions[] = {
+ { "DFXL_NONE ", DFXL_NONE },
+ { "DFXL_FILLRECTANGLE", DFXL_FILLRECTANGLE },
+ { "DFXL_DRAWRECTANGLE", DFXL_DRAWRECTANGLE },
+ { "DFXL_DRAWLINE", DFXL_DRAWLINE },
+ { "DFXL_FILLTRIANGLE", DFXL_FILLTRIANGLE },
+ { "DFXL_BLIT", DFXL_BLIT },
+ { "DFXL_STRETCHBLIT", DFXL_STRETCHBLIT },
+ { "DFXL_TEXTRIANGLES", DFXL_TEXTRIANGLES },
+ { "DFXL_DRAWSTRING", DFXL_DRAWSTRING },
+ { 0, 0 }
+};
+
+static const FlagDescription blitDescriptions[] = {
+ { "DSBLIT_NOFX", DSBLIT_NOFX },
+ { "DSBLIT_BLEND_ALPHACHANNEL", DSBLIT_BLEND_ALPHACHANNEL },
+ { "DSBLIT_BLEND_COLORALPHA", DSBLIT_BLEND_COLORALPHA },
+ { "DSBLIT_COLORIZE", DSBLIT_COLORIZE },
+ { "DSBLIT_SRC_COLORKEY", DSBLIT_SRC_COLORKEY },
+ { "DSBLIT_DST_COLORKEY", DSBLIT_DST_COLORKEY },
+ { "DSBLIT_SRC_PREMULTIPLY", DSBLIT_SRC_PREMULTIPLY },
+ { "DSBLIT_DST_PREMULTIPLY", DSBLIT_DST_PREMULTIPLY },
+ { "DSBLIT_DEMULTIPLY", DSBLIT_DEMULTIPLY },
+ { "DSBLIT_DEINTERLACE", DSBLIT_DEINTERLACE },
+ { "DSBLIT_SRC_PREMULTCOLOR", DSBLIT_SRC_PREMULTCOLOR },
+ { "DSBLIT_XOR", DSBLIT_XOR },
+ { "DSBLIT_INDEX_TRANSLATION", DSBLIT_INDEX_TRANSLATION },
+ { 0, 0 }
+};
+
+static const FlagDescription drawDescriptions[] = {
+ { "DSDRAW_NOFX", DSDRAW_NOFX },
+ { "DSDRAW_BLEND", DSDRAW_BLEND },
+ { "DSDRAW_DST_COLORKEY", DSDRAW_DST_COLORKEY },
+ { "DSDRAW_SRC_PREMULTIPLY", DSDRAW_SRC_PREMULTIPLY },
+ { "DSDRAW_DST_PREMULTIPLY", DSDRAW_DST_PREMULTIPLY },
+ { "DSDRAW_DEMULTIPLY", DSDRAW_DEMULTIPLY },
+ { "DSDRAW_XOR", DSDRAW_XOR },
+ { 0, 0 }
+};
+#endif
+
+
+
+static const QByteArray flagDescriptions(uint mask, const FlagDescription *flags)
+{
+#ifdef QT_NO_DEBUG
+ Q_UNUSED(mask);
+ Q_UNUSED(flags);
+ return QByteArray("");
+#else
+ if (!mask)
+ return flags[0].name;
+
+ QStringList list;
+ for (int i=1; flags[i].name; ++i) {
+ if (mask & flags[i].flag) {
+ list.append(QString::fromLatin1(flags[i].name));
+ }
+ }
+ Q_ASSERT(!list.isEmpty());
+ return (QLatin1Char(' ') + list.join(QLatin1String("|"))).toLatin1();
+#endif
+}
+
+
+
static void printDirectFBInfo(IDirectFB *fb)
{
DFBResult result;
@@ -752,10 +829,25 @@ static void printDirectFBInfo(IDirectFB *fb)
}
qDebug("Device: %s (%s), Driver: %s v%i.%i (%s)\n"
- " acceleration: 0x%x, blit: 0x%x, draw: 0x%0x video: %i\n",
+ " acceleration: 0x%x%s,\nblit: 0x%x%s,\ndraw: 0x%0x%s\nvideo: %iKB\n",
dev.name, dev.vendor, dev.driver.name, dev.driver.major,
dev.driver.minor, dev.driver.vendor, dev.acceleration_mask,
- dev.blitting_flags, dev.drawing_flags, dev.video_memory);
+ ::flagDescriptions(dev.acceleration_mask, accelerationDescriptions).constData(),
+ dev.blitting_flags, ::flagDescriptions(dev.blitting_flags, blitDescriptions).constData(),
+ dev.drawing_flags, ::flagDescriptions(dev.drawing_flags, drawDescriptions).constData(),
+ (dev.video_memory >> 10));
+}
+
+static inline bool setIntOption(const QStringList &arguments, const QString &variable, int *value)
+{
+ Q_ASSERT(value);
+ QRegExp rx(QString("%1=?(\\d+)").arg(variable));
+ rx.setCaseSensitivity(Qt::CaseInsensitive);
+ if (arguments.indexOf(rx) != -1) {
+ *value = rx.cap(1).toInt();
+ return true;
+ }
+ return false;
}
bool QDirectFBScreen::connect(const QString &displaySpec)
@@ -793,8 +885,23 @@ bool QDirectFBScreen::connect(const QString &displaySpec)
if (displayArgs.contains(QLatin1String("debug"), Qt::CaseInsensitive))
printDirectFBInfo(d_ptr->dfb);
- if (displayArgs.contains(QLatin1String("videoonly")))
- d_ptr->videoonly = true;
+ if (displayArgs.contains(QLatin1String("videoonly"), Qt::CaseInsensitive))
+ d_ptr->directFBFlags |= VideoOnly;
+
+ if (displayArgs.contains(QLatin1String("systemonly"), Qt::CaseInsensitive)) {
+ if (d_ptr->directFBFlags & VideoOnly) {
+ qWarning("QDirectFBScreen: error. videoonly and systemonly are mutually exclusive");
+ } else {
+ d_ptr->directFBFlags |= SystemOnly;
+ }
+ }
+
+ if (displayArgs.contains(QLatin1String("boundingrectflip"), Qt::CaseInsensitive)) {
+ d_ptr->directFBFlags |= BoundingRectFlip;
+ }
+
+ if (displayArgs.contains(QLatin1String("ignoresystemclip"), Qt::CaseInsensitive))
+ d_ptr->directFBFlags |= IgnoreSystemClip;
#ifndef QT_NO_DIRECTFB_WM
if (displayArgs.contains(QLatin1String("fullscreen")))
@@ -803,24 +910,35 @@ bool QDirectFBScreen::connect(const QString &displaySpec)
DFBSurfaceDescription description;
description.flags = DFBSurfaceDescriptionFlags(DSDESC_CAPS);
- description.caps = DFBSurfaceCapabilities(DSCAPS_PRIMARY
- | DSCAPS_DOUBLE
- | DSCAPS_STATIC_ALLOC);
- if (displayArgs.contains(QLatin1String("forcepremultiplied"),
- Qt::CaseInsensitive)) {
- description.caps = DFBSurfaceCapabilities(description.caps
- | DSCAPS_PREMULTIPLIED);
+ if (::setIntOption(displayArgs, QLatin1String("width"), &description.width))
+ description.flags = DFBSurfaceDescriptionFlags(description.flags | DSDESC_WIDTH);
+ if (::setIntOption(displayArgs, QLatin1String("height"), &description.height))
+ description.flags = DFBSurfaceDescriptionFlags(description.flags | DSDESC_HEIGHT);
+
+ uint caps = DSCAPS_PRIMARY|DSCAPS_DOUBLE;
+ struct {
+ const char *name;
+ const DFBSurfaceCapabilities cap;
+ } const capabilities[] = {
+ { "static_alloc", DSCAPS_STATIC_ALLOC },
+ { "triplebuffer", DSCAPS_TRIPLE },
+ { "interlaced", DSCAPS_INTERLACED },
+ { "separated", DSCAPS_SEPARATED },
+// { "depthbuffer", DSCAPS_DEPTH }, // only makes sense with TextureTriangles which are not supported
+ { 0, DSCAPS_NONE }
+ };
+ for (int i=0; capabilities[i].name; ++i) {
+ if (displayArgs.contains(QString::fromLatin1(capabilities[i].name), Qt::CaseInsensitive))
+ caps |= capabilities[i].cap;
}
- if (!(d_ptr->flipFlags & DSFLIP_BLIT)) {
- description.caps = DFBSurfaceCapabilities(description.caps
- | DSCAPS_DOUBLE
- | DSCAPS_TRIPLE);
+ if (displayArgs.contains(QLatin1String("forcepremultiplied"), Qt::CaseInsensitive)) {
+ caps |= DSCAPS_PREMULTIPLIED;
}
-
+ description.caps = DFBSurfaceCapabilities(caps);
// We don't track the primary surface as it's released in disconnect
- d_ptr->dfbSurface = createDFBSurface(&description, DontTrackSurface);
+ d_ptr->dfbSurface = createDFBSurface(description, DontTrackSurface);
if (!d_ptr->dfbSurface) {
DirectFBError("QDirectFBScreen: error creating primary surface",
result);
@@ -875,18 +993,8 @@ bool QDirectFBScreen::connect(const QString &displaySpec)
setPixelFormat(getImageFormat(d_ptr->dfbSurface));
physWidth = physHeight = -1;
- QRegExp mmWidthRx(QLatin1String("mmWidth=?(\\d+)"));
- int dimIdxW = displayArgs.indexOf(mmWidthRx);
- if (dimIdxW >= 0) {
- mmWidthRx.exactMatch(displayArgs.at(dimIdxW));
- physWidth = mmWidthRx.cap(1).toInt();
- }
- QRegExp mmHeightRx(QLatin1String("mmHeight=?(\\d+)"));
- int dimIdxH = displayArgs.indexOf(mmHeightRx);
- if (dimIdxH >= 0) {
- mmHeightRx.exactMatch(displayArgs.at(dimIdxH));
- physHeight = mmHeightRx.cap(1).toInt();
- }
+ ::setIntOption(displayArgs, QLatin1String("mmWidth"), &physWidth);
+ ::setIntOption(displayArgs, QLatin1String("mmHeight"), &physHeight);
const int dpi = 72;
if (physWidth < 0)
physWidth = qRound(dw * 25.4 / dpi);
@@ -921,7 +1029,7 @@ void QDirectFBScreen::disconnect()
d_ptr->dfbSurface->Release(d_ptr->dfbSurface);
d_ptr->dfbSurface = 0;
- foreach (IDirectFBSurface* surf, d_ptr->allocatedSurfaces)
+ foreach (IDirectFBSurface *surf, d_ptr->allocatedSurfaces)
surf->Release(surf);
d_ptr->allocatedSurfaces.clear();
@@ -939,16 +1047,15 @@ void QDirectFBScreen::disconnect()
bool QDirectFBScreen::initDevice()
{
- QWSServer *server = QWSServer::instance();
#ifndef QT_NO_DIRECTFB_MOUSE
if (qgetenv("QWS_MOUSE_PROTO").isEmpty()) {
- server->setDefaultMouse("None");
+ QWSServer::instance()->setDefaultMouse("None");
d_ptr->mouse = new QDirectFBMouseHandler;
}
#endif
#ifndef QT_NO_DIRECTFB_KEYBOARD
if (qgetenv("QWS_KEYBOARD").isEmpty()) {
- server->setDefaultKeyboard("None");
+ QWSServer::instance()->setDefaultKeyboard("None");
d_ptr->keyboard = new QDirectFBKeyboardHandler(QString());
}
#endif
@@ -991,22 +1098,24 @@ void QDirectFBScreen::blank(bool on)
(on ? DSPM_ON : DSPM_SUSPEND));
}
-QWSWindowSurface* QDirectFBScreen::createSurface(QWidget *widget) const
+QWSWindowSurface *QDirectFBScreen::createSurface(QWidget *widget) const
{
#ifdef QT_NO_DIRECTFB_WM
- if (QApplication::type() == QApplication::GuiServer)
- return new QDirectFBSurface(const_cast<QDirectFBScreen*>(this), widget);
- else
+ if (QApplication::type() == QApplication::GuiServer) {
+ return new QDirectFBSurface(d_ptr->flipFlags, const_cast<QDirectFBScreen*>(this), widget);
+ } else {
return QScreen::createSurface(widget);
+ }
#else
- return new QDirectFBSurface(const_cast<QDirectFBScreen*>(this), widget);
+ return new QDirectFBSurface(d_ptr->flipFlags, const_cast<QDirectFBScreen*>(this), widget);
#endif
}
-QWSWindowSurface* QDirectFBScreen::createSurface(const QString &key) const
+QWSWindowSurface *QDirectFBScreen::createSurface(const QString &key) const
{
- if (key == QLatin1String("directfb"))
- return new QDirectFBSurface(const_cast<QDirectFBScreen*>(this));
+ if (key == QLatin1String("directfb")) {
+ return new QDirectFBSurface(d_ptr->flipFlags, const_cast<QDirectFBScreen*>(this));
+ }
return QScreen::createSurface(key);
}
@@ -1173,26 +1282,34 @@ void QDirectFBScreen::blit(IDirectFBSurface *src, const QPoint &topLeft,
points.data(), n);
}
+// This function is only ever called by QScreen::drawBackground which
+// is only ever called by QScreen::compose which is never called with
+// DirectFB so it's really a noop.
void QDirectFBScreen::solidFill(const QColor &color, const QRegion &region)
{
if (region.isEmpty())
return;
- const QVector<QRect> rects = region.rects();
- QVarLengthArray<DFBRectangle> dfbRects(rects.size());
- for (int i = 0; i < rects.size(); ++i) {
- const QRect r = rects.at(i);
- dfbRects[i].x = r.x();
- dfbRects[i].y = r.y();
- dfbRects[i].w = r.width();
- dfbRects[i].h = r.height();
- }
+ if (QDirectFBScreen::getImageFormat(d_ptr->dfbSurface) == QImage::Format_RGB32) {
+ data = QDirectFBScreen::lockSurface(d_ptr->dfbSurface, DSLF_WRITE, &lstep);
+ if (!data)
+ return;
- d_ptr->dfbSurface->SetColor(d_ptr->dfbSurface,
- color.red(), color.green(), color.blue(),
- color.alpha());
- d_ptr->dfbSurface->FillRectangles(d_ptr->dfbSurface, dfbRects.data(),
- dfbRects.size());
+ QScreen::solidFill(color, region);
+ d_ptr->dfbSurface->Unlock(d_ptr->dfbSurface);
+ data = 0;
+ lstep = 0;
+ } else {
+ d_ptr->dfbSurface->SetColor(d_ptr->dfbSurface,
+ color.red(), color.green(), color.blue(),
+ color.alpha());
+ const QVector<QRect> rects = region.rects();
+ for (int i=0; i<rects.size(); ++i) {
+ const QRect &r = rects.at(i);
+ d_ptr->dfbSurface->FillRectangle(d_ptr->dfbSurface,
+ r.x(), r.y(), r.width(), r.height());
+ }
+ }
}
QImage::Format QDirectFBScreen::alphaPixmapFormat() const
@@ -1200,7 +1317,6 @@ QImage::Format QDirectFBScreen::alphaPixmapFormat() const
return d_ptr->alphaPixmapFormat;
}
-
bool QDirectFBScreen::initSurfaceDescriptionPixelFormat(DFBSurfaceDescription *description,
QImage::Format format)
{
@@ -1219,3 +1335,15 @@ bool QDirectFBScreen::initSurfaceDescriptionPixelFormat(DFBSurfaceDescription *d
}
return true;
}
+
+uchar *QDirectFBScreen::lockSurface(IDirectFBSurface *surface, DFBSurfaceLockFlags flags, int *bpl)
+{
+ void *mem;
+ const DFBResult result = surface->Lock(surface, flags, static_cast<void**>(&mem), bpl);
+ if (result != DFB_OK) {
+ DirectFBError("QDirectFBPixmapData::lockSurface()", result);
+ }
+
+ return reinterpret_cast<uchar*>(mem);
+}
+
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbscreen.h b/src/plugins/gfxdrivers/directfb/qdirectfbscreen.h
index f394ac1..42d0ebe 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbscreen.h
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbscreen.h
@@ -59,6 +59,18 @@ public:
QDirectFBScreen(int display_id);
~QDirectFBScreen();
+ enum DirectFBFlag {
+ NoFlags = 0x00,
+ VideoOnly = 0x01,
+ SystemOnly = 0x02,
+ IgnoreSystemClip = 0x04,
+ BoundingRectFlip = 0x08
+ };
+
+ Q_DECLARE_FLAGS(DirectFBFlags, DirectFBFlag);
+
+ DirectFBFlags directFBFlags() const;
+
bool connect(const QString &displaySpec);
void disconnect();
bool initDevice();
@@ -72,19 +84,19 @@ public:
void setMode(int width, int height, int depth);
void blank(bool on);
- QWSWindowSurface* createSurface(QWidget *widget) const;
- QWSWindowSurface* createSurface(const QString &key) const;
+ QWSWindowSurface *createSurface(QWidget *widget) const;
+ QWSWindowSurface *createSurface(const QString &key) const;
- static inline QDirectFBScreen* instance() {
+ static inline QDirectFBScreen *instance() {
QScreen *inst = QScreen::instance();
Q_ASSERT(!inst || inst->classId() == QScreen::DirectFBClass);
return static_cast<QDirectFBScreen*>(inst);
}
- IDirectFB* dfb();
- IDirectFBSurface* dfbSurface();
+ IDirectFB *dfb();
+ IDirectFBSurface *dfbSurface();
#ifndef QT_NO_DIRECTFB_LAYER
- IDirectFBDisplayLayer* dfbDisplayLayer();
+ IDirectFBDisplayLayer *dfbDisplayLayer();
#endif
// Track surface creation/release so we can release all on exit
@@ -93,7 +105,7 @@ public:
TrackSurface = 1
};
Q_DECLARE_FLAGS(SurfaceCreationOptions, SurfaceCreationOption);
- IDirectFBSurface *createDFBSurface(const DFBSurfaceDescription *desc,
+ IDirectFBSurface *createDFBSurface(DFBSurfaceDescription desc,
SurfaceCreationOptions options);
IDirectFBSurface *createDFBSurface(const QImage &image,
SurfaceCreationOptions options);
@@ -106,9 +118,7 @@ public:
IDirectFBSurface *copyToDFBSurface(const QImage &image,
QImage::Format format,
SurfaceCreationOptions options);
- void releaseDFBSurface(IDirectFBSurface* surface);
-
- bool preferVideoOnly() const;
+ void releaseDFBSurface(IDirectFBSurface *surface);
static int depth(DFBSurfacePixelFormat format);
@@ -127,6 +137,8 @@ public:
const QImage &image);
#endif
+ static uchar *lockSurface(IDirectFBSurface *surface, DFBSurfaceLockFlags flags, int *bpl = 0);
+
private:
void compose(const QRegion &r);
void blit(IDirectFBSurface *src, const QPoint &topLeft,
@@ -136,6 +148,7 @@ private:
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QDirectFBScreen::SurfaceCreationOptions);
+Q_DECLARE_OPERATORS_FOR_FLAGS(QDirectFBScreen::DirectFBFlags);
inline bool QDirectFBScreen::isPremultiplied(QImage::Format format)
{
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbsurface.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbsurface.cpp
index 4b8fe0a..beb9b5f 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbsurface.cpp
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbsurface.cpp
@@ -50,12 +50,14 @@
//#define QT_DIRECTFB_DEBUG_SURFACES 1
-QDirectFBSurface::QDirectFBSurface(QDirectFBScreen* scr)
+QDirectFBSurface::QDirectFBSurface(DFBSurfaceFlipFlags flip, QDirectFBScreen *scr)
: QDirectFBPaintDevice(scr)
#ifndef QT_NO_DIRECTFB_WM
, dfbWindow(0)
#endif
, engine(0)
+ , flipFlags(flip)
+ , boundingRectFlip(scr->directFBFlags() & QDirectFBScreen::BoundingRectFlip)
{
setSurfaceFlags(Opaque | Buffered);
#ifdef QT_DIRECTFB_TIMING
@@ -64,12 +66,14 @@ QDirectFBSurface::QDirectFBSurface(QDirectFBScreen* scr)
#endif
}
-QDirectFBSurface::QDirectFBSurface(QDirectFBScreen* scr, QWidget *widget)
+QDirectFBSurface::QDirectFBSurface(DFBSurfaceFlipFlags flip, QDirectFBScreen *scr, QWidget *widget)
: QWSWindowSurface(widget), QDirectFBPaintDevice(scr)
#ifndef QT_NO_DIRECTFB_WM
, dfbWindow(0)
#endif
, engine(0)
+ , flipFlags(flip)
+ , boundingRectFlip(scr->directFBFlags() & QDirectFBScreen::BoundingRectFlip)
{
onscreen = widget->testAttribute(Qt::WA_PaintOnScreen);
if (onscreen)
@@ -108,7 +112,7 @@ void QDirectFBSurface::createWindow()
|DWDESC_PIXELFORMAT);
description.surface_caps = DSCAPS_NONE;
- if (screen->preferVideoOnly())
+ if (screen->directFBFlags() & QDirectFBScreen::VideoOnly)
description.surface_caps = DFBSurfaceCapabilities(description.surface_caps|DSCAPS_VIDEOONLY);
const QImage::Format format = screen->pixelFormat();
description.pixelformat = QDirectFBScreen::getSurfacePixelFormat(format);
@@ -137,28 +141,32 @@ void QDirectFBSurface::setGeometry(const QRect &rect, const QRegion &mask)
dfbWindow = 0;
}
#endif
- if (dfbSurface) {
+ if (dfbSurface && dfbSurface != screen->dfbSurface()) {
dfbSurface->Release(dfbSurface);
dfbSurface = 0;
}
} else if (rect != geometry()) {
- const bool isResize = rect.size() != geometry().size();
DFBResult result = DFB_OK;
// If we're in a resize, the surface shouldn't be locked
- Q_ASSERT( (lockedImage == 0) || (isResize == false));
+ Q_ASSERT((lockedImage == 0) || (rect.size() == geometry().size()));
if (onscreen) {
- if (dfbSurface)
- dfbSurface->Release(dfbSurface);
-
- DFBRectangle r = { rect.x(), rect.y(),
- rect.width(), rect.height() };
IDirectFBSurface *primarySurface = screen->dfbSurface();
Q_ASSERT(primarySurface);
- result = primarySurface->GetSubSurface(primarySurface, &r, &dfbSurface);
+ if (dfbSurface && dfbSurface != primarySurface)
+ dfbSurface->Release(dfbSurface);
+
+ if (rect == screen->region().boundingRect()) {
+ dfbSurface = primarySurface;
+ } else {
+ const DFBRectangle r = { rect.x(), rect.y(),
+ rect.width(), rect.height() };
+ result = primarySurface->GetSubSurface(primarySurface, &r, &dfbSurface);
+ }
forceRaster = (dfbSurface && QDirectFBScreen::getImageFormat(dfbSurface) == QImage::Format_RGB32);
} else {
+ const bool isResize = rect.size() != geometry().size();
#ifdef QT_NO_DIRECTFB_WM
if (isResize) {
if (dfbSurface)
@@ -178,7 +186,7 @@ void QDirectFBSurface::setGeometry(const QRect &rect, const QRegion &mask)
description.height = rect.height();
QDirectFBScreen::initSurfaceDescriptionPixelFormat(&description,
screen->pixelFormat());
- dfbSurface = screen->createDFBSurface(&description, false);
+ dfbSurface = screen->createDFBSurface(description, false);
forceRaster = (dfbSurface && QDirectFBScreen::getImageFormat(dfbSurface) == QImage::Format_RGB32);
} else {
Q_ASSERT(dfbSurface);
@@ -244,7 +252,7 @@ void QDirectFBSurface::setPermanentState(const QByteArray &state)
bool QDirectFBSurface::scroll(const QRegion &region, int dx, int dy)
{
- if (!dfbSurface)
+ if (!dfbSurface || !(flipFlags & DSFLIP_BLIT))
return false;
const QVector<QRect> rects = region.rects();
@@ -360,23 +368,26 @@ void QDirectFBSurface::flush(QWidget *widget, const QRegion &region,
if (winOpacity != opacity)
dfbWindow->SetOpacity(dfbWindow, winOpacity);
}
-#endif
-#ifndef QT_NO_DIRECTFB_WM
- if (region.numRects() > 1) {
- const QVector<QRect> rects = region.rects();
- for (int i=0; i<rects.size(); ++i) {
- const QRect &r = rects.at(i);
+ if (!(flipFlags & DSFLIP_BLIT)) {
+ dfbSurface->Flip(dfbSurface, 0, flipFlags);
+ } else {
+ if (!boundingRectFlip && region.numRects() > 1) {
+ const QVector<QRect> rects = region.rects();
+ const DFBSurfaceFlipFlags nonWaitFlags = DFBSurfaceFlipFlags(flipFlags & ~DSFLIP_WAIT);
+ for (int i=0; i<rects.size(); ++i) {
+ const QRect &r = rects.at(i);
+ const DFBRegion dfbReg = { r.x() + offset.x(), r.y() + offset.y(),
+ r.x() + r.width() + offset.x(),
+ r.y() + r.height() + offset.y() };
+ dfbSurface->Flip(dfbSurface, &dfbReg, i + 1 < rects.size() ? nonWaitFlags : flipFlags);
+ }
+ } else {
+ const QRect r = region.boundingRect();
const DFBRegion dfbReg = { r.x() + offset.x(), r.y() + offset.y(),
r.x() + r.width() + offset.x(),
r.y() + r.height() + offset.y() };
- dfbSurface->Flip(dfbSurface, &dfbReg, DSFLIP_ONSYNC);
+ dfbSurface->Flip(dfbSurface, &dfbReg, flipFlags);
}
- } else {
- const QRect r = region.boundingRect();
- const DFBRegion dfbReg = { r.x() + offset.x(), r.y() + offset.y(),
- r.x() + r.width() + offset.x(),
- r.y() + r.height() + offset.y() };
- dfbSurface->Flip(dfbSurface, &dfbReg, DSFLIP_ONSYNC);
}
#endif
#ifdef QT_DIRECTFB_TIMING
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbsurface.h b/src/plugins/gfxdrivers/directfb/qdirectfbsurface.h
index 9e2791c..54c14a5 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbsurface.h
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbsurface.h
@@ -61,8 +61,8 @@ QT_MODULE(Gui)
class QDirectFBSurface: public QWSWindowSurface, public QDirectFBPaintDevice
{
public:
- QDirectFBSurface(QDirectFBScreen* scr);
- QDirectFBSurface(QDirectFBScreen* scr, QWidget *widget);
+ QDirectFBSurface(DFBSurfaceFlipFlags flipFlags, QDirectFBScreen* scr);
+ QDirectFBSurface(DFBSurfaceFlipFlags flipFlags, QDirectFBScreen* scr, QWidget *widget);
~QDirectFBSurface();
bool isValid() const;
@@ -99,6 +99,8 @@ private:
bool onscreen;
QList<QImage*> bufferImages;
+ DFBSurfaceFlipFlags flipFlags;
+ bool boundingRectFlip;
#ifdef QT_DIRECTFB_TIMING
int frames;
QTime timer;
diff --git a/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable.c b/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable.c
index 5c37253..4771d14 100644
--- a/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable.c
+++ b/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable.c
@@ -72,7 +72,7 @@ static int pvrQwsInitFbScreen(int screen)
/* Bail out if already initialized, or the number is incorrect */
if (screen < 0 || screen >= PVRQWS_MAX_SCREENS)
return 0;
- if (pvrQwsDisplay.screens[screen].mapped)
+ if (pvrQwsDisplay.screens[screen].initialized)
return 1;
/* Open the framebuffer and fetch its properties */
@@ -125,26 +125,33 @@ static int pvrQwsInitFbScreen(int screen)
start = fix.smem_start;
length = var.xres_virtual * var.yres_virtual * bytesPerPixel;
- /* Map the framebuffer region into memory */
- mapped = mmap(0, length, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (!mapped || mapped == (void *)(-1)) {
- perror("mmap");
- close(fd);
- return 0;
- }
-
- /* Allocate a PVR2D memory region for the framebuffer */
- memInfo = 0;
- if (pvrQwsDisplay.context) {
- pageAddresses[0] = start & 0xFFFFF000;
- pageAddresses[1] = 0;
- if (PVR2DMemWrap
- (pvrQwsDisplay.context, mapped, PVR2D_WRAPFLAG_CONTIGUOUS,
- length, pageAddresses, &memInfo) != PVR2D_OK) {
- munmap(mapped, length);
+ if (screen == 0) {
+ /* We use PVR2DGetFrameBuffer to map the first screen.
+ On some chipsets it is more reliable than using PVR2DMemWrap */
+ mapped = 0;
+ memInfo = 0;
+ } else {
+ /* Other screens: map the framebuffer region into memory */
+ mapped = mmap(0, length, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+ if (!mapped || mapped == (void *)(-1)) {
+ perror("mmap");
close(fd);
return 0;
}
+
+ /* Allocate a PVR2D memory region for the framebuffer */
+ memInfo = 0;
+ if (pvrQwsDisplay.context) {
+ pageAddresses[0] = start & 0xFFFFF000;
+ pageAddresses[1] = 0;
+ if (PVR2DMemWrap
+ (pvrQwsDisplay.context, mapped, PVR2D_WRAPFLAG_CONTIGUOUS,
+ length, pageAddresses, &memInfo) != PVR2D_OK) {
+ munmap(mapped, length);
+ close(fd);
+ return 0;
+ }
+ }
}
/* We don't need the file descriptor any more */
@@ -158,11 +165,17 @@ static int pvrQwsInitFbScreen(int screen)
pvrQwsDisplay.screens[screen].screenStride = stride;
pvrQwsDisplay.screens[screen].pixelFormat = format;
pvrQwsDisplay.screens[screen].bytesPerPixel = bytesPerPixel;
- pvrQwsDisplay.screens[screen].frameBuffer = memInfo;
pvrQwsDisplay.screens[screen].screenDrawable = 0;
- pvrQwsDisplay.screens[screen].mapped = mapped;
+ if (mapped) {
+ /* Don't set these fields if mapped is 0, because PVR2DGetFrameBuffer
+ may have already been called and set them */
+ pvrQwsDisplay.screens[screen].frameBuffer = memInfo;
+ pvrQwsDisplay.screens[screen].mapped = mapped;
+ }
pvrQwsDisplay.screens[screen].mappedLength = length;
pvrQwsDisplay.screens[screen].screenStart = start;
+ pvrQwsDisplay.screens[screen].needsUnmap = (mapped != 0);
+ pvrQwsDisplay.screens[screen].initialized = 1;
return 1;
}
@@ -209,7 +222,7 @@ static int pvrQwsAddDrawable(void)
/* Create the PVR2DMEMINFO blocks for the active framebuffers */
for (screen = 0; screen < PVRQWS_MAX_SCREENS; ++screen) {
- if (pvrQwsDisplay.screens[screen].mapped) {
+ if (screen != 0 && pvrQwsDisplay.screens[screen].mapped) {
pageAddresses[0]
= pvrQwsDisplay.screens[screen].screenStart & 0xFFFFF000;
pageAddresses[1] = 0;
@@ -224,6 +237,17 @@ static int pvrQwsAddDrawable(void)
return 0;
}
pvrQwsDisplay.screens[screen].frameBuffer = memInfo;
+ } else if (screen == 0) {
+ if (PVR2DGetFrameBuffer
+ (pvrQwsDisplay.context,
+ PVR2D_FB_PRIMARY_SURFACE, &memInfo) != PVR2D_OK) {
+ fprintf(stderr, "QWSWSEGL: could not get the primary framebuffer surface\n");
+ PVR2DDestroyDeviceContext(pvrQwsDisplay.context);
+ pvrQwsDisplay.context = 0;
+ return 0;
+ }
+ pvrQwsDisplay.screens[screen].frameBuffer = memInfo;
+ pvrQwsDisplay.screens[screen].mapped = memInfo->pBase;
}
}
@@ -330,7 +354,7 @@ void pvrQwsDisplayClose(void)
pvrQwsDestroyDrawableForced(info->screenDrawable);
if (info->frameBuffer)
PVR2DMemFree(pvrQwsDisplay.context, info->frameBuffer);
- if (info->mapped)
+ if (info->mapped && info->needsUnmap)
munmap(info->mapped, info->mappedLength);
}
diff --git a/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable_p.h b/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable_p.h
index d6c42a6..4f3ea90 100644
--- a/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable_p.h
+++ b/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable_p.h
@@ -76,6 +76,8 @@ typedef struct {
void *mapped;
int mappedLength;
unsigned long screenStart;
+ int needsUnmap;
+ int initialized;
} PvrQwsScreenInfo;
diff --git a/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.cpp b/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.cpp
index b0ffbf1..65efdbc 100644
--- a/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.cpp
+++ b/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.cpp
@@ -104,7 +104,7 @@ bool PvrEglScreen::connect(const QString &displaySpec)
break;
case PVR2D_ARGB8888:
d = 32;
- setPixelFormat(QImage::Format_ARGB32);
+ setPixelFormat(QImage::Format_ARGB32_Premultiplied);
break;
default:
pvrQwsDisplayClose();
diff --git a/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp b/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp
index 7fdf81f..c7249d3 100644
--- a/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp
+++ b/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp
@@ -121,7 +121,7 @@ QSize QSvgIconEngine::actualSize(const QSize &size, QIcon::Mode mode,
if (!pm.isNull() && pm.size() == size)
return size;
}
-
+
QSvgRenderer renderer;
d->loadDataForModeAndState(&renderer, mode, state);
if (renderer.isValid()) {
@@ -158,9 +158,13 @@ void QSvgIconEnginePrivate::loadDataForModeAndState(QSvgRenderer *renderer, QIco
QPixmap QSvgIconEngine::pixmap(const QSize &size, QIcon::Mode mode,
QIcon::State state)
-{
+{
QPixmap pm;
+ QString pmckey(d->pmcKey(size, mode, state));
+ if (QPixmapCache::find(pmckey, pm))
+ return pm;
+
if (d->addedPixmaps) {
pm = d->addedPixmaps->value(d->hashKey(mode, state));
if (!pm.isNull() && pm.size() == size)
@@ -176,10 +180,6 @@ QPixmap QSvgIconEngine::pixmap(const QSize &size, QIcon::Mode mode,
if (!actualSize.isNull())
actualSize.scale(size, Qt::KeepAspectRatio);
- QString pmckey(d->pmcKey(actualSize, mode, state));
- if (QPixmapCache::find(pmckey, pm))
- return pm;
-
QImage img(actualSize, QImage::Format_ARGB32_Premultiplied);
img.fill(0x00000000);
QPainter p(&img);
diff --git a/src/plugins/imageformats/ico/qicohandler.cpp b/src/plugins/imageformats/ico/qicohandler.cpp
index 299190b..da5ae15 100644
--- a/src/plugins/imageformats/ico/qicohandler.cpp
+++ b/src/plugins/imageformats/ico/qicohandler.cpp
@@ -57,38 +57,38 @@
// in an ICO file.
typedef struct
{
- quint8 bWidth; // Width of the image
- quint8 bHeight; // Height of the image (times 2)
- quint8 bColorCount; // Number of colors in image (0 if >=8bpp) [ not ture ]
- quint8 bReserved; // Reserved
- quint16 wPlanes; // Color Planes
- quint16 wBitCount; // Bits per pixel
- quint32 dwBytesInRes; // how many bytes in this resource?
- quint32 dwImageOffset; // where in the file is this image
+ quint8 bWidth; // Width of the image
+ quint8 bHeight; // Height of the image (times 2)
+ quint8 bColorCount; // Number of colors in image (0 if >=8bpp) [ not ture ]
+ quint8 bReserved; // Reserved
+ quint16 wPlanes; // Color Planes
+ quint16 wBitCount; // Bits per pixel
+ quint32 dwBytesInRes; // how many bytes in this resource?
+ quint32 dwImageOffset; // where in the file is this image
} ICONDIRENTRY, *LPICONDIRENTRY;
#define ICONDIRENTRY_SIZE 16
typedef struct
{
- quint16 idReserved; // Reserved
- quint16 idType; // resource type (1 for icons)
- quint16 idCount; // how many images?
- ICONDIRENTRY idEntries[1]; // the entries for each image
+ quint16 idReserved; // Reserved
+ quint16 idType; // resource type (1 for icons)
+ quint16 idCount; // how many images?
+ ICONDIRENTRY idEntries[1]; // the entries for each image
} ICONDIR, *LPICONDIR;
#define ICONDIR_SIZE 6 // Exclude the idEntries field
-typedef struct { // BMP information header
- quint32 biSize; // size of this struct
- quint32 biWidth; // pixmap width
- quint32 biHeight; // pixmap height
- quint16 biPlanes; // should be 1
- quint16 biBitCount; // number of bits per pixel
- quint32 biCompression; // compression method
- quint32 biSizeImage; // size of image
- quint32 biXPelsPerMeter; // horizontal resolution
- quint32 biYPelsPerMeter; // vertical resolution
- quint32 biClrUsed; // number of colors used
- quint32 biClrImportant; // number of important colors
+typedef struct { // BMP information header
+ quint32 biSize; // size of this struct
+ quint32 biWidth; // pixmap width
+ quint32 biHeight; // pixmap height (specifies the combined height of the XOR and AND masks)
+ quint16 biPlanes; // should be 1
+ quint16 biBitCount; // number of bits per pixel
+ quint32 biCompression; // compression method
+ quint32 biSizeImage; // size of image
+ quint32 biXPelsPerMeter; // horizontal resolution
+ quint32 biYPelsPerMeter; // vertical resolution
+ quint32 biClrUsed; // number of colors used
+ quint32 biClrImportant; // number of important colors
} BMP_INFOHDR ,*LPBMP_INFOHDR;
#define BMP_INFOHDR_SIZE 40
@@ -108,7 +108,7 @@ private:
bool readHeader();
bool readIconEntry(int index, ICONDIRENTRY * iconEntry);
- bool readBMPHeader(ICONDIRENTRY & iconEntry, BMP_INFOHDR * header);
+ bool readBMPHeader(quint32 imageOffset, BMP_INFOHDR * header);
void findColorInfo(QImage & image);
void readColorTable(QImage & image);
@@ -254,7 +254,7 @@ ICOReader::ICOReader(QIODevice * iodevice)
int ICOReader::count()
{
if (readHeader())
- return iconDir.idCount;
+ return iconDir.idCount;
return 0;
}
@@ -268,17 +268,17 @@ bool ICOReader::canRead(QIODevice *iodev)
if (readIconDir(iodev, &ikonDir)) {
qint64 readBytes = ICONDIR_SIZE;
if (readIconDirEntry(iodev, &ikonDir.idEntries[0])) {
- readBytes += ICONDIRENTRY_SIZE;
- // ICO format does not have a magic identifier, so we read 6 different values, which will hopefully be enough to identify the file.
- if ( ikonDir.idReserved == 0
- && ikonDir.idType == 1
- && ikonDir.idEntries[0].bReserved == 0
- && ikonDir.idEntries[0].wPlanes <= 1
- && ikonDir.idEntries[0].wBitCount <= 32 // Bits per pixel
- && ikonDir.idEntries[0].dwBytesInRes >= 40 // Must be over 40, since sizeof (infoheader) == 40
- ) {
- isProbablyICO = true;
- }
+ readBytes += ICONDIRENTRY_SIZE;
+ // ICO format does not have a magic identifier, so we read 6 different values, which will hopefully be enough to identify the file.
+ if ( ikonDir.idReserved == 0
+ && ikonDir.idType == 1
+ && ikonDir.idEntries[0].bReserved == 0
+ && ikonDir.idEntries[0].wPlanes <= 1
+ && ikonDir.idEntries[0].wBitCount <= 32 // Bits per pixel
+ && ikonDir.idEntries[0].dwBytesInRes >= 40 // Must be over 40, since sizeof (infoheader) == 40
+ ) {
+ isProbablyICO = true;
+ }
if (iodev->isSequential()) {
// Our structs might be padded due to alignment, so we need to fetch each member before we ungetChar() !
@@ -323,8 +323,7 @@ bool ICOReader::canRead(QIODevice *iodev)
iodev->ungetChar((tmp >> 8) & 0xff);
iodev->ungetChar(tmp & 0xff);
}
-
- }
+ }
if (!iodev->isSequential()) iodev->seek(oldPos);
}
@@ -334,21 +333,21 @@ bool ICOReader::canRead(QIODevice *iodev)
bool ICOReader::readHeader()
{
if (iod && !headerRead) {
- startpos = iod->pos();
- if (readIconDir(iod, &iconDir)) {
- if (iconDir.idReserved == 0 || iconDir.idType == 1)
- headerRead = true;
- }
+ startpos = iod->pos();
+ if (readIconDir(iod, &iconDir)) {
+ if (iconDir.idReserved == 0 || iconDir.idType == 1)
+ headerRead = true;
+ }
}
return headerRead;
}
-bool ICOReader::readIconEntry(int index, ICONDIRENTRY * iconEntry)
+bool ICOReader::readIconEntry(int index, ICONDIRENTRY *iconEntry)
{
if (iod) {
- if (iod->seek(startpos + ICONDIR_SIZE + (index * ICONDIRENTRY_SIZE))) {
- return readIconDirEntry(iod, iconEntry);
+ if (iod->seek(startpos + ICONDIR_SIZE + (index * ICONDIRENTRY_SIZE))) {
+ return readIconDirEntry(iod, iconEntry);
}
}
return false;
@@ -356,49 +355,24 @@ bool ICOReader::readIconEntry(int index, ICONDIRENTRY * iconEntry)
-bool ICOReader::readBMPHeader(ICONDIRENTRY & iconEntry, BMP_INFOHDR * header)
+bool ICOReader::readBMPHeader(quint32 imageOffset, BMP_INFOHDR * header)
{
- memset(&icoAttrib, 0, sizeof(IcoAttrib));
if (iod) {
- if (iod->seek(startpos + iconEntry.dwImageOffset)) {
- if (readBMPInfoHeader(iod, header)) {
-
- icoAttrib.nbits = header->biBitCount ? header->biBitCount : iconEntry.wBitCount;
- icoAttrib.h = header->biHeight / 2; // this height is always double the iconEntry height (for the mask)
- icoAttrib.w = header->biWidth;
-
- switch (icoAttrib.nbits) {
- case 32:
- case 24:
- case 16:
- icoAttrib.depth = 32;
- break;
- case 8:
- case 4:
- icoAttrib.depth = 8;
- break;
- default:
- icoAttrib.depth = 1;
- }
-
- if ( icoAttrib.depth == 32 ) // there's no colormap
- icoAttrib.ncolors = 0;
- else // # colors used
- icoAttrib.ncolors = header->biClrUsed ? header->biClrUsed : 1 << icoAttrib.nbits;
- //qDebug() << "Bits:" << icoAttrib.nbits << "Depth:" << icoAttrib.depth << "Ncols:" << icoAttrib.ncolors;
- return TRUE;
- }
- }
+ if (iod->seek(startpos + imageOffset)) {
+ if (readBMPInfoHeader(iod, header)) {
+ return TRUE;
+ }
+ }
}
return FALSE;
}
void ICOReader::findColorInfo(QImage & image)
{
- if (icoAttrib.ncolors > 0) { // set color table
- readColorTable(image);
+ if (icoAttrib.ncolors > 0) { // set color table
+ readColorTable(image);
} else if (icoAttrib.nbits == 16) { // don't support RGB values for 15/16 bpp
- image = QImage();
+ image = QImage();
}
}
@@ -406,29 +380,29 @@ void ICOReader::readColorTable(QImage & image)
{
if (iod) {
image.setNumColors(icoAttrib.ncolors);
- uchar rgb[4];
- for (int i=0; i<icoAttrib.ncolors; i++) {
- if (iod->read((char*)rgb, 4) != 4) {
- image = QImage();
- break;
- }
- image.setColor(i, qRgb(rgb[2],rgb[1],rgb[0]));
- }
+ uchar rgb[4];
+ for (int i=0; i<icoAttrib.ncolors; i++) {
+ if (iod->read((char*)rgb, 4) != 4) {
+ image = QImage();
+ break;
+ }
+ image.setColor(i, qRgb(rgb[2],rgb[1],rgb[0]));
+ }
} else {
- image = QImage();
+ image = QImage();
}
}
void ICOReader::readBMP(QImage & image)
{
- if (icoAttrib.nbits == 1) { // 1 bit BMP image
- read1BitBMP(image);
- } else if (icoAttrib.nbits == 4) { // 4 bit BMP image
- read4BitBMP(image);
+ if (icoAttrib.nbits == 1) { // 1 bit BMP image
+ read1BitBMP(image);
+ } else if (icoAttrib.nbits == 4) { // 4 bit BMP image
+ read4BitBMP(image);
} else if (icoAttrib.nbits == 8) {
- read8BitBMP(image);
+ read8BitBMP(image);
} else if (icoAttrib.nbits == 16 || icoAttrib.nbits == 24 || icoAttrib.nbits == 32 ) { // 16,24,32 bit BMP image
- read16_24_32BMP(image);
+ read16_24_32BMP(image);
}
}
@@ -442,17 +416,17 @@ void ICOReader::read1BitBMP(QImage & image)
{
if (iod) {
- int h = image.height();
- int bpl = image.bytesPerLine();
+ int h = image.height();
+ int bpl = image.bytesPerLine();
- while (--h >= 0) {
- if (iod->read((char*)image.scanLine(h),bpl) != bpl) {
- image = QImage();
- break;
- }
- }
+ while (--h >= 0) {
+ if (iod->read((char*)image.scanLine(h),bpl) != bpl) {
+ image = QImage();
+ break;
+ }
+ }
} else {
- image = QImage();
+ image = QImage();
}
}
@@ -460,30 +434,30 @@ void ICOReader::read4BitBMP(QImage & image)
{
if (iod) {
- int h = icoAttrib.h;
- int buflen = ((icoAttrib.w+7)/8)*4;
- uchar *buf = new uchar[buflen];
- Q_CHECK_PTR(buf);
-
- while (--h >= 0) {
- if (iod->read((char*)buf,buflen) != buflen) {
- image = QImage();
- break;
- }
- register uchar *p = image.scanLine(h);
- uchar *b = buf;
- for (int i=0; i<icoAttrib.w/2; i++) { // convert nibbles to bytes
- *p++ = *b >> 4;
- *p++ = *b++ & 0x0f;
- }
- if (icoAttrib.w & 1) // the last nibble
- *p = *b >> 4;
- }
-
- delete [] buf;
+ int h = icoAttrib.h;
+ int buflen = ((icoAttrib.w+7)/8)*4;
+ uchar *buf = new uchar[buflen];
+ Q_CHECK_PTR(buf);
+
+ while (--h >= 0) {
+ if (iod->read((char*)buf,buflen) != buflen) {
+ image = QImage();
+ break;
+ }
+ register uchar *p = image.scanLine(h);
+ uchar *b = buf;
+ for (int i=0; i<icoAttrib.w/2; i++) { // convert nibbles to bytes
+ *p++ = *b >> 4;
+ *p++ = *b++ & 0x0f;
+ }
+ if (icoAttrib.w & 1) // the last nibble
+ *p = *b >> 4;
+ }
+
+ delete [] buf;
} else {
- image = QImage();
+ image = QImage();
}
}
@@ -491,52 +465,51 @@ void ICOReader::read8BitBMP(QImage & image)
{
if (iod) {
- int h = icoAttrib.h;
- int bpl = image.bytesPerLine();
+ int h = icoAttrib.h;
+ int bpl = image.bytesPerLine();
- while (--h >= 0) {
- if (iod->read((char *)image.scanLine(h), bpl) != bpl) {
- image = QImage();
- break;
- }
- }
+ while (--h >= 0) {
+ if (iod->read((char *)image.scanLine(h), bpl) != bpl) {
+ image = QImage();
+ break;
+ }
+ }
} else {
- image = QImage();
+ image = QImage();
}
}
void ICOReader::read16_24_32BMP(QImage & image)
{
if (iod) {
-
- int h = icoAttrib.h;
- register QRgb *p;
- QRgb *end;
- uchar *buf = new uchar[image.bytesPerLine()];
- int bpl = ((icoAttrib.w*icoAttrib.nbits+31)/32)*4;
- uchar *b;
-
- while (--h >= 0) {
- p = (QRgb *)image.scanLine(h);
- end = p + icoAttrib.w;
- if (iod->read((char *)buf, bpl) != bpl) {
- image = QImage();
- break;
- }
- b = buf;
- while (p < end) {
+ int h = icoAttrib.h;
+ register QRgb *p;
+ QRgb *end;
+ uchar *buf = new uchar[image.bytesPerLine()];
+ int bpl = ((icoAttrib.w*icoAttrib.nbits+31)/32)*4;
+ uchar *b;
+
+ while (--h >= 0) {
+ p = (QRgb *)image.scanLine(h);
+ end = p + icoAttrib.w;
+ if (iod->read((char *)buf, bpl) != bpl) {
+ image = QImage();
+ break;
+ }
+ b = buf;
+ while (p < end) {
if (icoAttrib.nbits == 24)
*p++ = qRgb(*(b+2), *(b+1), *b);
else if (icoAttrib.nbits == 32)
*p++ = qRgba(*(b+2), *(b+1), *b, *(b+3));
- b += icoAttrib.nbits/8;
- }
- }
+ b += icoAttrib.nbits/8;
+ }
+ }
- delete[] buf;
+ delete[] buf;
} else {
- image = QImage();
+ image = QImage();
}
}
@@ -550,7 +523,28 @@ QImage ICOReader::iconAt(int index)
if (readIconEntry(index, &iconEntry)) {
BMP_INFOHDR header;
- if (readBMPHeader(iconEntry, &header)) {
+ if (readBMPHeader(iconEntry.dwImageOffset, &header)) {
+ icoAttrib.nbits = header.biBitCount ? header.biBitCount : iconEntry.wBitCount;
+
+ switch (icoAttrib.nbits) {
+ case 32:
+ case 24:
+ case 16:
+ icoAttrib.depth = 32;
+ break;
+ case 8:
+ case 4:
+ icoAttrib.depth = 8;
+ break;
+ default:
+ icoAttrib.depth = 1;
+ }
+ if (icoAttrib.depth == 32) // there's no colormap
+ icoAttrib.ncolors = 0;
+ else // # colors used
+ icoAttrib.ncolors = header.biClrUsed ? header.biClrUsed : 1 << icoAttrib.nbits;
+ icoAttrib.w = iconEntry.bWidth;
+ icoAttrib.h = iconEntry.bHeight;
QImage::Format format = QImage::Format_ARGB32;
if (icoAttrib.nbits == 24)
@@ -605,8 +599,8 @@ QList<QImage> ICOReader::read(QIODevice * device)
QList<QImage> images;
ICOReader reader(device);
- for (int i=0; i<reader.count(); i++)
- images += reader.iconAt(i);
+ for (int i = 0; i < reader.count(); i++)
+ images += reader.iconAt(i);
return images;
}
@@ -659,8 +653,8 @@ bool ICOReader::write(QIODevice * device, const QList<QImage> & images)
}
maskImage = maskImage.convertToFormat(QImage::Format_Mono);
- int nbits = 32;
- int bpl_bmp = ((image.width()*nbits+31)/32)*4;
+ int nbits = 32;
+ int bpl_bmp = ((image.width()*nbits+31)/32)*4;
entries[i].bColorCount = 0;
entries[i].bReserved = 0;
@@ -670,7 +664,7 @@ bool ICOReader::write(QIODevice * device, const QList<QImage> & images)
entries[i].dwBytesInRes = BMP_INFOHDR_SIZE + (bpl_bmp * image.height())
+ (maskImage.bytesPerLine() * maskImage.height());
entries[i].wPlanes = 1;
- if (i==0)
+ if (i == 0)
entries[i].dwImageOffset = origOffset + ICONDIR_SIZE
+ (id.idCount * ICONDIRENTRY_SIZE);
else
@@ -695,7 +689,7 @@ bool ICOReader::write(QIODevice * device, const QList<QImage> & images)
uchar *b;
memset( buf, 0, bpl_bmp );
int y;
- for (y=image.height()-1; y>=0; y--) { // write the image bits
+ for (y = image.height() - 1; y >= 0; y--) { // write the image bits
// 32 bits
QRgb *p = (QRgb *)image.scanLine(y);
QRgb *end = p + image.width();
@@ -717,13 +711,10 @@ bool ICOReader::write(QIODevice * device, const QList<QImage> & images)
maskImage.invertPixels(); // seems as though it needs this
// NOTE! !! The mask is only flipped vertically - not horizontally !!
- for (y=maskImage.height()-1; y>=0; y--)
+ for (y = maskImage.height() - 1; y >= 0; y--)
buffer.write((char*)maskImage.scanLine(y), maskImage.bytesPerLine());
-
}
-
-
if (writeIconDir(device, id)) {
int i;
bool bOK = true;
@@ -731,7 +722,7 @@ bool ICOReader::write(QIODevice * device, const QList<QImage> & images)
bOK = writeIconDirEntry(device, entries[i]);
}
if (bOK) {
- for (i=0; i<id.idCount && bOK; i++) {
+ for (i = 0; i < id.idCount && bOK; i++) {
bOK = writeBMPInfoHeader(device, bmpHeaders[i]);
bOK &= (device->write(imageData[i]) == (int) imageData[i].size());
}
diff --git a/src/plugins/qpluginbase.pri b/src/plugins/qpluginbase.pri
index 446efab..ae39021 100644
--- a/src/plugins/qpluginbase.pri
+++ b/src/plugins/qpluginbase.pri
@@ -1,6 +1,6 @@
TEMPLATE = lib
isEmpty(QT_MAJOR_VERSION) {
- VERSION=4.5.1
+ VERSION=4.5.2
} else {
VERSION=$${QT_MAJOR_VERSION}.$${QT_MINOR_VERSION}.$${QT_PATCH_VERSION}
}
diff --git a/src/qt3support/dialogs/q3filedialog.cpp b/src/qt3support/dialogs/q3filedialog.cpp
index 85f81b3..b9f8196 100644
--- a/src/qt3support/dialogs/q3filedialog.cpp
+++ b/src/qt3support/dialogs/q3filedialog.cpp
@@ -631,6 +631,7 @@ public:
protected:
void keyPressEvent(QKeyEvent *e);
void focusOutEvent(QFocusEvent *e);
+ void emitDoRename();
signals:
void cancelRename();
@@ -1143,16 +1144,20 @@ void QRenameEdit::keyPressEvent(QKeyEvent *e)
void QRenameEdit::focusOutEvent(QFocusEvent *)
{
- if (!doRenameAlreadyEmitted) {
- doRenameAlreadyEmitted = true;
- emit doRename();
- }
+ if (!doRenameAlreadyEmitted)
+ emitDoRename();
}
void QRenameEdit::slotReturnPressed()
{
+ emitDoRename();
+}
+
+void QRenameEdit::emitDoRename()
+{
doRenameAlreadyEmitted = true;
emit doRename();
+ doRenameAlreadyEmitted = false;
}
/************************************************************************
diff --git a/src/scripttools/debugging/qscriptbreakpointswidget.cpp b/src/scripttools/debugging/qscriptbreakpointswidget.cpp
index aea1fe7..efb3047 100644
--- a/src/scripttools/debugging/qscriptbreakpointswidget.cpp
+++ b/src/scripttools/debugging/qscriptbreakpointswidget.cpp
@@ -225,7 +225,6 @@ public:
bool eventFilter(QObject *editor, QEvent *event)
{
-#if QT_VERSION >= 0x040500
if (QLineEdit *le = qobject_cast<QLineEdit*>(editor)) {
if (event->type() == QEvent::KeyPress) {
int key = static_cast<QKeyEvent*>(event)->key();
@@ -237,21 +236,18 @@ public:
}
}
}
-#endif
return QStyledItemDelegate::eventFilter(editor, event);
}
void setModelData(QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index) const
{
-#if QT_VERSION >= 0x040500
if (index.column() == 2) {
// check that the syntax is OK
QString condition = qobject_cast<QLineEdit*>(editor)->text();
if (QScriptEngine::checkSyntax(condition).state() != QScriptSyntaxCheckResult::Valid)
return;
}
-#endif
QStyledItemDelegate::setModelData(editor, model, index);
}
@@ -261,11 +257,7 @@ private Q_SLOTS:
QWidget *editor = qobject_cast<QWidget*>(sender());
QPalette pal = editor->palette();
QColor col;
-#if QT_VERSION >= 0x040500
bool ok = (QScriptEngine::checkSyntax(text).state() == QScriptSyntaxCheckResult::Valid);
-#else
- bool ok = true;
-#endif
if (ok) {
col = Qt::white;
} else {
diff --git a/src/scripttools/debugging/qscriptcompletiontask.cpp b/src/scripttools/debugging/qscriptcompletiontask.cpp
index 3767505..119b96a 100644
--- a/src/scripttools/debugging/qscriptcompletiontask.cpp
+++ b/src/scripttools/debugging/qscriptcompletiontask.cpp
@@ -162,11 +162,7 @@ void QScriptCompletionTaskPrivate::completeScriptExpression()
obj = ctx->thisObject();
} else {
QScriptValueList scopeChain;
-#if QT_VERSION >= 0x040500
scopeChain = ctx->scopeChain();
-#else
- scopeChain.append(ctx->activationObject());
-#endif
for (int i = 0; i < scopeChain.size(); ++i) {
QScriptValue oo = scopeChain.at(i).property(topLevelIdent);
if (oo.isObject()) {
@@ -180,11 +176,7 @@ void QScriptCompletionTaskPrivate::completeScriptExpression()
if (obj.isValid())
objects.append(obj);
} else {
-#if QT_VERSION >= 0x040500
objects << ctx->scopeChain();
-#else
- objects.append(ctx->activationObject());
-#endif
QStringList keywords;
keywords.append(QString::fromLatin1("this"));
keywords.append(QString::fromLatin1("true"));
diff --git a/src/scripttools/debugging/qscriptdebugger.cpp b/src/scripttools/debugging/qscriptdebugger.cpp
index 5a356ae..ce43572 100644
--- a/src/scripttools/debugging/qscriptdebugger.cpp
+++ b/src/scripttools/debugging/qscriptdebugger.cpp
@@ -663,11 +663,7 @@ QString QScriptDebuggerPrivate::toolTip(int frameIndex, int lineNumber,
objects.append(ctx->thisObject());
++pathIndex;
} else {
-#if QT_VERSION >= 0x040500
objects << ctx->scopeChain();
-#else
- objects.append(ctx->activationObject());
-#endif
}
for (int i = 0; i < objects.size(); ++i) {
QScriptValue val = objects.at(i);
@@ -991,13 +987,11 @@ public:
qint64 scriptId = m_added.at(m_index);
m_debugger->scriptsModel->addScript(scriptId, data);
-#if QT_VERSION >= 0x040500
// ### could be slow, might want to do this in a separate thread
QString xml = qt_scriptToXml(data.contents(), data.baseLineNumber());
QScriptXmlParser::Result extraInfo = QScriptXmlParser::parse(xml);
m_debugger->scriptsModel->addExtraScriptInfo(
scriptId, extraInfo.functionsInfo, extraInfo.executableLineNumbers);
-#endif
if (++m_index < m_added.size())
frontend.scheduleGetScriptData(m_added.at(m_index));
diff --git a/src/scripttools/debugging/qscriptdebuggeragent.cpp b/src/scripttools/debugging/qscriptdebuggeragent.cpp
index fcba033..0ea9c99 100644
--- a/src/scripttools/debugging/qscriptdebuggeragent.cpp
+++ b/src/scripttools/debugging/qscriptdebuggeragent.cpp
@@ -88,16 +88,9 @@ QScriptDebuggerAgentPrivate *QScriptDebuggerAgentPrivate::get(
*/
QScriptDebuggerAgent::QScriptDebuggerAgent(
QScriptDebuggerBackendPrivate *backend, QScriptEngine *engine)
-#if QT_VERSION >= 0x040500
: QScriptEngineAgent(*new QScriptDebuggerAgentPrivate, engine)
-#else
- : QScriptEngineAgent(engine), d_ptr(new QScriptDebuggerAgentPrivate)
-#endif
{
Q_D(QScriptDebuggerAgent);
-#if QT_VERSION < 0x040500
- d_ptr->q_ptr = this;
-#endif
d->backend = backend;
QScriptContext *ctx = engine->currentContext();
@@ -117,9 +110,6 @@ QScriptDebuggerAgent::~QScriptDebuggerAgent()
Q_D(QScriptDebuggerAgent);
if (d->backend)
d->backend->agentDestroyed(this);
-#if QT_VERSION < 0x040500
- delete d_ptr;
-#endif
}
/*!
@@ -712,12 +702,7 @@ void QScriptDebuggerAgent::exceptionCatch(qint64 scriptId,
*/
bool QScriptDebuggerAgent::supportsExtension(Extension extension) const
{
-#if QT_VERSION >= 0x040500
return (extension == DebuggerInvocationRequest);
-#else
- Q_UNUSED(extension);
- return false;
-#endif
}
/*!
@@ -727,7 +712,6 @@ QVariant QScriptDebuggerAgent::extension(Extension extension,
const QVariant &argument)
{
Q_UNUSED(extension);
-#if QT_VERSION >= 0x040500
Q_D(QScriptDebuggerAgent);
Q_ASSERT(extension == DebuggerInvocationRequest);
QVariantList lst = argument.toList();
@@ -739,9 +723,6 @@ QVariant QScriptDebuggerAgent::extension(Extension extension,
d->backend->debuggerInvocationRequest(
scriptId, lineNumber, columnNumber);
}
-#else
- Q_UNUSED(argument);
-#endif
return QVariant();
}
diff --git a/src/scripttools/debugging/qscriptdebuggeragent_p.h b/src/scripttools/debugging/qscriptdebuggeragent_p.h
index 556b17b..28ec46a 100644
--- a/src/scripttools/debugging/qscriptdebuggeragent_p.h
+++ b/src/scripttools/debugging/qscriptdebuggeragent_p.h
@@ -125,9 +125,6 @@ public:
const QVariant &argument = QVariant());
private:
-#if QT_VERSION < 0x040500
- QScriptDebuggerAgentPrivate *d_ptr;
-#endif
Q_DECLARE_PRIVATE(QScriptDebuggerAgent)
Q_DISABLE_COPY(QScriptDebuggerAgent)
};
diff --git a/src/scripttools/debugging/qscriptdebuggeragent_p_p.h b/src/scripttools/debugging/qscriptdebuggeragent_p_p.h
index cf6fd1a..313b1c0 100644
--- a/src/scripttools/debugging/qscriptdebuggeragent_p_p.h
+++ b/src/scripttools/debugging/qscriptdebuggeragent_p_p.h
@@ -68,9 +68,7 @@ QT_BEGIN_NAMESPACE
class QScriptDebuggerAgent;
class QScriptDebuggerAgentPrivate
-#if QT_VERSION >= 0x040500
: public QScriptEngineAgentPrivate
-#endif
{
Q_DECLARE_PUBLIC(QScriptDebuggerAgent)
public:
@@ -125,10 +123,6 @@ public:
int statementCounter;
QScriptDebuggerBackendPrivate *backend;
-
-#if QT_VERSION < 0x040500
- QScriptDebuggerAgent *q_ptr;
-#endif
};
QT_END_NAMESPACE
diff --git a/src/scripttools/debugging/qscriptdebuggerbackend.cpp b/src/scripttools/debugging/qscriptdebuggerbackend.cpp
index 24a3847..3c29130 100644
--- a/src/scripttools/debugging/qscriptdebuggerbackend.cpp
+++ b/src/scripttools/debugging/qscriptdebuggerbackend.cpp
@@ -615,13 +615,11 @@ void QScriptDebuggerBackend::doPendingEvaluate(bool postEvent)
// push a new context and initialize its scope chain etc.
{
QScriptContext *evalContext = engine()->pushContext();
-#if QT_VERSION >= 0x040500
QScriptValueList scopeChain = ctx->scopeChain();
if (scopeChain.isEmpty())
scopeChain.append(engine()->globalObject());
while (!scopeChain.isEmpty())
evalContext->pushScope(scopeChain.takeLast());
-#endif
evalContext->setActivationObject(ctx->activationObject());
evalContext->setThisObject(ctx->thisObject());
}
diff --git a/src/scripttools/debugging/qscriptdebuggercommandexecutor.cpp b/src/scripttools/debugging/qscriptdebuggercommandexecutor.cpp
index e36386d..1be8c5f 100644
--- a/src/scripttools/debugging/qscriptdebuggercommandexecutor.cpp
+++ b/src/scripttools/debugging/qscriptdebuggercommandexecutor.cpp
@@ -287,13 +287,9 @@ QScriptDebuggerResponse QScriptDebuggerCommandExecutor::execute(
QScriptContext *ctx = backend->context(command.contextIndex());
if (ctx) {
QScriptDebuggerValueList dest;
-#if QT_VERSION >= 0x040500
QScriptValueList src = ctx->scopeChain();
for (int i = 0; i < src.size(); ++i)
dest.append(src.at(i));
-#else
- dest.append(ctx->activationObject());
-#endif
response.setResult(dest);
} else {
response.setError(QScriptDebuggerResponse::InvalidContextIndex);
diff --git a/src/scripttools/debugging/qscriptdebuggerconsoleglobalobject.cpp b/src/scripttools/debugging/qscriptdebuggerconsoleglobalobject.cpp
index 0018b92..f923508 100644
--- a/src/scripttools/debugging/qscriptdebuggerconsoleglobalobject.cpp
+++ b/src/scripttools/debugging/qscriptdebuggerconsoleglobalobject.cpp
@@ -448,12 +448,7 @@ QStringList QScriptDebuggerConsoleGlobalObject::getCommandCompletions(const QStr
bool QScriptDebuggerConsoleGlobalObject::checkSyntax(const QString &program)
{
-#if QT_VERSION >= 0x040500
return (QScriptEngine::checkSyntax(program).state() == QScriptSyntaxCheckResult::Valid);
-#else
- Q_UNUSED(program);
- return true;
-#endif
}
void QScriptDebuggerConsoleGlobalObject::setEvaluateAction(int action)
diff --git a/src/scripttools/debugging/qscriptdebuggerlocalswidget.cpp b/src/scripttools/debugging/qscriptdebuggerlocalswidget.cpp
index a4919be..60fe48d 100644
--- a/src/scripttools/debugging/qscriptdebuggerlocalswidget.cpp
+++ b/src/scripttools/debugging/qscriptdebuggerlocalswidget.cpp
@@ -206,11 +206,7 @@ private Q_SLOTS:
QWidget *editor = qobject_cast<QWidget*>(sender());
QPalette pal = editor->palette();
QColor col;
-#if QT_VERSION >= 0x040500
bool ok = (QScriptEngine::checkSyntax(text).state() == QScriptSyntaxCheckResult::Valid);
-#else
- bool ok = true;
-#endif
if (ok) {
col = Qt::white;
} else {
@@ -277,12 +273,10 @@ bool QScriptDebuggerLocalsItemDelegate::eventFilter(QObject *watched, QEvent *ev
return QStyledItemDelegate::eventFilter(watched, event);
QKeyEvent *ke = static_cast<QKeyEvent*>(event);
if ((ke->key() == Qt::Key_Enter) || (ke->key() == Qt::Key_Return)) {
-#if QT_VERSION >= 0x040500
if (QScriptEngine::checkSyntax(le->text()).state() != QScriptSyntaxCheckResult::Valid) {
// ignore when script contains syntax error
return true;
}
-#endif
}
if (ke->key() != Qt::Key_Tab)
return QStyledItemDelegate::eventFilter(watched, event);
@@ -296,14 +290,12 @@ void QScriptDebuggerLocalsItemDelegate::setModelData(
QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index) const
{
-#if QT_VERSION >= 0x040500
if (index.column() == 1) {
// check that the syntax is OK
QString expression = qobject_cast<QLineEdit*>(editor)->text();
if (QScriptEngine::checkSyntax(expression).state() != QScriptSyntaxCheckResult::Valid)
return;
}
-#endif
QStyledItemDelegate::setModelData(editor, model, index);
}
diff --git a/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp b/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp
index 20350f6..fa30d84 100644
--- a/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp
+++ b/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp
@@ -410,11 +410,7 @@ void QScriptDebuggerScriptedConsoleCommandJob::start()
for (int i = 0; i < d->arguments.size(); ++i)
args.append(QScriptValue(engine, d->arguments.at(i)));
QScriptDebuggerConsoleGlobalObject *global;
-#if QT_VERSION >= 0x040500
global = qobject_cast<QScriptDebuggerConsoleGlobalObject*>(engine->globalObject().toQObject());
-#else
- global = qobject_cast<QScriptDebuggerConsoleGlobalObject*>(engine->globalObject().scope().toQObject());
-#endif
Q_ASSERT(global != 0);
global->setScheduler(this);
global->setResponseHandler(this);
@@ -444,11 +440,7 @@ void QScriptDebuggerScriptedConsoleCommandJob::handleResponse(
args.append(qScriptValueFromValue(engine, response));
args.append(QScriptValue(engine, commandId));
QScriptDebuggerConsoleGlobalObject *global;
-#if QT_VERSION >= 0x040500
global = qobject_cast<QScriptDebuggerConsoleGlobalObject*>(engine->globalObject().toQObject());
-#else
- global = qobject_cast<QScriptDebuggerConsoleGlobalObject*>(engine->globalObject().scope().toQObject());
-#endif
Q_ASSERT(global != 0);
global->setScheduler(this);
global->setResponseHandler(this);
@@ -566,12 +558,7 @@ QScriptDebuggerScriptedConsoleCommand *QScriptDebuggerScriptedConsoleCommand::pa
QScriptDebuggerConsoleGlobalObject *cppGlobal = new QScriptDebuggerConsoleGlobalObject();
QScriptValue global = engine->newQObject(cppGlobal,
QScriptEngine::ScriptOwnership,
-#if QT_VERSION >= 0x040500
QScriptEngine::ExcludeSuperClassContents);
-#else
- QScriptEngine::ExcludeSuperClassMethods
- | QScriptEngine::ExcludeSuperClassProperties);
-#endif
{
QScriptValueIterator it(engine->globalObject());
while (it.hasNext()) {
@@ -579,12 +566,7 @@ QScriptDebuggerScriptedConsoleCommand *QScriptDebuggerScriptedConsoleCommand::pa
global.setProperty(it.scriptName(), it.value(), it.flags());
}
}
-#if QT_VERSION >= 0x040500
engine->setGlobalObject(global);
-#else
- engine->globalObject().setScope(global);
- global = engine->globalObject();
-#endif
cppGlobal->setMessageHandler(messageHandler);
QScriptValue ret = engine->evaluate(program, fileName);
diff --git a/src/scripttools/debugging/qscriptedit.cpp b/src/scripttools/debugging/qscriptedit.cpp
index 2bc0a40..7c2a72c 100644
--- a/src/scripttools/debugging/qscriptedit.cpp
+++ b/src/scripttools/debugging/qscriptedit.cpp
@@ -342,11 +342,9 @@ void QScriptEdit::extraAreaPaintEvent(QPaintEvent *e)
icon.paint(&painter, r, Qt::AlignCenter);
}
-#if QT_VERSION >= 0x040500
if (!m_executableLineNumbers.contains(lineNumber))
painter.setPen(pal.color(QPalette::Mid));
else
-#endif
painter.setPen(QColor(Qt::darkCyan));
QString number = QString::number(lineNumber);
painter.drawText(rect.x() + markWidth, (int)top, rect.x() + extraAreaWidth - markWidth - 4,
@@ -370,10 +368,8 @@ void QScriptEdit::extraAreaMouseEvent(QMouseEvent *e)
if (e->type() == QEvent::MouseMove && e->buttons() == 0) { // mouse tracking
bool hand = (e->pos().x() <= markWidth);
-#if QT_VERSION >= 0x040500
int lineNumber = cursor.blockNumber() + m_baseLineNumber;
hand = hand && m_executableLineNumbers.contains(lineNumber);
-#endif
#ifndef QT_NO_CURSOR
if (hand != (m_extraArea->cursor().shape() == Qt::PointingHandCursor))
m_extraArea->setCursor(hand ? Qt::PointingHandCursor : Qt::ArrowCursor);
@@ -382,12 +378,8 @@ void QScriptEdit::extraAreaMouseEvent(QMouseEvent *e)
if (e->type() == QEvent::MouseButtonPress) {
if (e->button() == Qt::LeftButton) {
-#if QT_VERSION >= 0x040500
int lineNumber = cursor.blockNumber() + m_baseLineNumber;
bool executable = m_executableLineNumbers.contains(lineNumber);
-#else
- bool executable = true;
-#endif
if ((e->pos().x() <= markWidth) && executable)
m_extraAreaToggleBlockNumber = cursor.blockNumber();
else
@@ -402,10 +394,8 @@ void QScriptEdit::extraAreaMouseEvent(QMouseEvent *e)
}
} else if (e->button() == Qt::RightButton) {
int lineNumber = cursor.blockNumber() + m_baseLineNumber;
-#if QT_VERSION >= 0x040500
if (!m_executableLineNumbers.contains(lineNumber))
return;
-#endif
bool has = m_breakpoints.contains(lineNumber);
QMenu *popup = new QMenu();
QAction *toggleAct = new QAction(QObject::tr("Toggle Breakpoint"), popup);
diff --git a/src/scripttools/debugging/qscriptenginedebugger.h b/src/scripttools/debugging/qscriptenginedebugger.h
index d5e127f..a4853f0 100644
--- a/src/scripttools/debugging/qscriptenginedebugger.h
+++ b/src/scripttools/debugging/qscriptenginedebugger.h
@@ -48,11 +48,7 @@ QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
-#if QT_VERSION >= 0x040500
QT_MODULE(ScriptTools)
-#else
-# define Q_SCRIPTTOOLS_EXPORT
-#endif
class QAction;
class QScriptEngine;
diff --git a/src/sql/drivers/db2/qsql_db2.cpp b/src/sql/drivers/db2/qsql_db2.cpp
index 69383f7..11d0041 100644
--- a/src/sql/drivers/db2/qsql_db2.cpp
+++ b/src/sql/drivers/db2/qsql_db2.cpp
@@ -49,6 +49,7 @@
#include <qstringlist.h>
#include <qvarlengtharray.h>
#include <qvector.h>
+#include <QDebug>
#ifndef UNICODE
#define UNICODE
@@ -87,8 +88,19 @@ public:
{}
~QDB2ResultPrivate()
{
- for (int i = 0; i < valueCache.count(); ++i)
+ emptyValueCache();
+ }
+ void clearValueCache()
+ {
+ for (int i = 0; i < valueCache.count(); ++i) {
delete valueCache[i];
+ valueCache[i] = NULL;
+ }
+ }
+ void emptyValueCache()
+ {
+ clearValueCache();
+ valueCache.clear();
}
const QDB2DriverPrivate* dp;
@@ -544,7 +556,7 @@ bool QDB2Result::reset (const QString& query)
SQLRETURN r;
d->recInf.clear();
- d->valueCache.clear();
+ d->emptyValueCache();
if (!qMakeStatement(d, isForwardOnly()))
return false;
@@ -568,6 +580,7 @@ bool QDB2Result::reset (const QString& query)
setSelect(false);
}
d->valueCache.resize(count);
+ d->valueCache.fill(NULL);
setActive(true);
return true;
}
@@ -579,7 +592,7 @@ bool QDB2Result::prepare(const QString& query)
SQLRETURN r;
d->recInf.clear();
- d->valueCache.clear();
+ d->emptyValueCache();
if (!qMakeStatement(d, isForwardOnly()))
return false;
@@ -607,7 +620,7 @@ bool QDB2Result::exec()
SQLRETURN r;
d->recInf.clear();
- d->valueCache.clear();
+ d->emptyValueCache();
if (!qMakeStatement(d, isForwardOnly(), false))
return false;
@@ -811,6 +824,7 @@ bool QDB2Result::exec()
}
setActive(true);
d->valueCache.resize(count);
+ d->valueCache.fill(NULL);
//get out parameters
if (!hasOutValues())
@@ -858,7 +872,7 @@ bool QDB2Result::fetch(int i)
return false;
if (i == at())
return true;
- d->valueCache.fill(0);
+ d->clearValueCache();
int actualIdx = i + 1;
if (actualIdx <= 0) {
setAt(QSql::BeforeFirstRow);
@@ -887,7 +901,7 @@ bool QDB2Result::fetch(int i)
bool QDB2Result::fetchNext()
{
SQLRETURN r;
- d->valueCache.fill(0);
+ d->clearValueCache();
r = SQLFetchScroll(d->hStmt,
SQL_FETCH_NEXT,
0);
@@ -907,7 +921,7 @@ bool QDB2Result::fetchFirst()
return false;
if (isForwardOnly())
return fetchNext();
- d->valueCache.fill(0);
+ d->clearValueCache();
SQLRETURN r;
r = SQLFetchScroll(d->hStmt,
SQL_FETCH_FIRST,
@@ -923,7 +937,7 @@ bool QDB2Result::fetchFirst()
bool QDB2Result::fetchLast()
{
- d->valueCache.fill(0);
+ d->clearValueCache();
int i = at();
if (i == QSql::AfterLastRow) {
@@ -1044,7 +1058,7 @@ QVariant QDB2Result::data(int field)
case QSql::HighPrecision:
default:
// length + 1 for the comma
- v = new QVariant(qGetStringData(d->hStmt, field, info.length() + 1, isNull));
+ v = new QVariant(value);
ok = true;
break;
}
@@ -1101,7 +1115,7 @@ bool QDB2Result::nextResult()
setActive(false);
setAt(QSql::BeforeFirstRow);
d->recInf.clear();
- d->valueCache.clear();
+ d->emptyValueCache();
setSelect(false);
SQLRETURN r = SQLMoreResults(d->hStmt);
@@ -1120,6 +1134,7 @@ bool QDB2Result::nextResult()
d->recInf.append(qMakeFieldInfo(d, i));
d->valueCache.resize(fieldCount);
+ d->valueCache.fill(NULL);
setActive(true);
return true;
@@ -1167,7 +1182,7 @@ QDB2Driver::~QDB2Driver()
delete d;
}
-bool QDB2Driver::open(const QString& db, const QString& user, const QString& password, const QString&, int,
+bool QDB2Driver::open(const QString& db, const QString& user, const QString& password, const QString& host, int port,
const QString& connOpts)
{
if (isOpen())
@@ -1190,6 +1205,8 @@ bool QDB2Driver::open(const QString& db, const QString& user, const QString& pas
setOpenError(true);
return false;
}
+
+ QString protocol;
// Set connection attributes
const QStringList opts(connOpts.split(QLatin1Char(';'), QString::SkipEmptyParts));
for (int i = 0; i < opts.count(); ++i) {
@@ -1220,7 +1237,10 @@ bool QDB2Driver::open(const QString& db, const QString& user, const QString& pas
} else if (opt == QLatin1String("SQL_ATTR_LOGIN_TIMEOUT")) {
v = val.toUInt();
r = SQLSetConnectAttr(d->hDbc, SQL_ATTR_LOGIN_TIMEOUT, (SQLPOINTER) v, 0);
- } else {
+ } else if (opt.compare(QLatin1String("PROTOCOL"), Qt::CaseInsensitive) == 0) {
+ protocol = tmp;
+ }
+ else {
qWarning("QDB2Driver::open: Unknown connection attribute '%s'",
tmp.toLocal8Bit().constData());
}
@@ -1229,9 +1249,18 @@ bool QDB2Driver::open(const QString& db, const QString& user, const QString& pas
"Unable to set connection attribute '%1'").arg(opt), d);
}
+ if (protocol.isEmpty())
+ protocol = QLatin1String("PROTOCOL=TCPIP");
+
+ if (port < 0 )
+ port = 50000;
+
QString connQStr;
- connQStr = QLatin1String("DSN=") + db + QLatin1String(";UID=") + user + QLatin1String(";PWD=")
- + password;
+ connQStr = protocol + QLatin1String(";DATABASE=") + db + QLatin1String(";HOSTNAME=") + host
+ + QLatin1String(";PORT=") + QString::number(port) + QLatin1String(";UID=") + user
+ + QLatin1String(";PWD=") + password;
+
+
SQLTCHAR connOut[SQL_MAX_OPTION_STRING_LENGTH];
SQLSMALLINT cb;
@@ -1250,7 +1279,7 @@ bool QDB2Driver::open(const QString& db, const QString& user, const QString& pas
return false;
}
- d->user = user.toUpper();
+ d->user = user;
setOpen(true);
setOpenError(false);
return true;
@@ -1295,10 +1324,25 @@ QSqlRecord QDB2Driver::record(const QString& tableName) const
SQLHANDLE hStmt;
QString catalog, schema, table;
- qSplitTableQualifier(tableName.toUpper(), &catalog, &schema, &table);
+ qSplitTableQualifier(tableName, &catalog, &schema, &table);
if (schema.isEmpty())
schema = d->user;
+ if (isIdentifierEscaped(catalog, QSqlDriver::TableName))
+ catalog = stripDelimiters(catalog, QSqlDriver::TableName);
+ else
+ catalog = catalog.toUpper();
+
+ if (isIdentifierEscaped(schema, QSqlDriver::TableName))
+ schema = stripDelimiters(schema, QSqlDriver::TableName);
+ else
+ schema = schema.toUpper();
+
+ if (isIdentifierEscaped(table, QSqlDriver::TableName))
+ table = stripDelimiters(table, QSqlDriver::TableName);
+ else
+ table = table.toUpper();
+
SQLRETURN r = SQLAllocHandle(SQL_HANDLE_STMT,
d->hDbc,
&hStmt);
@@ -1312,6 +1356,9 @@ QSqlRecord QDB2Driver::record(const QString& tableName) const
(SQLPOINTER) SQL_CURSOR_FORWARD_ONLY,
SQL_IS_UINTEGER);
+
+ //Aside: szSchemaName and szTableName parameters of SQLColumns
+ //are case sensitive search patterns, so no escaping is used.
r = SQLColumns(hStmt,
NULL,
0,
@@ -1392,7 +1439,13 @@ QStringList QDB2Driver::tables(QSql::TableType type) const
bool isNull;
QString fieldVal = qGetStringData(hStmt, 2, -1, isNull);
QString userVal = qGetStringData(hStmt, 1, -1, isNull);
- if (userVal != d->user)
+ QString user = d->user;
+ if ( isIdentifierEscaped(user, QSqlDriver::TableName))
+ user = stripDelimiters(user, QSqlDriver::TableName);
+ else
+ user = user.toUpper();
+
+ if (userVal != user)
fieldVal = userVal + QLatin1Char('.') + fieldVal;
tl.append(fieldVal);
r = SQLFetchScroll(hStmt,
@@ -1423,7 +1476,23 @@ QSqlIndex QDB2Driver::primaryIndex(const QString& tablename) const
return index;
}
QString catalog, schema, table;
- qSplitTableQualifier(tablename.toUpper(), &catalog, &schema, &table);
+ qSplitTableQualifier(tablename, &catalog, &schema, &table);
+
+ if (isIdentifierEscaped(catalog, QSqlDriver::TableName))
+ catalog = stripDelimiters(catalog, QSqlDriver::TableName);
+ else
+ catalog = catalog.toUpper();
+
+ if (isIdentifierEscaped(schema, QSqlDriver::TableName))
+ schema = stripDelimiters(schema, QSqlDriver::TableName);
+ else
+ schema = schema.toUpper();
+
+ if (isIdentifierEscaped(table, QSqlDriver::TableName))
+ table = stripDelimiters(table, QSqlDriver::TableName);
+ else
+ table = table.toUpper();
+
r = SQLSetStmtAttr(hStmt,
SQL_ATTR_CURSOR_TYPE,
(SQLPOINTER)SQL_CURSOR_FORWARD_ONLY,
diff --git a/src/sql/drivers/ibase/qsql_ibase.cpp b/src/sql/drivers/ibase/qsql_ibase.cpp
index 64f13b5..9eeb41d 100644
--- a/src/sql/drivers/ibase/qsql_ibase.cpp
+++ b/src/sql/drivers/ibase/qsql_ibase.cpp
@@ -1270,27 +1270,27 @@ QSqlRecord QIBaseResult::record() const
v = d->sqlda->sqlvar[i];
QSqlField f(QString::fromLatin1(v.aliasname, v.aliasname_length).simplified(),
qIBaseTypeName2(v.sqltype, v.sqlscale < 0));
- QSqlQuery q(new QIBaseResult(d->db));
- q.setForwardOnly(true);
- q.exec(QLatin1String("select b.RDB$FIELD_PRECISION, b.RDB$FIELD_SCALE, b.RDB$FIELD_LENGTH, a.RDB$NULL_FLAG "
- "FROM RDB$RELATION_FIELDS a, RDB$FIELDS b "
- "WHERE b.RDB$FIELD_NAME = a.RDB$FIELD_SOURCE "
- "AND a.RDB$RELATION_NAME = '") + QString::fromAscii(v.relname, v.relname_length).toUpper() + QLatin1String("' "
- "AND a.RDB$FIELD_NAME = '") + QString::fromAscii(v.sqlname, v.sqlname_length).toUpper() + QLatin1String("' "));
- if(q.first()) {
- if(v.sqlscale < 0) {
- f.setLength(q.value(0).toInt());
- f.setPrecision(qAbs(q.value(1).toInt()));
- } else {
- f.setLength(q.value(2).toInt());
- f.setPrecision(0);
+ f.setLength(v.sqllen);
+ f.setPrecision(qAbs(v.sqlscale));
+ f.setRequiredStatus((v.sqltype & 1) == 0 ? QSqlField::Required : QSqlField::Optional);
+ if(v.sqlscale < 0) {
+ QSqlQuery q(new QIBaseResult(d->db));
+ q.setForwardOnly(true);
+ q.exec(QLatin1String("select b.RDB$FIELD_PRECISION, b.RDB$FIELD_SCALE, b.RDB$FIELD_LENGTH, a.RDB$NULL_FLAG "
+ "FROM RDB$RELATION_FIELDS a, RDB$FIELDS b "
+ "WHERE b.RDB$FIELD_NAME = a.RDB$FIELD_SOURCE "
+ "AND a.RDB$RELATION_NAME = '") + QString::fromAscii(v.relname, v.relname_length).toUpper() + QLatin1String("' "
+ "AND a.RDB$FIELD_NAME = '") + QString::fromAscii(v.sqlname, v.sqlname_length).toUpper() + QLatin1String("' "));
+ if(q.first()) {
+ if(v.sqlscale < 0) {
+ f.setLength(q.value(0).toInt());
+ f.setPrecision(qAbs(q.value(1).toInt()));
+ } else {
+ f.setLength(q.value(2).toInt());
+ f.setPrecision(0);
+ }
+ f.setRequiredStatus(q.value(3).toBool() ? QSqlField::Required : QSqlField::Optional);
}
- f.setRequiredStatus(q.value(3).toBool() ? QSqlField::Required : QSqlField::Optional);
- }
- else {
- f.setLength(0);
- f.setPrecision(0);
- f.setRequiredStatus(QSqlField::Unknown);
}
f.setSqlType(v.sqltype);
rec.append(f);
@@ -1552,12 +1552,16 @@ QSqlRecord QIBaseDriver::record(const QString& tablename) const
QSqlQuery q(createResult());
q.setForwardOnly(true);
-
+ QString table = tablename;
+ if (isIdentifierEscaped(table, QSqlDriver::TableName))
+ table = stripDelimiters(table, QSqlDriver::TableName);
+ else
+ table = table.toUpper();
q.exec(QLatin1String("SELECT a.RDB$FIELD_NAME, b.RDB$FIELD_TYPE, b.RDB$FIELD_LENGTH, "
"b.RDB$FIELD_SCALE, b.RDB$FIELD_PRECISION, a.RDB$NULL_FLAG "
"FROM RDB$RELATION_FIELDS a, RDB$FIELDS b "
"WHERE b.RDB$FIELD_NAME = a.RDB$FIELD_SOURCE "
- "AND a.RDB$RELATION_NAME = '") + tablename.toUpper() + QLatin1String("' "
+ "AND a.RDB$RELATION_NAME = '") + table + QLatin1String("' "
"ORDER BY a.RDB$FIELD_POSITION"));
while (q.next()) {
@@ -1585,12 +1589,18 @@ QSqlIndex QIBaseDriver::primaryIndex(const QString &table) const
if (!isOpen())
return index;
+ QString tablename = table;
+ if (isIdentifierEscaped(tablename, QSqlDriver::TableName))
+ tablename = stripDelimiters(tablename, QSqlDriver::TableName);
+ else
+ tablename = tablename.toUpper();
+
QSqlQuery q(createResult());
q.setForwardOnly(true);
q.exec(QLatin1String("SELECT a.RDB$INDEX_NAME, b.RDB$FIELD_NAME, d.RDB$FIELD_TYPE, d.RDB$FIELD_SCALE "
"FROM RDB$RELATION_CONSTRAINTS a, RDB$INDEX_SEGMENTS b, RDB$RELATION_FIELDS c, RDB$FIELDS d "
"WHERE a.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY' "
- "AND a.RDB$RELATION_NAME = '") + table.toUpper() +
+ "AND a.RDB$RELATION_NAME = '") + tablename +
QLatin1String(" 'AND a.RDB$INDEX_NAME = b.RDB$INDEX_NAME "
"AND c.RDB$RELATION_NAME = a.RDB$RELATION_NAME "
"AND c.RDB$FIELD_NAME = b.RDB$FIELD_NAME "
diff --git a/src/sql/drivers/mysql/qsql_mysql.cpp b/src/sql/drivers/mysql/qsql_mysql.cpp
index 9b57f3c..a84e840 100644
--- a/src/sql/drivers/mysql/qsql_mysql.cpp
+++ b/src/sql/drivers/mysql/qsql_mysql.cpp
@@ -1314,7 +1314,7 @@ QSqlIndex QMYSQLDriver::primaryIndex(const QString& tablename) const
QSqlQuery i(createResult());
QString stmt(QLatin1String("show index from %1;"));
QSqlRecord fil = record(tablename);
- i.exec(stmt.arg(escapeIdentifier(tablename, QSqlDriver::TableName)));
+ i.exec(stmt.arg(tablename));
while (i.isActive() && i.next()) {
if (i.value(2).toString() == QLatin1String("PRIMARY")) {
idx.append(fil.field(i.value(4).toString()));
@@ -1329,10 +1329,14 @@ QSqlIndex QMYSQLDriver::primaryIndex(const QString& tablename) const
QSqlRecord QMYSQLDriver::record(const QString& tablename) const
{
+ QString table=tablename;
+ if(isIdentifierEscaped(table, QSqlDriver::TableName))
+ table = stripDelimiters(table, QSqlDriver::TableName);
+
QSqlRecord info;
if (!isOpen())
return info;
- MYSQL_RES* r = mysql_list_fields(d->mysql, tablename.toLocal8Bit().constData(), 0);
+ MYSQL_RES* r = mysql_list_fields(d->mysql, table.toLocal8Bit().constData(), 0);
if (!r) {
return info;
}
@@ -1443,4 +1447,15 @@ QString QMYSQLDriver::escapeIdentifier(const QString &identifier, IdentifierType
return res;
}
+bool QMYSQLDriver::isIdentifierEscapedImplementation(const QString &identifier, IdentifierType type) const
+{
+ Q_UNUSED(type);
+ bool isLeftDelimited = (identifier.left(1) == QString(QLatin1Char('`')));
+ bool isRightDelimited = (identifier.right(1) == QString(QLatin1Char('`')));
+ if( identifier.size() > 2 && isLeftDelimited && isRightDelimited )
+ return true;
+ else
+ return false;
+}
+
QT_END_NAMESPACE
diff --git a/src/sql/drivers/mysql/qsql_mysql.h b/src/sql/drivers/mysql/qsql_mysql.h
index 97aa346..31d9dcf 100644
--- a/src/sql/drivers/mysql/qsql_mysql.h
+++ b/src/sql/drivers/mysql/qsql_mysql.h
@@ -123,6 +123,9 @@ public:
QVariant handle() const;
QString escapeIdentifier(const QString &identifier, IdentifierType type) const;
+protected Q_SLOTS:
+ bool isIdentifierEscapedImplementation(const QString &identifier, IdentifierType type) const;
+
protected:
bool beginTransaction();
bool commitTransaction();
diff --git a/src/sql/drivers/oci/qsql_oci.cpp b/src/sql/drivers/oci/qsql_oci.cpp
index 7017d6c..d63c482 100644
--- a/src/sql/drivers/oci/qsql_oci.cpp
+++ b/src/sql/drivers/oci/qsql_oci.cpp
@@ -2098,7 +2098,7 @@ bool QOCIDriver::open(const QString & db,
setOpen(true);
setOpenError(false);
- d->user = user.toUpper();
+ d->user = user;
return true;
}
@@ -2200,8 +2200,15 @@ QStringList QOCIDriver::tables(QSql::TableType type) const
"and owner != 'WKSYS'"
"and owner != 'CTXSYS'"
"and owner != 'WMSYS'"));
+
+ QString user = d->user;
+ if ( isIdentifierEscaped(user, QSqlDriver::TableName))
+ user = stripDelimiters(user, QSqlDriver::TableName);
+ else
+ user = user.toUpper();
+
while (t.next()) {
- if (t.value(0).toString() != d->user)
+ if (t.value(0).toString().toUpper() != user.toUpper())
tl.append(t.value(0).toString() + QLatin1String(".") + t.value(1).toString());
else
tl.append(t.value(1).toString());
@@ -2217,7 +2224,7 @@ QStringList QOCIDriver::tables(QSql::TableType type) const
"and owner != 'CTXSYS'"
"and owner != 'WMSYS'"));
while (t.next()) {
- if (t.value(0).toString() != d->user)
+ if (t.value(0).toString().toUpper() != d->user.toUpper())
tl.append(t.value(0).toString() + QLatin1String(".") + t.value(1).toString());
else
tl.append(t.value(1).toString());
@@ -2237,10 +2244,10 @@ void qSplitTableAndOwner(const QString & tname, QString * tbl,
{
int i = tname.indexOf(QLatin1Char('.')); // prefixed with owner?
if (i != -1) {
- *tbl = tname.right(tname.length() - i - 1).toUpper();
- *owner = tname.left(i).toUpper();
+ *tbl = tname.right(tname.length() - i - 1);
+ *owner = tname.left(i);
} else {
- *tbl = tname.toUpper();
+ *tbl = tname;
}
}
@@ -2256,7 +2263,7 @@ QSqlRecord QOCIDriver::record(const QString& tablename) const
QString stmt(QLatin1String("select column_name, data_type, data_length, "
"data_precision, data_scale, nullable, data_default%1"
"from all_tab_columns "
- "where upper(table_name)=%2"));
+ "where table_name=%2"));
if (d->serverVersion >= 9)
stmt = stmt.arg(QLatin1String(", char_length "));
else
@@ -2264,11 +2271,23 @@ QSqlRecord QOCIDriver::record(const QString& tablename) const
bool buildRecordInfo = false;
QString table, owner, tmpStmt;
qSplitTableAndOwner(tablename, &table, &owner);
+
+ if (isIdentifierEscaped(table, QSqlDriver::TableName))
+ table = stripDelimiters(table, QSqlDriver::TableName);
+ else
+ table = table.toUpper();
+
tmpStmt = stmt.arg(QLatin1Char('\'') + table + QLatin1Char('\''));
if (owner.isEmpty()) {
owner = d->user;
}
- tmpStmt += QLatin1String(" and upper(owner)='") + owner + QLatin1String("'");
+
+ if (isIdentifierEscaped(owner, QSqlDriver::TableName))
+ owner = stripDelimiters(owner, QSqlDriver::TableName);
+ else
+ owner = owner.toUpper();
+
+ tmpStmt += QLatin1String(" and owner='") + owner + QLatin1String("'");
t.setForwardOnly(true);
t.exec(tmpStmt);
if (!t.next()) { // try and see if the tablename is a synonym
@@ -2317,11 +2336,23 @@ QSqlIndex QOCIDriver::primaryIndex(const QString& tablename) const
bool buildIndex = false;
QString table, owner, tmpStmt;
qSplitTableAndOwner(tablename, &table, &owner);
- tmpStmt = stmt + QLatin1String(" and upper(a.table_name)='") + table + QLatin1String("'");
+
+ if (isIdentifierEscaped(table, QSqlDriver::TableName))
+ table = stripDelimiters(table, QSqlDriver::TableName);
+ else
+ table = table.toUpper();
+
+ tmpStmt = stmt + QLatin1String(" and a.table_name='") + table + QLatin1String("'");
if (owner.isEmpty()) {
owner = d->user;
}
- tmpStmt += QLatin1String(" and upper(a.owner)='") + owner + QLatin1String("'");
+
+ if (isIdentifierEscaped(owner, QSqlDriver::TableName))
+ owner = stripDelimiters(owner, QSqlDriver::TableName);
+ else
+ owner = owner.toUpper();
+
+ tmpStmt += QLatin1String(" and a.owner='") + owner + QLatin1String("'");
t.setForwardOnly(true);
t.exec(tmpStmt);
@@ -2415,13 +2446,14 @@ QVariant QOCIDriver::handle() const
return qVariantFromValue(d->env);
}
-QString QOCIDriver::escapeIdentifier(const QString &identifier, IdentifierType /* type */) const
+QString QOCIDriver::escapeIdentifier(const QString &identifier, IdentifierType type) const
{
QString res = identifier;
- res.replace(QLatin1Char('"'), QLatin1String("\"\""));
- if (identifier.indexOf(QLatin1Char(' ')) != -1)
+ if(!identifier.isEmpty() && !isIdentifierEscaped(identifier, type)) {
+ res.replace(QLatin1Char('"'), QLatin1String("\"\""));
res.prepend(QLatin1Char('"')).append(QLatin1Char('"'));
-// res.replace(QLatin1Char('.'), QLatin1String("\".\""));
+ res.replace(QLatin1Char('.'), QLatin1String("\".\""));
+ }
return res;
}
diff --git a/src/sql/drivers/odbc/qsql_odbc.cpp b/src/sql/drivers/odbc/qsql_odbc.cpp
index f6710db..9932463 100644
--- a/src/sql/drivers/odbc/qsql_odbc.cpp
+++ b/src/sql/drivers/odbc/qsql_odbc.cpp
@@ -55,6 +55,7 @@
#include <qvarlengtharray.h>
#include <qvector.h>
#include <QDebug>
+#include <QSqlQuery>
QT_BEGIN_NAMESPACE
@@ -69,18 +70,15 @@ QT_BEGIN_NAMESPACE
#endif
// newer platform SDKs use SQLLEN instead of SQLINTEGER
-#if defined(SQLLEN) || defined(Q_OS_WIN64)
-# define QSQLLEN SQLLEN
-#else
+#if defined(WIN32) && (_MSC_VER < 1300)
# define QSQLLEN SQLINTEGER
-#endif
-
-#if defined(SQLULEN) || defined(Q_OS_WIN64)
-# define QSQLULEN SQLULEN
-#else
# 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 };
@@ -88,6 +86,7 @@ static const SQLSMALLINT qParamType[4] = { SQL_PARAM_INPUT, SQL_PARAM_INPUT, SQL
class QODBCDriverPrivate
{
public:
+ enum DefaultCase{Lower, Mixed, Upper, Sensitive};
QODBCDriverPrivate()
: hEnv(0), hDbc(0), useSchema(false), disconnectCount(0), isMySqlServer(false),
isMSSqlServer(false), hasSQLFetchScroll(true), hasMultiResultSets(false)
@@ -119,6 +118,9 @@ public:
bool setConnectionOptions(const QString& connOpts);
void splitTableQualifier(const QString &qualifier, QString &catalog,
QString &schema, QString &table);
+ DefaultCase defaultCase() const;
+ QString adjustCase(const QString&) const;
+ QChar quoteChar() const;
};
class QODBCPrivate
@@ -350,7 +352,7 @@ static QString qGetStringData(SQLHANDLE hStmt, int column, int colSize, bool uni
} else {
fieldVal += QString::fromAscii(buf, rSize);
}
- if (fieldVal.size() + lengthIndicator >= colSize) {
+ if (lengthIndicator - fieldVal.size() <= 0) {
// workaround for Drivermanagers that don't return SQL_NO_DATA
break;
}
@@ -555,6 +557,29 @@ static int qGetODBCVersion(const QString &connOpts)
return SQL_OV_ODBC2;
}
+QChar QODBCDriverPrivate::quoteChar() const
+{
+ static bool isQuoteInitialized = false;
+ static QChar quote = QChar::fromLatin1('"');
+ if (!isQuoteInitialized) {
+ char driverResponse[4];
+ SQLUSMALLINT casing;
+ SQLSMALLINT length;
+ int r = SQLGetInfo(hDbc,
+ SQL_IDENTIFIER_QUOTE_CHAR,
+ &driverResponse,
+ sizeof(driverResponse),
+ &length);
+ if (r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO) {
+ quote = QChar::fromLatin1(driverResponse[0]);
+ } else {
+ quote = QChar::fromLatin1('"');
+ }
+ isQuoteInitialized = true;
+ }
+ return quote;
+}
+
bool QODBCDriverPrivate::setConnectionOptions(const QString& connOpts)
{
// Set any connection attributes
@@ -705,6 +730,65 @@ void QODBCDriverPrivate::splitTableQualifier(const QString & qualifier, QString
}
}
+QODBCDriverPrivate::DefaultCase QODBCDriverPrivate::defaultCase() const
+{
+ static bool isInitialized = false;
+ static DefaultCase ret;
+
+ if (!isInitialized) {
+ SQLUSMALLINT casing;
+ int r = SQLGetInfo(hDbc,
+ SQL_IDENTIFIER_CASE,
+ &casing,
+ sizeof(casing),
+ NULL);
+ if ( r != SQL_SUCCESS)
+ ret = Lower;//arbitrary case if driver cannot be queried
+ else {
+ switch (casing) {
+ case (SQL_IC_UPPER):
+ ret = Upper;
+ break;
+ case (SQL_IC_LOWER):
+ ret = Lower;
+ break;
+ case (SQL_IC_SENSITIVE):
+ ret = Sensitive;
+ break;
+ case (SQL_IC_MIXED):
+ ret = Mixed;
+ break;
+ default:
+ ret = Upper;
+ }
+ }
+ isInitialized = true;
+ }
+ return ret;
+}
+
+/*
+ Adjust the casing of an identifier to match what the
+ database engine would have done to it.
+*/
+QString QODBCDriverPrivate::adjustCase(const QString &identifier) const
+{
+ QString ret = identifier;
+ switch(defaultCase()) {
+ case (Lower):
+ ret = identifier.toLower();
+ break;
+ case (Upper):
+ ret = identifier.toUpper();
+ break;
+ case(Mixed):
+ case(Sensitive):
+ default:
+ ret = identifier;
+ }
+ return ret;
+}
+
////////////////////////////////////////////////////////////////////////////
QODBCResult::QODBCResult(const QODBCDriver * db, QODBCDriverPrivate* p)
@@ -1714,6 +1798,10 @@ bool QODBCDriver::open(const QString & db,
d->checkHasMultiResults();
setOpen(true);
setOpenError(false);
+ if(d->isMSSqlServer) {
+ QSqlQuery i(createResult());
+ i.exec(QLatin1String("SET QUOTED_IDENTIFIER ON"));
+ }
return true;
}
@@ -2084,6 +2172,22 @@ QSqlIndex QODBCDriver::primaryIndex(const QString& tablename) const
}
QString catalog, schema, table;
d->splitTableQualifier(tablename, catalog, schema, table);
+
+ if (isIdentifierEscaped(catalog, QSqlDriver::TableName))
+ catalog = stripDelimiters(catalog, QSqlDriver::TableName);
+ else
+ catalog = d->adjustCase(catalog);
+
+ if (isIdentifierEscaped(schema, QSqlDriver::TableName))
+ schema = stripDelimiters(schema, QSqlDriver::TableName);
+ else
+ schema = d->adjustCase(schema);
+
+ if (isIdentifierEscaped(table, QSqlDriver::TableName))
+ table = stripDelimiters(table, QSqlDriver::TableName);
+ else
+ table = d->adjustCase(table);
+
r = SQLSetStmtAttr(hStmt,
SQL_ATTR_CURSOR_TYPE,
(SQLPOINTER)SQL_CURSOR_FORWARD_ONLY,
@@ -2186,6 +2290,22 @@ QSqlRecord QODBCDriver::record(const QString& tablename) const
SQLHANDLE hStmt;
QString catalog, schema, table;
d->splitTableQualifier(tablename, catalog, schema, table);
+
+ if (isIdentifierEscaped(catalog, QSqlDriver::TableName))
+ catalog = stripDelimiters(catalog, QSqlDriver::TableName);
+ else
+ catalog = d->adjustCase(catalog);
+
+ if (isIdentifierEscaped(schema, QSqlDriver::TableName))
+ schema = stripDelimiters(schema, QSqlDriver::TableName);
+ else
+ schema = d->adjustCase(schema);
+
+ if (isIdentifierEscaped(table, QSqlDriver::TableName))
+ table = stripDelimiters(table, QSqlDriver::TableName);
+ else
+ table = d->adjustCase(table);
+
SQLRETURN r = SQLAllocHandle(SQL_HANDLE_STMT,
d->hDbc,
&hStmt);
@@ -2309,4 +2429,15 @@ QString QODBCDriver::escapeIdentifier(const QString &identifier, IdentifierType)
return res;
}
+bool QODBCDriver::isIdentifierEscapedImplementation(const QString &identifier, IdentifierType) const
+{
+ QString quote = d->quoteChar();
+ bool isLeftDelimited = identifier.left(1) == quote;
+ bool isRightDelimited = identifier.right(1) == quote;
+ if( identifier.size() > 2 && isLeftDelimited && isRightDelimited )
+ return true;
+ else
+ return false;
+}
+
QT_END_NAMESPACE
diff --git a/src/sql/drivers/odbc/qsql_odbc.h b/src/sql/drivers/odbc/qsql_odbc.h
index 4148007..51f53ea 100644
--- a/src/sql/drivers/odbc/qsql_odbc.h
+++ b/src/sql/drivers/odbc/qsql_odbc.h
@@ -145,10 +145,14 @@ public:
QString escapeIdentifier(const QString &identifier, IdentifierType type) const;
+protected Q_SLOTS:
+ bool isIdentifierEscapedImplementation(const QString &identifier, IdentifierType type) const;
+
protected:
bool beginTransaction();
bool commitTransaction();
bool rollbackTransaction();
+
private:
void init();
bool endTrans();
diff --git a/src/sql/drivers/psql/qsql_psql.cpp b/src/sql/drivers/psql/qsql_psql.cpp
index afe45fc..16d19f1 100644
--- a/src/sql/drivers/psql/qsql_psql.cpp
+++ b/src/sql/drivers/psql/qsql_psql.cpp
@@ -894,6 +894,16 @@ QSqlIndex QPSQLDriver::primaryIndex(const QString& tablename) const
QString schema;
qSplitTableName(tbl, schema);
+ if (isIdentifierEscaped(tbl, QSqlDriver::TableName))
+ tbl = stripDelimiters(tbl, QSqlDriver::TableName);
+ else
+ tbl = tbl.toLower();
+
+ if (isIdentifierEscaped(schema, QSqlDriver::TableName))
+ schema = stripDelimiters(schema, QSqlDriver::TableName);
+ else
+ schema = schema.toLower();
+
switch(d->pro) {
case QPSQLDriver::Version6:
stmt = QLatin1String("select pg_att1.attname, int(pg_att1.atttypid), pg_cl.relname "
@@ -926,7 +936,7 @@ QSqlIndex QPSQLDriver::primaryIndex(const QString& tablename) const
"FROM pg_attribute, pg_class "
"WHERE %1 pg_class.oid IN "
"(SELECT indexrelid FROM pg_index WHERE indisprimary = true AND indrelid IN "
- " (SELECT oid FROM pg_class WHERE lower(relname) = '%2')) "
+ " (SELECT oid FROM pg_class WHERE relname = '%2')) "
"AND pg_attribute.attrelid = pg_class.oid "
"AND pg_attribute.attisdropped = false "
"ORDER BY pg_attribute.attnum");
@@ -934,11 +944,11 @@ QSqlIndex QPSQLDriver::primaryIndex(const QString& tablename) const
stmt = stmt.arg(QLatin1String("pg_table_is_visible(pg_class.oid) AND"));
else
stmt = stmt.arg(QString::fromLatin1("pg_class.relnamespace = (select oid from "
- "pg_namespace where pg_namespace.nspname = '%1') AND ").arg(schema.toLower()));
+ "pg_namespace where pg_namespace.nspname = '%1') AND ").arg(schema));
break;
}
- i.exec(stmt.arg(tbl.toLower()));
+ i.exec(stmt.arg(tbl));
while (i.isActive() && i.next()) {
QSqlField f(i.value(0).toString(), qDecodePSQLType(i.value(1).toInt()));
idx.append(f);
@@ -957,6 +967,16 @@ QSqlRecord QPSQLDriver::record(const QString& tablename) const
QString schema;
qSplitTableName(tbl, schema);
+ if (isIdentifierEscaped(tbl, QSqlDriver::TableName))
+ tbl = stripDelimiters(tbl, QSqlDriver::TableName);
+ else
+ tbl = tbl.toLower();
+
+ if (isIdentifierEscaped(schema, QSqlDriver::TableName))
+ schema = stripDelimiters(schema, QSqlDriver::TableName);
+ else
+ schema = schema.toLower();
+
QString stmt;
switch(d->pro) {
case QPSQLDriver::Version6:
@@ -1001,7 +1021,7 @@ QSqlRecord QPSQLDriver::record(const QString& tablename) const
"left join pg_attrdef on (pg_attrdef.adrelid = "
"pg_attribute.attrelid and pg_attrdef.adnum = pg_attribute.attnum) "
"where %1 "
- "and lower(pg_class.relname) = '%2' "
+ "and pg_class.relname = '%2' "
"and pg_attribute.attnum > 0 "
"and pg_attribute.attrelid = pg_class.oid "
"and pg_attribute.attisdropped = false "
@@ -1010,12 +1030,12 @@ QSqlRecord QPSQLDriver::record(const QString& tablename) const
stmt = stmt.arg(QLatin1String("pg_table_is_visible(pg_class.oid)"));
else
stmt = stmt.arg(QString::fromLatin1("pg_class.relnamespace = (select oid from "
- "pg_namespace where pg_namespace.nspname = '%1')").arg(schema.toLower()));
+ "pg_namespace where pg_namespace.nspname = '%1')").arg(schema));
break;
}
QSqlQuery query(createResult());
- query.exec(stmt.arg(tbl.toLower()));
+ query.exec(stmt.arg(tbl));
if (d->pro >= QPSQLDriver::Version71) {
while (query.next()) {
int len = query.value(3).toInt();
diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp
index 605c4e8..f732077 100644
--- a/src/sql/drivers/sqlite/qsql_sqlite.cpp
+++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp
@@ -661,9 +661,13 @@ QSqlIndex QSQLiteDriver::primaryIndex(const QString &tblname) const
if (!isOpen())
return QSqlIndex();
+ QString table = tblname;
+ if (isIdentifierEscaped(table, QSqlDriver::TableName))
+ table = stripDelimiters(table, QSqlDriver::TableName);
+
QSqlQuery q(createResult());
q.setForwardOnly(true);
- return qGetTableInfo(q, tblname, true);
+ return qGetTableInfo(q, table, true);
}
QSqlRecord QSQLiteDriver::record(const QString &tbl) const
@@ -671,9 +675,13 @@ QSqlRecord QSQLiteDriver::record(const QString &tbl) const
if (!isOpen())
return QSqlRecord();
+ QString table = tbl;
+ if (isIdentifierEscaped(table, QSqlDriver::TableName))
+ table = stripDelimiters(table, QSqlDriver::TableName);
+
QSqlQuery q(createResult());
q.setForwardOnly(true);
- return qGetTableInfo(q, tbl);
+ return qGetTableInfo(q, table);
}
QVariant QSQLiteDriver::handle() const
@@ -681,10 +689,10 @@ QVariant QSQLiteDriver::handle() const
return qVariantFromValue(d->access);
}
-QString QSQLiteDriver::escapeIdentifier(const QString &identifier, IdentifierType /*type*/) const
+QString QSQLiteDriver::escapeIdentifier(const QString &identifier, IdentifierType type) const
{
QString res = identifier;
- if(!identifier.isEmpty() && identifier.left(1) != QString(QLatin1Char('"')) && identifier.right(1) != QString(QLatin1Char('"')) ) {
+ if(!identifier.isEmpty() && !isIdentifierEscaped(identifier, type) ) {
res.replace(QLatin1Char('"'), QLatin1String("\"\""));
res.prepend(QLatin1Char('"')).append(QLatin1Char('"'));
res.replace(QLatin1Char('.'), QLatin1String("\".\""));
diff --git a/src/sql/drivers/sqlite2/qsql_sqlite2.cpp b/src/sql/drivers/sqlite2/qsql_sqlite2.cpp
index ff73caa..d0c6e18 100644
--- a/src/sql/drivers/sqlite2/qsql_sqlite2.cpp
+++ b/src/sql/drivers/sqlite2/qsql_sqlite2.cpp
@@ -167,7 +167,15 @@ void QSQLite2ResultPrivate::init(const char **cnames, int numCols)
for (int i = 0; i < numCols; ++i) {
const char* lastDot = strrchr(cnames[i], '.');
const char* fieldName = lastDot ? lastDot + 1 : cnames[i];
- rInf.append(QSqlField(QString::fromAscii(fieldName),
+
+ //remove quotations around the field name if any
+ QString fieldStr = QString::fromAscii(fieldName);
+ QString quote = QString::fromLatin1("\"");
+ if ( fieldStr.length() > 2 && fieldStr.left(1) == quote && fieldStr.right(1) == quote) {
+ fieldStr = fieldStr.mid(1);
+ fieldStr.chop(1);
+ }
+ rInf.append(QSqlField(fieldStr,
nameToType(QString::fromAscii(cnames[i+numCols]))));
}
}
@@ -503,8 +511,11 @@ QSqlIndex QSQLite2Driver::primaryIndex(const QString &tblname) const
QSqlQuery q(createResult());
q.setForwardOnly(true);
+ QString table = tblname;
+ if (isIdentifierEscaped(table, QSqlDriver::TableName))
+ table = stripDelimiters(table, QSqlDriver::TableName);
// finrst find a UNIQUE INDEX
- q.exec(QLatin1String("PRAGMA index_list('") + tblname + QLatin1String("');"));
+ q.exec(QLatin1String("PRAGMA index_list('") + table + QLatin1String("');"));
QString indexname;
while(q.next()) {
if (q.value(2).toInt()==1) {
@@ -517,7 +528,7 @@ QSqlIndex QSQLite2Driver::primaryIndex(const QString &tblname) const
q.exec(QLatin1String("PRAGMA index_info('") + indexname + QLatin1String("');"));
- QSqlIndex index(tblname, indexname);
+ QSqlIndex index(table, indexname);
while(q.next()) {
QString name = q.value(2).toString();
QVariant::Type type = QVariant::Invalid;
@@ -532,6 +543,9 @@ QSqlRecord QSQLite2Driver::record(const QString &tbl) const
{
if (!isOpen())
return QSqlRecord();
+ QString table = tbl;
+ if (isIdentifierEscaped(tbl, QSqlDriver::TableName))
+ table = stripDelimiters(table, QSqlDriver::TableName);
QSqlQuery q(createResult());
q.setForwardOnly(true);
diff --git a/src/sql/drivers/tds/qsql_tds.cpp b/src/sql/drivers/tds/qsql_tds.cpp
index 46e4a0b..515f0de 100644
--- a/src/sql/drivers/tds/qsql_tds.cpp
+++ b/src/sql/drivers/tds/qsql_tds.cpp
@@ -293,6 +293,8 @@ QTDSResult::QTDSResult(const QTDSDriver* db)
// insert d in error handler dict
errs()->insert(d->dbproc, d);
+ dbcmd(d->dbproc, "set quoted_identifier on");
+ dbsqlexec(d->dbproc);
}
QTDSResult::~QTDSResult()
@@ -367,7 +369,7 @@ bool QTDSResult::gotoNext(QSqlCachedResult::ValueCache &values, int index)
if (qIsNull(d->buffer.at(i * 2 + 1)))
values[idx] = QVariant(QVariant::String);
else
- values[idx] = QString::fromLocal8Bit((const char*)d->buffer.at(i * 2));
+ values[idx] = QString::fromLocal8Bit((const char*)d->buffer.at(i * 2)).trimmed();
break;
case QVariant::ByteArray: {
if (qIsNull(d->buffer.at(i * 2 + 1)))
@@ -698,9 +700,14 @@ QSqlRecord QTDSDriver::record(const QString& tablename) const
return info;
QSqlQuery t(createResult());
t.setForwardOnly(true);
+
+ QString table = tablename;
+ if (isIdentifierEscaped(table, QSqlDriver::TableName))
+ table = stripDelimiters(table, QSqlDriver::TableName);
+
QString stmt (QLatin1String("select name, type, length, prec from syscolumns "
"where id = (select id from sysobjects where name = '%1')"));
- t.exec(stmt.arg(tablename));
+ t.exec(stmt.arg(table));
while (t.next()) {
QSqlField f(t.value(0).toString().simplified(), qDecodeTDSType(t.value(1).toInt()));
f.setLength(t.value(2).toInt());
@@ -770,13 +777,17 @@ QSqlIndex QTDSDriver::primaryIndex(const QString& tablename) const
{
QSqlRecord rec = record(tablename);
- QSqlIndex idx(tablename);
- if ((!isOpen()) || (tablename.isEmpty()))
+ QString table = tablename;
+ if (isIdentifierEscaped(table, QSqlDriver::TableName))
+ table = stripDelimiters(table, QSqlDriver::TableName);
+
+ QSqlIndex idx(table);
+ if ((!isOpen()) || (table.isEmpty()))
return QSqlIndex();
QSqlQuery t(createResult());
t.setForwardOnly(true);
- t.exec(QString::fromLatin1("sp_helpindex '%1'").arg(tablename));
+ t.exec(QString::fromLatin1("sp_helpindex '%1'").arg(table));
if (t.next()) {
QStringList fNames = t.value(2).toString().simplified().split(QLatin1Char(','));
QRegExp regx(QLatin1String("\\s*(\\S+)(?:\\s+(DESC|desc))?\\s*"));
diff --git a/src/sql/kernel/qsqldriver.cpp b/src/sql/kernel/qsqldriver.cpp
index a995005..40bc0df 100644
--- a/src/sql/kernel/qsqldriver.cpp
+++ b/src/sql/kernel/qsqldriver.cpp
@@ -49,6 +49,17 @@
QT_BEGIN_NAMESPACE
+static QString prepareIdentifier(const QString &identifier,
+ QSqlDriver::IdentifierType type, const QSqlDriver *driver)
+{
+ Q_ASSERT( driver != NULL );
+ QString ret = identifier;
+ if (!driver->isIdentifierEscaped(identifier, type)) {
+ ret = driver->escapeIdentifier(identifier, type);
+ }
+ return ret;
+}
+
class QSqlDriverPrivate : public QObjectPrivate
{
public:
@@ -372,6 +383,7 @@ QSqlRecord QSqlDriver::record(const QString & /* tableName */) const
on \a type.
The default implementation does nothing.
+ \sa isIdentifierEscaped()
*/
QString QSqlDriver::escapeIdentifier(const QString &identifier, IdentifierType) const
{
@@ -379,6 +391,55 @@ QString QSqlDriver::escapeIdentifier(const QString &identifier, IdentifierType)
}
/*!
+ Returns whether \a identifier is escaped according to the database rules.
+ \a identifier can either be a table name or field name, dependent
+ on \a type.
+
+ \warning Because of binary compatability constraints, this function is not virtual.
+ If you want to provide your own implementation in your QSqlDriver subclass,
+ reimplement the isIdentifierEscapedImplementation() slot in your subclass instead.
+ The isIdentifierEscapedFunction() will dynamically detect the slot and call it.
+
+ \sa stripDelimiters(), escapeIdentifier()
+ */
+bool QSqlDriver::isIdentifierEscaped(const QString &identifier, IdentifierType type) const
+{
+ bool result;
+ QMetaObject::invokeMethod(const_cast<QSqlDriver*>(this),
+ "isIdentifierEscapedImplementation", Qt::DirectConnection,
+ Q_RETURN_ARG(bool, result),
+ Q_ARG(QString, identifier),
+ Q_ARG(IdentifierType, type));
+ return result;
+}
+
+/*!
+ Returns the \a identifier with the leading and trailing delimiters removed,
+ \a identifier can either be a table name or field name,
+ dependent on \a type. If \a identifier does not have leading
+ and trailing delimiter characters, \a identifier is returned without
+ modification.
+
+ \warning Because of binary compatability constraints, this function is not virtual,
+ If you want to provide your own implementation in your QSqlDriver subclass,
+ reimplement the stripDelimitersImplementation() slot in your subclass instead.
+ The stripDelimiters() function will dynamically detect the slot and call it.
+
+ \since 4.5
+ \sa isIdentifierEscaped()
+ */
+QString QSqlDriver::stripDelimiters(const QString &identifier, IdentifierType type) const
+{
+ QString result;
+ QMetaObject::invokeMethod(const_cast<QSqlDriver*>(this),
+ "stripDelimitersImplementation", Qt::DirectConnection,
+ Q_RETURN_ARG(QString, result),
+ Q_ARG(QString, identifier),
+ Q_ARG(IdentifierType, type));
+ return result;
+}
+
+/*!
Returns a SQL statement of type \a type for the table \a tableName
with the values from \a rec. If \a preparedStatement is true, the
string will contain placeholders instead of values.
@@ -397,17 +458,17 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName,
case SelectStatement:
for (i = 0; i < rec.count(); ++i) {
if (rec.isGenerated(i))
- s.append(escapeIdentifier(rec.fieldName(i), FieldName)).append(QLatin1String(", "));
+ s.append(prepareIdentifier(rec.fieldName(i), QSqlDriver::FieldName, this)).append(QLatin1String(", "));
}
if (s.isEmpty())
return s;
s.chop(2);
- s.prepend(QLatin1String("SELECT ")).append(QLatin1String(" FROM ")).append(escapeIdentifier(tableName, TableName));
+ s.prepend(QLatin1String("SELECT ")).append(QLatin1String(" FROM ")).append(tableName);
break;
case WhereStatement:
if (preparedStatement) {
for (int i = 0; i < rec.count(); ++i) {
- s.append(escapeIdentifier(rec.fieldName(i), FieldName));
+ s.append(prepareIdentifier(rec.fieldName(i), FieldName,this));
if (rec.isNull(i))
s.append(QLatin1String(" IS NULL"));
else
@@ -416,7 +477,7 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName,
}
} else {
for (i = 0; i < rec.count(); ++i) {
- s.append(escapeIdentifier(rec.fieldName(i), FieldName));
+ s.append(prepareIdentifier(rec.fieldName(i), QSqlDriver::FieldName, this));
QString val = formatValue(rec.field(i));
if (val == QLatin1String("NULL"))
s.append(QLatin1String(" IS NULL"));
@@ -431,12 +492,12 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName,
}
break;
case UpdateStatement:
- s.append(QLatin1String("UPDATE ")).append(escapeIdentifier(tableName, TableName)).append(
+ s.append(QLatin1String("UPDATE ")).append(tableName).append(
QLatin1String(" SET "));
for (i = 0; i < rec.count(); ++i) {
if (!rec.isGenerated(i) || !rec.value(i).isValid())
continue;
- s.append(escapeIdentifier(rec.fieldName(i), FieldName)).append(QLatin1Char('='));
+ s.append(prepareIdentifier(rec.fieldName(i), QSqlDriver::FieldName, this)).append(QLatin1Char('='));
if (preparedStatement)
s.append(QLatin1Char('?'));
else
@@ -449,15 +510,15 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName,
s.clear();
break;
case DeleteStatement:
- s.append(QLatin1String("DELETE FROM ")).append(escapeIdentifier(tableName, TableName));
+ s.append(QLatin1String("DELETE FROM ")).append(tableName);
break;
case InsertStatement: {
- s.append(QLatin1String("INSERT INTO ")).append(escapeIdentifier(tableName, TableName)).append(QLatin1String(" ("));
+ s.append(QLatin1String("INSERT INTO ")).append(tableName).append(QLatin1String(" ("));
QString vals;
for (i = 0; i < rec.count(); ++i) {
if (!rec.isGenerated(i) || !rec.value(i).isValid())
continue;
- s.append(escapeIdentifier(rec.fieldName(i), FieldName)).append(QLatin1String(", "));
+ s.append(prepareIdentifier(rec.fieldName(i), QSqlDriver::FieldName, this)).append(QLatin1String(", "));
if (preparedStatement)
vals.append(QLatin1String("?"));
else
@@ -805,4 +866,56 @@ QStringList QSqlDriver::subscribedToNotificationsImplementation() const
return QStringList();
}
+/*!
+ This slot returns whether \a identifier is escaped according to the database rules.
+ \a identifier can either be a table name or field name, dependent
+ on \a type.
+
+ Because of binary compatability constraints, isIdentifierEscaped() function
+ (introduced in Qt 4.5) is not virtual. Instead, isIdentifierEscaped() will
+ dynamically detect and call \e this slot. The default implementation
+ assumes the escape/delimiter character is a double quote. Reimplement this
+ slot in your own QSqlDriver if your database engine uses a different
+ delimiter character.
+
+ \since 4.5
+ \sa isIdentifierEscaped()
+ */
+bool QSqlDriver::isIdentifierEscapedImplementation(const QString &identifier, IdentifierType type) const
+{
+ Q_UNUSED(type);
+ bool isLeftDelimited = identifier.left(1) == QString(QLatin1Char('"'));
+ bool isRightDelimited = identifier.right(1) == QString(QLatin1Char('"'));
+ if( identifier.size() > 2 && isLeftDelimited && isRightDelimited )
+ return true;
+ else
+ return false;
+}
+
+/*!
+ This slot returns \a identifier with the leading and trailing delimiters removed,
+ \a identifier can either be a tablename or field name, dependent on \a type.
+ If \a identifier does not have leading and trailing delimiter characters, \a
+ identifier is returned without modification.
+
+ Because of binary compatability constraints, the stripDelimiters() function
+ (introduced in Qt 4.5) is not virtual. Instead, stripDelimiters() will
+ dynamically detect and call \e this slot. It generally unnecessary
+ to reimplement this slot.
+
+ \since 4.5
+ \sa stripDelimiters()
+ */
+QString QSqlDriver::stripDelimitersImplementation(const QString &identifier, IdentifierType type) const
+{
+ QString ret;
+ if (this->isIdentifierEscaped(identifier, type)) {
+ ret = identifier.mid(1);
+ ret.chop(1);
+ } else {
+ ret = identifier;
+ }
+ return ret;
+}
+
QT_END_NAMESPACE
diff --git a/src/sql/kernel/qsqldriver.h b/src/sql/kernel/qsqldriver.h
index e763719..8ac1471 100644
--- a/src/sql/kernel/qsqldriver.h
+++ b/src/sql/kernel/qsqldriver.h
@@ -127,6 +127,9 @@ public:
bool unsubscribeFromNotification(const QString &name); // ### Qt 5: make virtual
QStringList subscribedToNotifications() const; // ### Qt 5: make virtual
+ bool isIdentifierEscaped(const QString &identifier, IdentifierType type) const; // ### Qt 5: make virtual
+ QString stripDelimiters(const QString &identifier, IdentifierType type) const; // ### Qt 5: make virtual
+
Q_SIGNALS:
void notification(const QString &name);
@@ -140,6 +143,9 @@ protected Q_SLOTS:
bool unsubscribeFromNotificationImplementation(const QString &name); // ### Qt 5: eliminate, see unsubscribeFromNotification()
QStringList subscribedToNotificationsImplementation() const; // ### Qt 5: eliminate, see subscribedNotifications()
+ bool isIdentifierEscapedImplementation(const QString &identifier, IdentifierType type) const; // ### Qt 5: eliminate, see isIdentifierEscaped()
+ QString stripDelimitersImplementation(const QString &identifier, IdentifierType type) const; // ### Qt 5: eliminate, see stripDelimiters()
+
private:
Q_DISABLE_COPY(QSqlDriver)
};
diff --git a/src/sql/models/qsqlrelationaltablemodel.cpp b/src/sql/models/qsqlrelationaltablemodel.cpp
index 935466b..12eae84 100644
--- a/src/sql/models/qsqlrelationaltablemodel.cpp
+++ b/src/sql/models/qsqlrelationaltablemodel.cpp
@@ -182,10 +182,21 @@ void QRelation::populateDictionary()
populateModel();
QSqlRecord record;
+ QString indexColumn;
+ QString displayColumn;
for (int i=0; i < model->rowCount(); ++i) {
record = model->record(i);
- dictionary[record.field(rel.indexColumn()).value().toString()] =
- record.field(rel.displayColumn()).value();
+
+ indexColumn = rel.indexColumn();
+ if (m_parent->database().driver()->isIdentifierEscaped(indexColumn, QSqlDriver::FieldName))
+ indexColumn = m_parent->database().driver()->stripDelimiters(indexColumn, QSqlDriver::FieldName);
+
+ displayColumn = rel.displayColumn();
+ if (m_parent->database().driver()->isIdentifierEscaped(displayColumn, QSqlDriver::FieldName))
+ displayColumn = m_parent->database().driver()->stripDelimiters(displayColumn, QSqlDriver::FieldName);
+
+ dictionary[record.field(indexColumn).value().toString()] =
+ record.field(displayColumn).value();
}
m_dictInitialized = true;
}
@@ -215,7 +226,7 @@ public:
QSqlRelationalTableModelPrivate()
: QSqlTableModelPrivate()
{}
- QString escapedRelationField(const QString &tableName, const QString &fieldName) const;
+ QString relationField(const QString &tableName, const QString &fieldName) const;
int nameToIndex(const QString &name) const;
mutable QVector<QRelation> relations;
@@ -255,7 +266,10 @@ void QSqlRelationalTableModelPrivate::revertCachedRow(int row)
int QSqlRelationalTableModelPrivate::nameToIndex(const QString &name) const
{
- return baseRec.indexOf(name);
+ QString fieldname = name;
+ if (db.driver()->isIdentifierEscaped(fieldname, QSqlDriver::FieldName))
+ fieldname = db.driver()->stripDelimiters(fieldname, QSqlDriver::FieldName);
+ return baseRec.indexOf(fieldname);
}
void QSqlRelationalTableModelPrivate::clearEditBuffer()
@@ -481,14 +495,14 @@ QSqlRelation QSqlRelationalTableModel::relation(int column) const
return d->relations.value(column).rel;
}
-QString QSqlRelationalTableModelPrivate::escapedRelationField(const QString &tableName,
+QString QSqlRelationalTableModelPrivate::relationField(const QString &tableName,
const QString &fieldName) const
{
- QString esc;
- esc.reserve(tableName.size() + fieldName.size() + 1);
- esc.append(tableName).append(QLatin1Char('.')).append(fieldName);
+ QString ret;
+ ret.reserve(tableName.size() + fieldName.size() + 1);
+ ret.append(tableName).append(QLatin1Char('.')).append(fieldName);
- return db.driver()->escapeIdentifier(esc, QSqlDriver::FieldName);
+ return ret;
}
/*!
@@ -514,15 +528,29 @@ QString QSqlRelationalTableModel::selectStatement() const
// Count how many times each field name occurs in the record
QHash<QString, int> fieldNames;
+ QStringList fieldList;
for (int i = 0; i < rec.count(); ++i) {
QSqlRelation relation = d->relations.value(i, nullRelation).rel;
QString name;
if (relation.isValid())
+ {
// Count the display column name, not the original foreign key
name = relation.displayColumn();
+ if (d->db.driver()->isIdentifierEscaped(name, QSqlDriver::FieldName))
+ name = d->db.driver()->stripDelimiters(name, QSqlDriver::FieldName);
+
+ QSqlRecord rec = database().record(relation.tableName());
+ for (int i = 0; i < rec.count(); ++i) {
+ if (name.compare(rec.fieldName(i), Qt::CaseInsensitive) == 0) {
+ name = rec.fieldName(i);
+ break;
+ }
+ }
+ }
else
name = rec.fieldName(i);
fieldNames.insert(name, fieldNames.value(name, 0) + 1);
+ fieldList.append(name);
}
for (int i = 0; i < rec.count(); ++i) {
@@ -531,27 +559,30 @@ QString QSqlRelationalTableModel::selectStatement() const
QString relTableAlias = QString::fromLatin1("relTblAl_%1").arg(i);
if (!fList.isEmpty())
fList.append(QLatin1String(", "));
- fList.append(d->escapedRelationField(relTableAlias, relation.displayColumn()));
+ fList.append(d->relationField(relTableAlias,relation.displayColumn()));
// If there are duplicate field names they must be aliased
- if (fieldNames.value(relation.displayColumn()) > 1) {
- fList.append(QString::fromLatin1(" AS %1_%2").arg(relation.tableName()).arg(relation.displayColumn()));
+ if (fieldNames.value(fieldList[i]) > 1) {
+ QString relTableName = relation.tableName();
+ if (d->db.driver()->isIdentifierEscaped(relTableName, QSqlDriver::TableName))
+ relTableName = d->db.driver()->stripDelimiters(relTableName, QSqlDriver::TableName);
+ QString displayColumn = relation.displayColumn();
+ if (d->db.driver()->isIdentifierEscaped(displayColumn, QSqlDriver::FieldName))
+ displayColumn = d->db.driver()->stripDelimiters(displayColumn, QSqlDriver::FieldName);
+ fList.append(QString::fromLatin1(" AS %1_%2").arg(relTableName).arg(displayColumn));
}
// this needs fixing!! the below if is borken.
- if (!tables.contains(relation.tableName()))
- tables.append(d->db.driver()->escapeIdentifier(relation.tableName(),QSqlDriver::TableName)
- .append(QLatin1String(" "))
- .append(d->db.driver()->escapeIdentifier(relTableAlias, QSqlDriver::TableName)));
+ tables.append(relation.tableName().append(QLatin1String(" ")).append(relTableAlias));
if(!where.isEmpty())
where.append(QLatin1String(" AND "));
- where.append(d->escapedRelationField(tableName(), rec.fieldName(i)));
+ where.append(d->relationField(tableName(), d->db.driver()->escapeIdentifier(rec.fieldName(i), QSqlDriver::FieldName)));
where.append(QLatin1String(" = "));
- where.append(d->escapedRelationField(relTableAlias, relation.indexColumn()));
+ where.append(d->relationField(relTableAlias, relation.indexColumn()));
} else {
if (!fList.isEmpty())
fList.append(QLatin1String(", "));
- fList.append(d->escapedRelationField(tableName(), rec.fieldName(i)));
+ fList.append(d->relationField(tableName(), d->db.driver()->escapeIdentifier(rec.fieldName(i), QSqlDriver::FieldName)));
}
}
if (!tables.isEmpty())
@@ -560,7 +591,7 @@ QString QSqlRelationalTableModel::selectStatement() const
return query;
if(!tList.isEmpty())
tList.prepend(QLatin1String(", "));
- tList.prepend(d->db.driver()->escapeIdentifier(tableName(),QSqlDriver::TableName));
+ tList.prepend(tableName());
query.append(QLatin1String("SELECT "));
query.append(fList).append(QLatin1String(" FROM ")).append(tList);
qAppendWhereClause(query, where, filter());
@@ -690,7 +721,7 @@ QString QSqlRelationalTableModel::orderByClause() const
return QSqlTableModel::orderByClause();
QString s = QLatin1String("ORDER BY ");
- s.append(d->escapedRelationField(QLatin1String("relTblAl_") + QString::number(d->sortColumn),
+ s.append(d->relationField(QLatin1String("relTblAl_") + QString::number(d->sortColumn),
rel.displayColumn()));
s += d->sortOrder == Qt::AscendingOrder ? QLatin1String(" ASC") : QLatin1String(" DESC");
return s;
diff --git a/src/sql/models/qsqltablemodel.cpp b/src/sql/models/qsqltablemodel.cpp
index 2fb9b0f..c2442c5 100644
--- a/src/sql/models/qsqltablemodel.cpp
+++ b/src/sql/models/qsqltablemodel.cpp
@@ -98,7 +98,10 @@ bool QSqlTableModelPrivate::setRecord(int row, const QSqlRecord &record)
int QSqlTableModelPrivate::nameToIndex(const QString &name) const
{
- return rec.indexOf(name);
+ QString fieldname = name;
+ if (db.driver()->isIdentifierEscaped(fieldname, QSqlDriver::FieldName))
+ fieldname = db.driver()->stripDelimiters(fieldname, QSqlDriver::FieldName);
+ return rec.indexOf(fieldname);
}
void QSqlTableModelPrivate::initRecordAndPrimaryIndex()
@@ -367,10 +370,7 @@ void QSqlTableModel::setTable(const QString &tableName)
{
Q_D(QSqlTableModel);
clear();
- if(d->db.tables().contains(tableName.toUpper()))
- d->tableName = tableName.toUpper();
- else
- d->tableName = tableName;
+ d->tableName = tableName;
d->initRecordAndPrimaryIndex();
d->initColOffsets(d->rec.count());
@@ -976,7 +976,9 @@ QString QSqlTableModel::orderByClause() const
if (!f.isValid())
return s;
- QString table = d->db.driver()->escapeIdentifier(d->tableName, QSqlDriver::TableName);
+ QString table = d->tableName;
+ //we can safely escape the field because it would have been obtained from the database
+ //and have the correct case
QString field = d->db.driver()->escapeIdentifier(f.name(), QSqlDriver::FieldName);
s.append(QLatin1String("ORDER BY ")).append(table).append(QLatin1Char('.')).append(field);
s += d->sortOrder == Qt::AscendingOrder ? QLatin1String(" ASC") : QLatin1String(" DESC");
@@ -1317,8 +1319,12 @@ bool QSqlTableModel::setRecord(int row, const QSqlRecord &record)
mrow.rec = d->rec;
mrow.primaryValues = d->primaryValues(indexInQuery(createIndex(row, 0)).row());
}
+ QString fieldName;
for (int i = 0; i < record.count(); ++i) {
- int idx = mrow.rec.indexOf(record.fieldName(i));
+ fieldName = record.fieldName(i);
+ if (d->db.driver()->isIdentifierEscaped(fieldName, QSqlDriver::FieldName))
+ fieldName = d->db.driver()->stripDelimiters(fieldName, QSqlDriver::FieldName);
+ int idx = mrow.rec.indexOf(fieldName);
if (idx == -1)
isOk = false;
else
diff --git a/src/src.pro b/src/src.pro
index fb28882..f40c6ad 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -13,7 +13,7 @@ wince*:{
contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_tools_uic3
}
}
-win32:!contains(QT_EDITION, OpenSource|Console): {
+win32:{
SRC_SUBDIRS += src_activeqt
!wince*: SRC_SUBDIRS += src_tools_idc
}
diff --git a/src/svg/qgraphicssvgitem.cpp b/src/svg/qgraphicssvgitem.cpp
index e17df03..a14636e 100644
--- a/src/svg/qgraphicssvgitem.cpp
+++ b/src/svg/qgraphicssvgitem.cpp
@@ -186,7 +186,7 @@ static void qt_graphicsItem_highlightSelected(
QGraphicsItem *item, QPainter *painter, const QStyleOptionGraphicsItem *option)
{
const QRectF murect = painter->transform().mapRect(QRectF(0, 0, 1, 1));
- if (qFuzzyCompare(qMax(murect.width(), murect.height()) + 1, 1))
+ if (qFuzzyIsNull(qMax(murect.width(), murect.height())))
return;
const QRectF mbrect = painter->transform().mapRect(item->boundingRect());
diff --git a/src/svg/qsvggenerator.cpp b/src/svg/qsvggenerator.cpp
index e822da5..2b5fbd5 100644
--- a/src/svg/qsvggenerator.cpp
+++ b/src/svg/qsvggenerator.cpp
@@ -971,7 +971,7 @@ void QSvgPaintEngine::updateState(const QPaintEngineState &state)
}
if (flags & QPaintEngine::DirtyOpacity) {
- if (!qFuzzyCompare(state.opacity(), 1))
+ if (!qFuzzyIsNull(state.opacity() - 1))
stream() << "opacity=\""<<state.opacity()<<"\" ";
}
diff --git a/src/svg/qsvggraphics.cpp b/src/svg/qsvggraphics.cpp
index 9ff9c26..1cd1f8b 100644
--- a/src/svg/qsvggraphics.cpp
+++ b/src/svg/qsvggraphics.cpp
@@ -94,7 +94,7 @@ QSvgCircle::QSvgCircle(QSvgNode *parent, const QRectF &rect)
QRectF QSvgCircle::bounds() const
{
qreal sw = strokeWidth();
- if (qFuzzyCompare(sw + 1, 1))
+ if (qFuzzyIsNull(sw))
return m_bounds;
else {
QPainterPath path;
@@ -129,7 +129,7 @@ QSvgEllipse::QSvgEllipse(QSvgNode *parent, const QRectF &rect)
QRectF QSvgEllipse::bounds() const
{
qreal sw = strokeWidth();
- if (qFuzzyCompare(sw + 1, 1))
+ if (qFuzzyIsNull(sw))
return m_bounds;
else {
QPainterPath path;
@@ -190,7 +190,7 @@ void QSvgPath::draw(QPainter *p, QSvgExtraStates &states)
QRectF QSvgPath::bounds() const
{
qreal sw = strokeWidth();
- if (qFuzzyCompare(sw + 1, 1))
+ if (qFuzzyIsNull(sw))
return m_cachedBounds;
else {
return boundsOnStroke(m_path, sw);
@@ -206,7 +206,7 @@ QSvgPolygon::QSvgPolygon(QSvgNode *parent, const QPolygonF &poly)
QRectF QSvgPolygon::bounds() const
{
qreal sw = strokeWidth();
- if (qFuzzyCompare(sw + 1, 1))
+ if (qFuzzyIsNull(sw))
return m_poly.boundingRect();
else {
QPainterPath path;
@@ -249,7 +249,7 @@ QSvgRect::QSvgRect(QSvgNode *node, const QRectF &rect, int rx, int ry)
QRectF QSvgRect::bounds() const
{
qreal sw = strokeWidth();
- if (qFuzzyCompare(sw + 1, 1))
+ if (qFuzzyIsNull(sw))
return m_rect;
else {
QPainterPath path;
@@ -596,7 +596,7 @@ QRectF QSvgUse::transformedBounds(const QTransform &transform) const
QRectF QSvgPolyline::bounds() const
{
qreal sw = strokeWidth();
- if (qFuzzyCompare(sw + 1, 1))
+ if (qFuzzyIsNull(sw))
return m_poly.boundingRect();
else {
QPainterPath path;
@@ -608,7 +608,7 @@ QRectF QSvgPolyline::bounds() const
QRectF QSvgArc::bounds() const
{
qreal sw = strokeWidth();
- if (qFuzzyCompare(sw + 1, 1))
+ if (qFuzzyIsNull(sw))
return m_cachedBounds;
else {
return boundsOnStroke(cubic, sw);
@@ -623,7 +623,7 @@ QRectF QSvgImage::bounds() const
QRectF QSvgLine::bounds() const
{
qreal sw = strokeWidth();
- if (qFuzzyCompare(sw + 1, 1)) {
+ if (qFuzzyIsNull(sw)) {
qreal minX = qMin(m_bounds.x1(), m_bounds.x2());
qreal minY = qMin(m_bounds.y1(), m_bounds.y2());
qreal maxX = qMax(m_bounds.x1(), m_bounds.x2());
diff --git a/src/svg/qsvghandler.cpp b/src/svg/qsvghandler.cpp
index 433a3ad..cb07c53 100644
--- a/src/svg/qsvghandler.cpp
+++ b/src/svg/qsvghandler.cpp
@@ -2541,6 +2541,9 @@ static QSvgNode *createImageNode(QSvgNode *parent,
return 0;
}
+ if (image.format() == QImage::Format_ARGB32)
+ image = image.convertToFormat(QImage::Format_ARGB32_Premultiplied);
+
QSvgNode *img = new QSvgImage(parent,
image,
QRect(int(nx),
diff --git a/src/svg/qsvgstyle.cpp b/src/svg/qsvgstyle.cpp
index b065395..bd0804c 100644
--- a/src/svg/qsvgstyle.cpp
+++ b/src/svg/qsvgstyle.cpp
@@ -808,6 +808,7 @@ void QSvgGradientStyle::resolveStops()
static_cast<QSvgGradientStyle*>(prop);
st->resolveStops();
m_gradient->setStops(st->qgradient()->stops());
+ m_gradientStopsSet = st->gradientStopsSet();
}
}
m_link = QString();
diff --git a/src/svg/qsvgwidget.cpp b/src/svg/qsvgwidget.cpp
index a4200ca..ac8595f 100644
--- a/src/svg/qsvgwidget.cpp
+++ b/src/svg/qsvgwidget.cpp
@@ -83,18 +83,6 @@ class QSvgWidgetPrivate : public QWidgetPrivate
{
Q_DECLARE_PUBLIC(QSvgWidget)
public:
- QSvgWidgetPrivate()
- : QWidgetPrivate()
- {
- Q_Q(QSvgWidget);
- renderer = new QSvgRenderer(q);
- }
- QSvgWidgetPrivate(const QString &file)
- : QWidgetPrivate()
- {
- Q_Q(QSvgWidget);
- renderer = new QSvgRenderer(file, q);
- }
QSvgRenderer *renderer;
};
@@ -104,6 +92,7 @@ public:
QSvgWidget::QSvgWidget(QWidget *parent)
: QWidget(*new QSvgWidgetPrivate, parent, 0)
{
+ d_func()->renderer = new QSvgRenderer(this);
QObject::connect(d_func()->renderer, SIGNAL(repaintNeeded()),
this, SLOT(update()));
}
@@ -113,8 +102,9 @@ QSvgWidget::QSvgWidget(QWidget *parent)
of the specified \a file.
*/
QSvgWidget::QSvgWidget(const QString &file, QWidget *parent)
- : QWidget(*new QSvgWidgetPrivate(file), parent, 0)
+ : QWidget(*new QSvgWidgetPrivate, parent, 0)
{
+ d_func()->renderer = new QSvgRenderer(file, this);
QObject::connect(d_func()->renderer, SIGNAL(repaintNeeded()),
this, SLOT(update()));
}
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
index a9b85e8..936b936 100644
--- a/src/testlib/qtestcase.cpp
+++ b/src/testlib/qtestcase.cpp
@@ -1487,7 +1487,7 @@ int QTest::qExec(QObject *testObject, int argc, char **argv)
}
#endif
-#if defined(QTEST_NOEXITCODE) || (defined(QT_BUILD_INTERNAL) && !defined(QTEST_FORCE_EXITCODE))
+#if defined(QTEST_NOEXITCODE)
return 0;
#else
diff --git a/src/tools/uic/cpp/cppwriteinitialization.cpp b/src/tools/uic/cpp/cppwriteinitialization.cpp
index ed06006..47566ad 100644
--- a/src/tools/uic/cpp/cppwriteinitialization.cpp
+++ b/src/tools/uic/cpp/cppwriteinitialization.cpp
@@ -1648,21 +1648,21 @@ QString WriteInitialization::writeIconProperties(const DomResourceIcon *i)
const QString pixmap = QLatin1String("QPixmap");
m_output << m_indent << "QIcon " << iconName << ";\n";
if (i->hasElementNormalOff())
- m_output << m_indent << iconName << ".addPixmap(" << pixCall(pixmap, i->elementNormalOff()->text()) << ", QIcon::Normal, QIcon::Off);\n";
+ m_output << m_indent << iconName << ".addFile(QString::fromUtf8(" << fixString(i->elementNormalOff()->text(), m_dindent) << "), QSize(), QIcon::Normal, QIcon::Off);\n";
if (i->hasElementNormalOn())
- m_output << m_indent << iconName << ".addPixmap(" << pixCall(pixmap, i->elementNormalOn()->text()) << ", QIcon::Normal, QIcon::On);\n";
+ m_output << m_indent << iconName << ".addFile(QString::fromUtf8(" << fixString(i->elementNormalOn()->text(), m_dindent) << "), QSize(), QIcon::Normal, QIcon::On);\n";
if (i->hasElementDisabledOff())
- m_output << m_indent << iconName << ".addPixmap(" << pixCall(pixmap, i->elementDisabledOff()->text()) << ", QIcon::Disabled, QIcon::Off);\n";
+ m_output << m_indent << iconName << ".addFile(QString::fromUtf8(" << fixString(i->elementDisabledOff()->text(), m_dindent) << "), QSize(), QIcon::Disabled, QIcon::Off);\n";
if (i->hasElementDisabledOn())
- m_output << m_indent << iconName << ".addPixmap(" << pixCall(pixmap, i->elementDisabledOn()->text()) << ", QIcon::Disabled, QIcon::On);\n";
+ m_output << m_indent << iconName << ".addFile(QString::fromUtf8(" << fixString(i->elementDisabledOn()->text(), m_dindent) << "), QSize(), QIcon::Disabled, QIcon::On);\n";
if (i->hasElementActiveOff())
- m_output << m_indent << iconName << ".addPixmap(" << pixCall(pixmap, i->elementActiveOff()->text()) << ", QIcon::Active, QIcon::Off);\n";
+ m_output << m_indent << iconName << ".addFile(QString::fromUtf8(" << fixString(i->elementActiveOff()->text(), m_dindent) << "), QSize(), QIcon::Active, QIcon::Off);\n";
if (i->hasElementActiveOn())
- m_output << m_indent << iconName << ".addPixmap(" << pixCall(pixmap, i->elementActiveOn()->text()) << ", QIcon::Active, QIcon::On);\n";
+ m_output << m_indent << iconName << ".addFile(QString::fromUtf8(" << fixString(i->elementActiveOn()->text(), m_dindent) << "), QSize(), QIcon::Active, QIcon::On);\n";
if (i->hasElementSelectedOff())
- m_output << m_indent << iconName << ".addPixmap(" << pixCall(pixmap, i->elementSelectedOff()->text()) << ", QIcon::Selected, QIcon::Off);\n";
+ m_output << m_indent << iconName << ".addFile(QString::fromUtf8(" << fixString(i->elementSelectedOff()->text(), m_dindent) << "), QSize(), QIcon::Selected, QIcon::Off);\n";
if (i->hasElementSelectedOn())
- m_output << m_indent << iconName << ".addPixmap(" << pixCall(pixmap, i->elementSelectedOn()->text()) << ", QIcon::Selected, QIcon::On);\n";
+ m_output << m_indent << iconName << ".addFile(QString::fromUtf8(" << fixString(i->elementSelectedOn()->text(), m_dindent) << "), QSize(), QIcon::Selected, QIcon::On);\n";
} else { // pre-4.4 legacy
m_output << m_indent << "const QIcon " << iconName << " = " << pixCall(QLatin1String("QIcon"), i->text())<< ";\n";
}
diff --git a/tests/arthur/common/paintcommands.cpp b/tests/arthur/common/paintcommands.cpp
index a72e689..6ab71f8 100644
--- a/tests/arthur/common/paintcommands.cpp
+++ b/tests/arthur/common/paintcommands.cpp
@@ -1886,7 +1886,6 @@ void PaintCommands::command_setBrushOrigin(QRegExp re)
/***************************************************************************************************/
void PaintCommands::command_brushTranslate(QRegExp re)
{
-#if QT_VERSION > 0x040200
QStringList caps = re.capturedTexts();
double dx = convertToDouble(caps.at(1));
double dy = convertToDouble(caps.at(2));
@@ -1899,13 +1898,11 @@ void PaintCommands::command_brushTranslate(QRegExp re)
brush_matrix.translate(dx, dy);
new_brush.setTransform(brush_matrix);
m_painter->setBrush(new_brush);
-#endif
}
/***************************************************************************************************/
void PaintCommands::command_brushScale(QRegExp re)
{
-#if QT_VERSION > 0x040200
QStringList caps = re.capturedTexts();
double sx = convertToDouble(caps.at(1));
double sy = convertToDouble(caps.at(2));
@@ -1918,13 +1915,11 @@ void PaintCommands::command_brushScale(QRegExp re)
brush_matrix.scale(sx, sy);
new_brush.setTransform(brush_matrix);
m_painter->setBrush(new_brush);
-#endif
}
/***************************************************************************************************/
void PaintCommands::command_brushRotate(QRegExp re)
{
-#if QT_VERSION > 0x040200
QStringList caps = re.capturedTexts();
double rot = convertToDouble(caps.at(1));
@@ -1936,13 +1931,11 @@ void PaintCommands::command_brushRotate(QRegExp re)
brush_matrix.rotate(rot);
new_brush.setTransform(brush_matrix);
m_painter->setBrush(new_brush);
-#endif
}
/***************************************************************************************************/
void PaintCommands::command_brushShear(QRegExp re)
{
-#if QT_VERSION > 0x040200
QStringList caps = re.capturedTexts();
double sx = convertToDouble(caps.at(1));
double sy = convertToDouble(caps.at(2));
@@ -1955,7 +1948,6 @@ void PaintCommands::command_brushShear(QRegExp re)
brush_matrix.shear(sx, sy);
new_brush.setTransform(brush_matrix);
m_painter->setBrush(new_brush);
-#endif
}
/***************************************************************************************************/
@@ -2326,10 +2318,8 @@ void PaintCommands::command_gradient_setLinear(QRegExp re)
lg.setSpread(m_gradientSpread);
lg.setCoordinateMode(m_gradientCoordinate);
QBrush brush(lg);
-#if QT_VERSION > 0x040200
QTransform brush_matrix = m_painter->brush().transform();
brush.setTransform(brush_matrix);
-#endif
m_painter->setBrush(brush);
}
@@ -2375,10 +2365,8 @@ void PaintCommands::command_gradient_setRadial(QRegExp re)
rg.setSpread(m_gradientSpread);
rg.setCoordinateMode(m_gradientCoordinate);
QBrush brush(rg);
-#if QT_VERSION > 0x040200
QTransform brush_matrix = m_painter->brush().transform();
brush.setTransform(brush_matrix);
-#endif
m_painter->setBrush(brush);
}
@@ -2400,10 +2388,8 @@ void PaintCommands::command_gradient_setConical(QRegExp re)
cg.setSpread(m_gradientSpread);
cg.setCoordinateMode(m_gradientCoordinate);
QBrush brush(cg);
-#if QT_VERSION > 0x040200
QTransform brush_matrix = m_painter->brush().transform();
brush.setTransform(brush_matrix);
-#endif
m_painter->setBrush(brush);
}
@@ -2448,7 +2434,6 @@ void PaintCommands::command_surface_begin(QRegExp re)
m_surface_painter = m_painter;
-#if QT_VERSION > 0x040200
if (m_type == OpenGLType || m_type == OpenGLPBufferType) {
#ifndef QT_NO_OPENGL
m_surface_pbuffer = new QGLPixelBuffer(qRound(w), qRound(h));
@@ -2461,9 +2446,7 @@ void PaintCommands::command_surface_begin(QRegExp re)
m_surface_pixmap.fill(Qt::transparent);
m_painter = new QPainter(&m_surface_pixmap);
#endif
- } else
-#endif
- {
+ } else {
m_surface_image = QImage(qRound(w), qRound(h), QImage::Format_ARGB32_Premultiplied);
m_surface_image.fill(0);
m_painter = new QPainter(&m_surface_image);
diff --git a/tests/arthur/common/qengines.cpp b/tests/arthur/common/qengines.cpp
index 46f4e6b..9cd2389 100644
--- a/tests/arthur/common/qengines.cpp
+++ b/tests/arthur/common/qengines.cpp
@@ -243,11 +243,7 @@ void GLEngine::prepare(const QSize &_size, const QColor &color)
size = _size;
fillColor = color;
if (usePixelBuffers) {
-#if (QT_VERSION < 0x040200) && defined(Q_WS_MAC)
- pbuffer = new QGLPixelBuffer(QSize(512, 512), QGLFormat(QGL::SampleBuffers));
-#else
pbuffer = new QGLPixelBuffer(size, QGLFormat(QGL::SampleBuffers));
-#endif
} else {
widget = new QGLWidget(QGLFormat(QGL::SampleBuffers));
widget->setAutoFillBackground(false);
diff --git a/tests/auto/bic/tst_bic.cpp b/tests/auto/bic/tst_bic.cpp
index e0f42f0..181c275 100644
--- a/tests/auto/bic/tst_bic.cpp
+++ b/tests/auto/bic/tst_bic.cpp
@@ -195,29 +195,10 @@ void tst_Bic::sizesAndVTables_data()
&& archFileName420.isEmpty())
QSKIP("No reference files found for this platform", SkipAll);
-#if QT_VERSION >= 0x040100
bool isPatchRelease400 = false;
-#else
- bool isPatchRelease400 = true;
-#endif
-
-#if QT_VERSION >= 0x040200
bool isPatchRelease410 = false;
-#else
- bool isPatchRelease410 = true;
-#endif
-
-#if QT_VERSION >= 0x040300
bool isPatchRelease420 = false;
-#else
- bool isPatchRelease420 = true;
-#endif
-
-#if QT_VERSION >= 0x040400
bool isPatchRelease430 = false;
-#else
- bool isPatchRelease430 = true;
-#endif
QTest::addColumn<QString>("oldLib");
QTest::addColumn<bool>("isPatchRelease");
diff --git a/tests/auto/collections/tst_collections.cpp b/tests/auto/collections/tst_collections.cpp
index 6d3d1df..c05d8da 100644
--- a/tests/auto/collections/tst_collections.cpp
+++ b/tests/auto/collections/tst_collections.cpp
@@ -161,9 +161,7 @@ private slots:
void q_init();
void pointersize();
void containerInstantiation();
-#if QT_VERSION >= 0x040101
void qtimerList();
-#endif
void containerTypedefs();
void forwardDeclared();
};
@@ -1907,11 +1905,9 @@ void tst_Collections::map()
i.toFront();
while(i.hasNext()) {
sum += i.next().value();
-#if QT_VERSION >= 0x040100
i.setValue(10);
i.value() += 22;
QVERIFY(i.value() == 32);
-#endif
}
QVERIFY(sum == 11);
}
@@ -2870,10 +2866,8 @@ void tst_Collections::javaStyleIterators()
while (i.hasPrevious()) {
i.previous();
QVERIFY(i.value().isEmpty());
-#if QT_VERSION >= 0x040100
i.value() = "x";
QCOMPARE(i.value(), QString("x"));
-#endif
}
}
@@ -3355,7 +3349,6 @@ void tst_Collections::containerInstantiation()
instantiateRandomAccess<Stack, EqualsComparable>();
}
-#if QT_VERSION >= 0x040101
void tst_Collections::qtimerList()
{
QList<double> foo;
@@ -3378,7 +3371,6 @@ void tst_Collections::qtimerList()
}
QFAIL("QList preallocates too much memory");
}
-#endif
template <typename Container>
void testContainerTypedefs(Container container)
@@ -3387,11 +3379,11 @@ void testContainerTypedefs(Container container)
{ typedef typename Container::value_type Foo; }
{ typedef typename Container::iterator Foo; }
{ typedef typename Container::const_iterator Foo; }
- { typedef typename Container::reference Foo; }
- { typedef typename Container::const_reference Foo; }
- { typedef typename Container::pointer Foo; }
- { typedef typename Container::difference_type Foo; }
- { typedef typename Container::size_type Foo; }
+ { typedef typename Container::reference Foo; }
+ { typedef typename Container::const_reference Foo; }
+ { typedef typename Container::pointer Foo; }
+ { typedef typename Container::difference_type Foo; }
+ { typedef typename Container::size_type Foo; }
}
template <typename Container>
@@ -3403,11 +3395,11 @@ void testPairAssociativeContainerTypedefs(Container container)
// { typedef typename Container::value_type Foo; }
// { typedef typename Container::const_iterator Foo; }
// { typedef typename Container::reference Foo; }
-// { typedef typename Container::const_reference Foo; }
-// { typedef typename Container::pointer Foo; }
+// { typedef typename Container::const_reference Foo; }
+// { typedef typename Container::pointer Foo; }
- { typedef typename Container::difference_type Foo; }
- { typedef typename Container::size_type Foo; }
+ { typedef typename Container::difference_type Foo; }
+ { typedef typename Container::size_type Foo; }
{ typedef typename Container::iterator Foo; }
{ typedef typename Container::key_type Foo; }
{ typedef typename Container::mapped_type Foo; }
@@ -3422,11 +3414,11 @@ void testSetContainerTypedefs(Container container)
Q_UNUSED(container)
{ typedef typename Container::iterator Foo; }
{ typedef typename Container::const_iterator Foo; }
- { typedef typename Container::reference Foo; }
- { typedef typename Container::const_reference Foo; }
- { typedef typename Container::pointer Foo; }
- { typedef typename Container::difference_type Foo; }
- { typedef typename Container::size_type Foo; }
+ { typedef typename Container::reference Foo; }
+ { typedef typename Container::const_reference Foo; }
+ { typedef typename Container::pointer Foo; }
+ { typedef typename Container::difference_type Foo; }
+ { typedef typename Container::size_type Foo; }
{ typedef typename Container::key_type Foo; }
}
@@ -3450,7 +3442,7 @@ void tst_Collections::containerTypedefs()
}
#if defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET)
-class Key1
+class Key1
{};
class T1
{};
diff --git a/tests/auto/compilerwarnings/tst_compilerwarnings.cpp b/tests/auto/compilerwarnings/tst_compilerwarnings.cpp
index 232af55..1f5f479 100644
--- a/tests/auto/compilerwarnings/tst_compilerwarnings.cpp
+++ b/tests/auto/compilerwarnings/tst_compilerwarnings.cpp
@@ -173,9 +173,7 @@ void tst_CompilerWarnings::warnings()
<< "-Wno-long-long" << "-Wshadow" << "-Wpacked" << "-Wunreachable-code"
<< "-Wundef" << "-Wchar-subscripts" << "-Wformat-nonliteral" << "-Wformat-security"
<< "-Wcast-align"
-#if QT_VERSION >= 0x040100
<< "-Wfloat-equal"
-#endif
<< "-o" << tmpFile
<< tmpSourceFile;
#elif defined(Q_CC_XLC)
diff --git a/tests/auto/math3d/math3d.pro b/tests/auto/math3d/math3d.pro
index 3977e92..d6189ef 100644
--- a/tests/auto/math3d/math3d.pro
+++ b/tests/auto/math3d/math3d.pro
@@ -1,3 +1,2 @@
TEMPLATE = subdirs
-SUBDIRS = qfixedpt qmatrixnxn qquaternion qvectornd
-SUBDIRS += qmatrixnxn_fixed qquaternion_fixed qvectornd_fixed
+SUBDIRS = qmatrixnxn qquaternion qvectornd
diff --git a/tests/auto/math3d/qfixedpt/qfixedpt.pro b/tests/auto/math3d/qfixedpt/qfixedpt.pro
deleted file mode 100644
index 94598b5..0000000
--- a/tests/auto/math3d/qfixedpt/qfixedpt.pro
+++ /dev/null
@@ -1,2 +0,0 @@
-load(qttest_p4)
-SOURCES += tst_qfixedpt.cpp
diff --git a/tests/auto/math3d/qfixedpt/tst_qfixedpt.cpp b/tests/auto/math3d/qfixedpt/tst_qfixedpt.cpp
deleted file mode 100644
index ef333a6..0000000
--- a/tests/auto/math3d/qfixedpt/tst_qfixedpt.cpp
+++ /dev/null
@@ -1,643 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (qt-info@nokia.com)
-**
-** This file is part of the $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 either Technology Preview License Agreement or the
-** Beta Release License Agreement.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
-** package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtTest/QtTest>
-#include <QtCore/qmath.h>
-#include <QtGui/qfixedpt.h>
-
-class tst_QFixedPt : public QObject
-{
- Q_OBJECT
-public:
- tst_QFixedPt() {}
- ~tst_QFixedPt() {}
-
-private slots:
- void create_data();
- void create();
- void add_data();
- void add();
- void sub_data();
- void sub();
- void mul_data();
- void mul();
- void div_data();
- void div();
- void neg_data();
- void neg();
- void shift_data();
- void shift();
- void sqrt_data();
- void sqrt();
- void round_data();
- void round();
- void compare_data();
- void compare();
-};
-
-// qFuzzyCompare isn't quite "fuzzy" enough to handle conversion
-// to fixed-point and back again. So create a "fuzzier" compare.
-static bool fuzzyCompare(double x, double y)
-{
- double diff = x - y;
- if (diff < 0.0f)
- diff = -diff;
- return (diff < 0.0001);
-}
-
-// Test the creation of QFixedPt values in various ways.
-void tst_QFixedPt::create_data()
-{
- QTest::addColumn<int>("value");
- QTest::addColumn<int>("intValue");
- QTest::addColumn<float>("realValue");
-
- QTest::newRow("zero") << 0x00000000 << 0 << 0.0f;
- QTest::newRow("one") << 0x00010000 << 1 << 1.0f;
- QTest::newRow("1.5") << 0x00018000 << 2 << 1.5f; // int rounds up
- QTest::newRow("-1.5") << (int)0xFFFE8000 << -1 << -1.5f; // int rounds up
- QTest::newRow("-7") << (int)0xFFF90000 << -7 << -7.0f;
-}
-void tst_QFixedPt::create()
-{
- QFETCH(int, value);
- QFETCH(int, intValue);
- QFETCH(float, realValue);
-
- if (qFloor(realValue) == realValue) {
- QFixedPt<16> ivalue(intValue);
- QCOMPARE(ivalue.bits(), value);
- QCOMPARE(ivalue.toInt(), intValue);
- QCOMPARE(ivalue.toReal(), (qreal)realValue);
- }
-
- QFixedPt<16> fvalue(realValue);
- QCOMPARE(fvalue.bits(), value);
- QCOMPARE(fvalue.toInt(), intValue);
- QCOMPARE(fvalue.toReal(), (qreal)realValue);
-
- QFixedPt<16> fpvalue;
- fpvalue.setBits(value);
- QCOMPARE(fpvalue.bits(), value);
- QCOMPARE(fpvalue.toInt(), intValue);
- QCOMPARE(fpvalue.toReal(), (qreal)realValue);
-
- QFixedPt<16> fpvalue2(fpvalue);
- QCOMPARE(fpvalue2.bits(), value);
- QCOMPARE(fpvalue2.toInt(), intValue);
- QCOMPARE(fpvalue2.toReal(), (qreal)realValue);
-
- if (qFloor(realValue) == realValue) {
- QFixedPt<16> ivalue2(63); // Initialize the something else.
- ivalue2 = intValue; // Then change the value.
- QCOMPARE(ivalue2.bits(), value);
- QCOMPARE(ivalue2.toInt(), intValue);
- QCOMPARE(ivalue2.toReal(), (qreal)realValue);
- }
-
- QFixedPt<16> fvalue2(36);
- fvalue2 = realValue;
- QCOMPARE(fvalue2.bits(), value);
- QCOMPARE(fvalue2.toInt(), intValue);
- QCOMPARE(fvalue2.toReal(), (qreal)realValue);
-
- QFixedPt<16> fpvalue3;
- fpvalue3 = fpvalue;
- QCOMPARE(fpvalue3.bits(), value);
- QCOMPARE(fpvalue3.toInt(), intValue);
- QCOMPARE(fpvalue3.toReal(), (qreal)realValue);
-
- // Now do some of the tests again with a different precision value.
-
- if (qFloor(realValue) == realValue) {
- QFixedPt<4> ivalue3(intValue);
- QCOMPARE(ivalue3.bits(), value >> 12);
- QCOMPARE(ivalue3.toInt(), intValue);
- QCOMPARE(ivalue3.toReal(), (qreal)realValue);
- }
-
- QFixedPt<4> fvalue3(realValue);
- QCOMPARE(fvalue3.bits(), value >> 12);
- QCOMPARE(fvalue3.toInt(), intValue);
- QCOMPARE(fvalue3.toReal(), (qreal)realValue);
-
- QFixedPt<4> fpvalue4;
- fpvalue4.setBits(value >> 12);
- QCOMPARE(fpvalue4.bits(), value >> 12);
- QCOMPARE(fpvalue4.toInt(), intValue);
- QCOMPARE(fpvalue4.toReal(), (qreal)realValue);
-
- // Test conversion between the precision values.
-
-#if !defined(QT_NO_MEMBER_TEMPLATES)
- if (qFloor(realValue) == realValue) {
- QFixedPt<16> ivalue(intValue);
- QFixedPt<4> ivalue3(intValue);
- QVERIFY(ivalue.toPrecision<4>() == ivalue3);
- QVERIFY(ivalue3.toPrecision<16>() == ivalue);
- }
- QVERIFY(fvalue.toPrecision<4>() == fvalue3);
- QVERIFY(fvalue3.toPrecision<16>() == fvalue);
-#endif
-
- if (qFloor(realValue) == realValue) {
- QFixedPt<16> ivalue(intValue);
- QFixedPt<4> ivalue3(intValue);
- QVERIFY(qFixedPtToPrecision<4>(ivalue) == ivalue3);
- QVERIFY(qFixedPtToPrecision<16>(ivalue3) == ivalue);
- }
- QVERIFY(qFixedPtToPrecision<4>(fvalue) == fvalue3);
- QVERIFY(qFixedPtToPrecision<16>(fvalue3) == fvalue);
-}
-
-// Test fixed point addition.
-void tst_QFixedPt::add_data()
-{
- QTest::addColumn<float>("a");
- QTest::addColumn<float>("b");
-
- QTest::newRow("zero") << 0.0f << 0.0f;
- QTest::newRow("test1") << 1.0f << 0.0f;
- QTest::newRow("test2") << 0.0f << 1.0f;
- QTest::newRow("test3") << 10.0f << -3.0f;
- QTest::newRow("test4") << 10.5f << 3.25f;
-}
-void tst_QFixedPt::add()
-{
- QFETCH(float, a);
- QFETCH(float, b);
-
- QFixedPt<16> avalue(a);
- QFixedPt<16> bvalue(b);
-
- QFixedPt<16> cvalue = avalue + bvalue;
- QFixedPt<16> dvalue = a + bvalue;
- QFixedPt<16> evalue = avalue + b;
-
- QCOMPARE(cvalue.toReal(), (qreal)(a + b));
- QCOMPARE(dvalue.toReal(), (qreal)(a + b));
- QCOMPARE(evalue.toReal(), (qreal)(a + b));
-
- QFixedPt<16> fvalue(avalue);
- fvalue += bvalue;
- QCOMPARE(fvalue.toReal(), (qreal)(a + b));
-
- QFixedPt<16> gvalue(avalue);
- gvalue += b;
- QCOMPARE(gvalue.toReal(), (qreal)(a + b));
-
- if (qFloor(a) == a && qFloor(b) == b) {
- QFixedPt<16> hvalue = int(a) + bvalue;
- QFixedPt<16> ivalue = avalue + int(b);
-
- QCOMPARE(hvalue.toInt(), int(a) + int(b));
- QCOMPARE(ivalue.toInt(), int(a) + int(b));
- QCOMPARE(hvalue.toReal(), (qreal)(a + b));
- QCOMPARE(ivalue.toReal(), (qreal)(a + b));
-
- QFixedPt<16> jvalue(avalue);
- jvalue += int(b);
- QCOMPARE(jvalue.toReal(), (qreal)(a + b));
- }
-}
-
-// Test fixed point subtraction.
-void tst_QFixedPt::sub_data()
-{
- // Use the same test data as the add() test.
- add_data();
-}
-void tst_QFixedPt::sub()
-{
- QFETCH(float, a);
- QFETCH(float, b);
-
- QFixedPt<16> avalue(a);
- QFixedPt<16> bvalue(b);
-
- QFixedPt<16> cvalue = avalue - bvalue;
- QFixedPt<16> dvalue = a - bvalue;
- QFixedPt<16> evalue = avalue - b;
-
- QCOMPARE(cvalue.toReal(), (qreal)(a - b));
- QCOMPARE(dvalue.toReal(), (qreal)(a - b));
- QCOMPARE(evalue.toReal(), (qreal)(a - b));
-
- QFixedPt<16> fvalue(avalue);
- fvalue -= bvalue;
- QCOMPARE(fvalue.toReal(), (qreal)(a - b));
-
- QFixedPt<16> gvalue(avalue);
- gvalue -= b;
- QCOMPARE(gvalue.toReal(), (qreal)(a - b));
-
- if (qFloor(a) == a && qFloor(b) == b) {
- QFixedPt<16> hvalue = int(a) - bvalue;
- QFixedPt<16> ivalue = avalue - int(b);
-
- QCOMPARE(hvalue.toInt(), int(a) - int(b));
- QCOMPARE(ivalue.toInt(), int(a) - int(b));
- QCOMPARE(hvalue.toReal(), (qreal)(a - b));
- QCOMPARE(ivalue.toReal(), (qreal)(a - b));
-
- QFixedPt<16> jvalue(avalue);
- jvalue -= int(b);
- QCOMPARE(jvalue.toReal(), (qreal)(a - b));
- }
-}
-
-// Test fixed point multiplication.
-void tst_QFixedPt::mul_data()
-{
- // Use the same test data as the add() test.
- add_data();
-}
-void tst_QFixedPt::mul()
-{
- QFETCH(float, a);
- QFETCH(float, b);
-
- QFixedPt<16> avalue(a);
- QFixedPt<16> bvalue(b);
-
- QFixedPt<16> cvalue = avalue * bvalue;
- QFixedPt<16> dvalue = a * bvalue;
- QFixedPt<16> evalue = avalue * b;
-
- QCOMPARE(cvalue.toReal(), (qreal)(a * b));
- QCOMPARE(dvalue.toReal(), (qreal)(a * b));
- QCOMPARE(evalue.toReal(), (qreal)(a * b));
-
- QFixedPt<16> fvalue(avalue);
- fvalue *= bvalue;
- QCOMPARE(fvalue.toReal(), (qreal)(a * b));
-
- QFixedPt<16> gvalue(avalue);
- gvalue *= b;
- QCOMPARE(gvalue.toReal(), (qreal)(a * b));
-
- if (qFloor(a) == a && qFloor(b) == b) {
- QFixedPt<16> hvalue = int(a) * bvalue;
- QFixedPt<16> ivalue = avalue * int(b);
-
- QCOMPARE(hvalue.toInt(), int(a) * int(b));
- QCOMPARE(ivalue.toInt(), int(a) * int(b));
- QCOMPARE(hvalue.toReal(), (qreal)(a * b));
- QCOMPARE(ivalue.toReal(), (qreal)(a * b));
-
- QFixedPt<16> jvalue(avalue);
- jvalue *= int(b);
- QCOMPARE(jvalue.toReal(), (qreal)(a * b));
- }
-}
-
-// Test fixed point division.
-void tst_QFixedPt::div_data()
-{
- // Use the same test data as the add() test.
- add_data();
-}
-void tst_QFixedPt::div()
-{
- QFETCH(float, a);
- QFETCH(float, b);
-
- QFixedPt<16> avalue(a);
- QFixedPt<16> bvalue(b);
-
- qreal result;
- if (b == 0.0f)
- result = 0.0f; // Divide by zero results in zero.
- else
- result = a / b;
-
- QFixedPt<16> cvalue = avalue / bvalue;
- QFixedPt<16> dvalue = a / bvalue;
- QFixedPt<16> evalue = avalue / b;
-
- QVERIFY(fuzzyCompare(cvalue.toReal(), result));
- QVERIFY(fuzzyCompare(dvalue.toReal(), result));
- QVERIFY(fuzzyCompare(evalue.toReal(), result));
-
- QFixedPt<16> fvalue(avalue);
- fvalue /= bvalue;
- QVERIFY(fuzzyCompare(fvalue.toReal(), result));
-
- QFixedPt<16> gvalue(avalue);
- gvalue /= b;
- QVERIFY(fuzzyCompare(gvalue.toReal(), result));
-
- if (qFloor(a) == a && qFloor(b) == b) {
- QFixedPt<16> hvalue = int(a) / bvalue;
- QFixedPt<16> ivalue = avalue / int(b);
-
- QCOMPARE(hvalue.toInt(), int(result));
- QCOMPARE(ivalue.toInt(), int(result));
- QVERIFY(fuzzyCompare(hvalue.toReal(), result));
- QVERIFY(fuzzyCompare(ivalue.toReal(), result));
-
- QFixedPt<16> jvalue(avalue);
- jvalue /= int(b);
- QVERIFY(fuzzyCompare(jvalue.toReal(), result));
- }
-}
-
-// Test fixed point negation.
-void tst_QFixedPt::neg_data()
-{
- // Use the same test data as the add() test.
- add_data();
-}
-void tst_QFixedPt::neg()
-{
- QFETCH(float, a);
- QFETCH(float, b);
-
- QFixedPt<16> avalue(a);
- QFixedPt<16> bvalue(b);
-
- QFixedPt<16> cvalue = -avalue;
- QCOMPARE(cvalue.bits(), -avalue.bits());
- QCOMPARE(cvalue.toInt(), int(-a));
- QCOMPARE(cvalue.toReal(), (qreal)-a);
-
- QFixedPt<16> dvalue = -bvalue;
- QCOMPARE(dvalue.bits(), -bvalue.bits());
- QCOMPARE(dvalue.toInt(), int(-b));
- QCOMPARE(dvalue.toReal(), (qreal)-b);
-}
-
-// Test left and right shift operators on fixed point values.
-void tst_QFixedPt::shift_data()
-{
- QTest::addColumn<float>("a");
- QTest::addColumn<int>("amount");
-
- QTest::newRow("zero") << 0.0f << 5;
- QTest::newRow("one") << 1.0f << 4;
- QTest::newRow("-1.75") << -1.75f << 4;
-}
-void tst_QFixedPt::shift()
-{
- QFETCH(float, a);
- QFETCH(int, amount);
-
- int lresult = int((a * 65536.0) * (1 << amount));
- int rresult = int((a * 65536.0) / (1 << amount));
-
- QFixedPt<16> avalue(a);
- avalue <<= amount;
- QCOMPARE(avalue.bits(), lresult);
-
- QFixedPt<16> bvalue(a);
- bvalue >>= amount;
- QCOMPARE(bvalue.bits(), rresult);
-
- QFixedPt<16> cvalue(a);
-
- QFixedPt<16> dvalue;
- dvalue = cvalue << amount;
- QCOMPARE(dvalue.bits(), lresult);
-
- QFixedPt<16> evalue;
- evalue = cvalue >> amount;
- QCOMPARE(evalue.bits(), rresult);
-}
-
-// Test fixed point square root.
-void tst_QFixedPt::sqrt_data()
-{
- QTest::addColumn<float>("a");
-
- QTest::newRow("zero") << 0.0f;
- QTest::newRow("one") << 1.0f;
- QTest::newRow("two") << 2.0f;
- QTest::newRow("sixteen") << 16.0f;
- QTest::newRow("1.5") << 1.5f;
-}
-void tst_QFixedPt::sqrt()
-{
- QFETCH(float, a);
-
- QFixedPt<16> avalue(a);
- QVERIFY(fuzzyCompare(avalue.sqrt().toReal(), qSqrt(a)));
- QVERIFY(fuzzyCompare(avalue.sqrtF(), qSqrt(a)));
-}
-
-// Test fixed point rounding.
-void tst_QFixedPt::round_data()
-{
- QTest::addColumn<float>("a");
- QTest::addColumn<int>("rounded");
- QTest::addColumn<int>("ceiling");
- QTest::addColumn<int>("flooring");
- QTest::addColumn<int>("truncated");
-
- QTest::newRow("zero") << 0.0f << 0 << 0 << 0 << 0;
- QTest::newRow("test1") << 1.0f << 1 << 1 << 1 << 1;
- QTest::newRow("test2") << 2.5f << 3 << 3 << 2 << 2;
- QTest::newRow("test3") << 2.3f << 2 << 3 << 2 << 2;
- QTest::newRow("test4") << -2.5f << -2 << -2 << -3 << -3;
- QTest::newRow("test5") << -2.3f << -2 << -2 << -3 << -3;
- QTest::newRow("test6") << -2.7f << -3 << -2 << -3 << -3;
-}
-void tst_QFixedPt::round()
-{
- QFETCH(float, a);
- QFETCH(int, rounded);
- QFETCH(int, ceiling);
- QFETCH(int, flooring);
- QFETCH(int, truncated);
-
- QFixedPt<16> avalue(a);
- QVERIFY(avalue.round() == rounded);
- QVERIFY(avalue.ceil() == ceiling);
- QVERIFY(avalue.floor() == flooring);
- QVERIFY(avalue.truncate() == truncated);
-
- QCOMPARE(qRound(avalue), rounded);
- QCOMPARE(qCeil(avalue), ceiling);
- QCOMPARE(qFloor(avalue), flooring);
-}
-
-// Test comparison operators.
-void tst_QFixedPt::compare_data()
-{
- QTest::addColumn<float>("a");
- QTest::addColumn<float>("b");
-
- QTest::newRow("test1") << 0.0f << 0.0f;
- QTest::newRow("test2") << 1.0f << 0.0f;
- QTest::newRow("test3") << 2.5f << 2.5f;
- QTest::newRow("test4") << 2.5f << -2.5f;
- QTest::newRow("test5") << -2.5f << 2.5f;
-}
-void tst_QFixedPt::compare()
-{
- QFETCH(float, a);
- QFETCH(float, b);
-
- QFixedPt<16> avalue(a);
- QFixedPt<16> bvalue(b);
-
- if (a == b) {
- QVERIFY(avalue == bvalue);
- QVERIFY(avalue == b);
- QVERIFY(a == bvalue);
- QVERIFY(!(avalue != bvalue));
- QVERIFY(!(avalue != b));
- QVERIFY(!(a != bvalue));
- QVERIFY(!(avalue < bvalue));
- QVERIFY(!(avalue < b));
- QVERIFY(!(a < bvalue));
- QVERIFY(!(avalue > bvalue));
- QVERIFY(!(avalue > b));
- QVERIFY(!(a > bvalue));
- QVERIFY(avalue <= bvalue);
- QVERIFY(avalue <= b);
- QVERIFY(a <= bvalue);
- QVERIFY(avalue >= bvalue);
- QVERIFY(avalue >= b);
- QVERIFY(a >= bvalue);
- if (qFloor(a) == a) {
- QVERIFY(int(a) == bvalue);
- QVERIFY(!(int(a) != bvalue));
- QVERIFY(!(int(a) < bvalue));
- QVERIFY(!(int(a) > bvalue));
- QVERIFY(int(a) <= bvalue);
- QVERIFY(int(a) >= bvalue);
- }
- if (qFloor(b) == b) {
- QVERIFY(avalue == int(b));
- QVERIFY(!(avalue != int(b)));
- QVERIFY(!(avalue < int(b)));
- QVERIFY(!(avalue > int(b)));
- QVERIFY(avalue <= int(b));
- QVERIFY(avalue >= int(b));
- }
- }
-
- if (a != b) {
- QVERIFY(avalue != bvalue);
- QVERIFY(avalue != b);
- QVERIFY(a != bvalue);
- QVERIFY(!(avalue == bvalue));
- QVERIFY(!(avalue == b));
- QVERIFY(!(a == bvalue));
- if (qFloor(a) == a) {
- QVERIFY(int(a) != bvalue);
- QVERIFY(!(int(a) == bvalue));
- }
- if (qFloor(b) == b) {
- QVERIFY(avalue != int(b));
- QVERIFY(!(avalue == int(b)));
- }
- }
-
- if (a < b) {
- QVERIFY(avalue < bvalue);
- QVERIFY(avalue < b);
- QVERIFY(a < bvalue);
- QVERIFY(!(avalue >= bvalue));
- QVERIFY(!(avalue >= b));
- QVERIFY(!(a >= bvalue));
- QVERIFY(!(avalue > bvalue));
- QVERIFY(!(avalue > b));
- QVERIFY(!(a > bvalue));
- QVERIFY(avalue <= bvalue);
- QVERIFY(avalue <= b);
- QVERIFY(a <= bvalue);
- QVERIFY(!(avalue >= bvalue));
- QVERIFY(!(avalue >= b));
- QVERIFY(!(a >= bvalue));
- if (qFloor(a) == a) {
- QVERIFY(int(a) < bvalue);
- QVERIFY(!(int(a) >= bvalue));
- QVERIFY(!(int(a) > bvalue));
- QVERIFY(int(a) <= bvalue);
- }
- if (qFloor(b) == b) {
- QVERIFY(avalue < int(b));
- QVERIFY(!(avalue >= int(b)));
- QVERIFY(!(avalue > int(b)));
- QVERIFY(avalue <= int(b));
- }
- }
-
- if (a > b) {
- QVERIFY(avalue > bvalue);
- QVERIFY(avalue > b);
- QVERIFY(a > bvalue);
- QVERIFY(!(avalue <= bvalue));
- QVERIFY(!(avalue <= b));
- QVERIFY(!(a <= bvalue));
- QVERIFY(!(avalue < bvalue));
- QVERIFY(!(avalue < b));
- QVERIFY(!(a < bvalue));
- QVERIFY(avalue >= bvalue);
- QVERIFY(avalue >= b);
- QVERIFY(a >= bvalue);
- QVERIFY(!(avalue <= bvalue));
- QVERIFY(!(avalue <= b));
- QVERIFY(!(a <= bvalue));
- if (qFloor(a) == a) {
- QVERIFY(int(a) > bvalue);
- QVERIFY(!(int(a) <= bvalue));
- QVERIFY(!(int(a) < bvalue));
- QVERIFY(int(a) >= bvalue);
- }
- if (qFloor(b) == b) {
- QVERIFY(avalue > int(b));
- QVERIFY(!(avalue <= int(b)));
- QVERIFY(!(avalue < int(b)));
- QVERIFY(avalue >= int(b));
- }
- }
-
- if (qFuzzyCompare(a, b))
- QVERIFY(qFuzzyCompare(avalue, bvalue));
- else
- QVERIFY(!qFuzzyCompare(avalue, bvalue));
-}
-
-QTEST_APPLESS_MAIN(tst_QFixedPt)
-
-#include "tst_qfixedpt.moc"
diff --git a/tests/auto/math3d/qmatrixnxn/tst_qmatrixnxn.cpp b/tests/auto/math3d/qmatrixnxn/tst_qmatrixnxn.cpp
index 8a7dd49..bb510fc 100644
--- a/tests/auto/math3d/qmatrixnxn/tst_qmatrixnxn.cpp
+++ b/tests/auto/math3d/qmatrixnxn/tst_qmatrixnxn.cpp
@@ -321,7 +321,7 @@ void tst_QMatrix::setMatrix(QMatrix4x3& m, const qreal *values)
// to be in row-major order. This sets the values using fixed-point.
void tst_QMatrix::setMatrixFixed(QMatrix2x2& m, const qreal *values)
{
- qrealinner *data = m.data();
+ float *data = m.data();
for (int row = 0; row < 2; ++row) {
for (int col = 0; col < 2; ++col) {
data[row + col * 2] = values[row * 2 + col];
@@ -330,7 +330,7 @@ void tst_QMatrix::setMatrixFixed(QMatrix2x2& m, const qreal *values)
}
void tst_QMatrix::setMatrixFixed(QMatrix3x3& m, const qreal *values)
{
- qrealinner *data = m.data();
+ float *data = m.data();
for (int row = 0; row < 3; ++row) {
for (int col = 0; col < 3; ++col) {
data[row + col * 3] = values[row * 3 + col];
@@ -339,7 +339,7 @@ void tst_QMatrix::setMatrixFixed(QMatrix3x3& m, const qreal *values)
}
void tst_QMatrix::setMatrixFixed(QMatrix4x4& m, const qreal *values)
{
- qrealinner *data = m.data();
+ float *data = m.data();
for (int row = 0; row < 4; ++row) {
for (int col = 0; col < 4; ++col) {
data[row + col * 4] = values[row * 4 + col];
@@ -348,7 +348,7 @@ void tst_QMatrix::setMatrixFixed(QMatrix4x4& m, const qreal *values)
}
void tst_QMatrix::setMatrixFixed(QMatrix4x3& m, const qreal *values)
{
- qrealinner *data = m.data();
+ float *data = m.data();
for (int row = 0; row < 3; ++row) {
for (int col = 0; col < 4; ++col) {
data[row + col * 3] = values[row * 4 + col];
@@ -365,15 +365,6 @@ static bool fuzzyCompare(float x, float y, qreal epsilon = 0.001)
diff = -diff;
return (diff < epsilon);
}
-#ifdef QT_GL_FIXED_PREFERRED
-static bool fuzzyCompareFixed(qrealinner x, int y)
-{
- int diff = x.bits() - y;
- if (diff < 0)
- diff = -diff;
- return (diff < 50);
-}
-#endif
static bool fuzzyCompare(const QVector3D &v1, const QVector3D &v2, qreal epsilon = 0.001)
{
@@ -402,7 +393,7 @@ static bool matrixFuzzyCompare(const QMatrix4x4 &m1, const QMatrix4x4 &m2)
// The values are assumed to be specified in row-major order.
bool tst_QMatrix::isSame(const QMatrix2x2& m, const qreal *values)
{
- const qrealinner *mv = m.constData();
+ const float *mv = m.constData();
for (int row = 0; row < 2; ++row) {
for (int col = 0; col < 2; ++col) {
// Check the values using the operator() function.
@@ -413,24 +404,17 @@ bool tst_QMatrix::isSame(const QMatrix2x2& m, const qreal *values)
// Check the values using direct access, which verifies that the values
// are stored internally in column-major order.
-#ifdef QT_GL_FIXED_PREFERRED
- if (!fuzzyCompareFixed(mv[col * 2 + row], (int)(values[row * 2 + col] * 65536.0))) {
- qDebug() << "column fixed-point failure at" << row << col << "actual =" << mv[col * 2 + row] << "expected =" << (int)(values[row * 2 + col] * 65536.0);
- return false;
- }
-#else
if (!fuzzyCompare((float)(mv[col * 2 + row]), (float)(values[row * 2 + col]))) {
qDebug() << "column floating-point failure at" << row << col << "actual =" << mv[col * 2 + row] << "expected =" << values[row * 2 + col];
return false;
}
-#endif
}
}
return true;
}
bool tst_QMatrix::isSame(const QMatrix3x3& m, const qreal *values)
{
- const qrealinner *mv = m.constData();
+ const float *mv = m.constData();
for (int row = 0; row < 3; ++row) {
for (int col = 0; col < 3; ++col) {
// Check the values using the operator() access function.
@@ -441,24 +425,17 @@ bool tst_QMatrix::isSame(const QMatrix3x3& m, const qreal *values)
// Check the values using direct access, which verifies that the values
// are stored internally in column-major order.
-#ifdef QT_GL_FIXED_PREFERRED
- if (!fuzzyCompareFixed(mv[col * 3 + row], (int)(values[row * 3 + col] * 65536.0))) {
- qDebug() << "column fixed-point failure at" << row << col << "actual =" << mv[col * 3 + row] << "expected =" << (int)(values[row * 3 + col] * 65536.0);
- return false;
- }
-#else
if (!fuzzyCompare((float)(mv[col * 3 + row]), (float)(values[row * 3 + col]))) {
qDebug() << "column floating-point failure at" << row << col << "actual =" << mv[col * 3 + row] << "expected =" << values[row * 3 + col];
return false;
}
-#endif
}
}
return true;
}
bool tst_QMatrix::isSame(const QMatrix4x4& m, const qreal *values)
{
- const qrealinner *mv = m.constData();
+ const float *mv = m.constData();
for (int row = 0; row < 4; ++row) {
for (int col = 0; col < 4; ++col) {
// Check the values using the operator() access function.
@@ -469,24 +446,17 @@ bool tst_QMatrix::isSame(const QMatrix4x4& m, const qreal *values)
// Check the values using direct access, which verifies that the values
// are stored internally in column-major order.
-#ifdef QT_GL_FIXED_PREFERRED
- if (!fuzzyCompareFixed(mv[col * 4 + row], (int)(values[row * 4 + col] * 65536.0))) {
- qDebug() << "column fixed-point failure at" << row << col << "actual =" << mv[col * 4 + row] << "expected =" << (int)(values[row * 4 + col] * 65536.0);
- return false;
- }
-#else
if (!fuzzyCompare((float)(mv[col * 4 + row]), (float)(values[row * 4 + col]))) {
qDebug() << "column floating-point failure at" << row << col << "actual =" << mv[col * 4 + row] << "expected =" << values[row * 4 + col];
return false;
}
-#endif
}
}
return true;
}
bool tst_QMatrix::isSame(const QMatrix4x3& m, const qreal *values)
{
- const qrealinner *mv = m.constData();
+ const float *mv = m.constData();
for (int row = 0; row < 3; ++row) {
for (int col = 0; col < 4; ++col) {
// Check the values using the operator() access function.
@@ -497,17 +467,10 @@ bool tst_QMatrix::isSame(const QMatrix4x3& m, const qreal *values)
// Check the values using direct access, which verifies that the values
// are stored internally in column-major order.
-#ifdef QT_GL_FIXED_PREFERRED
- if (!fuzzyCompareFixed(mv[col * 3 + row], (int)(values[row * 4 + col] * 65536.0))) {
- qDebug() << "column fixed-point failure at" << row << col << "actual =" << mv[col * 3 + row] << "expected =" << (int)(values[row * 4 + col] * 65536.0);
- return false;
- }
-#else
if (!fuzzyCompare((float)(mv[col * 3 + row]), (float)(values[row * 4 + col]))) {
qDebug() << "column floating-point failure at" << row << col << "actual =" << mv[col * 3 + row] << "expected =" << values[row * 4 + col];
return false;
}
-#endif
}
}
return true;
@@ -1333,7 +1296,7 @@ void tst_QMatrix::multiply4x3()
QMatrix4x3 m1((const qreal *)m1Values);
QMatrix3x4 m2((const qreal *)m2Values);
- QGenericMatrix<3, 3, qreal, qrealinner> m4;
+ QGenericMatrix<3, 3, qreal, float> m4;
m4 = m1 * m2;
qreal values[9];
m4.toValueArray(values);
@@ -2901,11 +2864,7 @@ void tst_QMatrix::extractAxisRotation()
m.extractAxisRotation(extractedAngle, extractedAxis);
-#ifdef QT_GL_FIXED_PREFERRED
- qreal epsilon = 0.003;
-#else
qreal epsilon = 0.001;
-#endif
if (angle > 180) {
QVERIFY(fuzzyCompare(360.0f - angle, extractedAngle, epsilon));
@@ -2953,11 +2912,7 @@ void tst_QMatrix::extractTranslation()
QVector3D vec = rotation.extractTranslation();
-#ifdef QT_GL_FIXED_PREFERRED
- qreal epsilon = 0.01;
-#else
qreal epsilon = 0.001;
-#endif
QVERIFY(fuzzyCompare(vec.x(), x, epsilon));
QVERIFY(fuzzyCompare(vec.y(), y, epsilon));
@@ -2992,7 +2947,7 @@ enum {
// Structure that allows direct access to "flagBits" for testing.
struct Matrix4x4
{
- qrealinner m[4][4];
+ float m[4][4];
int flagBits;
};
@@ -3225,24 +3180,6 @@ void tst_QMatrix::fill()
QVERIFY(isSame(m2, fillValues4x3));
}
-// Force the fixed-point version of the test case to put a
-// different test name on the front of failure reports.
-class tst_QMatrixFixed : public tst_QMatrix
-{
- Q_OBJECT
-public:
- tst_QMatrixFixed() {}
- ~tst_QMatrixFixed() {}
-};
-
-#ifdef QT_GL_FIXED_PREFERRED
-
-QTEST_APPLESS_MAIN(tst_QMatrixFixed)
-
-#else
-
QTEST_APPLESS_MAIN(tst_QMatrix)
-#endif
-
#include "tst_qmatrixnxn.moc"
diff --git a/tests/auto/math3d/qmatrixnxn_fixed/qmatrixnxn_fixed.pro b/tests/auto/math3d/qmatrixnxn_fixed/qmatrixnxn_fixed.pro
deleted file mode 100644
index cd1c8fa..0000000
--- a/tests/auto/math3d/qmatrixnxn_fixed/qmatrixnxn_fixed.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-load(qttest_p4)
-VPATH += ../shared
-VPATH += ../qmatrixnxn
-INCLUDEPATH += ../shared
-INCLUDEPATH += ../../../../src/gui/math3d
-DEFINES += FIXED_POINT_TESTS
-HEADERS += math3dincludes.h
-SOURCES += tst_qmatrixnxn.cpp math3dincludes.cpp
diff --git a/tests/auto/math3d/qquaternion/tst_qquaternion.cpp b/tests/auto/math3d/qquaternion/tst_qquaternion.cpp
index 325cb40..f25f858 100644
--- a/tests/auto/math3d/qquaternion/tst_qquaternion.cpp
+++ b/tests/auto/math3d/qquaternion/tst_qquaternion.cpp
@@ -88,8 +88,11 @@ private slots:
void fromAxisAndAngle_data();
void fromAxisAndAngle();
- void interpolate_data();
- void interpolate();
+ void slerp_data();
+ void slerp();
+
+ void nlerp_data();
+ void nlerp();
};
// qFuzzyCompare isn't quite "fuzzy" enough to handle conversion
@@ -693,7 +696,7 @@ void tst_QQuaternion::fromAxisAndAngle()
}
// Test spherical interpolation of quaternions.
-void tst_QQuaternion::interpolate_data()
+void tst_QQuaternion::slerp_data()
{
QTest::addColumn<qreal>("x1");
QTest::addColumn<qreal>("y1");
@@ -740,7 +743,7 @@ void tst_QQuaternion::interpolate_data()
<< (qreal)0.5f
<< (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)-45.0f;
}
-void tst_QQuaternion::interpolate()
+void tst_QQuaternion::slerp()
{
QFETCH(qreal, x1);
QFETCH(qreal, y1);
@@ -760,7 +763,7 @@ void tst_QQuaternion::interpolate()
QQuaternion q2 = QQuaternion::fromAxisAndAngle(x2, y2, z2, angle2);
QQuaternion q3 = QQuaternion::fromAxisAndAngle(x3, y3, z3, angle3);
- QQuaternion result = QQuaternion::interpolate(q1, q2, t);
+ QQuaternion result = QQuaternion::slerp(q1, q2, t);
QVERIFY(fuzzyCompare(result.x(), q3.x()));
QVERIFY(fuzzyCompare(result.y(), q3.y()));
@@ -768,24 +771,60 @@ void tst_QQuaternion::interpolate()
QVERIFY(fuzzyCompare(result.scalar(), q3.scalar()));
}
-// Force the fixed-point version of the test case to put a
-// different test name on the front of failure reports.
-class tst_QQuaternionFixed : public tst_QQuaternion
+// Test normalized linear interpolation of quaternions.
+void tst_QQuaternion::nlerp_data()
{
- Q_OBJECT
-public:
- tst_QQuaternionFixed() {}
- ~tst_QQuaternionFixed() {}
-};
+ slerp_data();
+}
+void tst_QQuaternion::nlerp()
+{
+ QFETCH(qreal, x1);
+ QFETCH(qreal, y1);
+ QFETCH(qreal, z1);
+ QFETCH(qreal, angle1);
+ QFETCH(qreal, x2);
+ QFETCH(qreal, y2);
+ QFETCH(qreal, z2);
+ QFETCH(qreal, angle2);
+ QFETCH(qreal, t);
-#ifdef QT_GL_FIXED_PREFERRED
+ QQuaternion q1 = QQuaternion::fromAxisAndAngle(x1, y1, z1, angle1);
+ QQuaternion q2 = QQuaternion::fromAxisAndAngle(x2, y2, z2, angle2);
-QTEST_APPLESS_MAIN(tst_QQuaternionFixed)
+ QQuaternion result = QQuaternion::nlerp(q1, q2, t);
+
+ qreal resultx, resulty, resultz, resultscalar;
+ if (t <= 0.0f) {
+ resultx = q1.x();
+ resulty = q1.y();
+ resultz = q1.z();
+ resultscalar = q1.scalar();
+ } else if (t >= 1.0f) {
+ resultx = q2.x();
+ resulty = q2.y();
+ resultz = q2.z();
+ resultscalar = q2.scalar();
+ } else if (qAbs(angle1 - angle2) <= 180.f) {
+ resultx = q1.x() * (1 - t) + q2.x() * t;
+ resulty = q1.y() * (1 - t) + q2.y() * t;
+ resultz = q1.z() * (1 - t) + q2.z() * t;
+ resultscalar = q1.scalar() * (1 - t) + q2.scalar() * t;
+ } else {
+ // Angle greater than 180 degrees: negate q2.
+ resultx = q1.x() * (1 - t) - q2.x() * t;
+ resulty = q1.y() * (1 - t) - q2.y() * t;
+ resultz = q1.z() * (1 - t) - q2.z() * t;
+ resultscalar = q1.scalar() * (1 - t) - q2.scalar() * t;
+ }
+
+ QQuaternion q3 = QQuaternion(resultscalar, resultx, resulty, resultz).normalized();
-#else
+ QVERIFY(fuzzyCompare(result.x(), q3.x()));
+ QVERIFY(fuzzyCompare(result.y(), q3.y()));
+ QVERIFY(fuzzyCompare(result.z(), q3.z()));
+ QVERIFY(fuzzyCompare(result.scalar(), q3.scalar()));
+}
QTEST_APPLESS_MAIN(tst_QQuaternion)
-#endif
-
#include "tst_qquaternion.moc"
diff --git a/tests/auto/math3d/qquaternion_fixed/qquaternion_fixed.pro b/tests/auto/math3d/qquaternion_fixed/qquaternion_fixed.pro
deleted file mode 100644
index a0d5401..0000000
--- a/tests/auto/math3d/qquaternion_fixed/qquaternion_fixed.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-load(qttest_p4)
-VPATH += ../shared
-VPATH += ../qquaternion
-INCLUDEPATH += ../shared
-INCLUDEPATH += ../../../../src/gui/math3d
-DEFINES += FIXED_POINT_TESTS
-HEADERS += math3dincludes.h
-SOURCES += tst_qquaternion.cpp math3dincludes.cpp
diff --git a/tests/auto/math3d/qvectornd/tst_qvectornd.cpp b/tests/auto/math3d/qvectornd/tst_qvectornd.cpp
index 83bacdf..a092fb0 100644
--- a/tests/auto/math3d/qvectornd/tst_qvectornd.cpp
+++ b/tests/auto/math3d/qvectornd/tst_qvectornd.cpp
@@ -2040,24 +2040,6 @@ void tst_QVector::dotProduct4()
QCOMPARE(QVector4D::dotProduct(v1, v2), d);
}
-// Force the fixed-point version of the test case to put a
-// different test name on the front of failure reports.
-class tst_QVectorFixed : public tst_QVector
-{
- Q_OBJECT
-public:
- tst_QVectorFixed() {}
- ~tst_QVectorFixed() {}
-};
-
-#ifdef QT_GL_FIXED_PREFERRED
-
-QTEST_APPLESS_MAIN(tst_QVectorFixed)
-
-#else
-
QTEST_APPLESS_MAIN(tst_QVector)
-#endif
-
#include "tst_qvectornd.moc"
diff --git a/tests/auto/math3d/qvectornd_fixed/qvectornd_fixed.pro b/tests/auto/math3d/qvectornd_fixed/qvectornd_fixed.pro
deleted file mode 100644
index a667fcc..0000000
--- a/tests/auto/math3d/qvectornd_fixed/qvectornd_fixed.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-load(qttest_p4)
-VPATH += ../shared
-VPATH += ../qvectornd
-INCLUDEPATH += ../shared
-INCLUDEPATH += ../../../../src/gui/math3d
-DEFINES += FIXED_POINT_TESTS
-HEADERS += math3dincludes.h
-SOURCES += tst_qvectornd.cpp math3dincludes.cpp
diff --git a/tests/auto/math3d/shared/math3dincludes.h b/tests/auto/math3d/shared/math3dincludes.h
index 23b0f16..1ac0c08 100644
--- a/tests/auto/math3d/shared/math3dincludes.h
+++ b/tests/auto/math3d/shared/math3dincludes.h
@@ -42,41 +42,6 @@
#ifndef MATH3DINCLUDES_H
#define MATH3DINCLUDES_H
-#if defined(FIXED_POINT_TESTS)
-
-// Rename the classes we want to test in fixed-point mode so that
-// they don't conflict with the ones that are built into Qt.
-#define QT_NO_GL_FLOAT 1
-#define QVector2D tst_QVector2D
-#define QVector3D tst_QVector3D
-#define QVector4D tst_QVector4D
-#define QQuaternion tst_QQuaternionX
-#define QMatrix2x2 tst_QMatrix2x2
-#define QMatrix3x3 tst_QMatrix3x3
-#define QMatrix4x4 tst_QMatrix4x4
-#define QMatrix2x3 tst_QMatrix2x3
-#define QMatrix2x4 tst_QMatrix2x4
-#define QMatrix3x2 tst_QMatrix3x2
-#define QMatrix3x4 tst_QMatrix3x4
-#define QMatrix4x2 tst_QMatrix4x2
-#define QMatrix4x3 tst_QMatrix4x3
-#define QGenericMatrix tst_QGenericMatrix
-#define qt_math3d_sincos tst_qt_math3d_sincos
-#define qt_math3d_convert tst_qt_math3d_convert
-#define qrealinner tst_qrealinner
-
-// We need to re-include the headers with the changed class names.
-#undef QGENERICMATRIX_H
-#undef QMATH3DGLOBAL_H
-#undef QMATH3DUTIL_P_H
-#undef QMATRIX4X4_H
-#undef QQUATERNION_H
-#undef QVECTOR2D_H
-#undef QVECTOR3D_H
-#undef QVECTOR4D_H
-
-#endif
-
#include <QtGui/qmatrix4x4.h>
#include <QtGui/qgenericmatrix.h>
#include <QtGui/qvector2d.h>
diff --git a/tests/auto/mediaobject/tst_mediaobject.cpp b/tests/auto/mediaobject/tst_mediaobject.cpp
index 96589b7..1b113b2 100644
--- a/tests/auto/mediaobject/tst_mediaobject.cpp
+++ b/tests/auto/mediaobject/tst_mediaobject.cpp
@@ -349,6 +349,18 @@ void tst_MediaObject::_pausePlayback()
void tst_MediaObject::initTestCase()
{
QCoreApplication::setApplicationName("tst_MediaObject");
+ m_stateChangedSignalSpy = 0;
+ m_media = 0;
+
+#ifdef Q_OS_WINCE
+ QString pluginsPath = QLibraryInfo::location(QLibraryInfo::PluginsPath);
+#ifdef DEBUG
+ QVERIFY(QFile::exists(pluginsPath + "/phonon_backend/phonon_waveoutd4.dll") || QFile::exists(pluginsPath + "/phonon_backend/phonon_phonon_ds9d4.dll"));
+#else
+ QVERIFY(QFile::exists(pluginsPath + "/phonon_backend/phonon_waveout4.dll") || QFile::exists(pluginsPath + "/phonon_backend/phonon_phonon_ds94.dll"));
+#endif
+#endif
+
m_url = qgetenv("PHONON_TESTURL");
m_media = new MediaObject(this);
@@ -787,7 +799,7 @@ void tst_MediaObject::setMediaAndPlay()
QSignalSpy totalTimeChangedSignalSpy(m_media, SIGNAL(totalTimeChanged(qint64)));
QVERIFY(m_media->currentSource().type() != MediaSource::Invalid);
Phonon::State state = m_media->state();
- QVERIFY(state == Phonon::StoppedState || state == Phonon::PlayingState);
+ QVERIFY(state == Phonon::StoppedState || state == Phonon::PlayingState || Phonon::PausedState);
m_media->setCurrentSource(m_url);
// before calling play() we better make sure that if play() finishes very fast that we don't get
// called again
@@ -856,8 +868,10 @@ void tst_MediaObject::testPlayBeforeFinish()
void tst_MediaObject::cleanupTestCase()
{
- delete m_stateChangedSignalSpy;
- delete m_media;
+ if (m_stateChangedSignalSpy)
+ delete m_stateChangedSignalSpy;
+ if (m_media)
+ delete m_media;
#ifdef Q_OS_WINCE
QTest::qWait(200);
#endif
diff --git a/tests/auto/moc/tst_moc.cpp b/tests/auto/moc/tst_moc.cpp
index 4e4f6e7..afb31f6 100644
--- a/tests/auto/moc/tst_moc.cpp
+++ b/tests/auto/moc/tst_moc.cpp
@@ -151,7 +151,6 @@ public slots:
Q_DECLARE_METATYPE(MyStruct)
Q_DECLARE_METATYPE(MyStruct*)
-#if QT_VERSION >= 0x040200
namespace myNS {
struct Points
{
@@ -161,7 +160,6 @@ namespace myNS {
}
Q_DECLARE_METATYPE(myNS::Points)
-#endif
class TestClassinfoWithEscapes: public QObject
{
@@ -195,10 +193,7 @@ class TestClass : public MyNamespace::TestSuperClass, public DONT_CONFUSE_MOC(My
public DONT_CONFUSE_MOC_EVEN_MORE(MyStruct2, dummy, ignored)
{
Q_OBJECT
-#if QT_VERSION >= 0x040101
Q_CLASSINFO("help", QT_TR_NOOP("Opening this will let you configure something"))
-#endif
-#if QT_VERSION >= 0x040102
Q_PROPERTY(short int shortIntProperty READ shortIntProperty)
Q_PROPERTY(unsigned short int unsignedShortIntProperty READ unsignedShortIntProperty)
Q_PROPERTY(signed short int signedShortIntProperty READ signedShortIntProperty)
@@ -206,10 +201,7 @@ class TestClass : public MyNamespace::TestSuperClass, public DONT_CONFUSE_MOC(My
Q_PROPERTY(unsigned long int unsignedLongIntProperty READ unsignedLongIntProperty)
Q_PROPERTY(signed long int signedLongIntProperty READ signedLongIntProperty)
Q_PROPERTY(long double longDoubleProperty READ longDoubleProperty)
-#endif
-#if QT_VERSION >= 0x040200
Q_PROPERTY(myNS::Points points READ points WRITE setPoints)
-#endif
Q_CLASSINFO("Multi"
"line",
@@ -294,9 +286,7 @@ private slots:
#ifndef NOLONGLONG
void slotWithULongLong(unsigned long long) {}
-#if QT_VERSION >= 0x040101
void slotWithULongLongP(unsigned long long*) {}
-#endif
void slotWithULong(unsigned long) {}
void slotWithLongLong(long long) {}
void slotWithLong(long) {}
@@ -304,9 +294,7 @@ private slots:
void slotWithColonColonType(::Int::Type) {}
-#if QT_VERSION >= 0x040101
TestClass &slotWithReferenceReturnType() { return *this; }
-#endif
#if (0 && 1) || 1
void expressionEvaluationShortcut1() {}
@@ -321,7 +309,6 @@ public slots:
void slotWithNamedArray(const double namedArray[3]) {}
void slotWithMultiArray(const double[3][4]) {}
-#if QT_VERSION >= 0x040102
short int shortIntProperty() { return 0; }
unsigned short int unsignedShortIntProperty() { return 0; }
signed short int signedShortIntProperty() { return 0; }
@@ -329,12 +316,9 @@ public slots:
unsigned long int unsignedLongIntProperty() { return 0; }
signed long int signedLongIntProperty() { return 0; }
long double longDoubleProperty() { return 0.0; }
-#endif
-#if QT_VERSION >= 0x040200
myNS::Points points() { return m_points; }
void setPoints(myNS::Points points) { m_points = points; }
-#endif
signals:
void signalWithArray(const double[3]);
@@ -384,10 +368,8 @@ public:
public slots:
void slotWithVoidStar(void *) {}
-#if QT_VERSION >= 0x040200
private:
myNS::Points m_points;
-#endif
private slots:
inline virtual void blub1() {}
@@ -628,10 +610,8 @@ void tst_Moc::uLongLong()
QVERIFY(idx != -1);
idx = mobj->indexOfSlot("slotWithULongLong(unsigned long long)");
QVERIFY(idx != -1);
-#if QT_VERSION >= 0x040101
idx = mobj->indexOfSlot("slotWithULongLongP(unsigned long long*)");
QVERIFY(idx != -1);
-#endif
idx = mobj->indexOfSlot("slotWithLong(long)");
QVERIFY(idx != -1);
@@ -707,22 +687,14 @@ void tst_Moc::supportConstSignals()
void tst_Moc::task87883()
{
-#if QT_VERSION >= 0x040101
QVERIFY(Task87883::staticMetaObject.className());
-#else
- QSKIP("Fixed in >= 4.1.1", SkipAll);
-#endif
}
#include "c-comments.h"
void tst_Moc::multilineComments()
{
-#if QT_VERSION >= 0x040101
QVERIFY(IfdefedClass::staticMetaObject.className());
-#else
- QSKIP("Fixed in >= 4.1.1", SkipAll);
-#endif
}
void tst_Moc::classinfoWithEscapes()
diff --git a/tests/auto/q3accel/tst_q3accel.cpp b/tests/auto/q3accel/tst_q3accel.cpp
index c2ba9dd..7b1c8ae 100644
--- a/tests/auto/q3accel/tst_q3accel.cpp
+++ b/tests/auto/q3accel/tst_q3accel.cpp
@@ -142,10 +142,8 @@ void tst_Q3Accel::initTestCase()
edit->setObjectName("test_edit");
connect( accel1, SIGNAL(activated(int)), this, SLOT(accelTrig1()) );
connect( accel2, SIGNAL(activated(int)), this, SLOT(accelTrig2()) );
-#if QT_VERSION >= 0x30100
connect( accel1, SIGNAL(activatedAmbiguously(int)), this, SLOT(ambig1()) );
connect( accel2, SIGNAL(activatedAmbiguously(int)), this, SLOT(ambig2()) );
-#endif
mainW->setCentralWidget( edit );
connect( mainW->statusBar(), SIGNAL(messageChanged(const QString&)),
this, SLOT(statusMessage(const QString&)) );
@@ -160,11 +158,9 @@ int tst_Q3Accel::toButtons( int key )
result |= Qt::ShiftModifier;
if ( key & Qt::CTRL )
result |= Qt::ControlModifier;
-#if QT_VERSION >= 0x30100
- if ( key & Qt::META )
+ if ( key & Qt::META )
result |= Qt::MetaModifier;
-#endif
- if ( key & Qt::ALT )
+ if ( key & Qt::ALT )
result |= Qt::AltModifier;
return result;
}
@@ -185,7 +181,6 @@ void tst_Q3Accel::defElements()
QTest::addColumn<int>("theResult");
}
-#if QT_VERSION >= 0x30100
void tst_Q3Accel::number()
{
testElement();
@@ -369,34 +364,17 @@ void tst_Q3Accel::number_data()
int(Qt::Key_Aring)
UNICODE_ACCEL + int(Qt::Key_K)
*/
- /* The #ifdefs for Qt4 are there, because accelerators are always case insensitive in Qt4.
- It was not wise to differentiate between ASCII (where accelerators where case insensitive) and all other
- unicode chars in 3.x.
- */
QTest::newRow( "N06 - sA1" ) << int(SetupAccel) << int(Accel1) << QString("")
<< int(Qt::Key_aring) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << int(NoResult);
-#if QT_VERSION < 0x040000
- QTest::newRow( "N07 - sA2" ) << int(SetupAccel) << int(Accel2) << QString("")
- << int(Qt::Key_Aring) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << int(NoResult);
-#endif
QTest::newRow( "N08 - sA2" ) << int(SetupAccel) << int(Accel1) << QString("")
<< int(Qt::UNICODE_ACCEL) + int(Qt::Key_K) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << int(NoResult);
QTest::newRow( "N:int(Qt::Key_aring)" ) << int(TestAccel) << int(NoWidget) << QString("")
<< int(Qt::Key_aring) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << int(Accel1Triggered);
-#if QT_VERSION < 0x040000
- QTest::newRow( "N:int(Qt::Key_Aring)" ) << int(TestAccel) << int(NoWidget) << QString("")
- << int(Qt::Key_Aring) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << int(Accel2Triggered);
-#endif
QTest::newRow( "N:int(Qt::Key_aring) - Text Form" ) << int(TestAccel) << int(NoWidget) << QString("")
<< int(Qt::Key_unknown) << 0xE5 << 0 << 0 << 0 << 0 << 0 << 0 << int(Accel1Triggered);
-#if QT_VERSION < 0x040000
- QTest::newRow( "N:int(Qt::Key_Aring) - Text Form" ) << int(TestAccel) << int(NoWidget) << QString("")
- << int(Qt::Key_unknown) << 0xC5 << 0 << 0 << 0 << 0 << 0 << 0 << int(Accel2Triggered);
-#else
QTest::newRow( "N:int(Qt::Key_Aring) - Text Form" ) << int(TestAccel) << int(NoWidget) << QString("")
<< int(Qt::Key_unknown) << 0xC5 << 0 << 0 << 0 << 0 << 0 << 0 << int(Accel1Triggered);
-#endif
QTest::newRow( "N:UNICODE_ACCEL + int(Qt::Key_K)" ) << int(TestAccel) << int(NoWidget) << QString("")
<< int(Qt::UNICODE_ACCEL) + int(Qt::Key_K) << int('k') << 0 << 0 << 0 << 0 << 0 << 0 << int(Accel1Triggered);
@@ -615,28 +593,15 @@ void tst_Q3Accel::text_data()
/* see comments above on the #ifdef'ery */
QTest::newRow( "T06 - sA1" ) << int(SetupAccel) << int(Accel1) << QString("\x0E5")
<< 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << int(NoResult);
-#if QT_VERSION < 0x040000
- QTest::newRow( "T07 - sA2" ) << int(SetupAccel) << int(Accel2) << QString("\x0C5")
- << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << int(NoResult);
-#endif
QTest::newRow( "T08 - sA2" ) << int(SetupAccel) << int(Accel1) << QString("K")
<< 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << int(NoResult);
QTest::newRow( "T:int(Qt::Key_aring)" ) << int(TestAccel) << int(NoWidget) << QString("")
<< int(Qt::Key_aring) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << int(Accel1Triggered);
-#if QT_VERSION < 0x040000
- QTest::newRow( "T:int(Qt::Key_Aring)" ) << int(TestAccel) << int(NoWidget) << QString("")
- << int(Qt::Key_Aring) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << int(Accel2Triggered);
-#endif
QTest::newRow( "T:int(Qt::Key_aring) - Text Form" ) << int(TestAccel) << int(NoWidget) << QString("")
<< int(Qt::Key_unknown) << 0xE5 << 0 << 0 << 0 << 0 << 0 << 0 << int(Accel1Triggered);
-#if QT_VERSION < 0x040000
- QTest::newRow( "T:int(Qt::Key_Aring) - Text Form" ) << int(TestAccel) << int(NoWidget) << QString("")
- << int(Qt::Key_unknown) << 0xC5 << 0 << 0 << 0 << 0 << 0 << 0 << int(Accel2Triggered);
-#else
QTest::newRow( "T:int(Qt::Key_Aring) - Text Form" ) << int(TestAccel) << int(NoWidget) << QString("")
<< int(Qt::Key_unknown) << 0xC5 << 0 << 0 << 0 << 0 << 0 << 0 << int(Accel1Triggered);
-#endif
QTest::newRow( "T:UNICODE_ACCEL + int(Qt::Key_K)" ) << int(TestAccel) << int(NoWidget) << QString("")
<< int(Qt::UNICODE_ACCEL) + int(Qt::Key_K) << int('k') << 0 << 0 << 0 << 0 << 0 << 0 << int(Accel1Triggered);
@@ -986,11 +951,7 @@ void tst_Q3Accel::sendKeyEvents( int k1, QChar c1, int k2, QChar c2, int k3, QCh
k2 &= ~Qt::MODIFIER_MASK;
k3 &= ~Qt::MODIFIER_MASK;
k4 &= ~Qt::MODIFIER_MASK;
-#if QT_VERSION < 0x040000
- QKeyEvent ke( QEvent::Accel, k1, k1, b1, QString(c1) );
-#else
QKeyEvent ke( QEvent::Accel, k1, (Qt::KeyboardModifiers)b1, QString(c1) );
-#endif
QApplication::sendEvent( mainW, &ke );
if ( k2 ) {
QKeyEvent ke( QEvent::Accel, k2, k2, b2, QString(c2) );
@@ -1006,48 +967,5 @@ void tst_Q3Accel::sendKeyEvents( int k1, QChar c1, int k2, QChar c2, int k3, QCh
}
}
-// ----------------------------------------------------------------------------
-// ----------------------------------------------------------------------------
-
-#else // For Qt < 3.1
-void tst_Q3Accel::number_data()
-{
- QTest::addColumn<int>("bogus");
- QTest::newRow( "b01" ) << 0;
-}
-
-void tst_Q3Accel::number()
-{
- QSKIP( "Accel test for Qt < 3.1 not implemented", SkipAll);
-}
-
-void tst_Q3Accel::text_data()
-{
- QTest::addColumn<int>("bogus");
- QTest::newRow( "b02" ) << 0;
-}
-
-void tst_Q3Accel::text()
-{
- QSKIP( "Accel test for Qt < 3.1 not implemented", SkipAll);
-}
-void tst_Q3Accel::disabledItems()
-{
- QSKIP( "Accel test for Qt < 3.1 not implemented", SkipAll);
-}
-void tst_Q3Accel::ambiguousItems()
-{
- QSKIP( "Amibguous signals non-existant in Qt < 3.1", SkipAll);
-}
-void tst_Q3Accel::unicodeCompare()
-{
- QSKIP( "Accel test for Qt < 3.1 not implemented", SkipAll);
-}
-void tst_Q3Accel::unicodeCompose()
-{
- QSKIP( "Unicode composing non-existant in Qt < 3.1", SkipAll);
-}
-#endif // QT_VERSION >= 0x30100
-
QTEST_MAIN(tst_Q3Accel)
#include "tst_q3accel.moc"
diff --git a/tests/auto/q3cstring/tst_q3cstring.cpp b/tests/auto/q3cstring/tst_q3cstring.cpp
index f9bdf6b..60a66a9 100644
--- a/tests/auto/q3cstring/tst_q3cstring.cpp
+++ b/tests/auto/q3cstring/tst_q3cstring.cpp
@@ -69,8 +69,6 @@ private slots:
void replace_uint_uint();
void replace_string_data();
void replace_string();
- void replace_regexp_data();
- void replace_regexp();
void remove_uint_uint_data();
void remove_uint_uint();
void prepend();
@@ -132,11 +130,6 @@ void tst_Q3CString::remove_string_data()
replace_string_data();
}
-void tst_Q3CString::remove_regexp_data()
-{
- replace_regexp_data();
-}
-
void tst_Q3CString::length_data()
{
QTest::addColumn<Q3CString>("s1");
@@ -202,9 +195,6 @@ void tst_Q3CString::replace_string_data()
QTest::newRow( "rem13" ) << Q3CString("") << Q3CString("A") << Q3CString(0) << Q3CString("");
QTest::newRow( "rem14" ) << Q3CString(0) << Q3CString("A") << Q3CString("") << Q3CString(0);
QTest::newRow( "rem15" ) << Q3CString(0) << Q3CString("A") << Q3CString(0) << Q3CString(0);
-#if QT_VERSION < 0x040000
- QTest::newRow( "rem16" ) << Q3CString(0) << Q3CString("") << Q3CString("A") << Q3CString(0);
-#endif
QTest::newRow( "rem17" ) << Q3CString(0) << Q3CString("") << Q3CString("") << Q3CString(0);
// ### how should the one below behave in Q3CString????
// QTest::newRow( "rem18" ) << Q3CString("") << Q3CString(0) << Q3CString("A") << Q3CString("A");
@@ -216,7 +206,7 @@ void tst_Q3CString::replace_string_data()
QTest::newRow( "rep03" ) << Q3CString("") << Q3CString("") << Q3CString("X") << Q3CString("X");
}
-void tst_Q3CString::replace_regexp_data()
+void tst_Q3CString::remove_regexp_data()
{
QTest::addColumn<Q3CString>("string");
QTest::addColumn<Q3CString>("regexp");
@@ -224,20 +214,16 @@ void tst_Q3CString::replace_regexp_data()
QTest::addColumn<Q3CString>("result");
QTest::newRow( "rem00" ) << Q3CString("alpha") << Q3CString("a+") << Q3CString("") << Q3CString("lph");
-#if QT_VERSION >= 0x030100
QTest::newRow( "rem01" ) << Q3CString("banana") << Q3CString("^.a") << Q3CString("") << Q3CString("nana");
-#endif
QTest::newRow( "rem02" ) << Q3CString("") << Q3CString("^.a") << Q3CString("") << Q3CString("");
QTest::newRow( "rem03" ) << Q3CString("") << Q3CString("^.a") << Q3CString(0) << Q3CString("");
QTest::newRow( "rem04" ) << Q3CString(0) << Q3CString("^.a") << Q3CString("") << Q3CString(0);
QTest::newRow( "rem05" ) << Q3CString(0) << Q3CString("^.a") << Q3CString(0) << Q3CString(0);
-#if QT_VERSION >= 0x030100
QTest::newRow( "rep00" ) << Q3CString("A <i>bon mot</i>.") << Q3CString("<i>([^<]*)</i>") << Q3CString("\\emph{\\1}") << Q3CString("A \\emph{bon mot}.");
QTest::newRow( "rep01" ) << Q3CString("banana") << Q3CString("^.a()") << Q3CString("\\1") << Q3CString("nana");
QTest::newRow( "rep02" ) << Q3CString("banana") << Q3CString("(ba)") << Q3CString("\\1X\\1") << Q3CString("baXbanana");
QTest::newRow( "rep03" ) << Q3CString("banana") << Q3CString("(ba)(na)na") << Q3CString("\\2X\\1") << Q3CString("naXba");
-#endif
}
void tst_Q3CString::length()
@@ -364,11 +350,7 @@ void tst_Q3CString::acc_01()
QCOMPARE('X'+a,(Q3CString)"XABC");
a = (const char*)0;
QVERIFY(a.isNull());
-#if QT_VERSION < 0x040000
- QVERIFY((const char*)a==0);
-#else
QVERIFY(*((const char *)a) == 0);
-#endif
{
QFile f("COMPARE.txt");
@@ -420,11 +402,7 @@ void tst_Q3CString::constructor()
QCOMPARE(a,ca);
QVERIFY(a.isNull());
-#if QT_VERSION < 0x040000
- QVERIFY(a != (Q3CString)"");
-#else
QVERIFY(a == Q3CString(""));
-#endif
QCOMPARE(b,cb);
QCOMPARE(c,cc);
QCOMPARE(d,(Q3CString)"String D");
@@ -509,18 +487,6 @@ void tst_Q3CString::find()
//QCOMPARE(a.find('G',-1),14); // -ve does what? Parameter should be uint?
//QCOMPARE(a.find('G',-2),11); // -ve does what? Parameter should be uint?
QCOMPARE(a.find('f'),10);
-#if QT_VERSION < 0x040000
- // case sensitive find has been removed in 4.0
- QCOMPARE(a.find('f',0,FALSE),5);
- QCOMPARE(a.find('g',0,TRUE),-1);
- QCOMPARE(a.find("fgh",0,FALSE),5);
- QCOMPARE(a.find("fgh",0,TRUE),-1);
- QCOMPARE(a.find("EFG",5,TRUE),12);
- QCOMPARE(a.find("EFG",5,FALSE),9);
- QCOMPARE(a.find("EFG",4,TRUE),4);
- QCOMPARE(a.find("EfG",4,FALSE),4);
- QCOMPARE(a.find("EfG",4,TRUE),9);
-#endif
// QCOMPARE(a.find("efg",-1,FALSE),12); // -ve does what? Parameter should be uint?
// QCOMPARE(a.find("efg",-2,FALSE),12); // -ve does what? Parameter should be uint?
// QCOMPARE(a.find("efg",-3,FALSE),12); // -ve does what? Parameter should be uint?
@@ -544,14 +510,6 @@ void tst_Q3CString::findRev()
QCOMPARE(a.findRev('B'),1);
QCOMPARE(a.findRev('B',1),1);
QCOMPARE(a.findRev('B',0),-1);
-#if QT_VERSION < 0x040000
- QCOMPARE(a.findRev("efg",99,FALSE),-1);
-// QCOMPARE(a.findRev("efg",15,FALSE),-1);
- QCOMPARE(a.findRev("efg",16,FALSE),-1);
- QCOMPARE(a.findRev("efg",14,FALSE),12);
- QCOMPARE(a.findRev("efg",12,FALSE),12);
- QCOMPARE(a.findRev("efg",11,FALSE),9);
-#endif
// QCOMPARE(a.findRev(QRegExp("[EFG][EFG]"),14),13);
// QCOMPARE(a.findRev(QRegExp("[EFG][EFG]"),11),11);
}
@@ -560,15 +518,6 @@ void tst_Q3CString::contains()
{
Q3CString a;
a="ABCDEFGHIEfGEFG"; // 15 chars
-#if QT_VERSION < 0x040000
- QCOMPARE(a.contains('A'),1);
- QCOMPARE(a.contains('Z'),0);
- QCOMPARE(a.contains('E'),3);
- QCOMPARE(a.contains('F'),2);
- QCOMPARE(a.contains('F',FALSE),3);
- QCOMPARE(a.contains("FG"),2);
- QCOMPARE(a.contains("FG",FALSE),3);
-#else
QVERIFY(a.contains('A'));
QVERIFY(!a.contains('Z'));
QVERIFY(a.contains('E'));
@@ -579,7 +528,6 @@ void tst_Q3CString::contains()
QCOMPARE(a.count('E'),3);
QCOMPARE(a.count('F'),2);
QCOMPARE(a.count("FG"),2);
-#endif
// QCOMPARE(a.contains(QRegExp("[FG][HI]")),1);
// QCOMPARE(a.contains(QRegExp("[G][HE]")),2);
}
@@ -771,7 +719,6 @@ void tst_Q3CString::replace_uint_uint()
void tst_Q3CString::replace_string()
{
-#if QT_VERSION >= 0x030100
QFETCH( Q3CString, string );
QFETCH( Q3CString, before );
QFETCH( Q3CString, after );
@@ -788,37 +735,6 @@ void tst_Q3CString::replace_string()
Q3CString s3 = string;
s3.replace( before, after );
QCOMPARE( s3, result );
-
-#if QT_VERSION < 0x040000
- if ( !string.isNull() ) {
- /*
- I've changed the isNull() behavior in QString::replace() in
- Qt 3.2, according to the philosophy that null and empty
- should behave mostly the same.
- */
- Q3CString s4 = string;
- s4.replace( QRegExp(QRegExp::escape(before)), after );
- QVERIFY( s4 == result );
- }
-#endif
-#else
- QSKIP( "Not tested with Qt versions < 3.1", SkipAll);
-#endif
-}
-
-void tst_Q3CString::replace_regexp()
-{
-#if QT_VERSION >= 0x040000
- QSKIP("This functionality has been removed in Qt 4.", SkipAll);
-#else
- QFETCH( Q3CString, string );
- QFETCH( Q3CString, regexp );
- QFETCH( Q3CString, after );
- QFETCH( Q3CString, result );
-
- string.replace( QRegExp(regexp), after );
- QVERIFY( string == result );
-#endif
}
void tst_Q3CString::remove_uint_uint()
diff --git a/tests/auto/q3header/tst_q3header.cpp b/tests/auto/q3header/tst_q3header.cpp
index f0ad9d4..fe290e8 100644
--- a/tests/auto/q3header/tst_q3header.cpp
+++ b/tests/auto/q3header/tst_q3header.cpp
@@ -59,9 +59,7 @@ public slots:
void cleanupTestCase();
private slots:
void bug_setOffset();
-#if QT_VERSION >= 0x040101
void nullStringLabel();
-#endif
private:
Q3Header *testW;
@@ -108,7 +106,6 @@ void tst_Q3Header::bug_setOffset()
QCOMPARE( testW->offset(), offs );
}
-#if QT_VERSION >= 0x040101
// Task 95640
void tst_Q3Header::nullStringLabel()
{
@@ -123,7 +120,6 @@ void tst_Q3Header::nullStringLabel()
QCOMPARE(testW->label(testW->addLabel(QString())), QString());
QCOMPARE(testW->label(testW->addLabel(QString(""))), QString(""));
}
-#endif
QTEST_MAIN(tst_Q3Header)
#include "tst_q3header.moc"
diff --git a/tests/auto/q3ptrlist/tst_q3ptrlist.cpp b/tests/auto/q3ptrlist/tst_q3ptrlist.cpp
index 49b5a3e..c3d8b16 100644
--- a/tests/auto/q3ptrlist/tst_q3ptrlist.cpp
+++ b/tests/auto/q3ptrlist/tst_q3ptrlist.cpp
@@ -92,7 +92,6 @@ void tst_Q3PtrList::cleanup()
void tst_Q3PtrList::replace()
{
-#if QT_VERSION >= 0x030100
Q3PtrList<int> list;
int foo = 4;
list.setAutoDelete( TRUE );
@@ -110,15 +109,10 @@ void tst_Q3PtrList::replace()
int *p = new int(7);
QCOMPARE( list.insert(2, p), (bool)TRUE );
QCOMPARE( list.replace(2, p), (bool)TRUE );
-
-#else
- QSKIP( "Not tested with Qt versions < 3.1", SkipAll);
-#endif
}
void tst_Q3PtrList::replaceStrDeep()
{
-#if QT_VERSION >= 0x030100
Q3StrList list;
const char *str;
@@ -137,14 +131,10 @@ void tst_Q3PtrList::replaceStrDeep()
QCOMPARE( list.insert(2, str), (bool)TRUE );
QCOMPARE( list.replace(2, str), (bool)TRUE );
-#else
- QSKIP( "Not tested with Qt versions < 3.1", SkipAll);
-#endif
}
void tst_Q3PtrList::replaceStrShallow()
{
-#if QT_VERSION >= 0x030100
Q3StrList list( FALSE );
char str1[] = "This is string 1";
char str2[] = "This is string 2";
@@ -166,9 +156,6 @@ void tst_Q3PtrList::replaceStrShallow()
QCOMPARE( list.insert(2, str), (bool)TRUE );
QCOMPARE( list.replace(2, str), (bool)TRUE );
-#else
- QSKIP( "Not tested with Qt versions < 3.1", SkipAll);
-#endif
}
void tst_Q3PtrList::take()
diff --git a/tests/auto/q3table/tst_q3table.cpp b/tests/auto/q3table/tst_q3table.cpp
index 2fab3eb..7db0a40 100644
--- a/tests/auto/q3table/tst_q3table.cpp
+++ b/tests/auto/q3table/tst_q3table.cpp
@@ -387,7 +387,6 @@ public:
void tst_Q3Table::selectComboTableItem()
{
-// #if QT_VERSION >= 0x030100
#if 0
MyTable table(4,4,0,"subclassTestWidget");
// Test for task #25026
diff --git a/tests/auto/q3textedit/tst_q3textedit.cpp b/tests/auto/q3textedit/tst_q3textedit.cpp
index 21bc8b5..1fcce7b 100644
--- a/tests/auto/q3textedit/tst_q3textedit.cpp
+++ b/tests/auto/q3textedit/tst_q3textedit.cpp
@@ -159,12 +159,10 @@ void tst_Q3TextEdit::getSetCheck()
Q3TextDocument *var2 = new Q3TextDocument(0);
obj1.setDocument(var2);
QCOMPARE(obj1.document(), var2);
-#if QT_VERSION >= 0x040200
// Should've done as QTextEdit, and created a new document, if you setDocument(0).
// Unfortunately it doesn't, and we cannot change it.
obj1.setDocument((Q3TextDocument *)0);
QCOMPARE(obj1.document(), var2);
-#endif
// delete var2; // No delete, since Q3TextEdit takes ownership
}
diff --git a/tests/auto/q3textstream/tst_q3textstream.cpp b/tests/auto/q3textstream/tst_q3textstream.cpp
index 7932b79..b13e83f 100644
--- a/tests/auto/q3textstream/tst_q3textstream.cpp
+++ b/tests/auto/q3textstream/tst_q3textstream.cpp
@@ -346,9 +346,6 @@ void tst_Q3TextStream::operator_shiftleft()
QFETCH( QString, device );
QFETCH( QString, encoding );
QFETCH( QByteArray, encoded );
-#if QT_VERSION < 0x040000
- encoded.resize( encoded.size() - 1 );
-#endif
if ( device == "file" ) {
QFile outFile( "qtextstream.out" );
@@ -400,9 +397,6 @@ void tst_Q3TextStream::operator_shiftright()
QFETCH( int, intVal );
QFETCH( QString, stringVal );
QFETCH( QByteArray, encoded );
-#if QT_VERSION < 0x040000
- encoded.resize( encoded.size() - 1 );
-#endif
if ( device == "file" ) {
QFile outFile( "qtextstream.out" );
@@ -1295,7 +1289,6 @@ void tst_Q3TextStream::write_Q3CString( Q3TextStream *s )
void tst_Q3TextStream::task28319()
{
/*
-#if QT_VERSION >= 0x040000
// Specific test for task 28319
QFile f("28319.txt");
if (f.open(IO_WriteOnly)) {
@@ -1324,9 +1317,6 @@ void tst_Q3TextStream::task28319()
} else {
QVERIFY(FALSE);
}
-#else
- QSKIP( "A minor bug we don't want to fix in 3.2.", SkipAll);
-#endif
*/
}
diff --git a/tests/auto/q3timeedit/tst_q3timeedit.cpp b/tests/auto/q3timeedit/tst_q3timeedit.cpp
index 967bb51..1cdd87c 100644
--- a/tests/auto/q3timeedit/tst_q3timeedit.cpp
+++ b/tests/auto/q3timeedit/tst_q3timeedit.cpp
@@ -130,10 +130,8 @@ void tst_Q3TimeEdit::init()
QTime maximumTime(23, 59, 59);
testWidget->setMinValue(minimumTime);
testWidget->setMaxValue(maximumTime);
-#if QT_VERSION >= 0x030100
// We don't want the locale impacting on the test
testWidget->setDisplay(Q3TimeEdit::Hours | Q3TimeEdit::Minutes | Q3TimeEdit::Seconds);
-#endif
testWidget->setTime(QTime(11, 0, 0));
// make sure we start with the hour focused
@@ -174,10 +172,8 @@ void tst_Q3TimeEdit::valueRange()
QTime maximumTime(maximumHours, maximumMinutes, maximumSeconds);
testWidget->setMinValue(minimumTime);
testWidget->setMaxValue(maximumTime);
-#if QT_VERSION >= 0x030100
// We don't want the locale impacting on the test
testWidget->setDisplay(Q3TimeEdit::Hours | Q3TimeEdit::Minutes | Q3TimeEdit::Seconds);
-#endif
// When pressing Key_Up we want to check it goes to the minimum time
testWidget->setTime(maximumTime);
diff --git a/tests/auto/q3valuelist/tst_q3valuelist.cpp b/tests/auto/q3valuelist/tst_q3valuelist.cpp
index 8abeee2..b10664a 100644
--- a/tests/auto/q3valuelist/tst_q3valuelist.cpp
+++ b/tests/auto/q3valuelist/tst_q3valuelist.cpp
@@ -296,7 +296,6 @@ void tst_Q3ValueList::beginEnd()
QCOMPARE( *(cit1), 2 );
QCOMPARE( *(cit2), 200 );
-#if (QT_VERSION >= 0x030200)
Q3ValueList<int> b;
b.append( 1 );
Q3ValueList<int> b2 = b;
@@ -305,7 +304,6 @@ void tst_Q3ValueList::beginEnd()
b2.append( 2 );
QVERIFY( b.constBegin() != b2.constBegin() );
QVERIFY( b2.constBegin() == b2.constBegin() );
-#endif
}
void tst_Q3ValueList::pushing()
@@ -593,11 +591,7 @@ void tst_Q3ValueList::opStreamOut()
class ListVerifier : public Q3ValueList<int>
{
public:
-#if QT_VERSION < 0x040000
- void* pointer() { return sh; }
-#else
const int* pointer() const { return &*begin(); }
-#endif
};
void tst_Q3ValueList::shared()
{
diff --git a/tests/auto/qabstractitemmodel/tst_qabstractitemmodel.cpp b/tests/auto/qabstractitemmodel/tst_qabstractitemmodel.cpp
index b613b81..c0ffea0 100644
--- a/tests/auto/qabstractitemmodel/tst_qabstractitemmodel.cpp
+++ b/tests/auto/qabstractitemmodel/tst_qabstractitemmodel.cpp
@@ -346,14 +346,11 @@ void tst_QAbstractItemModel::match()
QCOMPARE(res.count(), 2);
res = model.match(start, Qt::DisplayRole, QVariant(".*O.*"), -1, Qt::MatchRegExp | Qt::MatchCaseSensitive);
QCOMPARE(res.count(), 0);
- // MatchFixedString seems new in 4.2
-#if QT_VERSION >= 0x040200
res = model.match(start, Qt::DisplayRole, QVariant("BOAR"), -1, Qt::MatchFixedString);
QCOMPARE(res.count(), 1);
res = model.match(start, Qt::DisplayRole, QVariant("bat"), -1,
Qt::MatchFixedString | Qt::MatchCaseSensitive);
QCOMPARE(res.count(), 1);
-#endif
}
typedef QPair<int, int> Position;
@@ -582,7 +579,6 @@ void tst_QAbstractItemModel::dropMimeData_data()
<< (qStringTableRow("" , "" , "A"))
<< (qStringTableRow("" , "" , "B")));
}
-#if QT_VERSION >= 0x040200
{
QTest::newRow("2x 1x2 dropped at [3, 2] (different rows)")
<< (STRINGTABLE // source table
@@ -624,7 +620,6 @@ void tst_QAbstractItemModel::dropMimeData_data()
<< (qStringTableRow("" , "" , "B"))
<< (qStringTableRow("" , "" , "H")));
}
-#endif
}
void tst_QAbstractItemModel::dropMimeData()
diff --git a/tests/auto/qabstractitemview/tst_qabstractitemview.cpp b/tests/auto/qabstractitemview/tst_qabstractitemview.cpp
index 3337a49..3a845e1 100644
--- a/tests/auto/qabstractitemview/tst_qabstractitemview.cpp
+++ b/tests/auto/qabstractitemview/tst_qabstractitemview.cpp
@@ -53,6 +53,8 @@
#include <qspinbox.h>
#include <qitemdelegate.h>
#include <qpushbutton.h>
+#include <qscrollbar.h>
+#include <qboxlayout.h>
#include "../../shared/util.h"
//TESTED_CLASS=
@@ -209,6 +211,7 @@ private slots:
void setCurrentIndex();
void task221955_selectedEditor();
+ void task250754_fontChange();
};
class MyAbstractItemDelegate : public QAbstractItemDelegate
@@ -231,11 +234,8 @@ void tst_QAbstractItemView::getSetCheck()
MyAbstractItemDelegate *var1 = new MyAbstractItemDelegate;
obj1->setItemDelegate(var1);
QCOMPARE((QAbstractItemDelegate*)var1, obj1->itemDelegate());
-#if QT_VERSION >= 0x040200
- // Itemviews in Qt < 4.2 have asserts for this. Qt >= 4.2 should handle this gracefully
obj1->setItemDelegate((QAbstractItemDelegate *)0);
QCOMPARE((QAbstractItemDelegate *)0, obj1->itemDelegate());
-#endif
delete var1;
// EditTriggers QAbstractItemView::editTriggers()
@@ -276,26 +276,6 @@ void tst_QAbstractItemView::getSetCheck()
obj1->setAlternatingRowColors(true);
QCOMPARE(true, obj1->alternatingRowColors());
-#if QT_VERSION < 0x040200
- // int QAbstractItemView::horizontalStepsPerItem()
- // void QAbstractItemView::setHorizontalStepsPerItem(int)
- obj1->tst_setHorizontalStepsPerItem(0);
- QCOMPARE(0, obj1->tst_horizontalStepsPerItem());
- obj1->tst_setHorizontalStepsPerItem(INT_MIN);
- QCOMPARE(INT_MIN, obj1->tst_horizontalStepsPerItem());
- obj1->tst_setHorizontalStepsPerItem(INT_MAX);
- QCOMPARE(INT_MAX, obj1->tst_horizontalStepsPerItem());
-
- // int QAbstractItemView::verticalStepsPerItem()
- // void QAbstractItemView::setVerticalStepsPerItem(int)
- obj1->tst_setVerticalStepsPerItem(0);
- QCOMPARE(0, obj1->tst_verticalStepsPerItem());
- obj1->tst_setVerticalStepsPerItem(INT_MIN);
- QCOMPARE(INT_MIN, obj1->tst_verticalStepsPerItem());
- obj1->tst_setVerticalStepsPerItem(INT_MAX);
- QCOMPARE(INT_MAX, obj1->tst_verticalStepsPerItem());
-#endif
-
// State QAbstractItemView::state()
// void QAbstractItemView::setState(State)
obj1->tst_setState(TestView::tst_State(TestView::NoState));
@@ -311,13 +291,11 @@ void tst_QAbstractItemView::getSetCheck()
obj1->tst_setState(TestView::tst_State(TestView::CollapsingState));
QCOMPARE(TestView::tst_State(TestView::CollapsingState), obj1->tst_state());
-#if QT_VERSION >= 0x040200
// QWidget QAbstractScrollArea::viewport()
// void setViewport(QWidget*)
QWidget *vp = new QWidget;
obj1->setViewport(vp);
QCOMPARE(vp, obj1->viewport());
-#endif
QCOMPARE(16, obj1->autoScrollMargin());
obj1->setAutoScrollMargin(20);
@@ -1179,8 +1157,46 @@ void tst_QAbstractItemView::task221955_selectedEditor()
button->setFocus();
QTest::qWait(50);
QVERIFY(tree.selectionModel()->selectedIndexes().isEmpty());
+}
+
+void tst_QAbstractItemView::task250754_fontChange()
+{
+ QString app_css = qApp->styleSheet();
+ qApp->setStyleSheet("/* */");
+
+ QWidget w;
+ QTreeView tree(&w);
+ QVBoxLayout *vLayout = new QVBoxLayout(&w);
+ vLayout->addWidget(&tree);
+
+ QStandardItemModel *m = new QStandardItemModel(this);
+ for (int i=0; i<5; ++i) {
+ QStandardItem *item = new QStandardItem(QString("Item number %1").arg(i));
+ for (int j=0; j<5; ++j) {
+ QStandardItem *child = new QStandardItem(QString("Child Item number %1").arg(j));
+ item->setChild(j, 0, child);
+ }
+ m->setItem(i, 0, item);
+ }
+ tree.setModel(m);
+
+ w.show();
+ w.resize(150,150);
+ QTest::qWait(30);
+ QFont font = tree.font();
+ font.setPointSize(5);
+ tree.setFont(font);
+ QTest::qWait(30);
+
+ QVERIFY(!tree.verticalScrollBar()->isVisible());
+
+ font.setPointSize(45);
+ tree.setFont(font);
+ QTest::qWait(30);
+ //now with the huge items, the scrollbar must be visible
+ QVERIFY(tree.verticalScrollBar()->isVisible());
-
+ qApp->setStyleSheet(app_css);
}
QTEST_MAIN(tst_QAbstractItemView)
diff --git a/tests/auto/qabstractslider/tst_qabstractslider.cpp b/tests/auto/qabstractslider/tst_qabstractslider.cpp
index 9e3acb8..dc1c866 100644
--- a/tests/auto/qabstractslider/tst_qabstractslider.cpp
+++ b/tests/auto/qabstractslider/tst_qabstractslider.cpp
@@ -864,11 +864,7 @@ void tst_QAbstractSlider::wheelEvent()
QVERIFY(applicationInstance->sendEvent(slider,&event));
QCOMPARE(slider->sliderPosition(),expectedSliderPosition);
int expectedSignalCount = (initialSliderPosition == expectedSliderPosition) ? 0 : 1;
-#if QT_VERSION >= 0x040200
QCOMPARE(spy1.count(), expectedSignalCount);
-#else
- QCOMPARE(spy1.count(), 0);
-#endif
QCOMPARE(spy2.count(), expectedSignalCount);
if (expectedSignalCount)
QVERIFY(actionTriggeredTimeStamp < valueChangedTimeStamp);
diff --git a/tests/auto/qaccessibility/tst_qaccessibility.cpp b/tests/auto/qaccessibility/tst_qaccessibility.cpp
index d023557..df770b3 100644
--- a/tests/auto/qaccessibility/tst_qaccessibility.cpp
+++ b/tests/auto/qaccessibility/tst_qaccessibility.cpp
@@ -218,8 +218,6 @@ public:
tst_QAccessibility();
virtual ~tst_QAccessibility();
-
-
public slots:
void initTestCase();
void cleanupTestCase();
@@ -275,6 +273,7 @@ private slots:
void accessibleName();
void treeWidgetTest();
void labelTest();
+ void accelerators();
private:
QWidget *createGUI();
@@ -408,15 +407,15 @@ public:
QtTestAccessibleWidgetIface(QtTestAccessibleWidget *w): QAccessibleWidget(w) {}
QString text(Text t, int control) const
{
- if (t == Help)
- return QString::fromLatin1("Help yourself");
- return QAccessibleWidget::text(t, control);
+ if (t == Help)
+ return QString::fromLatin1("Help yourself");
+ return QAccessibleWidget::text(t, control);
}
static QAccessibleInterface *ifaceFactory(const QString &key, QObject *o)
{
- if (key == "QtTestAccessibleWidget")
- return new QtTestAccessibleWidgetIface(static_cast<QtTestAccessibleWidget*>(o));
- return 0;
+ if (key == "QtTestAccessibleWidget")
+ return new QtTestAccessibleWidgetIface(static_cast<QtTestAccessibleWidget*>(o));
+ return 0;
}
};
#endif
@@ -454,15 +453,15 @@ void tst_QAccessibility::cleanup()
#ifdef QTEST_ACCESSIBILITY
const EventList list = QTestAccessibility::events();
if (!list.isEmpty()) {
- qWarning("%d accessibility event(s) were not handled in testfunction '%s':", list.count(),
- QString(QTest::currentTestFunction()).toAscii().constData());
- for (int i = 0; i < list.count(); ++i)
- qWarning(" %d: Object: %p Event: '%s' (%d) Child: %d", i + 1, list.at(i).object,
- eventName(list.at(i).event).toAscii().constData(), list.at(i).event, list.at(i).child);
+ qWarning("%d accessibility event(s) were not handled in testfunction '%s':", list.count(),
+ QString(QTest::currentTestFunction()).toAscii().constData());
+ for (int i = 0; i < list.count(); ++i)
+ qWarning(" %d: Object: %p Event: '%s' (%d) Child: %d", i + 1, list.at(i).object,
+ eventName(list.at(i).event).toAscii().constData(), list.at(i).event, list.at(i).child);
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -485,7 +484,7 @@ void tst_QAccessibility::eventTest()
delete button;
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -504,7 +503,7 @@ void tst_QAccessibility::customWidget()
delete iface;
delete widget;
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -522,7 +521,7 @@ void tst_QAccessibility::deletedWidget()
QVERIFY(!iface->isValid());
delete iface;
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -541,52 +540,52 @@ QWidget *tst_QAccessibility::createGUI()
topLeft->setSpacing(2);
grid->addWidget(topLeft, 0, 0);
- Q3VButtonGroup *group1 = new Q3VButtonGroup("Title1:", topLeft, "group1");
- /*QPushButton *pb1 = */ new QPushButton("Button&1", group1, "pb1");
- Q3VButtonGroup *group2 = new Q3VButtonGroup("Title2:", topLeft, "group2");
- /*QPushButton *pb2 = */ new QPushButton("Button2", group2, "pb2");
+ Q3VButtonGroup *group1 = new Q3VButtonGroup("Title1:", topLeft, "group1");
+ /*QPushButton *pb1 = */ new QPushButton("Button&1", group1, "pb1");
+ Q3VButtonGroup *group2 = new Q3VButtonGroup("Title2:", topLeft, "group2");
+ /*QPushButton *pb2 = */ new QPushButton("Button2", group2, "pb2");
- Q3WidgetStack *stack = new Q3WidgetStack(topLeft, "stack");
- QLabel *page1 = new QLabel("Page 1", stack, "page1");
- stack->addWidget(page1);
- QLabel *page2 = new QLabel("Page 2", stack, "page2");
- stack->addWidget(page2);
- QLabel *page3 = new QLabel("Page 3", stack, "page3");
- stack->addWidget(page3);
+ Q3WidgetStack *stack = new Q3WidgetStack(topLeft, "stack");
+ QLabel *page1 = new QLabel("Page 1", stack, "page1");
+ stack->addWidget(page1);
+ QLabel *page2 = new QLabel("Page 2", stack, "page2");
+ stack->addWidget(page2);
+ QLabel *page3 = new QLabel("Page 3", stack, "page3");
+ stack->addWidget(page3);
// topRight - controlling
Q3VBox *topRight= new Q3VBox(toplevel, "topRight");
grid->addWidget(topRight, 0, 1);
- QPushButton *pbOk = new QPushButton("Ok", topRight, "pbOk" );
- pbOk->setDefault(TRUE);
- QSlider *slider = new QSlider(Qt::Horizontal, topRight, "slider");
- QLCDNumber *sliderLcd = new QLCDNumber(topRight, "sliderLcd");
- QSpinBox *spinBox = new QSpinBox(topRight, "spinBox");
+ QPushButton *pbOk = new QPushButton("Ok", topRight, "pbOk" );
+ pbOk->setDefault(TRUE);
+ QSlider *slider = new QSlider(Qt::Horizontal, topRight, "slider");
+ QLCDNumber *sliderLcd = new QLCDNumber(topRight, "sliderLcd");
+ QSpinBox *spinBox = new QSpinBox(topRight, "spinBox");
- connect(pbOk, SIGNAL(clicked()), toplevel, SLOT(close()) );
- connect(slider, SIGNAL(valueChanged(int)), sliderLcd, SLOT(display(int)));
- connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)));
+ connect(pbOk, SIGNAL(clicked()), toplevel, SLOT(close()) );
+ connect(slider, SIGNAL(valueChanged(int)), sliderLcd, SLOT(display(int)));
+ connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)));
- spinBox->setValue(50);
+ spinBox->setValue(50);
// bottomLeft - labeling and controlling
Q3HBox *bottomLeft = new Q3HBox(toplevel, "bottomLeft");
grid->addWidget(bottomLeft, 1, 0);
- QLabel *label = new QLabel("This is a &lineedit:", bottomLeft, "label");
- QLineEdit *lineedit = new QLineEdit(bottomLeft, "lineedit");
- label->setBuddy(lineedit);
- QLabel *label2 = new QLabel(bottomLeft, "label2");
+ QLabel *label = new QLabel("This is a &lineedit:", bottomLeft, "label");
+ QLineEdit *lineedit = new QLineEdit(bottomLeft, "lineedit");
+ label->setBuddy(lineedit);
+ QLabel *label2 = new QLabel(bottomLeft, "label2");
- connect(lineedit, SIGNAL(textChanged(const QString&)), label2, SLOT(setText(const QString&)));
+ connect(lineedit, SIGNAL(textChanged(const QString&)), label2, SLOT(setText(const QString&)));
- Q3VButtonGroup *radiogroup = new Q3VButtonGroup("Exclusive &choices:", bottomLeft, "radiogroup");
- QLineEdit *frequency = new QLineEdit(radiogroup, "frequency");
- frequency->setText("100 Mhz");
- QRadioButton *radioAM = new QRadioButton("&AM", radiogroup, "radioAM");
- /* QRadioButton *radioFM = */ new QRadioButton("&FM", radiogroup, "radioFM");
- /* QRadioButton *radioSW = */ new QRadioButton("&Shortwave", radiogroup, "radioSW");
+ Q3VButtonGroup *radiogroup = new Q3VButtonGroup("Exclusive &choices:", bottomLeft, "radiogroup");
+ QLineEdit *frequency = new QLineEdit(radiogroup, "frequency");
+ frequency->setText("100 Mhz");
+ QRadioButton *radioAM = new QRadioButton("&AM", radiogroup, "radioAM");
+ /* QRadioButton *radioFM = */ new QRadioButton("&FM", radiogroup, "radioFM");
+ /* QRadioButton *radioSW = */ new QRadioButton("&Shortwave", radiogroup, "radioSW");
// bottomRight - ### empty
Q3HBox *bottomRight = new Q3HBox(toplevel, "bottomRight");
@@ -625,23 +624,23 @@ void tst_QAccessibility::childAt()
QObjectList children = toplevel->queryList("QWidget", 0, 0, 0);
for (int c = 1; c <= children.count(); ++c) {
- QWidget *child = qobject_cast<QWidget*>(children.at(c-1));
- QAccessibleInterface *acc_child = QAccessible::queryAccessibleInterface(child);
- QVERIFY(acc_child);
- QCOMPARE(acc_child->relationTo(0, acc_toplevel, 0) & QAccessible::HierarchyMask, QAccessible::Child);
-
- QPoint center(child->mapToGlobal(child->rect().center()));
- QRect childRect(child->geometry());
- childRect.moveCenter(center);
-
- QCOMPARE(acc_child->rect(0), childRect);
- QCOMPARE(acc_toplevel->childAt(childRect.center().x(), childRect.center().y()), c);
- QCOMPARE(acc_toplevel->childAt(childRect.left(), childRect.top()), c);
- QCOMPARE(acc_toplevel->childAt(childRect.left(), childRect.bottom()), c);
- QCOMPARE(acc_toplevel->childAt(childRect.right(), childRect.top()), c);
- QCOMPARE(acc_toplevel->childAt(childRect.right(), childRect.bottom()), c);
-
- QCOMPARE(acc_toplevel->indexOfChild(acc_child), c);
+ QWidget *child = qobject_cast<QWidget*>(children.at(c-1));
+ QAccessibleInterface *acc_child = QAccessible::queryAccessibleInterface(child);
+ QVERIFY(acc_child);
+ QCOMPARE(acc_child->relationTo(0, acc_toplevel, 0) & QAccessible::HierarchyMask, QAccessible::Child);
+
+ QPoint center(child->mapToGlobal(child->rect().center()));
+ QRect childRect(child->geometry());
+ childRect.moveCenter(center);
+
+ QCOMPARE(acc_child->rect(0), childRect);
+ QCOMPARE(acc_toplevel->childAt(childRect.center().x(), childRect.center().y()), c);
+ QCOMPARE(acc_toplevel->childAt(childRect.left(), childRect.top()), c);
+ QCOMPARE(acc_toplevel->childAt(childRect.left(), childRect.bottom()), c);
+ QCOMPARE(acc_toplevel->childAt(childRect.right(), childRect.top()), c);
+ QCOMPARE(acc_toplevel->childAt(childRect.right(), childRect.bottom()), c);
+
+ QCOMPARE(acc_toplevel->indexOfChild(acc_child), c);
delete acc_child;
}
@@ -649,7 +648,7 @@ void tst_QAccessibility::childAt()
delete toplevel;
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
#endif // !QT3_SUPPORT
}
@@ -693,7 +692,7 @@ void tst_QAccessibility::childCount()
delete toplevel;
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
#endif // !QT3_SUPPORT
}
@@ -715,33 +714,33 @@ void tst_QAccessibility::relationTo()
QAccessibleInterface *acc_toplevel = QAccessible::queryAccessibleInterface(toplevel);
- QAccessibleInterface *acc_topLeft = QAccessible::queryAccessibleInterface(topLeft);
- QAccessibleInterface *acc_group1 = QAccessible::queryAccessibleInterface(topLeft->child("group1"));
- QVERIFY(topLeft->child("group1"));
- QAccessibleInterface *acc_pb1 = QAccessible::queryAccessibleInterface(topLeft->child("group1")->child("pb1"));
- QAccessibleInterface *acc_group2 = QAccessible::queryAccessibleInterface(topLeft->child("group2"));
- QAccessibleInterface *acc_pb2 = 0;
- QAccessibleInterface *acc_stack = QAccessible::queryAccessibleInterface(topLeft->child("stack"));
- QAccessibleInterface *acc_page1 = QAccessible::queryAccessibleInterface(topLeft->child("stack")->child("page1"));
- QAccessibleInterface *acc_page2 = QAccessible::queryAccessibleInterface(topLeft->child("stack")->child("page2"));
- QAccessibleInterface *acc_page3 = QAccessible::queryAccessibleInterface(topLeft->child("stack")->child("page3"));
- QAccessibleInterface *acc_topRight = QAccessible::queryAccessibleInterface(topRight);
- QAccessibleInterface *acc_pbOk = QAccessible::queryAccessibleInterface(topRight->child("pbOk"));
- QAccessibleInterface *acc_slider = QAccessible::queryAccessibleInterface(topRight->child("slider"));
- QAccessibleInterface *acc_spinBox = QAccessible::queryAccessibleInterface(topRight->child("spinBox"));
- QAccessibleInterface *acc_sliderLcd = QAccessible::queryAccessibleInterface(topRight->child("sliderLcd"));
-
- QAccessibleInterface *acc_bottomLeft = QAccessible::queryAccessibleInterface(bottomLeft);
- QAccessibleInterface *acc_label = QAccessible::queryAccessibleInterface(bottomLeft->child("label"));
- QAccessibleInterface *acc_lineedit = QAccessible::queryAccessibleInterface(bottomLeft->child("lineedit"));
- QAccessibleInterface *acc_label2 = QAccessible::queryAccessibleInterface(bottomLeft->child("label2"));
- QAccessibleInterface *acc_radiogroup = QAccessible::queryAccessibleInterface(bottomLeft->child("radiogroup"));
- QAccessibleInterface *acc_radioAM = QAccessible::queryAccessibleInterface(bottomLeft->child("radiogroup")->child("radioAM"));
- QAccessibleInterface *acc_radioFM = QAccessible::queryAccessibleInterface(bottomLeft->child("radiogroup")->child("radioFM"));
- QAccessibleInterface *acc_radioSW = QAccessible::queryAccessibleInterface(bottomLeft->child("radiogroup")->child("radioSW"));
- QAccessibleInterface *acc_frequency = QAccessible::queryAccessibleInterface(bottomLeft->child("radiogroup")->child("frequency"));
-
- QAccessibleInterface *acc_bottomRight = QAccessible::queryAccessibleInterface(bottomRight);
+ QAccessibleInterface *acc_topLeft = QAccessible::queryAccessibleInterface(topLeft);
+ QAccessibleInterface *acc_group1 = QAccessible::queryAccessibleInterface(topLeft->child("group1"));
+ QVERIFY(topLeft->child("group1"));
+ QAccessibleInterface *acc_pb1 = QAccessible::queryAccessibleInterface(topLeft->child("group1")->child("pb1"));
+ QAccessibleInterface *acc_group2 = QAccessible::queryAccessibleInterface(topLeft->child("group2"));
+ QAccessibleInterface *acc_pb2 = 0;
+ QAccessibleInterface *acc_stack = QAccessible::queryAccessibleInterface(topLeft->child("stack"));
+ QAccessibleInterface *acc_page1 = QAccessible::queryAccessibleInterface(topLeft->child("stack")->child("page1"));
+ QAccessibleInterface *acc_page2 = QAccessible::queryAccessibleInterface(topLeft->child("stack")->child("page2"));
+ QAccessibleInterface *acc_page3 = QAccessible::queryAccessibleInterface(topLeft->child("stack")->child("page3"));
+ QAccessibleInterface *acc_topRight = QAccessible::queryAccessibleInterface(topRight);
+ QAccessibleInterface *acc_pbOk = QAccessible::queryAccessibleInterface(topRight->child("pbOk"));
+ QAccessibleInterface *acc_slider = QAccessible::queryAccessibleInterface(topRight->child("slider"));
+ QAccessibleInterface *acc_spinBox = QAccessible::queryAccessibleInterface(topRight->child("spinBox"));
+ QAccessibleInterface *acc_sliderLcd = QAccessible::queryAccessibleInterface(topRight->child("sliderLcd"));
+
+ QAccessibleInterface *acc_bottomLeft = QAccessible::queryAccessibleInterface(bottomLeft);
+ QAccessibleInterface *acc_label = QAccessible::queryAccessibleInterface(bottomLeft->child("label"));
+ QAccessibleInterface *acc_lineedit = QAccessible::queryAccessibleInterface(bottomLeft->child("lineedit"));
+ QAccessibleInterface *acc_label2 = QAccessible::queryAccessibleInterface(bottomLeft->child("label2"));
+ QAccessibleInterface *acc_radiogroup = QAccessible::queryAccessibleInterface(bottomLeft->child("radiogroup"));
+ QAccessibleInterface *acc_radioAM = QAccessible::queryAccessibleInterface(bottomLeft->child("radiogroup")->child("radioAM"));
+ QAccessibleInterface *acc_radioFM = QAccessible::queryAccessibleInterface(bottomLeft->child("radiogroup")->child("radioFM"));
+ QAccessibleInterface *acc_radioSW = QAccessible::queryAccessibleInterface(bottomLeft->child("radiogroup")->child("radioSW"));
+ QAccessibleInterface *acc_frequency = QAccessible::queryAccessibleInterface(bottomLeft->child("radiogroup")->child("frequency"));
+
+ QAccessibleInterface *acc_bottomRight = QAccessible::queryAccessibleInterface(bottomRight);
QVERIFY(acc_toplevel);
QVERIFY(acc_topLeft);
@@ -768,49 +767,49 @@ void tst_QAccessibility::relationTo()
// hierachy relations
QCOMPARE(acc_toplevel->relationTo(0, acc_toplevel, 0) & QAccessible::HierarchyMask,
- QAccessible::Self);
+ QAccessible::Self);
QCOMPARE(acc_toplevel->relationTo(1, acc_toplevel, 0) & QAccessible::HierarchyMask,
- QAccessible::Child);
+ QAccessible::Child);
QCOMPARE(acc_toplevel->relationTo(0, acc_toplevel, 1) & QAccessible::HierarchyMask,
- QAccessible::Ancestor);
+ QAccessible::Ancestor);
QCOMPARE(acc_toplevel->relationTo(0, acc_topLeft, 0) & QAccessible::HierarchyMask,
- QAccessible::Ancestor);
+ QAccessible::Ancestor);
QCOMPARE(acc_toplevel->relationTo(0, acc_topRight, 0) & QAccessible::HierarchyMask,
- QAccessible::Ancestor);
+ QAccessible::Ancestor);
QCOMPARE(acc_toplevel->relationTo(0, acc_bottomLeft, 0) & QAccessible::HierarchyMask,
- QAccessible::Ancestor);
+ QAccessible::Ancestor);
QCOMPARE(acc_toplevel->relationTo(0, acc_bottomRight, 0) & QAccessible::HierarchyMask,
- QAccessible::Ancestor);
+ QAccessible::Ancestor);
QCOMPARE(acc_toplevel->relationTo(0, acc_group1, 0) & QAccessible::HierarchyMask,
- QAccessible::Ancestor);
+ QAccessible::Ancestor);
QCOMPARE(acc_toplevel->relationTo(0, acc_page1, 0) & QAccessible::HierarchyMask,
- QAccessible::Ancestor);
+ QAccessible::Ancestor);
QCOMPARE(acc_group1->relationTo(0, acc_toplevel, 0) & QAccessible::HierarchyMask,
- QAccessible::Descendent);
+ QAccessible::Descendent);
QCOMPARE(acc_stack->relationTo(0, acc_toplevel, 0) & QAccessible::HierarchyMask,
- QAccessible::Descendent);
+ QAccessible::Descendent);
QCOMPARE(acc_page1->relationTo(0, acc_stack, 0) & QAccessible::HierarchyMask,
- QAccessible::Child);
+ QAccessible::Child);
QCOMPARE(acc_page1->relationTo(0, acc_toplevel, 0) & QAccessible::HierarchyMask,
- QAccessible::Descendent);
+ QAccessible::Descendent);
QCOMPARE(acc_topLeft->relationTo(0, acc_toplevel, 0) & QAccessible::HierarchyMask,
- QAccessible::Child);
+ QAccessible::Child);
QCOMPARE(acc_topRight->relationTo(0, acc_toplevel, 0) & QAccessible::HierarchyMask,
- QAccessible::Child);
+ QAccessible::Child);
QCOMPARE(acc_bottomLeft->relationTo(0, acc_toplevel, 0) & QAccessible::HierarchyMask,
- QAccessible::Child);
+ QAccessible::Child);
QCOMPARE(acc_bottomRight->relationTo(0, acc_toplevel, 0) & QAccessible::HierarchyMask,
- QAccessible::Child);
+ QAccessible::Child);
QCOMPARE(acc_topLeft->relationTo(0, acc_topRight, 0) & QAccessible::HierarchyMask,
- QAccessible::Sibling);
+ QAccessible::Sibling);
QCOMPARE(acc_topLeft->relationTo(0, acc_bottomLeft, 0) & QAccessible::HierarchyMask,
- QAccessible::Sibling);
+ QAccessible::Sibling);
QCOMPARE(acc_topLeft->relationTo(0, acc_bottomRight, 0) & QAccessible::HierarchyMask,
- QAccessible::Sibling);
+ QAccessible::Sibling);
QCOMPARE(acc_pb1->relationTo(0, acc_pb2, 0), QAccessible::Unrelated);
@@ -835,25 +834,25 @@ void tst_QAccessibility::relationTo()
// logical relations - focus
QCOMPARE(acc_radioAM->relationTo(0, acc_radioFM, 0) & QAccessible::FocusChild,
- QAccessible::Unrelated);
+ QAccessible::Unrelated);
QCOMPARE(acc_radioAM->relationTo(0, acc_radiogroup, 0) & QAccessible::FocusChild,
- QAccessible::FocusChild);
+ QAccessible::FocusChild);
QCOMPARE(acc_radioAM->relationTo(0, acc_bottomLeft, 0) & QAccessible::FocusChild,
- QAccessible::FocusChild);
+ QAccessible::FocusChild);
QCOMPARE(acc_radioAM->relationTo(0, acc_topLeft, 0) & QAccessible::FocusChild,
- QAccessible::Unrelated);
+ QAccessible::Unrelated);
QCOMPARE(acc_radioAM->relationTo(0, acc_toplevel, 0) & QAccessible::FocusChild,
- QAccessible::FocusChild);
+ QAccessible::FocusChild);
// logical relations - labels
QCOMPARE(acc_label->relationTo(0, acc_lineedit, 0) & QAccessible::LogicalMask,
- QAccessible::Label);
+ QAccessible::Label);
QCOMPARE(acc_lineedit->relationTo(0, acc_label, 0) & QAccessible::LogicalMask,
- QAccessible::Labelled);
+ QAccessible::Labelled);
QCOMPARE(acc_label->relationTo(0, acc_radiogroup, 0) & QAccessible::LogicalMask,
- QAccessible::Unrelated);
+ QAccessible::Unrelated);
QCOMPARE(acc_lineedit->relationTo(0, acc_lineedit, 0) & QAccessible::LogicalMask,
- QAccessible::Unrelated);
+ QAccessible::Unrelated);
QEXPECT_FAIL("", "Make me accessible", Continue);
QCOMPARE(acc_radiogroup->relationTo(0, acc_radioAM, 0) & QAccessible::LogicalMask,
@@ -865,21 +864,21 @@ void tst_QAccessibility::relationTo()
QCOMPARE(acc_radiogroup->relationTo(0, acc_radioSW, 0) & QAccessible::LogicalMask,
QAccessible::Label | QAccessible::Controlled);
QCOMPARE(acc_radiogroup->relationTo(0, acc_frequency, 0) & QAccessible::LogicalMask,
- QAccessible::Label);
+ QAccessible::Label);
QCOMPARE(acc_frequency->relationTo(0, acc_radiogroup, 0) & QAccessible::LogicalMask,
- QAccessible::Labelled);
+ QAccessible::Labelled);
QCOMPARE(acc_radiogroup->relationTo(0, acc_lineedit, 0) & QAccessible::LogicalMask,
- QAccessible::Unrelated);
+ QAccessible::Unrelated);
// logical relations - controller
QCOMPARE(acc_pbOk->relationTo(0, acc_toplevel, 0) & QAccessible::LogicalMask,
- QAccessible::Controller);
+ QAccessible::Controller);
QCOMPARE(acc_slider->relationTo(0, acc_sliderLcd, 0) & QAccessible::LogicalMask,
- QAccessible::Controller);
+ QAccessible::Controller);
QCOMPARE(acc_spinBox->relationTo(0, acc_slider, 0) & QAccessible::LogicalMask,
- QAccessible::Controller);
+ QAccessible::Controller);
QCOMPARE(acc_lineedit->relationTo(0, acc_label2, 0) & QAccessible::LogicalMask,
- QAccessible::Controller);
+ QAccessible::Controller);
delete acc_toplevel;
delete acc_topLeft;
@@ -910,7 +909,7 @@ void tst_QAccessibility::relationTo()
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
#endif // !QT3_SUPPORT
}
@@ -933,8 +932,8 @@ void tst_QAccessibility::navigateGeometric()
QtTestAccessibleWidget *aw = 0;
int i;
for (i = 0; i < 360; i += skip) {
- aw = new QtTestAccessibleWidget(w, QString::number(i).toLatin1());
- aw->move( int(200.0 + 100.0 * sin(step * (double)i)), int(200.0 + 100.0 * cos(step * (double)i)) );
+ aw = new QtTestAccessibleWidget(w, QString::number(i).toLatin1());
+ aw->move( int(200.0 + 100.0 * sin(step * (double)i)), int(200.0 + 100.0 * cos(step * (double)i)) );
}
aw = new QtTestAccessibleWidget(w, "Earth");
@@ -949,25 +948,24 @@ void tst_QAccessibility::navigateGeometric()
QTest::qWait(100);
#endif
-
// let one widget rotate around center
for (i = 0; i < 360; i+=skip) {
- aw->move( int(200.0 + 75.0 * sin(step * (double)i)), int(200.0 + 75.0 * cos(step * (double)i)) );
-
- if (i < 45 || i > 315) {
- QCOMPARE(iface->navigate(QAccessible::Down, 0, &target), 0);
- } else if ( i < 135 ) {
- QCOMPARE(iface->navigate(QAccessible::Right, 0, &target), 0);
- } else if ( i < 225 ) {
- QCOMPARE(iface->navigate(QAccessible::Up, 0, &target), 0);
- } else {
- QCOMPARE(iface->navigate(QAccessible::Left, 0, &target), 0);
+ aw->move( int(200.0 + 75.0 * sin(step * (double)i)), int(200.0 + 75.0 * cos(step * (double)i)) );
+
+ if (i < 45 || i > 315) {
+ QCOMPARE(iface->navigate(QAccessible::Down, 0, &target), 0);
+ } else if ( i < 135 ) {
+ QCOMPARE(iface->navigate(QAccessible::Right, 0, &target), 0);
+ } else if ( i < 225 ) {
+ QCOMPARE(iface->navigate(QAccessible::Up, 0, &target), 0);
+ } else {
+ QCOMPARE(iface->navigate(QAccessible::Left, 0, &target), 0);
}
- QVERIFY(target);
- QVERIFY(target->isValid());
- QVERIFY(target->object());
- QCOMPARE(target->object()->objectName(), aw->objectName());
+ QVERIFY(target);
+ QVERIFY(target->isValid());
+ QVERIFY(target->object());
+ QCOMPARE(target->object()->objectName(), aw->objectName());
delete target; target = 0;
}
@@ -1015,7 +1013,7 @@ void tst_QAccessibility::navigateGeometric()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -1049,7 +1047,7 @@ void tst_QAccessibility::navigateSlider()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -1091,43 +1089,43 @@ void tst_QAccessibility::navigateCovered()
QVERIFY(iface3 == 0);
for (int loop = 0; loop < 2; ++loop) {
- for (int x = 0; x < w->width(); ++x) {
- for (int y = 0; y < w->height(); ++y) {
- w1->move(x, y);
- if (w1->geometry().intersects(w2->geometry())) {
- QVERIFY(iface1->relationTo(0, iface2, 0) & QAccessible::Covers);
- QVERIFY(iface2->relationTo(0, iface1, 0) & QAccessible::Covered);
- QCOMPARE(iface1->navigate(QAccessible::Covered, 1, &iface3), 0);
- QVERIFY(iface3 != 0);
- QVERIFY(iface3->isValid());
- QCOMPARE(iface3->object(), iface2->object());
+ for (int x = 0; x < w->width(); ++x) {
+ for (int y = 0; y < w->height(); ++y) {
+ w1->move(x, y);
+ if (w1->geometry().intersects(w2->geometry())) {
+ QVERIFY(iface1->relationTo(0, iface2, 0) & QAccessible::Covers);
+ QVERIFY(iface2->relationTo(0, iface1, 0) & QAccessible::Covered);
+ QCOMPARE(iface1->navigate(QAccessible::Covered, 1, &iface3), 0);
+ QVERIFY(iface3 != 0);
+ QVERIFY(iface3->isValid());
+ QCOMPARE(iface3->object(), iface2->object());
delete iface3; iface3 = 0;
- QCOMPARE(iface2->navigate(QAccessible::Covers, 1, &iface3), 0);
- QVERIFY(iface3 != 0);
- QVERIFY(iface3->isValid());
- QCOMPARE(iface3->object(), iface1->object());
+ QCOMPARE(iface2->navigate(QAccessible::Covers, 1, &iface3), 0);
+ QVERIFY(iface3 != 0);
+ QVERIFY(iface3->isValid());
+ QCOMPARE(iface3->object(), iface1->object());
delete iface3; iface3 = 0;
- } else {
- QVERIFY(!(iface1->relationTo(0, iface2, 0) & QAccessible::Covers));
- QVERIFY(!(iface2->relationTo(0, iface1, 0) & QAccessible::Covered));
- QCOMPARE(iface1->navigate(QAccessible::Covered, 1, &iface3), -1);
- QVERIFY(iface3 == 0);
- QCOMPARE(iface1->navigate(QAccessible::Covers, 1, &iface3), -1);
- QVERIFY(iface3 == 0);
- QCOMPARE(iface2->navigate(QAccessible::Covered, 1, &iface3), -1);
- QVERIFY(iface3 == 0);
- QCOMPARE(iface2->navigate(QAccessible::Covers, 1, &iface3), -1);
- QVERIFY(iface3 == 0);
- }
- }
- }
- if (!loop) {
- // switch children for second loop
- w2->raise();
- QAccessibleInterface *temp = iface1;
- iface1 = iface2;
- iface2 = temp;
- }
+ } else {
+ QVERIFY(!(iface1->relationTo(0, iface2, 0) & QAccessible::Covers));
+ QVERIFY(!(iface2->relationTo(0, iface1, 0) & QAccessible::Covered));
+ QCOMPARE(iface1->navigate(QAccessible::Covered, 1, &iface3), -1);
+ QVERIFY(iface3 == 0);
+ QCOMPARE(iface1->navigate(QAccessible::Covers, 1, &iface3), -1);
+ QVERIFY(iface3 == 0);
+ QCOMPARE(iface2->navigate(QAccessible::Covered, 1, &iface3), -1);
+ QVERIFY(iface3 == 0);
+ QCOMPARE(iface2->navigate(QAccessible::Covers, 1, &iface3), -1);
+ QVERIFY(iface3 == 0);
+ }
+ }
+ }
+ if (!loop) {
+ // switch children for second loop
+ w2->raise();
+ QAccessibleInterface *temp = iface1;
+ iface1 = iface2;
+ iface2 = temp;
+ }
}
delete iface1; iface1 = 0;
delete iface2; iface2 = 0;
@@ -1159,7 +1157,7 @@ void tst_QAccessibility::navigateCovered()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -1262,7 +1260,7 @@ void tst_QAccessibility::navigateHierarchy()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -1277,11 +1275,11 @@ void tst_QAccessibility::navigateControllers()
#ifdef QTEST_ACCESSIBILITY
{
Q3VBox vbox;
- QSlider slider(&vbox);
- QSpinBox spinBox(&vbox);
- QLCDNumber lcd1(&vbox);
- QLCDNumber lcd2(&vbox);
- QLabel label(&vbox);
+ QSlider slider(&vbox);
+ QSpinBox spinBox(&vbox);
+ QLCDNumber lcd1(&vbox);
+ QLCDNumber lcd2(&vbox);
+ QLabel label(&vbox);
vbox.show();
slider.setObjectName("slider");
@@ -1358,7 +1356,7 @@ void tst_QAccessibility::navigateControllers()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
#endif // !QT3_SUPPORT
}
@@ -1373,24 +1371,24 @@ void tst_QAccessibility::navigateLabels()
Q3VBox vbox;
Q3HBox hbox(&vbox);
- QLabel label(&hbox);
+ QLabel label(&hbox);
label.setText("This is a lineedit:");
- QLineEdit lineedit(&hbox);
+ QLineEdit lineedit(&hbox);
label.setBuddy(&lineedit);
Q3VButtonGroup groupbox(&vbox);
groupbox.setTitle("Be my children!");
QRadioButton radio(&groupbox);
- QLabel label2(&groupbox);
+ QLabel label2(&groupbox);
label2.setText("Another lineedit:");
- QLineEdit lineedit2(&groupbox);
+ QLineEdit lineedit2(&groupbox);
label2.setBuddy(&lineedit2);
Q3GroupBox groupbox2(&groupbox);
groupbox2.setTitle("Some grand-children");
- QLineEdit grandchild(&groupbox2);
+ QLineEdit grandchild(&groupbox2);
Q3GroupBox border(&vbox);
- QLineEdit lineedit3(&border);
+ QLineEdit lineedit3(&border);
vbox.show();
QTestAccessibility::clearEvents();
@@ -1491,7 +1489,7 @@ void tst_QAccessibility::navigateLabels()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
#endif // !QT3_SUPPORT
}
@@ -1570,7 +1568,7 @@ void tst_QAccessibility::accessibleName()
delete toplevel;
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -1677,7 +1675,7 @@ void tst_QAccessibility::text()
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
#endif // !QT3_SUPPORT
}
@@ -1713,7 +1711,7 @@ void tst_QAccessibility::setText()
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
#endif //QT3_SUPPORT
}
@@ -1748,7 +1746,7 @@ void tst_QAccessibility::hideShowTest()
delete window;
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -1785,7 +1783,7 @@ void tst_QAccessibility::userActionCount()
QCOMPARE(test->userActionCount(-1), 0);
delete test; test = 0;
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -1810,7 +1808,7 @@ void tst_QAccessibility::actionText()
delete test; test = 0;
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -1819,7 +1817,7 @@ void tst_QAccessibility::doAction()
#ifdef QTEST_ACCESSIBILITY
QSKIP("TODO: Implement me", SkipAll);
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -2006,7 +2004,7 @@ void tst_QAccessibility::buttonTest()
QTestAccessibility::clearEvents();
#else
-// QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+// QSKIP("Test needs accessibility support.", SkipAll);
QSKIP("No action interface in Qt 4 yet.", SkipAll);
#endif
}
@@ -2206,7 +2204,7 @@ void tst_QAccessibility::sliderTest()
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
#endif //!QT3_SUPPORT
}
@@ -2304,7 +2302,7 @@ void tst_QAccessibility::scrollBarTest()
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -2348,7 +2346,7 @@ void tst_QAccessibility::tabTest()
delete interface;
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -2536,8 +2534,6 @@ void tst_QAccessibility::menuTest()
}
delete iface;
-
-
// "New" item
entry = interface->navigate(QAccessible::Child, 1, &iface);
QCOMPARE(entry, 0);
@@ -2568,11 +2564,6 @@ void tst_QAccessibility::menuTest()
delete iface;
-
-
-#if QT_VERSION < 0x040102
- QEXPECT_FAIL("", "Submenus don't open, task 99301", Continue);
-#endif
// move mouse pointer away, since that might influence the
// subsequent tests
QTest::mouseMove(&mw, QPoint(-1, -1));
@@ -2582,9 +2573,6 @@ void tst_QAccessibility::menuTest()
interface->doAction(QAccessible::DefaultAction, 1);
QTestEventLoop::instance().enterLoop(2);
-#if defined (Q_OS_WIN) && QT_VERSION < 0x040300 && !defined(Q_OS_WINCE)
- QEXPECT_FAIL("", "Don't expect the File menu to be visible in 4.2", Continue);
-#endif
QVERIFY(file->isVisible());
QVERIFY(fileNew->isVisible());
QVERIFY(!edit->isVisible());
@@ -2592,8 +2580,8 @@ void tst_QAccessibility::menuTest()
QTestAccessibility::clearEvents();
mw.hide();
-
-
+
+
// Do not crash if the menu don't have a parent
QMenu *menu = new QMenu;
menu->addAction(QLatin1String("one"));
@@ -2607,7 +2595,7 @@ void tst_QAccessibility::menuTest()
delete iface2;
delete iface;
delete menu;
-
+
}
QTestAccessibility::clearEvents();
#else
@@ -2638,7 +2626,7 @@ void tst_QAccessibility::spinBoxTest()
delete spinBox;
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -2665,7 +2653,7 @@ void tst_QAccessibility::doubleSpinBoxTest()
delete doubleSpinBox;
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -2687,7 +2675,7 @@ void tst_QAccessibility::textEditTest()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -2711,7 +2699,7 @@ void tst_QAccessibility::textBrowserTest()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -2784,7 +2772,7 @@ void tst_QAccessibility::listViewTest()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -2841,7 +2829,7 @@ void tst_QAccessibility::mdiAreaTest()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -2971,7 +2959,7 @@ void tst_QAccessibility::mdiSubWindowTest()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -3036,7 +3024,7 @@ void tst_QAccessibility::lineEditTest()
delete toplevel;
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -3097,7 +3085,7 @@ void tst_QAccessibility::workspaceTest()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -3217,7 +3205,7 @@ void tst_QAccessibility::dialogButtonBoxTest()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -3266,7 +3254,7 @@ void tst_QAccessibility::dialTest()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -3280,7 +3268,7 @@ void tst_QAccessibility::rubberBandTest()
delete interface;
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -3445,7 +3433,7 @@ void tst_QAccessibility::abstractScrollAreaTest()
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -3466,7 +3454,7 @@ void tst_QAccessibility::scrollAreaTest()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -3511,7 +3499,7 @@ void tst_QAccessibility::tableWidgetTest()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -3629,7 +3617,7 @@ void tst_QAccessibility::tableViewTest()
QCOMPARE(client->role(0), QAccessible::Client);
QRect globalRect = client->rect(0);
QVERIFY(globalRect.isValid());
- // make sure we don't hit the vertical header #####
+ // make sure we don't hit the vertical header #####
QPoint p = globalRect.topLeft() + QPoint(8, 8);
p.ry() += 50 * (y - 1);
p.rx() += 100 * (x - 1);
@@ -3677,7 +3665,7 @@ void tst_QAccessibility::tableViewTest()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -3778,7 +3766,7 @@ void tst_QAccessibility::calendarWidgetTest()
}
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
#endif // QT_NO_CALENDARWIDGET
}
@@ -3856,7 +3844,7 @@ void tst_QAccessibility::dockWidgetTest()
delete mw;
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
#endif // QT_NO_DOCKWIDGET
}
@@ -3902,7 +3890,7 @@ void tst_QAccessibility::pushButtonTest()
delete toplevel;
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
#endif //QT3_SUPPORT
}
@@ -3949,7 +3937,7 @@ void tst_QAccessibility::comboBoxTest()
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -3988,13 +3976,12 @@ void tst_QAccessibility::treeWidgetTest()
QCOMPARE(entry, 0);
QCOMPARE(accTreeItem2->text(QAccessible::Name, 0), QLatin1String("row: 1"));
-
- // test selected/focused state
+ // test selected/focused state
QItemSelectionModel *selModel = tree->selectionModel();
QVERIFY(selModel);
selModel->select(QItemSelection(tree->model()->index(0, 0), tree->model()->index(3, 0)), QItemSelectionModel::Select);
selModel->setCurrentIndex(tree->model()->index(1, 0), QItemSelectionModel::Current);
-
+
for (int i = 1; i < 10 ; ++i) {
QAccessible::State expected;
if (i <= 5 && i >= 2)
@@ -4014,10 +4001,9 @@ void tst_QAccessibility::treeWidgetTest()
delete acc;
delete w;
-
QTestAccessibility::clearEvents();
#else
- QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+ QSKIP("Test needs accessibility support.", SkipAll);
#endif
}
@@ -4046,6 +4032,45 @@ void tst_QAccessibility::labelTest()
#endif
}
+void tst_QAccessibility::accelerators()
+{
+#ifdef QTEST_ACCESSIBILITY
+ QWidget *window = new QWidget;
+ QHBoxLayout *lay = new QHBoxLayout(window);
+ QLabel *label = new QLabel(tr("&Line edit"), window);
+ QLineEdit *le = new QLineEdit(window);
+ lay->addWidget(label);
+ lay->addWidget(le);
+ label->setBuddy(le);
+
+ window->show();
+
+ QAccessibleInterface *accLineEdit = QAccessible::queryAccessibleInterface(le);
+ QCOMPARE(accLineEdit->text(QAccessible::Accelerator, 0), QKeySequence(Qt::ALT).toString() + QLatin1String("L"));
+ label->setText(tr("Q &"));
+ QCOMPARE(accLineEdit->text(QAccessible::Accelerator, 0), QString());
+ label->setText(tr("Q &&"));
+ QCOMPARE(accLineEdit->text(QAccessible::Accelerator, 0), QString());
+ label->setText(tr("Q && A"));
+ QCOMPARE(accLineEdit->text(QAccessible::Accelerator, 0), QString());
+ label->setText(tr("Q &&&A"));
+ QCOMPARE(accLineEdit->text(QAccessible::Accelerator, 0), QKeySequence(Qt::ALT).toString() + QLatin1String("A"));
+ label->setText(tr("Q &&A"));
+ QCOMPARE(accLineEdit->text(QAccessible::Accelerator, 0), QString());
+ label->setText(tr("Q &A&B"));
+ QCOMPARE(accLineEdit->text(QAccessible::Accelerator, 0), QKeySequence(Qt::ALT).toString() + QLatin1String("A"));
+
+#if defined(Q_WS_X11)
+ qt_x11_wait_for_window_manager(window);
+#endif
+ QTest::qWait(100);
+ delete window;
+ QTestAccessibility::clearEvents();
+#else
+ QSKIP("Test needs Qt >= 0x040000 and accessibility support.", SkipAll);
+#endif
+}
+
QTEST_MAIN(tst_QAccessibility)
diff --git a/tests/auto/qalgorithms/tst_qalgorithms.cpp b/tests/auto/qalgorithms/tst_qalgorithms.cpp
index 9c2fa50..423cf69 100644
--- a/tests/auto/qalgorithms/tst_qalgorithms.cpp
+++ b/tests/auto/qalgorithms/tst_qalgorithms.cpp
@@ -574,10 +574,8 @@ void tst_QAlgorithms::test_qLowerBound()
QCOMPARE(qLowerBound(data.constBegin(), data.constEnd(), resultValue), data.constBegin() + resultIndex);
QCOMPARE(qLowerBound(data.begin(), data.end(), resultValue), data.begin() + resultIndex);
-#if QT_VERSION >= 0x040200
QCOMPARE(qLowerBound(data, resultValue), data.constBegin() + resultIndex);
QCOMPARE(qLowerBound(data.constBegin(), data.constEnd(), resultValue, qLess<int>()), data.constBegin() + resultIndex);
-#endif
}
void tst_QAlgorithms::test_qUpperBound_data()
@@ -597,10 +595,8 @@ void tst_QAlgorithms::test_qUpperBound()
QCOMPARE(qUpperBound(data.constBegin(), data.constEnd(), resultValue), data.constBegin() + resultIndex);
QCOMPARE(qUpperBound(data.begin(), data.end(), resultValue), data.begin() + resultIndex);
-#if QT_VERSION >= 0x040200
QCOMPARE(qUpperBound(data, resultValue), data.constBegin() + resultIndex);
QCOMPARE(qUpperBound(data.constBegin(), data.constEnd(), resultValue, qLess<int>()), data.constBegin() + resultIndex);
-#endif
}
void tst_QAlgorithms::test_qBinaryFind_data()
@@ -618,10 +614,8 @@ void tst_QAlgorithms::test_qBinaryFind()
QCOMPARE(*qBinaryFind(data.constBegin(), data.constEnd(), resultValue), resultValue);
QCOMPARE(*qBinaryFind(data.begin(), data.end(), resultValue), resultValue);
-#if QT_VERSION >= 0x040200
QCOMPARE(*qBinaryFind(data, resultValue), resultValue);
QCOMPARE(*qBinaryFind(data.constBegin(), data.constEnd(), resultValue, qLess<int>()), resultValue);
-#endif
}
void tst_QAlgorithms::qBinaryFindOneEntry()
@@ -802,7 +796,6 @@ void tst_QAlgorithms::stableSortCorrectnessTest()
void tst_QAlgorithms::convenienceAPI()
{
// Compile-test for QAlgorithm convenience functions.
-#if QT_VERSION >= 0x040200
QList<int> list, list2;
qCopy(list.begin(), list.end(), list2.begin());
@@ -844,7 +837,6 @@ void tst_QAlgorithms::convenienceAPI()
QList<int *> pointerList;
qDeleteAll(pointerList);
qDeleteAll(pointerList.begin(), pointerList.end());
-#endif
}
template <typename DataType>
diff --git a/tests/auto/qbitarray/tst_qbitarray.cpp b/tests/auto/qbitarray/tst_qbitarray.cpp
index bbcb087..ecdffda 100644
--- a/tests/auto/qbitarray/tst_qbitarray.cpp
+++ b/tests/auto/qbitarray/tst_qbitarray.cpp
@@ -212,10 +212,8 @@ void tst_QBitArray::countBits()
}
QCOMPARE(bits.count(), numBits);
-#if QT_VERSION >= 0x040100
QCOMPARE(bits.count(true), onBits);
QCOMPARE(bits.count(false), numBits - onBits);
-#endif
}
void tst_QBitArray::countBits2()
@@ -314,7 +312,7 @@ void tst_QBitArray::toggleBit_data()
}
void tst_QBitArray::toggleBit()
-{
+{
QFETCH(int,index);
QFETCH(QBitArray, input);
QFETCH(QBitArray, res);
@@ -322,7 +320,6 @@ void tst_QBitArray::toggleBit()
input.toggleBit(index);
QCOMPARE(input, res);
-
}
void tst_QBitArray::operator_andeq_data()
@@ -331,33 +328,33 @@ void tst_QBitArray::operator_andeq_data()
QTest::addColumn<QBitArray>("input2");
QTest::addColumn<QBitArray>("res");
- QTest::newRow( "data0" ) << QStringToQBitArray(QString("11111111"))
- << QStringToQBitArray(QString("00101100"))
+ QTest::newRow( "data0" ) << QStringToQBitArray(QString("11111111"))
+ << QStringToQBitArray(QString("00101100"))
<< QStringToQBitArray(QString("00101100"));
- QTest::newRow( "data1" ) << QStringToQBitArray(QString("11011011"))
- << QStringToQBitArray(QString("00101100"))
+ QTest::newRow( "data1" ) << QStringToQBitArray(QString("11011011"))
+ << QStringToQBitArray(QString("00101100"))
<< QStringToQBitArray(QString("00001000"));
- QTest::newRow( "data2" ) << QStringToQBitArray(QString("11011011111"))
- << QStringToQBitArray(QString("00101100"))
+ QTest::newRow( "data2" ) << QStringToQBitArray(QString("11011011111"))
+ << QStringToQBitArray(QString("00101100"))
<< QStringToQBitArray(QString("00001000000"));
- QTest::newRow( "data3" ) << QStringToQBitArray(QString("11011011"))
- << QStringToQBitArray(QString("00101100111"))
+ QTest::newRow( "data3" ) << QStringToQBitArray(QString("11011011"))
+ << QStringToQBitArray(QString("00101100111"))
<< QStringToQBitArray(QString("00001000000"));
- QTest::newRow( "data4" ) << QStringToQBitArray(QString())
- << QStringToQBitArray(QString("00101100111"))
+ QTest::newRow( "data4" ) << QStringToQBitArray(QString())
+ << QStringToQBitArray(QString("00101100111"))
<< QStringToQBitArray(QString("00000000000"));
- QTest::newRow( "data5" ) << QStringToQBitArray(QString("00101100111"))
- << QStringToQBitArray(QString())
+ QTest::newRow( "data5" ) << QStringToQBitArray(QString("00101100111"))
+ << QStringToQBitArray(QString())
<< QStringToQBitArray(QString("00000000000"));
- QTest::newRow( "data6" ) << QStringToQBitArray(QString())
- << QStringToQBitArray(QString())
+ QTest::newRow( "data6" ) << QStringToQBitArray(QString())
+ << QStringToQBitArray(QString())
<< QStringToQBitArray(QString());
}
@@ -370,7 +367,6 @@ void tst_QBitArray::operator_andeq()
input1&=input2;
QCOMPARE(input1, res);
-
}
void tst_QBitArray::operator_oreq_data()
@@ -379,37 +375,37 @@ void tst_QBitArray::operator_oreq_data()
QTest::addColumn<QBitArray>("input2");
QTest::addColumn<QBitArray>("res");
- QTest::newRow( "data0" ) << QStringToQBitArray(QString("11111111"))
- << QStringToQBitArray(QString("00101100"))
+ QTest::newRow( "data0" ) << QStringToQBitArray(QString("11111111"))
+ << QStringToQBitArray(QString("00101100"))
<< QStringToQBitArray(QString("11111111"));
- QTest::newRow( "data1" ) << QStringToQBitArray(QString("11011011"))
- << QStringToQBitArray(QString("00101100"))
+ QTest::newRow( "data1" ) << QStringToQBitArray(QString("11011011"))
+ << QStringToQBitArray(QString("00101100"))
<< QStringToQBitArray(QString("11111111"));
- QTest::newRow( "data2" ) << QStringToQBitArray(QString("01000010"))
- << QStringToQBitArray(QString("10100001"))
+ QTest::newRow( "data2" ) << QStringToQBitArray(QString("01000010"))
+ << QStringToQBitArray(QString("10100001"))
<< QStringToQBitArray(QString("11100011"));
- QTest::newRow( "data3" ) << QStringToQBitArray(QString("11011011"))
- << QStringToQBitArray(QString("00101100000"))
+ QTest::newRow( "data3" ) << QStringToQBitArray(QString("11011011"))
+ << QStringToQBitArray(QString("00101100000"))
<< QStringToQBitArray(QString("11111111000"));
- QTest::newRow( "data4" ) << QStringToQBitArray(QString("11011011111"))
- << QStringToQBitArray(QString("00101100"))
+ QTest::newRow( "data4" ) << QStringToQBitArray(QString("11011011111"))
+ << QStringToQBitArray(QString("00101100"))
<< QStringToQBitArray(QString("11111111111"));
- QTest::newRow( "data5" ) << QStringToQBitArray(QString())
- << QStringToQBitArray(QString("00101100111"))
+ QTest::newRow( "data5" ) << QStringToQBitArray(QString())
+ << QStringToQBitArray(QString("00101100111"))
<< QStringToQBitArray(QString("00101100111"));
- QTest::newRow( "data6" ) << QStringToQBitArray(QString("00101100111"))
- << QStringToQBitArray(QString())
+ QTest::newRow( "data6" ) << QStringToQBitArray(QString("00101100111"))
+ << QStringToQBitArray(QString())
<< QStringToQBitArray(QString("00101100111"));
-
- QTest::newRow( "data7" ) << QStringToQBitArray(QString())
- << QStringToQBitArray(QString())
+
+ QTest::newRow( "data7" ) << QStringToQBitArray(QString())
+ << QStringToQBitArray(QString())
<< QStringToQBitArray(QString());
}
@@ -422,7 +418,6 @@ void tst_QBitArray::operator_oreq()
input1|=input2;
QCOMPARE(input1, res);
-
}
void tst_QBitArray::operator_xoreq_data()
@@ -430,36 +425,36 @@ void tst_QBitArray::operator_xoreq_data()
QTest::addColumn<QBitArray>("input1");
QTest::addColumn<QBitArray>("input2");
QTest::addColumn<QBitArray>("res");
- QTest::newRow( "data0" ) << QStringToQBitArray(QString("11111111"))
- << QStringToQBitArray(QString("00101100"))
+ QTest::newRow( "data0" ) << QStringToQBitArray(QString("11111111"))
+ << QStringToQBitArray(QString("00101100"))
<< QStringToQBitArray(QString("11010011"));
- QTest::newRow( "data1" ) << QStringToQBitArray(QString("11011011"))
- << QStringToQBitArray(QString("00101100"))
+ QTest::newRow( "data1" ) << QStringToQBitArray(QString("11011011"))
+ << QStringToQBitArray(QString("00101100"))
<< QStringToQBitArray(QString("11110111"));
- QTest::newRow( "data2" ) << QStringToQBitArray(QString("01000010"))
- << QStringToQBitArray(QString("10100001"))
+ QTest::newRow( "data2" ) << QStringToQBitArray(QString("01000010"))
+ << QStringToQBitArray(QString("10100001"))
<< QStringToQBitArray(QString("11100011"));
- QTest::newRow( "data3" ) << QStringToQBitArray(QString("01000010"))
- << QStringToQBitArray(QString("10100001101"))
+ QTest::newRow( "data3" ) << QStringToQBitArray(QString("01000010"))
+ << QStringToQBitArray(QString("10100001101"))
<< QStringToQBitArray(QString("11100011101"));
- QTest::newRow( "data4" ) << QStringToQBitArray(QString("01000010111"))
- << QStringToQBitArray(QString("101000011"))
+ QTest::newRow( "data4" ) << QStringToQBitArray(QString("01000010111"))
+ << QStringToQBitArray(QString("101000011"))
<< QStringToQBitArray(QString("11100011011"));
- QTest::newRow( "data5" ) << QStringToQBitArray(QString())
- << QStringToQBitArray(QString("00101100111"))
+ QTest::newRow( "data5" ) << QStringToQBitArray(QString())
+ << QStringToQBitArray(QString("00101100111"))
<< QStringToQBitArray(QString("00101100111"));
- QTest::newRow( "data6" ) << QStringToQBitArray(QString("00101100111"))
- << QStringToQBitArray(QString())
+ QTest::newRow( "data6" ) << QStringToQBitArray(QString("00101100111"))
+ << QStringToQBitArray(QString())
<< QStringToQBitArray(QString("00101100111"));
-
- QTest::newRow( "data7" ) << QStringToQBitArray(QString())
- << QStringToQBitArray(QString())
+
+ QTest::newRow( "data7" ) << QStringToQBitArray(QString())
+ << QStringToQBitArray(QString())
<< QStringToQBitArray(QString());
}
@@ -472,7 +467,6 @@ void tst_QBitArray::operator_xoreq()
input1^=input2;
QCOMPARE(input1, res);
-
}
@@ -481,37 +475,37 @@ void tst_QBitArray::operator_neg_data()
QTest::addColumn<QBitArray>("input");
QTest::addColumn<QBitArray>("res");
- QTest::newRow( "data0" ) << QStringToQBitArray(QString("11111111"))
+ QTest::newRow( "data0" ) << QStringToQBitArray(QString("11111111"))
<< QStringToQBitArray(QString("00000000"));
- QTest::newRow( "data1" ) << QStringToQBitArray(QString("11011011"))
+ QTest::newRow( "data1" ) << QStringToQBitArray(QString("11011011"))
<< QStringToQBitArray(QString("00100100"));
- QTest::newRow( "data2" ) << QStringToQBitArray(QString("00000000"))
+ QTest::newRow( "data2" ) << QStringToQBitArray(QString("00000000"))
<< QStringToQBitArray(QString("11111111"));
- QTest::newRow( "data3" ) << QStringToQBitArray(QString())
+ QTest::newRow( "data3" ) << QStringToQBitArray(QString())
<< QStringToQBitArray(QString());
- QTest::newRow( "data4" ) << QStringToQBitArray("1")
+ QTest::newRow( "data4" ) << QStringToQBitArray("1")
<< QStringToQBitArray("0");
- QTest::newRow( "data5" ) << QStringToQBitArray("0")
+ QTest::newRow( "data5" ) << QStringToQBitArray("0")
<< QStringToQBitArray("1");
- QTest::newRow( "data6" ) << QStringToQBitArray("01")
+ QTest::newRow( "data6" ) << QStringToQBitArray("01")
<< QStringToQBitArray("10");
- QTest::newRow( "data7" ) << QStringToQBitArray("1110101")
+ QTest::newRow( "data7" ) << QStringToQBitArray("1110101")
<< QStringToQBitArray("0001010");
- QTest::newRow( "data8" ) << QStringToQBitArray("01110101")
+ QTest::newRow( "data8" ) << QStringToQBitArray("01110101")
<< QStringToQBitArray("10001010");
- QTest::newRow( "data9" ) << QStringToQBitArray("011101010")
+ QTest::newRow( "data9" ) << QStringToQBitArray("011101010")
<< QStringToQBitArray("100010101");
- QTest::newRow( "data10" ) << QStringToQBitArray("0111010101111010")
+ QTest::newRow( "data10" ) << QStringToQBitArray("0111010101111010")
<< QStringToQBitArray("1000101010000101");
}
@@ -521,9 +515,8 @@ void tst_QBitArray::operator_neg()
QFETCH(QBitArray, res);
input = ~input;
-
- QCOMPARE(input, res);
+ QCOMPARE(input, res);
}
void tst_QBitArray::datastream_data()
@@ -554,7 +547,7 @@ void tst_QBitArray::datastream()
QFETCH(QString, bitField);
QFETCH(int, numBits);
QFETCH(int, onBits);
-
+
QBuffer buffer;
QVERIFY(buffer.open(QBuffer::ReadWrite));
QDataStream stream(&buffer);
@@ -566,11 +559,9 @@ void tst_QBitArray::datastream()
}
QCOMPARE(bits.count(), numBits);
-#if QT_VERSION >= 0x040100
QCOMPARE(bits.count(true), onBits);
QCOMPARE(bits.count(false), numBits - onBits);
-#endif
-
+
stream << bits << bits << bits;
buffer.close();
@@ -583,10 +574,8 @@ void tst_QBitArray::datastream()
stream2 >> array1 >> array2 >> array3;
QCOMPARE(array1.count(), numBits);
-#if QT_VERSION >= 0x040100
QCOMPARE(array1.count(true), onBits);
QCOMPARE(array1.count(false), numBits - onBits);
-#endif
QCOMPARE(array1, bits);
QCOMPARE(array2, bits);
@@ -595,7 +584,7 @@ void tst_QBitArray::datastream()
void tst_QBitArray::invertOnNull() const
{
- QBitArray a;
+ QBitArray a;
QCOMPARE(a = ~a, QBitArray());
}
@@ -605,28 +594,28 @@ void tst_QBitArray::operator_noteq_data()
QTest::addColumn<QBitArray>("input2");
QTest::addColumn<bool>("res");
- QTest::newRow("data0") << QStringToQBitArray(QString("11111111"))
- << QStringToQBitArray(QString("00101100"))
+ QTest::newRow("data0") << QStringToQBitArray(QString("11111111"))
+ << QStringToQBitArray(QString("00101100"))
<< true;
- QTest::newRow("data1") << QStringToQBitArray(QString("11011011"))
- << QStringToQBitArray(QString("11011011"))
+ QTest::newRow("data1") << QStringToQBitArray(QString("11011011"))
+ << QStringToQBitArray(QString("11011011"))
<< false;
- QTest::newRow("data2") << QStringToQBitArray(QString())
- << QStringToQBitArray(QString("00101100111"))
+ QTest::newRow("data2") << QStringToQBitArray(QString())
+ << QStringToQBitArray(QString("00101100111"))
<< true;
- QTest::newRow("data3") << QStringToQBitArray(QString())
- << QStringToQBitArray(QString())
+ QTest::newRow("data3") << QStringToQBitArray(QString())
+ << QStringToQBitArray(QString())
<< false;
- QTest::newRow("data4") << QStringToQBitArray(QString("00101100"))
- << QStringToQBitArray(QString("11111111"))
+ QTest::newRow("data4") << QStringToQBitArray(QString("00101100"))
+ << QStringToQBitArray(QString("11111111"))
<< true;
- QTest::newRow("data5") << QStringToQBitArray(QString("00101100111"))
- << QStringToQBitArray(QString())
+ QTest::newRow("data5") << QStringToQBitArray(QString("00101100111"))
+ << QStringToQBitArray(QString())
<< true;
}
diff --git a/tests/auto/qbuttongroup/tst_qbuttongroup.cpp b/tests/auto/qbuttongroup/tst_qbuttongroup.cpp
index c38fb66..15cca56 100644
--- a/tests/auto/qbuttongroup/tst_qbuttongroup.cpp
+++ b/tests/auto/qbuttongroup/tst_qbuttongroup.cpp
@@ -95,10 +95,7 @@ private slots:
void checkedButton();
- // fixed for Qt 4.2.0
-#if QT_VERSION >= 0x040200
void task106609();
-#endif
void task209485_removeFromGroupInEventHandler_data();
void task209485_removeFromGroupInEventHandler();
@@ -211,7 +208,6 @@ void tst_QButtonGroup::arrowKeyNavigation()
void tst_QButtonGroup::exclusiveWithActions()
{
-#if QT_VERSION > 0x040100
QDialog dlg(0);
QHBoxLayout layout(&dlg);
QAction *action1 = new QAction("Action 1", &dlg);
@@ -235,7 +231,7 @@ void tst_QButtonGroup::exclusiveWithActions()
buttonGroup->addButton(toolButton2, 2);
buttonGroup->addButton(toolButton3, 3);
dlg.show();
-
+
QTest::mouseClick(toolButton1, Qt::LeftButton);
QVERIFY(toolButton1->isChecked());
QVERIFY(action1->isChecked());
@@ -251,7 +247,7 @@ void tst_QButtonGroup::exclusiveWithActions()
QVERIFY(!toolButton3->isChecked());
QVERIFY(!action1->isChecked());
QVERIFY(!action3->isChecked());
-
+
QTest::mouseClick(toolButton3, Qt::LeftButton);
QVERIFY(toolButton3->isChecked());
QVERIFY(action3->isChecked());
@@ -259,7 +255,7 @@ void tst_QButtonGroup::exclusiveWithActions()
QVERIFY(!toolButton2->isChecked());
QVERIFY(!action1->isChecked());
QVERIFY(!action2->isChecked());
-
+
QTest::mouseClick(toolButton2, Qt::LeftButton);
QVERIFY(toolButton2->isChecked());
QVERIFY(action2->isChecked());
@@ -267,7 +263,6 @@ void tst_QButtonGroup::exclusiveWithActions()
QVERIFY(!toolButton3->isChecked());
QVERIFY(!action1->isChecked());
QVERIFY(!action3->isChecked());
-#endif
}
void tst_QButtonGroup::exclusive()
@@ -289,7 +284,7 @@ void tst_QButtonGroup::exclusive()
buttonGroup->addButton(pushButton2, 2);
buttonGroup->addButton(pushButton3, 3);
dlg.show();
-
+
QTest::mouseClick(pushButton1, Qt::LeftButton);
QVERIFY(pushButton1->isChecked());
QVERIFY(!pushButton2->isChecked());
@@ -299,12 +294,12 @@ void tst_QButtonGroup::exclusive()
QVERIFY(pushButton2->isChecked());
QVERIFY(!pushButton1->isChecked());
QVERIFY(!pushButton3->isChecked());
-
+
QTest::mouseClick(pushButton3, Qt::LeftButton);
QVERIFY(pushButton3->isChecked());
QVERIFY(!pushButton1->isChecked());
QVERIFY(!pushButton2->isChecked());
-
+
QTest::mouseClick(pushButton2, Qt::LeftButton);
QVERIFY(pushButton2->isChecked());
QVERIFY(!pushButton1->isChecked());
@@ -363,7 +358,6 @@ void tst_QButtonGroup::testSignals()
QVERIFY(releasedIdSpy.takeFirst().at(0).toInt() == 23);
}
-#if QT_VERSION >= 0x040200
void tst_QButtonGroup::task106609()
{
// task is:
@@ -403,7 +397,6 @@ void tst_QButtonGroup::task106609()
QCOMPARE(spy2.count(), 2);
QCOMPARE(spy1.count(), 2);
}
-#endif
void tst_QButtonGroup::checkedButton()
{
diff --git a/tests/auto/qbytearraymatcher/qbytearraymatcher.pro b/tests/auto/qbytearraymatcher/qbytearraymatcher.pro
new file mode 100644
index 0000000..1618c3e
--- /dev/null
+++ b/tests/auto/qbytearraymatcher/qbytearraymatcher.pro
@@ -0,0 +1,4 @@
+load(qttest_p4)
+SOURCES += tst_qbytearraymatcher.cpp
+
+QT = core
diff --git a/tests/auto/qbytearraymatcher/tst_qbytearraymatcher.cpp b/tests/auto/qbytearraymatcher/tst_qbytearraymatcher.cpp
new file mode 100644
index 0000000..c3f2fd9
--- /dev/null
+++ b/tests/auto/qbytearraymatcher/tst_qbytearraymatcher.cpp
@@ -0,0 +1,124 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QtTest>
+
+#include <qbytearraymatcher.h>
+
+class tst_QByteArrayMatcher : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void interface();
+ void task251958();
+};
+
+static QByteArrayMatcher matcher1;
+
+void tst_QByteArrayMatcher::interface()
+{
+ const char needle[] = "abc123";
+ QByteArray haystack(500, 'a');
+ haystack.insert(6, "123");
+ haystack.insert(31, "abc");
+ haystack.insert(42, "abc123");
+ haystack.insert(84, "abc123");
+
+ matcher1 = QByteArrayMatcher(QByteArray(needle));
+ QByteArrayMatcher matcher2;
+ matcher2.setPattern(QByteArray(needle));
+
+ QByteArrayMatcher matcher3 = QByteArrayMatcher(QByteArray(needle));
+ QByteArrayMatcher matcher4(needle, sizeof(needle - 1));
+ QByteArrayMatcher matcher5(matcher2);
+ QByteArrayMatcher matcher6;
+ matcher6 = matcher3;
+
+ QCOMPARE(matcher1.indexIn(haystack), 42);
+ QCOMPARE(matcher2.indexIn(haystack), 42);
+ QCOMPARE(matcher3.indexIn(haystack), 42);
+ QCOMPARE(matcher4.indexIn(haystack), 42);
+ QCOMPARE(matcher5.indexIn(haystack), 42);
+ QCOMPARE(matcher6.indexIn(haystack), 42);
+
+ QCOMPARE(matcher1.indexIn(haystack.constData(), haystack.length()), 42);
+
+ QCOMPARE(matcher1.indexIn(haystack, 43), 84);
+ QCOMPARE(matcher1.indexIn(haystack.constData(), haystack.length(), 43), 84);
+ QCOMPARE(matcher1.indexIn(haystack, 85), -1);
+ QCOMPARE(matcher1.indexIn(haystack.constData(), haystack.length(), 85), -1);
+
+ QByteArrayMatcher matcher7(QByteArray("123"));
+ QCOMPARE(matcher7.indexIn(haystack), 6);
+
+ matcher7 = QByteArrayMatcher(QByteArray("abc"));
+ QCOMPARE(matcher7.indexIn(haystack), 31);
+
+ matcher7.setPattern(matcher4.pattern());
+ QCOMPARE(matcher7.indexIn(haystack), 42);
+}
+
+
+static QByteArrayMatcher matcher;
+
+void tst_QByteArrayMatcher::task251958()
+{
+ const char p_data[] = { 0x0, 0x0, 0x1 };
+ QByteArray pattern(p_data, sizeof(p_data));
+
+ QByteArray haystack(8, '\0');
+ haystack[7] = 0x1;
+
+ matcher = QByteArrayMatcher(pattern);
+ QCOMPARE(matcher.indexIn(haystack, 0), 5);
+ QCOMPARE(matcher.indexIn(haystack, 1), 5);
+ QCOMPARE(matcher.indexIn(haystack, 2), 5);
+
+ matcher.setPattern(pattern);
+ QCOMPARE(matcher.indexIn(haystack, 0), 5);
+ QCOMPARE(matcher.indexIn(haystack, 1), 5);
+ QCOMPARE(matcher.indexIn(haystack, 2), 5);
+}
+
+QTEST_APPLESS_MAIN(tst_QByteArrayMatcher)
+#include "tst_qbytearraymatcher.moc"
diff --git a/tests/auto/qcache/tst_qcache.cpp b/tests/auto/qcache/tst_qcache.cpp
index f0d0454..2b61467 100644
--- a/tests/auto/qcache/tst_qcache.cpp
+++ b/tests/auto/qcache/tst_qcache.cpp
@@ -39,10 +39,8 @@
**
****************************************************************************/
-
#include <QtTest/QtTest>
-
#include <qcache.h>
//TESTED_CLASS=
@@ -56,7 +54,6 @@ public:
tst_QCache();
virtual ~tst_QCache();
-
public slots:
void initTestCase();
void cleanupTestCase();
@@ -344,7 +341,7 @@ void tst_QCache::remove()
QCOMPARE(cache.totalCost(), 20);
}
- cache.setMaxCost(1);
+ cache.setMaxCost(1);
QCOMPARE(cache.size(), 0);
cache.remove("beta");
QCOMPARE(cache.size(), 0);
@@ -377,7 +374,7 @@ void tst_QCache::take()
QCOMPARE(cache.size(), 1);
QCOMPARE(cache.totalCost(), 20);
- cache.setMaxCost(1);
+ cache.setMaxCost(1);
QCOMPARE(cache.size(), 0);
QCOMPARE(cache.take("beta"), (Foo*)0);
QCOMPARE(cache.size(), 0);
@@ -389,15 +386,8 @@ struct KeyType
KeyType(int x) : foo(x) {}
- /*
- Qt 4.0 and 4.1 require a default ctor and an operator=().
- */
-#if QT_VERSION < 0x040200
- KeyType() : foo(0) {}
-#else
private:
KeyType &operator=(const KeyType &);
-#endif
};
struct ValueType
diff --git a/tests/auto/qcheckbox/tst_qcheckbox.cpp b/tests/auto/qcheckbox/tst_qcheckbox.cpp
index be1095a..9ffeb07 100644
--- a/tests/auto/qcheckbox/tst_qcheckbox.cpp
+++ b/tests/auto/qcheckbox/tst_qcheckbox.cpp
@@ -377,10 +377,8 @@ void tst_QCheckBox::onStateChanged( int state )
void tst_QCheckBox::stateChanged()
{
-#if QT_VERSION > 0x040101
QSignalSpy stateChangedSpy(testWidget, SIGNAL(stateChanged(int)));
-#endif
- connect(testWidget, SIGNAL(stateChanged(int)), this, SLOT(onStateChanged(int)));
+ connect(testWidget, SIGNAL(stateChanged(int)), this, SLOT(onStateChanged(int)));
cur_state = -1;
testWidget->setChecked( TRUE );
qApp->processEvents();
@@ -396,12 +394,10 @@ void tst_QCheckBox::stateChanged()
qApp->processEvents();
QCOMPARE( cur_state, (int)1 );
-#if QT_VERSION > 0x040101
QCOMPARE(stateChangedSpy.count(), 3);
testWidget->setCheckState(Qt::PartiallyChecked);
qApp->processEvents();
QCOMPARE(stateChangedSpy.count(), 3);
-#endif
}
void tst_QCheckBox::isToggleButton()
diff --git a/tests/auto/qcolordialog/tst_qcolordialog.cpp b/tests/auto/qcolordialog/tst_qcolordialog.cpp
index e51dfcc..1b5babb 100644
--- a/tests/auto/qcolordialog/tst_qcolordialog.cpp
+++ b/tests/auto/qcolordialog/tst_qcolordialog.cpp
@@ -108,7 +108,7 @@ void tst_QColorDialog::native_activeModalWidget()
// color dialog when it is executing, even when using a native
// dialog:
TestNativeDialog d;
- QTimer::singleShot(100, &d, SLOT(hide()));
+ QTimer::singleShot(1000, &d, SLOT(hide()));
d.exec();
QVERIFY(&d == d.m_activeModalWidget);
}
diff --git a/tests/auto/qcombobox/tst_qcombobox.cpp b/tests/auto/qcombobox/tst_qcombobox.cpp
index 70059f2..6a87e3c 100644
--- a/tests/auto/qcombobox/tst_qcombobox.cpp
+++ b/tests/auto/qcombobox/tst_qcombobox.cpp
@@ -283,13 +283,9 @@ void tst_QComboBox::getSetCheck()
QLineEdit *var8 = new QLineEdit(0);
obj1.setLineEdit(var8);
QCOMPARE(var8, obj1.lineEdit());
-#if QT_VERSION >= 0x040200
- // QComboBox in Qt < 4.2 have asserts for this, but handles the situation by ignoring it.
- // Qt >= 4.2 should handle this gracefully (no asserts, but define behavior as keeping current)
QTest::ignoreMessage(QtWarningMsg, "QComboBox::setLineEdit: cannot set a 0 line edit");
obj1.setLineEdit((QLineEdit *)0);
QCOMPARE(var8, obj1.lineEdit());
-#endif
// delete var8; // No delete, since QComboBox takes ownership
// const QValidator * QComboBox::validator()
@@ -306,13 +302,9 @@ void tst_QComboBox::getSetCheck()
MyAbstractItemDelegate *var10 = new MyAbstractItemDelegate;
obj1.setItemDelegate(var10);
QCOMPARE(obj1.itemDelegate(), (QAbstractItemDelegate *)var10);
-#if QT_VERSION >= 0x040200
- // QComboBox in Qt < 4.2 have asserts for this, but handles the situation by ignoring it.
- // Qt >= 4.2 should handle this gracefully (no asserts, but define behavior as keeping current)
QTest::ignoreMessage(QtWarningMsg, "QComboBox::setItemDelegate: cannot set a 0 delegate");
obj1.setItemDelegate((QAbstractItemDelegate *)0);
QCOMPARE(obj1.itemDelegate(), (QAbstractItemDelegate *)var10);
-#endif
// delete var10; // No delete, since QComboBox takes ownership
// QAbstractItemModel * QComboBox::model()
@@ -320,13 +312,9 @@ void tst_QComboBox::getSetCheck()
MyAbstractItemModel *var11 = new MyAbstractItemModel;
obj1.setModel(var11);
QCOMPARE(obj1.model(), (QAbstractItemModel *)var11);
-#if QT_VERSION >= 0x040200
- // QComboBox in Qt < 4.2 have asserts for this, but handles the situation by ignoring it.
- // Qt >= 4.2 should handle this gracefully (no asserts, but define behavior as keeping current)
QTest::ignoreMessage(QtWarningMsg, "QComboBox::setModel: cannot set a 0 model");
obj1.setModel((QAbstractItemModel *)0);
QCOMPARE(obj1.model(), (QAbstractItemModel *)var11);
-#endif
delete var11;
obj1.model();
@@ -345,13 +333,9 @@ void tst_QComboBox::getSetCheck()
MyAbstractItemView *var13 = new MyAbstractItemView;
obj1.setView(var13);
QCOMPARE(obj1.view(), (QAbstractItemView *)var13);
-#if QT_VERSION >= 0x040200
- // QComboBox in Qt < 4.2 have asserts for this
- // Qt >= 4.2 should handle this gracefully (no asserts, but define behavior as keeping current view)
QTest::ignoreMessage(QtWarningMsg, "QComboBox::setView: cannot set a 0 view");
obj1.setView((QAbstractItemView *)0);
QCOMPARE(obj1.view(), (QAbstractItemView *)var13);
-#endif
delete var13;
// int QComboBox::currentIndex()
@@ -512,13 +496,9 @@ void tst_QComboBox::sizeAdjustPolicy()
testWidget->addItem("small");
QCOMPARE(testWidget->sizeHint(), content);
testWidget->addItem("looooooooooooooooooooooong item");
-#if QT_VERSION >= 0x040200
// minimumContentsLength() > sizeof("looooooooooooooooooooooong item"), so the sizeHint()
// stays the same
QCOMPARE(testWidget->sizeHint(), content);
-#else
- QVERIFY(testWidget->sizeHint().width() > content.width());
-#endif
// over 60 characters (cf. setMinimumContentsLength() call above)
testWidget->addItem("loooooooooooooooooooooooooooooooooooooooooooooo"
"ooooooooooooooooooooooooooooooooooooooooooooooo"
@@ -535,10 +515,8 @@ void tst_QComboBox::sizeAdjustPolicy()
content = testWidget->sizeHint();
while (testWidget->count())
testWidget->removeItem(0);
-#if QT_VERSION >= 0x040200
QCOMPARE(testWidget->sizeHint(), content);
testWidget->setMinimumContentsLength(0);
-#endif
QVERIFY(testWidget->sizeHint().width() < content.width());
}
@@ -831,13 +809,9 @@ void tst_QComboBox::autoCompletionCaseSensitivity()
QTest::keyClick(testWidget->lineEdit(), Qt::Key_B);
qApp->processEvents();
-#if QT_VERSION < 0x040200
- // autocompletions are case-preserving in < 4.2
- QCOMPARE(testWidget->currentText(), QString("aBCDEF"));
-#else
// autocompletions preserve userkey-case from 4.2
QCOMPARE(testWidget->currentText(), QString("abCDEF"));
-#endif
+
QTest::keyClick(testWidget->lineEdit(), Qt::Key_Enter);
qApp->processEvents();
QCOMPARE(testWidget->currentText(), QString("aBCDEF")); // case restored to item's case
diff --git a/tests/auto/qcommandlinkbutton/tst_qcommandlinkbutton.cpp b/tests/auto/qcommandlinkbutton/tst_qcommandlinkbutton.cpp
index 5665e6e..45a4301 100644
--- a/tests/auto/qcommandlinkbutton/tst_qcommandlinkbutton.cpp
+++ b/tests/auto/qcommandlinkbutton/tst_qcommandlinkbutton.cpp
@@ -211,11 +211,7 @@ void tst_QCommandLinkButton::setAutoRepeat()
QVERIFY( !testWidget->isCheckable() );
// verify autorepeat is off by default.
-#if QT_VERSION < 0x040000
- QButton tmp( 0 );
-#else
QCommandLinkButton tmp( 0 );
-#endif
tmp.setObjectName("tmp");
QVERIFY( !tmp.autoRepeat() );
diff --git a/tests/auto/qcssparser/tst_cssparser.cpp b/tests/auto/qcssparser/tst_cssparser.cpp
index 6e277d3..ab6bad6 100644
--- a/tests/auto/qcssparser/tst_cssparser.cpp
+++ b/tests/auto/qcssparser/tst_cssparser.cpp
@@ -44,7 +44,6 @@
//TESTED_CLASS=QCss
//TESTED_FILES=gui/text/qcssparser.cpp gui/text/qcssparser_p.h
-#if QT_VERSION >= 0x040200
#include "private/qcssparser_p.h"
class tst_CssParser : public QObject
@@ -272,7 +271,7 @@ void tst_CssParser::term_data()
val.variant = QVariant(QColor("#ffbb00"));
QTest::newRow("hexcolor2") << true << "#fb0" << val;
- QTest::ignoreMessage(QtWarningMsg, "QColor::setNamedColor: Could not parse color '#cafebabe'");
+ QTest::ignoreMessage(QtWarningMsg, "QCssParser::parseHexColor: Unknown color name '#cafebabe'");
QTest::newRow("hexcolor_failure") << false << "#cafebabe" << val;
val.type = QCss::Value::Uri;
@@ -1592,13 +1591,13 @@ void tst_CssParser::quotedAndUnquotedIdentifiers()
QCss::Parser parser("foo { font-style: \"italic\"; font-weight: bold }");
QCss::StyleSheet sheet;
QVERIFY(parser.parse(&sheet));
-
+
QCOMPARE(sheet.styleRules.count() + sheet.nameIndex.count(), 1);
QCss::StyleRule rule = (!sheet.styleRules.isEmpty()) ?
sheet.styleRules.at(0) : *sheet.nameIndex.begin();
const QVector<QCss::Declaration> decls = rule.declarations;
QCOMPARE(decls.size(), 2);
-
+
QCOMPARE(decls.at(0).d->values.first().type, QCss::Value::String);
QCOMPARE(decls.at(0).d->property, QLatin1String("font-style"));
QCOMPARE(decls.at(0).d->values.first().toString(), QLatin1String("italic"));
@@ -1610,6 +1609,3 @@ void tst_CssParser::quotedAndUnquotedIdentifiers()
QTEST_MAIN(tst_CssParser)
#include "tst_cssparser.moc"
-#else
-QTEST_NOOP_MAIN
-#endif
diff --git a/tests/auto/qdatastream/tst_qdatastream.cpp b/tests/auto/qdatastream/tst_qdatastream.cpp
index a112c10..d7ca7bc 100644
--- a/tests/auto/qdatastream/tst_qdatastream.cpp
+++ b/tests/auto/qdatastream/tst_qdatastream.cpp
@@ -163,10 +163,8 @@ private slots:
void setVersion_data();
void setVersion();
-#if QT_VERSION >= 0x040100
void skipRawData_data();
void skipRawData();
-#endif
void status_qint8_data();
void status_qint8();
@@ -2435,7 +2433,6 @@ private:
int offset;
};
-#if QT_VERSION >= 0x040100
void tst_QDataStream::skipRawData_data()
{
QTest::addColumn<QString>("deviceType");
@@ -2486,7 +2483,6 @@ void tst_QDataStream::skipRawData()
delete dev;
}
-#endif
#define TEST_qint(T, UT) \
void tst_QDataStream::status_##T() \
diff --git a/tests/auto/qdate/tst_qdate.cpp b/tests/auto/qdate/tst_qdate.cpp
index 121167a..d4273d0 100644
--- a/tests/auto/qdate/tst_qdate.cpp
+++ b/tests/auto/qdate/tst_qdate.cpp
@@ -143,10 +143,8 @@ void tst_QDate::isValid_data()
QTest::newRow("century leap") << 2100 << 2 << 29 << 0U << false;
QTest::newRow("400-years leap") << 2000 << 2 << 29 << 2451604U << true;
QTest::newRow("400-years leap 2") << 2400 << 2 << 29 << 2597701U << true;
-#if QT_VERSION >= 0x040200
QTest::newRow("400-years leap 3") << 1600 << 2 << 29 << 2305507U << true;
QTest::newRow("year 0") << 0 << 2 << 27 << 0U << false;
-#endif
// test the number of days in months:
QTest::newRow("jan") << 2000 << 1 << 31 << 2451575U << true;
@@ -177,7 +175,6 @@ void tst_QDate::isValid_data()
QTest::newRow("idec") << 2000 << 12 << 32 << 0U << false;
// the beginning of the Julian Day calendar:
-#if QT_VERSION >= 0x040200
QTest::newRow("jd negative1") << -4714 << 1 << 1 << 0U << false;
QTest::newRow("jd negative2") << -4713 << 1 << 1 << 0U << false;
QTest::newRow("jd negative3") << -4713 << 1 << 2 << 1U << true;
@@ -185,7 +182,6 @@ void tst_QDate::isValid_data()
QTest::newRow("jd 0") << -4713 << 1 << 1 << 0U << false;
QTest::newRow("jd 1") << -4713 << 1 << 2 << 1U << true;
QTest::newRow("imminent overflow") << 11754508 << 12 << 13 << 4294967295U << true;
-#endif
}
void tst_QDate::isValid()
@@ -243,17 +239,12 @@ void tst_QDate::weekNumber_data()
QTest::newRow( "data4" ) << 1 << 2001 << 2001 << 1 << 1;
QTest::newRow( "data5" ) << 53 << 1998 << 1998 << 12 << 31;
QTest::newRow( "data6" ) << 1 << 1985 << 1984 << 12 << 31;
-#if QT_VERSION >= 0x030300
- // This is a bug that was fixed for 3.3
QTest::newRow( "data7" ) << 52 << 2006 << 2006 << 12 << 31;
-#endif
}
void tst_QDate::weekNumber()
{
-#if QT_VERSION >= 0x030100
int yearNumber;
-// int weekNumber;
QFETCH( int, year );
QFETCH( int, month );
QFETCH( int, day );
@@ -262,9 +253,6 @@ void tst_QDate::weekNumber()
QDate dt1( year, month, day );
QCOMPARE( dt1.weekNumber( &yearNumber ), expectedWeekNum );
QCOMPARE( yearNumber, expectedYearNum );
-#else
- QSKIP( "Not tested with Qt versions < 3.1", SkipAll);
-#endif
}
void tst_QDate::weekNumber_invalid_data()
@@ -281,14 +269,9 @@ void tst_QDate::weekNumber_invalid_data()
void tst_QDate::weekNumber_invalid()
{
-#if QT_VERSION >= 0x030100
QDate dt;
int yearNumber;
-// int weekNumber;
QCOMPARE( dt.weekNumber( &yearNumber ), 0 );
-#else
- QSKIP( "Not tested with Qt versions < 3.1", SkipAll);
-#endif
}
void tst_QDate::addDays()
@@ -616,14 +599,12 @@ void tst_QDate::fromString_data()
QDate d( 1999, 11, 14 );
QTest::newRow( "data2" ) << d.toString( Qt::TextDate ) << d.toString( Qt::ISODate ) << d;
-#if QT_VERSION >= 0x040200
QTest::newRow( "data3" ) << QString("xxx Jan 1 0999") << QString("0999-01-01") << QDate(999, 1, 1);
QTest::newRow( "data3b" ) << QString("xxx Jan 1 999") << QString("0999-01-01") << QDate(999, 1, 1);
QTest::newRow( "data4" ) << QString("xxx Jan 1 12345") << QString() << QDate(12345, 1, 1);
QTest::newRow( "data5" ) << QString("xxx Jan 1 -0001") << QString() << QDate(-1, 1, 1);
QTest::newRow( "data6" ) << QString("xxx Jan 1 -4712") << QString() << QDate(-4712, 1, 1);
QTest::newRow( "data7" ) << QString("xxx Nov 25 -4713") << QString() << QDate(-4713, 11, 25);
-#endif
}
void tst_QDate::fromString()
@@ -647,9 +628,7 @@ void tst_QDate::toString_format_data()
QTest::newRow( "data1" ) << QDate(2002,12,17) << QString("dd-MM-yyyy") << QString("17-12-2002");
QTest::newRow( "data2" ) << QDate(1995,5,20) << QString("M-yy") << QString("5-95");
QTest::newRow( "data3" ) << QDate(2002,12,17) << QString("dd") << QString("17");
-#if (QT_VERSION-0 >= 0x030200)
QTest::newRow( "data4" ) << QDate() << QString("dd-mm-yyyy") << QString();
-#endif
}
void tst_QDate::toString_format()
diff --git a/tests/auto/qdatetime/tst_qdatetime.cpp b/tests/auto/qdatetime/tst_qdatetime.cpp
index 9e73d6d..69d8a62 100644
--- a/tests/auto/qdatetime/tst_qdatetime.cpp
+++ b/tests/auto/qdatetime/tst_qdatetime.cpp
@@ -220,18 +220,10 @@ void tst_QDateTime::isNull()
dt1.setDate(QDate(2004, 1, 2));
QVERIFY(!dt1.isNull());
-#if QT_VERSION < 0x040100
- dt1.setDate(QDate());
- QVERIFY(dt1.isNull());
-#endif
dt1.setTime(QTime(12, 34, 56));
QVERIFY(!dt1.isNull());
dt1.setTime(QTime());
-#if QT_VERSION >= 0x040100
QVERIFY(!dt1.isNull());
-#else
- QVERIFY(dt1.isNull());
-#endif
}
void tst_QDateTime::isValid()
@@ -1010,15 +1002,10 @@ void tst_QDateTime::toString_strformat_data()
void tst_QDateTime::toString_strformat()
{
-#if (QT_VERSION-0 >= 0x030200)
QFETCH( QDateTime, dt );
QFETCH( QString, format );
QFETCH( QString, str );
QCOMPARE( dt.toString( format ), str );
-#else
- QSKIP( "No test implemented for < 3.2 yet", SkipAll);
-#endif
-
}
void tst_QDateTime::fromStringTextDate_data()
@@ -1068,7 +1055,6 @@ void tst_QDateTime::fromStringTextDate_data()
<< 28 << 6 << 2005 << 7 << 57 << 30 << 110
<< int(Qt::LocalTime);
-#if QT_VERSION >= 0x040200
QTest::newRow("Year 0999") << QString("Tue Jun 17 08:00:10 0999")
<< int(Qt::TextDate)
<< 17 << 6 << 999 << 8 << 0 << 10 << 0
@@ -1088,7 +1074,6 @@ void tst_QDateTime::fromStringTextDate_data()
<< int(Qt::TextDate)
<< 1 << 1 << -4712 << 0 << 01 << 02 << 0
<< int(Qt::LocalTime);
-#endif
}
void tst_QDateTime::fromStringTextDate()
diff --git a/tests/auto/qdesktopservices/tst_qdesktopservices.cpp b/tests/auto/qdesktopservices/tst_qdesktopservices.cpp
index 49f8922..81b35ac 100644
--- a/tests/auto/qdesktopservices/tst_qdesktopservices.cpp
+++ b/tests/auto/qdesktopservices/tst_qdesktopservices.cpp
@@ -41,9 +41,6 @@
#include <QtTest/QtTest>
-#if QT_VERSION < 0x040200
-QTEST_NOOP_MAIN
-#else
#include <QStandardItemModel>
#include <qdebug.h>
#include <qdesktopservices.h>
@@ -172,5 +169,3 @@ void tst_qdesktopservices::storageLocationDoesNotEndWithSlash()
QTEST_MAIN(tst_qdesktopservices)
#include "tst_qdesktopservices.moc"
-#endif
-
diff --git a/tests/auto/qdialog/tst_qdialog.cpp b/tests/auto/qdialog/tst_qdialog.cpp
index e77167e..a1cf1c1 100644
--- a/tests/auto/qdialog/tst_qdialog.cpp
+++ b/tests/auto/qdialog/tst_qdialog.cpp
@@ -375,14 +375,11 @@ void tst_QDialog::showAsTool()
testWidget->activateWindow();
dialog.exec();
QTest::qWait(100);
- if (testWidget->style()->styleHint(QStyle::SH_Widget_ShareActivation, 0, testWidget)) {
-#if defined(Q_WS_QWS) && QT_VERSION < 0x040400
- QEXPECT_FAIL(0, "Qtopia Core has messed up WStyle_Tool (task 126435)", Continue);
-#endif
- QCOMPARE(dialog.wasActive(), true);
- } else {
- QCOMPARE(dialog.wasActive(), false);
- }
+ if (testWidget->style()->styleHint(QStyle::SH_Widget_ShareActivation, 0, testWidget)) {
+ QCOMPARE(dialog.wasActive(), true);
+ } else {
+ QCOMPARE(dialog.wasActive(), false);
+ }
}
// Verify that pos() returns the same before and after show()
@@ -392,10 +389,10 @@ void tst_QDialog::toolDialogPosition()
#if defined(Q_OS_WINCE)
QSKIP("No real support for Qt::Tool on WinCE", SkipAll);
#endif
- QDialog dialog(0, Qt::Tool);
- dialog.move(QPoint(100,100));
+ QDialog dialog(0, Qt::Tool);
+ dialog.move(QPoint(100,100));
const QPoint beforeShowPosition = dialog.pos();
- dialog.show();
+ dialog.show();
const QPoint afterShowPosition = dialog.pos();
QCOMPARE(afterShowPosition, beforeShowPosition);
}
@@ -445,7 +442,7 @@ public slots:
void tst_QDialog::throwInExec()
{
#ifdef Q_WS_MAC
- QSKIP("Qt/Mac: Throwing exceptions in excec() is not supported.", SkipAll);
+ QSKIP("Qt/Mac: Throwing exceptions in exec() is not supported.", SkipAll);
#endif
int caughtExceptions = 0;
try {
diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp
index f680f46..91ce5b3 100644
--- a/tests/auto/qdir/tst_qdir.cpp
+++ b/tests/auto/qdir/tst_qdir.cpp
@@ -787,9 +787,7 @@ void tst_QDir::cd_data()
#endif
QTest::newRow("non existant") << "." << "../anonexistingdir" << false << QDir::currentPath();
QTest::newRow("self") << "." << (QString("../") + QFileInfo(QDir::currentPath()).fileName()) << true << QDir::currentPath();
-#if QT_VERSION > 0x040100
QTest::newRow("file") << "." << "qdir.pro" << false << "";
-#endif
}
void tst_QDir::cd()
@@ -827,10 +825,8 @@ void tst_QDir::setNameFilters_data()
<< QString("foo. bar,foo.bar").split(",");
QTest::newRow("files1") << appPath + "testdir/dir" << QString("*r.cpp *.pro").split(" ")
<< QString("qdir.pro,qrc_qdir.cpp,tst_qdir.cpp").split(",");
-#if QT_VERSION >= 0x040000
QTest::newRow("resources1") << QString(":/tst_qdir/resources/entryList") << QStringList("*.data")
<< QString("file1.data,file2.data,file3.data").split(',');
-#endif
}
void tst_QDir::setNameFilters()
diff --git a/tests/auto/qdirmodel/tst_qdirmodel.cpp b/tests/auto/qdirmodel/tst_qdirmodel.cpp
index f6887da..2084535 100644
--- a/tests/auto/qdirmodel/tst_qdirmodel.cpp
+++ b/tests/auto/qdirmodel/tst_qdirmodel.cpp
@@ -614,7 +614,6 @@ void tst_QDirModel::task196768_sorting()
QCOMPARE(index.data(), index2.data());
}
-#if QT_VERSION >= 0x040102
void tst_QDirModel::filter()
{
QDirModel model;
@@ -625,7 +624,6 @@ void tst_QDirModel::filter()
Q_ASSERT(!index2.isValid());
Q_ASSERT(model.rowCount(index) == 0);
}
-#endif
void tst_QDirModel::task244669_remove()
{
diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp
index 829e0b3..cb8091b 100644
--- a/tests/auto/qfile/tst_qfile.cpp
+++ b/tests/auto/qfile/tst_qfile.cpp
@@ -76,10 +76,6 @@
#include "../network-settings.h"
-#if QT_VERSION < 0x040200
-#define symLinkTarget readLink
-#endif
-
Q_DECLARE_METATYPE(QFile::FileError)
//TESTED_CLASS=
@@ -127,6 +123,7 @@ private slots:
void permissions();
void setPermissions();
void copy();
+ void copyAfterFail();
void copyRemovesTemporaryFile() const;
void copyShouldntOverwrite();
void link();
@@ -220,8 +217,15 @@ void tst_QFile::cleanup()
// for renameFallback()
QFile::remove("file-rename-destination.txt");
+ // for copyAfterFail()
+ QFile::remove("file-to-be-copied.txt");
+ QFile::remove("existing-file.txt");
+ QFile::remove("copied-file-1.txt");
+ QFile::remove("copied-file-2.txt");
+
// for renameMultiple()
QFile::remove("file-to-be-renamed.txt");
+ QFile::remove("existing-file.txt");
QFile::remove("file-renamed-once.txt");
QFile::remove("file-renamed-twice.txt");
}
@@ -890,6 +894,39 @@ void tst_QFile::copy()
QFile::copy(QDir::currentPath(), QDir::currentPath() + QLatin1String("/test2"));
}
+void tst_QFile::copyAfterFail()
+{
+ QFile file1("file-to-be-copied.txt");
+ QFile file2("existing-file.txt");
+
+ QVERIFY(file1.open(QIODevice::ReadWrite) && "(test-precondition)");
+ QVERIFY(file2.open(QIODevice::ReadWrite) && "(test-precondition)");
+ QVERIFY(!QFile::exists("copied-file-1.txt") && "(test-precondition)");
+ QVERIFY(!QFile::exists("copied-file-2.txt") && "(test-precondition)");
+
+ QVERIFY(!file1.copy("existing-file.txt"));
+ QCOMPARE(file1.error(), QFile::CopyError);
+
+ QVERIFY(file1.copy("copied-file-1.txt"));
+ QVERIFY(!file1.isOpen());
+ QCOMPARE(file1.error(), QFile::NoError);
+
+ QVERIFY(!file1.copy("existing-file.txt"));
+ QCOMPARE(file1.error(), QFile::CopyError);
+
+ QVERIFY(file1.copy("copied-file-2.txt"));
+ QVERIFY(!file1.isOpen());
+ QCOMPARE(file1.error(), QFile::NoError);
+
+ QVERIFY(QFile::exists("copied-file-1.txt"));
+ QVERIFY(QFile::exists("copied-file-2.txt"));
+
+ QVERIFY(QFile::remove("file-to-be-copied.txt") && "(test-cleanup)");
+ QVERIFY(QFile::remove("existing-file.txt") && "(test-cleanup)");
+ QVERIFY(QFile::remove("copied-file-1.txt") && "(test-cleanup)");
+ QVERIFY(QFile::remove("copied-file-2.txt") && "(test-cleanup)");
+}
+
void tst_QFile::copyRemovesTemporaryFile() const
{
const QString newName(QLatin1String("copyRemovesTemporaryFile"));
@@ -990,12 +1027,8 @@ void tst_QFile::link()
#ifdef Q_OS_WIN // on windows links are always absolute
QCOMPARE(info2.symLinkTarget(), info1.absoluteFilePath());
#else
-#if QT_VERSION < 0x040101
- QCOMPARE(info2.symLinkTarget(), info1.filePath());
-#else
QCOMPARE(info2.symLinkTarget(), info1.absoluteFilePath());
#endif
-#endif
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
QString wd = getWorkingDirectoryForLink(info2.absoluteFilePath());
@@ -1061,19 +1094,12 @@ void tst_QFile::readBrokenLink()
#ifdef Q_OS_WIN // on windows links are alway absolute
QCOMPARE(info2.symLinkTarget(), info1.absoluteFilePath());
#else
-#if QT_VERSION < 0x040101
- QCOMPARE(info2.symLinkTarget(), info1.filePath());
-#else
QCOMPARE(info2.symLinkTarget(), info1.absoluteFilePath());
#endif
-#endif
QVERIFY(QFile::remove(info2.absoluteFilePath()));
-
-#if QT_VERSION >= 0x040101
QVERIFY(QFile::link("ole/..", "myLink2.lnk"));
QCOMPARE(QFileInfo("myLink2.lnk").symLinkTarget(), QDir::currentPath());
-#endif
}
void tst_QFile::readTextFile_data()
@@ -1281,10 +1307,6 @@ void tst_QFile::bufferedRead()
QCOMPARE(file.pos(), qlonglong(2));
}
-#if QT_VERSION <= 0x040100
- QCOMPARE(int(ftell(stdFile)), 2);
-#endif
-
fclose(stdFile);
}
@@ -1604,12 +1626,7 @@ void tst_QFile::longFileName()
}
{
QFile file(fileName);
-#if QT_VERSION < 0x040100
-# ifdef Q_OS_WIN
- QEXPECT_FAIL("244 chars", "Fixed in 4.1", Continue);
- QEXPECT_FAIL("244 chars to absolutepath", "Fixed in 4.1", Continue);
-# endif
-#elif defined(Q_WS_WIN)
+#if defined(Q_WS_WIN)
#if !defined(Q_OS_WINCE)
QT_WA({ if (false) ; }, {
QEXPECT_FAIL("244 chars", "Full pathname must be less than 260 chars", Abort);
@@ -1834,10 +1851,6 @@ void tst_QFile::removeOpenFile()
void tst_QFile::fullDisk()
{
-#if QT_VERSION < 0x040102
- QSKIP("Fixed for 4.1.2", SkipAll);
-#endif
-
QFile file("/dev/full");
if (!file.exists())
QSKIP("/dev/full doesn't exist on this system", SkipAll);
@@ -1981,9 +1994,7 @@ void tst_QFile::virtualFile()
// read all:
data = f.readAll();
QVERIFY(f.pos() != 0);
-#if QT_VERSION >= 0x040200
QVERIFY(!data.isEmpty());
-#endif
// seeking
QVERIFY(f.seek(1));
@@ -2117,24 +2128,42 @@ void tst_QFile::renameMultiple()
{
// create the file if it doesn't exist
QFile file("file-to-be-renamed.txt");
+ QFile file2("existing-file.txt");
QVERIFY(file.open(QIODevice::ReadWrite) && "(test-precondition)");
+ QVERIFY(file2.open(QIODevice::ReadWrite) && "(test-precondition)");
// any stale files from previous test failures?
QFile::remove("file-renamed-once.txt");
QFile::remove("file-renamed-twice.txt");
// begin testing
+ QVERIFY(QFile::exists("existing-file.txt"));
+ QVERIFY(!file.rename("existing-file.txt"));
+ QCOMPARE(file.error(), QFile::RenameError);
+ QCOMPARE(file.fileName(), QString("file-to-be-renamed.txt"));
+
QVERIFY(file.rename("file-renamed-once.txt"));
+ QVERIFY(!file.isOpen());
QCOMPARE(file.fileName(), QString("file-renamed-once.txt"));
+
+ QVERIFY(QFile::exists("existing-file.txt"));
+ QVERIFY(!file.rename("existing-file.txt"));
+ QCOMPARE(file.error(), QFile::RenameError);
+ QCOMPARE(file.fileName(), QString("file-renamed-once.txt"));
+
QVERIFY(file.rename("file-renamed-twice.txt"));
+ QVERIFY(!file.isOpen());
QCOMPARE(file.fileName(), QString("file-renamed-twice.txt"));
+ QVERIFY(QFile::exists("existing-file.txt"));
QVERIFY(!QFile::exists("file-to-be-renamed.txt"));
QVERIFY(!QFile::exists("file-renamed-once.txt"));
QVERIFY(QFile::exists("file-renamed-twice.txt"));
file.remove();
+ file2.remove();
QVERIFY(!QFile::exists("file-renamed-twice.txt"));
+ QVERIFY(!QFile::exists("existing-file.txt"));
}
void tst_QFile::appendAndRead()
diff --git a/tests/auto/qfiledialog/tst_qfiledialog.cpp b/tests/auto/qfiledialog/tst_qfiledialog.cpp
index bade586..689f73d 100644
--- a/tests/auto/qfiledialog/tst_qfiledialog.cpp
+++ b/tests/auto/qfiledialog/tst_qfiledialog.cpp
@@ -157,6 +157,8 @@ private slots:
void task228844_ensurePreviousSorting();
void task239706_editableFilterCombo();
void task218353_relativePaths();
+ void task251321_sideBarHiddenEntries();
+ void task251341_sideBarRemoveEntries();
private:
QByteArray userSettings;
@@ -681,6 +683,22 @@ void tst_QFiledialog::filters()
for (int i = views.at(0)->currentIndex(); i < views.at(0)->count(); ++i)
views.at(0)->setCurrentIndex(i);
QCOMPARE(spyFilterSelected.count(), 0);
+
+ //Let check if filters with whitespaces
+ QNonNativeFileDialog fd2;
+ QStringList expected;
+ expected << "C++ Source Files(*.cpp)";
+ expected << "Any(*.*)";
+ fd2.setFilter("C++ Source Files(*.cpp);;Any(*.*)");
+ QCOMPARE(expected, fd2.filters());
+ fd2.setFilter("C++ Source Files(*.cpp) ;;Any(*.*)");
+ QCOMPARE(expected, fd2.filters());
+ fd2.setFilter("C++ Source Files(*.cpp);; Any(*.*)");
+ QCOMPARE(expected, fd2.filters());
+ fd2.setFilter(" C++ Source Files(*.cpp);; Any(*.*)");
+ QCOMPARE(expected, fd2.filters());
+ fd2.setFilter("C++ Source Files(*.cpp) ;; Any(*.*)");
+ QCOMPARE(expected, fd2.filters());
}
void tst_QFiledialog::selectFilter()
@@ -1584,6 +1602,19 @@ void tst_QFiledialog::task227304_proxyOnFileDialog()
QTest::keyClick(list, Qt::Key_Return);
QTest::qWait(200);
+ dialog->close();
+ fd.close();
+
+ QNonNativeFileDialog fd2(0, "I should not crash with a proxy", QDir::tempPath(), 0);
+ QSortFilterProxyModel *pm = new QSortFilterProxyModel;
+ fd2.setProxyModel(pm);
+ fd2.show();
+ QSidebar *sidebar = qFindChild<QSidebar*>(&fd2, "sidebar");
+ sidebar->setFocus();
+ sidebar->selectUrl(QUrl::fromLocalFile(QDir::homePath()));
+ QTest::mouseClick(sidebar->viewport(), Qt::LeftButton, 0, sidebar->visualRect(sidebar->model()->index(1, 0)).center());
+ QTest::qWait(250);
+ //We shouldn't crash
}
void tst_QFiledialog::task227930_correctNavigationKeyboardBehavior()
@@ -1836,5 +1867,119 @@ void tst_QFiledialog::task218353_relativePaths()
appDir.rmdir("test");
}
+void tst_QFiledialog::task251321_sideBarHiddenEntries()
+{
+ QNonNativeFileDialog fd;
+
+ QDir current = QDir::currentPath();
+ current.mkdir(".hidden");
+ QDir hiddenDir = QDir(".hidden");
+ hiddenDir.mkdir("subdir");
+ QDir hiddenSubDir = QDir(".hidden/subdir");
+ hiddenSubDir.mkdir("happy");
+ hiddenSubDir.mkdir("happy2");
+
+ QList<QUrl> urls;
+ urls << QUrl::fromLocalFile(hiddenSubDir.absolutePath());
+ fd.setSidebarUrls(urls);
+ fd.show();
+ QTest::qWait(250);
+
+ QSidebar *sidebar = qFindChild<QSidebar*>(&fd, "sidebar");
+ sidebar->setFocus();
+ sidebar->selectUrl(QUrl::fromLocalFile(hiddenSubDir.absolutePath()));
+ QTest::mouseClick(sidebar->viewport(), Qt::LeftButton, 0, sidebar->visualRect(sidebar->model()->index(0, 0)).center());
+ QTest::qWait(250);
+
+ QFileSystemModel *model = qFindChild<QFileSystemModel*>(&fd, "qt_filesystem_model");
+ QCOMPARE(model->rowCount(model->index(hiddenSubDir.absolutePath())), 2);
+
+ hiddenSubDir.rmdir("happy2");
+ hiddenSubDir.rmdir("happy");
+ hiddenDir.rmdir("subdir");
+ current.rmdir(".hidden");
+}
+
+class MyQSideBar : public QSidebar
+{
+public :
+ MyQSideBar(QWidget *parent = 0) : QSidebar(parent)
+ {}
+
+ void removeSelection() {
+ QList<QModelIndex> idxs = selectionModel()->selectedIndexes();
+ QList<QPersistentModelIndex> indexes;
+ for (int i = 0; i < idxs.count(); i++)
+ indexes.append(idxs.at(i));
+
+ for (int i = 0; i < indexes.count(); ++i)
+ if (!indexes.at(i).data(Qt::UserRole + 1).toUrl().path().isEmpty())
+ model()->removeRow(indexes.at(i).row());
+ }
+};
+
+void tst_QFiledialog::task251341_sideBarRemoveEntries()
+{
+ QNonNativeFileDialog fd;
+
+ QDir current = QDir::currentPath();
+ current.mkdir("testDir");
+ QDir testSubDir = QDir("testDir");
+
+ QList<QUrl> urls;
+ urls << QUrl::fromLocalFile(testSubDir.absolutePath());
+ urls << QUrl::fromLocalFile("NotFound");
+ fd.setSidebarUrls(urls);
+ fd.show();
+ QTest::qWait(250);
+
+ QSidebar *sidebar = qFindChild<QSidebar*>(&fd, "sidebar");
+ sidebar->setFocus();
+ //We enter in the first bookmark
+ sidebar->selectUrl(QUrl::fromLocalFile(testSubDir.absolutePath()));
+ QTest::mouseClick(sidebar->viewport(), Qt::LeftButton, 0, sidebar->visualRect(sidebar->model()->index(0, 0)).center());
+ QTest::qWait(250);
+
+ QFileSystemModel *model = qFindChild<QFileSystemModel*>(&fd, "qt_filesystem_model");
+ //There is no file
+ QCOMPARE(model->rowCount(model->index(testSubDir.absolutePath())), 0);
+ //Icon is not enabled QUrlModel::EnabledRole
+ QVariant value = sidebar->model()->index(0, 0).data(Qt::UserRole + 2);
+ QCOMPARE(qvariant_cast<bool>(value), true);
+
+ sidebar->setFocus();
+ //We enter in the second bookmark which is invalid
+ sidebar->selectUrl(QUrl::fromLocalFile("NotFound"));
+ QTest::mouseClick(sidebar->viewport(), Qt::LeftButton, 0, sidebar->visualRect(sidebar->model()->index(1, 0)).center());
+ QTest::qWait(250);
+
+ //We fallback to root because the entry in the bookmark is invalid
+ QCOMPARE(model->rowCount(model->index("NotFound")), model->rowCount(model->index(model->rootPath())));
+ //Icon is not enabled QUrlModel::EnabledRole
+ value = sidebar->model()->index(1, 0).data(Qt::UserRole + 2);
+ QCOMPARE(qvariant_cast<bool>(value), false);
+
+ MyQSideBar mySideBar;
+ mySideBar.init(model, urls);
+ mySideBar.show();
+ mySideBar.selectUrl(QUrl::fromLocalFile(testSubDir.absolutePath()));
+ QTest::qWait(1000);
+ mySideBar.removeSelection();
+
+ //We remove the first entry
+ QList<QUrl> expected;
+ expected << QUrl::fromLocalFile("NotFound");
+ QCOMPARE(mySideBar.urls(), expected);
+
+ mySideBar.selectUrl(QUrl::fromLocalFile("NotFound"));
+ mySideBar.removeSelection();
+
+ //We remove the second entry
+ expected.clear();
+ QCOMPARE(mySideBar.urls(), expected);
+
+ current.rmdir("testDir");
+}
+
QTEST_MAIN(tst_QFiledialog)
#include "tst_qfiledialog.moc"
diff --git a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp
index 826d278..59d57ce 100644
--- a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp
+++ b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp
@@ -45,6 +45,7 @@
#include <QFileIconProvider>
#include "../../shared/util.h"
#include <QTime>
+#include <QStyle>
#include <QtGlobal>
//TESTED_CLASS=
@@ -284,6 +285,33 @@ void tst_QFileSystemModel::readOnly()
QVERIFY(model->flags(model->index(file.fileName())) & Qt::ItemIsEditable);
}
+class CustomFileIconProvider : public QFileIconProvider
+{
+public:
+ CustomFileIconProvider() : QFileIconProvider() {
+ mb = qApp->style()->standardIcon(QStyle::SP_MessageBoxCritical);
+ dvd = qApp->style()->standardIcon(QStyle::SP_DriveDVDIcon);
+ }
+
+ virtual QIcon icon(const QFileInfo &info) const
+ {
+ if (info.isDir())
+ return mb;
+
+ return QFileIconProvider::icon(info);
+ }
+ virtual QIcon icon(IconType type) const
+ {
+ if (type == QFileIconProvider::Folder)
+ return dvd;
+
+ return QFileIconProvider::icon(type);
+ }
+private:
+ QIcon mb;
+ QIcon dvd;
+};
+
void tst_QFileSystemModel::iconProvider()
{
QVERIFY(model->iconProvider());
@@ -292,6 +320,19 @@ void tst_QFileSystemModel::iconProvider()
QCOMPARE(model->iconProvider(), p);
model->setIconProvider(0);
delete p;
+
+ QFileSystemModel *myModel = new QFileSystemModel();
+ myModel->setRootPath(QDir::homePath());
+ //Let's wait to populate the model
+ QTest::qWait(250);
+ //We change the provider, icons must me updated
+ CustomFileIconProvider *custom = new CustomFileIconProvider();
+ myModel->setIconProvider(custom);
+
+ QPixmap mb = qApp->style()->standardIcon(QStyle::SP_MessageBoxCritical).pixmap(50, 50);
+ QCOMPARE(myModel->fileIcon(myModel->index(QDir::homePath())).pixmap(50, 50), mb);
+ delete myModel;
+ delete custom;
}
bool tst_QFileSystemModel::createFiles(const QString &test_path, const QStringList &initial_files, int existingFileCount, const QStringList &initial_dirs, const QString &dir)
diff --git a/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp b/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp
index 87f9ba3..334acce 100644
--- a/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp
+++ b/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp
@@ -42,10 +42,6 @@
#include <QCoreApplication>
-#if QT_VERSION < 0x040200
-QTEST_NOOP_MAIN
-#else
-
#include <QFileSystemWatcher>
#ifdef Q_OS_LINUX
@@ -403,5 +399,3 @@ void tst_QFileSystemWatcher::removePaths()
QTEST_MAIN(tst_QFileSystemWatcher)
#include "tst_qfilesystemwatcher.moc"
-
-#endif
diff --git a/tests/auto/qfont/tst_qfont.cpp b/tests/auto/qfont/tst_qfont.cpp
index 58e837e..e3a5ffc 100644
--- a/tests/auto/qfont/tst_qfont.cpp
+++ b/tests/auto/qfont/tst_qfont.cpp
@@ -537,9 +537,6 @@ void tst_QFont::insertAndRemoveSubstitutions()
QStringList moreFonts;
moreFonts << "Bar" << "Baz";
QFont::insertSubstitutions("BogusFontFamily", moreFonts);
-#if (QT_VERSION <= 0x040102)
- QEXPECT_FAIL("", "Uppercase/Lowercase issues fixed in 4.1.3 and beyond", Abort);
-#endif
QCOMPARE(QFont::substitutes("BogusFontFamily").count(), 3);
QCOMPARE(QFont::substitutes("bogusfontfamily").count(), 3);
diff --git a/tests/auto/qfontdatabase/tst_qfontdatabase.cpp b/tests/auto/qfontdatabase/tst_qfontdatabase.cpp
index 28f490a..9c42b49 100644
--- a/tests/auto/qfontdatabase/tst_qfontdatabase.cpp
+++ b/tests/auto/qfontdatabase/tst_qfontdatabase.cpp
@@ -149,9 +149,7 @@ void tst_QFontDatabase::fixedPitch()
if (!fdb.families().contains(font))
QSKIP( "Font not installed", SkipSingle);
-#if QT_VERSION >= 0x030200
QCOMPARE(fdb.isFixedPitch(font), fixedPitch);
-#endif
QFont qfont(font);
QFontInfo fi(qfont);
diff --git a/tests/auto/qgl/tst_qgl.cpp b/tests/auto/qgl/tst_qgl.cpp
index a64dfc4..69141f3 100644
--- a/tests/auto/qgl/tst_qgl.cpp
+++ b/tests/auto/qgl/tst_qgl.cpp
@@ -66,6 +66,8 @@ private slots:
void getSetCheck();
void openGLVersionCheck();
void graphicsViewClipping();
+ void partialGLWidgetUpdates_data();
+ void partialGLWidgetUpdates();
};
tst_QGL::tst_QGL()
@@ -404,5 +406,68 @@ void tst_QGL::graphicsViewClipping()
#endif
}
+void tst_QGL::partialGLWidgetUpdates_data()
+{
+ QTest::addColumn<bool>("doubleBufferedContext");
+ QTest::addColumn<bool>("autoFillBackground");
+ QTest::addColumn<bool>("supportsPartialUpdates");
+
+ QTest::newRow("Double buffered context") << true << true << false;
+ QTest::newRow("Double buffered context without auto-fill background") << true << false << false;
+ QTest::newRow("Single buffered context") << false << true << false;
+ QTest::newRow("Single buffered context without auto-fill background") << false << false << true;
+}
+
+void tst_QGL::partialGLWidgetUpdates()
+{
+#ifdef QT_NO_OPENGL
+ QSKIP("QGL not yet supported", SkipAll);
+#else
+ if (!QGLFormat::hasOpenGL())
+ QSKIP("QGL not supported on this platform", SkipAll);
+
+ QFETCH(bool, doubleBufferedContext);
+ QFETCH(bool, autoFillBackground);
+ QFETCH(bool, supportsPartialUpdates);
+
+ class MyGLWidget : public QGLWidget
+ {
+ public:
+ QRegion paintEventRegion;
+ void paintEvent(QPaintEvent *e)
+ {
+ paintEventRegion = e->region();
+ }
+ };
+
+ QGLFormat format = QGLFormat::defaultFormat();
+ format.setDoubleBuffer(doubleBufferedContext);
+ QGLFormat::setDefaultFormat(format);
+
+ MyGLWidget widget;
+ widget.setFixedSize(150, 150);
+ widget.setAutoFillBackground(autoFillBackground);
+ widget.show();
+#ifdef Q_WS_X11
+ qt_x11_wait_for_window_manager(&widget);
+#endif
+ QTest::qWait(200);
+
+ if (widget.format().doubleBuffer() != doubleBufferedContext)
+ QSKIP("Platform does not support requested format", SkipAll);
+
+ widget.paintEventRegion = QRegion();
+ widget.repaint(50, 50, 50, 50);
+#ifdef Q_WS_MAC
+ // repaint() is not immediate on the Mac; it has to go through the event loop.
+ QTest::qWait(200);
+#endif
+ if (supportsPartialUpdates)
+ QCOMPARE(widget.paintEventRegion, QRegion(50, 50, 50, 50));
+ else
+ QCOMPARE(widget.paintEventRegion, QRegion(widget.rect()));
+#endif
+}
+
QTEST_MAIN(tst_QGL)
#include "tst_qgl.moc"
diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
index 8ca8fbe..88c64d3 100644
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -42,10 +42,6 @@
#include <QtTest/QtTest>
-#if QT_VERSION < 0x040200
-QTEST_NOOP_MAIN
-#else
-
#include <private/qtextcontrol_p.h>
#include <private/qgraphicsitem_p.h>
#include <QAbstractTextDocumentLayout>
@@ -163,6 +159,8 @@ private slots:
void mapFromToParent();
void mapFromToScene();
void mapFromToItem();
+ void mapRectFromToParent_data();
+ void mapRectFromToParent();
void isAncestorOf();
void commonAncestorItem();
void data();
@@ -174,6 +172,7 @@ private slots:
void boundingRects2();
void sceneBoundingRect();
void childrenBoundingRect();
+ void childrenBoundingRectTransformed();
void group();
void setGroup();
void nestedGroups();
@@ -217,10 +216,12 @@ private slots:
void tabChangesFocus();
void tabChangesFocus_data();
void cacheMode();
+ void updateCachedItemAfterMove();
// task specific tests below me
void task141694_textItemEnsureVisible();
void task128696_textItemEnsureMovable();
+ void ensureUpdateOnTextItem();
void task177918_lineItemUndetected();
void task240400_clickOnTextItem_data();
void task240400_clickOnTextItem();
@@ -2539,6 +2540,87 @@ void tst_QGraphicsItem::mapFromToItem()
delete item4;
}
+void tst_QGraphicsItem::mapRectFromToParent_data()
+{
+ QTest::addColumn<bool>("parent");
+ QTest::addColumn<QPointF>("parentPos");
+ QTest::addColumn<QTransform>("parentTransform");
+ QTest::addColumn<QPointF>("pos");
+ QTest::addColumn<QTransform>("transform");
+ QTest::addColumn<QRectF>("inputRect");
+ QTest::addColumn<QRectF>("outputRect");
+
+ QTest::newRow("nil") << false << QPointF() << QTransform() << QPointF() << QTransform() << QRectF() << QRectF();
+ QTest::newRow("simple") << false << QPointF() << QTransform() << QPointF() << QTransform()
+ << QRectF(0, 0, 10, 10) << QRectF(0, 0, 10, 10);
+ QTest::newRow("simple w/parent") << true
+ << QPointF() << QTransform()
+ << QPointF() << QTransform()
+ << QRectF(0, 0, 10, 10) << QRectF(0, 0, 10, 10);
+ QTest::newRow("simple w/parent parentPos") << true
+ << QPointF(50, 50) << QTransform()
+ << QPointF() << QTransform()
+ << QRectF(0, 0, 10, 10) << QRectF(0, 0, 10, 10);
+ QTest::newRow("simple w/parent parentPos parentRotation") << true
+ << QPointF(50, 50) << QTransform().rotate(45)
+ << QPointF() << QTransform()
+ << QRectF(0, 0, 10, 10) << QRectF(0, 0, 10, 10);
+ QTest::newRow("pos w/parent") << true
+ << QPointF() << QTransform()
+ << QPointF(50, 50) << QTransform()
+ << QRectF(0, 0, 10, 10) << QRectF(50, 50, 10, 10);
+ QTest::newRow("rotation w/parent") << true
+ << QPointF() << QTransform()
+ << QPointF() << QTransform().rotate(90)
+ << QRectF(0, 0, 10, 10) << QRectF(-10, 0, 10, 10);
+ QTest::newRow("pos rotation w/parent") << true
+ << QPointF() << QTransform()
+ << QPointF(50, 50) << QTransform().rotate(90)
+ << QRectF(0, 0, 10, 10) << QRectF(40, 50, 10, 10);
+ QTest::newRow("pos rotation w/parent parentPos parentRotation") << true
+ << QPointF(-170, -190) << QTransform().rotate(90)
+ << QPointF(50, 50) << QTransform().rotate(90)
+ << QRectF(0, 0, 10, 10) << QRectF(40, 50, 10, 10);
+}
+
+void tst_QGraphicsItem::mapRectFromToParent()
+{
+ QFETCH(bool, parent);
+ QFETCH(QPointF, parentPos);
+ QFETCH(QTransform, parentTransform);
+ QFETCH(QPointF, pos);
+ QFETCH(QTransform, transform);
+ QFETCH(QRectF, inputRect);
+ QFETCH(QRectF, outputRect);
+
+ QGraphicsRectItem *rect = new QGraphicsRectItem;
+ rect->setPos(pos);
+ rect->setTransform(transform);
+
+ if (parent) {
+ QGraphicsRectItem *rectParent = new QGraphicsRectItem;
+ rect->setParentItem(rectParent);
+ rectParent->setPos(parentPos);
+ rectParent->setTransform(parentTransform);
+ }
+
+ // Make sure we use non-destructive transform operations (e.g., 90 degree
+ // rotations).
+ QCOMPARE(rect->mapRectToParent(inputRect), outputRect);
+ QCOMPARE(rect->mapRectFromParent(outputRect), inputRect);
+ QCOMPARE(rect->itemTransform(rect->parentItem()).mapRect(inputRect), outputRect);
+ QCOMPARE(rect->mapToParent(inputRect).boundingRect(), outputRect);
+ QCOMPARE(rect->mapToParent(QPolygonF(inputRect)).boundingRect(), outputRect);
+ QCOMPARE(rect->mapFromParent(outputRect).boundingRect(), inputRect);
+ QCOMPARE(rect->mapFromParent(QPolygonF(outputRect)).boundingRect(), inputRect);
+ QPainterPath inputPath;
+ inputPath.addRect(inputRect);
+ QPainterPath outputPath;
+ outputPath.addRect(outputRect);
+ QCOMPARE(rect->mapToParent(inputPath).boundingRect(), outputPath.boundingRect());
+ QCOMPARE(rect->mapFromParent(outputPath).boundingRect(), inputPath.boundingRect());
+}
+
void tst_QGraphicsItem::isAncestorOf()
{
QGraphicsItem *grandPa = new QGraphicsRectItem;
@@ -2836,9 +2918,57 @@ void tst_QGraphicsItem::childrenBoundingRect()
childChild->setParentItem(child);
childChild->setPos(500, 500);
child->rotate(90);
+
+
+ scene.addPolygon(parent->mapToScene(parent->boundingRect() | parent->childrenBoundingRect()))->setPen(QPen(Qt::red));;
+
+ QGraphicsView view(&scene);
+ view.show();
+
+ QTest::qWait(5000);
+
QCOMPARE(parent->childrenBoundingRect(), QRectF(-500, -100, 600, 800));
}
+void tst_QGraphicsItem::childrenBoundingRectTransformed()
+{
+ QGraphicsScene scene;
+
+ QGraphicsRectItem *rect = scene.addRect(QRectF(0, 0, 100, 100));
+ QGraphicsRectItem *rect2 = scene.addRect(QRectF(0, 0, 100, 100));
+ QGraphicsRectItem *rect3 = scene.addRect(QRectF(0, 0, 100, 100));
+ QGraphicsRectItem *rect4 = scene.addRect(QRectF(0, 0, 100, 100));
+ QGraphicsRectItem *rect5 = scene.addRect(QRectF(0, 0, 100, 100));
+ rect2->setParentItem(rect);
+ rect3->setParentItem(rect2);
+ rect4->setParentItem(rect3);
+ rect5->setParentItem(rect4);
+
+ rect2->setTransform(QTransform().translate(50, 50).rotate(45));
+ rect2->setPos(25, 25);
+ rect3->setTransform(QTransform().translate(50, 50).rotate(45));
+ rect3->setPos(25, 25);
+ rect4->setTransform(QTransform().translate(50, 50).rotate(45));
+ rect4->setPos(25, 25);
+ rect5->setTransform(QTransform().translate(50, 50).rotate(45));
+ rect5->setPos(25, 25);
+
+ QRectF subTreeRect = rect->childrenBoundingRect();
+ QCOMPARE(subTreeRect.left(), qreal(-206.0660171779821));
+ QCOMPARE(subTreeRect.top(), qreal(75.0));
+ QCOMPARE(subTreeRect.width(), qreal(351.7766952966369));
+ QCOMPARE(subTreeRect.height(), qreal(251.7766952966369));
+
+ rect->rotate(45);
+ rect2->rotate(-45);
+ rect3->rotate(45);
+ rect4->rotate(-45);
+ rect5->rotate(45);
+
+ subTreeRect = rect->childrenBoundingRect();
+ QCOMPARE(rect->childrenBoundingRect(), QRectF(-100, 75, 275, 250));
+}
+
void tst_QGraphicsItem::group()
{
QGraphicsScene scene;
@@ -3582,6 +3712,8 @@ void tst_QGraphicsItem::defaultItemTest_QGraphicsEllipseItem()
class ItemChangeTester : public QGraphicsRectItem
{
public:
+ ItemChangeTester(){}
+ ItemChangeTester(QGraphicsItem *parent) : QGraphicsRectItem(parent) {}
QVariant itemChangeReturnValue;
QGraphicsScene *itemSceneChangeTargetScene;
@@ -3870,6 +4002,39 @@ void tst_QGraphicsItem::itemChange()
QCOMPARE(tester.changes.size(), ++changeCount);
QCOMPARE(tester.changes.last(), QGraphicsItem::ItemChildRemovedChange);
QCOMPARE(qVariantValue<QGraphicsItem *>(tester.values.last()), (QGraphicsItem *)&testerHelper);
+
+ // ItemChildRemovedChange 1
+ ItemChangeTester *test = new ItemChangeTester;
+ test->itemSceneChangeTargetScene = 0;
+ int count = 0;
+ QGraphicsScene *scene = new QGraphicsScene;
+ scene->addItem(test);
+ count = test->changes.size();
+ //We test here the fact that when a child is deleted the parent receive only one ItemChildRemovedChange
+ QGraphicsRectItem *child = new QGraphicsRectItem(test);
+ //We received ItemChildAddedChange
+ QCOMPARE(test->changes.size(), ++count);
+ QCOMPARE(test->changes.last(), QGraphicsItem::ItemChildAddedChange);
+ delete child;
+ child = 0;
+ QCOMPARE(test->changes.size(), ++count);
+ QCOMPARE(test->changes.last(), QGraphicsItem::ItemChildRemovedChange);
+
+ ItemChangeTester *childTester = new ItemChangeTester(test);
+ //Changes contains all sceneHasChanged and so on, we don't want to test that
+ int childCount = childTester->changes.size();
+ //We received ItemChildAddedChange
+ QCOMPARE(test->changes.size(), ++count);
+ child = new QGraphicsRectItem(childTester);
+ //We received ItemChildAddedChange
+ QCOMPARE(childTester->changes.size(), ++childCount);
+ QCOMPARE(childTester->changes.last(), QGraphicsItem::ItemChildAddedChange);
+ //Delete the child of the top level with all its children
+ delete childTester;
+ //Only one removal
+ QCOMPARE(test->changes.size(), ++count);
+ QCOMPARE(test->changes.last(), QGraphicsItem::ItemChildRemovedChange);
+ delete scene;
}
{
// ItemChildRemovedChange 2
@@ -4059,6 +4224,25 @@ void tst_QGraphicsItem::sceneEventFilter()
QCOMPARE(tester->filteredEventReceivers.at(6), static_cast<QGraphicsItem *>(text2));
QVERIFY(text2->hasFocus());
+
+ //Let check if the items are correctly removed from the sceneEventFilters array
+ //to avoid stale pointers.
+ QGraphicsView gv;
+ QGraphicsScene *anotherScene = new QGraphicsScene;
+ QGraphicsTextItem *ti = anotherScene->addText("This is a test #1");
+ ti->moveBy(50, 50);
+ QGraphicsTextItem *ti2 = anotherScene->addText("This is a test #2");
+ QGraphicsTextItem *ti3 = anotherScene->addText("This is a test #3");
+ gv.setScene(anotherScene);
+ gv.show();
+ QTest::qWait(250);
+ ti->installSceneEventFilter(ti2);
+ ti3->installSceneEventFilter(ti);
+ delete ti2;
+ //we souldn't crash
+ QTest::mouseMove(gv.viewport(), gv.mapFromScene(ti->scenePos()));
+ QTest::qWait(250);
+ delete ti;
}
class GeometryChanger : public QGraphicsItem
@@ -5192,6 +5376,39 @@ void tst_QGraphicsItem::task240400_clickOnTextItem()
QCOMPARE(item->textCursor().columnNumber(), 0);
}
+class TextItem : public QGraphicsSimpleTextItem
+{
+public:
+ TextItem(const QString& text) : QGraphicsSimpleTextItem(text)
+ {
+ updates = 0;
+ }
+
+ void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget)
+ {
+ updates++;
+ QGraphicsSimpleTextItem::paint(painter, option, widget);
+ }
+
+ int updates;
+};
+
+void tst_QGraphicsItem::ensureUpdateOnTextItem()
+{
+ QGraphicsScene scene;
+ TextItem *text1 = new TextItem(QLatin1String("123"));
+ scene.addItem(text1);
+ QGraphicsView view(&scene);
+ view.show();
+ QTest::qWait(250);
+ QCOMPARE(text1->updates,1);
+
+ //same bouding rect but we have to update
+ text1->setText(QLatin1String("321"));
+ QTest::qWait(250);
+ QCOMPARE(text1->updates,2);
+}
+
void tst_QGraphicsItem::task243707_addChildBeforeParent()
{
// Task reports that adding the child before the parent leads to an
@@ -5928,6 +6145,46 @@ void tst_QGraphicsItem::cacheMode()
QCOMPARE(testerChild2->repaints, 6);
}
+void tst_QGraphicsItem::updateCachedItemAfterMove()
+{
+ // A simple item that uses ItemCoordinateCache
+ EventTester *tester = new EventTester;
+ tester->setCacheMode(QGraphicsItem::ItemCoordinateCache);
+
+ // Add to a scene, show in a view, ensure it's painted and reset its
+ // repaint counter.
+ QGraphicsScene scene;
+ scene.addItem(tester);
+ QGraphicsView view(&scene);
+ view.show();
+#ifdef Q_WS_X11
+ qt_x11_wait_for_window_manager(&view);
+#endif
+ QTest::qWait(125);
+ tester->repaints = 0;
+
+ // Move the item, should not cause repaints
+ tester->setPos(10, 0);
+ QTest::qWait(125);
+ QCOMPARE(tester->repaints, 0);
+
+ // Move then update, should cause one repaint
+ tester->setPos(20, 0);
+ tester->update();
+ QTest::qWait(125);
+ QCOMPARE(tester->repaints, 1);
+
+ // Hiding the item doesn't cause a repaint
+ tester->hide();
+ QTest::qWait(125);
+ QCOMPARE(tester->repaints, 1);
+
+ // Moving a hidden item doesn't cause a repaint
+ tester->setPos(30, 0);
+ tester->update();
+ QTest::qWait(125);
+ QCOMPARE(tester->repaints, 1);
+}
+
QTEST_MAIN(tst_QGraphicsItem)
#include "tst_qgraphicsitem.moc"
-#endif
diff --git a/tests/auto/qgraphicsitemanimation/tst_qgraphicsitemanimation.cpp b/tests/auto/qgraphicsitemanimation/tst_qgraphicsitemanimation.cpp
index d43d0ae..6d20716 100644
--- a/tests/auto/qgraphicsitemanimation/tst_qgraphicsitemanimation.cpp
+++ b/tests/auto/qgraphicsitemanimation/tst_qgraphicsitemanimation.cpp
@@ -42,12 +42,7 @@
#include <QtTest/QtTest>
-#if QT_VERSION < 0x040200
-QTEST_NOOP_MAIN
-#else
-
#include <qgraphicsitemanimation.h>
-
#include <QtCore/qtimeline.h>
#include <QtGui/qmatrix.h>
@@ -195,4 +190,3 @@ void tst_QGraphicsItemAnimation::setTimeLine()
QTEST_MAIN(tst_QGraphicsItemAnimation)
#include "tst_qgraphicsitemanimation.moc"
-#endif
diff --git a/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp b/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
index b99f111..d856024 100644
--- a/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
+++ b/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
@@ -175,6 +175,9 @@ private slots:
void bypassGraphicsProxyWidget_data();
void bypassGraphicsProxyWidget();
void dragDrop();
+ void windowFlags_data();
+ void windowFlags();
+ void comboboxWindowFlags();
};
// Subclass that exposes the protected functions.
@@ -3153,6 +3156,67 @@ void tst_QGraphicsProxyWidget::dragDrop()
QCOMPARE(edit->text(), QString("hei"));
}
+void tst_QGraphicsProxyWidget::windowFlags_data()
+{
+ QTest::addColumn<int>("proxyFlags");
+ QTest::addColumn<int>("widgetFlags");
+ QTest::addColumn<int>("resultingProxyFlags");
+ QTest::addColumn<int>("resultingWidgetFlags");
+
+ QTest::newRow("proxy(0) widget(0)") << 0 << 0 << 0 << int(Qt::Window);
+ QTest::newRow("proxy(window)") << int(Qt::Window) << 0 << int(Qt::Window) << int(Qt::Window);
+ QTest::newRow("proxy(window) widget(window)") << int(Qt::Window) << int(Qt::Window) << int(Qt::Window) << int(Qt::Window);
+ QTest::newRow("proxy(0) widget(window)") << int(0) << int(Qt::Window) << int(0) << int(Qt::Window);
+}
+
+void tst_QGraphicsProxyWidget::windowFlags()
+{
+ QFETCH(int, proxyFlags);
+ QFETCH(int, widgetFlags);
+ QFETCH(int, resultingProxyFlags);
+ QFETCH(int, resultingWidgetFlags);
+ Qt::WindowFlags proxyWFlags = Qt::WindowFlags(proxyFlags);
+ Qt::WindowFlags widgetWFlags = Qt::WindowFlags(widgetFlags);
+ Qt::WindowFlags resultingProxyWFlags = Qt::WindowFlags(resultingProxyFlags);
+ Qt::WindowFlags resultingWidgetWFlags = Qt::WindowFlags(resultingWidgetFlags);
+
+ QGraphicsProxyWidget proxy(0, proxyWFlags);
+ QVERIFY((proxy.windowFlags() & proxyWFlags) == proxyWFlags);
+
+ QWidget *widget = new QWidget(0, widgetWFlags);
+ QVERIFY((widget->windowFlags() & widgetWFlags) == widgetWFlags);
+
+ proxy.setWidget(widget);
+
+ if (resultingProxyFlags == 0)
+ QVERIFY(!proxy.windowFlags());
+ else
+ QVERIFY((proxy.windowFlags() & resultingProxyWFlags) == resultingProxyWFlags);
+ QVERIFY((widget->windowFlags() & resultingWidgetWFlags) == resultingWidgetWFlags);
+}
+
+void tst_QGraphicsProxyWidget::comboboxWindowFlags()
+{
+ QComboBox *comboBox = new QComboBox;
+ comboBox->addItem("Item 1");
+ comboBox->addItem("Item 2");
+ comboBox->addItem("Item 3");
+ QWidget *embedWidget = comboBox;
+
+ QGraphicsScene scene;
+ QGraphicsProxyWidget *proxy = scene.addWidget(embedWidget);
+ proxy->setWindowFlags(Qt::Window);
+ QVERIFY(embedWidget->isWindow());
+ QVERIFY(proxy->isWindow());
+
+ comboBox->showPopup();
+
+ QCOMPARE(proxy->childItems().size(), 1);
+ QGraphicsItem *popupProxy = proxy->childItems().first();
+ QVERIFY(popupProxy->isWindow());
+ QVERIFY((static_cast<QGraphicsWidget *>(popupProxy)->windowFlags() & Qt::Popup) == Qt::Popup);
+}
+
QTEST_MAIN(tst_QGraphicsProxyWidget)
#include "tst_qgraphicsproxywidget.moc"
diff --git a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
index 91ed851..da99c30 100644
--- a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
+++ b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
@@ -45,10 +45,6 @@
#include <ceconfig.h>
#endif
-#if QT_VERSION < 0x040200
-QTEST_NOOP_MAIN
-#else
-
#include <QtGui>
#include <math.h>
@@ -245,6 +241,7 @@ private slots:
void task139782_containsItemBoundingRect();
void task176178_itemIndexMethodBreaksSceneRect();
void task160653_selectionChanged();
+ void task250680_childClip();
};
void tst_QGraphicsScene::initTestCase()
@@ -3384,6 +3381,31 @@ void tst_QGraphicsScene::task160653_selectionChanged()
QCOMPARE(spy.count(), 1);
}
+void tst_QGraphicsScene::task250680_childClip()
+{
+ QGraphicsRectItem *clipper = new QGraphicsRectItem;
+ clipper->setFlag(QGraphicsItem::ItemClipsChildrenToShape);
+ clipper->setPen(QPen(Qt::green));
+ clipper->setRect(200, 200, 640, 480);
+
+ QGraphicsRectItem *rect = new QGraphicsRectItem(clipper);
+ rect->setPen(QPen(Qt::red));
+ rect->setBrush(QBrush(QColor(255, 0, 0, 75)));
+ rect->setPos(320, 240);
+ rect->setRect(-25, -25, 50, 50);
+
+ QGraphicsScene scene;
+ scene.addItem(clipper);
+
+ QPainterPath path;
+ path.addRect(-25, -25, 50, 50);
+ QCOMPARE(rect->clipPath(), path);
+
+ QCOMPARE(scene.items(QRectF(320, 240, 5, 5)).size(), 2);
+ rect->rotate(45);
+ QCOMPARE(scene.items(QRectF(320, 240, 5, 5)).size(), 2);
+}
+
void tst_QGraphicsScene::sorting_data()
{
QTest::addColumn<bool>("cache");
@@ -3563,4 +3585,3 @@ void tst_QGraphicsScene::stickyFocus()
QTEST_MAIN(tst_QGraphicsScene)
#include "tst_qgraphicsscene.moc"
-#endif
diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
index 6b3a9d4..ca88afc 100644
--- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
+++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
@@ -42,10 +42,6 @@
#include <QtTest/QtTest>
-#if QT_VERSION < 0x040200
-QTEST_NOOP_MAIN
-#else
-
#include <qgraphicsitem.h>
#include <qgraphicsscene.h>
#include <qgraphicssceneevent.h>
@@ -76,6 +72,7 @@ Q_DECLARE_METATYPE(QList<QRectF>)
Q_DECLARE_METATYPE(QMatrix)
Q_DECLARE_METATYPE(QPainterPath)
Q_DECLARE_METATYPE(QPointF)
+Q_DECLARE_METATYPE(QPolygonF)
Q_DECLARE_METATYPE(QRectF)
Q_DECLARE_METATYPE(Qt::ScrollBarPolicy)
@@ -163,6 +160,7 @@ private slots:
void itemAt2();
void mapToScene();
void mapToScenePoint();
+ void mapToSceneRect_data();
void mapToSceneRect();
void mapToScenePoly();
void mapToScenePath();
@@ -1616,23 +1614,51 @@ void tst_QGraphicsView::mapToScenePoint()
view.mapToScene(center) + QPointF(0, -10));
}
+void tst_QGraphicsView::mapToSceneRect_data()
+{
+ QTest::addColumn<QRect>("viewRect");
+ QTest::addColumn<QPolygonF>("scenePoly");
+ QTest::addColumn<qreal>("rotation");
+
+ QTest::newRow("nil") << QRect() << QPolygonF() << qreal(0);
+ QTest::newRow("0, 0, 1, 1") << QRect(0, 0, 1, 1) << QPolygonF(QRectF(0, 0, 1, 1)) << qreal(0);
+ QTest::newRow("0, 0, 10, 10") << QRect(0, 0, 10, 10) << QPolygonF(QRectF(0, 0, 10, 10)) << qreal(0);
+ QTest::newRow("nil") << QRect() << QPolygonF() << qreal(90);
+ QPolygonF p;
+ p << QPointF(0, 0) << QPointF(0, -1) << QPointF(1, -1) << QPointF(1, 0) << QPointF(0, 0);
+ QTest::newRow("0, 0, 1, 1") << QRect(0, 0, 1, 1)
+ << p
+ << qreal(90);
+ p.clear();
+ p << QPointF(0, 0) << QPointF(0, -10) << QPointF(10, -10) << QPointF(10, 0) << QPointF(0, 0);
+ QTest::newRow("0, 0, 10, 10") << QRect(0, 0, 10, 10)
+ << p
+ << qreal(90);
+}
+
void tst_QGraphicsView::mapToSceneRect()
{
- QGraphicsScene scene;
+ QFETCH(QRect, viewRect);
+ QFETCH(QPolygonF, scenePoly);
+ QFETCH(qreal, rotation);
+
+ QGraphicsScene scene(-1000, -1000, 2000, 2000);
+ scene.addRect(25, -25, 50, 50);
QGraphicsView view(&scene);
- view.rotate(90);
- view.setFixedSize(117, 117);
+ view.setFrameStyle(0);
+ view.setAlignment(Qt::AlignTop | Qt::AlignLeft);
+ view.setFixedSize(200, 200);
+ view.setTransformationAnchor(QGraphicsView::NoAnchor);
+ view.setResizeAnchor(QGraphicsView::NoAnchor);
view.show();
- QPoint center = view.viewport()->rect().center();
- QRect rect(center + QPoint(10, 0), QSize(10, 10));
- QPolygonF poly;
- poly << view.mapToScene(rect.topLeft());
- poly << view.mapToScene(rect.topRight());
- poly << view.mapToScene(rect.bottomRight());
- poly << view.mapToScene(rect.bottomLeft());
+ view.rotate(rotation);
- QCOMPARE(view.mapToScene(rect), poly);
+ QPolygonF poly = view.mapToScene(viewRect);
+ if (!poly.isEmpty())
+ poly << poly[0];
+
+ QCOMPARE(poly, scenePoly);
}
void tst_QGraphicsView::mapToScenePoly()
@@ -3149,4 +3175,3 @@ void tst_QGraphicsView::mouseTracking()
QTEST_MAIN(tst_QGraphicsView)
#include "tst_qgraphicsview.moc"
-#endif
diff --git a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
index dee3f54..56737c3 100644
--- a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
+++ b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
@@ -146,6 +146,11 @@ private slots:
void setSizes();
void closePopupOnOutsideClick();
void defaultSize();
+ void explicitMouseGrabber();
+ void implicitMouseGrabber();
+ void popupMouseGrabber();
+ void windowFlags_data();
+ void windowFlags();
// Task fixes
void task236127_bspTreeIndexFails();
@@ -1784,6 +1789,382 @@ void tst_QGraphicsWidget::defaultSize()
}
+void tst_QGraphicsWidget::explicitMouseGrabber()
+{
+ QGraphicsWidget *widget = new QGraphicsWidget;
+ EventSpy widgetGrabEventSpy(widget, QEvent::GrabMouse);
+ EventSpy widgetUngrabEventSpy(widget, QEvent::UngrabMouse);
+
+ // Grab without scene
+ QTest::ignoreMessage(QtWarningMsg, "QGraphicsItem::grabMouse: cannot grab mouse without scene");
+ widget->grabMouse();
+ QCOMPARE(widgetGrabEventSpy.count(), 0);
+ QTest::ignoreMessage(QtWarningMsg, "QGraphicsItem::ungrabMouse: cannot ungrab mouse without scene");
+ widget->ungrabMouse();
+ QCOMPARE(widgetUngrabEventSpy.count(), 0);
+
+ // Add to scene
+ QGraphicsScene scene;
+ scene.addItem(widget);
+
+ // Ungrab while not grabber
+ QTest::ignoreMessage(QtWarningMsg, "QGraphicsItem::ungrabMouse: not a mouse grabber");
+ widget->ungrabMouse();
+
+ // Simple grab with scene
+ QVERIFY(!scene.mouseGrabberItem());
+ widget->grabMouse();
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget);
+ QCOMPARE(widgetGrabEventSpy.count(), 1);
+ widget->ungrabMouse();
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)0);
+ QCOMPARE(widgetUngrabEventSpy.count(), 1);
+
+ // Grab while grabbing
+ widget->grabMouse();
+ QCOMPARE(widgetGrabEventSpy.count(), 2);
+ QTest::ignoreMessage(QtWarningMsg, "QGraphicsItem::grabMouse: already a mouse grabber");
+ widget->grabMouse();
+ QCOMPARE(widgetGrabEventSpy.count(), 2);
+ QCOMPARE(widgetUngrabEventSpy.count(), 1);
+ widget->ungrabMouse();
+ QCOMPARE(widgetUngrabEventSpy.count(), 2);
+
+ // Add two more widgets to the scene
+ QGraphicsWidget *widget2 = new QGraphicsWidget;
+ scene.addItem(widget2);
+ EventSpy widget2GrabEventSpy(widget2, QEvent::GrabMouse);
+ EventSpy widget2UngrabEventSpy(widget2, QEvent::UngrabMouse);
+ QGraphicsWidget *widget3 = new QGraphicsWidget;
+ scene.addItem(widget3);
+ EventSpy widget3GrabEventSpy(widget3, QEvent::GrabMouse);
+ EventSpy widget3UngrabEventSpy(widget3, QEvent::UngrabMouse);
+
+ widget->setData(0, "widget");
+ widget2->setData(0, "widget2");
+ widget3->setData(0, "widget3");
+
+ // Simple nested grabbing
+ widget->grabMouse();
+ QCOMPARE(widgetGrabEventSpy.count(), 3);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget);
+ widget2->grabMouse();
+ QCOMPARE(widgetUngrabEventSpy.count(), 3);
+ QCOMPARE(widget2GrabEventSpy.count(), 1);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget2);
+ widget3->grabMouse();
+ QCOMPARE(widget2UngrabEventSpy.count(), 1);
+ QCOMPARE(widget3GrabEventSpy.count(), 1);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget3);
+ widget3->ungrabMouse();
+ QCOMPARE(widget3UngrabEventSpy.count(), 1);
+ QCOMPARE(widget2GrabEventSpy.count(), 2);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget2);
+ widget2->ungrabMouse();
+ QCOMPARE(widget2UngrabEventSpy.count(), 2);
+ QCOMPARE(widgetGrabEventSpy.count(), 4);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget);
+ widget->ungrabMouse();
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)0);
+
+ // Out of order ungrab
+ widget->grabMouse();
+ QCOMPARE(widgetGrabEventSpy.count(), 5);
+ widget2->grabMouse();
+ QCOMPARE(widget2GrabEventSpy.count(), 3);
+ widget3->grabMouse();
+ QCOMPARE(widget3GrabEventSpy.count(), 2);
+ widget2->ungrabMouse();
+ QCOMPARE(widget3UngrabEventSpy.count(), 2);
+ QCOMPARE(widget2UngrabEventSpy.count(), 4);
+ QCOMPARE(widgetGrabEventSpy.count(), 6);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget);
+}
+
+void tst_QGraphicsWidget::implicitMouseGrabber()
+{
+ QGraphicsScene scene;
+ QGraphicsWidget *widget = new QGraphicsWidget;
+ widget->setFlag(QGraphicsItem::ItemIsMovable); // can grab mouse
+ widget->resize(200, 200);
+ EventSpy widgetGrabEventSpy(widget, QEvent::GrabMouse);
+ EventSpy widgetUngrabEventSpy(widget, QEvent::UngrabMouse);
+ scene.addItem(widget);
+
+ QVERIFY(!scene.mouseGrabberItem());
+
+ // Click on an item, see if gain and lose implicit mouse grab.
+ {
+ QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress);
+ event.ignore();
+ event.setButton(Qt::LeftButton);
+ event.setScenePos(QPointF(50, 50));
+ qApp->sendEvent(&scene, &event);
+ }
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget);
+ QCOMPARE(widgetGrabEventSpy.count(), 1);
+ {
+ QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMouseRelease);
+ event.ignore();
+ event.setButton(Qt::LeftButton);
+ event.setScenePos(QPointF(50, 50));
+ qApp->sendEvent(&scene, &event);
+ }
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)0);
+ QCOMPARE(widgetGrabEventSpy.count(), 1);
+ QCOMPARE(widgetUngrabEventSpy.count(), 1);
+
+ // Click on an item that already grabs the mouse. Shouldn't have any effect.
+ widget->grabMouse();
+ QCOMPARE(widgetGrabEventSpy.count(), 2);
+ {
+ QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress);
+ event.ignore();
+ event.setButton(Qt::LeftButton);
+ event.setScenePos(QPointF(50, 50));
+ qApp->sendEvent(&scene, &event);
+ }
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget);
+ QCOMPARE(widgetGrabEventSpy.count(), 2);
+ {
+ QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMouseRelease);
+ event.ignore();
+ event.setButton(Qt::LeftButton);
+ event.setScenePos(QPointF(50, 50));
+ qApp->sendEvent(&scene, &event);
+ }
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget);
+ QCOMPARE(widgetGrabEventSpy.count(), 2);
+ QCOMPARE(widgetUngrabEventSpy.count(), 1);
+ widget->ungrabMouse();
+ QCOMPARE(widgetUngrabEventSpy.count(), 2);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)0);
+
+ // Implicit mouse grabber tries to explicitly grab the mouse
+ {
+ QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress);
+ event.ignore();
+ event.setButton(Qt::LeftButton);
+ event.setScenePos(QPointF(50, 50));
+ qApp->sendEvent(&scene, &event);
+ }
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget);
+ QCOMPARE(widgetGrabEventSpy.count(), 3);
+ widget->grabMouse();
+ QCOMPARE(widgetUngrabEventSpy.count(), 2);
+ {
+ QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMouseRelease);
+ event.ignore();
+ event.setButton(Qt::LeftButton);
+ event.setScenePos(QPointF(50, 50));
+ qApp->sendEvent(&scene, &event);
+ }
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget);
+ QCOMPARE(widgetGrabEventSpy.count(), 3);
+ QCOMPARE(widgetUngrabEventSpy.count(), 2);
+ widget->ungrabMouse();
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)0);
+ QCOMPARE(widgetGrabEventSpy.count(), 3);
+ QCOMPARE(widgetUngrabEventSpy.count(), 3);
+
+ // Arrival of a new widget
+ QGraphicsWidget *widget2 = new QGraphicsWidget;
+ widget2->setFlag(QGraphicsItem::ItemIsMovable); // can grab mouse
+ widget2->resize(200, 200);
+ widget2->setPos(205, 0);
+ EventSpy widget2GrabEventSpy(widget2, QEvent::GrabMouse);
+ EventSpy widget2UngrabEventSpy(widget2, QEvent::UngrabMouse);
+ scene.addItem(widget2);
+
+ // Implicit grab while there's an explicit grab is not possible.
+ widget->grabMouse();
+ QCOMPARE(widgetGrabEventSpy.count(), 4);
+ {
+ QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress);
+ event.ignore();
+ event.setButton(Qt::LeftButton);
+ event.setScenePos(QPointF(250, 50));
+ qApp->sendEvent(&scene, &event);
+ }
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget);
+ QCOMPARE(widgetGrabEventSpy.count(), 4);
+ QCOMPARE(widget2GrabEventSpy.count(), 0);
+ QCOMPARE(widget2UngrabEventSpy.count(), 0);
+
+ scene.removeItem(widget);
+ QCOMPARE(widgetUngrabEventSpy.count(), 4);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)0);
+}
+
+void tst_QGraphicsWidget::popupMouseGrabber()
+{
+ QGraphicsScene scene;
+ QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Popup);
+ widget->setFlag(QGraphicsItem::ItemIsMovable); // can grab mouse
+ widget->resize(200, 200);
+ EventSpy widgetGrabEventSpy(widget, QEvent::GrabMouse);
+ EventSpy widgetUngrabEventSpy(widget, QEvent::UngrabMouse);
+
+ // Simply adding a visible popup to the scene immediately grabs the mouse.
+ scene.addItem(widget);
+ QCOMPARE(widgetGrabEventSpy.count(), 1);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget);
+
+ // Hiding it loses the grab again.
+ widget->hide();
+ QCOMPARE(widgetUngrabEventSpy.count(), 1);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)0);
+
+ // Showing it grabs the mosue again
+ widget->show();
+ QCOMPARE(widgetGrabEventSpy.count(), 2);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget);
+
+ // Add two popups
+ QGraphicsWidget *widget2 = new QGraphicsWidget(0, Qt::Popup);
+ widget2->setFlag(QGraphicsItem::ItemIsMovable); // can grab mouse
+ widget2->resize(200, 200);
+ EventSpy widget2GrabEventSpy(widget2, QEvent::GrabMouse);
+ EventSpy widget2UngrabEventSpy(widget2, QEvent::UngrabMouse);
+ QGraphicsWidget *widget3 = new QGraphicsWidget(0, Qt::Popup);
+ widget3->setFlag(QGraphicsItem::ItemIsMovable); // can grab mouse
+ widget3->resize(200, 200);
+ EventSpy widget3GrabEventSpy(widget3, QEvent::GrabMouse);
+ EventSpy widget3UngrabEventSpy(widget3, QEvent::UngrabMouse);
+
+ // Adding to the scene grabs
+ scene.addItem(widget2);
+ QCOMPARE(widgetUngrabEventSpy.count(), 2);
+ QCOMPARE(widget2GrabEventSpy.count(), 1);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget2);
+
+ // Adding to the scene grabs again
+ scene.addItem(widget3);
+ QCOMPARE(widget2UngrabEventSpy.count(), 1);
+ QCOMPARE(widget3GrabEventSpy.count(), 1);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget3);
+
+ // Hiding the topmost widget causes widget 2 to regain grab.
+ widget3->hide();
+ QCOMPARE(widget2GrabEventSpy.count(), 2);
+ QCOMPARE(widget3UngrabEventSpy.count(), 1);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget2);
+ widget3->show();
+ QCOMPARE(widget2UngrabEventSpy.count(), 2);
+ QCOMPARE(widget3GrabEventSpy.count(), 2);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget3);
+
+ // Clicking outside the popup still causes it to close (despite that it's
+ // an explicit mouse grabber).
+ {
+ QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress);
+ event.ignore();
+ event.setButton(Qt::LeftButton);
+ event.setScenePos(QPointF(500, 500)); // outside
+ qApp->sendEvent(&scene, &event);
+ }
+ QVERIFY(!widget3->isVisible());
+ QCOMPARE(widget3UngrabEventSpy.count(), 2);
+ QCOMPARE(widget2GrabEventSpy.count(), 3);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget2);
+ QVERIFY(widget2->isVisible());
+ QVERIFY(widget->isVisible());
+ widget3->show();
+ QCOMPARE(widget3GrabEventSpy.count(), 3);
+ QCOMPARE(widget2UngrabEventSpy.count(), 3);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget3);
+
+ // This is something of a curiosity. What happens if you call
+ // ungrabMouse() on a popup? The answer is - it loses the grab. If you
+ // hide and show the popup again, it will regain the grab.
+ widget3->ungrabMouse();
+ QCOMPARE(widget3UngrabEventSpy.count(), 3);
+ QCOMPARE(widget2GrabEventSpy.count(), 4);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget2);
+ widget3->hide();
+ widget3->show();
+ QCOMPARE(widget3GrabEventSpy.count(), 4);
+ QCOMPARE(widget2UngrabEventSpy.count(), 4);
+ QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget3);
+}
+
+void tst_QGraphicsWidget::windowFlags_data()
+{
+ QTest::addColumn<int>("inputFlags");
+ QTest::addColumn<int>("outputFlags");
+
+ QTest::newRow("nil") << 0 << 0;
+
+ // Window types
+ QTest::newRow("Qt::Window") << int(Qt::Window)
+ << int(Qt::Window | Qt::WindowTitleHint | Qt::WindowSystemMenuHint
+ | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint);
+ QTest::newRow("Qt::SubWindow") << int(Qt::SubWindow)
+ << int(Qt::SubWindow | Qt::WindowTitleHint | Qt::WindowSystemMenuHint
+ | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint);
+ QTest::newRow("Qt::Dialog") << int(Qt::Dialog)
+ << int(Qt::Dialog | Qt::WindowTitleHint | Qt::WindowSystemMenuHint
+ | Qt::WindowContextHelpButtonHint);
+ QTest::newRow("Qt::Sheet") << int(Qt::Sheet)
+ << int(Qt::Sheet | Qt::WindowTitleHint | Qt::WindowSystemMenuHint
+ | Qt::WindowContextHelpButtonHint);
+ QTest::newRow("Qt::Tool") << int(Qt::Tool)
+ << int(Qt::Tool | Qt::WindowTitleHint | Qt::WindowSystemMenuHint);
+
+ // Custom window flags
+ QTest::newRow("Qt::FramelessWindowHint") << int(Qt::FramelessWindowHint)
+ << int(Qt::FramelessWindowHint);
+ QTest::newRow("Qt::CustomizeWindowHint") << int(Qt::CustomizeWindowHint)
+ << int(Qt::CustomizeWindowHint);
+}
+
+void tst_QGraphicsWidget::windowFlags()
+{
+ QFETCH(int, inputFlags);
+ QFETCH(int, outputFlags);
+
+ // Construct with flags set already
+ QGraphicsWidget widget(0, Qt::WindowFlags(inputFlags));
+ QCOMPARE(widget.windowFlags(), Qt::WindowFlags(outputFlags));
+
+ // Set flags after construction
+ QGraphicsWidget widget2;
+ widget2.setWindowFlags(Qt::WindowFlags(inputFlags));
+ QCOMPARE(widget2.windowFlags(), Qt::WindowFlags(outputFlags));
+
+ // Reset flags
+ widget2.setWindowFlags(0);
+ QVERIFY(!widget2.windowFlags());
+
+ // Set flags back again
+ widget2.setWindowFlags(Qt::WindowFlags(inputFlags));
+ QCOMPARE(widget2.windowFlags(), Qt::WindowFlags(outputFlags));
+
+ // Construct with custom flags set already
+ QGraphicsWidget widget3(0, Qt::WindowFlags(inputFlags | Qt::FramelessWindowHint));
+ QCOMPARE(widget3.windowFlags(), Qt::WindowFlags(inputFlags | Qt::FramelessWindowHint));
+
+ // Set custom flags after construction
+ QGraphicsWidget widget4;
+ widget4.setWindowFlags(Qt::WindowFlags(inputFlags | Qt::FramelessWindowHint));
+ QCOMPARE(widget4.windowFlags(), Qt::WindowFlags(inputFlags | Qt::FramelessWindowHint));
+
+ // Reset flags
+ widget4.setWindowFlags(0);
+ QVERIFY(!widget4.windowFlags());
+
+ // Set custom flags back again
+ widget4.setWindowFlags(Qt::WindowFlags(inputFlags | Qt::FramelessWindowHint));
+ QCOMPARE(widget4.windowFlags(), Qt::WindowFlags(inputFlags | Qt::FramelessWindowHint));
+
+ QGraphicsWidget *widget5 = new QGraphicsWidget;
+ widget5->setWindowFlags(Qt::WindowFlags(inputFlags));
+ QCOMPARE(widget5->windowFlags(), Qt::WindowFlags(outputFlags));
+ QGraphicsWidget window(0, Qt::Window);
+ widget5->setParentItem(&window);
+ QCOMPARE(widget5->windowFlags(), Qt::WindowFlags(outputFlags));
+}
+
class ProxyStyle : public QCommonStyle
{
public:
diff --git a/tests/auto/qhash/tst_qhash.cpp b/tests/auto/qhash/tst_qhash.cpp
index 9343504..f300eec 100644
--- a/tests/auto/qhash/tst_qhash.cpp
+++ b/tests/auto/qhash/tst_qhash.cpp
@@ -39,16 +39,10 @@
**
****************************************************************************/
-
#include <QtTest/QtTest>
-
-#if QT_VERSION >= 0x040000
#include <qhash.h>
#include <qmap.h>
-#endif
-
-
//TESTED_CLASS=
//TESTED_FILES=
@@ -65,7 +59,7 @@ private slots:
void insert1();
void erase();
void key();
-
+
void count(); // copied from tst_QMap
void clear(); // copied from tst_QMap
void empty(); // copied from tst_QMap
@@ -80,9 +74,7 @@ private slots:
void qmultihash_specific();
void compare();
-#if QT_VERSION > 0x040100
void compare2();
-#endif // QT_VERSION
void iterators(); // sligthly modified from tst_QMap
void keys_values_uniqueKeys(); // slightly modified from tst_QMap
void noNeedlessRehashes();
@@ -799,7 +791,6 @@ void tst_QHash::compare()
QVERIFY(hash1 != hash2);
}
-#if QT_VERSION > 0x040100
void tst_QHash::compare2()
{
QHash<int, int> a;
@@ -838,7 +829,6 @@ void tst_QHash::compare2()
QVERIFY(!(a == b));
QVERIFY(!(b == a));
}
-#endif // QT_VERSION
//sligthly modified from tst_QMap
void tst_QHash::iterators()
@@ -996,9 +986,6 @@ void tst_QHash::rehash_isnt_quadratic()
class Bar
{
public:
-#if QT_VERSION < 0x040100
- Bar() : j(0) {}
-#endif
Bar(int i) : j(i) {}
int j;
@@ -1180,37 +1167,27 @@ QList<T> sorted(const QList<T> &list)
void tst_QHash::keys_values_uniqueKeys()
{
QHash<QString, int> hash;
-#if QT_VERSION >= 0x040200
QVERIFY(hash.uniqueKeys().isEmpty());
-#endif
QVERIFY(hash.keys().isEmpty());
QVERIFY(hash.values().isEmpty());
hash.insertMulti("alpha", 1);
QVERIFY(sorted(hash.keys()) == (QList<QString>() << "alpha"));
-#if QT_VERSION >= 0x040200
QVERIFY(hash.keys() == hash.uniqueKeys());
-#endif
QVERIFY(hash.values() == (QList<int>() << 1));
hash.insertMulti("beta", -2);
QVERIFY(sorted(hash.keys()) == (QList<QString>() << "alpha" << "beta"));
-#if QT_VERSION >= 0x040200
QVERIFY(hash.keys() == hash.uniqueKeys());
-#endif
QVERIFY(sorted(hash.values()) == sorted(QList<int>() << 1 << -2));
hash.insertMulti("alpha", 2);
-#if QT_VERSION >= 0x040200
QVERIFY(sorted(hash.uniqueKeys()) == (QList<QString>() << "alpha" << "beta"));
-#endif
QVERIFY(sorted(hash.keys()) == (QList<QString>() << "alpha" << "alpha" << "beta"));
QVERIFY(sorted(hash.values()) == sorted(QList<int>() << 2 << 1 << -2));
hash.insertMulti("beta", 4);
-#if QT_VERSION >= 0x040200
QVERIFY(sorted(hash.uniqueKeys()) == (QList<QString>() << "alpha" << "beta"));
-#endif
QVERIFY(sorted(hash.keys()) == (QList<QString>() << "alpha" << "alpha" << "beta" << "beta"));
QVERIFY(sorted(hash.values()) == sorted(QList<int>() << 2 << 1 << 4 << -2));
}
diff --git a/tests/auto/qheaderview/tst_qheaderview.cpp b/tests/auto/qheaderview/tst_qheaderview.cpp
index 0867e48..6478854 100644
--- a/tests/auto/qheaderview/tst_qheaderview.cpp
+++ b/tests/auto/qheaderview/tst_qheaderview.cpp
@@ -187,6 +187,7 @@ private slots:
void emptySectionSpan();
void task236450_hidden_data();
void task236450_hidden();
+ void task248050_hideRow();
protected:
QHeaderView *view;
@@ -1919,5 +1920,28 @@ void tst_QHeaderView::task236450_hidden()
}
+void tst_QHeaderView::task248050_hideRow()
+{
+ //this is the sequence of events that make the task fail
+ protected_QHeaderView header(Qt::Vertical);
+ QStandardItemModel model(0, 1);
+ header.setStretchLastSection(false);
+ header.setDefaultSectionSize(17);
+ header.setModel(&model);
+ header.doItemsLayout();
+
+ model.setRowCount(3);
+
+ QCOMPARE(header.sectionPosition(2), 17*2);
+
+ header.hideSection(1);
+ QCOMPARE(header.sectionPosition(2), 17);
+
+ QTest::qWait(100);
+ //the size of the section shouldn't have changed
+ QCOMPARE(header.sectionPosition(2), 17);
+}
+
+
QTEST_MAIN(tst_QHeaderView)
#include "tst_qheaderview.moc"
diff --git a/tests/auto/qhostinfo/tst_qhostinfo.cpp b/tests/auto/qhostinfo/tst_qhostinfo.cpp
index 3a7698b..0c5bc59 100644
--- a/tests/auto/qhostinfo/tst_qhostinfo.cpp
+++ b/tests/auto/qhostinfo/tst_qhostinfo.cpp
@@ -305,7 +305,7 @@ void tst_QHostInfo::reverseLookup_data()
// ### Use internal DNS instead. Discussed with Andreas.
//QTest::newRow("classical.hexago.com") << QString("2001:5c0:0:2::24") << QStringList(QString("classical.hexago.com")) << 0;
- QTest::newRow("www.cisco.com") << QString("198.133.219.25") << QStringList(QString("www.cisco.com")) << 0;
+ QTest::newRow("www.cisco.com") << QString("198.133.219.25") << QStringList(QString("origin-www.cisco.com")) << 0;
QTest::newRow("bogusexample.doenstexist.org") << QString("1::2::3::4") << QStringList() << 1;
}
diff --git a/tests/auto/qhttp/tst_qhttp.cpp b/tests/auto/qhttp/tst_qhttp.cpp
index e4a798e..46bd8cd 100644
--- a/tests/auto/qhttp/tst_qhttp.cpp
+++ b/tests/auto/qhttp/tst_qhttp.cpp
@@ -253,11 +253,9 @@ void tst_QHttp::constructing()
}
-#if QT_VERSION >= 0x040102
{
QHttpResponseHeader header(200);
}
-#endif
}
void tst_QHttp::invalidRequests()
diff --git a/tests/auto/qicoimageformat/tst_qticoimageformat.cpp b/tests/auto/qicoimageformat/tst_qticoimageformat.cpp
index 9fca6df..7d7f4ac 100644
--- a/tests/auto/qicoimageformat/tst_qticoimageformat.cpp
+++ b/tests/auto/qicoimageformat/tst_qticoimageformat.cpp
@@ -264,42 +264,35 @@ void tst_QtIcoImageFormat::nextImageDelay_data()
{
QTest::addColumn<QString>("fileName");
QTest::addColumn<int>("count");
- QTest::addColumn<int>("delay");
-
- QTest::newRow("floppy (16px,32px - 16 colors)") << "valid/35FLOPPY.ICO" << 2 << 0;
- QTest::newRow("16px,32px,48px - 256,16M colors") << "valid/abcardWindow.ico" << 6 << 0;
- QTest::newRow("16px - 16 colors") << "valid/App.ico" << 1 << 0;
- QTest::newRow("16px,32px,48px - 16,256,16M colors") << "valid/Obj_N2_Internal_Mem.ico" << 9 << 0;
- QTest::newRow("16px - 16,256,16M colors") << "valid/Status_Play.ico" << 3 << 0;
- QTest::newRow("16px,32px - 16 colors") << "valid/TIMER01.ICO" << 2 << 0;
- QTest::newRow("16px16c, 32px32c, 32px256c") << "valid/WORLD.ico" << 3 << 0;
- QTest::newRow("16px16c, 32px32c, 32px256c") << "valid/WORLDH.ico" << 3 << 0;
- QTest::newRow("invalid floppy (first 8 bytes = 0xff)") << "invalid/35floppy.ico" << -1 << -1;
- QTest::newRow("includes 32BPP w/alpha") << "valid/semitransparent.ico" << 9 << 0;
+
+ QTest::newRow("floppy (16px,32px - 16 colors)") << "valid/35FLOPPY.ICO" << 2;
+ QTest::newRow("16px,32px,48px - 256,16M colors") << "valid/abcardWindow.ico" << 6;
+ QTest::newRow("16px - 16 colors") << "valid/App.ico" << 1;
+ QTest::newRow("16px,32px,48px - 16,256,16M colors") << "valid/Obj_N2_Internal_Mem.ico" << 9;
+ QTest::newRow("16px - 16,256,16M colors") << "valid/Status_Play.ico" << 3;
+ QTest::newRow("16px,32px - 16 colors") << "valid/TIMER01.ICO" << 2;
+ QTest::newRow("16px16c, 32px32c, 32px256c") << "valid/WORLD.ico" << 3;
+ QTest::newRow("16px16c, 32px32c, 32px256c") << "valid/WORLDH.ico" << 3;
+ QTest::newRow("invalid floppy (first 8 bytes = 0xff)") << "invalid/35floppy.ico" << -1;
+ QTest::newRow("includes 32BPP w/alpha") << "valid/semitransparent.ico" << 9;
}
void tst_QtIcoImageFormat::nextImageDelay()
{
QFETCH(QString, fileName);
QFETCH(int, count);
- QFETCH(int, delay);
-
-#if QT_VERSION > 0x040001
- delay = 0;
-#endif
QImageReader reader(m_IconPath + "/" + fileName);
if (count == -1) {
- QCOMPARE(reader.nextImageDelay(), delay);
-
+ QCOMPARE(reader.nextImageDelay(), 0);
} else {
int i;
for (i = 0; i < count; i++) {
-
QVERIFY(reader.jumpToImage(i));
- QCOMPARE(reader.nextImageDelay(), delay);
+ QCOMPARE(reader.nextImageDelay(), 0);
}
}
}
+
QTEST_MAIN(tst_QtIcoImageFormat)
#include "tst_qticoimageformat.moc"
diff --git a/tests/auto/qicon/tst_qicon.cpp b/tests/auto/qicon/tst_qicon.cpp
index 7e515a5..4e9a880 100644
--- a/tests/auto/qicon/tst_qicon.cpp
+++ b/tests/auto/qicon/tst_qicon.cpp
@@ -186,10 +186,8 @@ void tst_QIcon::actualSize2()
QFETCH(QSize, argument);
QFETCH(QSize, result);
-#if QT_VERSION >= 0x040200
QCOMPARE(icon.actualSize(argument), result);
QCOMPARE(icon.pixmap(argument).size(), result);
-#endif
}
void tst_QIcon::svgActualSize()
diff --git a/tests/auto/qimage/tst_qimage.cpp b/tests/auto/qimage/tst_qimage.cpp
index 132e373..ee4ece2 100644
--- a/tests/auto/qimage/tst_qimage.cpp
+++ b/tests/auto/qimage/tst_qimage.cpp
@@ -95,9 +95,8 @@ private slots:
void rotate_data();
void rotate();
-#if QT_VERSION >= 0x040102
void copy();
-#endif
+
void setPixel_data();
void setPixel();
@@ -974,7 +973,6 @@ void tst_QImage::rotate()
QCOMPARE(original, dest);
}
-#if QT_VERSION >= 0x040102
void tst_QImage::copy()
{
// Task 99250
@@ -983,7 +981,6 @@ void tst_QImage::copy()
img.copy(QRect(1000,1,1,1));
}
}
-#endif
void tst_QImage::setPixel_data()
{
diff --git a/tests/auto/qimagereader/baseline/35floppy.ico b/tests/auto/qimagereader/baseline/35floppy.ico
new file mode 100644
index 0000000..59fd37e
--- /dev/null
+++ b/tests/auto/qimagereader/baseline/35floppy.ico
Binary files differ
diff --git a/tests/auto/qimagereader/baseline/kde_favicon.ico b/tests/auto/qimagereader/baseline/kde_favicon.ico
new file mode 100644
index 0000000..15bcdbb
--- /dev/null
+++ b/tests/auto/qimagereader/baseline/kde_favicon.ico
Binary files differ
diff --git a/tests/auto/qimagereader/baseline/semitransparent.ico b/tests/auto/qimagereader/baseline/semitransparent.ico
new file mode 100644
index 0000000..dd23de9
--- /dev/null
+++ b/tests/auto/qimagereader/baseline/semitransparent.ico
Binary files differ
diff --git a/tests/auto/qimagereader/tst_qimagereader.cpp b/tests/auto/qimagereader/tst_qimagereader.cpp
index e256227..8f7094c 100644
--- a/tests/auto/qimagereader/tst_qimagereader.cpp
+++ b/tests/auto/qimagereader/tst_qimagereader.cpp
@@ -128,30 +128,22 @@ private slots:
void physicalDpi_data();
void physicalDpi();
-#if QT_VERSION > 0x040100
void sizeBeforeRead_data();
void sizeBeforeRead();
-#endif
-#if QT_VERSION > 0x040400
void imageFormatBeforeRead_data();
void imageFormatBeforeRead();
-#endif
#if defined QTEST_HAVE_GIF
void gifHandlerBugs();
#endif
-#if QT_VERSION >= 0x040200
void readCorruptImage_data();
void readCorruptImage();
-#endif
void readCorruptBmp();
-#if QT_VERSION >= 0x040200
void supportsOption_data();
void supportsOption();
-#endif
#if defined QTEST_HAVE_TIFF
void tiffCompression_data();
@@ -161,6 +153,9 @@ private slots:
void autoDetectImageFormat();
void fileNameProbing();
+
+ void pixelCompareWithBaseline_data();
+ void pixelCompareWithBaseline();
};
// Testing get/set functions
@@ -210,9 +205,7 @@ void tst_QImageReader::readImage_data()
QTest::newRow("BMP: 4bpp RLE") << QString("4bpp-rle.bmp") << true << QByteArray("bmp");
QTest::newRow("BMP: 4bpp uncompressed") << QString("tst7.bmp") << true << QByteArray("bmp");
QTest::newRow("BMP: 16bpp") << QString("16bpp.bmp") << true << QByteArray("bmp");
-#if QT_VERSION >= 0x040200
QTest::newRow("BMP: negative height") << QString("negativeheight.bmp") << true << QByteArray("bmp");
-#endif
QTest::newRow("XPM: marble") << QString("marble.xpm") << true << QByteArray("xpm");
QTest::newRow("PNG: kollada") << QString("kollada.png") << true << QByteArray("png");
QTest::newRow("PPM: teapot") << QString("teapot.ppm") << true << QByteArray("ppm");
@@ -604,7 +597,6 @@ void tst_QImageReader::supportsAnimation()
QCOMPARE(io.supportsAnimation(), success);
}
-#if QT_VERSION > 0x040100
void tst_QImageReader::sizeBeforeRead_data()
{
imageFormat_data();
@@ -627,9 +619,7 @@ void tst_QImageReader::sizeBeforeRead()
QVERIFY(!image.isNull());
QCOMPARE(size, image.size());
}
-#endif // QT_VERSION
-#if QT_VERSION > 0x040400
void tst_QImageReader::imageFormatBeforeRead_data()
{
imageFormat_data();
@@ -649,7 +639,6 @@ void tst_QImageReader::imageFormatBeforeRead()
QCOMPARE(image.format(), fileFormat);
}
}
-#endif
#if defined QTEST_HAVE_GIF
void tst_QImageReader::gifHandlerBugs()
@@ -662,7 +651,6 @@ void tst_QImageReader::gifHandlerBugs()
QVERIFY(count == 34);
}
-#if QT_VERSION >= 0x040102
// Task 95166
{
QImageReader io1("images/bat1.gif");
@@ -675,9 +663,7 @@ void tst_QImageReader::gifHandlerBugs()
QVERIFY(!im2.isNull());
QCOMPARE(im1, im2);
}
-#endif
-#if QT_VERSION >= 0x040104
// Task 9994
{
QImageReader io1("images/noclearcode.gif");
@@ -687,7 +673,6 @@ void tst_QImageReader::gifHandlerBugs()
QVERIFY(!im1.isNull()); QVERIFY(!im2.isNull());
QCOMPARE(im1.convertToFormat(QImage::Format_ARGB32), im2.convertToFormat(QImage::Format_ARGB32));
}
-#endif
}
#endif
@@ -872,11 +857,7 @@ void tst_QImageReader::readFromFileAfterJunk()
QVERIFY(!imageData.isNull());
int iterations = 10;
-#if QT_VERSION < 0x040200
- if (format == "ppm" || format == "pbm" || format == "pgm" || format == "xpm" || format == "jpeg")
-#else
if (format == "ppm" || format == "pbm" || format == "pgm")
-#endif
iterations = 1;
if (format == "mng" || !QImageWriter::supportedImageFormats().contains(format)) {
@@ -1175,7 +1156,6 @@ void tst_QImageReader::readFromResources()
QCOMPARE(QImageReader(fileName).read(), QImageReader(":/" + fileName).read());
}
-#if QT_VERSION >= 0x040200
void tst_QImageReader::readCorruptImage_data()
{
QTest::addColumn<QString>("fileName");
@@ -1203,6 +1183,7 @@ void tst_QImageReader::readCorruptImage_data()
QTest::newRow("corrupt tiff") << QString("images/corrupt-data.tif") << true << QString("");
#endif
}
+
void tst_QImageReader::readCorruptImage()
{
QFETCH(QString, fileName);
@@ -1214,14 +1195,12 @@ void tst_QImageReader::readCorruptImage()
QVERIFY(reader.canRead());
QCOMPARE(reader.read().isNull(), shouldFail);
}
-#endif // QT_VERSION
void tst_QImageReader::readCorruptBmp()
{
QCOMPARE(QImage("images/tst7.bmp").convertToFormat(QImage::Format_ARGB32_Premultiplied), QImage("images/tst7.png").convertToFormat(QImage::Format_ARGB32_Premultiplied));
}
-#if QT_VERSION >= 0x040200
void tst_QImageReader::supportsOption_data()
{
QTest::addColumn<QString>("fileName");
@@ -1264,7 +1243,6 @@ void tst_QImageReader::supportsOption()
foreach (QImageIOHandler::ImageOption option, allOptions)
QVERIFY(!reader.supportsOption(option));
}
-#endif
#if defined QTEST_HAVE_TIFF
void tst_QImageReader::tiffCompression_data()
@@ -1393,5 +1371,32 @@ void tst_QImageReader::fileNameProbing()
QCOMPARE(r.fileName(), name);
}
+void tst_QImageReader::pixelCompareWithBaseline_data()
+{
+ QTest::addColumn<QString>("fileName");
+
+ QTest::newRow("floppy (16px,32px - 16 colors)") << "35floppy.ico";
+ QTest::newRow("semitransparent") << "semitransparent.ico";
+ QTest::newRow("slightlybroken") << "kde_favicon.ico";
+}
+
+void tst_QImageReader::pixelCompareWithBaseline()
+{
+ QFETCH(QString, fileName);
+
+ QImage icoImg;
+ // might fail if the plugin does not exist, which is ok.
+ if (icoImg.load(QString::fromAscii("images/%1").arg(fileName))) {
+ QString baselineFileName = QString::fromAscii("baseline/%1").arg(fileName);
+#if 0
+ icoImg.save(baselineFileName);
+#else
+ QImage baseImg;
+ QVERIFY(baseImg.load(baselineFileName));
+ QCOMPARE(baseImg, icoImg);
+#endif
+ }
+}
+
QTEST_MAIN(tst_QImageReader)
#include "tst_qimagereader.moc"
diff --git a/tests/auto/qiodevice/tst_qiodevice.cpp b/tests/auto/qiodevice/tst_qiodevice.cpp
index 6a8ff73..03a0665 100644
--- a/tests/auto/qiodevice/tst_qiodevice.cpp
+++ b/tests/auto/qiodevice/tst_qiodevice.cpp
@@ -67,9 +67,7 @@ private slots:
void constructing_QFile();
void read_QByteArray();
void unget();
-#if QT_VERSION >= 0x040100
void peek();
-#endif // QT_VERSION
void getch();
void putch();
@@ -310,7 +308,6 @@ void tst_QIODevice::unget()
}
//--------------------------------------------------------------------
-#if QT_VERSION >= 0x040100
void tst_QIODevice::peek()
{
QBuffer buffer;
@@ -348,7 +345,6 @@ void tst_QIODevice::peek()
}
QFile::remove("peektestfile");
}
-#endif // QT_VERSION
void tst_QIODevice::getch()
{
@@ -441,7 +437,6 @@ void tst_QIODevice::readLine()
result = buffer.readLine(line.data(), linelen + 1);
QCOMPARE(result, linelen);
-#if QT_VERSION >= 0x0402000
// try with a line length limit
QVERIFY(buffer.seek(0));
line = buffer.readLine(linelen + 100);
@@ -451,7 +446,6 @@ void tst_QIODevice::readLine()
QVERIFY(buffer.seek(0));
line = buffer.readLine();
QCOMPARE(line.size(), linelen);
-#endif
}
QTEST_MAIN(tst_QIODevice)
diff --git a/tests/auto/qitemdelegate/tst_qitemdelegate.cpp b/tests/auto/qitemdelegate/tst_qitemdelegate.cpp
index befe0eb..27741e0 100644
--- a/tests/auto/qitemdelegate/tst_qitemdelegate.cpp
+++ b/tests/auto/qitemdelegate/tst_qitemdelegate.cpp
@@ -777,6 +777,7 @@ void tst_QItemDelegate::dateTimeEditor()
QCOMPARE(timeEditor->time(), time);
widget.clearFocus();
+ qApp->setActiveWindow(&widget);
widget.setFocus();
widget.editItem(item2);
diff --git a/tests/auto/qitemeditorfactory/tst_qitemeditorfactory.cpp b/tests/auto/qitemeditorfactory/tst_qitemeditorfactory.cpp
index c12c583..aa6939d 100644
--- a/tests/auto/qitemeditorfactory/tst_qitemeditorfactory.cpp
+++ b/tests/auto/qitemeditorfactory/tst_qitemeditorfactory.cpp
@@ -61,9 +61,6 @@ void tst_QItemEditorFactory::createEditor()
void tst_QItemEditorFactory::createCustomEditor()
{
-#if QT_VERSION < 0x040200
- QSKIP("Needs Qt >= 4.2", SkipAll);
-#else
QItemEditorFactory editorFactory;
QItemEditorCreatorBase *creator = new QStandardItemEditorCreator<QDoubleSpinBox>();
@@ -76,7 +73,6 @@ void tst_QItemEditorFactory::createCustomEditor()
QCOMPARE(w->metaObject()->userProperty().type(), QVariant::Double);
delete creator;
-#endif
}
QTEST_MAIN(tst_QItemEditorFactory)
diff --git a/tests/auto/qitemmodel/modelstotest.cpp b/tests/auto/qitemmodel/modelstotest.cpp
index 61fc480..2cd6048 100644
--- a/tests/auto/qitemmodel/modelstotest.cpp
+++ b/tests/auto/qitemmodel/modelstotest.cpp
@@ -117,13 +117,8 @@ ModelsToTest::ModelsToTest()
tests.append(test("QTableModel", ReadWrite, HasData));
tests.append(test("QTableModelEmpty", ReadWrite, Empty));
-#if QT_VERSION >= 0x040200
-#define TABLEFEATURE ReadWrite
-#else
-#define TABLEFEATURE ReadOnly
-#endif
- tests.append(test("QTreeModel", TABLEFEATURE, HasData));
- tests.append(test("QTreeModelEmpty", TABLEFEATURE, Empty));
+ tests.append(test("QTreeModel", ReadWrite, HasData));
+ tests.append(test("QTreeModelEmpty", ReadWrite, Empty));
tests.append(test("QSqlQueryModel", ReadOnly, HasData));
tests.append(test("QSqlQueryModelEmpty", ReadOnly, Empty));
diff --git a/tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp b/tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp
index 15b36b8..9bd1ce3 100644
--- a/tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp
+++ b/tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp
@@ -89,6 +89,7 @@ private slots:
void merge_data();
void merge();
void task119433_isRowSelected();
+ void task252069_rowIntersectsSelection();
private:
QAbstractItemModel *model;
@@ -2140,6 +2141,51 @@ void tst_QItemSelectionModel::task119433_isRowSelected()
QVERIFY(sel.isRowSelected(0, QModelIndex()));
}
+void tst_QItemSelectionModel::task252069_rowIntersectsSelection()
+{
+ QStandardItemModel m;
+ for (int i=0; i<8; ++i) {
+ for (int j=0; j<8; ++j) {
+ QStandardItem *item = new QStandardItem(QString("Item number %1").arg(i));
+ if ((i % 2 == 0 && j == 0) ||
+ (j % 2 == 0 && i == 0) ||
+ j == 5 || i == 5 ) {
+ item->setEnabled(false);
+ //item->setSelectable(false);
+ }
+ m.setItem(i, j, item);
+ }
+ }
+
+ QItemSelectionModel selected(&m);
+ //nothing is selected
+ QVERIFY(!selected.rowIntersectsSelection(0, QModelIndex()));
+ QVERIFY(!selected.rowIntersectsSelection(2, QModelIndex()));
+ QVERIFY(!selected.rowIntersectsSelection(3, QModelIndex()));
+ QVERIFY(!selected.rowIntersectsSelection(5, QModelIndex()));
+ QVERIFY(!selected.columnIntersectsSelection(0, QModelIndex()));
+ QVERIFY(!selected.columnIntersectsSelection(2, QModelIndex()));
+ QVERIFY(!selected.columnIntersectsSelection(3, QModelIndex()));
+ QVERIFY(!selected.columnIntersectsSelection(5, QModelIndex()));
+ selected.select(m.index(2, 0), QItemSelectionModel::Select | QItemSelectionModel::Rows);
+ QVERIFY(!selected.rowIntersectsSelection(0, QModelIndex()));
+ QVERIFY( selected.rowIntersectsSelection(2, QModelIndex()));
+ QVERIFY(!selected.rowIntersectsSelection(3, QModelIndex()));
+ QVERIFY(!selected.rowIntersectsSelection(5, QModelIndex()));
+ QVERIFY(!selected.columnIntersectsSelection(0, QModelIndex()));
+ QVERIFY( selected.columnIntersectsSelection(2, QModelIndex()));
+ QVERIFY( selected.columnIntersectsSelection(3, QModelIndex()));
+ QVERIFY(!selected.columnIntersectsSelection(5, QModelIndex()));
+ selected.select(m.index(0, 5), QItemSelectionModel::Select | QItemSelectionModel::Columns);
+ QVERIFY(!selected.rowIntersectsSelection(0, QModelIndex()));
+ QVERIFY( selected.rowIntersectsSelection(2, QModelIndex()));
+ QVERIFY(!selected.rowIntersectsSelection(3, QModelIndex()));
+ QVERIFY(!selected.rowIntersectsSelection(5, QModelIndex()));
+ QVERIFY(!selected.columnIntersectsSelection(0, QModelIndex()));
+ QVERIFY( selected.columnIntersectsSelection(2, QModelIndex()));
+ QVERIFY( selected.columnIntersectsSelection(3, QModelIndex()));
+ QVERIFY(!selected.columnIntersectsSelection(5, QModelIndex()));
+}
QTEST_MAIN(tst_QItemSelectionModel)
#include "tst_qitemselectionmodel.moc"
diff --git a/tests/auto/qitemview/tst_qitemview.cpp b/tests/auto/qitemview/tst_qitemview.cpp
index b248aa8..748bd50 100644
--- a/tests/auto/qitemview/tst_qitemview.cpp
+++ b/tests/auto/qitemview/tst_qitemview.cpp
@@ -230,19 +230,15 @@ void tst_QItemView::setupWithNoTestData()
ViewsToTest testViews;
QTest::addColumn<QString>("viewType");
QTest::addColumn<bool>("displays");
-#if QT_VERSION >= 0x040200
QTest::addColumn<int>("vscroll");
QTest::addColumn<int>("hscroll");
-#endif
for (int i = 0; i < testViews.tests.size(); ++i) {
QString view = testViews.tests.at(i).viewType;
QString test = view + " ScrollPerPixel";
bool displayIndexes = (testViews.tests.at(i).display == ViewsToTest::DisplayRoot);
QTest::newRow(test.toLatin1().data()) << view << displayIndexes
-#if QT_VERSION >= 0x040200
<< (int)QAbstractItemView::ScrollPerPixel
<< (int)QAbstractItemView::ScrollPerPixel
-#endif
;
}
for (int i = 0; i < testViews.tests.size(); ++i) {
@@ -250,10 +246,8 @@ void tst_QItemView::setupWithNoTestData()
QString test = view + " ScrollPerItem";
bool displayIndexes = (testViews.tests.at(i).display == ViewsToTest::DisplayRoot);
QTest::newRow(test.toLatin1().data()) << view << displayIndexes
-#if QT_VERSION >= 0x040200
<< (int)QAbstractItemView::ScrollPerItem
<< (int)QAbstractItemView::ScrollPerItem
-#endif
;
}
}
@@ -296,19 +290,17 @@ void tst_QItemView::nonDestructiveBasicTest()
#ifdef Q_OS_IRIX
QSKIP("This test takes too long to execute on IRIX", SkipAll);
#endif
-
+
#ifdef Q_OS_WINCE
QTest::qWait(400);
#endif
QFETCH(QString, viewType);
view = testViews->createView(viewType);
-#if QT_VERSION >= 0x040200
QFETCH(int, vscroll);
QFETCH(int, hscroll);
view->setVerticalScrollMode((QAbstractItemView::ScrollMode)vscroll);
view->setHorizontalScrollMode((QAbstractItemView::ScrollMode)hscroll);
-#endif
// setSelectionModel() will assert
//view->setSelectionModel(0);
@@ -461,12 +453,10 @@ void tst_QItemView::spider()
#endif
QFETCH(QString, viewType);
view = testViews->createView(viewType);
-#if QT_VERSION >= 0x040200
QFETCH(int, vscroll);
QFETCH(int, hscroll);
view->setVerticalScrollMode((QAbstractItemView::ScrollMode)vscroll);
view->setHorizontalScrollMode((QAbstractItemView::ScrollMode)hscroll);
-#endif
view->setModel(treeModel);
view->show();
#if defined(Q_OS_WINCE)
@@ -498,12 +488,10 @@ void tst_QItemView::resize()
// doesn't really catch theproblem.
QFETCH(QString, viewType);
view = testViews->createView(viewType);
-#if QT_VERSION >= 0x040200
QFETCH(int, vscroll);
QFETCH(int, hscroll);
view->setVerticalScrollMode((QAbstractItemView::ScrollMode)vscroll);
view->setHorizontalScrollMode((QAbstractItemView::ScrollMode)hscroll);
-#endif
view->setModel(treeModel);
view->show();
@@ -528,12 +516,10 @@ void tst_QItemView::visualRect()
#endif
QFETCH(QString, viewType);
view = testViews->createView(viewType);
-#if QT_VERSION >= 0x040200
QFETCH(int, vscroll);
QFETCH(int, hscroll);
view->setVerticalScrollMode((QAbstractItemView::ScrollMode)vscroll);
view->setHorizontalScrollMode((QAbstractItemView::ScrollMode)hscroll);
-#endif
QCOMPARE(view->visualRect(QModelIndex()), QRect());
// Add model
@@ -664,12 +650,10 @@ void tst_QItemView::indexAt()
#endif
QFETCH(QString, viewType);
view = testViews->createView(viewType);
-#if QT_VERSION >= 0x040200
QFETCH(int, vscroll);
QFETCH(int, hscroll);
view->setVerticalScrollMode((QAbstractItemView::ScrollMode)vscroll);
view->setHorizontalScrollMode((QAbstractItemView::ScrollMode)hscroll);
-#endif
view->show();
view->setModel(treeModel);
#if 0
@@ -700,12 +684,10 @@ void tst_QItemView::scrollTo()
#endif
QFETCH(QString, viewType);
view = testViews->createView(viewType);
-#if QT_VERSION >= 0x040200
QFETCH(int, vscroll);
QFETCH(int, hscroll);
view->setVerticalScrollMode((QAbstractItemView::ScrollMode)vscroll);
view->setHorizontalScrollMode((QAbstractItemView::ScrollMode)hscroll);
-#endif
view->setModel(treeModel);
view->show();
diff --git a/tests/auto/qkeysequence/tst_qkeysequence.cpp b/tests/auto/qkeysequence/tst_qkeysequence.cpp
index 33de82a..8fcee36 100644
--- a/tests/auto/qkeysequence/tst_qkeysequence.cpp
+++ b/tests/auto/qkeysequence/tst_qkeysequence.cpp
@@ -181,9 +181,7 @@ void tst_QKeySequence::operatorQString_data()
#ifndef Q_WS_MAC
QTest::newRow( "Ctrl+Left" ) << int(Qt::CTRL) << int(Qt::Key_Left) << QString( "Ctrl+Left" );
-#if QT_VERSION > 0x040100
QTest::newRow( "Ctrl+," ) << int(Qt::CTRL) << int(Qt::Key_Comma) << QString( "Ctrl+," );
-#endif
QTest::newRow( "Alt+Left" ) << int(Qt::ALT) << int(Qt::Key_Left) << QString( "Alt+Left" );
QTest::newRow( "Alt+Shift+Left" ) << int(Qt::ALT | Qt::SHIFT) << int(Qt::Key_Left) << QString( "Alt+Shift+Left" );
QTest::newRow( "Ctrl" ) << int(Qt::CTRL) << int(Qt::Key_Aring | Qt::UNICODE_ACCEL) << QString( "Ctrl+\x0c5" );
@@ -192,9 +190,7 @@ void tst_QKeySequence::operatorQString_data()
QTest::newRow( "Meta" ) << int(Qt::META) << int(Qt::Key_Aring | Qt::UNICODE_ACCEL) << QString( "Meta+\x0c5" );
#else
QTest::newRow( "Ctrl+Left" ) << int(Qt::CTRL) << int(Qt::Key_Left) << MacCtrl + macSymbolForQtKey(Qt::Key_Left);
-#if QT_VERSION > 0x040100
QTest::newRow( "Ctrl+," ) << int(Qt::CTRL) << int(Qt::Key_Comma) << MacCtrl + ",";
-#endif
QTest::newRow( "Alt+Left" ) << int(Qt::ALT) << int(Qt::Key_Left) << MacAlt + macSymbolForQtKey(Qt::Key_Left);
QTest::newRow( "Alt+Shift+Left" ) << int(Qt::ALT | Qt::SHIFT) << int(Qt::Key_Left) << MacAlt + MacShift + macSymbolForQtKey(Qt::Key_Left);
QTest::newRow( "Ctrl" ) << int(Qt::CTRL) << int(Qt::Key_Aring | Qt::UNICODE_ACCEL) << MacCtrl + "\x0c5";
@@ -385,10 +381,8 @@ void tst_QKeySequence::toString_data()
QTest::newRow("Shift") << QString("Shift+\x0c5") << QString("Shift+\x0c5") << QString("Shift+\x0c5");
QTest::newRow("Meta") << QString("Meta+\x0c5") << QString("Meta+\x0c5") << QString("Meta+\x0c5");
QTest::newRow("Ctrl+Plus") << QString("Ctrl++") << QString("Ctrl++") << QString("Ctrl++");
-#if QT_VERSION > 0x040100
QTest::newRow("Ctrl+,") << QString("Ctrl+,") << QString("Ctrl+,") << QString("Ctrl+,");
QTest::newRow("Ctrl+,,Ctrl+,") << QString("Ctrl+,,Ctrl+,") << QString("Ctrl+,, Ctrl+,") << QString("Ctrl+,, Ctrl+,");
-#endif
QTest::newRow("MultiKey") << QString("Alt+X, Ctrl+Y, Z") << QString("Alt+X, Ctrl+Y, Z")
<< QString("Alt+X, Ctrl+Y, Z");
@@ -406,10 +400,8 @@ void tst_QKeySequence::toString_data()
QTest::newRow("Shift") << MacShift + "\x0c5" << QString("Shift+\x0c5") << MacShift + "\x0c5";
QTest::newRow("Meta") << MacMeta + "\x0c5" << QString("Meta+\x0c5") << MacMeta + "\x0c5";
QTest::newRow("Ctrl+Plus") << MacCtrl + "+" << QString("Ctrl++") << MacCtrl + "+";
-#if QT_VERSION > 0x040100
QTest::newRow("Ctrl+,") << MacCtrl + "," << QString("Ctrl+,") << MacCtrl + ",";
QTest::newRow("Ctrl+,,Ctrl+,") << MacCtrl + ",, " + MacCtrl + "," << QString("Ctrl+,, Ctrl+,") << MacCtrl + ",, " + MacCtrl + ",";
-#endif
QTest::newRow("MultiKey") << MacAlt + "X, " + MacCtrl + "Y, Z" << QString("Alt+X, Ctrl+Y, Z")
<< MacAlt + "X, " + MacCtrl + "Y, Z";
QTest::newRow("Invalid") << QString("Ctrly") << QString("") << QString("");
diff --git a/tests/auto/qlabel/tst_qlabel.cpp b/tests/auto/qlabel/tst_qlabel.cpp
index 1783a3d..4580236 100644
--- a/tests/auto/qlabel/tst_qlabel.cpp
+++ b/tests/auto/qlabel/tst_qlabel.cpp
@@ -263,10 +263,8 @@ void tst_QLabel::setTextFormat()
testWidget->setTextFormat( Qt::RichText );
QVERIFY( testWidget->textFormat() == Qt::RichText );
-#if QT_VERSION >= 0x030100
testWidget->setTextFormat( Qt::LogText );
QVERIFY( testWidget->textFormat() == Qt::LogText );
-#endif
testWidget->setTextFormat( Qt::AutoText );
QVERIFY( testWidget->textFormat() == Qt::AutoText );
diff --git a/tests/auto/qlibrary/tst_qlibrary.cpp b/tests/auto/qlibrary/tst_qlibrary.cpp
index dea0c54e..3e7e3f3 100644
--- a/tests/auto/qlibrary/tst_qlibrary.cpp
+++ b/tests/auto/qlibrary/tst_qlibrary.cpp
@@ -187,7 +187,7 @@ void tst_QLibrary::version()
QFETCH( int, loadversion );
QFETCH( int, resultversion );
-#if QT_VERSION >= 0x040200 && !defined(Q_OS_AIX) && !defined(Q_OS_WIN)
+#if !defined(Q_OS_AIX) && !defined(Q_OS_WIN)
QString currDir = QDir::currentPath();
QLibrary library( currDir + QLatin1Char('/') + lib, loadversion );
bool ok = library.load();
@@ -218,7 +218,6 @@ void tst_QLibrary::load_data()
QTest::newRow("ok (libmylib ver. 1)") << currDir + "/libmylib" <<(bool)true;
#endif
-#if QT_VERSION >= 0x040103
# if defined(Q_OS_WIN32) || defined(Q_OS_WINCE)
QTest::newRow( "ok01 (with suffix)" ) << currDir + "/mylib.dll" << (bool)true;
QTest::newRow( "ok02 (with non-standard suffix)" ) << currDir + "/mylib.dl2" << (bool)true;
@@ -228,7 +227,6 @@ void tst_QLibrary::load_data()
QTest::newRow( "ok02 (with non-standard suffix)" ) << currDir + "/libmylib.so2" << (bool)true;
QTest::newRow( "ok03 (with non-standard suffix)" ) << currDir + "/system.trolltech.test.mylib.so" << (bool)true;
# endif // Q_OS_UNIX
-#endif // QT_VERSION
}
void tst_QLibrary::load()
@@ -438,7 +436,7 @@ void tst_QLibrary::loadHints_data()
QTest::addColumn<bool>("result");
QLibrary::LoadHints lh;
-#if QT_VERSION >= 0x040300 && defined(Q_OS_AIX)
+#if defined(Q_OS_AIX)
if (QFile::exists("/usr/lib/libGL.a") || QFile::exists("/usr/X11R6/lib/libGL.a")) {
# if QT_POINTER_SIZE == 4
QTest::newRow( "ok03 (Archive member)" ) << "libGL.a(shr.o)" << int(QLibrary::LoadArchiveMemberHint) << (bool)TRUE;
@@ -446,9 +444,8 @@ void tst_QLibrary::loadHints_data()
QTest::newRow( "ok03 (Archive member)" ) << "libGL.a(shr_64.o)" << int(QLibrary::LoadArchiveMemberHint) << (bool)TRUE;
#endif
}
-#endif // QT_VERSION
+#endif
-#if QT_VERSION >= 0x040103
QString currDir = QDir::currentPath();
lh |= QLibrary::ResolveAllSymbolsHint;
# if defined(Q_OS_WIN32) || defined(Q_OS_WINCE)
@@ -460,8 +457,6 @@ void tst_QLibrary::loadHints_data()
QTest::newRow( "ok02 (with non-standard suffix)" ) << currDir + "/libmylib.so2" << int(lh) << (bool)TRUE;
QTest::newRow( "ok03 (with many dots)" ) << currDir + "/system.trolltech.test.mylib.so" << int(lh) << (bool)TRUE;
# endif // Q_OS_UNIX
-#endif // QT_VERSION
-
}
void tst_QLibrary::loadHints()
diff --git a/tests/auto/qline/tst_qline.cpp b/tests/auto/qline/tst_qline.cpp
index 932ec8e..ab0bd9b 100644
--- a/tests/auto/qline/tst_qline.cpp
+++ b/tests/auto/qline/tst_qline.cpp
@@ -201,8 +201,8 @@ void tst_QLine::testIntersection_data()
b = b.translated(1, 1);
QTest::newRow(qPrintable(QString::fromLatin1("rotation-%0").arg(i)))
- << a.x1() << a.y1() << a.x2() << a.y2()
- << b.x1() << b.y1() << b.x2() << b.y2()
+ << (double)a.x1() << (double)a.y1() << (double)a.x2() << (double)a.y2()
+ << (double)b.x1() << (double)b.y1() << (double)b.x2() << (double)b.y2()
<< int(QLineF::BoundedIntersection)
<< 1.0
<< 1.0;
@@ -232,8 +232,8 @@ void tst_QLine::testIntersection()
QCOMPARE(int(itype), type);
if (type != QLineF::NoIntersection) {
- QCOMPARE(ip.x(), qreal(ix));
- QCOMPARE(ip.y(), qreal(iy));
+ QVERIFY(qAbs(ip.x() - ix) < epsilon);
+ QVERIFY(qAbs(ip.y() - iy) < epsilon);
}
}
diff --git a/tests/auto/qlineedit/tst_qlineedit.cpp b/tests/auto/qlineedit/tst_qlineedit.cpp
index 8779831..ea1f79f 100644
--- a/tests/auto/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/qlineedit/tst_qlineedit.cpp
@@ -1466,14 +1466,10 @@ void tst_QLineEdit::textMask_data()
void tst_QLineEdit::textMask()
{
-#if (QT_VERSION-0 >= 0x030303)
QFETCH( QString, insertString );
testWidget->setInputMask( "#" );
testWidget->setText( insertString );
QCOMPARE( testWidget->text(), insertString );
-#else
- QSKIP( "This test function tests a problem with masks that was fixed in 3.3", SkipAll);
-#endif
}
void tst_QLineEdit::setText()
diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp
index 2e7f412..c372475 100644
--- a/tests/auto/qlistview/tst_qlistview.cpp
+++ b/tests/auto/qlistview/tst_qlistview.cpp
@@ -105,6 +105,7 @@ private slots:
void task203585_selectAll();
void task228566_infiniteRelayout();
void task248430_crashWith0SizedItem();
+ void task250446_scrollChanged();
};
// Testing get/set functions
@@ -1528,5 +1529,32 @@ void tst_QListView::task248430_crashWith0SizedItem()
QTest::qWait(100);
}
+void tst_QListView::task250446_scrollChanged()
+{
+ QStandardItemModel model(200, 1);
+ QListView view;
+ view.setModel(&model);
+ QModelIndex index = model.index(0, 0);
+ QVERIFY(index.isValid());
+ view.setCurrentIndex(index);
+ view.show();
+ QTest::qWait(100);
+ const int scrollValue = view.verticalScrollBar()->maximum();
+ view.verticalScrollBar()->setValue(scrollValue);
+ QCOMPARE(view.verticalScrollBar()->value(), scrollValue);
+ QCOMPARE(view.currentIndex(), index);
+
+ view.showMinimized();
+ QTest::qWait(100);
+ QCOMPARE(view.verticalScrollBar()->value(), scrollValue);
+ QCOMPARE(view.currentIndex(), index);
+
+ view.showNormal();
+ QTest::qWait(100);
+ QCOMPARE(view.verticalScrollBar()->value(), scrollValue);
+ QCOMPARE(view.currentIndex(), index);
+}
+
+
QTEST_MAIN(tst_QListView)
#include "tst_qlistview.moc"
diff --git a/tests/auto/qlocalsocket/test/test.pro b/tests/auto/qlocalsocket/test/test.pro
index 8ce7c50..7befdf9 100644
--- a/tests/auto/qlocalsocket/test/test.pro
+++ b/tests/auto/qlocalsocket/test/test.pro
@@ -1,7 +1,5 @@
load(qttest_p4)
-include(../src/src.pri)
-
DEFINES += QLOCALSERVER_DEBUG
DEFINES += QLOCALSOCKET_DEBUG
!wince*: {
@@ -14,14 +12,16 @@ DEFINES += QLOCALSOCKET_DEBUG
QT = core network
SOURCES += ../tst_qlocalsocket.cpp
-TARGET = ../tst_qlocalsocket
-win32 {
+TARGET = tst_qlocalsocket
+CONFIG(debug_and_release) {
CONFIG(debug, debug|release) {
- TARGET = ../../debug/tst_qlocalsocket
-} else {
- TARGET = ../../release/tst_qlocalsocket
+ DESTDIR = ../debug
+ } else {
+ DESTDIR = ../release
}
+} else {
+ DESTDIR = ..
}
wince* {
diff --git a/tests/auto/qlocalsocket/tst_qlocalsocket.cpp b/tests/auto/qlocalsocket/tst_qlocalsocket.cpp
index f741b96..deabda6 100644
--- a/tests/auto/qlocalsocket/tst_qlocalsocket.cpp
+++ b/tests/auto/qlocalsocket/tst_qlocalsocket.cpp
@@ -95,6 +95,7 @@ private slots:
void longPath();
void waitForDisconnect();
+ void waitForDisconnectByServer();
void removeServer();
@@ -112,6 +113,8 @@ tst_QLocalSocket::tst_QLocalSocket()
#endif
))
qWarning() << "lackey executable doesn't exists!";
+
+ QLocalServer::removeServer("tst_localsocket");
}
tst_QLocalSocket::~tst_QLocalSocket()
@@ -783,6 +786,25 @@ void tst_QLocalSocket::waitForDisconnect()
QVERIFY(timer.elapsed() < 2000);
}
+void tst_QLocalSocket::waitForDisconnectByServer()
+{
+ QString name = "tst_localsocket";
+ LocalServer server;
+ QVERIFY(server.listen(name));
+ LocalSocket socket;
+ QSignalSpy spy(&socket, SIGNAL(disconnected()));
+ QVERIFY(spy.isValid());
+ socket.connectToServer(name);
+ QVERIFY(socket.waitForConnected(3000));
+ QVERIFY(server.waitForNewConnection(3000));
+ QLocalSocket *serverSocket = server.nextPendingConnection();
+ QVERIFY(serverSocket);
+ serverSocket->close();
+ QVERIFY(serverSocket->state() == QLocalSocket::UnconnectedState);
+ QVERIFY(socket.waitForDisconnected(3000));
+ QCOMPARE(spy.count(), 1);
+}
+
void tst_QLocalSocket::removeServer()
{
// this is a hostile takeover, but recovering from a crash results in the same
diff --git a/tests/auto/qmainwindow/tst_qmainwindow.cpp b/tests/auto/qmainwindow/tst_qmainwindow.cpp
index 4529bd5..b16a62a 100644
--- a/tests/auto/qmainwindow/tst_qmainwindow.cpp
+++ b/tests/auto/qmainwindow/tst_qmainwindow.cpp
@@ -1039,11 +1039,6 @@ void tst_QMainWindow::toolBarArea()
QMainWindow mw;
QToolBar tb(&mw);
-#if QT_VERSION <= 0x040103
- // this would assert in previous versions
- QCOMPARE(mw.toolBarArea(&tb), Qt::ToolBarArea(0));
-#endif
-
for (int j = 0; j < areaCount; ++j) {
Qt::ToolBarArea otherArea = areas[j];
@@ -1205,11 +1200,6 @@ void tst_QMainWindow::dockWidgetArea()
QMainWindow mw;
QDockWidget dw(&mw);
-#if QT_VERSION <= 0x040103
- // this would assert in previous versions
- QCOMPARE(mw.dockWidgetArea(&dw), Qt::DockWidgetArea(0));
-#endif
-
for (int j = 0; j < areaCount; ++j) {
Qt::DockWidgetArea otherArea = areas[i];
diff --git a/tests/auto/qmake/testdata/functions/functions.pro b/tests/auto/qmake/testdata/functions/functions.pro
index 5ee5f51..9ed92f96 100644
--- a/tests/auto/qmake/testdata/functions/functions.pro
+++ b/tests/auto/qmake/testdata/functions/functions.pro
@@ -51,15 +51,11 @@ include( infiletest.pro )
message( "FAILED: include function: $$DEFINES" )
}
-lessThan(QT_VERSION, 40200) {
- message( "SKIPPED: replace function only in 4.2" )
-} else {
- #replace
- VERSION=1.0.0
- VERSION_replaced=$$replace(VERSION,\.,_)
- !isEqual(VERSION_replaced, 1_0_0) {
- message( "FAILED: replace function: $$VERSION_replaced" )
- }
+#replace
+VERSION=1.0.0
+VERSION_replaced=$$replace(VERSION,\.,_)
+!isEqual(VERSION_replaced, 1_0_0) {
+ message( "FAILED: replace function: $$VERSION_replaced" )
}
#test functions
diff --git a/tests/auto/qmap/tst_qmap.cpp b/tests/auto/qmap/tst_qmap.cpp
index ce413c5..99efc80 100644
--- a/tests/auto/qmap/tst_qmap.cpp
+++ b/tests/auto/qmap/tst_qmap.cpp
@@ -728,37 +728,27 @@ void tst_QMap::iterators()
void tst_QMap::keys_values_uniqueKeys()
{
QMap<QString, int> map;
-#if QT_VERSION >= 0x040200
QVERIFY(map.uniqueKeys().isEmpty());
-#endif
QVERIFY(map.keys().isEmpty());
QVERIFY(map.values().isEmpty());
map.insertMulti("alpha", 1);
QVERIFY(map.keys() == (QList<QString>() << "alpha"));
-#if QT_VERSION >= 0x040200
QVERIFY(map.uniqueKeys() == map.keys());
-#endif
QVERIFY(map.values() == (QList<int>() << 1));
map.insertMulti("beta", -2);
QVERIFY(map.keys() == (QList<QString>() << "alpha" << "beta"));
-#if QT_VERSION >= 0x040200
QVERIFY(map.keys() == map.uniqueKeys());
-#endif
QVERIFY(map.values() == (QList<int>() << 1 << -2));
map.insertMulti("alpha", 2);
-#if QT_VERSION >= 0x040200
QVERIFY(map.uniqueKeys() == (QList<QString>() << "alpha" << "beta"));
-#endif
QVERIFY(map.keys() == (QList<QString>() << "alpha" << "alpha" << "beta"));
QVERIFY(map.values() == (QList<int>() << 2 << 1 << -2));
map.insertMulti("beta", 4);
-#if QT_VERSION >= 0x040200
QVERIFY(map.uniqueKeys() == (QList<QString>() << "alpha" << "beta"));
-#endif
QVERIFY(map.keys() == (QList<QString>() << "alpha" << "alpha" << "beta" << "beta"));
QVERIFY(map.values() == (QList<int>() << 2 << 1 << 4 << -2));
}
diff --git a/tests/auto/qmenu/tst_qmenu.cpp b/tests/auto/qmenu/tst_qmenu.cpp
index 7607838..5b6e54c 100644
--- a/tests/auto/qmenu/tst_qmenu.cpp
+++ b/tests/auto/qmenu/tst_qmenu.cpp
@@ -92,6 +92,7 @@ private slots:
void activeSubMenuPosition();
void task242454_sizeHint();
void task176201_clear();
+ void task250673_activeMutliColumnSubMenuPosition();
protected slots:
void onActivated(QAction*);
void onHighlighted(QAction*);
@@ -678,6 +679,39 @@ void tst_QMenu::task176201_clear()
QTest::mouseClick(&menu, Qt::LeftButton, 0, menu.rect().center());
}
+void tst_QMenu::task250673_activeMutliColumnSubMenuPosition()
+{
+ class MyMenu : public QMenu
+ {
+ public:
+ int columnCount() const { return QMenu::columnCount(); }
+ };
+
+ QMenu sub;
+ sub.addAction("Sub-Item1");
+ QAction *subAction = sub.addAction("Sub-Item2");
+
+ MyMenu main;
+ main.addAction("Item 1");
+ QAction *menuAction = main.addMenu(&sub);
+ main.popup(QPoint(200,200));
+
+ uint i = 2;
+ while (main.columnCount() < 2) {
+ main.addAction(QString("Item %1").arg(i));
+ ++i;
+ Q_ASSERT(i<1000);
+ }
+ main.setActiveAction(menuAction);
+ sub.setActiveAction(subAction);
+ QVERIFY(main.isVisible());
+ QCOMPARE(main.activeAction(), menuAction);
+ QVERIFY(sub.isVisible());
+ QVERIFY(sub.pos().x() > main.pos().x());
+
+ const int subMenuOffset = main.style()->pixelMetric(QStyle::PM_SubMenuOverlap, 0, &main);
+ QVERIFY((sub.geometry().left() - subMenuOffset + 5) < main.geometry().right());
+}
QTEST_MAIN(tst_QMenu)
#include "tst_qmenu.moc"
diff --git a/tests/auto/qmenubar/tst_qmenubar.cpp b/tests/auto/qmenubar/tst_qmenubar.cpp
index e0a9f42..538e443 100644
--- a/tests/auto/qmenubar/tst_qmenubar.cpp
+++ b/tests/auto/qmenubar/tst_qmenubar.cpp
@@ -457,8 +457,8 @@ void tst_QMenuBar::accel()
void tst_QMenuBar::accel_noQt3()
{
-#ifdef Q_WS_MAC
- QSKIP("On Mac, native key events are needed to test menu action activation", SkipAll);
+#if defined(Q_WS_MAC) || defined(Q_OS_WINCE_WM)
+ QSKIP("On Mac/WinCE, native key events are needed to test menu action activation", SkipAll);
#endif
// create a popup menu with menu items set the accelerators later...
initSimpleMenubar_noQt3();
@@ -486,8 +486,8 @@ void tst_QMenuBar::activatedCount()
void tst_QMenuBar::activatedCount_noQt3()
{
-#ifdef Q_WS_MAC
- QSKIP("On Mac, native key events are needed to test menu action activation", SkipAll);
+#if defined(Q_WS_MAC) || defined(Q_OS_WINCE_WM)
+ QSKIP("On Mac/WinCE, native key events are needed to test menu action activation", SkipAll);
#endif
// create a popup menu with menu items set the accelerators later...
initSimpleMenubar_noQt3();
@@ -888,8 +888,8 @@ void tst_QMenuBar::insertItem_QString_QObject_noQt3()
void tst_QMenuBar::check_accelKeys()
{
-#ifdef Q_WS_MAC
- QSKIP("On Mac, native key events are needed to test menu action activation", SkipAll);
+#if defined(Q_WS_MAC) || defined(Q_OS_WINCE_WM)
+ QSKIP("On Mac/WinCE, native key events are needed to test menu action activation", SkipAll);
#endif
#ifdef QT3_SUPPORT
initComplexMenubar();
@@ -961,8 +961,8 @@ void tst_QMenuBar::check_accelKeys()
void tst_QMenuBar::check_cursorKeys1()
{
-#ifdef Q_WS_MAC
- QSKIP("Qt/Mac does not use the native popups/menubar", SkipAll);
+#if defined(Q_WS_MAC) || defined(Q_OS_WINCE_WM)
+ QSKIP("Qt/Mac,WinCE does not use the native popups/menubar", SkipAll);
#endif
#ifdef QT3_SUPPORT
@@ -996,8 +996,8 @@ void tst_QMenuBar::check_cursorKeys1()
void tst_QMenuBar::check_cursorKeys2()
{
-#ifdef Q_WS_MAC
- QSKIP("Qt/Mac does not use the native popups/menubar", SkipAll);
+#if defined(Q_WS_MAC) || defined(Q_OS_WINCE_WM)
+ QSKIP("Qt/Mac,WinCE does not use the native popups/menubar", SkipAll);
#endif
#ifdef QT3_SUPPORT
@@ -1030,8 +1030,8 @@ void tst_QMenuBar::check_cursorKeys2()
*/
void tst_QMenuBar::check_cursorKeys3()
{
-#ifdef Q_WS_MAC
- QSKIP("Qt/Mac does not use the native popups/menubar", SkipAll);
+#if defined(Q_WS_MAC) || defined(Q_OS_WINCE_WM)
+ QSKIP("Qt/Mac,WinCE does not use the native popups/menubar", SkipAll);
#endif
#ifdef QT3_SUPPORT
@@ -1186,8 +1186,8 @@ void tst_QMenuBar::check_escKey()
void tst_QMenuBar::check_escKey_noQt3()
{
-#ifdef Q_WS_MAC
- QSKIP("Qt/Mac does not use the native popups/menubar", SkipAll);
+#if defined(Q_WS_MAC) || defined(Q_OS_WINCE_WM)
+ QSKIP("Qt/Mac,WinCE does not use the native popups/menubar", SkipAll);
#endif
initComplexMenubar_noQt3();
@@ -1329,7 +1329,7 @@ void tst_QMenuBar::check_escKey_noQt3()
void
tst_QMenuBar::allowActiveAndDisabled()
{
-#ifndef Q_WS_MAC
+#if !defined(Q_WS_MAC) && !defined(Q_OS_WINCE_WM)
mb->hide();
mb->clear();
@@ -1393,8 +1393,8 @@ void tst_QMenuBar::check_altPress()
void tst_QMenuBar::check_shortcutPress()
{
-#ifdef Q_WS_MAC
- QSKIP("Qt/Mac does not use the native popups/menubar", SkipAll);
+#if defined(Q_WS_MAC) || defined(Q_OS_WINCE_WM)
+ QSKIP("Qt/Mac,WinCE does not use the native popups/menubar", SkipAll);
#endif
#ifdef QT3_SUPPORT
@@ -1429,7 +1429,7 @@ void tst_QMenuBar::check_menuPosition()
#ifdef Q_WS_MAC
QSKIP("Qt/Mac does not use the native popups/menubar", SkipAll);
#endif
-#ifdef Q_OS_WINCE
+#ifdef Q_OS_WINCE_WM
QSKIP("Qt/CE uses native menubar", SkipAll);
#endif
QMenu menu;
diff --git a/tests/auto/qmetaobject/tst_qmetaobject.cpp b/tests/auto/qmetaobject/tst_qmetaobject.cpp
index b3b7f33..3d04a0f 100644
--- a/tests/auto/qmetaobject/tst_qmetaobject.cpp
+++ b/tests/auto/qmetaobject/tst_qmetaobject.cpp
@@ -257,11 +257,7 @@ private slots:
void on_child1_destroyed() { ++invokeCount2; }
};
-#if QT_VERSION >= 0x040200
#define FUNCTION(x) "QMetaObject::" x ": "
-#else
-#define FUNCTION(x) "QMetaObject::" x "(): "
-#endif
void tst_QMetaObject::connectSlotsByName()
{
diff --git a/tests/auto/qmetatype/tst_qmetatype.cpp b/tests/auto/qmetatype/tst_qmetatype.cpp
index eccf7e6..d71f470 100644
--- a/tests/auto/qmetatype/tst_qmetatype.cpp
+++ b/tests/auto/qmetatype/tst_qmetatype.cpp
@@ -127,7 +127,6 @@ protected:
void tst_QMetaType::threadSafety()
{
-#if QT_VERSION >= 0x040100
MetaTypeTorturer t1;
MetaTypeTorturer t2;
MetaTypeTorturer t3;
@@ -139,7 +138,6 @@ void tst_QMetaType::threadSafety()
QVERIFY(t1.wait());
QVERIFY(t2.wait());
QVERIFY(t3.wait());
-#endif
}
namespace TestSpace
diff --git a/tests/auto/qmovie/tst_qmovie.cpp b/tests/auto/qmovie/tst_qmovie.cpp
index dd24f97..23b057b 100644
--- a/tests/auto/qmovie/tst_qmovie.cpp
+++ b/tests/auto/qmovie/tst_qmovie.cpp
@@ -71,9 +71,7 @@ private slots:
void playMovie();
void jumpToFrame_data();
void jumpToFrame();
-#if QT_VERSION >= 0x040101
void changeMovieFile();
-#endif // QT_VERSION
};
// Testing get/set functions
@@ -201,7 +199,6 @@ void tst_QMovie::jumpToFrame()
QVERIFY(movie.currentFrameNumber() == 0);
}
-#if QT_VERSION >= 0x040101
void tst_QMovie::changeMovieFile()
{
QMovie movie("animations/comicsecard.gif");
@@ -211,7 +208,5 @@ void tst_QMovie::changeMovieFile()
QVERIFY(movie.currentFrameNumber() == -1);
}
-#endif // QT_VERSION
-
QTEST_MAIN(tst_QMovie)
#include "tst_qmovie.moc"
diff --git a/tests/auto/qmutexlocker/tst_qmutexlocker.cpp b/tests/auto/qmutexlocker/tst_qmutexlocker.cpp
index cb5112d..cc3e144 100644
--- a/tests/auto/qmutexlocker/tst_qmutexlocker.cpp
+++ b/tests/auto/qmutexlocker/tst_qmutexlocker.cpp
@@ -194,9 +194,6 @@ void tst_QMutexLocker::unlockAndRelockTest()
void tst_QMutexLocker::lockerStateTest()
{
-#if QT_VERSION < 0x040200
- QSKIP("QMutexLocker doesn't keep state in Qt < 4.2", SkipAll);
-#else
class LockerStateThread : public tst_QMutexLockerThread
{
public:
@@ -233,7 +230,6 @@ void tst_QMutexLocker::lockerStateTest()
delete thread;
thread = 0;
-#endif
}
QTEST_MAIN(tst_QMutexLocker)
diff --git a/tests/auto/qnativesocketengine/tst_qnativesocketengine.cpp b/tests/auto/qnativesocketengine/tst_qnativesocketengine.cpp
index a28c49a..68ec414 100644
--- a/tests/auto/qnativesocketengine/tst_qnativesocketengine.cpp
+++ b/tests/auto/qnativesocketengine/tst_qnativesocketengine.cpp
@@ -42,8 +42,6 @@
#include <QtTest/QtTest>
-#if QT_VERSION >= 0x040100
-
#ifdef Q_OS_WIN
#include <winsock2.h>
#endif
@@ -694,7 +692,3 @@ void tst_QNativeSocketEngine::receiveUrgentData()
QTEST_MAIN(tst_QNativeSocketEngine)
#include "tst_qnativesocketengine.moc"
-
-#else // QT_VERSION
-QTEST_NOOP_MAIN
-#endif
diff --git a/tests/auto/qnetworkcookie/tst_qnetworkcookie.cpp b/tests/auto/qnetworkcookie/tst_qnetworkcookie.cpp
index 36a4b45..4ee5b9f 100644
--- a/tests/auto/qnetworkcookie/tst_qnetworkcookie.cpp
+++ b/tests/auto/qnetworkcookie/tst_qnetworkcookie.cpp
@@ -234,7 +234,7 @@ void tst_QNetworkCookie::parseSingleCookie_data()
QTest::newRow("path-with-utf8-2") << "a=b;path=/R%C3%A9sum%C3%A9" << cookie;
cookie.setPath(QString());
- cookie.setDomain("trolltech.com");
+ cookie.setDomain(".trolltech.com");
QTest::newRow("plain-domain1") << "a=b;domain=trolltech.com" << cookie;
QTest::newRow("plain-domain2") << "a=b; domain=trolltech.com " << cookie;
QTest::newRow("plain-domain3") << "a=b;domain=TROLLTECH.COM" << cookie;
@@ -246,7 +246,7 @@ void tst_QNetworkCookie::parseSingleCookie_data()
QTest::newRow("dot-domain3") << "a=b; domain=.TROLLTECH.COM" << cookie;
QTest::newRow("dot-domain4") << "a=b; Domain = .TROLLTECH.COM" << cookie;
- cookie.setDomain(QString::fromUtf8("d\303\270gn\303\245pent.troll.no"));
+ cookie.setDomain(QString::fromUtf8(".d\303\270gn\303\245pent.troll.no"));
QTest::newRow("idn-domain1") << "a=b;domain=xn--dgnpent-gxa2o.troll.no" << cookie;
QTest::newRow("idn-domain2") << "a=b;domain=d\303\270gn\303\245pent.troll.no" << cookie;
QTest::newRow("idn-domain3") << "a=b;domain=XN--DGNPENT-GXA2O.TROLL.NO" << cookie;
@@ -259,7 +259,7 @@ void tst_QNetworkCookie::parseSingleCookie_data()
QTest::newRow("dot-idn-domain3") << "a=b;domain=.XN--DGNPENT-GXA2O.TROLL.NO" << cookie;
QTest::newRow("dot-idn-domain4") << "a=b;domain=.D\303\230GN\303\205PENT.troll.NO" << cookie;
- cookie.setDomain("trolltech.com");
+ cookie.setDomain(".trolltech.com");
cookie.setPath("/");
QTest::newRow("two-fields") << "a=b;domain=trolltech.com;path=/" << cookie;
QTest::newRow("two-fields2") << "a=b; domain=trolltech.com; path=/" << cookie;
@@ -662,7 +662,7 @@ void tst_QNetworkCookie::parseMultipleCookies_data()
QTest::newRow("complex-1") << "c=d, a=, foo=bar; path=/" << list;
cookie.setName("baz");
- cookie.setDomain("trolltech.com");
+ cookie.setDomain(".trolltech.com");
list.prepend(cookie);
QTest::newRow("complex-2") << "baz=bar; path=/; domain=trolltech.com, c=d,a=,foo=bar; path=/" << list;
diff --git a/tests/auto/qnetworkinterface/tst_qnetworkinterface.cpp b/tests/auto/qnetworkinterface/tst_qnetworkinterface.cpp
index 6e5afd2..a246b04 100644
--- a/tests/auto/qnetworkinterface/tst_qnetworkinterface.cpp
+++ b/tests/auto/qnetworkinterface/tst_qnetworkinterface.cpp
@@ -42,10 +42,6 @@
#include <QtTest/QtTest>
-#if QT_VERSION < 0x040200
-QTEST_NOOP_MAIN
-#else
-
#include <qcoreapplication.h>
#include <qnetworkinterface.h>
#include <qtcpsocket.h>
@@ -210,5 +206,3 @@ void tst_QNetworkInterface::copyInvalidInterface()
QTEST_MAIN(tst_QNetworkInterface)
#include "tst_qnetworkinterface.moc"
-
-#endif
diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
index 503118a..104b788 100644
--- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
@@ -2236,9 +2236,6 @@ void tst_QNetworkReply::ioPutToFileFromLocalSocket_data()
void tst_QNetworkReply::ioPutToFileFromLocalSocket()
{
-#if defined(Q_OS_WINCE) && QT_VERSION < 0x040500
- QSKIP("No local sockets on Windows CE for Qt 4.4", SkipAll);
-#else
QString socketname = "networkreplytest";
QLocalServer server;
if (!server.listen(socketname)) {
@@ -2276,7 +2273,6 @@ void tst_QNetworkReply::ioPutToFileFromLocalSocket()
QCOMPARE(file.size(), qint64(data.size()));
QByteArray contents = file.readAll();
QCOMPARE(contents, data);
-#endif
}
void tst_QNetworkReply::ioPutToFileFromProcess_data()
diff --git a/tests/auto/qobject/tst_qobject.cpp b/tests/auto/qobject/tst_qobject.cpp
index 096f1c5..fb46073 100644
--- a/tests/auto/qobject/tst_qobject.cpp
+++ b/tests/auto/qobject/tst_qobject.cpp
@@ -264,13 +264,9 @@ void tst_QObject::disconnect()
QCOMPARE( r1->called(1), FALSE );
r1->reset();
-#if QT_VERSION >= 0x030100
QCOMPARE( ret, TRUE );
-#endif
ret = QObject::disconnect( s, SIGNAL( signal1() ), r1, SLOT( slot1() ) );
-#if QT_VERSION >= 0x030100
QCOMPARE( ret, FALSE );
-#endif
// disconnect all signals from s from all slots from r1
QObject::disconnect( s, 0, r1, 0 );
@@ -702,12 +698,10 @@ void tst_QObject::connectDisconnectNotify()
QCOMPARE( s->org_signal, s->nw_signal );
QCOMPARE( s->org_signal.toLatin1(), QMetaObject::normalizedSignature(a_signal.toLatin1().constData()) );
-#if QT_VERSION > 0x040101
// Reconnect
connect( (SenderObject*)s, a_signal.toLatin1(), (ReceiverObject*)r, a_slot.toLatin1() );
// Test disconnectNotify for a complete disconnect
((SenderObject*)s)->disconnect((ReceiverObject*)r);
-#endif
delete s;
delete r;
diff --git a/tests/auto/qpainter/tst_qpainter.cpp b/tests/auto/qpainter/tst_qpainter.cpp
index fb8df2e..c81bf67 100644
--- a/tests/auto/qpainter/tst_qpainter.cpp
+++ b/tests/auto/qpainter/tst_qpainter.cpp
@@ -2573,23 +2573,6 @@ void tst_QPainter::setOpacity()
p.fillRect(imageRect, QColor(127, 127, 127));
p.end();
-#if defined(Q_WS_QWS) && (QT_VERSION < 0x040500)
- // embedded has an optimized implementation in 4.4
- if ((dest.format() == QImage::Format_ARGB8555_Premultiplied ||
- dest.format() == QImage::Format_RGB555 ||
- dest.format() == QImage::Format_RGB666 ||
- dest.format() == QImage::Format_RGB888 ||
- dest.format() == QImage::Format_ARGB8565_Premultiplied) &&
- src.format() != QImage::Format_RGB32)
- {
- QColor c1 = expected.pixel(1, 1);
- QColor c2 = dest.pixel(1, 1);
- QVERIFY(qAbs(c1.red() - c2.red()) < 2);
- QVERIFY(qAbs(c1.green() - c2.green()) < 2);
- QVERIFY(qAbs(c1.blue() - c2.blue()) < 2);
- QVERIFY(qAbs(c1.alpha() - c2.alpha()) < 2);
- } else
-#endif
QCOMPARE(dest, expected);
}
@@ -3809,8 +3792,11 @@ void tst_QPainter::imageBlending()
void tst_QPainter::paintOnNullPixmap()
{
+ QPixmap pix(16, 16);
+
QPixmap textPixmap;
QPainter p(&textPixmap);
+ p.drawPixmap(10, 10, pix);
p.end();
QPixmap textPixmap2(16,16);
diff --git a/tests/auto/qpainterpath/tst_qpainterpath.cpp b/tests/auto/qpainterpath/tst_qpainterpath.cpp
index 873fe59..38fb8d7 100644
--- a/tests/auto/qpainterpath/tst_qpainterpath.cpp
+++ b/tests/auto/qpainterpath/tst_qpainterpath.cpp
@@ -84,11 +84,9 @@ private slots:
void testOperatorEquals_fuzzy();
void testOperatorDatastream();
-#if QT_VERSION >= 0x040200
void testArcMoveTo_data();
void testArcMoveTo();
void setElementPositionAt();
-#endif
void testOnPath_data();
void testOnPath();
diff --git a/tests/auto/qpicture/tst_qpicture.cpp b/tests/auto/qpicture/tst_qpicture.cpp
index ddf37f7..dfa61c7 100644
--- a/tests/auto/qpicture/tst_qpicture.cpp
+++ b/tests/auto/qpicture/tst_qpicture.cpp
@@ -125,12 +125,10 @@ void tst_QPicture::boundingRect()
// default value
QVERIFY( !p1.boundingRect().isValid() );
-#if QT_VERSION >= 0x030100
QRect r1( 20, 30, 5, 15 );
p1.setBoundingRect( r1 );
QCOMPARE( p1.boundingRect(), r1 );
p1.setBoundingRect(QRect());
-#endif
QPainter pt( &p1 );
pt.drawLine( 10, 20, 110, 80 );
diff --git a/tests/auto/qpixmapcache/tst_qpixmapcache.cpp b/tests/auto/qpixmapcache/tst_qpixmapcache.cpp
index c163b52..1f515ff 100644
--- a/tests/auto/qpixmapcache/tst_qpixmapcache.cpp
+++ b/tests/auto/qpixmapcache/tst_qpixmapcache.cpp
@@ -166,6 +166,16 @@ void tst_QPixmapCache::insert()
QVERIFY(estimatedNum - 1 <= num <= estimatedNum + 1);
QPixmap p3;
QPixmapCache::insert("null", p3);
+
+ QPixmap c1(10, 10);
+ c1.fill(Qt::yellow);
+ QPixmapCache::insert("custom", c1);
+ QVERIFY(!c1.isDetached());
+ QPixmap c2(10, 10);
+ c2.fill(Qt::red);
+ QPixmapCache::insert("custom", c2);
+ //We have deleted the old pixmap in the cache for the same key
+ QVERIFY(c1.isDetached());
}
void tst_QPixmapCache::remove()
diff --git a/tests/auto/qpoint/tst_qpoint.cpp b/tests/auto/qpoint/tst_qpoint.cpp
index 67fefa8..16d55fc 100644
--- a/tests/auto/qpoint/tst_qpoint.cpp
+++ b/tests/auto/qpoint/tst_qpoint.cpp
@@ -60,6 +60,8 @@ public:
private slots:
void getSetCheck();
void division();
+
+ void manhattanLength();
};
tst_QPoint::tst_QPoint()
@@ -70,6 +72,24 @@ tst_QPoint::~tst_QPoint()
{
}
+
+
+void tst_QPoint::manhattanLength()
+{
+ {
+ QPoint p(10, 20);
+ QCOMPARE(p.manhattanLength(), 30);
+ }
+ {
+ QPointF p(10., 20.);
+ QCOMPARE(p.manhattanLength(), 30.);
+ }
+ {
+ QPointF p(10.1, 20.2);
+ QCOMPARE(p.manhattanLength(), 30.3);
+ }
+}
+
// Testing get/set functions
void tst_QPoint::getSetCheck()
{
diff --git a/tests/auto/qprinter/tst_qprinter.cpp b/tests/auto/qprinter/tst_qprinter.cpp
index 0febb87..a598bfc 100644
--- a/tests/auto/qprinter/tst_qprinter.cpp
+++ b/tests/auto/qprinter/tst_qprinter.cpp
@@ -121,9 +121,6 @@ void tst_QPrinter::getSetCheck()
obj1.setCollateCopies(false);
QCOMPARE(false, obj1.collateCopies());
obj1.setCollateCopies(true);
-#if !defined(Q_OS_UNIX) && QT_VERSION < 0x040200
- QEXPECT_FAIL("", "Apparently only the Unix (ps) printer supports collate at the moment", Continue);
-#endif
QCOMPARE(true, obj1.collateCopies());
obj1.setColorMode(QPrinter::GrayScale);
@@ -185,9 +182,6 @@ void tst_QPrinter::getSetCheck()
obj1.setFontEmbeddingEnabled(false);
QCOMPARE(false, obj1.fontEmbeddingEnabled());
obj1.setFontEmbeddingEnabled(true);
-#if !defined(Q_OS_UNIX) && QT_VERSION < 0x040200
- QEXPECT_FAIL("", "Apparently only the Unix (ps) printer supports font embedding at the moment", Continue);
-#endif
QCOMPARE(true, obj1.fontEmbeddingEnabled());
// PageSize QPrinter::pageSize()
@@ -255,20 +249,13 @@ void tst_QPrinter::cleanup()
void tst_QPrinter::testPageSetupDialog()
{
-#if QT_VERSION < 0x040102
- QSKIP("QPrinter::OutputFormat doesn't exist in Qt 4.0.x and test crashes on < 4.1.2");
-#else
-
// Make sure this doesn't crash at least
{
QPrinter printer;
QPageSetupDialog dialog(&printer);
}
-#endif
}
-
-
void tst_QPrinter::testPageSize()
{
#if defined (Q_WS_WIN)
@@ -332,10 +319,6 @@ void tst_QPrinter::testPageRectAndPaperRect_data()
void tst_QPrinter::testPageRectAndPaperRect()
{
-#if QT_VERSION <= 0x040100
- QEXPECT_FAIL("", "Fixed in Qt 4.1.1", Continue);
-#endif
-
QFETCH(bool, withPainter);
QFETCH(int, orientation);
QFETCH(int, resolution);
@@ -529,9 +512,6 @@ void tst_QPrinter::testMulitpleSets()
QPrinter::PageSize printerPageSize = QPrinter::PageSize(pageSize);
QPrinter printer(mode);
printer.setFullPage(true);
-#if QT_VERSION < 0x040103
- QEXPECT_FAIL("", "Fixed in Qt 4.1.3", SkipAll);
-#endif
int paperWidth, paperHeight;
//const int Tolerance = 2;
diff --git a/tests/auto/qprocess/testProcessEnvironment/main.cpp b/tests/auto/qprocess/testProcessEnvironment/main.cpp
index 098d13e..b5e75bc 100644
--- a/tests/auto/qprocess/testProcessEnvironment/main.cpp
+++ b/tests/auto/qprocess/testProcessEnvironment/main.cpp
@@ -3,6 +3,40 @@
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
****************************************************************************/
#include <stdio.h>
diff --git a/tests/auto/qprocess/tst_qprocess.cpp b/tests/auto/qprocess/tst_qprocess.cpp
index ef78c2e..ba034ee 100644
--- a/tests/auto/qprocess/tst_qprocess.cpp
+++ b/tests/auto/qprocess/tst_qprocess.cpp
@@ -267,11 +267,9 @@ void tst_QProcess::simpleStart()
//-----------------------------------------------------------------------------
void tst_QProcess::startDetached()
{
-#if QT_VERSION >= 0x040200
QProcess proc;
QVERIFY(proc.startDetached("testProcessNormal/testProcessNormal",
QStringList() << "arg1" << "arg2"));
-#endif
QCOMPARE(QProcess::startDetached("nonexistingexe"), false);
}
diff --git a/tests/auto/qpushbutton/tst_qpushbutton.cpp b/tests/auto/qpushbutton/tst_qpushbutton.cpp
index 34dd313..27dec9d 100644
--- a/tests/auto/qpushbutton/tst_qpushbutton.cpp
+++ b/tests/auto/qpushbutton/tst_qpushbutton.cpp
@@ -206,11 +206,7 @@ void tst_QPushButton::setAutoRepeat()
QVERIFY( !testWidget->isCheckable() );
// verify autorepeat is off by default.
-#if QT_VERSION < 0x040000
- QButton tmp( 0 );
-#else
QPushButton tmp( 0 );
-#endif
tmp.setObjectName("tmp");
QVERIFY( !tmp.autoRepeat() );
diff --git a/tests/auto/qreadlocker/tst_qreadlocker.cpp b/tests/auto/qreadlocker/tst_qreadlocker.cpp
index c650ff5..a37f93c 100644
--- a/tests/auto/qreadlocker/tst_qreadlocker.cpp
+++ b/tests/auto/qreadlocker/tst_qreadlocker.cpp
@@ -189,9 +189,6 @@ void tst_QReadLocker::unlockAndRelockTest()
void tst_QReadLocker::lockerStateTest()
{
-#if QT_VERSION < 0x040200
- QSKIP("QReadLocker doesn't keep state in Qt < 4.2", SkipAll);
-#else
class LockerStateThread : public tst_QReadLockerThread
{
public:
@@ -228,7 +225,6 @@ void tst_QReadLocker::lockerStateTest()
delete thread;
thread = 0;
-#endif
}
QTEST_MAIN(tst_QReadLocker)
diff --git a/tests/auto/qrect/tst_qrect.cpp b/tests/auto/qrect/tst_qrect.cpp
index ed605a3..7e8d9c3 100644
--- a/tests/auto/qrect/tst_qrect.cpp
+++ b/tests/auto/qrect/tst_qrect.cpp
@@ -432,14 +432,12 @@ void tst_QRect::normalized_data()
QTest::newRow( "NegativePointQRect" ) << getQRectCase( NegativePointQRect ) << QRect( -10, -10, 5, 5 );
QTest::newRow( "NullQRect" ) << getQRectCase( NullQRect ) << getQRectCase( NullQRect );
QTest::newRow( "EmptyQRect" ) << getQRectCase( EmptyQRect ) << getQRectCase( EmptyQRect );
-#if QT_VERSION > 0x040001
QTest::newRow( "Task80908") << QRect(100, 200, 100, 0) << QRect(100, 200, 100, 0);
// Since "NegativeSizeQRect passes, I expect both of these to pass too.
// This passes, since height() returns -1 before normalization
QTest::newRow( "Task85023") << QRect(QPoint(100,201), QPoint(199,199)) << QRect(QPoint(100,199), QPoint(199,201));
// This, on the other hand height() returns 0 before normalization.
QTest::newRow( "Task85023.1") << QRect(QPoint(100,200), QPoint(199,199)) << QRect(QPoint(100,199), QPoint(199,200));
-#endif
QTest::newRow( "Task188109" ) << QRect(QPoint(263, 113), QPoint(136, 112)) << QRect(QPoint(136, 113), QPoint(263, 112));
}
@@ -1733,14 +1731,12 @@ void tst_QRect::newSetTopLeft_data()
void tst_QRect::newSetTopLeft()
{
-#if QT_VERSION >= 0x030100
QFETCH( QRect, r );
QFETCH( QPoint, topLeft );
QFETCH( QRect, nr );
r.setTopLeft( topLeft );
QCOMPARE( r, nr );
-#endif
}
void tst_QRect::newSetBottomRight_data()
@@ -1961,7 +1957,6 @@ void tst_QRect::newSetBottomRight_data()
void tst_QRect::newSetBottomRight()
{
-#if QT_VERSION >= 0x030100
QFETCH( QRect, r );
QFETCH( QPoint, bottomRight );
QFETCH( QRect, nr );
@@ -1969,7 +1964,6 @@ void tst_QRect::newSetBottomRight()
r.setBottomRight( bottomRight );
QCOMPARE( r, nr );
-#endif
}
void tst_QRect::newSetTopRight_data()
@@ -2190,7 +2184,6 @@ void tst_QRect::newSetTopRight_data()
void tst_QRect::newSetTopRight()
{
-#if QT_VERSION >= 0x030100
QFETCH( QRect, r );
QFETCH( QPoint, topRight );
QFETCH( QRect, nr );
@@ -2198,7 +2191,6 @@ void tst_QRect::newSetTopRight()
r.setTopRight( topRight );
QCOMPARE( r, nr );
-#endif
}
void tst_QRect::newSetBottomLeft_data()
@@ -2419,7 +2411,6 @@ void tst_QRect::newSetBottomLeft_data()
void tst_QRect::newSetBottomLeft()
{
-#if QT_VERSION >= 0x030100
QFETCH( QRect, r );
QFETCH( QPoint, bottomLeft );
QFETCH( QRect, nr );
@@ -2427,7 +2418,6 @@ void tst_QRect::newSetBottomLeft()
r.setBottomLeft( bottomLeft );
QCOMPARE( r, nr );
-#endif
}
void tst_QRect::topLeft_data()
@@ -2787,7 +2777,6 @@ void tst_QRect::newMoveLeft_data()
void tst_QRect::newMoveLeft()
{
-#if QT_VERSION >= 0x030100
QFETCH( QRect, r );
QFETCH( int, left );
QFETCH( QRect, nr );
@@ -2795,7 +2784,6 @@ void tst_QRect::newMoveLeft()
r.moveLeft( left );
QCOMPARE( r, nr );
-#endif
}
void tst_QRect::newMoveTop_data()
@@ -2958,7 +2946,6 @@ void tst_QRect::newMoveTop_data()
void tst_QRect::newMoveTop()
{
-#if QT_VERSION >= 0x030100
QFETCH( QRect, r );
QFETCH( int, top );
QFETCH( QRect, nr );
@@ -2966,7 +2953,6 @@ void tst_QRect::newMoveTop()
r.moveTop( top );
QCOMPARE( r, nr );
-#endif
}
void tst_QRect::newMoveRight_data()
@@ -3114,7 +3100,6 @@ void tst_QRect::newMoveRight_data()
void tst_QRect::newMoveRight()
{
-#if QT_VERSION >= 0x030100
QFETCH( QRect, r );
QFETCH( int, right );
QFETCH( QRect, nr );
@@ -3122,7 +3107,6 @@ void tst_QRect::newMoveRight()
r.moveRight( right );
QCOMPARE( r, nr );
-#endif
}
void tst_QRect::newMoveBottom_data()
@@ -3270,7 +3254,6 @@ void tst_QRect::newMoveBottom_data()
void tst_QRect::newMoveBottom()
{
-#if QT_VERSION >= 0x030100
QFETCH( QRect, r );
QFETCH( int, bottom );
QFETCH( QRect, nr );
@@ -3278,7 +3261,6 @@ void tst_QRect::newMoveBottom()
r.moveBottom( bottom );
QCOMPARE( r, nr );
-#endif
}
void tst_QRect::newMoveTopLeft_data()
@@ -3468,7 +3450,6 @@ void tst_QRect::newMoveTopLeft_data()
void tst_QRect::newMoveTopLeft()
{
-#if QT_VERSION >= 0x030100
QFETCH(QRect,r);
QFETCH(QPoint,topLeft);
QFETCH(QRect,nr);
@@ -3476,7 +3457,6 @@ void tst_QRect::newMoveTopLeft()
r.moveTopLeft(topLeft);
QCOMPARE(r,nr);
-#endif
}
void tst_QRect::newMoveBottomRight_data()
@@ -3666,7 +3646,6 @@ void tst_QRect::newMoveBottomRight_data()
void tst_QRect::newMoveBottomRight()
{
-#if QT_VERSION >= 0x030100
QFETCH(QRect,r);
QFETCH(QPoint,bottomRight);
QFETCH(QRect,nr);
@@ -3674,11 +3653,9 @@ void tst_QRect::newMoveBottomRight()
r.moveBottomRight(bottomRight);
QCOMPARE(r,nr);
-#endif
}
-
void tst_QRect::translate_data()
{
QTest::addColumn<QRect>("r");
@@ -3720,10 +3697,8 @@ void tst_QRect::translate()
}
-
void tst_QRect::moveTop()
{
-#if QT_VERSION >= 0x030100
{
QRect r( 10, 10, 100, 100 );
r.moveTop( 3 );
@@ -3742,12 +3717,10 @@ void tst_QRect::moveTop()
r.moveTop( -22 );
QCOMPARE( r, QRectF(10, -22, 100, 100) );
}
-#endif
}
void tst_QRect::moveBottom()
{
-#if QT_VERSION >= 0x030100
{
QRect r( 10, -22, 100, 100 );
r.moveBottom( 104 );
@@ -3758,12 +3731,10 @@ void tst_QRect::moveBottom()
r.moveBottom( 104 );
QCOMPARE( r, QRectF(10, 4, 100, 100) );
}
-#endif
}
void tst_QRect::moveLeft()
{
-#if QT_VERSION >= 0x030100
{
QRect r( 10, 5, 100, 100 );
r.moveLeft( 11 );
@@ -3774,12 +3745,10 @@ void tst_QRect::moveLeft()
r.moveLeft( 11 );
QCOMPARE( r, QRectF(11, 5, 100, 100) );
}
-#endif
}
void tst_QRect::moveRight()
{
-#if QT_VERSION >= 0x030100
{
QRect r( 11, 5, 100, 100 );
r.moveRight( 106 );
@@ -3790,7 +3759,6 @@ void tst_QRect::moveRight()
r.moveRight( 106 );
QCOMPARE( r, QRectF(6, 5, 100, 100) );
}
-#endif
}
void tst_QRect::moveTopLeft()
@@ -3851,7 +3819,6 @@ void tst_QRect::moveBottomRight()
void tst_QRect::setTopLeft()
{
-#if QT_VERSION >= 0x030100
{
QRect r( 20, 10, 200, 100 );
r.setTopLeft( QPoint(5, 7) );
@@ -3862,12 +3829,10 @@ void tst_QRect::setTopLeft()
r.setTopLeft( QPoint(5, 7) );
QCOMPARE( r, QRectF(5, 7, 215, 103) );
}
-#endif
}
void tst_QRect::setTopRight()
{
-#if QT_VERSION >= 0x030100
{
QRect r( 20, 10, 200, 100 );
r.setTopRight( QPoint(225, 7) );
@@ -3878,12 +3843,10 @@ void tst_QRect::setTopRight()
r.setTopRight( QPoint(225, 7) );
QCOMPARE( r, QRectF(20, 7, 205, 103) );
}
-#endif
}
void tst_QRect::setBottomLeft()
{
-#if QT_VERSION >= 0x030100
{
QRect r( 20, 10, 200, 100 );
r.setBottomLeft( QPoint(5, 117) );
@@ -3894,12 +3857,10 @@ void tst_QRect::setBottomLeft()
r.setBottomLeft( QPoint(5, 117) );
QCOMPARE( r, QRectF(5, 10, 215, 107) );
}
-#endif
}
void tst_QRect::setBottomRight()
{
-#if QT_VERSION >= 0x030100
{
QRect r( 20, 10, 200, 100 );
r.setBottomRight( QPoint(225, 117) );
@@ -3910,7 +3871,6 @@ void tst_QRect::setBottomRight()
r.setBottomRight( QPoint(225, 117) );
QCOMPARE( r, QRectF(20, 10, 205, 107) );
}
-#endif
}
void tst_QRect::operator_amp()
diff --git a/tests/auto/qregexp/tst_qregexp.cpp b/tests/auto/qregexp/tst_qregexp.cpp
index 2968a8e..999166e 100644
--- a/tests/auto/qregexp/tst_qregexp.cpp
+++ b/tests/auto/qregexp/tst_qregexp.cpp
@@ -557,7 +557,6 @@ void tst_QRegExp::setMinimal()
void tst_QRegExp::exactMatch()
{
-#if QT_VERSION >= 0x030100
QRegExp rx_d( "\\d" );
QRegExp rx_s( "\\s" );
QRegExp rx_w( "\\w" );
@@ -570,9 +569,7 @@ void tst_QRegExp::exactMatch()
bool is_d = ( ch.category() == QChar::Number_DecimalDigit );
bool is_s = ch.isSpace();
bool is_w = ( ch.isLetterOrNumber()
-#if QT_VERSION >= 0x040200
|| ch.isMark()
-#endif
|| ch == '_' );
QVERIFY( rx_d.exactMatch(QString(ch)) == is_d );
@@ -582,7 +579,6 @@ void tst_QRegExp::exactMatch()
QVERIFY( rx_S.exactMatch(QString(ch)) != is_s );
QVERIFY( rx_W.exactMatch(QString(ch)) != is_w );
}
-#endif
}
void tst_QRegExp::capturedTexts()
@@ -593,13 +589,11 @@ void tst_QRegExp::capturedTexts()
QCOMPARE(rx1.cap(0), QString("aaa"));
QCOMPARE(rx1.cap(1), QString("aaa"));
-#if QT_VERSION >= 0x040200
QRegExp rx2("a*(a*)", Qt::CaseSensitive, QRegExp::RegExp2);
rx2.exactMatch("aaa");
QCOMPARE(rx2.matchedLength(), 3);
QCOMPARE(rx2.cap(0), QString("aaa"));
QCOMPARE(rx2.cap(1), QString(""));
-#endif
QRegExp rx3("(?:a|aa)(a*)", Qt::CaseSensitive, QRegExp::RegExp);
rx3.exactMatch("aaa");
@@ -607,13 +601,11 @@ void tst_QRegExp::capturedTexts()
QCOMPARE(rx3.cap(0), QString("aaa"));
QCOMPARE(rx3.cap(1), QString("aa"));
-#if QT_VERSION >= 0x040200
QRegExp rx4("(?:a|aa)(a*)", Qt::CaseSensitive, QRegExp::RegExp2);
rx4.exactMatch("aaa");
QCOMPARE(rx4.matchedLength(), 3);
QCOMPARE(rx4.cap(0), QString("aaa"));
QCOMPARE(rx4.cap(1), QString("a"));
-#endif
QRegExp rx5("(a)*(a*)", Qt::CaseSensitive, QRegExp::RegExp);
rx5.exactMatch("aaa");
@@ -622,14 +614,12 @@ void tst_QRegExp::capturedTexts()
QCOMPARE(rx5.cap(1), QString("a"));
QCOMPARE(rx5.cap(2), QString("aa"));
-#if QT_VERSION >= 0x040200
QRegExp rx6("(a)*(a*)", Qt::CaseSensitive, QRegExp::RegExp2);
rx6.exactMatch("aaa");
QCOMPARE(rx6.matchedLength(), 3);
QCOMPARE(rx6.cap(0), QString("aaa"));
QCOMPARE(rx6.cap(1), QString("a"));
QCOMPARE(rx6.cap(2), QString(""));
-#endif
QRegExp rx7("([A-Za-z_])([A-Za-z_0-9]*)");
rx7.setCaseSensitivity(Qt::CaseSensitive);
@@ -689,7 +679,6 @@ void tst_QRegExp::indexIn()
}
}
-#if QT_VERSION >= 0x040200
// same as above, but with RegExp2
{
QRegExp rx( regexpStr, Qt::CaseSensitive, QRegExp::RegExp2 );
@@ -707,7 +696,6 @@ void tst_QRegExp::indexIn()
QCOMPARE( mycaps[i], caps[i] );
}
}
-#endif
}
void tst_QRegExp::lastIndexIn()
@@ -746,7 +734,6 @@ void tst_QRegExp::lastIndexIn()
}
}
-#if QT_VERSION >= 0x040200
{
QRegExp rx( regexpStr, Qt::CaseSensitive, QRegExp::RegExp2 );
QVERIFY( rx.isValid() );
@@ -766,7 +753,6 @@ void tst_QRegExp::lastIndexIn()
}
}
}
-#endif
}
void tst_QRegExp::matchedLength()
@@ -1161,10 +1147,8 @@ void tst_QRegExp::prepareEngineOptimization()
QRegExp rx4("foo", Qt::CaseInsensitive, QRegExp::RegExp);
QVERIFY(rx4.isValid());
-#if QT_VERSION >= 0x040200
QRegExp rx5("foo", Qt::CaseInsensitive, QRegExp::RegExp2);
QVERIFY(rx5.isValid());
-#endif
QRegExp rx6("foo", Qt::CaseInsensitive, QRegExp::FixedString);
QVERIFY(rx6.isValid());
@@ -1175,10 +1159,8 @@ void tst_QRegExp::prepareEngineOptimization()
QRegExp rx8("][", Qt::CaseInsensitive, QRegExp::RegExp);
QVERIFY(!rx8.isValid());
-#if QT_VERSION >= 0x040200
QRegExp rx9("][", Qt::CaseInsensitive, QRegExp::RegExp2);
QVERIFY(!rx9.isValid());
-#endif
QRegExp rx10("][", Qt::CaseInsensitive, QRegExp::Wildcard);
QVERIFY(!rx10.isValid());
diff --git a/tests/auto/qregion/tst_qregion.cpp b/tests/auto/qregion/tst_qregion.cpp
index 8ec4c28..eba07f2 100644
--- a/tests/auto/qregion/tst_qregion.cpp
+++ b/tests/auto/qregion/tst_qregion.cpp
@@ -145,12 +145,7 @@ void tst_QRegion::rects()
{
QRect rect( 10, -20, 30, 40 );
QRegion region( rect );
-#if QT_VERSION < 0x040000
- QCOMPARE( region.rects().count(), (uint)1 );
-#else
QCOMPARE( region.rects().count(), 1 );
-#endif
-
QCOMPARE( region.rects()[0], rect );
}
{
@@ -200,11 +195,7 @@ void tst_QRegion::setRects()
QRegion region;
QRect rect( 10, -20, 30, 40 );
region.setRects( &rect, 1 );
-#if QT_VERSION < 0x040000
- QCOMPARE( region.rects().count(), (uint)1 );
-#else
QCOMPARE( region.rects().count(), 1 );
-#endif
QCOMPARE( region.rects()[0], rect );
}
}
@@ -374,9 +365,7 @@ void tst_QRegion::bitmapRegion()
QVERIFY( region.contains( QPoint( 0, 10 ) ) ); // Mid-left
QVERIFY( region.contains( QPoint( 10, 0 ) ) ); // Mid-top
-#if ( QT_VERSION >= 0x030100 )
QVERIFY( region.contains( QPoint( 19, 10 ) ) ); // Mid-right
-#endif
QVERIFY( region.contains( QPoint( 10, 19 ) ) ); // Mid-bottom
}
}
@@ -627,11 +616,9 @@ void tst_QRegion::operator_minus_data()
QTest::addColumn<QRegion>("subtract");
QTest::addColumn<QRegion>("expected");
-#if !defined(Q_WS_X11) || QT_VERSION >= 0x040300
QTest::newRow("empty 0") << QRegion() << QRegion() << QRegion();
QTest::newRow("empty 1") << QRegion() << QRegion(QRect(10, 10, 10, 10))
<< QRegion();
-#endif
QTest::newRow("empty 2") << QRegion(QRect(10, 10, 10, 10)) << QRegion()
<< QRegion(QRect(10, 10, 10, 10));
diff --git a/tests/auto/qset/tst_qset.cpp b/tests/auto/qset/tst_qset.cpp
index f4b0e93..41e6ebd 100644
--- a/tests/auto/qset/tst_qset.cpp
+++ b/tests/auto/qset/tst_qset.cpp
@@ -654,9 +654,6 @@ void tst_QSet::stlIterator()
void tst_QSet::stlMutableIterator()
{
-#if QT_VERSION < 0x040200
- QSKIP("Needs Qt >= 4.2", SkipAll);
-#else
QSet<QString> set1;
for (int i = 0; i < 25000; ++i)
set1.insert(QString::number(i));
@@ -714,7 +711,6 @@ void tst_QSet::stlMutableIterator()
#endif
QVERIFY(*i == "foo");
}
-#endif
}
void tst_QSet::javaIterator()
@@ -803,9 +799,6 @@ void tst_QSet::javaIterator()
void tst_QSet::javaMutableIterator()
{
-#if QT_VERSION < 0x040200
- QSKIP("Needs Qt >= 4.2", SkipAll);
-#else
QSet<QString> set1;
for (int k = 0; k < 25000; ++k)
set1.insert(QString::number(k));
@@ -891,7 +884,6 @@ void tst_QSet::javaMutableIterator()
QVERIFY(set2.isEmpty());
QVERIFY(set3.isEmpty());
}
-#endif
}
void tst_QSet::makeSureTheComfortFunctionsCompile()
diff --git a/tests/auto/qsettings/tst_qsettings.cpp b/tests/auto/qsettings/tst_qsettings.cpp
index 9524eb3..c478c63 100644
--- a/tests/auto/qsettings/tst_qsettings.cpp
+++ b/tests/auto/qsettings/tst_qsettings.cpp
@@ -240,7 +240,6 @@ static QString settingsPath(const char *path = "")
return QDir::toNativeSeparators(tempPath + "/tst_QSettings/" + QLatin1String(path));
}
-#if QT_VERSION >= 0x040100
static bool readCustom1File(QIODevice &device, QSettings::SettingsMap &map)
{
QDataStream in(&device);
@@ -297,7 +296,6 @@ static bool writeCustom3File(QIODevice &device, const QSettings::SettingsMap &ma
out << "OK";
return true;
}
-#endif
static void populateWithFormats()
{
@@ -305,15 +303,12 @@ static void populateWithFormats()
QTest::newRow("native") << QSettings::NativeFormat;
QTest::newRow("ini") << QSettings::IniFormat;
-#if QT_VERSION >= 0x040100
QTest::newRow("custom1") << QSettings::CustomFormat1;
QTest::newRow("custom2") << QSettings::CustomFormat2;
-#endif
}
tst_QSettings::tst_QSettings()
{
-#if QT_VERSION >= 0x040100
QSettings::Format custom1 = QSettings::registerFormat("custom1", readCustom1File, writeCustom1File);
QSettings::Format custom2 = QSettings::registerFormat("custom2", readCustom2File, writeCustom2File
#ifndef QT_QSETTINGS_ALWAYS_CASE_SENSITIVE_AND_FORGET_ORIGINAL_KEY_ORDER
@@ -322,7 +317,6 @@ tst_QSettings::tst_QSettings()
);
QVERIFY(custom1 == QSettings::CustomFormat1);
QVERIFY(custom2 == QSettings::CustomFormat2);
-#endif
}
void tst_QSettings::init()
@@ -1138,9 +1132,9 @@ void tst_QSettings::testVariantTypes()
l4 << QVariant(m2) << QVariant(l2) << QVariant(l3);
testVal("key13", l4, QVariantList, List);
- // With Qt 4.2 we store key sequences as strings instead of binary variant blob, for improved
+ // We store key sequences as strings instead of binary variant blob, for improved
// readability in the resulting format.
- if (format >= QSettings::InvalidFormat || QT_VERSION < 0x040200) {
+ if (format >= QSettings::InvalidFormat) {
testVal("keysequence", QKeySequence(Qt::ControlModifier + Qt::Key_F1), QKeySequence, KeySequence);
} else {
testVal("keysequence", QKeySequence(Qt::ControlModifier + Qt::Key_F1), QString, String);
@@ -2637,14 +2631,12 @@ void tst_QSettings::testCaseSensitivity()
case QSettings::IniFormat:
cs = false;
break;
-#if QT_VERSION >= 0x040100
case QSettings::CustomFormat1:
cs = true;
break;
case QSettings::CustomFormat2:
cs = false;
break;
-#endif
default:
;
}
@@ -3543,7 +3535,6 @@ void tst_QSettings::allKeys()
}
}
-#if QT_VERSION >= 0x040100
void tst_QSettings::registerFormat()
{
QSettings settings1(QSettings::IniFormat, QSettings::UserScope, "software.org", "KillerAPP");
@@ -3641,7 +3632,6 @@ void tst_QSettings::setPath()
TEST_PATH(i == 0, "custom2", CustomFormat2, SystemScope, "iota")
}
}
-#endif
void tst_QSettings::setDefaultFormat()
{
diff --git a/tests/auto/qsidebar/tst_qsidebar.cpp b/tests/auto/qsidebar/tst_qsidebar.cpp
index 7a262e6..705e222 100644
--- a/tests/auto/qsidebar/tst_qsidebar.cpp
+++ b/tests/auto/qsidebar/tst_qsidebar.cpp
@@ -176,6 +176,32 @@ void tst_QSidebar::addUrls()
qsidebar.addUrls(urls, -1);
qsidebar.addUrls(moreUrls, -1);
QCOMPARE(qsidebar.urls()[0], urls[0]);
+
+ QList<QUrl> doubleUrls;
+ //tow exact same paths, we have only one entry
+ doubleUrls << QUrl::fromLocalFile(QDir::home().absolutePath());
+ doubleUrls << QUrl::fromLocalFile(QDir::home().absolutePath());
+ qsidebar.setUrls(emptyUrls);
+ qsidebar.addUrls(doubleUrls, 1);
+ QCOMPARE(qsidebar.urls().size(), 1);
+
+#if defined(Q_OS_WIN)
+ //Windows is case insensitive so no duplicate entries in that case
+ doubleUrls << QUrl::fromLocalFile(QDir::home().absolutePath());
+ doubleUrls << QUrl::fromLocalFile(QDir::home().absolutePath().toUpper());
+ qsidebar.setUrls(emptyUrls);
+ qsidebar.addUrls(doubleUrls, 1);
+ QCOMPARE(qsidebar.urls().size(), 1);
+#else
+ //Two different paths we should have two entries
+ doubleUrls << QUrl::fromLocalFile(QDir::home().absolutePath());
+ doubleUrls << QUrl::fromLocalFile(QDir::home().absolutePath().toUpper());
+ qsidebar.setUrls(emptyUrls);
+ qsidebar.addUrls(doubleUrls, 1);
+ QCOMPARE(qsidebar.urls().size(), 2);
+#endif
+
+
}
void tst_QSidebar::goToUrl()
diff --git a/tests/auto/qsizef/tst_qsizef.cpp b/tests/auto/qsizef/tst_qsizef.cpp
index 7668491..c1a827b 100644
--- a/tests/auto/qsizef/tst_qsizef.cpp
+++ b/tests/auto/qsizef/tst_qsizef.cpp
@@ -72,29 +72,6 @@ private slots:
void transpose();
};
-#if QT_VERSION < 0x040100
-namespace QTest
-{
- // Qt < 4.1 didn't do fuzzy comparisons
- template<>
- inline bool compare(QSizeF const &t1, QSizeF const &t2, const char *file, int line)
- {
- char msg[1024];
- msg[0] = '\0';
- bool isOk = true;
- if ((qAbs(t1.width() - t2.width()) > 0.000000000001) || (qAbs(t1.height() - t2.height()) > 0.000000000001)) {
- qt_snprintf(msg, 1024, "Compared values of type QSizeF are not the same (fuzzy compare).\n"
- " Actual : w: %lf h: %lf \n"
- " Expected: w: %lf h: %lf", t1.width(), t1.height(), t2.width(), t2.height());
- isOk = false;
- } else {
- qt_snprintf(msg, 1024, "QCOMPARE('%lf %lf', QSizeF)", t1.width(), t1.height());
- }
- return compare_helper(isOk, msg, file, line);
- }
-}
-#endif
-
tst_QSizeF::tst_QSizeF() {
}
diff --git a/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp b/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
index 0a48066..f414d3a 100644
--- a/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
+++ b/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
@@ -131,6 +131,9 @@ private slots:
void task247867_insertRowsSort();
void task248868_staticSorting();
void task248868_dynamicSorting();
+ void task250023_fetchMore();
+ void task251296_hiddenChildren();
+ void task252507_mapFromToSource();
protected:
void buildHierarchy(const QStringList &data, QAbstractItemModel *model);
@@ -1507,9 +1510,6 @@ void tst_QSortFilterProxyModel::insertAfterSelect()
QTest::mouseClick(view.viewport(), Qt::LeftButton, Qt::NoModifier, p);
QVERIFY(view.selectionModel()->selectedIndexes().size() > 0);
model.insertRows(5, 1, QModelIndex());
-#if QT_VERSION < 0x040200
- QEXPECT_FAIL("", "Selections are not kept in versions < 4.2", Abort);
-#endif
QVERIFY(view.selectionModel()->selectedIndexes().size() > 0); // Should still have a selection
}
@@ -1531,9 +1531,6 @@ void tst_QSortFilterProxyModel::removeAfterSelect()
QTest::mouseClick(view.viewport(), Qt::LeftButton, Qt::NoModifier, p);
QVERIFY(view.selectionModel()->selectedIndexes().size() > 0);
model.removeRows(5, 1, QModelIndex());
-#if QT_VERSION < 0x040200
- QEXPECT_FAIL("", "Selections are not kept in versions < 4.2", Abort);
-#endif
QVERIFY(view.selectionModel()->selectedIndexes().size() > 0); // Should still have a selection
}
@@ -2590,6 +2587,164 @@ void tst_QSortFilterProxyModel::task248868_dynamicSorting()
}
}
+class QtTestModel: public QAbstractItemModel
+{
+ public:
+ QtTestModel(int _rows, int _cols, QObject *parent = 0): QAbstractItemModel(parent),
+ rows(_rows), cols(_cols), wrongIndex(false) { }
+
+ bool canFetchMore(const QModelIndex &idx) const {
+ return !fetched.contains(idx);
+ }
+
+ void fetchMore(const QModelIndex &idx) {
+ if (fetched.contains(idx))
+ return;
+ beginInsertRows(idx, 0, rows-1);
+ fetched.insert(idx);
+ endInsertRows();
+ }
+
+ bool hasChildren(const QModelIndex & = QModelIndex()) const {
+ return true;
+ }
+
+ int rowCount(const QModelIndex& parent = QModelIndex()) const {
+ return fetched.contains(parent) ? rows : 0;
+ }
+ int columnCount(const QModelIndex& parent = QModelIndex()) const {
+ Q_UNUSED(parent);
+ return cols;
+ }
+
+ QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const
+ {
+ if (row < 0 || column < 0 || column >= cols || row >= rows) {
+ return QModelIndex();
+ }
+ QModelIndex i = createIndex(row, column, int(parent.internalId() + 1));
+ parentHash[i] = parent;
+ return i;
+ }
+
+ QModelIndex parent(const QModelIndex &index) const
+ {
+ if (!parentHash.contains(index))
+ return QModelIndex();
+ return parentHash[index];
+ }
+
+ QVariant data(const QModelIndex &idx, int role) const
+ {
+ if (!idx.isValid())
+ return QVariant();
+
+ if (role == Qt::DisplayRole) {
+ if (idx.row() < 0 || idx.column() < 0 || idx.column() >= cols || idx.row() >= rows) {
+ wrongIndex = true;
+ qWarning("Invalid modelIndex [%d,%d,%p]", idx.row(), idx.column(),
+ idx.internalPointer());
+ }
+ return QString("[%1,%2]").arg(idx.row()).arg(idx.column());
+ }
+ return QVariant();
+ }
+
+ QSet<QModelIndex> fetched;
+ int rows, cols;
+ mutable bool wrongIndex;
+ mutable QMap<QModelIndex,QModelIndex> parentHash;
+};
+
+void tst_QSortFilterProxyModel::task250023_fetchMore()
+{
+ QtTestModel model(10,10);
+ QSortFilterProxyModel proxy;
+ proxy.setSourceModel(&model);
+ QVERIFY(proxy.canFetchMore(QModelIndex()));
+ QVERIFY(proxy.hasChildren());
+ while (proxy.canFetchMore(QModelIndex()))
+ proxy.fetchMore(QModelIndex());
+ QCOMPARE(proxy.rowCount(), 10);
+ QCOMPARE(proxy.columnCount(), 10);
+
+ QModelIndex idx = proxy.index(1,1);
+ QVERIFY(idx.isValid());
+ QVERIFY(proxy.canFetchMore(idx));
+ QVERIFY(proxy.hasChildren(idx));
+ while (proxy.canFetchMore(idx))
+ proxy.fetchMore(idx);
+ QCOMPARE(proxy.rowCount(idx), 10);
+ QCOMPARE(proxy.columnCount(idx), 10);
+}
+
+void tst_QSortFilterProxyModel::task251296_hiddenChildren()
+{
+ QStandardItemModel model;
+ QSortFilterProxyModel proxy;
+ proxy.setSourceModel(&model);
+ proxy.setDynamicSortFilter(true);
+
+ QStandardItem *itemA = new QStandardItem("A VISIBLE");
+ model.appendRow(itemA);
+ QStandardItem *itemB = new QStandardItem("B VISIBLE");
+ itemA->appendRow(itemB);
+ QStandardItem *itemC = new QStandardItem("C");
+ itemA->appendRow(itemC);
+ proxy.setFilterRegExp("VISIBLE");
+
+ QCOMPARE(proxy.rowCount(QModelIndex()) , 1);
+ QPersistentModelIndex indexA = proxy.index(0,0);
+ QCOMPARE(proxy.data(indexA).toString(), QString::fromLatin1("A VISIBLE"));
+
+ QCOMPARE(proxy.rowCount(indexA) , 1);
+ QPersistentModelIndex indexB = proxy.index(0, 0, indexA);
+ QCOMPARE(proxy.data(indexB).toString(), QString::fromLatin1("B VISIBLE"));
+
+ itemA->setText("A");
+ QCOMPARE(proxy.rowCount(QModelIndex()), 0);
+ QVERIFY(!indexA.isValid());
+ QVERIFY(!indexB.isValid());
+
+ itemB->setText("B");
+ itemA->setText("A VISIBLE");
+ itemC->setText("C VISIBLE");
+
+ QCOMPARE(proxy.rowCount(QModelIndex()), 1);
+ indexA = proxy.index(0,0);
+ QCOMPARE(proxy.data(indexA).toString(), QString::fromLatin1("A VISIBLE"));
+
+ QCOMPARE(proxy.rowCount(indexA) , 1);
+ QModelIndex indexC = proxy.index(0, 0, indexA);
+ QCOMPARE(proxy.data(indexC).toString(), QString::fromLatin1("C VISIBLE"));
+
+ proxy.setFilterRegExp("C");
+ QCOMPARE(proxy.rowCount(QModelIndex()), 0);
+ itemC->setText("invisible");
+ itemA->setText("AC");
+
+ QCOMPARE(proxy.rowCount(QModelIndex()), 1);
+ indexA = proxy.index(0,0);
+ QCOMPARE(proxy.data(indexA).toString(), QString::fromLatin1("AC"));
+ QCOMPARE(proxy.rowCount(indexA) , 0);
+}
+
+void tst_QSortFilterProxyModel::task252507_mapFromToSource()
+{
+ QtTestModel source(10,10);
+ source.fetchMore(QModelIndex());
+ QSortFilterProxyModel proxy;
+ proxy.setSourceModel(&source);
+ QCOMPARE(proxy.mapFromSource(source.index(5, 4)), proxy.index(5, 4));
+ QCOMPARE(proxy.mapToSource(proxy.index(3, 2)), source.index(3, 2));
+ QCOMPARE(proxy.mapFromSource(QModelIndex()), QModelIndex());
+ QCOMPARE(proxy.mapToSource(QModelIndex()), QModelIndex());
+
+ QTest::ignoreMessage(QtWarningMsg, "QSortFilterProxyModel: index from wrong model passed to mapToSource ");
+ QCOMPARE(proxy.mapToSource(source.index(2, 3)), QModelIndex());
+ QTest::ignoreMessage(QtWarningMsg, "QSortFilterProxyModel: index from wrong model passed to mapFromSource ");
+ QCOMPARE(proxy.mapFromSource(proxy.index(6, 2)), QModelIndex());
+}
QTEST_MAIN(tst_QSortFilterProxyModel)
#include "tst_qsortfilterproxymodel.moc"
diff --git a/tests/auto/qsqldatabase/tst_databases.h b/tests/auto/qsqldatabase/tst_databases.h
index 9c19048..ef51285 100644
--- a/tests/auto/qsqldatabase/tst_databases.h
+++ b/tests/auto/qsqldatabase/tst_databases.h
@@ -105,11 +105,7 @@ inline static QString qTableName( const QString& prefix, QSqlDriver* driver = 0
inline static bool testWhiteSpaceNames( const QString &name )
{
-/* return name.startsWith( "QPSQL" )
- || name.startsWith( "QODBC" )
- || name.startsWith( "QSQLITE" )
- || name.startsWith( "QMYSQL" );*/
- return name != QLatin1String("QSQLITE2");
+ return name != QLatin1String("QTDS7");
}
inline static QString toHex( const QString& binary )
@@ -211,7 +207,7 @@ public:
// This requires a local ODBC data source to be configured( pointing to a MySql database )
// addDb( "QODBC", "mysqlodbc", "troll", "trond" );
// addDb( "QODBC", "SqlServer", "troll", "trond" );
-// addDb( "QTDS7", "testdb", "troll", "trondk", "horsehead.nokia.troll.no" );
+// addDb( "QTDS7", "testdb", "troll", "trondk", "horsehead" );
// addDb( "QODBC", "silencetestdb", "troll", "trond", "silence" );
// addDb( "QODBC", "horseheadtestdb", "troll", "trondk", "horsehead" );
@@ -248,6 +244,10 @@ public:
// addDb( "QODBC3", "DRIVER={SQL SERVER};SERVER=iceblink.nokia.troll.no\\ICEBLINK", "troll", "trond", "" );
// addDb( "QODBC3", "DRIVER={SQL Native Client};SERVER=silence.nokia.troll.no\\SQLEXPRESS", "troll", "trond", "" );
+// addDb( "QODBC", "DRIVER={MySQL ODBC 3.51 Driver};SERVER=mysql5-nokia.trolltech.com.au;DATABASE=testdb", "testuser", "Ee4Gabf6_", "" );
+// addDb( "QODBC", "DRIVER={FreeTDS};SERVER=horsehead.nokia.troll.no;DATABASE=testdb;PORT=4101;UID=troll;PWD=trondk", "troll", "trondk", "" );
+// addDb( "QODBC", "DRIVER={FreeTDS};SERVER=silence.nokia.troll.no;DATABASE=testdb;PORT=2392;UID=troll;PWD=trond", "troll", "trond", "" );
+
}
void open()
@@ -313,16 +313,22 @@ public:
QSqlQuery q( db );
QStringList dbtables=db.tables();
- foreach(const QString &tableName, tableNames) {
+ foreach(const QString &tableName, tableNames)
+ {
wasDropped = true;
+ QString table=tableName;
+ if ( db.driver()->isIdentifierEscaped(table, QSqlDriver::TableName))
+ table = db.driver()->stripDelimiters(table, QSqlDriver::TableName);
+
foreach(const QString dbtablesName, dbtables) {
- if(dbtablesName.toUpper() == tableName.toUpper()) {
+ if(dbtablesName.toUpper() == table.toUpper()) {
dbtables.removeAll(dbtablesName);
wasDropped = q.exec("drop table " + db.driver()->escapeIdentifier( dbtablesName, QSqlDriver::TableName ));
if(!wasDropped)
wasDropped = q.exec("drop table " + dbtablesName);
}
}
+
if ( !wasDropped )
qWarning() << dbToString(db) << "unable to drop table" << tableName << ':' << q.lastError().text() << "tables:" << dbtables;
}
@@ -395,12 +401,26 @@ public:
static QByteArray printError( const QSqlError& err )
{
- return QString( "'" + err.driverText() + "' || '" + err.databaseText() + "'" ).toLocal8Bit();
+ QString result;
+ if(err.number() > 0)
+ result += '(' + QString::number(err.number()) + ") ";
+ result += '\'';
+ if(!err.driverText().isEmpty())
+ result += err.driverText() + "' || '";
+ result += err.databaseText() + "'";
+ return result.toLocal8Bit();
}
static QByteArray printError( const QSqlError& err, const QSqlDatabase& db )
{
- return QString( dbToString(db) + ": '" + err.driverText() + "' || '" + err.databaseText() + "'" ).toLocal8Bit();
+ QString result(dbToString(db) + ": ");
+ if(err.number() > 0)
+ result += '(' + QString::number(err.number()) + ") ";
+ result += '\'';
+ if(!err.driverText().isEmpty())
+ result += err.driverText() + "' || '";
+ result += err.databaseText() + "'";
+ return result.toLocal8Bit();
}
static bool isSqlServer( QSqlDatabase db )
diff --git a/tests/auto/qsqldriver/qsqldriver.pro b/tests/auto/qsqldriver/qsqldriver.pro
new file mode 100644
index 0000000..0024841
--- /dev/null
+++ b/tests/auto/qsqldriver/qsqldriver.pro
@@ -0,0 +1,16 @@
+load(qttest_p4)
+SOURCES += tst_qsqldriver.cpp
+
+QT += sql
+
+wince*: {
+ plugFiles.sources = ../../../plugins/sqldrivers
+ plugFiles.path = .
+ DEPLOYMENT += plugFiles
+} else {
+ win32-g++ {
+ LIBS += -lws2_32
+ } else:win32 {
+ LIBS += ws2_32.lib
+ }
+}
diff --git a/tests/auto/qsqldriver/tst_qsqldriver.cpp b/tests/auto/qsqldriver/tst_qsqldriver.cpp
new file mode 100644
index 0000000..bbd7483
--- /dev/null
+++ b/tests/auto/qsqldriver/tst_qsqldriver.cpp
@@ -0,0 +1,218 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QtTest>
+#include <QtSql/QtSql>
+
+#include "../qsqldatabase/tst_databases.h"
+
+
+
+//TESTED_CLASS=
+//TESTED_FILES=
+
+class tst_QSqlDriver : public QObject
+{
+ Q_OBJECT
+
+public:
+ void recreateTestTables(QSqlDatabase);
+
+ tst_Databases dbs;
+
+public slots:
+ void initTestCase_data();
+ void initTestCase();
+ void cleanupTestCase();
+ void init();
+ void cleanup();
+
+private slots:
+ void record();
+ void primaryIndex();
+};
+
+
+void tst_QSqlDriver::initTestCase_data()
+{
+ dbs.open();
+ if (dbs.fillTestTable() == 0) {
+ qWarning("NO DATABASES");
+ QSKIP("No database drivers are available in this Qt configuration", SkipAll);
+ }
+}
+
+void tst_QSqlDriver::recreateTestTables(QSqlDatabase db)
+{
+ QSqlQuery q(db);
+
+ QStringList tableNames;
+ tableNames << qTableName( "relTEST1" );
+ tst_Databases::safeDropTables( db, tableNames );
+
+ QVERIFY_SQL( q, exec("create table " + qTableName("relTEST1") +
+ " (id int not null primary key, name varchar(20), title_key int, another_title_key int)"));
+ QVERIFY_SQL( q, exec("insert into " + qTableName("relTEST1") + " values(1, 'harry', 1, 2)"));
+ QVERIFY_SQL( q, exec("insert into " + qTableName("relTEST1") + " values(2, 'trond', 2, 1)"));
+ QVERIFY_SQL( q, exec("insert into " + qTableName("relTEST1") + " values(3, 'vohi', 1, 2)"));
+ QVERIFY_SQL( q, exec("insert into " + qTableName("relTEST1") + " values(4, 'boris', 2, 2)"));
+}
+
+void tst_QSqlDriver::initTestCase()
+{
+ foreach (const QString &dbname, dbs.dbNames)
+ recreateTestTables(QSqlDatabase::database(dbname));
+}
+
+void tst_QSqlDriver::cleanupTestCase()
+{
+ QStringList tableNames;
+ tableNames << qTableName( "relTEST1" );
+ foreach (const QString &dbName, dbs.dbNames) {
+ QSqlDatabase db = QSqlDatabase::database(dbName);
+ tst_Databases::safeDropTables( db, tableNames );
+ }
+ dbs.close();
+}
+
+void tst_QSqlDriver::init()
+{
+}
+
+void tst_QSqlDriver::cleanup()
+{
+}
+
+void tst_QSqlDriver::record()
+{
+ QFETCH_GLOBAL(QString, dbName);
+ QSqlDatabase db = QSqlDatabase::database(dbName);
+ CHECK_DATABASE(db);
+
+ QString tablename = qTableName("relTEST1");
+ QStringList fields;
+ fields << "id" << "name" << "title_key" << "another_title_key";
+
+ //check we can get records using an unquoted mixed case table name
+ QSqlRecord rec = db.driver()->record(tablename);
+ QCOMPARE(rec.count(), 4);
+
+ if (db.driverName().startsWith("QIBASE")|| db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2"))
+ for(int i = 0; i < fields.count(); ++i)
+ fields[i] = fields[i].toUpper();
+
+ for (int i = 0; i < fields.count(); ++i)
+ QCOMPARE(rec.fieldName(i), fields[i]);
+
+ if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2"))
+ tablename = tablename.toUpper();
+ else if (db.driverName().startsWith("QPSQL"))
+ tablename = tablename.toLower();
+
+ //check we can get records using a properly quoted table name
+ rec = db.driver()->record(db.driver()->escapeIdentifier(tablename,QSqlDriver::TableName));
+ QCOMPARE(rec.count(), 4);
+
+ for (int i = 0; i < fields.count(); ++i)
+ QCOMPARE(rec.fieldName(i), fields[i]);
+
+ if( db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2"))
+ tablename = tablename.toLower();
+ else if (db.driverName().startsWith("QPSQL"))
+ tablename = tablename.toUpper();
+
+ //check that we can't get records using incorrect tablename casing that's been quoted
+ rec = db.driver()->record(db.driver()->escapeIdentifier(tablename,QSqlDriver::TableName));
+ if (db.driverName().startsWith("QMYSQL") || db.driverName().startsWith("QSQLITE") || db.driverName().startsWith("QTDS"))
+ QCOMPARE(rec.count(), 4); //mysql, sqlite and tds will match
+ else
+ QCOMPARE(rec.count(), 0);
+
+}
+
+void tst_QSqlDriver::primaryIndex()
+{
+ QFETCH_GLOBAL(QString, dbName);
+ QSqlDatabase db = QSqlDatabase::database(dbName);
+ CHECK_DATABASE(db);
+
+ QString tablename = qTableName("relTEST1");
+ //check that we can get primary index using unquoted mixed case table name
+ QSqlIndex index = db.driver()->primaryIndex(tablename);
+ QCOMPARE(index.count(), 1);
+
+ if( db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2"))
+ QCOMPARE(index.fieldName(0), QString::fromLatin1("ID"));
+ else
+ QCOMPARE(index.fieldName(0), QString::fromLatin1("id"));
+
+
+ //check that we can get the primary index using a quoted tablename
+ if( db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2"))
+ tablename = tablename.toUpper();
+ else if (db.driverName().startsWith("QPSQL"))
+ tablename = tablename.toLower();
+
+ index = db.driver()->primaryIndex(db.driver()->escapeIdentifier(tablename, QSqlDriver::TableName));
+ QCOMPARE(index.count(), 1);
+ if( db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2"))
+ QCOMPARE(index.fieldName(0), QString::fromLatin1("ID"));
+ else
+ QCOMPARE(index.fieldName(0), QString::fromLatin1("id"));
+
+
+
+ //check that we can not get the primary index using a quoted but incorrect table name casing
+ if( db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2"))
+ tablename = tablename.toLower();
+ else if (db.driverName().startsWith("QPSQL"))
+ tablename = tablename.toUpper();
+
+ index = db.driver()->primaryIndex(db.driver()->escapeIdentifier(tablename, QSqlDriver::TableName));
+ if (db.driverName().startsWith("QMYSQL") || db.driverName().startsWith("QSQLITE") || db.driverName().startsWith("QTDS"))
+ QCOMPARE(index.count(), 1); //mysql will always find the table name regardless of casing
+ else
+ QCOMPARE(index.count(), 0);
+}
+
+QTEST_MAIN(tst_QSqlDriver)
+#include "tst_qsqldriver.moc"
diff --git a/tests/auto/qsqlquery/tst_qsqlquery.cpp b/tests/auto/qsqlquery/tst_qsqlquery.cpp
index 8d77589..074f16f 100644
--- a/tests/auto/qsqlquery/tst_qsqlquery.cpp
+++ b/tests/auto/qsqlquery/tst_qsqlquery.cpp
@@ -179,6 +179,10 @@ private slots:
void task_217003();
#endif
+ void task_250026_data() { generic_data("QODBC"); }
+ void task_250026();
+
+
private:
// returns all database connections
void generic_data(const QString &engine=QString());
@@ -293,6 +297,7 @@ void tst_QSqlQuery::dropTestTables( QSqlDatabase db )
#ifdef NOT_READY_YET
tablenames << qTableName( "Planet" );
#endif
+ tablenames << qTableName( "task_250026" );
tst_Databases::safeDropTables( db, tablenames );
}
@@ -2677,5 +2682,34 @@ void tst_QSqlQuery::task_217003()
}
#endif
+void tst_QSqlQuery::task_250026()
+{
+ QString data258, data1026;
+ QFETCH( QString, dbName );
+ QSqlDatabase db = QSqlDatabase::database( dbName );
+ CHECK_DATABASE( db );
+ QSqlQuery q( db );
+
+ QString tableName = qTableName( "task_250026" );
+
+ if ( !q.exec( "create table " + tableName + " (longfield varchar(1100))" ) ) {
+ qDebug() << "Error" << q.lastError();
+ QSKIP( "Db doesn't support \"1100\" as a size for fields", SkipSingle );
+ }
+
+ data258.fill( 'A', 258 );
+ data1026.fill( 'A', 1026 );
+ QVERIFY_SQL( q, prepare( "insert into " + tableName + "(longfield) VALUES (:longfield)" ) );
+ q.bindValue( "longfield", data258 );
+ QVERIFY_SQL( q, exec() );
+ q.bindValue( "longfield", data1026 );
+ QVERIFY_SQL( q, exec() );
+ QVERIFY_SQL( q, exec( "select * from " + tableName ) );
+ QVERIFY_SQL( q, next() );
+ QCOMPARE( q.value( 0 ).toString().length(), data258.length() );
+ QVERIFY_SQL( q, next() );
+ QCOMPARE( q.value( 0 ).toString().length(), data1026.length() );
+}
+
QTEST_MAIN( tst_QSqlQuery )
#include "tst_qsqlquery.moc"
diff --git a/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp b/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
index 76785c3..bb2cddd 100644
--- a/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
+++ b/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
@@ -82,6 +82,10 @@ private slots:
void insertRecordDuplicateFieldNames();
void invalidData();
void relationModel();
+ void casing();
+ void escapedRelations();
+ void escapedTableName();
+ void whiteSpaceInIdentifiers();
};
@@ -103,7 +107,9 @@ void tst_QSqlRelationalTableModel::recreateTestTables(QSqlDatabase db)
<< qTableName( "reltest2" )
<< qTableName( "reltest3" )
<< qTableName( "reltest4" )
- << qTableName( "reltest5" );
+ << qTableName( "reltest5" )
+ << db.driver()->escapeIdentifier(qTableName( "rel test6" ), QSqlDriver::TableName)
+ << db.driver()->escapeIdentifier(qTableName( "rel test7" ), QSqlDriver::TableName);
tst_Databases::safeDropTables( db, tableNames );
QVERIFY_SQL( q, exec("create table " + qTableName("reltest1") +
@@ -128,6 +134,19 @@ void tst_QSqlRelationalTableModel::recreateTestTables(QSqlDatabase db)
QVERIFY_SQL( q, exec("create table " + qTableName("reltest5") + " (title varchar(20) not null primary key, abbrev varchar(20))"));
QVERIFY_SQL( q, exec("insert into " + qTableName("reltest5") + " values('herr', 'Hr')"));
QVERIFY_SQL( q, exec("insert into " + qTableName("reltest5") + " values('mister', 'Mr')"));
+
+ if (testWhiteSpaceNames(db.driverName())) {
+ QString reltest6 = db.driver()->escapeIdentifier(qTableName("rel test6"), QSqlDriver::TableName);
+ QVERIFY_SQL( q, exec("create table " + reltest6 + " (id int not null primary key, " + db.driver()->escapeIdentifier("city key", QSqlDriver::FieldName) +
+ " int, " + db.driver()->escapeIdentifier("extra field", QSqlDriver::FieldName) + " int)"));
+ QVERIFY_SQL( q, exec("insert into " + reltest6 + " values(1, 1,9)"));
+ QVERIFY_SQL( q, exec("insert into " + reltest6 + " values(2, 2,8)"));
+
+ QString reltest7 = db.driver()->escapeIdentifier(qTableName("rel test7"), QSqlDriver::TableName);
+ QVERIFY_SQL( q, exec("create table " + reltest7 + " (" + db.driver()->escapeIdentifier("city id", QSqlDriver::TableName) + " int not null primary key, " + db.driver()->escapeIdentifier("city name", QSqlDriver::FieldName) + " varchar(20))"));
+ QVERIFY_SQL( q, exec("insert into " + reltest7 + " values(1, 'New York')"));
+ QVERIFY_SQL( q, exec("insert into " + reltest7 + " values(2, 'Washington')"));
+ }
}
void tst_QSqlRelationalTableModel::initTestCase()
@@ -142,10 +161,14 @@ void tst_QSqlRelationalTableModel::cleanupTestCase()
tableNames << qTableName( "reltest1" )
<< qTableName( "reltest2" )
<< qTableName( "reltest3" )
- << qTableName( "reltest4" );
+ << qTableName( "reltest4" )
+ << qTableName( "reltest5" );
foreach (const QString &dbName, dbs.dbNames) {
QSqlDatabase db = QSqlDatabase::database(dbName);
- tst_Databases::safeDropTables( db, tableNames );
+ QStringList tables = tableNames;
+ tables << db.driver()->escapeIdentifier(qTableName( "rel test6" ), QSqlDriver::TableName)
+ << db.driver()->escapeIdentifier(qTableName( "rel test7" ), QSqlDriver::TableName);
+ tst_Databases::safeDropTables( db, tables );
}
dbs.close();
}
@@ -273,7 +296,12 @@ void tst_QSqlRelationalTableModel::setData()
model.setTable(qTableName("reltest1"));
model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title"));
- model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title"));
+
+ //sybase doesn't allow tables with the same alias used twice as col names
+ //so don't set up an identical relation when using the tds driver
+ if (!db.driverName().startsWith("QTDS"))
+ model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title"));
+
model.setEditStrategy(QSqlTableModel::OnManualSubmit);
model.setSort(0, Qt::AscendingOrder);
QVERIFY_SQL(model, select());
@@ -284,7 +312,10 @@ void tst_QSqlRelationalTableModel::setData()
QCOMPARE(model.data(model.index(2, 1)).toString(), QString("vohi2"));
QCOMPARE(model.data(model.index(3, 2)).toString(), QString("herr"));
- QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr"));
+ if (!db.driverName().startsWith("QTDS"))
+ QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr"));
+ else
+ QCOMPARE(model.data(model.index(0, 3)).toInt(), 1);
QVERIFY_SQL(model, submitAll());
}
@@ -299,10 +330,15 @@ void tst_QSqlRelationalTableModel::setData()
QCOMPARE(model.data(model.index(0, 3)).toInt(), 1);
model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title"));
- model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title"));
+ if (!db.driverName().startsWith("QTDS"))
+ model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title"));
QVERIFY_SQL(model, select());
QCOMPARE(model.data(model.index(3, 2)).toString(), QString("herr"));
- QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr"));
+
+ if (!db.driverName().startsWith("QTDS"))
+ QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr"));
+ else
+ QCOMPARE(model.data(model.index(0, 3)).toInt(), 1);
}
//check setting of data when the relational key is a non-integer type
@@ -336,7 +372,8 @@ void tst_QSqlRelationalTableModel::multipleRelation()
model.setTable(qTableName("reltest1"));
model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title"));
- model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title"));
+ model.setRelation(3, QSqlRelation(qTableName("reltest4"), "id", "name"));
+ model.setSort(0, Qt::AscendingOrder);
QVERIFY_SQL(model, select());
QCOMPARE(model.data(model.index(2, 0)).toInt(), 3);
@@ -344,7 +381,7 @@ void tst_QSqlRelationalTableModel::multipleRelation()
QCOMPARE(model.data(model.index(0, 0)).toInt(), 1);
QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
QCOMPARE(model.data(model.index(0, 2)).toString(), QString("herr"));
- QCOMPARE(model.data(model.index(0, 3)).toString(), QString("mister"));
+ QCOMPARE(model.data(model.index(0, 3)).toString(), QString("Trondheim"));
}
void tst_QSqlRelationalTableModel::insertRecord()
@@ -357,6 +394,7 @@ void tst_QSqlRelationalTableModel::insertRecord()
model.setTable(qTableName("reltest1"));
model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title"));
+ model.setSort(0, Qt::AscendingOrder);
QVERIFY_SQL(model, select());
QSqlRecord rec;
@@ -398,6 +436,7 @@ void tst_QSqlRelationalTableModel::setRecord()
model.setTable(qTableName("reltest1"));
model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title"));
+ model.setSort(0, Qt::AscendingOrder);
QVERIFY_SQL(model, select());
QSqlRecord rec;
@@ -450,13 +489,18 @@ void tst_QSqlRelationalTableModel::insertWithStrategies()
model.setTable(qTableName("reltest1"));
model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title"));
- model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title"));
+
+ if (!db.driverName().startsWith("QTDS"))
+ model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title"));
QVERIFY_SQL(model, select());
QCOMPARE(model.data(model.index(0,0)).toInt(), 1);
QCOMPARE(model.data(model.index(0,1)).toString(), QString("harry"));
QCOMPARE(model.data(model.index(0,2)).toString(), QString("herr"));
- QCOMPARE(model.data(model.index(0,3)).toString(), QString("mister"));
+ if (!db.driverName().startsWith("QTDS"))
+ QCOMPARE(model.data(model.index(0,3)).toString(), QString("mister"));
+ else
+ QCOMPARE(model.data(model.index(0,3)).toInt(), 2);
model.insertRows(0, 1);
model.setData(model.index(0, 0), 1011);
@@ -467,12 +511,20 @@ void tst_QSqlRelationalTableModel::insertWithStrategies()
QCOMPARE(model.data(model.index(0,0)).toInt(), 1011);
QCOMPARE(model.data(model.index(0,1)).toString(), QString("test"));
QCOMPARE(model.data(model.index(0,2)).toString(), QString("mister"));
- QCOMPARE(model.data(model.index(0,3)).toString(), QString("herr"));
+ if (!db.driverName().startsWith("QTDS"))
+ QCOMPARE(model.data(model.index(0,3)).toString(), QString("herr"));
+ else
+ QCOMPARE(model.data(model.index(0,3)).toInt(), 1);
QCOMPARE(model.data(model.index(1,0)).toInt(), 1);
QCOMPARE(model.data(model.index(1,1)).toString(), QString("harry"));
QCOMPARE(model.data(model.index(1,2)).toString(), QString("herr"));
- QCOMPARE(model.data(model.index(1,3)).toString(), QString("mister"));
+ if (!db.driverName().startsWith("QTDS"))
+ QCOMPARE(model.data(model.index(1,3)).toString(), QString("mister"));
+ else
+ QCOMPARE(model.data(model.index(1,3)).toInt(), 2);
+
+
QVERIFY_SQL(model, submitAll());
@@ -481,9 +533,16 @@ void tst_QSqlRelationalTableModel::insertWithStrategies()
QCOMPARE(model.data(model.index(0,0)).toInt(), 1);
QCOMPARE(model.data(model.index(0,1)).toString(), QString("harry"));
QCOMPARE(model.data(model.index(0,2)).toString(), QString("herr"));
- QCOMPARE(model.data(model.index(0,3)).toString(), QString("mister"));
- model.setData(model.index(0,3),1);
- QCOMPARE(model.data(model.index(0,3)).toString(), QString("herr"));
+
+ if (!db.driverName().startsWith("QTDS")) {
+ QCOMPARE(model.data(model.index(0,3)).toString(), QString("mister"));
+ model.setData(model.index(0,3),1);
+ QCOMPARE(model.data(model.index(0,3)).toString(), QString("herr"));
+ } else {
+ QCOMPARE(model.data(model.index(0,3)).toInt(), 2);
+ model.setData(model.index(0,3),1);
+ QCOMPARE(model.data(model.index(0,3)).toInt(), 1);
+ }
model.insertRows(0, 2);
model.setData(model.index(0, 0), 1012);
@@ -499,17 +558,27 @@ void tst_QSqlRelationalTableModel::insertWithStrategies()
QCOMPARE(model.data(model.index(0,0)).toInt(),1012);
QCOMPARE(model.data(model.index(0,1)).toString(), QString("george"));
QCOMPARE(model.data(model.index(0,2)).toString(), QString("mister"));
- QCOMPARE(model.data(model.index(0,3)).toString(), QString("mister"));
+ if (!db.driverName().startsWith("QTDS"))
+ QCOMPARE(model.data(model.index(0,3)).toString(), QString("mister"));
+ else
+ QCOMPARE(model.data(model.index(0,3)).toInt(), 2);
+
QCOMPARE(model.data(model.index(1,0)).toInt(),1013);
QCOMPARE(model.data(model.index(1,1)).toString(), QString("kramer"));
QCOMPARE(model.data(model.index(1,2)).toString(), QString("mister"));
- QCOMPARE(model.data(model.index(1,3)).toString(), QString("herr"));
+ if (!db.driverName().startsWith("QTDS"))
+ QCOMPARE(model.data(model.index(1,3)).toString(), QString("herr"));
+ else
+ QCOMPARE(model.data(model.index(1,3)).toInt(), 1);
QCOMPARE(model.data(model.index(2,0)).toInt(), 1);
QCOMPARE(model.data(model.index(2,1)).toString(), QString("harry"));
QCOMPARE(model.data(model.index(2,2)).toString(), QString("herr"));
- QCOMPARE(model.data(model.index(2,3)).toString(), QString("herr"));
+ if (!db.driverName().startsWith("QTDS"))
+ QCOMPARE(model.data(model.index(2,3)).toString(), QString("herr"));
+ else
+ QCOMPARE(model.data(model.index(2,3)).toInt(), 1);
QVERIFY_SQL(model, submitAll());
}
@@ -574,7 +643,8 @@ void tst_QSqlRelationalTableModel::sort()
model.setTable(qTableName("reltest1"));
model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title"));
- model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title"));
+ if (!db.driverName().startsWith("QTDS"))
+ model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title"));
model.setSort(2, Qt::DescendingOrder);
QVERIFY_SQL(model, select());
@@ -589,11 +659,19 @@ void tst_QSqlRelationalTableModel::sort()
model.setSort(3, Qt::AscendingOrder);
QVERIFY_SQL(model, select());
- QCOMPARE(model.rowCount(), 4);
- QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr"));
- QCOMPARE(model.data(model.index(1, 3)).toString(), QString("mister"));
- QCOMPARE(model.data(model.index(2, 3)).toString(), QString("mister"));
- QCOMPARE(model.data(model.index(3, 3)).toString(), QString("mister"));
+ if (!db.driverName().startsWith("QTDS")) {
+ QCOMPARE(model.rowCount(), 4);
+ QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr"));
+ QCOMPARE(model.data(model.index(1, 3)).toString(), QString("mister"));
+ QCOMPARE(model.data(model.index(2, 3)).toString(), QString("mister"));
+ QCOMPARE(model.data(model.index(3, 3)).toString(), QString("mister"));
+ } else {
+ QCOMPARE(model.data(model.index(0, 3)).toInt(), 1);
+ QCOMPARE(model.data(model.index(1, 3)).toInt(), 2);
+ QCOMPARE(model.data(model.index(2, 3)).toInt(), 2);
+ QCOMPARE(model.data(model.index(3, 3)).toInt(), 2);
+ }
+
}
static void testRevert(QSqlRelationalTableModel &model)
@@ -663,7 +741,7 @@ void tst_QSqlRelationalTableModel::revert()
model.setTable(qTableName("reltest1"));
model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title"));
- model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title"));
+ model.setRelation(3, QSqlRelation(qTableName("reltest4"), "id", "name"));
model.setSort(0, Qt::AscendingOrder);
@@ -689,7 +767,9 @@ void tst_QSqlRelationalTableModel::clearDisplayValuesCache()
model.setTable(qTableName("reltest1"));
model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title"));
- model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title"));
+
+ if (!db.driverName().startsWith("QTDS"))
+ model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title"));
model.setSort(1, Qt::AscendingOrder);
model.setEditStrategy(QSqlTableModel::OnManualSubmit);
@@ -698,7 +778,10 @@ void tst_QSqlRelationalTableModel::clearDisplayValuesCache()
QCOMPARE(model.data(model.index(3, 0)).toInt(), 3);
QCOMPARE(model.data(model.index(3, 1)).toString(), QString("vohi"));
QCOMPARE(model.data(model.index(3, 2)).toString(), QString("herr"));
- QCOMPARE(model.data(model.index(3, 3)).toString(), QString("mister"));
+ if (!db.driverName().startsWith("QTDS"))
+ QCOMPARE(model.data(model.index(3, 3)).toString(), QString("mister"));
+ else
+ QCOMPARE(model.data(model.index(3, 3)).toInt(), 2 );
model.insertRow(model.rowCount());
QVERIFY(model.setData(model.index(4, 0), 5, Qt::EditRole));
@@ -710,11 +793,18 @@ void tst_QSqlRelationalTableModel::clearDisplayValuesCache()
QCOMPARE(model.data(model.index(0, 0)).toInt(), 5);
QCOMPARE(model.data(model.index(0, 1)).toString(), QString("anders"));
QCOMPARE(model.data(model.index(0, 2)).toString(), QString("herr"));
- QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr"));
+ if (!db.driverName().startsWith("QTDS"))
+ QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr"));
+ else
+ QCOMPARE(model.data(model.index(0, 3)).toInt(), 1);
+
QCOMPARE(model.data(model.index(4, 0)).toInt(), 3);
QCOMPARE(model.data(model.index(4, 1)).toString(), QString("vohi"));
QCOMPARE(model.data(model.index(4, 2)).toString(), QString("herr"));
- QCOMPARE(model.data(model.index(4, 3)).toString(), QString("mister"));
+ if (!db.driverName().startsWith("QTDS"))
+ QCOMPARE(model.data(model.index(4, 3)).toString(), QString("mister"));
+ else
+ QCOMPARE(model.data(model.index(4, 3)).toInt(), 2);
}
// For task 140782 and 176374: If the main table and the the related tables uses the same
@@ -729,27 +819,38 @@ void tst_QSqlRelationalTableModel::insertRecordDuplicateFieldNames()
QSqlRelationalTableModel model(0, db);
model.setTable(qTableName("reltest3"));
model.setEditStrategy(QSqlTableModel::OnManualSubmit);
+ model.setSort(0, Qt::AscendingOrder);
// Duplication of "name", used in both reltest3 and reltest4.
model.setRelation(2, QSqlRelation(qTableName("reltest4"), "id", "name"));
QVERIFY_SQL(model, select());
- QCOMPARE(model.record(1).value(qTableName("reltest4").append(QLatin1String("_name"))).toString(),
+ if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) {
+ QCOMPARE(model.record(1).value(qTableName("reltest4").append(QLatin1String("_name")).toUpper()).toString(),
+ QString("Trondheim"));
+ } else {
+ QCOMPARE(model.record(1).value(qTableName("reltest4").append(QLatin1String("_name"))).toString(),
QString("Trondheim"));
+ }
QSqlRecord rec = model.record();
rec.setValue(0, 3);
rec.setValue(1, "Berge");
rec.setValue(2, 1); // Must insert the key value
- QCOMPARE(rec.fieldName(0), QLatin1String("id"));
- QCOMPARE(rec.fieldName(1), QLatin1String("name")); // This comes from main table
+ if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) {
+ QCOMPARE(rec.fieldName(0), QLatin1String("ID"));
+ QCOMPARE(rec.fieldName(1), QLatin1String("NAME")); // This comes from main table
+ } else {
+ QCOMPARE(rec.fieldName(0), QLatin1String("id"));
+ QCOMPARE(rec.fieldName(1), QLatin1String("name"));
+ }
// The duplicate field names is aliased because it's comes from the relation's display column.
- if(!db.driverName().startsWith("QIBASE"))
- QCOMPARE(rec.fieldName(2), qTableName("reltest4").append(QLatin1String("_name")));
- else
+ if(db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2"))
QCOMPARE(rec.fieldName(2), (qTableName("reltest4").append(QLatin1String("_name"))).toUpper());
+ else
+ QCOMPARE(rec.fieldName(2), qTableName("reltest4").append(QLatin1String("_name")));
QVERIFY(model.insertRecord(-1, rec));
QCOMPARE(model.data(model.index(2, 2)).toString(), QString("Oslo"));
@@ -793,7 +894,7 @@ void tst_QSqlRelationalTableModel::relationModel()
QVERIFY(model.relationModel(3) == NULL);
QVERIFY(model.relationModel(4) == NULL);
- model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title"));
+ model.setRelation(3, QSqlRelation(qTableName("reltest4"), "id", "name"));
QVERIFY_SQL(model, select());
QVERIFY(model.relationModel(0) == NULL);
@@ -806,5 +907,285 @@ void tst_QSqlRelationalTableModel::relationModel()
QCOMPARE(rel_model->data(rel_model->index(0,1)).toString(), QString("herr"));
}
+void tst_QSqlRelationalTableModel::casing()
+{
+ QFETCH_GLOBAL(QString, dbName);
+ QSqlDatabase db = QSqlDatabase::database(dbName);
+ CHECK_DATABASE(db);
+
+ if (db.driverName().startsWith("QSQLITE"))
+ QSKIP("The casing test for SQLITE is irrelevant since SQLITE is case insensitive", SkipAll);
+
+ QStringList tableNames;
+ tableNames << qTableName("CASETEST1", db.driver()).toUpper();
+ tableNames << qTableName("casetest1", db.driver());
+ tst_Databases::safeDropTables(db, tableNames);
+
+ QSqlQuery q(db);
+ QVERIFY_SQL( q, exec("create table " + qTableName("CASETEST1", db.driver()).toUpper() +
+ " (id int not null primary key, name varchar(20), title_key int, another_title_key int)"));
+ QVERIFY_SQL( q, exec("insert into " + qTableName("CASETEST1", db.driver()).toUpper() + " values(1, 'harry', 1, 2)"));
+ QVERIFY_SQL( q, exec("insert into " + qTableName("CASETEST1", db.driver()).toUpper() + " values(2, 'trond', 2, 1)"));
+ QVERIFY_SQL( q, exec("insert into " + qTableName("CASETEST1", db.driver()).toUpper() + " values(3, 'vohi', 1, 2)"));
+ QVERIFY_SQL( q, exec("insert into " + qTableName("CASETEST1", db.driver()).toUpper() + " values(4, 'boris', 2, 2)"));
+
+ QVERIFY_SQL( q, exec("create table " + qTableName("casetest1", db.driver()) +
+ " (ident int not null primary key, name varchar(20), title_key int)"));
+ QVERIFY_SQL( q, exec("insert into " + qTableName("casetest1", db.driver()) + " values(1, 'jerry', 1)"));
+ QVERIFY_SQL( q, exec("insert into " + qTableName("casetest1", db.driver()) + " values(2, 'george', 2)"));
+ QVERIFY_SQL( q, exec("insert into " + qTableName("casetest1", db.driver()) + " values(4, 'kramer', 2)"));
+
+ if (db.driverName().startsWith("QOCI")) {
+ //try an owner that doesn't exist
+ QSqlRecord rec = db.driver()->record("doug." + qTableName("CASETEST1", db.driver()).toUpper());
+ QCOMPARE( rec.count(), 0);
+
+ //try an owner that does exist
+ rec = db.driver()->record(db.userName() + "." + qTableName("CASETEST1", db.driver()).toUpper());
+ QCOMPARE( rec.count(), 4);
+ }
+ QSqlRecord rec = db.driver()->record(qTableName("CASETEST1", db.driver()).toUpper());
+ QCOMPARE( rec.count(), 4);
+
+ rec = db.driver()->record(qTableName("casetest1", db.driver()));
+ QCOMPARE( rec.count(), 3);
+
+ QSqlTableModel upperCaseModel(0, db);
+ upperCaseModel.setTable(qTableName("CASETEST1", db.driver()).toUpper());
+
+ QCOMPARE(upperCaseModel.tableName(),qTableName("CASETEST1",db.driver()).toUpper());
+
+ QVERIFY_SQL(upperCaseModel, select());
+
+ QCOMPARE(upperCaseModel.rowCount(), 4);
+
+ QSqlTableModel lowerCaseModel(0, db);
+ lowerCaseModel.setTable(qTableName("casetest1", db.driver()));
+ QCOMPARE(lowerCaseModel.tableName(), qTableName("casetest1",db.driver()));
+ QVERIFY_SQL(lowerCaseModel, select());
+
+ QCOMPARE(lowerCaseModel.rowCount(), 3);
+
+ QSqlRelationalTableModel model(0, db);
+ model.setTable(qTableName("CASETEST1", db.driver()).toUpper());
+ model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title"));
+ QVERIFY_SQL(model, select());
+
+ QCOMPARE(model.data(model.index(0, 0)).toInt(), 1);
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QCOMPARE(model.data(model.index(0, 2)).toString(), QString("herr"));
+
+ tst_Databases::safeDropTables(db, tableNames);
+}
+
+void tst_QSqlRelationalTableModel::escapedRelations()
+{
+ QFETCH_GLOBAL(QString, dbName);
+ QSqlDatabase db = QSqlDatabase::database(dbName);
+ CHECK_DATABASE(db);
+ recreateTestTables(db);
+
+ QSqlRelationalTableModel model(0, db);
+ model.setTable(qTableName("reltest1"));
+
+ //try with relation table name quoted
+ if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) {
+ model.setRelation(2, QSqlRelation(db.driver()->escapeIdentifier(qTableName("reltest2").toUpper(),QSqlDriver::TableName),
+ "tid",
+ "title"));
+ } else {
+ model.setRelation(2, QSqlRelation(db.driver()->escapeIdentifier(qTableName("reltest2"),QSqlDriver::TableName),
+ "tid",
+ "title"));
+
+ }
+ QVERIFY_SQL(model, select());
+
+ QCOMPARE(model.data(model.index(0, 0)).toInt(), 1);
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QCOMPARE(model.data(model.index(0, 2)).toString(), QString("herr"));
+
+ //try with index column quoted
+ if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) {
+ model.setRelation(2, QSqlRelation(qTableName("reltest2"),
+ db.driver()->escapeIdentifier("tid", QSqlDriver::FieldName).toUpper(),
+ "title"));
+ } else {
+ model.setRelation(2, QSqlRelation(qTableName("reltest2"),
+ db.driver()->escapeIdentifier("tid", QSqlDriver::FieldName),
+ "title"));
+ }
+ QVERIFY_SQL(model, select());
+
+ QCOMPARE(model.data(model.index(0, 0)).toInt(), 1);
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QCOMPARE(model.data(model.index(0, 2)).toString(), QString("herr"));
+
+ //try with display column quoted
+
+ if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) {
+
+ model.setRelation(2, QSqlRelation(qTableName("reltest2"),
+ "tid",
+ db.driver()->escapeIdentifier("title", QSqlDriver::FieldName).toUpper()));
+ } else {
+ model.setRelation(2, QSqlRelation(qTableName("reltest2"),
+ "tid",
+ db.driver()->escapeIdentifier("title", QSqlDriver::FieldName)));
+ }
+
+ QVERIFY_SQL(model, select());
+
+ QCOMPARE(model.data(model.index(0, 0)).toInt(), 1);
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QCOMPARE(model.data(model.index(0, 2)).toString(), QString("herr"));
+
+ //try with tablename and index and display columns quoted in the relation
+
+ if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) {
+ model.setRelation(2, QSqlRelation(qTableName("reltest2"),
+ "tid",
+ db.driver()->escapeIdentifier("title", QSqlDriver::FieldName).toUpper()));
+ } else {
+ model.setRelation(2, QSqlRelation(qTableName("reltest2"),
+ "tid",
+ db.driver()->escapeIdentifier("title", QSqlDriver::FieldName)));
+ }
+ QVERIFY_SQL(model, select());
+
+ QCOMPARE(model.data(model.index(0, 0)).toInt(), 1);
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QCOMPARE(model.data(model.index(0, 2)).toString(), QString("herr"));
+}
+
+void tst_QSqlRelationalTableModel::escapedTableName()
+{
+ QFETCH_GLOBAL(QString, dbName);
+ QSqlDatabase db = QSqlDatabase::database(dbName);
+ CHECK_DATABASE(db);
+
+ // set the values using OnRowChange Strategy with an escaped tablename
+ {
+ QSqlRelationalTableModel model(0, db);
+
+ if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) {
+ model.setTable(db.driver()->escapeIdentifier(qTableName("reltest1").toUpper(), QSqlDriver::TableName));
+ } else {
+ model.setTable(db.driver()->escapeIdentifier(qTableName("reltest1"), QSqlDriver::TableName));
+ }
+ model.setSort(0, Qt::AscendingOrder);
+ model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title"));
+ QVERIFY_SQL(model, select());
+
+ QVERIFY(model.setData(model.index(0, 1), QString("harry2")));
+ QVERIFY(model.setData(model.index(0, 2), 2));
+
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry2"));
+ QCOMPARE(model.data(model.index(0, 2)).toString(), QString("mister"));
+
+ model.submit();
+
+ QVERIFY(model.setData(model.index(3,1), QString("boris2")));
+ QVERIFY(model.setData(model.index(3, 2), 1));
+
+ QCOMPARE(model.data(model.index(3,1)).toString(), QString("boris2"));
+ QCOMPARE(model.data(model.index(3, 2)).toString(), QString("herr"));
+
+ model.submit();
+ }
+ { //verify values
+ QSqlRelationalTableModel model(0, db);
+ model.setTable(qTableName("reltest1"));
+ model.setSort(0, Qt::AscendingOrder);
+ QVERIFY_SQL(model, select());
+
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry2"));
+ QCOMPARE(model.data(model.index(0, 2)).toInt(), 2);
+ QCOMPARE(model.data(model.index(3, 1)).toString(), QString("boris2"));
+ QCOMPARE(model.data(model.index(3, 2)).toInt(), 1);
+
+ model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title"));
+ QVERIFY_SQL(model, select());
+ QCOMPARE(model.data(model.index(0, 2)).toString(), QString("mister"));
+ QCOMPARE(model.data(model.index(3,2)).toString(), QString("herr"));
+
+ }
+}
+
+void tst_QSqlRelationalTableModel::whiteSpaceInIdentifiers() {
+
+ QFETCH_GLOBAL(QString, dbName);
+ QSqlDatabase db = QSqlDatabase::database(dbName);
+ CHECK_DATABASE(db);
+
+ if (!testWhiteSpaceNames(db.driverName()))
+ QSKIP("White space test irrelevant for driver", SkipAll);
+ QSqlRelationalTableModel model(0, db);
+ model.setTable(db.driver()->escapeIdentifier(qTableName("rel test6"), QSqlDriver::TableName));
+ model.setSort(0, Qt::DescendingOrder);
+ model.setRelation(1, QSqlRelation(db.driver()->escapeIdentifier(qTableName("rel test7"), QSqlDriver::TableName),
+ db.driver()->escapeIdentifier("city id", QSqlDriver::FieldName),
+ db.driver()->escapeIdentifier("city name", QSqlDriver::FieldName)));
+ QVERIFY_SQL(model, select());
+
+ QCOMPARE(model.data(model.index(0,1)).toString(), QString("Washington"));
+ QCOMPARE(model.data(model.index(1,1)).toString(), QString("New York"));
+
+ QSqlRecord rec;
+ QSqlField f1("id", QVariant::Int);
+ QSqlField f2(db.driver()->escapeIdentifier("city key", QSqlDriver::FieldName), QVariant::Int);
+ QSqlField f3(db.driver()->escapeIdentifier("extra field", QSqlDriver::FieldName), QVariant::Int);
+
+ f1.setValue(3);
+ f2.setValue(2);
+ f3.setValue(7);
+
+ f1.setGenerated(true);
+ f2.setGenerated(true);
+ f3.setGenerated(true);
+
+ rec.append(f1);
+ rec.append(f2);
+ rec.append(f3);
+
+ QVERIFY_SQL(model, insertRecord(-1, rec));
+ model.submitAll();
+
+ QCOMPARE(model.data(model.index(0, 0)).toInt(), 3);
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("Washington"));
+ QCOMPARE(model.data(model.index(0, 2)).toInt(), 7);
+
+ //TODO: For some reson setting a record using manual submit fails
+ //model.setEditStrategy(QSqlTableModel::OnManualSubmit);
+
+ QSqlRecord recNew;
+ QSqlField f1New("id", QVariant::Int);
+ QSqlField f2New(db.driver()->escapeIdentifier("city key", QSqlDriver::FieldName), QVariant::Int);
+ QSqlField f3New(db.driver()->escapeIdentifier("extra field", QSqlDriver::FieldName), QVariant::Int);
+
+ f1New.setValue(4);
+ f2New.setValue(1);
+ f3New.setValue(6);
+
+ f1New.setGenerated(true);
+ f2New.setGenerated(true);
+ f3New.setGenerated(true);
+
+ recNew.append(f1New);
+ recNew.append(f2New);
+ recNew.append(f3New);
+
+ QVERIFY_SQL(model, setRecord(0, recNew));
+
+ QCOMPARE(model.data(model.index(0, 0)).toInt(), 4);
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("New York"));
+ QCOMPARE(model.data(model.index(0, 2)).toInt(), 6);
+
+ QVERIFY_SQL(model, submitAll());
+ QCOMPARE(model.data(model.index(0, 0)).toInt(), 4);
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("New York"));
+ QCOMPARE(model.data(model.index(0, 2)).toInt(), 6);
+}
+
QTEST_MAIN(tst_QSqlRelationalTableModel)
#include "tst_qsqlrelationaltablemodel.moc"
diff --git a/tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp b/tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp
index d4affe4..0e7355e 100644
--- a/tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp
+++ b/tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp
@@ -145,7 +145,7 @@ void tst_QSqlTableModel::dropTestTables()
<< qTableName("bigtable")
<< qTableName("foo");
if (testWhiteSpaceNames(db.driverName()))
- tableNames << qTableName("qtestw hitespace");
+ tableNames << qTableName("qtestw hitespace", db.driver());
tst_Databases::safeDropTables(db, tableNames);
@@ -277,6 +277,7 @@ void tst_QSqlTableModel::setRecord()
QList<QSqlTableModel::EditStrategy> policies = QList<QSqlTableModel::EditStrategy>() << QSqlTableModel::OnFieldChange << QSqlTableModel::OnRowChange << QSqlTableModel::OnManualSubmit;
+ QString Xsuffix;
foreach( QSqlTableModel::EditStrategy submitpolicy, policies) {
QSqlTableModel model(0, db);
@@ -295,6 +296,8 @@ void tst_QSqlTableModel::setRecord()
if ((QSqlTableModel::EditStrategy)submitpolicy == QSqlTableModel::OnManualSubmit)
QVERIFY(model.submitAll());
+ else if ((QSqlTableModel::EditStrategy)submitpolicy == QSqlTableModel::OnRowChange && i == model.rowCount() -1)
+ model.submit();
else {
// dataChanged() is not emitted when submitAll() is called
QCOMPARE(spy.count(), 2);
@@ -304,10 +307,12 @@ void tst_QSqlTableModel::setRecord()
}
}
- QCOMPARE(model.data(model.index(0, 1)).toString(), QString("fooX"));
- QCOMPARE(model.data(model.index(0, 2)).toString(), QString("barX"));
- QCOMPARE(model.data(model.index(1, 1)).toString(), QString("bazX"));
- QCOMPARE(model.data(model.index(1, 2)).toString(), QString("joeX"));
+ Xsuffix.append('X');
+
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("foo").append(Xsuffix));
+ QCOMPARE(model.data(model.index(0, 2)).toString(), QString("bar").append(Xsuffix));
+ QCOMPARE(model.data(model.index(1, 1)).toString(), QString("baz").append(Xsuffix));
+ QCOMPARE(model.data(model.index(1, 2)).toString(), QString("joe").append(Xsuffix));
}
}
diff --git a/tests/auto/qstandarditemmodel/tst_qstandarditemmodel.cpp b/tests/auto/qstandarditemmodel/tst_qstandarditemmodel.cpp
index a3322ab..84bda92 100644
--- a/tests/auto/qstandarditemmodel/tst_qstandarditemmodel.cpp
+++ b/tests/auto/qstandarditemmodel/tst_qstandarditemmodel.cpp
@@ -115,7 +115,6 @@ private slots:
void checkChildren();
void data();
void clear();
-#if QT_VERSION >= 0x040200
void sort_data();
void sort();
void sortRole_data();
@@ -133,10 +132,9 @@ private slots:
void useCase1();
void useCase2();
void useCase3();
-#endif
void rootItemFlags();
- void treeDragAndDrop();
+ void treeDragAndDrop();
private:
QAbstractItemModel *m_model;
@@ -144,7 +142,7 @@ private:
QVector<QModelIndex> rcParent;
QVector<int> rcFirst;
QVector<int> rcLast;
-
+
//return true if models have the same structure, and all child have the same text
bool compareModels(QStandardItemModel *model1, QStandardItemModel *model2);
//return true if models have the same structure, and all child have the same text
@@ -154,9 +152,7 @@ private:
static const int defaultSize = 3;
Q_DECLARE_METATYPE(QModelIndex)
-#if QT_VERSION >= 0x040200
Q_DECLARE_METATYPE(QStandardItem*)
-#endif
Q_DECLARE_METATYPE(Qt::Orientation)
Q_DECLARE_METATYPE(QVariantList)
@@ -181,9 +177,7 @@ tst_QStandardItemModel::~tst_QStandardItemModel()
void tst_QStandardItemModel::init()
{
qRegisterMetaType<QModelIndex>("QModelIndex");
-#if QT_VERSION >= 0x040200
qRegisterMetaType<QStandardItem*>("QStandardItem*");
-#endif
qRegisterMetaType<Qt::Orientation>("Qt::Orientation");
m_model = new QStandardItemModel(defaultSize, defaultSize);
@@ -768,7 +762,6 @@ void tst_QStandardItemModel::clear()
QCOMPARE(model.hasChildren(), false);
}
-#if QT_VERSION >= 0x040200
void tst_QStandardItemModel::sort_data()
{
QTest::addColumn<int>("sortOrder");
@@ -1383,8 +1376,6 @@ void tst_QStandardItemModel::useCase3()
delete childItem;
}
-#endif // QT_VERSION >= 0x040200
-
void tst_QStandardItemModel::rootItemFlags()
{
QStandardItemModel model(6, 4);
@@ -1426,7 +1417,7 @@ bool tst_QStandardItemModel::compareItems(QStandardItem *item1, QStandardItem *i
}
for (int row = 0; row < item1->columnCount(); row++)
for (int col = 0; col < item1->columnCount(); col++) {
-
+
if (!compareItems(item1->child(row, col), item2->child(row, col)))
return false;
}
@@ -1438,19 +1429,19 @@ static QStandardItem *itemFromText(QStandardItem *parent, const QString &text)
QStandardItem *item = 0;
for(int i = 0; i < parent->columnCount(); i++)
for(int j = 0; j < parent->rowCount(); j++) {
-
+
QStandardItem *child = parent->child(j, i);
-
+
if(!child)
continue;
-
+
if (child->text() == text) {
if (item) {
return 0;
}
item = child;
}
-
+
QStandardItem *candidate = itemFromText(child, text);
if(candidate) {
if (item) {
@@ -1470,9 +1461,9 @@ static QModelIndex indexFromText(QStandardItemModel *model, const QString &text)
}
-struct FriendlyTreeView : public QTreeView
+struct FriendlyTreeView : public QTreeView
{
- friend class tst_QStandardItemModel;
+ friend class tst_QStandardItemModel;
Q_DECLARE_PRIVATE(QTreeView)
};
@@ -1480,7 +1471,7 @@ void tst_QStandardItemModel::treeDragAndDrop()
{
const int nRow = 5;
const int nCol = 3;
-
+
QStandardItemModel model;
QStandardItemModel checkModel;
@@ -1489,13 +1480,13 @@ void tst_QStandardItemModel::treeDragAndDrop()
for (int c = 0 ; c < nCol; c ++)
colItems1 << new QStandardItem(QString("item %1 - %0").arg(c).arg(i));
model.appendRow(colItems1);
-
+
for (int j = 0; j < nRow; ++j) {
QList<QStandardItem *> colItems2;
for (int c = 0 ; c < nCol; c ++)
colItems2 << new QStandardItem(QString("item %1/%2 - %0").arg(c).arg(i).arg(j));
colItems1.at(0)->appendRow(colItems2);
-
+
for (int k = 0; k < nRow; ++k) {
QList<QStandardItem *> colItems3;
for (int c = 0 ; c < nCol; c ++)
@@ -1504,21 +1495,19 @@ void tst_QStandardItemModel::treeDragAndDrop()
}
}
}
-
-
-
+
for (int i = 0; i < nRow; ++i) {
QList<QStandardItem *> colItems1;
for (int c = 0 ; c < nCol; c ++)
colItems1 << new QStandardItem(QString("item %1 - %0").arg(c).arg(i));
checkModel.appendRow(colItems1);
-
+
for (int j = 0; j < nRow; ++j) {
QList<QStandardItem *> colItems2;
for (int c = 0 ; c < nCol; c ++)
colItems2 << new QStandardItem(QString("item %1/%2 - %0").arg(c).arg(i).arg(j));
colItems1.at(0)->appendRow(colItems2);
-
+
for (int k = 0; k < nRow; ++k) {
QList<QStandardItem *> colItems3;
for (int c = 0 ; c < nCol; c ++)
@@ -1527,9 +1516,9 @@ void tst_QStandardItemModel::treeDragAndDrop()
}
}
}
-
+
QVERIFY(compareModels(&model, &checkModel));
-
+
FriendlyTreeView view;
view.setModel(&model);
view.expandAll();
@@ -1556,7 +1545,7 @@ void tst_QStandardItemModel::treeDragAndDrop()
if(model.dropMimeData(data, Qt::MoveAction, 0, 0, indexFromText(&model, "item 4 - 0")))
view.d_func()->clearOrRemove();
delete data;
-
+
QVERIFY(!compareModels(&model, &checkModel)); //the model must be different at this point
QStandardItem *item4 = itemFromText(checkModel.invisibleRootItem(), "item 4 - 0");
item4->insertRow(0, checkModel.takeRow(1));
@@ -1564,7 +1553,6 @@ void tst_QStandardItemModel::treeDragAndDrop()
QVERIFY(compareModels(&model, &checkModel));
}
-
//
// step2 drag "item 3" and "item 3/0" into "item 4"
//
@@ -1572,10 +1560,10 @@ void tst_QStandardItemModel::treeDragAndDrop()
selection->clear();
selection->select(QItemSelection(indexFromText(&model, QString("item 3 - 0")),
indexFromText(&model, QString("item 3 - %0").arg(nCol-1))), QItemSelectionModel::Select);
-
+
selection->select(QItemSelection(indexFromText(&model, QString("item 3/0 - 0")),
indexFromText(&model, QString("item 3/0 - %0").arg(nCol-1))), QItemSelectionModel::Select);
-
+
//code based from QAbstractItemView::startDrag and QAbstractItemView::dropEvent
QModelIndexList indexes = view.selectedIndexes();
QMimeData *data = model.mimeData(indexes);
diff --git a/tests/auto/qstring/tst_qstring.cpp b/tests/auto/qstring/tst_qstring.cpp
index f786965..1263a41 100644
--- a/tests/auto/qstring/tst_qstring.cpp
+++ b/tests/auto/qstring/tst_qstring.cpp
@@ -432,6 +432,10 @@ void tst_QString::replace_uint_uint_data()
QTest::newRow( "rep09" ) << QString("ACABCAB") << 4 << 2 << QString("XX") << QString("ACABXXB");
QTest::newRow( "rep10" ) << QString("ACABCAB") << 5 << 2 << QString("XX") << QString("ACABCXX");
QTest::newRow( "rep10" ) << QString("ACABCAB") << 6 << 2 << QString("XX") << QString("ACABCAXX");
+ QTest::newRow( "rep12" ) << QString() << 0 << 10 << QString("X") << QString("X");
+ QTest::newRow( "rep13" ) << QString("short") << 0 << 10 << QString("X") << QString("X");
+ QTest::newRow( "rep14" ) << QString() << 0 << 10 << QString("XX") << QString("XX");
+ QTest::newRow( "rep15" ) << QString("short") << 0 << 10 << QString("XX") << QString("XX");
}
void tst_QString::replace_string_data()
diff --git a/tests/auto/qstyle/tst_qstyle.cpp b/tests/auto/qstyle/tst_qstyle.cpp
index e31e0db..cb30f83 100644
--- a/tests/auto/qstyle/tst_qstyle.cpp
+++ b/tests/auto/qstyle/tst_qstyle.cpp
@@ -70,10 +70,7 @@
#include <qlineedit.h>
#include <qmdiarea.h>
-
-#if QT_VERSION >= 0x040200
#include <QCleanlooksStyle>
-#endif
#ifdef Q_WS_MAC
#include <QMacStyle>
@@ -343,7 +340,7 @@ void tst_QStyle::testPlastiqueStyle()
void tst_QStyle::testCleanlooksStyle()
{
-#if QT_VERSION >= 0x040200 && !defined(QT_NO_STYLE_CLEANLOOKS)
+#if !defined(QT_NO_STYLE_CLEANLOOKS)
QCleanlooksStyle cstyle;
testAllFunctions(&cstyle);
lineUpLayoutTest(&cstyle);
@@ -365,7 +362,7 @@ void tst_QStyle::testWindowsXPStyle()
QWindowsXPStyle xpstyle;
testAllFunctions(&xpstyle);
lineUpLayoutTest(&xpstyle);
-#else
+#else
QSKIP("No WindowsXP style", SkipAll);
#endif
}
diff --git a/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp b/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp
index aa63753..1a4b639 100644
--- a/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp
+++ b/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp
@@ -81,6 +81,7 @@ private slots:
void onWidgetDestroyed();
void fontPrecedence();
void focusColors();
+ void hoverColors();
void background();
void tabAlignement();
void attributesList();
@@ -605,8 +606,9 @@ void tst_QStyleSheetStyle::palettePropagation()
QVERIFY(COLOR(gb) == Qt::red);
QVERIFY(COLOR(pb) == APPCOLOR(pb)); // palette shouldn't propagate
gb.setStyleSheet("QGroupBox * { color: red }");
+
QVERIFY(COLOR(pb) == Qt::red);
- QVERIFY(COLOR(gb) == APPCOLOR(pb));
+ QVERIFY(COLOR(gb) == APPCOLOR(gb));
QWidget window;
window.setStyleSheet("* { color: white; }");
@@ -759,6 +761,7 @@ void tst_QStyleSheetStyle::focusColors()
combobox->setEditable(true);
combobox->addItems(QStringList() << "TESTING");
widgets << combobox;
+ widgets << new QLabel("TESTING");
#ifdef Q_WS_QWS
// QWS has its own special focus logic which is slightly different
@@ -808,6 +811,56 @@ void tst_QStyleSheetStyle::focusColors()
// }
}
+
+void tst_QStyleSheetStyle::hoverColors()
+{
+ QList<QWidget *> widgets;
+ widgets << new QPushButton("TESTING");
+ widgets << new QLineEdit("TESTING");
+ widgets << new QLabel("TESTING");
+ QSpinBox *spinbox = new QSpinBox;
+ spinbox->setValue(8888);
+ widgets << spinbox;
+ QComboBox *combobox = new QComboBox;
+ combobox->setEditable(true);
+ combobox->addItems(QStringList() << "TESTING");
+ widgets << combobox;
+ widgets << new QLabel("<b>TESTING</b>");
+
+ foreach (QWidget *widget, widgets) {
+ QDialog frame;
+ QLayout* layout = new QGridLayout;
+
+ QLineEdit* dummy = new QLineEdit;
+
+ widget->setStyleSheet("*:hover { border:none; background: #e8ff66; color: #ff0084 }");
+
+ layout->addWidget(dummy);
+ layout->addWidget(widget);
+ frame.setLayout(layout);
+
+ frame.show();
+#ifdef Q_WS_X11
+ qt_x11_wait_for_window_manager(&frame);
+#endif
+ QApplication::setActiveWindow(&frame);
+ QTest::qWait(60);
+ QTest::mouseMove ( widget, QPoint(5,5));
+ QTest::qWait(60);
+
+ QImage image(frame.width(), frame.height(), QImage::Format_ARGB32);
+ frame.render(&image);
+
+ QVERIFY2(testForColors(image, QColor(0xe8, 0xff, 0x66)),
+ (QString::fromLatin1(widget->metaObject()->className())
+ + " did not contain background color #e8ff66").toLocal8Bit().constData());
+ QVERIFY2(testForColors(image, QColor(0xff, 0x00, 0x84)),
+ (QString::fromLatin1(widget->metaObject()->className())
+ + " did not contain text color #ff0084").toLocal8Bit().constData());
+ }
+
+}
+
class SingleInheritanceDialog : public QDialog
{
Q_OBJECT
@@ -1377,8 +1430,6 @@ void tst_QStyleSheetStyle::task188195_baseBackground()
QVERIFY(!testForColors(image, QColor(0xab, 0x12, 0x51)));
}
-
-
QTEST_MAIN(tst_QStyleSheetStyle)
#include "tst_qstylesheetstyle.moc"
diff --git a/tests/auto/qsvgdevice/tst_qsvgdevice.cpp b/tests/auto/qsvgdevice/tst_qsvgdevice.cpp
index 713b3fa..4f16e7e 100644
--- a/tests/auto/qsvgdevice/tst_qsvgdevice.cpp
+++ b/tests/auto/qsvgdevice/tst_qsvgdevice.cpp
@@ -332,11 +332,7 @@ void tst_QSvgDevice::playPaint( QPainter *p, const QString &type )
qDrawShadePanel(p,4000,5000,4000,2000,palette.active(),false,200,&br);
qDrawShadeRect(p,2000,2000,4000,2000,palette.active(),true,100,0,&br);
}
- }
-#if !defined (Q_WS_WIN) && (QT_VERSION < 0x030200)
- // This will fail on X11 with 3.1, fixed in 3.2
-#else
- else if (type=="clipRect") {
+ } else if (type=="clipRect") {
p->setClipRect(15,25,10,10);
p->drawEllipse(10,20,50,70);
} else if (type=="multipleClipRects") {
@@ -344,9 +340,7 @@ void tst_QSvgDevice::playPaint( QPainter *p, const QString &type )
p->drawEllipse(10,20,50,70);
p->setClipRect(100,200,20,20);
p->drawEllipse(110,220,50,70);
- }
-#endif
- else if (type == "qsimplerichtext") {
+ } else if (type == "qsimplerichtext") {
p->setPen(QColor(0,0,0));
p->setBrush(Qt::NoBrush);
QRect rect1(10, 10, 100, 50);
diff --git a/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp b/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp
index 4a17031..4da99da 100644
--- a/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp
+++ b/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp
@@ -534,16 +534,42 @@ void tst_QSvgRenderer::gradientStops() const
QCOMPARE(image, refImage);
}
+ const char *svgs[] = {
+ "<svg>"
+ "<defs>"
+ "<linearGradient id=\"gradient\">"
+ "<stop offset=\"0\" stop-color=\"red\" stop-opacity=\"0\"/>"
+ "<stop offset=\"1\" stop-color=\"blue\"/>"
+ "</linearGradient>"
+ "</defs>"
+ "<rect fill=\"url(#gradient)\" height=\"8\" width=\"256\" x=\"0\" y=\"0\"/>"
+ "</svg>",
+ "<svg>"
+ "<defs>"
+ "<linearGradient id=\"gradient\" xlink:href=\"#gradient0\">"
+ "</linearGradient>"
+ "<linearGradient id=\"gradient0\">"
+ "<stop offset=\"0\" stop-color=\"red\" stop-opacity=\"0\"/>"
+ "<stop offset=\"1\" stop-color=\"blue\"/>"
+ "</linearGradient>"
+ "</defs>"
+ "<rect fill=\"url(#gradient)\" height=\"8\" width=\"256\" x=\"0\" y=\"0\"/>"
+ "</svg>",
+ "<svg>"
+ "<defs>"
+ "<linearGradient id=\"gradient0\">"
+ "<stop offset=\"0\" stop-color=\"red\" stop-opacity=\"0\"/>"
+ "<stop offset=\"1\" stop-color=\"blue\"/>"
+ "</linearGradient>"
+ "<linearGradient id=\"gradient\" xlink:href=\"#gradient0\">"
+ "</linearGradient>"
+ "</defs>"
+ "<rect fill=\"url(#gradient)\" height=\"8\" width=\"256\" x=\"0\" y=\"0\"/>"
+ "</svg>"
+ };
+ for (int i = 0 ; i < sizeof(svgs) / sizeof(svgs[0]) ; ++i)
{
- QByteArray data("<svg>"
- "<defs>"
- "<linearGradient id=\"gradient\">"
- "<stop offset=\"0\" stop-color=\"red\" stop-opacity=\"0\"/>"
- "<stop offset=\"1\" stop-color=\"blue\"/>"
- "</linearGradient>"
- "</defs>"
- "<rect fill=\"url(#gradient)\" height=\"8\" width=\"256\" x=\"0\" y=\"0\"/>"
- "</svg>");
+ QByteArray data = svgs[i];
QSvgRenderer renderer(data);
QImage image(256, 8, QImage::Format_ARGB32_Premultiplied);
diff --git a/tests/auto/qsystemtrayicon/tst_qsystemtrayicon.cpp b/tests/auto/qsystemtrayicon/tst_qsystemtrayicon.cpp
index 7ce30aa..8c5da7b 100644
--- a/tests/auto/qsystemtrayicon/tst_qsystemtrayicon.cpp
+++ b/tests/auto/qsystemtrayicon/tst_qsystemtrayicon.cpp
@@ -42,10 +42,6 @@
#include <QtTest/QtTest>
-#if QT_VERSION < 0x040200
-QTEST_NOOP_MAIN
-#else
-
#include <qcoreapplication.h>
#include <qdebug.h>
#include <qsystemtrayicon.h>
@@ -150,4 +146,3 @@ void tst_QSystemTrayIcon::lastWindowClosed()
QTEST_MAIN(tst_QSystemTrayIcon)
#include "tst_qsystemtrayicon.moc"
-#endif
diff --git a/tests/auto/qtabbar/tst_qtabbar.cpp b/tests/auto/qtabbar/tst_qtabbar.cpp
index 433eb86..31722de 100644
--- a/tests/auto/qtabbar/tst_qtabbar.cpp
+++ b/tests/auto/qtabbar/tst_qtabbar.cpp
@@ -92,6 +92,8 @@ private slots:
void moveTab_data();
void moveTab();
+
+ void task251184_removeTab();
};
// Testing get/set functions
@@ -503,5 +505,35 @@ void tst_QTabBar::moveTab()
bar.callMoveTab(from, to);
}
+
+class MyTabBar : public QTabBar
+{
+ Q_OBJECT
+public slots:
+ void onCurrentChanged()
+ {
+ //we just want this to be done once
+ disconnect(this, SIGNAL(currentChanged(int)), this, SLOT(onCurrentChanged()));
+ removeTab(0);
+ }
+};
+
+void tst_QTabBar::task251184_removeTab()
+{
+ MyTabBar bar;
+ bar.addTab("bar1");
+ bar.addTab("bar2");
+ QCOMPARE(bar.count(), 2);
+ QCOMPARE(bar.currentIndex(), 0);
+
+ bar.connect(&bar, SIGNAL(currentChanged(int)), SLOT(onCurrentChanged()));
+ bar.setCurrentIndex(1);
+
+ QCOMPARE(bar.count(), 1);
+ QCOMPARE(bar.currentIndex(), 0);
+ QCOMPARE(bar.tabText(bar.currentIndex()), QString("bar2"));
+}
+
+
QTEST_MAIN(tst_QTabBar)
#include "tst_qtabbar.moc"
diff --git a/tests/auto/qtemporaryfile/tst_qtemporaryfile.cpp b/tests/auto/qtemporaryfile/tst_qtemporaryfile.cpp
index 9364af4..f5155ae 100644
--- a/tests/auto/qtemporaryfile/tst_qtemporaryfile.cpp
+++ b/tests/auto/qtemporaryfile/tst_qtemporaryfile.cpp
@@ -144,7 +144,6 @@ void tst_QTemporaryFile::fileTemplate_data()
void tst_QTemporaryFile::fileTemplate()
{
-#if QT_VERSION >= 0x040200
QFETCH(QString, constructorTemplate);
QFETCH(QString, suffix);
QFETCH(QString, fileTemplate);
@@ -157,7 +156,6 @@ void tst_QTemporaryFile::fileTemplate()
QCOMPARE(file.fileName().right(suffix.length()), suffix);
file.close();
-#endif
}
@@ -234,9 +232,6 @@ void tst_QTemporaryFile::write()
void tst_QTemporaryFile::openCloseOpenClose()
{
-#if QT_VERSION < 0x040101
- QSKIP("Until Qt 4.1.1, QTemporaryFile would create a new name every time open() was called.", SkipSingle);
-#endif
QString fileName;
{
// Create a temp file
@@ -248,7 +243,7 @@ void tst_QTemporaryFile::openCloseOpenClose()
QVERIFY(QFile::exists(fileName));
file.close();
- // Check that it still exists after being closed
+ // Check that it still exists after being closed
QVERIFY(QFile::exists(fileName));
QVERIFY(!file.isOpen());
QVERIFY(file.open());
diff --git a/tests/auto/qtextcodec/test/test.pro b/tests/auto/qtextcodec/test/test.pro
index ed2ade3..e52bb7a 100644
--- a/tests/auto/qtextcodec/test/test.pro
+++ b/tests/auto/qtextcodec/test/test.pro
@@ -5,6 +5,7 @@ wince*: {
addFiles.sources = ../*.txt
addFiles.path = .
DEPLOYMENT += addFiles
+ DEPLOYMENT_PLUGIN += qcncodecs qjpcodecs qkrcodecs qtwcodecs
}
diff --git a/tests/auto/qtextcodec/tst_qtextcodec.cpp b/tests/auto/qtextcodec/tst_qtextcodec.cpp
index b1bfb86..22f9557 100644
--- a/tests/auto/qtextcodec/tst_qtextcodec.cpp
+++ b/tests/auto/qtextcodec/tst_qtextcodec.cpp
@@ -68,6 +68,8 @@ private slots:
void flagEFBFBF() const;
void decode0D() const;
void codecForIndex() const;
+ void aliasForUTF16() const;
+ void mibForTSCII() const;
void utf8Codec_data();
void utf8Codec();
@@ -77,6 +79,9 @@ private slots:
void codecForHtml();
+ void codecForUtfText_data();
+ void codecForUtfText();
+
#ifdef Q_OS_UNIX
void toLocal8Bit();
#endif
@@ -453,6 +458,16 @@ void tst_QTextCodec::codecForIndex() const
{
}
+void tst_QTextCodec::aliasForUTF16() const
+{
+ QVERIFY(QTextCodec::codecForName("UTF-16")->aliases().isEmpty());
+}
+
+void tst_QTextCodec::mibForTSCII() const
+{
+ QCOMPARE(QTextCodec::codecForName("TSCII")->mibEnum(), 2107);
+}
+
static QString fromInvalidUtf8Sequence(const QByteArray &ba)
{
return QString().fill(QChar::ReplacementCharacter, ba.size());
@@ -1732,6 +1747,62 @@ void tst_QTextCodec::codecForHtml()
QCOMPARE(QTextCodec::codecForHtml(html, QTextCodec::codecForMib(106))->mibEnum(), 111); // latin 15
}
+void tst_QTextCodec::codecForUtfText_data()
+{
+ QTest::addColumn<QByteArray>("encoded");
+ QTest::addColumn<bool>("detected");
+ QTest::addColumn<int>("mib");
+
+
+ QTest::newRow("utf8 bom")
+ << QByteArray("\xef\xbb\xbfhello")
+ << true
+ << 106;
+ QTest::newRow("utf8 nobom")
+ << QByteArray("hello")
+ << false
+ << 0;
+
+ QTest::newRow("utf16 bom be")
+ << QByteArray("\xfe\xff\0h\0e\0l", 8)
+ << true
+ << 1013;
+ QTest::newRow("utf16 bom le")
+ << QByteArray("\xff\xfeh\0e\0l\0", 8)
+ << true
+ << 1014;
+ QTest::newRow("utf16 nobom")
+ << QByteArray("\0h\0e\0l", 6)
+ << false
+ << 0;
+
+ QTest::newRow("utf32 bom be")
+ << QByteArray("\0\0\xfe\xff\0\0\0h\0\0\0e\0\0\0l", 16)
+ << true
+ << 1018;
+ QTest::newRow("utf32 bom le")
+ << QByteArray("\xff\xfe\0\0h\0\0\0e\0\0\0l\0\0\0", 16)
+ << true
+ << 1019;
+ QTest::newRow("utf32 nobom")
+ << QByteArray("\0\0\0h\0\0\0e\0\0\0l", 12)
+ << false
+ << 0;
+}
+
+void tst_QTextCodec::codecForUtfText()
+{
+ QFETCH(QByteArray, encoded);
+ QFETCH(bool, detected);
+ QFETCH(int, mib);
+
+ QTextCodec *codec = QTextCodec::codecForUtfText(encoded, 0);
+ if (detected)
+ QCOMPARE(codec->mibEnum(), mib);
+ else
+ QVERIFY(codec == 0);
+}
+
#ifdef Q_OS_UNIX
void tst_QTextCodec::toLocal8Bit()
{
diff --git a/tests/auto/qtextcursor/tst_qtextcursor.cpp b/tests/auto/qtextcursor/tst_qtextcursor.cpp
index 48212a4..86b253f 100644
--- a/tests/auto/qtextcursor/tst_qtextcursor.cpp
+++ b/tests/auto/qtextcursor/tst_qtextcursor.cpp
@@ -124,9 +124,7 @@ private slots:
void selectWordWithSeparators_data();
void selectWordWithSeparators();
void startOfWord();
-#if QT_VERSION >= 0x040100
void selectBlock();
-#endif
void selectVisually();
void insertText();
@@ -1228,13 +1226,9 @@ void tst_QTextCursor::selectWord()
cursor.movePosition(QTextCursor::EndOfBlock);
cursor.select(QTextCursor::WordUnderCursor);
-#if QT_VERSION < 0x040200
- QVERIFY(!cursor.hasSelection());
-#else
QVERIFY(cursor.hasSelection());
QCOMPARE(cursor.selectionStart(), 17);
QCOMPARE(cursor.selectionEnd(), 22);
-#endif
}
void tst_QTextCursor::selectWordWithSeparators_data()
@@ -1269,7 +1263,6 @@ void tst_QTextCursor::startOfWord()
QCOMPARE(cursor.position(), 0);
}
-#if QT_VERSION >= 0x040100
void tst_QTextCursor::selectBlock()
{
cursor.insertText("foobar");
@@ -1295,7 +1288,6 @@ void tst_QTextCursor::selectBlock()
QVERIFY(cursor.blockFormat().alignment() == Qt::AlignHCenter);
QCOMPARE(cursor.block().text(), QString("blah"));
}
-#endif
void tst_QTextCursor::selectVisually()
{
@@ -1551,7 +1543,6 @@ void tst_QTextCursor::update()
void tst_QTextCursor::disallowSettingObjectIndicesOnCharFormats()
{
-#if QT_VERSION >= 0x040200
QTextCharFormat fmt;
fmt.setObjectIndex(42);
cursor.insertText("Hey", fmt);
@@ -1581,7 +1572,6 @@ void tst_QTextCursor::disallowSettingObjectIndicesOnCharFormats()
cursor = table->cellAt(0, 0).firstCursorPosition();
QVERIFY(!cursor.isNull());
QCOMPARE(cursor.blockCharFormat().objectIndex(), table->objectIndex());
-#endif
}
void tst_QTextCursor::blockAndColumnNumber()
diff --git a/tests/auto/qtextdocument/tst_qtextdocument.cpp b/tests/auto/qtextdocument/tst_qtextdocument.cpp
index 58cc019..4ef5299 100644
--- a/tests/auto/qtextdocument/tst_qtextdocument.cpp
+++ b/tests/auto/qtextdocument/tst_qtextdocument.cpp
@@ -193,14 +193,9 @@ void tst_QTextDocument::getSetCheck()
QPointer<MyAbstractTextDocumentLayout> var1 = new MyAbstractTextDocumentLayout(0);
obj1.setDocumentLayout(var1);
QCOMPARE(static_cast<QAbstractTextDocumentLayout *>(var1), obj1.documentLayout());
-#if QT_VERSION >= 0x040200
- // QTextDocument in Qt < 4.2 crashes on this. Qt >= 4.2 should handle this gracefully
obj1.setDocumentLayout((QAbstractTextDocumentLayout *)0);
QVERIFY(var1.isNull());
QVERIFY(obj1.documentLayout());
-#else
- delete var1;
-#endif
// bool QTextDocument::useDesignMetrics()
// void QTextDocument::setUseDesignMetrics(bool)
@@ -672,18 +667,6 @@ void tst_QTextDocument::toHtml_data()
<< QString("<p DEFAULTBLOCKSTYLE><span style=\" font-size:40pt;\">Blah</span></p>");
}
-#if QT_VERSION < 0x040200
- {
- CREATE_DOC_AND_CURSOR();
-
- QTextCharFormat fmt;
- fmt.setProperty(QTextFormat::FontSizeIncrement, 2);
- cursor.insertText("Blah", fmt);
-
- QTest::newRow("logical-font-size") << QTextDocumentFragment(&doc)
- << QString("<p DEFAULTBLOCKSTYLE><font size=\"5\">Blah</font></p>");
- }
-#else
{
CREATE_DOC_AND_CURSOR();
@@ -694,7 +677,6 @@ void tst_QTextDocument::toHtml_data()
QTest::newRow("logical-font-size") << QTextDocumentFragment(&doc)
<< QString("<p DEFAULTBLOCKSTYLE><span style=\" font-size:x-large;\">Blah</span></p>");
}
-#endif
{
CREATE_DOC_AND_CURSOR();
@@ -892,13 +874,8 @@ void tst_QTextDocument::toHtml_data()
QTest::newRow("simpletable") << QTextDocumentFragment(&doc)
<< QString("<table border=\"1\" cellspacing=\"2\">"
-#if QT_VERSION >= 0x040200
"\n<tr>\n<td></td>\n<td></td></tr>"
"\n<tr>\n<td></td>\n<td></td></tr>"
-#else
- "<tr><td></td><td></td></tr>"
- "<tr><td></td><td></td></tr>"
-#endif
"</table>");
}
@@ -911,11 +888,7 @@ void tst_QTextDocument::toHtml_data()
QTest::newRow("tablespans") << QTextDocumentFragment(&doc)
<< QString("<table border=\"1\" cellspacing=\"2\">"
-#if QT_VERSION >= 0x040200
"\n<tr>\n<td colspan=\"2\"></td>\n<td colspan=\"2\"></td></tr>"
-#else
- "<tr><td colspan=\"2\"></td><td colspan=\"2\"></td></tr>"
-#endif
"</table>");
}
@@ -961,7 +934,6 @@ void tst_QTextDocument::toHtml_data()
"</table>");
}
-#if QT_VERSION >= 0x040200
{
CREATE_DOC_AND_CURSOR();
@@ -977,7 +949,6 @@ void tst_QTextDocument::toHtml_data()
"\n<tr>\n<td></td>\n<td></td></tr>"
"</table>");
}
-#endif
{
CREATE_DOC_AND_CURSOR();
@@ -988,13 +959,8 @@ void tst_QTextDocument::toHtml_data()
QTest::newRow("nestedtable") << QTextDocumentFragment(&doc)
<< QString("<table border=\"1\" cellspacing=\"2\">"
-#if QT_VERSION >= 0x040200
"\n<tr>\n<td></td>\n<td>\n<table border=\"1\" cellspacing=\"2\">\n<tr>\n<td>\n<p DEFAULTBLOCKSTYLE>Hey</p></td></tr></table></td></tr>"
"\n<tr>\n<td></td>\n<td></td></tr>"
-#else
- "<tr><td></td><td><table border=\"1\" cellspacing=\"2\"><tr><td><p DEFAULTBLOCKSTYLE>Hey</p></td></tr></table></td></tr>"
- "<tr><td></td><td></td></tr>"
-#endif
"</table>");
}
@@ -1011,11 +977,7 @@ void tst_QTextDocument::toHtml_data()
QTest::newRow("colwidths") << QTextDocumentFragment(&doc)
<< QString("<table border=\"1\" cellspacing=\"2\">"
-#if QT_VERSION >= 0x040200
"\n<tr>\n<td></td>\n<td width=\"30%\"></td>\n<td width=\"40\"></td></tr>"
-#else
- "<tr><td></td><td width=\"30%\"></td><td width=\"40\"></td></tr>"
-#endif
"</table>");
}
@@ -1032,11 +994,7 @@ void tst_QTextDocument::toHtml_data()
QTest::newRow("cellproperties") << QTextDocumentFragment(&doc)
<< QString("<table border=\"1\" cellspacing=\"2\">"
-#if QT_VERSION >= 0x040200
"\n<tr>\n<td bgcolor=\"#ffffff\"></td></tr>"
-#else
- "<tr><td bgcolor=\"#ffffff\"></td></tr>"
-#endif
"</table>");
}
@@ -1111,9 +1069,7 @@ void tst_QTextDocument::toHtml_data()
QTest::newRow("blockmargins") << QTextDocumentFragment(&doc)
<<
-#if QT_VERSION >= 0x040100
QString("EMPTYBLOCK") +
-#endif
QString("<p style=\" margin-top:10px; margin-bottom:20px; margin-left:30px; margin-right:40px; -qt-block-indent:0; text-indent:0px;\">Blah</p>");
}
@@ -1129,11 +1085,7 @@ void tst_QTextDocument::toHtml_data()
QTest::newRow("lists") << QTextDocumentFragment(&doc)
<<
QString("EMPTYBLOCK") +
-#if QT_VERSION >= 0x040200
QString("<ul style=\"-qt-list-indent: 1;\"><li DEFAULTBLOCKSTYLE>Blubb</li>\n<li DEFAULTBLOCKSTYLE>Blah</li></ul>");
-#else
- QString("<ul style=\"-qt-list-indent: 1;\"><li DEFAULTBLOCKSTYLE>Blubb<li DEFAULTBLOCKSTYLE>Blah</ul>");
-#endif
}
{
@@ -1156,11 +1108,7 @@ void tst_QTextDocument::toHtml_data()
QTest::newRow("charfmt-for-list-item") << QTextDocumentFragment(&doc)
<<
QString("EMPTYBLOCK") +
-#if QT_VERSION >= 0x040200
QString("<ul style=\"-qt-list-indent: 1;\"><li DEFAULTBLOCKSTYLE>Blubb</li>\n<li style=\" color:#0000ff;\" DEFAULTBLOCKSTYLE><span style=\" color:#ff0000;\">Blah</span></li></ul>");
-#else
- QString("<ul style=\"-qt-list-indent: 1;\"><li DEFAULTBLOCKSTYLE>Blubb<li style=\" color:#0000ff;\" DEFAULTBLOCKSTYLE><span style=\" color:#ff0000;\">Blah</span></ul>");
-#endif
}
{
@@ -1174,9 +1122,7 @@ void tst_QTextDocument::toHtml_data()
QTest::newRow("block-indent") << QTextDocumentFragment(&doc)
<<
-#if QT_VERSION >= 0x040100
QString("EMPTYBLOCK") +
-#endif
QString("<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:3; text-indent:30px;\">Test</p>");
}
@@ -1192,11 +1138,7 @@ void tst_QTextDocument::toHtml_data()
QTest::newRow("list-indent") << QTextDocumentFragment(&doc)
<<
QString("EMPTYBLOCK") +
-#if QT_VERSION >= 0x040200
QString("<ul style=\"-qt-list-indent: 4;\"><li DEFAULTBLOCKSTYLE>Blah</li></ul>");
-#else
- QString("<ul style=\"-qt-list-indent: 4;\"><li DEFAULTBLOCKSTYLE>Blah</ul>");
-#endif
}
{
@@ -1217,11 +1159,7 @@ void tst_QTextDocument::toHtml_data()
// if you press enter twice in an empty textedit and then insert 'Test'
// you actually get three visible paragraphs, two empty leading ones and
// a third with the actual text. the corresponding html representation
- // therefore should also contain three paragraphs. that only works in >= 4.1,
- // 4.0.x needs this additional block.
-#if QT_VERSION < 0x040100
- cursor.insertBlock();
-#endif
+ // therefore should also contain three paragraphs.
cursor.insertBlock();
QTextCharFormat fmt;
@@ -1232,16 +1170,10 @@ void tst_QTextDocument::toHtml_data()
fmt.setProperty(QTextFormat::FontSizeIncrement, 2);
cursor.insertText("Test", fmt);
-#if QT_VERSION < 0x040200
- QTest::newRow("blockcharfmt") << QTextDocumentFragment(&doc)
- << QString("EMPTYBLOCK<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#00ff00;\"><font size=\"4\"><font size=\"5\">Test</font></font></p>");
-#else
QTest::newRow("blockcharfmt") << QTextDocumentFragment(&doc)
<< QString("EMPTYBLOCK<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:x-large; color:#00ff00;\">Test</span></p>");
-#endif
}
-#if QT_VERSION >= 0x040100
{
CREATE_DOC_AND_CURSOR();
@@ -1254,7 +1186,6 @@ void tst_QTextDocument::toHtml_data()
QTest::newRow("blockcharfmt2") << QTextDocumentFragment(&doc)
<< QString("<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#0000ff;\">Test</span></p>");
}
-#endif
{
QTest::newRow("horizontal-ruler") << QTextDocumentFragment::fromHtml("<hr />")
@@ -1285,11 +1216,7 @@ void tst_QTextDocument::toHtml_data()
cursor = mainFrame->lastCursorPosition();
QTest::newRow("frame") << QTextDocumentFragment(&doc)
-#if QT_VERSION >= 0x040200
<< QString("<table border=\"1\" style=\"-qt-table-type: frame; float: right; margin-top:2px; margin-bottom:2px; margin-left:2px; margin-right:2px;\" width=\"100\" height=\"50\" bgcolor=\"#00ff00\">\n<tr>\n<td style=\"border: none;\">\n<p DEFAULTBLOCKSTYLE>Hello World</p></td></tr></table>");
-#else
- << QString("<table border=\"1\" style=\"-qt-table-type: frame; float: right; margin-top:2px; margin-bottom:2px; margin-left:2px; margin-right:2px;\" width=\"100\" height=\"50\" bgcolor=\"#00ff00\"><tr><td style=\"border: none;\"><p DEFAULTBLOCKSTYLE>Hello World</p></td></tr></table>");
-#endif
}
{
@@ -1993,11 +1920,7 @@ void tst_QTextDocument::resolvedFontInEmptyFormat()
void tst_QTextDocument::defaultRootFrameMargin()
{
-#if QT_VERSION >= 0x040200 && QT_VERSION <= 0x040400
- QCOMPARE(doc->rootFrame()->frameFormat().margin(), 2.0);
-#else
QCOMPARE(doc->rootFrame()->frameFormat().margin(), 4.0);
-#endif
}
class TestDocument : public QTextDocument
@@ -2415,7 +2338,6 @@ void tst_QTextDocument::documentCleanup()
void tst_QTextDocument::characterAt()
{
-#if QT_VERSION >= 0x040500
QTextDocument doc;
QTextCursor cursor(&doc);
QString text("12345\n67890");
@@ -2432,7 +2354,6 @@ void tst_QTextDocument::characterAt()
c = QChar(QChar::ParagraphSeparator);
QCOMPARE(doc.characterAt(i), c);
}
-#endif
}
void tst_QTextDocument::revisions()
diff --git a/tests/auto/qtextdocumentfragment/tst_qtextdocumentfragment.cpp b/tests/auto/qtextdocumentfragment/tst_qtextdocumentfragment.cpp
index bace7b4..46f5f0c 100644
--- a/tests/auto/qtextdocumentfragment/tst_qtextdocumentfragment.cpp
+++ b/tests/auto/qtextdocumentfragment/tst_qtextdocumentfragment.cpp
@@ -2217,9 +2217,6 @@ void tst_QTextDocumentFragment::defaultFont()
void tst_QTextDocumentFragment::html_spanBackgroundColor()
{
setHtml("<span style=\"background-color: blue\">Foo</span>");
-#if QT_VERSION <= 0x040100
- QEXPECT_FAIL("", "Fixed in >= 4.1.1", Continue);
-#endif
QVERIFY(doc->begin().begin().fragment().charFormat().background().color() == QColor(Qt::blue));
}
@@ -2251,9 +2248,6 @@ void tst_QTextDocumentFragment::html_brokenTitle()
void tst_QTextDocumentFragment::html_blockVsInline()
{
-#if QT_VERSION <= 0x040100
- QEXPECT_FAIL("", "Fixed in >= 4.1.1", Abort);
-#endif
{
setHtml("<html><body><div><b>Foo<div>Bar");
QVERIFY(cursor.charFormat().fontWeight() == QFont::Bold);
@@ -2314,15 +2308,8 @@ void tst_QTextDocumentFragment::html_tbody()
QTextTable *table = cursor.currentTable();
QVERIFY(table);
QCOMPARE(table->columns(), 1);
-#if QT_VERSION <= 0x040100
- QEXPECT_FAIL("", "Fixed in >= 4.1.1", Abort);
-#endif
QCOMPARE(table->rows(), 2);
-
-#if QT_VERISON >= 0x040200
- QVERIFY(table->format().headerRowCount(), 1);
-#endif
-
+ QCOMPARE(table->format().headerRowCount(), 1);
QCOMPARE(table->cellAt(0, 0).firstCursorPosition().block().text(), QString("First Cell"));
QCOMPARE(table->cellAt(1, 0).firstCursorPosition().block().text(), QString("Second Cell"));
}
@@ -2380,7 +2367,6 @@ void tst_QTextDocumentFragment::html_nestedTables()
void tst_QTextDocumentFragment::html_rowSpans()
{
-#if QT_VERSION > 0x040100
setHtml(""
"<table border=\"1\" width=\"100%\">"
" <tr>"
@@ -2413,7 +2399,6 @@ void tst_QTextDocumentFragment::html_rowSpans()
QCOMPARE(table->cellAt(3, 0).firstCursorPosition().block().text(), QString("blubb"));
QCOMPARE(table->cellAt(3, 1).firstCursorPosition().block().text(), QString("baz"));
-#endif
}
void tst_QTextDocumentFragment::html_rowSpans2()
diff --git a/tests/auto/qtextlayout/tst_qtextlayout.cpp b/tests/auto/qtextlayout/tst_qtextlayout.cpp
index 534c7b0..4ea3e2f 100644
--- a/tests/auto/qtextlayout/tst_qtextlayout.cpp
+++ b/tests/auto/qtextlayout/tst_qtextlayout.cpp
@@ -182,9 +182,6 @@ void tst_QTextLayout::init()
testFont.setFamily("__Qt__Box__Engine__");
testFont.setPixelSize(TESTFONT_SIZE);
testFont.setWeight(QFont::Normal);
-#if defined(Q_WS_MAC) && QT_VERSION < 0x040200
- QSKIP("QTestFontEngine is not supported on the mac right now", SkipAll);
-#endif
QCOMPARE(QFontMetrics(testFont).width('a'), testFont.pixelSize());
}
diff --git a/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp b/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp
index f70082d..c60e0bf 100644
--- a/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp
+++ b/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp
@@ -533,7 +533,7 @@ void tst_QScriptEngine::bengali()
void tst_QScriptEngine::gurmukhi()
{
-#if QT_VERSION >= 0x040001 && defined(Q_WS_X11)
+#if defined(Q_WS_X11)
{
if (QFontDatabase().families(QFontDatabase::Gurmukhi).contains("Lohit Punjabi")) {
QFont f("Lohit Punjabi");
diff --git a/tests/auto/qtextstream/tst_qtextstream.cpp b/tests/auto/qtextstream/tst_qtextstream.cpp
index 5a6cce8..358b4b6 100644
--- a/tests/auto/qtextstream/tst_qtextstream.cpp
+++ b/tests/auto/qtextstream/tst_qtextstream.cpp
@@ -100,10 +100,8 @@ private slots:
void readLineFromTextDevice_data();
void readLineFromTextDevice();
void readLineUntilNull();
-#if QT_VERSION >= 0x040103
void readLineMaxlen_data();
void readLineMaxlen();
-#endif
void readLinesFromBufferCRCR();
// all
@@ -220,13 +218,11 @@ private slots:
void utf8IncompleteAtBufferBoundary_data();
void utf8IncompleteAtBufferBoundary();
-#if QT_VERSION >= 0x040100
// status
void status_real_read_data();
void status_real_read();
void status_integer_read();
void status_word_read();
-#endif
// use case tests
void useCase1();
diff --git a/tests/auto/qthread/tst_qthread.cpp b/tests/auto/qthread/tst_qthread.cpp
index 6b6197a..235d63b 100644
--- a/tests/auto/qthread/tst_qthread.cpp
+++ b/tests/auto/qthread/tst_qthread.cpp
@@ -326,10 +326,6 @@ void tst_QThread::isRunning()
void tst_QThread::setPriority()
{
-#if QT_VERSION < 0x040100
- QSKIP("QThread::setPriority() was introduced in 4.1.0, you are testing " QT_VERSION_STR,
- SkipAll);
-#else
Simple_Thread thread;
// cannot change the priority, since the thread is not running
@@ -401,7 +397,6 @@ void tst_QThread::setPriority()
QTest::ignoreMessage(QtWarningMsg, "QThread::setPriority: Cannot set priority, thread is not running");
thread.setPriority(QThread::TimeCriticalPriority);
QCOMPARE(thread.priority(), QThread::InheritPriority);
-#endif
}
void tst_QThread::priority()
diff --git a/tests/auto/qtime/tst_qtime.cpp b/tests/auto/qtime/tst_qtime.cpp
index ea4700d..cc91e9d 100644
--- a/tests/auto/qtime/tst_qtime.cpp
+++ b/tests/auto/qtime/tst_qtime.cpp
@@ -254,11 +254,7 @@ void tst_QTime::isNull()
QTime t1;
QVERIFY( t1.isNull() );
QTime t2(0,0,0);
-#if QT_VERSION >= 0x040100
QVERIFY( !t2.isNull() );
-#else
- QVERIFY( t2.isNull() );
-#endif
QTime t3(0,0,1);
QVERIFY( !t3.isNull() );
QTime t4(0,0,0,1);
@@ -270,11 +266,7 @@ void tst_QTime::isNull()
void tst_QTime::isValid()
{
QTime t1;
-#if QT_VERSION >= 0x040100
QVERIFY( !t1.isValid() );
-#else
- QVERIFY( t1.isValid() );
-#endif
QTime t2(24,0,0,0);
QVERIFY( !t2.isValid() );
QTime t3(23,60,0,0);
@@ -599,11 +591,7 @@ void tst_QTime::fromString_data()
QTest::newRow( "data0" ) << QString("00:00:00") << QTime(0,0,0,0) << QTime(0,0,0,0);
QTest::newRow( "data1" ) << QString("10:12:34") << QTime(10,12,34,0) << QTime(10,12,34,0);
QTest::newRow( "data2" ) << QString("19:03:54.998601") << QTime(19, 3, 54, 999) << QTime(19, 3, 54, 999);
-#if QT_VERSION >= 0x040200
QTest::newRow( "data3" ) << QString("19:03:54.999601") << QTime(19, 3, 54, 999) << QTime(19, 3, 54, 999);
-#else
- QTest::newRow( "data3" ) << QString("19:03:54.999601") << QTime() << QTime();
-#endif
}
void tst_QTime::fromString()
@@ -671,9 +659,7 @@ void tst_QTime::toString_format_data()
QTest::newRow( "data2" ) << QTime(10,12,34,45) << QString("hh:m:ss:z") << QString("10:12:34:45");
QTest::newRow( "data3" ) << QTime(10,12,34,45) << QString("hh:ss ap") << QString("10:34 am");
QTest::newRow( "data4" ) << QTime(22,12,34,45) << QString("hh:zzz AP") << QString("10:045 PM");
-#if (QT_VERSION-0 >= 0x030200)
QTest::newRow( "data5" ) << QTime(230,230,230,230) << QString("hh:mm:ss") << QString();
-#endif
}
void tst_QTime::toString_format()
diff --git a/tests/auto/qtimeline/tst_qtimeline.cpp b/tests/auto/qtimeline/tst_qtimeline.cpp
index e35f406..9576193 100644
--- a/tests/auto/qtimeline/tst_qtimeline.cpp
+++ b/tests/auto/qtimeline/tst_qtimeline.cpp
@@ -42,10 +42,6 @@
#include <QtTest/QtTest>
-#if QT_VERSION < 0x040200
-QTEST_NOOP_MAIN
-#else
-
#include <qtimeline.h>
//TESTED_CLASS=
@@ -705,5 +701,3 @@ void tst_QTimeLine::resume()
QTEST_MAIN(tst_QTimeLine)
#include "tst_qtimeline.moc"
-
-#endif //QT_VERSION
diff --git a/tests/auto/qtimer/tst_qtimer.cpp b/tests/auto/qtimer/tst_qtimer.cpp
index 527628c..bffb4f2 100644
--- a/tests/auto/qtimer/tst_qtimer.cpp
+++ b/tests/auto/qtimer/tst_qtimer.cpp
@@ -83,6 +83,7 @@ private slots:
void recurringTimer();
void deleteLaterOnQTimer(); // long name, don't want to shadow QObject::deleteLater()
void moveToThread();
+ void restartedTimerFiresTooSoon();
};
class TimerHelper : public QObject
@@ -416,5 +417,69 @@ void tst_QTimer::moveToThread()
QVERIFY((ti3.timerId() & 0xffffff) != (ti1.timerId() & 0xffffff));
}
+class RestartedTimerFiresTooSoonObject : public QObject
+{
+ Q_OBJECT
+
+public:
+ QBasicTimer m_timer;
+
+ int m_interval;
+ QTime m_startedTime;
+ QEventLoop eventLoop;
+
+ inline RestartedTimerFiresTooSoonObject()
+ : QObject(), m_interval(0)
+ { }
+
+ void timerFired()
+ {
+ static int interval = 1000;
+
+ m_interval = interval;
+ m_startedTime.start();
+ m_timer.start(interval, this);
+
+ // alternate between single-shot and 1 sec
+ interval = interval ? 0 : 1000;
+ }
+
+ void timerEvent(QTimerEvent* ev)
+ {
+ if (ev->timerId() != m_timer.timerId())
+ return;
+
+ m_timer.stop();
+
+ QTime now = QTime::currentTime();
+ int elapsed = m_startedTime.elapsed();
+
+ if (elapsed < m_interval / 2) {
+ // severely too early!
+ m_timer.stop();
+ eventLoop.exit(-1);
+ return;
+ }
+
+ timerFired();
+
+ // don't do this forever
+ static int count = 0;
+ if (count++ > 20) {
+ m_timer.stop();
+ eventLoop.quit();
+ return;
+ }
+ }
+};
+
+void tst_QTimer::restartedTimerFiresTooSoon()
+{
+ RestartedTimerFiresTooSoonObject object;
+ object.timerFired();
+ QVERIFY(object.eventLoop.exec() == 0);
+}
+
QTEST_MAIN(tst_QTimer)
#include "tst_qtimer.moc"
+\
diff --git a/tests/auto/qtransform/tst_qtransform.cpp b/tests/auto/qtransform/tst_qtransform.cpp
index 8516ddb..74c405e 100644
--- a/tests/auto/qtransform/tst_qtransform.cpp
+++ b/tests/auto/qtransform/tst_qtransform.cpp
@@ -593,6 +593,16 @@ void tst_QTransform::types()
m3.translate(5.0f, 5.0f);
QCOMPARE(m3.type(), QTransform::TxScale);
QCOMPARE(m3.inverted().type(), QTransform::TxScale);
+
+ m3.setMatrix(1.0f, 0.0f, 0.0f,
+ 0.0f, 1.0f, 0.0f,
+ 0.0f, 0.0f, 2.0f);
+ QCOMPARE(m3.type(), QTransform::TxProject);
+
+ m3.setMatrix(0.0f, 2.0f, 0.0f,
+ 1.0f, 0.0f, 0.0f,
+ 0.0f, 0.0f, 2.0f);
+ QCOMPARE(m3.type(), QTransform::TxProject);
}
diff --git a/tests/auto/qtranslator/qtranslator.pro b/tests/auto/qtranslator/qtranslator.pro
index e4ad22a..0d67f70 100644
--- a/tests/auto/qtranslator/qtranslator.pro
+++ b/tests/auto/qtranslator/qtranslator.pro
@@ -3,7 +3,7 @@ SOURCES += tst_qtranslator.cpp
wince*: {
- addFiles.sources = hellotr_la.qm
+ addFiles.sources = hellotr_la.qm msgfmt_from_po.qm
addFiles.path = .
DEPLOYMENT += addFiles
}
diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp
index e1d405d..37cb5b0 100644
--- a/tests/auto/qtreeview/tst_qtreeview.cpp
+++ b/tests/auto/qtreeview/tst_qtreeview.cpp
@@ -209,6 +209,8 @@ private slots:
void indexRowSizeHint();
void addRowsWhileSectionsAreHidden();
+ void filterProxyModelCrash();
+
// task-specific tests:
void task174627_moveLeftToRoot();
void task171902_expandWith1stColHidden();
@@ -223,6 +225,7 @@ private slots:
void task238873_avoidAutoReopening();
void task244304_clickOnDecoration();
void task246536_scrollbarsNotWorking();
+ void task250683_wrongSectionSize();
};
class QtTestModel: public QAbstractItemModel
@@ -472,11 +475,7 @@ void tst_QTreeView::construction()
QCOMPARE(view.iconSize(), QSize());
QCOMPARE(view.indexAt(QPoint()), QModelIndex());
QVERIFY(!view.indexWidget(QModelIndex()));
-#if QT_VERSION >= 0x040400
QVERIFY(qobject_cast<QStyledItemDelegate *>(view.itemDelegate()));
-#else
- QVERIFY(qobject_cast<QItemDelegate *>(view.itemDelegate()));
-#endif
QVERIFY(!view.itemDelegateForColumn(-1));
QVERIFY(!view.itemDelegateForColumn(0));
QVERIFY(!view.itemDelegateForColumn(1));
@@ -1001,11 +1000,7 @@ void tst_QTreeView::itemDelegate()
{
QTreeView view;
-#if QT_VERSION >= 0x040400
QVERIFY(qobject_cast<QStyledItemDelegate *>(view.itemDelegate()));
-#else
- QVERIFY(qobject_cast<QItemDelegate *>(view.itemDelegate()));
-#endif
QPointer<QAbstractItemDelegate> oldDelegate = view.itemDelegate();
otherItemDelegate = new QItemDelegate;
@@ -1680,9 +1675,16 @@ void tst_QTreeView::moveCursor()
view.setColumnHidden(0, true);
QVERIFY(view.isColumnHidden(0));
view.show();
+ qApp->setActiveWindow(&view);
- QModelIndex actual = view.moveCursor(PublicView::MoveDown, Qt::NoModifier);
+ //here the first visible index should be selected
+ //because the view got the focus
QModelIndex expected = model.index(1, 1, QModelIndex());
+ QCOMPARE(view.currentIndex(), expected);
+
+ //then pressing down should go to the next line
+ QModelIndex actual = view.moveCursor(PublicView::MoveDown, Qt::NoModifier);
+ expected = model.index(2, 1, QModelIndex());
QCOMPARE(actual, expected);
view.setRowHidden(0, QModelIndex(), false);
@@ -1862,14 +1864,8 @@ void tst_QTreeView::indexBelow()
i = view.indexBelow(i);
QVERIFY(i.isValid());
QCOMPARE(i.row(), 1);
-#if QT_VERSION >= 0x040100
i = view.indexBelow(i);
QVERIFY(!i.isValid());
-#else
- // Qt 4.0.x returns the bottom index
- i = view.indexBelow(i);
- QVERIFY(i.isValid());
-#endif
}
void tst_QTreeView::clicked()
@@ -2829,6 +2825,29 @@ void tst_QTreeView::indexRowSizeHint()
QCOMPARE(view.indexRowSizeHint(index), w->sizeHint().height());
}
+void tst_QTreeView::filterProxyModelCrash()
+{
+ QStandardItemModel model;
+ QList<QStandardItem *> items;
+ for (int i = 0; i < 100; i++)
+ items << new QStandardItem(QString::fromLatin1("item %1").arg(i));
+ model.appendColumn(items);
+
+ QSortFilterProxyModel proxy;
+ proxy.setSourceModel(&model);
+
+ QTreeView view;
+ view.setModel(&proxy);
+ view.show();
+ QTest::qWait(30);
+ proxy.invalidate();
+ view.verticalScrollBar()->setValue(15);
+ QTest::qWait(20);
+
+ proxy.invalidate();
+ view.repaint(); //used to crash
+}
+
class task174627_TreeView : public QTreeView
{
Q_OBJECT
@@ -3255,5 +3274,21 @@ void tst_QTreeView::task246536_scrollbarsNotWorking()
}
+void tst_QTreeView::task250683_wrongSectionSize()
+{
+ QDirModel model;
+ QTreeView treeView;
+ treeView.header()->setResizeMode(QHeaderView::ResizeToContents);
+ treeView.setModel(&model);
+ treeView.setColumnHidden(2, true);
+ treeView.setColumnHidden(3, true);
+
+ treeView.show();
+ QTest::qWait(100);
+
+ QCOMPARE(treeView.header()->sectionSize(0) + treeView.header()->sectionSize(1), treeView.viewport()->width());
+}
+
+
QTEST_MAIN(tst_QTreeView)
#include "tst_qtreeview.moc"
diff --git a/tests/auto/qtreewidget/tst_qtreewidget.cpp b/tests/auto/qtreewidget/tst_qtreewidget.cpp
index b21b240..c3595c2 100644
--- a/tests/auto/qtreewidget/tst_qtreewidget.cpp
+++ b/tests/auto/qtreewidget/tst_qtreewidget.cpp
@@ -1555,9 +1555,6 @@ void tst_QTreeWidget::keyboardNavigation()
void tst_QTreeWidget::scrollToItem()
{
-#if QT_VERSION < 0x040100
- QSKIP("This behaviour will be merged from main in 4.1.0.", SkipAll);
-#else
// Check if all parent nodes of the item found are expanded.
// Reported in task #78761
QTreeWidgetItem *bar;
@@ -1586,7 +1583,6 @@ void tst_QTreeWidget::scrollToItem()
QVERIFY(testWidget->isItemExpanded(bar));
bar = bar->parent();
QVERIFY(testWidget->isItemExpanded(bar));
-#endif
}
// From task #85413
@@ -2087,7 +2083,6 @@ void tst_QTreeWidget::itemWidget()
}
}
-#if QT_VERSION >= 0x040200
void tst_QTreeWidget::insertItemsWithSorting_data()
{
QTest::addColumn<int>("sortOrder");
@@ -2259,8 +2254,6 @@ void tst_QTreeWidget::insertExpandedItemsWithSorting_data()
<< (QStringList() << "h" << "g" << "f" << "e");
}
-
-
// From Task 134978
void tst_QTreeWidget::insertExpandedItemsWithSorting()
{
@@ -2421,7 +2414,6 @@ void tst_QTreeWidget::changeDataWithSorting()
QCOMPARE(dataChangedSpy.count(), 1);
QCOMPARE(layoutChangedSpy.count(), reorderingExpected ? 1 : 0);
}
-#endif // QT_VERSION
void tst_QTreeWidget::itemOperatorLessThan()
{
@@ -2599,7 +2591,6 @@ void tst_QTreeWidget::removeSelectedItem()
QCOMPARE(selModel->isSelected(w->model()->index(0,0)), false);
delete w;
-
}
class AnotherTreeWidget : public QTreeWidget
diff --git a/tests/auto/qtreewidgetitemiterator/tst_qtreewidgetitemiterator.cpp b/tests/auto/qtreewidgetitemiterator/tst_qtreewidgetitemiterator.cpp
index 49abc6d..e4572c0 100644
--- a/tests/auto/qtreewidgetitemiterator/tst_qtreewidgetitemiterator.cpp
+++ b/tests/auto/qtreewidgetitemiterator/tst_qtreewidgetitemiterator.cpp
@@ -42,8 +42,6 @@
#include <QtTest/QtTest>
-#if QT_VERSION >= 0x040100
-
#include <qtreewidget.h>
#include <qtreewidgetitemiterator.h>
#include <qapplication.h>
@@ -61,7 +59,6 @@ public:
tst_QTreeWidgetItemIterator();
~tst_QTreeWidgetItemIterator();
-
public slots:
void initTestCase();
void cleanupTestCase();
@@ -136,7 +133,7 @@ void tst_QTreeWidgetItemIterator::initTestCase()
case 9: top->setFlags(Qt::ItemIsEnabled);break;
case 10: top->setFlags(Qt::ItemIsEnabled);break;
- case 11:
+ case 11:
top->setFlags(0);
break;
@@ -982,7 +979,6 @@ void tst_QTreeWidgetItemIterator::postdecrement()
}
-
void tst_QTreeWidgetItemIterator::plus_eq_data()
{
QTest::addColumn<int>("start");
@@ -1146,9 +1142,9 @@ void tst_QTreeWidgetItemIterator::updateIteratorAfterDeletedItem_and_ContinueIte
QTest::addColumn<int>("grandChildItems"); // Populate the tree data
// we have one iterator pointing to an item in the tree.
// This iterator will be updated if we delete the item it is pointing to.
- //
+ //
QTest::addColumn<int>("removeindex"); // The index of the node we want to remove
- QTest::addColumn<int>("iterator_initial_index"); // The new expected index of
+ QTest::addColumn<int>("iterator_initial_index"); // The new expected index of
QTest::addColumn<int>("iterator_advance_after_removal");
QTest::addColumn<QString>("iterator_new_value"); // The new current item value of the iterator
QTest::newRow("Remove 13, it points to 25, it-=1. We should get top0,child2,grandchild2") << 3 << 3 << 3 << 13 << 25 << -1 << QString("top0,child2,grandchild2");
@@ -1245,7 +1241,3 @@ void tst_QTreeWidgetItemIterator::initializeIterator()
QTEST_MAIN(tst_QTreeWidgetItemIterator)
#include "tst_qtreewidgetitemiterator.moc"
-
-#else
-QTEST_NOOP_MAIN
-#endif
diff --git a/tests/auto/qudpsocket/tst_qudpsocket.cpp b/tests/auto/qudpsocket/tst_qudpsocket.cpp
index 57e779c..e79be38 100644
--- a/tests/auto/qudpsocket/tst_qudpsocket.cpp
+++ b/tests/auto/qudpsocket/tst_qudpsocket.cpp
@@ -522,9 +522,6 @@ void tst_QUdpSocket::bindMode()
#endif
}
-#if QT_VERSION < 0x040100
- QSKIP("QUdpSocket::BindMode was added in Qt 4.1.", SkipAll);
-#else
QUdpSocket socket;
QVERIFY2(socket.bind(), socket.errorString().toLatin1().constData());
QUdpSocket socket2;
@@ -550,7 +547,6 @@ void tst_QUdpSocket::bindMode()
QVERIFY(!socket2.bind(socket.localPort()));
QVERIFY(!socket2.bind(socket.localPort(), QUdpSocket::ReuseAddressHint));
#endif
-#endif
}
void tst_QUdpSocket::writeDatagramToNonExistingPeer_data()
diff --git a/tests/auto/qurl/tst_qurl.cpp b/tests/auto/qurl/tst_qurl.cpp
index 3b938f2..5a79792 100644
--- a/tests/auto/qurl/tst_qurl.cpp
+++ b/tests/auto/qurl/tst_qurl.cpp
@@ -1129,11 +1129,7 @@ void tst_QUrl::setUrl()
check("host",ulong.host(),"swww.gad.de");
check("path",ulong.path(),"/servlet/CookieAccepted");
-#if QT_VERSION < 300
- qt_set_locale_codec( KGlobal::charsets()->codecForName( "iso-8859-1" ) );
-#else
QTextCodec::setCodecForLocale( KGlobal::charsets()->codecForName( "iso-8859-1" ) );
-#endif
// UTF8 tests
KURL uloc("/home/dfaure/konqtests/Matriel");
check("locale8bit",uloc.url().latin1(),"file:/home/dfaure/konqtests/Mat%E9riel"); // escaping the letter would be correct too
@@ -1155,11 +1151,7 @@ void tst_QUrl::setUrl()
uloc = KURL::fromPathOrURL( "" );
check("fromPathOrURL url", uloc.isValid()?"valid":"malformed", "malformed");
-#if QT_VERSION < 300
- qt_set_locale_codec( KGlobal::charsets()->codecForName( "koi8-r" ) );
-#else
QTextCodec::setCodecForLocale( KGlobal::charsets()->codecForName( "koi8-r" ) );
-#endif
baseURL = "file:/home/coolo";
KURL russian = baseURL.directory(false, true) + QString::fromLocal8Bit( "7" );
check( "russian", russian.url(), "file:/home/%C6%C7%CE7" );
diff --git a/tests/auto/qvariant/tst_qvariant.cpp b/tests/auto/qvariant/tst_qvariant.cpp
index 78d597e..0ede920 100644
--- a/tests/auto/qvariant/tst_qvariant.cpp
+++ b/tests/auto/qvariant/tst_qvariant.cpp
@@ -440,6 +440,9 @@ void tst_QVariant::canConvert_data()
var = QVariant((double)0.1);
QTest::newRow("Double")
<< var << N << N << Y << N << Y << Y << N << N << N << N << N << Y << N << N << N << Y << N << N << N << Y << N << N << N << N << N << N << N << N << N << N << Y << N << N << Y << Y;
+ var = QVariant(0.1f);
+ QTest::newRow("Float")
+ << var << N << N << Y << N << Y << Y << N << N << N << N << N << Y << N << N << N << Y << N << N << N << Y << N << N << N << N << N << N << N << N << N << N << Y << N << N << Y << Y;
var = qVariantFromValue(QFont());
QTest::newRow("Font")
<< var << N << N << N << N << N << N << N << N << N << N << N << N << Y << N << N << N << N << N << N << N << N << N << N << N << N << N << N << N << N << N << Y << N << N << N << N;
@@ -573,6 +576,7 @@ void tst_QVariant::canConvert()
QCOMPARE(val.canConvert(QVariant::Date), DateCast);
QCOMPARE(val.canConvert(QVariant::DateTime), DateTimeCast);
QCOMPARE(val.canConvert(QVariant::Double), DoubleCast);
+ QCOMPARE(val.canConvert(QVariant::Type(QMetaType::Float)), DoubleCast);
QCOMPARE(val.canConvert(QVariant::Font), FontCast);
#ifdef QT3_SUPPORT
QCOMPARE(val.canConvert(QVariant::IconSet), IconSetCast);
@@ -615,6 +619,7 @@ void tst_QVariant::toInt_data()
QTest::newRow( "invalid" ) << QVariant() << 0 << false;
QTest::newRow( "int" ) << QVariant( 123 ) << 123 << true;
QTest::newRow( "double" ) << QVariant( 3.1415927 ) << 3 << true;
+ QTest::newRow( "float" ) << QVariant( 3.1415927f ) << 3 << true;
QTest::newRow( "uint" ) << QVariant( 123u ) << 123 << true;
#ifdef QT3_SUPPORT
QTest::newRow( "bool" ) << QVariant( true, 42 ) << 1 << true;
@@ -627,6 +632,7 @@ void tst_QVariant::toInt_data()
QTest::newRow( "ulonglong1" ) << QVariant( uintMax1 ) << 0 << true;
QTest::newRow( "signedint" ) << QVariant( -123 ) << -123 << true;
QTest::newRow( "signeddouble" ) << QVariant( -3.1415927 ) << -3 << true;
+ QTest::newRow( "signedfloat" ) << QVariant( -3.1415927f ) << -3 << true;
QTest::newRow( "signedint-string" ) << QVariant( QString("-123") ) << -123 << true;
QTest::newRow( "signedlonglong0" ) << QVariant( (qlonglong)-34 ) << -34 << true;
QTest::newRow( "QChar" ) << QVariant(QChar('a')) << int('a') << true;
@@ -666,6 +672,7 @@ void tst_QVariant::toUInt_data()
QTest::newRow( "int" ) << QVariant( 123 ) << (uint)123 << true;
QTest::newRow( "double" ) << QVariant( 3.1415927 ) << (uint)3 << true;
+ QTest::newRow( "float" ) << QVariant( 3.1415927f ) << (uint)3 << true;
QTest::newRow( "uint" ) << QVariant( 123u ) << (uint)123 << true;
#ifdef QT3_SUPPORT
QTest::newRow( "bool" ) << QVariant( true, 42 ) << (uint)1 << true;
@@ -679,6 +686,7 @@ void tst_QVariant::toUInt_data()
QTest::newRow( "ulonglong1" ) << QVariant( uintMax1 ) << (uint)0 << true;
QTest::newRow( "negativeint" ) << QVariant( -123 ) << (uint)-123 << true;
QTest::newRow( "negativedouble" ) << QVariant( -3.1415927 ) << (uint)-3 << true;
+ QTest::newRow( "negativefloat" ) << QVariant( -3.1415927f ) << (uint)-3 << true;
QTest::newRow( "negativeint-string" ) << QVariant( QString("-123") ) << (uint)0 << false;
QTest::newRow( "negativelonglong0" ) << QVariant( (qlonglong)-34 ) << (uint)-34 << true;
QTest::newRow( "QChar" ) << QVariant(QChar('a')) << uint('a') << true;
@@ -860,7 +868,9 @@ void tst_QVariant::toBool_data()
QTest::newRow( "uint0" ) << QVariant( 0u ) << false;
QTest::newRow( "uint1" ) << QVariant( 123u ) << true;
QTest::newRow( "double0" ) << QVariant( 0.0 ) << false;
+ QTest::newRow( "float0" ) << QVariant( 0.0f ) << false;
QTest::newRow( "double1" ) << QVariant( 3.1415927 ) << true;
+ QTest::newRow( "float1" ) << QVariant( 3.1415927f ) << true;
#ifdef QT3_SUPPORT
QTest::newRow( "bool0" ) << QVariant( false, 42 ) << false;
QTest::newRow( "bool1" ) << QVariant( true, 42 ) << true;
@@ -1090,6 +1100,7 @@ void tst_QVariant::toLongLong_data()
QTest::newRow( "int0" ) << QVariant( 123 ) << (qlonglong)123 << true;
QTest::newRow( "double" ) << QVariant( 3.1415927 ) << (qlonglong)3 << true;
+ QTest::newRow( "float" ) << QVariant( 3.1415927f ) << (qlonglong)3 << true;
QTest::newRow( "uint" ) << QVariant( 123u ) << (qlonglong)123 << true;
#ifdef QT3_SUPPORT
QTest::newRow( "bool" ) << QVariant( true, 42 ) << (qlonglong)1 << true;
@@ -1130,6 +1141,7 @@ void tst_QVariant::toULongLong_data()
QTest::newRow( "int0" ) << QVariant( 123 ) << (qulonglong)123 << true;
QTest::newRow( "double" ) << QVariant( 3.1415927 ) << (qulonglong)3 << true;
+ QTest::newRow( "float" ) << QVariant( 3.1415927f ) << (qulonglong)3 << true;
QTest::newRow( "uint" ) << QVariant( 123u ) << (qulonglong)123 << true;
#ifdef QT3_SUPPORT
QTest::newRow( "bool" ) << QVariant( true, 42 ) << (qulonglong)1 << true;
@@ -1218,6 +1230,7 @@ void tst_QVariant::toByteArray_data()
QTest::newRow( "int" ) << QVariant( -123 ) << QByteArray( "-123" );
QTest::newRow( "uint" ) << QVariant( (uint)123 ) << QByteArray( "123" );
QTest::newRow( "double" ) << QVariant( 123.456 ) << QByteArray( "123.456" );
+ QTest::newRow( "float" ) << QVariant( 123.456f ) << QByteArray( "123.456" );
QTest::newRow( "longlong" ) << QVariant( (qlonglong)34 ) << QByteArray( "34" );
QTest::newRow( "ulonglong" ) << QVariant( (qulonglong)34 ) << QByteArray( "34" );
}
@@ -1243,6 +1256,7 @@ void tst_QVariant::toString_data()
QTest::newRow( "int" ) << QVariant( -123 ) << QString( "-123" );
QTest::newRow( "uint" ) << QVariant( (uint)123 ) << QString( "123" );
QTest::newRow( "double" ) << QVariant( 123.456 ) << QString( "123.456" );
+ QTest::newRow( "float" ) << QVariant( 123.456f ) << QString( "123.456" );
#ifdef QT3_SUPPORT
QTest::newRow( "bool" ) << QVariant( true, 0 ) << QString( "true" );
#else
@@ -1450,6 +1464,7 @@ void tst_QVariant::writeToReadFromDataStream_data()
QTest::newRow( "datetime_invalid" ) << QVariant( QDateTime() ) << true;
QTest::newRow( "datetime_valid" ) << QVariant( QDateTime( QDate( 2002, 07, 06 ), QTime( 14, 0, 0 ) ) ) << false;
QTest::newRow( "double_valid" ) << QVariant( 123.456 ) << false;
+ QTest::newRow( "float_valid" ) << QVariant( 123.456f ) << false;
QTest::newRow( "font_valid" ) << qVariantFromValue( QFont( "times", 12 ) ) << false;
QTest::newRow( "pixmap_invalid" ) << qVariantFromValue( QPixmap() ) << true;
QPixmap pixmap( 10, 10 );
@@ -1476,6 +1491,7 @@ void tst_QVariant::writeToReadFromDataStream_data()
vMap.insert( "int", QVariant( 1 ) );
vMap.insert( "string", QVariant( QString("Two") ) );
vMap.insert( "double", QVariant( 3.45 ) );
+ vMap.insert( "float", QVariant( 3.45f ) );
QTest::newRow( "map_valid" ) << QVariant( vMap ) << false;
QTest::newRow( "palette_valid" ) << qVariantFromValue(QPalette(QColor("turquoise"))) << false;
QTest::newRow( "pen_valid" ) << qVariantFromValue( QPen( Qt::red ) ) << false;
@@ -1669,6 +1685,10 @@ void tst_QVariant::operator_eq_eq_data()
QVariant mDoubleString(QByteArray("42.11"));
QVariant mDoubleQString(QString("42.11"));
+ QVariant mFloat(42.11f);
+ QVariant mFloatString(QByteArray("42.11"));
+ QVariant mFloatQString(QString("42.11"));
+
QVariant mLongLong((qlonglong)-42);
QVariant mLongLongString(QByteArray("-42"));
QVariant mLongLongQString(QString("-42"));
@@ -1686,6 +1706,7 @@ void tst_QVariant::operator_eq_eq_data()
QVariant mBoolQString(QString("false"));
QTest::newRow( "double_int" ) << QVariant(42.0) << QVariant(42) << true;
+ QTest::newRow( "float_int" ) << QVariant(42.f) << QVariant(42) << true;
QTest::newRow( "mInt_mIntString" ) << mInt << mIntString << true;
QTest::newRow( "mIntString_mInt" ) << mIntString << mInt << true;
QTest::newRow( "mInt_mIntQString" ) << mInt << mIntQString << true;
@@ -1701,6 +1722,11 @@ void tst_QVariant::operator_eq_eq_data()
QTest::newRow( "mDouble_mDoubleQString" ) << mDouble << mDoubleQString << true;
QTest::newRow( "mDoubleQString_mDouble" ) << mDoubleQString << mDouble << true;
+ QTest::newRow( "mFloat_mFloatString" ) << mFloat << mFloatString << true;
+ QTest::newRow( "mFloatString_mFloat" ) << mFloatString << mFloat << true;
+ QTest::newRow( "mFloat_mFloatQString" ) << mFloat << mFloatQString << true;
+ QTest::newRow( "mFloatQString_mFloat" ) << mFloatQString << mFloat << true;
+
QTest::newRow( "mLongLong_mLongLongString" ) << mLongLong << mLongLongString << true;
QTest::newRow( "mLongLongString_mLongLong" ) << mLongLongString << mLongLong << true;
QTest::newRow( "mLongLong_mLongLongQString" ) << mLongLong << mLongLongQString << true;
@@ -1900,6 +1926,7 @@ void tst_QVariant::typeName_data()
QTest::newRow("17") << int(QVariant::UInt) << QByteArray("uint");
QTest::newRow("18") << int(QVariant::Bool) << QByteArray("bool");
QTest::newRow("19") << int(QVariant::Double) << QByteArray("double");
+ QTest::newRow("20") << int(QMetaType::Float) << QByteArray("float");
QTest::newRow("21") << int(QVariant::Polygon) << QByteArray("QPolygon");
QTest::newRow("22") << int(QVariant::Region) << QByteArray("QRegion");
QTest::newRow("23") << int(QVariant::Bitmap) << QByteArray("QBitmap");
@@ -2233,6 +2260,13 @@ void tst_QVariant::basicUserType()
QCOMPARE(v.toDouble(), 4.4);
{
+ float f = 4.5f;
+ v = QVariant(QMetaType::Float, &f);
+ }
+ QCOMPARE(v.userType(), int(QMetaType::Float));
+ QCOMPARE(v.toDouble(), 4.5);
+
+ {
QByteArray ba("bar");
v = QVariant(QMetaType::QByteArray, &ba);
}
@@ -2246,6 +2280,7 @@ void tst_QVariant::data_()
QVariant i = 1;
QVariant d = 1.12;
+ QVariant f = 1.12f;
QVariant ll = (qlonglong)2;
QVariant ull = (qulonglong)3;
QVariant s(QString("hallo"));
@@ -2259,6 +2294,10 @@ void tst_QVariant::data_()
QVERIFY(v.data());
QCOMPARE(*static_cast<double *>(v.data()), d.toDouble());
+ v = f;
+ QVERIFY(v.data());
+ QCOMPARE(*static_cast<float *>(v.data()), qVariantValue<float>(v));
+
v = ll;
QVERIFY(v.data());
QCOMPARE(*static_cast<qlonglong *>(v.data()), ll.toLongLong());
@@ -2282,6 +2321,7 @@ void tst_QVariant::constData()
int i = 1;
double d = 1.12;
+ float f = 1.12f;
qlonglong ll = 2;
qulonglong ull = 3;
QString s("hallo");
@@ -2295,6 +2335,10 @@ void tst_QVariant::constData()
QVERIFY(v.constData());
QCOMPARE(*static_cast<const double *>(v.constData()), d);
+ v = QVariant(f);
+ QVERIFY(v.constData());
+ QCOMPARE(*static_cast<const float *>(v.constData()), f);
+
v = QVariant(ll);
QVERIFY(v.constData());
QCOMPARE(*static_cast<const qlonglong *>(v.constData()), ll);
@@ -2339,6 +2383,7 @@ void tst_QVariant::variant_to()
qVariantSetValue(v4, foo);
QCOMPARE(qvariant_cast<double>(v1), 4.2);
+ QCOMPARE(qvariant_cast<float>(v1), 4.2f);
QCOMPARE(qvariant_cast<int>(v2), 5);
QCOMPARE(qvariant_cast<QStringList>(v3), sl);
QCOMPARE(qvariant_cast<QString>(v3), QString::fromLatin1("blah"));
@@ -2354,6 +2399,7 @@ void tst_QVariant::variant_to()
QCOMPARE(qvariant_cast<int>(n), 42);
QCOMPARE(qvariant_cast<uint>(n), 42u);
QCOMPARE(qvariant_cast<double>(n), 42.0);
+ QCOMPARE(qvariant_cast<float>(n), 42.f);
QCOMPARE(qvariant_cast<short>(n), short(42));
QCOMPARE(qvariant_cast<ushort>(n), ushort(42));
@@ -2361,6 +2407,7 @@ void tst_QVariant::variant_to()
QCOMPARE(qvariant_cast<int>(n), 43);
QCOMPARE(qvariant_cast<uint>(n), 43u);
QCOMPARE(qvariant_cast<double>(n), 43.0);
+ QCOMPARE(qvariant_cast<float>(n), 43.f);
QCOMPARE(qvariant_cast<long>(n), 43l);
n = QLatin1String("44");
@@ -2414,13 +2461,9 @@ void tst_QVariant::url()
void tst_QVariant::globalColor()
{
-#if QT_VERSION >= 0x040200
QVariant variant(Qt::blue);
QVERIFY(variant.type() == QVariant::Color);
QVERIFY(qVariantValue<QColor>(variant) == QColor(Qt::blue));
-#else
- QSKIP("Implemented/fixed in 4.2", SkipSingle);
-#endif
}
void tst_QVariant::variantMap()
@@ -2746,6 +2789,9 @@ void tst_QVariant::task172061_invalidDate() const
variant = foo;
QVERIFY(!variant.convert(QVariant::Double));
+
+ variant = foo;
+ QVERIFY(!variant.convert(QVariant::Type(QMetaType::Float)));
}
struct WontCompare
diff --git a/tests/auto/qwaitcondition/tst_qwaitcondition.cpp b/tests/auto/qwaitcondition/tst_qwaitcondition.cpp
index b2305cb..1e0136f 100644
--- a/tests/auto/qwaitcondition/tst_qwaitcondition.cpp
+++ b/tests/auto/qwaitcondition/tst_qwaitcondition.cpp
@@ -161,9 +161,6 @@ public:
void tst_QWaitCondition::wait_QMutex()
{
-#if defined(Q_OS_WIN32) && QT_VERSION < 0x030200
- QSKIP("Known race-conditions cause sporadic failures", SkipAll);
-#else
int x;
for (int i = 0; i < iterations; ++i) {
{
@@ -240,7 +237,6 @@ void tst_QWaitCondition::wait_QMutex()
}
}
}
-#endif
}
void tst_QWaitCondition::wait_QReadWriteLock()
@@ -446,9 +442,6 @@ int wake_Thread_2::count = 0;
void tst_QWaitCondition::wakeOne()
{
-#if defined(Q_OS_WIN32) && QT_VERSION < 0x030200
- QSKIP("Known race-conditions cause sporadic failures", SkipAll);
-#else
int x;
// wake up threads, one at a time
for (int i = 0; i < iterations; ++i) {
@@ -597,7 +590,7 @@ void tst_QWaitCondition::wakeOne()
// QReadWriteLock
QReadWriteLock readWriteLock;
- wake_Thread_2 rwthread[ThreadCount];
+ wake_Thread_2 rwthread[ThreadCount];
readWriteLock.lockForWrite();
for (x = 0; x < ThreadCount; ++x) {
@@ -641,14 +634,10 @@ void tst_QWaitCondition::wakeOne()
QCOMPARE(wake_Thread_2::count, 0);
}
-#endif
}
void tst_QWaitCondition::wakeAll()
{
-#if defined(Q_OS_WIN32) && QT_VERSION < 0x030200
- QSKIP("Known race-conditions cause sporadic failures", SkipAll);
-#else
int x;
for (int i = 0; i < iterations; ++i) {
QMutex mutex;
@@ -715,7 +704,6 @@ void tst_QWaitCondition::wakeAll()
QCOMPARE(exited, ThreadCount);
QCOMPARE(wake_Thread_2::count, 0);
}
-#endif
}
class wait_RaceConditionThread : public QThread
diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp
index cdffcc0..ee61871 100644
--- a/tests/auto/qwidget/tst_qwidget.cpp
+++ b/tests/auto/qwidget/tst_qwidget.cpp
@@ -283,6 +283,10 @@ private slots:
void render_task217815();
void render_windowOpacity();
void render_systemClip();
+ void render_systemClip2_data();
+ void render_systemClip2();
+ void render_systemClip3_data();
+ void render_systemClip3();
void setContentsMargins();
@@ -2576,9 +2580,6 @@ void tst_QWidget::setGeometry()
void tst_QWidget::windowOpacity()
{
-#if defined(Q_WS_X11) && QT_VERSION < 0x040200
- QSKIP("QWidget::windowOpacity is broken in Qt < 4.2 on X11", SkipAll);
-#else
#ifdef Q_OS_WINCE
QSKIP( "Windows CE does not support windowOpacity", SkipAll);
#endif
@@ -2588,43 +2589,27 @@ void tst_QWidget::windowOpacity()
// Initial value should be 1.0
QCOMPARE(widget.windowOpacity(), 1.0);
// children should always return 1.0
-#if QT_VERSION < 0x040200
- QEXPECT_FAIL("", "Prior to 4.2, all children widgets returned 0.0", Continue);
-#endif
QCOMPARE(child.windowOpacity(), 1.0);
widget.setWindowOpacity(0.0);
QCOMPARE(widget.windowOpacity(), 0.0);
child.setWindowOpacity(0.0);
-#if QT_VERSION < 0x040200
- QEXPECT_FAIL("", "Prior to 4.2, all children widgets returned 0.0", Continue);
-#endif
QCOMPARE(child.windowOpacity(), 1.0);
widget.setWindowOpacity(1.0);
QCOMPARE(widget.windowOpacity(), 1.0);
child.setWindowOpacity(1.0);
-#if QT_VERSION < 0x040200
- QEXPECT_FAIL("", "Prior to 4.2, all children widgets returned 0.0", Continue);
-#endif
QCOMPARE(child.windowOpacity(), 1.0);
widget.setWindowOpacity(2.0);
QCOMPARE(widget.windowOpacity(), 1.0);
child.setWindowOpacity(2.0);
-#if QT_VERSION < 0x040200
- QEXPECT_FAIL("", "Prior to 4.2, all children widgets returned 0.0", Continue);
-#endif
QCOMPARE(child.windowOpacity(), 1.0);
widget.setWindowOpacity(-1.0);
QCOMPARE(widget.windowOpacity(), 0.0);
child.setWindowOpacity(-1.0);
-#if QT_VERSION < 0x040200
- QEXPECT_FAIL("", "Prior to 4.2, all children widgets returned 0.0", Continue);
-#endif
QCOMPARE(child.windowOpacity(), 1.0);
-#endif
}
class UpdateWidget : public QWidget
@@ -5333,7 +5318,7 @@ void tst_QWidget::subtractOpaqueSiblings()
{
#ifdef QT_MAC_USE_COCOA
QSKIP("Cocoa only has rect granularity.", SkipAll);
-#elif defined(Q_WIDGET_USE_DIRTYLIST) || (QT_VERSION >= 0x040400)
+#else
QWidget w;
w.setGeometry(50, 50, 300, 300);
@@ -5806,6 +5791,35 @@ void tst_QWidget::setToolTip()
widget.setToolTip(QString());
QCOMPARE(widget.toolTip(), QString());
QCOMPARE(spy.count(), 2);
+
+
+
+ for (int pass = 0; pass < 2; ++pass) {
+ QWidget *popup = new QWidget(0, Qt::Popup);
+ popup->resize(150, 50);
+ QFrame *frame = new QFrame(popup);
+ frame->setGeometry(0, 0, 50, 50);
+ frame->setFrameStyle(QFrame::Box | QFrame::Plain);
+ EventSpy spy1(frame, QEvent::ToolTip);
+ EventSpy spy2(popup, QEvent::ToolTip);
+ frame->setMouseTracking(pass == 0 ? false : true);
+ frame->setToolTip(QLatin1String("TOOLTIP FRAME"));
+ popup->setToolTip(QLatin1String("TOOLTIP POPUP"));
+ popup->show();
+#ifdef Q_WS_X11
+ qt_x11_wait_for_window_manager(popup);
+#endif
+ QTest::qWait(100);
+ QTest::mouseMove(frame);
+ QTest::qWait(900); // delay is 700
+
+ QCOMPARE(spy1.count(), 1);
+ QCOMPARE(spy2.count(), 0);
+ if (pass == 0)
+ QTest::qWait(2200); // delay is 2000
+ QTest::mouseMove(popup);
+ delete popup;
+ }
}
void tst_QWidget::testWindowIconChangeEventPropagation()
@@ -6928,6 +6942,202 @@ void tst_QWidget::render_systemClip()
#endif
}
+void tst_QWidget::render_systemClip2_data()
+{
+ QTest::addColumn<bool>("autoFillBackground");
+ QTest::addColumn<bool>("usePaintEvent");
+ QTest::addColumn<QColor>("expectedColor");
+
+ QTest::newRow("Only auto-fill background") << true << false << QColor(Qt::blue);
+ QTest::newRow("Only draw in paintEvent") << false << true << QColor(Qt::green);
+ QTest::newRow("Auto-fill background and draw in paintEvent") << true << true << QColor(Qt::green);
+}
+
+void tst_QWidget::render_systemClip2()
+{
+ QFETCH(bool, autoFillBackground);
+ QFETCH(bool, usePaintEvent);
+ QFETCH(QColor, expectedColor);
+
+ Q_ASSERT_X(expectedColor != QColor(Qt::red), Q_FUNC_INFO,
+ "Qt::red is the reference color for the image, pick another color");
+
+ class MyWidget : public QWidget
+ {
+ public:
+ bool usePaintEvent;
+ void paintEvent(QPaintEvent *)
+ {
+ if (usePaintEvent)
+ QPainter(this).fillRect(rect(), Qt::green);
+ }
+ };
+
+ MyWidget widget;
+ widget.usePaintEvent = usePaintEvent;
+ widget.setPalette(Qt::blue);
+ // NB! widget.setAutoFillBackground(autoFillBackground) won't do the
+ // trick here since the widget is a top-level. The background is filled
+ // regardless, unless Qt::WA_OpaquePaintEvent or Qt::WA_NoSystemBackground
+ // is set. We therefore use the opaque attribute to turn off auto-fill.
+ if (!autoFillBackground)
+ widget.setAttribute(Qt::WA_OpaquePaintEvent);
+ widget.resize(100, 100);
+
+ QImage image(widget.size(), QImage::Format_RGB32);
+ image.fill(QColor(Qt::red).rgb());
+
+ QPaintEngine *paintEngine = image.paintEngine();
+ QVERIFY(paintEngine);
+
+ QRegion systemClip(QRegion(50, 0, 50, 10));
+ systemClip += QRegion(90, 10, 10, 40);
+ paintEngine->setSystemClip(systemClip);
+
+ // Render entire widget directly onto device.
+ widget.render(&image);
+
+#ifdef RENDER_DEBUG
+ image.save("systemclip_with_device.png");
+#endif
+ // All pixels within the system clip should now be
+ // the expectedColor, and the rest should be red.
+ for (int i = 0; i < image.height(); ++i) {
+ for (int j = 0; j < image.width(); ++j) {
+ if (systemClip.contains(QPoint(j, i)))
+ QCOMPARE(image.pixel(j, i), expectedColor.rgb());
+ else
+ QCOMPARE(image.pixel(j, i), QColor(Qt::red).rgb());
+ }
+ }
+
+ // Refill image with red.
+ image.fill(QColor(Qt::red).rgb());
+ paintEngine->setSystemClip(systemClip);
+
+ // Do the same with an untransformed painter.
+ QPainter painter(&image);
+ //Make sure we're using the same paint engine and has the right clip set.
+ QCOMPARE(painter.paintEngine(), paintEngine);
+ QCOMPARE(paintEngine->systemClip(), systemClip);
+
+ widget.render(&painter);
+
+#ifdef RENDER_DEBUG
+ image.save("systemclip_with_untransformed_painter.png");
+#endif
+ // All pixels within the system clip should now be
+ // the expectedColor, and the rest should be red.
+ for (int i = 0; i < image.height(); ++i) {
+ for (int j = 0; j < image.width(); ++j) {
+ if (systemClip.contains(QPoint(j, i)))
+ QCOMPARE(image.pixel(j, i), expectedColor.rgb());
+ else
+ QCOMPARE(image.pixel(j, i), QColor(Qt::red).rgb());
+ }
+ }
+}
+
+void tst_QWidget::render_systemClip3_data()
+{
+ QTest::addColumn<QSize>("size");
+ QTest::addColumn<bool>("useSystemClip");
+
+ // Reference: http://en.wikipedia.org/wiki/Flag_of_Norway
+ QTest::newRow("Norwegian Civil Flag") << QSize(220, 160) << false;
+ QTest::newRow("Norwegian War Flag") << QSize(270, 160) << true;
+}
+
+// This test ensures that the current engine clip (systemClip + painter clip)
+// is preserved after QPainter::setClipRegion(..., Qt::ReplaceClip);
+void tst_QWidget::render_systemClip3()
+{
+ QFETCH(QSize, size);
+ QFETCH(bool, useSystemClip);
+
+ // Calculate the inner/outer cross of the flag.
+ QRegion outerCross(0, 0, size.width(), size.height());
+ outerCross -= QRect(0, 0, 60, 60);
+ outerCross -= QRect(100, 0, size.width() - 100, 60);
+ outerCross -= QRect(0, 100, 60, 60);
+ outerCross -= QRect(100, 100, size.width() - 100, 60);
+
+ QRegion innerCross(0, 0, size.width(), size.height());
+ innerCross -= QRect(0, 0, 70, 70);
+ innerCross -= QRect(90, 0, size.width() - 90, 70);
+ innerCross -= QRect(0, 90, 70, 70);
+ innerCross -= QRect(90, 90, size.width() - 90, 70);
+
+ const QRegion redArea(QRegion(0, 0, size.width(), size.height()) - outerCross);
+ const QRegion whiteArea(outerCross - innerCross);
+ const QRegion blueArea(innerCross);
+ QRegion systemClip;
+
+ // Okay, here's the image that should look like a Norwegian civil/war flag in the end.
+ QImage flag(size, QImage::Format_ARGB32);
+ flag.fill(QColor(Qt::transparent).rgba());
+
+ if (useSystemClip) {
+ QPainterPath warClip(QPoint(size.width(), 0));
+ warClip.lineTo(size.width() - 110, 60);
+ warClip.lineTo(size.width(), 80);
+ warClip.lineTo(size.width() - 110, 100);
+ warClip.lineTo(size.width(), 160);
+ warClip.closeSubpath();
+ systemClip = QRegion(0, 0, size.width(), size.height()) - QRegion(warClip.toFillPolygon().toPolygon());
+ flag.paintEngine()->setSystemClip(systemClip);
+ }
+
+ QPainter painter(&flag);
+ painter.fillRect(QRect(QPoint(), size), Qt::red); // Fill image background with red.
+ painter.setClipRegion(outerCross); // Limit widget painting to inside the outer cross.
+
+ // Here's the widget that's supposed to draw the inner/outer cross of the flag.
+ // The outer cross (white) should be drawn when the background is auto-filled, and
+ // the inner cross (blue) should be drawn in the paintEvent.
+ class MyWidget : public QWidget
+ { public:
+ void paintEvent(QPaintEvent *)
+ {
+ QPainter painter(this);
+ // Be evil and try to paint outside the outer cross. This should not be
+ // possible since the shared painter is clipped to the outer cross.
+ painter.setClipRect(0, 0, 60, 60, Qt::ReplaceClip);
+ painter.fillRect(rect(), Qt::green);
+ painter.setClipRegion(clip, Qt::ReplaceClip);
+ painter.fillRect(rect(), Qt::blue);
+ }
+ QRegion clip;
+ };
+
+ MyWidget widget;
+ widget.clip = innerCross;
+ widget.setFixedSize(size);
+ widget.setPalette(Qt::white);
+ widget.setAutoFillBackground(true);
+ widget.render(&painter);
+
+#ifdef RENDER_DEBUG
+ flag.save("flag.png");
+#endif
+
+ // Let's make sure we got a Norwegian flag.
+ for (int i = 0; i < flag.height(); ++i) {
+ for (int j = 0; j < flag.width(); ++j) {
+ const QPoint pixel(j, i);
+ const QRgb pixelValue = flag.pixel(pixel);
+ if (useSystemClip && !systemClip.contains(pixel))
+ QCOMPARE(pixelValue, QColor(Qt::transparent).rgba());
+ else if (redArea.contains(pixel))
+ QCOMPARE(pixelValue, QColor(Qt::red).rgba());
+ else if (whiteArea.contains(pixel))
+ QCOMPARE(pixelValue, QColor(Qt::white).rgba());
+ else
+ QCOMPARE(pixelValue, QColor(Qt::blue).rgba());
+ }
+ }
+}
+
void tst_QWidget::setContentsMargins()
{
QLabel label("why does it always rain on me?");
diff --git a/tests/auto/qwmatrix/tst_qwmatrix.cpp b/tests/auto/qwmatrix/tst_qwmatrix.cpp
index 47fd41f..4a816a8 100644
--- a/tests/auto/qwmatrix/tst_qwmatrix.cpp
+++ b/tests/auto/qwmatrix/tst_qwmatrix.cpp
@@ -299,16 +299,12 @@ void tst_QWMatrix::mapping_data()
void tst_QWMatrix::mapRect()
{
-#if QT_VERSION >= 0x030100
QFETCH( QMatrix, matrix );
QFETCH( QRect, src );
// qDebug( "got src: %d/%d (%d/%d), matrix=[ %f %f %f %f %f %f ]",
-// src.x(), src.y(), src.width(), src.height(),
-// matrix.m11(), matrix.m12(), matrix.m21(), matrix.m22(), matrix.dx(), matrix.dy() );
+// src.x(), src.y(), src.width(), src.height(),
+// matrix.m11(), matrix.m12(), matrix.m21(), matrix.m22(), matrix.dx(), matrix.dy() );
QTEST( QPolygon( matrix.mapRect(src) ), "res" );
-#else
- QSKIP( "Not tested with Qt versions < 3.1", SkipAll);
-#endif
}
void tst_QWMatrix::operator_star_qrect()
@@ -349,7 +345,6 @@ void tst_QWMatrix::operator_star_qwmatrix()
void tst_QWMatrix::assignments()
{
-#if QT_VERSION >= 0x040000
QMatrix m;
m.scale(2, 3);
m.rotate(45);
@@ -371,24 +366,16 @@ void tst_QWMatrix::assignments()
QCOMPARE(m.m22(), c2.m22());
QCOMPARE(m.dx(), c2.dx());
QCOMPARE(m.dy(), c2.dy());
-#else
- QSKIP( "Not tested with Qt versions < 4.0", SkipAll);
-#endif
}
void tst_QWMatrix::mapToPolygon()
{
-#if QT_VERSION >= 0x030100
QFETCH( QMatrix, matrix );
QFETCH( QRect, src );
QFETCH( QPolygon, res );
QCOMPARE( matrix.mapToPolygon( src ), res );
-#else
- QSKIP( "Not tested with Qt versions < 3.1", SkipAll);
-// qDebug("passing test; transformations are broken in 3.0.x" );
-#endif
}
diff --git a/tests/auto/qwritelocker/tst_qwritelocker.cpp b/tests/auto/qwritelocker/tst_qwritelocker.cpp
index 21bfa8a..258309d 100644
--- a/tests/auto/qwritelocker/tst_qwritelocker.cpp
+++ b/tests/auto/qwritelocker/tst_qwritelocker.cpp
@@ -189,9 +189,6 @@ void tst_QWriteLocker::unlockAndRelockTest()
void tst_QWriteLocker::lockerStateTest()
{
-#if QT_VERSION < 0x040200
- QSKIP("QWriteLocker doesn't keep state in Qt < 4.2", SkipAll);
-#else
class LockerStateThread : public tst_QWriteLockerThread
{
public:
@@ -228,7 +225,6 @@ void tst_QWriteLocker::lockerStateTest()
delete thread;
thread = 0;
-#endif
}
QTEST_MAIN(tst_QWriteLocker)
diff --git a/tests/auto/rcc/tst_rcc.cpp b/tests/auto/rcc/tst_rcc.cpp
index 3297b2b..57649b4 100644
--- a/tests/auto/rcc/tst_rcc.cpp
+++ b/tests/auto/rcc/tst_rcc.cpp
@@ -59,8 +59,6 @@ public:
private slots:
void rcc_data();
void rcc();
-
-private:
};
@@ -68,18 +66,9 @@ QString findExpectedFile(const QString &base)
{
QString expectedrccfile = base;
- if (QT_VERSION >= 0x040500 && QFileInfo(expectedrccfile + QLatin1String(".450")).exists())
+ // Must be updated with each minor release.
+ if (QFileInfo(expectedrccfile + QLatin1String(".450")).exists())
expectedrccfile += QLatin1String(".450");
- else if (QT_VERSION >= 0x040400 && QFileInfo(expectedrccfile + QLatin1String(".440")).exists())
- expectedrccfile += QLatin1String(".440");
- else if (QT_VERSION >= 0x040300 && QFileInfo(expectedrccfile + QLatin1String(".430")).exists())
- expectedrccfile += QLatin1String(".430");
- else if (QT_VERSION >= 0x040200 && QFileInfo(expectedrccfile + QLatin1String(".420")).exists())
- expectedrccfile += QLatin1String(".420");
- else if (QT_VERSION >= 0x040100 && QFileInfo(expectedrccfile + QLatin1String(".410")).exists())
- expectedrccfile += QLatin1String(".410");
- else if (QT_VERSION >= 0x040000 && QFileInfo(expectedrccfile + QLatin1String(".400")).exists())
- expectedrccfile += QLatin1String(".400");
return expectedrccfile;
}
diff --git a/tests/auto/selftests/xunit/tst_xunit.cpp b/tests/auto/selftests/xunit/tst_xunit.cpp
index b42582e..d0b585f 100644
--- a/tests/auto/selftests/xunit/tst_xunit.cpp
+++ b/tests/auto/selftests/xunit/tst_xunit.cpp
@@ -3,6 +3,40 @@
** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
****************************************************************************/
#include <QtTest/QtTest>
diff --git a/tests/auto/uiloader/baseline/css_borderimage.ui b/tests/auto/uiloader/baseline/css_borderimage.ui
new file mode 100644
index 0000000..4a59ca2
--- /dev/null
+++ b/tests/auto/uiloader/baseline/css_borderimage.ui
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Form</class>
+ <widget class="QWidget" name="Form">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>530</width>
+ <height>309</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">QLabel { border-width: 28; color: #0f0; background-color: white; }
+
+#label_repeat_repeat {
+ border-image: url(&quot;images/borderimage.png&quot;) 28 repeat repeat;
+}
+
+#label_stretch_repeat {
+ border-image: url(&quot;images/borderimage.png&quot;) 28 stretch repeat;
+}
+
+#label_round_repeat {
+ border-image: url(&quot;images/borderimage.png&quot;) 28 round repeat;
+}
+
+
+#label_repeat_round {
+ border-image: url(&quot;images/borderimage.png&quot;) 28 repeat round;
+}
+
+#label_stretch_round {
+ border-image: url(&quot;images/borderimage.png&quot;) 28 stretch round;
+}
+
+#label_round_round {
+ border-image: url(&quot;images/borderimage.png&quot;) 28 round round;
+}
+
+#label_repeat_stretch {
+ border-image: url(&quot;images/borderimage.png&quot;) 28 repeat stretch;
+}
+
+#label_stretch_stretch {
+ border-image: url(&quot;images/borderimage.png&quot;) 28 stretch stretch;
+}
+
+#label_round_stretch {
+ border-image: url(&quot;images/borderimage.png&quot;) 28 round stretch;
+}
+</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_stretch_stretch">
+ <property name="text">
+ <string>Strecth Stretch</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLabel" name="label_stretch_round">
+ <property name="text">
+ <string>Stretch Round</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <widget class="QLabel" name="label_stretch_repeat">
+ <property name="text">
+ <string>Stretch repeat</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_round_stretch">
+ <property name="text">
+ <string>Round Stretch</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLabel" name="label_round_round">
+ <property name="text">
+ <string>Round Round</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2">
+ <widget class="QLabel" name="label_round_repeat">
+ <property name="text">
+ <string>Round Repeat</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_repeat_stretch">
+ <property name="text">
+ <string>Repeat Stretch</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLabel" name="label_repeat_round">
+ <property name="text">
+ <string>Repeat Round</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2">
+ <widget class="QLabel" name="label_repeat_repeat">
+ <property name="text">
+ <string>Repeat Repeat</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/tests/auto/uiloader/baseline/css_borderimage_allwidgets.ui b/tests/auto/uiloader/baseline/css_borderimage_allwidgets.ui
new file mode 100644
index 0000000..baba66b
--- /dev/null
+++ b/tests/auto/uiloader/baseline/css_borderimage_allwidgets.ui
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Form</class>
+ <widget class="QWidget" name="Form">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>553</width>
+ <height>368</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">* { border-image: url(&quot;images/pushbutton.png&quot;) 6 6 6 6; border-width:6px; }</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_4">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QFrame" name="frame">
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Each widget should have a background image. including the top level</string>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pushButton">
+ <property name="text">
+ <string>PushButton</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QProgressBar" name="progressBar">
+ <property name="value">
+ <number>24</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QWidget" name="widget" native="true">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QPushButton" name="pushButton_2">
+ <property name="text">
+ <string>PushButton</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="spinBox"/>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="radioButton">
+ <property name="text">
+ <string>RadioButton</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QScrollArea" name="scrollArea">
+ <property name="widgetResizable">
+ <bool>true</bool>
+ </property>
+ <widget class="QWidget" name="scrollAreaWidgetContents">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>260</width>
+ <height>197</height>
+ </rect>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="2" column="0" colspan="2">
+ <widget class="QSlider" name="horizontalSlider">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <widget class="QLCDNumber" name="lcdNumber"/>
+ </item>
+ <item row="0" column="1">
+ <widget class="QRadioButton" name="radioButton_2">
+ <property name="text">
+ <string>RadioButton</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QRadioButton" name="radioButton_3">
+ <property name="text">
+ <string>RadioButton</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QCheckBox" name="checkBox_2">
+ <property name="text">
+ <string>CheckBox</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QCheckBox" name="checkBox_3">
+ <property name="text">
+ <string>CheckBox</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>GroupBox</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <item>
+ <widget class="QCheckBox" name="checkBox">
+ <property name="text">
+ <string>CheckBox</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="lineEdit">
+ <property name="text">
+ <string>Line Edit</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QListWidget" name="listWidget">
+ <item>
+ <property name="text">
+ <string>New Item</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>New Item</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>New Item</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>New Item</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>New Item</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/tests/auto/uiloader/baseline/images/borderimage.png b/tests/auto/uiloader/baseline/images/borderimage.png
new file mode 100644
index 0000000..199fc89
--- /dev/null
+++ b/tests/auto/uiloader/baseline/images/borderimage.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/splitter_horizontal.png b/tests/auto/uiloader/baseline/images/splitter_horizontal.png
new file mode 100644
index 0000000..66107cf
--- /dev/null
+++ b/tests/auto/uiloader/baseline/images/splitter_horizontal.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/splitter_vertical.png b/tests/auto/uiloader/baseline/images/splitter_vertical.png
new file mode 100644
index 0000000..f907c0b
--- /dev/null
+++ b/tests/auto/uiloader/baseline/images/splitter_vertical.png
Binary files differ
diff --git a/tests/auto/windowsmobile/test/ddhelper.cpp b/tests/auto/windowsmobile/test/ddhelper.cpp
new file mode 100644
index 0000000..5955cd3
--- /dev/null
+++ b/tests/auto/windowsmobile/test/ddhelper.cpp
@@ -0,0 +1,121 @@
+
+#ifdef Q_OS_WINCE_WM
+
+#include <Ddraw.h>
+#include <QDebug>
+
+static LPDIRECTDRAW g_pDD = NULL; // DirectDraw object
+static LPDIRECTDRAWSURFACE g_pDDSSurface = NULL; // DirectDraw primary surface
+
+static DDSCAPS ddsCaps;
+static DDSURFACEDESC ddsSurfaceDesc;
+static void *buffer = NULL;
+
+static int width = 0;
+static int height = 0;
+static int pitch = 0;
+static int bitCount = 0;
+static int windowId = 0;
+
+static bool initialized = false;
+static bool locked = false;
+
+void q_lock()
+{
+ if (locked) {
+ qWarning("Direct Painter already locked (QDirectPainter::lock())");
+ return;
+ }
+ locked = true;
+
+
+ memset(&ddsSurfaceDesc, 0, sizeof(ddsSurfaceDesc));
+ ddsSurfaceDesc.dwSize = sizeof(ddsSurfaceDesc);
+
+ HRESULT h = g_pDDSSurface->Lock(0, &ddsSurfaceDesc, DDLOCK_WRITEONLY, 0);
+ if (h != DD_OK)
+ qDebug() << "GetSurfaceDesc failed!";
+
+ width = ddsSurfaceDesc.dwWidth;
+ height = ddsSurfaceDesc.dwHeight;
+ bitCount = ddsSurfaceDesc.ddpfPixelFormat.dwRGBBitCount;
+ pitch = ddsSurfaceDesc.lPitch;
+ buffer = ddsSurfaceDesc.lpSurface;
+}
+
+void q_unlock()
+{
+ if( !locked) {
+ qWarning("Direct Painter not locked (QDirectPainter::unlock()");
+ return;
+ }
+ g_pDDSSurface->Unlock(0);
+ locked = false;
+}
+
+void q_initDD()
+{
+ if (initialized)
+ return;
+
+ DirectDrawCreate(NULL, &g_pDD, NULL);
+
+ HRESULT h;
+ h = g_pDD->SetCooperativeLevel(0, DDSCL_NORMAL);
+
+ if (h != DD_OK)
+ qDebug() << "cooperation level failed";
+
+ h = g_pDD->TestCooperativeLevel();
+ if (h != DD_OK)
+ qDebug() << "cooperation level failed test";
+
+ DDSURFACEDESC ddsd;
+ memset(&ddsd, 0, sizeof(ddsd));
+ ddsd.dwSize = sizeof(ddsd);
+
+ ddsd.dwFlags = DDSD_CAPS;
+
+ ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
+
+ h = g_pDD->CreateSurface(&ddsd, &g_pDDSSurface, NULL);
+
+ if (h != DD_OK)
+ qDebug() << "CreateSurface failed!";
+
+ if (g_pDDSSurface->GetCaps(&ddsCaps) != DD_OK)
+ qDebug() << "GetCaps failed";
+
+ q_lock();
+ q_unlock();
+ initialized = true;
+}
+
+uchar* q_frameBuffer()
+{
+ return (uchar*) buffer;
+}
+
+int q_screenDepth()
+{
+ return bitCount;
+}
+
+int q_screenWidth()
+{
+ return width;
+}
+
+int q_screenHeight()
+{
+ return height;
+}
+
+int q_linestep()
+{
+ return pitch;
+}
+
+#endif //Q_OS_WINCE_WM
+
+
diff --git a/tests/auto/windowsmobile/test/ddhelper.h b/tests/auto/windowsmobile/test/ddhelper.h
new file mode 100644
index 0000000..3dfa9e6
--- /dev/null
+++ b/tests/auto/windowsmobile/test/ddhelper.h
@@ -0,0 +1,21 @@
+#ifndef __DDHELPER__
+#define __DDHELPER__
+
+extern uchar* q_frameBuffer();
+
+extern int q_screenDepth();
+
+extern int q_screenWidth();
+
+extern int q_screenHeight();
+
+extern int q_linestep();
+
+extern void q_initDD();
+
+extern void q_unlock();
+
+extern void q_lock();
+
+#endif //__DDHELPER__
+
diff --git a/tests/auto/windowsmobile/test/test.pro b/tests/auto/windowsmobile/test/test.pro
new file mode 100644
index 0000000..2420bf1
--- /dev/null
+++ b/tests/auto/windowsmobile/test/test.pro
@@ -0,0 +1,24 @@
+
+load(qttest_p4)
+
+HEADERS += ddhelper.h
+SOURCES += tst_windowsmobile.cpp ddhelper.cpp
+RESOURCES += windowsmobile.qrc
+
+TARGET = tst_windowsmobile
+
+wincewm*: {
+ addFiles.sources = \
+ ../testQMenuBar/*.exe
+
+
+ addFiles.path = "\Program Files\tst_windowsmobile"
+ DEPLOYMENT += addFiles
+}
+
+wincewm*: {
+ LIBS += Ddraw.lib
+}
+
+
+
diff --git a/tests/auto/windowsmobile/test/testQMenuBar_current.png b/tests/auto/windowsmobile/test/testQMenuBar_current.png
new file mode 100644
index 0000000..d03e69a
--- /dev/null
+++ b/tests/auto/windowsmobile/test/testQMenuBar_current.png
Binary files differ
diff --git a/tests/auto/windowsmobile/test/testSimpleWidget_current.png b/tests/auto/windowsmobile/test/testSimpleWidget_current.png
new file mode 100644
index 0000000..5cbc2bb
--- /dev/null
+++ b/tests/auto/windowsmobile/test/testSimpleWidget_current.png
Binary files differ
diff --git a/tests/auto/windowsmobile/test/tst_windowsmobile.cpp b/tests/auto/windowsmobile/test/tst_windowsmobile.cpp
new file mode 100644
index 0000000..391e206
--- /dev/null
+++ b/tests/auto/windowsmobile/test/tst_windowsmobile.cpp
@@ -0,0 +1,191 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtTest/QtTest>
+#include <QtCore/QDate>
+#include <QtCore/QDebug>
+#include <QtCore/QObject>
+#include <QtGui>
+#include <windows.h>
+#include <ddhelper.h>
+
+
+
+class tst_WindowsMobile : public QObject
+{
+ Q_OBJECT
+public:
+ tst_WindowsMobile()
+ {
+#ifdef Q_OS_WINCE_WM
+ q_initDD();
+#endif
+ }
+
+#ifdef Q_OS_WINCE_WM
+ private slots:
+ void testMainWindowAndMenuBar();
+ void testSimpleWidget();
+#endif
+};
+
+#ifdef Q_OS_WINCE_WM
+
+bool qt_wince_is_platform(const QString &platformString) {
+ TCHAR tszPlatform[64];
+ if (SystemParametersInfo(SPI_GETPLATFORMTYPE,
+ sizeof(tszPlatform)/sizeof(*tszPlatform),tszPlatform,0))
+ if (0 == _tcsicmp(reinterpret_cast<const wchar_t *> (platformString.utf16()), tszPlatform))
+ return true;
+ return false;
+}
+
+bool qt_wince_is_smartphone() {
+ return qt_wince_is_platform(QString::fromLatin1("Smartphone"));
+}
+
+void openMenu()
+{
+ ::mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE,450,630,0,0);
+ ::mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE,450,630,0,0);
+ QTest::qWait(2000);
+ ::mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE,65535,65535,0,0);
+ ::mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE,65535,65535,0,0);
+ QTest::qWait(2000);
+ ::mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE,55535,55535,0,0);
+ ::mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE,55535,55535,0,0);
+ QTest::qWait(2000);
+ ::mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE,55535,58535,0,0);
+ ::mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE,55535,58535,0,0);
+ QTest::qWait(2000);
+ ::mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE,40535,55535,0,0);
+ ::mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE,40535,55535,0,0);
+ QTest::qWait(2000);
+ ::mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE,32535,55535,0,0);
+ ::mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE,32535,55535,0,0);
+ QTest::qWait(2000);
+ ::mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE,65535,65535,0,0);
+ ::mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE,65535,65535,0,0);
+ QTest::qWait(2000);
+ ::mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE,55535,50535,0,0);
+ ::mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE,55535,50535,0,0);
+ QTest::qWait(2000);
+ ::mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE,55535,40535,0,0);
+ ::mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE,55535,40535,0,0);
+ QTest::qWait(2000);
+ ::mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE,48535,45535,0,0);
+ QTest::qWait(2000);
+ ::mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE,48535,45535,0,0);
+}
+
+void compareScreenshots(const QString &image1, const QString &image2)
+{
+ if (qt_wince_is_smartphone())
+ QSKIP("This test is only for Windows Mobile", SkipAll);
+ QImage screenShot(image1);
+ QImage original(image2);
+
+ //ignore the clock
+ QPainter p1(&screenShot);
+ QPainter p2(&original);
+ p1.fillRect(310, 6, 400, 34, Qt::black);
+ p2.fillRect(310, 6, 400, 34, Qt::black);
+
+ QVERIFY(original == screenShot);
+}
+
+void takeScreenShot(const QString filename)
+{
+ q_lock();
+ QImage image = QImage(( uchar *) q_frameBuffer(), q_screenWidth(),
+ q_screenHeight(), q_screenWidth() * q_screenDepth() / 8, QImage::Format_RGB16);
+ image.save(filename, "PNG");
+ q_unlock();
+}
+
+void tst_WindowsMobile::testMainWindowAndMenuBar()
+{
+ QProcess process;
+ process.start("testQMenuBar.exe");
+ QCOMPARE(process.state(), QProcess::Running);
+ QTest::qWait(6000);
+ openMenu();
+ QTest::qWait(1000);
+ takeScreenShot("testQMenuBar_current.png");
+ process.close();
+ compareScreenshots("testQMenuBar_current.png", ":/testQMenuBar_current.png");
+}
+
+void tst_WindowsMobile::testSimpleWidget()
+{
+ QMenuBar menubar;
+ menubar.show();
+ QWidget maximized;
+ QPalette pal = maximized.palette();
+ pal.setColor(QPalette::Background, Qt::red);
+ maximized.setPalette(pal);
+ maximized.showMaximized();
+ QWidget widget;
+ widget.setGeometry(100, 100, 200, 200);
+ widget.setWindowTitle("Widget");
+ widget.show();
+ qApp->processEvents();
+ QTest::qWait(1000);
+
+ QWidget widget2;
+ widget2.setGeometry(100, 380, 300, 200);
+ widget2.setWindowTitle("Widget 2");
+ widget2.setWindowFlags(Qt::Popup);
+ widget2.show();
+
+ qApp->processEvents();
+ QTest::qWait(1000);
+ takeScreenShot("testSimpleWidget_current.png");
+ compareScreenshots("testSimpleWidget_current.png", ":/testSimpleWidget_current.png");
+}
+
+
+#endif //Q_OS_WINCE_WM
+
+
+QTEST_MAIN(tst_WindowsMobile)
+#include "tst_windowsmobile.moc"
+
diff --git a/tests/auto/windowsmobile/test/windowsmobile.qrc b/tests/auto/windowsmobile/test/windowsmobile.qrc
new file mode 100644
index 0000000..5d6f614
--- /dev/null
+++ b/tests/auto/windowsmobile/test/windowsmobile.qrc
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>testQMenuBar_current.png</file>
+ <file>testSimpleWidget_current.png</file>
+</qresource>
+</RCC>
diff --git a/tests/auto/windowsmobile/testQMenuBar/main.cpp b/tests/auto/windowsmobile/testQMenuBar/main.cpp
new file mode 100644
index 0000000..4a3b3b2
--- /dev/null
+++ b/tests/auto/windowsmobile/testQMenuBar/main.cpp
@@ -0,0 +1,72 @@
+#include <QtTest/QtTest>
+#include <QtCore/QDate>
+#include <QtCore/QDebug>
+#include <QtCore/QObject>
+#include <QtGui>
+#include <windows.h>
+
+int main(int argc, char * argv[])
+{
+ int widgetNum = 20;
+
+ QList<QWidget*> widgets;
+ QApplication app(argc, argv);
+
+ QMainWindow mainWindow;
+ mainWindow.setWindowTitle("Test");
+ QMenu *fileMenu = mainWindow.menuBar()->addMenu("File");
+ QMenu *editMenu = mainWindow.menuBar()->addMenu("Edit");
+ QMenu *viewMenu = mainWindow.menuBar()->addMenu("View");
+ QMenu *toolsMenu = mainWindow.menuBar()->addMenu("Tools");
+ QMenu *optionsMenu = mainWindow.menuBar()->addMenu("Options");
+ QMenu *helpMenu = mainWindow.menuBar()->addMenu("Help");
+
+ qApp->processEvents();
+
+ fileMenu->addAction("Open");
+ QAction *close = fileMenu->addAction("Close");
+ fileMenu->addSeparator();
+ fileMenu->addAction("Exit");
+
+ close->setEnabled(false);
+
+ editMenu->addAction("Cut");
+ editMenu->addAction("Pase");
+ editMenu->addAction("Copy");
+ editMenu->addSeparator();
+ editMenu->addAction("Find");
+
+ viewMenu->addAction("Hide");
+ viewMenu->addAction("Show");
+ viewMenu->addAction("Explore");
+ QAction *visible = viewMenu->addAction("Visible");
+ visible->setCheckable(true);
+ visible->setChecked(true);
+
+ toolsMenu->addMenu("Hammer");
+ toolsMenu->addMenu("Caliper");
+ toolsMenu->addMenu("Helm");
+
+ optionsMenu->addMenu("Settings");
+ optionsMenu->addMenu("Standard");
+ optionsMenu->addMenu("Extended");
+
+ QMenu *subMenu = helpMenu->addMenu("Help");
+ subMenu->addAction("Index");
+ subMenu->addSeparator();
+ subMenu->addAction("Vodoo Help");
+ helpMenu->addAction("Contens");
+ helpMenu->addSeparator();
+ helpMenu->addAction("About");
+
+ QToolBar toolbar;
+ mainWindow.addToolBar(&toolbar);
+ toolbar.addAction(QIcon(qApp->style()->standardPixmap(QStyle::SP_FileIcon)), QString("textAction"));
+
+ QTextEdit textEdit;
+ mainWindow.setCentralWidget(&textEdit);
+
+ mainWindow.showMaximized();
+
+ app.exec();
+}
diff --git a/tests/auto/windowsmobile/testQMenuBar/testQMenuBar.pro b/tests/auto/windowsmobile/testQMenuBar/testQMenuBar.pro
new file mode 100644
index 0000000..6dd288b
--- /dev/null
+++ b/tests/auto/windowsmobile/testQMenuBar/testQMenuBar.pro
@@ -0,0 +1,2 @@
+SOURCES += main.cpp
+DESTDIR = ./
diff --git a/tests/auto/windowsmobile/windowsmobile.pro b/tests/auto/windowsmobile/windowsmobile.pro
new file mode 100644
index 0000000..2e6b444
--- /dev/null
+++ b/tests/auto/windowsmobile/windowsmobile.pro
@@ -0,0 +1,9 @@
+
+TEMPLATE = subdirs
+
+wincewm* {
+ SUBDIRS = testQMenuBar
+}
+ SUBDIRS += test
+
+
diff --git a/tests/benchmarks/qimagereader/tst_qimagereader.cpp b/tests/benchmarks/qimagereader/tst_qimagereader.cpp
index ae7ecb2..1b5acb4 100644
--- a/tests/benchmarks/qimagereader/tst_qimagereader.cpp
+++ b/tests/benchmarks/qimagereader/tst_qimagereader.cpp
@@ -102,9 +102,7 @@ tst_QImageReader::tst_QImageReader()
images << QPair<QString, QByteArray>(QLatin1String("4bpp-rle.bmp"), QByteArray("bmp"));
images << QPair<QString, QByteArray>(QLatin1String("tst7.bmp"), QByteArray("bmp"));
images << QPair<QString, QByteArray>(QLatin1String("16bpp.bmp"), QByteArray("bmp"));
-#if QT_VERSION >= 0x040200
images << QPair<QString, QByteArray>(QLatin1String("negativeheight.bmp"), QByteArray("bmp"));
-#endif
images << QPair<QString, QByteArray>(QLatin1String("marble.xpm"), QByteArray("xpm"));
images << QPair<QString, QByteArray>(QLatin1String("kollada.png"), QByteArray("png"));
images << QPair<QString, QByteArray>(QLatin1String("teapot.ppm"), QByteArray("ppm"));
diff --git a/tests/benchmarks/qobject/main.cpp b/tests/benchmarks/qobject/main.cpp
index cd8b142..65833b8 100644
--- a/tests/benchmarks/qobject/main.cpp
+++ b/tests/benchmarks/qobject/main.cpp
@@ -42,12 +42,7 @@
#include <QtGui>
#include <qtest.h>
#include "object.h"
-
-#if QT_VERSION >= 0x040000
-# include <qcoreapplication.h>
-#else
-# include <qapplication.h>
-#endif
+#include <qcoreapplication.h>
#include <qdatetime.h>
enum {
@@ -58,7 +53,7 @@ enum {
class QObjectBenchmark : public QObject
{
Q_OBJECT
-private slots:
+private slots:
void signal_slot_benchmark();
void signal_slot_benchmark_data();
void qproperty_benchmark_data();
@@ -82,13 +77,8 @@ void QObjectBenchmark::signal_slot_benchmark()
Object singleObject;
Object multiObject;
-#if QT_VERSION >= 0x040000
singleObject.setObjectName("single");
multiObject.setObjectName("multi");
-#else
- singleObject.setName("single");
- multiObject.setName("double");
-#endif
singleObject.connect(&singleObject, SIGNAL(signal0()), SLOT(slot0()));
diff --git a/tests/benchmarks/qpainter/tst_qpainter.cpp b/tests/benchmarks/qpainter/tst_qpainter.cpp
index af2c412..60c099b 100644
--- a/tests/benchmarks/qpainter/tst_qpainter.cpp
+++ b/tests/benchmarks/qpainter/tst_qpainter.cpp
@@ -700,11 +700,7 @@ void tst_QPainter::compositionModes_data()
QTest::addColumn<QSize>("size");
QTest::addColumn<QColor>("color");
-#if QT_VERSION >= 0x040500
const int n = QPainter::RasterOp_SourceAndNotDestination;
-#else
- const int n = QPainter::CompositionMode_Exclusion;
-#endif
for (int i = 0; i <= n; ++i) {
QString title("%1:%2");
QTest::newRow(qPrintable(title.arg(i).arg("10x10:opaque")))
@@ -732,9 +728,7 @@ void tst_QPainter::compositionModes()
src.fill(color);
QPixmap dest(size);
-#if QT_VERSION >= 0x040500
if (mode < QPainter::RasterOp_SourceOrDestination)
-#endif
color.setAlpha(127); // porter-duff needs an alpha channel
dest.fill(color);
diff --git a/tools/activeqt/activeqt.pro b/tools/activeqt/activeqt.pro
index a0e7de3..c50010c 100644
--- a/tools/activeqt/activeqt.pro
+++ b/tools/activeqt/activeqt.pro
@@ -2,10 +2,7 @@ TEMPLATE = subdirs
CONFIG += ordered
-contains(QT_EDITION, OpenSource|Console) {
- message("You are not licensed to use ActiveQt.")
-} else {
- SUBDIRS = dumpdoc \
- dumpcpp \
- testcon
-}
+SUBDIRS = dumpdoc \
+ dumpcpp \
+ testcon
+
diff --git a/tools/assistant/compat/mainwindow.cpp b/tools/assistant/compat/mainwindow.cpp
index 65759ad..9f91f9b 100644
--- a/tools/assistant/compat/mainwindow.cpp
+++ b/tools/assistant/compat/mainwindow.cpp
@@ -311,29 +311,11 @@ void MainWindow::closeEvent(QCloseEvent *e)
void MainWindow::about()
{
QMessageBox box(this);
-#if QT_EDITION == QT_EDITION_OPENSOURCE
- QString edition = tr("Open Source Edition");
- QString info = tr("This version of Qt Assistant is part of the Qt Open Source Edition, for use "
- "in the development of Open Source applications. "
- "Qt is a comprehensive C++ framework for cross-platform application "
- "development.");
- QString moreInfo = tr("You need a commercial Qt license for development of proprietary (closed "
- "source) applications. Please see <a href=\"http://qtsoftware.com/company/model"
- "\">qtsoftware.com/company/model</a> for an overview of Qt licensing.");
-#elif defined(QT_PRODUCT_LICENSE)
- QString edition;
- QString info;
- QString moreInfo(tr("This program is licensed to you under the terms of the "
- "Qt %1 License Agreement. For details, see the license file "
- "that came with this software distribution.").arg(QLatin1String(QT_PRODUCT_LICENSE)));
-#else
+
+ // TODO: Remove these variables for 4.6.0. Must keep this way for 4.5.x due to string freeze.
QString edition;
QString info;
- QString moreInfo(tr("This program is licensed to you under the terms of the "
- "Qt Commercial License Agreement. For details, see the file LICENSE "
- "that came with this software distribution."));
-
-#endif
+ QString moreInfo;
box.setText(QString::fromLatin1("<center><img src=\":/trolltech/assistant/images/assistant-128.png\">"
"<h3>%1</h3>"
diff --git a/tools/assistant/tools/assistant/assistant.qch b/tools/assistant/tools/assistant/assistant.qch
index 550cd89..64763f7 100644
--- a/tools/assistant/tools/assistant/assistant.qch
+++ b/tools/assistant/tools/assistant/assistant.qch
Binary files differ
diff --git a/tools/assistant/tools/assistant/centralwidget.cpp b/tools/assistant/tools/assistant/centralwidget.cpp
index 1b0e671..4390a10 100644
--- a/tools/assistant/tools/assistant/centralwidget.cpp
+++ b/tools/assistant/tools/assistant/centralwidget.cpp
@@ -72,7 +72,8 @@
QT_BEGIN_NAMESPACE
namespace {
- HelpViewer* helpViewerFromTabPosition(const QTabWidget *widget, const QPoint &point)
+ HelpViewer* helpViewerFromTabPosition(const QTabWidget *widget,
+ const QPoint &point)
{
QTabBar *tabBar = qFindChild<QTabBar*>(widget);
for (int i = 0; i < tabBar->count(); ++i) {
@@ -87,38 +88,32 @@ namespace {
FindWidget::FindWidget(QWidget *parent)
: QWidget(parent)
{
- QString system = QLatin1String("win");
QHBoxLayout *hboxLayout = new QHBoxLayout(this);
-#ifdef Q_OS_MAC
- system = QLatin1String("mac");
-#else
- hboxLayout->setSpacing(6);
+ QString resourcePath = QLatin1String(":/trolltech/assistant/images/");
+
+#ifndef Q_OS_MAC
hboxLayout->setMargin(0);
+ hboxLayout->setSpacing(6);
+ resourcePath.append(QLatin1String("win"));
+#else
+ resourcePath.append(QLatin1String("mac"));
#endif
- toolClose = new QToolButton(this);
- toolClose->setIcon(QIcon(QString::fromUtf8(":/trolltech/assistant/images/%1/closetab.png").arg(system)));
- toolClose->setAutoRaise(true);
+ toolClose = setupToolButton(QLatin1String(""),
+ resourcePath + QLatin1String("/closetab.png"));
hboxLayout->addWidget(toolClose);
editFind = new QLineEdit(this);
- editFind->setMinimumSize(QSize(150, 0));
- connect(editFind, SIGNAL(textChanged(const QString&)),
- this, SLOT(updateButtons()));
hboxLayout->addWidget(editFind);
+ editFind->setMinimumSize(QSize(150, 0));
+ connect(editFind, SIGNAL(textChanged(QString)), this, SLOT(updateButtons()));
- toolPrevious = new QToolButton(this);
- toolPrevious->setAutoRaise(true);
- toolPrevious->setText(tr("Previous"));
- toolPrevious->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
- toolPrevious->setIcon(QIcon(QString::fromUtf8(":/trolltech/assistant/images/%1/previous.png").arg(system)));
+ toolPrevious = setupToolButton(tr("Previous"),
+ resourcePath + QLatin1String("/previous.png"));
hboxLayout->addWidget(toolPrevious);
- toolNext = new QToolButton(this);
- toolNext->setAutoRaise(true);
- toolNext->setText(tr("Next"));
- toolNext->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
- toolNext->setIcon(QIcon(QString::fromUtf8(":/trolltech/assistant/images/%1/next.png").arg(system)));
+ toolNext = setupToolButton(tr("Next"),
+ resourcePath + QLatin1String("/next.png"));
hboxLayout->addWidget(toolNext);
checkCase = new QCheckBox(tr("Case Sensitive"), this);
@@ -131,15 +126,17 @@ FindWidget::FindWidget(QWidget *parent)
#endif
labelWrapped = new QLabel(this);
+ labelWrapped->setScaledContents(true);
+ labelWrapped->setTextFormat(Qt::RichText);
labelWrapped->setMinimumSize(QSize(0, 20));
labelWrapped->setMaximumSize(QSize(105, 20));
- labelWrapped->setTextFormat(Qt::RichText);
- labelWrapped->setScaledContents(true);
- labelWrapped->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter);
- labelWrapped->setText(tr("<img src=\":/trolltech/assistant/images/wrap.png\">&nbsp;Search wrapped"));
+ labelWrapped->setAlignment(Qt::AlignLeading | Qt::AlignLeft | Qt::AlignVCenter);
+ labelWrapped->setText(tr("<img src=\":/trolltech/assistant/images/wrap.png\""
+ ">&nbsp;Search wrapped"));
hboxLayout->addWidget(labelWrapped);
- QSpacerItem *spacerItem = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+ QSpacerItem *spacerItem = new QSpacerItem(20, 20, QSizePolicy::Expanding,
+ QSizePolicy::Minimum);
hboxLayout->addItem(spacerItem);
setMinimumWidth(minimumSizeHint().width());
labelWrapped->hide();
@@ -162,38 +159,54 @@ void FindWidget::updateButtons()
}
}
+QToolButton* FindWidget::setupToolButton(const QString &text, const QString &icon)
+{
+ QToolButton *toolButton = new QToolButton(this);
+
+ toolButton->setText(text);
+ toolButton->setAutoRaise(true);
+ toolButton->setIcon(QIcon(icon));
+ toolButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+
+ return toolButton;
+}
+
+
+// --
+
CentralWidget::CentralWidget(QHelpEngine *engine, MainWindow *parent)
: QWidget(parent)
+ , lastTabPage(0)
+ , collectionFile(engine->collectionFile())
, findBar(0)
, tabWidget(0)
+ , findWidget(0)
, helpEngine(engine)
, printer(0)
+ , usesDefaultCollection(parent->usesDefaultCollection())
, m_searchWidget(0)
{
- staticCentralWidget = this;
-
- lastTabPage = 0;
globalActionList.clear();
- collectionFile = helpEngine->collectionFile();
- usesDefaultCollection = parent->usesDefaultCollection();
-
- QString system = QLatin1String("win");
+ staticCentralWidget = this;
QVBoxLayout *vboxLayout = new QVBoxLayout(this);
+ QString resourcePath = QLatin1String(":/trolltech/assistant/images/");
-#ifdef Q_OS_MAC
- system = QLatin1String("mac");
-#else
+#ifndef Q_OS_MAC
vboxLayout->setMargin(0);
+ resourcePath.append(QLatin1String("win"));
+#else
+ resourcePath.append(QLatin1String("mac"));
#endif
tabWidget = new QTabWidget(this);
- connect(tabWidget, SIGNAL(currentChanged(int)), this, SLOT(currentPageChanged(int)));
+ connect(tabWidget, SIGNAL(currentChanged(int)), this,
+ SLOT(currentPageChanged(int)));
QToolButton *newTabButton = new QToolButton(this);
newTabButton->setAutoRaise(true);
newTabButton->setToolTip(tr("Add new page"));
- newTabButton->setIcon(QIcon(QString::fromUtf8(":/trolltech/assistant/images/%1/addtab.png").arg(system)));
+ newTabButton->setIcon(QIcon(resourcePath + QLatin1String("/addtab.png")));
tabWidget->setCornerWidget(newTabButton, Qt::TopLeftCorner);
connect(newTabButton, SIGNAL(clicked()), this, SLOT(newTab()));
@@ -202,7 +215,7 @@ CentralWidget::CentralWidget(QHelpEngine *engine, MainWindow *parent)
closeTabButton->setEnabled(false);
closeTabButton->setAutoRaise(true);
closeTabButton->setToolTip(tr("Close current page"));
- closeTabButton->setIcon(QIcon(QString::fromUtf8(":/trolltech/assistant/images/%1/closetab.png").arg(system)));
+ closeTabButton->setIcon(QIcon(resourcePath + QLatin1String("/closetab.png")));
tabWidget->setCornerWidget(closeTabButton, Qt::TopRightCorner);
connect(closeTabButton, SIGNAL(clicked()), this, SLOT(closeTab()));
@@ -216,19 +229,20 @@ CentralWidget::CentralWidget(QHelpEngine *engine, MainWindow *parent)
vboxLayout->addWidget(findBar);
findBar->hide();
findWidget->editFind->installEventFilter(this);
- connect(findWidget->toolClose, SIGNAL(clicked()), findBar, SLOT(hide()));
+ connect(findWidget->toolClose, SIGNAL(clicked()), findBar, SLOT(hide()));
connect(findWidget->toolNext, SIGNAL(clicked()), this, SLOT(findNext()));
connect(findWidget->editFind, SIGNAL(returnPressed()), this, SLOT(findNext()));
- connect(findWidget->editFind, SIGNAL(textChanged(const QString&)), this, SLOT(findCurrentText(const QString&)));
+ connect(findWidget->editFind, SIGNAL(textChanged(QString)), this,
+ SLOT(findCurrentText(QString)));
connect(findWidget->toolPrevious, SIGNAL(clicked()), this, SLOT(findPrevious()));
QTabBar *tabBar = qFindChild<QTabBar*>(tabWidget);
if (tabBar) {
tabBar->installEventFilter(this);
tabBar->setContextMenuPolicy(Qt::CustomContextMenu);
- connect(tabBar, SIGNAL(customContextMenuRequested(const QPoint&)),
- this, SLOT(showTabBarContextMenu(const QPoint&)));
+ connect(tabBar, SIGNAL(customContextMenuRequested(QPoint)), this,
+ SLOT(showTabBarContextMenu(QPoint)));
}
QPalette p = qApp->palette();
@@ -247,19 +261,17 @@ CentralWidget::~CentralWidget()
QString zoomCount;
QString currentPages;
- QLatin1Char sep('|');
- for (int i = 1; i < tabWidget->count(); ++i) {
+ QLatin1Char separator('|');
+ int i = m_searchWidget->isAttached() ? 1 : 0;
+
+ for (; i < tabWidget->count(); ++i) {
HelpViewer *viewer = qobject_cast<HelpViewer*>(tabWidget->widget(i));
if (viewer && viewer->source().isValid()) {
- currentPages.append(viewer->source().toString()).append(sep);
-#if !defined(QT_NO_WEBKIT)
- zoomCount.append(QString::number(viewer->textSizeMultiplier())).
- append(sep);
-#else
- zoomCount.append(QString::number(viewer->zoom())).append(sep);
-#endif
+ currentPages += viewer->source().toString() + separator;
+ zoomCount += QString::number(viewer->zoom()) + separator;
}
}
+
engine.setCustomValue(QLatin1String("LastTabPage"), lastTabPage);
engine.setCustomValue(QLatin1String("LastShownPages"), currentPages);
#if !defined(QT_NO_WEBKIT)
@@ -276,14 +288,18 @@ CentralWidget *CentralWidget::instance()
void CentralWidget::newTab()
{
- HelpViewer* viewer = currentHelpViewer();
+ HelpViewer *viewer = currentHelpViewer();
+#if !defined(QT_NO_WEBKIT)
+ if (viewer && viewer->hasLoadFinished())
+#else
if (viewer)
+#endif
setSourceInNewTab(viewer->source());
}
void CentralWidget::zoomIn()
{
- HelpViewer* viewer = currentHelpViewer();
+ HelpViewer *viewer = currentHelpViewer();
if (viewer)
viewer->zoomIn();
@@ -293,7 +309,7 @@ void CentralWidget::zoomIn()
void CentralWidget::zoomOut()
{
- HelpViewer* viewer = currentHelpViewer();
+ HelpViewer *viewer = currentHelpViewer();
if (viewer)
viewer->zoomOut();
@@ -316,7 +332,7 @@ void CentralWidget::nextPage()
void CentralWidget::resetZoom()
{
- HelpViewer* viewer = currentHelpViewer();
+ HelpViewer *viewer = currentHelpViewer();
if (viewer)
viewer->resetZoom();
@@ -340,7 +356,7 @@ void CentralWidget::findPrevious()
void CentralWidget::closeTab()
{
- HelpViewer* viewer = currentHelpViewer();
+ HelpViewer *viewer = currentHelpViewer();
if (!viewer|| tabWidget->count() == 1)
return;
@@ -350,8 +366,8 @@ void CentralWidget::closeTab()
void CentralWidget::setSource(const QUrl &url)
{
- HelpViewer* viewer = currentHelpViewer();
- HelpViewer* lastViewer = qobject_cast<HelpViewer*>(tabWidget->widget(lastTabPage));
+ HelpViewer *viewer = currentHelpViewer();
+ HelpViewer *lastViewer = qobject_cast<HelpViewer*>(tabWidget->widget(lastTabPage));
if (!viewer && !lastViewer) {
viewer = new HelpViewer(helpEngine, this);
@@ -359,8 +375,9 @@ void CentralWidget::setSource(const QUrl &url)
lastTabPage = tabWidget->addTab(viewer, QString());
tabWidget->setCurrentIndex(lastTabPage);
connectSignals();
- } else
+ } else {
viewer = lastViewer;
+ }
viewer->setSource(url);
currentPageChanged(lastTabPage);
@@ -371,48 +388,48 @@ void CentralWidget::setSource(const QUrl &url)
void CentralWidget::setLastShownPages()
{
+ const QLatin1String key("LastShownPages");
+ QString value = helpEngine->customValue(key, QString()).toString();
+ const QStringList lastShownPageList = value.split(QLatin1Char('|'),
+ QString::SkipEmptyParts);
+
+ const int pageCount = lastShownPageList.count();
+ if (pageCount == 0 && usesDefaultCollection) {
+ setSource(QUrl(QLatin1String("help")));
+ return;
+ }
+
#if !defined(QT_NO_WEBKIT)
- QLatin1String zoom("LastPagesZoomWebView");
+ const QLatin1String zoom("LastPagesZoomWebView");
#else
- QLatin1String zoom("LastPagesZoomTextBrowser");
+ const QLatin1String zoom("LastPagesZoomTextBrowser");
#endif
- const QStringList lastShownPageList =
- helpEngine->customValue(QLatin1String("LastShownPages")).toString().
- split(QLatin1Char('|'), QString::SkipEmptyParts);
-
- if (!lastShownPageList.isEmpty()) {
- QVector<QString>zoomList = helpEngine->customValue(zoom).toString().
- split(QLatin1Char('|'), QString::SkipEmptyParts).toVector();
- if (zoomList.isEmpty())
- zoomList.fill(QLatin1String("0.0"), lastShownPageList.size());
- else if(zoomList.count() < lastShownPageList.count()) {
- zoomList.insert(zoomList.count(),
- lastShownPageList.count() - zoomList.count(), QLatin1String("0.0"));
- }
+ value = helpEngine->customValue(zoom, QString()).toString();
+ QVector<QString> zoomVector = value.split(QLatin1Char('|'),
+ QString::SkipEmptyParts).toVector();
- QVector<QString>::const_iterator zIt = zoomList.constBegin();
- QStringList::const_iterator it = lastShownPageList.constBegin();
- for (; it != lastShownPageList.constEnd(); ++it, ++zIt)
- setSourceInNewTab((*it), (*zIt).toFloat());
+ const int zoomCount = zoomVector.count();
+ zoomVector.insert(zoomCount, pageCount - zoomCount, QLatin1String("0.0"));
- tabWidget->setCurrentIndex(helpEngine->customValue(
- QLatin1String("LastTabPage"), 1).toInt());
- } else {
- if (usesDefaultCollection)
- setSource(QUrl(QLatin1String("help")));
- }
+ QVector<QString>::const_iterator zIt = zoomVector.constBegin();
+ QStringList::const_iterator it = lastShownPageList.constBegin();
+ for (; it != lastShownPageList.constEnd(); ++it, ++zIt)
+ setSourceInNewTab((*it), (*zIt).toFloat());
+
+ const QLatin1String lastTab("LastTabPage");
+ tabWidget->setCurrentIndex(helpEngine->customValue(lastTab, 1).toInt());
}
bool CentralWidget::hasSelection() const
{
- const HelpViewer* viewer = currentHelpViewer();
+ const HelpViewer *viewer = currentHelpViewer();
return viewer ? viewer->hasSelection() : false;
}
QUrl CentralWidget::currentSource() const
{
- const HelpViewer* viewer = currentHelpViewer();
+ const HelpViewer *viewer = currentHelpViewer();
if (viewer)
return viewer->source();
@@ -421,7 +438,7 @@ QUrl CentralWidget::currentSource() const
QString CentralWidget::currentTitle() const
{
- const HelpViewer* viewer = currentHelpViewer();
+ const HelpViewer *viewer = currentHelpViewer();
if (viewer)
return viewer->documentTitle();
@@ -430,7 +447,7 @@ QString CentralWidget::currentTitle() const
void CentralWidget::copySelection()
{
- HelpViewer* viewer = currentHelpViewer();
+ HelpViewer *viewer = currentHelpViewer();
if (viewer)
viewer->copy();
}
@@ -453,7 +470,7 @@ void CentralWidget::initPrinter()
void CentralWidget::print()
{
#ifndef QT_NO_PRINTER
- HelpViewer* viewer = currentHelpViewer();
+ HelpViewer *viewer = currentHelpViewer();
if (!viewer)
return;
@@ -479,7 +496,8 @@ void CentralWidget::printPreview()
#ifndef QT_NO_PRINTER
initPrinter();
QPrintPreviewDialog preview(printer, this);
- connect(&preview, SIGNAL(paintRequested(QPrinter *)), SLOT(printPreview(QPrinter *)));
+ connect(&preview, SIGNAL(paintRequested(QPrinter*)),
+ SLOT(printPreview(QPrinter*)));
preview.exec();
#endif
}
@@ -509,14 +527,14 @@ bool CentralWidget::isHomeAvailable() const
void CentralWidget::home()
{
- HelpViewer* viewer = currentHelpViewer();
+ HelpViewer *viewer = currentHelpViewer();
if (viewer)
viewer->home();
}
bool CentralWidget::isForwardAvailable() const
{
- const HelpViewer* viewer = currentHelpViewer();
+ const HelpViewer *viewer = currentHelpViewer();
if (viewer)
return viewer->isForwardAvailable();
@@ -525,14 +543,14 @@ bool CentralWidget::isForwardAvailable() const
void CentralWidget::forward()
{
- HelpViewer* viewer = currentHelpViewer();
+ HelpViewer *viewer = currentHelpViewer();
if (viewer)
viewer->forward();
}
bool CentralWidget::isBackwardAvailable() const
{
- const HelpViewer* viewer = currentHelpViewer();
+ const HelpViewer *viewer = currentHelpViewer();
if (viewer)
return viewer->isBackwardAvailable();
@@ -541,7 +559,7 @@ bool CentralWidget::isBackwardAvailable() const
void CentralWidget::backward()
{
- HelpViewer* viewer = currentHelpViewer();
+ HelpViewer *viewer = currentHelpViewer();
if (viewer)
viewer->backward();
}
@@ -559,7 +577,7 @@ void CentralWidget::setGlobalActions(const QList<QAction*> &actions)
void CentralWidget::setSourceInNewTab(const QUrl &url, qreal zoom)
{
- HelpViewer* viewer;
+ HelpViewer *viewer;
#if defined(QT_NO_WEBKIT)
viewer = currentHelpViewer();
@@ -582,20 +600,20 @@ void CentralWidget::setSourceInNewTab(const QUrl &url, qreal zoom)
}
#if !defined(QT_NO_WEBKIT)
- QWebSettings* settings = QWebSettings::globalSettings();
+ QWebSettings *settings = QWebSettings::globalSettings();
if (!userFont) {
int fontSize = settings->fontSize(QWebSettings::DefaultFontSize);
QString fontFamily = settings->fontFamily(QWebSettings::StandardFont);
font = QFont(fontFamily, fontSize);
}
- QWebView* view = qobject_cast<QWebView*> (viewer);
+ QWebView *view = qobject_cast<QWebView*> (viewer);
if (view) {
settings = view->settings();
settings->setFontFamily(QWebSettings::StandardFont, font.family());
settings->setFontSize(QWebSettings::DefaultFontSize, font.pointSize());
} else if (viewer) {
- viewer->setFont(font);
+ viewer->setFont(font);
}
viewer->setTextSizeMultiplier(zoom == 0.0 ? 1.0 : zoom);
#else
@@ -609,7 +627,7 @@ void CentralWidget::setSourceInNewTab(const QUrl &url, qreal zoom)
HelpViewer *CentralWidget::newEmptyTab()
{
- HelpViewer* viewer = new HelpViewer(helpEngine, this);
+ HelpViewer *viewer = new HelpViewer(helpEngine, this);
viewer->installEventFilter(this);
viewer->setFocus(Qt::OtherFocusReason);
#if defined(QT_NO_WEBKIT)
@@ -628,15 +646,20 @@ void CentralWidget::findCurrentText(const QString &text)
void CentralWidget::connectSignals()
{
- const HelpViewer* viewer = currentHelpViewer();
+ const HelpViewer *viewer = currentHelpViewer();
if (viewer) {
- connect(viewer, SIGNAL(copyAvailable(bool)), this, SIGNAL(copyAvailable(bool)));
- connect(viewer, SIGNAL(forwardAvailable(bool)), this, SIGNAL(forwardAvailable(bool)));
- connect(viewer, SIGNAL(backwardAvailable(bool)), this, SIGNAL(backwardAvailable(bool)));
- connect(viewer, SIGNAL(sourceChanged(const QUrl&)), this, SIGNAL(sourceChanged(const QUrl&)));
- connect(viewer, SIGNAL(highlighted(const QString&)), this, SIGNAL(highlighted(const QString&)));
-
- connect(viewer, SIGNAL(sourceChanged(const QUrl&)), this, SLOT(setTabTitle(const QUrl&)));
+ connect(viewer, SIGNAL(copyAvailable(bool)), this,
+ SIGNAL(copyAvailable(bool)));
+ connect(viewer, SIGNAL(forwardAvailable(bool)), this,
+ SIGNAL(forwardAvailable(bool)));
+ connect(viewer, SIGNAL(backwardAvailable(bool)), this,
+ SIGNAL(backwardAvailable(bool)));
+ connect(viewer, SIGNAL(sourceChanged(QUrl)), this,
+ SIGNAL(sourceChanged(QUrl)));
+ connect(viewer, SIGNAL(highlighted(QString)), this,
+ SIGNAL(highlighted(QString)));
+ connect(viewer, SIGNAL(sourceChanged(QUrl)), this,
+ SLOT(setTabTitle(QUrl)));
}
}
@@ -658,85 +681,72 @@ void CentralWidget::activateTab(bool onlyHelpViewer)
}
}
-void CentralWidget::setTabTitle(const QUrl& url)
+void CentralWidget::setTabTitle(const QUrl &url)
{
- int tab = lastTabPage;
- HelpViewer* viewer = currentHelpViewer();
-
+ Q_UNUSED(url)
#if !defined(QT_NO_WEBKIT)
- if (!viewer || viewer->source() != url) {
- QTabBar *tabBar = qFindChild<QTabBar*>(tabWidget);
- for (tab = 0; tab < tabBar->count(); ++tab) {
- viewer = qobject_cast<HelpViewer*>(tabWidget->widget(tab));
- if (viewer && viewer->source() == url)
- break;
- }
+ QTabBar *tabBar = qFindChild<QTabBar*>(tabWidget);
+ for (int tab = 0; tab < tabBar->count(); ++tab) {
+ HelpViewer *viewer = qobject_cast<HelpViewer*>(tabWidget->widget(tab));
+ if (viewer)
+ tabWidget->setTabText(tab, viewer->documentTitle().trimmed());
}
#else
- Q_UNUSED(url)
-#endif
-
+ HelpViewer *viewer = currentHelpViewer();
if (viewer) {
- tabWidget->setTabText(tab,
+ tabWidget->setTabText(lastTabPage,
quoteTabTitle(viewer->documentTitle().trimmed()));
}
+#endif
}
void CentralWidget::currentPageChanged(int index)
{
const HelpViewer *viewer = currentHelpViewer();
-
- if (viewer || tabWidget->count() == 1)
+ if (viewer)
lastTabPage = index;
- bool enabled = false;
- if (viewer) {
- enabled = true;
- if (!m_searchWidget)
- enabled = tabWidget->count() > 1;
- }
+ QWidget *widget = tabWidget->cornerWidget(Qt::TopRightCorner);
+ widget->setEnabled(viewer && enableTabCloseAction());
- tabWidget->cornerWidget(Qt::TopRightCorner)->setEnabled(enabled);
- tabWidget->cornerWidget(Qt::TopLeftCorner)->setEnabled(m_searchWidget ? enabled : true);
+ widget = tabWidget->cornerWidget(Qt::TopLeftCorner);
+ widget->setEnabled(viewer ? true : false);
- emit currentViewerChanged();
+ emit currentViewerChanged();
}
void CentralWidget::showTabBarContextMenu(const QPoint &point)
{
- HelpViewer* viewer = helpViewerFromTabPosition(tabWidget, point);
+ HelpViewer *viewer = helpViewerFromTabPosition(tabWidget, point);
if (!viewer)
return;
QTabBar *tabBar = qFindChild<QTabBar*>(tabWidget);
QMenu menu(QLatin1String(""), tabBar);
- QAction *new_page = menu.addAction(tr("Add New Page"));
- QAction *close_page = menu.addAction(tr("Close This Page"));
- QAction *close_pages = menu.addAction(tr("Close Other Pages"));
- menu.addSeparator();
- QAction *newBookmark = menu.addAction(tr("Add Bookmark for this Page..."));
+ QAction *newPage = menu.addAction(tr("Add New Page"));
- if (tabBar->count() == 1) {
- close_page->setEnabled(false);
- close_pages->setEnabled(false);
- } else if (m_searchWidget && tabBar->count() == 2) {
- close_pages->setEnabled(false);
- }
+ bool enableAction = enableTabCloseAction();
+ QAction *closePage = menu.addAction(tr("Close This Page"));
+ closePage->setEnabled(enableAction);
- QAction *picked_action = menu.exec(tabBar->mapToGlobal(point));
- if (!picked_action)
- return;
+ QAction *closePages = menu.addAction(tr("Close Other Pages"));
+ closePages->setEnabled(enableAction);
+
+ menu.addSeparator();
- if (picked_action == new_page)
+ QAction *newBookmark = menu.addAction(tr("Add Bookmark for this Page..."));
+
+ QAction *pickedAction = menu.exec(tabBar->mapToGlobal(point));
+ if (pickedAction == newPage)
setSourceInNewTab(viewer->source());
- if (picked_action == close_page) {
+ if (pickedAction == closePage) {
tabWidget->removeTab(tabWidget->indexOf(viewer));
QTimer::singleShot(0, viewer, SLOT(deleteLater()));
}
- if (picked_action == close_pages) {
+ if (pickedAction == closePages) {
int currentPage = tabWidget->indexOf(viewer);
for (int i = tabBar->count() -1; i >= 0; --i) {
viewer = qobject_cast<HelpViewer*>(tabWidget->widget(i));
@@ -750,58 +760,68 @@ void CentralWidget::showTabBarContextMenu(const QPoint &point)
}
}
- if (picked_action == newBookmark)
+ if (pickedAction == newBookmark)
emit addNewBookmark(viewer->documentTitle(), viewer->source().toString());
}
bool CentralWidget::eventFilter(QObject *object, QEvent *e)
{
- if (currentHelpViewer() == object && e->type() == QEvent::KeyPress){
+ if (e->type() == QEvent::KeyPress) {
QKeyEvent *ke = static_cast<QKeyEvent*>(e);
- if (ke->key() == Qt::Key_Backspace) {
- HelpViewer *viewer = currentHelpViewer();
+ switch (ke->key()) {
+ default: {
+ return QWidget::eventFilter(object, e);
+ } break;
+
+ case Qt::Key_Escape: {
+ if (findWidget->editFind == object) {
+ findBar->hide();
+ if (HelpViewer *viewer = currentHelpViewer())
+ viewer->setFocus();
+ }
+ } break;
+
+ case Qt::Key_Backspace: {
+ HelpViewer *viewer = currentHelpViewer();
+ if (viewer == object) {
#if defined(QT_NO_WEBKIT)
- if (viewer && viewer->isBackwardAvailable()) {
+ if (viewer->isBackwardAvailable()) {
#else
- if (viewer && viewer->isBackwardAvailable() && !viewer->hasFocus()) {
+ if (viewer->isBackwardAvailable() && !viewer->hasFocus()) {
#endif
- viewer->backward();
- return true;
- }
+ viewer->backward();
+ return true;
+ }
+ }
+ } break;
}
}
- QTabBar *tabBar = qobject_cast<QTabBar*>(object);
- bool mousRel = e->type() == QEvent::MouseButtonRelease;
- bool dblClick = e->type() == QEvent::MouseButtonDblClick;
-
- if (tabBar && (mousRel || dblClick)) {
- QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(e);
- HelpViewer *viewer = helpViewerFromTabPosition(tabWidget, mouseEvent->pos());
- if (!m_searchWidget && tabWidget->count() <= 1)
- return QWidget::eventFilter(object, e);
-
- if (viewer && (mouseEvent->button() == Qt::MidButton || dblClick)) {
- tabWidget->removeTab(tabWidget->indexOf(viewer));
- QTimer::singleShot(0, viewer, SLOT(deleteLater()));
- currentPageChanged(tabWidget->currentIndex());
- return true;
- }
- } else if (object == findWidget->editFind && e->type() == QEvent::KeyPress) {
- QKeyEvent *ke = static_cast<QKeyEvent*>(e);
- if (ke->key() == Qt::Key_Escape) {
- findBar->hide();
- HelpViewer *hv = currentHelpViewer();
- if (hv)
- hv->setFocus();
+ if (QTabBar *tabBar = qobject_cast<QTabBar*>(object)) {
+ const bool dblClick = e->type() == QEvent::MouseButtonDblClick;
+ if ((e->type() == QEvent::MouseButtonRelease) || dblClick) {
+ QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(e);
+ HelpViewer *viewer = helpViewerFromTabPosition(tabWidget,
+ mouseEvent->pos());
+ if (viewer) {
+ if ((mouseEvent->button() == Qt::MidButton) || dblClick) {
+ if (availableHelpViewer() > 1) {
+ tabWidget->removeTab(tabWidget->indexOf(viewer));
+ QTimer::singleShot(0, viewer, SLOT(deleteLater()));
+ currentPageChanged(tabWidget->currentIndex());
+ return true;
+ }
+ }
+ }
}
}
+
return QWidget::eventFilter(object, e);
}
void CentralWidget::keyPressEvent(QKeyEvent *e)
{
- QString text = e->text();
+ const QString &text = e->text();
if (text.startsWith(QLatin1Char('/'))) {
if (!findBar->isVisible()) {
findBar->show();
@@ -821,7 +841,7 @@ void CentralWidget::find(QString ttf, bool forward, bool backward)
QTextDocument *doc = 0;
QTextBrowser *browser = 0;
- HelpViewer* viewer = currentHelpViewer();
+ HelpViewer *viewer = currentHelpViewer();
QPalette p = findWidget->editFind->palette();
p.setColor(QPalette::Active, QPalette::Base, Qt::white);
@@ -860,7 +880,7 @@ void CentralWidget::find(QString ttf, bool forward, bool backward)
}
if (tabWidget->currentWidget() == m_searchWidget) {
- QTextBrowser* browser = qFindChild<QTextBrowser*>(m_searchWidget);
+ QTextBrowser *browser = qFindChild<QTextBrowser*>(m_searchWidget);
if (browser) {
doc = browser->document();
cursor = browser->textCursor();
@@ -872,8 +892,10 @@ void CentralWidget::find(QString ttf, bool forward, bool backward)
QTextDocument::FindFlags options;
- if (cursor.hasSelection())
- cursor.setPosition(forward ? cursor.position() : cursor.anchor(), QTextCursor::MoveAnchor);
+ if (cursor.hasSelection()) {
+ cursor.setPosition(forward ? cursor.position() : cursor.anchor(),
+ QTextCursor::MoveAnchor);
+ }
QTextCursor newCursor = cursor;
@@ -915,15 +937,6 @@ void CentralWidget::find(QString ttf, bool forward, bool backward)
findWidget->editFind->setPalette(p);
}
-void CentralWidget::activateSearch()
-{
- if (tabWidget->widget(0) != m_searchWidget)
- createSearchWidget(helpEngine->searchEngine());
-
- tabWidget->setCurrentWidget(m_searchWidget);
- m_searchWidget->setFocus();
-}
-
void CentralWidget::updateBrowserFont()
{
QFont font = qApp->font();
@@ -934,7 +947,7 @@ void CentralWidget::updateBrowserFont()
}
#if !defined(QT_NO_WEBKIT)
- QWebSettings* settings = QWebSettings::globalSettings();
+ QWebSettings *settings = QWebSettings::globalSettings();
if (!userFont) {
int fontSize = settings->fontSize(QWebSettings::DefaultFontSize);
QString fontFamily = settings->fontFamily(QWebSettings::StandardFont);
@@ -942,11 +955,11 @@ void CentralWidget::updateBrowserFont()
}
#endif
- QWidget* widget = 0;
+ QWidget *widget = 0;
for (int i = 0; i < tabWidget->count(); ++i) {
widget = tabWidget->widget(i);
#if !defined(QT_NO_WEBKIT)
- QWebView* view = qobject_cast<QWebView*> (widget);
+ QWebView *view = qobject_cast<QWebView*> (widget);
if (view) {
settings = view->settings();
settings->setFontFamily(QWebSettings::StandardFont, font.family());
@@ -967,17 +980,47 @@ void CentralWidget::createSearchWidget(QHelpSearchEngine *searchEngine)
{
if (!m_searchWidget) {
m_searchWidget = new SearchWidget(searchEngine, this);
- connect(m_searchWidget, SIGNAL(requestShowLink(const QUrl&)), this,
- SLOT(setSourceFromSearch(const QUrl&)));
- connect(m_searchWidget, SIGNAL(requestShowLinkInNewTab(const QUrl&)), this,
- SLOT(setSourceFromSearchInNewTab(const QUrl&)));
+ connect(m_searchWidget, SIGNAL(requestShowLink(QUrl)), this,
+ SLOT(setSourceFromSearch(QUrl)));
+ connect(m_searchWidget, SIGNAL(requestShowLinkInNewTab(QUrl)), this,
+ SLOT(setSourceFromSearchInNewTab(QUrl)));
}
tabWidget->insertTab(0, m_searchWidget, tr("Search"));
+ m_searchWidget->setAttached(true);
+}
+
+void CentralWidget::activateSearchWidget()
+{
+ if (!m_searchWidget->isAttached())
+ createSearchWidget(helpEngine->searchEngine());
+
+ tabWidget->setCurrentWidget(m_searchWidget);
+ m_searchWidget->setFocus();
}
void CentralWidget::removeSearchWidget()
{
- tabWidget->removeTab(0);
+ if (m_searchWidget && m_searchWidget->isAttached()) {
+ tabWidget->removeTab(0);
+ m_searchWidget->setAttached(false);
+ }
+}
+
+int CentralWidget::availableHelpViewer() const
+{
+ int count = tabWidget->count();
+ if (m_searchWidget && m_searchWidget->isAttached())
+ count--;
+ return count;
+}
+
+bool CentralWidget::enableTabCloseAction() const
+{
+ int minTabCount = 1;
+ if (m_searchWidget && m_searchWidget->isAttached())
+ minTabCount = 2;
+
+ return (tabWidget->count() > minTabCount);
}
QString CentralWidget::quoteTabTitle(const QString &title) const
@@ -1008,7 +1051,7 @@ CentralWidget::highlightSearchTerms()
if (!viewer)
return;
- QHelpSearchEngine* searchEngine = helpEngine->searchEngine();
+ QHelpSearchEngine *searchEngine = helpEngine->searchEngine();
QList<QHelpSearchQuery> queryList = searchEngine->query();
QStringList terms;
diff --git a/tools/assistant/tools/assistant/centralwidget.h b/tools/assistant/tools/assistant/centralwidget.h
index 75bd8be..2c28091 100644
--- a/tools/assistant/tools/assistant/centralwidget.h
+++ b/tools/assistant/tools/assistant/centralwidget.h
@@ -83,6 +83,9 @@ private slots:
void updateButtons();
private:
+ QToolButton* setupToolButton(const QString &text, const QString &icon);
+
+private:
QLineEdit *editFind;
QCheckBox *checkCase;
QLabel *labelWrapped;
@@ -113,10 +116,14 @@ public:
void setGlobalActions(const QList<QAction*> &actions);
HelpViewer *currentHelpViewer() const;
void activateTab(bool onlyHelpViewer = false);
- void activateSearch();
+
void createSearchWidget(QHelpSearchEngine *searchEngine);
+ void activateSearchWidget();
void removeSearchWidget();
+ int availableHelpViewer() const;
+ bool enableTabCloseAction() const;
+
void closeTabAt(int index);
QMap<int, QString> currentSourceFileList() const;
@@ -167,7 +174,7 @@ private slots:
void setSourceFromSearchInNewTab(const QUrl &url);
private:
- void connectSignals();
+ void connectSignals();
bool eventFilter(QObject *object, QEvent *e);
void find(QString ttf, bool forward, bool backward);
void initPrinter();
@@ -180,13 +187,13 @@ private:
QList<QAction*> globalActionList;
QWidget *findBar;
- QTabWidget* tabWidget;
+ QTabWidget *tabWidget;
FindWidget *findWidget;
QHelpEngine *helpEngine;
QPrinter *printer;
bool usesDefaultCollection;
-
- SearchWidget* m_searchWidget;
+
+ SearchWidget *m_searchWidget;
};
QT_END_NAMESPACE
diff --git a/tools/assistant/tools/assistant/doc/HOWTO b/tools/assistant/tools/assistant/doc/HOWTO
index 0e5b67b..a014347 100644
--- a/tools/assistant/tools/assistant/doc/HOWTO
+++ b/tools/assistant/tools/assistant/doc/HOWTO
@@ -1,9 +1,8 @@
How to build/ update a new assistant.qch for Assistant internal help
-- in case of update:
+- update:
- open assistant.qdocconf, update year and qt version
-- all other cases:
- ..\..\..\..\qdoc3\debug\qdoc3.exe assistant.qdocconf
will generate an folder html containing all required stuff
@@ -12,6 +11,6 @@ How to build/ update a new assistant.qch for Assistant internal help
- rebuild assistant
-- to test you changes:
+- to test your changes:
- remove assistant.qch in your cache directory
- restart assistant
diff --git a/tools/assistant/tools/assistant/doc/assistant.qdocconf b/tools/assistant/tools/assistant/doc/assistant.qdocconf
index 50f18c0..aca97ed 100644
--- a/tools/assistant/tools/assistant/doc/assistant.qdocconf
+++ b/tools/assistant/tools/assistant/doc/assistant.qdocconf
@@ -10,8 +10,7 @@ description = "Qt Assistant"
HTML.{postheader,address} = ""
HTML.footer = "<p /><address><hr /><div align=\"center\">\n" \
"<table width=\"100%\" cellspacing=\"0\" border=\"0\"><tr class=\"address\">\n" \
- "<td width=\"30%\" align=\"left\">Copyright &copy; 2008 Nokia Corporation " \
- "and/or its subsidiary(-ies)</td>\n" \
+ "<td width=\"30%\" align=\"left\">Copyright &copy; 2009 Nokia Corporation and/or its subsidiary(-ies)</td>\n" \
"<td width=\"40%\" align=\"center\">Trademarks</td>\n" \
- "<td width=\"30%\" align=\"right\"><div align=\"right\">Qt 4.5.0</div></td>\n" \
+ "<td width=\"30%\" align=\"right\"><div align=\"right\">Qt 4.5.2</div></td>\n" \
"</tr></table></div></address>"
diff --git a/tools/assistant/tools/assistant/helpviewer.cpp b/tools/assistant/tools/assistant/helpviewer.cpp
index f7225fa..5726136 100644
--- a/tools/assistant/tools/assistant/helpviewer.cpp
+++ b/tools/assistant/tools/assistant/helpviewer.cpp
@@ -269,7 +269,10 @@ bool HelpPage::acceptNavigationRequest(QWebFrame *,
}
HelpViewer::HelpViewer(QHelpEngine *engine, CentralWidget *parent)
- : QWebView(parent), helpEngine(engine), parentWidget(parent)
+ : QWebView(parent)
+ , helpEngine(engine)
+ , parentWidget(parent)
+ , loadFinished(false)
{
setAcceptDrops(false);
@@ -295,10 +298,12 @@ HelpViewer::HelpViewer(QHelpEngine *engine, CentralWidget *parent)
connect(page(), SIGNAL(linkHovered(QString, QString, QString)), this,
SIGNAL(highlighted(QString)));
connect(this, SIGNAL(urlChanged(QUrl)), this, SIGNAL(sourceChanged(QUrl)));
+ connect(this, SIGNAL(loadFinished(bool)), this, SLOT(setLoadFinished(bool)));
}
void HelpViewer::setSource(const QUrl &url)
{
+ loadFinished = false;
if (url.toString() == QLatin1String("help")) {
load(QUrl(QLatin1String("qthelp://com.trolltech.com."
"assistantinternal_1.0.0/assistant/assistant.html")));
@@ -385,6 +390,12 @@ void HelpViewer::mousePressEvent(QMouseEvent *event)
QWebView::mousePressEvent(event);
}
+void HelpViewer::setLoadFinished(bool ok)
+{
+ loadFinished = ok;
+ emit sourceChanged(url());
+}
+
#else // !defined(QT_NO_WEBKIT)
HelpViewer::HelpViewer(QHelpEngine *engine, CentralWidget *parent)
diff --git a/tools/assistant/tools/assistant/helpviewer.h b/tools/assistant/tools/assistant/helpviewer.h
index eea7340..37545c7 100644
--- a/tools/assistant/tools/assistant/helpviewer.h
+++ b/tools/assistant/tools/assistant/helpviewer.h
@@ -92,6 +92,10 @@ public:
{ return pageAction(QWebPage::Forward)->isEnabled(); }
inline bool isBackwardAvailable() const
{ return pageAction(QWebPage::Back)->isEnabled(); }
+ inline bool hasLoadFinished() const
+ { return loadFinished; }
+ inline qreal zoom() const
+ { return textSizeMultiplier(); }
public Q_SLOTS:
void home();
@@ -111,10 +115,12 @@ protected:
private Q_SLOTS:
void actionChanged();
+ void setLoadFinished(bool ok);
private:
QHelpEngine *helpEngine;
CentralWidget* parentWidget;
+ bool loadFinished;
};
#else
diff --git a/tools/assistant/tools/assistant/indexwindow.cpp b/tools/assistant/tools/assistant/indexwindow.cpp
index 0beb5ee..a2c0950 100644
--- a/tools/assistant/tools/assistant/indexwindow.cpp
+++ b/tools/assistant/tools/assistant/indexwindow.cpp
@@ -197,6 +197,8 @@ void IndexWindow::open(QHelpIndexWidget* indexWidget, const QModelIndex &index)
url = tc.link();
} else if (links.count() == 1) {
url = links.constBegin().value();
+ } else {
+ return;
}
if (url.path().endsWith(QLatin1String(".pdf"), Qt::CaseInsensitive))
diff --git a/tools/assistant/tools/assistant/mainwindow.cpp b/tools/assistant/tools/assistant/mainwindow.cpp
index df39650..426a828 100644
--- a/tools/assistant/tools/assistant/mainwindow.cpp
+++ b/tools/assistant/tools/assistant/mainwindow.cpp
@@ -86,9 +86,9 @@ QT_BEGIN_NAMESPACE
MainWindow::MainWindow(CmdLineParser *cmdLine, QWidget *parent)
: QMainWindow(parent)
+ , m_filterCombo(0)
, m_toolBarMenu(0)
, m_cmdLine(cmdLine)
- , m_searchWidget(0)
, m_progressWidget(0)
, m_qtDocInstaller(0)
, m_connectedInitSignals(false)
@@ -125,20 +125,7 @@ MainWindow::MainWindow(CmdLineParser *cmdLine, QWidget *parent)
connect(searchEngine, SIGNAL(indexingStarted()), this, SLOT(indexingStarted()));
connect(searchEngine, SIGNAL(indexingFinished()), this, SLOT(indexingFinished()));
-#ifdef QT_CLUCENE_SUPPORT
m_centralWidget->createSearchWidget(searchEngine);
-#else
- QDockWidget *dock = new QDockWidget(tr("Search"), this);
- dock->setObjectName(QLatin1String("SearchWindow"));
- m_searchWidget = new SearchWidget(searchEngine, this);
- dock->setWidget(m_searchWidget);
- addDockWidget(Qt::LeftDockWidgetArea, dock);
-
- connect(m_searchWidget, SIGNAL(requestShowLink(const QUrl&)),
- m_centralWidget, SLOT(setSource(const QUrl&)));
- connect(m_searchWidget, SIGNAL(requestShowLinkInNewTab(const QUrl&)),
- m_centralWidget, SLOT(setSourceInNewTab(const QUrl&)));
-#endif
QString defWindowTitle = tr("Qt Assistant");
setWindowTitle(defWindowTitle);
@@ -228,6 +215,20 @@ MainWindow::MainWindow(CmdLineParser *cmdLine, QWidget *parent)
else if (m_cmdLine->bookmarks() == CmdLineParser::Activate)
showBookmarks();
+ if (!m_cmdLine->currentFilter().isEmpty()) {
+ const QString &curFilter = m_cmdLine->currentFilter();
+ m_helpEngine->setCurrentFilter(curFilter);
+ if (m_filterCombo) {
+ int idx = m_filterCombo->findText(curFilter);
+ if (idx >= 0) {
+ bool blocked = m_filterCombo->signalsBlocked();
+ m_filterCombo->blockSignals(true);
+ m_filterCombo->setCurrentIndex(idx);
+ m_filterCombo->blockSignals(blocked);
+ }
+ }
+ }
+
if (usesDefaultCollection())
QTimer::singleShot(0, this, SLOT(lookForNewQtDocumentation()));
else
@@ -304,6 +305,7 @@ bool MainWindow::initHelpDB()
hc.addCustomFilter(tr("Unfiltered"), QStringList());
hc.setCustomValue(unfiltered, 1);
}
+
m_helpEngine->blockSignals(true);
m_helpEngine->setCurrentFilter(tr("Unfiltered"));
m_helpEngine->blockSignals(false);
@@ -318,10 +320,10 @@ bool MainWindow::initHelpDB()
void MainWindow::lookForNewQtDocumentation()
{
m_qtDocInstaller = new QtDocInstaller(m_helpEngine->collectionFile());
- connect(m_qtDocInstaller, SIGNAL(errorMessage(const QString&)),
- this, SLOT(displayInstallationError(const QString&)));
- connect(m_qtDocInstaller, SIGNAL(docsInstalled(bool)),
- this, SLOT(qtDocumentationInstalled(bool)));
+ connect(m_qtDocInstaller, SIGNAL(errorMessage(QString)), this,
+ SLOT(displayInstallationError(QString)));
+ connect(m_qtDocInstaller, SIGNAL(docsInstalled(bool)), this,
+ SLOT(qtDocumentationInstalled(bool)));
QString versionKey = QString(QLatin1String("qtVersion%1$$$qt")).
arg(QLatin1String(QT_VERSION_STR));
@@ -353,8 +355,8 @@ void MainWindow::checkInitState()
if (!m_connectedInitSignals) {
connect(m_helpEngine->contentModel(), SIGNAL(contentsCreated()),
this, SLOT(checkInitState()));
- connect(m_helpEngine->indexModel(), SIGNAL(indexCreated()),
- this, SLOT(checkInitState()));
+ connect(m_helpEngine->indexModel(), SIGNAL(indexCreated()), this,
+ SLOT(checkInitState()));
m_connectedInitSignals = true;
}
} else {
@@ -533,6 +535,8 @@ void MainWindow::setupActions()
SLOT(copyAvailable(bool)));
connect(m_centralWidget, SIGNAL(currentViewerChanged()), this,
SLOT(updateNavigationItems()));
+ connect(m_centralWidget, SIGNAL(currentViewerChanged()), this,
+ SLOT(updateTabCloseAction()));
connect(m_centralWidget, SIGNAL(forwardAvailable(bool)), this,
SLOT(updateNavigationItems()));
connect(m_centralWidget, SIGNAL(backwardAvailable(bool)), this,
@@ -601,8 +605,8 @@ void MainWindow::setupFilterToolbar()
connect(m_helpEngine, SIGNAL(setupFinished()), this,
SLOT(setupFilterCombo()));
- connect(m_filterCombo, SIGNAL(activated(const QString&)), this,
- SLOT(filterDocumentation(const QString&)));
+ connect(m_filterCombo, SIGNAL(activated(QString)), this,
+ SLOT(filterDocumentation(QString)));
setupFilterCombo();
}
@@ -626,12 +630,12 @@ void MainWindow::setupAddressToolbar()
toolBarMenu()->addAction(addressToolBar->toggleViewAction());
// address lineedit
- connect(m_addressLineEdit, SIGNAL(returnPressed()),
- this, SLOT(gotoAddress()));
- connect(m_centralWidget, SIGNAL(currentViewerChanged()),
- this, SLOT(showNewAddress()));
- connect(m_centralWidget, SIGNAL(sourceChanged(const QUrl&)),
- this, SLOT(showNewAddress(const QUrl&)));
+ connect(m_addressLineEdit, SIGNAL(returnPressed()), this,
+ SLOT(gotoAddress()));
+ connect(m_centralWidget, SIGNAL(currentViewerChanged()), this,
+ SLOT(showNewAddress()));
+ connect(m_centralWidget, SIGNAL(sourceChanged(QUrl)), this,
+ SLOT(showNewAddress(QUrl)));
}
void MainWindow::updateAboutMenuText()
@@ -695,10 +699,14 @@ void MainWindow::updateNavigationItems()
m_printAction->setEnabled(hasCurrentViewer);
m_nextAction->setEnabled(m_centralWidget->isForwardAvailable());
m_backAction->setEnabled(m_centralWidget->isBackwardAvailable());
- m_closeTabAction->setEnabled(hasCurrentViewer);
m_newTabAction->setEnabled(hasCurrentViewer);
}
+void MainWindow::updateTabCloseAction()
+{
+ m_closeTabAction->setEnabled(m_centralWidget->enableTabCloseAction());
+}
+
void MainWindow::showTopicChooser(const QMap<QString, QUrl> &links,
const QString &keyword)
{
@@ -712,10 +720,10 @@ void MainWindow::showPreferences()
{
PreferencesDialog dia(m_helpEngine, this);
- connect(&dia, SIGNAL(updateApplicationFont()),
- this, SLOT(updateApplicationFont()));
- connect(&dia, SIGNAL(updateBrowserFont()),
- m_centralWidget, SLOT(updateBrowserFont()));
+ connect(&dia, SIGNAL(updateApplicationFont()), this,
+ SLOT(updateApplicationFont()));
+ connect(&dia, SIGNAL(updateBrowserFont()), m_centralWidget,
+ SLOT(updateBrowserFont()));
dia.showDialog();
}
@@ -787,26 +795,11 @@ void MainWindow::showAboutDialog()
aboutDia.setPixmap(pix);
aboutDia.setWindowTitle(aboutDia.documentTitle());
} else {
-#if QT_EDITION == QT_EDITION_OPENSOURCE
- QString edition = tr("Open Source Edition");
- QString info = tr("This version of Qt Assistant is part of the Qt Open "
- "Source Edition, for use "
- "in the development of Open Source applications. "
- "Qt is a comprehensive C++ framework for cross-platform application "
- "development.");
- QString moreInfo = tr("You need a commercial Qt license for development "
- "of proprietary (closed source) applications. Please see "
- "<a href=\"http://qtsoftware.com/company/about/businessmodel"
- "\">http://qtsoftware.com/company/about/businessmodel</a> for an "
- "overview of Qt licensing.");
-#else
+ // TODO: Remove these variables for 4.6.0. Must keep this way for 4.5.x due to string freeze.
QString edition;
QString info;
- QString moreInfo(tr("This program is licensed to you under the terms of the "
- "Qt Commercial License Agreement. For details, see the file LICENSE "
- "that came with this software distribution."));
+ QString moreInfo;
-#endif
QByteArray resources;
aboutDia.setText(QString::fromLatin1("<center>"
"<h3>%1</h3>"
@@ -884,19 +877,12 @@ void MainWindow::activateCurrentCentralWidgetTab()
void MainWindow::showSearch()
{
- if (m_searchWidget)
- activateDockWidget(m_searchWidget);
- else
- m_centralWidget->activateSearch();
+ m_centralWidget->activateSearchWidget();
}
void MainWindow::hideSearch()
{
- if (m_searchWidget) {
- m_searchWidget->parentWidget()->parentWidget()->hide();
- } else {
- m_centralWidget->removeSearchWidget();
- }
+ m_centralWidget->removeSearchWidget();
}
void MainWindow::updateApplicationFont()
@@ -965,8 +951,7 @@ QWidget* MainWindow::setupBookmarkWidget()
{
m_bookmarkManager = new BookmarkManager(m_helpEngine);
m_bookmarkWidget = new BookmarkWidget(m_bookmarkManager, this);
- connect(m_bookmarkWidget, SIGNAL(addBookmark()),
- this, SLOT(addBookmark()));
+ connect(m_bookmarkWidget, SIGNAL(addBookmark()), this, SLOT(addBookmark()));
return m_bookmarkWidget;
}
diff --git a/tools/assistant/tools/assistant/mainwindow.h b/tools/assistant/tools/assistant/mainwindow.h
index c716b1c..7d08a74 100644
--- a/tools/assistant/tools/assistant/mainwindow.h
+++ b/tools/assistant/tools/assistant/mainwindow.h
@@ -62,8 +62,6 @@ class BookmarkWidget;
class CmdLineParser;
class QtDocInstaller;
-class SearchWidget;
-
class MainWindow : public QMainWindow
{
Q_OBJECT
@@ -106,6 +104,7 @@ private slots:
void showAboutDialog();
void copyAvailable(bool yes);
void updateNavigationItems();
+ void updateTabCloseAction();
void showNewAddress(const QUrl &url);
void addNewBookmark(const QString &title, const QString &url);
void showTopicChooser(const QMap<QString, QUrl> &links, const QString &keyword);
@@ -159,7 +158,6 @@ private:
QMenu *m_toolBarMenu;
CmdLineParser *m_cmdLine;
- SearchWidget *m_searchWidget;
QWidget *m_progressWidget;
QtDocInstaller *m_qtDocInstaller;
diff --git a/tools/assistant/tools/assistant/searchwidget.cpp b/tools/assistant/tools/assistant/searchwidget.cpp
index 000c73d..c40a9c4 100644
--- a/tools/assistant/tools/assistant/searchwidget.cpp
+++ b/tools/assistant/tools/assistant/searchwidget.cpp
@@ -62,6 +62,7 @@ QT_BEGIN_NAMESPACE
SearchWidget::SearchWidget(QHelpSearchEngine *engine, QWidget *parent)
: QWidget(parent)
, zoomCount(0)
+ , attached(false)
, searchEngine(engine)
{
QVBoxLayout *vLayout = new QVBoxLayout(this);
@@ -70,16 +71,18 @@ SearchWidget::SearchWidget(QHelpSearchEngine *engine, QWidget *parent)
QHelpSearchQueryWidget *queryWidget = searchEngine->queryWidget();
vLayout->addWidget(queryWidget);
- vLayout->addWidget(resultWidget);
-
+ vLayout->addWidget(resultWidget);
+
setFocusProxy(queryWidget);
connect(queryWidget, SIGNAL(search()), this, SLOT(search()));
- connect(resultWidget, SIGNAL(requestShowLink(const QUrl&)),
- this, SIGNAL(requestShowLink(const QUrl&)));
+ connect(resultWidget, SIGNAL(requestShowLink(QUrl)), this,
+ SIGNAL(requestShowLink(QUrl)));
- connect(searchEngine, SIGNAL(searchingStarted()), this, SLOT(searchingStarted()));
- connect(searchEngine, SIGNAL(searchingFinished(int)), this, SLOT(searchingFinished(int)));
+ connect(searchEngine, SIGNAL(searchingStarted()), this,
+ SLOT(searchingStarted()));
+ connect(searchEngine, SIGNAL(searchingFinished(int)), this,
+ SLOT(searchingFinished(int)));
QTextBrowser* browser = qFindChild<QTextBrowser*>(resultWidget);
browser->viewport()->installEventFilter(this);
@@ -92,10 +95,6 @@ SearchWidget::~SearchWidget()
void SearchWidget::zoomIn()
{
-#ifndef QT_CLUCENE_SUPPORT
- return;
-#endif
-
QTextBrowser* browser = qFindChild<QTextBrowser*>(resultWidget);
if (browser && zoomCount != 10) {
zoomCount++;
@@ -105,10 +104,6 @@ void SearchWidget::zoomIn()
void SearchWidget::zoomOut()
{
-#ifndef QT_CLUCENE_SUPPORT
- return;
-#endif
-
QTextBrowser* browser = qFindChild<QTextBrowser*>(resultWidget);
if (browser && zoomCount != -5) {
zoomCount--;
@@ -118,10 +113,6 @@ void SearchWidget::zoomOut()
void SearchWidget::resetZoom()
{
-#ifndef QT_CLUCENE_SUPPORT
- return;
-#endif
-
if (zoomCount == 0)
return;
@@ -132,6 +123,16 @@ void SearchWidget::resetZoom()
}
}
+bool SearchWidget::isAttached() const
+{
+ return attached;
+}
+
+void SearchWidget::setAttached(bool state)
+{
+ attached = state;
+}
+
void SearchWidget::search() const
{
QList<QHelpSearchQuery> query = searchEngine->queryWidget()->query();
@@ -152,7 +153,8 @@ void SearchWidget::searchingFinished(int hits)
bool SearchWidget::eventFilter(QObject* o, QEvent *e)
{
QTextBrowser* browser = qFindChild<QTextBrowser*>(resultWidget);
- if (browser && o == browser->viewport() && e->type() == QEvent::MouseButtonRelease){
+ if (browser && o == browser->viewport()
+ && e->type() == QEvent::MouseButtonRelease){
QMouseEvent *me = static_cast<QMouseEvent*>(e);
QUrl link = resultWidget->linkAt(me->pos());
if (!link.isEmpty() || link.isValid()) {
@@ -179,7 +181,6 @@ void SearchWidget::contextMenuEvent(QContextMenuEvent *contextMenuEvent)
QMenu menu;
QPoint point = contextMenuEvent->globalPos();
-#ifdef QT_CLUCENE_SUPPORT
QTextBrowser* browser = qFindChild<QTextBrowser*>(resultWidget);
if (!browser)
return;
@@ -190,22 +191,25 @@ void SearchWidget::contextMenuEvent(QContextMenuEvent *contextMenuEvent)
QUrl link = browser->anchorAt(point);
- QAction *copyAction = menu.addAction(tr("&Copy") +
- QString(QLatin1String("\t") + QString(QKeySequence(Qt::CTRL | Qt::Key_C))));
+ QKeySequence keySeq(QKeySequence::Copy);
+ QAction *copyAction = menu.addAction(tr("&Copy") + QLatin1String("\t") +
+ keySeq.toString(QKeySequence::NativeText));
copyAction->setEnabled(QTextCursor(browser->textCursor()).hasSelection());
QAction *copyAnchorAction = menu.addAction(tr("Copy &Link Location"));
copyAnchorAction->setEnabled(!link.isEmpty() && link.isValid());
- QAction *newTabAction = menu.addAction(tr("Open Link in New Tab") +
- QString(QLatin1String("\t") + QString(QKeySequence(Qt::CTRL))) +
+ keySeq = QKeySequence(Qt::CTRL);
+ QAction *newTabAction = menu.addAction(tr("Open Link in New Tab") +
+ QLatin1String("\t") + keySeq.toString(QKeySequence::NativeText) +
QLatin1String("LMB"));
newTabAction->setEnabled(!link.isEmpty() && link.isValid());
menu.addSeparator();
- QAction *selectAllAction = menu.addAction(tr("Select All") +
- QString(QLatin1String("\t") + QString(QKeySequence(Qt::CTRL | Qt::Key_A))));
+ keySeq = QKeySequence::SelectAll;
+ QAction *selectAllAction = menu.addAction(tr("Select All") +
+ QLatin1String("\t") + keySeq.toString(QKeySequence::NativeText));
QAction *usedAction = menu.exec(mapToGlobal(contextMenuEvent->pos()));
if (usedAction == copyAction) {
@@ -222,25 +226,10 @@ void SearchWidget::contextMenuEvent(QContextMenuEvent *contextMenuEvent)
}
else if (usedAction == newTabAction) {
emit requestShowLinkInNewTab(link);
- }
+ }
else if (usedAction == selectAllAction) {
browser->selectAll();
}
-#else
- point = resultWidget->mapFromGlobal(point);
- QUrl link = resultWidget->linkAt(point);
- if (link.isEmpty() || !link.isValid())
- return;
-
- QAction *curTab = menu.addAction(tr("Open Link"));
- QAction *newTab = menu.addAction(tr("Open Link in New Tab"));
-
- QAction *action = menu.exec(mapToGlobal(contextMenuEvent->pos()));
- if (curTab == action)
- emit requestShowLink(link);
- else if (newTab == action)
- emit requestShowLinkInNewTab(link);
-#endif
}
QT_END_NAMESPACE
diff --git a/tools/assistant/tools/assistant/searchwidget.h b/tools/assistant/tools/assistant/searchwidget.h
index 22fe80d..34eb86f 100644
--- a/tools/assistant/tools/assistant/searchwidget.h
+++ b/tools/assistant/tools/assistant/searchwidget.h
@@ -65,6 +65,9 @@ public:
void zoomOut();
void resetZoom();
+ bool isAttached() const;
+ void setAttached(bool state);
+
signals:
void requestShowLink(const QUrl &url);
void requestShowLinkInNewTab(const QUrl &url);
@@ -81,6 +84,7 @@ private:
private:
int zoomCount;
+ bool attached;
QHelpSearchEngine *searchEngine;
QHelpSearchResultWidget *resultWidget;
};
diff --git a/tools/assistant/translations/qt_help.pro b/tools/assistant/translations/qt_help.pro
index 1684ac5..efad6bf 100644
--- a/tools/assistant/translations/qt_help.pro
+++ b/tools/assistant/translations/qt_help.pro
@@ -43,7 +43,6 @@ TRANSLATIONS=$$[QT_INSTALL_TRANSLATIONS]/qt_help_de.ts \
$$[QT_INSTALL_TRANSLATIONS]/qt_help_ja.ts \
$$[QT_INSTALL_TRANSLATIONS]/qt_help_pl.ts \
$$[QT_INSTALL_TRANSLATIONS]/qt_help_untranslated.ts \
- $$[QT_INSTALL_TRANSLATIONS]/qt_help_tr_TR.ts \
$$[QT_INSTALL_TRANSLATIONS]/qt_help_zh_CN.ts \
$$[QT_INSTALL_TRANSLATIONS]/qt_help_zh_TW.ts
error("This is a dummy profile to be used for translations ONLY.")
diff --git a/tools/assistant/translations/translations.pro b/tools/assistant/translations/translations.pro
index 84bde8c..58de554 100644
--- a/tools/assistant/translations/translations.pro
+++ b/tools/assistant/translations/translations.pro
@@ -44,6 +44,5 @@ TRANSLATIONS=$$[QT_INSTALL_TRANSLATIONS]/assistant_de.ts \
$$[QT_INSTALL_TRANSLATIONS]/assistant_ja.ts \
$$[QT_INSTALL_TRANSLATIONS]/assistant_pl.ts \
$$[QT_INSTALL_TRANSLATIONS]/assistant_untranslated.ts \
- $$[QT_INSTALL_TRANSLATIONS]/assistant_tr_TR.ts \
$$[QT_INSTALL_TRANSLATIONS]/assistant_zh_CN.ts \
$$[QT_INSTALL_TRANSLATIONS]/assistant_zh_TW.ts
diff --git a/tools/assistant/translations/translations_adp.pro b/tools/assistant/translations/translations_adp.pro
index f6ab62e..e3edca4 100644
--- a/tools/assistant/translations/translations_adp.pro
+++ b/tools/assistant/translations/translations_adp.pro
@@ -35,7 +35,6 @@ TRANSLATIONS=$$[QT_INSTALL_TRANSLATIONS]/assistant_adp_de.ts \
$$[QT_INSTALL_TRANSLATIONS]/assistant_adp_ja.ts \
$$[QT_INSTALL_TRANSLATIONS]/assistant_adp_pl.ts \
$$[QT_INSTALL_TRANSLATIONS]/assistant_adp_untranslated.ts \
- $$[QT_INSTALL_TRANSLATIONS]/assistant_adp_tr_TR.ts \
$$[QT_INSTALL_TRANSLATIONS]/assistant_adp_zh_CN.ts \
$$[QT_INSTALL_TRANSLATIONS]/assistant_adp_zh_TW.ts
error("This is a dummy profile to be used for translations ONLY.")
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 8c0dc39..b0e7b53 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -314,7 +314,6 @@ Configure::Configure( int& argc, char** argv )
dictionary[ "QT3SUPPORT" ] = "yes";
dictionary[ "ACCESSIBILITY" ] = "yes";
dictionary[ "OPENGL" ] = "yes";
- dictionary[ "DIRECT3D" ] = "auto";
dictionary[ "IPV6" ] = "yes"; // Always, dynamicly loaded
dictionary[ "OPENSSL" ] = "auto";
dictionary[ "DBUS" ] = "auto";
@@ -474,6 +473,9 @@ void Configure::parseCmdLine()
else if( configCmdLine.at(i) == "-developer-build" )
dictionary[ "BUILDDEV" ] = "yes";
else if( configCmdLine.at(i) == "-nokia-developer" ) {
+ cout << "Detected -nokia-developer option" << endl;
+ cout << "Nokia employees and agents are allowed to use this software under" << endl;
+ cout << "the authority of Nokia Corporation and/or its subsidiary(-ies)" << endl;
dictionary[ "BUILDNOKIA" ] = "yes";
dictionary[ "BUILDDEV" ] = "yes";
dictionary["LICENSE_CONFIRMED"] = "yes";
@@ -675,6 +677,9 @@ void Configure::parseCmdLine()
} else if ( configCmdLine.at(i) == "-opengl-es-cl" ) {
dictionary[ "OPENGL" ] = "yes";
dictionary[ "OPENGL_ES_CL" ] = "yes";
+ } else if ( configCmdLine.at(i) == "-opengl-es-2" ) {
+ dictionary[ "OPENGL" ] = "yes";
+ dictionary[ "OPENGL_ES_2" ] = "yes";
}
// Databases ------------------------------------------------
else if( configCmdLine.at(i) == "-qt-sql-mysql" )
@@ -811,11 +816,7 @@ void Configure::parseCmdLine()
else if (configCmdLine.at(i) == "-iwmmxt")
dictionary[ "IWMMXT" ] = "yes";
- else if (configCmdLine.at(i) == "-no-direct3d") {
- dictionary["DIRECT3D"] = "no";
- }else if (configCmdLine.at(i) == "-direct3d") {
- dictionary["DIRECT3D"] = "auto"; // have to pass auto detection to enable Direct3D
- } else if( configCmdLine.at(i) == "-no-openssl" ) {
+ else if( configCmdLine.at(i) == "-no-openssl" ) {
dictionary[ "OPENSSL"] = "no";
} else if( configCmdLine.at(i) == "-openssl" ) {
dictionary[ "OPENSSL" ] = "yes";
@@ -1309,7 +1310,6 @@ void Configure::applySpecSpecifics()
dictionary[ "MMX" ] = "no";
dictionary[ "IWMMXT" ] = "no";
dictionary[ "CE_CRT" ] = "yes";
- dictionary[ "DIRECT3D" ] = "no";
dictionary[ "WEBKIT" ] = "no";
dictionary[ "PHONON" ] = "yes";
dictionary[ "DIRECTSHOW" ] = "no";
@@ -1408,7 +1408,7 @@ bool Configure::displayHelp()
"[-system-libtiff] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg]\n"
"[-no-libmng] [-qt-libmng] [-system-libmng] [-no-qt3support] [-mmx]\n"
"[-no-mmx] [-3dnow] [-no-3dnow] [-sse] [-no-sse] [-sse2] [-no-sse2]\n"
- "[-no-iwmmxt] [-iwmmxt] [-direct3d] [-openssl] [-openssl-linked]\n"
+ "[-no-iwmmxt] [-iwmmxt] [-openssl] [-openssl-linked]\n"
"[-no-openssl] [-no-dbus] [-dbus] [-dbus-linked] [-platform <spec>]\n"
"[-qtnamespace <namespace>] [-no-phonon] [-phonon]\n"
"[-no-phonon-backend] [-phonon-backend]\n"
@@ -1572,7 +1572,6 @@ bool Configure::displayHelp()
desc("SSE", "yes", "-sse", "Compile with use of SSE instructions");
desc("SSE2", "no", "-no-sse2", "Do not compile with use of SSE2 instructions");
desc("SSE2", "yes", "-sse2", "Compile with use of SSE2 instructions");
- desc("DIRECT3D", "yes", "-direct3d", "Compile in Direct3D support (experimental - see INSTALL for more info)");
desc("OPENSSL", "no", "-no-openssl", "Do not compile in OpenSSL support");
desc("OPENSSL", "yes", "-openssl", "Compile in run-time OpenSSL support");
desc("OPENSSL", "linked","-openssl-linked", "Compile in linked OpenSSL support");
@@ -1632,6 +1631,7 @@ bool Configure::displayHelp()
desc( "-signature <file>", "Use file for signing the target project");
desc("OPENGL_ES_CM", "no", "-opengl-es-cm", "Enable support for OpenGL ES Common");
desc("OPENGL_ES_CL", "no", "-opengl-es-cl", "Enable support for OpenGL ES Common Lite");
+ desc("OPENGL_ES_2", "no", "-opengl-es-2", "Enable support for OpenGL ES 2.0");
desc("DIRECTSHOW", "no", "-phonon-wince-ds9", "Enable Phonon Direct Show 9 backend for Windows CE");
return true;
@@ -1785,6 +1785,8 @@ bool Configure::checkAvailability(const QString &part)
available = (dictionary[ "ARCHITECTURE" ] == "windowsce");
else if (part == "OPENGL_ES_CL")
available = (dictionary[ "ARCHITECTURE" ] == "windowsce");
+ else if (part == "OPENGL_ES_2")
+ available = (dictionary[ "ARCHITECTURE" ] == "windowsce");
else if (part == "DIRECTSHOW")
available = (dictionary[ "ARCHITECTURE" ] == "windowsce");
else if (part == "SSE2")
@@ -1815,47 +1817,6 @@ bool Configure::checkAvailability(const QString &part)
&& 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";
- } else if (part == "DIRECT3D") {
- QString sdk_dir(QString::fromLocal8Bit(getenv("DXSDK_DIR")));
- QDir dir;
- bool has_d3d = false;
-
- if (!sdk_dir.isEmpty() && dir.exists(sdk_dir))
- has_d3d = true;
-
- if (has_d3d && !QFile::exists(sdk_dir + QLatin1String("\\include\\d3d9.h"))) {
- cout << "No Direct3D version 9 SDK found." << endl;
- has_d3d = false;
- }
-
- // find the first dxguid.lib in the current LIB paths, if it is NOT
- // the D3D SDK one, we're most likely in trouble..
- if (has_d3d) {
- has_d3d = false;
- QString env_lib(QString::fromLocal8Bit(getenv("LIB")));
- QStringList lib_paths = env_lib.split(';');
- for (int i=0; i<lib_paths.size(); ++i) {
- QString lib_path = lib_paths.at(i);
- if (QFile::exists(lib_path + QLatin1String("\\dxguid.lib")))
- {
- if (lib_path.startsWith(sdk_dir)) {
- has_d3d = true;
- } else {
- cout << "Your D3D/Platform SDK library paths seem to appear in the wrong order." << endl;
- }
- break;
- }
- }
- }
-
- available = has_d3d;
- if (!has_d3d) {
- cout << "Setting Direct3D to NO, since the proper Direct3D SDK was not detected." << endl
- << "Make sure you have the Direct3D SDK installed, and that you have run" << endl
- << "the <path to SDK>\\Utilities\\Bin\\dx_setenv.cmd script." << endl
- << "The D3D SDK library path *needs* to appear before the Platform SDK library" << endl
- << "path in your LIB environment variable." << endl;
- }
} else if (part == "PHONON") {
available = findFile("vmr9.h") && findFile("dshow.h") && findFile("strmiids.lib") &&
findFile("dmoguids.lib") && findFile("msdmo.lib") && findFile("d3d9.h");
@@ -1949,8 +1910,6 @@ void Configure::autoDetection()
dictionary["SCRIPTTOOLS"] = checkAvailability("SCRIPTTOOLS") ? "yes" : "no";
if (dictionary["XMLPATTERNS"] == "auto")
dictionary["XMLPATTERNS"] = checkAvailability("XMLPATTERNS") ? "yes" : "no";
- if (dictionary["DIRECT3D"] == "auto")
- dictionary["DIRECT3D"] = checkAvailability("DIRECT3D") ? "yes" : "no";
if (dictionary["PHONON"] == "auto")
dictionary["PHONON"] = checkAvailability("PHONON") ? "yes" : "no";
if (dictionary["WEBKIT"] == "auto")
@@ -2264,6 +2223,10 @@ void Configure::generateOutputVars()
qtConfig += "opengles1";
}
+ if ( dictionary["OPENGL_ES_2"] == "yes" ) {
+ qtConfig += "opengles2";
+ }
+
if ( dictionary["OPENGL_ES_CL"] == "yes" ) {
qtConfig += "opengles1cl";
}
@@ -2271,9 +2234,6 @@ void Configure::generateOutputVars()
if ( dictionary["DIRECTSHOW"] == "yes" )
qtConfig += "directshow";
- if (dictionary[ "DIRECT3D" ] == "yes")
- qtConfig += "direct3d";
-
if (dictionary[ "OPENSSL" ] == "yes")
qtConfig += "openssl";
else if (dictionary[ "OPENSSL" ] == "linked")
@@ -2653,7 +2613,6 @@ void Configure::generateConfigfiles()
if(dictionary["ACCESSIBILITY"] == "no") qconfigList += "QT_NO_ACCESSIBILITY";
if(dictionary["EXCEPTIONS"] == "no") qconfigList += "QT_NO_EXCEPTIONS";
if(dictionary["OPENGL"] == "no") qconfigList += "QT_NO_OPENGL";
- if(dictionary["DIRECT3D"] == "no") qconfigList += "QT_NO_DIRECT3D";
if(dictionary["OPENSSL"] == "no") qconfigList += "QT_NO_OPENSSL";
if(dictionary["OPENSSL"] == "linked") qconfigList += "QT_LINKED_OPENSSL";
if(dictionary["DBUS"] == "no") qconfigList += "QT_NO_DBUS";
@@ -2664,9 +2623,11 @@ void Configure::generateConfigfiles()
if(dictionary["SCRIPTTOOLS"] == "no") qconfigList += "QT_NO_SCRIPTTOOLS";
if(dictionary["OPENGL_ES_CM"] == "yes" ||
- dictionary["OPENGL_ES_CL"] == "yes") qconfigList += "QT_OPENGL_ES";
+ dictionary["OPENGL_ES_CL"] == "yes" ||
+ dictionary["OPENGL_ES_2"] == "yes") qconfigList += "QT_OPENGL_ES";
if(dictionary["OPENGL_ES_CM"] == "yes") qconfigList += "QT_OPENGL_ES_1";
+ if(dictionary["OPENGL_ES_2"] == "yes") qconfigList += "QT_OPENGL_ES_2";
if(dictionary["OPENGL_ES_CL"] == "yes") qconfigList += "QT_OPENGL_ES_1_CL";
if(dictionary["SQL_MYSQL"] == "yes") qconfigList += "QT_SQL_MYSQL";
@@ -2911,7 +2872,6 @@ void Configure::displayConfig()
cout << "SSE2 support................" << dictionary[ "SSE2" ] << endl;
cout << "IWMMXT support.............." << dictionary[ "IWMMXT" ] << endl;
cout << "OpenGL support.............." << dictionary[ "OPENGL" ] << endl;
- cout << "Direct3D support............" << dictionary[ "DIRECT3D" ] << endl;
cout << "OpenSSL support............." << dictionary[ "OPENSSL" ] << endl;
cout << "QtDBus support.............." << dictionary[ "DBUS" ] << endl;
cout << "QtXmlPatterns support......." << dictionary[ "XMLPATTERNS" ] << endl;
@@ -3500,7 +3460,7 @@ void Configure::readLicense()
#else
} else {
Tools::checkLicense(dictionary, licenseInfo, firstLicensePath());
- if (dictionary["DONE"] != "error") {
+ if (dictionary["DONE"] != "error" && dictionary["BUILDNOKIA"] != "yes") {
// give the user some feedback, and prompt for license acceptance
cout << endl << "This is the " << dictionary["PLATFORM NAME"] << " " << dictionary["EDITION"] << " Edition."<< endl << endl;
if (!showLicense(dictionary["LICENSE FILE"])) {
diff --git a/tools/configure/tools.cpp b/tools/configure/tools.cpp
index 760c101..2649d44 100644
--- a/tools/configure/tools.cpp
+++ b/tools/configure/tools.cpp
@@ -58,6 +58,13 @@ using namespace std;
void Tools::checkLicense(QMap<QString,QString> &dictionary, QMap<QString,QString> &licenseInfo,
const QString &path)
{
+ if (dictionary[ "BUILDNOKIA" ] == "yes") {
+ dictionary["EDITION"] = "NokiaInternalBuild";
+ dictionary["LICENSE_FILE"] = ""; // No License for nokia developers
+ dictionary["QT_EDITION"] = "QT_EDITION_OPENSOURCE";
+ return; // No license key checking in internal builds
+ }
+
QString tpLicense = dictionary["QT_SOURCE_TREE"] + "/LICENSE.PREVIEW.OPENSOURCE";
if (QFile::exists(tpLicense)) {
dictionary["EDITION"] = "Preview";
diff --git a/tools/designer/src/components/propertyeditor/designerpropertymanager.cpp b/tools/designer/src/components/propertyeditor/designerpropertymanager.cpp
index 2460ee8..1dd5bd6 100644
--- a/tools/designer/src/components/propertyeditor/designerpropertymanager.cpp
+++ b/tools/designer/src/components/propertyeditor/designerpropertymanager.cpp
@@ -271,7 +271,7 @@ void TextEditor::fileActionActivated()
const QString newPath = m_core->dialogGui()->getOpenFileName(this, tr("Choose a File"), oldPath);
if (newPath.isEmpty() || newPath == oldPath)
return;
- const QString newText = QLatin1String("file:") + newPath;
+ const QString newText = QUrl::fromLocalFile(newPath).toString();
m_editor->setText(newText);
emit textChanged(newText);
}
diff --git a/tools/designer/src/components/propertyeditor/propertyeditor.cpp b/tools/designer/src/components/propertyeditor/propertyeditor.cpp
index ead404b..eab7a12 100644
--- a/tools/designer/src/components/propertyeditor/propertyeditor.cpp
+++ b/tools/designer/src/components/propertyeditor/propertyeditor.cpp
@@ -200,14 +200,15 @@ PropertyEditor::PropertyEditor(QDesignerFormEditorInterface *core, QWidget *pare
colors.push_back(QColor(234, 191, 255));
colors.push_back(QColor(255, 191, 239));
m_colors.reserve(colors.count());
+ const int darknessFactor = 250;
for (int i = 0; i < colors.count(); i++) {
QColor c = colors.at(i);
- m_colors.push_back(qMakePair(c, c.darker(150)));
+ m_colors.push_back(qMakePair(c, c.darker(darknessFactor)));
}
QColor dynamicColor(191, 207, 255);
QColor layoutColor(255, 191, 191);
- m_dynamicColor = qMakePair(dynamicColor, dynamicColor.darker(150));
- m_layoutColor = qMakePair(layoutColor, layoutColor.darker(150));
+ m_dynamicColor = qMakePair(dynamicColor, dynamicColor.darker(darknessFactor));
+ m_layoutColor = qMakePair(layoutColor, layoutColor.darker(darknessFactor));
updateForegroundBrightness();
diff --git a/tools/designer/src/designer/versiondialog.cpp b/tools/designer/src/designer/versiondialog.cpp
index a129a4d..c21912b 100644
--- a/tools/designer/src/designer/versiondialog.cpp
+++ b/tools/designer/src/designer/versiondialog.cpp
@@ -169,31 +169,11 @@ VersionDialog::VersionDialog(QWidget *parent)
VersionLabel *label = new VersionLabel;
QLabel *lbl = new QLabel;
QString version = tr("<h3>%1</h3><br/><br/>Version %2");
-#if QT_EDITION == QT_EDITION_OPENSOURCE
- QString open = tr(" Open Source Edition");
- version.append(open);
-#endif
version = version.arg(tr("Qt Designer")).arg(QLatin1String(QT_VERSION_STR));
version.append(tr("<br/>Qt Designer is a graphical user interface designer for Qt applications.<br/>"));
- QString edition =
-#if QT_EDITION == QT_EDITION_OPENSOURCE
- tr("This version of Qt Designer is part of the Qt Open Source Edition, for use "
- "in the development of Open Source applications. "
- "Qt is a comprehensive C++ framework for cross-platform application "
- "development.<br/><br/>"
- "You need a commercial Qt license for development of proprietary (closed "
- "source) applications. Please see <a href=\"http://qtsoftware.com/company/about/businessmodel\">http://qtsoftware.com/company/about/businessmodel"
- ".html</a> for an overview of Qt licensing.<br/>");
-#elif defined(QT_PRODUCT_LICENSE)
- tr("This program is licensed to you under the terms of the "
- "Qt %1 License Agreement. For details, see the license file "
- "that came with this software distribution.<br/>").arg(QT_PRODUCT_LICENSE);
-#else
- tr("This program is licensed to you under the terms of the "
- "Qt Commercial License Agreement. For details, see the file LICENSE "
- "that came with this software distribution.<br/>");
-#endif
+ // TODO: Remove this variable for 4.6.0. Must keep this way for 4.5.x due to string freeze
+ QString edition;
lbl->setText(tr("%1"
"<br/>%2"
diff --git a/tools/designer/src/lib/shared/actioneditor.cpp b/tools/designer/src/lib/shared/actioneditor.cpp
index d29643d..e60b212 100644
--- a/tools/designer/src/lib/shared/actioneditor.cpp
+++ b/tools/designer/src/lib/shared/actioneditor.cpp
@@ -452,7 +452,7 @@ void ActionEditor::slotNewAction()
if (actionData.checkable)
setInitialProperty(sheet, QLatin1String(checkablePropertyC), QVariant(true));
- if (!actionData.keysequence.isEmpty())
+ if (!actionData.keysequence.value().isEmpty())
setInitialProperty(sheet, QLatin1String(shortcutPropertyC), qVariantFromValue(actionData.keysequence));
sheet->setProperty(sheet->indexOf(QLatin1String(iconPropertyC)), qVariantFromValue(actionData.icon));
@@ -487,10 +487,10 @@ static QDesignerFormWindowCommand *setIconPropertyCommand(const PropertySheetIco
// return a FormWindow command to apply a QKeySequence or a reset command
// in case it is empty.
-static QDesignerFormWindowCommand *setKeySequencePropertyCommand(const QKeySequence &ks, QAction *action, QDesignerFormWindowInterface *fw)
+static QDesignerFormWindowCommand *setKeySequencePropertyCommand(const PropertySheetKeySequenceValue &ks, QAction *action, QDesignerFormWindowInterface *fw)
{
const QString shortcutProperty = QLatin1String(shortcutPropertyC);
- if (ks.isEmpty()) {
+ if (ks.value().isEmpty()) {
ResetPropertyCommand *cmd = new ResetPropertyCommand(fw);
cmd->init(action, shortcutProperty);
return cmd;
@@ -540,7 +540,7 @@ void ActionEditor::editAction(QAction *action)
oldActionData.text = action->text();
oldActionData.toolTip = textPropertyValue(sheet, QLatin1String(toolTipPropertyC));
oldActionData.icon = qVariantValue<PropertySheetIconValue>(sheet->property(sheet->indexOf(QLatin1String(iconPropertyC))));
- oldActionData.keysequence = qVariantValue<QKeySequence>(sheet->property(sheet->indexOf(QLatin1String(shortcutPropertyC))));
+ oldActionData.keysequence = ActionModel::actionShortCut(sheet);
oldActionData.checkable = action->isCheckable();
dlg.setActionData(oldActionData);
diff --git a/tools/designer/src/lib/shared/actionrepository.cpp b/tools/designer/src/lib/shared/actionrepository.cpp
index 941a9ba..1b638c3 100644
--- a/tools/designer/src/lib/shared/actionrepository.cpp
+++ b/tools/designer/src/lib/shared/actionrepository.cpp
@@ -42,6 +42,7 @@
#include "actionrepository_p.h"
#include "qtresourceview_p.h"
#include "iconloader_p.h"
+#include "qdesigner_utils_p.h"
#include <QtDesigner/QDesignerFormEditorInterface>
#include <QtDesigner/QDesignerPropertySheetExtension>
@@ -168,16 +169,20 @@ QWidgetList ActionModel::associatedWidgets(const QAction *action)
}
// shortcut is a fake property, need to retrieve it via property sheet.
-static QString actionShortCut(QDesignerFormEditorInterface *core, QAction *action)
+PropertySheetKeySequenceValue ActionModel::actionShortCut(QDesignerFormEditorInterface *core, QAction *action)
{
QDesignerPropertySheetExtension *sheet = qt_extension<QDesignerPropertySheetExtension*>(core->extensionManager(), action);
if (!sheet)
- return QString();
+ return PropertySheetKeySequenceValue();
+ return actionShortCut(sheet);
+}
+
+PropertySheetKeySequenceValue ActionModel::actionShortCut(const QDesignerPropertySheetExtension *sheet)
+{
const int index = sheet->indexOf(QLatin1String("shortcut"));
if (index == -1)
- return QString();
- const QKeySequence keysequence = qvariant_cast<QKeySequence>(sheet->property(index));
- return keysequence.toString();
+ return PropertySheetKeySequenceValue();
+ return qvariant_cast<PropertySheetKeySequenceValue>(sheet->property(index));
}
void ActionModel::setItems(QDesignerFormEditorInterface *core, QAction *action, QStandardItemList &sl)
@@ -221,7 +226,7 @@ void ActionModel::setItems(QDesignerFormEditorInterface *core, QAction *action,
item->setText(action->text());
item->setToolTip(action->text());
// shortcut
- const QString shortcut = actionShortCut(core, action);
+ const QString shortcut = actionShortCut(core, action).value().toString();
item = sl[ShortCutColumn];
item->setText(shortcut);
item->setToolTip(shortcut);
diff --git a/tools/designer/src/lib/shared/actionrepository_p.h b/tools/designer/src/lib/shared/actionrepository_p.h
index 9d1af5a..66d77ce 100644
--- a/tools/designer/src/lib/shared/actionrepository_p.h
+++ b/tools/designer/src/lib/shared/actionrepository_p.h
@@ -65,9 +65,12 @@ QT_BEGIN_NAMESPACE
class QPixmap;
class QDesignerFormEditorInterface;
+class QDesignerPropertySheetExtension;
namespace qdesigner_internal {
+class PropertySheetKeySequenceValue;
+
// Shared model of actions, to be used for several views (detailed/icon view).
class QDESIGNER_SHARED_EXPORT ActionModel: public QStandardItemModel
{
@@ -99,6 +102,10 @@ public:
// Find the associated menus and toolbars, ignore toolbuttons
static QWidgetList associatedWidgets(const QAction *action);
+ // Retrieve shortcut via property sheet as it is a fake property
+ static PropertySheetKeySequenceValue actionShortCut(QDesignerFormEditorInterface *core, QAction *action);
+ static PropertySheetKeySequenceValue actionShortCut(const QDesignerPropertySheetExtension *ps);
+
signals:
void resourceImageDropped(const QString &path, QAction *action);
diff --git a/tools/designer/src/lib/shared/newactiondialog.cpp b/tools/designer/src/lib/shared/newactiondialog.cpp
index 53aec4b..bb163d6 100644
--- a/tools/designer/src/lib/shared/newactiondialog.cpp
+++ b/tools/designer/src/lib/shared/newactiondialog.cpp
@@ -134,7 +134,7 @@ ActionData NewActionDialog::actionData() const
rc.toolTip = m_ui->tooltipEditor->text();
rc.icon = m_ui->iconSelector->icon();
rc.checkable = m_ui->checkableCheckBox->checkState() == Qt::Checked;
- rc.keysequence = m_ui->keySequenceEdit->keySequence();
+ rc.keysequence = PropertySheetKeySequenceValue(m_ui->keySequenceEdit->keySequence());
return rc;
}
@@ -144,7 +144,7 @@ void NewActionDialog::setActionData(const ActionData &d)
m_ui->editObjectName->setText(d.name);
m_ui->iconSelector->setIcon(d.icon);
m_ui->tooltipEditor->setText(d.toolTip);
- m_ui->keySequenceEdit->setKeySequence(d.keysequence);
+ m_ui->keySequenceEdit->setKeySequence(d.keysequence.value());
m_ui->checkableCheckBox->setCheckState(d.checkable ? Qt::Checked : Qt::Unchecked);
m_auto_update_object_name = false;
diff --git a/tools/designer/src/lib/shared/newactiondialog_p.h b/tools/designer/src/lib/shared/newactiondialog_p.h
index c8bd34c..d4e9b5b 100644
--- a/tools/designer/src/lib/shared/newactiondialog_p.h
+++ b/tools/designer/src/lib/shared/newactiondialog_p.h
@@ -84,7 +84,7 @@ struct ActionData {
QString toolTip;
PropertySheetIconValue icon;
bool checkable;
- QKeySequence keysequence;
+ PropertySheetKeySequenceValue keysequence;
};
inline bool operator==(const ActionData &a1, const ActionData &a2) { return a1.compare(a2) == 0u; }
diff --git a/tools/designer/src/lib/shared/qdesigner_utils.cpp b/tools/designer/src/lib/shared/qdesigner_utils.cpp
index d2f092e..75fa180 100644
--- a/tools/designer/src/lib/shared/qdesigner_utils.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_utils.cpp
@@ -397,7 +397,7 @@ namespace qdesigner_internal
QMapIterator<QPair<QIcon::Mode, QIcon::State>, PropertySheetPixmapValue> itPath(paths);
while (itPath.hasNext()) {
QPair<QIcon::Mode, QIcon::State> pair = itPath.next().key();
- icon.addPixmap(m_pixmapCache->pixmap(itPath.value()), pair.first, pair.second);
+ icon.addFile(itPath.value().path(), QSize(), pair.first, pair.second);
}
m_cache.insert(value, icon);
return icon;
diff --git a/tools/designer/src/lib/uilib/resourcebuilder.cpp b/tools/designer/src/lib/uilib/resourcebuilder.cpp
index 3679f92..5df10e9 100644
--- a/tools/designer/src/lib/uilib/resourcebuilder.cpp
+++ b/tools/designer/src/lib/uilib/resourcebuilder.cpp
@@ -98,21 +98,21 @@ QVariant QResourceBuilder::loadResource(const QDir &workingDirectory, const DomP
if (const int flags = iconStateFlags(dpi)) { // new, post 4.4 format
QIcon icon;
if (flags & NormalOff)
- icon.addPixmap(QFileInfo(workingDirectory, dpi->elementNormalOff()->text()).absoluteFilePath(), QIcon::Normal, QIcon::Off);
+ icon.addFile(QFileInfo(workingDirectory, dpi->elementNormalOff()->text()).absoluteFilePath(), QSize(), QIcon::Normal, QIcon::Off);
if (flags & NormalOn)
- icon.addPixmap(QFileInfo(workingDirectory, dpi->elementNormalOn()->text()).absoluteFilePath(), QIcon::Normal, QIcon::On);
+ icon.addFile(QFileInfo(workingDirectory, dpi->elementNormalOn()->text()).absoluteFilePath(), QSize(), QIcon::Normal, QIcon::On);
if (flags & DisabledOff)
- icon.addPixmap(QFileInfo(workingDirectory, dpi->elementDisabledOff()->text()).absoluteFilePath(), QIcon::Disabled, QIcon::Off);
+ icon.addFile(QFileInfo(workingDirectory, dpi->elementDisabledOff()->text()).absoluteFilePath(), QSize(), QIcon::Disabled, QIcon::Off);
if (flags & DisabledOn)
- icon.addPixmap(QFileInfo(workingDirectory, dpi->elementDisabledOn()->text()).absoluteFilePath(), QIcon::Disabled, QIcon::On);
+ icon.addFile(QFileInfo(workingDirectory, dpi->elementDisabledOn()->text()).absoluteFilePath(), QSize(), QIcon::Disabled, QIcon::On);
if (flags & ActiveOff)
- icon.addPixmap(QFileInfo(workingDirectory, dpi->elementActiveOff()->text()).absoluteFilePath(), QIcon::Active, QIcon::Off);
+ icon.addFile(QFileInfo(workingDirectory, dpi->elementActiveOff()->text()).absoluteFilePath(), QSize(), QIcon::Active, QIcon::Off);
if (flags & ActiveOn)
- icon.addPixmap(QFileInfo(workingDirectory, dpi->elementActiveOn()->text()).absoluteFilePath(), QIcon::Active, QIcon::On);
+ icon.addFile(QFileInfo(workingDirectory, dpi->elementActiveOn()->text()).absoluteFilePath(), QSize(), QIcon::Active, QIcon::On);
if (flags & SelectedOff)
- icon.addPixmap(QFileInfo(workingDirectory, dpi->elementSelectedOff()->text()).absoluteFilePath(), QIcon::Selected, QIcon::Off);
+ icon.addFile(QFileInfo(workingDirectory, dpi->elementSelectedOff()->text()).absoluteFilePath(), QSize(), QIcon::Selected, QIcon::Off);
if (flags & SelectedOn)
- icon.addPixmap(QFileInfo(workingDirectory, dpi->elementSelectedOn()->text()).absoluteFilePath(), QIcon::Selected, QIcon::On);
+ icon.addFile(QFileInfo(workingDirectory, dpi->elementSelectedOn()->text()).absoluteFilePath(), QSize(), QIcon::Selected, QIcon::On);
return qVariantFromValue(icon);
} else { // 4.3 legacy
const QIcon icon(QFileInfo(workingDirectory, dpi->text()).absoluteFilePath());
diff --git a/tools/designer/src/uitools/quiloader.cpp b/tools/designer/src/uitools/quiloader.cpp
index d3d1d54..67bd29c 100644
--- a/tools/designer/src/uitools/quiloader.cpp
+++ b/tools/designer/src/uitools/quiloader.cpp
@@ -259,9 +259,9 @@ public:
const int row_cnt = tablew->rowCount();
const int col_cnt = tablew->columnCount();
for (int j = 0; j < col_cnt; ++j)
- reTranslateTableItem(tablew->verticalHeaderItem(j), m_className);
+ reTranslateTableItem(tablew->horizontalHeaderItem(j), m_className);
for (int i = 0; i < row_cnt; ++i) {
- reTranslateTableItem(tablew->horizontalHeaderItem(i), m_className);
+ reTranslateTableItem(tablew->verticalHeaderItem(i), m_className);
for (int j = 0; j < col_cnt; ++j)
reTranslateTableItem(tablew->item(i, j), m_className);
}
diff --git a/tools/designer/translations/translations.pro b/tools/designer/translations/translations.pro
index 7294956..8395259 100644
--- a/tools/designer/translations/translations.pro
+++ b/tools/designer/translations/translations.pro
@@ -133,7 +133,6 @@ HEADERS += ../../shared/findwidget/abstractfindwidget.h \
TRANSLATIONS=$$[QT_INSTALL_TRANSLATIONS]/designer_de.ts \
$$[QT_INSTALL_TRANSLATIONS]/designer_ja.ts \
$$[QT_INSTALL_TRANSLATIONS]/designer_pl.ts \
- $$[QT_INSTALL_TRANSLATIONS]/designer_tr_TR.ts \
$$[QT_INSTALL_TRANSLATIONS]/designer_zh_CN.ts \
$$[QT_INSTALL_TRANSLATIONS]/designer_zh_TW.ts \
$$[QT_INSTALL_TRANSLATIONS]/designer_untranslated.ts
diff --git a/tools/linguist/linguist/linguist.pro b/tools/linguist/linguist/linguist.pro
index 417ef67..968293a 100644
--- a/tools/linguist/linguist/linguist.pro
+++ b/tools/linguist/linguist/linguist.pro
@@ -100,7 +100,6 @@ RESOURCES += linguist.qrc
TRANSLATIONS=$$[QT_INSTALL_TRANSLATIONS]/linguist_ja.ts \
$$[QT_INSTALL_TRANSLATIONS]/linguist_pl.ts \
$$[QT_INSTALL_TRANSLATIONS]/linguist_untranslated.ts \
- $$[QT_INSTALL_TRANSLATIONS]/linguist_tr_TR.ts \
$$[QT_INSTALL_TRANSLATIONS]/linguist_zh_CN.ts \
$$[QT_INSTALL_TRANSLATIONS]/linguist_zh_TW.ts \
$$[QT_INSTALL_TRANSLATIONS]/linguist_de.ts \
diff --git a/tools/linguist/linguist/mainwindow.cpp b/tools/linguist/linguist/mainwindow.cpp
index 84200d4..5157fbe 100644
--- a/tools/linguist/linguist/mainwindow.cpp
+++ b/tools/linguist/linguist/mainwindow.cpp
@@ -1340,30 +1340,10 @@ void MainWindow::about()
QMessageBox box(this);
box.setTextFormat(Qt::RichText);
QString version = tr("Version %1");
-#if QT_EDITION == QT_EDITION_OPENSOURCE
- QString open = tr(" Open Source Edition");
- version.append(open);
-#endif
version = version.arg(QLatin1String(QT_VERSION_STR));
- QString edition =
-#if QT_EDITION == QT_EDITION_OPENSOURCE
- tr("This version of Qt Linguist is part of the Qt Open Source Edition, for use "
- "in the development of Open Source applications. "
- "Qt is a comprehensive C++ framework for cross-platform application "
- "development.<br/><br/>"
- "You need a commercial Qt license for development of proprietary (closed "
- "source) applications. Please see <tt>http://qtsoftware.com/company/model"
- ".html</tt> for an overview of Qt licensing.");
-#elif defined(QT_PRODUCT_LICENSE)
- tr("This program is licensed to you under the terms of the "
- "Qt %1 License Agreement. For details, see the license file "
- "that came with this software distribution.").arg(QLatin1String(QT_PRODUCT_LICENSE));
-#else
- tr("This program is licensed to you under the terms of the "
- "Qt Commercial License Agreement. For details, see the file LICENSE "
- "that came with this software distribution.");
-#endif
+ // TODO: Remove this variable for 4.6.0. Must keep this way for 4.5.x due to string freeze.
+ QString edition;
box.setText(tr("<center><img src=\":/images/splash.png\"/></img><p>%1</p></center>"
"<p>Qt Linguist is a tool for adding translations to Qt "
diff --git a/tools/linguist/linguist/messageeditor.cpp b/tools/linguist/linguist/messageeditor.cpp
index 3fc91e3..fb2fb1d 100644
--- a/tools/linguist/linguist/messageeditor.cpp
+++ b/tools/linguist/linguist/messageeditor.cpp
@@ -133,19 +133,12 @@ void MessageEditor::setupEditorPage()
QFrame *editorPage = new QFrame;
editorPage->setObjectName(QLatin1String("editorPage"));
- // Due to CSS being rather broken on the Mac style at the moment, only
- // use the border-image on non-Mac systems.
editorPage->setStyleSheet(QLatin1String(
-#ifndef Q_WS_MAC
"QFrame#editorPage { border-image: url(:/images/transbox.png) 12 16 16 12 repeat;"
" border-width: 12px 16px 16px 12px; }"
-#endif
"QFrame#editorPage { background-color: white; }"
"QLabel { font-weight: bold; }"
));
-#ifdef Q_WS_MAC
- editorPage->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
-#endif
editorPage->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
m_source = new FormWidget(tr("Source text"), false);
diff --git a/tools/linguist/lupdate/ui.cpp b/tools/linguist/lupdate/ui.cpp
index 6b47969..935cac4 100644
--- a/tools/linguist/lupdate/ui.cpp
+++ b/tools/linguist/lupdate/ui.cpp
@@ -59,7 +59,7 @@ class UiReader : public QXmlDefaultHandler
{
public:
UiReader(Translator &translator, ConversionData &cd)
- : m_translator(translator), m_cd(cd), m_lineNumber(-1),
+ : m_translator(translator), m_cd(cd), m_lineNumber(-1), m_isTrString(false),
m_needUtf8(translator.codecName() != "UTF-8")
{}
@@ -80,6 +80,7 @@ private:
QString m_context;
QString m_source;
QString m_comment;
+ QString m_extracomment;
QXmlLocator *m_locator;
QString m_accum;
@@ -94,22 +95,27 @@ bool UiReader::startElement(const QString &namespaceURI,
Q_UNUSED(namespaceURI);
Q_UNUSED(localName);
- if (qName == QLatin1String("item")) {
+ if (qName == QLatin1String("item")) { // UI3 menu entries
flush();
- if (!atts.value(QLatin1String("text")).isEmpty())
+ if (!atts.value(QLatin1String("text")).isEmpty()) {
m_source = atts.value(QLatin1String("text"));
+ m_isTrString = true;
+ if (!m_cd.m_noUiLines)
+ m_lineNumber = m_locator->lineNumber();
+ }
} else if (qName == QLatin1String("string")) {
flush();
if (atts.value(QLatin1String("notr")).isEmpty() ||
atts.value(QLatin1String("notr")) != QLatin1String("true")) {
m_isTrString = true;
m_comment = atts.value(QLatin1String("comment"));
+ m_extracomment = atts.value(QLatin1String("extracomment"));
+ if (!m_cd.m_noUiLines)
+ m_lineNumber = m_locator->lineNumber();
} else {
m_isTrString = false;
}
}
- if (m_isTrString && !m_cd.m_noUiLines)
- m_lineNumber = m_locator->lineNumber();
m_accum.clear();
return true;
}
@@ -122,15 +128,15 @@ bool UiReader::endElement(const QString &namespaceURI,
m_accum.replace(QLatin1String("\r\n"), QLatin1String("\n"));
- if (qName == QLatin1String("class")) {
+ if (qName == QLatin1String("class")) { // UI "header"
if (m_context.isEmpty())
m_context = m_accum;
} else if (qName == QLatin1String("string") && m_isTrString) {
m_source = m_accum;
- } else if (qName == QLatin1String("comment")) {
+ } else if (qName == QLatin1String("comment")) { // FIXME: what's that?
m_comment = m_accum;
flush();
- } else if (qName == QLatin1String("function")) {
+ } else if (qName == QLatin1String("function")) { // UI3 embedded code
fetchtrInlinedCpp(m_accum, m_translator, m_context);
} else {
flush();
@@ -160,12 +166,14 @@ void UiReader::flush()
TranslatorMessage msg(m_context, m_source,
m_comment, QString(), m_cd.m_sourceFileName,
m_lineNumber, QStringList());
+ msg.setExtraComment(m_extracomment);
if (m_needUtf8 && msg.needs8Bit())
msg.setUtf8(true);
m_translator.extend(msg);
}
m_source.clear();
m_comment.clear();
+ m_extracomment.clear();
}
bool loadUI(Translator &translator, const QString &filename, ConversionData &cd)
diff --git a/tools/linguist/shared/profileevaluator.cpp b/tools/linguist/shared/profileevaluator.cpp
index 14355b3..0be6bec 100644
--- a/tools/linguist/shared/profileevaluator.cpp
+++ b/tools/linguist/shared/profileevaluator.cpp
@@ -163,6 +163,8 @@ public:
QString m_pendingComment;
bool m_syntaxError;
bool m_contNextLine;
+ bool m_inQuote;
+ int m_parens;
/////////////// Evaluating pro file contents
@@ -261,6 +263,8 @@ bool ProFileEvaluator::Private::read(ProFile *pro)
// Parser state
m_block = 0;
m_commentItem = 0;
+ m_inQuote = false;
+ m_parens = 0;
m_contNextLine = false;
m_syntaxError = false;
m_lineNo = 1;
@@ -284,71 +288,84 @@ bool ProFileEvaluator::Private::parseLine(const QString &line0)
if (m_blockstack.isEmpty())
return false;
- ushort quote = 0;
- int parens = 0;
- bool contNextLine = false;
+ int parens = m_parens;
+ bool inQuote = m_inQuote;
+ bool escaped = false;
QString line = line0.simplified();
for (int i = 0; !m_syntaxError && i < line.length(); ++i) {
ushort c = line.at(i).unicode();
- if (quote && c == quote)
- quote = 0;
- else if (c == '(')
- ++parens;
- else if (c == ')')
- --parens;
- else if (c == '"' && (i == 0 || line.at(i - 1).unicode() != '\\'))
- quote = c;
- else if (!parens && !quote) {
- if (c == '#') {
- insertComment(line.mid(i + 1));
- contNextLine = m_contNextLine;
- break;
- }
- if (c == '\\' && i >= line.count() - 1) {
- updateItem();
- contNextLine = true;
- continue;
- }
- if (m_block && (m_block->blockKind() & ProBlock::VariableKind)) {
- if (c == ' ')
- updateItem();
- else
- m_proitem += c;
- continue;
- }
- if (c == ':') {
- enterScope(false);
- continue;
- }
- if (c == '{') {
- enterScope(true);
- continue;
- }
- if (c == '}') {
- leaveScope();
+ if (c == '#') { // Yep - no escaping possible
+ insertComment(line.mid(i + 1));
+ escaped = m_contNextLine;
+ break;
+ }
+ if (!escaped) {
+ if (c == '\\') {
+ escaped = true;
+ m_proitem += c;
continue;
- }
- if (c == '=') {
- insertVariable(line, &i);
+ } else if (c == '"') {
+ inQuote = !inQuote;
+ m_proitem += c;
continue;
}
- if (c == '|' || c == '!') {
- insertOperator(c);
- continue;
+ } else {
+ escaped = false;
+ }
+ if (!inQuote) {
+ if (c == '(') {
+ ++parens;
+ } else if (c == ')') {
+ --parens;
+ } else if (!parens) {
+ if (m_block && (m_block->blockKind() & ProBlock::VariableKind)) {
+ if (c == ' ')
+ updateItem();
+ else
+ m_proitem += c;
+ continue;
+ }
+ if (c == ':') {
+ enterScope(false);
+ continue;
+ }
+ if (c == '{') {
+ enterScope(true);
+ continue;
+ }
+ if (c == '}') {
+ leaveScope();
+ continue;
+ }
+ if (c == '=') {
+ insertVariable(line, &i);
+ continue;
+ }
+ if (c == '|' || c == '!') {
+ insertOperator(c);
+ continue;
+ }
}
}
m_proitem += c;
}
- m_contNextLine = contNextLine;
-
- if (!m_syntaxError) {
+ m_inQuote = inQuote;
+ m_parens = parens;
+ m_contNextLine = escaped;
+ if (escaped) {
+ m_proitem.chop(1);
updateItem();
- if (!m_contNextLine)
+ return true;
+ } else {
+ if (!m_syntaxError) {
+ updateItem();
finalizeBlock();
+ return true;
+ }
+ return false;
}
- return !m_syntaxError;
}
void ProFileEvaluator::Private::finalizeBlock()
@@ -367,6 +384,9 @@ void ProFileEvaluator::Private::insertVariable(const QString &line, int *i)
{
ProVariable::VariableOperator opkind;
+ if (m_proitem.isEmpty()) // Line starting with '=', like a conflict marker
+ return;
+
switch (m_proitem.at(m_proitem.length() - 1).unicode()) {
case '+':
m_proitem.chop(1);
@@ -2022,7 +2042,13 @@ ProFile *ProFileEvaluator::parsedProFile(const QString &fileName)
{
QFileInfo fi(fileName);
if (fi.exists()) {
- ProFile *pro = new ProFile(fi.absoluteFilePath());
+ QString fn = QDir::cleanPath(fi.absoluteFilePath());
+ foreach (const ProFile *pf, d->m_profileStack)
+ if (pf->fileName() == fn) {
+ errorMessage(d->format("circular inclusion of %1").arg(fn));
+ return 0;
+ }
+ ProFile *pro = new ProFile(fn);
if (d->read(pro))
return pro;
delete pro;
diff --git a/tools/linguist/shared/translatormessage.h b/tools/linguist/shared/translatormessage.h
index 7d31925..9f847b0 100644
--- a/tools/linguist/shared/translatormessage.h
+++ b/tools/linguist/shared/translatormessage.h
@@ -195,12 +195,12 @@ struct TranslatorMessagePtr {
Q_DECLARE_TYPEINFO(TranslatorMessagePtr, Q_MOVABLE_TYPE);
-static inline int qHash(TranslatorMessagePtr tmp)
+inline int qHash(TranslatorMessagePtr tmp)
{
return qHash(*tmp.ptr);
}
-static inline bool operator==(TranslatorMessagePtr tmp1, TranslatorMessagePtr tmp2)
+inline bool operator==(TranslatorMessagePtr tmp1, TranslatorMessagePtr tmp2)
{
return *tmp1.ptr == *tmp2.ptr;
}
diff --git a/tools/macdeployqt/macdeployqt/main.cpp b/tools/macdeployqt/macdeployqt/main.cpp
index 5836cd0..5353688 100644
--- a/tools/macdeployqt/macdeployqt/main.cpp
+++ b/tools/macdeployqt/macdeployqt/main.cpp
@@ -65,7 +65,7 @@ int main(int argc, char **argv)
qDebug() << "framework. The accessibilty, image formats, and text codec";
qDebug() << "plugins are always copied, unless \"-no-plugins\" is specified.";
qDebug() << "";
- qDebug() << "See the \"Deploying an Application on Qt/Mac\" typic in the";
+ qDebug() << "See the \"Deploying an Application on Qt/Mac\" topic in the";
qDebug() << "documentation for more information about deployment on Mac OS X.";
return 0;
diff --git a/tools/qdbus/qdbusviewer/qdbusviewer.cpp b/tools/qdbus/qdbusviewer/qdbusviewer.cpp
index e8ac3a6..9c25a89 100644
--- a/tools/qdbus/qdbusviewer/qdbusviewer.cpp
+++ b/tools/qdbus/qdbusviewer/qdbusviewer.cpp
@@ -440,22 +440,11 @@ void QDBusViewer::refreshChildren()
void QDBusViewer::about()
{
QMessageBox box(this);
-#if QT_EDITION == QT_EDITION_OPENSOURCE
- QString edition = tr("Open Source Edition");
- QString info = tr("This version of Qt's D-Bus Viewer is part of the Qt Open Source Edition. "
- "Qt is a comprehensive C++ framework for cross-platform application "
- "development.");
- QString moreInfo = tr("You need a commercial Qt license for development of proprietary (closed "
- "source) applications. Please see <a href=\"http://qtsoftware.com/company/model"
- ".html\">qtsoftware.com/company/model.html</a> for an overview of Qt licensing.");
-#else
+
+ // TODO: Remove these variables for 4.6.0. Must keep this way for 4.5.x due to string freeze.
QString edition;
QString info;
- QString moreInfo(tr("This program is licensed to you under the terms of the "
- "Qt Commercial License Agreement. For details, see the file LICENSE "
- "that came with this software distribution."));
-
-#endif
+ QString moreInfo;
box.setText(QString::fromLatin1("<center><img src=\":/trolltech/qdbusviewer/images/qdbusviewer-128.png\">"
"<h3>%1</h3>"
diff --git a/tools/qdoc3/qdoc3.pro b/tools/qdoc3/qdoc3.pro
index 3268585..2bba8fb 100644
--- a/tools/qdoc3/qdoc3.pro
+++ b/tools/qdoc3/qdoc3.pro
@@ -99,10 +99,3 @@ SOURCES += apigenerator.cpp \
webxmlgenerator.cpp \
yyindent.cpp
-
-win32 {
- QT_WINCONFIG = release
- CONFIG(debug, debug|release) {
- QT_WINCONFIG = debug
- }
-}
diff --git a/tools/qdoc3/test/assistant.qdocconf b/tools/qdoc3/test/assistant.qdocconf
index 9ba1b14..b82507f 100644
--- a/tools/qdoc3/test/assistant.qdocconf
+++ b/tools/qdoc3/test/assistant.qdocconf
@@ -6,14 +6,14 @@ include(qt-defines.qdocconf)
project = Qt Assistant
description = Qt Assistant Manual
-url = http://doc.trolltech.com/4.5
+url = http://doc.qtsoftware.com/4.5
indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index
qhp.projects = Assistant
qhp.Assistant.file = assistant.qhp
-qhp.Assistant.namespace = com.trolltech.assistant.450
+qhp.Assistant.namespace = com.trolltech.assistant.452
qhp.Assistant.virtualFolder = qdoc
qhp.Assistant.indexTitle = Qt Assistant Manual
qhp.Assistant.extraFiles = classic.css images/qt-logo.png images/trolltech-logo.png
diff --git a/tools/qdoc3/test/carbide-eclipse-integration.qdocconf b/tools/qdoc3/test/carbide-eclipse-integration.qdocconf
index 683048d..aee5e17 100644
--- a/tools/qdoc3/test/carbide-eclipse-integration.qdocconf
+++ b/tools/qdoc3/test/carbide-eclipse-integration.qdocconf
@@ -6,7 +6,7 @@ macro.TheEclipseIntegration = Carbide.c++
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">Copyright &copy; 2009 <a href=\"http://doc.trolltech.com/trolltech.html\">Nokia Corporation</a></td>\n" \
- "<td width=\"30%\" align=\"center\"><a href=\"http://doc.trolltech.com\">Trademarks</a></td>\n" \
- "<td width=\"40%\" align=\"right\"><div align=\"right\">Carbide.c++</div></td>\n" \
+ "<td width=\"30%\" align=\"left\">Copyright &copy; 2009 Nokia Corporation and/or its subsidiary(-ies)</td>\n" \
+ "<td width=\"40%\" align=\"center\"><a href=\"http://doc.qtsoftware.com\">Trademarks</a></td>\n" \
+ "<td width=\"30%\" align=\"right\"><div align=\"right\">Carbide.c++</div></td>\n" \
"</tr></table></div></address>"
diff --git a/tools/qdoc3/test/designer.qdocconf b/tools/qdoc3/test/designer.qdocconf
index f67cccc..9c0790e 100644
--- a/tools/qdoc3/test/designer.qdocconf
+++ b/tools/qdoc3/test/designer.qdocconf
@@ -6,14 +6,14 @@ include(qt-defines.qdocconf)
project = Qt Designer
description = Qt Designer Manual
-url = http://doc.trolltech.com/4.5
+url = http://doc.qtsoftware.com/4.5
indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index
qhp.projects = Designer
qhp.Designer.file = designer.qhp
-qhp.Designer.namespace = com.trolltech.designer.450
+qhp.Designer.namespace = com.trolltech.designer.452
qhp.Designer.virtualFolder = qdoc
qhp.Designer.indexTitle = Qt Designer Manual
qhp.Designer.extraFiles = classic.css images/qt-logo.png images/trolltech-logo.png
diff --git a/tools/qdoc3/test/eclipse-integration.qdocconf b/tools/qdoc3/test/eclipse-integration.qdocconf
index 1fdaa1b..d9e4ac7 100644
--- a/tools/qdoc3/test/eclipse-integration.qdocconf
+++ b/tools/qdoc3/test/eclipse-integration.qdocconf
@@ -8,6 +8,6 @@ outputdir = $QTDIR/../qteclipsetools/main/doc/html
project = Qt Eclipse Integration
description = "Qt Eclipse Integration"
-url = http://doc.trolltech.com/eclipse-integration-4.4
+url = http://doc.qtsoftware.com/qt-eclipse-1.5
HTML.{postheader,address} = ""
diff --git a/tools/qdoc3/test/jambi.qdocconf b/tools/qdoc3/test/jambi.qdocconf
index 3644b69..101b33a 100644
--- a/tools/qdoc3/test/jambi.qdocconf
+++ b/tools/qdoc3/test/jambi.qdocconf
@@ -3,7 +3,7 @@ include(macros.qdocconf)
project = Qt Jambi
description = Qt Jambi Reference Documentation
-url = http://doc.trolltech.com/qtjambi
+url = http://doc.qtsoftware.com/qtjambi
version = 4.4.0_01
@@ -41,7 +41,7 @@ HTML.postheader = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0
HTML.footer = "<p /><address><hr /><div align=\"center\">\n" \
"<table width=\"100%\" cellspacing=\"0\" border=\"0\"><tr class=\"address\">\n" \
- "<td width=\"30%\">Copyright &copy; \$THISYEAR\$ <a href=\"trolltech.html\">Trolltech</a></td>\n" \
+ "<td width=\"30%\" align=\"left\">Copyright &copy; 2009 Nokia Corporation and/or its subsidiary(-ies)</td>\n" \
"<td width=\"40%\" align=\"center\"><a href=\"trademarks.html\">Trademarks</a></td>\n" \
"<td width=\"30%\" align=\"right\"><div align=\"right\">Qt Jambi \\version</div></td>\n" \
"</tr></table></div></address>"
diff --git a/tools/qdoc3/test/linguist.qdocconf b/tools/qdoc3/test/linguist.qdocconf
index beff2da..da49abe 100644
--- a/tools/qdoc3/test/linguist.qdocconf
+++ b/tools/qdoc3/test/linguist.qdocconf
@@ -6,14 +6,14 @@ include(qt-defines.qdocconf)
project = Qt Linguist
description = Qt Linguist Manual
-url = http://doc.trolltech.com/4.5
+url = http://doc.qtsoftware.com/4.5
indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index
qhp.projects = Linguist
qhp.Linguist.file = linguist.qhp
-qhp.Linguist.namespace = com.trolltech.linguist.450
+qhp.Linguist.namespace = com.trolltech.linguist.452
qhp.Linguist.virtualFolder = qdoc
qhp.Linguist.indexTitle = Qt Linguist Manual
qhp.Linguist.extraFiles = classic.css images/qt-logo.png images/trolltech-logo.png
diff --git a/tools/qdoc3/test/qmake.qdocconf b/tools/qdoc3/test/qmake.qdocconf
index 57299ae..5e2cac7 100644
--- a/tools/qdoc3/test/qmake.qdocconf
+++ b/tools/qdoc3/test/qmake.qdocconf
@@ -6,14 +6,14 @@ include(qt-defines.qdocconf)
project = QMake
description = QMake Manual
-url = http://doc.trolltech.com/4.5
+url = http://doc.qtsoftware.com/4.5
indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index
qhp.projects = qmake
qhp.qmake.file = qmake.qhp
-qhp.qmake.namespace = com.trolltech.qmake.450
+qhp.qmake.namespace = com.trolltech.qmake.452
qhp.qmake.virtualFolder = qdoc
qhp.qmake.indexTitle = QMake Manual
qhp.qmake.extraFiles = classic.css images/qt-logo.png images/trolltech-logo.png
diff --git a/tools/qdoc3/test/qt-build-docs.qdocconf b/tools/qdoc3/test/qt-build-docs.qdocconf
index a13ea94..3fbeb44 100644
--- a/tools/qdoc3/test/qt-build-docs.qdocconf
+++ b/tools/qdoc3/test/qt-build-docs.qdocconf
@@ -6,7 +6,7 @@ include(qt-defines.qdocconf)
project = Qt
description = Qt Reference Documentation
-url = http://doc.trolltech.com/4.5
+url = http://doc.qtsoftware.com/4.5
edition.Console.modules = QtCore QtDBus QtNetwork QtScript QtSql QtXml \
QtXmlPatterns QtTest
@@ -20,10 +20,10 @@ edition.DesktopLight.groups = -graphicsview-api
qhp.projects = Qt
qhp.Qt.file = qt.qhp
-qhp.Qt.namespace = com.trolltech.qt.450
+qhp.Qt.namespace = com.trolltech.qt.452
qhp.Qt.virtualFolder = qdoc
qhp.Qt.indexTitle = Qt Reference Documentation
-qhp.Qt.indexRoot =
+qhp.Qt.indexRoot =
# Files not referenced in any qdoc file (last four are needed by qtdemo)
# See also extraimages.HTML
@@ -33,7 +33,7 @@ qhp.Qt.extraFiles = classic.css \
images/taskmenuextension-example.png \
images/coloreditorfactoryimage.png \
images/dynamiclayouts-example.png \
- images/stylesheet-coffee-plastique.png
+ images/stylesheet-coffee-plastique.png
qhp.Qt.filterAttributes = qt 4.6.0 qtrefdoc
qhp.Qt.customFilters.Qt.name = Qt 4.6.0
@@ -105,7 +105,8 @@ exampledirs = $QT_SOURCE_TREE/doc/src \
$QT_SOURCE_TREE/examples \
$QT_SOURCE_TREE/examples/tutorials \
$QT_SOURCE_TREE \
- $QT_SOURCE_TREE/qmake/examples
+ $QT_SOURCE_TREE/qmake/examples \
+ $QT_SOURCE_TREE/src/3rdparty/webkit/WebKit/qt/docs
imagedirs = $QT_SOURCE_TREE/doc/src/images \
$QT_SOURCE_TREE/examples
outputdir = $QT_BUILD_TREE/doc/html
diff --git a/tools/qdoc3/test/qt-html-templates.qdocconf b/tools/qdoc3/test/qt-html-templates.qdocconf
index f09192a..dc027d0 100644
--- a/tools/qdoc3/test/qt-html-templates.qdocconf
+++ b/tools/qdoc3/test/qt-html-templates.qdocconf
@@ -25,8 +25,7 @@ HTML.postheader = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0
HTML.footer = "<p /><address><hr /><div align=\"center\">\n" \
"<table width=\"100%\" cellspacing=\"0\" border=\"0\"><tr class=\"address\">\n" \
- "<td width=\"30%\" align=\"left\">Copyright &copy; %THISYEAR% Nokia Corporation " \
- "and/or its subsidiary(-ies)</td>\n" \
+ "<td width=\"30%\" align=\"left\">Copyright &copy; 2009 Nokia Corporation and/or its subsidiary(-ies)</td>\n" \
"<td width=\"40%\" align=\"center\"><a href=\"trademarks.html\">Trademarks</a></td>\n" \
"<td width=\"30%\" align=\"right\"><div align=\"right\">Qt \\version</div></td>\n" \
"</tr></table></div></address>"
diff --git a/tools/qdoc3/test/qt-inc.qdocconf b/tools/qdoc3/test/qt-inc.qdocconf
index 97893dc..d6cb0e6 100644
--- a/tools/qdoc3/test/qt-inc.qdocconf
+++ b/tools/qdoc3/test/qt-inc.qdocconf
@@ -3,7 +3,7 @@ include(macros.qdocconf)
project = Qt
description = Qt Reference Documentation
-url = http://doc.trolltech.com/4.5
+url = http://doc.qtsoftware.com/4.5
edition.Console = QtCore QtNetwork QtSql QtXml QtScript QtTest
edition.Desktop = QtCore QtGui QtNetwork QtOpenGL QtSql QtSvg QtXml QtScript \
@@ -20,7 +20,8 @@ headerdirs = $QDOC_CURRENT_DIR
exampledirs = $QTDIR/doc/src \
$QTDIR/examples \
$QTDIR \
- $QTDIR/qmake/examples
+ $QTDIR/qmake/examples \
+ $QTDIR/src/3rdparty/webkit/WebKit/qt/docs
imagedirs = $QTDIR/doc/src/images \
$QTDIR/examples
outputdir = $QTDIR/doc/html
@@ -140,7 +141,7 @@ HTML.postheader = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0
HTML.footer = "<p /><address><hr /><div align=\"center\">\n" \
"<table width=\"100%\" cellspacing=\"0\" border=\"0\"><tr class=\"address\">\n" \
- "<td width=\"30%\">Copyright &copy; %THISYEAR% <a href=\"trolltech.html\">Trolltech</a></td>\n" \
+ "<td width=\"30%\" align=\"left\">Copyright &copy; 2009 Nokia Corporation and/or its subsidiary(-ies)</td>\n" \
"<td width=\"40%\" align=\"center\"><a href=\"trademarks.html\">Trademarks</a></td>\n" \
"<td width=\"30%\" align=\"right\"><div align=\"right\">Qt \\version</div></td>\n" \
"</tr></table></div></address>"
diff --git a/tools/qdoc3/test/qt.qdocconf b/tools/qdoc3/test/qt.qdocconf
index 288da62..1ec9b72 100644
--- a/tools/qdoc3/test/qt.qdocconf
+++ b/tools/qdoc3/test/qt.qdocconf
@@ -8,7 +8,7 @@ project = Qt
versionsym =
version = %VERSION%
description = Qt Reference Documentation
-url = http://doc.trolltech.com/4.5
+url = http://doc.qtsoftware.com/4.5
edition.Console.modules = QtCore QtDBus QtNetwork QtScript QtSql QtXml \
QtXmlPatterns QtTest
@@ -22,10 +22,10 @@ edition.DesktopLight.groups = -graphicsview-api
qhp.projects = Qt
qhp.Qt.file = qt.qhp
-qhp.Qt.namespace = com.trolltech.qt.450
+qhp.Qt.namespace = com.trolltech.qt.452
qhp.Qt.virtualFolder = qdoc
qhp.Qt.indexTitle = Qt Reference Documentation
-qhp.Qt.indexRoot =
+qhp.Qt.indexRoot =
# Files not referenced in any qdoc file (last four are needed by qtdemo)
# See also extraimages.HTML
@@ -35,7 +35,7 @@ qhp.Qt.extraFiles = classic.css \
images/taskmenuextension-example.png \
images/coloreditorfactoryimage.png \
images/dynamiclayouts-example.png \
- images/stylesheet-coffee-plastique.png
+ images/stylesheet-coffee-plastique.png
qhp.Qt.filterAttributes = qt 4.6.0 qtrefdoc
qhp.Qt.customFilters.Qt.name = Qt 4.6.0
@@ -107,7 +107,8 @@ exampledirs = $QTDIR/doc/src \
$QTDIR/examples \
$QTDIR/examples/tutorials \
$QTDIR \
- $QTDIR/qmake/examples
+ $QTDIR/qmake/examples \
+ $QTDIR/src/3rdparty/webkit/WebKit/qt/docs
imagedirs = $QTDIR/doc/src/images \
$QTDIR/examples
outputdir = $QTDIR/doc/html
diff --git a/tools/qdoc3/test/standalone-eclipse-integration.qdocconf b/tools/qdoc3/test/standalone-eclipse-integration.qdocconf
index c3c4291..127b578 100644
--- a/tools/qdoc3/test/standalone-eclipse-integration.qdocconf
+++ b/tools/qdoc3/test/standalone-eclipse-integration.qdocconf
@@ -5,7 +5,7 @@ macro.TheEclipseIntegration = The Qt Eclipse Integration
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">Copyright &copy; 2009 <a href=\"http://doc.trolltech.com\">Nokia Corporation</a></td>\n" \
- "<td width=\"30%\" align=\"center\"><a href=\"http://doc.trolltech.com/trademarks.html\">Trademarks</a></td>\n" \
- "<td width=\"40%\" align=\"right\"><div align=\"right\">Qt Eclipse Integration 1.4.3</div></td>\n" \
+ "<td width=\"30%\" align=\"left\">Copyright &copy; 2009 Nokia Corporation and/or its subsidiary(-ies)</td>\n" \
+ "<td width=\"40%\" align=\"center\"><a href=\"http://doc.qtsoftware.com/trademarks.html\">Trademarks</a></td>\n" \
+ "<td width=\"30%\" align=\"right\"><div align=\"right\">Qt Eclipse Integration 1.4.3</div></td>\n" \
"</tr></table></div></address>"
diff --git a/tools/qtconfig/mainwindow.cpp b/tools/qtconfig/mainwindow.cpp
index 498a6b6..47b1417 100644
--- a/tools/qtconfig/mainwindow.cpp
+++ b/tools/qtconfig/mainwindow.cpp
@@ -999,20 +999,6 @@ void MainWindow::helpAbout()
QMessageBox box(this);
box.setText(tr("<h3>%1</h3>"
"<br/>Version %2"
-#if QT_EDITION == QT_EDITION_OPENSOURCE
- " Open Source Edition</center><p>"
- "This version of Qt Configuration is part of the Qt Open Source Edition, for use "
- "in the development of Open Source applications. "
- "Qt is a comprehensive C++ framework for cross-platform application "
- "development.<br/><br/>"
- "You need a commercial Qt license for development of proprietary (closed "
- "source) applications. Please see <tt>http://qtsoftware.com/company/model"
- ".html</tt> for an overview of Qt licensing."
-#else
- "</center><p>This program is licensed to you under the terms of the "
- "Qt Commercial License Agreement. For details, see the file LICENSE "
- "that came with this software distribution."
-#endif
"<br/><br/>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)."
"<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND,"
" INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A"
diff --git a/tools/qvfb/config.ui b/tools/qvfb/config.ui
index 7a45bfe..82a3d38 100644
--- a/tools/qvfb/config.ui
+++ b/tools/qvfb/config.ui
@@ -1,4 +1,5 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
<comment>*********************************************************************
**
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
@@ -40,181 +41,145 @@
**
*********************************************************************</comment>
<class>Config</class>
- <widget class="QDialog" name="Config" >
- <property name="geometry" >
+ <widget class="QDialog" name="Config">
+ <property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
- <height>650</height>
+ <height>665</height>
</rect>
</property>
- <property name="windowTitle" >
+ <property name="windowTitle">
<string>Configure</string>
</property>
- <property name="sizeGripEnabled" >
+ <property name="sizeGripEnabled">
<bool>true</bool>
</property>
- <layout class="QVBoxLayout" >
- <property name="spacing" >
+ <layout class="QVBoxLayout">
+ <property name="spacing">
<number>6</number>
</property>
- <property name="leftMargin" >
- <number>8</number>
- </property>
- <property name="topMargin" >
- <number>8</number>
- </property>
- <property name="rightMargin" >
- <number>8</number>
- </property>
- <property name="bottomMargin" >
+ <property name="margin">
<number>8</number>
</property>
<item>
- <layout class="QHBoxLayout" >
- <property name="spacing" >
+ <layout class="QHBoxLayout">
+ <property name="spacing">
<number>6</number>
</property>
- <property name="leftMargin" >
- <number>0</number>
- </property>
- <property name="topMargin" >
- <number>0</number>
- </property>
- <property name="rightMargin" >
- <number>0</number>
- </property>
- <property name="bottomMargin" >
+ <property name="margin">
<number>0</number>
</property>
<item>
- <widget class="QGroupBox" name="ButtonGroup1" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
+ <widget class="QGroupBox" name="ButtonGroup1">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="title" >
+ <property name="title">
<string>Size</string>
</property>
- <layout class="QVBoxLayout" >
- <property name="spacing" >
+ <layout class="QVBoxLayout">
+ <property name="spacing">
<number>6</number>
</property>
- <property name="leftMargin" >
- <number>11</number>
- </property>
- <property name="topMargin" >
- <number>11</number>
- </property>
- <property name="rightMargin" >
- <number>11</number>
- </property>
- <property name="bottomMargin" >
+ <property name="margin">
<number>11</number>
</property>
<item>
- <widget class="QRadioButton" name="size_176_220" >
- <property name="text" >
- <string>176x220 "SmartPhone"</string>
+ <widget class="QRadioButton" name="size_176_220">
+ <property name="text">
+ <string>176x220 &quot;SmartPhone&quot;</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="size_240_320" >
- <property name="text" >
- <string>240x320 "PDA"</string>
+ <widget class="QRadioButton" name="size_240_320">
+ <property name="text">
+ <string>240x320 &quot;PDA&quot;</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="size_320_240" >
- <property name="text" >
- <string>320x240 "TV" / "QVGA"</string>
+ <widget class="QRadioButton" name="size_320_240">
+ <property name="text">
+ <string>320x240 &quot;TV&quot; / &quot;QVGA&quot;</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="size_640_480" >
- <property name="text" >
- <string>640x480 "VGA"</string>
+ <widget class="QRadioButton" name="size_640_480">
+ <property name="text">
+ <string>640x480 &quot;VGA&quot;</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="size_800_600" >
- <property name="text" >
+ <widget class="QRadioButton" name="size_800_600">
+ <property name="text">
<string>800x600</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="size_1024_768" >
- <property name="text" >
+ <widget class="QRadioButton" name="size_1024_768">
+ <property name="text">
<string>1024x768</string>
</property>
</widget>
</item>
<item>
- <layout class="QHBoxLayout" >
- <property name="spacing" >
+ <layout class="QHBoxLayout">
+ <property name="spacing">
<number>6</number>
</property>
- <property name="leftMargin" >
- <number>0</number>
- </property>
- <property name="topMargin" >
- <number>0</number>
- </property>
- <property name="rightMargin" >
- <number>0</number>
- </property>
- <property name="bottomMargin" >
+ <property name="margin">
<number>0</number>
</property>
<item>
- <widget class="QRadioButton" name="size_custom" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <widget class="QRadioButton" name="size_custom">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="text" >
+ <property name="text">
<string>Custom</string>
</property>
</widget>
</item>
<item>
- <widget class="QSpinBox" name="size_width" >
- <property name="minimum" >
+ <widget class="QSpinBox" name="size_width">
+ <property name="minimum">
<number>1</number>
</property>
- <property name="maximum" >
+ <property name="maximum">
<number>1280</number>
</property>
- <property name="singleStep" >
+ <property name="singleStep">
<number>16</number>
</property>
- <property name="value" >
+ <property name="value">
<number>400</number>
</property>
</widget>
</item>
<item>
- <widget class="QSpinBox" name="size_height" >
- <property name="minimum" >
+ <widget class="QSpinBox" name="size_height">
+ <property name="minimum">
<number>1</number>
</property>
- <property name="maximum" >
+ <property name="maximum">
<number>1024</number>
</property>
- <property name="singleStep" >
+ <property name="singleStep">
<number>16</number>
</property>
- <property name="value" >
+ <property name="value">
<number>300</number>
</property>
</widget>
@@ -225,135 +190,128 @@
</widget>
</item>
<item>
- <widget class="QGroupBox" name="ButtonGroup2" >
- <property name="title" >
+ <widget class="QGroupBox" name="ButtonGroup2">
+ <property name="title">
<string>Depth</string>
</property>
- <layout class="QVBoxLayout" >
- <property name="spacing" >
- <number>6</number>
- </property>
- <property name="leftMargin" >
- <number>11</number>
- </property>
- <property name="topMargin" >
- <number>11</number>
- </property>
- <property name="rightMargin" >
- <number>11</number>
- </property>
- <property name="bottomMargin" >
- <number>11</number>
- </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
<item>
- <widget class="QRadioButton" name="depth_1" >
- <property name="text" >
+ <widget class="QRadioButton" name="depth_1">
+ <property name="text">
<string>1 bit monochrome</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="depth_4gray" >
- <property name="text" >
+ <widget class="QRadioButton" name="depth_2gray">
+ <property name="text">
+ <string>2 bit grayscale</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="depth_4gray">
+ <property name="text">
<string>4 bit grayscale</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="depth_8" >
- <property name="text" >
+ <widget class="QRadioButton" name="depth_8">
+ <property name="text">
<string>8 bit</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="depth_12" >
- <property name="text" >
+ <widget class="QRadioButton" name="depth_12">
+ <property name="text">
<string>12 (16) bit</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="depth_15" >
- <property name="text" >
+ <widget class="QRadioButton" name="depth_15">
+ <property name="text">
<string>15 bit</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="depth_16" >
- <property name="text" >
+ <widget class="QRadioButton" name="depth_16">
+ <property name="text">
<string>16 bit</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="depth_18" >
- <property name="text" >
+ <widget class="QRadioButton" name="depth_18">
+ <property name="text">
<string>18 bit</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="depth_24" >
- <property name="text" >
+ <widget class="QRadioButton" name="depth_24">
+ <property name="text">
<string>24 bit</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="depth_32" >
- <property name="text" >
+ <widget class="QRadioButton" name="depth_32">
+ <property name="text">
<string>32 bit</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="depth_32_argb" >
- <property name="text" >
+ <widget class="QRadioButton" name="depth_32_argb">
+ <property name="text">
<string>32 bit ARGB</string>
</property>
</widget>
</item>
+ <item>
+ <widget class="QCheckBox" name="rgbSwapped">
+ <property name="toolTip">
+ <string>Swap red and blue channels</string>
+ </property>
+ <property name="text">
+ <string>BGR format</string>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
- <layout class="QHBoxLayout" >
- <property name="spacing" >
+ <layout class="QHBoxLayout">
+ <property name="spacing">
<number>6</number>
</property>
- <property name="leftMargin" >
- <number>0</number>
- </property>
- <property name="topMargin" >
- <number>0</number>
- </property>
- <property name="rightMargin" >
- <number>0</number>
- </property>
- <property name="bottomMargin" >
+ <property name="margin">
<number>0</number>
</property>
<item>
- <widget class="QLabel" name="TextLabel1_3" >
- <property name="text" >
+ <widget class="QLabel" name="TextLabel1_3">
+ <property name="text">
<string>Skin</string>
</property>
</widget>
</item>
<item>
- <widget class="QComboBox" name="skin" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+ <widget class="QComboBox" name="skin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
- <property name="text" >
+ <property name="text">
<string>None</string>
</property>
</item>
@@ -362,25 +320,25 @@
</layout>
</item>
<item>
- <widget class="QCheckBox" name="touchScreen" >
- <property name="text" >
+ <widget class="QCheckBox" name="touchScreen">
+ <property name="text">
<string>Emulate touch screen (no mouse move)</string>
</property>
</widget>
</item>
<item>
- <widget class="QCheckBox" name="lcdScreen" >
- <property name="text" >
+ <widget class="QCheckBox" name="lcdScreen">
+ <property name="text">
<string>Emulate LCD screen (Only with fixed zoom of 3.0 times magnification)</string>
</property>
</widget>
</item>
<item>
<spacer>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Vertical</enum>
</property>
- <property name="sizeHint" >
+ <property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
@@ -389,204 +347,192 @@
</spacer>
</item>
<item>
- <widget class="QLabel" name="TextLabel1" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
+ <widget class="QLabel" name="TextLabel1">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="text" >
- <string>&lt;p>Note that any applications using the virtual framebuffer will be terminated if you change the Size or Depth &lt;i>above&lt;/i>. You may freely modify the Gamma &lt;i>below&lt;/i>.</string>
+ <property name="text">
+ <string>&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;.</string>
</property>
- <property name="wordWrap" >
+ <property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
- <widget class="QGroupBox" name="GroupBox1" >
- <property name="title" >
+ <widget class="QGroupBox" name="GroupBox1">
+ <property name="title">
<string>Gamma</string>
</property>
- <layout class="QGridLayout" >
- <property name="leftMargin" >
- <number>11</number>
- </property>
- <property name="topMargin" >
- <number>11</number>
- </property>
- <property name="rightMargin" >
- <number>11</number>
- </property>
- <property name="bottomMargin" >
+ <layout class="QGridLayout">
+ <property name="margin">
<number>11</number>
</property>
- <property name="horizontalSpacing" >
+ <property name="spacing">
<number>6</number>
</property>
- <property name="verticalSpacing" >
- <number>6</number>
- </property>
- <item row="6" column="0" >
- <widget class="QLabel" name="TextLabel3" >
- <property name="text" >
+ <item row="6" column="0">
+ <widget class="QLabel" name="TextLabel3">
+ <property name="text">
<string>Blue</string>
</property>
</widget>
</item>
- <item row="6" column="1" >
- <widget class="QSlider" name="bslider" >
- <property name="palette" >
+ <item row="6" column="1">
+ <widget class="QSlider" name="bslider">
+ <property name="palette">
<palette>
<active>
- <colorrole role="WindowText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="WindowText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Button" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Button">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Light" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Light">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>127</red>
<green>127</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Midlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Midlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>38</red>
<green>38</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Dark" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Dark">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>127</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Mid" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Mid">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>170</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Text" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Text">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="BrightText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="BrightText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="ButtonText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="ButtonText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Base" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Window" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>220</red>
<green>220</green>
<blue>220</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Shadow" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Shadow">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Highlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Highlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>10</red>
<green>95</green>
<blue>137</blue>
</color>
</brush>
</colorrole>
- <colorrole role="HighlightedText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="HighlightedText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Link" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Link">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="LinkVisited" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="LinkVisited">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="AlternateBase" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="AlternateBase">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>232</red>
<green>232</green>
<blue>232</blue>
@@ -595,153 +541,153 @@
</colorrole>
</active>
<inactive>
- <colorrole role="WindowText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="WindowText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Button" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Button">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Light" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Light">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>127</red>
<green>127</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Midlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Midlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>38</red>
<green>38</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Dark" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Dark">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>127</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Mid" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Mid">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>170</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Text" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Text">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="BrightText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="BrightText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="ButtonText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="ButtonText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Base" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Window" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>220</red>
<green>220</green>
<blue>220</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Shadow" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Shadow">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Highlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Highlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>10</red>
<green>95</green>
<blue>137</blue>
</color>
</brush>
</colorrole>
- <colorrole role="HighlightedText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="HighlightedText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Link" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Link">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="LinkVisited" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="LinkVisited">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="AlternateBase" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="AlternateBase">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>232</red>
<green>232</green>
<blue>232</blue>
@@ -750,153 +696,153 @@
</colorrole>
</inactive>
<disabled>
- <colorrole role="WindowText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="WindowText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Button" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Button">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Light" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Light">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>127</red>
<green>127</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Midlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Midlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>38</red>
<green>38</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Dark" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Dark">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>127</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Mid" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Mid">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>170</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Text" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Text">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="BrightText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="BrightText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="ButtonText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="ButtonText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Base" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Window" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>220</red>
<green>220</green>
<blue>220</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Shadow" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Shadow">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Highlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Highlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>10</red>
<green>95</green>
<blue>137</blue>
</color>
</brush>
</colorrole>
- <colorrole role="HighlightedText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="HighlightedText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Link" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Link">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="LinkVisited" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="LinkVisited">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="AlternateBase" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="AlternateBase">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>232</red>
<green>232</green>
<blue>232</blue>
@@ -906,183 +852,183 @@
</disabled>
</palette>
</property>
- <property name="maximum" >
+ <property name="maximum">
<number>400</number>
</property>
- <property name="value" >
+ <property name="value">
<number>100</number>
</property>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
- <item row="6" column="2" >
- <widget class="QLabel" name="blabel" >
- <property name="text" >
+ <item row="6" column="2">
+ <widget class="QLabel" name="blabel">
+ <property name="text">
<string>1.0</string>
</property>
</widget>
</item>
- <item row="4" column="0" >
- <widget class="QLabel" name="TextLabel2" >
- <property name="text" >
+ <item row="4" column="0">
+ <widget class="QLabel" name="TextLabel2">
+ <property name="text">
<string>Green</string>
</property>
</widget>
</item>
- <item row="4" column="1" >
- <widget class="QSlider" name="gslider" >
- <property name="palette" >
+ <item row="4" column="1">
+ <widget class="QSlider" name="gslider">
+ <property name="palette">
<palette>
<active>
- <colorrole role="WindowText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="WindowText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Button" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Button">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>255</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Light" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Light">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>127</red>
<green>255</green>
<blue>127</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Midlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Midlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>38</red>
<green>255</green>
<blue>38</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Dark" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Dark">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>127</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Mid" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Mid">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>170</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Text" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Text">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="BrightText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="BrightText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="ButtonText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="ButtonText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Base" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Window" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>220</red>
<green>220</green>
<blue>220</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Shadow" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Shadow">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Highlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Highlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>10</red>
<green>95</green>
<blue>137</blue>
</color>
</brush>
</colorrole>
- <colorrole role="HighlightedText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="HighlightedText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Link" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Link">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="LinkVisited" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="LinkVisited">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="AlternateBase" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="AlternateBase">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>232</red>
<green>232</green>
<blue>232</blue>
@@ -1091,153 +1037,153 @@
</colorrole>
</active>
<inactive>
- <colorrole role="WindowText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="WindowText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Button" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Button">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>255</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Light" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Light">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>127</red>
<green>255</green>
<blue>127</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Midlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Midlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>38</red>
<green>255</green>
<blue>38</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Dark" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Dark">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>127</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Mid" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Mid">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>170</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Text" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Text">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="BrightText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="BrightText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="ButtonText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="ButtonText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Base" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Window" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>220</red>
<green>220</green>
<blue>220</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Shadow" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Shadow">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Highlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Highlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>10</red>
<green>95</green>
<blue>137</blue>
</color>
</brush>
</colorrole>
- <colorrole role="HighlightedText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="HighlightedText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Link" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Link">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="LinkVisited" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="LinkVisited">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="AlternateBase" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="AlternateBase">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>232</red>
<green>232</green>
<blue>232</blue>
@@ -1246,153 +1192,153 @@
</colorrole>
</inactive>
<disabled>
- <colorrole role="WindowText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="WindowText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Button" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Button">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>255</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Light" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Light">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>127</red>
<green>255</green>
<blue>127</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Midlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Midlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>38</red>
<green>255</green>
<blue>38</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Dark" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Dark">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>127</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Mid" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Mid">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>170</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Text" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Text">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="BrightText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="BrightText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="ButtonText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="ButtonText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Base" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Window" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>220</red>
<green>220</green>
<blue>220</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Shadow" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Shadow">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Highlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Highlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>10</red>
<green>95</green>
<blue>137</blue>
</color>
</brush>
</colorrole>
- <colorrole role="HighlightedText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="HighlightedText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Link" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Link">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="LinkVisited" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="LinkVisited">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="AlternateBase" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="AlternateBase">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>232</red>
<green>232</green>
<blue>232</blue>
@@ -1402,190 +1348,190 @@
</disabled>
</palette>
</property>
- <property name="maximum" >
+ <property name="maximum">
<number>400</number>
</property>
- <property name="value" >
+ <property name="value">
<number>100</number>
</property>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
- <item row="4" column="2" >
- <widget class="QLabel" name="glabel" >
- <property name="text" >
+ <item row="4" column="2">
+ <widget class="QLabel" name="glabel">
+ <property name="text">
<string>1.0</string>
</property>
</widget>
</item>
- <item row="0" column="0" >
- <widget class="QLabel" name="TextLabel7" >
- <property name="text" >
+ <item row="0" column="0">
+ <widget class="QLabel" name="TextLabel7">
+ <property name="text">
<string>All</string>
</property>
</widget>
</item>
- <item row="0" column="2" >
- <widget class="QLabel" name="TextLabel8" >
- <property name="text" >
+ <item row="0" column="2">
+ <widget class="QLabel" name="TextLabel8">
+ <property name="text">
<string>1.0</string>
</property>
</widget>
</item>
- <item row="0" column="1" >
- <widget class="QSlider" name="gammaslider" >
- <property name="palette" >
+ <item row="0" column="1">
+ <widget class="QSlider" name="gammaslider">
+ <property name="palette">
<palette>
<active>
- <colorrole role="WindowText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="WindowText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Button" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Button">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Light" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Light">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Midlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Midlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Dark" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Dark">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>127</red>
<green>127</green>
<blue>127</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Mid" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Mid">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>170</red>
<green>170</green>
<blue>170</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Text" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Text">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="BrightText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="BrightText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="ButtonText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="ButtonText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Base" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Window" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>220</red>
<green>220</green>
<blue>220</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Shadow" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Shadow">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Highlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Highlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>10</red>
<green>95</green>
<blue>137</blue>
</color>
</brush>
</colorrole>
- <colorrole role="HighlightedText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="HighlightedText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Link" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Link">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="LinkVisited" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="LinkVisited">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="AlternateBase" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="AlternateBase">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>232</red>
<green>232</green>
<blue>232</blue>
@@ -1594,153 +1540,153 @@
</colorrole>
</active>
<inactive>
- <colorrole role="WindowText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="WindowText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Button" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Button">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Light" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Light">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Midlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Midlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Dark" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Dark">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>127</red>
<green>127</green>
<blue>127</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Mid" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Mid">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>170</red>
<green>170</green>
<blue>170</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Text" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Text">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="BrightText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="BrightText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="ButtonText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="ButtonText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Base" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Window" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>220</red>
<green>220</green>
<blue>220</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Shadow" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Shadow">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Highlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Highlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>10</red>
<green>95</green>
<blue>137</blue>
</color>
</brush>
</colorrole>
- <colorrole role="HighlightedText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="HighlightedText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Link" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Link">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="LinkVisited" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="LinkVisited">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="AlternateBase" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="AlternateBase">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>232</red>
<green>232</green>
<blue>232</blue>
@@ -1749,153 +1695,153 @@
</colorrole>
</inactive>
<disabled>
- <colorrole role="WindowText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="WindowText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Button" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Button">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Light" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Light">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Midlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Midlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Dark" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Dark">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>127</red>
<green>127</green>
<blue>127</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Mid" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Mid">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>170</red>
<green>170</green>
<blue>170</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Text" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Text">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="BrightText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="BrightText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="ButtonText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="ButtonText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Base" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Window" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>220</red>
<green>220</green>
<blue>220</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Shadow" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Shadow">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Highlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Highlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>10</red>
<green>95</green>
<blue>137</blue>
</color>
</brush>
</colorrole>
- <colorrole role="HighlightedText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="HighlightedText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Link" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Link">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="LinkVisited" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="LinkVisited">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="AlternateBase" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="AlternateBase">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>232</red>
<green>232</green>
<blue>232</blue>
@@ -1905,183 +1851,183 @@
</disabled>
</palette>
</property>
- <property name="maximum" >
+ <property name="maximum">
<number>400</number>
</property>
- <property name="value" >
+ <property name="value">
<number>100</number>
</property>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
- <item row="2" column="0" >
- <widget class="QLabel" name="TextLabel1_2" >
- <property name="text" >
+ <item row="2" column="0">
+ <widget class="QLabel" name="TextLabel1_2">
+ <property name="text">
<string>Red</string>
</property>
</widget>
</item>
- <item row="2" column="2" >
- <widget class="QLabel" name="rlabel" >
- <property name="text" >
+ <item row="2" column="2">
+ <widget class="QLabel" name="rlabel">
+ <property name="text">
<string>1.0</string>
</property>
</widget>
</item>
- <item row="2" column="1" >
- <widget class="QSlider" name="rslider" >
- <property name="palette" >
+ <item row="2" column="1">
+ <widget class="QSlider" name="rslider">
+ <property name="palette">
<palette>
<active>
- <colorrole role="WindowText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="WindowText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Button" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Button">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Light" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Light">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>127</green>
<blue>127</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Midlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Midlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>38</green>
<blue>38</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Dark" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Dark">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>127</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Mid" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Mid">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>170</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Text" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Text">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="BrightText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="BrightText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="ButtonText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="ButtonText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Base" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Window" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>220</red>
<green>220</green>
<blue>220</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Shadow" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Shadow">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Highlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Highlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>10</red>
<green>95</green>
<blue>137</blue>
</color>
</brush>
</colorrole>
- <colorrole role="HighlightedText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="HighlightedText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Link" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Link">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="LinkVisited" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="LinkVisited">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="AlternateBase" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="AlternateBase">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>232</red>
<green>232</green>
<blue>232</blue>
@@ -2090,153 +2036,153 @@
</colorrole>
</active>
<inactive>
- <colorrole role="WindowText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="WindowText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Button" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Button">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Light" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Light">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>127</green>
<blue>127</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Midlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Midlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>38</green>
<blue>38</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Dark" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Dark">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>127</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Mid" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Mid">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>170</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Text" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Text">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="BrightText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="BrightText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="ButtonText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="ButtonText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Base" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Window" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>220</red>
<green>220</green>
<blue>220</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Shadow" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Shadow">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Highlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Highlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>10</red>
<green>95</green>
<blue>137</blue>
</color>
</brush>
</colorrole>
- <colorrole role="HighlightedText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="HighlightedText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Link" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Link">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="LinkVisited" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="LinkVisited">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="AlternateBase" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="AlternateBase">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>232</red>
<green>232</green>
<blue>232</blue>
@@ -2245,153 +2191,153 @@
</colorrole>
</inactive>
<disabled>
- <colorrole role="WindowText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="WindowText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Button" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Button">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Light" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Light">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>127</green>
<blue>127</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Midlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Midlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>38</green>
<blue>38</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Dark" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Dark">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>127</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Mid" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Mid">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>170</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Text" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Text">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="BrightText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="BrightText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="ButtonText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="ButtonText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Base" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Window" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>220</red>
<green>220</green>
<blue>220</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Shadow" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Shadow">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Highlight" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Highlight">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>10</red>
<green>95</green>
<blue>137</blue>
</color>
</brush>
</colorrole>
- <colorrole role="HighlightedText" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="HighlightedText">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
- <colorrole role="Link" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="Link">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="LinkVisited" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="LinkVisited">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
- <colorrole role="AlternateBase" >
- <brush brushstyle="SolidPattern" >
- <color alpha="255" >
+ <colorrole role="AlternateBase">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
<red>232</red>
<green>232</green>
<blue>232</blue>
@@ -2401,53 +2347,44 @@
</disabled>
</palette>
</property>
- <property name="maximum" >
+ <property name="maximum">
<number>400</number>
</property>
- <property name="value" >
+ <property name="value">
<number>100</number>
</property>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
- <item row="8" column="0" colspan="3" >
- <widget class="QPushButton" name="PushButton3" >
- <property name="text" >
+ <item row="8" column="0" colspan="3">
+ <widget class="QPushButton" name="PushButton3">
+ <property name="text">
<string>Set all to 1.0</string>
</property>
</widget>
</item>
- <item rowspan="9" row="0" column="3" >
- <widget class="GammaView" native="1" name="MyCustomWidget1" />
+ <item row="0" column="3" rowspan="9">
+ <widget class="GammaView" name="MyCustomWidget1" native="true"/>
</item>
</layout>
</widget>
</item>
<item>
- <layout class="QHBoxLayout" >
- <property name="spacing" >
+ <layout class="QHBoxLayout">
+ <property name="spacing">
<number>6</number>
</property>
- <property name="leftMargin" >
- <number>0</number>
- </property>
- <property name="topMargin" >
- <number>0</number>
- </property>
- <property name="rightMargin" >
- <number>0</number>
- </property>
- <property name="bottomMargin" >
+ <property name="margin">
<number>0</number>
</property>
<item>
<spacer>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
- <property name="sizeHint" >
+ <property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
@@ -2456,24 +2393,24 @@
</spacer>
</item>
<item>
- <widget class="QPushButton" name="buttonOk" >
- <property name="text" >
+ <widget class="QPushButton" name="buttonOk">
+ <property name="text">
<string>&amp;OK</string>
</property>
- <property name="autoDefault" >
+ <property name="autoDefault">
<bool>true</bool>
</property>
- <property name="default" >
+ <property name="default">
<bool>true</bool>
</property>
</widget>
</item>
<item>
- <widget class="QPushButton" name="buttonCancel" >
- <property name="text" >
+ <widget class="QPushButton" name="buttonCancel">
+ <property name="text">
<string>&amp;Cancel</string>
</property>
- <property name="autoDefault" >
+ <property name="autoDefault">
<bool>true</bool>
</property>
</widget>
@@ -2482,7 +2419,7 @@
</item>
</layout>
</widget>
- <layoutdefault spacing="6" margin="11" />
+ <layoutdefault spacing="6" margin="11"/>
<customwidgets>
<customwidget>
<class>GammaView</class>
@@ -2498,11 +2435,11 @@
<receiver>size_custom</receiver>
<slot>click()</slot>
<hints>
- <hint type="sourcelabel" >
+ <hint type="sourcelabel">
<x>152</x>
<y>193</y>
</hint>
- <hint type="destinationlabel" >
+ <hint type="destinationlabel">
<x>94</x>
<y>199</y>
</hint>
@@ -2514,11 +2451,11 @@
<receiver>size_custom</receiver>
<slot>click()</slot>
<hints>
- <hint type="sourcelabel" >
+ <hint type="sourcelabel">
<x>259</x>
<y>196</y>
</hint>
- <hint type="destinationlabel" >
+ <hint type="destinationlabel">
<x>64</x>
<y>188</y>
</hint>
diff --git a/tools/qvfb/qvfb.cpp b/tools/qvfb/qvfb.cpp
index b6a715c..8de638f 100644
--- a/tools/qvfb/qvfb.cpp
+++ b/tools/qvfb/qvfb.cpp
@@ -217,16 +217,10 @@ QVFb::QVFb( int display_id, int w, int h, int d, int r, const QString &skin, Dis
setWindowIcon( pix );
rateDlg = 0;
refreshRate = 30;
-#if QT_VERSION >= 0x030000
- // When compiling with Qt 3 we need to create the menu first to
- // avoid scroll bars in the main window
+ // Create the menu first to avoid scroll bars in the main window
createMenu( menuBar() );
init( display_id, w, h, d, r, skin );
enableCursor( true );
-#else
- init( display_id, w, h, d, r, skin );
- createMenu( menuBar() );
-#endif
}
QVFb::~QVFb()
@@ -354,9 +348,7 @@ void QVFb::init( int display_id, int pw, int ph, int d, int r, const QString& sk
scroller->setWidget(view);
view->setContentsMargins( 0, 0, 0, 0 );
setCentralWidget(scroller);
-#if QT_VERSION >= 0x030000
ph += 2; // avoid scrollbar
-#endif
scroller->show();
// delete defaultbuttons.conf if it was left behind...
unlink(QFileInfo(QString("/tmp/qtembedded-%1/defaultbuttons.conf").arg(view->displayId())).absoluteFilePath().toLatin1().constData());
@@ -643,6 +635,7 @@ void QVFb::configure()
config->touchScreen->setChecked(view->touchScreenEmulation());
config->lcdScreen->setChecked(view->lcdScreenEmulation());
chooseDepth(view->displayDepth(), view->displayFormat());
+ config->rgbSwapped->setChecked(view->rgbSwapped());
connect(config->skin, SIGNAL(activated(int)), this, SLOT(skinConfigChosen(int)));
if ( view->gammaRed() == view->gammaGreen() && view->gammaGreen() == view->gammaBlue() ) {
config->gammaslider->setValue(int(view->gammaRed()*400));
@@ -686,6 +679,8 @@ void QVFb::configure()
int d;
if ( config->depth_1->isChecked() )
d=1;
+ else if ( config->depth_2gray->isChecked() )
+ d=2;
else if ( config->depth_4gray->isChecked() )
d=4;
else if ( config->depth_8->isChecked() )
@@ -716,6 +711,7 @@ void QVFb::configure()
}
view->setViewFormat(displayFormat);
view->setTouchscreenEmulation( config->touchScreen->isChecked() );
+ view->setRgbSwapped(config->rgbSwapped->isChecked());
bool lcdEmulation = config->lcdScreen->isChecked();
view->setLcdScreenEmulation( lcdEmulation );
if ( lcdEmulation )
@@ -749,6 +745,7 @@ void QVFb::chooseSize(const QSize& sz)
void QVFb::chooseDepth(int depth, QVFbView::PixelFormat displayFormat)
{
config->depth_1->setChecked(depth==1);
+ config->depth_2gray->setChecked(depth==2);
config->depth_4gray->setChecked(depth==4);
config->depth_8->setChecked(depth==8);
config->depth_12->setChecked(depth==12);
diff --git a/tools/qvfb/qvfbview.cpp b/tools/qvfb/qvfbview.cpp
index 53a5360..e7c99ed 100644
--- a/tools/qvfb/qvfbview.cpp
+++ b/tools/qvfb/qvfbview.cpp
@@ -89,7 +89,7 @@ QVFbAbstractView::~QVFbAbstractView()
QVFbView::QVFbView(int id, int w, int h, int d, Rotation r, QWidget *parent)
: QVFbAbstractView(parent),
- viewdepth(d), viewFormat(DefaultFormat), rsh(0), gsh(0), bsh(0), rmax(15), gmax(15), bmax(15),
+ viewdepth(d), viewFormat(DefaultFormat), rgb_swapped(0), rsh(0), gsh(0), bsh(0), rmax(15), gmax(15), bmax(15),
contentsWidth(w), contentsHeight(h), gred(1.0), ggreen(1.0), gblue(1.0),
gammatable(0), refreshRate(30), animation(0),
hzm(0.0), vzm(0.0), mView(0),
@@ -457,6 +457,67 @@ QImage QVFbView::getBuffer(const QRect &r, int &leading) const
}
break;
}
+
+ case 2: {
+ if (requiredSize > buffer.size())
+ buffer.resize(requiredSize);
+
+ // XXX: hw: replace by drawhelper functionality
+
+ const int pixelsPerByte = 4;
+ quint8 *src = reinterpret_cast<quint8*>(mView->data())
+ + r.y() * mView->linestep() + r.x() / pixelsPerByte;
+ const int align = qMin(r.width(), (4 - (r.x() & 3)) & 3);
+ const int doAlign = (align > 0 ? 1 : 0);
+ const int tail = qMin(r.width(), (r.width() - align) & 3);
+ const int doTail = (tail > 0 ? 1 : 0);
+ const int width8 = (r.width() - align) / pixelsPerByte;
+ const int stride = mView->linestep() - (width8 + doAlign);
+
+ uchar *b = reinterpret_cast<uchar*>(buffer.data());
+ img = QImage(b, r.width(), r.height(), QImage::Format_RGB32);
+ for (int y = 0; y < r.height(); ++y) {
+ quint32 *dest = reinterpret_cast<quint32*>(img.scanLine(y));
+ quint8 c;
+
+ if (doAlign) {
+ switch (align) {
+ case 3: c = ((*src & 0x30) >> 4) * 0x55;
+ *dest++ = qRgb(c, c, c);
+ case 2: c = ((*src & 0x0c) >> 2) * 0x55;
+ *dest++ = qRgb(c, c, c);
+ case 1: c = ((*src & 0x03)) * 0x55;
+ *dest++ = qRgb(c, c, c);
+ }
+ ++src;
+ }
+ for (int i = 0; i < width8; ++i) {
+ c = ((*src & 0xc0) >> 6) * 0x55;
+ *dest++ = qRgb(c, c, c);
+ c = ((*src & 0x30) >> 4) * 0x55;
+ *dest++ = qRgb(c, c, c);
+ c = ((*src & 0x0c) >> 2) * 0x55;
+ *dest++ = qRgb(c, c, c);
+ c = ((*src & 0x03)) * 0x55;
+ *dest++ = qRgb(c, c, c);
+
+ ++src;
+ }
+ if (doTail) {
+ switch (tail) {
+ case 3: c = ((*src & 0x0c) >> 2) * 0x55;
+ dest[2] = qRgb(c, c, c);
+ case 2: c = ((*src & 0x30) >> 4) * 0x55;
+ dest[1] = qRgb(c, c, c);
+ case 1: c = ((*src & 0xc0) >> 6) * 0x55;
+ dest[0] = qRgb(c, c, c);
+ }
+ }
+ src += stride;
+ }
+ break;
+ }
+
case 4: {
if (requiredSize > buffer.size())
buffer.resize(requiredSize);
@@ -540,6 +601,9 @@ QImage QVFbView::getBuffer(const QRect &r, int &leading) const
break;
}
+ if (rgb_swapped)
+ img = img.rgbSwapped();
+
if ( brightness != 255 ) {
if (img.format() == QImage::Format_Indexed8) {
QVector<QRgb> c = img.colorTable();
diff --git a/tools/qvfb/qvfbview.h b/tools/qvfb/qvfbview.h
index d533613..1d43bdc 100644
--- a/tools/qvfb/qvfbview.h
+++ b/tools/qvfb/qvfbview.h
@@ -77,6 +77,7 @@ public:
virtual int displayHeight() const = 0;
virtual int displayDepth() const = 0;
virtual PixelFormat displayFormat() const { return DefaultFormat; }
+ virtual bool rgbSwapped() const { return false; }
virtual Rotation displayRotation() const = 0;
virtual void setGamma(double gr, double gg, double gb) = 0;
@@ -105,6 +106,7 @@ public slots:
virtual void skinKeyPressEvent( int code, const QString& text, bool autorep=FALSE ) = 0;
virtual void skinKeyReleaseEvent( int code, const QString& text, bool autorep=FALSE ) = 0;
virtual void setViewFormat(PixelFormat) {}
+ virtual void setRgbSwapped( bool ) {};
virtual void embedDisplay(WId) {}
};
@@ -120,6 +122,7 @@ public:
int displayHeight() const;
int displayDepth() const;
PixelFormat displayFormat() const;
+ bool rgbSwapped() const { return rgb_swapped; }
Rotation displayRotation() const;
bool touchScreenEmulation() const { return emulateTouchscreen; }
@@ -151,6 +154,7 @@ public slots:
void skinKeyPressEvent(int code, const QString& text, bool autorep=FALSE);
void skinKeyReleaseEvent(int code, const QString& text, bool autorep=FALSE);
void setViewFormat(PixelFormat);
+ void setRgbSwapped(bool b) { rgb_swapped = b; }
#ifdef Q_WS_X11
void embedDisplay(WId id);
#endif
@@ -180,6 +184,7 @@ private:
void setDirty(const QRect&);
int viewdepth; // "faked" depth
PixelFormat viewFormat;
+ bool rgb_swapped;
int rsh;
int gsh;
int bsh;
diff --git a/tools/shared/qtpropertybrowser/qtbuttonpropertybrowser.cpp b/tools/shared/qtpropertybrowser/qtbuttonpropertybrowser.cpp
index ecdaf16..09394e7 100644
--- a/tools/shared/qtpropertybrowser/qtbuttonpropertybrowser.cpp
+++ b/tools/shared/qtpropertybrowser/qtbuttonpropertybrowser.cpp
@@ -48,9 +48,7 @@
#include <QtGui/QToolButton>
#include <QtGui/QStyle>
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
class QtButtonPropertyBrowserPrivate
{
@@ -626,8 +624,6 @@ bool QtButtonPropertyBrowser::isExpanded(QtBrowserItem *item) const
return false;
}
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
#include "moc_qtbuttonpropertybrowser.cpp"
diff --git a/tools/shared/qtpropertybrowser/qtbuttonpropertybrowser.h b/tools/shared/qtpropertybrowser/qtbuttonpropertybrowser.h
index 0833c2d..0238f5c 100644
--- a/tools/shared/qtpropertybrowser/qtbuttonpropertybrowser.h
+++ b/tools/shared/qtpropertybrowser/qtbuttonpropertybrowser.h
@@ -44,9 +44,7 @@
#include "qtpropertybrowser.h"
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
class QtButtonPropertyBrowserPrivate;
@@ -82,8 +80,6 @@ private:
};
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
#endif
diff --git a/tools/shared/qtpropertybrowser/qteditorfactory.cpp b/tools/shared/qtpropertybrowser/qteditorfactory.cpp
index 3e9336f..a2e3917 100644
--- a/tools/shared/qtpropertybrowser/qteditorfactory.cpp
+++ b/tools/shared/qtpropertybrowser/qteditorfactory.cpp
@@ -62,9 +62,7 @@
# pragma warning(disable: 4786) /* MS VS 6: truncating debug info after 255 characters */
#endif
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
// Set a hard coded left margin to account for the indentation
// of the tree view icon when switching to an editor
@@ -2583,9 +2581,7 @@ void QtFontEditorFactory::disconnectPropertyManager(QtFontPropertyManager *manag
disconnect(manager, SIGNAL(valueChanged(QtProperty*,QFont)), this, SLOT(slotPropertyChanged(QtProperty*,QFont)));
}
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
#include "moc_qteditorfactory.cpp"
#include "qteditorfactory.moc"
diff --git a/tools/shared/qtpropertybrowser/qteditorfactory.h b/tools/shared/qtpropertybrowser/qteditorfactory.h
index 044dd5e..d86f9f6 100644
--- a/tools/shared/qtpropertybrowser/qteditorfactory.h
+++ b/tools/shared/qtpropertybrowser/qteditorfactory.h
@@ -44,9 +44,7 @@
#include "qtpropertymanager.h"
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
class QtSpinBoxFactoryPrivate;
@@ -394,8 +392,6 @@ private:
Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QFont &))
};
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
#endif
diff --git a/tools/shared/qtpropertybrowser/qtgroupboxpropertybrowser.cpp b/tools/shared/qtpropertybrowser/qtgroupboxpropertybrowser.cpp
index d7c8f0b..9ac9744 100644
--- a/tools/shared/qtpropertybrowser/qtgroupboxpropertybrowser.cpp
+++ b/tools/shared/qtpropertybrowser/qtgroupboxpropertybrowser.cpp
@@ -47,9 +47,7 @@
#include <QtCore/QTimer>
#include <QtCore/QMap>
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
class QtGroupBoxPropertyBrowserPrivate
{
@@ -528,8 +526,6 @@ void QtGroupBoxPropertyBrowser::itemChanged(QtBrowserItem *item)
d_ptr->propertyChanged(item);
}
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
#include "moc_qtgroupboxpropertybrowser.cpp"
diff --git a/tools/shared/qtpropertybrowser/qtgroupboxpropertybrowser.h b/tools/shared/qtpropertybrowser/qtgroupboxpropertybrowser.h
index 29422bd..6d1b2b1 100644
--- a/tools/shared/qtpropertybrowser/qtgroupboxpropertybrowser.h
+++ b/tools/shared/qtpropertybrowser/qtgroupboxpropertybrowser.h
@@ -44,9 +44,7 @@
#include "qtpropertybrowser.h"
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
class QtGroupBoxPropertyBrowserPrivate;
@@ -73,8 +71,6 @@ private:
};
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
#endif
diff --git a/tools/shared/qtpropertybrowser/qtpropertybrowser.cpp b/tools/shared/qtpropertybrowser/qtpropertybrowser.cpp
index 7254245..cca082d 100644
--- a/tools/shared/qtpropertybrowser/qtpropertybrowser.cpp
+++ b/tools/shared/qtpropertybrowser/qtpropertybrowser.cpp
@@ -48,9 +48,7 @@
# pragma warning(disable: 4786) /* MS VS 6: truncating debug info after 255 characters */
#endif
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
class QtPropertyPrivate
{
@@ -1958,8 +1956,6 @@ void QtAbstractPropertyBrowser::setCurrentItem(QtBrowserItem *item)
emit currentItemChanged(item);
}
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
#include "moc_qtpropertybrowser.cpp"
diff --git a/tools/shared/qtpropertybrowser/qtpropertybrowser.h b/tools/shared/qtpropertybrowser/qtpropertybrowser.h
index 649a9e3..20ffb81 100644
--- a/tools/shared/qtpropertybrowser/qtpropertybrowser.h
+++ b/tools/shared/qtpropertybrowser/qtpropertybrowser.h
@@ -45,11 +45,7 @@
#include <QtGui/QWidget>
#include <QtCore/QSet>
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
-
-
class QtAbstractPropertyManager;
class QtPropertyPrivate;
@@ -308,8 +304,6 @@ private:
};
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
#endif // QTPROPERTYBROWSER_H
diff --git a/tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp b/tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp
index d689e60..94b0285 100644
--- a/tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp
+++ b/tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp
@@ -48,9 +48,7 @@
#include <QtGui/QLineEdit>
#include <QtGui/QMenu>
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
QtCursorDatabase::QtCursorDatabase()
{
@@ -426,9 +424,4 @@ bool QtKeySequenceEdit::event(QEvent *e)
return QWidget::event(e);
}
-
-
-
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
diff --git a/tools/shared/qtpropertybrowser/qtpropertybrowserutils_p.h b/tools/shared/qtpropertybrowser/qtpropertybrowserutils_p.h
index 2eab3c8..fe8c6d1 100644
--- a/tools/shared/qtpropertybrowser/qtpropertybrowserutils_p.h
+++ b/tools/shared/qtpropertybrowser/qtpropertybrowserutils_p.h
@@ -58,9 +58,7 @@
#include <QtGui/QWidget>
#include <QtCore/QStringList>
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
class QMouseEvent;
class QCheckBox;
@@ -154,8 +152,6 @@ private:
QLineEdit *m_lineEdit;
};
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
#endif
diff --git a/tools/shared/qtpropertybrowser/qtpropertymanager.cpp b/tools/shared/qtpropertybrowser/qtpropertymanager.cpp
index 8b84eb9..47b8c9b 100644
--- a/tools/shared/qtpropertybrowser/qtpropertymanager.cpp
+++ b/tools/shared/qtpropertybrowser/qtpropertymanager.cpp
@@ -61,9 +61,7 @@
# pragma warning(disable: 4786) /* MS VS 6: truncating debug info after 255 characters */
#endif
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
template <class PrivateData, class Value>
static void setSimpleMinimumData(PrivateData *data, const Value &minVal)
@@ -421,23 +419,6 @@ private:
QMetaEnum m_policyEnum;
};
-#if QT_VERSION < 0x040300
-
-static QList<QLocale::Country> countriesForLanguage(QLocale::Language language)
-{
- QList<QLocale::Country> countries;
- QLocale::Country country = QLocale::AnyCountry;
- while (country <= QLocale::LastCountry) {
- QLocale locale(language, country);
- if (locale.language() == language && !countries.contains(locale.country()))
- countries << locale.country();
- country = (QLocale::Country)((uint)country + 1); // ++country
- }
- return countries;
-}
-
-#endif
-
static QList<QLocale::Country> sortCountries(const QList<QLocale::Country> &countries)
{
QMultiMap<QString, QLocale::Country> nameToCountry;
@@ -469,11 +450,7 @@ void QtMetaEnumProvider::initLocale()
while (itLang.hasNext()) {
QLocale::Language language = itLang.next();
QList<QLocale::Country> countries;
-#if QT_VERSION < 0x040300
- countries = countriesForLanguage(language);
-#else
countries = QLocale::countriesForLanguage(language);
-#endif
if (countries.isEmpty() && language == system.language())
countries << system.country();
@@ -5789,9 +5766,7 @@ QtFontPropertyManager::QtFontPropertyManager(QObject *parent)
{
d_ptr = new QtFontPropertyManagerPrivate;
d_ptr->q_ptr = this;
-#if QT_VERSION >= 0x040500
QObject::connect(qApp, SIGNAL(fontDatabaseChanged()), this, SLOT(slotFontDatabaseChanged()));
-#endif
d_ptr->m_intPropertyManager = new QtIntPropertyManager(this);
connect(d_ptr->m_intPropertyManager, SIGNAL(valueChanged(QtProperty *, int)),
@@ -6485,9 +6460,7 @@ void QtCursorPropertyManager::uninitializeProperty(QtProperty *property)
d_ptr->m_values.remove(property);
}
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
#include "moc_qtpropertymanager.cpp"
#include "qtpropertymanager.moc"
diff --git a/tools/shared/qtpropertybrowser/qtpropertymanager.h b/tools/shared/qtpropertybrowser/qtpropertymanager.h
index 90fe5c0..2fb69bf 100644
--- a/tools/shared/qtpropertybrowser/qtpropertymanager.h
+++ b/tools/shared/qtpropertybrowser/qtpropertymanager.h
@@ -44,9 +44,7 @@
#include "qtpropertybrowser.h"
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
class QDate;
class QTime;
@@ -743,8 +741,6 @@ private:
Q_DISABLE_COPY(QtCursorPropertyManager)
};
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
#endif
diff --git a/tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp b/tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp
index ed262e5..1ad3f6b 100644
--- a/tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp
+++ b/tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp
@@ -52,9 +52,7 @@
#include <QtGui/QStyle>
#include <QtGui/QPalette>
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
class QtPropertyEditorView;
@@ -1040,9 +1038,7 @@ void QtTreePropertyBrowser::editItem(QtBrowserItem *item)
d_ptr->editItem(item);
}
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
#include "moc_qttreepropertybrowser.cpp"
#include "qttreepropertybrowser.moc"
diff --git a/tools/shared/qtpropertybrowser/qttreepropertybrowser.h b/tools/shared/qtpropertybrowser/qttreepropertybrowser.h
index 63bd7f6..813e050 100644
--- a/tools/shared/qtpropertybrowser/qttreepropertybrowser.h
+++ b/tools/shared/qtpropertybrowser/qttreepropertybrowser.h
@@ -44,9 +44,7 @@
#include "qtpropertybrowser.h"
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
class QTreeWidgetItem;
class QtTreePropertyBrowserPrivate;
@@ -131,8 +129,6 @@ private:
};
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
#endif
diff --git a/tools/shared/qtpropertybrowser/qtvariantproperty.cpp b/tools/shared/qtpropertybrowser/qtvariantproperty.cpp
index 7e1975e..f712ba6 100644
--- a/tools/shared/qtpropertybrowser/qtvariantproperty.cpp
+++ b/tools/shared/qtpropertybrowser/qtvariantproperty.cpp
@@ -51,9 +51,7 @@
# pragma warning(disable: 4786) /* MS VS 6: truncating debug info after 255 characters */
#endif
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
class QtEnumPropertyType
{
@@ -69,17 +67,13 @@ class QtGroupPropertyType
{
};
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
Q_DECLARE_METATYPE(QtEnumPropertyType)
Q_DECLARE_METATYPE(QtFlagPropertyType)
Q_DECLARE_METATYPE(QtGroupPropertyType)
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
/*!
Returns the type id for an enum property.
@@ -2275,8 +2269,6 @@ void QtVariantEditorFactory::disconnectPropertyManager(QtVariantPropertyManager
d_ptr->m_checkBoxFactory->removePropertyManager(itFlag.next()->subBoolPropertyManager());
}
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
#include "moc_qtvariantproperty.cpp"
diff --git a/tools/shared/qtpropertybrowser/qtvariantproperty.h b/tools/shared/qtpropertybrowser/qtvariantproperty.h
index 91397d8..9253809 100644
--- a/tools/shared/qtpropertybrowser/qtvariantproperty.h
+++ b/tools/shared/qtpropertybrowser/qtvariantproperty.h
@@ -46,9 +46,7 @@
#include <QtCore/QVariant>
#include <QtGui/QIcon>
-#if QT_VERSION >= 0x040400
QT_BEGIN_NAMESPACE
-#endif
typedef QMap<int, QIcon> QtIconMap;
@@ -172,9 +170,7 @@ private:
Q_DISABLE_COPY(QtVariantEditorFactory)
};
-#if QT_VERSION >= 0x040400
QT_END_NAMESPACE
-#endif
Q_DECLARE_METATYPE(QIcon)
Q_DECLARE_METATYPE(QtIconMap)
diff --git a/tools/tools.pro b/tools/tools.pro
index c76174c..0a56cfb 100644
--- a/tools/tools.pro
+++ b/tools/tools.pro
@@ -15,7 +15,7 @@ no-png {
SUBDIRS += linguist
wince*: SUBDIRS = qtestlib designer
unix:!mac:!embedded:contains(QT_CONFIG, qt3support):SUBDIRS += qtconfig
- win32:!wince*:!contains(QT_EDITION, OpenSource|Console):SUBDIRS += activeqt
+ win32:!wince*:SUBDIRS += activeqt
}
mac {
diff --git a/translations/assistant_adp_de.ts b/translations/assistant_adp_de.ts
index c92d6f9..db2005a 100644
--- a/translations/assistant_adp_de.ts
+++ b/translations/assistant_adp_de.ts
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="de">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="de">
<context>
<name>Assistant</name>
<message>
@@ -15,7 +15,7 @@
<context>
<name>AssistantServer</name>
<message>
- <location filename="../tools/assistant/compat/main.cpp" line="+195"/>
+ <location filename="../tools/assistant/compat/main.cpp" line="+225"/>
<source>Qt Assistant</source>
<translation>Qt Assistant</translation>
</message>
@@ -103,7 +103,7 @@
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation>Schrift</translation>
</message>
@@ -131,7 +131,7 @@
<context>
<name>FontSettingsDialog</name>
<message>
- <location filename="../tools/assistant/compat/fontsettingsdialog.cpp" line="+33"/>
+ <location filename="../tools/assistant/compat/fontsettingsdialog.cpp" line="+63"/>
<source>Font Settings</source>
<translation>Schriftart</translation>
</message>
@@ -188,9 +188,9 @@
<translation type="obsolete">Qt Assistant Handbuch</translation>
</message>
<message>
- <location filename="../tools/assistant/compat/helpdialog.cpp" line="+345"/>
+ <location filename="../tools/assistant/compat/helpdialog.cpp" line="+376"/>
<location line="+16"/>
- <location line="+659"/>
+ <location line="+661"/>
<source>Qt Assistant</source>
<translation>Qt Assistant</translation>
</message>
@@ -199,7 +199,7 @@
<translation type="obsolete">Öffne Link im aktuellen Fenster</translation>
</message>
<message>
- <location line="-769"/>
+ <location line="-771"/>
<source>Open Link in New Window</source>
<translation>Öffne Link in neuem Fenster</translation>
</message>
@@ -245,7 +245,7 @@ Skipping file.</source>
</message>
<message>
<location line="+35"/>
- <location line="+467"/>
+ <location line="+469"/>
<source>Done</source>
<translation>Fertig</translation>
</message>
@@ -284,7 +284,7 @@ Skipping file.</source>
</translation>
</message>
<message>
- <location line="-880"/>
+ <location line="-882"/>
<source>Open Link in Current Tab</source>
<translation>Link im Aktuellen Tab öffnen</translation>
</message>
@@ -307,7 +307,7 @@ Skipping file.</source>
<translation>Dokumentation %1 ist nicht kompatibel! Datei wird übersprungen.</translation>
</message>
<message>
- <location line="+468"/>
+ <location line="+470"/>
<source>Failed to save fulltext search index
Assistant will not work!</source>
<translation>Der Index für die Volltextsuche konnte nicht gespeichert werden.
@@ -630,7 +630,7 @@ Assistent ist nicht einsatzbereit!</translation>
<translation type="obsolete">Qt Assistant von Trolltech - %1</translation>
</message>
<message>
- <location filename="../tools/assistant/compat/helpwindow.cpp" line="+67"/>
+ <location filename="../tools/assistant/compat/helpwindow.cpp" line="+97"/>
<source>Help</source>
<translation>Hilfe</translation>
</message>
@@ -717,7 +717,7 @@ Bitte überprüfen Sie, das dieser an der angegeben Stelle existiert.</translati
<context>
<name>Index</name>
<message>
- <location filename="../tools/assistant/compat/index.cpp" line="+355"/>
+ <location filename="../tools/assistant/compat/index.cpp" line="+385"/>
<source>Untitled</source>
<translation>Unbenannt</translation>
</message>
@@ -853,7 +853,7 @@ Bitte überprüfen Sie, das dieser an der angegeben Stelle existiert.</translati
<translation type="obsolete">A&amp;nsicht</translation>
</message>
<message>
- <location filename="../tools/assistant/compat/mainwindow.cpp" line="+158"/>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="+188"/>
<source>Ctrl+T</source>
<translation>Strg+T
</translation>
@@ -869,17 +869,15 @@ Bitte überprüfen Sie, das dieser an der angegeben Stelle existiert.</translati
<translation>Strg+E</translation>
</message>
<message>
- <location line="+130"/>
<source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/model&quot;&gt;qtsoftware.com/company/model&lt;/a&gt; for an overview of Qt licensing.</source>
- <translation>Sie benötigen eine kommerzielle Qt Lizenz für die Entwicklung von proprietären (geschlossenen) Anwendungen. Besuchen Sie &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel&lt;/a&gt; um sich einen Überblick über die Qt Lizenzvergabe zu verschaffen.</translation>
+ <translation type="obsolete">Sie benötigen eine kommerzielle Qt Lizenz für die Entwicklung von proprietären (geschlossenen) Anwendungen. Besuchen Sie &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel&lt;/a&gt; um sich einen Überblick über die Qt Lizenzvergabe zu verschaffen.</translation>
</message>
<message>
- <location line="+6"/>
<source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.</source>
- <translation>Dieses Programm ist für Sie lizenziert gemäß den Bedingungen des Qt %1 Lizenzvertrages. Einzelheiten können sie der mitgelieferten Lizenz-Datei entnehmen.</translation>
+ <translation type="obsolete">Dieses Programm ist für Sie lizenziert gemäß den Bedingungen des Qt %1 Lizenzvertrages. Einzelheiten können sie der mitgelieferten Lizenz-Datei entnehmen.</translation>
</message>
<message>
- <location line="+21"/>
+ <location line="+139"/>
<location line="+1"/>
<source>Qt Assistant</source>
<translation>Qt Assistant</translation>
@@ -1082,7 +1080,7 @@ Bitte überprüfen Sie, das dieser an der angegeben Stelle existiert.</translati
<translation>Umschalt+F1</translation>
</message>
<message>
- <location filename="../tools/assistant/compat/mainwindow.cpp" line="-157"/>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="-139"/>
<source>Ctrl+S</source>
<translation>Strg+S</translation>
</message>
@@ -1170,7 +1168,7 @@ Bitte überprüfen Sie, das dieser an der angegeben Stelle existiert.</translati
<translation></translation>
</message>
<message>
- <location filename="../tools/assistant/compat/mainwindow.cpp" line="+209"/>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="+191"/>
<source>Failed to open about application contents in file: &apos;%1&apos;</source>
<translation>Fehler beim öffnen des Inhalts in Datei: &apos;%1&apos;</translation>
</message>
@@ -1179,7 +1177,7 @@ Bitte überprüfen Sie, das dieser an der angegeben Stelle existiert.</translati
<translation type="obsolete">Fehler ...</translation>
</message>
<message>
- <location line="-264"/>
+ <location line="-246"/>
<source>Sidebar</source>
<translation>Sidebar</translation>
</message>
@@ -1229,22 +1227,19 @@ Bitte überprüfen Sie, das dieser an der angegeben Stelle existiert.</translati
<translation>Zeigt die Hauptseite eines Dokumentensets an.</translation>
</message>
<message>
- <location line="+35"/>
<source>Open Source Edition</source>
- <translation>Open Source Edition</translation>
+ <translation type="obsolete">Open Source Edition</translation>
</message>
<message>
- <location line="+1"/>
<source>This version of Qt Assistant is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.</source>
- <translation>Diese Version von Qt Assistant ist Teil der Qt Open Source Edition und darf für die Entwicklung von Open Source Anwendungen genutzt werden. Qt ist ein umfangreiches C++ Framework für die Entwicklung von Cross-Platform-Anwendungen.</translation>
+ <translation type="obsolete">Diese Version von Qt Assistant ist Teil der Qt Open Source Edition und darf für die Entwicklung von Open Source Anwendungen genutzt werden. Qt ist ein umfangreiches C++ Framework für die Entwicklung von Cross-Platform-Anwendungen.</translation>
</message>
<message>
- <location line="+16"/>
<source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation>Dieses Programm ist für Sie lizenziert gemäß den Bedingungen des kommerziellen Qt Lizenzvertrages. Einzelheiten können Sie der mitgelieferten LICENSE-Datei entnehmen.</translation>
+ <translation type="obsolete">Dieses Programm ist für Sie lizenziert gemäß den Bedingungen des kommerziellen Qt Lizenzvertrages. Einzelheiten können Sie der mitgelieferten LICENSE-Datei entnehmen.</translation>
</message>
<message>
- <location line="+236"/>
+ <location line="+270"/>
<source>...</source>
<translation>...</translation>
</message>
@@ -1292,7 +1287,7 @@ Bitte überprüfen Sie, das dieser an der angegeben Stelle existiert.</translati
<translation type="obsolete">Qt Assistant von Trolltech</translation>
</message>
<message>
- <location filename="../tools/assistant/compat/config.cpp" line="+320"/>
+ <location filename="../tools/assistant/compat/config.cpp" line="+350"/>
<source>Qt Assistant by Nokia</source>
<translation type="unfinished"></translation>
</message>
@@ -1470,7 +1465,7 @@ Es müssen zuerst alle Inhalte gelöscht werden.</translation>
<translation>Unbenannt</translation>
</message>
<message>
- <location filename="../tools/assistant/compat/tabbedbrowser.cpp" line="+205"/>
+ <location filename="../tools/assistant/compat/tabbedbrowser.cpp" line="+235"/>
<source>Add page</source>
<translation>Seite einfügen</translation>
</message>
@@ -1528,7 +1523,7 @@ Es müssen zuerst alle Inhalte gelöscht werden.</translation>
<context>
<name>TopicChooser</name>
<message>
- <location filename="../tools/assistant/compat/topicchooser.cpp" line="+26"/>
+ <location filename="../tools/assistant/compat/topicchooser.cpp" line="+56"/>
<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>
diff --git a/translations/assistant_adp_ja.ts b/translations/assistant_adp_ja.ts
index 0a4b209..312f00f 100644
--- a/translations/assistant_adp_ja.ts
+++ b/translations/assistant_adp_ja.ts
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="ja">
+<!DOCTYPE TS>
+<TS version="2.0" language="ja">
<context>
<name>AssistantServer</name>
<message>
- <location filename="../tools/assistant/compat/main.cpp" line="+195"/>
+ <location filename="../tools/assistant/compat/main.cpp" line="+225"/>
<source>Qt Assistant</source>
<translation>Qt Assistant</translation>
</message>
@@ -16,7 +17,7 @@
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation type="unfinished"></translation>
</message>
@@ -44,7 +45,7 @@
<context>
<name>FontSettingsDialog</name>
<message>
- <location filename="../tools/assistant/compat/fontsettingsdialog.cpp" line="+33"/>
+ <location filename="../tools/assistant/compat/fontsettingsdialog.cpp" line="+63"/>
<source>Font Settings</source>
<translation type="unfinished"></translation>
</message>
@@ -72,7 +73,7 @@
<context>
<name>HelpDialog</name>
<message>
- <location filename="../tools/assistant/compat/helpdialog.cpp" line="+248"/>
+ <location filename="../tools/assistant/compat/helpdialog.cpp" line="+279"/>
<source>Open Link in Current Tab</source>
<translation>リンクを現在のタブに開く</translation>
</message>
@@ -95,12 +96,12 @@
<message>
<location line="-64"/>
<location line="+16"/>
- <location line="+659"/>
+ <location line="+661"/>
<source>Qt Assistant</source>
<translation>Qt Assistant</translation>
</message>
<message>
- <location line="-675"/>
+ <location line="-677"/>
<source>Failed to load keyword index file
Assistant will not work!</source>
<translation>キーワードインデックスファイルのロードに失敗しました
@@ -140,7 +141,7 @@ Skipping file.</source>
スキップします。</translation>
</message>
<message numerus="yes">
- <location line="+575"/>
+ <location line="+577"/>
<source>%n document(s) found.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -163,8 +164,8 @@ Skipping file.</source>
<translation type="obsolete">検索</translation>
</message>
<message>
- <location line="-527"/>
- <location line="+467"/>
+ <location line="-529"/>
+ <location line="+469"/>
<source>Done</source>
<translation>完了</translation>
</message>
@@ -360,7 +361,7 @@ Assistant は動きません!</translation>
<context>
<name>HelpWindow</name>
<message>
- <location filename="../tools/assistant/compat/helpwindow.cpp" line="+67"/>
+ <location filename="../tools/assistant/compat/helpwindow.cpp" line="+97"/>
<source>Help</source>
<translation>ヘルプ</translation>
</message>
@@ -414,7 +415,7 @@ Assistant は動きません!</translation>
<context>
<name>Index</name>
<message>
- <location filename="../tools/assistant/compat/index.cpp" line="+355"/>
+ <location filename="../tools/assistant/compat/index.cpp" line="+385"/>
<source>Untitled</source>
<translation>タイトルなし</translation>
</message>
@@ -422,7 +423,7 @@ Assistant は動きません!</translation>
<context>
<name>MainWindow</name>
<message>
- <location filename="../tools/assistant/compat/mainwindow.cpp" line="+73"/>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="+103"/>
<source>Sidebar</source>
<translation>サイドバー</translation>
</message>
@@ -482,17 +483,7 @@ Assistant は動きません!</translation>
<translation>指定されたドキュメントセットのメインページを表示します。</translation>
</message>
<message>
- <location line="+40"/>
- <source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/model&quot;&gt;qtsoftware.com/company/model&lt;/a&gt; for an overview of Qt licensing.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+6"/>
- <source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+21"/>
+ <location line="+49"/>
<location line="+1"/>
<source>Qt Assistant</source>
<translation>Qt Assistant</translation>
@@ -853,7 +844,7 @@ Assistant は動きません!</translation>
<translation>名前をつけてページを保存...</translation>
</message>
<message>
- <location filename="../tools/assistant/compat/mainwindow.cpp" line="-691"/>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="-673"/>
<source>&amp;Window</source>
<translation>ウィンドウ(&amp;W)</translation>
</message>
@@ -868,23 +859,20 @@ Assistant は動きません!</translation>
<translation>Ctrl+M</translation>
</message>
<message>
- <location line="+191"/>
<source>Open Source Edition</source>
- <translation>オープンソース版</translation>
+ <translation type="obsolete">オープンソース版</translation>
</message>
<message>
- <location line="+1"/>
<source>This version of Qt Assistant is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.</source>
- <translation>この Qt Assistant は Qt オープンソース版の一部であり、オープンソースのアプリケーションの開発を目的としたものです。Qt は、複数のプラットフォームに対応するアプリケーションを開発するための C++ のわかりやすいフレームワークです。</translation>
+ <translation type="obsolete">この Qt Assistant は Qt オープンソース版の一部であり、オープンソースのアプリケーションの開発を目的としたものです。Qt は、複数のプラットフォームに対応するアプリケーションを開発するための C++ のわかりやすいフレームワークです。</translation>
</message>
<message>
<source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;qtsoftware.com/company/model.html&lt;/a&gt; for an overview of Qt licensing.</source>
<translation type="obsolete">著作権のある(ソースを公開しない)アプリケーションを開発するには、Qt の商用ライセンスが必要です。Qt のライセンスの概要については &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;qtsoftware.com/company/model.html&lt;/a&gt; をご覧ください。</translation>
</message>
<message>
- <location line="+16"/>
<source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation>このプログラムは Qt 商用版ライセンス規約の定める条件の下で、あなたにライセンスされています。詳細はこのソフトウェアとともに配布される LICENSE ファイルをご覧ください。</translation>
+ <translation type="obsolete">このプログラムは Qt 商用版ライセンス規約の定める条件の下で、あなたにライセンスされています。詳細はこのソフトウェアとともに配布される LICENSE ファイルをご覧ください。</translation>
</message>
<message>
<location filename="../tools/assistant/compat/mainwindow.ui"/>
@@ -935,7 +923,7 @@ Assistant は動きません!</translation>
<translation type="obsolete">Trolltech の Qt Assistant</translation>
</message>
<message>
- <location filename="../tools/assistant/compat/config.cpp" line="+320"/>
+ <location filename="../tools/assistant/compat/config.cpp" line="+350"/>
<source>Qt Assistant by Nokia</source>
<translation type="unfinished"></translation>
</message>
@@ -943,7 +931,7 @@ Assistant は動きません!</translation>
<context>
<name>TabbedBrowser</name>
<message>
- <location filename="../tools/assistant/compat/tabbedbrowser.cpp" line="+119"/>
+ <location filename="../tools/assistant/compat/tabbedbrowser.cpp" line="+149"/>
<source>...</source>
<translation>...</translation>
</message>
@@ -1011,7 +999,7 @@ Assistant は動きません!</translation>
<context>
<name>TopicChooser</name>
<message>
- <location filename="../tools/assistant/compat/topicchooser.cpp" line="+26"/>
+ <location filename="../tools/assistant/compat/topicchooser.cpp" line="+56"/>
<source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;</source>
<translation>&lt;b&gt;%1&lt;/b&gt; のトピックを選択</translation>
</message>
diff --git a/translations/assistant_adp_pl.ts b/translations/assistant_adp_pl.ts
index 3a80244..de0c71c 100644
--- a/translations/assistant_adp_pl.ts
+++ b/translations/assistant_adp_pl.ts
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="pl">
+<!DOCTYPE TS>
+<TS version="2.0" language="pl">
<context>
<name>AssistantServer</name>
<message>
- <location filename="../tools/assistant/compat/main.cpp" line="+195"/>
+ <location filename="../tools/assistant/compat/main.cpp" line="+225"/>
<source>Qt Assistant</source>
<translation>Qt Assistant</translation>
</message>
@@ -16,7 +17,7 @@
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation>Czcionka</translation>
</message>
@@ -44,7 +45,7 @@
<context>
<name>FontSettingsDialog</name>
<message>
- <location filename="../tools/assistant/compat/fontsettingsdialog.cpp" line="+33"/>
+ <location filename="../tools/assistant/compat/fontsettingsdialog.cpp" line="+63"/>
<source>Font Settings</source>
<translation>Ustawienia czcionki</translation>
</message>
@@ -72,7 +73,7 @@
<context>
<name>HelpDialog</name>
<message>
- <location filename="../tools/assistant/compat/helpdialog.cpp" line="+248"/>
+ <location filename="../tools/assistant/compat/helpdialog.cpp" line="+279"/>
<source>Open Link in Current Tab</source>
<translation>Otwórz odsyłacz w bieżącej karcie</translation>
</message>
@@ -95,12 +96,12 @@
<message>
<location line="-64"/>
<location line="+16"/>
- <location line="+659"/>
+ <location line="+661"/>
<source>Qt Assistant</source>
<translation>Qt Assistant</translation>
</message>
<message>
- <location line="-675"/>
+ <location line="-677"/>
<source>Failed to load keyword index file
Assistant will not work!</source>
<translation>Nie można wczytać indeksu słów kluczowych
@@ -141,7 +142,7 @@ Plik zostaje pominięty.</translation>
</message>
<message>
<location line="+48"/>
- <location line="+467"/>
+ <location line="+469"/>
<source>Done</source>
<translation>Zrobione</translation>
</message>
@@ -346,7 +347,7 @@ Assistant nie będzie działał!</translation>
<context>
<name>HelpWindow</name>
<message>
- <location filename="../tools/assistant/compat/helpwindow.cpp" line="+67"/>
+ <location filename="../tools/assistant/compat/helpwindow.cpp" line="+97"/>
<source>Help</source>
<translation>Pomoc</translation>
</message>
@@ -396,7 +397,7 @@ Assistant nie będzie działał!</translation>
<context>
<name>Index</name>
<message>
- <location filename="../tools/assistant/compat/index.cpp" line="+355"/>
+ <location filename="../tools/assistant/compat/index.cpp" line="+385"/>
<source>Untitled</source>
<translation>Nienazwany</translation>
</message>
@@ -404,7 +405,7 @@ Assistant nie będzie działał!</translation>
<context>
<name>MainWindow</name>
<message>
- <location filename="../tools/assistant/compat/mainwindow.cpp" line="+73"/>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="+103"/>
<source>Sidebar</source>
<translation>Panel</translation>
</message>
@@ -479,22 +480,15 @@ Assistant nie będzie działał!</translation>
<translation>Pokazuje główną stronę wybranego zestawu dokumentacji.</translation>
</message>
<message>
- <location line="+35"/>
<source>Open Source Edition</source>
- <translation>Wydanie Open Source</translation>
+ <translation type="obsolete">Wydanie Open Source</translation>
</message>
<message>
- <location line="+1"/>
<source>This version of Qt Assistant is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.</source>
- <translation>Ta wersja Qt Assistant jest częścią wydania Qt Open Source, przeznaczonego do tworzenia aplikacji Open Source. Qt zawiera obszerny zestaw bibliotek wykorzystywanych do pisania przenośnych aplikacji.</translation>
- </message>
- <message>
- <location line="+16"/>
- <source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Ta wersja Qt Assistant jest częścią wydania Qt Open Source, przeznaczonego do tworzenia aplikacji Open Source. Qt zawiera obszerny zestaw bibliotek wykorzystywanych do pisania przenośnych aplikacji.</translation>
</message>
<message>
- <location line="+15"/>
+ <location line="+49"/>
<location line="+1"/>
<source>Qt Assistant</source>
<translation>Qt Assistant</translation>
@@ -865,14 +859,8 @@ Assistant nie będzie działał!</translation>
<translation>Ustawienia czcionki...</translation>
</message>
<message>
- <location filename="../tools/assistant/compat/mainwindow.cpp" line="-492"/>
<source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/model&quot;&gt;qtsoftware.com/company/model&lt;/a&gt; for an overview of Qt licensing.</source>
- <translation>Aby móc tworzyć przy pomocy Qt własne aplikacje bez publikowania kodu (closed source) potrzebujesz wydania komercyjnego. Opis sposobów licencjonowania Qt znajduje się na stronie &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;qtsoftware.com/company/model.html&lt;/a&gt;.</translation>
- </message>
- <message>
- <location line="+6"/>
- <source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Aby móc tworzyć przy pomocy Qt własne aplikacje bez publikowania kodu (closed source) potrzebujesz wydania komercyjnego. Opis sposobów licencjonowania Qt znajduje się na stronie &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;qtsoftware.com/company/model.html&lt;/a&gt;.</translation>
</message>
</context>
<context>
@@ -882,7 +870,7 @@ Assistant nie będzie działał!</translation>
<translation type="obsolete">Qt Assistant Trolltech&apos;a</translation>
</message>
<message>
- <location filename="../tools/assistant/compat/config.cpp" line="+320"/>
+ <location filename="../tools/assistant/compat/config.cpp" line="+350"/>
<source>Qt Assistant by Nokia</source>
<translation type="unfinished"></translation>
</message>
@@ -890,7 +878,7 @@ Assistant nie będzie działał!</translation>
<context>
<name>TabbedBrowser</name>
<message>
- <location filename="../tools/assistant/compat/tabbedbrowser.cpp" line="+119"/>
+ <location filename="../tools/assistant/compat/tabbedbrowser.cpp" line="+149"/>
<source>...</source>
<translation>...</translation>
</message>
@@ -958,7 +946,7 @@ Assistant nie będzie działał!</translation>
<context>
<name>TopicChooser</name>
<message>
- <location filename="../tools/assistant/compat/topicchooser.cpp" line="+26"/>
+ <location filename="../tools/assistant/compat/topicchooser.cpp" line="+56"/>
<source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;</source>
<translation>Wybierz temat dla &lt;b&gt;%1&lt;/b&gt;</translation>
</message>
diff --git a/translations/assistant_adp_untranslated.ts b/translations/assistant_adp_untranslated.ts
index 52cc26c..e6c927a 100644
--- a/translations/assistant_adp_untranslated.ts
+++ b/translations/assistant_adp_untranslated.ts
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0">
+<!DOCTYPE TS>
+<TS version="2.0">
<context>
<name>AssistantServer</name>
<message>
- <location filename="../tools/assistant/compat/main.cpp" line="+195"/>
+ <location filename="../tools/assistant/compat/main.cpp" line="+225"/>
<source>Qt Assistant</source>
<translation type="unfinished"></translation>
</message>
@@ -16,7 +17,7 @@
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation type="unfinished"></translation>
</message>
@@ -44,7 +45,7 @@
<context>
<name>FontSettingsDialog</name>
<message>
- <location filename="../tools/assistant/compat/fontsettingsdialog.cpp" line="+33"/>
+ <location filename="../tools/assistant/compat/fontsettingsdialog.cpp" line="+63"/>
<source>Font Settings</source>
<translation type="unfinished"></translation>
</message>
@@ -77,14 +78,14 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/assistant/compat/helpdialog.cpp" line="+345"/>
+ <location filename="../tools/assistant/compat/helpdialog.cpp" line="+376"/>
<location line="+16"/>
- <location line="+659"/>
+ <location line="+661"/>
<source>Qt Assistant</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-772"/>
+ <location line="-774"/>
<source>Open Link in Current Tab</source>
<translation type="unfinished"></translation>
</message>
@@ -143,7 +144,7 @@ Skipping file.</source>
</message>
<message>
<location line="+48"/>
- <location line="+467"/>
+ <location line="+469"/>
<source>Done</source>
<translation type="unfinished"></translation>
</message>
@@ -340,7 +341,7 @@ Assistant will not work!</source>
<context>
<name>HelpWindow</name>
<message>
- <location filename="../tools/assistant/compat/helpwindow.cpp" line="+67"/>
+ <location filename="../tools/assistant/compat/helpwindow.cpp" line="+97"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
@@ -389,7 +390,7 @@ Assistant will not work!</source>
<context>
<name>Index</name>
<message>
- <location filename="../tools/assistant/compat/index.cpp" line="+355"/>
+ <location filename="../tools/assistant/compat/index.cpp" line="+385"/>
<source>Untitled</source>
<translation type="unfinished"></translation>
</message>
@@ -457,7 +458,7 @@ Assistant will not work!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/assistant/compat/mainwindow.cpp" line="+158"/>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="+188"/>
<source>Ctrl+T</source>
<translation type="unfinished"></translation>
</message>
@@ -472,17 +473,7 @@ Assistant will not work!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+130"/>
- <source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/model&quot;&gt;qtsoftware.com/company/model&lt;/a&gt; for an overview of Qt licensing.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+6"/>
- <source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+21"/>
+ <location line="+139"/>
<location line="+1"/>
<source>Qt Assistant</source>
<translation type="unfinished"></translation>
@@ -493,7 +484,7 @@ Assistant will not work!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/assistant/compat/mainwindow.cpp" line="-245"/>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="-227"/>
<source>Sidebar</source>
<translation type="unfinished"></translation>
</message>
@@ -553,22 +544,7 @@ Assistant will not work!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+35"/>
- <source>Open Source Edition</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+1"/>
- <source>This version of Qt Assistant is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+16"/>
- <source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+35"/>
+ <location line="+69"/>
<source>Failed to open about application contents in file: &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
@@ -867,7 +843,7 @@ Assistant will not work!</source>
<context>
<name>QObject</name>
<message>
- <location filename="../tools/assistant/compat/config.cpp" line="+320"/>
+ <location filename="../tools/assistant/compat/config.cpp" line="+350"/>
<source>Qt Assistant by Nokia</source>
<translation type="unfinished"></translation>
</message>
@@ -875,7 +851,7 @@ Assistant will not work!</source>
<context>
<name>TabbedBrowser</name>
<message>
- <location filename="../tools/assistant/compat/tabbedbrowser.cpp" line="+119"/>
+ <location filename="../tools/assistant/compat/tabbedbrowser.cpp" line="+149"/>
<source>...</source>
<translation type="unfinished"></translation>
</message>
@@ -943,7 +919,7 @@ Assistant will not work!</source>
<context>
<name>TopicChooser</name>
<message>
- <location filename="../tools/assistant/compat/topicchooser.cpp" line="+26"/>
+ <location filename="../tools/assistant/compat/topicchooser.cpp" line="+56"/>
<source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/assistant_adp_zh_CN.ts b/translations/assistant_adp_zh_CN.ts
index 656a598..62354b3 100644
--- a/translations/assistant_adp_zh_CN.ts
+++ b/translations/assistant_adp_zh_CN.ts
@@ -4,7 +4,7 @@
<context>
<name>AssistantServer</name>
<message>
- <location filename="../tools/assistant/compat/main.cpp" line="+195"/>
+ <location filename="../tools/assistant/compat/main.cpp" line="+225"/>
<source>Qt Assistant</source>
<translation>Qt 助手</translation>
</message>
@@ -17,7 +17,7 @@
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation>字体</translation>
</message>
@@ -45,7 +45,7 @@
<context>
<name>FontSettingsDialog</name>
<message>
- <location filename="../tools/assistant/compat/fontsettingsdialog.cpp" line="+33"/>
+ <location filename="../tools/assistant/compat/fontsettingsdialog.cpp" line="+63"/>
<source>Font Settings</source>
<translation>字体设置</translation>
</message>
@@ -73,7 +73,7 @@
<context>
<name>HelpDialog</name>
<message>
- <location filename="../tools/assistant/compat/helpdialog.cpp" line="+248"/>
+ <location filename="../tools/assistant/compat/helpdialog.cpp" line="+279"/>
<source>Open Link in Current Tab</source>
<translation>在当前标签页打开链接</translation>
</message>
@@ -96,12 +96,12 @@
<message>
<location line="-64"/>
<location line="+16"/>
- <location line="+659"/>
+ <location line="+661"/>
<source>Qt Assistant</source>
<translation>Qt 助手</translation>
</message>
<message>
- <location line="-675"/>
+ <location line="-677"/>
<source>Failed to load keyword index file
Assistant will not work!</source>
<translation>加载关键词索引文件失败
@@ -142,7 +142,7 @@ Skipping file.</source>
</message>
<message>
<location line="+48"/>
- <location line="+467"/>
+ <location line="+469"/>
<source>Done</source>
<translation>完成</translation>
</message>
@@ -344,7 +344,7 @@ Assistant will not work!</source>
<context>
<name>HelpWindow</name>
<message>
- <location filename="../tools/assistant/compat/helpwindow.cpp" line="+67"/>
+ <location filename="../tools/assistant/compat/helpwindow.cpp" line="+97"/>
<source>Help</source>
<translation>帮助</translation>
</message>
@@ -394,7 +394,7 @@ Assistant will not work!</source>
<context>
<name>Index</name>
<message>
- <location filename="../tools/assistant/compat/index.cpp" line="+355"/>
+ <location filename="../tools/assistant/compat/index.cpp" line="+385"/>
<source>Untitled</source>
<translation>未命名的</translation>
</message>
@@ -402,7 +402,7 @@ Assistant will not work!</source>
<context>
<name>MainWindow</name>
<message>
- <location filename="../tools/assistant/compat/mainwindow.cpp" line="+73"/>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="+103"/>
<source>Sidebar</source>
<translation>侧栏</translation>
</message>
@@ -477,22 +477,19 @@ Assistant will not work!</source>
<translation>显示一个指定文档集的主页面。</translation>
</message>
<message>
- <location line="+35"/>
<source>Open Source Edition</source>
- <translation>开源版本</translation>
+ <translation type="obsolete">开源版本</translation>
</message>
<message>
- <location line="+1"/>
<source>This version of Qt Assistant is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.</source>
- <translation>这个版本的 Qt 助手是 Qt 开源版本的一部分,用于开发开源应用程序。Qt 是一个用于跨平台应用程序开发的综合 C++ 框架。</translation>
+ <translation type="obsolete">这个版本的 Qt 助手是 Qt 开源版本的一部分,用于开发开源应用程序。Qt 是一个用于跨平台应用程序开发的综合 C++ 框架。</translation>
</message>
<message>
- <location line="+16"/>
<source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation>我们已经允许您在 Qt 商业许可协议下使用本程序。有关细节,请阅读本软件发行中所带的 LICENSE 文件。</translation>
+ <translation type="obsolete">我们已经允许您在 Qt 商业许可协议下使用本程序。有关细节,请阅读本软件发行中所带的 LICENSE 文件。</translation>
</message>
<message>
- <location line="+15"/>
+ <location line="+49"/>
<location line="+1"/>
<source>Qt Assistant</source>
<translation>Qt 助手</translation>
@@ -863,14 +860,12 @@ Assistant will not work!</source>
<translation>字体设置...</translation>
</message>
<message>
- <location filename="../tools/assistant/compat/mainwindow.cpp" line="-492"/>
<source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/model&quot;&gt;qtsoftware.com/company/model&lt;/a&gt; for an overview of Qt licensing.</source>
- <translation>开发商业(闭源)应用程序,你需要商业 Qt 许可。对于 Qt 许可的概览,请参考&lt;a href=&quot;http://qtsoftware.com/company/model&quot;&gt;qtsoftware.com/company/model&lt;/a&gt;。</translation>
+ <translation type="obsolete">开发商业(闭源)应用程序,你需要商业 Qt 许可。对于 Qt 许可的概览,请参考&lt;a href=&quot;http://qtsoftware.com/company/model&quot;&gt;qtsoftware.com/company/model&lt;/a&gt;。</translation>
</message>
<message>
- <location line="+6"/>
<source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.</source>
- <translation>我们已经允许您在 Qt %1 许可协议下使用本程序。有关细节,请阅读本软件发行中所带的许可协议文件。</translation>
+ <translation type="obsolete">我们已经允许您在 Qt %1 许可协议下使用本程序。有关细节,请阅读本软件发行中所带的许可协议文件。</translation>
</message>
</context>
<context>
@@ -880,7 +875,7 @@ Assistant will not work!</source>
<translation type="obsolete">Trolltech 的 Qt 助手</translation>
</message>
<message>
- <location filename="../tools/assistant/compat/config.cpp" line="+320"/>
+ <location filename="../tools/assistant/compat/config.cpp" line="+350"/>
<source>Qt Assistant by Nokia</source>
<translation>Qt助手 - Nokia</translation>
</message>
@@ -888,7 +883,7 @@ Assistant will not work!</source>
<context>
<name>TabbedBrowser</name>
<message>
- <location filename="../tools/assistant/compat/tabbedbrowser.cpp" line="+119"/>
+ <location filename="../tools/assistant/compat/tabbedbrowser.cpp" line="+149"/>
<source>...</source>
<translation>...</translation>
</message>
@@ -956,7 +951,7 @@ Assistant will not work!</source>
<context>
<name>TopicChooser</name>
<message>
- <location filename="../tools/assistant/compat/topicchooser.cpp" line="+26"/>
+ <location filename="../tools/assistant/compat/topicchooser.cpp" line="+56"/>
<source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;</source>
<translation>为&lt;b&gt;%1&lt;/b&gt;选择一个主题</translation>
</message>
diff --git a/translations/assistant_adp_zh_TW.ts b/translations/assistant_adp_zh_TW.ts
index ced339e..7fd1738 100644
--- a/translations/assistant_adp_zh_TW.ts
+++ b/translations/assistant_adp_zh_TW.ts
@@ -1,14 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="zh_TW">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_TW">
<context>
<name>AssistantServer</name>
<message>
- <location filename="../tools/assistant/compat/main.cpp" line="195"/>
+ <location filename="../tools/assistant/compat/main.cpp" line="+225"/>
<source>Qt Assistant</source>
<translation>Qt 小幫手</translation>
</message>
<message>
+ <location line="+1"/>
<source>Failed to bind to port %1</source>
<translation>無法結合連接埠 %1</translation>
</message>
@@ -16,23 +17,27 @@
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation>字型</translation>
</message>
<message>
+ <location line="+11"/>
<source>&amp;Writing system</source>
<translation>寫入系統(&amp;W)</translation>
</message>
<message>
+ <location line="+3"/>
<source>&amp;Family</source>
<translation>家族(&amp;F)</translation>
</message>
<message>
+ <location line="+4"/>
<source>&amp;Style</source>
<translation>風格(&amp;S)</translation>
</message>
<message>
+ <location line="+4"/>
<source>&amp;Point size</source>
<translation>點大小(&amp;P)</translation>
</message>
@@ -40,23 +45,27 @@
<context>
<name>FontSettingsDialog</name>
<message>
- <location filename="../tools/assistant/compat/fontsettingsdialog.cpp" line="33"/>
+ <location filename="../tools/assistant/compat/fontsettingsdialog.cpp" line="+63"/>
<source>Font Settings</source>
<translation>字型設定</translation>
</message>
<message>
+ <location line="+7"/>
<source>Font settings for:</source>
<translation>字型設定用於:</translation>
</message>
<message>
+ <location line="+4"/>
<source>Browser</source>
<translation>瀏覽器</translation>
</message>
<message>
+ <location line="+1"/>
<source>Application</source>
<translation>應用程式</translation>
</message>
<message>
+ <location line="+6"/>
<source>Use custom settings</source>
<translation>使用者自訂設定</translation>
</message>
@@ -64,211 +73,269 @@
<context>
<name>HelpDialog</name>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.ui"/>
<source>Con&amp;tents</source>
<translation>內容(&amp;T)</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.cpp" line="+376"/>
+ <location line="+16"/>
+ <location line="+661"/>
<source>Qt Assistant</source>
<translation>Qt 小幫手</translation>
</message>
<message>
+ <location line="-774"/>
<source>Open Link in Current Tab</source>
<translation>在目前的分頁開啟連結</translation>
</message>
<message>
+ <location line="+3"/>
<source>Open Link in New Window</source>
<translation>在新視窗開啟連結</translation>
</message>
<message>
+ <location line="+3"/>
<source>Open Link in New Tab</source>
<translation>在新分頁開啟連結</translation>
</message>
<message>
+ <location line="+73"/>
+ <location line="+82"/>
<source>Prepare...</source>
<translation>準備中...</translation>
</message>
<message>
+ <location line="-64"/>
<source>Failed to load keyword index file
Assistant will not work!</source>
<translation>無法載入關鍵字索引檔
小幫手將無法運作!</translation>
</message>
<message>
+ <location line="+17"/>
<source>Cannot open the index file %1</source>
<translation>無法開啟索引檔 %1</translation>
</message>
<message>
+ <location line="+58"/>
+ <location line="+124"/>
+ <location line="+8"/>
<source>Warning</source>
<translation>警告</translation>
</message>
<message>
+ <location line="-131"/>
+ <location line="+124"/>
<source>Documentation file %1 does not exist!
Skipping file.</source>
<translation>文件檔 %1 不存在
將跳過此檔案。</translation>
</message>
<message>
+ <location line="-112"/>
+ <location line="+133"/>
<source>Parse Error</source>
<translation>剖析錯誤</translation>
</message>
<message>
+ <location line="-13"/>
<source>Documentation file %1 is not compatible!
Skipping file.</source>
<translation>文件檔 %1 不相容
將跳過此檔案。</translation>
</message>
<message>
+ <location line="+48"/>
+ <location line="+469"/>
<source>Done</source>
<translation>完成</translation>
</message>
<message>
+ <location line="-47"/>
<source>Failed to save fulltext search index
Assistant will not work!</source>
<translation>無法儲存全文檢索搜尋索引。
小幫手將無法運作!</translation>
</message>
<message>
+ <location line="+29"/>
<source>Indexing files...</source>
<translation>建立檔案索引中...</translation>
</message>
<message>
+ <location line="+15"/>
<source>Reading dictionary...</source>
<translation>讀取字典中...</translation>
</message>
<message>
+ <location line="+46"/>
+ <location line="+9"/>
<source>Full Text Search</source>
<translation>全文檢索</translation>
</message>
<message>
+ <location line="-8"/>
<source>Using a wildcard within phrases is not allowed.</source>
<translation>在片語中不能使用萬用字元。</translation>
</message>
<message>
+ <location line="+9"/>
<source>The closing quotation mark is missing.</source>
<translation>沒有關閉引號。</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.ui"/>
<source>Help</source>
<translation>說明</translation>
</message>
<message>
+ <location/>
<source>&lt;b&gt;Help&lt;/b&gt;&lt;p&gt;Choose the topic you want help on from the contents list, or search the index for keywords.&lt;/p&gt;</source>
<translation>&lt;b&gt;說明&lt;/b&gt;&lt;p&gt;請從內容清單中選擇您需要說明的主題,或是在索引中搜尋關鍵字。&lt;/p&gt;</translation>
</message>
<message>
+ <location/>
<source>Displays help topics organized by category, index or bookmarks. Another tab inherits the full text search.</source>
<translation>依分類、索引或書籤來顯示說明主題。另一個分頁會繼承此全文檢索。</translation>
</message>
<message>
+ <location/>
<source>&lt;b&gt;Help topics organized by category.&lt;/b&gt;&lt;p&gt;Double-click an item to see the topics in that category. To view a topic, just double-click it.&lt;/p&gt;</source>
<translation>&lt;b&gt;依類別組織說明主題。&lt;/b&gt;&lt;p&gt;雙擊可以查看該類別中有哪些主題。雙擊該主題可以查看內容。&lt;/p&gt;</translation>
</message>
<message>
+ <location/>
<source>column 1</source>
<translation>欄 1</translation>
</message>
<message>
+ <location/>
<source>&amp;Index</source>
<translation>索引(&amp;I)</translation>
</message>
<message>
+ <location/>
<source>&amp;Look For:</source>
<translation>搜尋(&amp;L):</translation>
</message>
<message>
+ <location/>
<source>Enter keyword</source>
<translation>輸入關鍵字</translation>
</message>
<message>
+ <location/>
<source>&lt;b&gt;Enter a keyword.&lt;/b&gt;&lt;p&gt;The list will select an item that matches the entered string best.&lt;/p&gt;</source>
<translation>&lt;b&gt;輸入關鍵字。&lt;/b&gt;&lt;p&gt;此清單可以選擇最能符合輸入字串的項目。&lt;/p&gt;</translation>
</message>
<message>
+ <location/>
<source>&lt;b&gt;List of available help topics.&lt;/b&gt;&lt;p&gt;Double-click on an item to open its help page. If more than one is found, you must specify which page you want.&lt;/p&gt;</source>
<translation>&lt;b&gt;可用說明主題清單。&lt;/b&gt;&lt;p&gt;雙擊可以開啟該說明頁面。如果找到一個以上,您必須指定您要看哪一個頁面。&lt;/p&gt;</translation>
</message>
<message>
+ <location/>
<source>&amp;Bookmarks</source>
<translation>書籤(&amp;B)</translation>
</message>
<message>
+ <location/>
<source>Displays the list of bookmarks.</source>
<translation>顯示書籤的清單。</translation>
</message>
<message>
+ <location/>
<source>Add new bookmark</source>
<translation>新增書籤</translation>
</message>
<message>
+ <location/>
<source>Add the currently displayed page as a new bookmark.</source>
<translation>將目前顯示的頁面新增到書籤中。</translation>
</message>
<message>
+ <location/>
<source>&amp;New</source>
<translation>新增(&amp;N)</translation>
</message>
<message>
+ <location/>
<source>Delete bookmark</source>
<translation>刪除書籤</translation>
</message>
<message>
+ <location/>
<source>Delete the selected bookmark.</source>
<translation>刪除選取的書籤。</translation>
</message>
<message>
+ <location/>
<source>&amp;Delete</source>
<translation>刪除(&amp;D)</translation>
</message>
<message>
+ <location/>
<source>&amp;Search</source>
<translation>搜尋(&amp;S)</translation>
</message>
<message>
+ <location/>
<source>Searching f&amp;or:</source>
<translation>搜尋內容(&amp;O):</translation>
</message>
<message>
+ <location/>
<source>Enter searchword(s).</source>
<translation>請輸入搜尋關鍵字詞。</translation>
</message>
<message>
+ <location/>
<source>&lt;b&gt;Enter search word(s).&lt;/b&gt;&lt;p&gt;Enter here the word(s) you are looking for. The words may contain wildcards (*). For a sequence of words quote them.&lt;/p&gt;</source>
<translation>&lt;b&gt;輸入搜尋關鍵字詞。&lt;/b&gt;&lt;p&gt;在此輸入您要搜尋的關鍵字詞。可以使用萬用字元 (*)。如果是一個片語,請用引號括起來。&lt;/p&gt;</translation>
</message>
<message>
+ <location/>
<source>&lt;b&gt;Found documents&lt;/b&gt;&lt;p&gt;This list contains all found documents from the last search. The documents are ordered, i.e. the first document has the most matches.&lt;/p&gt;</source>
<translation>&lt;b&gt;找到的文件&lt;/b&gt;&lt;p&gt;這放清單包含了所有上次搜尋找到的文件。文件會依符合程度排序。&lt;/p&gt;</translation>
</message>
<message>
+ <location/>
<source>Found &amp;Documents:</source>
<translation>找到的文件(&amp;D):</translation>
</message>
<message>
+ <location/>
<source>Display the help page.</source>
<translation>顯示說明頁面。</translation>
</message>
<message>
+ <location/>
<source>Display the help page for the full text search.</source>
<translation>顯示全文檢索的說明頁面。</translation>
</message>
<message>
+ <location/>
<source>He&amp;lp</source>
<translation>說明(&amp;L)</translation>
</message>
<message>
+ <location/>
<source>Start searching.</source>
<translation>開始搜尋。</translation>
</message>
<message>
+ <location/>
<source>Pressing this button starts the search.</source>
<translation>按下此按鍵開始搜尋。</translation>
</message>
<message>
+ <location/>
<source>Preparing...</source>
<translation>準備中...</translation>
</message>
<message numerus="yes">
- <location filename="../tools/assistant/compat/helpdialog.cpp" line="7"/>
+ <location filename="../tools/assistant/compat/helpdialog.cpp" line="+7"/>
<source>%n document(s) found.</source>
<translation>
<numerusform>找到 %n 個文件。</numerusform>
@@ -278,41 +345,49 @@ Assistant will not work!</source>
<context>
<name>HelpWindow</name>
<message>
- <location filename="../tools/assistant/compat/helpwindow.cpp" line="67"/>
+ <location filename="../tools/assistant/compat/helpwindow.cpp" line="+97"/>
<source>Help</source>
<translation>說明</translation>
</message>
<message>
- <source>Open Link in New Window<byte value="x9"/>Shift+LMB</source>
- <translation>在新視窗開啟連結<byte value="x9"/>Shift+滑鼠左鍵</translation>
+ <location line="+93"/>
+ <source>Open Link in New Window Shift+LMB</source>
+ <translation>在新視窗開啟連結 Shift+滑鼠左鍵</translation>
</message>
<message>
+ <location line="-92"/>
<source>Unable to launch web browser.
</source>
<translation>無法啟動瀏覽器。
</translation>
</message>
<message>
+ <location line="+1"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
+ <location line="+27"/>
<source>Failed to open link: &apos;%1&apos;</source>
<translation>無法開啟連結:%1</translation>
</message>
<message>
+ <location line="+1"/>
<source>&lt;div align=&quot;center&quot;&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;div align=&quot;center&quot;&gt;&lt;h1&gt;找不到該頁面&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;%1&lt;/h3&gt;&lt;/div&gt;</translation>
</message>
<message>
+ <location line="+2"/>
<source>Error...</source>
<translation>錯誤...</translation>
</message>
<message>
+ <location line="+59"/>
<source>Open Link in New Tab</source>
<translation>在新分頁開啟連結</translation>
</message>
<message>
+ <location line="-3"/>
<source>Copy &amp;Link Location</source>
<translation>複製連結位置(&amp;L)</translation>
</message>
@@ -320,7 +395,7 @@ Assistant will not work!</source>
<context>
<name>Index</name>
<message>
- <location filename="../tools/assistant/compat/index.cpp" line="355"/>
+ <location filename="../tools/assistant/compat/index.cpp" line="+385"/>
<source>Untitled</source>
<translation>未命名</translation>
</message>
@@ -332,378 +407,466 @@ Assistant will not work!</source>
<translation type="obsolete">Qt 小幫手,Trolltech 公司提供</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.ui"/>
<source>Toolbar</source>
<translation>工具列</translation>
</message>
<message>
+ <location/>
<source>&amp;Print...</source>
<translation>列印(&amp;P)...</translation>
</message>
<message>
+ <location/>
<source>E&amp;xit</source>
<translation>離開(&amp;X)</translation>
</message>
<message>
+ <location/>
<source>&amp;Copy</source>
<translation>複製(&amp;C)</translation>
</message>
<message>
+ <location/>
<source>&amp;Find in Text...</source>
<translation>在文字中尋找(&amp;F)...</translation>
</message>
<message>
+ <location/>
<source>&amp;Home</source>
<translation>首頁(&amp;H)</translation>
</message>
<message>
+ <location/>
<source>&amp;Previous</source>
<translation>前一個(&amp;P)</translation>
</message>
<message>
+ <location/>
<source>&amp;Next</source>
<translation>下一個(&amp;N)</translation>
</message>
<message>
+ <location/>
<source>About Qt</source>
<translation>關於 Qt</translation>
</message>
<message>
+ <location/>
<source>Zoom &amp;in</source>
<translation>放大(&amp;I)</translation>
</message>
<message>
+ <location/>
<source>Zoom &amp;out</source>
<translation>縮小(&amp;O)</translation>
</message>
<message>
+ <location/>
<source>New Window</source>
<translation>新視窗</translation>
</message>
<message>
- <location filename="../tools/assistant/compat/mainwindow.cpp" line="158"/>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="+188"/>
<source>Ctrl+T</source>
<translation>Ctrl+T</translation>
</message>
<message>
+ <location line="+1"/>
<source>Ctrl+I</source>
<translation>Ctrl+I</translation>
</message>
<message>
+ <location line="+1"/>
<source>Ctrl+B</source>
<translation>Ctrl+B</translation>
</message>
<message>
+ <location line="+139"/>
+ <location line="+1"/>
<source>Qt Assistant</source>
<translation>Qt 小幫手</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.ui"/>
<source>&amp;Add Bookmark</source>
<translation>新增書籤(&amp;A)</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="-227"/>
<source>Sidebar</source>
<translation>邊列</translation>
</message>
<message>
+ <location line="+18"/>
<source>&amp;Window</source>
<translation>視窗(&amp;W)</translation>
</message>
<message>
+ <location line="+2"/>
<source>Minimize</source>
<translation>最小化</translation>
</message>
<message>
+ <location line="+1"/>
<source>Ctrl+M</source>
<translation>Ctrl+M</translation>
</message>
<message>
+ <location line="+34"/>
<source>Initializing Qt Assistant...</source>
<translation>初始化 Qt 小幫手中...</translation>
</message>
<message>
+ <location line="+26"/>
<source>SHIFT+CTRL+=</source>
<translation>SHIFT+CTRL+=</translation>
</message>
<message>
+ <location line="+7"/>
<source>Ctrl+S</source>
<translation>Ctrl+S</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.ui"/>
<source>Ctrl+W</source>
<translation>Ctrl+W</translation>
</message>
<message>
- <location filename="../tools/assistant/compat/mainwindow.cpp" line="1"/>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="+1"/>
<source>Ctrl+]</source>
<translation>Ctrl+]</translation>
</message>
<message>
+ <location line="+1"/>
<source>Ctrl+[</source>
<translation>Ctrl+[</translation>
</message>
<message>
+ <location line="+7"/>
<source>Views</source>
<translation>檢視</translation>
</message>
<message>
+ <location line="+80"/>
<source>Displays the main page of a specific documentation set.</source>
<translation>顯示指定文件集的主頁面。</translation>
</message>
<message>
<source>Open Source Edition</source>
- <translation>開放源碼版本</translation>
+ <translation type="obsolete">開放源碼版本</translation>
</message>
<message>
<source>This version of Qt Assistant is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.</source>
- <translation>此版本的 Qt 小幫手是 Qt 開放源碼版本的一部份,只能用於開發開放源碼的應用程式。Qt 為一個跨平台的,強大的 C++ 應用程式開發框架。</translation>
+ <translation type="obsolete">此版本的 Qt 小幫手是 Qt 開放源碼版本的一部份,只能用於開發開放源碼的應用程式。Qt 為一個跨平台的,強大的 C++ 應用程式開發框架。</translation>
</message>
<message>
<source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation>此程式以 Qt 商業授權同意書(Qt Commerical License Agreement)授權給您。詳情請參照 LICENSE 檔。</translation>
+ <translation type="obsolete">此程式以 Qt 商業授權同意書(Qt Commerical License Agreement)授權給您。詳情請參照 LICENSE 檔。</translation>
</message>
<message>
+ <location line="+69"/>
<source>Failed to open about application contents in file: &apos;%1&apos;</source>
<translation>無法開啟檔案中應用程式的「關於」內容:%1</translation>
</message>
<message>
+ <location line="+201"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
+ <location line="+238"/>
+ <location line="+6"/>
<source>Save Page</source>
<translation>儲存頁面</translation>
</message>
<message>
+ <location line="+0"/>
<source>Cannot open file for writing!</source>
<translation>無法開啟檔案以寫入!</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.ui"/>
<source>Qt Assistant by Nokia</source>
<translation>Nokia 提供的 Qt 小幫手</translation>
</message>
<message>
+ <location/>
<source>Go</source>
<translation>走</translation>
</message>
<message>
+ <location/>
<source>&amp;Help</source>
<translation>說明(&amp;H)</translation>
</message>
<message>
+ <location/>
<source>&amp;File</source>
<translation>檔案(&amp;F)</translation>
</message>
<message>
+ <location/>
<source>Boo&amp;kmarks</source>
<translation>書籤(&amp;K)</translation>
</message>
<message>
+ <location/>
<source>&amp;Go</source>
<translation>走(&amp;G)</translation>
</message>
<message>
+ <location/>
<source>&amp;View</source>
<translation>檢視(&amp;V)</translation>
</message>
<message>
+ <location/>
<source>&amp;Edit</source>
<translation>編輯(&amp;E)</translation>
</message>
<message>
+ <location/>
<source>Print the currently displayed page.</source>
<translation>列印目前顯示的頁面。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+P</source>
<translation>Ctrl+P</translation>
</message>
<message>
+ <location/>
<source>Quit Qt Assistant.</source>
<translation>離開 Qt 小幫手。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+Q</source>
<translation>Ctrl+Q</translation>
</message>
<message>
+ <location/>
<source>Copy the selected text to the clipboard.</source>
<translation>複製選取的文字到剪貼簿中。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+C</source>
<translation>Ctrl+C</translation>
</message>
<message>
+ <location/>
<source>Open the Find dialog. Qt Assistant will search the currently displayed page for the text you enter.</source>
<translation>開啟「尋找」對話框。Qt 小幫手會在目前顯示的頁面中搜尋您所輸入的文字。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+F</source>
<translation>Ctrl+F</translation>
</message>
<message>
+ <location/>
<source>Find &amp;Next</source>
<translation>尋找下一筆(&amp;N)</translation>
</message>
<message>
+ <location/>
<source>F3</source>
<translation>F3</translation>
</message>
<message>
+ <location/>
<source>Find &amp;Previous</source>
<translation>尋找上一筆(&amp;P)</translation>
</message>
<message>
+ <location/>
<source>Shift+F3</source>
<translation>Shift+F3</translation>
</message>
<message>
+ <location/>
<source>Go to the home page. Qt Assistant&apos;s home page is the Qt Reference Documentation.</source>
<translation>回到首頁。Qt 小幫手的首頁為 Qt 參考文件。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+Home</source>
<translation>Ctrl+Home</translation>
</message>
<message>
+ <location/>
<source>Go to the previous page.</source>
<translation>跳到上一頁。</translation>
</message>
<message>
+ <location/>
<source>Alt+Left</source>
<translation>Alt+Left</translation>
</message>
<message>
+ <location/>
<source>Go to the next page.</source>
<translation>跳到下一頁。</translation>
</message>
<message>
+ <location/>
<source>Alt+Right</source>
<translation>Alt+Right</translation>
</message>
<message>
+ <location/>
<source>About Qt Assistant</source>
<translation>關於 Qt 小幫手</translation>
</message>
<message>
+ <location/>
<source>Display further information about Qt Assistant.</source>
<translation>顯示關於 Qt 小幫手的詳情。</translation>
</message>
<message>
+ <location/>
<source>Zoom in on the document, i.e. increase the font size.</source>
<translation>放大文件,也就是加大字型。</translation>
</message>
<message>
+ <location/>
<source>Ctrl++</source>
<translation>Ctrl++</translation>
</message>
<message>
+ <location/>
<source>Zoom out on the document, i.e. decrease the font size.</source>
<translation>縮小文件,也就是縮小字型。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+-</source>
<translation>Ctrl+-</translation>
</message>
<message>
+ <location/>
<source>Open a new window.</source>
<translation>開啟新視窗。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+N</source>
<translation>Ctrl+N</translation>
</message>
<message>
+ <location/>
<source>&amp;Close</source>
<translation>關閉(&amp;C)</translation>
</message>
<message>
+ <location/>
<source>Close the current window.</source>
<translation>關閉目前的視窗。</translation>
</message>
<message>
+ <location/>
<source>Add the currently displayed page as a new bookmark.</source>
<translation>將目前顯示的頁面新增到書籤中。</translation>
</message>
<message>
+ <location/>
<source>What&apos;s This?</source>
<translation>這是什麼?</translation>
</message>
<message>
+ <location/>
<source>&quot;What&apos;s This?&quot; context sensitive help.</source>
<translation>「這是什麼?」內文說明。</translation>
</message>
<message>
+ <location/>
<source>Shift+F1</source>
<translation>Shift+F1</translation>
</message>
<message>
+ <location/>
<source>Add Tab</source>
<translation>新增分頁</translation>
</message>
<message>
+ <location/>
<source>Ctrl+Alt+N</source>
<translation>Ctrl+Alt+N</translation>
</message>
<message>
+ <location/>
<source>Next Tab</source>
<translation>下一個分頁</translation>
</message>
<message>
+ <location/>
<source>Ctrl+Alt+Right</source>
<translation>Ctrl+Alt+Right</translation>
</message>
<message>
+ <location/>
<source>Previous Tab</source>
<translation>前一個分頁</translation>
</message>
<message>
+ <location/>
<source>Ctrl+Alt+Left</source>
<translation>Ctrl+Alt+Left</translation>
</message>
<message>
+ <location/>
<source>Close Tab</source>
<translation>關閉分頁</translation>
</message>
<message>
+ <location/>
<source>Ctrl+Alt+Q</source>
<translation>Ctrl+Alt+Q</translation>
</message>
<message>
+ <location/>
<source>Qt Assistant Manual</source>
<translation>Qt 小幫手手冊</translation>
</message>
<message>
+ <location/>
<source>F1</source>
<translation>F1</translation>
</message>
<message>
+ <location/>
<source>Save Page As...</source>
<translation>另存頁面為...</translation>
</message>
<message>
+ <location/>
<source>Ctrl+Alt+S</source>
<translation>Ctrl+Alt+S</translation>
</message>
<message>
+ <location/>
<source>Sync with Table of Contents</source>
<translation>與目錄同步</translation>
</message>
<message>
+ <location/>
<source>Select the page in contents tab.</source>
<translation>選擇在內容分頁中的頁面。</translation>
</message>
<message>
+ <location/>
<source>Font Settings...</source>
<translation>字型設定...</translation>
</message>
<message>
<source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/model&quot;&gt;qtsoftware.com/company/model&lt;/a&gt; for an overview of Qt licensing.</source>
- <translation>您需要商業版的 Qt 授權才能發展私有(封閉)應用程式軟體。關於 Qt 授權的概要,請參考 &lt;a href=&quot;http://qtsoftware.com/company/model&quot;&gt;qtsoftware.com/company/model&lt;/a&gt;。</translation>
+ <translation type="obsolete">您需要商業版的 Qt 授權才能發展私有(封閉)應用程式軟體。關於 Qt 授權的概要,請參考 &lt;a href=&quot;http://qtsoftware.com/company/model&quot;&gt;qtsoftware.com/company/model&lt;/a&gt;。</translation>
</message>
<message>
<source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.</source>
- <translation>此程式以 Qt %1 授權同意書授權給您。詳情請參照套件中的授權檔。</translation>
+ <translation type="obsolete">此程式以 Qt %1 授權同意書授權給您。詳情請參照套件中的授權檔。</translation>
</message>
</context>
<context>
@@ -713,7 +876,7 @@ Assistant will not work!</source>
<translation type="obsolete">Qt 小幫手,Trolltech 公司提供</translation>
</message>
<message>
- <location filename="../tools/assistant/compat/config.cpp" line="320"/>
+ <location filename="../tools/assistant/compat/config.cpp" line="+350"/>
<source>Qt Assistant by Nokia</source>
<translation>Nokia 提供的 Qt 小幫手</translation>
</message>
@@ -721,55 +884,67 @@ Assistant will not work!</source>
<context>
<name>TabbedBrowser</name>
<message>
- <location filename="../tools/assistant/compat/tabbedbrowser.cpp" line="119"/>
+ <location filename="../tools/assistant/compat/tabbedbrowser.cpp" line="+149"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
+ <location line="+86"/>
<source>Add page</source>
<translation>新增頁面</translation>
</message>
<message>
+ <location line="+9"/>
<source>Close page</source>
<translation>關閉頁面</translation>
</message>
<message>
+ <location line="+243"/>
<source>New Tab</source>
<translation>新增分頁</translation>
</message>
<message>
+ <location line="+1"/>
<source>Close Tab</source>
<translation>關閉分頁</translation>
</message>
<message>
+ <location line="+1"/>
<source>Close Other Tabs</source>
<translation>關閉其他分頁</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/tabbedbrowser.ui"/>
<source>TabbedBrowser</source>
<translation>分頁式瀏覽器</translation>
</message>
<message>
+ <location/>
<source>Untitled</source>
<translation>未命名</translation>
</message>
<message>
+ <location/>
<source>Previous</source>
<translation>前一個</translation>
</message>
<message>
+ <location/>
<source>Next</source>
<translation>下一個</translation>
</message>
<message>
+ <location/>
<source>Case Sensitive</source>
<translation>區分大小寫</translation>
</message>
<message>
+ <location/>
<source>Whole words</source>
<translation>整個字詞</translation>
</message>
<message>
+ <location/>
<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>
@@ -777,39 +952,47 @@ Assistant will not work!</source>
<context>
<name>TopicChooser</name>
<message>
- <location filename="../tools/assistant/compat/topicchooser.cpp" line="26"/>
+ <location filename="../tools/assistant/compat/topicchooser.cpp" line="+56"/>
<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/compat/topicchooser.ui"/>
<source>Choose Topic</source>
<translation>選擇主題</translation>
</message>
<message>
+ <location/>
<source>Select a topic from the list and click the &lt;b&gt;Display&lt;/b&gt;-button to open the online help.</source>
<translation>請從清單中選取一個主題,並按下「顯示」鍵開啟線上說明。</translation>
</message>
<message>
+ <location/>
<source>&amp;Topics</source>
<translation>主題(&amp;T)</translation>
</message>
<message>
+ <location/>
<source>Displays a list of available help topics for the keyword.</source>
<translation>顯示此關鍵字可用的說明主題。</translation>
</message>
<message>
+ <location/>
<source>&amp;Display</source>
<translation>顯示(&amp;D)</translation>
</message>
<message>
+ <location/>
<source>Open the topic selected in the list.</source>
<translation>開啟在清單中選取的主題。</translation>
</message>
<message>
+ <location/>
<source>&amp;Close</source>
<translation>關閉(&amp;C)</translation>
</message>
<message>
+ <location/>
<source>Close the Dialog.</source>
<translation>關閉對話框。</translation>
</message>
diff --git a/translations/assistant_de.ts b/translations/assistant_de.ts
index 0bb0e66..0411ef1 100644
--- a/translations/assistant_de.ts
+++ b/translations/assistant_de.ts
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="de">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="de">
<context>
<name>AboutDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+80"/>
+ <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+110"/>
<source>&amp;Close</source>
<translation>&amp;Schließen</translation>
</message>
@@ -52,7 +52,7 @@
<translation>Neuer Ordner</translation>
</message>
<message>
- <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+155"/>
+ <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+185"/>
<location line="+18"/>
<location line="+36"/>
<location line="+24"/>
@@ -163,7 +163,7 @@
<context>
<name>CentralWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+163"/>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+195"/>
<source>Add new page</source>
<translation>Neue Seite hinzufügen</translation>
</message>
@@ -173,12 +173,12 @@
<translation>Aktuelle Seite schließen</translation>
</message>
<message>
- <location line="+266"/>
+ <location line="+265"/>
<source>Print Document</source>
<translation>Drucken</translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+147"/>
<location line="+2"/>
<source>unknown</source>
<translation>unbekannt</translation>
@@ -204,7 +204,7 @@
<translation>Lesezeichen für diese Seite hinzufügen...</translation>
</message>
<message>
- <location line="+227"/>
+ <location line="+257"/>
<source>Search</source>
<translation>Suchen</translation>
</message>
@@ -212,7 +212,7 @@
<context>
<name>ContentWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+115"/>
+ <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+155"/>
<source>Open Link</source>
<translation>Link öffnen</translation>
</message>
@@ -242,7 +242,7 @@
<context>
<name>FindWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-809"/>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-863"/>
<source>Previous</source>
<translation>Vorherige</translation>
</message>
@@ -270,7 +270,7 @@
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation>Schriftart</translation>
</message>
@@ -298,7 +298,7 @@
<context>
<name>HelpViewer</name>
<message>
- <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+310"/>
+ <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+481"/>
<source>Help</source>
<translation>Hilfe</translation>
</message>
@@ -314,12 +314,12 @@
<translation>OK</translation>
</message>
<message>
- <location line="+17"/>
+ <location line="-62"/>
<source>&lt;title&gt;Error 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;The page could not be found&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</source>
<translation>&lt;title&gt;Fehler 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;Die Seite konnte nicht gefunden werden!&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</translation>
</message>
<message>
- <location line="+90"/>
+ <location line="+125"/>
<source>Copy &amp;Link Location</source>
<translation>&amp;Link Adresse kopieren</translation>
</message>
@@ -329,12 +329,12 @@
<translation>Link in neuem Tab öffnen </translation>
</message>
<message>
- <location line="-238"/>
+ <location line="-267"/>
<source>Open Link in New Tab</source>
<translation>Link in neuem Tab öffnen</translation>
</message>
<message>
- <location line="+128"/>
+ <location line="+201"/>
<source>Unable to launch external application.
</source>
<translation>Fehler beim Starten der externen Anwendung.
@@ -344,12 +344,12 @@
<context>
<name>IndexWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+36"/>
+ <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+66"/>
<source>&amp;Look for:</source>
<translation>Suche &amp;nach:</translation>
</message>
<message>
- <location line="+70"/>
+ <location line="+68"/>
<source>Open Link</source>
<translation>Link öffnen</translation>
</message>
@@ -362,7 +362,7 @@
<context>
<name>InstallDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+45"/>
+ <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+75"/>
<location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
<source>Install Documentation</source>
<translation>Dokumentation installieren</translation>
@@ -462,38 +462,38 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+78"/>
- <location line="+345"/>
+ <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+108"/>
+ <location line="+350"/>
<source>Index</source>
<translation>Index</translation>
</message>
<message>
- <location line="-339"/>
- <location line="+337"/>
+ <location line="-344"/>
+ <location line="+342"/>
<source>Contents</source>
<translation>Inhalt</translation>
</message>
<message>
- <location line="-332"/>
- <location line="+336"/>
+ <location line="-337"/>
+ <location line="+341"/>
<source>Bookmarks</source>
<translation>Lesezeichen</translation>
</message>
<message>
- <location line="-324"/>
- <location line="+326"/>
+ <location line="-329"/>
+ <location line="+331"/>
<source>Search</source>
<translation>Suchen</translation>
</message>
<message>
- <location line="-314"/>
- <location line="+185"/>
- <location line="+488"/>
+ <location line="-319"/>
+ <location line="+192"/>
+ <location line="+470"/>
<source>Qt Assistant</source>
<translation>Qt Assistant</translation>
</message>
<message>
- <location line="-519"/>
+ <location line="-501"/>
<location line="+4"/>
<source>Unfiltered</source>
<translation>Ohne Filter</translation>
@@ -503,47 +503,44 @@
<translation type="obsolete">Datei</translation>
</message>
<message>
- <location line="+82"/>
+ <location line="+84"/>
<source>Page Set&amp;up...</source>
<translation>S&amp;eite einrichten...</translation>
</message>
<message>
- <location line="+1"/>
+ <location line="+2"/>
<source>Print Preview...</source>
<translation>Druckvorschau...</translation>
</message>
<message>
- <location line="+1"/>
+ <location line="+3"/>
<source>&amp;Print...</source>
<translation>&amp;Drucken...</translation>
</message>
<message>
- <location line="+3"/>
<source>CTRL+P</source>
- <translation>CTRL+P</translation>
+ <translation type="obsolete">CTRL+P</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+6"/>
<source>New &amp;Tab</source>
<translation>Neue &amp;Seite</translation>
</message>
<message>
- <location line="+1"/>
<source>CTRL+T</source>
- <translation>CTRL+T</translation>
+ <translation type="obsolete">CTRL+T</translation>
</message>
<message>
- <location line="+1"/>
+ <location line="+3"/>
<source>&amp;Close Tab</source>
<translation>&amp;Seite schließen</translation>
</message>
<message>
- <location line="+1"/>
<source>CTRL+W</source>
- <translation>CTRL+W</translation>
+ <translation type="obsolete">CTRL+W</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+4"/>
<source>&amp;Quit</source>
<translation>&amp;Beenden</translation>
</message>
@@ -562,42 +559,38 @@
<translation>&amp;Kopieren</translation>
</message>
<message>
- <location line="+4"/>
<source>Ctrl+C</source>
- <translation>Ctrl+C</translation>
+ <translation type="obsolete">Ctrl+C</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+6"/>
<source>&amp;Find in Text...</source>
<translation>&amp;Textsuche...</translation>
</message>
<message>
- <location line="+4"/>
<source>Ctrl+F</source>
- <translation>Ctrl+F</translation>
+ <translation type="obsolete">Ctrl+F</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+5"/>
<source>Find &amp;Next</source>
<translation>&amp;Weitersuchen</translation>
</message>
<message>
- <location line="+2"/>
<source>F3</source>
- <translation>F3</translation>
+ <translation type="obsolete">F3</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+4"/>
<source>Find &amp;Previous</source>
<translation>&amp;Vorheriges suchen</translation>
</message>
<message>
- <location line="+2"/>
<source>Shift+F3</source>
- <translation>Shift+F3</translation>
+ <translation type="obsolete">Shift+F3</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+5"/>
<source>Preferences...</source>
<translation>Einstellungen...</translation>
</message>
@@ -611,27 +604,25 @@
<translation>&amp;Vergrößern</translation>
</message>
<message>
- <location line="+4"/>
<source>Ctrl++</source>
- <translation>Ctrl++</translation>
+ <translation type="obsolete">Ctrl++</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+5"/>
<source>Zoom &amp;out</source>
<translation>Ver&amp;kleinern</translation>
</message>
<message>
- <location line="+4"/>
<source>Ctrl+-</source>
- <translation>Ctrl+-</translation>
+ <translation type="obsolete">Ctrl+-</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+5"/>
<source>Normal &amp;Size</source>
<translation>Standard&amp;größe</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+3"/>
<source>Ctrl+0</source>
<translation>Ctrl+0</translation>
</message>
@@ -664,27 +655,27 @@
<translation>&amp;Startseite</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Ctrl+Home</source>
<translation>Strg+Pos1</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+3"/>
<source>&amp;Back</source>
<translation>&amp;Rückwärts</translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+5"/>
<source>&amp;Forward</source>
<translation>&amp;Vorwärts</translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+5"/>
<source>Sync with Table of Contents</source>
<translation>Seite mit Inhalt Tab syncronisieren</translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+6"/>
<source>Next Page</source>
<translation>Nächste Seite</translation>
</message>
@@ -699,7 +690,7 @@
<translation>Vorherige Seite</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Ctrl+Alt+Left</source>
<translation>Ctrl+Alt+Left</translation>
</message>
@@ -727,7 +718,7 @@
<translation>Navigationsleiste</translation>
</message>
<message>
- <location line="+75"/>
+ <location line="+74"/>
<source>Toolbars</source>
<translation>Werkzeugleisten</translation>
</message>
@@ -742,7 +733,7 @@
<translation>Filter:</translation>
</message>
<message>
- <location line="+21"/>
+ <location line="+23"/>
<source>Address Toolbar</source>
<translation>Adressleiste</translation>
</message>
@@ -752,31 +743,28 @@
<translation>Adresse:</translation>
</message>
<message>
- <location line="+108"/>
+ <location line="+110"/>
<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>Open Source Edition</source>
- <translation>Open Source Edition</translation>
+ <translation type="obsolete">Open Source Edition</translation>
</message>
<message>
- <location line="+1"/>
<source>This version of Qt Assistant is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.</source>
- <translation>This version of Qt Assistant is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.</translation>
+ <translation type="obsolete">This version of Qt Assistant is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.</translation>
</message>
<message>
<source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;qtsoftware.com/company/model.html&lt;/a&gt; for an overview of Qt licensing.</source>
<translation type="obsolete">You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;qtsoftware.com/company/model.html&lt;/a&gt; for an overview of Qt licensing.</translation>
</message>
<message>
- <location line="+10"/>
<source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</translation>
+ <translation type="obsolete">This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</translation>
</message>
<message>
- <location line="+20"/>
+ <location line="+81"/>
<source>About %1</source>
<translation>Über %1</translation>
</message>
@@ -786,17 +774,17 @@
<translation>Suchindex wird aufgebaut</translation>
</message>
<message>
- <location line="-614"/>
+ <location line="-597"/>
<source>Looking for Qt Documentation...</source>
<translation>Suche nach Qt Dokumentationen...</translation>
</message>
<message>
- <location line="+205"/>
+ <location line="+195"/>
<source>&amp;Window</source>
<translation>&amp;Fenster</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+3"/>
<source>Minimize</source>
<translation>Minimieren</translation>
</message>
@@ -806,7 +794,7 @@
<translation>CTRL+M</translation>
</message>
<message>
- <location line="+1"/>
+ <location line="-2"/>
<source>Zoom</source>
<translation>Zoom</translation>
</message>
@@ -819,27 +807,27 @@
<translation type="obsolete">Entfernen</translation>
</message>
<message>
- <location line="-150"/>
+ <location line="-136"/>
<source>&amp;File</source>
<translation>&amp;Datei</translation>
</message>
<message>
- <location line="+20"/>
+ <location line="+24"/>
<source>&amp;Edit</source>
<translation>&amp;Bearbeiten</translation>
</message>
<message>
- <location line="+29"/>
+ <location line="+24"/>
<source>&amp;View</source>
<translation>&amp;Ansicht</translation>
</message>
<message>
- <location line="+30"/>
+ <location line="+27"/>
<source>&amp;Go</source>
<translation>&amp;Gehe</translation>
</message>
<message>
- <location line="+37"/>
+ <location line="+29"/>
<source>&amp;Bookmarks</source>
<translation>&amp;Lesezeichen</translation>
</message>
@@ -849,17 +837,16 @@
<translation>&amp;Hilfe</translation>
</message>
<message>
- <location line="+294"/>
<source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel&lt;/a&gt; for an overview of Qt licensing.</source>
- <translation>Sie benötigen eine kommerzielle Qt Lizenz für die Entwicklung von proprietären (geschlossenen) Anwendungen. Besuchen Sie &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel&lt;/a&gt; um sich einen Überblick über die Qt Lizenzvergabe zu verschaffen.</translation>
+ <translation type="obsolete">Sie benötigen eine kommerzielle Qt Lizenz für die Entwicklung von proprietären (geschlossenen) Anwendungen. Besuchen Sie &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel&lt;/a&gt; um sich einen Überblick über die Qt Lizenzvergabe zu verschaffen.</translation>
</message>
<message>
- <location line="-339"/>
+ <location line="-37"/>
<source>ALT+O</source>
<translation>ALT+O</translation>
</message>
<message>
- <location line="+43"/>
+ <location line="+35"/>
<source>CTRL+D</source>
<translation>CTRL+D</translation>
</message>
@@ -875,7 +862,7 @@
<translation type="obsolete">Von Helpserver herunterladen...</translation>
</message>
<message>
- <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+238"/>
+ <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+237"/>
<location line="+7"/>
<location line="+6"/>
<source>Add Documentation</source>
@@ -897,7 +884,27 @@
<translation>Der Namespace %1 ist bereits registriert!</translation>
</message>
<message>
- <location line="+122"/>
+ <location line="+23"/>
+ <source>Remove Documentation</source>
+ <translation type="unfinished"></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 type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Cancel</source>
+ <translation type="unfinished">Abbrechen</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>OK</source>
+ <translation type="unfinished">OK</translation>
+ </message>
+ <message>
+ <location line="+86"/>
<source>Use custom settings</source>
<translation>Benutze erweiterte Einstellungen</translation>
</message>
@@ -975,24 +982,20 @@
<translation>Hinzufügen...</translation>
</message>
<message>
- <location/>
<source>Network</source>
- <translation>Netzwerk</translation>
+ <translation type="obsolete">Netzwerk</translation>
</message>
<message>
- <location/>
<source>Use Http Proxy</source>
- <translation>Http Proxy</translation>
+ <translation type="obsolete">Http Proxy</translation>
</message>
<message>
- <location/>
<source>Http Proxy:</source>
- <translation>Http Proxy:</translation>
+ <translation type="obsolete">Http Proxy:</translation>
</message>
<message>
- <location/>
<source>Port:</source>
- <translation>Port:</translation>
+ <translation type="obsolete">Port:</translation>
</message>
<message>
<location/>
@@ -1022,7 +1025,7 @@
<translation type="obsolete">Neuer Ordner</translation>
</message>
<message>
- <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+79"/>
+ <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+110"/>
<source>The specified collection file does not exist!</source>
<translation>Die angegeben Katalogdatei (collection file) konnte nicht gefunden werden!</translation>
</message>
@@ -1068,6 +1071,11 @@
<translation>Fehlende Hilfedatei!</translation>
</message>
<message>
+ <location line="+7"/>
+ <source>Missing filter argument!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location line="+10"/>
<source>Unknown option: %1</source>
<translation>Unbekannte Option: %1</translation>
@@ -1079,7 +1087,7 @@
<translation>Qt Assistant</translation>
</message>
<message>
- <location filename="../tools/assistant/tools/assistant/main.cpp" line="+58"/>
+ <location filename="../tools/assistant/tools/assistant/main.cpp" line="+190"/>
<source>Could not register documentation file
%1
@@ -1093,7 +1101,7 @@ Reason:
<translation>Dokumentation erfolgreich registriert.</translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+11"/>
<source>Could not unregister documentation file
%1
@@ -1102,12 +1110,12 @@ Reason:
<translation>Could not unregister documentation file%1Reason:%2</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="-3"/>
<source>Documentation successfully unregistered.</source>
<translation>Dokumentation erfolgreich entfernt.</translation>
</message>
<message>
- <location line="+13"/>
+ <location line="+18"/>
<source>Cannot load sqlite database driver!</source>
<translation type="unfinished"></translation>
</message>
@@ -1126,7 +1134,7 @@ Reason:
<context>
<name>RemoteControl</name>
<message>
- <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+128"/>
+ <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+157"/>
<source>Debugging Remote Control</source>
<translation>Debugging Remote Control</translation>
</message>
@@ -1139,7 +1147,7 @@ Reason:
<context>
<name>SearchWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+163"/>
+ <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+193"/>
<source>&amp;Copy</source>
<translation>&amp;Kopieren</translation>
</message>
@@ -1168,7 +1176,7 @@ Reason:
<context>
<name>TopicChooser</name>
<message>
- <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+24"/>
+ <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+54"/>
<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>
diff --git a/translations/assistant_ja.ts b/translations/assistant_ja.ts
index 5552272..1853155 100644
--- a/translations/assistant_ja.ts
+++ b/translations/assistant_ja.ts
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0">
+<!DOCTYPE TS>
+<TS version="2.0">
<context>
<name>AboutDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+80"/>
+ <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+110"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
</message>
@@ -30,7 +31,7 @@
<context>
<name>BookmarkDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+155"/>
+ <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+185"/>
<location line="+18"/>
<location line="+36"/>
<location line="+24"/>
@@ -149,7 +150,7 @@
<context>
<name>CentralWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+163"/>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+195"/>
<source>Add new page</source>
<translation type="unfinished"></translation>
</message>
@@ -159,12 +160,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+266"/>
+ <location line="+265"/>
<source>Print Document</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+147"/>
<location line="+2"/>
<source>unknown</source>
<translation type="unfinished"></translation>
@@ -190,7 +191,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+227"/>
+ <location line="+257"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
@@ -198,7 +199,7 @@
<context>
<name>ContentWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+115"/>
+ <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+155"/>
<source>Open Link</source>
<translation type="unfinished"></translation>
</message>
@@ -224,7 +225,7 @@
<context>
<name>FindWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-809"/>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-863"/>
<source>Previous</source>
<translation type="unfinished"></translation>
</message>
@@ -252,7 +253,7 @@
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation type="unfinished"></translation>
</message>
@@ -280,7 +281,7 @@
<context>
<name>HelpViewer</name>
<message>
- <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+310"/>
+ <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+481"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
@@ -290,12 +291,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+17"/>
+ <location line="-62"/>
<source>&lt;title&gt;Error 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;The page could not be found&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+90"/>
+ <location line="+125"/>
<source>Copy &amp;Link Location</source>
<translation type="unfinished"></translation>
</message>
@@ -305,12 +306,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-238"/>
+ <location line="-267"/>
<source>Open Link in New Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+128"/>
+ <location line="+201"/>
<source>Unable to launch external application.
</source>
<translation type="unfinished"></translation>
@@ -319,12 +320,12 @@
<context>
<name>IndexWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+36"/>
+ <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+66"/>
<source>&amp;Look for:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+70"/>
+ <location line="+68"/>
<source>Open Link</source>
<translation type="unfinished"></translation>
</message>
@@ -337,7 +338,7 @@
<context>
<name>InstallDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+45"/>
+ <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+75"/>
<location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
<source>Install Documentation</source>
<translation type="unfinished"></translation>
@@ -436,84 +437,69 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+78"/>
- <location line="+345"/>
+ <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+108"/>
+ <location line="+350"/>
<source>Index</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-339"/>
- <location line="+337"/>
+ <location line="-344"/>
+ <location line="+342"/>
<source>Contents</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-332"/>
- <location line="+336"/>
+ <location line="-337"/>
+ <location line="+341"/>
<source>Bookmarks</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-324"/>
- <location line="+326"/>
+ <location line="-329"/>
+ <location line="+331"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-314"/>
- <location line="+185"/>
- <location line="+488"/>
+ <location line="-319"/>
+ <location line="+192"/>
+ <location line="+470"/>
<source>Qt Assistant</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-519"/>
+ <location line="-501"/>
<location line="+4"/>
<source>Unfiltered</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+82"/>
+ <location line="+84"/>
<source>Page Set&amp;up...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+1"/>
+ <location line="+2"/>
<source>Print Preview...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+1"/>
- <source>&amp;Print...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location line="+3"/>
- <source>CTRL+P</source>
+ <source>&amp;Print...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+6"/>
<source>New &amp;Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+1"/>
- <source>CTRL+T</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+1"/>
+ <location line="+3"/>
<source>&amp;Close Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+1"/>
- <source>CTRL+W</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+2"/>
+ <location line="+4"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
@@ -528,42 +514,22 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
- <source>Ctrl+C</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+3"/>
+ <location line="+6"/>
<source>&amp;Find in Text...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
- <source>Ctrl+F</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+3"/>
+ <location line="+5"/>
<source>Find &amp;Next</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
- <source>F3</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+3"/>
+ <location line="+4"/>
<source>Find &amp;Previous</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
- <source>Shift+F3</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+4"/>
+ <location line="+5"/>
<source>Preferences...</source>
<translation type="unfinished"></translation>
</message>
@@ -573,27 +539,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
- <source>Ctrl++</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+2"/>
+ <location line="+5"/>
<source>Zoom &amp;out</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
- <source>Ctrl+-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+2"/>
+ <location line="+5"/>
<source>Normal &amp;Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+3"/>
<source>Ctrl+0</source>
<translation type="unfinished"></translation>
</message>
@@ -618,27 +574,27 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Ctrl+Home</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+3"/>
<source>&amp;Back</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+5"/>
<source>&amp;Forward</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+5"/>
<source>Sync with Table of Contents</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+6"/>
<source>Next Page</source>
<translation type="unfinished"></translation>
</message>
@@ -653,7 +609,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Ctrl+Alt+Left</source>
<translation type="unfinished"></translation>
</message>
@@ -673,7 +629,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+75"/>
+ <location line="+74"/>
<source>Toolbars</source>
<translation type="unfinished"></translation>
</message>
@@ -688,7 +644,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+21"/>
+ <location line="+23"/>
<source>Address Toolbar</source>
<translation type="unfinished"></translation>
</message>
@@ -698,27 +654,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+108"/>
+ <location line="+110"/>
<source>Could not find the associated content item.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+60"/>
- <source>Open Source Edition</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+1"/>
- <source>This version of Qt Assistant is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+10"/>
- <source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+20"/>
+ <location line="+81"/>
<source>About %1</source>
<translation type="unfinished"></translation>
</message>
@@ -728,17 +669,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-614"/>
+ <location line="-597"/>
<source>Looking for Qt Documentation...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+205"/>
+ <location line="+195"/>
<source>&amp;Window</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+3"/>
<source>Minimize</source>
<translation type="unfinished"></translation>
</message>
@@ -748,32 +689,32 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+1"/>
+ <location line="-2"/>
<source>Zoom</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-150"/>
+ <location line="-136"/>
<source>&amp;File</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+20"/>
+ <location line="+24"/>
<source>&amp;Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+29"/>
+ <location line="+24"/>
<source>&amp;View</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+30"/>
+ <location line="+27"/>
<source>&amp;Go</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+37"/>
+ <location line="+29"/>
<source>&amp;Bookmarks</source>
<translation type="unfinished"></translation>
</message>
@@ -783,17 +724,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+294"/>
- <source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel&lt;/a&gt; for an overview of Qt licensing.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="-339"/>
+ <location line="-37"/>
<source>ALT+O</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+43"/>
+ <location line="+35"/>
<source>CTRL+D</source>
<translation type="unfinished"></translation>
</message>
@@ -801,7 +737,7 @@
<context>
<name>PreferencesDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+238"/>
+ <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+237"/>
<location line="+7"/>
<location line="+6"/>
<source>Add Documentation</source>
@@ -823,7 +759,27 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+122"/>
+ <location line="+23"/>
+ <source>Remove Documentation</source>
+ <translation type="unfinished"></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 type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+86"/>
<source>Use custom settings</source>
<translation type="unfinished"></translation>
</message>
@@ -902,26 +858,6 @@
</message>
<message>
<location/>
- <source>Network</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location/>
- <source>Use Http Proxy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location/>
- <source>Http Proxy:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location/>
- <source>Port:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location/>
<source>Options</source>
<translation type="unfinished"></translation>
</message>
@@ -944,7 +880,7 @@
<context>
<name>QObject</name>
<message>
- <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+79"/>
+ <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+110"/>
<source>The specified collection file does not exist!</source>
<translation type="unfinished"></translation>
</message>
@@ -990,6 +926,11 @@
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+7"/>
+ <source>Missing filter argument!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location line="+10"/>
<source>Unknown option: %1</source>
<translation type="unfinished"></translation>
@@ -1001,7 +942,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/assistant/tools/assistant/main.cpp" line="+58"/>
+ <location filename="../tools/assistant/tools/assistant/main.cpp" line="+190"/>
<source>Could not register documentation file
%1
@@ -1015,7 +956,7 @@ Reason:
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+11"/>
<source>Could not unregister documentation file
%1
@@ -1024,12 +965,12 @@ Reason:
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
+ <location line="-3"/>
<source>Documentation successfully unregistered.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+13"/>
+ <location line="+18"/>
<source>Cannot load sqlite database driver!</source>
<translation type="unfinished"></translation>
</message>
@@ -1048,7 +989,7 @@ Reason:
<context>
<name>RemoteControl</name>
<message>
- <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+128"/>
+ <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+157"/>
<source>Debugging Remote Control</source>
<translation type="unfinished"></translation>
</message>
@@ -1061,7 +1002,7 @@ Reason:
<context>
<name>SearchWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+163"/>
+ <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+193"/>
<source>&amp;Copy</source>
<translation type="unfinished"></translation>
</message>
@@ -1090,7 +1031,7 @@ Reason:
<context>
<name>TopicChooser</name>
<message>
- <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+24"/>
+ <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+54"/>
<source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;:</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/assistant_pl.ts b/translations/assistant_pl.ts
index 4985b72..f84bad2 100644
--- a/translations/assistant_pl.ts
+++ b/translations/assistant_pl.ts
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="pl">
+<!DOCTYPE TS>
+<TS version="2.0" language="pl">
<context>
<name>AboutDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+80"/>
+ <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+110"/>
<source>&amp;Close</source>
<translation>Za&amp;mknij</translation>
</message>
@@ -30,7 +31,7 @@
<context>
<name>BookmarkDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+155"/>
+ <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+185"/>
<location line="+18"/>
<location line="+36"/>
<location line="+24"/>
@@ -157,7 +158,7 @@
<context>
<name>CentralWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+163"/>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+195"/>
<source>Add new page</source>
<translation>Dodaj nową stronę</translation>
</message>
@@ -167,12 +168,12 @@
<translation>Zamknij bieżącą stronę</translation>
</message>
<message>
- <location line="+266"/>
+ <location line="+265"/>
<source>Print Document</source>
<translation>Wydrukuj dokument</translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+147"/>
<location line="+2"/>
<source>unknown</source>
<translation>nieznany</translation>
@@ -198,7 +199,7 @@
<translation>Dodaj zakładkę dla tej strony...</translation>
</message>
<message>
- <location line="+227"/>
+ <location line="+257"/>
<source>Search</source>
<translation>Wyszukaj</translation>
</message>
@@ -206,7 +207,7 @@
<context>
<name>ContentWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+115"/>
+ <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+155"/>
<source>Open Link</source>
<translation>Otwórz odsyłacz</translation>
</message>
@@ -236,7 +237,7 @@
<context>
<name>FindWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-809"/>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-863"/>
<source>Previous</source>
<translation>Poprzedni</translation>
</message>
@@ -264,7 +265,7 @@
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation>Czcionka</translation>
</message>
@@ -292,7 +293,7 @@
<context>
<name>HelpViewer</name>
<message>
- <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+310"/>
+ <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+481"/>
<source>Help</source>
<translation>Pomoc</translation>
</message>
@@ -308,12 +309,12 @@
<translation>OK</translation>
</message>
<message>
- <location line="+17"/>
+ <location line="-62"/>
<source>&lt;title&gt;Error 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;The page could not be found&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</source>
<translation>&lt;title&gt;Błąd 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;Strona nie może być znaleziona&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</translation>
</message>
<message>
- <location line="+90"/>
+ <location line="+125"/>
<source>Copy &amp;Link Location</source>
<translation>Skopiuj &amp;odsyłacz</translation>
</message>
@@ -323,12 +324,12 @@
<translation>Otwórz odsyłacz w nowej karcie Ctrl+LMB</translation>
</message>
<message>
- <location line="-238"/>
+ <location line="-267"/>
<source>Open Link in New Tab</source>
<translation>Otwórz odsyłacz w nowej karcie</translation>
</message>
<message>
- <location line="+128"/>
+ <location line="+201"/>
<source>Unable to launch external application.
</source>
<translation>Nie można uruchomić zewnętrznej aplikacji.
@@ -338,12 +339,12 @@
<context>
<name>IndexWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+36"/>
+ <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+66"/>
<source>&amp;Look for:</source>
<translation>Wy&amp;szukaj:</translation>
</message>
<message>
- <location line="+70"/>
+ <location line="+68"/>
<source>Open Link</source>
<translation>Otwórz odsyłacz</translation>
</message>
@@ -356,7 +357,7 @@
<context>
<name>InstallDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+45"/>
+ <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+75"/>
<location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
<source>Install Documentation</source>
<translation>Zainstaluj dokumentację</translation>
@@ -456,38 +457,38 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+78"/>
- <location line="+345"/>
+ <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+108"/>
+ <location line="+350"/>
<source>Index</source>
<translation>Indeks</translation>
</message>
<message>
- <location line="-339"/>
- <location line="+337"/>
+ <location line="-344"/>
+ <location line="+342"/>
<source>Contents</source>
<translation>Spis treści</translation>
</message>
<message>
- <location line="-332"/>
- <location line="+336"/>
+ <location line="-337"/>
+ <location line="+341"/>
<source>Bookmarks</source>
<translation>Zakładki</translation>
</message>
<message>
- <location line="-324"/>
- <location line="+326"/>
+ <location line="-329"/>
+ <location line="+331"/>
<source>Search</source>
<translation>Wyszukaj</translation>
</message>
<message>
- <location line="-314"/>
- <location line="+185"/>
- <location line="+488"/>
+ <location line="-319"/>
+ <location line="+192"/>
+ <location line="+470"/>
<source>Qt Assistant</source>
<translation>Qt Assistant</translation>
</message>
<message>
- <location line="-519"/>
+ <location line="-501"/>
<location line="+4"/>
<source>Unfiltered</source>
<translation>Nieprzefiltrowany</translation>
@@ -497,47 +498,44 @@
<translation type="obsolete">Plik</translation>
</message>
<message>
- <location line="+82"/>
+ <location line="+84"/>
<source>Page Set&amp;up...</source>
<translation>&amp;Ustawienia strony...</translation>
</message>
<message>
- <location line="+1"/>
+ <location line="+2"/>
<source>Print Preview...</source>
<translation>Podgląd wydruku...</translation>
</message>
<message>
- <location line="+1"/>
+ <location line="+3"/>
<source>&amp;Print...</source>
<translation>Wy&amp;drukuj...</translation>
</message>
<message>
- <location line="+3"/>
<source>CTRL+P</source>
- <translation>CTRL+P</translation>
+ <translation type="obsolete">CTRL+P</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+6"/>
<source>New &amp;Tab</source>
<translation>Nowa kar&amp;ta</translation>
</message>
<message>
- <location line="+1"/>
<source>CTRL+T</source>
- <translation>CTRL+T</translation>
+ <translation type="obsolete">CTRL+T</translation>
</message>
<message>
- <location line="+1"/>
+ <location line="+3"/>
<source>&amp;Close Tab</source>
<translation>&amp;Zamknij kartę</translation>
</message>
<message>
- <location line="+1"/>
<source>CTRL+W</source>
- <translation>CTRL+W</translation>
+ <translation type="obsolete">CTRL+W</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+4"/>
<source>&amp;Quit</source>
<translation>Za&amp;kończ</translation>
</message>
@@ -556,42 +554,38 @@
<translation>S&amp;kopiuj zaznaczony tekst</translation>
</message>
<message>
- <location line="+4"/>
<source>Ctrl+C</source>
- <translation>Ctrl+C</translation>
+ <translation type="obsolete">Ctrl+C</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+6"/>
<source>&amp;Find in Text...</source>
<translation>Znajdź w &amp;tekście...</translation>
</message>
<message>
- <location line="+4"/>
<source>Ctrl+F</source>
- <translation>Ctrl+F</translation>
+ <translation type="obsolete">Ctrl+F</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+5"/>
<source>Find &amp;Next</source>
<translation>Znajdź &amp;następny</translation>
</message>
<message>
- <location line="+2"/>
<source>F3</source>
- <translation>F3</translation>
+ <translation type="obsolete">F3</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+4"/>
<source>Find &amp;Previous</source>
<translation>Znajdź &amp;poprzedni</translation>
</message>
<message>
- <location line="+2"/>
<source>Shift+F3</source>
- <translation>Shift+F3</translation>
+ <translation type="obsolete">Shift+F3</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+5"/>
<source>Preferences...</source>
<translation>Ustawienia...</translation>
</message>
@@ -605,27 +599,17 @@
<translation>Po&amp;większ</translation>
</message>
<message>
- <location line="+4"/>
- <source>Ctrl++</source>
- <translation></translation>
- </message>
- <message>
- <location line="+2"/>
+ <location line="+5"/>
<source>Zoom &amp;out</source>
<translation>Po&amp;mniejsz</translation>
</message>
<message>
- <location line="+4"/>
- <source>Ctrl+-</source>
- <translation></translation>
- </message>
- <message>
- <location line="+2"/>
+ <location line="+5"/>
<source>Normal &amp;Size</source>
<translation>Normalny &amp;rozmiar</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+3"/>
<source>Ctrl+0</source>
<translation>Ctrl+0</translation>
</message>
@@ -658,27 +642,27 @@
<translation>Strona &amp;startowa</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Ctrl+Home</source>
<translation></translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+3"/>
<source>&amp;Back</source>
<translation>&amp;Wstecz</translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+5"/>
<source>&amp;Forward</source>
<translation>W &amp;przód</translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+5"/>
<source>Sync with Table of Contents</source>
<translation>Znajdź bieżącą stronę w spisie treści</translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+6"/>
<source>Next Page</source>
<translation>Następna strona</translation>
</message>
@@ -693,7 +677,7 @@
<translation>Poprzednia strona</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Ctrl+Alt+Left</source>
<translation></translation>
</message>
@@ -717,7 +701,7 @@
<translation>Pasek do nawigacji</translation>
</message>
<message>
- <location line="+75"/>
+ <location line="+74"/>
<source>Toolbars</source>
<translation>Paski narzędzi</translation>
</message>
@@ -732,7 +716,7 @@
<translation>Przefiltrowane przez:</translation>
</message>
<message>
- <location line="+21"/>
+ <location line="+23"/>
<source>Address Toolbar</source>
<translation>Pasek adresu</translation>
</message>
@@ -742,27 +726,20 @@
<translation>Adres:</translation>
</message>
<message>
- <location line="+108"/>
+ <location line="+110"/>
<source>Could not find the associated content item.</source>
<translation>Nie można znaleźć skojarzonego elementu zawartości.</translation>
</message>
<message>
- <location line="+60"/>
<source>Open Source Edition</source>
- <translation>Edycja Open Source</translation>
+ <translation type="obsolete">Edycja Open Source</translation>
</message>
<message>
- <location line="+1"/>
<source>This version of Qt Assistant is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.</source>
- <translation>Ta wersja Qt Assistant jest częścią wydania Qt Open Source, przeznaczonego do tworzenia aplikacji Open Source. Qt zawiera obszerny zestaw bibliotek wykorzystywanych do pisania przenośnych aplikacji.</translation>
+ <translation type="obsolete">Ta wersja Qt Assistant jest częścią wydania Qt Open Source, przeznaczonego do tworzenia aplikacji Open Source. Qt zawiera obszerny zestaw bibliotek wykorzystywanych do pisania przenośnych aplikacji.</translation>
</message>
<message>
- <location line="+10"/>
- <source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+20"/>
+ <location line="+81"/>
<source>About %1</source>
<translation>Informacje o %1</translation>
</message>
@@ -772,17 +749,17 @@
<translation>Uaktualnianie indeksu wyszukiwawczego</translation>
</message>
<message>
- <location line="-614"/>
+ <location line="-597"/>
<source>Looking for Qt Documentation...</source>
<translation>Szukanie dokumentacji Qt...</translation>
</message>
<message>
- <location line="+205"/>
+ <location line="+195"/>
<source>&amp;Window</source>
<translation>&amp;Okno</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+3"/>
<source>Minimize</source>
<translation>Zminimalizuj</translation>
</message>
@@ -792,7 +769,7 @@
<translation></translation>
</message>
<message>
- <location line="+1"/>
+ <location line="-2"/>
<source>Zoom</source>
<translation>Powiększenie</translation>
</message>
@@ -805,32 +782,31 @@
<translation type="obsolete">Usuń</translation>
</message>
<message>
- <location line="+264"/>
<source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel&lt;/a&gt; for an overview of Qt licensing.</source>
- <translation>Aby móc tworzyć przy pomocy Qt własne aplikacje bez publikowania kodu (closed source) potrzebujesz wydania komercyjnego. Opis sposobów licencjonowania Qt znajduje się na stronie &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;qtsoftware.com/company/model.html&lt;/a&gt;.</translation>
+ <translation type="obsolete">Aby móc tworzyć przy pomocy Qt własne aplikacje bez publikowania kodu (closed source) potrzebujesz wydania komercyjnego. Opis sposobów licencjonowania Qt znajduje się na stronie &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;qtsoftware.com/company/model.html&lt;/a&gt;.</translation>
</message>
<message>
- <location line="-414"/>
+ <location line="-136"/>
<source>&amp;File</source>
<translation>&amp;Plik</translation>
</message>
<message>
- <location line="+20"/>
+ <location line="+24"/>
<source>&amp;Edit</source>
<translation>&amp;Edycja</translation>
</message>
<message>
- <location line="+29"/>
+ <location line="+24"/>
<source>&amp;View</source>
<translation>&amp;Widok</translation>
</message>
<message>
- <location line="+30"/>
+ <location line="+27"/>
<source>&amp;Go</source>
<translation>&amp;Nawigacja</translation>
</message>
<message>
- <location line="+37"/>
+ <location line="+29"/>
<source>&amp;Bookmarks</source>
<translation>&amp;Zakładki</translation>
</message>
@@ -840,12 +816,12 @@
<translation>&amp;Pomoc</translation>
</message>
<message>
- <location line="-45"/>
+ <location line="-37"/>
<source>ALT+O</source>
<translation>ALT+O</translation>
</message>
<message>
- <location line="+43"/>
+ <location line="+35"/>
<source>CTRL+D</source>
<translation>CTRL+D</translation>
</message>
@@ -853,7 +829,7 @@
<context>
<name>PreferencesDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+238"/>
+ <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+237"/>
<location line="+7"/>
<location line="+6"/>
<source>Add Documentation</source>
@@ -875,7 +851,27 @@
<translation>Przestrzeń nazw %1 jest już zarejestrowana!</translation>
</message>
<message>
- <location line="+122"/>
+ <location line="+23"/>
+ <source>Remove Documentation</source>
+ <translation type="unfinished"></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 type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Cancel</source>
+ <translation type="unfinished">Anuluj</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>OK</source>
+ <translation type="unfinished">OK</translation>
+ </message>
+ <message>
+ <location line="+86"/>
<source>Use custom settings</source>
<translation>Użyj własnych ustawień</translation>
</message>
@@ -953,24 +949,20 @@
<translation>Dodaj...</translation>
</message>
<message>
- <location/>
<source>Network</source>
- <translation>Sieć</translation>
+ <translation type="obsolete">Sieć</translation>
</message>
<message>
- <location/>
<source>Use Http Proxy</source>
- <translation>Użyj pośrednika http</translation>
+ <translation type="obsolete">Użyj pośrednika http</translation>
</message>
<message>
- <location/>
<source>Http Proxy:</source>
- <translation>Pośrednik http:</translation>
+ <translation type="obsolete">Pośrednik http:</translation>
</message>
<message>
- <location/>
<source>Port:</source>
- <translation>Port:</translation>
+ <translation type="obsolete">Port:</translation>
</message>
<message>
<location/>
@@ -1000,7 +992,7 @@
<translation type="obsolete">Nowy katalog</translation>
</message>
<message>
- <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+79"/>
+ <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+110"/>
<source>The specified collection file does not exist!</source>
<translation>Podany plik z kolekcją nie istnieje!</translation>
</message>
@@ -1046,6 +1038,11 @@
<translation>Brak pliku pomocy!</translation>
</message>
<message>
+ <location line="+7"/>
+ <source>Missing filter argument!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location line="+10"/>
<source>Unknown option: %1</source>
<translation>Nieznana opcja: %1</translation>
@@ -1057,7 +1054,7 @@
<translation>Qt Assistant</translation>
</message>
<message>
- <location filename="../tools/assistant/tools/assistant/main.cpp" line="+58"/>
+ <location filename="../tools/assistant/tools/assistant/main.cpp" line="+190"/>
<source>Could not register documentation file
%1
@@ -1075,7 +1072,7 @@ Powód:
<translation>Dokumentacja poprawnie zarejestrowana.</translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+11"/>
<source>Could not unregister documentation file
%1
@@ -1088,12 +1085,12 @@ Powód:
%2</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="-3"/>
<source>Documentation successfully unregistered.</source>
<translation>Dokumentacja poprawnie wyrejestrowana.</translation>
</message>
<message>
- <location line="+13"/>
+ <location line="+18"/>
<source>Cannot load sqlite database driver!</source>
<translation>Nie można odczytać sterownika bazy danych sqlite!</translation>
</message>
@@ -1112,7 +1109,7 @@ Powód:
<context>
<name>RemoteControl</name>
<message>
- <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+128"/>
+ <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+157"/>
<source>Debugging Remote Control</source>
<translation>Zdalne debugowanie</translation>
</message>
@@ -1125,7 +1122,7 @@ Powód:
<context>
<name>SearchWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+163"/>
+ <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+193"/>
<source>&amp;Copy</source>
<translation>S&amp;kopiuj</translation>
</message>
@@ -1154,7 +1151,7 @@ Powód:
<context>
<name>TopicChooser</name>
<message>
- <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+24"/>
+ <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+54"/>
<source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;:</source>
<translation>Wybierz temat dla &lt;b&gt;%1&lt;/b&gt;:</translation>
</message>
diff --git a/translations/assistant_untranslated.ts b/translations/assistant_untranslated.ts
index 5552272..1853155 100644
--- a/translations/assistant_untranslated.ts
+++ b/translations/assistant_untranslated.ts
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0">
+<!DOCTYPE TS>
+<TS version="2.0">
<context>
<name>AboutDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+80"/>
+ <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+110"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
</message>
@@ -30,7 +31,7 @@
<context>
<name>BookmarkDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+155"/>
+ <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+185"/>
<location line="+18"/>
<location line="+36"/>
<location line="+24"/>
@@ -149,7 +150,7 @@
<context>
<name>CentralWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+163"/>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+195"/>
<source>Add new page</source>
<translation type="unfinished"></translation>
</message>
@@ -159,12 +160,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+266"/>
+ <location line="+265"/>
<source>Print Document</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+147"/>
<location line="+2"/>
<source>unknown</source>
<translation type="unfinished"></translation>
@@ -190,7 +191,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+227"/>
+ <location line="+257"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
@@ -198,7 +199,7 @@
<context>
<name>ContentWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+115"/>
+ <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+155"/>
<source>Open Link</source>
<translation type="unfinished"></translation>
</message>
@@ -224,7 +225,7 @@
<context>
<name>FindWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-809"/>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-863"/>
<source>Previous</source>
<translation type="unfinished"></translation>
</message>
@@ -252,7 +253,7 @@
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation type="unfinished"></translation>
</message>
@@ -280,7 +281,7 @@
<context>
<name>HelpViewer</name>
<message>
- <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+310"/>
+ <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+481"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
@@ -290,12 +291,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+17"/>
+ <location line="-62"/>
<source>&lt;title&gt;Error 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;The page could not be found&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+90"/>
+ <location line="+125"/>
<source>Copy &amp;Link Location</source>
<translation type="unfinished"></translation>
</message>
@@ -305,12 +306,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-238"/>
+ <location line="-267"/>
<source>Open Link in New Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+128"/>
+ <location line="+201"/>
<source>Unable to launch external application.
</source>
<translation type="unfinished"></translation>
@@ -319,12 +320,12 @@
<context>
<name>IndexWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+36"/>
+ <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+66"/>
<source>&amp;Look for:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+70"/>
+ <location line="+68"/>
<source>Open Link</source>
<translation type="unfinished"></translation>
</message>
@@ -337,7 +338,7 @@
<context>
<name>InstallDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+45"/>
+ <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+75"/>
<location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
<source>Install Documentation</source>
<translation type="unfinished"></translation>
@@ -436,84 +437,69 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+78"/>
- <location line="+345"/>
+ <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+108"/>
+ <location line="+350"/>
<source>Index</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-339"/>
- <location line="+337"/>
+ <location line="-344"/>
+ <location line="+342"/>
<source>Contents</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-332"/>
- <location line="+336"/>
+ <location line="-337"/>
+ <location line="+341"/>
<source>Bookmarks</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-324"/>
- <location line="+326"/>
+ <location line="-329"/>
+ <location line="+331"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-314"/>
- <location line="+185"/>
- <location line="+488"/>
+ <location line="-319"/>
+ <location line="+192"/>
+ <location line="+470"/>
<source>Qt Assistant</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-519"/>
+ <location line="-501"/>
<location line="+4"/>
<source>Unfiltered</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+82"/>
+ <location line="+84"/>
<source>Page Set&amp;up...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+1"/>
+ <location line="+2"/>
<source>Print Preview...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+1"/>
- <source>&amp;Print...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location line="+3"/>
- <source>CTRL+P</source>
+ <source>&amp;Print...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+6"/>
<source>New &amp;Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+1"/>
- <source>CTRL+T</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+1"/>
+ <location line="+3"/>
<source>&amp;Close Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+1"/>
- <source>CTRL+W</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+2"/>
+ <location line="+4"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
@@ -528,42 +514,22 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
- <source>Ctrl+C</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+3"/>
+ <location line="+6"/>
<source>&amp;Find in Text...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
- <source>Ctrl+F</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+3"/>
+ <location line="+5"/>
<source>Find &amp;Next</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
- <source>F3</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+3"/>
+ <location line="+4"/>
<source>Find &amp;Previous</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
- <source>Shift+F3</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+4"/>
+ <location line="+5"/>
<source>Preferences...</source>
<translation type="unfinished"></translation>
</message>
@@ -573,27 +539,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
- <source>Ctrl++</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+2"/>
+ <location line="+5"/>
<source>Zoom &amp;out</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
- <source>Ctrl+-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+2"/>
+ <location line="+5"/>
<source>Normal &amp;Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+3"/>
<source>Ctrl+0</source>
<translation type="unfinished"></translation>
</message>
@@ -618,27 +574,27 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Ctrl+Home</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+3"/>
<source>&amp;Back</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+5"/>
<source>&amp;Forward</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+5"/>
<source>Sync with Table of Contents</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+6"/>
<source>Next Page</source>
<translation type="unfinished"></translation>
</message>
@@ -653,7 +609,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Ctrl+Alt+Left</source>
<translation type="unfinished"></translation>
</message>
@@ -673,7 +629,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+75"/>
+ <location line="+74"/>
<source>Toolbars</source>
<translation type="unfinished"></translation>
</message>
@@ -688,7 +644,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+21"/>
+ <location line="+23"/>
<source>Address Toolbar</source>
<translation type="unfinished"></translation>
</message>
@@ -698,27 +654,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+108"/>
+ <location line="+110"/>
<source>Could not find the associated content item.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+60"/>
- <source>Open Source Edition</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+1"/>
- <source>This version of Qt Assistant is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+10"/>
- <source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+20"/>
+ <location line="+81"/>
<source>About %1</source>
<translation type="unfinished"></translation>
</message>
@@ -728,17 +669,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-614"/>
+ <location line="-597"/>
<source>Looking for Qt Documentation...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+205"/>
+ <location line="+195"/>
<source>&amp;Window</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+3"/>
<source>Minimize</source>
<translation type="unfinished"></translation>
</message>
@@ -748,32 +689,32 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+1"/>
+ <location line="-2"/>
<source>Zoom</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-150"/>
+ <location line="-136"/>
<source>&amp;File</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+20"/>
+ <location line="+24"/>
<source>&amp;Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+29"/>
+ <location line="+24"/>
<source>&amp;View</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+30"/>
+ <location line="+27"/>
<source>&amp;Go</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+37"/>
+ <location line="+29"/>
<source>&amp;Bookmarks</source>
<translation type="unfinished"></translation>
</message>
@@ -783,17 +724,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+294"/>
- <source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel&lt;/a&gt; for an overview of Qt licensing.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="-339"/>
+ <location line="-37"/>
<source>ALT+O</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+43"/>
+ <location line="+35"/>
<source>CTRL+D</source>
<translation type="unfinished"></translation>
</message>
@@ -801,7 +737,7 @@
<context>
<name>PreferencesDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+238"/>
+ <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+237"/>
<location line="+7"/>
<location line="+6"/>
<source>Add Documentation</source>
@@ -823,7 +759,27 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+122"/>
+ <location line="+23"/>
+ <source>Remove Documentation</source>
+ <translation type="unfinished"></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 type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+86"/>
<source>Use custom settings</source>
<translation type="unfinished"></translation>
</message>
@@ -902,26 +858,6 @@
</message>
<message>
<location/>
- <source>Network</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location/>
- <source>Use Http Proxy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location/>
- <source>Http Proxy:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location/>
- <source>Port:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location/>
<source>Options</source>
<translation type="unfinished"></translation>
</message>
@@ -944,7 +880,7 @@
<context>
<name>QObject</name>
<message>
- <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+79"/>
+ <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+110"/>
<source>The specified collection file does not exist!</source>
<translation type="unfinished"></translation>
</message>
@@ -990,6 +926,11 @@
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+7"/>
+ <source>Missing filter argument!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location line="+10"/>
<source>Unknown option: %1</source>
<translation type="unfinished"></translation>
@@ -1001,7 +942,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/assistant/tools/assistant/main.cpp" line="+58"/>
+ <location filename="../tools/assistant/tools/assistant/main.cpp" line="+190"/>
<source>Could not register documentation file
%1
@@ -1015,7 +956,7 @@ Reason:
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+11"/>
<source>Could not unregister documentation file
%1
@@ -1024,12 +965,12 @@ Reason:
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
+ <location line="-3"/>
<source>Documentation successfully unregistered.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+13"/>
+ <location line="+18"/>
<source>Cannot load sqlite database driver!</source>
<translation type="unfinished"></translation>
</message>
@@ -1048,7 +989,7 @@ Reason:
<context>
<name>RemoteControl</name>
<message>
- <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+128"/>
+ <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+157"/>
<source>Debugging Remote Control</source>
<translation type="unfinished"></translation>
</message>
@@ -1061,7 +1002,7 @@ Reason:
<context>
<name>SearchWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+163"/>
+ <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+193"/>
<source>&amp;Copy</source>
<translation type="unfinished"></translation>
</message>
@@ -1090,7 +1031,7 @@ Reason:
<context>
<name>TopicChooser</name>
<message>
- <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+24"/>
+ <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+54"/>
<source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;:</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/assistant_zh_CN.ts b/translations/assistant_zh_CN.ts
index 0384c47..a1f763f 100644
--- a/translations/assistant_zh_CN.ts
+++ b/translations/assistant_zh_CN.ts
@@ -1,11 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="zh">
-<defaultcodec></defaultcodec>
<context>
<name>AboutDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+80"/>
+ <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+110"/>
<source>&amp;Close</source>
<translation>关闭(&amp;C)</translation>
</message>
@@ -33,7 +32,7 @@
<context>
<name>BookmarkDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+155"/>
+ <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+185"/>
<location line="+18"/>
<location line="+36"/>
<location line="+24"/>
@@ -164,7 +163,7 @@
<context>
<name>CentralWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+163"/>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+195"/>
<source>Add new page</source>
<translation>添加新页面</translation>
</message>
@@ -174,12 +173,12 @@
<translation>关闭当前页面</translation>
</message>
<message>
- <location line="+266"/>
+ <location line="+265"/>
<source>Print Document</source>
<translation>打印文档</translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+147"/>
<location line="+2"/>
<source>unknown</source>
<translation>未知的</translation>
@@ -205,7 +204,7 @@
<translation>把这个页面添加为书签...</translation>
</message>
<message>
- <location line="+227"/>
+ <location line="+257"/>
<source>Search</source>
<translation>搜索</translation>
</message>
@@ -213,7 +212,7 @@
<context>
<name>ContentWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+115"/>
+ <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+155"/>
<source>Open Link</source>
<translation>打开链接</translation>
</message>
@@ -243,7 +242,7 @@
<context>
<name>FindWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-809"/>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-863"/>
<source>Previous</source>
<translation>上一个</translation>
</message>
@@ -271,7 +270,7 @@
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation>字体</translation>
</message>
@@ -299,7 +298,7 @@
<context>
<name>HelpViewer</name>
<message>
- <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+310"/>
+ <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+481"/>
<source>Help</source>
<translation>帮助</translation>
</message>
@@ -315,12 +314,12 @@
<translation>确定</translation>
</message>
<message>
- <location line="+17"/>
+ <location line="-62"/>
<source>&lt;title&gt;Error 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;The page could not be found&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</source>
<translation>&lt;title&gt;404 错误...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;不能找到该页面&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</translation>
</message>
<message>
- <location line="+90"/>
+ <location line="+125"/>
<source>Copy &amp;Link Location</source>
<translation>复制链接地址(&amp;L)</translation>
</message>
@@ -330,12 +329,12 @@
<translation>在新标签页中打开链接 Ctrl+LMB</translation>
</message>
<message>
- <location line="-238"/>
+ <location line="-267"/>
<source>Open Link in New Tab</source>
<translation>在新标签页中打开链接</translation>
</message>
<message>
- <location line="+128"/>
+ <location line="+201"/>
<source>Unable to launch external application.
</source>
<translation>不能启动外部应用程序。
@@ -345,12 +344,12 @@
<context>
<name>IndexWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+36"/>
+ <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+66"/>
<source>&amp;Look for:</source>
<translation>查找(&amp;L):</translation>
</message>
<message>
- <location line="+70"/>
+ <location line="+68"/>
<source>Open Link</source>
<translation>打开链接</translation>
</message>
@@ -363,7 +362,7 @@
<context>
<name>InstallDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+45"/>
+ <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+75"/>
<location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
<source>Install Documentation</source>
<translation>安装文档</translation>
@@ -463,38 +462,38 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+78"/>
- <location line="+345"/>
+ <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+108"/>
+ <location line="+350"/>
<source>Index</source>
<translation>索引</translation>
</message>
<message>
- <location line="-339"/>
- <location line="+337"/>
+ <location line="-344"/>
+ <location line="+342"/>
<source>Contents</source>
<translation>内容</translation>
</message>
<message>
- <location line="-332"/>
- <location line="+336"/>
+ <location line="-337"/>
+ <location line="+341"/>
<source>Bookmarks</source>
<translation>书签</translation>
</message>
<message>
- <location line="-324"/>
- <location line="+326"/>
+ <location line="-329"/>
+ <location line="+331"/>
<source>Search</source>
<translation>搜索</translation>
</message>
<message>
- <location line="-314"/>
- <location line="+185"/>
- <location line="+488"/>
+ <location line="-319"/>
+ <location line="+192"/>
+ <location line="+470"/>
<source>Qt Assistant</source>
<translation>Qt 助手</translation>
</message>
<message>
- <location line="-519"/>
+ <location line="-501"/>
<location line="+4"/>
<source>Unfiltered</source>
<translation>未过滤的</translation>
@@ -504,47 +503,44 @@
<translation type="obsolete">文件</translation>
</message>
<message>
- <location line="+82"/>
+ <location line="+84"/>
<source>Page Set&amp;up...</source>
<translation>页面设置(&amp;U)...</translation>
</message>
<message>
- <location line="+1"/>
+ <location line="+2"/>
<source>Print Preview...</source>
<translation>打印预览...</translation>
</message>
<message>
- <location line="+1"/>
+ <location line="+3"/>
<source>&amp;Print...</source>
<translation>打印(&amp;P)...</translation>
</message>
<message>
- <location line="+3"/>
<source>CTRL+P</source>
- <translation>CTRL+P</translation>
+ <translation type="obsolete">CTRL+P</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+6"/>
<source>New &amp;Tab</source>
<translation>新建标签页(&amp;T)</translation>
</message>
<message>
- <location line="+1"/>
<source>CTRL+T</source>
- <translation>CTRL+T</translation>
+ <translation type="obsolete">CTRL+T</translation>
</message>
<message>
- <location line="+1"/>
+ <location line="+3"/>
<source>&amp;Close Tab</source>
<translation>关闭标签页(&amp;C)</translation>
</message>
<message>
- <location line="+1"/>
<source>CTRL+W</source>
- <translation>CTRL+W</translation>
+ <translation type="obsolete">CTRL+W</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+4"/>
<source>&amp;Quit</source>
<translation>退出(&amp;Q)</translation>
</message>
@@ -563,42 +559,38 @@
<translation>复制选中的文本(&amp;C)</translation>
</message>
<message>
- <location line="+4"/>
<source>Ctrl+C</source>
- <translation>Ctrl+C</translation>
+ <translation type="obsolete">Ctrl+C</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+6"/>
<source>&amp;Find in Text...</source>
<translation>在文本中查找(&amp;F)...</translation>
</message>
<message>
- <location line="+4"/>
<source>Ctrl+F</source>
- <translation>Ctrl+F</translation>
+ <translation type="obsolete">Ctrl+F</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+5"/>
<source>Find &amp;Next</source>
<translation>查找下一个(&amp;N)</translation>
</message>
<message>
- <location line="+2"/>
<source>F3</source>
- <translation>F3</translation>
+ <translation type="obsolete">F3</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+4"/>
<source>Find &amp;Previous</source>
<translation>查找上一个(&amp;P)</translation>
</message>
<message>
- <location line="+2"/>
<source>Shift+F3</source>
- <translation>Shift+F3</translation>
+ <translation type="obsolete">Shift+F3</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+5"/>
<source>Preferences...</source>
<translation>首选项...</translation>
</message>
@@ -612,27 +604,25 @@
<translation>放大(&amp;I)</translation>
</message>
<message>
- <location line="+4"/>
<source>Ctrl++</source>
- <translation>Ctrl++</translation>
+ <translation type="obsolete">Ctrl++</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+5"/>
<source>Zoom &amp;out</source>
<translation>缩小(&amp;O)</translation>
</message>
<message>
- <location line="+4"/>
<source>Ctrl+-</source>
- <translation>Ctrl+-</translation>
+ <translation type="obsolete">Ctrl+-</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+5"/>
<source>Normal &amp;Size</source>
<translation>正常大小(&amp;S)</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+3"/>
<source>Ctrl+0</source>
<translation>Ctrl+0</translation>
</message>
@@ -665,27 +655,27 @@
<translation>主页(&amp;H)</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Ctrl+Home</source>
<translation>Ctrl+Home</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+3"/>
<source>&amp;Back</source>
<translation>后退(&amp;B)</translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+5"/>
<source>&amp;Forward</source>
<translation>前进(&amp;F)</translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+5"/>
<source>Sync with Table of Contents</source>
<translation>同步目录</translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+6"/>
<source>Next Page</source>
<translation>下一页</translation>
</message>
@@ -700,7 +690,7 @@
<translation>上一页</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Ctrl+Alt+Left</source>
<translation>Ctrl+Alt+Left</translation>
</message>
@@ -728,7 +718,7 @@
<translation>导航工具栏</translation>
</message>
<message>
- <location line="+75"/>
+ <location line="+74"/>
<source>Toolbars</source>
<translation>工具栏</translation>
</message>
@@ -743,7 +733,7 @@
<translation>过滤器为:</translation>
</message>
<message>
- <location line="+21"/>
+ <location line="+23"/>
<source>Address Toolbar</source>
<translation>地址工具栏</translation>
</message>
@@ -753,27 +743,24 @@
<translation>地址:</translation>
</message>
<message>
- <location line="+108"/>
+ <location line="+110"/>
<source>Could not find the associated content item.</source>
<translation>不能找到相关内容项目。</translation>
</message>
<message>
- <location line="+60"/>
<source>Open Source Edition</source>
- <translation>开源版本</translation>
+ <translation type="obsolete">开源版本</translation>
</message>
<message>
- <location line="+1"/>
<source>This version of Qt Assistant is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.</source>
- <translation>这个版本的 Qt 助手是 Qt 开源版本的一部分,用于开发开源应用程序。Qt 是一个用于跨平台应用程序开发的综合 C++ 框架。</translation>
+ <translation type="obsolete">这个版本的 Qt 助手是 Qt 开源版本的一部分,用于开发开源应用程序。Qt 是一个用于跨平台应用程序开发的综合 C++ 框架。</translation>
</message>
<message>
- <location line="+10"/>
<source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation>我们已经允许您在 Qt 商业许可协议下使用本程序。有关细节,请阅读本软件发行中所带的 LICENSE 文件。</translation>
+ <translation type="obsolete">我们已经允许您在 Qt 商业许可协议下使用本程序。有关细节,请阅读本软件发行中所带的 LICENSE 文件。</translation>
</message>
<message>
- <location line="+20"/>
+ <location line="+81"/>
<source>About %1</source>
<translation>关于 %1</translation>
</message>
@@ -783,17 +770,17 @@
<translation>正在更新搜索索引</translation>
</message>
<message>
- <location line="-614"/>
+ <location line="-597"/>
<source>Looking for Qt Documentation...</source>
<translation>正在查找 Qt 文档...</translation>
</message>
<message>
- <location line="+205"/>
+ <location line="+195"/>
<source>&amp;Window</source>
<translation>窗口(&amp;W)</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+3"/>
<source>Minimize</source>
<translation>最小化</translation>
</message>
@@ -803,7 +790,7 @@
<translation>Ctrl+M</translation>
</message>
<message>
- <location line="+1"/>
+ <location line="-2"/>
<source>Zoom</source>
<translation>缩放</translation>
</message>
@@ -816,27 +803,26 @@
<translation type="obsolete">移除</translation>
</message>
<message>
- <location line="+264"/>
<source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel&lt;/a&gt; for an overview of Qt licensing.</source>
- <translation>开发商业(闭源)应用程序,你需要商业 Qt 许可。对于 Qt 许可的概览,请参考&lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;qtsoftware.com/company/about/businessmodel&lt;/a&gt;。</translation>
+ <translation type="obsolete">开发商业(闭源)应用程序,你需要商业 Qt 许可。对于 Qt 许可的概览,请参考&lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;qtsoftware.com/company/about/businessmodel&lt;/a&gt;。</translation>
</message>
<message>
- <location line="-414"/>
+ <location line="-136"/>
<source>&amp;File</source>
<translation>文件(&amp;F)</translation>
</message>
<message>
- <location line="+20"/>
+ <location line="+24"/>
<source>&amp;Edit</source>
<translation>编辑(&amp;E)</translation>
</message>
<message>
- <location line="+29"/>
+ <location line="+24"/>
<source>&amp;View</source>
<translation>查看(&amp;V)</translation>
</message>
<message>
- <location line="+26"/>
+ <location line="+23"/>
<source>ALT+O</source>
<translation>ALT+O</translation>
</message>
@@ -846,7 +832,7 @@
<translation>前往(&amp;G)</translation>
</message>
<message>
- <location line="+37"/>
+ <location line="+29"/>
<source>&amp;Bookmarks</source>
<translation>书签(&amp;B)</translation>
</message>
@@ -864,7 +850,7 @@
<context>
<name>PreferencesDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+238"/>
+ <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+237"/>
<location line="+7"/>
<location line="+6"/>
<source>Add Documentation</source>
@@ -886,7 +872,27 @@
<translation>命名空间 %1 已经被注册!</translation>
</message>
<message>
- <location line="+122"/>
+ <location line="+23"/>
+ <source>Remove Documentation</source>
+ <translation type="unfinished"></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 type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Cancel</source>
+ <translation type="unfinished">取消</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>OK</source>
+ <translation type="unfinished">确定</translation>
+ </message>
+ <message>
+ <location line="+86"/>
<source>Use custom settings</source>
<translation>使用自定义设定</translation>
</message>
@@ -964,24 +970,20 @@
<translation>添加...</translation>
</message>
<message>
- <location/>
<source>Network</source>
- <translation>网络</translation>
+ <translation type="obsolete">网络</translation>
</message>
<message>
- <location/>
<source>Use Http Proxy</source>
- <translation>使用 HTTP 代理</translation>
+ <translation type="obsolete">使用 HTTP 代理</translation>
</message>
<message>
- <location/>
<source>Http Proxy:</source>
- <translation>HTTP 代理:</translation>
+ <translation type="obsolete">HTTP 代理:</translation>
</message>
<message>
- <location/>
<source>Port:</source>
- <translation>端口:</translation>
+ <translation type="obsolete">端口:</translation>
</message>
<message>
<location/>
@@ -1011,7 +1013,7 @@
<translation type="obsolete">新建文件夹</translation>
</message>
<message>
- <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+79"/>
+ <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+110"/>
<source>The specified collection file does not exist!</source>
<translation>指定的收藏文件并不存在!</translation>
</message>
@@ -1057,6 +1059,11 @@
<translation>缺少帮助文件!</translation>
</message>
<message>
+ <location line="+7"/>
+ <source>Missing filter argument!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location line="+10"/>
<source>Unknown option: %1</source>
<translation>未知的选项:%1</translation>
@@ -1068,7 +1075,7 @@
<translation>Qt 助手</translation>
</message>
<message>
- <location filename="../tools/assistant/tools/assistant/main.cpp" line="+58"/>
+ <location filename="../tools/assistant/tools/assistant/main.cpp" line="+190"/>
<source>Could not register documentation file
%1
@@ -1086,7 +1093,7 @@ Reason:
<translation>文档已经成功注册。</translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+11"/>
<source>Could not unregister documentation file
%1
@@ -1099,12 +1106,12 @@ Reason:
%2</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="-3"/>
<source>Documentation successfully unregistered.</source>
<translation>文档已经成功取消注册。</translation>
</message>
<message>
- <location line="+13"/>
+ <location line="+18"/>
<source>Cannot load sqlite database driver!</source>
<translation>无法加载sqlite数据库驱动!</translation>
</message>
@@ -1123,7 +1130,7 @@ Reason:
<context>
<name>RemoteControl</name>
<message>
- <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+128"/>
+ <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+157"/>
<source>Debugging Remote Control</source>
<translation>正在调试遥控器</translation>
</message>
@@ -1136,7 +1143,7 @@ Reason:
<context>
<name>SearchWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+163"/>
+ <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+193"/>
<source>&amp;Copy</source>
<translation>复制(&amp;C)</translation>
</message>
@@ -1165,7 +1172,7 @@ Reason:
<context>
<name>TopicChooser</name>
<message>
- <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+24"/>
+ <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+54"/>
<source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;:</source>
<translation>为&lt;b&gt;%1&lt;/b&gt;选择一个主题</translation>
</message>
diff --git a/translations/assistant_zh_TW.ts b/translations/assistant_zh_TW.ts
index 179b69c..df6b827 100644
--- a/translations/assistant_zh_TW.ts
+++ b/translations/assistant_zh_TW.ts
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="zh_TW">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_TW">
<context>
<name>AboutDialog</name>
<message>
- <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="80"/>
+ <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+110"/>
<source>&amp;Close</source>
<translation>關閉(&amp;C)</translation>
</message>
@@ -12,16 +12,19 @@
<context>
<name>AboutLabel</name>
<message>
+ <location line="-14"/>
<source>Warning</source>
<translation>警告</translation>
</message>
<message>
+ <location line="+1"/>
<source>Unable to launch external application.
</source>
<translation>無法啟動外部應用程式。
</translation>
</message>
<message>
+ <location line="+1"/>
<source>OK</source>
<translation>確定</translation>
</message>
@@ -29,34 +32,46 @@
<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>New Folder</source>
<translation>新增資料夾</translation>
</message>
<message>
+ <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+185"/>
+ <location line="+18"/>
+ <location line="+36"/>
+ <location line="+24"/>
+ <location line="+32"/>
<source>Bookmarks</source>
<translation>書籤</translation>
</message>
<message>
+ <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui"/>
<source>+</source>
<translation>+</translation>
</message>
<message>
+ <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="-69"/>
<source>Delete Folder</source>
<translation>刪除資料夾</translation>
</message>
<message>
+ <location line="+1"/>
<source>Rename Folder</source>
<translation>重命名資料夾</translation>
</message>
@@ -64,18 +79,23 @@
<context>
<name>BookmarkManager</name>
<message>
+ <location line="+450"/>
<source>Bookmarks</source>
<translation>書籤</translation>
</message>
<message>
+ <location line="+36"/>
<source>Remove</source>
<translation>移除</translation>
</message>
<message>
+ <location line="+1"/>
<source>You are going to delete a Folder, this will also&lt;br&gt;remove it&apos;s content. Are you sure to continue?</source>
<translation>您打算刪除資料夾,這會將裡面的內容&lt;br&gt;一併移除。您確定要繼續嗎?</translation>
</message>
<message>
+ <location line="+109"/>
+ <location line="+9"/>
<source>New Folder</source>
<translation>新資料夾</translation>
</message>
@@ -83,6 +103,7 @@
<context>
<name>BookmarkWidget</name>
<message>
+ <location line="-391"/>
<source>Filter:</source>
<translation>過濾:</translation>
</message>
@@ -91,6 +112,7 @@
<translation type="obsolete">書籤</translation>
</message>
<message>
+ <location line="+32"/>
<source>Remove</source>
<translation>移除</translation>
</message>
@@ -99,26 +121,32 @@
<translation type="obsolete">您打算刪除資料夾,這會將裡面的內容一併移除。您確定要繼續嗎?</translation>
</message>
<message>
+ <location line="-78"/>
<source>Delete Folder</source>
<translation>刪除資料夾</translation>
</message>
<message>
+ <location line="+1"/>
<source>Rename Folder</source>
<translation>重命名資料夾</translation>
</message>
<message>
+ <location line="+2"/>
<source>Show Bookmark</source>
<translation>顯示書籤</translation>
</message>
<message>
+ <location line="+1"/>
<source>Show Bookmark in New Tab</source>
<translation>於新分頁顯示書籤</translation>
</message>
<message>
+ <location line="+3"/>
<source>Delete Bookmark</source>
<translation>刪除書籤</translation>
</message>
<message>
+ <location line="+1"/>
<source>Rename Bookmark</source>
<translation>重命名書籤</translation>
</message>
@@ -127,6 +155,7 @@
<translation type="obsolete">搜尋字串:</translation>
</message>
<message>
+ <location line="+61"/>
<source>Add</source>
<translation>新增</translation>
</message>
@@ -134,39 +163,48 @@
<context>
<name>CentralWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="163"/>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+195"/>
<source>Add new page</source>
<translation>新增頁面</translation>
</message>
<message>
+ <location line="+9"/>
<source>Close current page</source>
<translation>關閉目前的頁面</translation>
</message>
<message>
+ <location line="+265"/>
<source>Print Document</source>
<translation>列印文件</translation>
</message>
<message>
+ <location line="+147"/>
+ <location line="+2"/>
<source>unknown</source>
<translation>未知</translation>
</message>
<message>
+ <location line="+96"/>
<source>Add New Page</source>
<translation>新增頁面</translation>
</message>
<message>
+ <location line="+1"/>
<source>Close This Page</source>
<translation>關閉此頁面</translation>
</message>
<message>
+ <location line="+1"/>
<source>Close Other Pages</source>
<translation>關閉其他頁面</translation>
</message>
<message>
+ <location line="+2"/>
<source>Add Bookmark for this Page...</source>
<translation>將此頁面新增到書籤...</translation>
</message>
<message>
+ <location line="+257"/>
<source>Search</source>
<translation>搜尋</translation>
</message>
@@ -174,11 +212,12 @@
<context>
<name>ContentWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="115"/>
+ <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+155"/>
<source>Open Link</source>
<translation>開啟連結</translation>
</message>
<message>
+ <location line="+1"/>
<source>Open Link in New Tab</source>
<translation>在新分頁開啟連結</translation>
</message>
@@ -190,10 +229,12 @@
<translation type="obsolete">過濾器名稱對話框</translation>
</message>
<message>
+ <location filename="../tools/assistant/tools/assistant/filternamedialog.ui"/>
<source>Filter Name:</source>
<translation>過濾器名稱:</translation>
</message>
<message>
+ <location/>
<source>Add Filter Name</source>
<translation>新增過濾器名稱</translation>
</message>
@@ -201,22 +242,27 @@
<context>
<name>FindWidget</name>
<message>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-863"/>
<source>Previous</source>
<translation>前一個</translation>
</message>
<message>
+ <location line="+7"/>
<source>Next</source>
<translation>下一個</translation>
</message>
<message>
+ <location line="+5"/>
<source>Case Sensitive</source>
<translation>區分大小寫</translation>
</message>
<message>
+ <location line="+3"/>
<source>Whole words</source>
<translation>整個單字</translation>
</message>
<message>
+ <location line="+12"/>
<source>&lt;img src=&quot;:/trolltech/assistant/images/wrap.png&quot;&gt;&amp;nbsp;Search wrapped</source>
<translation>&lt;img src=&quot;:/trolltech/assistant/images/wrap.png&quot;&gt;&amp;nbsp;搜尋已過盡頭</translation>
</message>
@@ -224,23 +270,27 @@
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation>字型</translation>
</message>
<message>
+ <location line="+11"/>
<source>&amp;Writing system</source>
<translation>手寫系統(&amp;W)</translation>
</message>
<message>
+ <location line="+3"/>
<source>&amp;Family</source>
<translation>家族(&amp;W)</translation>
</message>
<message>
+ <location line="+4"/>
<source>&amp;Style</source>
<translation>樣式(&amp;S)</translation>
</message>
<message>
+ <location line="+4"/>
<source>&amp;Point size</source>
<translation>點大小(&amp;P)</translation>
</message>
@@ -248,7 +298,7 @@
<context>
<name>HelpViewer</name>
<message>
- <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="310"/>
+ <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+481"/>
<source>Help</source>
<translation>說明</translation>
</message>
@@ -259,26 +309,32 @@
</translation>
</message>
<message>
+ <location line="+1"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
+ <location line="-62"/>
<source>&lt;title&gt;Error 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;The page could not be found&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</source>
<translation>&lt;title&gt;錯誤 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;找不到頁面&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</translation>
</message>
<message>
+ <location line="+125"/>
<source>Copy &amp;Link Location</source>
<translation>複製連結位置(&amp;L)</translation>
</message>
<message>
- <source>Open Link in New Tab<byte value="x9"/>Ctrl+LMB</source>
- <translation>在新分頁開啟連結<byte value="x9"/>Ctrl+滑鼠左鍵</translation>
+ <location line="+3"/>
+ <source>Open Link in New Tab Ctrl+LMB</source>
+ <translation>在新分頁開啟連結 Ctrl+滑鼠左鍵</translation>
</message>
<message>
+ <location line="-267"/>
<source>Open Link in New Tab</source>
<translation>在新分頁開啟連結</translation>
</message>
<message>
+ <location line="+201"/>
<source>Unable to launch external application.
</source>
<translation>無法啟動外部應用程式。
@@ -288,15 +344,17 @@
<context>
<name>IndexWindow</name>
<message>
- <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="36"/>
+ <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+66"/>
<source>&amp;Look for:</source>
<translation>搜尋(&amp;L):</translation>
</message>
<message>
+ <location line="+68"/>
<source>Open Link</source>
<translation>開啟連結</translation>
</message>
<message>
+ <location line="+1"/>
<source>Open Link in New Tab</source>
<translation>在新分頁開啟連結</translation>
</message>
@@ -304,76 +362,99 @@
<context>
<name>InstallDialog</name>
<message>
+ <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+75"/>
+ <location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
<source>Install Documentation</source>
<translation>安裝文件</translation>
</message>
<message>
+ <location line="+30"/>
<source>Downloading documentation info...</source>
<translation>下載文件資訊中...</translation>
</message>
<message>
+ <location line="+48"/>
<source>Download canceled.</source>
<translation>下載已取消。</translation>
</message>
<message>
+ <location line="+26"/>
+ <location line="+78"/>
+ <location line="+27"/>
<source>Done.</source>
<translation>完成。</translation>
</message>
<message>
+ <location line="-90"/>
<source>The file %1 already exists. Do you want to overwrite it?</source>
<translation>檔案 %1 已存在。您要覆寫它嗎?</translation>
</message>
<message>
+ <location line="+11"/>
<source>Unable to save the file %1: %2.</source>
<translation>無法儲存檔案 %1:%2。</translation>
</message>
<message>
+ <location line="+8"/>
<source>Downloading %1...</source>
<translation>下載 %1 中...</translation>
</message>
<message>
+ <location line="+19"/>
+ <location line="+42"/>
+ <location line="+38"/>
<source>Download failed: %1.</source>
<translation>下載失敗:%1。</translation>
</message>
<message>
+ <location line="-70"/>
<source>Documentation info file is corrupt!</source>
<translation>文件資訊檔已損毀!</translation>
</message>
<message>
+ <location line="+37"/>
<source>Download failed: Downloaded file is corrupted.</source>
<translation>下載失敗:下載的檔案已損毀。</translation>
</message>
<message>
+ <location line="+2"/>
<source>Installing documentation %1...</source>
<translation>安裝文件 %1 中...</translation>
</message>
<message>
+ <location line="+22"/>
<source>Error while installing documentation:
%1</source>
<translation>安裝文件時發生錯誤:
%1</translation>
</message>
<message>
+ <location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
<source>Available Documentation:</source>
<translation>可用的文件:</translation>
</message>
<message>
+ <location/>
<source>Install</source>
<translation>安裝</translation>
</message>
<message>
+ <location/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
+ <location/>
<source>Close</source>
<translation>關閉</translation>
</message>
<message>
+ <location/>
<source>Installation Path:</source>
<translation>安裝路徑:</translation>
</message>
<message>
+ <location/>
<source>...</source>
<translation>...</translation>
</message>
@@ -381,26 +462,39 @@
<context>
<name>MainWindow</name>
<message>
+ <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+108"/>
+ <location line="+350"/>
<source>Index</source>
<translation>索引</translation>
</message>
<message>
+ <location line="-344"/>
+ <location line="+342"/>
<source>Contents</source>
<translation>內容</translation>
</message>
<message>
+ <location line="-337"/>
+ <location line="+341"/>
<source>Bookmarks</source>
<translation>書籤</translation>
</message>
<message>
+ <location line="-329"/>
+ <location line="+331"/>
<source>Search</source>
<translation>搜尋</translation>
</message>
<message>
+ <location line="-319"/>
+ <location line="+192"/>
+ <location line="+470"/>
<source>Qt Assistant</source>
<translation>Qt 小幫手</translation>
</message>
<message>
+ <location line="-501"/>
+ <location line="+4"/>
<source>Unfiltered</source>
<translation>未過濾</translation>
</message>
@@ -409,42 +503,49 @@
<translation type="obsolete">檔案</translation>
</message>
<message>
+ <location line="+84"/>
<source>Page Set&amp;up...</source>
<translation>頁面設定(&amp;U)...</translation>
</message>
<message>
+ <location line="+2"/>
<source>Print Preview...</source>
<translation>列印預覽...</translation>
</message>
<message>
+ <location line="+3"/>
<source>&amp;Print...</source>
<translation>列印(&amp;P)...</translation>
</message>
<message>
<source>CTRL+P</source>
- <translation>CTRL+P</translation>
+ <translation type="obsolete">CTRL+P</translation>
</message>
<message>
+ <location line="+6"/>
<source>New &amp;Tab</source>
<translation>新增分頁(&amp;T)</translation>
</message>
<message>
<source>CTRL+T</source>
- <translation>CTRL+T</translation>
+ <translation type="obsolete">CTRL+T</translation>
</message>
<message>
+ <location line="+3"/>
<source>&amp;Close Tab</source>
<translation>關閉分頁(&amp;C)</translation>
</message>
<message>
<source>CTRL+W</source>
- <translation>CTRL+W</translation>
+ <translation type="obsolete">CTRL+W</translation>
</message>
<message>
+ <location line="+4"/>
<source>&amp;Quit</source>
<translation>離開(&amp;Q)</translation>
</message>
<message>
+ <location line="+1"/>
<source>CTRL+Q</source>
<translation>CTRL+Q</translation>
</message>
@@ -453,38 +554,43 @@
<translation type="obsolete">編輯</translation>
</message>
<message>
+ <location line="+4"/>
<source>&amp;Copy selected Text</source>
<translation>複製選取的文字(&amp;C)</translation>
</message>
<message>
<source>Ctrl+C</source>
- <translation>Ctrl+C</translation>
+ <translation type="obsolete">Ctrl+C</translation>
</message>
<message>
+ <location line="+6"/>
<source>&amp;Find in Text...</source>
<translation>在文字中尋找(&amp;F)...</translation>
</message>
<message>
<source>Ctrl+F</source>
- <translation>Ctrl+F</translation>
+ <translation type="obsolete">Ctrl+F</translation>
</message>
<message>
+ <location line="+5"/>
<source>Find &amp;Next</source>
<translation>尋找下一筆(&amp;N)</translation>
</message>
<message>
<source>F3</source>
- <translation>F3</translation>
+ <translation type="obsolete">F3</translation>
</message>
<message>
+ <location line="+4"/>
<source>Find &amp;Previous</source>
<translation>尋找前一筆(&amp;P)</translation>
</message>
<message>
<source>Shift+F3</source>
- <translation>Shift+F3</translation>
+ <translation type="obsolete">Shift+F3</translation>
</message>
<message>
+ <location line="+5"/>
<source>Preferences...</source>
<translation>喜好設定...</translation>
</message>
@@ -493,34 +599,40 @@
<translation type="obsolete">檢視</translation>
</message>
<message>
+ <location line="+4"/>
<source>Zoom &amp;in</source>
<translation>放大(&amp;I)</translation>
</message>
<message>
<source>Ctrl++</source>
- <translation>Ctrl++</translation>
+ <translation type="obsolete">Ctrl++</translation>
</message>
<message>
+ <location line="+5"/>
<source>Zoom &amp;out</source>
<translation>縮小(&amp;O)</translation>
</message>
<message>
<source>Ctrl+-</source>
- <translation>Ctrl+-</translation>
+ <translation type="obsolete">Ctrl+-</translation>
</message>
<message>
+ <location line="+5"/>
<source>Normal &amp;Size</source>
<translation>一般大小(&amp;S)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Ctrl+0</source>
<translation>Ctrl+0</translation>
</message>
<message>
+ <location line="+5"/>
<source>ALT+C</source>
<translation>ALT+C</translation>
</message>
<message>
+ <location line="+2"/>
<source>ALT+I</source>
<translation>ALT+I</translation>
</message>
@@ -529,6 +641,7 @@
<translation type="obsolete">ALT+B</translation>
</message>
<message>
+ <location line="+4"/>
<source>ALT+S</source>
<translation>ALT+S</translation>
</message>
@@ -537,42 +650,52 @@
<translation type="obsolete">前往</translation>
</message>
<message>
+ <location line="+3"/>
<source>&amp;Home</source>
<translation>首頁(&amp;H)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Ctrl+Home</source>
<translation>Ctrl+Home</translation>
</message>
<message>
+ <location line="+3"/>
<source>&amp;Back</source>
<translation>返回(&amp;B)</translation>
</message>
<message>
+ <location line="+5"/>
<source>&amp;Forward</source>
<translation>往前(&amp;F)</translation>
</message>
<message>
+ <location line="+5"/>
<source>Sync with Table of Contents</source>
<translation>與目錄同步</translation>
</message>
<message>
+ <location line="+6"/>
<source>Next Page</source>
<translation>下一頁</translation>
</message>
<message>
+ <location line="+1"/>
<source>Ctrl+Alt+Right</source>
<translation>Ctrl+Alt+Right</translation>
</message>
<message>
+ <location line="+3"/>
<source>Previous Page</source>
<translation>前一頁</translation>
</message>
<message>
+ <location line="+1"/>
<source>Ctrl+Alt+Left</source>
<translation>Ctrl+Alt+Left</translation>
</message>
<message>
+ <location line="+4"/>
<source>Add Bookmark...</source>
<translation>新增書籤...</translation>
</message>
@@ -585,44 +708,52 @@
<translation type="obsolete">說明</translation>
</message>
<message>
+ <location line="+4"/>
<source>About...</source>
<translation>關於...</translation>
</message>
<message>
+ <location line="+3"/>
<source>Navigation Toolbar</source>
<translation>導覽工具列</translation>
</message>
<message>
+ <location line="+74"/>
<source>Toolbars</source>
<translation>工具列</translation>
</message>
<message>
+ <location line="+15"/>
<source>Filter Toolbar</source>
<translation>過濾器工具列</translation>
</message>
<message>
+ <location line="+2"/>
<source>Filtered by:</source>
<translation>已過濾:</translation>
</message>
<message>
+ <location line="+23"/>
<source>Address Toolbar</source>
<translation>位址工具列</translation>
</message>
<message>
+ <location line="+4"/>
<source>Address:</source>
<translation>位址:</translation>
</message>
<message>
+ <location line="+110"/>
<source>Could not find the associated content item.</source>
<translation>找不到相關的內容項目。</translation>
</message>
<message>
<source>Open Source Edition</source>
- <translation>開放源碼版本</translation>
+ <translation type="obsolete">開放源碼版本</translation>
</message>
<message>
<source>This version of Qt Assistant is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.</source>
- <translation>此版本的 Qt 小幫手是 Qt 開放源碼版本的一部份,只能用於開發開放源碼的應用程式。Qt 為一個跨平台的,強大的 C++ 應用程式開發框架。</translation>
+ <translation type="obsolete">此版本的 Qt 小幫手是 Qt 開放源碼版本的一部份,只能用於開發開放源碼的應用程式。Qt 為一個跨平台的,強大的 C++ 應用程式開發框架。</translation>
</message>
<message>
<source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;qtsoftware.com/company/model.html&lt;/a&gt; for an overview of Qt licensing.</source>
@@ -630,33 +761,40 @@
</message>
<message>
<source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation>此程式以 Qt 商業授權同意書(Qt Commerical License Agreement)授權給您。詳情請參照 LICENSE 檔。</translation>
+ <translation type="obsolete">此程式以 Qt 商業授權同意書(Qt Commerical License Agreement)授權給您。詳情請參照 LICENSE 檔。</translation>
</message>
<message>
+ <location line="+81"/>
<source>About %1</source>
<translation>關於 %1</translation>
</message>
<message>
+ <location line="+115"/>
<source>Updating search index</source>
<translation>更新搜尋索引</translation>
</message>
<message>
+ <location line="-597"/>
<source>Looking for Qt Documentation...</source>
<translation>搜尋 Qt 文件中...</translation>
</message>
<message>
+ <location line="+195"/>
<source>&amp;Window</source>
<translation>視窗(&amp;W)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Minimize</source>
<translation>最小化</translation>
</message>
<message>
+ <location line="+1"/>
<source>Ctrl+M</source>
<translation>Ctrl+M</translation>
</message>
<message>
+ <location line="-2"/>
<source>Zoom</source>
<translation>縮放</translation>
</message>
@@ -670,37 +808,45 @@
</message>
<message>
<source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel&lt;/a&gt; for an overview of Qt licensing.</source>
- <translation>您需要商業版的 Qt 授權才能發展私有(封閉)應用程式軟體。關於 Qt 授權的概要,請參考 &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel&lt;/a&gt;。</translation>
+ <translation type="obsolete">您需要商業版的 Qt 授權才能發展私有(封閉)應用程式軟體。關於 Qt 授權的概要,請參考 &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel&lt;/a&gt;。</translation>
</message>
<message>
+ <location line="-136"/>
<source>&amp;File</source>
<translation>檔案(&amp;F)</translation>
</message>
<message>
+ <location line="+24"/>
<source>&amp;Edit</source>
<translation>編輯(&amp;E)</translation>
</message>
<message>
+ <location line="+24"/>
<source>&amp;View</source>
<translation>檢視(&amp;V)</translation>
</message>
<message>
+ <location line="+23"/>
<source>ALT+O</source>
<translation>ALT+O</translation>
</message>
<message>
+ <location line="+4"/>
<source>&amp;Go</source>
<translation>前往(&amp;G)</translation>
</message>
<message>
+ <location line="+29"/>
<source>&amp;Bookmarks</source>
<translation>書籤(&amp;B)</translation>
</message>
<message>
+ <location line="+2"/>
<source>CTRL+D</source>
<translation>CTRL+D</translation>
</message>
<message>
+ <location line="+2"/>
<source>&amp;Help</source>
<translation>說明(&amp;H)</translation>
</message>
@@ -716,22 +862,49 @@
<translation type="obsolete">從說明伺服器下載...</translation>
</message>
<message>
+ <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+237"/>
+ <location line="+7"/>
+ <location line="+6"/>
<source>Add Documentation</source>
<translation>新增文件</translation>
</message>
<message>
+ <location line="-13"/>
<source>Qt Compressed Help Files (*.qch)</source>
<translation>Qt 壓縮說明檔(*.qch)</translation>
</message>
<message>
+ <location line="+8"/>
<source>The specified file is not a valid Qt Help File!</source>
<translation>指定的檔案不是合法的 Qt 說明檔!</translation>
</message>
<message>
+ <location line="+6"/>
<source>The namespace %1 is already registered!</source>
<translation>命名空間 %1 已註冊!</translation>
</message>
<message>
+ <location line="+23"/>
+ <source>Remove Documentation</source>
+ <translation type="unfinished"></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 type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Cancel</source>
+ <translation type="unfinished">取消</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>OK</source>
+ <translation type="unfinished">確定</translation>
+ </message>
+ <message>
+ <location line="+86"/>
<source>Use custom settings</source>
<translation>使用自訂設定</translation>
</message>
@@ -739,90 +912,108 @@
<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>
<source>Network</source>
- <translation>網路</translation>
+ <translation type="obsolete">網路</translation>
</message>
<message>
<source>Use Http Proxy</source>
- <translation>使用 Http 代理伺服器</translation>
+ <translation type="obsolete">使用 Http 代理伺服器</translation>
</message>
<message>
<source>Http Proxy:</source>
- <translation>Http 代理伺服器:</translation>
+ <translation type="obsolete">Http 代理伺服器:</translation>
</message>
<message>
<source>Port:</source>
- <translation>連接埠:</translation>
+ <translation type="obsolete">連接埠:</translation>
</message>
<message>
+ <location/>
<source>Options</source>
<translation>選項</translation>
</message>
<message>
+ <location/>
<source>Current Page</source>
<translation>目前頁面</translation>
</message>
<message>
+ <location/>
<source>Restore to default</source>
<translation>回復為預設值</translation>
</message>
<message>
+ <location/>
<source>Homepage</source>
<translation>首頁</translation>
</message>
@@ -834,48 +1025,69 @@
<translation type="obsolete">新資料夾</translation>
</message>
<message>
- <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="79"/>
+ <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+110"/>
<source>The specified collection file does not exist!</source>
<translation>指定的收集檔不存在!</translation>
</message>
<message>
+ <location line="+4"/>
<source>Missing collection file!</source>
<translation>遺失收集檔!</translation>
</message>
<message>
+ <location line="+9"/>
<source>Invalid URL!</source>
<translation>不合法的網址!</translation>
</message>
<message>
+ <location line="+4"/>
<source>Missing URL!</source>
<translation>遺失網址!</translation>
</message>
<message>
+ <location line="+17"/>
+ <location line="+19"/>
+ <location line="+19"/>
<source>Unknown widget: %1</source>
<translation>未知的元件:%1</translation>
</message>
<message>
+ <location line="-34"/>
+ <location line="+19"/>
+ <location line="+19"/>
<source>Missing widget!</source>
<translation>遺失元件!</translation>
</message>
<message>
+ <location line="+7"/>
+ <location line="+12"/>
<source>The specified Qt help file does not exist!</source>
<translation>指定的 Qt 說明檔不存在!</translation>
</message>
<message>
+ <location line="-7"/>
+ <location line="+12"/>
<source>Missing help file!</source>
<translation>遺失說明檔!</translation>
</message>
<message>
+ <location line="+7"/>
+ <source>Missing filter argument!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
<source>Unknown option: %1</source>
<translation>未知的選項:%1</translation>
</message>
<message>
+ <location line="+30"/>
+ <location line="+2"/>
<source>Qt Assistant</source>
<translation>Qt 小幫手</translation>
</message>
<message>
- <location filename="../tools/assistant/tools/assistant/main.cpp" line="58"/>
+ <location filename="../tools/assistant/tools/assistant/main.cpp" line="+190"/>
<source>Could not register documentation file
%1
@@ -888,10 +1100,12 @@ Reason:
%2</translation>
</message>
<message>
+ <location line="+4"/>
<source>Documentation successfully registered.</source>
<translation>文件已註冊成功。</translation>
</message>
<message>
+ <location line="+11"/>
<source>Could not unregister documentation file
%1
@@ -904,18 +1118,23 @@ Reason:
%2</translation>
</message>
<message>
+ <location line="-3"/>
<source>Documentation successfully unregistered.</source>
<translation>文件已成功解除註冊。</translation>
</message>
<message>
+ <location line="+18"/>
<source>Cannot load sqlite database driver!</source>
<translation>無法載入 sqlite 資料庫驅動程式!</translation>
</message>
<message>
+ <location line="+9"/>
<source>The specified collection file could not be read!</source>
<translation>指定的收集檔無法讀取。</translation>
</message>
<message>
+ <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+167"/>
+ <location line="+1"/>
<source>Bookmark</source>
<translation>書籤</translation>
</message>
@@ -923,11 +1142,12 @@ Reason:
<context>
<name>RemoteControl</name>
<message>
- <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="128"/>
+ <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+157"/>
<source>Debugging Remote Control</source>
<translation>遠端除錯控制</translation>
</message>
<message>
+ <location line="+1"/>
<source>Received Command: %1 %2</source>
<translation>已接收指令:%1 %2</translation>
</message>
@@ -935,23 +1155,28 @@ Reason:
<context>
<name>SearchWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="163"/>
+ <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+193"/>
<source>&amp;Copy</source>
<translation>複製(&amp;C)</translation>
</message>
<message>
+ <location line="+4"/>
<source>Copy &amp;Link Location</source>
<translation>複製連結位置(&amp;L)</translation>
</message>
<message>
+ <location line="+3"/>
+ <location line="+36"/>
<source>Open Link in New Tab</source>
<translation>在新分頁開啟連結</translation>
</message>
<message>
+ <location line="-29"/>
<source>Select All</source>
<translation>全部選取</translation>
</message>
<message>
+ <location line="+28"/>
<source>Open Link</source>
<translation>開啟連結</translation>
</message>
@@ -959,23 +1184,27 @@ Reason:
<context>
<name>TopicChooser</name>
<message>
- <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="24"/>
+ <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+54"/>
<source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;:</source>
<translation>選擇 %1 的標題:</translation>
</message>
<message>
+ <location filename="../tools/assistant/tools/assistant/topicchooser.ui"/>
<source>Choose Topic</source>
<translation>選擇標題</translation>
</message>
<message>
+ <location/>
<source>&amp;Topics</source>
<translation>標題(&amp;T)</translation>
</message>
<message>
+ <location/>
<source>&amp;Display</source>
<translation>顯示(&amp;D)</translation>
</message>
<message>
+ <location/>
<source>&amp;Close</source>
<translation>關閉(&amp;C)</translation>
</message>
diff --git a/translations/designer_de.ts b/translations/designer_de.ts
index cac8afb..4cd9914 100644
--- a/translations/designer_de.ts
+++ b/translations/designer_de.ts
@@ -1,11 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="de">
-<defaultcodec></defaultcodec>
<context>
<name></name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+617"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+647"/>
<source>&lt;object&gt;</source>
<translation>&lt;Objekt&gt;</translation>
</message>
@@ -20,7 +19,7 @@
<translation>&lt;Slot&gt;</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="+43"/>
+ <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="+73"/>
<source>The moose in the noose
ate the goose who was loose.</source>
<translation type="unfinished"></translation>
@@ -29,7 +28,7 @@ ate the goose who was loose.</source>
<context>
<name>AbstractFindWidget</name>
<message>
- <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+97"/>
+ <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+127"/>
<source>&amp;Previous</source>
<translation>&amp;Vorige</translation>
</message>
@@ -75,7 +74,7 @@ ate the goose who was loose.</source>
<context>
<name>AppFontDialog</name>
<message>
- <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+388"/>
+ <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+418"/>
<source>Additional Fonts</source>
<translation>Zusätzliche Schriftarten</translation>
</message>
@@ -187,7 +186,7 @@ ate the goose who was loose.</source>
<context>
<name>AssistantClient</name>
<message>
- <location filename="../tools/designer/src/designer/assistantclient.cpp" line="+70"/>
+ <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>
@@ -205,7 +204,7 @@ ate the goose who was loose.</source>
<context>
<name>BrushManagerProxy</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+191"/>
+ <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+221"/>
<source>The element &apos;%1&apos; is missing the required attribute &apos;%2&apos;.</source>
<translation>Bei dem Element fehlt das erforderliche Attribut &apos;%2&apos;.</translation>
</message>
@@ -233,7 +232,7 @@ ate the goose who was loose.</source>
<context>
<name>BrushPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+119"/>
+ <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+149"/>
<source>Style</source>
<translation>Stil</translation>
</message>
@@ -326,19 +325,24 @@ ate the goose who was loose.</source>
<context>
<name>Command</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+177"/>
- <location line="+211"/>
+ <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="-209"/>
- <location line="+221"/>
+ <location line="-256"/>
+ <location line="+268"/>
<source>Change slot</source>
<translation>Slot ändern</translation>
</message>
<message>
- <location line="+14"/>
+ <location line="-220"/>
+ <source>Change signal-slot connection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+234"/>
<source>Change sender</source>
<translation>Sender ändern</translation>
</message>
@@ -348,7 +352,7 @@ ate the goose who was loose.</source>
<translation>Empfänger ändern</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+113"/>
+ <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+143"/>
<source>Add connection</source>
<translation>Verbindung hinzufügen</translation>
</message>
@@ -373,7 +377,7 @@ ate the goose who was loose.</source>
<translation>Endpunkt ändern</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="+117"/>
+ <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>
@@ -398,7 +402,7 @@ ate the goose who was loose.</source>
<translation> &apos;%1&apos; einem anderen Widget zuordnen</translation>
</message>
<message>
- <location line="+51"/>
+ <location line="+53"/>
<source>Promote to custom widget</source>
<translation>Platzhalter für benutzerdefinierte Klasse erzeugen</translation>
</message>
@@ -428,48 +432,48 @@ ate the goose who was loose.</source>
<translation>Layout auflösen</translation>
</message>
<message>
- <location line="+237"/>
- <location line="+232"/>
- <location line="+75"/>
+ <location line="+240"/>
+ <location line="+235"/>
+ <location line="+78"/>
<source>Move Page</source>
<translation>Seite verschieben</translation>
</message>
<message>
- <location line="-273"/>
- <location line="+122"/>
- <location line="+183"/>
- <location line="+664"/>
+ <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="-931"/>
- <location line="+122"/>
+ <location line="-939"/>
+ <location line="+123"/>
<source>Page</source>
<translation>Seite</translation>
</message>
<message>
- <location line="-120"/>
- <location line="+303"/>
- <location line="+670"/>
+ <location line="-121"/>
+ <location line="+309"/>
+ <location line="+672"/>
<source>page</source>
<translation>Seite</translation>
</message>
<message>
- <location line="-970"/>
- <location line="+122"/>
- <location line="+181"/>
- <location line="+665"/>
+ <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="-849"/>
+ <location line="-856"/>
<source>tab</source>
<translation>Seite</translation>
</message>
<message>
- <location line="+204"/>
+ <location line="+209"/>
<source>Change Tab order</source>
<translation>Seite ändern</translation>
</message>
@@ -514,12 +518,12 @@ ate the goose who was loose.</source>
<translation>Ändern des Formularlayout-Elements</translation>
</message>
<message>
- <location line="+94"/>
+ <location line="+95"/>
<source>Change Layout Item Geometry</source>
<translation>Geometrie des Layoutelements ändern</translation>
</message>
<message>
- <location line="+575"/>
+ <location line="+576"/>
<source>Change Table Contents</source>
<translation>Tabelleninhalt ändern</translation>
</message>
@@ -561,7 +565,7 @@ ate the goose who was loose.</source>
<translation>Werkzeugleiste löschen</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1131"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1161"/>
<source>Set action text</source>
<translation>Text der Aktion setzen</translation>
</message>
@@ -572,7 +576,7 @@ ate the goose who was loose.</source>
</message>
<message>
<location line="+89"/>
- <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+861"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+891"/>
<source>Move action</source>
<translation>Aktion verschieben</translation>
</message>
@@ -587,7 +591,7 @@ ate the goose who was loose.</source>
<translation>Menü einfügen</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+172"/>
+ <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+202"/>
<source>Change signals/slots</source>
<translation>Signale/Slots ändern</translation>
</message>
@@ -612,17 +616,17 @@ ate the goose who was loose.</source>
<translation>Subwindow</translation>
</message>
<message>
- <location line="-1808"/>
+ <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="+623"/>
+ <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="+195"/>
+ <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+225"/>
<source>Create button group</source>
<translation>Buttons gruppieren</translation>
</message>
@@ -647,19 +651,19 @@ ate the goose who was loose.</source>
<translation>Buttons aus Gruppierung entfernen</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+318"/>
+ <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="+124"/>
+ <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="+373"/>
+ <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>
@@ -671,12 +675,12 @@ ate the goose who was loose.</source>
<translation> &apos;%1&apos; aus &apos;%2&apos; entfernen</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+25"/>
+ <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="+1179"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1209"/>
<source>Changed &apos;%1&apos; of &apos;%2&apos;</source>
<translation>&apos;%1&apos; von &apos;%2&apos; geändert</translation>
</message>
@@ -757,7 +761,7 @@ ate the goose who was loose.</source>
<context>
<name>DPI_Chooser</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+39"/>
+ <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>
@@ -778,12 +782,12 @@ ate the goose who was loose.</source>
<context>
<name>Designer</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+409"/>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+439"/>
<source>Qt Designer</source>
<translation>Qt Designer</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+602"/>
+ <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>
@@ -855,7 +859,7 @@ ate the goose who was loose.</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 line="+735"/>
+ <location line="+746"/>
<source>Custom Widgets</source>
<translation>Benutzerdefinierte Widgets</translation>
</message>
@@ -868,7 +872,7 @@ ate the goose who was loose.</source>
<context>
<name>DesignerMetaEnum</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="-463"/>
+ <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>
@@ -889,7 +893,7 @@ ate the goose who was loose.</source>
<context>
<name>DeviceProfile</name>
<message>
- <location filename="../tools/designer/src/lib/shared/deviceprofile.cpp" line="+367"/>
+ <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>
@@ -931,7 +935,7 @@ ate the goose who was loose.</source>
<context>
<name>DeviceSkin</name>
<message>
- <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+49"/>
+ <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>
@@ -989,7 +993,7 @@ ate the goose who was loose.</source>
<context>
<name>EmbeddedOptionsControl</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="+281"/>
+ <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="+311"/>
<source>&lt;html&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Font&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%1, %2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Style&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Resolution&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%4 x %5&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/html&gt;</source>
<extracomment>Format embedded device profile description</extracomment>
<translation>&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>
@@ -1013,7 +1017,7 @@ ate the goose who was loose.</source>
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation>Schriftart</translation>
</message>
@@ -1041,7 +1045,7 @@ ate the goose who was loose.</source>
<context>
<name>FontPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+32"/>
+ <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+62"/>
<source>PreferDefault</source>
<translation>Voreinstellung bevorzugt</translation>
</message>
@@ -1064,7 +1068,7 @@ ate the goose who was loose.</source>
<context>
<name>FormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+321"/>
+ <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+351"/>
<source>Invalid stretch value for &apos;%1&apos;: &apos;%2&apos;</source>
<extracomment>Parsing layout stretch values</extracomment>
<translation>Ungültiger Stretch-Wert für &apos;%1&apos;: &apos;%2&apos;</translation>
@@ -1079,7 +1083,7 @@ ate the goose who was loose.</source>
<context>
<name>FormEditorOptionsPage</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="+61"/>
+ <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="+91"/>
<source>%1 %</source>
<translation>%1 %</translation>
</message>
@@ -1146,7 +1150,7 @@ ate the goose who was loose.</source>
<context>
<name>FormWindow</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1669"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1705"/>
<source>Unexpected element &lt;%1&gt;</source>
<translation>Ungültiges Element &lt;%1&gt;</translation>
</message>
@@ -1222,7 +1226,7 @@ ate the goose who was loose.</source>
<context>
<name>IconSelector</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+321"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+353"/>
<source>All Pixmaps (</source>
<translation>Alle Pixmap-Dateien (</translation>
</message>
@@ -1230,7 +1234,7 @@ ate the goose who was loose.</source>
<context>
<name>ItemPropertyBrowser</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+36"/>
+ <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>
@@ -1239,7 +1243,7 @@ ate the goose who was loose.</source>
<context>
<name>LanguageResourceDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-234"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-235"/>
<source>Choose Resource</source>
<translation>Ressource auswählen</translation>
</message>
@@ -1247,7 +1251,7 @@ ate the goose who was loose.</source>
<context>
<name>MainWindowBase</name>
<message>
- <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+89"/>
+ <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+119"/>
<source>Main</source>
<extracomment>Not currently used (main tool bar)</extracomment>
<translation>Haupt-Werkzeugleiste</translation>
@@ -1281,7 +1285,7 @@ ate the goose who was loose.</source>
<context>
<name>NewForm</name>
<message>
- <location filename="../tools/designer/src/designer/newform.cpp" line="+49"/>
+ <location filename="../tools/designer/src/designer/newform.cpp" line="+79"/>
<source>C&amp;reate</source>
<translation>&amp;Neu von Vorlage</translation>
</message>
@@ -1334,7 +1338,7 @@ ate the goose who was loose.</source>
<context>
<name>NewFormWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+465"/>
+ <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+495"/>
<source>Unable to open the form template file &apos;%1&apos;: %2</source>
<translation>Die Formularvorlage %1 konnte nicht geöffnet werden: %2</translation>
</message>
@@ -1342,7 +1346,7 @@ ate the goose who was loose.</source>
<context>
<name>ObjectInspectorModel</name>
<message>
- <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+331"/>
+ <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+364"/>
<source>Object</source>
<translation>Objekt</translation>
</message>
@@ -1365,7 +1369,7 @@ ate the goose who was loose.</source>
<context>
<name>ObjectNameDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+135"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+162"/>
<source>Change Object Name</source>
<translation>Objektnamen bearbeiten</translation>
</message>
@@ -1376,52 +1380,16 @@ ate the goose who was loose.</source>
</message>
</context>
<context>
- <name>qdesigner_internal::PluginDialog</name>
- <message>
- <location filename="../tools/designer/src/designer/plugindialog.cpp" line="+40"/>
- <source>Components</source>
- <translation>Komponenten</translation>
- </message>
+ <name>PluginDialog</name>
<message>
- <location line="+13"/>
- <location filename="../tools/designer/src/designer/plugindialog.ui"/>
+ <location filename="../tools/designer/src/lib/shared/plugindialog.ui"/>
<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>Sucht nach neuinstallierten Plugins mit benutzerdefinierten Widgets.</translation>
- </message>
- <message>
- <location line="+48"/>
- <source>Qt Designer couldn&apos;t find any plugins</source>
- <translation>Qt Designer konnte 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 neuinstallierten Plugins mit benutzerdefinierten Widgets gefunden.</translation>
- </message>
- <message>
- <location filename="../tools/designer/src/designer/plugindialog.ui"/>
- <source>TextLabel</source>
- <translation></translation>
+ <translation type="unfinished">Plugins</translation>
</message>
<message>
<location/>
<source>1</source>
- <translation>1</translation>
+ <translation type="unfinished">1</translation>
</message>
</context>
<context>
@@ -1435,7 +1403,7 @@ ate the goose who was loose.</source>
<context>
<name>PreviewConfigurationWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+125"/>
+ <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+155"/>
<source>Default</source>
<translation>Vorgabe</translation>
</message>
@@ -1483,7 +1451,7 @@ ate the goose who was loose.</source>
<context>
<name>PromotionModel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+86"/>
+ <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+116"/>
<source>Not used</source>
<extracomment>Usage of promoted widgets</extracomment>
<translation>Nicht verwendet</translation>
@@ -1492,7 +1460,7 @@ ate the goose who was loose.</source>
<context>
<name>Q3WizardContainer</name>
<message>
- <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="+142"/>
+ <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="+172"/>
<location line="+5"/>
<source>Page</source>
<translation>Seite</translation>
@@ -1501,7 +1469,7 @@ ate the goose who was loose.</source>
<context>
<name>QAbstractFormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+176"/>
+ <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>
@@ -1547,7 +1515,7 @@ This indicates an inconsistency in the ui-file.</source>
<translation>Fehler beim Setzen der Tabulatorreihenfolge: Es konnte kein Widget mit dem Namen &apos;%1&apos; gefunden werden.</translation>
</message>
<message>
- <location line="+750"/>
+ <location line="+749"/>
<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>
@@ -1560,7 +1528,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QAxWidgetPlugin</name>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+45"/>
+ <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+75"/>
<source>ActiveX control</source>
<translation>ActiveX-Steuerelement</translation>
</message>
@@ -1573,7 +1541,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QAxWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+89"/>
+ <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+119"/>
<source>Set Control</source>
<translation>Steuerelement setzen</translation>
</message>
@@ -1596,7 +1564,7 @@ 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="+53"/>
+ <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>
@@ -1646,7 +1614,7 @@ This indicates an inconsistency in the ui-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="+58"/>
+ <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>
@@ -1665,7 +1633,7 @@ Script: %3</source>
<context>
<name>QDesigner</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+111"/>
+ <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+141"/>
<source>%1 - warning</source>
<translation>%1 - Warnung</translation>
</message>
@@ -1683,7 +1651,7 @@ Script: %3</source>
<context>
<name>QDesignerActions</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+151"/>
+ <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+178"/>
<source>Edit Widgets</source>
<translation>Widgets bearbeiten</translation>
</message>
@@ -1837,7 +1805,7 @@ Möchten Sie einen anderen Namen eingeben oder ein neues Formular erzeugen?</tra
<translation>Die Datei konnte nicht geöffnet werden</translation>
</message>
<message>
- <location line="+320"/>
+ <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>
@@ -1858,7 +1826,7 @@ Möchten Sie einen anderen Namen eingeben oder ein neues Formular erzeugen?</tra
<translation>Bitte schließen Sie alle Formulare, um zusätzliche Schriftarten zu laden.</translation>
</message>
<message>
- <location line="-540"/>
+ <location line="-502"/>
<source>Select New File</source>
<translation>Andere Datei</translation>
</message>
@@ -1868,12 +1836,12 @@ Möchten Sie einen anderen Namen eingeben oder ein neues Formular erzeugen?</tra
<translation>Die Datei konnte nicht geschrieben werden</translation>
</message>
<message>
- <location line="+239"/>
+ <location line="+201"/>
<source>&amp;Close Preview</source>
<translation>Vorschau &amp;schließen</translation>
</message>
<message>
- <location line="-931"/>
+ <location line="-893"/>
<source>Save &amp;Image...</source>
<translation>&amp;Vorschaubild speichern...</translation>
</message>
@@ -1906,7 +1874,7 @@ Would you like to retry?</source>
Möchten Sie es noch einmal versuchen?</translation>
</message>
<message>
- <location line="+467"/>
+ <location line="+429"/>
<source>Image files (*.%1)</source>
<translation>Bilddateien (*.%1)</translation>
</message>
@@ -1922,7 +1890,7 @@ Möchten Sie es noch einmal versuchen?</translation>
<translation>Die Datei %1 konnte nicht geschrieben werden.</translation>
</message>
<message>
- <location line="-1196"/>
+ <location line="-1158"/>
<source>&amp;New...</source>
<translation>&amp;Neu...</translation>
</message>
@@ -1953,12 +1921,12 @@ Möchten Sie es noch einmal versuchen?</translation>
</message>
<message>
<location line="+1"/>
- <location line="+934"/>
+ <location line="+896"/>
<source>&amp;Close</source>
<translation>&amp;Schließen</translation>
</message>
<message>
- <location line="-929"/>
+ <location line="-891"/>
<source>View &amp;Code...</source>
<translation>&amp;Code anzeigen...</translation>
</message>
@@ -1969,23 +1937,23 @@ Möchten Sie es noch einmal versuchen?</translation>
<translation>Formular unter einem anderen Namen speichern</translation>
</message>
<message>
- <location line="+467"/>
+ <location line="+429"/>
<source>Preview failed</source>
<translation>Es konnte keine Vorschau erzeugt werden</translation>
</message>
<message>
- <location line="-613"/>
+ <location line="-575"/>
<source>Code generation failed</source>
<translation>Es konnte kein Code generiert werden</translation>
</message>
<message>
<location line="+328"/>
- <location line="+66"/>
+ <location line="+34"/>
<source>Assistant</source>
<translation>Assistant</translation>
</message>
<message>
- <location line="+265"/>
+ <location line="+259"/>
<source>Saved image %1.</source>
<translation>Das Vorschaubild wurde unter %1 gespeichert.</translation>
</message>
@@ -1995,7 +1963,7 @@ Möchten Sie es noch einmal versuchen?</translation>
<translation>%1 wurde gedruckt.</translation>
</message>
<message>
- <location line="-1186"/>
+ <location line="-1148"/>
<source>ALT+CTRL+S</source>
<translation>ALT+CTRL+S</translation>
</message>
@@ -2003,7 +1971,7 @@ Möchten Sie es noch einmal versuchen?</translation>
<context>
<name>QDesignerAppearanceOptionsPage</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="+108"/>
+ <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="+138"/>
<source>Appearance</source>
<extracomment>Tab in preferences dialog</extracomment>
<translation>Ansicht</translation>
@@ -2040,7 +2008,7 @@ Möchten Sie es noch einmal versuchen?</translation>
<translation>Steuerelement setzen</translation>
</message>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+149"/>
+ <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+179"/>
<source>Control loaded</source>
<translation>Steuerelement geladen</translation>
</message>
@@ -2053,7 +2021,7 @@ Möchten Sie es noch einmal versuchen?</translation>
<context>
<name>QDesignerFormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+58"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+88"/>
<source>Script errors occurred:</source>
<translation>Es sind Skriptfehler aufgetreten:</translation>
</message>
@@ -2071,7 +2039,7 @@ Möchten Sie es noch einmal versuchen?</translation>
<context>
<name>QDesignerFormWindow</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="+187"/>
+ <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="+217"/>
<source>%1 - %2[*]</source>
<translation>%1 - %2[*]</translation>
</message>
@@ -2156,7 +2124,7 @@ Möchten Sie es noch einmal versuchen?</translation>
<context>
<name>QDesignerPluginManager</name>
<message>
- <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="+197"/>
+ <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="+249"/>
<source>An XML error was encountered when parsing the XML of the custom widget %1: %2</source>
<translation>Fehler beim Auswerten des XML des benutzerdefinierten Widgets %1: %2</translation>
</message>
@@ -2179,7 +2147,7 @@ Möchten Sie es noch einmal versuchen?</translation>
<context>
<name>QDesignerPropertySheet</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+717"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+747"/>
<source>Dynamic Properties</source>
<translation>Dynamische Eigenschaften</translation>
</message>
@@ -2187,19 +2155,19 @@ Möchten Sie es noch einmal versuchen?</translation>
<context>
<name>QDesignerResource</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="-235"/>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="-246"/>
<source>The layout type &apos;%1&apos; is not supported, defaulting to grid.</source>
<translation>Der Layout-Typ &apos;%1&apos; wird nicht unterstützt; es wurde ein Grid-Layout erzeugt.</translation>
</message>
<message>
- <location line="+331"/>
+ <location line="+342"/>
<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="+598"/>
+ <location line="+599"/>
<source>Unexpected element &lt;%1&gt;</source>
<extracomment>Parsing clipboard contents</extracomment>
<translation>Ungültiges Element &lt;%1&gt;</translation>
@@ -2220,7 +2188,7 @@ 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="+53"/>
+ <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>
@@ -2233,7 +2201,7 @@ 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="+160"/>
+ <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="+190"/>
<source>Property Editor</source>
<translation>Eigenschaften</translation>
</message>
@@ -2266,7 +2234,7 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<context>
<name>QDesignerWidgetBox</name>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="+318"/>
+ <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>
@@ -2289,7 +2257,7 @@ 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="+169"/>
+ <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="+199"/>
<source>&amp;File</source>
<translation>&amp;Datei</translation>
</message>
@@ -2364,7 +2332,7 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<translation>Designer wurde offenbar nicht ordnungsgemäß beendet; es existieren noch Dateien von der Hintergrundsicherung. Möchten Sie sie laden?</translation>
</message>
<message>
- <location line="+112"/>
+ <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>
@@ -2374,7 +2342,7 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<translation>Die Datei &lt;b&gt;%1&lt;/b&gt; ist keine gültige Designer-Datei.</translation>
</message>
<message numerus="yes">
- <location line="-260"/>
+ <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>
@@ -2385,7 +2353,7 @@ 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="+130"/>
+ <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="+160"/>
<source>An empty class name was passed on to %1 (object name: &apos;%2&apos;).</source>
<extracomment>Empty class name passed to widget factory method</extracomment>
<translation>Der Methode %1 wurde ein leerer Klassennamen übergeben (Name &apos;%2&apos;).</translation>
@@ -2406,7 +2374,7 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<translation>Layouts des Typs `%1&apos; werden nicht unterstützt.</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="+76"/>
+ <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>
@@ -2426,7 +2394,7 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<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="+102"/>
+ <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. Der Vorgabewert &apos;%2&apos; wird verwendet.</translation>
</message>
@@ -2439,7 +2407,7 @@ 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="+164"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="+194"/>
<source>Previous Page</source>
<translation>Vorige Seite</translation>
</message>
@@ -2500,7 +2468,7 @@ 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="+59"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="+89"/>
<source>Delete</source>
<translation>Löschen</translation>
</message>
@@ -2528,7 +2496,7 @@ 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="+34"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="+64"/>
<source>Delete Page</source>
<translation>Seite löschen</translation>
</message>
@@ -2566,7 +2534,7 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<context>
<name>QtBoolEdit</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+198"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+226"/>
<location line="+10"/>
<location line="+25"/>
<source>True</source>
@@ -2582,7 +2550,7 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<context>
<name>QtBoolPropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1469"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1477"/>
<source>True</source>
<translation>Wahr</translation>
</message>
@@ -2595,7 +2563,7 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<context>
<name>QtCharEdit</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1573"/>
+ <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1601"/>
<source>Clear Char</source>
<translation>Zeichen löschen</translation>
</message>
@@ -2611,7 +2579,7 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<context>
<name>QtColorPropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4769"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4777"/>
<source>Red</source>
<translation>Rot</translation>
</message>
@@ -2791,7 +2759,7 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<context>
<name>QtGradientEditor</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+405"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+435"/>
<source>Start X</source>
<translation>Anfangswert X</translation>
</message>
@@ -3066,7 +3034,7 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<context>
<name>QtGradientStopsWidget</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+919"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+949"/>
<source>New Stop</source>
<translation>Neuer Bezugspunkt</translation>
</message>
@@ -3104,7 +3072,7 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<context>
<name>QtGradientView</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+77"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+107"/>
<source>Grad</source>
<translation>Grad</translation>
</message>
@@ -3151,7 +3119,7 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<context>
<name>QtGradientViewDialog</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.h" line="+32"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.h" line="+62"/>
<location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui"/>
<source>Select Gradient</source>
<translation>Gradienten auswählen</translation>
@@ -3168,7 +3136,7 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<context>
<name>QtLocalePropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-3553"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-3561"/>
<source>%1, %2</source>
<translation>%1, %2</translation>
</message>
@@ -3235,22 +3203,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="+1705"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1716"/>
<source>[(%1, %2), %3 x %4]</source>
<translation>[(%1, %2), %3 x %4]</translation>
</message>
<message>
- <location line="+155"/>
+ <location line="+156"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location line="+9"/>
+ <location line="+8"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location line="+9"/>
+ <location line="+8"/>
<source>Width</source>
<translation>Breite</translation>
</message>
@@ -3263,22 +3231,22 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier
<context>
<name>QtRectPropertyManager</name>
<message>
- <location line="-610"/>
+ <location line="-614"/>
<source>[(%1, %2), %3 x %4]</source>
<translation>[(%1, %2), %3 x %4]</translation>
</message>
<message>
- <location line="+119"/>
+ <location line="+120"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location line="+8"/>
+ <location line="+7"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location line="+8"/>
+ <location line="+7"/>
<source>Width</source>
<translation>Breite</translation>
</message>
@@ -3291,7 +3259,7 @@ 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="+1930"/>
+ <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="+1962"/>
<source>Edit Resources</source>
<translation>Ressourcen bearbeiten</translation>
</message>
@@ -3454,7 +3422,7 @@ zu:
<translation>Datei oder Ressource löschen</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="-2092"/>
+ <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="-2094"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>Die Datei %1 existiert bereits.
@@ -3466,7 +3434,7 @@ Wollen Sie sie überschreiben?</translation>
<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="+900"/>
+ <location line="+902"/>
<source>%1 [read-only]</source>
<translation>%1 [schreibgeschützt]</translation>
</message>
@@ -3577,7 +3545,7 @@ 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="+404"/>
+ <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+435"/>
<source>Size: %1 x %2
%3</source>
<translation>Größe: %1 x %2
@@ -3610,7 +3578,7 @@ 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="-532"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-537"/>
<source>%1 x %2</source>
<translation>%1 x %2</translation>
</message>
@@ -3628,7 +3596,7 @@ Dies kann zum Beispiel eine Sprachkennung wie &quot;_de&quot; sein.</translation
<context>
<name>QtSizePolicyPropertyManager</name>
<message>
- <location line="+1709"/>
+ <location line="+1719"/>
<location line="+1"/>
<source>&lt;Invalid&gt;</source>
<translation>&lt;Ungültig&gt;</translation>
@@ -3662,7 +3630,7 @@ Dies kann zum Beispiel eine Sprachkennung wie &quot;_de&quot; sein.</translation
<context>
<name>QtSizePropertyManager</name>
<message>
- <location line="-2288"/>
+ <location line="-2298"/>
<source>%1 x %2</source>
<translation>%1 x %2</translation>
</message>
@@ -3680,7 +3648,7 @@ 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="+1759"/>
+ <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1789"/>
<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>
@@ -3788,7 +3756,7 @@ 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="+416"/>
+ <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+442"/>
<source>Property</source>
<translation>Eigenschaft</translation>
</message>
@@ -3801,7 +3769,7 @@ 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="+42"/>
+ <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+72"/>
<source>Add path...</source>
<translation>Verzeichnis anlegen...</translation>
</message>
@@ -3866,7 +3834,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>ScriptErrorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+33"/>
+ <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+63"/>
<source>An error occurred while running the scripts for &quot;%1&quot;:
</source>
<translation>Bei der Ausführung der Skripte für &quot;%1&quot; sind Fehler aufgetreten:
@@ -3899,7 +3867,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>SignalSlotConnection</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="-311"/>
+ <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>
@@ -3940,7 +3908,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>Spacer</name>
<message>
- <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="+245"/>
+ <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>
@@ -3953,7 +3921,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>TemplateOptionsPage</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="+126"/>
+ <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>
@@ -3995,17 +3963,12 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>VersionDialog</name>
<message>
- <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+141"/>
+ <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;Version %2</translation>
</message>
<message>
- <location line="+2"/>
- <source> Open Source Edition</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+3"/>
+ <location line="+1"/>
<source>Qt Designer</source>
<translation>Qt Designer</translation>
</message>
@@ -4015,30 +3978,15 @@ Möchten Sie sie überschreiben?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
- <source>This version of Qt Designer is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel.html&lt;/a&gt; for an overview of Qt licensing.&lt;br/&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+12"/>
- <source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.&lt;br/&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location line="+5"/>
<source>%1&lt;br/&gt;%2&lt;br/&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt; </source>
<translation type="unfinished"></translation>
</message>
- <message>
- <location line="-9"/>
- <source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.&lt;br/&gt;</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>WidgetDataBase</name>
<message>
- <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="+786"/>
+ <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>
@@ -4046,22 +3994,22 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::ActionEditor</name>
<message>
- <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+111"/>
+ <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+143"/>
<source>Actions</source>
<translation>Aktionen</translation>
</message>
<message>
- <location line="-15"/>
+ <location line="-16"/>
<source>New...</source>
<translation>Neu...</translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+7"/>
<source>Delete</source>
<translation>Löschen</translation>
</message>
<message>
- <location line="+305"/>
+ <location line="+307"/>
<source>New action</source>
<translation>Neue Aktion</translation>
</message>
@@ -4071,12 +4019,17 @@ Möchten Sie sie überschreiben?</translation>
<translation>Aktion ändern</translation>
</message>
<message>
- <location line="-408"/>
+ <location line="-411"/>
<source>Edit...</source>
<translation>Ändern...</translation>
</message>
<message>
<location line="+1"/>
+ <source>Go to slot...</source>
+ <translation type="unfinished">Slot anzeigen...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
<source>Copy</source>
<translation>Kopieren</translation>
</message>
@@ -4096,7 +4049,7 @@ Möchten Sie sie überschreiben?</translation>
<translation>Alles auswählen</translation>
</message>
<message>
- <location line="+55"/>
+ <location line="+57"/>
<source>Icon View</source>
<translation>Icon-Ansicht</translation>
</message>
@@ -4106,7 +4059,7 @@ Möchten Sie sie überschreiben?</translation>
<translation>Detaillierte Ansicht</translation>
</message>
<message>
- <location line="+406"/>
+ <location line="+412"/>
<source>Remove actions</source>
<translation> Aktionen löschen</translation>
</message>
@@ -4116,12 +4069,12 @@ Möchten Sie sie überschreiben?</translation>
<translation>Aktion &apos;%1&apos; löschen</translation>
</message>
<message>
- <location line="+183"/>
+ <location line="+186"/>
<source>Used In</source>
<translation>Verwendet in</translation>
</message>
<message>
- <location line="-598"/>
+ <location line="-607"/>
<source>Configure Action Editor</source>
<translation>Aktionseditor konfigurieren</translation>
</message>
@@ -4129,7 +4082,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::ActionModel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+64"/>
+ <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+95"/>
<source>Name</source>
<translation>Name</translation>
</message>
@@ -4162,7 +4115,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::BuddyEditor</name>
<message>
- <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+235"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+265"/>
<source>Add buddy</source>
<translation>Buddy hinzufügen</translation>
</message>
@@ -4196,7 +4149,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::BuddyEditorPlugin</name>
<message>
- <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+47"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+77"/>
<source>Edit Buddies</source>
<translation>Buddies bearbeiten</translation>
</message>
@@ -4204,7 +4157,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::BuddyEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+30"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+60"/>
<source>Edit Buddies</source>
<translation>Buddies bearbeiten</translation>
</message>
@@ -4258,7 +4211,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::CodeDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+69"/>
+ <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+99"/>
<source>Save...</source>
<translation>Speichern...</translation>
</message>
@@ -4316,7 +4269,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::ColorAction</name>
<message>
- <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+220"/>
+ <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+250"/>
<source>Text Color</source>
<translation>Schriftfarbe</translation>
</message>
@@ -4324,7 +4277,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::ComboBoxTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+42"/>
+ <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+72"/>
<source>Edit Items...</source>
<translation>Einträge ändern...</translation>
</message>
@@ -4416,7 +4369,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::ContainerWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+82"/>
+ <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+112"/>
<source>Insert Page Before Current Page</source>
<translation>Seite davor einfügen</translation>
</message>
@@ -4479,7 +4432,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::DesignerPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+614"/>
+ <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+644"/>
<location line="+6"/>
<source>AlignLeft</source>
<translation>Linksbündig ausrichten</translation>
@@ -4605,7 +4558,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::DeviceProfileDialog</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+33"/>
+ <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+63"/>
<source>Device Profiles (*.%1)</source>
<translation>Profile</translation>
</message>
@@ -4765,7 +4718,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::FilterWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+155"/>
+ <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+185"/>
<source>&lt;Filter&gt;</source>
<translation>&lt;FIlter&gt;</translation>
</message>
@@ -4773,7 +4726,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::FormEditor</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+160"/>
+ <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+190"/>
<source>Resource File Changed</source>
<translation>Änderung einer Ressourcendatei</translation>
</message>
@@ -4794,7 +4747,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::FormWindow</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1262"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1267"/>
<source>Edit contents</source>
<translation>Ändern</translation>
</message>
@@ -4804,7 +4757,7 @@ Möchten Sie sie überschreiben?</translation>
<translation>F2</translation>
</message>
<message>
- <location line="+836"/>
+ <location line="+841"/>
<source>Resize</source>
<translation>Größe ändern</translation>
</message>
@@ -4890,7 +4843,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::FormWindowBase</name>
<message>
- <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+363"/>
+ <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+397"/>
<source>Delete</source>
<translation>Löschen</translation>
</message>
@@ -4903,7 +4856,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::FormWindowManager</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+338"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+368"/>
<source>Cu&amp;t</source>
<translation>&amp;Ausschneiden</translation>
</message>
@@ -4985,7 +4938,7 @@ Möchten Sie sie überschreiben?</translation>
<translation>Berechnet die Größe des ausgewählten Widgets aus dem Layout und passt das Widget an</translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+6"/>
<source>Lay Out &amp;Horizontally</source>
<translation>Objekte &amp;waagrecht anordnen</translation>
</message>
@@ -5035,7 +4988,7 @@ Möchten Sie sie überschreiben?</translation>
<translation>Ordnet die ausgewählten Objekte um einen Splitter senkecht an</translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+7"/>
<source>&amp;Break Layout</source>
<translation>La&amp;yout auflösen</translation>
</message>
@@ -5060,7 +5013,7 @@ Möchten Sie sie überschreiben?</translation>
<translation>Formular&amp;einstellungen...</translation>
</message>
<message>
- <location line="+75"/>
+ <location line="+78"/>
<source>Break Layout</source>
<translation>Layout auflösen</translation>
</message>
@@ -5076,17 +5029,17 @@ Möchten Sie sie überschreiben?</translation>
<translation>Es konnte keine Vorschau erzeugt werden</translation>
</message>
<message>
- <location line="+336"/>
+ <location line="+341"/>
<source>Form Settings - %1</source>
<translation>Formulareinstellungen - %1</translation>
</message>
<message>
- <location line="-502"/>
+ <location line="-510"/>
<source>Removes empty columns and rows</source>
<translation>Entfernt unbesetzte Zeilen und Spalten</translation>
</message>
<message>
- <location line="-49"/>
+ <location line="-50"/>
<source>Lay Out in a &amp;Form Layout</source>
<translation>Objekte in &amp;Formularlayout anordnen</translation>
</message>
@@ -5096,7 +5049,7 @@ Möchten Sie sie überschreiben?</translation>
<translation>Ordnet die ausgewählten Objekte in einem zweispaltigen Formularlayout an</translation>
</message>
<message>
- <location line="+44"/>
+ <location line="+45"/>
<source>Si&amp;mplify Grid Layout</source>
<translation>Tabellarisches Layout &amp;vereinfachen</translation>
</message>
@@ -5104,7 +5057,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::FormWindowSettings</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+162"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+193"/>
<source>None</source>
<translation>Kein</translation>
</message>
@@ -5155,7 +5108,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::GroupBoxTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+56"/>
+ <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+86"/>
<source>Change title...</source>
<translation>Titel ändern...</translation>
</message>
@@ -5171,7 +5124,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::IconSelector</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+210"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+211"/>
<source>The pixmap file &apos;%1&apos; cannot be read.</source>
<translation>Die Pixmap-Datei &apos;%1&apos; kann nicht gelesen werden.</translation>
</message>
@@ -5323,7 +5276,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::LabelTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="+59"/>
+ <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="+89"/>
<source>Change rich text...</source>
<translation>Formatierbaren Text ändern...</translation>
</message>
@@ -5336,7 +5289,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::LineEditTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+54"/>
+ <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+84"/>
<source>Change text...</source>
<translation>Text ändern...</translation>
</message>
@@ -5344,7 +5297,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::ListWidgetEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+75"/>
+ <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+105"/>
<source>Edit List Widget</source>
<translation>List-Widget ändern</translation>
</message>
@@ -5362,7 +5315,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::ListWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+41"/>
+ <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+71"/>
<source>Edit Items...</source>
<translation> Elemente ändern...</translation>
</message>
@@ -5398,7 +5351,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::MenuTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+30"/>
+ <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+60"/>
<source>Remove</source>
<translation>Löschen</translation>
</message>
@@ -5457,7 +5410,7 @@ Möchten Sie sie überschreiben?</translation>
<context>
<name>qdesigner_internal::NewDynamicPropertyDialog</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+104"/>
+ <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+134"/>
<source>Set Property Name</source>
<translation>Namen der Eigenschaft setzen</translation>
</message>
@@ -5577,7 +5530,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::NewPromotedClassPanel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+66"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+96"/>
<source>Add</source>
<translation>Hinzufügen</translation>
</message>
@@ -5615,7 +5568,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::ObjectInspector</name>
<message>
- <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+727"/>
+ <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+758"/>
<source>&amp;Find in Text...</source>
<translation>&amp;Suchen...</translation>
</message>
@@ -5631,7 +5584,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::OrderDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+83"/>
+ <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+113"/>
<source>Index %1 (%2)</source>
<translation>Position %1 (%2)</translation>
</message>
@@ -5712,7 +5665,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PaletteEditorButton</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+31"/>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+61"/>
<source>Change Palette</source>
<translation>Palette ändern</translation>
</message>
@@ -5720,7 +5673,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PaletteModel</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+351"/>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+381"/>
<source>Color Role</source>
<translation>Farbrolle</translation>
</message>
@@ -5772,15 +5725,57 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PlainTextEditorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+39"/>
+ <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+69"/>
<source>Edit text</source>
<translation>Text bearbeiten</translation>
</message>
</context>
<context>
+ <name>qdesigner_internal::PluginDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="+72"/>
+ <source>Components</source>
+ <translation>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>Sucht nach neuinstallierten Plugins mit benutzerdefinierten Widgets.</translation>
+ </message>
+ <message>
+ <location line="+48"/>
+ <source>Qt Designer couldn&apos;t find any plugins</source>
+ <translation>Qt Designer konnte 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 neuinstallierten Plugins mit benutzerdefinierten Widgets gefunden.</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation type="obsolete">1</translation>
+ </message>
+</context>
+<context>
<name>qdesigner_internal::PreviewActionGroup</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+65"/>
+ <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+95"/>
<source>%1 Style</source>
<translation>%1-Stil</translation>
</message>
@@ -5823,7 +5818,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PreviewDeviceSkin</name>
<message>
- <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+188"/>
+ <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+218"/>
<source>&amp;Close</source>
<translation>&amp;Schließen</translation>
</message>
@@ -5920,7 +5915,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PromotionTaskMenu</name>
<message>
- <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+55"/>
+ <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+85"/>
<source>Promoted widgets...</source>
<translation>Benutzerdefinierte Klassen...</translation>
</message>
@@ -5948,7 +5943,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PropertyEditor</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+158"/>
+ <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+188"/>
<source>Add Dynamic Property...</source>
<translation>Dynamische Eigenschaft hinzufügen...</translation>
</message>
@@ -6008,7 +6003,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::PropertyLineEdit</name>
<message>
- <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+58"/>
+ <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+88"/>
<source>Insert line break</source>
<translation>Zeilenumbruch einfügen</translation>
</message>
@@ -6122,12 +6117,12 @@ Klasse: %2</translation>
<translation>Slot anzeigen...</translation>
</message>
<message>
- <location line="+397"/>
+ <location line="+413"/>
<source>no signals available</source>
<translation>Es sind keine Signale vorhanden</translation>
</message>
<message numerus="yes">
- <location line="+61"/>
+ <location line="+67"/>
<source>Set size constraint on %n widget(s)</source>
<translation>
<numerusform>Größenbeschränkung eines Widgets festlegen</numerusform>
@@ -6135,7 +6130,7 @@ Klasse: %2</translation>
</translation>
</message>
<message>
- <location line="-455"/>
+ <location line="-477"/>
<source>Size Constraints</source>
<translation>Größe</translation>
</message>
@@ -6170,7 +6165,7 @@ Klasse: %2</translation>
<translation>Maximalgröße festlegen</translation>
</message>
<message>
- <location line="+236"/>
+ <location line="+235"/>
<source>Edit ToolTip</source>
<translation>ToolTip bearbeiten</translation>
</message>
@@ -6183,7 +6178,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::QDesignerWidgetBox</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="+97"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="+127"/>
<location line="+13"/>
<source>Unexpected element &lt;%1&gt;</source>
<translation>Ungültiges Element &lt;%1&gt;</translation>
@@ -6238,7 +6233,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::QtGradientStopsController</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="+147"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="+177"/>
<source>H</source>
<translation>H</translation>
</message>
@@ -6413,7 +6408,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::ScriptDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+38"/>
+ <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+68"/>
<source>Edit script</source>
<translation>Skript bearbeiten</translation>
</message>
@@ -6463,7 +6458,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::SignalSlotEditorPlugin</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="+46"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="+76"/>
<source>Edit Signals/Slots</source>
<translation>Signale und Slots bearbeiten</translation>
</message>
@@ -6476,7 +6471,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::SignalSlotEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="+32"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="+62"/>
<source>Edit Signals/Slots</source>
<translation>Signale und Slots bearbeiten</translation>
</message>
@@ -6484,7 +6479,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::StatusBarTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+55"/>
+ <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+85"/>
<source>Remove</source>
<translation>Löschen</translation>
</message>
@@ -6492,7 +6487,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::StringListEditorButton</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+30"/>
+ <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+60"/>
<source>Change String List</source>
<translation>Zeichenkettenliste ändern</translation>
</message>
@@ -6500,7 +6495,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::StyleSheetEditorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+71"/>
+ <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+101"/>
<source>Edit Style Sheet</source>
<translation>Stylesheet bearbeiten</translation>
</message>
@@ -6539,7 +6534,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::TabOrderEditor</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+333"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+363"/>
<source>Start from Here</source>
<translation>Hier neu beginnen</translation>
</message>
@@ -6567,7 +6562,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::TabOrderEditorPlugin</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="+47"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="+77"/>
<source>Edit Tab Order</source>
<translation>Tabulatorreihenfolge bearbeiten</translation>
</message>
@@ -6575,7 +6570,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::TabOrderEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="+31"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="+61"/>
<source>Edit Tab Order</source>
<translation>Tabulatorreihenfolge bearbeiten</translation>
</message>
@@ -6583,7 +6578,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::TableWidgetEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+41"/>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+71"/>
<source>New Column</source>
<translation>Neue Spalte</translation>
</message>
@@ -6632,7 +6627,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::TableWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+38"/>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+68"/>
<source>Edit Items...</source>
<translation>Elemente ändern...</translation>
</message>
@@ -6663,7 +6658,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::TextEditTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+33"/>
+ <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+63"/>
<source>Change HTML...</source>
<translation>HTML ändern...</translation>
</message>
@@ -6709,7 +6704,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::ToolBarEventFilter</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+209"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+239"/>
<source>Insert Separator</source>
<translation>Trenner einfügen</translation>
</message>
@@ -6737,7 +6732,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::TreeWidgetEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+50"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+80"/>
<source>&amp;Columns</source>
<translation>&amp;Spalten</translation>
</message>
@@ -6863,7 +6858,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::TreeWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+37"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+67"/>
<source>Edit Items...</source>
<translation>Elemente ändern...</translation>
</message>
@@ -6871,7 +6866,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::WidgetBox</name>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="+83"/>
+ <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="+113"/>
<source>Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML.</source>
<translation>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>
@@ -6879,17 +6874,17 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::WidgetBoxTreeWidget</name>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-267"/>
+ <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-268"/>
<source>Scratchpad</source>
<translation>Ablage</translation>
</message>
<message>
- <location line="+360"/>
+ <location line="+370"/>
<source>Custom Widgets</source>
<translation>Benutzerdefinierte Widgets</translation>
</message>
<message>
- <location line="+261"/>
+ <location line="+260"/>
<source>Expand all</source>
<translation>Alles aufklappen</translation>
</message>
@@ -6930,7 +6925,7 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::WidgetEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+41"/>
+ <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+71"/>
<source>Edit Widgets</source>
<translation>Widgets bearbeiten</translation>
</message>
@@ -6938,12 +6933,12 @@ Klasse: %2</translation>
<context>
<name>qdesigner_internal::WidgetFactory</name>
<message>
- <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="+237"/>
+ <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="+267"/>
<source>The custom widget factory registered for widgets of class %1 returned 0.</source>
<translation>Die Factory für benutzerdefinierte Widgets der Klasse %1 gab einen 0-Zeiger zurück.</translation>
</message>
<message>
- <location line="+40"/>
+ <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>
@@ -6985,7 +6980,7 @@ 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="+54"/>
+ <location filename="../tools/designer/src/lib/shared/zoomwidget.cpp" line="+84"/>
<source>%1 %</source>
<extracomment>Zoom factor</extracomment>
<translation>%1 %</translation>
diff --git a/translations/designer_ja.ts b/translations/designer_ja.ts
index a403b8d..1bcb801 100644
--- a/translations/designer_ja.ts
+++ b/translations/designer_ja.ts
@@ -1,20 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="ja_JP">
+<!DOCTYPE TS>
+<TS version="2.0" language="ja_JP">
<context>
<name></name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="+43"/>
+ <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="+73"/>
<source>The moose in the noose
ate the goose who was loose.</source>
<translation type="unfinished">坊主が屏風に上手に坊主の絵を描いた。</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+624"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+647"/>
<source>&lt;object&gt;</source>
<translation type="unfinished">&lt;オブジェクト&gt;</translation>
</message>
<message>
- <location line="+16"/>
+ <location line="+18"/>
<source>&lt;signal&gt;</source>
<translation type="unfinished">&lt;シグナル&gt;</translation>
</message>
@@ -95,7 +96,7 @@ ate the goose who was loose.</source>
<context>
<name>AbstractFindWidget</name>
<message>
- <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+97"/>
+ <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+127"/>
<source>&amp;Previous</source>
<translation type="unfinished"></translation>
</message>
@@ -141,7 +142,7 @@ ate the goose who was loose.</source>
<context>
<name>AppFontDialog</name>
<message>
- <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+388"/>
+ <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+418"/>
<source>Additional Fonts</source>
<translation type="unfinished"></translation>
</message>
@@ -253,7 +254,7 @@ ate the goose who was loose.</source>
<context>
<name>AssistantClient</name>
<message>
- <location filename="../tools/designer/src/designer/assistantclient.cpp" line="+70"/>
+ <location filename="../tools/designer/src/designer/assistantclient.cpp" line="+100"/>
<source>Unable to send request: Assistant is not responding.</source>
<translation type="unfinished"></translation>
</message>
@@ -271,7 +272,7 @@ ate the goose who was loose.</source>
<context>
<name>BrushManagerProxy</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+191"/>
+ <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+221"/>
<source>The element &apos;%1&apos; is missing the required attribute &apos;%2&apos;.</source>
<translation type="unfinished"></translation>
</message>
@@ -299,7 +300,7 @@ ate the goose who was loose.</source>
<context>
<name>BrushPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+22"/>
+ <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+52"/>
<source>No brush</source>
<translation type="unfinished"></translation>
</message>
@@ -396,19 +397,24 @@ ate the goose who was loose.</source>
<context>
<name>Command</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+177"/>
- <location line="+211"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+208"/>
+ <location line="+258"/>
<source>Change signal</source>
<translation>シグナルを変更</translation>
</message>
<message>
- <location line="-209"/>
- <location line="+221"/>
+ <location line="-256"/>
+ <location line="+268"/>
<source>Change slot</source>
<translation>スロットを変更</translation>
</message>
<message>
- <location line="+14"/>
+ <location line="-220"/>
+ <source>Change signal-slot connection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+234"/>
<source>Change sender</source>
<translation>発信者を変更</translation>
</message>
@@ -418,7 +424,7 @@ ate the goose who was loose.</source>
<translation>受信者を変更</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+113"/>
+ <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+143"/>
<source>Add connection</source>
<translation>シグナル/スロット接続を追加</translation>
</message>
@@ -443,7 +449,7 @@ ate the goose who was loose.</source>
<translation>ターゲットを変更</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="+117"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="+149"/>
<source>Insert &apos;%1&apos;</source>
<translation>&apos;%1&apos; を挿入</translation>
</message>
@@ -473,7 +479,7 @@ ate the goose who was loose.</source>
<translation>&apos;%1&apos; の親をつけかえ</translation>
</message>
<message>
- <location line="+51"/>
+ <location line="+53"/>
<source>Promote to custom widget</source>
<translation>カスタムウィジェットに格上げ</translation>
</message>
@@ -508,48 +514,48 @@ ate the goose who was loose.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+126"/>
- <location line="+226"/>
- <location line="+75"/>
+ <location line="+135"/>
+ <location line="+235"/>
+ <location line="+78"/>
<source>Move Page</source>
<translation>ページを移動</translation>
</message>
<message>
- <location line="-267"/>
- <location line="+116"/>
- <location line="+183"/>
- <location line="+664"/>
+ <location line="-279"/>
+ <location line="+123"/>
+ <location line="+188"/>
+ <location line="+666"/>
<source>Delete Page</source>
<translation>ページを削除</translation>
</message>
<message>
- <location line="-925"/>
- <location line="+116"/>
+ <location line="-939"/>
+ <location line="+123"/>
<source>Page</source>
<translation>ページ</translation>
</message>
<message>
- <location line="-114"/>
- <location line="+297"/>
- <location line="+670"/>
+ <location line="-121"/>
+ <location line="+309"/>
+ <location line="+672"/>
<source>page</source>
<translation>ページ</translation>
</message>
<message>
- <location line="-964"/>
- <location line="+116"/>
- <location line="+181"/>
- <location line="+665"/>
+ <location line="-978"/>
+ <location line="+123"/>
+ <location line="+186"/>
+ <location line="+667"/>
<source>Insert Page</source>
<translation>ページを挿入</translation>
</message>
<message>
- <location line="-849"/>
+ <location line="-856"/>
<source>tab</source>
<translation>タブ</translation>
</message>
<message>
- <location line="+204"/>
+ <location line="+209"/>
<source>Change Tab order</source>
<translation>タブ順を変更</translation>
</message>
@@ -598,7 +604,7 @@ ate the goose who was loose.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+94"/>
+ <location line="+95"/>
<source>Change Layout Item Geometry</source>
<translation>レイアウトアイテムの座標を変更</translation>
</message>
@@ -607,7 +613,7 @@ ate the goose who was loose.</source>
<translation type="obsolete">行を挿入</translation>
</message>
<message>
- <location line="+569"/>
+ <location line="+576"/>
<source>Change Table Contents</source>
<translation>テーブルの内容を変更</translation>
</message>
@@ -649,7 +655,7 @@ ate the goose who was loose.</source>
<translation>ツールバーを削除</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1125"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1161"/>
<source>Set action text</source>
<translation>アクションのテキストを設定</translation>
</message>
@@ -660,7 +666,7 @@ ate the goose who was loose.</source>
</message>
<message>
<location line="+89"/>
- <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+861"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+891"/>
<source>Move action</source>
<translation>アクションを移動</translation>
</message>
@@ -725,12 +731,12 @@ ate the goose who was loose.</source>
</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+172"/>
+ <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+202"/>
<source>Change signals/slots</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="-861"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="-867"/>
<source>Delete Subwindow</source>
<translation type="unfinished"></translation>
</message>
@@ -750,7 +756,7 @@ ate the goose who was loose.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+195"/>
+ <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+225"/>
<source>Create button group</source>
<translation type="unfinished"></translation>
</message>
@@ -771,7 +777,7 @@ ate the goose who was loose.</source>
</message>
<message>
<location line="+8"/>
- <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+373"/>
+ <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+458"/>
<source>Add &apos;%1&apos; to &apos;%2&apos;</source>
<extracomment>Command description for adding buttons to a QButtonGroup</extracomment>
<translation type="unfinished"></translation>
@@ -788,23 +794,23 @@ ate the goose who was loose.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+318"/>
+ <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+349"/>
<source>Morph %1/&apos;%2&apos; into %3</source>
<extracomment>MorphWidgetCommand description</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_command2.cpp" line="+124"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_command2.cpp" line="+154"/>
<source>Change layout of &apos;%1&apos; from %2 to %3</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+25"/>
+ <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+55"/>
<source>Change script</source>
<translation type="unfinished">スクリプトを変更</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1176"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1209"/>
<source>Changed &apos;%1&apos; of &apos;%2&apos;</source>
<translation type="unfinished"></translation>
</message>
@@ -878,7 +884,7 @@ ate the goose who was loose.</source>
<context>
<name>DPI_Chooser</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+39"/>
+ <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+69"/>
<source>Standard (96 x 96)</source>
<extracomment>Embedded device standard screen resolution</extracomment>
<translation type="unfinished"></translation>
@@ -899,7 +905,7 @@ ate the goose who was loose.</source>
<context>
<name>Designer</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+409"/>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+439"/>
<source>Qt Designer</source>
<translation>Qt Designer</translation>
</message>
@@ -979,7 +985,7 @@ The old form has been untouched, but you will have to save this form under a new
<translation type="obsolete">このファイルは Qt-%1 の Designer で作成されたものですが、読めませんでした:&lt;br&gt;%2&lt;br&gt;&lt;b&gt;uic3 -convert&lt;/b&gt; を実行して、Qt 4 の UI フォーマットに変換してください。</translation>
</message>
<message>
- <location line="+735"/>
+ <location line="+746"/>
<source>Custom Widgets</source>
<translation>カスタムウィジェット</translation>
</message>
@@ -989,7 +995,7 @@ The old form has been untouched, but you will have to save this form under a new
<translation>格上げされたウィジェット</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+602"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+682"/>
<source>Unable to launch %1.</source>
<translation>%1 を起動できませんでした。</translation>
</message>
@@ -1023,7 +1029,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>DesignerMetaEnum</name>
<message>
- <location line="-463"/>
+ <location line="-513"/>
<source>%1 is not a valid enumeration value of &apos;%2&apos;.</source>
<translation type="unfinished"></translation>
</message>
@@ -1044,7 +1050,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>DeviceProfile</name>
<message>
- <location filename="../tools/designer/src/lib/shared/deviceprofile.cpp" line="+367"/>
+ <location filename="../tools/designer/src/lib/shared/deviceprofile.cpp" line="+397"/>
<source>&apos;%1&apos; is not a number.</source>
<extracomment>Reading a number for an embedded device profile</extracomment>
<translation type="unfinished"></translation>
@@ -1086,7 +1092,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>DeviceSkin</name>
<message>
- <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+49"/>
+ <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/>
<source>The image file &apos;%1&apos; could not be loaded.</source>
<translation type="unfinished"></translation>
</message>
@@ -1144,66 +1150,16 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>EmbeddedOptionsControl</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="+130"/>
- <source>None</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+4"/>
- <source>Add a profile</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+6"/>
- <source>Edit the selected profile</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+4"/>
- <source>Delete the selected profile</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+22"/>
- <source>Add Profile</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+7"/>
- <source>New profile</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+35"/>
- <source>Edit Profile</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+26"/>
- <source>Delete Profile</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+1"/>
- <source>Would you like to delete the profile &apos;%1&apos;?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+42"/>
+ <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="+311"/>
<source>&lt;html&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Font&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%1, %2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Style&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Resolution&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%4 x %5&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/html&gt;</source>
<extracomment>Format embedded device profile description</extracomment>
<translation type="unfinished"></translation>
</message>
- <message>
- <location line="+13"/>
- <source>Default</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>EmbeddedOptionsPage</name>
<message>
- <location line="+90"/>
+ <location line="+103"/>
<source>Embedded Design</source>
<extracomment>Tab in preferences dialog</extracomment>
<translation type="unfinished"></translation>
@@ -1218,7 +1174,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation>フォント</translation>
</message>
@@ -1246,7 +1202,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>FontPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+32"/>
+ <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+62"/>
<source>PreferDefault</source>
<translation type="unfinished"></translation>
</message>
@@ -1269,7 +1225,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>FormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+321"/>
+ <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+351"/>
<source>Invalid stretch value for &apos;%1&apos;: &apos;%2&apos;</source>
<extracomment>Parsing layout stretch values</extracomment>
<translation type="unfinished"></translation>
@@ -1284,7 +1240,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>FormEditorOptionsPage</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="+61"/>
+ <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="+91"/>
<source>%1 %</source>
<translation type="unfinished"></translation>
</message>
@@ -1351,7 +1307,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>FormWindow</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1669"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1705"/>
<source>Unexpected element &lt;%1&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -1427,7 +1383,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>IconSelector</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+321"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+353"/>
<source>All Pixmaps (</source>
<translation type="unfinished">全てのピックスマップ (</translation>
</message>
@@ -1435,7 +1391,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>ItemPropertyBrowser</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+36"/>
+ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+66"/>
<source>XX Icon Selected off</source>
<extracomment>Sample string to determinate the width for the first column of the list item property browser</extracomment>
<translation type="unfinished"></translation>
@@ -1444,7 +1400,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>LanguageResourceDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-234"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-235"/>
<source>Choose Resource</source>
<translation type="unfinished"></translation>
</message>
@@ -1459,7 +1415,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>MainWindowBase</name>
<message>
- <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+89"/>
+ <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+119"/>
<source>Main</source>
<extracomment>Not currently used (main tool bar)</extracomment>
<translation type="unfinished"></translation>
@@ -1493,7 +1449,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>NewForm</name>
<message>
- <location filename="../tools/designer/src/designer/newform.cpp" line="+49"/>
+ <location filename="../tools/designer/src/designer/newform.cpp" line="+79"/>
<source>C&amp;reate</source>
<translation>作成(&amp;R)</translation>
</message>
@@ -1562,7 +1518,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>NewFormWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+465"/>
+ <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+495"/>
<source>Unable to open the form template file &apos;%1&apos;: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -1570,7 +1526,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>ObjectInspectorModel</name>
<message>
- <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+331"/>
+ <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+364"/>
<source>Object</source>
<translation type="unfinished">オブジェクト</translation>
</message>
@@ -1580,7 +1536,7 @@ The old form has been untouched, but you will have to save this form under a new
<translation type="unfinished">クラス</translation>
</message>
<message>
- <location line="+34"/>
+ <location line="+35"/>
<source>separator</source>
<translation type="unfinished">セパレータ</translation>
</message>
@@ -1593,7 +1549,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>ObjectNameDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+132"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+162"/>
<source>Change Object Name</source>
<translation type="unfinished">オブジェクト名を変更</translation>
</message>
@@ -1651,47 +1607,11 @@ There&apos;s nothing more here. You should get back to work.</source>
</message>
</context>
<context>
- <name>qdesigner_internal::PluginDialog</name>
+ <name>PluginDialog</name>
<message>
- <location filename="../tools/designer/src/designer/plugindialog.cpp" line="+40"/>
- <source>Components</source>
- <translation>コンポーネント</translation>
- </message>
- <message>
- <location line="+13"/>
- <location filename="../tools/designer/src/designer/plugindialog.ui"/>
+ <location filename="../tools/designer/src/lib/shared/plugindialog.ui"/>
<source>Plugin Information</source>
- <translation>プラグイン情報</translation>
- </message>
- <message>
- <location line="+4"/>
- <source>Refresh</source>
- <translation>リフレッシュ</translation>
- </message>
- <message>
- <location line="+1"/>
- <source>Scan for newly installed custom widget plugins.</source>
- <translation>新しくインストールされたカスタムウィジェットプラグインをスキャンします。</translation>
- </message>
- <message>
- <location line="+48"/>
- <source>Qt Designer couldn&apos;t find any plugins</source>
- <translation>プラグインは見つかりませんでした</translation>
- </message>
- <message>
- <location line="+3"/>
- <source>Qt Designer found the following plugins</source>
- <translation>以下のプラグインが見つかりました</translation>
- </message>
- <message>
- <location line="+55"/>
- <source>New custom widget plugins have been found.</source>
- <translation>新しいカスタムウィジェットのプラグインが見つかりました。</translation>
- </message>
- <message>
- <location filename="../tools/designer/src/designer/plugindialog.ui"/>
- <source>TextLabel</source>
- <translation>テキストラベル</translation>
+ <translation type="unfinished">プラグイン情報</translation>
</message>
<message>
<location/>
@@ -1742,7 +1662,7 @@ There&apos;s nothing more here. You should get back to work.</source>
<context>
<name>PreviewConfigurationWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+125"/>
+ <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+155"/>
<source>Default</source>
<translation type="unfinished"></translation>
</message>
@@ -1790,7 +1710,7 @@ There&apos;s nothing more here. You should get back to work.</source>
<context>
<name>PromotionModel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+86"/>
+ <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+116"/>
<source>Not used</source>
<extracomment>Usage of promoted widgets</extracomment>
<translation type="unfinished">使用されません</translation>
@@ -1799,7 +1719,7 @@ There&apos;s nothing more here. You should get back to work.</source>
<context>
<name>Q3WizardContainer</name>
<message>
- <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="+142"/>
+ <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="+172"/>
<location line="+5"/>
<source>Page</source>
<translation>ページ</translation>
@@ -1808,7 +1728,7 @@ There&apos;s nothing more here. You should get back to work.</source>
<context>
<name>QAbstractFormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+176"/>
+ <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+206"/>
<source>Unexpected element &lt;%1&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -1854,7 +1774,7 @@ This indicates an inconsistency in the ui-file.</source>
<translation type="unfinished">タブストップの適用中: ウィジェット &apos;%1&apos; が見つかりません。</translation>
</message>
<message>
- <location line="+734"/>
+ <location line="+749"/>
<source>Invalid QButtonGroup reference &apos;%1&apos; referenced by &apos;%2&apos;.</source>
<translation type="unfinished"></translation>
</message>
@@ -1900,7 +1820,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QAxWidgetPlugin</name>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+45"/>
+ <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+75"/>
<source>ActiveX control</source>
<translation type="unfinished">ActiveX コントロール</translation>
</message>
@@ -1913,7 +1833,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QAxWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+89"/>
+ <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+119"/>
<source>Set Control</source>
<translation type="unfinished">コントロールを設定</translation>
</message>
@@ -1936,7 +1856,7 @@ 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="+53"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="+83"/>
<source>%1 is not a promoted class.</source>
<translation>%1 は格上げされたクラスではありません。</translation>
</message>
@@ -1986,7 +1906,7 @@ This indicates an inconsistency in the ui-file.</source>
<translation type="unfinished">空のインクルードファイルを設定できません。</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+58"/>
+ <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+88"/>
<source>Exception at line %1: %2</source>
<translation type="unfinished">%1 行目で例外が発生: %2</translation>
</message>
@@ -2006,7 +1926,7 @@ Script: %3</source>
<context>
<name>QDesigner</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+111"/>
+ <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+141"/>
<source>%1 - warning</source>
<translation type="unfinished">%1 - 警告</translation>
</message>
@@ -2031,7 +1951,7 @@ Script: %3</source>
<context>
<name>QDesignerActions</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+152"/>
+ <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+178"/>
<source>Edit Widgets</source>
<translation>ウィジェットを編集</translation>
</message>
@@ -2100,7 +2020,7 @@ Script: %3</source>
<translation type="obsolete">CTRL+O</translation>
</message>
<message>
- <location line="+290"/>
+ <location line="+293"/>
<source>Clear &amp;Menu</source>
<translation>メニューをクリア(&amp;M)</translation>
</message>
@@ -2109,7 +2029,7 @@ Script: %3</source>
<translation type="obsolete">CTRL+S</translation>
</message>
<message>
- <location line="-229"/>
+ <location line="-232"/>
<source>CTRL+SHIFT+S</source>
<translation>CTRL+SHIFT+S</translation>
</message>
@@ -2166,17 +2086,17 @@ Script: %3</source>
</message>
<message>
<location line="+6"/>
- <location line="+598"/>
+ <location line="+601"/>
<source>About Qt Designer</source>
<translation>Qt Designer について</translation>
</message>
<message>
- <location line="-592"/>
+ <location line="-595"/>
<source>About Qt</source>
<translation>Qt について</translation>
</message>
<message>
- <location line="+118"/>
+ <location line="+121"/>
<location line="+197"/>
<source>Open Form</source>
<translation>フォームを開く</translation>
@@ -2197,7 +2117,7 @@ Script: %3</source>
<translation type="obsolete">保存</translation>
</message>
<message>
- <location line="-612"/>
+ <location line="-615"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>%1 はすでに存在します。上書きしますか?</translation>
@@ -2218,7 +2138,7 @@ Do you want to replace it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+237"/>
+ <location line="+240"/>
<source>&amp;Recent Forms</source>
<translation type="unfinished">最近使用したフォーム(&amp;R)</translation>
</message>
@@ -2266,7 +2186,7 @@ Do you want to update the file location or generate a new form?</source>
<translation>ファイルをオープンできませんでした</translation>
</message>
<message>
- <location line="+532"/>
+ <location line="+494"/>
<source>Saved image %1.</source>
<translation type="unfinished"></translation>
</message>
@@ -2276,7 +2196,7 @@ Do you want to update the file location or generate a new form?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+49"/>
+ <location line="+52"/>
<source>Printed %1.</source>
<translation type="unfinished"></translation>
</message>
@@ -2289,7 +2209,7 @@ Would you like to retry or change your file?</source>
リトライしますか、それともファイルを変更しますか?</translation>
</message>
<message>
- <location line="-589"/>
+ <location line="-554"/>
<source>Select New File</source>
<translation>新しいファイルを選択</translation>
</message>
@@ -2307,7 +2227,7 @@ Would you like to retry?</source>
リトライしますか?</translation>
</message>
<message>
- <location line="+239"/>
+ <location line="+201"/>
<source>&amp;Close Preview</source>
<translation>プレビューを閉じる(&amp;C)</translation>
</message>
@@ -2316,7 +2236,7 @@ Would you like to retry?</source>
<translation type="obsolete">フォーム設定 - %1</translation>
</message>
<message>
- <location line="-935"/>
+ <location line="-900"/>
<source>&amp;New...</source>
<translation type="unfinished"></translation>
</message>
@@ -2347,12 +2267,12 @@ Would you like to retry?</source>
</message>
<message>
<location line="+1"/>
- <location line="+931"/>
+ <location line="+896"/>
<source>&amp;Close</source>
<translation type="unfinished">閉じる(&amp;C)</translation>
</message>
<message>
- <location line="-930"/>
+ <location line="-895"/>
<source>Save &amp;Image...</source>
<translation type="unfinished"></translation>
</message>
@@ -2367,7 +2287,7 @@ Would you like to retry?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+416"/>
+ <location line="+419"/>
<location line="+248"/>
<source>Save Form As</source>
<translation type="unfinished"></translation>
@@ -2387,7 +2307,7 @@ Would you like to retry?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+277"/>
+ <location line="+239"/>
<location line="+23"/>
<source>The backup file %1 could not be written.</source>
<translation type="unfinished">バックアップファイル %1 に書き込めませんでした。</translation>
@@ -2408,12 +2328,12 @@ Would you like to retry?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-613"/>
+ <location line="-575"/>
<source>Code generation failed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+637"/>
+ <location line="+599"/>
<source>Image files (*.%1)</source>
<translation type="unfinished"></translation>
</message>
@@ -2429,8 +2349,8 @@ Would you like to retry?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-336"/>
- <location line="+66"/>
+ <location line="-298"/>
+ <location line="+34"/>
<source>Assistant</source>
<translation type="unfinished"></translation>
</message>
@@ -2438,7 +2358,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerAppearanceOptionsPage</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="+93"/>
+ <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="+138"/>
<source>Appearance</source>
<extracomment>Tab in preferences dialog</extracomment>
<translation type="unfinished"></translation>
@@ -2447,7 +2367,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerAppearanceOptionsWidget</name>
<message>
- <location line="-39"/>
+ <location line="-53"/>
<source>Docked Window</source>
<translation type="unfinished">ドックウィンドウ</translation>
</message>
@@ -2457,7 +2377,7 @@ Would you like to retry?</source>
<translation type="unfinished">複数のトップレベルウィンドウ</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+5"/>
<source>Toolwindow Font</source>
<translation type="unfinished">ツールウィンドウフォント</translation>
</message>
@@ -2475,7 +2395,7 @@ Would you like to retry?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+149"/>
+ <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+179"/>
<source>Control loaded</source>
<translation type="unfinished">コントロールがロードされました</translation>
</message>
@@ -2488,7 +2408,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerFormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+58"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+88"/>
<source>Script errors occurred:</source>
<translation type="unfinished">スクリプトエラーが発生しました:</translation>
</message>
@@ -2506,7 +2426,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerFormWindow</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="+187"/>
+ <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="+217"/>
<source>%1 - %2[*]</source>
<translation>%1 - %2[*]</translation>
</message>
@@ -2529,7 +2449,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerMenu</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1154"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1160"/>
<source>Type Here</source>
<translation>ここに入力</translation>
</message>
@@ -2539,7 +2459,7 @@ Would you like to retry?</source>
<translation>セパレータを追加</translation>
</message>
<message>
- <location line="+366"/>
+ <location line="+372"/>
<source>Insert separator</source>
<translation>セパレータを挿入</translation>
</message>
@@ -2598,7 +2518,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerPluginManager</name>
<message>
- <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="+197"/>
+ <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="+249"/>
<source>An XML error was encountered when parsing the XML of the custom widget %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2636,7 +2556,7 @@ Would you like to retry?</source>
<translation type="obsolete">レイアウト</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+717"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+747"/>
<source>Dynamic Properties</source>
<translation>ダイナミックプロパティ</translation>
</message>
@@ -2644,18 +2564,18 @@ Would you like to retry?</source>
<context>
<name>QDesignerResource</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="-235"/>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="-246"/>
<source>The layout type &apos;%1&apos; is not supported, defaulting to grid.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+331"/>
+ <location line="+342"/>
<source>The container extension of the widget &apos;%1&apos; (%2) returned a widget not managed by Designer &apos;%3&apos; (%4) when queried for page #%5.
Container pages should only be added by specifying them in XML returned by the domXml() method of the custom widget.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+598"/>
+ <location line="+599"/>
<source>Unexpected element &lt;%1&gt;</source>
<extracomment>Parsing clipboard contents</extracomment>
<translation type="unfinished"></translation>
@@ -2683,7 +2603,7 @@ 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="+53"/>
+ <location filename="../tools/designer/src/lib/shared/shared_settings.cpp" line="+83"/>
<source>The template path %1 could not be created.</source>
<translation type="unfinished">テンプレートのパス %1 を作成できませんでした。</translation>
</message>
@@ -2835,7 +2755,7 @@ 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="+160"/>
+ <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="+190"/>
<source>Property Editor</source>
<translation type="unfinished">プロパティエディタ</translation>
</message>
@@ -2872,7 +2792,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="obsolete">ウィジェットボックス</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="+318"/>
+ <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="+349"/>
<source>An error has been encountered at line %1 of %2: %3</source>
<translation type="unfinished"></translation>
</message>
@@ -2895,7 +2815,7 @@ 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="+169"/>
+ <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="+199"/>
<source>&amp;File</source>
<translation>ファイル(&amp;F)</translation>
</message>
@@ -3014,7 +2934,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="obsolete">前回使用したときに Designer は正しく終了されませんでした。バックアップファイルが存在します。ロードしますか?</translation>
</message>
<message>
- <location line="+112"/>
+ <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>
@@ -3024,7 +2944,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation>ファイル &lt;b&gt;%1&lt;/b&gt; は、有効な Designer の UI ファイルではありません。</translation>
</message>
<message numerus="yes">
- <location line="-260"/>
+ <location line="-259"/>
<source>There are %n forms with unsaved changes. Do you want to review these changes before quitting?</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -3034,7 +2954,7 @@ 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="+130"/>
+ <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="+160"/>
<source>An empty class name was passed on to %1 (object name: &apos;%2&apos;).</source>
<extracomment>Empty class name passed to widget factory method</extracomment>
<translation type="unfinished"></translation>
@@ -3055,7 +2975,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="unfinished">レイアウトタイプ &apos;%1&apos; は、サポートされていません。</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="+76"/>
+ <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="+106"/>
<source>The set-type property %1 could not be read.</source>
<translation type="unfinished">Set型のプロパティ %1 を読めませんでした。</translation>
</message>
@@ -3075,7 +2995,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="unfinished">プロパティ %1 を書き込めませんでした。%2 という型はサポートされていません。</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/uilib/properties_p.h" line="+102"/>
+ <location filename="../tools/designer/src/lib/uilib/properties_p.h" line="+132"/>
<source>The enumeration-value &apos;%1&apos; is invalid. The default value &apos;%2&apos; will be used instead.</source>
<translation type="unfinished"></translation>
</message>
@@ -3325,7 +3245,7 @@ Script: %3</source>
<context>
<name>QStackedWidgetEventFilter</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="+164"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="+194"/>
<source>Previous Page</source>
<translation type="unfinished">前のページ</translation>
</message>
@@ -3386,7 +3306,7 @@ Script: %3</source>
<context>
<name>QTabWidgetEventFilter</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="+59"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="+89"/>
<source>Delete</source>
<translation type="unfinished">削除</translation>
</message>
@@ -3414,7 +3334,7 @@ Script: %3</source>
<context>
<name>QToolBoxHelper</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="+34"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="+64"/>
<source>Delete Page</source>
<translation type="unfinished">ページを削除</translation>
</message>
@@ -3452,7 +3372,7 @@ Script: %3</source>
<context>
<name>QtBoolEdit</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+198"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+226"/>
<location line="+10"/>
<location line="+25"/>
<source>True</source>
@@ -3468,7 +3388,7 @@ Script: %3</source>
<context>
<name>QtBoolPropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1469"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1477"/>
<source>True</source>
<translation type="unfinished"></translation>
</message>
@@ -3481,7 +3401,7 @@ Script: %3</source>
<context>
<name>QtCharEdit</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1573"/>
+ <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1601"/>
<source>Clear Char</source>
<translation type="unfinished"></translation>
</message>
@@ -3497,7 +3417,7 @@ Script: %3</source>
<context>
<name>QtColorPropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4769"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4777"/>
<source>Red</source>
<translation type="unfinished">赤</translation>
</message>
@@ -3677,7 +3597,7 @@ Script: %3</source>
<context>
<name>QtGradientEditor</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+405"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+435"/>
<source>Start X</source>
<translation type="unfinished">始点の X 座標</translation>
</message>
@@ -3956,7 +3876,7 @@ Script: %3</source>
<context>
<name>QtGradientStopsWidget</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+919"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+949"/>
<source>New Stop</source>
<translation type="unfinished">新しい終点</translation>
</message>
@@ -3998,7 +3918,7 @@ Script: %3</source>
<context>
<name>QtGradientView</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+77"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+107"/>
<source>Grad</source>
<translation type="unfinished"></translation>
</message>
@@ -4049,7 +3969,7 @@ Script: %3</source>
<translation type="obsolete">グラデーションを編集</translation>
</message>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.h" line="+32"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.h" line="+62"/>
<location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui"/>
<source>Select Gradient</source>
<translation type="unfinished"></translation>
@@ -4066,7 +3986,7 @@ Script: %3</source>
<context>
<name>QtLocalePropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-3553"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-3561"/>
<source>%1, %2</source>
<translation type="unfinished"></translation>
</message>
@@ -4133,22 +4053,22 @@ Script: %3</source>
<context>
<name>QtRectFPropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1705"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1716"/>
<source>[(%1, %2), %3 x %4]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+155"/>
+ <location line="+156"/>
<source>X</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+9"/>
+ <location line="+8"/>
<source>Y</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+9"/>
+ <location line="+8"/>
<source>Width</source>
<translation type="unfinished"></translation>
</message>
@@ -4161,22 +4081,22 @@ Script: %3</source>
<context>
<name>QtRectPropertyManager</name>
<message>
- <location line="-610"/>
+ <location line="-614"/>
<source>[(%1, %2), %3 x %4]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+119"/>
+ <location line="+120"/>
<source>X</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+8"/>
+ <location line="+7"/>
<source>Y</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+8"/>
+ <location line="+7"/>
<source>Width</source>
<translation type="unfinished"></translation>
</message>
@@ -4189,7 +4109,7 @@ Script: %3</source>
<context>
<name>QtResourceEditorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="+46"/>
+ <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="+76"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation type="unfinished">%1 はすでに存在します。上書きしますか?</translation>
@@ -4200,7 +4120,7 @@ Do you want to replace it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+900"/>
+ <location line="+902"/>
<source>%1 [read-only]</source>
<translation type="unfinished"></translation>
</message>
@@ -4469,7 +4389,7 @@ to
<context>
<name>QtResourceView</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+404"/>
+ <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+435"/>
<source>Size: %1 x %2
%3</source>
<translation type="unfinished"></translation>
@@ -4501,7 +4421,7 @@ to
<context>
<name>QtSizeFPropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-532"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-537"/>
<source>%1 x %2</source>
<translation type="unfinished"></translation>
</message>
@@ -4519,12 +4439,18 @@ to
<context>
<name>QtSizePolicyPropertyManager</name>
<message>
- <location line="+1707"/>
+ <location line="+1719"/>
+ <location line="+1"/>
+ <source>&lt;Invalid&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
<source>[%1, %2, %3, %4]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+49"/>
+ <location line="+45"/>
<source>Horizontal Policy</source>
<translation type="unfinished"></translation>
</message>
@@ -4547,7 +4473,7 @@ to
<context>
<name>QtSizePropertyManager</name>
<message>
- <location line="-2288"/>
+ <location line="-2298"/>
<source>%1 x %2</source>
<translation type="unfinished"></translation>
</message>
@@ -4565,7 +4491,7 @@ to
<context>
<name>QtToolBarDialog</name>
<message>
- <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1759"/>
+ <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1789"/>
<source>&lt; S E P A R A T O R &gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -4673,7 +4599,7 @@ to
<context>
<name>QtTreePropertyBrowser</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+407"/>
+ <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+442"/>
<source>Property</source>
<translation type="unfinished">プロパティ</translation>
</message>
@@ -4686,7 +4612,7 @@ to
<context>
<name>SaveFormAsTemplate</name>
<message>
- <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+42"/>
+ <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+72"/>
<source>Add path...</source>
<translation>パスを追加...</translation>
</message>
@@ -4751,7 +4677,7 @@ Do you want overwrite the template?</source>
<context>
<name>ScriptErrorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+33"/>
+ <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+63"/>
<source>An error occurred while running the scripts for &quot;%1&quot;:
</source>
<translation type="unfinished">&quot;%1&quot; のためにスクリプトを実行していてエラーが発生しました:
@@ -4770,11 +4696,21 @@ Do you want overwrite the template?</source>
<source>Select signal</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location/>
+ <source>signal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location/>
+ <source>class</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>SignalSlotConnection</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="-311"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="-358"/>
<source>SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4)</source>
<translation type="unfinished"></translation>
</message>
@@ -4815,7 +4751,7 @@ Do you want overwrite the template?</source>
<context>
<name>Spacer</name>
<message>
- <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="+245"/>
+ <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="+275"/>
<source>Horizontal Spacer &apos;%1&apos;, %2 x %3</source>
<translation type="unfinished"></translation>
</message>
@@ -4828,7 +4764,7 @@ Do you want overwrite the template?</source>
<context>
<name>TemplateOptionsPage</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="+126"/>
+ <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="+156"/>
<source>Template Paths</source>
<extracomment>Tab in preferences dialog</extracomment>
<translation type="unfinished"></translation>
@@ -4870,17 +4806,16 @@ Do you want overwrite the template?</source>
<context>
<name>VersionDialog</name>
<message>
- <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+141"/>
+ <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+171"/>
<source>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;&lt;br/&gt;Version %2</source>
<translation>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;&lt;br/&gt;バージョン %2</translation>
</message>
<message>
- <location line="+2"/>
<source> Open Source Edition</source>
- <translation> オープンソース版</translation>
+ <translation type="obsolete"> オープンソース版</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+1"/>
<source>Qt Designer</source>
<translation>Qt Designer</translation>
</message>
@@ -4890,34 +4825,23 @@ Do you want overwrite the template?</source>
<translation>&lt;br/&gt;Qt Designer は、Qt アプリケーションをデザインするための GUI ツールです。&lt;br/&gt;</translation>
</message>
<message>
- <location line="+4"/>
- <source>This version of Qt Designer is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel.html&lt;/a&gt; for an overview of Qt licensing.&lt;br/&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>This version of Qt Designer is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;http://qtsoftware.com/company/model.html&lt;/a&gt; for an overview of Qt licensing.&lt;br/&gt;</source>
<translation type="obsolete">このバージョンの Qt Designer は、オープンソースアプリケーションを開発するための Qt オープンソース版の一部です。Qt は、クロスプラットフォームなアプリケーションを開発するための包括的な C++ のフレームワークです。&lt;br/&gt;&lt;br/&gt;独占的な(ソースが隠された)アプリケーションを開発するには、Qt の商用ライセンスが必要です。Qt のライセンスの概要については &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;http://qtsoftware.com/company/model.html&lt;/a&gt; をご覧ください。&lt;br/&gt;</translation>
</message>
<message>
- <location line="+12"/>
<source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.&lt;br/&gt;</source>
- <translation>このプログラムは、Qt 商用ライセンス契約書の定める条件の下であなたの利用が認められています。詳細は、ソフトウェアと一緒に配布される LICENSE ファイルを参照してください。&lt;br/&gt;</translation>
+ <translation type="obsolete">このプログラムは、Qt 商用ライセンス契約書の定める条件の下であなたの利用が認められています。詳細は、ソフトウェアと一緒に配布される LICENSE ファイルを参照してください。&lt;br/&gt;</translation>
</message>
<message>
<location line="+5"/>
<source>%1&lt;br/&gt;%2&lt;br/&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt; </source>
<translation>%1&lt;br/&gt;%2&lt;br/&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 全ての権利は保護されています。&lt;br/&gt;&lt;br/&gt;プログラムは「設計」、「市場性」および「特定の目的への適合性」も含む、あらゆる種類の「保証がなく」、「そのままで」提供されます。&lt;br/&gt;</translation>
</message>
- <message>
- <location line="-9"/>
- <source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.&lt;br/&gt;</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>WidgetDataBase</name>
<message>
- <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="+786"/>
+ <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="+814"/>
<source>The file contains a custom widget &apos;%1&apos; whose base class (%2) differs from the current entry in the widget database (%3). The widget database is left unchanged.</source>
<translation type="unfinished"></translation>
</message>
@@ -4925,22 +4849,22 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::ActionEditor</name>
<message>
- <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+111"/>
+ <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+143"/>
<source>Actions</source>
<translation>アクション</translation>
</message>
<message>
- <location line="-15"/>
+ <location line="-16"/>
<source>New...</source>
<translation>新規...</translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+7"/>
<source>Delete</source>
<translation>削除</translation>
</message>
<message>
- <location line="+305"/>
+ <location line="+307"/>
<source>New action</source>
<translation>新しいアクション</translation>
</message>
@@ -4958,12 +4882,17 @@ Do you want overwrite the template?</source>
<translation type="obsolete">その機能は実装されていません!</translation>
</message>
<message>
- <location line="-408"/>
+ <location line="-411"/>
<source>Edit...</source>
<translation type="unfinished">編集...</translation>
</message>
<message>
<location line="+1"/>
+ <source>Go to slot...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
<source>Copy</source>
<translation type="unfinished"></translation>
</message>
@@ -4983,7 +4912,7 @@ Do you want overwrite the template?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+52"/>
+ <location line="+54"/>
<source>Configure Action Editor</source>
<translation type="unfinished"></translation>
</message>
@@ -4998,7 +4927,7 @@ Do you want overwrite the template?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+406"/>
+ <location line="+412"/>
<source>Remove actions</source>
<translation type="unfinished"></translation>
</message>
@@ -5008,7 +4937,7 @@ Do you want overwrite the template?</source>
<translation type="unfinished">アクション &apos;%1&apos; を消去</translation>
</message>
<message>
- <location line="+183"/>
+ <location line="+186"/>
<source>Used In</source>
<translation type="unfinished"></translation>
</message>
@@ -5023,7 +4952,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::ActionModel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+64"/>
+ <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+95"/>
<source>Name</source>
<translation type="unfinished">名前</translation>
</message>
@@ -5056,7 +4985,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::BuddyEditor</name>
<message>
- <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+235"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+265"/>
<source>Add buddy</source>
<translation>buddy を追加</translation>
</message>
@@ -5088,7 +5017,7 @@ 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="+47"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+77"/>
<source>Edit Buddies</source>
<translation>buddy を編集</translation>
</message>
@@ -5096,7 +5025,7 @@ 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="+30"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+60"/>
<source>Edit Buddies</source>
<translation>buddy を編集</translation>
</message>
@@ -5150,7 +5079,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::CodeDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+69"/>
+ <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+99"/>
<source>Save...</source>
<translation type="unfinished"></translation>
</message>
@@ -5208,7 +5137,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::ColorAction</name>
<message>
- <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+220"/>
+ <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+250"/>
<source>Text Color</source>
<translation type="unfinished"></translation>
</message>
@@ -5216,7 +5145,7 @@ 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="+42"/>
+ <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+72"/>
<source>Edit Items...</source>
<translation>アイテムを編集...</translation>
</message>
@@ -5270,7 +5199,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::ConnectionModel</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="-470"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="-465"/>
<source>Sender</source>
<translation>発信者</translation>
</message>
@@ -5290,7 +5219,7 @@ Do you want overwrite the template?</source>
<translation>スロット</translation>
</message>
<message>
- <location line="+97"/>
+ <location line="+90"/>
<source>&lt;sender&gt;</source>
<translation>&lt;発信者&gt;</translation>
</message>
@@ -5331,7 +5260,7 @@ Do you want overwrite the template?</source>
<translation type="obsolete">ページを削除</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+82"/>
+ <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+112"/>
<source>Insert Page Before Current Page</source>
<translation>このページの前にページを挿入</translation>
</message>
@@ -5394,7 +5323,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::DesignerPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+614"/>
+ <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+644"/>
<location line="+6"/>
<source>AlignLeft</source>
<translation type="unfinished"></translation>
@@ -5519,7 +5448,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::DeviceProfileDialog</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+33"/>
+ <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+63"/>
<source>Device Profiles (*.%1)</source>
<translation type="unfinished"></translation>
</message>
@@ -5662,9 +5591,62 @@ Do you want overwrite the template?</source>
</message>
</context>
<context>
+ <name>qdesigner_internal::EmbeddedOptionsControl</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="-260"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Add a profile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Edit the selected profile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Delete the selected profile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Add Profile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>New profile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Edit Profile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Delete Profile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Would you like to delete the profile &apos;%1&apos;?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>Default</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>qdesigner_internal::FilterWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+155"/>
+ <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+185"/>
<source>&lt;Filter&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -5691,7 +5673,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::FormEditor</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+160"/>
+ <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+190"/>
<source>Resource File Changed</source>
<translation type="unfinished"></translation>
</message>
@@ -5712,7 +5694,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::FormWindow</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1262"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1267"/>
<source>Edit contents</source>
<translation>内容を編集</translation>
</message>
@@ -5726,7 +5708,7 @@ Do you want overwrite the template?</source>
<translation type="obsolete">ウィジェット &apos;%1 を挿入</translation>
</message>
<message>
- <location line="+836"/>
+ <location line="+841"/>
<source>Resize</source>
<translation>サイズ変更</translation>
</message>
@@ -5762,13 +5744,13 @@ and then paste again.</source>
<translation>レイアウト</translation>
</message>
<message>
- <location line="+490"/>
+ <location line="+493"/>
<location line="+55"/>
<source>Drop widget</source>
<translation>ウィジェットの貼り付け</translation>
</message>
<message numerus="yes">
- <location line="-1052"/>
+ <location line="-1055"/>
<source>Paste %n action(s)</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -5817,7 +5799,7 @@ and then paste again.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+573"/>
+ <location line="+576"/>
<source>A QMainWindow-based form does not contain a central widget.</source>
<translation type="unfinished"></translation>
</message>
@@ -5825,7 +5807,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::FormWindowBase</name>
<message>
- <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+363"/>
+ <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+397"/>
<source>Delete</source>
<translation>削除</translation>
</message>
@@ -5838,7 +5820,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::FormWindowManager</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+337"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+368"/>
<source>Cu&amp;t</source>
<translation>切り取り(&amp;T)</translation>
</message>
@@ -5920,7 +5902,7 @@ and then paste again.</source>
<translation>選択されたウィジィトのサイズを調整</translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+6"/>
<source>Lay Out &amp;Horizontally</source>
<translation>水平に並べる(&amp;H)</translation>
</message>
@@ -5980,7 +5962,7 @@ and then paste again.</source>
<translation>選択されたウィジェットをスプリッタの中で垂直方向に配置</translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+7"/>
<source>&amp;Break Layout</source>
<translation>レイアウトを破棄(&amp;B)</translation>
</message>
@@ -6010,7 +5992,7 @@ and then paste again.</source>
<translation type="unfinished">フォームの設定(&amp;S)...</translation>
</message>
<message>
- <location line="+75"/>
+ <location line="+78"/>
<source>Break Layout</source>
<translation>レイアウトを破棄する</translation>
</message>
@@ -6026,12 +6008,12 @@ and then paste again.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+324"/>
+ <location line="+341"/>
<source>Form Settings - %1</source>
<translation type="unfinished">フォーム設定 - %1</translation>
</message>
<message>
- <location line="-490"/>
+ <location line="-510"/>
<source>Removes empty columns and rows</source>
<translation type="unfinished"></translation>
</message>
@@ -6039,7 +6021,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::FormWindowSettings</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+162"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+193"/>
<source>None</source>
<translation type="unfinished"></translation>
</message>
@@ -6105,7 +6087,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::GroupBoxTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+56"/>
+ <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+86"/>
<source>Change title...</source>
<translation>タイトルを変更...</translation>
</message>
@@ -6121,7 +6103,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::IconSelector</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+210"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+211"/>
<source>The pixmap file &apos;%1&apos; cannot be read.</source>
<translation type="unfinished"></translation>
</message>
@@ -6214,7 +6196,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::ItemListEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+349"/>
+ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+358"/>
<source>Properties &amp;&lt;&lt;</source>
<translation type="unfinished"></translation>
</message>
@@ -6273,7 +6255,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::LabelTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="+59"/>
+ <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="+89"/>
<source>Change rich text...</source>
<translation>リッチテキストを変更...</translation>
</message>
@@ -6286,7 +6268,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::LineEditTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+54"/>
+ <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+84"/>
<source>Change text...</source>
<translation>テキストを変更...</translation>
</message>
@@ -6294,7 +6276,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::ListWidgetEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+75"/>
+ <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+105"/>
<source>Edit List Widget</source>
<translation>リストウィジェットを編集</translation>
</message>
@@ -6372,7 +6354,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::ListWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+41"/>
+ <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+71"/>
<source>Edit Items...</source>
<translation>アイテムを編集...</translation>
</message>
@@ -6408,7 +6390,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::MenuTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+30"/>
+ <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+60"/>
<source>Remove</source>
<translation type="unfinished">消去</translation>
</message>
@@ -6467,7 +6449,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::NewDynamicPropertyDialog</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+104"/>
+ <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+134"/>
<source>Set Property Name</source>
<translation>プロパティ名を設定</translation>
</message>
@@ -6593,7 +6575,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::NewPromotedClassPanel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+66"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+96"/>
<source>Add</source>
<translation>追加</translation>
</message>
@@ -6647,7 +6629,7 @@ Please select another name.</source>
<translation type="obsolete">セパレータ</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+727"/>
+ <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+758"/>
<source>&amp;Find in Text...</source>
<translation type="unfinished"></translation>
</message>
@@ -6663,7 +6645,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::OrderDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+83"/>
+ <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+113"/>
<source>Index %1 (%2)</source>
<translation>インデックス %1 (%2)</translation>
</message>
@@ -6752,7 +6734,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PaletteEditorButton</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+31"/>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+61"/>
<source>Change Palette</source>
<translation>パレットを変更</translation>
</message>
@@ -6760,7 +6742,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PaletteModel</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+351"/>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+381"/>
<source>Color Role</source>
<translation>色役割</translation>
</message>
@@ -6812,15 +6794,61 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PlainTextEditorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+39"/>
+ <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+69"/>
<source>Edit text</source>
<translation type="unfinished">テキストを編集</translation>
</message>
</context>
<context>
+ <name>qdesigner_internal::PluginDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="+72"/>
+ <source>Components</source>
+ <translation>コンポーネント</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Plugin Information</source>
+ <translation>プラグイン情報</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Refresh</source>
+ <translation>リフレッシュ</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Scan for newly installed custom widget plugins.</source>
+ <translation>新しくインストールされたカスタムウィジェットプラグインをスキャンします。</translation>
+ </message>
+ <message>
+ <location line="+48"/>
+ <source>Qt Designer couldn&apos;t find any plugins</source>
+ <translation>プラグインは見つかりませんでした</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Qt Designer found the following plugins</source>
+ <translation>以下のプラグインが見つかりました</translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>New custom widget plugins have been found.</source>
+ <translation>新しいカスタムウィジェットのプラグインが見つかりました。</translation>
+ </message>
+ <message>
+ <source>TextLabel</source>
+ <translation type="obsolete">テキストラベル</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation type="obsolete">1</translation>
+ </message>
+</context>
+<context>
<name>qdesigner_internal::PreviewActionGroup</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+65"/>
+ <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+95"/>
<source>%1 Style</source>
<translation type="unfinished">%1 スタイル</translation>
</message>
@@ -6862,7 +6890,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PreviewDeviceSkin</name>
<message>
- <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+188"/>
+ <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+218"/>
<source>&amp;Close</source>
<translation type="unfinished">閉じる(&amp;C)</translation>
</message>
@@ -6963,7 +6991,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PromotionTaskMenu</name>
<message>
- <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+55"/>
+ <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+85"/>
<source>Promoted widgets...</source>
<translation>格上げされたウィジェット...</translation>
</message>
@@ -6991,7 +7019,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PropertyEditor</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+222"/>
+ <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+188"/>
<source>Add Dynamic Property...</source>
<translation>ダイナミックプロパティを追加...</translation>
</message>
@@ -7026,13 +7054,13 @@ Please select another name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+534"/>
+ <location line="+533"/>
<source>Object: %1
Class: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-548"/>
+ <location line="-547"/>
<source>String...</source>
<translation type="unfinished"></translation>
</message>
@@ -7050,7 +7078,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::PropertyLineEdit</name>
<message>
- <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+58"/>
+ <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+88"/>
<source>Insert line break</source>
<translation>改行を挿入</translation>
</message>
@@ -7198,7 +7226,7 @@ Class: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+265"/>
+ <location line="+264"/>
<source>Edit ToolTip</source>
<translation type="unfinished"></translation>
</message>
@@ -7207,15 +7235,20 @@ Class: %2</source>
<source>Edit WhatsThis</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+144"/>
+ <source>no signals available</source>
+ <translation type="unfinished"></translation>
+ </message>
<message numerus="yes">
- <location line="+132"/>
+ <location line="+67"/>
<source>Set size constraint on %n widget(s)</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message>
- <location line="-403"/>
+ <location line="-481"/>
<source>Change signals/slots...</source>
<translation type="unfinished"></translation>
</message>
@@ -7258,7 +7291,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::QDesignerWidgetBox</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="+97"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="+127"/>
<location line="+13"/>
<source>Unexpected element &lt;%1&gt;</source>
<translation type="unfinished"></translation>
@@ -7650,7 +7683,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::QtGradientStopsController</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="+147"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="+177"/>
<source>H</source>
<translation type="unfinished"></translation>
</message>
@@ -8002,7 +8035,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::ScriptDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+38"/>
+ <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+68"/>
<source>Edit script</source>
<translation>スクリプトを編集</translation>
</message>
@@ -8059,7 +8092,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::SignalSlotEditorPlugin</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="+46"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="+76"/>
<source>Edit Signals/Slots</source>
<translation>シグナル/スロットを編集</translation>
</message>
@@ -8072,7 +8105,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::SignalSlotEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="+32"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="+62"/>
<source>Edit Signals/Slots</source>
<translation>シグナル/スロットを編集</translation>
</message>
@@ -8080,7 +8113,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::StatusBarTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+55"/>
+ <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+85"/>
<source>Remove</source>
<translation type="unfinished">消去</translation>
</message>
@@ -8092,7 +8125,7 @@ Class: %2</source>
<translation type="obsolete">文字列リストを変更</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+30"/>
+ <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+60"/>
<source>Change String List</source>
<translation type="unfinished"></translation>
</message>
@@ -8100,7 +8133,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::StyleSheetEditorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+71"/>
+ <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+101"/>
<source>Edit Style Sheet</source>
<translation>スタイルシートを変更</translation>
</message>
@@ -8159,7 +8192,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TabOrderEditor</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+333"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+363"/>
<source>Start from Here</source>
<translation type="unfinished"></translation>
</message>
@@ -8187,7 +8220,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TabOrderEditorPlugin</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="+47"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="+77"/>
<source>Edit Tab Order</source>
<translation>タブ順を編集</translation>
</message>
@@ -8195,7 +8228,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TabOrderEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="+31"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="+61"/>
<source>Edit Tab Order</source>
<translation>タブ順を編集</translation>
</message>
@@ -8203,7 +8236,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TableWidgetEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+41"/>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+71"/>
<source>New Column</source>
<translation>新しい列</translation>
</message>
@@ -8364,7 +8397,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TableWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+38"/>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+68"/>
<source>Edit Items...</source>
<translation>アイテムを編集...</translation>
</message>
@@ -8395,7 +8428,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TextEditTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+32"/>
+ <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+62"/>
<source>Edit HTML</source>
<translation type="unfinished"></translation>
</message>
@@ -8441,7 +8474,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::ToolBarEventFilter</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+209"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+239"/>
<source>Insert Separator</source>
<translation>セパレータを挿入</translation>
</message>
@@ -8476,7 +8509,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TreeWidgetEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+50"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+80"/>
<source>&amp;Columns</source>
<translation type="unfinished"></translation>
</message>
@@ -8686,7 +8719,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TreeWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+37"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+67"/>
<source>Edit Items...</source>
<translation>アイテムを編集...</translation>
</message>
@@ -8694,7 +8727,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::WidgetBox</name>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="+83"/>
+ <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="+113"/>
<source>Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML.</source>
<translation type="unfinished"></translation>
</message>
@@ -8729,17 +8762,17 @@ Class: %2</source>
<context>
<name>qdesigner_internal::WidgetBoxTreeWidget</name>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-267"/>
+ <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-268"/>
<source>Scratchpad</source>
<translation type="unfinished">スクラッチパッド</translation>
</message>
<message>
- <location line="+360"/>
+ <location line="+370"/>
<source>Custom Widgets</source>
<translation type="unfinished">カスタムウィジェット</translation>
</message>
<message>
- <location line="+261"/>
+ <location line="+260"/>
<source>Expand all</source>
<translation type="unfinished">すべて展開する</translation>
</message>
@@ -8780,7 +8813,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::WidgetEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+41"/>
+ <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+71"/>
<source>Edit Widgets</source>
<translation>ウィジェットを編集</translation>
</message>
@@ -8788,12 +8821,12 @@ Class: %2</source>
<context>
<name>qdesigner_internal::WidgetFactory</name>
<message>
- <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="+237"/>
+ <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="+267"/>
<source>The custom widget factory registered for widgets of class %1 returned 0.</source>
<translation type="unfinished">%1 というクラスのウィジェットのために登録されたカスタムウィジェットファクトリーが 0 を返しました。</translation>
</message>
<message>
- <location line="+40"/>
+ <location line="+44"/>
<source>A class name mismatch occurred when creating a widget using the custom widget factory registered for widgets of class %1. It returned a widget of class %2.</source>
<translation type="unfinished">%1 というクラスのウィジェットのために登録されたカスタムウィジェットファクトリーを使ってウィジェットを作成しているときに、クラス名のミスマッチが発生しました。%2 というクラスのウィジェットを返しました。</translation>
</message>
@@ -8835,7 +8868,7 @@ 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="+54"/>
+ <location filename="../tools/designer/src/lib/shared/zoomwidget.cpp" line="+84"/>
<source>%1 %</source>
<extracomment>Zoom factor</extracomment>
<translation type="unfinished"></translation>
diff --git a/translations/designer_pl.ts b/translations/designer_pl.ts
index 6ae369f..5b63f66 100644
--- a/translations/designer_pl.ts
+++ b/translations/designer_pl.ts
@@ -1,14 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="pl">
+<!DOCTYPE TS>
+<TS version="2.0" language="pl">
<context>
<name></name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+624"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+647"/>
<source>&lt;object&gt;</source>
<translation>&lt;obiekt&gt;</translation>
</message>
<message>
- <location line="+16"/>
+ <location line="+18"/>
<source>&lt;signal&gt;</source>
<translation>&lt;sygnał&gt;</translation>
</message>
@@ -18,7 +19,7 @@
<translation>&lt;slot&gt;</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="+43"/>
+ <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="+73"/>
<source>The moose in the noose
ate the goose who was loose.</source>
<translation>W Szczebrzeszynie
@@ -28,7 +29,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>AbstractFindWidget</name>
<message>
- <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+97"/>
+ <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+127"/>
<source>&amp;Previous</source>
<translation>&amp;Poprzednie</translation>
</message>
@@ -74,7 +75,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>AppFontDialog</name>
<message>
- <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+388"/>
+ <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+418"/>
<source>Additional Fonts</source>
<translation>Dodatkowe czcionki</translation>
</message>
@@ -186,7 +187,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>AssistantClient</name>
<message>
- <location filename="../tools/designer/src/designer/assistantclient.cpp" line="+70"/>
+ <location filename="../tools/designer/src/designer/assistantclient.cpp" line="+100"/>
<source>Unable to send request: Assistant is not responding.</source>
<translation>Nie można wysłac komendy. Asystent nie odpowiada.</translation>
</message>
@@ -204,7 +205,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>BrushManagerProxy</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+191"/>
+ <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+221"/>
<source>The element &apos;%1&apos; is missing the required attribute &apos;%2&apos;.</source>
<translation>Brak atrybutu &apos;%2&apos; w elemencie &apos;%1&apos;.</translation>
</message>
@@ -232,7 +233,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>BrushPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+22"/>
+ <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+52"/>
<source>No brush</source>
<translation>Brak szczotki</translation>
</message>
@@ -325,19 +326,24 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>Command</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+177"/>
- <location line="+211"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+208"/>
+ <location line="+258"/>
<source>Change signal</source>
<translation>Zmień sygnał</translation>
</message>
<message>
- <location line="-209"/>
- <location line="+221"/>
+ <location line="-256"/>
+ <location line="+268"/>
<source>Change slot</source>
<translation>Zmień slot</translation>
</message>
<message>
- <location line="+14"/>
+ <location line="-220"/>
+ <source>Change signal-slot connection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+234"/>
<source>Change sender</source>
<translation>Zmień nadawcę</translation>
</message>
@@ -347,7 +353,7 @@ chrząszcz brzmi w trzcinie.</translation>
<translation>Zmień odbiorcę</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+113"/>
+ <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+143"/>
<source>Add connection</source>
<translation>Dodaj połączenie</translation>
</message>
@@ -372,7 +378,7 @@ chrząszcz brzmi w trzcinie.</translation>
<translation>Zmień przeznaczenie</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="+117"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="+149"/>
<source>Insert &apos;%1&apos;</source>
<translation>Wstaw &apos;%1&apos;</translation>
</message>
@@ -397,7 +403,7 @@ chrząszcz brzmi w trzcinie.</translation>
<translation>Zmień rodzica &apos;%1&apos;</translation>
</message>
<message>
- <location line="+51"/>
+ <location line="+53"/>
<source>Promote to custom widget</source>
<translation>Zastąp widżet</translation>
</message>
@@ -427,48 +433,48 @@ chrząszcz brzmi w trzcinie.</translation>
<translation>Usuń rozmieszczenie</translation>
</message>
<message>
- <location line="+231"/>
- <location line="+226"/>
- <location line="+75"/>
+ <location line="+240"/>
+ <location line="+235"/>
+ <location line="+78"/>
<source>Move Page</source>
<translation>Przenieś stronę</translation>
</message>
<message>
- <location line="-267"/>
- <location line="+116"/>
- <location line="+183"/>
- <location line="+664"/>
+ <location line="-279"/>
+ <location line="+123"/>
+ <location line="+188"/>
+ <location line="+666"/>
<source>Delete Page</source>
<translation>Usuń stronę</translation>
</message>
<message>
- <location line="-925"/>
- <location line="+116"/>
+ <location line="-939"/>
+ <location line="+123"/>
<source>Page</source>
<translation>Strona</translation>
</message>
<message>
- <location line="-114"/>
- <location line="+297"/>
- <location line="+670"/>
+ <location line="-121"/>
+ <location line="+309"/>
+ <location line="+672"/>
<source>page</source>
<translation>strona</translation>
</message>
<message>
- <location line="-964"/>
- <location line="+116"/>
- <location line="+181"/>
- <location line="+665"/>
+ <location line="-978"/>
+ <location line="+123"/>
+ <location line="+186"/>
+ <location line="+667"/>
<source>Insert Page</source>
<translation>Wstaw stronę</translation>
</message>
<message>
- <location line="-849"/>
+ <location line="-856"/>
<source>tab</source>
<translation>tab</translation>
</message>
<message>
- <location line="+204"/>
+ <location line="+209"/>
<source>Change Tab order</source>
<translation>Zmień kolejność tabulacji</translation>
</message>
@@ -513,12 +519,12 @@ chrząszcz brzmi w trzcinie.</translation>
<translation>Zmień geometrię elementu w formularzu</translation>
</message>
<message>
- <location line="+94"/>
+ <location line="+95"/>
<source>Change Layout Item Geometry</source>
<translation>Zmień geometrię elementu w rozmieszczeniu</translation>
</message>
<message>
- <location line="+569"/>
+ <location line="+576"/>
<source>Change Table Contents</source>
<translation>Zmień zawartość tabeli</translation>
</message>
@@ -560,7 +566,7 @@ chrząszcz brzmi w trzcinie.</translation>
<translation>Usuń pasek narzędzi</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1125"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1161"/>
<source>Set action text</source>
<translation>Ustaw tekst akcji</translation>
</message>
@@ -571,7 +577,7 @@ chrząszcz brzmi w trzcinie.</translation>
</message>
<message>
<location line="+89"/>
- <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+861"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+891"/>
<source>Move action</source>
<translation>Przenieś akcję</translation>
</message>
@@ -586,12 +592,12 @@ chrząszcz brzmi w trzcinie.</translation>
<translation>Wstaw menu</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+172"/>
+ <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+202"/>
<source>Change signals/slots</source>
<translation>Zmień sygnały/sloty</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="-861"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="-867"/>
<source>Delete Subwindow</source>
<translation>Usuń podokno</translation>
</message>
@@ -611,17 +617,17 @@ chrząszcz brzmi w trzcinie.</translation>
<translation>Podokno</translation>
</message>
<message>
- <location line="-1796"/>
+ <location line="-1821"/>
<source>Change Z-order of &apos;%1&apos;</source>
<translation>Zmień porządek głębokości (Z-order) dla &apos;%1&apos;</translation>
</message>
<message>
- <location line="+623"/>
+ <location line="+625"/>
<source>Simplify Grid Layout</source>
<translation>Uprość rozmieszczenie w siatce</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+195"/>
+ <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+225"/>
<source>Create button group</source>
<translation>Utwórz grupę przycisków</translation>
</message>
@@ -642,7 +648,7 @@ chrząszcz brzmi w trzcinie.</translation>
</message>
<message>
<location line="+8"/>
- <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+373"/>
+ <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>Dodaj &apos;%1&apos; do &apos;%2&apos;</translation>
@@ -659,23 +665,23 @@ chrząszcz brzmi w trzcinie.</translation>
<translation>Usuń &apos;%1&apos; z &apos;%2&apos;</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+318"/>
+ <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+349"/>
<source>Morph %1/&apos;%2&apos; into %3</source>
<extracomment>MorphWidgetCommand description</extracomment>
<translation>Przekształć %1/%2 w %3</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_command2.cpp" line="+124"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_command2.cpp" line="+154"/>
<source>Change layout of &apos;%1&apos; from %2 to %3</source>
<translation>Zmień rozmieszczenie widżetu &apos;%1&apos; z %2 na %3</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+25"/>
+ <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+55"/>
<source>Change script</source>
<translation>Zmień skrypt</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1176"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1209"/>
<source>Changed &apos;%1&apos; of &apos;%2&apos;</source>
<translation>Zmień &apos;%1&apos; w &apos;%2&apos;</translation>
</message>
@@ -757,7 +763,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>DPI_Chooser</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+39"/>
+ <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+69"/>
<source>Standard (96 x 96)</source>
<extracomment>Embedded device standard screen resolution</extracomment>
<translation>Standardowa (96 x 96)</translation>
@@ -778,12 +784,12 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>Designer</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+409"/>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+439"/>
<source>Qt Designer</source>
<translation>Qt Designer</translation>
</message>
<message>
- <location line="+1017"/>
+ <location line="+1028"/>
<source>Custom Widgets</source>
<translation>Własne widżety</translation>
</message>
@@ -793,7 +799,7 @@ chrząszcz brzmi w trzcinie.</translation>
<translation>Zastępcze widżety</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+602"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+682"/>
<source>Unable to launch %1.</source>
<translation>Nie można uruchomić %1.</translation>
</message>
@@ -803,7 +809,7 @@ chrząszcz brzmi w trzcinie.</translation>
<translation>%1 przekroczony czas operacji.</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="-812"/>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="-823"/>
<source>This file cannot be read because it was created using %1.</source>
<translation>Nie można odczytać pliku ponieważ został utworzony przy użyciu %1.</translation>
</message>
@@ -868,7 +874,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>DesignerMetaEnum</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="-463"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="-513"/>
<source>%1 is not a valid enumeration value of &apos;%2&apos;.</source>
<translation>%1 nie jest poprawną wartością typu wyliczeniowego &apos;%2&apos;.</translation>
</message>
@@ -889,7 +895,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>DeviceProfile</name>
<message>
- <location filename="../tools/designer/src/lib/shared/deviceprofile.cpp" line="+367"/>
+ <location filename="../tools/designer/src/lib/shared/deviceprofile.cpp" line="+397"/>
<source>&apos;%1&apos; is not a number.</source>
<extracomment>Reading a number for an embedded device profile</extracomment>
<translation>&apos;%1&apos; nie jest liczbą.</translation>
@@ -931,7 +937,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>DeviceSkin</name>
<message>
- <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+49"/>
+ <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/>
<source>The image file &apos;%1&apos; could not be loaded.</source>
<translation>Nie można wczytać pliku z obrazkiem %1.</translation>
</message>
@@ -989,66 +995,56 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>EmbeddedOptionsControl</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="+130"/>
<source>None</source>
- <translation>Żadne</translation>
+ <translation type="obsolete">Żadne</translation>
</message>
<message>
- <location line="+4"/>
<source>Add a profile</source>
- <translation>Dodaj profil</translation>
+ <translation type="obsolete">Dodaj profil</translation>
</message>
<message>
- <location line="+6"/>
<source>Edit the selected profile</source>
- <translation>Edytuj zaznaczony profil</translation>
+ <translation type="obsolete">Edytuj zaznaczony profil</translation>
</message>
<message>
- <location line="+4"/>
<source>Delete the selected profile</source>
- <translation>Usuń zaznaczony profil</translation>
+ <translation type="obsolete">Usuń zaznaczony profil</translation>
</message>
<message>
- <location line="+22"/>
<source>Add Profile</source>
- <translation>Dodaj profil</translation>
+ <translation type="obsolete">Dodaj profil</translation>
</message>
<message>
- <location line="+7"/>
<source>New profile</source>
- <translation>Nowy profil</translation>
+ <translation type="obsolete">Nowy profil</translation>
</message>
<message>
- <location line="+35"/>
<source>Edit Profile</source>
- <translation>Edytuj profil</translation>
+ <translation type="obsolete">Edytuj profil</translation>
</message>
<message>
- <location line="+26"/>
<source>Delete Profile</source>
- <translation>Usuń profil</translation>
+ <translation type="obsolete">Usuń profil</translation>
</message>
<message>
- <location line="+1"/>
<source>Would you like to delete the profile &apos;%1&apos;?</source>
- <translation>Czy chcesz usunać profil &apos;%1&apos;?</translation>
+ <translation type="obsolete">Czy chcesz usunać profil &apos;%1&apos;?</translation>
</message>
<message>
- <location line="+42"/>
+ <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="+311"/>
<source>&lt;html&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Font&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%1, %2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Style&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Resolution&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%4 x %5&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/html&gt;</source>
<extracomment>Format embedded device profile description</extracomment>
<translation>&lt;html&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Font&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%1, %2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Styl&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Rozdzielczość&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%4 x %5&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/html&gt;</translation>
</message>
<message>
- <location line="+13"/>
<source>Default</source>
- <translation>Domyślny</translation>
+ <translation type="obsolete">Domyślny</translation>
</message>
</context>
<context>
<name>EmbeddedOptionsPage</name>
<message>
- <location line="+90"/>
+ <location line="+103"/>
<source>Embedded Design</source>
<extracomment>Tab in preferences dialog</extracomment>
<translation>Projekt dla urządzeń specjalizowanych</translation>
@@ -1063,7 +1059,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation>Czcionka</translation>
</message>
@@ -1091,7 +1087,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>FontPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+32"/>
+ <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+62"/>
<source>PreferDefault</source>
<translation>Preferuj domyślny</translation>
</message>
@@ -1114,7 +1110,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>FormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+321"/>
+ <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+351"/>
<source>Invalid stretch value for &apos;%1&apos;: &apos;%2&apos;</source>
<extracomment>Parsing layout stretch values</extracomment>
<translation>Niepoprawna wartość rozciągniecia dla &apos;%1&apos;: &apos;%2&apos;</translation>
@@ -1129,7 +1125,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>FormEditorOptionsPage</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="+61"/>
+ <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="+91"/>
<source>%1 %</source>
<translation>%1 %</translation>
</message>
@@ -1196,7 +1192,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>FormWindow</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1669"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1705"/>
<source>Unexpected element &lt;%1&gt;</source>
<translation>Niespodziewany element &lt;%1&gt;</translation>
</message>
@@ -1272,7 +1268,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>IconSelector</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+321"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+353"/>
<source>All Pixmaps (</source>
<translation>Wszystkie pixmapy (</translation>
</message>
@@ -1280,7 +1276,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>ItemPropertyBrowser</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+36"/>
+ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+66"/>
<source>XX Icon Selected off</source>
<extracomment>Sample string to determinate the width for the first column of the list item property browser</extracomment>
<translation>XX ikona wybrana wyłączona</translation>
@@ -1289,7 +1285,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>LanguageResourceDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-234"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-235"/>
<source>Choose Resource</source>
<translation>Wybierz zasób</translation>
</message>
@@ -1297,7 +1293,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>MainWindowBase</name>
<message>
- <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+89"/>
+ <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+119"/>
<source>Main</source>
<extracomment>Not currently used (main tool bar)</extracomment>
<translation>Główny</translation>
@@ -1331,7 +1327,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>NewForm</name>
<message>
- <location filename="../tools/designer/src/designer/newform.cpp" line="+53"/>
+ <location filename="../tools/designer/src/designer/newform.cpp" line="+83"/>
<source>New Form</source>
<translation>Nowy formularz</translation>
</message>
@@ -1384,7 +1380,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>NewFormWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+465"/>
+ <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+495"/>
<source>Unable to open the form template file &apos;%1&apos;: %2</source>
<translation>Nie można otworzyć pliku &apos;%1&apos; z szablonem formularza: %2</translation>
</message>
@@ -1392,7 +1388,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>ObjectInspectorModel</name>
<message>
- <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+331"/>
+ <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+364"/>
<source>Object</source>
<translation>Obiekt</translation>
</message>
@@ -1402,7 +1398,7 @@ chrząszcz brzmi w trzcinie.</translation>
<translation>Klasa</translation>
</message>
<message>
- <location line="+34"/>
+ <location line="+35"/>
<source>separator</source>
<translation>separator</translation>
</message>
@@ -1415,7 +1411,7 @@ chrząszcz brzmi w trzcinie.</translation>
<context>
<name>ObjectNameDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+132"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+162"/>
<source>Change Object Name</source>
<translation>Zmień nazwę obiektu</translation>
</message>
@@ -1483,52 +1479,16 @@ Nie ma już nic więcej. Powinieneś zabrać się do pracy.</numerusform>
</message>
</context>
<context>
- <name>qdesigner_internal::PluginDialog</name>
- <message>
- <location filename="../tools/designer/src/designer/plugindialog.cpp" line="+40"/>
- <source>Components</source>
- <translation>Komponenty</translation>
- </message>
+ <name>PluginDialog</name>
<message>
- <location line="+13"/>
- <location filename="../tools/designer/src/designer/plugindialog.ui"/>
+ <location filename="../tools/designer/src/lib/shared/plugindialog.ui"/>
<source>Plugin Information</source>
- <translation>Informacje o wtyczkach</translation>
- </message>
- <message>
- <location line="+53"/>
- <source>Qt Designer couldn&apos;t find any plugins</source>
- <translation>Qt Designer nie mógł znaleźć żadnej wtyczki</translation>
- </message>
- <message>
- <location line="+3"/>
- <source>Qt Designer found the following plugins</source>
- <translation>Qt Designer znalazł następujące wtyczki:</translation>
- </message>
- <message>
- <location filename="../tools/designer/src/designer/plugindialog.ui"/>
- <source>TextLabel</source>
- <translation>Etykieta</translation>
- </message>
- <message>
- <location filename="../tools/designer/src/designer/plugindialog.cpp" line="-52"/>
- <source>Refresh</source>
- <translation>Odśwież</translation>
+ <translation type="unfinished">Informacje o wtyczkach</translation>
</message>
<message>
- <location line="+1"/>
- <source>Scan for newly installed custom widget plugins.</source>
- <translation>Szukaj nowo zainstalowanych wtyczek z widżetami.</translation>
- </message>
- <message>
- <location line="+106"/>
- <source>New custom widget plugins have been found.</source>
- <translation>Znaleziono nową wtyczkę z widżetami.</translation>
- </message>
- <message>
- <location filename="../tools/designer/src/designer/plugindialog.ui"/>
+ <location/>
<source>1</source>
- <translation>1</translation>
+ <translation type="unfinished">1</translation>
</message>
</context>
<context>
@@ -1542,7 +1502,7 @@ Nie ma już nic więcej. Powinieneś zabrać się do pracy.</numerusform>
<context>
<name>PreviewConfigurationWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+125"/>
+ <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+155"/>
<source>Default</source>
<translation>Domyślny</translation>
</message>
@@ -1590,7 +1550,7 @@ Nie ma już nic więcej. Powinieneś zabrać się do pracy.</numerusform>
<context>
<name>PromotionModel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+86"/>
+ <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+116"/>
<source>Not used</source>
<extracomment>Usage of promoted widgets</extracomment>
<translation>Nie używana</translation>
@@ -1599,7 +1559,7 @@ Nie ma już nic więcej. Powinieneś zabrać się do pracy.</numerusform>
<context>
<name>Q3WizardContainer</name>
<message>
- <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="+142"/>
+ <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="+172"/>
<location line="+5"/>
<source>Page</source>
<translation>Strona</translation>
@@ -1608,7 +1568,7 @@ Nie ma już nic więcej. Powinieneś zabrać się do pracy.</numerusform>
<context>
<name>QAbstractFormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+176"/>
+ <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+206"/>
<source>Unexpected element &lt;%1&gt;</source>
<translation>Niespodziewany element &lt;%1&gt;</translation>
</message>
@@ -1655,7 +1615,7 @@ To wskazuje na niespójność w pliku ui.</translation>
<translation>Podczas przypisywania kolejności tabulacji: widżet &apos;%1&apos; nie został znaleziony.</translation>
</message>
<message>
- <location line="+734"/>
+ <location line="+749"/>
<source>Invalid QButtonGroup reference &apos;%1&apos; referenced by &apos;%2&apos;.</source>
<translation>Niepoprawny odnośnik QButtonGroup &apos;%1&apos;, użyty w &apos;%2&apos;.</translation>
</message>
@@ -1668,7 +1628,7 @@ To wskazuje na niespójność w pliku ui.</translation>
<context>
<name>QAxWidgetPlugin</name>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+45"/>
+ <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+75"/>
<source>ActiveX control</source>
<translation>Kontrolka ActiveX</translation>
</message>
@@ -1681,7 +1641,7 @@ To wskazuje na niespójność w pliku ui.</translation>
<context>
<name>QAxWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+89"/>
+ <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+119"/>
<source>Set Control</source>
<translation>Ustaw kontrolkę</translation>
</message>
@@ -1704,7 +1664,7 @@ To wskazuje na niespójność w pliku ui.</translation>
<context>
<name>QCoreApplication</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="+53"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="+83"/>
<source>%1 is not a promoted class.</source>
<translation>%1 nie jest klasą zastępczą.</translation>
</message>
@@ -1754,7 +1714,7 @@ To wskazuje na niespójność w pliku ui.</translation>
<translation>Nie można ustawić pustego pliku nagłówkowego.</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+58"/>
+ <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+88"/>
<source>Exception at line %1: %2</source>
<translation>Wyjątek w linii %1: %2</translation>
</message>
@@ -1774,7 +1734,7 @@ Skrypt: %3</translation>
<context>
<name>QDesigner</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+111"/>
+ <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+141"/>
<source>%1 - warning</source>
<translation>%1 - ostrzeżenie</translation>
</message>
@@ -1792,12 +1752,12 @@ Skrypt: %3</translation>
<context>
<name>QDesignerActions</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+459"/>
+ <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+488"/>
<source>Clear &amp;Menu</source>
<translation>Wyczyść &amp;menu</translation>
</message>
<message>
- <location line="-297"/>
+ <location line="-300"/>
<source>&amp;Quit</source>
<translation>Za&amp;kończ</translation>
</message>
@@ -1858,17 +1818,17 @@ Skrypt: %3</translation>
</message>
<message>
<location line="+6"/>
- <location line="+598"/>
+ <location line="+601"/>
<source>About Qt Designer</source>
<translation>Informacje o Qt Designer</translation>
</message>
<message>
- <location line="-592"/>
+ <location line="-595"/>
<source>About Qt</source>
<translation>Informacje o Qt</translation>
</message>
<message>
- <location line="+41"/>
+ <location line="+44"/>
<source>&amp;Recent Forms</source>
<translation>Os&amp;tatnio edytowane formularze</translation>
</message>
@@ -1909,19 +1869,19 @@ Czy chcesz spróbować ponownie lub zmienić nazwę pliku?</translation>
<translation>Wybierz nowy plik</translation>
</message>
<message>
- <location line="-691"/>
+ <location line="-694"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>%1 już istnieje.
Czy chcesz go zastąpić?</translation>
</message>
<message>
- <location line="+960"/>
+ <location line="+925"/>
<source>&amp;Close Preview</source>
<translation>Za&amp;mknij podgląd</translation>
</message>
<message>
- <location line="-919"/>
+ <location line="-884"/>
<source>Preferences...</source>
<translation>Ustawienia...</translation>
</message>
@@ -1931,19 +1891,19 @@ Czy chcesz go zastąpić?</translation>
<translation>CTRL+SHIFT+S</translation>
</message>
<message>
- <location line="+313"/>
+ <location line="+316"/>
<location line="+37"/>
<location line="+160"/>
<source>Designer UI files (*.%1);;All Files (*)</source>
<translation>Pliki Designer UI (*.%1);;Wszystkie pliki (*)</translation>
</message>
<message>
- <location line="-638"/>
+ <location line="-641"/>
<source>Saved %1.</source>
<translation>Formularz %1 zachowany pomyślnie.</translation>
</message>
<message>
- <location line="+624"/>
+ <location line="+627"/>
<source>Read error</source>
<translation>Błąd odczytu</translation>
</message>
@@ -1975,7 +1935,7 @@ Czy chcesz zaktualizować położenie pliku lub wygenerować nowy formularz?</tr
<translation>Nie można zapisać pliku</translation>
</message>
<message>
- <location line="-696"/>
+ <location line="-699"/>
<source>&amp;New...</source>
<translation>&amp;Nowy...</translation>
</message>
@@ -2006,12 +1966,12 @@ Czy chcesz zaktualizować położenie pliku lub wygenerować nowy formularz?</tr
</message>
<message>
<location line="+1"/>
- <location line="+931"/>
+ <location line="+896"/>
<source>&amp;Close</source>
<translation>Za&amp;mknij</translation>
</message>
<message>
- <location line="-930"/>
+ <location line="-895"/>
<source>Save &amp;Image...</source>
<translation>Zachowaj o&amp;brazek...</translation>
</message>
@@ -2026,18 +1986,18 @@ Czy chcesz zaktualizować położenie pliku lub wygenerować nowy formularz?</tr
<translation>Pokaż &amp;kod...</translation>
</message>
<message>
- <location line="+416"/>
+ <location line="+419"/>
<location line="+248"/>
<source>Save Form As</source>
<translation>Zachowaj formularz jako</translation>
</message>
<message>
- <location line="+467"/>
+ <location line="+429"/>
<source>Preview failed</source>
<translation>Nie można utworzyć podglądu</translation>
</message>
<message>
- <location line="-613"/>
+ <location line="-575"/>
<source>Code generation failed</source>
<translation>Nie można wygenerować kodu</translation>
</message>
@@ -2051,7 +2011,7 @@ Powód:%2
Czy chcesz spróbować ponownie?</translation>
</message>
<message>
- <location line="+277"/>
+ <location line="+239"/>
<location line="+23"/>
<source>The backup file %1 could not be written.</source>
<translation>Nie można zapisać pliku zapasowego %1.</translation>
@@ -2083,13 +2043,13 @@ Czy chcesz spróbować ponownie?</translation>
<translation>Nie można zapisać pliku %1.</translation>
</message>
<message>
- <location line="-336"/>
- <location line="+66"/>
+ <location line="-298"/>
+ <location line="+34"/>
<source>Assistant</source>
<translation>Assistant</translation>
</message>
<message>
- <location line="+265"/>
+ <location line="+259"/>
<source>Saved image %1.</source>
<translation>Zachowano obrazek %1.</translation>
</message>
@@ -2099,12 +2059,12 @@ Czy chcesz spróbować ponownie?</translation>
<translation>Zamknij wszystkie formularze aby umożliwić wczytanie dodatkowych czcionek.</translation>
</message>
<message>
- <location line="+49"/>
+ <location line="+52"/>
<source>Printed %1.</source>
<translation>Wydrukowano %1.</translation>
</message>
<message>
- <location line="-1180"/>
+ <location line="-1148"/>
<source>ALT+CTRL+S</source>
<translation>ALT+CTRL+S</translation>
</message>
@@ -2112,7 +2072,7 @@ Czy chcesz spróbować ponownie?</translation>
<context>
<name>QDesignerAppearanceOptionsPage</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="+93"/>
+ <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="+138"/>
<source>Appearance</source>
<extracomment>Tab in preferences dialog</extracomment>
<translation>Wygląd</translation>
@@ -2121,7 +2081,7 @@ Czy chcesz spróbować ponownie?</translation>
<context>
<name>QDesignerAppearanceOptionsWidget</name>
<message>
- <location line="-39"/>
+ <location line="-53"/>
<source>Docked Window</source>
<translation>Okna dokowalne</translation>
</message>
@@ -2131,7 +2091,7 @@ Czy chcesz spróbować ponownie?</translation>
<translation>Wiele okien głównych</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+5"/>
<source>Toolwindow Font</source>
<translation>Czcionka okna narzędzi</translation>
</message>
@@ -2149,7 +2109,7 @@ Czy chcesz spróbować ponownie?</translation>
<translation>Ustaw kontrolkę</translation>
</message>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+149"/>
+ <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+179"/>
<source>Control loaded</source>
<translation>Kontrolka wczytana</translation>
</message>
@@ -2162,7 +2122,7 @@ Czy chcesz spróbować ponownie?</translation>
<context>
<name>QDesignerFormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+58"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+88"/>
<source>Script errors occurred:</source>
<translation>Wystąpiły błędy w skrypcie:</translation>
</message>
@@ -2180,7 +2140,7 @@ Czy chcesz spróbować ponownie?</translation>
<context>
<name>QDesignerFormWindow</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="+187"/>
+ <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="+217"/>
<source>%1 - %2[*]</source>
<translation>%1 - %2[*]</translation>
</message>
@@ -2203,7 +2163,7 @@ Czy chcesz spróbować ponownie?</translation>
<context>
<name>QDesignerMenu</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1154"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1160"/>
<source>Type Here</source>
<translation>Wpisz tutaj</translation>
</message>
@@ -2213,7 +2173,7 @@ Czy chcesz spróbować ponownie?</translation>
<translation>Dodaj separator</translation>
</message>
<message>
- <location line="+373"/>
+ <location line="+379"/>
<source>Remove action &apos;%1&apos;</source>
<translation>Usuń akcję &apos;%1&apos;</translation>
</message>
@@ -2265,7 +2225,7 @@ Czy chcesz spróbować ponownie?</translation>
<context>
<name>QDesignerPluginManager</name>
<message>
- <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="+197"/>
+ <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="+249"/>
<source>An XML error was encountered when parsing the XML of the custom widget %1: %2</source>
<translation>Wystąpił błąd XML podczas przetwarzania kodu XML dla własnego widżetu %1: %2</translation>
</message>
@@ -2288,7 +2248,7 @@ Czy chcesz spróbować ponownie?</translation>
<context>
<name>QDesignerPropertySheet</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+717"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+747"/>
<source>Dynamic Properties</source>
<translation>Dynamiczne właściwości</translation>
</message>
@@ -2301,13 +2261,13 @@ Czy chcesz spróbować ponownie?</translation>
<translation>Rozmieszczenie typu &apos;%1&apos; nie jest obsługiwane. Będzie ono zastąpione siatką.</translation>
</message>
<message>
- <location line="+331"/>
+ <location line="+342"/>
<source>The container extension of the widget &apos;%1&apos; (%2) returned a widget not managed by Designer &apos;%3&apos; (%4) when queried for page #%5.
Container pages should only be added by specifying them in XML returned by the domXml() method of the custom widget.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+598"/>
+ <location line="+599"/>
<source>Unexpected element &lt;%1&gt;</source>
<extracomment>Parsing clipboard contents</extracomment>
<translation>Niespodziewany element &lt;%1&gt;</translation>
@@ -2328,7 +2288,7 @@ 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="+53"/>
+ <location filename="../tools/designer/src/lib/shared/shared_settings.cpp" line="+83"/>
<source>The template path %1 could not be created.</source>
<translation>Nie można utworzyć ścieżki %1 dla szablonów.</translation>
</message>
@@ -2341,7 +2301,7 @@ 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="+160"/>
+ <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="+190"/>
<source>Property Editor</source>
<translation>Edytor właściwości</translation>
</message>
@@ -2374,7 +2334,7 @@ Container pages should only be added by specifying them in XML returned by the d
<context>
<name>QDesignerWidgetBox</name>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="+318"/>
+ <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="+349"/>
<source>An error has been encountered at line %1 of %2: %3</source>
<translation>Wystąpił błąd w linii %1 w %2: %3</translation>
</message>
@@ -2397,7 +2357,7 @@ 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="+169"/>
+ <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="+199"/>
<source>&amp;File</source>
<translation>&amp;Plik</translation>
</message>
@@ -2472,7 +2432,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation>Informacja o kopiach zapasowych</translation>
</message>
<message>
- <location line="+113"/>
+ <location line="+112"/>
<source>The file &lt;b&gt;%1&lt;/b&gt; could not be opened.</source>
<translation>Nie można otworzyć pliku &lt;b&gt;%1&lt;/b&gt;.</translation>
</message>
@@ -2482,7 +2442,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation>Plik &lt;b&gt;%1&lt;/b&gt; nie jest poprawnym plikiem Designer&apos;a.</translation>
</message>
<message numerus="yes">
- <location line="-260"/>
+ <location line="-259"/>
<source>There are %n forms with unsaved changes. Do you want to review these changes before quitting?</source>
<translation>
<numerusform>Jest %n formularz z niezachowanymi zmianami. Czy chcesz przejrzeć zmiany przed wyjściem z programu?</numerusform>
@@ -2494,7 +2454,7 @@ 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="+130"/>
+ <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="+160"/>
<source>An empty class name was passed on to %1 (object name: &apos;%2&apos;).</source>
<extracomment>Empty class name passed to widget factory method</extracomment>
<translation>Pusta nazwa klasy została przekazana do %1 (nazwa obiektu: &apos;%2&apos;).</translation>
@@ -2515,7 +2475,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation>Typ rozmieszczenia &apos;%1&apos; nie jest obsługiwany.</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="+76"/>
+ <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="+106"/>
<source>The set-type property %1 could not be read.</source>
<translation>Nie można odczytać właściwości %1 typu zbiór.</translation>
</message>
@@ -2535,7 +2495,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation>Nie można zapisać właściwości %1. Typ %2 nie jest jeszcze obsługiwany.</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/uilib/properties_p.h" line="+102"/>
+ <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>Niepoprawna wartość &quot;%1&quot; typu wyliczeniowego. Użyta będzie domyślna wartość &quot;%2&quot;.</translation>
</message>
@@ -2548,7 +2508,7 @@ 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="+164"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="+194"/>
<source>Previous Page</source>
<translation>Poprzednia strona</translation>
</message>
@@ -2609,7 +2569,7 @@ 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="+59"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="+89"/>
<source>Delete</source>
<translation>Usuń</translation>
</message>
@@ -2637,7 +2597,7 @@ 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="+34"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="+64"/>
<source>Delete Page</source>
<translation>Usuń stronę</translation>
</message>
@@ -2675,7 +2635,7 @@ 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="+198"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+226"/>
<location line="+10"/>
<location line="+25"/>
<source>True</source>
@@ -2691,7 +2651,7 @@ 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="+1469"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1477"/>
<source>True</source>
<translation>Prawda</translation>
</message>
@@ -2704,7 +2664,7 @@ 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="+1573"/>
+ <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1601"/>
<source>Clear Char</source>
<translation>Wyczyść znak</translation>
</message>
@@ -2720,7 +2680,7 @@ 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="+4769"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4777"/>
<source>Red</source>
<translation>Czerwień</translation>
</message>
@@ -2900,7 +2860,7 @@ 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="+405"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+435"/>
<source>Start X</source>
<translation>Początek X</translation>
</message>
@@ -3175,7 +3135,7 @@ 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="+919"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+949"/>
<source>New Stop</source>
<translation>Nowy punkt</translation>
</message>
@@ -3213,7 +3173,7 @@ 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="+77"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+107"/>
<source>Grad</source>
<translation>Grad</translation>
</message>
@@ -3260,7 +3220,7 @@ 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.h" line="+32"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.h" line="+62"/>
<location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui"/>
<source>Select Gradient</source>
<translation>Wybierz gradient</translation>
@@ -3277,7 +3237,7 @@ 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="-3553"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-3561"/>
<source>%1, %2</source>
<translation>%1, %2</translation>
</message>
@@ -3344,22 +3304,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="+1705"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1716"/>
<source>[(%1, %2), %3 x %4]</source>
<translation>[(%1, %2), %3 x %4]</translation>
</message>
<message>
- <location line="+155"/>
+ <location line="+156"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location line="+9"/>
+ <location line="+8"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location line="+9"/>
+ <location line="+8"/>
<source>Width</source>
<translation>Szerokość</translation>
</message>
@@ -3372,22 +3332,22 @@ Container pages should only be added by specifying them in XML returned by the d
<context>
<name>QtRectPropertyManager</name>
<message>
- <location line="-610"/>
+ <location line="-614"/>
<source>[(%1, %2), %3 x %4]</source>
<translation>[(%1, %2), %3 x %4]</translation>
</message>
<message>
- <location line="+119"/>
+ <location line="+120"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location line="+8"/>
+ <location line="+7"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location line="+8"/>
+ <location line="+7"/>
<source>Width</source>
<translation>Szerokość</translation>
</message>
@@ -3400,7 +3360,7 @@ 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="+46"/>
+ <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="+76"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>%1 już istnieje.
@@ -3412,7 +3372,7 @@ Czy chcesz go zastąpić?</translation>
<translation>Plik nie wygląda na plik z zasobami; znaleziono element &apos;%1&apos; podczas gdy oczekiwano elementu &apos;%2&apos;.</translation>
</message>
<message>
- <location line="+900"/>
+ <location line="+902"/>
<source>%1 [read-only]</source>
<translation>%1 - [tylko do odczytu]</translation>
</message>
@@ -3686,7 +3646,7 @@ jako:
<context>
<name>QtResourceView</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+404"/>
+ <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+435"/>
<source>Size: %1 x %2
%3</source>
<translation>Rozmiar: %1 x %2
@@ -3719,7 +3679,7 @@ jako:
<context>
<name>QtSizeFPropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-532"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-537"/>
<source>%1 x %2</source>
<translation>%1 x %2</translation>
</message>
@@ -3737,12 +3697,18 @@ jako:
<context>
<name>QtSizePolicyPropertyManager</name>
<message>
- <location line="+1707"/>
+ <location line="+1719"/>
+ <location line="+1"/>
+ <source>&lt;Invalid&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
<source>[%1, %2, %3, %4]</source>
<translation>[%1, %2, %3, %4]</translation>
</message>
<message>
- <location line="+49"/>
+ <location line="+45"/>
<source>Horizontal Policy</source>
<translation>Strategia pozioma</translation>
</message>
@@ -3765,7 +3731,7 @@ jako:
<context>
<name>QtSizePropertyManager</name>
<message>
- <location line="-2288"/>
+ <location line="-2298"/>
<source>%1 x %2</source>
<translation>%1 x %2</translation>
</message>
@@ -3783,7 +3749,7 @@ jako:
<context>
<name>QtToolBarDialog</name>
<message>
- <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1759"/>
+ <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1789"/>
<source>&lt; S E P A R A T O R &gt;</source>
<translation>&lt; S E P A R A T O R &gt;</translation>
</message>
@@ -3891,7 +3857,7 @@ jako:
<context>
<name>QtTreePropertyBrowser</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+407"/>
+ <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+442"/>
<source>Property</source>
<translation>Właściwość</translation>
</message>
@@ -3904,7 +3870,7 @@ jako:
<context>
<name>SaveFormAsTemplate</name>
<message>
- <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+42"/>
+ <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+72"/>
<source>Add path...</source>
<translation>Dodaj ścieżkę...</translation>
</message>
@@ -3969,7 +3935,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>ScriptErrorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+33"/>
+ <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+63"/>
<source>An error occurred while running the scripts for &quot;%1&quot;:
</source>
<translation>Wystąpił błąd podczas uruchamiana skryptu dla &quot;%1&quot;:
@@ -3988,11 +3954,21 @@ Czy chcesz nadpisać szablon?</translation>
<source>Select signal</source>
<translation>Wybierz sygnał</translation>
</message>
+ <message>
+ <location/>
+ <source>signal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location/>
+ <source>class</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>SignalSlotConnection</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="-311"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="-358"/>
<source>SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4)</source>
<translation>NADAJNIK(%1), SYGNAŁ(%2), ODBIORNIK(%3), SLOT(%4)</translation>
</message>
@@ -4033,7 +4009,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>Spacer</name>
<message>
- <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="+245"/>
+ <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="+275"/>
<source>Horizontal Spacer &apos;%1&apos;, %2 x %3</source>
<translation>Poziomy dystans &apos;%1&apos;, %2 x %3</translation>
</message>
@@ -4046,7 +4022,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>TemplateOptionsPage</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="+126"/>
+ <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="+156"/>
<source>Template Paths</source>
<extracomment>Tab in preferences dialog</extracomment>
<translation>Ścieżki z szablonami</translation>
@@ -4088,29 +4064,27 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>VersionDialog</name>
<message>
- <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+146"/>
+ <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+172"/>
<source>Qt Designer</source>
<translation>Qt Designer</translation>
</message>
<message>
- <location line="-5"/>
+ <location line="-1"/>
<source>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;&lt;br/&gt;Version %2</source>
<translation>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;&lt;br/&gt;Wersja %2</translation>
</message>
<message>
- <location line="+2"/>
<source> Open Source Edition</source>
- <translation> Wydanie Open Source</translation>
+ <translation type="obsolete"> Wydanie Open Source</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+2"/>
<source>&lt;br/&gt;Qt Designer is a graphical user interface designer for Qt applications.&lt;br/&gt;</source>
<translation>&lt;br/&gt;Qt Designer jest aplikacją umożliwiającą projektowanie interfejsów graficznych użytkownika w aplikacjach korzystających z Qt.&lt;br/&gt;</translation>
</message>
<message>
- <location line="+16"/>
<source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.&lt;br/&gt;</source>
- <translation type="unfinished">Ten program wydany jest na licencji Qt Commercial. Aby zapoznać się ze szczegółami licencji, proszę sprawdzić plik LICENSE, który dołączony jest do pakietu Qt.&lt;br/&gt;</translation>
+ <translation type="obsolete">Ten program wydany jest na licencji Qt Commercial. Aby zapoznać się ze szczegółami licencji, proszę sprawdzić plik LICENSE, który dołączony jest do pakietu Qt.&lt;br/&gt;</translation>
</message>
<message>
<location line="+5"/>
@@ -4118,20 +4092,14 @@ Czy chcesz nadpisać szablon?</translation>
<translation type="unfinished">%1&lt;br/&gt;%2&lt;br/&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). Wszystkie prawa zastrzeżone.&lt;br/&gt;&lt;br/&gt;Program dostarczony jest BEZ ŻADNYCH GWARANCJI.&lt;br/&gt; </translation>
</message>
<message>
- <location line="-9"/>
- <source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.&lt;br/&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="-8"/>
<source>This version of Qt Designer is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel.html&lt;/a&gt; for an overview of Qt licensing.&lt;br/&gt;</source>
- <translation>Ta wersja Qt Designer jest częścią wydania Qt Open Source, przeznaczonego do tworzenia aplikacji Open Source. Qt zawiera obszerny zestaw bibliotek wykorzystywanych do pisania przenośnych aplikacji.&lt;br/&gt;&lt;br/&gt;Aby móc tworzyć przy pomocy Qt własne aplikacje bez publikowania kodu (closed source) potrzebujesz wydania komercyjnego. Opis sposobów licencjonowania Qt znajduje się na stronie &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;qtsoftware.com/company/model.html&lt;/a&gt;.&lt;br/&gt;</translation>
+ <translation type="obsolete">Ta wersja Qt Designer jest częścią wydania Qt Open Source, przeznaczonego do tworzenia aplikacji Open Source. Qt zawiera obszerny zestaw bibliotek wykorzystywanych do pisania przenośnych aplikacji.&lt;br/&gt;&lt;br/&gt;Aby móc tworzyć przy pomocy Qt własne aplikacje bez publikowania kodu (closed source) potrzebujesz wydania komercyjnego. Opis sposobów licencjonowania Qt znajduje się na stronie &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;qtsoftware.com/company/model.html&lt;/a&gt;.&lt;br/&gt;</translation>
</message>
</context>
<context>
<name>WidgetDataBase</name>
<message>
- <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="+786"/>
+ <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="+814"/>
<source>The file contains a custom widget &apos;%1&apos; whose base class (%2) differs from the current entry in the widget database (%3). The widget database is left unchanged.</source>
<translation>Plik zawiera własny widżet &apos;%1&apos; którego klasa bazowa (%2) różni się od bieżącego elementu w bazie danych z widżetami (%3). Baza danych z widżetami została niezmieniona.</translation>
</message>
@@ -4139,22 +4107,22 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::ActionEditor</name>
<message>
- <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+111"/>
+ <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+143"/>
<source>Actions</source>
<translation>Akcje</translation>
</message>
<message>
- <location line="-15"/>
+ <location line="-16"/>
<source>New...</source>
<translation>Nowa...</translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+7"/>
<source>Delete</source>
<translation>Usuń</translation>
</message>
<message>
- <location line="+305"/>
+ <location line="+307"/>
<source>New action</source>
<translation>Nowa akcja</translation>
</message>
@@ -4164,12 +4132,17 @@ Czy chcesz nadpisać szablon?</translation>
<translation>Edytuj akcję</translation>
</message>
<message>
- <location line="-408"/>
+ <location line="-411"/>
<source>Edit...</source>
<translation>Edytuj...</translation>
</message>
<message>
<location line="+1"/>
+ <source>Go to slot...</source>
+ <translation type="unfinished">Przejdź do slotu...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
<source>Copy</source>
<translation>Skopiuj</translation>
</message>
@@ -4189,7 +4162,7 @@ Czy chcesz nadpisać szablon?</translation>
<translation>Zaznacz wszystko</translation>
</message>
<message>
- <location line="+52"/>
+ <location line="+54"/>
<source>Configure Action Editor</source>
<translation>Skonfiguruj edytor akcji</translation>
</message>
@@ -4204,7 +4177,7 @@ Czy chcesz nadpisać szablon?</translation>
<translation>Szczegółowy widok</translation>
</message>
<message>
- <location line="+406"/>
+ <location line="+412"/>
<source>Remove actions</source>
<translation>Usuń akcje</translation>
</message>
@@ -4214,7 +4187,7 @@ Czy chcesz nadpisać szablon?</translation>
<translation>Usuń akcję &apos;%1&apos;</translation>
</message>
<message>
- <location line="+183"/>
+ <location line="+186"/>
<source>Used In</source>
<translation>Użyta w</translation>
</message>
@@ -4222,7 +4195,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::ActionModel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+64"/>
+ <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+95"/>
<source>Name</source>
<translation>Nazwa</translation>
</message>
@@ -4255,7 +4228,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::BuddyEditor</name>
<message>
- <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+235"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+265"/>
<source>Add buddy</source>
<translation>Dodaj skojarzoną etykietę</translation>
</message>
@@ -4291,7 +4264,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::BuddyEditorPlugin</name>
<message>
- <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+47"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+77"/>
<source>Edit Buddies</source>
<translation>Edytuj skojarzone etykiety</translation>
</message>
@@ -4299,7 +4272,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::BuddyEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+30"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+60"/>
<source>Edit Buddies</source>
<translation>Edytuj skojarzone etykiety</translation>
</message>
@@ -4353,7 +4326,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::CodeDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+69"/>
+ <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+99"/>
<source>Save...</source>
<translation>Zachowaj...</translation>
</message>
@@ -4411,7 +4384,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::ColorAction</name>
<message>
- <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+220"/>
+ <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+250"/>
<source>Text Color</source>
<translation>Color tekstu</translation>
</message>
@@ -4419,7 +4392,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::ComboBoxTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+42"/>
+ <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+72"/>
<source>Edit Items...</source>
<translation>Edytuj elementy...</translation>
</message>
@@ -4458,7 +4431,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::ConnectionModel</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="-470"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="-465"/>
<source>Sender</source>
<translation>Nadajnik</translation>
</message>
@@ -4478,7 +4451,7 @@ Czy chcesz nadpisać szablon?</translation>
<translation>Slot</translation>
</message>
<message>
- <location line="+97"/>
+ <location line="+90"/>
<source>&lt;sender&gt;</source>
<translation>&lt;nadajnik&gt;</translation>
</message>
@@ -4511,7 +4484,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::ContainerWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+82"/>
+ <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+112"/>
<source>Insert Page Before Current Page</source>
<translation>Wstaw stronę przed bieżącą stroną</translation>
</message>
@@ -4574,7 +4547,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::DesignerPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+614"/>
+ <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+644"/>
<location line="+6"/>
<source>AlignLeft</source>
<translation>Wyrównanie do lewej</translation>
@@ -4701,7 +4674,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::DeviceProfileDialog</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+33"/>
+ <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+63"/>
<source>Device Profiles (*.%1)</source>
<translation>Profile urządzeń (*.%1)</translation>
</message>
@@ -4806,9 +4779,62 @@ Czy chcesz nadpisać szablon?</translation>
</message>
</context>
<context>
+ <name>qdesigner_internal::EmbeddedOptionsControl</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="-260"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Add a profile</source>
+ <translation type="unfinished">Dodaj profil</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Edit the selected profile</source>
+ <translation type="unfinished">Edytuj zaznaczony profil</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Delete the selected profile</source>
+ <translation type="unfinished">Usuń zaznaczony profil</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Add Profile</source>
+ <translation type="unfinished">Dodaj profil</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>New profile</source>
+ <translation type="unfinished">Nowy profil</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Edit Profile</source>
+ <translation type="unfinished">Edytuj profil</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Delete Profile</source>
+ <translation type="unfinished">Usuń profil</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Would you like to delete the profile &apos;%1&apos;?</source>
+ <translation type="unfinished">Czy chcesz usunać profil &apos;%1&apos;?</translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>Default</source>
+ <translation type="unfinished">Domyślny</translation>
+ </message>
+</context>
+<context>
<name>qdesigner_internal::FilterWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+155"/>
+ <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+185"/>
<source>&lt;Filter&gt;</source>
<translation>&lt;Filtr&gt;</translation>
</message>
@@ -4816,7 +4842,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::FormEditor</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+160"/>
+ <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+190"/>
<source>Resource File Changed</source>
<translation>Zmieniony plik z zasobami</translation>
</message>
@@ -4837,7 +4863,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::FormWindow</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1262"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1267"/>
<source>Edit contents</source>
<translation>Edytuj zawartość</translation>
</message>
@@ -4847,7 +4873,7 @@ Czy chcesz nadpisać szablon?</translation>
<translation>F2</translation>
</message>
<message>
- <location line="+836"/>
+ <location line="+841"/>
<source>Resize</source>
<translation>Zmień rozmiar</translation>
</message>
@@ -4878,13 +4904,13 @@ Czy chcesz nadpisać szablon?</translation>
<translation>Rozmieść</translation>
</message>
<message>
- <location line="+490"/>
+ <location line="+493"/>
<location line="+55"/>
<source>Drop widget</source>
<translation>Upuść widżet</translation>
</message>
<message numerus="yes">
- <location line="-1052"/>
+ <location line="-1055"/>
<source>Paste %n action(s)</source>
<translation>
<numerusform>Wklej %n akcję</numerusform>
@@ -4917,12 +4943,12 @@ Czy chcesz nadpisać szablon?</translation>
<translation>Wybierz przodka</translation>
</message>
<message>
- <location line="+573"/>
+ <location line="+576"/>
<source>A QMainWindow-based form does not contain a central widget.</source>
<translation>Formularz bazujący na QMainWindow nie zawiera centralnego widżetu.</translation>
</message>
<message>
- <location line="-791"/>
+ <location line="-794"/>
<source>Raise widgets</source>
<translation>Przenieś widżety na wierzch</translation>
</message>
@@ -4935,7 +4961,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::FormWindowBase</name>
<message>
- <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+363"/>
+ <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+397"/>
<source>Delete</source>
<translation>Usuń</translation>
</message>
@@ -4948,7 +4974,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::FormWindowManager</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+337"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+368"/>
<source>Cu&amp;t</source>
<translation>Wy&amp;tnij</translation>
</message>
@@ -5030,7 +5056,7 @@ Czy chcesz nadpisać szablon?</translation>
<translation>Dopasuj wielkość zaznaczonego widżetu</translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+6"/>
<source>Lay Out &amp;Horizontally</source>
<translation>Rozmieść w po&amp;ziomie</translation>
</message>
@@ -5080,7 +5106,7 @@ Czy chcesz nadpisać szablon?</translation>
<translation>Rozmieszcza zaznaczone widżety pionowo w splitterze</translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+7"/>
<source>&amp;Break Layout</source>
<translation>&amp;Usuń rozmieszczenie</translation>
</message>
@@ -5105,7 +5131,7 @@ Czy chcesz nadpisać szablon?</translation>
<translation>Us&amp;tawienia formularza...</translation>
</message>
<message>
- <location line="+75"/>
+ <location line="+78"/>
<source>Break Layout</source>
<translation>Usuń rozmieszczenie</translation>
</message>
@@ -5121,17 +5147,17 @@ Czy chcesz nadpisać szablon?</translation>
<translation>Nie można utworzyć podglądu formularza</translation>
</message>
<message>
- <location line="+324"/>
+ <location line="+341"/>
<source>Form Settings - %1</source>
<translation>Ustawienia formularza - %1</translation>
</message>
<message>
- <location line="-490"/>
+ <location line="-510"/>
<source>Removes empty columns and rows</source>
<translation>Usuń puste kolumny i wiersze</translation>
</message>
<message>
- <location line="-49"/>
+ <location line="-50"/>
<source>Lay Out in a &amp;Form Layout</source>
<translation>Rozmieść w &amp;formularzu</translation>
</message>
@@ -5141,7 +5167,7 @@ Czy chcesz nadpisać szablon?</translation>
<translation>Rozmieszcza zaznaczone widżety w formularzu</translation>
</message>
<message>
- <location line="+44"/>
+ <location line="+45"/>
<source>Si&amp;mplify Grid Layout</source>
<translation>Up&amp;rość rozmieszczenie w siatce</translation>
</message>
@@ -5149,7 +5175,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::FormWindowSettings</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+162"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+193"/>
<source>None</source>
<translation>Żaden</translation>
</message>
@@ -5200,7 +5226,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::GroupBoxTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+56"/>
+ <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+86"/>
<source>Change title...</source>
<translation>Zmień tytuł...</translation>
</message>
@@ -5216,7 +5242,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::IconSelector</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+210"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+211"/>
<source>The pixmap file &apos;%1&apos; cannot be read.</source>
<translation>Nie można odczytać pliku z pixmapą %1.</translation>
</message>
@@ -5309,7 +5335,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::ItemListEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+349"/>
+ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+358"/>
<source>Properties &amp;&lt;&lt;</source>
<translation>Własciwości &amp;&lt;&lt;</translation>
</message>
@@ -5368,7 +5394,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::LabelTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="+59"/>
+ <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="+89"/>
<source>Change rich text...</source>
<translation>Zmień tekst sformatowany...</translation>
</message>
@@ -5381,7 +5407,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::LineEditTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+54"/>
+ <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+84"/>
<source>Change text...</source>
<translation>Zmień tekst...</translation>
</message>
@@ -5389,7 +5415,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::ListWidgetEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+43"/>
+ <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+73"/>
<source>New Item</source>
<translation>Nowy element</translation>
</message>
@@ -5407,7 +5433,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::ListWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+41"/>
+ <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+71"/>
<source>Edit Items...</source>
<translation>Edytuj elementy...</translation>
</message>
@@ -5443,7 +5469,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::MenuTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+30"/>
+ <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+60"/>
<source>Remove</source>
<translation>Usuń</translation>
</message>
@@ -5502,7 +5528,7 @@ Czy chcesz nadpisać szablon?</translation>
<context>
<name>qdesigner_internal::NewDynamicPropertyDialog</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+104"/>
+ <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+134"/>
<source>Set Property Name</source>
<translation>Ustaw nazwę właściwości</translation>
</message>
@@ -5623,7 +5649,7 @@ Wybierz inną nazwę.</translation>
<context>
<name>qdesigner_internal::NewPromotedClassPanel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+66"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+96"/>
<source>Add</source>
<translation>Dodaj</translation>
</message>
@@ -5661,7 +5687,7 @@ Wybierz inną nazwę.</translation>
<context>
<name>qdesigner_internal::ObjectInspector</name>
<message>
- <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+727"/>
+ <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+758"/>
<source>&amp;Find in Text...</source>
<translation>Z&amp;najdź w tekście...</translation>
</message>
@@ -5677,7 +5703,7 @@ Wybierz inną nazwę.</translation>
<context>
<name>qdesigner_internal::OrderDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+83"/>
+ <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+113"/>
<source>Index %1 (%2)</source>
<translation>Indeks %1 (%2)</translation>
</message>
@@ -5758,7 +5784,7 @@ Wybierz inną nazwę.</translation>
<context>
<name>qdesigner_internal::PaletteEditorButton</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+31"/>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+61"/>
<source>Change Palette</source>
<translation>Zmień paletę</translation>
</message>
@@ -5766,7 +5792,7 @@ Wybierz inną nazwę.</translation>
<context>
<name>qdesigner_internal::PaletteModel</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+351"/>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+381"/>
<source>Color Role</source>
<translation>Rola koloru</translation>
</message>
@@ -5818,15 +5844,61 @@ Wybierz inną nazwę.</translation>
<context>
<name>qdesigner_internal::PlainTextEditorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+39"/>
+ <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+69"/>
<source>Edit text</source>
<translation>Edytuj tekst</translation>
</message>
</context>
<context>
+ <name>qdesigner_internal::PluginDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="+72"/>
+ <source>Components</source>
+ <translation>Komponenty</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Plugin Information</source>
+ <translation>Informacje o wtyczkach</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>Qt Designer couldn&apos;t find any plugins</source>
+ <translation>Qt Designer nie mógł znaleźć żadnej wtyczki</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Qt Designer found the following plugins</source>
+ <translation>Qt Designer znalazł następujące wtyczki:</translation>
+ </message>
+ <message>
+ <source>TextLabel</source>
+ <translation type="obsolete">Etykieta</translation>
+ </message>
+ <message>
+ <location line="-52"/>
+ <source>Refresh</source>
+ <translation>Odśwież</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Scan for newly installed custom widget plugins.</source>
+ <translation>Szukaj nowo zainstalowanych wtyczek z widżetami.</translation>
+ </message>
+ <message>
+ <location line="+106"/>
+ <source>New custom widget plugins have been found.</source>
+ <translation>Znaleziono nową wtyczkę z widżetami.</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation type="obsolete">1</translation>
+ </message>
+</context>
+<context>
<name>qdesigner_internal::PreviewActionGroup</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+65"/>
+ <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+95"/>
<source>%1 Style</source>
<translation>Styl %1</translation>
</message>
@@ -5869,7 +5941,7 @@ Wybierz inną nazwę.</translation>
<context>
<name>qdesigner_internal::PreviewDeviceSkin</name>
<message>
- <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+188"/>
+ <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+218"/>
<source>&amp;Close</source>
<translation>Za&amp;mknij</translation>
</message>
@@ -5966,7 +6038,7 @@ Wybierz inną nazwę.</translation>
<context>
<name>qdesigner_internal::PromotionTaskMenu</name>
<message>
- <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+55"/>
+ <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+85"/>
<source>Promoted widgets...</source>
<translation>Zastępcze widżety...</translation>
</message>
@@ -5994,7 +6066,7 @@ Wybierz inną nazwę.</translation>
<context>
<name>qdesigner_internal::PropertyEditor</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+222"/>
+ <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+188"/>
<source>Add Dynamic Property...</source>
<translation>Dodaj dynamiczną właściwość ...</translation>
</message>
@@ -6029,14 +6101,14 @@ Wybierz inną nazwę.</translation>
<translation>Skonfiguruj edytor właściwości</translation>
</message>
<message>
- <location line="+534"/>
+ <location line="+533"/>
<source>Object: %1
Class: %2</source>
<translation>Obiekt: %1
Klasa: %2</translation>
</message>
<message>
- <location line="-548"/>
+ <location line="-547"/>
<source>String...</source>
<translation>String...</translation>
</message>
@@ -6054,7 +6126,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::PropertyLineEdit</name>
<message>
- <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+58"/>
+ <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+88"/>
<source>Insert line break</source>
<translation>Wstaw znak końca linii</translation>
</message>
@@ -6157,8 +6229,13 @@ Klasa: %2</translation>
<source>Change script...</source>
<translation>Zmień skrypt...</translation>
</message>
+ <message>
+ <location line="+415"/>
+ <source>no signals available</source>
+ <translation type="unfinished"></translation>
+ </message>
<message numerus="yes">
- <location line="+404"/>
+ <location line="+67"/>
<source>Set size constraint on %n widget(s)</source>
<translation>
<numerusform>Ustaw ograniczenie rozmiaru w %n obiekcie</numerusform>
@@ -6167,7 +6244,7 @@ Klasa: %2</translation>
</translation>
</message>
<message>
- <location line="-403"/>
+ <location line="-481"/>
<source>Change signals/slots...</source>
<translation>Zmień sygnały/sloty...</translation>
</message>
@@ -6212,7 +6289,7 @@ Klasa: %2</translation>
<translation>Ustaw maksymalny rozmiar</translation>
</message>
<message>
- <location line="+236"/>
+ <location line="+235"/>
<source>Edit ToolTip</source>
<translation>Edytuj podpowiedź</translation>
</message>
@@ -6225,7 +6302,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::QDesignerWidgetBox</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="+97"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="+127"/>
<location line="+13"/>
<source>Unexpected element &lt;%1&gt;</source>
<translation>Niespodziewany element &lt;%1&gt;</translation>
@@ -6281,7 +6358,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::QtGradientStopsController</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="+147"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="+177"/>
<source>H</source>
<translation>H</translation>
</message>
@@ -6456,7 +6533,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::ScriptDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+38"/>
+ <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+68"/>
<source>Edit script</source>
<translation>Edytuj skrypt</translation>
</message>
@@ -6506,7 +6583,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::SignalSlotEditorPlugin</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="+46"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="+76"/>
<source>Edit Signals/Slots</source>
<translation>Edytuj sygnały/sloty</translation>
</message>
@@ -6519,7 +6596,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::SignalSlotEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="+32"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="+62"/>
<source>Edit Signals/Slots</source>
<translation>Edytuj sygnały/sloty</translation>
</message>
@@ -6527,7 +6604,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::StatusBarTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+55"/>
+ <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+85"/>
<source>Remove</source>
<translation>Usuń</translation>
</message>
@@ -6535,7 +6612,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::StringListEditorButton</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+30"/>
+ <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+60"/>
<source>Change String List</source>
<translation>Zmień listę tekstów</translation>
</message>
@@ -6543,7 +6620,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::StyleSheetEditorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+71"/>
+ <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+101"/>
<source>Edit Style Sheet</source>
<translation>Edytuj arkusz stylu</translation>
</message>
@@ -6582,7 +6659,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::TabOrderEditor</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+333"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+363"/>
<source>Start from Here</source>
<translation>Rozpocznij stąd</translation>
</message>
@@ -6610,7 +6687,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::TabOrderEditorPlugin</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="+47"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="+77"/>
<source>Edit Tab Order</source>
<translation>Edytuj kolejność tabulacji</translation>
</message>
@@ -6618,7 +6695,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::TabOrderEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="+31"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="+61"/>
<source>Edit Tab Order</source>
<translation>Edytuj kolejność tabulacji</translation>
</message>
@@ -6636,7 +6713,7 @@ Klasa: %2</translation>
<translation>&amp;Elementy</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+44"/>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+74"/>
<source>New Row</source>
<translation>Nowy wiersz</translation>
</message>
@@ -6675,7 +6752,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::TableWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+38"/>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+68"/>
<source>Edit Items...</source>
<translation>Edytuj elementy...</translation>
</message>
@@ -6706,7 +6783,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::TextEditTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+33"/>
+ <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+63"/>
<source>Change HTML...</source>
<translation>Zmień HTML...</translation>
</message>
@@ -6752,7 +6829,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::ToolBarEventFilter</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+209"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+239"/>
<source>Insert Separator</source>
<translation>Wstaw separator</translation>
</message>
@@ -6795,7 +6872,7 @@ Klasa: %2</translation>
<translation>Drzewo elementów</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+50"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+80"/>
<source>&amp;Columns</source>
<translation>&amp;Kolumny</translation>
</message>
@@ -6906,7 +6983,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::TreeWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+37"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+67"/>
<source>Edit Items...</source>
<translation>Edytuj elementy...</translation>
</message>
@@ -6914,7 +6991,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::WidgetBox</name>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="+83"/>
+ <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="+113"/>
<source>Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML.</source>
<translation>Ostrzeżenie: Błąd tworzenia widżetu w panelu widżetów. Mogło to być spowodowane niepoprawnym kodem XML widżetu.</translation>
</message>
@@ -6922,17 +6999,17 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::WidgetBoxTreeWidget</name>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-267"/>
+ <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-268"/>
<source>Scratchpad</source>
<translation>Notatnik</translation>
</message>
<message>
- <location line="+360"/>
+ <location line="+370"/>
<source>Custom Widgets</source>
<translation>Własne widżety</translation>
</message>
<message>
- <location line="+261"/>
+ <location line="+260"/>
<source>Expand all</source>
<translation>Rozszerz wszystkie</translation>
</message>
@@ -6973,7 +7050,7 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::WidgetEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+41"/>
+ <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+71"/>
<source>Edit Widgets</source>
<translation>Edytuj widżety</translation>
</message>
@@ -6981,12 +7058,12 @@ Klasa: %2</translation>
<context>
<name>qdesigner_internal::WidgetFactory</name>
<message>
- <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="+237"/>
+ <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="+267"/>
<source>The custom widget factory registered for widgets of class %1 returned 0.</source>
<translation>Fabryka widżetów użytkownika zarejestrowana dla widżetów klasy %1 zwróciła 0.</translation>
</message>
<message>
- <location line="+40"/>
+ <location line="+44"/>
<source>A class name mismatch occurred when creating a widget using the custom widget factory registered for widgets of class %1. It returned a widget of class %2.</source>
<translation>Wystąpiła niezgodność nazwy klasy podczas tworzenia widżetu przy pomocy fabryki widżetów użytkownika zarejestrowanej dla klasy %1. Zwrócony został widżet klasy %2.</translation>
</message>
@@ -7029,7 +7106,7 @@ To wskazuje na niespójność w pliku &quot;ui&quot;.</translation>
<context>
<name>qdesigner_internal::ZoomMenu</name>
<message>
- <location filename="../tools/designer/src/lib/shared/zoomwidget.cpp" line="+54"/>
+ <location filename="../tools/designer/src/lib/shared/zoomwidget.cpp" line="+84"/>
<source>%1 %</source>
<extracomment>Zoom factor</extracomment>
<translation>%1 %</translation>
diff --git a/translations/designer_untranslated.ts b/translations/designer_untranslated.ts
index 209d871..1666363 100644
--- a/translations/designer_untranslated.ts
+++ b/translations/designer_untranslated.ts
@@ -4,7 +4,7 @@
<context>
<name></name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+617"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+647"/>
<source>&lt;object&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -19,7 +19,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="+43"/>
+ <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="+73"/>
<source>The moose in the noose
ate the goose who was loose.</source>
<translation type="unfinished"></translation>
@@ -28,7 +28,7 @@ ate the goose who was loose.</source>
<context>
<name>AbstractFindWidget</name>
<message>
- <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+97"/>
+ <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+127"/>
<source>&amp;Previous</source>
<translation type="unfinished"></translation>
</message>
@@ -74,7 +74,7 @@ ate the goose who was loose.</source>
<context>
<name>AppFontDialog</name>
<message>
- <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+388"/>
+ <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+418"/>
<source>Additional Fonts</source>
<translation type="unfinished"></translation>
</message>
@@ -186,7 +186,7 @@ ate the goose who was loose.</source>
<context>
<name>AssistantClient</name>
<message>
- <location filename="../tools/designer/src/designer/assistantclient.cpp" line="+70"/>
+ <location filename="../tools/designer/src/designer/assistantclient.cpp" line="+100"/>
<source>Unable to send request: Assistant is not responding.</source>
<translation type="unfinished"></translation>
</message>
@@ -204,7 +204,7 @@ ate the goose who was loose.</source>
<context>
<name>BrushManagerProxy</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+191"/>
+ <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+221"/>
<source>The element &apos;%1&apos; is missing the required attribute &apos;%2&apos;.</source>
<translation type="unfinished"></translation>
</message>
@@ -232,7 +232,7 @@ ate the goose who was loose.</source>
<context>
<name>BrushPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+22"/>
+ <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+52"/>
<source>No brush</source>
<translation type="unfinished"></translation>
</message>
@@ -325,19 +325,24 @@ ate the goose who was loose.</source>
<context>
<name>Command</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+177"/>
- <location line="+211"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+208"/>
+ <location line="+258"/>
<source>Change signal</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-209"/>
- <location line="+221"/>
+ <location line="-256"/>
+ <location line="+268"/>
<source>Change slot</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+14"/>
+ <location line="-220"/>
+ <source>Change signal-slot connection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+234"/>
<source>Change sender</source>
<translation type="unfinished"></translation>
</message>
@@ -347,7 +352,7 @@ ate the goose who was loose.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+113"/>
+ <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+143"/>
<source>Add connection</source>
<translation type="unfinished"></translation>
</message>
@@ -372,7 +377,7 @@ ate the goose who was loose.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="+117"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="+149"/>
<source>Insert &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
@@ -397,7 +402,7 @@ ate the goose who was loose.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+51"/>
+ <location line="+53"/>
<source>Promote to custom widget</source>
<translation type="unfinished"></translation>
</message>
@@ -427,48 +432,48 @@ ate the goose who was loose.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+237"/>
- <location line="+232"/>
- <location line="+75"/>
+ <location line="+240"/>
+ <location line="+235"/>
+ <location line="+78"/>
<source>Move Page</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-273"/>
- <location line="+122"/>
- <location line="+183"/>
- <location line="+664"/>
+ <location line="-279"/>
+ <location line="+123"/>
+ <location line="+188"/>
+ <location line="+666"/>
<source>Delete Page</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-931"/>
- <location line="+122"/>
+ <location line="-939"/>
+ <location line="+123"/>
<source>Page</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-120"/>
- <location line="+303"/>
- <location line="+670"/>
+ <location line="-121"/>
+ <location line="+309"/>
+ <location line="+672"/>
<source>page</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-970"/>
- <location line="+122"/>
- <location line="+181"/>
- <location line="+665"/>
+ <location line="-978"/>
+ <location line="+123"/>
+ <location line="+186"/>
+ <location line="+667"/>
<source>Insert Page</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-849"/>
+ <location line="-856"/>
<source>tab</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+204"/>
+ <location line="+209"/>
<source>Change Tab order</source>
<translation type="unfinished"></translation>
</message>
@@ -513,12 +518,12 @@ ate the goose who was loose.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+94"/>
+ <location line="+95"/>
<source>Change Layout Item Geometry</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+575"/>
+ <location line="+576"/>
<source>Change Table Contents</source>
<translation type="unfinished"></translation>
</message>
@@ -560,7 +565,7 @@ ate the goose who was loose.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1131"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1161"/>
<source>Set action text</source>
<translation type="unfinished"></translation>
</message>
@@ -571,7 +576,7 @@ ate the goose who was loose.</source>
</message>
<message>
<location line="+89"/>
- <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+861"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+891"/>
<source>Move action</source>
<translation type="unfinished"></translation>
</message>
@@ -586,7 +591,7 @@ ate the goose who was loose.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+172"/>
+ <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+202"/>
<source>Change signals/slots</source>
<translation type="unfinished"></translation>
</message>
@@ -611,17 +616,17 @@ ate the goose who was loose.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-1808"/>
+ <location line="-1821"/>
<source>Change Z-order of &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+623"/>
+ <location line="+625"/>
<source>Simplify Grid Layout</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+195"/>
+ <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+225"/>
<source>Create button group</source>
<translation type="unfinished"></translation>
</message>
@@ -642,7 +647,7 @@ ate the goose who was loose.</source>
</message>
<message>
<location line="+8"/>
- <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+373"/>
+ <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+458"/>
<source>Add &apos;%1&apos; to &apos;%2&apos;</source>
<extracomment>Command description for adding buttons to a QButtonGroup</extracomment>
<translation type="unfinished"></translation>
@@ -659,23 +664,23 @@ ate the goose who was loose.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+318"/>
+ <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+349"/>
<source>Morph %1/&apos;%2&apos; into %3</source>
<extracomment>MorphWidgetCommand description</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_command2.cpp" line="+124"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_command2.cpp" line="+154"/>
<source>Change layout of &apos;%1&apos; from %2 to %3</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+25"/>
+ <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+55"/>
<source>Change script</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1179"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1209"/>
<source>Changed &apos;%1&apos; of &apos;%2&apos;</source>
<translation type="unfinished"></translation>
</message>
@@ -749,7 +754,7 @@ ate the goose who was loose.</source>
<context>
<name>DPI_Chooser</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+39"/>
+ <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+69"/>
<source>Standard (96 x 96)</source>
<extracomment>Embedded device standard screen resolution</extracomment>
<translation type="unfinished"></translation>
@@ -770,7 +775,7 @@ ate the goose who was loose.</source>
<context>
<name>Designer</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+409"/>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+439"/>
<source>Qt Designer</source>
<translation type="unfinished"></translation>
</message>
@@ -836,7 +841,7 @@ ate the goose who was loose.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+735"/>
+ <location line="+746"/>
<source>Custom Widgets</source>
<translation type="unfinished"></translation>
</message>
@@ -846,7 +851,7 @@ ate the goose who was loose.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+602"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+682"/>
<source>Unable to launch %1.</source>
<translation type="unfinished"></translation>
</message>
@@ -859,7 +864,7 @@ ate the goose who was loose.</source>
<context>
<name>DesignerMetaEnum</name>
<message>
- <location line="-463"/>
+ <location line="-513"/>
<source>%1 is not a valid enumeration value of &apos;%2&apos;.</source>
<translation type="unfinished"></translation>
</message>
@@ -880,7 +885,7 @@ ate the goose who was loose.</source>
<context>
<name>DeviceProfile</name>
<message>
- <location filename="../tools/designer/src/lib/shared/deviceprofile.cpp" line="+367"/>
+ <location filename="../tools/designer/src/lib/shared/deviceprofile.cpp" line="+397"/>
<source>&apos;%1&apos; is not a number.</source>
<extracomment>Reading a number for an embedded device profile</extracomment>
<translation type="unfinished"></translation>
@@ -922,7 +927,7 @@ ate the goose who was loose.</source>
<context>
<name>DeviceSkin</name>
<message>
- <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+49"/>
+ <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/>
<source>The image file &apos;%1&apos; could not be loaded.</source>
<translation type="unfinished"></translation>
</message>
@@ -980,7 +985,7 @@ ate the goose who was loose.</source>
<context>
<name>EmbeddedOptionsControl</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="+281"/>
+ <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="+311"/>
<source>&lt;html&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Font&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%1, %2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Style&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Resolution&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%4 x %5&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/html&gt;</source>
<extracomment>Format embedded device profile description</extracomment>
<translation type="unfinished"></translation>
@@ -1004,7 +1009,7 @@ ate the goose who was loose.</source>
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation type="unfinished"></translation>
</message>
@@ -1032,7 +1037,7 @@ ate the goose who was loose.</source>
<context>
<name>FontPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+32"/>
+ <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+62"/>
<source>PreferDefault</source>
<translation type="unfinished"></translation>
</message>
@@ -1055,7 +1060,7 @@ ate the goose who was loose.</source>
<context>
<name>FormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+321"/>
+ <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+351"/>
<source>Invalid stretch value for &apos;%1&apos;: &apos;%2&apos;</source>
<extracomment>Parsing layout stretch values</extracomment>
<translation type="unfinished"></translation>
@@ -1070,7 +1075,7 @@ ate the goose who was loose.</source>
<context>
<name>FormEditorOptionsPage</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="+61"/>
+ <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="+91"/>
<source>%1 %</source>
<translation type="unfinished"></translation>
</message>
@@ -1137,7 +1142,7 @@ ate the goose who was loose.</source>
<context>
<name>FormWindow</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1669"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1705"/>
<source>Unexpected element &lt;%1&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -1213,7 +1218,7 @@ ate the goose who was loose.</source>
<context>
<name>IconSelector</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+321"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+353"/>
<source>All Pixmaps (</source>
<translation type="unfinished"></translation>
</message>
@@ -1221,7 +1226,7 @@ ate the goose who was loose.</source>
<context>
<name>ItemPropertyBrowser</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+36"/>
+ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+66"/>
<source>XX Icon Selected off</source>
<extracomment>Sample string to determinate the width for the first column of the list item property browser</extracomment>
<translation type="unfinished"></translation>
@@ -1230,7 +1235,7 @@ ate the goose who was loose.</source>
<context>
<name>LanguageResourceDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-234"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-235"/>
<source>Choose Resource</source>
<translation type="unfinished"></translation>
</message>
@@ -1238,7 +1243,7 @@ ate the goose who was loose.</source>
<context>
<name>MainWindowBase</name>
<message>
- <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+89"/>
+ <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+119"/>
<source>Main</source>
<extracomment>Not currently used (main tool bar)</extracomment>
<translation type="unfinished"></translation>
@@ -1272,7 +1277,7 @@ ate the goose who was loose.</source>
<context>
<name>NewForm</name>
<message>
- <location filename="../tools/designer/src/designer/newform.cpp" line="+49"/>
+ <location filename="../tools/designer/src/designer/newform.cpp" line="+79"/>
<source>C&amp;reate</source>
<translation type="unfinished"></translation>
</message>
@@ -1325,7 +1330,7 @@ ate the goose who was loose.</source>
<context>
<name>NewFormWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+465"/>
+ <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+495"/>
<source>Unable to open the form template file &apos;%1&apos;: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -1333,7 +1338,7 @@ ate the goose who was loose.</source>
<context>
<name>ObjectInspectorModel</name>
<message>
- <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+331"/>
+ <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+364"/>
<source>Object</source>
<translation type="unfinished"></translation>
</message>
@@ -1356,7 +1361,7 @@ ate the goose who was loose.</source>
<context>
<name>ObjectNameDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+135"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+162"/>
<source>Change Object Name</source>
<translation type="unfinished"></translation>
</message>
@@ -1367,49 +1372,13 @@ ate the goose who was loose.</source>
</message>
</context>
<context>
- <name>qdesigner_internal::PluginDialog</name>
- <message>
- <location filename="../tools/designer/src/designer/plugindialog.cpp" line="+40"/>
- <source>Components</source>
- <translation type="unfinished"></translation>
- </message>
+ <name>PluginDialog</name>
<message>
- <location line="+13"/>
- <location filename="../tools/designer/src/designer/plugindialog.ui"/>
+ <location filename="../tools/designer/src/lib/shared/plugindialog.ui"/>
<source>Plugin Information</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
- <source>Refresh</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+1"/>
- <source>Scan for newly installed custom widget plugins.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+48"/>
- <source>Qt Designer couldn&apos;t find any plugins</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+3"/>
- <source>Qt Designer found the following plugins</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+55"/>
- <source>New custom widget plugins have been found.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/designer/src/designer/plugindialog.ui"/>
- <source>TextLabel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location/>
<source>1</source>
<translation type="unfinished"></translation>
@@ -1426,7 +1395,7 @@ ate the goose who was loose.</source>
<context>
<name>PreviewConfigurationWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+125"/>
+ <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+155"/>
<source>Default</source>
<translation type="unfinished"></translation>
</message>
@@ -1474,7 +1443,7 @@ ate the goose who was loose.</source>
<context>
<name>PromotionModel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+86"/>
+ <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+116"/>
<source>Not used</source>
<extracomment>Usage of promoted widgets</extracomment>
<translation type="unfinished"></translation>
@@ -1483,7 +1452,7 @@ ate the goose who was loose.</source>
<context>
<name>Q3WizardContainer</name>
<message>
- <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="+142"/>
+ <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="+172"/>
<location line="+5"/>
<source>Page</source>
<translation type="unfinished"></translation>
@@ -1492,7 +1461,7 @@ ate the goose who was loose.</source>
<context>
<name>QAbstractFormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+176"/>
+ <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+206"/>
<source>Unexpected element &lt;%1&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -1538,7 +1507,7 @@ This indicates an inconsistency in the ui-file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+750"/>
+ <location line="+749"/>
<source>Invalid QButtonGroup reference &apos;%1&apos; referenced by &apos;%2&apos;.</source>
<translation type="unfinished"></translation>
</message>
@@ -1551,7 +1520,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QAxWidgetPlugin</name>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+45"/>
+ <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+75"/>
<source>ActiveX control</source>
<translation type="unfinished"></translation>
</message>
@@ -1564,7 +1533,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QAxWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+89"/>
+ <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+119"/>
<source>Set Control</source>
<translation type="unfinished"></translation>
</message>
@@ -1587,7 +1556,7 @@ 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="+53"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="+83"/>
<source>%1 is not a promoted class.</source>
<translation type="unfinished"></translation>
</message>
@@ -1637,7 +1606,7 @@ This indicates an inconsistency in the ui-file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+58"/>
+ <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+88"/>
<source>Exception at line %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -1656,7 +1625,7 @@ Script: %3</source>
<context>
<name>QDesigner</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+111"/>
+ <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+141"/>
<source>%1 - warning</source>
<translation type="unfinished"></translation>
</message>
@@ -1674,7 +1643,7 @@ Script: %3</source>
<context>
<name>QDesignerActions</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+151"/>
+ <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+178"/>
<source>Edit Widgets</source>
<translation type="unfinished"></translation>
</message>
@@ -1841,12 +1810,12 @@ Do you want to update the file location or generate a new form?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+239"/>
+ <location line="+201"/>
<source>&amp;Close Preview</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-931"/>
+ <location line="-893"/>
<source>Save &amp;Image...</source>
<translation type="unfinished"></translation>
</message>
@@ -1870,7 +1839,7 @@ Would you like to retry?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+277"/>
+ <location line="+239"/>
<location line="+23"/>
<source>The backup file %1 could not be written.</source>
<translation type="unfinished"></translation>
@@ -1902,7 +1871,7 @@ Would you like to retry?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-1196"/>
+ <location line="-1158"/>
<source>&amp;New...</source>
<translation type="unfinished"></translation>
</message>
@@ -1933,12 +1902,12 @@ Would you like to retry?</source>
</message>
<message>
<location line="+1"/>
- <location line="+934"/>
+ <location line="+896"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-929"/>
+ <location line="-891"/>
<source>View &amp;Code...</source>
<translation type="unfinished"></translation>
</message>
@@ -1949,23 +1918,23 @@ Would you like to retry?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+467"/>
+ <location line="+429"/>
<source>Preview failed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-613"/>
+ <location line="-575"/>
<source>Code generation failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+328"/>
- <location line="+66"/>
+ <location line="+34"/>
<source>Assistant</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+265"/>
+ <location line="+259"/>
<source>Saved image %1.</source>
<translation type="unfinished"></translation>
</message>
@@ -1980,7 +1949,7 @@ Would you like to retry?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-1186"/>
+ <location line="-1148"/>
<source>ALT+CTRL+S</source>
<translation type="unfinished"></translation>
</message>
@@ -1988,7 +1957,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerAppearanceOptionsPage</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="+108"/>
+ <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="+138"/>
<source>Appearance</source>
<extracomment>Tab in preferences dialog</extracomment>
<translation type="unfinished"></translation>
@@ -2025,7 +1994,7 @@ Would you like to retry?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+149"/>
+ <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+179"/>
<source>Control loaded</source>
<translation type="unfinished"></translation>
</message>
@@ -2038,7 +2007,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerFormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+58"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+88"/>
<source>Script errors occurred:</source>
<translation type="unfinished"></translation>
</message>
@@ -2056,7 +2025,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerFormWindow</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="+187"/>
+ <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="+217"/>
<source>%1 - %2[*]</source>
<translation type="unfinished"></translation>
</message>
@@ -2141,7 +2110,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerPluginManager</name>
<message>
- <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="+197"/>
+ <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="+249"/>
<source>An XML error was encountered when parsing the XML of the custom widget %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2164,7 +2133,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerPropertySheet</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+717"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+747"/>
<source>Dynamic Properties</source>
<translation type="unfinished"></translation>
</message>
@@ -2172,18 +2141,18 @@ Would you like to retry?</source>
<context>
<name>QDesignerResource</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="-235"/>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="-246"/>
<source>The layout type &apos;%1&apos; is not supported, defaulting to grid.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+331"/>
+ <location line="+342"/>
<source>The container extension of the widget &apos;%1&apos; (%2) returned a widget not managed by Designer &apos;%3&apos; (%4) when queried for page #%5.
Container pages should only be added by specifying them in XML returned by the domXml() method of the custom widget.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+598"/>
+ <location line="+599"/>
<source>Unexpected element &lt;%1&gt;</source>
<extracomment>Parsing clipboard contents</extracomment>
<translation type="unfinished"></translation>
@@ -2204,7 +2173,7 @@ 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="+53"/>
+ <location filename="../tools/designer/src/lib/shared/shared_settings.cpp" line="+83"/>
<source>The template path %1 could not be created.</source>
<translation type="unfinished"></translation>
</message>
@@ -2217,7 +2186,7 @@ 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="+160"/>
+ <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="+190"/>
<source>Property Editor</source>
<translation type="unfinished"></translation>
</message>
@@ -2250,7 +2219,7 @@ Container pages should only be added by specifying them in XML returned by the d
<context>
<name>QDesignerWidgetBox</name>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="+318"/>
+ <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="+349"/>
<source>An error has been encountered at line %1 of %2: %3</source>
<translation type="unfinished"></translation>
</message>
@@ -2273,7 +2242,7 @@ 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="+169"/>
+ <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="+199"/>
<source>&amp;File</source>
<translation type="unfinished"></translation>
</message>
@@ -2348,7 +2317,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+112"/>
+ <location line="+111"/>
<source>The file &lt;b&gt;%1&lt;/b&gt; could not be opened.</source>
<translation type="unfinished"></translation>
</message>
@@ -2358,7 +2327,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location line="-260"/>
+ <location line="-259"/>
<source>There are %n forms with unsaved changes. Do you want to review these changes before quitting?</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -2368,7 +2337,7 @@ 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="+130"/>
+ <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="+160"/>
<source>An empty class name was passed on to %1 (object name: &apos;%2&apos;).</source>
<extracomment>Empty class name passed to widget factory method</extracomment>
<translation type="unfinished"></translation>
@@ -2389,7 +2358,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="+76"/>
+ <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="+106"/>
<source>The set-type property %1 could not be read.</source>
<translation type="unfinished"></translation>
</message>
@@ -2409,7 +2378,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/uilib/properties_p.h" line="+102"/>
+ <location filename="../tools/designer/src/lib/uilib/properties_p.h" line="+132"/>
<source>The enumeration-value &apos;%1&apos; is invalid. The default value &apos;%2&apos; will be used instead.</source>
<translation type="unfinished"></translation>
</message>
@@ -2422,7 +2391,7 @@ 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="+164"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="+194"/>
<source>Previous Page</source>
<translation type="unfinished"></translation>
</message>
@@ -2483,7 +2452,7 @@ 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="+59"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="+89"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
@@ -2511,7 +2480,7 @@ 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="+34"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="+64"/>
<source>Delete Page</source>
<translation type="unfinished"></translation>
</message>
@@ -2549,7 +2518,7 @@ 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="+198"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+226"/>
<location line="+10"/>
<location line="+25"/>
<source>True</source>
@@ -2565,7 +2534,7 @@ 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="+1469"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1477"/>
<source>True</source>
<translation type="unfinished"></translation>
</message>
@@ -2578,7 +2547,7 @@ 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="+1573"/>
+ <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1601"/>
<source>Clear Char</source>
<translation type="unfinished"></translation>
</message>
@@ -2594,7 +2563,7 @@ 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="+4769"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4777"/>
<source>Red</source>
<translation type="unfinished"></translation>
</message>
@@ -2774,7 +2743,7 @@ 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="+405"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+435"/>
<source>Start X</source>
<translation type="unfinished"></translation>
</message>
@@ -3049,7 +3018,7 @@ 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="+919"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+949"/>
<source>New Stop</source>
<translation type="unfinished"></translation>
</message>
@@ -3087,7 +3056,7 @@ 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="+77"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+107"/>
<source>Grad</source>
<translation type="unfinished"></translation>
</message>
@@ -3134,7 +3103,7 @@ 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.h" line="+32"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.h" line="+62"/>
<location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui"/>
<source>Select Gradient</source>
<translation type="unfinished"></translation>
@@ -3151,7 +3120,7 @@ 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="-3553"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-3561"/>
<source>%1, %2</source>
<translation type="unfinished"></translation>
</message>
@@ -3218,22 +3187,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="+1705"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1716"/>
<source>[(%1, %2), %3 x %4]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+155"/>
+ <location line="+156"/>
<source>X</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+9"/>
+ <location line="+8"/>
<source>Y</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+9"/>
+ <location line="+8"/>
<source>Width</source>
<translation type="unfinished"></translation>
</message>
@@ -3246,22 +3215,22 @@ Container pages should only be added by specifying them in XML returned by the d
<context>
<name>QtRectPropertyManager</name>
<message>
- <location line="-610"/>
+ <location line="-614"/>
<source>[(%1, %2), %3 x %4]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+119"/>
+ <location line="+120"/>
<source>X</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+8"/>
+ <location line="+7"/>
<source>Y</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+8"/>
+ <location line="+7"/>
<source>Width</source>
<translation type="unfinished"></translation>
</message>
@@ -3274,7 +3243,7 @@ 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="+46"/>
+ <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="+76"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation type="unfinished"></translation>
@@ -3285,7 +3254,7 @@ Do you want to replace it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+900"/>
+ <location line="+902"/>
<source>%1 [read-only]</source>
<translation type="unfinished"></translation>
</message>
@@ -3554,7 +3523,7 @@ to
<context>
<name>QtResourceView</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+404"/>
+ <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+435"/>
<source>Size: %1 x %2
%3</source>
<translation type="unfinished"></translation>
@@ -3586,7 +3555,7 @@ to
<context>
<name>QtSizeFPropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-532"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-537"/>
<source>%1 x %2</source>
<translation type="unfinished"></translation>
</message>
@@ -3604,7 +3573,7 @@ to
<context>
<name>QtSizePolicyPropertyManager</name>
<message>
- <location line="+1709"/>
+ <location line="+1719"/>
<location line="+1"/>
<source>&lt;Invalid&gt;</source>
<translation type="unfinished"></translation>
@@ -3638,7 +3607,7 @@ to
<context>
<name>QtSizePropertyManager</name>
<message>
- <location line="-2288"/>
+ <location line="-2298"/>
<source>%1 x %2</source>
<translation type="unfinished"></translation>
</message>
@@ -3656,7 +3625,7 @@ to
<context>
<name>QtToolBarDialog</name>
<message>
- <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1759"/>
+ <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1789"/>
<source>&lt; S E P A R A T O R &gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -3764,7 +3733,7 @@ to
<context>
<name>QtTreePropertyBrowser</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+416"/>
+ <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+442"/>
<source>Property</source>
<translation type="unfinished"></translation>
</message>
@@ -3777,7 +3746,7 @@ to
<context>
<name>SaveFormAsTemplate</name>
<message>
- <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+42"/>
+ <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+72"/>
<source>Add path...</source>
<translation type="unfinished"></translation>
</message>
@@ -3841,7 +3810,7 @@ Do you want overwrite the template?</source>
<context>
<name>ScriptErrorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+33"/>
+ <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+63"/>
<source>An error occurred while running the scripts for &quot;%1&quot;:
</source>
<translation type="unfinished"></translation>
@@ -3873,7 +3842,7 @@ Do you want overwrite the template?</source>
<context>
<name>SignalSlotConnection</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="-311"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="-358"/>
<source>SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4)</source>
<translation type="unfinished"></translation>
</message>
@@ -3914,7 +3883,7 @@ Do you want overwrite the template?</source>
<context>
<name>Spacer</name>
<message>
- <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="+245"/>
+ <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="+275"/>
<source>Horizontal Spacer &apos;%1&apos;, %2 x %3</source>
<translation type="unfinished"></translation>
</message>
@@ -3927,7 +3896,7 @@ Do you want overwrite the template?</source>
<context>
<name>TemplateOptionsPage</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="+126"/>
+ <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="+156"/>
<source>Template Paths</source>
<extracomment>Tab in preferences dialog</extracomment>
<translation type="unfinished"></translation>
@@ -3969,17 +3938,12 @@ Do you want overwrite the template?</source>
<context>
<name>VersionDialog</name>
<message>
- <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+141"/>
+ <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 type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
- <source> Open Source Edition</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+3"/>
+ <location line="+1"/>
<source>Qt Designer</source>
<translation type="unfinished"></translation>
</message>
@@ -3989,30 +3953,15 @@ Do you want overwrite the template?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+4"/>
- <source>This version of Qt Designer is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel.html&lt;/a&gt; for an overview of Qt licensing.&lt;br/&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+12"/>
- <source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.&lt;br/&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location line="+5"/>
<source>%1&lt;br/&gt;%2&lt;br/&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt; </source>
<translation type="unfinished"></translation>
</message>
- <message>
- <location line="-9"/>
- <source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.&lt;br/&gt;</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>WidgetDataBase</name>
<message>
- <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="+786"/>
+ <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="+814"/>
<source>The file contains a custom widget &apos;%1&apos; whose base class (%2) differs from the current entry in the widget database (%3). The widget database is left unchanged.</source>
<translation type="unfinished"></translation>
</message>
@@ -4020,22 +3969,22 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::ActionEditor</name>
<message>
- <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+111"/>
+ <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+143"/>
<source>Actions</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-15"/>
+ <location line="-16"/>
<source>New...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+7"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+305"/>
+ <location line="+307"/>
<source>New action</source>
<translation type="unfinished"></translation>
</message>
@@ -4045,12 +3994,17 @@ Do you want overwrite the template?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-408"/>
+ <location line="-411"/>
<source>Edit...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
+ <source>Go to slot...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
<source>Copy</source>
<translation type="unfinished"></translation>
</message>
@@ -4070,7 +4024,7 @@ Do you want overwrite the template?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+55"/>
+ <location line="+57"/>
<source>Icon View</source>
<translation type="unfinished"></translation>
</message>
@@ -4080,7 +4034,7 @@ Do you want overwrite the template?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+406"/>
+ <location line="+412"/>
<source>Remove actions</source>
<translation type="unfinished"></translation>
</message>
@@ -4090,12 +4044,12 @@ Do you want overwrite the template?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+183"/>
+ <location line="+186"/>
<source>Used In</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-598"/>
+ <location line="-607"/>
<source>Configure Action Editor</source>
<translation type="unfinished"></translation>
</message>
@@ -4103,7 +4057,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::ActionModel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+64"/>
+ <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+95"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
@@ -4136,7 +4090,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::BuddyEditor</name>
<message>
- <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+235"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+265"/>
<source>Add buddy</source>
<translation type="unfinished"></translation>
</message>
@@ -4168,7 +4122,7 @@ 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="+47"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+77"/>
<source>Edit Buddies</source>
<translation type="unfinished"></translation>
</message>
@@ -4176,7 +4130,7 @@ 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="+30"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+60"/>
<source>Edit Buddies</source>
<translation type="unfinished"></translation>
</message>
@@ -4230,7 +4184,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::CodeDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+69"/>
+ <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+99"/>
<source>Save...</source>
<translation type="unfinished"></translation>
</message>
@@ -4288,7 +4242,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::ColorAction</name>
<message>
- <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+220"/>
+ <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+250"/>
<source>Text Color</source>
<translation type="unfinished"></translation>
</message>
@@ -4296,7 +4250,7 @@ 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="+42"/>
+ <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+72"/>
<source>Edit Items...</source>
<translation type="unfinished"></translation>
</message>
@@ -4388,7 +4342,7 @@ 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="+82"/>
+ <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+112"/>
<source>Insert Page Before Current Page</source>
<translation type="unfinished"></translation>
</message>
@@ -4451,7 +4405,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::DesignerPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+614"/>
+ <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+644"/>
<location line="+6"/>
<source>AlignLeft</source>
<translation type="unfinished"></translation>
@@ -4576,7 +4530,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::DeviceProfileDialog</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+33"/>
+ <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+63"/>
<source>Device Profiles (*.%1)</source>
<translation type="unfinished"></translation>
</message>
@@ -4736,7 +4690,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::FilterWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+155"/>
+ <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+185"/>
<source>&lt;Filter&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -4744,7 +4698,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::FormEditor</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+160"/>
+ <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+190"/>
<source>Resource File Changed</source>
<translation type="unfinished"></translation>
</message>
@@ -4765,7 +4719,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::FormWindow</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1262"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1267"/>
<source>Edit contents</source>
<translation type="unfinished"></translation>
</message>
@@ -4775,7 +4729,7 @@ Do you want overwrite the template?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+836"/>
+ <location line="+841"/>
<source>Resize</source>
<translation type="unfinished"></translation>
</message>
@@ -4859,7 +4813,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::FormWindowBase</name>
<message>
- <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+363"/>
+ <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+397"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
@@ -4872,7 +4826,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::FormWindowManager</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+338"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+368"/>
<source>Cu&amp;t</source>
<translation type="unfinished"></translation>
</message>
@@ -4954,7 +4908,7 @@ Do you want overwrite the template?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+6"/>
<source>Lay Out &amp;Horizontally</source>
<translation type="unfinished"></translation>
</message>
@@ -5004,7 +4958,7 @@ Do you want overwrite the template?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+7"/>
<source>&amp;Break Layout</source>
<translation type="unfinished"></translation>
</message>
@@ -5029,7 +4983,7 @@ Do you want overwrite the template?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+75"/>
+ <location line="+78"/>
<source>Break Layout</source>
<translation type="unfinished"></translation>
</message>
@@ -5045,17 +4999,17 @@ Do you want overwrite the template?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+336"/>
+ <location line="+341"/>
<source>Form Settings - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-502"/>
+ <location line="-510"/>
<source>Removes empty columns and rows</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-49"/>
+ <location line="-50"/>
<source>Lay Out in a &amp;Form Layout</source>
<translation type="unfinished"></translation>
</message>
@@ -5065,7 +5019,7 @@ Do you want overwrite the template?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+44"/>
+ <location line="+45"/>
<source>Si&amp;mplify Grid Layout</source>
<translation type="unfinished"></translation>
</message>
@@ -5073,7 +5027,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::FormWindowSettings</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+162"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+193"/>
<source>None</source>
<translation type="unfinished"></translation>
</message>
@@ -5124,7 +5078,7 @@ 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="+56"/>
+ <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+86"/>
<source>Change title...</source>
<translation type="unfinished"></translation>
</message>
@@ -5140,7 +5094,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::IconSelector</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+210"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+211"/>
<source>The pixmap file &apos;%1&apos; cannot be read.</source>
<translation type="unfinished"></translation>
</message>
@@ -5292,7 +5246,7 @@ 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="+59"/>
+ <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="+89"/>
<source>Change rich text...</source>
<translation type="unfinished"></translation>
</message>
@@ -5305,7 +5259,7 @@ 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="+54"/>
+ <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+84"/>
<source>Change text...</source>
<translation type="unfinished"></translation>
</message>
@@ -5313,7 +5267,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::ListWidgetEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+75"/>
+ <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+105"/>
<source>Edit List Widget</source>
<translation type="unfinished"></translation>
</message>
@@ -5331,7 +5285,7 @@ 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="+41"/>
+ <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+71"/>
<source>Edit Items...</source>
<translation type="unfinished"></translation>
</message>
@@ -5367,7 +5321,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::MenuTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+30"/>
+ <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+60"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
@@ -5426,7 +5380,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::NewDynamicPropertyDialog</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+104"/>
+ <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+134"/>
<source>Set Property Name</source>
<translation type="unfinished"></translation>
</message>
@@ -5545,7 +5499,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::NewPromotedClassPanel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+66"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+96"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
@@ -5583,7 +5537,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::ObjectInspector</name>
<message>
- <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+727"/>
+ <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+758"/>
<source>&amp;Find in Text...</source>
<translation type="unfinished"></translation>
</message>
@@ -5599,7 +5553,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::OrderDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+83"/>
+ <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+113"/>
<source>Index %1 (%2)</source>
<translation type="unfinished"></translation>
</message>
@@ -5680,7 +5634,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PaletteEditorButton</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+31"/>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+61"/>
<source>Change Palette</source>
<translation type="unfinished"></translation>
</message>
@@ -5688,7 +5642,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PaletteModel</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+351"/>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+381"/>
<source>Color Role</source>
<translation type="unfinished"></translation>
</message>
@@ -5740,15 +5694,53 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PlainTextEditorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+39"/>
+ <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+69"/>
<source>Edit text</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
+ <name>qdesigner_internal::PluginDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="+72"/>
+ <source>Components</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Plugin Information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Refresh</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Scan for newly installed custom widget plugins.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+48"/>
+ <source>Qt Designer couldn&apos;t find any plugins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Qt Designer found the following plugins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>New custom widget plugins have been found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>qdesigner_internal::PreviewActionGroup</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+65"/>
+ <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+95"/>
<source>%1 Style</source>
<translation type="unfinished"></translation>
</message>
@@ -5790,7 +5782,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PreviewDeviceSkin</name>
<message>
- <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+188"/>
+ <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+218"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
</message>
@@ -5887,7 +5879,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PromotionTaskMenu</name>
<message>
- <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+55"/>
+ <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+85"/>
<source>Promoted widgets...</source>
<translation type="unfinished"></translation>
</message>
@@ -5915,7 +5907,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PropertyEditor</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+158"/>
+ <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+188"/>
<source>Add Dynamic Property...</source>
<translation type="unfinished"></translation>
</message>
@@ -5974,7 +5966,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::PropertyLineEdit</name>
<message>
- <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+58"/>
+ <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+88"/>
<source>Insert line break</source>
<translation type="unfinished"></translation>
</message>
@@ -6033,14 +6025,14 @@ Class: %2</source>
<context>
<name>qdesigner_internal::QDesignerTaskMenu</name>
<message numerus="yes">
- <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+538"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+560"/>
<source>Set size constraint on %n widget(s)</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message>
- <location line="-470"/>
+ <location line="-492"/>
<source>Change objectName...</source>
<translation type="unfinished"></translation>
</message>
@@ -6130,7 +6122,7 @@ Class: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+236"/>
+ <location line="+235"/>
<source>Edit ToolTip</source>
<translation type="unfinished"></translation>
</message>
@@ -6140,7 +6132,7 @@ Class: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+127"/>
+ <location line="+144"/>
<source>no signals available</source>
<translation type="unfinished"></translation>
</message>
@@ -6148,7 +6140,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::QDesignerWidgetBox</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="+97"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="+127"/>
<location line="+13"/>
<source>Unexpected element &lt;%1&gt;</source>
<translation type="unfinished"></translation>
@@ -6202,7 +6194,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::QtGradientStopsController</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="+147"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="+177"/>
<source>H</source>
<translation type="unfinished"></translation>
</message>
@@ -6377,7 +6369,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::ScriptDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+38"/>
+ <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+68"/>
<source>Edit script</source>
<translation type="unfinished"></translation>
</message>
@@ -6427,7 +6419,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::SignalSlotEditorPlugin</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="+46"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="+76"/>
<source>Edit Signals/Slots</source>
<translation type="unfinished"></translation>
</message>
@@ -6440,7 +6432,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::SignalSlotEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="+32"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="+62"/>
<source>Edit Signals/Slots</source>
<translation type="unfinished"></translation>
</message>
@@ -6448,7 +6440,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::StatusBarTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+55"/>
+ <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+85"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
@@ -6456,7 +6448,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::StringListEditorButton</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+30"/>
+ <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+60"/>
<source>Change String List</source>
<translation type="unfinished"></translation>
</message>
@@ -6464,7 +6456,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::StyleSheetEditorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+71"/>
+ <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+101"/>
<source>Edit Style Sheet</source>
<translation type="unfinished"></translation>
</message>
@@ -6503,7 +6495,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TabOrderEditor</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+333"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+363"/>
<source>Start from Here</source>
<translation type="unfinished"></translation>
</message>
@@ -6531,7 +6523,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TabOrderEditorPlugin</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="+47"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="+77"/>
<source>Edit Tab Order</source>
<translation type="unfinished"></translation>
</message>
@@ -6539,7 +6531,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TabOrderEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="+31"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="+61"/>
<source>Edit Tab Order</source>
<translation type="unfinished"></translation>
</message>
@@ -6547,7 +6539,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TableWidgetEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+41"/>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+71"/>
<source>New Column</source>
<translation type="unfinished"></translation>
</message>
@@ -6596,7 +6588,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TableWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+38"/>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+68"/>
<source>Edit Items...</source>
<translation type="unfinished"></translation>
</message>
@@ -6627,7 +6619,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TextEditTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+33"/>
+ <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+63"/>
<source>Change HTML...</source>
<translation type="unfinished"></translation>
</message>
@@ -6673,7 +6665,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::ToolBarEventFilter</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+209"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+239"/>
<source>Insert Separator</source>
<translation type="unfinished"></translation>
</message>
@@ -6701,7 +6693,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TreeWidgetEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+50"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+80"/>
<source>&amp;Columns</source>
<translation type="unfinished"></translation>
</message>
@@ -6827,7 +6819,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TreeWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+37"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+67"/>
<source>Edit Items...</source>
<translation type="unfinished"></translation>
</message>
@@ -6835,7 +6827,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::WidgetBox</name>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="+83"/>
+ <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="+113"/>
<source>Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML.</source>
<translation type="unfinished"></translation>
</message>
@@ -6843,17 +6835,17 @@ Class: %2</source>
<context>
<name>qdesigner_internal::WidgetBoxTreeWidget</name>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-267"/>
+ <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-268"/>
<source>Scratchpad</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+360"/>
+ <location line="+370"/>
<source>Custom Widgets</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+261"/>
+ <location line="+260"/>
<source>Expand all</source>
<translation type="unfinished"></translation>
</message>
@@ -6894,7 +6886,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::WidgetEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+41"/>
+ <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+71"/>
<source>Edit Widgets</source>
<translation type="unfinished"></translation>
</message>
@@ -6902,12 +6894,12 @@ Class: %2</source>
<context>
<name>qdesigner_internal::WidgetFactory</name>
<message>
- <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="+237"/>
+ <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="+267"/>
<source>The custom widget factory registered for widgets of class %1 returned 0.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+40"/>
+ <location line="+44"/>
<source>A class name mismatch occurred when creating a widget using the custom widget factory registered for widgets of class %1. It returned a widget of class %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6949,7 +6941,7 @@ 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="+54"/>
+ <location filename="../tools/designer/src/lib/shared/zoomwidget.cpp" line="+84"/>
<source>%1 %</source>
<extracomment>Zoom factor</extracomment>
<translation type="unfinished"></translation>
diff --git a/translations/designer_zh_CN.ts b/translations/designer_zh_CN.ts
index 0024ea3..5a78afaa 100644
--- a/translations/designer_zh_CN.ts
+++ b/translations/designer_zh_CN.ts
@@ -1,23 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="zh">
-<defaultcodec></defaultcodec>
<context>
<name></name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="+43"/>
+ <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="+73"/>
<source>The moose in the noose
ate the goose who was loose.</source>
<translation>The moose in the noose
ate the goose who was loose.</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+624"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+647"/>
<source>&lt;object&gt;</source>
<translation>&lt;对象&gt;</translation>
</message>
<message>
- <location line="+16"/>
+ <location line="+18"/>
<source>&lt;signal&gt;</source>
<translation>&lt;信号&gt;</translation>
</message>
@@ -45,7 +44,7 @@ ate the goose who was loose.</translation>
<context>
<name>AbstractFindWidget</name>
<message>
- <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+97"/>
+ <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+127"/>
<source>&amp;Previous</source>
<translation>&amp;上一个</translation>
</message>
@@ -91,7 +90,7 @@ ate the goose who was loose.</translation>
<context>
<name>AppFontDialog</name>
<message>
- <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+388"/>
+ <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+418"/>
<source>Additional Fonts</source>
<translation>附加字体</translation>
</message>
@@ -203,7 +202,7 @@ ate the goose who was loose.</translation>
<context>
<name>AssistantClient</name>
<message>
- <location filename="../tools/designer/src/designer/assistantclient.cpp" line="+70"/>
+ <location filename="../tools/designer/src/designer/assistantclient.cpp" line="+100"/>
<source>Unable to send request: Assistant is not responding.</source>
<translation>无法发送请求:助手无响应。</translation>
</message>
@@ -221,7 +220,7 @@ ate the goose who was loose.</translation>
<context>
<name>BrushManagerProxy</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+191"/>
+ <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+221"/>
<source>The element &apos;%1&apos; is missing the required attribute &apos;%2&apos;.</source>
<translation>组件“%1”缺少必需的属性“%2”。</translation>
</message>
@@ -249,7 +248,7 @@ ate the goose who was loose.</translation>
<context>
<name>BrushPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+22"/>
+ <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+52"/>
<source>No brush</source>
<translation>无画刷</translation>
</message>
@@ -342,19 +341,24 @@ ate the goose who was loose.</translation>
<context>
<name>Command</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+177"/>
- <location line="+211"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+208"/>
+ <location line="+258"/>
<source>Change signal</source>
<translation>改变信号</translation>
</message>
<message>
- <location line="-209"/>
- <location line="+221"/>
+ <location line="-256"/>
+ <location line="+268"/>
<source>Change slot</source>
<translation>改变槽</translation>
</message>
<message>
- <location line="+14"/>
+ <location line="-220"/>
+ <source>Change signal-slot connection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+234"/>
<source>Change sender</source>
<translation>改变发送者</translation>
</message>
@@ -364,7 +368,7 @@ ate the goose who was loose.</translation>
<translation>改变接收者</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+113"/>
+ <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+143"/>
<source>Add connection</source>
<translation>添加连接</translation>
</message>
@@ -397,7 +401,7 @@ ate the goose who was loose.</translation>
<translation type="obsolete">重置“%2”的“%1”</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="+117"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="+149"/>
<source>Insert &apos;%1&apos;</source>
<translation>插入“%1”</translation>
</message>
@@ -422,7 +426,7 @@ ate the goose who was loose.</translation>
<translation>重定义“%1”的父对象</translation>
</message>
<message>
- <location line="+51"/>
+ <location line="+53"/>
<source>Promote to custom widget</source>
<translation>提升至自定义窗口部件</translation>
</message>
@@ -452,48 +456,48 @@ ate the goose who was loose.</translation>
<translation>取消布局</translation>
</message>
<message>
- <location line="+231"/>
- <location line="+226"/>
- <location line="+75"/>
+ <location line="+240"/>
+ <location line="+235"/>
+ <location line="+78"/>
<source>Move Page</source>
<translation>移动页</translation>
</message>
<message>
- <location line="-267"/>
- <location line="+116"/>
- <location line="+183"/>
- <location line="+664"/>
+ <location line="-279"/>
+ <location line="+123"/>
+ <location line="+188"/>
+ <location line="+666"/>
<source>Delete Page</source>
<translation>删除页</translation>
</message>
<message>
- <location line="-925"/>
- <location line="+116"/>
+ <location line="-939"/>
+ <location line="+123"/>
<source>Page</source>
<translation>页</translation>
</message>
<message>
- <location line="-114"/>
- <location line="+297"/>
- <location line="+670"/>
+ <location line="-121"/>
+ <location line="+309"/>
+ <location line="+672"/>
<source>page</source>
<translation>页</translation>
</message>
<message>
- <location line="-964"/>
- <location line="+116"/>
- <location line="+181"/>
- <location line="+665"/>
+ <location line="-978"/>
+ <location line="+123"/>
+ <location line="+186"/>
+ <location line="+667"/>
<source>Insert Page</source>
<translation>插入页</translation>
</message>
<message>
- <location line="-849"/>
+ <location line="-856"/>
<source>tab</source>
<translation>标签页</translation>
</message>
<message>
- <location line="+204"/>
+ <location line="+209"/>
<source>Change Tab order</source>
<translation>改变制表符顺序</translation>
</message>
@@ -542,12 +546,12 @@ ate the goose who was loose.</translation>
<translation>改变表单布局项的几何位置</translation>
</message>
<message>
- <location line="+94"/>
+ <location line="+95"/>
<source>Change Layout Item Geometry</source>
<translation>改变布局项的几何位置</translation>
</message>
<message>
- <location line="+569"/>
+ <location line="+576"/>
<source>Change Table Contents</source>
<translation>改变表格内容</translation>
</message>
@@ -631,7 +635,7 @@ ate the goose who was loose.</translation>
</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1125"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1161"/>
<source>Set action text</source>
<translation>设定动作文本</translation>
</message>
@@ -642,7 +646,7 @@ ate the goose who was loose.</translation>
</message>
<message>
<location line="+89"/>
- <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+861"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+891"/>
<source>Move action</source>
<translation>移动动作</translation>
</message>
@@ -657,17 +661,17 @@ ate the goose who was loose.</translation>
<translation>插入菜单</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="-2610"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="-2641"/>
<source>Change Z-order of &apos;%1&apos;</source>
<translation>改变“%1”的 Z 顺序</translation>
</message>
<message>
- <location line="+623"/>
+ <location line="+625"/>
<source>Simplify Grid Layout</source>
<translation>简易网格布局</translation>
</message>
<message>
- <location line="+1126"/>
+ <location line="+1149"/>
<source>Delete Subwindow</source>
<translation>删除子窗口</translation>
</message>
@@ -687,12 +691,12 @@ ate the goose who was loose.</translation>
<translation>子窗口</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+172"/>
+ <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+202"/>
<source>Change signals/slots</source>
<translation>改变信号/槽</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+195"/>
+ <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+225"/>
<source>Create button group</source>
<translation>创建按钮组</translation>
</message>
@@ -713,7 +717,7 @@ ate the goose who was loose.</translation>
</message>
<message>
<location line="+8"/>
- <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+373"/>
+ <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>添加“%1”到“%2”</translation>
@@ -730,23 +734,23 @@ ate the goose who was loose.</translation>
<translation>从“%2”中移除“%1”</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+318"/>
+ <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/“%2”变形为%3</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_command2.cpp" line="+124"/>
+ <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>将“%1”的布局从%2变为%3</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+25"/>
+ <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/qdesigner_propertycommand.cpp" line="+1176"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1209"/>
<source>Changed &apos;%1&apos; of &apos;%2&apos;</source>
<translation>已改变“%2”个中的“%1”个</translation>
</message>
@@ -820,7 +824,7 @@ ate the goose who was loose.</translation>
<context>
<name>DPI_Chooser</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+39"/>
+ <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>
@@ -841,7 +845,7 @@ ate the goose who was loose.</translation>
<context>
<name>Designer</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+409"/>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+439"/>
<source>Qt Designer</source>
<translation>Qt 设计师</translation>
</message>
@@ -856,7 +860,7 @@ The old form has been untouched, but you will have to save this form under a new
旧的窗体没有改变,但是您将不得不使用新的名称保存这个表单。</translation>
</message>
<message>
- <location line="+1017"/>
+ <location line="+1028"/>
<source>Custom Widgets</source>
<translation>自定义窗口部件</translation>
</message>
@@ -866,7 +870,7 @@ The old form has been untouched, but you will have to save this form under a new
<translation>提升窗口部件</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+602"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+682"/>
<source>Unable to launch %1.</source>
<translation>不能启动 %1。</translation>
</message>
@@ -876,7 +880,7 @@ The old form has been untouched, but you will have to save this form under a new
<translation>%1 超时。</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="-812"/>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="-823"/>
<source>This file cannot be read because it was created using %1.</source>
<translation>不能读取这个文件,因为它是被使用 %1 创建的。</translation>
</message>
@@ -945,7 +949,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>DesignerMetaEnum</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="-463"/>
+ <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 不是“%2”中的一个有效的枚举值。</translation>
</message>
@@ -966,7 +970,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>DeviceProfile</name>
<message>
- <location filename="../tools/designer/src/lib/shared/deviceprofile.cpp" line="+367"/>
+ <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>
@@ -1008,7 +1012,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>DeviceSkin</name>
<message>
- <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+49"/>
+ <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/>
<source>The image file &apos;%1&apos; could not be loaded.</source>
<translation>无法加载图像文件“%1”。</translation>
</message>
@@ -1066,66 +1070,56 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>EmbeddedOptionsControl</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="+130"/>
<source>None</source>
- <translation>无</translation>
+ <translation type="obsolete">无</translation>
</message>
<message>
- <location line="+4"/>
<source>Add a profile</source>
- <translation>添加描述文件</translation>
+ <translation type="obsolete">添加描述文件</translation>
</message>
<message>
- <location line="+6"/>
<source>Edit the selected profile</source>
- <translation>编辑选中的描述文件</translation>
+ <translation type="obsolete">编辑选中的描述文件</translation>
</message>
<message>
- <location line="+4"/>
<source>Delete the selected profile</source>
- <translation>删除选中的描述文件</translation>
+ <translation type="obsolete">删除选中的描述文件</translation>
</message>
<message>
- <location line="+22"/>
<source>Add Profile</source>
- <translation>添加描述文件</translation>
+ <translation type="obsolete">添加描述文件</translation>
</message>
<message>
- <location line="+7"/>
<source>New profile</source>
- <translation>新建描述文件</translation>
+ <translation type="obsolete">新建描述文件</translation>
</message>
<message>
- <location line="+35"/>
<source>Edit Profile</source>
- <translation>编辑描述文件</translation>
+ <translation type="obsolete">编辑描述文件</translation>
</message>
<message>
- <location line="+26"/>
<source>Delete Profile</source>
- <translation>删除描述文件</translation>
+ <translation type="obsolete">删除描述文件</translation>
</message>
<message>
- <location line="+1"/>
<source>Would you like to delete the profile &apos;%1&apos;?</source>
- <translation>你要删除描述文件“%1”吗?</translation>
+ <translation type="obsolete">你要删除描述文件“%1”吗?</translation>
</message>
<message>
- <location line="+42"/>
+ <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="+311"/>
<source>&lt;html&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Font&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%1, %2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Style&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Resolution&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%4 x %5&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/html&gt;</source>
<extracomment>Format embedded device profile description</extracomment>
<translation>&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;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>
<message>
- <location line="+13"/>
<source>Default</source>
- <translation>默认</translation>
+ <translation type="obsolete">默认</translation>
</message>
</context>
<context>
<name>EmbeddedOptionsPage</name>
<message>
- <location line="+90"/>
+ <location line="+103"/>
<source>Embedded Design</source>
<extracomment>Tab in preferences dialog</extracomment>
<translation>嵌入式设计</translation>
@@ -1163,7 +1157,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation>字体</translation>
</message>
@@ -1191,7 +1185,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>FontPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+32"/>
+ <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+62"/>
<source>PreferDefault</source>
<translation>首选默认</translation>
</message>
@@ -1214,7 +1208,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>FormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+321"/>
+ <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+351"/>
<source>Invalid stretch value for &apos;%1&apos;: &apos;%2&apos;</source>
<extracomment>Parsing layout stretch values</extracomment>
<translation>“%1”:“%2”无效的拉伸值</translation>
@@ -1229,7 +1223,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>FormEditorOptionsPage</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="+61"/>
+ <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="+91"/>
<source>%1 %</source>
<translation>%1 %</translation>
</message>
@@ -1296,7 +1290,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>FormWindow</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1669"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1705"/>
<source>Unexpected element &lt;%1&gt;</source>
<translation>未预期的元素&lt;%1&gt;</translation>
</message>
@@ -1372,7 +1366,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>IconSelector</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+321"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+353"/>
<source>All Pixmaps (</source>
<translation>所有像素映射 (</translation>
</message>
@@ -1380,7 +1374,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>ItemPropertyBrowser</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+36"/>
+ <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>
@@ -1389,7 +1383,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>LanguageResourceDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-234"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-235"/>
<source>Choose Resource</source>
<translation>选择资源</translation>
</message>
@@ -1397,7 +1391,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>MainWindowBase</name>
<message>
- <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+89"/>
+ <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+119"/>
<source>Main</source>
<extracomment>Not currently used (main tool bar)</extracomment>
<translation>主要</translation>
@@ -1439,7 +1433,7 @@ The old form has been untouched, but you will have to save this form under a new
<translation type="obsolete">选择一个用于预览的模板</translation>
</message>
<message>
- <location filename="../tools/designer/src/designer/newform.cpp" line="+53"/>
+ <location filename="../tools/designer/src/designer/newform.cpp" line="+83"/>
<source>New Form</source>
<translation>新建窗体</translation>
</message>
@@ -1504,7 +1498,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>NewFormWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+465"/>
+ <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+495"/>
<source>Unable to open the form template file &apos;%1&apos;: %2</source>
<translation>无法打开窗体模版文件&apos;%1&apos;:%2</translation>
</message>
@@ -1512,7 +1506,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>ObjectInspectorModel</name>
<message>
- <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+331"/>
+ <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+364"/>
<source>Object</source>
<translation>对象</translation>
</message>
@@ -1522,7 +1516,7 @@ The old form has been untouched, but you will have to save this form under a new
<translation>类</translation>
</message>
<message>
- <location line="+34"/>
+ <location line="+35"/>
<source>separator</source>
<translation>分隔符</translation>
</message>
@@ -1535,7 +1529,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>ObjectNameDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+132"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+162"/>
<source>Change Object Name</source>
<translation>改变对象名称</translation>
</message>
@@ -1597,52 +1591,16 @@ There&apos;s nothing more here. You should get back to work.</source>
</message>
</context>
<context>
- <name>qdesigner_internal::PluginDialog</name>
+ <name>PluginDialog</name>
<message>
- <location filename="../tools/designer/src/designer/plugindialog.cpp" line="+40"/>
- <source>Components</source>
- <translation>组件</translation>
- </message>
- <message>
- <location line="+13"/>
- <location filename="../tools/designer/src/designer/plugindialog.ui"/>
+ <location filename="../tools/designer/src/lib/shared/plugindialog.ui"/>
<source>Plugin Information</source>
- <translation>插件信息</translation>
- </message>
- <message>
- <location line="+53"/>
- <source>Qt Designer couldn&apos;t find any plugins</source>
- <translation>Qt 设计师无法找到任何插件</translation>
- </message>
- <message>
- <location line="+3"/>
- <source>Qt Designer found the following plugins</source>
- <translation>Qt 设计师已经找到如下插件</translation>
- </message>
- <message>
- <location filename="../tools/designer/src/designer/plugindialog.ui"/>
- <source>TextLabel</source>
- <translation>文本标签</translation>
- </message>
- <message>
- <location filename="../tools/designer/src/designer/plugindialog.cpp" line="-52"/>
- <source>Refresh</source>
- <translation>刷新</translation>
- </message>
- <message>
- <location line="+1"/>
- <source>Scan for newly installed custom widget plugins.</source>
- <translation>扫描新安装的自定义窗口部件插件。</translation>
+ <translation type="unfinished">插件信息</translation>
</message>
<message>
- <location line="+106"/>
- <source>New custom widget plugins have been found.</source>
- <translation>新的自定义窗口部件插件已经被找到。</translation>
- </message>
- <message>
- <location filename="../tools/designer/src/designer/plugindialog.ui"/>
+ <location/>
<source>1</source>
- <translation>1</translation>
+ <translation type="unfinished">1</translation>
</message>
</context>
<context>
@@ -1688,7 +1646,7 @@ There&apos;s nothing more here. You should get back to work.</source>
<context>
<name>PreviewConfigurationWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+125"/>
+ <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+155"/>
<source>Default</source>
<translation>默认</translation>
</message>
@@ -1736,7 +1694,7 @@ There&apos;s nothing more here. You should get back to work.</source>
<context>
<name>PromotionModel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+86"/>
+ <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+116"/>
<source>Not used</source>
<extracomment>Usage of promoted widgets</extracomment>
<translation>没有被使用</translation>
@@ -1752,7 +1710,7 @@ There&apos;s nothing more here. You should get back to work.</source>
<context>
<name>Q3WizardContainer</name>
<message>
- <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="+142"/>
+ <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="+172"/>
<location line="+5"/>
<source>Page</source>
<translation>页</translation>
@@ -1761,7 +1719,7 @@ There&apos;s nothing more here. You should get back to work.</source>
<context>
<name>QAbstractFormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+176"/>
+ <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+206"/>
<source>Unexpected element &lt;%1&gt;</source>
<translation>未预期的元素&lt;%1&gt;</translation>
</message>
@@ -1808,7 +1766,7 @@ This indicates an inconsistency in the ui-file.</source>
<translation>在应用制表符时中断:无法找到窗口部件“%1”。</translation>
</message>
<message>
- <location line="+734"/>
+ <location line="+749"/>
<source>Invalid QButtonGroup reference &apos;%1&apos; referenced by &apos;%2&apos;.</source>
<translation>“%2”参考了无效的QButtonGroup参考“%1”。</translation>
</message>
@@ -1854,7 +1812,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QAxWidgetPlugin</name>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+45"/>
+ <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+75"/>
<source>ActiveX control</source>
<translation>ActiveX 控件</translation>
</message>
@@ -1867,7 +1825,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QAxWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+89"/>
+ <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+119"/>
<source>Set Control</source>
<translation>设置控件</translation>
</message>
@@ -1890,7 +1848,7 @@ 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="+53"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="+83"/>
<source>%1 is not a promoted class.</source>
<translation>%1 不是提升的类。</translation>
</message>
@@ -1940,7 +1898,7 @@ This indicates an inconsistency in the ui-file.</source>
<translation>无法设定一个空白包含文件。</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+58"/>
+ <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+88"/>
<source>Exception at line %1: %2</source>
<translation>%1 行发生意外:%2</translation>
</message>
@@ -1960,7 +1918,7 @@ Script: %3</source>
<context>
<name>QDesigner</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+111"/>
+ <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+141"/>
<source>%1 - warning</source>
<translation>%1 - 警告</translation>
</message>
@@ -1993,7 +1951,7 @@ Script: %3</source>
<translation type="obsolete">CTRL+O</translation>
</message>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+459"/>
+ <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+488"/>
<source>Clear &amp;Menu</source>
<translation>清空菜单(&amp;M)</translation>
</message>
@@ -2006,7 +1964,7 @@ Script: %3</source>
<translation type="obsolete">CTRL+W</translation>
</message>
<message>
- <location line="-297"/>
+ <location line="-300"/>
<source>&amp;Quit</source>
<translation>退出(&amp;Q)</translation>
</message>
@@ -2079,17 +2037,17 @@ Script: %3</source>
</message>
<message>
<location line="+6"/>
- <location line="+598"/>
+ <location line="+601"/>
<source>About Qt Designer</source>
<translation>关于 Qt 设计师</translation>
</message>
<message>
- <location line="-592"/>
+ <location line="-595"/>
<source>About Qt</source>
<translation>关于 Qt</translation>
</message>
<message>
- <location line="+41"/>
+ <location line="+44"/>
<source>&amp;Recent Forms</source>
<translation>最近的窗体(&amp;R)</translation>
</message>
@@ -2130,19 +2088,19 @@ Would you like to retry or select a different file?</source>
<translation>选择新文件</translation>
</message>
<message>
- <location line="-691"/>
+ <location line="-694"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>%1 已经存在。
您想要替换它么?</translation>
</message>
<message>
- <location line="+960"/>
+ <location line="+925"/>
<source>&amp;Close Preview</source>
<translation>关闭预览(&amp;C)</translation>
</message>
<message>
- <location line="-919"/>
+ <location line="-884"/>
<source>Preferences...</source>
<translation>属性...</translation>
</message>
@@ -2152,19 +2110,19 @@ Do you want to replace it?</source>
<translation>CTRL+SHIFT+S</translation>
</message>
<message>
- <location line="+313"/>
+ <location line="+316"/>
<location line="+37"/>
<location line="+160"/>
<source>Designer UI files (*.%1);;All Files (*)</source>
<translation>设计师 UI 文件 (*.%1);;全部文件 (*)</translation>
</message>
<message>
- <location line="-638"/>
+ <location line="-641"/>
<source>Saved %1.</source>
<translation>%1 已被保存。</translation>
</message>
<message>
- <location line="+624"/>
+ <location line="+627"/>
<source>Read error</source>
<translation>读取错误</translation>
</message>
@@ -2216,7 +2174,7 @@ Would you like to retry?</source>
<translation type="obsolete">窗体设定 - %1</translation>
</message>
<message>
- <location line="-696"/>
+ <location line="-699"/>
<source>&amp;New...</source>
<translation>新建(&amp;N)...</translation>
</message>
@@ -2247,12 +2205,12 @@ Would you like to retry?</source>
</message>
<message>
<location line="+1"/>
- <location line="+931"/>
+ <location line="+896"/>
<source>&amp;Close</source>
<translation>关闭(&amp;C)</translation>
</message>
<message>
- <location line="-930"/>
+ <location line="-895"/>
<source>Save &amp;Image...</source>
<translation>保存图像(&amp;I)...</translation>
</message>
@@ -2276,18 +2234,18 @@ Would you like to retry?</source>
<translation>ALT+CTRL+S</translation>
</message>
<message>
- <location line="+352"/>
+ <location line="+355"/>
<location line="+248"/>
<source>Save Form As</source>
<translation>窗体另存为</translation>
</message>
<message>
- <location line="+467"/>
+ <location line="+429"/>
<source>Preview failed</source>
<translation>预览失败</translation>
</message>
<message>
- <location line="-613"/>
+ <location line="-575"/>
<source>Code generation failed</source>
<translation>代码生成失败</translation>
</message>
@@ -2302,12 +2260,12 @@ Would you like to retry?</source>
</message>
<message>
<location line="+158"/>
- <location line="+66"/>
+ <location line="+34"/>
<source>Assistant</source>
<translation>助手</translation>
</message>
<message>
- <location line="+53"/>
+ <location line="+47"/>
<location line="+23"/>
<source>The backup file %1 could not be written.</source>
<translation>备份文件%1无法被写入。</translation>
@@ -2349,7 +2307,7 @@ Would you like to retry?</source>
<translation>请关闭所有窗体文件,以便加载附加字体</translation>
</message>
<message>
- <location line="+49"/>
+ <location line="+52"/>
<source>Printed %1.</source>
<translation>%1 已被打印。</translation>
</message>
@@ -2357,7 +2315,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerAppearanceOptionsPage</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="+93"/>
+ <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="+138"/>
<source>Appearance</source>
<extracomment>Tab in preferences dialog</extracomment>
<translation>外观</translation>
@@ -2366,7 +2324,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerAppearanceOptionsWidget</name>
<message>
- <location line="-39"/>
+ <location line="-53"/>
<source>Docked Window</source>
<translation>锚接的窗口</translation>
</message>
@@ -2376,7 +2334,7 @@ Would you like to retry?</source>
<translation>多个顶级窗口</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+5"/>
<source>Toolwindow Font</source>
<translation>工具窗口字体</translation>
</message>
@@ -2394,7 +2352,7 @@ Would you like to retry?</source>
<translation>设置控件</translation>
</message>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+149"/>
+ <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+179"/>
<source>Control loaded</source>
<translation>控件已经加载</translation>
</message>
@@ -2407,7 +2365,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerFormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+58"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+88"/>
<source>Script errors occurred:</source>
<translation>发生脚本错误:</translation>
</message>
@@ -2425,7 +2383,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerFormWindow</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="+187"/>
+ <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="+217"/>
<source>%1 - %2[*]</source>
<translation>%1 - %2[*]</translation>
</message>
@@ -2448,7 +2406,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerMenu</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1154"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1160"/>
<source>Type Here</source>
<translation>在这里输入</translation>
</message>
@@ -2458,7 +2416,7 @@ Would you like to retry?</source>
<translation>添加分隔符</translation>
</message>
<message>
- <location line="+373"/>
+ <location line="+379"/>
<source>Remove action &apos;%1&apos;</source>
<translation>移除动作“%1”</translation>
</message>
@@ -2517,7 +2475,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerPluginManager</name>
<message>
- <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="+197"/>
+ <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="+249"/>
<source>An XML error was encountered when parsing the XML of the custom widget %1: %2</source>
<translation>在解析自定义窗口部件%1的XML时发生错误:%2</translation>
</message>
@@ -2551,7 +2509,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerPropertySheet</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+717"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+747"/>
<source>Dynamic Properties</source>
<translation>动态属性</translation>
</message>
@@ -2564,14 +2522,14 @@ Would you like to retry?</source>
<translation>不支持布局类型“%1”,默认为网格。</translation>
</message>
<message>
- <location line="+331"/>
+ <location line="+342"/>
<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>在查询页面#%5时,窗口部件“%1”(%2)的容器扩展返回了一个没有被设计师管理的窗口部件。
容器页面应该只能由自定义窗口部件的domXml()方法传回的XML指定。</translation>
</message>
<message>
- <location line="+598"/>
+ <location line="+599"/>
<source>Unexpected element &lt;%1&gt;</source>
<extracomment>Parsing clipboard contents</extracomment>
<translation>未预期的元素&lt;%1&gt;</translation>
@@ -2599,7 +2557,7 @@ 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="+53"/>
+ <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>
@@ -2619,7 +2577,7 @@ 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="+160"/>
+ <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="+190"/>
<source>Property Editor</source>
<translation>属性编辑器</translation>
</message>
@@ -2656,7 +2614,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="obsolete">窗口部件盒</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="+318"/>
+ <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>在%2的第%1行发生错误:%3</translation>
</message>
@@ -2679,7 +2637,7 @@ 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="+169"/>
+ <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="+199"/>
<source>&amp;File</source>
<translation>文件(&amp;F)</translation>
</message>
@@ -2790,7 +2748,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="obsolete">设计师在您上一次对话中没有正常终止。还有一些备份文件存在,您想要加载它们么?</translation>
</message>
<message>
- <location line="+113"/>
+ <location line="+112"/>
<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>
@@ -2804,7 +2762,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="obsolete">文件</translation>
</message>
<message numerus="yes">
- <location line="-260"/>
+ <location line="-259"/>
<source>There are %n forms with unsaved changes. Do you want to review these changes before quitting?</source>
<translation>
<numerusform>还有 %n 个窗体没有保存变化。您想要在退出之前评审这些变化么?</numerusform>
@@ -2834,7 +2792,7 @@ 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="+130"/>
+ <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="+160"/>
<source>An empty class name was passed on to %1 (object name: &apos;%2&apos;).</source>
<extracomment>Empty class name passed to widget factory method</extracomment>
<translation>一个空白的类名称被传送到%1(对象名称:%2)。</translation>
@@ -2855,7 +2813,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation>布局类型“%1”不被支持。</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="+76"/>
+ <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>
@@ -2875,7 +2833,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation>属性 %1 无法被写入。还不支持类型 %2。</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/uilib/properties_p.h" line="+102"/>
+ <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>枚举变量值“%1”是无效的。默认值“%2”将会被用来替代。</translation>
</message>
@@ -3134,7 +3092,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QStackedWidgetEventFilter</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="+164"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="+194"/>
<source>Previous Page</source>
<translation>上一页</translation>
</message>
@@ -3195,7 +3153,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QTabWidgetEventFilter</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="+59"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="+89"/>
<source>Delete</source>
<translation>删除</translation>
</message>
@@ -3223,7 +3181,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QToolBoxHelper</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="+34"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="+64"/>
<source>Delete Page</source>
<translation>删除页</translation>
</message>
@@ -3261,7 +3219,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtBoolEdit</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+198"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+226"/>
<location line="+10"/>
<location line="+25"/>
<source>True</source>
@@ -3277,7 +3235,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtBoolPropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1469"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1477"/>
<source>True</source>
<translation>真</translation>
</message>
@@ -3290,7 +3248,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtCharEdit</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1573"/>
+ <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1601"/>
<source>Clear Char</source>
<translation>清除字符</translation>
</message>
@@ -3306,7 +3264,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtColorPropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4769"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4777"/>
<source>Red</source>
<translation>红色</translation>
</message>
@@ -3494,7 +3452,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtGradientEditor</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+405"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+435"/>
<source>Start X</source>
<translation>开始 X</translation>
</message>
@@ -3769,7 +3727,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtGradientStopsWidget</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+919"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+949"/>
<source>New Stop</source>
<translation>新建中止点</translation>
</message>
@@ -3807,7 +3765,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtGradientView</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+77"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+107"/>
<source>Grad</source>
<translation>渐变</translation>
</message>
@@ -3854,7 +3812,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtGradientViewDialog</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.h" line="+32"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.h" line="+62"/>
<location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui"/>
<source>Select Gradient</source>
<translation>选择渐变</translation>
@@ -3871,7 +3829,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtLocalePropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-3553"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-3561"/>
<source>%1, %2</source>
<translation>%1, %2</translation>
</message>
@@ -3938,22 +3896,22 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtRectFPropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1705"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1716"/>
<source>[(%1, %2), %3 x %4]</source>
<translation>[(%1, %2), %3 x %4]</translation>
</message>
<message>
- <location line="+155"/>
+ <location line="+156"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location line="+9"/>
+ <location line="+8"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location line="+9"/>
+ <location line="+8"/>
<source>Width</source>
<translation>宽度</translation>
</message>
@@ -3966,22 +3924,22 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtRectPropertyManager</name>
<message>
- <location line="-610"/>
+ <location line="-614"/>
<source>[(%1, %2), %3 x %4]</source>
<translation>[(%1, %2), %3 x %4]</translation>
</message>
<message>
- <location line="+119"/>
+ <location line="+120"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location line="+8"/>
+ <location line="+7"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location line="+8"/>
+ <location line="+7"/>
<source>Width</source>
<translation>宽度</translation>
</message>
@@ -3994,7 +3952,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtResourceEditorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="+46"/>
+ <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="+76"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>%1 已经存在。
@@ -4006,7 +3964,7 @@ Do you want to replace it?</source>
<translation>这个文件好像不是一个资源文件;我们所期望的是“%2”,但是只找到了元素“%1”。</translation>
</message>
<message>
- <location line="+900"/>
+ <location line="+902"/>
<source>%1 [read-only]</source>
<translation>%1 [只读]</translation>
</message>
@@ -4298,7 +4256,7 @@ to
<context>
<name>QtResourceView</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+404"/>
+ <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+435"/>
<source>Size: %1 x %2
%3</source>
<translation>大小:%1 x %2
@@ -4331,7 +4289,7 @@ to
<context>
<name>QtSizeFPropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-532"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-537"/>
<source>%1 x %2</source>
<translation>%1 x %2</translation>
</message>
@@ -4349,12 +4307,18 @@ to
<context>
<name>QtSizePolicyPropertyManager</name>
<message>
- <location line="+1707"/>
+ <location line="+1719"/>
+ <location line="+1"/>
+ <source>&lt;Invalid&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
<source>[%1, %2, %3, %4]</source>
<translation>[%1, %2, %3, %4]</translation>
</message>
<message>
- <location line="+49"/>
+ <location line="+45"/>
<source>Horizontal Policy</source>
<translation>水平策略</translation>
</message>
@@ -4377,7 +4341,7 @@ to
<context>
<name>QtSizePropertyManager</name>
<message>
- <location line="-2288"/>
+ <location line="-2298"/>
<source>%1 x %2</source>
<translation>%1 x %2</translation>
</message>
@@ -4395,7 +4359,7 @@ to
<context>
<name>QtToolBarDialog</name>
<message>
- <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1214"/>
+ <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1244"/>
<source>Custom Toolbar</source>
<translation>自定义工具栏</translation>
</message>
@@ -4503,7 +4467,7 @@ to
<context>
<name>QtTreePropertyBrowser</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+407"/>
+ <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+442"/>
<source>Property</source>
<translation>属性</translation>
</message>
@@ -4516,7 +4480,7 @@ to
<context>
<name>SaveFormAsTemplate</name>
<message>
- <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+42"/>
+ <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+72"/>
<source>Add path...</source>
<translation>添加路径...</translation>
</message>
@@ -4581,7 +4545,7 @@ Do you want overwrite the template?</source>
<context>
<name>ScriptErrorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+33"/>
+ <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+63"/>
<source>An error occurred while running the scripts for &quot;%1&quot;:
</source>
<translation>在运行“%1”的脚本过程中发生一个错误:
@@ -4600,11 +4564,21 @@ Do you want overwrite the template?</source>
<source>Select signal</source>
<translation>选择信号</translation>
</message>
+ <message>
+ <location/>
+ <source>signal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location/>
+ <source>class</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>SignalSlotConnection</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="-311"/>
+ <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), RECEIVER(%3), SLOT(%4)</translation>
</message>
@@ -4645,7 +4619,7 @@ Do you want overwrite the template?</source>
<context>
<name>Spacer</name>
<message>
- <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="+245"/>
+ <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="+275"/>
<source>Horizontal Spacer &apos;%1&apos;, %2 x %3</source>
<translation>水平间隔器“%1”,%2 x %3</translation>
</message>
@@ -4658,7 +4632,7 @@ Do you want overwrite the template?</source>
<context>
<name>TemplateOptionsPage</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="+126"/>
+ <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="+156"/>
<source>Template Paths</source>
<extracomment>Tab in preferences dialog</extracomment>
<translation>模板路径</translation>
@@ -4700,29 +4674,27 @@ Do you want overwrite the template?</source>
<context>
<name>VersionDialog</name>
<message>
- <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+146"/>
+ <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+172"/>
<source>Qt Designer</source>
<translation>Qt 设计师</translation>
</message>
<message>
- <location line="-5"/>
+ <location line="-1"/>
<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="+2"/>
<source> Open Source Edition</source>
- <translation> 开源版本</translation>
+ <translation type="obsolete"> 开源版本</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+2"/>
<source>&lt;br/&gt;Qt Designer is a graphical user interface designer for Qt applications.&lt;br/&gt;</source>
<translation>&lt;br/&gt;Qt 设计师是用于开发 Qt 应用程序的图形用户界面设计师。&lt;br/&gt;</translation>
</message>
<message>
- <location line="+16"/>
<source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.&lt;br/&gt;</source>
- <translation>我们已经允许您在 Qt 商业许可协议下使用本程序。有关细节,请阅读本软件发行中所带的 LICENSE 文件。</translation>
+ <translation type="obsolete">我们已经允许您在 Qt 商业许可协议下使用本程序。有关细节,请阅读本软件发行中所带的 LICENSE 文件。</translation>
</message>
<message>
<location line="+5"/>
@@ -4730,20 +4702,18 @@ Do you want overwrite the template?</source>
<translation>%1&lt;br/&gt;%2&lt;br/&gt;版权所有 2000-$THISYEAR$ Nokia Corporation and/or its subsidiary(-ies)。所有权利已被保留。&lt;br/&gt;&lt;br/&gt;本程序是在&lt;b&gt;没有任何担保(其中包括任何特定目的的设计、商业和适当性的担保)&lt;/b&gt;的条件下提供的。&lt;br/&gt; </translation>
</message>
<message>
- <location line="-17"/>
<source>This version of Qt Designer is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel.html&lt;/a&gt; for an overview of Qt licensing.&lt;br/&gt;</source>
- <translation>这个版本的 Qt 设计师是 Qt 开源版本的一部分,用于开发开源应用程序。Qt 是一个用于跨平台应用程序开发的综合 C++ 框架。&lt;br/&gt;&lt;br/&gt;开发商业(闭源)应用程序,您需要商业 Qt 许可。对于 Qt 许可的概览,请参考&lt;tt&gt;http://qtsoftware.com/company/about/businessmodel&lt;/tt&gt;。</translation>
+ <translation type="obsolete">这个版本的 Qt 设计师是 Qt 开源版本的一部分,用于开发开源应用程序。Qt 是一个用于跨平台应用程序开发的综合 C++ 框架。&lt;br/&gt;&lt;br/&gt;开发商业(闭源)应用程序,您需要商业 Qt 许可。对于 Qt 许可的概览,请参考&lt;tt&gt;http://qtsoftware.com/company/about/businessmodel&lt;/tt&gt;。</translation>
</message>
<message>
- <location line="+8"/>
<source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.&lt;br/&gt;</source>
- <translation>我们已经允许您在 Qt %1 许可协议下使用本程序。有关细节,请阅读本软件发行中所带的许可协议文件。</translation>
+ <translation type="obsolete">我们已经允许您在 Qt %1 许可协议下使用本程序。有关细节,请阅读本软件发行中所带的许可协议文件。</translation>
</message>
</context>
<context>
<name>WidgetDataBase</name>
<message>
- <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="+786"/>
+ <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>这个文件包含了一个自定义窗口部件“%1”,其基类(%2)和窗口部件数据库(%3)的当前条目不同。这个窗口部件数据库并未做任何改动。</translation>
</message>
@@ -4751,22 +4721,22 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::ActionEditor</name>
<message>
- <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+111"/>
+ <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+143"/>
<source>Actions</source>
<translation>动作</translation>
</message>
<message>
- <location line="-15"/>
+ <location line="-16"/>
<source>New...</source>
<translation>新建...</translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+7"/>
<source>Delete</source>
<translation>删除</translation>
</message>
<message>
- <location line="+305"/>
+ <location line="+307"/>
<source>New action</source>
<translation>新建动作</translation>
</message>
@@ -4776,12 +4746,17 @@ Do you want overwrite the template?</source>
<translation>编辑动作</translation>
</message>
<message>
- <location line="-408"/>
+ <location line="-411"/>
<source>Edit...</source>
<translation>编辑...</translation>
</message>
<message>
<location line="+1"/>
+ <source>Go to slot...</source>
+ <translation type="unfinished">转到槽...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
<source>Copy</source>
<translation>复制</translation>
</message>
@@ -4801,7 +4776,7 @@ Do you want overwrite the template?</source>
<translation>选择全部</translation>
</message>
<message>
- <location line="+52"/>
+ <location line="+54"/>
<source>Configure Action Editor</source>
<translation>配置动作编辑器</translation>
</message>
@@ -4816,7 +4791,7 @@ Do you want overwrite the template?</source>
<translation>细节视图</translation>
</message>
<message>
- <location line="+406"/>
+ <location line="+412"/>
<source>Remove actions</source>
<translation>移除动作</translation>
</message>
@@ -4826,7 +4801,7 @@ Do you want overwrite the template?</source>
<translation>移除动作“%1”</translation>
</message>
<message>
- <location line="+183"/>
+ <location line="+186"/>
<source>Used In</source>
<translation>用于</translation>
</message>
@@ -4841,7 +4816,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::ActionModel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+64"/>
+ <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+95"/>
<source>Name</source>
<translation>名称</translation>
</message>
@@ -4874,7 +4849,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::BuddyEditor</name>
<message>
- <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+235"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+265"/>
<source>Add buddy</source>
<translation>添加伙伴</translation>
</message>
@@ -4906,7 +4881,7 @@ 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="+47"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+77"/>
<source>Edit Buddies</source>
<translation>编辑伙伴</translation>
</message>
@@ -4914,7 +4889,7 @@ 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="+30"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+60"/>
<source>Edit Buddies</source>
<translation>编辑伙伴</translation>
</message>
@@ -4968,7 +4943,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::CodeDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+69"/>
+ <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+99"/>
<source>Save...</source>
<translation>保存...</translation>
</message>
@@ -5026,7 +5001,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::ColorAction</name>
<message>
- <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+220"/>
+ <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+250"/>
<source>Text Color</source>
<translation>文本颜色</translation>
</message>
@@ -5034,7 +5009,7 @@ 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="+42"/>
+ <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+72"/>
<source>Edit Items...</source>
<translation>编辑项目...</translation>
</message>
@@ -5073,7 +5048,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::ConnectionModel</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="-470"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="-465"/>
<source>Sender</source>
<translation>发送者</translation>
</message>
@@ -5093,7 +5068,7 @@ Do you want overwrite the template?</source>
<translation>槽</translation>
</message>
<message>
- <location line="+97"/>
+ <location line="+90"/>
<source>&lt;sender&gt;</source>
<translation>&lt;发送者&gt;</translation>
</message>
@@ -5126,7 +5101,7 @@ 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="+82"/>
+ <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+112"/>
<source>Insert Page Before Current Page</source>
<translation>在当前页之前插入页</translation>
</message>
@@ -5189,7 +5164,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::DesignerPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+614"/>
+ <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+644"/>
<location line="+6"/>
<source>AlignLeft</source>
<translation>AlignLeft</translation>
@@ -5330,7 +5305,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::DeviceProfileDialog</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+33"/>
+ <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+63"/>
<source>Device Profiles (*.%1)</source>
<translation>设备描述文件(*.%1)</translation>
</message>
@@ -5437,14 +5412,60 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::EmbeddedOptionsControl</name>
<message>
+ <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="-256"/>
+ <source>Add a profile</source>
+ <translation type="unfinished">添加描述文件</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Edit the selected profile</source>
+ <translation type="unfinished">编辑选中的描述文件</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Delete the selected profile</source>
+ <translation type="unfinished">删除选中的描述文件</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Add Profile</source>
+ <translation type="unfinished">添加描述文件</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>New profile</source>
+ <translation type="unfinished">新建描述文件</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Edit Profile</source>
+ <translation type="unfinished">编辑描述文件</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Delete Profile</source>
+ <translation type="unfinished">删除描述文件</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Would you like to delete the profile &apos;%1&apos;?</source>
+ <translation type="unfinished">你要删除描述文件“%1”吗?</translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>Default</source>
+ <translation type="unfinished">默认</translation>
+ </message>
+ <message>
+ <location line="-160"/>
<source>None</source>
- <translation type="obsolete">无</translation>
+ <translation type="unfinished">无</translation>
</message>
</context>
<context>
<name>qdesigner_internal::FilterWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+155"/>
+ <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+185"/>
<source>&lt;Filter&gt;</source>
<translation>&lt;过滤器&gt;</translation>
</message>
@@ -5452,7 +5473,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::FormEditor</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+160"/>
+ <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+190"/>
<source>Resource File Changed</source>
<translation>资源文件已改变</translation>
</message>
@@ -5473,7 +5494,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::FormWindow</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1262"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1267"/>
<source>Edit contents</source>
<translation>编辑内容</translation>
</message>
@@ -5487,7 +5508,7 @@ Do you want overwrite the template?</source>
<translation type="obsolete">插入窗口部件%1</translation>
</message>
<message>
- <location line="+836"/>
+ <location line="+841"/>
<source>Resize</source>
<translation>重定义大小</translation>
</message>
@@ -5531,13 +5552,13 @@ and then paste again.</source>
<translation>布局</translation>
</message>
<message>
- <location line="+490"/>
+ <location line="+493"/>
<location line="+55"/>
<source>Drop widget</source>
<translation>丢弃窗口部件</translation>
</message>
<message numerus="yes">
- <location line="-1052"/>
+ <location line="-1055"/>
<source>Paste %n action(s)</source>
<translation>
<numerusform>粘贴 %n 个动作</numerusform>
@@ -5576,7 +5597,7 @@ and then paste again.</source>
<translation>选择祖先</translation>
</message>
<message>
- <location line="+573"/>
+ <location line="+576"/>
<source>A QMainWindow-based form does not contain a central widget.</source>
<translation>一个基于 QMainWindow 的窗体没有包含中央窗口部件。</translation>
</message>
@@ -5584,7 +5605,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::FormWindowBase</name>
<message>
- <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+363"/>
+ <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+397"/>
<source>Delete</source>
<translation>删除</translation>
</message>
@@ -5597,7 +5618,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::FormWindowManager</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+337"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+368"/>
<source>Cu&amp;t</source>
<translation>剪切(&amp;T)</translation>
</message>
@@ -5679,7 +5700,7 @@ and then paste again.</source>
<translation>调整选中的窗口部件的大小</translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+6"/>
<source>Lay Out &amp;Horizontally</source>
<translation>水平布局(&amp;H)</translation>
</message>
@@ -5729,7 +5750,7 @@ and then paste again.</source>
<translation>在一个分裂器中垂直布局选中的窗口部件</translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+7"/>
<source>&amp;Break Layout</source>
<translation>打破布局(&amp;B)</translation>
</message>
@@ -5754,7 +5775,7 @@ and then paste again.</source>
<translation>窗体设定(&amp;S)...</translation>
</message>
<message>
- <location line="+75"/>
+ <location line="+78"/>
<source>Break Layout</source>
<translation>打破布局</translation>
</message>
@@ -5770,12 +5791,12 @@ and then paste again.</source>
<translation>无法创建窗体预览</translation>
</message>
<message>
- <location line="+324"/>
+ <location line="+341"/>
<source>Form Settings - %1</source>
<translation>窗体设定 - %1</translation>
</message>
<message>
- <location line="-539"/>
+ <location line="-560"/>
<source>Lay Out in a &amp;Form Layout</source>
<translation>在窗体布局中布局(&amp;F)</translation>
</message>
@@ -5785,7 +5806,7 @@ and then paste again.</source>
<translation>在一个窗体布局中布局选中的窗口部件</translation>
</message>
<message>
- <location line="+44"/>
+ <location line="+45"/>
<source>Si&amp;mplify Grid Layout</source>
<translation>简易网格布局(&amp;M)</translation>
</message>
@@ -5798,7 +5819,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::FormWindowSettings</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+162"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+193"/>
<source>None</source>
<translation>无</translation>
</message>
@@ -5849,7 +5870,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::GroupBoxTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+56"/>
+ <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+86"/>
<source>Change title...</source>
<translation>改变标题...</translation>
</message>
@@ -5865,7 +5886,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::IconSelector</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+210"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+211"/>
<source>The pixmap file &apos;%1&apos; cannot be read.</source>
<translation>无法读取像素映射文件“%1”。</translation>
</message>
@@ -5958,7 +5979,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::ItemListEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+349"/>
+ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+358"/>
<source>Properties &amp;&lt;&lt;</source>
<translation>属性&amp;&lt;&lt;</translation>
</message>
@@ -6017,7 +6038,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::LabelTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="+59"/>
+ <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="+89"/>
<source>Change rich text...</source>
<translation>改变多信息文本...</translation>
</message>
@@ -6030,7 +6051,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::LineEditTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+54"/>
+ <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+84"/>
<source>Change text...</source>
<translation>改变文本...</translation>
</message>
@@ -6062,7 +6083,7 @@ and then paste again.</source>
<translation type="obsolete">U</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+43"/>
+ <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+73"/>
<source>New Item</source>
<translation>新建项目</translation>
</message>
@@ -6096,7 +6117,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::ListWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+41"/>
+ <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+71"/>
<source>Edit Items...</source>
<translation>编辑项目...</translation>
</message>
@@ -6132,7 +6153,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::MenuTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+30"/>
+ <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+60"/>
<source>Remove</source>
<translation>移除</translation>
</message>
@@ -6191,7 +6212,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::NewDynamicPropertyDialog</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+104"/>
+ <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+134"/>
<source>Set Property Name</source>
<translation>设置属性名称</translation>
</message>
@@ -6311,7 +6332,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::NewPromotedClassPanel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+66"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+96"/>
<source>Add</source>
<translation>添加</translation>
</message>
@@ -6349,7 +6370,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::ObjectInspector</name>
<message>
- <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+727"/>
+ <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+758"/>
<source>&amp;Find in Text...</source>
<translation>在文本中查找(&amp;F)...</translation>
</message>
@@ -6365,7 +6386,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::OrderDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+83"/>
+ <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+113"/>
<source>Index %1 (%2)</source>
<translation>索引 %1 (%2)</translation>
</message>
@@ -6446,7 +6467,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PaletteEditorButton</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+31"/>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+61"/>
<source>Change Palette</source>
<translation>改变调色板</translation>
</message>
@@ -6454,7 +6475,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PaletteModel</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+351"/>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+381"/>
<source>Color Role</source>
<translation>颜色角色</translation>
</message>
@@ -6506,15 +6527,61 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PlainTextEditorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+39"/>
+ <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+69"/>
<source>Edit text</source>
<translation>编辑文本</translation>
</message>
</context>
<context>
+ <name>qdesigner_internal::PluginDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="+72"/>
+ <source>Components</source>
+ <translation>组件</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Plugin Information</source>
+ <translation>插件信息</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>Qt Designer couldn&apos;t find any plugins</source>
+ <translation>Qt 设计师无法找到任何插件</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Qt Designer found the following plugins</source>
+ <translation>Qt 设计师已经找到如下插件</translation>
+ </message>
+ <message>
+ <source>TextLabel</source>
+ <translation type="obsolete">文本标签</translation>
+ </message>
+ <message>
+ <location line="-52"/>
+ <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="+106"/>
+ <source>New custom widget plugins have been found.</source>
+ <translation>新的自定义窗口部件插件已经被找到。</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation type="obsolete">1</translation>
+ </message>
+</context>
+<context>
<name>qdesigner_internal::PreviewActionGroup</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+65"/>
+ <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+95"/>
<source>%1 Style</source>
<translation>%1 风格</translation>
</message>
@@ -6557,7 +6624,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PreviewDeviceSkin</name>
<message>
- <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+188"/>
+ <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+218"/>
<source>&amp;Close</source>
<translation>关闭(&amp;C)</translation>
</message>
@@ -6658,7 +6725,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PromotionTaskMenu</name>
<message>
- <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+55"/>
+ <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+85"/>
<source>Promoted widgets...</source>
<translation>提升的窗口部件...</translation>
</message>
@@ -6686,7 +6753,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PropertyEditor</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+222"/>
+ <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+188"/>
<source>Add Dynamic Property...</source>
<translation>添加动态属性 ...</translation>
</message>
@@ -6742,7 +6809,7 @@ Please select another name.</source>
%2</translation>
</message>
<message>
- <location line="+534"/>
+ <location line="+533"/>
<source>Object: %1
Class: %2</source>
<translation>对象:%1
@@ -6752,7 +6819,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::PropertyLineEdit</name>
<message>
- <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+58"/>
+ <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+88"/>
<source>Insert line break</source>
<translation>插入换行符</translation>
</message>
@@ -6901,7 +6968,7 @@ Class: %2</source>
<translation>设置最大大小</translation>
</message>
<message>
- <location line="+236"/>
+ <location line="+235"/>
<source>Edit ToolTip</source>
<translation>编辑工具提示</translation>
</message>
@@ -6910,8 +6977,13 @@ Class: %2</source>
<source>Edit WhatsThis</source>
<translation>编辑这是什么</translation>
</message>
+ <message>
+ <location line="+144"/>
+ <source>no signals available</source>
+ <translation type="unfinished"></translation>
+ </message>
<message numerus="yes">
- <location line="+132"/>
+ <location line="+67"/>
<source>Set size constraint on %n widget(s)</source>
<translation>
<numerusform>为 %n 个窗口部件设置大小限定</numerusform>
@@ -6921,7 +6993,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::QDesignerWidgetBox</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="+97"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="+127"/>
<location line="+13"/>
<source>Unexpected element &lt;%1&gt;</source>
<translation>未预期的元素&lt;%1&gt;</translation>
@@ -6977,7 +7049,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::QtGradientStopsController</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="+147"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="+177"/>
<source>H</source>
<translation>H</translation>
</message>
@@ -7152,7 +7224,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::ScriptDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+38"/>
+ <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+68"/>
<source>Edit script</source>
<translation>编辑脚本</translation>
</message>
@@ -7202,7 +7274,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::SignalSlotEditorPlugin</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="+46"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="+76"/>
<source>Edit Signals/Slots</source>
<translation>编辑信号/槽</translation>
</message>
@@ -7215,7 +7287,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::SignalSlotEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="+32"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="+62"/>
<source>Edit Signals/Slots</source>
<translation>编辑信号/槽</translation>
</message>
@@ -7223,7 +7295,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::StatusBarTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+55"/>
+ <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+85"/>
<source>Remove</source>
<translation>移除</translation>
</message>
@@ -7231,7 +7303,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::StringListEditorButton</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+30"/>
+ <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+60"/>
<source>Change String List</source>
<translation>改变字符串列表</translation>
</message>
@@ -7239,7 +7311,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::StyleSheetEditorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+71"/>
+ <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+101"/>
<source>Edit Style Sheet</source>
<translation>编辑样式表</translation>
</message>
@@ -7278,7 +7350,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TabOrderEditor</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+333"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+363"/>
<source>Start from Here</source>
<translation>从这里开始</translation>
</message>
@@ -7306,7 +7378,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TabOrderEditorPlugin</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="+47"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="+77"/>
<source>Edit Tab Order</source>
<translation>编辑 Tab 顺序</translation>
</message>
@@ -7314,7 +7386,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TabOrderEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="+31"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="+61"/>
<source>Edit Tab Order</source>
<translation>编辑 Tab 顺序</translation>
</message>
@@ -7356,7 +7428,7 @@ Class: %2</source>
<translation type="obsolete">表格行</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+44"/>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+74"/>
<source>New Row</source>
<translation>新建行</translation>
</message>
@@ -7431,7 +7503,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TableWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+38"/>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+68"/>
<source>Edit Items...</source>
<translation>编辑项目...</translation>
</message>
@@ -7462,7 +7534,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TextEditTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+33"/>
+ <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+63"/>
<source>Change HTML...</source>
<translation>改变HTML...</translation>
</message>
@@ -7508,7 +7580,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::ToolBarEventFilter</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+209"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+239"/>
<source>Insert Separator</source>
<translation>插入分隔符</translation>
</message>
@@ -7558,7 +7630,7 @@ Class: %2</source>
<translation>树项目</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+50"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+80"/>
<source>&amp;Columns</source>
<translation>列(&amp;C)</translation>
</message>
@@ -7705,7 +7777,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TreeWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+37"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+67"/>
<source>Edit Items...</source>
<translation>编辑项目...</translation>
</message>
@@ -7713,7 +7785,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::WidgetBox</name>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="+83"/>
+ <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="+113"/>
<source>Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML.</source>
<translation>警告:部件框中的部件创建失败。可能是由于无效的自定义部件XML引起的。</translation>
</message>
@@ -7748,17 +7820,17 @@ Class: %2</source>
<context>
<name>qdesigner_internal::WidgetBoxTreeWidget</name>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-267"/>
+ <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-268"/>
<source>Scratchpad</source>
<translation>便条</translation>
</message>
<message>
- <location line="+360"/>
+ <location line="+370"/>
<source>Custom Widgets</source>
<translation>自定义窗口部件</translation>
</message>
<message>
- <location line="+261"/>
+ <location line="+260"/>
<source>Expand all</source>
<translation>全部展开</translation>
</message>
@@ -7799,7 +7871,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::WidgetEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+41"/>
+ <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+71"/>
<source>Edit Widgets</source>
<translation>编辑窗口部件</translation>
</message>
@@ -7807,12 +7879,12 @@ Class: %2</source>
<context>
<name>qdesigner_internal::WidgetFactory</name>
<message>
- <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="+237"/>
+ <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="+267"/>
<source>The custom widget factory registered for widgets of class %1 returned 0.</source>
<translation>为类 %1 的窗口部件注册的自定义窗口部件工厂返回 0。</translation>
</message>
<message>
- <location line="+40"/>
+ <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>
@@ -7855,7 +7927,7 @@ 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="+54"/>
+ <location filename="../tools/designer/src/lib/shared/zoomwidget.cpp" line="+84"/>
<source>%1 %</source>
<extracomment>Zoom factor</extracomment>
<translation>%1 %</translation>
diff --git a/translations/designer_zh_TW.ts b/translations/designer_zh_TW.ts
index 6dfd546..83c3c66 100644
--- a/translations/designer_zh_TW.ts
+++ b/translations/designer_zh_TW.ts
@@ -1,25 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="zh_TW">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_TW">
<context>
<name></name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="43"/>
+ <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="+73"/>
<source>The moose in the noose
ate the goose who was loose.</source>
<translation>The moose in the noose
ate the goose who was loose.</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="624"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+647"/>
<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>
@@ -42,23 +44,27 @@ ate the goose who was loose.</translation>
<context>
<name>AbstractFindWidget</name>
<message>
- <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="97"/>
+ <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+127"/>
<source>&amp;Previous</source>
<translation>前一個(&amp;P)</translation>
</message>
<message>
+ <location line="+8"/>
<source>&amp;Next</source>
<translation>下一個(&amp;N)</translation>
</message>
<message>
+ <location line="+24"/>
<source>&amp;Case sensitive</source>
<translation>區分大小寫(&amp;C)</translation>
</message>
<message>
+ <location line="+8"/>
<source>Whole &amp;words</source>
<translation>整個單字(&amp;W)</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>
@@ -66,14 +72,17 @@ ate the goose who was loose.</translation>
<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>網址:</translation>
</message>
@@ -81,7 +90,7 @@ ate the goose who was loose.</translation>
<context>
<name>AppFontDialog</name>
<message>
- <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="388"/>
+ <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+418"/>
<source>Additional Fonts</source>
<translation>額外的字型</translation>
</message>
@@ -89,30 +98,37 @@ ate the goose who was loose.</translation>
<context>
<name>AppFontManager</name>
<message>
+ <location line="-267"/>
<source>&apos;%1&apos; is not a file.</source>
<translation>%1 不是一個檔案。</translation>
</message>
<message>
+ <location line="+4"/>
<source>The font file &apos;%1&apos; does not have read permissions.</source>
<translation>您沒有讀取字型檔 %1 的權限。</translation>
</message>
<message>
+ <location line="+8"/>
<source>The font file &apos;%1&apos; is already loaded.</source>
<translation>字型檔 %1 已載入。</translation>
</message>
<message>
+ <location line="+7"/>
<source>The font file &apos;%1&apos; could not be loaded.</source>
<translation>無法載入字型檔 %1。</translation>
</message>
<message>
+ <location line="+17"/>
<source>&apos;%1&apos; is not a valid font id.</source>
<translation>%1 不是一個合法的字型代碼。</translation>
</message>
<message>
+ <location line="+11"/>
<source>There is no loaded font matching the id &apos;%1&apos;.</source>
<translation>已載入的字型中沒有一個符合代碼 %1。</translation>
</message>
<message>
+ <location line="+15"/>
<source>The font &apos;%1&apos; (%2) could not be unloaded.</source>
<translation>無法卸載字型 %1(%2)。</translation>
</message>
@@ -120,42 +136,52 @@ ate the goose who was loose.</translation>
<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>
@@ -163,10 +189,12 @@ ate the goose who was loose.</translation>
<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>
@@ -174,15 +202,17 @@ ate the goose who was loose.</translation>
<context>
<name>AssistantClient</name>
<message>
- <location filename="../tools/designer/src/designer/assistantclient.cpp" line="70"/>
+ <location filename="../tools/designer/src/designer/assistantclient.cpp" line="+100"/>
<source>Unable to send request: Assistant is not responding.</source>
<translation>無法傳送要求:小幫手未回應。</translation>
</message>
<message>
+ <location line="+39"/>
<source>The binary &apos;%1&apos; does not exist.</source>
<translation>執行檔 %1 不存在。</translation>
</message>
<message>
+ <location line="+9"/>
<source>Unable to launch assistant (%1).</source>
<translation>無法啟動小幫手(%1)。</translation>
</message>
@@ -190,23 +220,27 @@ ate the goose who was loose.</translation>
<context>
<name>BrushManagerProxy</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="191"/>
+ <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+221"/>
<source>The element &apos;%1&apos; is missing the required attribute &apos;%2&apos;.</source>
<translation>元素 %1 中缺少必須的屬性 %2。</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>遇到未預期的元素 %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>讀取筆刷定義檔 %1 時發生錯誤,在第 %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>讀取資源檔 %1 時發生錯誤,在第 %2 行第 %3 欄:%4</translation>
</message>
@@ -214,75 +248,92 @@ ate the goose who was loose.</translation>
<context>
<name>BrushPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="22"/>
+ <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="+83"/>
<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>
@@ -290,132 +341,180 @@ ate the goose who was loose.</translation>
<context>
<name>Command</name>
<message>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+208"/>
+ <location line="+258"/>
<source>Change signal</source>
<translation>變更信號</translation>
</message>
<message>
+ <location line="-256"/>
+ <location line="+268"/>
<source>Change slot</source>
<translation>變更信號槽</translation>
</message>
<message>
+ <location line="-220"/>
+ <source>Change signal-slot connection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+234"/>
<source>Change sender</source>
<translation>變更發送者</translation>
</message>
<message>
+ <location line="+18"/>
<source>Change receiver</source>
<translation>變更接收者</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="113"/>
+ <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+143"/>
<source>Add connection</source>
<translation>新增連線</translation>
</message>
<message>
+ <location line="+54"/>
<source>Adjust connection</source>
<translation>調整連線</translation>
</message>
<message>
+ <location line="+19"/>
<source>Delete connections</source>
<translation>刪除連線</translation>
</message>
<message>
+ <location line="+58"/>
<source>Change source</source>
<translation>變更來源</translation>
</message>
<message>
+ <location line="+2"/>
<source>Change target</source>
<translation>變更目標</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="117"/>
+ <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="+167"/>
<source>Raise &apos;%1&apos;</source>
<translation>提升 &apos;%1&apos;</translation>
</message>
<message>
+ <location line="+33"/>
<source>Lower &apos;%1&apos;</source>
<translation>降低 &apos;%1&apos;</translation>
</message>
<message>
+ <location line="+113"/>
<source>Delete &apos;%1&apos;</source>
<translation>刪除 &apos;%1&apos;</translation>
</message>
<message>
+ <location line="+119"/>
<source>Reparent &apos;%1&apos;</source>
<translation>重定義父物件 &apos;%1&apos;</translation>
</message>
<message>
+ <location line="+53"/>
<source>Promote to custom widget</source>
<translation>提升到自訂元件</translation>
</message>
<message>
+ <location line="+42"/>
<source>Demote from custom widget</source>
<translation>從自訂元件降級</translation>
</message>
<message>
+ <location line="+79"/>
<source>Lay out using grid</source>
<translation>使用格線佈局</translation>
</message>
<message>
+ <location line="+3"/>
<source>Lay out vertically</source>
<translation>垂直佈局</translation>
</message>
<message>
+ <location line="+3"/>
<source>Lay out horizontally</source>
<translation>水平佈局</translation>
</message>
<message>
+ <location line="+41"/>
<source>Break layout</source>
<translation>打斷佈局</translation>
</message>
<message>
+ <location line="+240"/>
+ <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="-121"/>
+ <location line="+309"/>
+ <location line="+672"/>
<source>page</source>
<translation>頁面</translation>
</message>
<message>
+ <location line="-978"/>
+ <location line="+123"/>
+ <location line="+186"/>
+ <location line="+667"/>
<source>Insert Page</source>
<translation>插入頁面</translation>
</message>
<message>
+ <location line="-856"/>
<source>tab</source>
<translation>定位點</translation>
</message>
<message>
+ <location line="+209"/>
<source>Change Tab order</source>
<translation>變更定位順序</translation>
</message>
<message>
+ <location line="+28"/>
<source>Create Menu Bar</source>
<translation>建立選單列</translation>
</message>
<message>
+ <location line="+44"/>
<source>Delete Menu Bar</source>
<translation>刪除選單列</translation>
</message>
<message>
+ <location line="+47"/>
<source>Create Status Bar</source>
<translation>建立狀態列</translation>
</message>
<message>
+ <location line="+42"/>
<source>Delete Status Bar</source>
<translation>刪除狀態列</translation>
</message>
<message>
+ <location line="+45"/>
<source>Add Tool Bar</source>
<translation>新增工具列</translation>
</message>
@@ -424,14 +523,17 @@ ate the goose who was loose.</translation>
<translation type="obsolete">設定嵌入視窗元件</translation>
</message>
<message>
+ <location line="+59"/>
<source>Add Dock Window</source>
<translation>新增嵌入視窗</translation>
</message>
<message>
+ <location line="+53"/>
<source>Adjust Size of &apos;%1&apos;</source>
<translation>調整 &apos;%1&apos; 的大小</translation>
</message>
<message>
+ <location line="+152"/>
<source>Change Layout Item Geometry</source>
<translation>變更佈局項目位置</translation>
</message>
@@ -440,56 +542,70 @@ ate the goose who was loose.</translation>
<translation type="obsolete">插入列</translation>
</message>
<message>
+ <location line="+576"/>
<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_menu.cpp" line="1125"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1161"/>
<source>Set action text</source>
<translation>設定動作文字</translation>
</message>
<message>
+ <location line="+3"/>
<source>Insert action</source>
<translation>插入動作</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="861"/>
+ <location line="+89"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+891"/>
<source>Move action</source>
<translation>移動動作</translation>
</message>
<message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-404"/>
<source>Change Title</source>
<translation>變更標題</translation>
</message>
<message>
+ <location line="+2"/>
<source>Insert Menu</source>
<translation>插入選單</translation>
</message>
@@ -544,119 +660,142 @@ ate the goose who was loose.</translation>
</translation>
</message>
<message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="-2641"/>
<source>Change Z-order of &apos;%1&apos;</source>
<translation>變更 %1 的 Z 順序</translation>
</message>
<message>
+ <location line="+625"/>
<source>Simplify Grid Layout</source>
<translation>簡化格線佈局</translation>
</message>
<message>
+ <location line="+916"/>
<source>Change Form Layout Item Geometry</source>
<translation>變更表單佈局項目的位置</translation>
</message>
<message>
+ <location line="+233"/>
<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 filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="172"/>
+ <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+202"/>
<source>Change signals/slots</source>
<translation>變更信號/信號槽</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="195"/>
+ <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+225"/>
<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>打破按鍵群組 %1</translation>
</message>
<message>
+ <location line="+17"/>
<source>Add buttons to group</source>
<translation>將按鍵新增到群組</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="373"/>
+ <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>將 %1 新增到 %2</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>將 %1 從 %2 內移除</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="318"/>
+ <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/%2 變形為 %3</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_command2.cpp" line="124"/>
+ <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>將 %1 的佈局由 %2 變為 %3</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="25"/>
+ <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/qdesigner_propertycommand.cpp" line="1176"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1209"/>
<source>Changed &apos;%1&apos; of &apos;%2&apos;</source>
<translation>已變更 %1 個,共 %2 個</translation>
</message>
<message numerus="yes">
+ <location line="+3"/>
<source>Changed &apos;%1&apos; of %n objects</source>
<translation>
<numerusform>已變更 %1 個,共 %n 個物件</numerusform>
</translation>
</message>
<message>
+ <location line="+76"/>
<source>Reset &apos;%1&apos; of &apos;%2&apos;</source>
<translation>已重置 %1 個,共 %2 個</translation>
</message>
<message numerus="yes">
+ <location line="+3"/>
<source>Reset &apos;%1&apos; of %n objects</source>
<translation>
<numerusform>已重置 %1 個,共 %n 個物件</numerusform>
</translation>
</message>
<message>
+ <location line="+89"/>
<source>Add dynamic property &apos;%1&apos; to &apos;%2&apos;</source>
<translation>新增動態屬性 %1 到 %2</translation>
</message>
<message numerus="yes">
+ <location line="+3"/>
<source>Add dynamic property &apos;%1&apos; to %n objects</source>
<translation>
<numerusform>新增動態屬性 %1 到 %n 個物件</numerusform>
</translation>
</message>
<message>
+ <location line="+86"/>
<source>Remove dynamic property &apos;%1&apos; from &apos;%2&apos;</source>
<translation>從 %2 移除動態屬性 %1</translation>
</message>
<message numerus="yes">
+ <location line="+3"/>
<source>Remove dynamic property &apos;%1&apos; from %n objects</source>
<translation>
<numerusform>從 %n 個物件移除動態屬性 %1</numerusform>
@@ -666,18 +805,22 @@ ate the goose who was loose.</translation>
<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>群組盒</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>
@@ -685,23 +828,28 @@ ate the goose who was loose.</translation>
<context>
<name>DPI_Chooser</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="39"/>
+ <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>綠色手機(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>
</message>
</context>
<context>
<name>Designer</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="409"/>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+439"/>
<source>Qt Designer</source>
<translation>Qt 設計家</translation>
</message>
@@ -710,52 +858,64 @@ ate the goose who was loose.</translation>
<translation type="obsolete">此檔案包含最上層的間隔器。&lt;br&gt;它們&lt;b&gt;尚未&lt;/b&gt;存到表單中。&lt;br&gt;也許您忘了建立佈局?</translation>
</message>
<message>
+ <location line="+10"/>
<source>This file contains top level spacers.&lt;br&gt;They have &lt;b&gt;NOT&lt;/b&gt; been saved into the form.</source>
<translation>此檔案包含最上層的間隔器。&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>此檔案是用 Qt-%1 的設計家建立的,因此無法讀取。</translation>
</message>
<message>
+ <location line="+102"/>
<source>This file cannot be read because the extra info extension failed to load.</source>
<translation>此檔案無法讀取,因為載入額外的資訊延伸時失敗。</translation>
</message>
<message>
+ <location line="-72"/>
<source>The converted file could not be read.</source>
<translation>轉換後的檔案無法讀取。</translation>
</message>
<message>
+ <location line="+4"/>
<source>This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer.</source>
<translation>此檔案是用 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>此檔案是用 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; 將它轉換成 Qt 4 的 ui 格式。</translation>
</message>
@@ -770,19 +930,22 @@ The old form has been untouched, but you will have to save this form under a new
<translation type="obsolete">此檔案是用 Qt-%1 的設計家建立的,因此無法讀取。&lt;br&gt;%2&lt;br&gt;請先用 &lt;b&gt;uic3 -convert&lt;/b&gt; 將它轉換成 Qt-4 的格式。</translation>
</message>
<message>
+ <location line="+746"/>
<source>Custom Widgets</source>
<translation>自訂元件</translation>
</message>
<message>
+ <location line="+12"/>
<source>Promoted Widgets</source>
<translation>已提升的元件</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="602"/>
+ <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>
@@ -812,10 +975,12 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>DesignerMetaEnum</name>
<message>
+ <location line="-513"/>
<source>%1 is not a valid enumeration value of &apos;%2&apos;.</source>
<translation>%1 不是 %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 無法轉換為 %2 型態的列舉值。</translation>
</message>
@@ -823,6 +988,7 @@ The old form has been untouched, but you will have to save this form under a new
<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 無法轉換為 %2 型態的旗標值。</translation>
</message>
@@ -830,11 +996,13 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>DeviceProfile</name>
<message>
- <location filename="../tools/designer/src/lib/shared/deviceprofile.cpp" line="367"/>
+ <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>%1 不是一個數字。</translation>
</message>
<message>
+ <location line="+23"/>
<source>An invalid tag &lt;%1&gt; was encountered.</source>
<translation>遇到不合法的標籤 &lt;%1&gt;。</translation>
</message>
@@ -842,22 +1010,27 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>DeviceProfileDialog</name>
<message>
+ <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui"/>
<source>&amp;Family</source>
<translation>家族(&amp;F)</translation>
</message>
<message>
+ <location/>
<source>&amp;Point Size</source>
<translation>點大小(&amp;P)</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>
@@ -865,47 +1038,57 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>DeviceSkin</name>
<message>
- <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="49"/>
+ <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/>
<source>The image file &apos;%1&apos; could not be loaded.</source>
<translation>無法載入影像檔 %1。</translation>
</message>
<message>
+ <location line="+64"/>
<source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
<translation>外觀目錄 %1 沒有設定檔。</translation>
</message>
<message>
+ <location line="+5"/>
<source>The skin configuration file &apos;%1&apos; could not be opened.</source>
<translation>外觀設定檔 %1 無法開啟。</translation>
</message>
<message>
+ <location line="+6"/>
<source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
<translation>外觀設定檔 %1 無法讀取:%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>外觀中的「上」影像檔 %1 不存在。</translation>
</message>
<message>
+ <location line="+10"/>
<source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
<translation>外觀中的「下」影像檔 %1 不存在。</translation>
</message>
<message>
+ <location line="+11"/>
<source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
<translation>外觀中的「關閉」影像檔 %1 不存在。</translation>
</message>
<message>
+ <location line="+12"/>
<source>The skin cursor image file &apos;%1&apos; does not exist.</source>
<translation>外觀中的游標影像檔 %1 不存在。</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>
@@ -913,59 +1096,64 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>EmbeddedOptionsControl</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="130"/>
<source>None</source>
- <translation>無</translation>
+ <translation type="obsolete">無</translation>
</message>
<message>
<source>Add a profile</source>
- <translation>新增設定檔</translation>
+ <translation type="obsolete">新增設定檔</translation>
</message>
<message>
<source>Edit the selected profile</source>
- <translation>編輯選取的設定檔</translation>
+ <translation type="obsolete">編輯選取的設定檔</translation>
</message>
<message>
<source>Delete the selected profile</source>
- <translation>刪除選取的設定檔</translation>
+ <translation type="obsolete">刪除選取的設定檔</translation>
</message>
<message>
<source>Add Profile</source>
- <translation>新增設定檔</translation>
+ <translation type="obsolete">新增設定檔</translation>
</message>
<message>
<source>New profile</source>
- <translation>新增設定檔</translation>
+ <translation type="obsolete">新增設定檔</translation>
</message>
<message>
<source>Edit Profile</source>
- <translation>編輯設定檔</translation>
+ <translation type="obsolete">編輯設定檔</translation>
</message>
<message>
<source>Delete Profile</source>
- <translation>刪除設定檔</translation>
+ <translation type="obsolete">刪除設定檔</translation>
</message>
<message>
<source>Would you like to delete the profile &apos;%1&apos;?</source>
- <translation>您要刪除設定檔 %1 嗎?</translation>
+ <translation type="obsolete">您要刪除設定檔 %1 嗎?</translation>
</message>
<message>
+ <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="+311"/>
<source>&lt;html&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Font&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%1, %2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Style&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Resolution&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%4 x %5&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/html&gt;</source>
+ <extracomment>Format embedded device profile description</extracomment>
<translation>&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;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>
<message>
<source>Default</source>
- <translation>預設</translation>
+ <translation type="obsolete">預設</translation>
</message>
</context>
<context>
<name>EmbeddedOptionsPage</name>
<message>
+ <location line="+103"/>
<source>Embedded Design</source>
+ <extracomment>Tab in preferences dialog</extracomment>
<translation>嵌入式設計</translation>
</message>
<message>
+ <location line="+10"/>
<source>Device Profiles</source>
+ <extracomment>EmbeddedOptionsControl group box&quot;</extracomment>
<translation>裝置設定檔</translation>
</message>
</context>
@@ -995,23 +1183,27 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>FontPanel</name>
<message>
- <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="33"/>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
<source>Font</source>
<translation>字型</translation>
</message>
<message>
+ <location line="+11"/>
<source>&amp;Writing system</source>
<translation>寫入系統(&amp;W)</translation>
</message>
<message>
+ <location line="+3"/>
<source>&amp;Family</source>
<translation>家族(&amp;F)</translation>
</message>
<message>
+ <location line="+4"/>
<source>&amp;Style</source>
<translation>風格(&amp;S)</translation>
</message>
<message>
+ <location line="+4"/>
<source>&amp;Point size</source>
<translation>點大小(&amp;P)</translation>
</message>
@@ -1019,19 +1211,22 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>FontPropertyManager</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="32"/>
+ <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>
@@ -1039,35 +1234,43 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>FormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="321"/>
+ <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+351"/>
<source>Invalid stretch value for &apos;%1&apos;: &apos;%2&apos;</source>
+ <extracomment>Parsing layout stretch values</extracomment>
<translation>%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>
<translation>%1 的最小值不合法:%2</translation>
</message>
</context>
<context>
<name>FormEditorOptionsPage</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="61"/>
+ <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>
@@ -1075,30 +1278,37 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>FormLayoutRowDialog</name>
<message>
+ <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui"/>
<source>Add Form Layout Row</source>
<translation>新增表單佈局列</translation>
</message>
<message>
+ <location/>
<source>&amp;Label text:</source>
<translation>標籤文字(&amp;L):</translation>
</message>
<message>
+ <location/>
<source>Field &amp;type:</source>
<translation>欄位型態(&amp;T):</translation>
</message>
<message>
+ <location/>
<source>&amp;Field name:</source>
<translation>欄位名稱(&amp;F):</translation>
</message>
<message>
+ <location/>
<source>&amp;Buddy:</source>
<translation>同伴(&amp;B):</translation>
</message>
<message>
+ <location/>
<source>&amp;Row:</source>
<translation>列(&amp;R):</translation>
</message>
<message>
+ <location/>
<source>Label &amp;name:</source>
<translation>標籤名稱(&amp;N):</translation>
</message>
@@ -1106,11 +1316,12 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>FormWindow</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="1669"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1705"/>
<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>
@@ -1118,50 +1329,62 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>FormWindowSettings</name>
<message>
+ <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui"/>
<source>Form Settings</source>
<translation>表單設定</translation>
</message>
<message>
+ <location/>
<source>Layout &amp;Default</source>
<translation>佈局預設值(&amp;D)</translation>
</message>
<message>
+ <location/>
<source>&amp;Spacing:</source>
<translation>間隔空間(&amp;S):</translation>
</message>
<message>
+ <location/>
<source>&amp;Margin:</source>
<translation>邊緣留白(&amp;M):</translation>
</message>
<message>
+ <location/>
<source>&amp;Layout Function</source>
<translation>佈局功能(&amp;L)</translation>
</message>
<message>
+ <location/>
<source>Ma&amp;rgin:</source>
<translation>邊緣留白(&amp;R):</translation>
</message>
<message>
+ <location/>
<source>Spa&amp;cing:</source>
<translation>間隔空間(&amp;C):</translation>
</message>
<message>
+ <location/>
<source>Embedded Design</source>
<translation>嵌入式設計</translation>
</message>
<message>
+ <location/>
<source>&amp;Author</source>
<translation>作者(&amp;A)</translation>
</message>
<message>
+ <location/>
<source>&amp;Include Hints</source>
<translation>引入提示(&amp;I)</translation>
</message>
<message>
+ <location/>
<source>&amp;Pixmap Function</source>
<translation>像素圖功能(&amp;P)</translation>
</message>
<message>
+ <location/>
<source>Grid</source>
<translation>格線</translation>
</message>
@@ -1169,7 +1392,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>IconSelector</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="321"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+353"/>
<source>All Pixmaps (</source>
<translation>所有像素圖 (</translation>
</message>
@@ -1177,14 +1400,16 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>ItemPropertyBrowser</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="36"/>
+ <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>
</message>
</context>
<context>
<name>LanguageResourceDialog</name>
<message>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-235"/>
<source>Choose Resource</source>
<translation>選擇資源</translation>
</message>
@@ -1192,27 +1417,33 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>MainWindowBase</name>
<message>
- <location filename="../tools/designer/src/designer/mainwindow.cpp" line="89"/>
+ <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+119"/>
<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 設計家</translation>
</message>
@@ -1220,23 +1451,27 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>NewForm</name>
<message>
- <location filename="../tools/designer/src/designer/newform.cpp" line="49"/>
+ <location filename="../tools/designer/src/designer/newform.cpp" line="+79"/>
<source>C&amp;reate</source>
<translation>建立(&amp;R)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Recent</source>
<translation>最近的</translation>
</message>
<message>
+ <location line="+32"/>
<source>&amp;Close</source>
<translation>關閉(&amp;C)</translation>
</message>
<message>
+ <location line="+3"/>
<source>&amp;Open...</source>
<translation>開啟(&amp;O)...</translation>
</message>
<message>
+ <location line="+4"/>
<source>&amp;Recent Forms</source>
<translation>最近開啟的表單(&amp;R)</translation>
</message>
@@ -1249,10 +1484,12 @@ The old form has been untouched, but you will have to save this form under a new
<translation type="obsolete">選擇預覽的樣本</translation>
</message>
<message>
+ <location line="+64"/>
<source>Read error</source>
<translation>讀取錯誤</translation>
</message>
<message>
+ <location line="-100"/>
<source>New Form</source>
<translation>新表單</translation>
</message>
@@ -1261,6 +1498,7 @@ The old form has been untouched, but you will have to save this form under a new
<translation type="obsolete">0</translation>
</message>
<message>
+ <location line="-5"/>
<source>Show this Dialog on Startup</source>
<translation>啟動時顯示此對話框</translation>
</message>
@@ -1273,10 +1511,12 @@ The old form has been untouched, but you will have to save this form under a new
<translation type="obsolete">自訂元件</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>
@@ -1284,7 +1524,7 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>NewFormWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="465"/>
+ <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+495"/>
<source>Unable to open the form template file &apos;%1&apos;: %2</source>
<translation>無法開啟表單樣本檔 %1:%2</translation>
</message>
@@ -1292,19 +1532,22 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>ObjectInspectorModel</name>
<message>
- <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="331"/>
+ <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+364"/>
<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>
@@ -1312,11 +1555,12 @@ The old form has been untouched, but you will have to save this form under a new
<context>
<name>ObjectNameDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="132"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+162"/>
<source>Change Object Name</source>
<translation>變更物件名稱</translation>
</message>
<message>
+ <location line="+4"/>
<source>Object Name</source>
<translation>物件名稱</translation>
</message>
@@ -1373,43 +1617,16 @@ There&apos;s nothing more here. You should get back to work.</source>
</message>
</context>
<context>
- <name>qdesigner_internal::PluginDialog</name>
- <message>
- <location filename="../tools/designer/src/designer/plugindialog.cpp" line="40"/>
- <source>Components</source>
- <translation>組件</translation>
- </message>
+ <name>PluginDialog</name>
<message>
+ <location filename="../tools/designer/src/lib/shared/plugindialog.ui"/>
<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 設計家找不到任何的外掛程式。</translation>
- </message>
- <message>
- <source>Qt Designer found the following plugins</source>
- <translation>Qt 設計家找到以下的外掛程式</translation>
- </message>
- <message>
- <source>New custom widget plugins have been found.</source>
- <translation>找到新的自訂元件外掛程式。</translation>
- </message>
- <message>
- <source>TextLabel</source>
- <translation>文字標籤</translation>
+ <translation type="unfinished">外掛程式資訊</translation>
</message>
<message>
+ <location/>
<source>1</source>
- <translation>1</translation>
+ <translation type="unfinished">1</translation>
</message>
</context>
<context>
@@ -1435,6 +1652,7 @@ There&apos;s nothing more here. You should get back to work.</source>
<translation type="obsolete">請選擇要儲存樣本的目錄</translation>
</message>
<message>
+ <location filename="../tools/designer/src/designer/preferencesdialog.ui"/>
<source>Preferences</source>
<translation>喜好設定</translation>
</message>
@@ -1454,39 +1672,47 @@ There&apos;s nothing more here. You should get back to work.</source>
<context>
<name>PreviewConfigurationWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="125"/>
+ <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+155"/>
<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 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>
@@ -1494,8 +1720,9 @@ There&apos;s nothing more here. You should get back to work.</source>
<context>
<name>PromotionModel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="86"/>
+ <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+116"/>
<source>Not used</source>
+ <extracomment>Usage of promoted widgets</extracomment>
<translation>未使用</translation>
</message>
</context>
@@ -1509,6 +1736,8 @@ There&apos;s nothing more here. You should get back to work.</source>
<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>
@@ -1516,48 +1745,58 @@ There&apos;s nothing more here. You should get back to work.</source>
<context>
<name>QAbstractFormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="176"/>
+ <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="+119"/>
<source>The creation of a widget of the class &apos;%1&apos; failed.</source>
<translation>建立類別 %1 的元件時失敗。</translation>
</message>
<message>
+ <location line="+295"/>
<source>Attempt to add child that is not of class QWizardPage to QWizard.</source>
<translation>試圖將不是 QWizardPage 的子類別加入 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>您試圖將一個佈局新增到元件 %1(%2)中,但該元件已經有一個非盒狀型態為 %3 的未管理佈局。這表示在 ui 檔中有發生不一致的情況。</translation>
</message>
<message>
+ <location line="+144"/>
<source>Empty widget item in %1 &apos;%2&apos;.</source>
<translation>空白的元件項目於 %1「%2」。</translation>
</message>
<message>
+ <location line="+684"/>
<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>套用定位點時:找不到元件 %1。</translation>
</message>
<message>
+ <location line="+749"/>
<source>Invalid QButtonGroup reference &apos;%1&apos; referenced by &apos;%2&apos;.</source>
<translation>%2 參考了不合法的 QButtonGroup 參考 %1。</translation>
</message>
<message>
+ <location line="+518"/>
<source>This version of the uitools library is linked without script support.</source>
<translation>這個 uitools 函式庫的版本沒有支援文稿。</translation>
</message>
@@ -1598,11 +1837,12 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QAxWidgetPlugin</name>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="45"/>
+ <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>
@@ -1610,19 +1850,22 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QAxWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="89"/>
+ <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>重置控制</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>
@@ -1630,56 +1873,67 @@ 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="53"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="+83"/>
<source>%1 is not a promoted class.</source>
<translation>%1 不是一個已提升的類別。</translation>
</message>
<message>
+ <location line="+65"/>
<source>The base class %1 is invalid.</source>
<translation>基底類別 %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>已提升元件</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>
<translation>不法設定空的引入檔。</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="58"/>
+ <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
@@ -1689,15 +1943,17 @@ Script: %3</source>
<context>
<name>QDesigner</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner.cpp" line="111"/>
+ <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 設計家</translation>
</message>
<message>
+ <location line="+1"/>
<source>This application cannot be used for the Console edition of Qt</source>
<translation>此應用程式無法用於主控台版的 Qt</translation>
</message>
@@ -1712,7 +1968,7 @@ Script: %3</source>
<context>
<name>QDesignerActions</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="152"/>
+ <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+178"/>
<source>Edit Widgets</source>
<translation>編輯元件</translation>
</message>
@@ -1745,6 +2001,7 @@ Script: %3</source>
<translation type="obsolete">關閉表單(&amp;C)</translation>
</message>
<message>
+ <location line="+10"/>
<source>&amp;Quit</source>
<translation>離開(&amp;Q)</translation>
</message>
@@ -1757,14 +2014,17 @@ Script: %3</source>
<translation type="obsolete">表單設定(&amp;S)...</translation>
</message>
<message>
+ <location line="+3"/>
<source>&amp;Minimize</source>
<translation>最小化(&amp;M)</translation>
</message>
<message>
+ <location line="+2"/>
<source>Bring All to Front</source>
<translation>把全部都帶到前景</translation>
</message>
<message>
+ <location line="+2"/>
<source>Preferences...</source>
<translation>喜好設定</translation>
</message>
@@ -1777,6 +2037,7 @@ Script: %3</source>
<translation type="obsolete">CTRL+O</translation>
</message>
<message>
+ <location line="+293"/>
<source>Clear &amp;Menu</source>
<translation>清除選單(&amp;M)</translation>
</message>
@@ -1785,6 +2046,7 @@ Script: %3</source>
<translation type="obsolete">CTRL+S</translation>
</message>
<message>
+ <location line="-232"/>
<source>CTRL+SHIFT+S</source>
<translation>CTRL+SHIFT+S</translation>
</message>
@@ -1793,6 +2055,7 @@ Script: %3</source>
<translation type="obsolete">CTRL+W</translation>
</message>
<message>
+ <location line="+27"/>
<source>CTRL+Q</source>
<translation>CTRL+Q</translation>
</message>
@@ -1805,6 +2068,7 @@ Script: %3</source>
<translation type="obsolete">CTRL+SHIFT+Z</translation>
</message>
<message>
+ <location line="+85"/>
<source>CTRL+R</source>
<translation>CTRL+R</translation>
</message>
@@ -1813,38 +2077,51 @@ Script: %3</source>
<translation type="obsolete">%1 風格</translation>
</message>
<message>
+ <location line="+18"/>
<source>CTRL+M</source>
<translation>CTRL+M</translation>
</message>
<message>
+ <location line="+31"/>
<source>Qt Designer &amp;Help</source>
<translation>Qt 設計家說明(&amp;H)</translation>
</message>
<message>
+ <location line="+7"/>
<source>Current Widget Help</source>
<translation>目前元件說明</translation>
</message>
<message>
+ <location line="+7"/>
<source>What&apos;s New in Qt Designer?</source>
<translation>Qt 設計家有什麼新功能?</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 設計家</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>設計家介面檔 (*.%1);;所有檔案 (*)</translation>
</message>
@@ -1857,54 +2134,67 @@ Script: %3</source>
<translation type="obsolete">儲存</translation>
</message>
<message>
+ <location line="-615"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>%1 已存在。
您要取代它嗎?</translation>
</message>
<message>
+ <location line="-26"/>
<source>Saved %1.</source>
<translation>已儲存 %1。</translation>
</message>
<message>
+ <location line="+68"/>
<source>Additional Fonts...</source>
<translation>額外的字型</translation>
</message>
<message>
+ <location line="+298"/>
<source>&amp;Recent Forms</source>
<translation>最近開啟的表單(&amp;R)</translation>
</message>
<message>
+ <location line="+202"/>
<source>Designer</source>
<translation>設計家</translation>
</message>
<message>
+ <location line="+0"/>
<source>Feature not implemented yet!</source>
<translation>功能尚未實作!</translation>
</message>
<message>
+ <location line="+59"/>
<source>Read error</source>
<translation>讀取錯誤</translation>
</message>
<message>
+ <location line="+1"/>
<source>%1
Do you want to update the file location or generate a new form?</source>
<translation>%1
您要更新檔案位置,還是建立新的表單?</translation>
</message>
<message>
+ <location line="+3"/>
<source>&amp;Update</source>
<translation>更新(&amp;U)</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;New Form</source>
<translation>新增表單(&amp;N)</translation>
</message>
<message>
+ <location line="+77"/>
+ <location line="+40"/>
<source>Save Form?</source>
<translation>要儲存表單嗎?</translation>
</message>
<message>
+ <location line="-39"/>
<source>Could not open file</source>
<translation>無法開啟檔案</translation>
</message>
@@ -1917,10 +2207,12 @@ Would you like to retry or change your file?</source>
您要重試,還是要改變檔案?</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>
@@ -1933,6 +2225,7 @@ Would you like to retry?</source>
您要重試嗎?</translation>
</message>
<message>
+ <location line="+201"/>
<source>&amp;Close Preview</source>
<translation>關閉預覽(&amp;C)</translation>
</message>
@@ -1945,38 +2238,48 @@ Would you like to retry?</source>
<translation type="obsolete">F3</translation>
</message>
<message>
+ <location line="-900"/>
<source>&amp;New...</source>
<translation>新增(&amp;N)...</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Open...</source>
<translation>開啟(&amp;O)...</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Save</source>
<translation>儲存(&amp;S)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Save &amp;As...</source>
<translation>另存新檔(&amp;A)...</translation>
</message>
<message>
+ <location line="+1"/>
<source>Save A&amp;ll</source>
<translation>全部儲存(&amp;A)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Save As &amp;Template...</source>
<translation>儲存為樣本(&amp;T)...</translation>
</message>
<message>
+ <location line="+1"/>
+ <location line="+896"/>
<source>&amp;Close</source>
<translation>關閉(&amp;C)</translation>
</message>
<message>
+ <location line="-895"/>
<source>Save &amp;Image...</source>
<translation>儲存影像(&amp;I)...</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Print...</source>
<translation>列印(&amp;P)...</translation>
</message>
@@ -1985,26 +2288,33 @@ Would you like to retry?</source>
<translation type="obsolete">預覽(&amp;P)...</translation>
</message>
<message>
+ <location line="+3"/>
<source>View &amp;Code...</source>
<translation>檢視程式碼(&amp;C)...</translation>
</message>
<message>
+ <location line="+64"/>
<source>ALT+CTRL+S</source>
<translation>ALT+CTRL+S</translation>
</message>
<message>
+ <location line="+355"/>
+ <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>
@@ -2013,6 +2323,7 @@ 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>
@@ -2021,42 +2332,55 @@ Would you like to retry?</source>
您要重試嗎?</translation>
</message>
<message>
+ <location line="+158"/>
+ <location line="+34"/>
<source>Assistant</source>
<translation>小助手</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>
@@ -2064,22 +2388,26 @@ Would you like to retry?</source>
<context>
<name>QDesignerAppearanceOptionsPage</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="93"/>
+ <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="+138"/>
<source>Appearance</source>
+ <extracomment>Tab in preferences dialog</extracomment>
<translation>外觀</translation>
</message>
</context>
<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>
@@ -2087,19 +2415,22 @@ 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>重置控制</translation>
</message>
<message>
+ <location line="+2"/>
<source>Set control</source>
<translation>設定控制</translation>
</message>
<message>
- <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="149"/>
+ <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>執行型態 %1 的 meta 呼叫時發生 COM 例外,索引 %2/%3。</translation>
</message>
@@ -2107,15 +2438,17 @@ Would you like to retry?</source>
<context>
<name>QDesignerFormBuilder</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="58"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+88"/>
<source>Script errors occurred:</source>
<translation>發生文稿錯誤:</translation>
</message>
<message>
+ <location line="+304"/>
<source>The preview failed to build.</source>
<translation>建立預覽時失敗。</translation>
</message>
<message>
+ <location line="+63"/>
<source>Designer</source>
<translation>設計家</translation>
</message>
@@ -2123,19 +2456,22 @@ Would you like to retry?</source>
<context>
<name>QDesignerFormWindow</name>
<message>
- <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="187"/>
+ <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>
@@ -2143,30 +2479,38 @@ Would you like to retry?</source>
<context>
<name>QDesignerMenu</name>
<message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1160"/>
<source>Type Here</source>
<translation>在此輸入</translation>
</message>
<message>
+ <location line="+3"/>
<source>Add Separator</source>
<translation>新增分隔器</translation>
</message>
<message>
+ <location line="+372"/>
<source>Insert separator</source>
<translation>插入分隔器</translation>
</message>
<message>
+ <location line="+5"/>
<source>Remove separator</source>
<translation>移除分隔器</translation>
</message>
<message>
+ <location line="+2"/>
<source>Remove action &apos;%1&apos;</source>
<translation>移除動作 %1</translation>
</message>
<message>
+ <location line="+25"/>
+ <location line="+628"/>
<source>Add separator</source>
<translation>新增分隔器</translation>
</message>
<message>
+ <location line="-326"/>
<source>Insert action</source>
<translation>插入動作</translation>
</message>
@@ -2174,18 +2518,22 @@ Would you like to retry?</source>
<context>
<name>QDesignerMenuBar</name>
<message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-381"/>
<source>Type Here</source>
<translation>在此輸入</translation>
</message>
<message>
+ <location line="+304"/>
<source>Remove Menu &apos;%1&apos;</source>
<translation>移除選單 %1</translation>
</message>
<message>
+ <location line="+12"/>
<source>Remove Menu Bar</source>
<translation>移除選單列</translation>
</message>
<message>
+ <location line="+70"/>
<source>Menu</source>
<translation>選單</translation>
</message>
@@ -2200,19 +2548,22 @@ Would you like to retry?</source>
<context>
<name>QDesignerPluginManager</name>
<message>
- <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="197"/>
+ <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="+249"/>
<source>An XML error was encountered when parsing the XML of the custom widget %1: %2</source>
<translation>剖析自訂元件 %1 的 XML 格式時發生錯誤:%2</translation>
</message>
<message>
+ <location line="+27"/>
<source>The XML of the custom widget %1 does not contain any of the elements &lt;widget&gt; or &lt;ui&gt;.</source>
<translation>自訂元件 %1 的 XML 未包含任何 &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>
@@ -2231,7 +2582,7 @@ Would you like to retry?</source>
<context>
<name>QDesignerPropertySheet</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="717"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+747"/>
<source>Dynamic Properties</source>
<translation>動態屬性</translation>
</message>
@@ -2239,25 +2590,33 @@ Would you like to retry?</source>
<context>
<name>QDesignerResource</name>
<message>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="-246"/>
<source>The layout type &apos;%1&apos; is not supported, defaulting to grid.</source>
<translation>未支援佈局型態 %1。改使用預設的格線型態。</translation>
</message>
<message>
+ <location line="+342"/>
<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>元件 %1(%2)的容器延伸在查詢頁面 #%5 時傳回了非設計器 %3(%4)管理的元件。
容器頁面應該只能經由自訂元件的 domXml() 方法傳回的 XML 內指定加入。</translation>
</message>
<message>
+ <location line="+599"/>
<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>
</message>
</context>
@@ -2275,11 +2634,12 @@ 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="53"/>
+ <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>
@@ -2387,27 +2747,32 @@ 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="160"/>
+ <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>
@@ -2419,19 +2784,22 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="obsolete">元件盒</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="318"/>
+ <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>在 %2 的第 %1 行發生錯誤:%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;widget&gt; 或 &lt;ui&gt; 時遇到未預期的元素 &lt;%1&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>
@@ -2439,7 +2807,7 @@ 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="169"/>
+ <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="+199"/>
<source>&amp;File</source>
<translation>檔案(&amp;F)</translation>
</message>
@@ -2452,10 +2820,12 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="obsolete">編輯(&amp;E)</translation>
</message>
<message>
+ <location line="+6"/>
<source>F&amp;orm</source>
<translation>表單(&amp;O)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Preview in</source>
<translation>預覽於</translation>
</message>
@@ -2464,10 +2834,12 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="obsolete">工具(&amp;T)</translation>
</message>
<message>
+ <location line="+8"/>
<source>&amp;Window</source>
<translation>視窗(&amp;W)</translation>
</message>
<message>
+ <location line="+2"/>
<source>&amp;Help</source>
<translation>說明(&amp;H)</translation>
</message>
@@ -2476,6 +2848,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="obsolete">檔案</translation>
</message>
<message>
+ <location line="-15"/>
<source>Edit</source>
<translation>編輯</translation>
</message>
@@ -2488,6 +2861,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="obsolete">表單</translation>
</message>
<message>
+ <location line="+38"/>
<source>Toolbars</source>
<translation>工具列</translation>
</message>
@@ -2500,6 +2874,7 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="obsolete">Qt 設計家</translation>
</message>
<message>
+ <location line="+464"/>
<source>Save Forms?</source>
<translation>要儲存表單嗎?</translation>
</message>
@@ -2508,30 +2883,37 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="obsolete">若您不檢查您的文件,所有變更將遺失。</translation>
</message>
<message>
+ <location line="-493"/>
<source>&amp;View</source>
<translation>檢視(&amp;V)</translation>
</message>
<message>
+ <location line="+2"/>
<source>&amp;Settings</source>
<translation>設定(&amp;S)</translation>
</message>
<message>
+ <location line="+495"/>
<source>If you do not review your documents, all your changes will be lost.</source>
<translation>若您不檢查您的文件,所有變更將遺失。</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>備份資訊</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>設計器上次並未正確結束,不過有留下備份檔。您要載入備份檔嗎?</translation>
</message>
@@ -2540,14 +2922,17 @@ Container pages should only be added by specifying them in XML returned by the d
<translation type="obsolete">設計家在您上次工作階段並沒有正確地結束。有一些備份檔案存在,您要載入它們嗎?</translation>
</message>
<message>
+ <location line="+111"/>
<source>The file &lt;b&gt;%1&lt;/b&gt; could not be opened.</source>
<translation>檔案 %1 無法開啟。</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>檔案 %1 不是合法的設計家介面檔。</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>有 %n 個表單有未儲存的變更。您要在離開前先檢查這些變更嗎?</numerusform>
@@ -2577,45 +2962,53 @@ 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="130"/>
+ <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="+160"/>
<source>An empty class name was passed on to %1 (object name: &apos;%2&apos;).</source>
+ <extracomment>Empty class name passed to widget factory method</extracomment>
<translation>傳送了空白的類別名稱給 %1(物件名稱:%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 無法建立類別 %1 的自訂元件。改為使用預設的基礎類別 %2。</translation>
</message>
<message>
+ <location line="+6"/>
<source>QFormBuilder was unable to create a widget of the class &apos;%1&apos;.</source>
<translation>QFormBuilder 無法建立類別 %1 的元件。</translation>
</message>
<message>
+ <location line="+64"/>
<source>The layout type `%1&apos; is not supported.</source>
<translation>佈局型態 %1 未被支援。</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="76"/>
+ <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="102"/>
+ <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>列舉數值 %1 不合法。將改用預設值 %2。</translation>
</message>
<message>
+ <location line="+14"/>
<source>The flag-value &apos;%1&apos; is invalid. Zero will be used instead.</source>
<translation>旗標值 %1 不合法,將改用 0。</translation>
</message>
@@ -2881,39 +3274,47 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QStackedWidgetEventFilter</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="164"/>
+ <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="+11"/>
<source>Insert Page</source>
<translation>插入頁面</translation>
</message>
@@ -2921,10 +3322,12 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QStackedWidgetPreviewEventFilter</name>
<message>
+ <location line="-150"/>
<source>Go to previous page of %1 &apos;%2&apos; (%3/%4).</source>
<translation>跳到 %1 的前一頁「%2」(第 %3 頁,共 %4 頁)。</translation>
</message>
<message>
+ <location line="+4"/>
<source>Go to next page of %1 &apos;%2&apos; (%3/%4).</source>
<translation>跳到 %1 的下一頁「%2」(第 %3 頁,共 %4 頁)。</translation>
</message>
@@ -2932,23 +3335,27 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QTabWidgetEventFilter</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="59"/>
+ <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="+12"/>
<source>Insert Page</source>
<translation>插入頁面</translation>
</message>
@@ -2956,31 +3363,37 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QToolBoxHelper</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="34"/>
+ <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>
@@ -2988,10 +3401,15 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtBoolEdit</name>
<message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+226"/>
+ <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>
@@ -2999,11 +3417,12 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtBoolPropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="1469"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1477"/>
<source>True</source>
<translation>真</translation>
</message>
<message>
+ <location line="+1"/>
<source>False</source>
<translation>假</translation>
</message>
@@ -3011,7 +3430,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtCharEdit</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="1573"/>
+ <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1601"/>
<source>Clear Char</source>
<translation>清除字元</translation>
</message>
@@ -3019,6 +3438,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtColorEditWidget</name>
<message>
+ <location line="+611"/>
<source>...</source>
<translation>...</translation>
</message>
@@ -3026,19 +3446,22 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtColorPropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="4769"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4777"/>
<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>Alpha</translation>
</message>
@@ -3046,78 +3469,97 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtCursorDatabase</name>
<message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-206"/>
<source>Arrow</source>
<translation>箭頭</translation>
</message>
<message>
+ <location line="+2"/>
<source>Up Arrow</source>
<translation>上箭頭</translation>
</message>
<message>
+ <location line="+2"/>
<source>Cross</source>
<translation>交叉</translation>
</message>
<message>
+ <location line="+2"/>
<source>Wait</source>
<translation>等待</translation>
</message>
<message>
+ <location line="+2"/>
<source>IBeam</source>
<translation>I 型</translation>
</message>
<message>
+ <location line="+2"/>
<source>Size Vertical</source>
<translation>垂直大小</translation>
</message>
<message>
+ <location line="+2"/>
<source>Size Horizontal</source>
<translation>水平大小</translation>
</message>
<message>
+ <location line="+2"/>
<source>Size Backslash</source>
<translation>反斜線大小</translation>
</message>
<message>
+ <location line="+2"/>
<source>Size Slash</source>
<translation>斜線大小</translation>
</message>
<message>
+ <location line="+2"/>
<source>Size All</source>
<translation>全部大小</translation>
</message>
<message>
+ <location line="+2"/>
<source>Blank</source>
<translation>空白</translation>
</message>
<message>
+ <location line="+2"/>
<source>Split Vertical</source>
<translation>垂直分割</translation>
</message>
<message>
+ <location line="+2"/>
<source>Split Horizontal</source>
<translation>水平分割</translation>
</message>
<message>
+ <location line="+2"/>
<source>Pointing Hand</source>
<translation>指向手</translation>
</message>
<message>
+ <location line="+2"/>
<source>Forbidden</source>
<translation>禁止的</translation>
</message>
<message>
+ <location line="+2"/>
<source>Open Hand</source>
<translation>開啟的手</translation>
</message>
<message>
+ <location line="+2"/>
<source>Closed Hand</source>
<translation>關閉的手</translation>
</message>
<message>
+ <location line="+2"/>
<source>What&apos;s This</source>
<translation>這是什麼</translation>
</message>
<message>
+ <location line="+2"/>
<source>Busy</source>
<translation>忙碌</translation>
</message>
@@ -3129,11 +3571,12 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtFontEditWidget</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="201"/>
+ <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+201"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
+ <location line="+20"/>
<source>Select Font</source>
<translation>選擇字型</translation>
</message>
@@ -3145,30 +3588,37 @@ This indicates an inconsistency in the ui-file.</source>
<translation type="obsolete">[%1, %2]</translation>
</message>
<message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-353"/>
<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>
@@ -3176,6 +3626,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtGradientDialog</name>
<message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientdialog.ui"/>
<source>Edit Gradient</source>
<translation>編輯漸層</translation>
</message>
@@ -3183,219 +3634,274 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtGradientEditor</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="405"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+435"/>
<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 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>重置縮放</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>Sat</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>Val</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>型態</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>
@@ -3403,31 +3909,37 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtGradientStopsWidget</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="919"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+949"/>
<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>
@@ -3435,35 +3947,46 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtGradientView</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="77"/>
+ <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 line="+74"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui"/>
<source>New...</source>
<translation>新增...</translation>
</message>
<message>
+ <location line="+1"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui"/>
<source>Edit...</source>
<translation>編輯...</translation>
</message>
<message>
+ <location line="+1"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui"/>
<source>Rename</source>
<translation>重新命名</translation>
</message>
<message>
+ <location line="+1"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui"/>
<source>Remove</source>
<translation>移除</translation>
</message>
<message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui"/>
<source>Gradient View</source>
<translation>漸層檢視</translation>
</message>
@@ -3471,6 +3994,8 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtGradientViewDialog</name>
<message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.h" line="+62"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui"/>
<source>Select Gradient</source>
<translation>選擇漸層</translation>
</message>
@@ -3478,7 +4003,7 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtKeySequenceEdit</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="221"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+221"/>
<source>Clear Shortcut</source>
<translation>清除捷徑</translation>
</message>
@@ -3486,14 +4011,17 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtLocalePropertyManager</name>
<message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-3561"/>
<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>
@@ -3501,14 +4029,17 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtPointFPropertyManager</name>
<message>
+ <location line="+415"/>
<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>
@@ -3516,14 +4047,17 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtPointPropertyManager</name>
<message>
+ <location line="-322"/>
<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>
@@ -3531,10 +4065,12 @@ This indicates an inconsistency in the ui-file.</source>
<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>
@@ -3542,23 +4078,27 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtRectFPropertyManager</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="1705"/>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1716"/>
<source>[(%1, %2), %3 x %4]</source>
<translation>[(%1, %2), %3x%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>
@@ -3566,22 +4106,27 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtRectPropertyManager</name>
<message>
+ <location line="-614"/>
<source>[(%1, %2), %3 x %4]</source>
<translation>[(%1, %2), %3x%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>
@@ -3589,41 +4134,52 @@ This indicates an inconsistency in the ui-file.</source>
<context>
<name>QtResourceEditorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="46"/>
+ <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>此檔案似乎不是資源檔;應該是元素 %2 但是找到元素 %1。</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="+567"/>
<source>New Resource File</source>
<translation>新資源檔</translation>
</message>
<message>
+ <location line="-565"/>
+ <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>新前置字串</translation>
</message>
@@ -3632,48 +4188,63 @@ Do you want to replace it?</source>
<translation type="obsolete">&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;&lt;p&gt;您可以按下&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;複製&lt;/th&gt;&lt;td&gt;來將檔案複製到資源檔目錄中。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;複製為...&lt;/th&gt;&lt;td&gt;來將檔案複製到某一個資源檔的子目錄。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;保持&lt;/th&gt;&lt;td&gt;使用它目前的位置。&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
</message>
<message>
+ <location line="+49"/>
<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;_tw&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>
@@ -3688,14 +4259,17 @@ to:
%2</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;警告:&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="+288"/>
<source>Could not copy
%1
to
@@ -3706,120 +4280,153 @@ to
%2</translation>
</message>
<message>
+ <location line="+35"/>
<source>A parse error occurred at line %1, column %2 of %3:
%4</source>
<translation>%3 中發生剖析錯誤於行 %1 欄 %2:
%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="+34"/>
<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="+119"/>
<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;p&gt;時發生問題。&lt;/p&gt;&lt;/html&gt;</translation>
</message>
<message>
+ <location line="+2"/>
<source>Resource Warning</source>
<translation>資源警告</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>
@@ -3831,21 +4438,24 @@ to
<context>
<name>QtResourceView</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="404"/>
+ <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+435"/>
<source>Size: %1 x %2
%3</source>
<translation>大小:%1x%2
%3</translation>
</message>
<message>
+ <location line="+18"/>
<source>Edit Resources...</source>
<translation>編輯資源...</translation>
</message>
<message>
+ <location line="+5"/>
<source>Reload</source>
<translation>重新載入</translation>
</message>
<message>
+ <location line="+5"/>
<source>Copy Path</source>
<translation>複製路徑</translation>
</message>
@@ -3853,6 +4463,7 @@ to
<context>
<name>QtResourceViewDialog</name>
<message>
+ <location line="+247"/>
<source>Select Resource</source>
<translation>選擇資源</translation>
</message>
@@ -3860,14 +4471,17 @@ to
<context>
<name>QtSizeFPropertyManager</name>
<message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-537"/>
<source>%1 x %2</source>
<translation>%1x%2</translation>
</message>
<message>
+ <location line="+130"/>
<source>Width</source>
<translation>寬度</translation>
</message>
<message>
+ <location line="+9"/>
<source>Height</source>
<translation>高度</translation>
</message>
@@ -3875,22 +4489,33 @@ to
<context>
<name>QtSizePolicyPropertyManager</name>
<message>
+ <location line="+1719"/>
+ <location line="+1"/>
+ <source>&lt;Invalid&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
<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>
@@ -3898,14 +4523,17 @@ to
<context>
<name>QtSizePropertyManager</name>
<message>
+ <location line="-2298"/>
<source>%1 x %2</source>
<translation>%1x%2</translation>
</message>
<message>
+ <location line="+96"/>
<source>Width</source>
<translation>寬度</translation>
</message>
<message>
+ <location line="+8"/>
<source>Height</source>
<translation>高度</translation>
</message>
@@ -3913,87 +4541,107 @@ to
<context>
<name>QtToolBarDialog</name>
<message>
- <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="1214"/>
+ <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1244"/>
<source>Custom Toolbar</source>
<translation>自訂工具列</translation>
</message>
<message>
+ <location line="+545"/>
<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>
@@ -4001,11 +4649,12 @@ to
<context>
<name>QtTreePropertyBrowser</name>
<message>
- <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="407"/>
+ <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>
@@ -4013,53 +4662,64 @@ to
<context>
<name>SaveFormAsTemplate</name>
<message>
- <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="42"/>
+ <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;C):</translation>
</message>
<message>
+ <location/>
<source>&amp;Name:</source>
<translation>名稱(&amp;N):</translation>
</message>
@@ -4067,7 +4727,7 @@ Do you want overwrite the template?</source>
<context>
<name>ScriptErrorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="33"/>
+ <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+63"/>
<source>An error occurred while running the scripts for &quot;%1&quot;:
</source>
<translation>執行 %1 的文稿時發生錯誤:
@@ -4077,17 +4737,30 @@ 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 type="unfinished"></translation>
+ </message>
+ <message>
+ <location/>
+ <source>class</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>SignalSlotConnection</name>
<message>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="-358"/>
<source>SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4)</source>
<translation>發送者(%1),信號(%2),接收者(%3),信號槽(%4)</translation>
</message>
@@ -4095,26 +4768,32 @@ 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>
@@ -4122,11 +4801,12 @@ Do you want overwrite the template?</source>
<context>
<name>Spacer</name>
<message>
- <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="245"/>
+ <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="+275"/>
<source>Horizontal Spacer &apos;%1&apos;, %2 x %3</source>
<translation>水平空間 %1,%2x%3</translation>
</message>
<message>
+ <location line="+0"/>
<source>Vertical Spacer &apos;%1&apos;, %2 x %3</source>
<translation>垂直空間 %1,%2x%3</translation>
</message>
@@ -4134,35 +4814,41 @@ Do you want overwrite the template?</source>
<context>
<name>TemplateOptionsPage</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="126"/>
+ <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="+156"/>
<source>Template Paths</source>
+ <extracomment>Tab in preferences dialog</extracomment>
<translation>樣本路徑</translation>
</message>
</context>
<context>
<name>ToolBarManager</name>
<message>
- <location filename="../tools/designer/src/designer/mainwindow.cpp" line="89"/>
+ <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>嵌入檢視</translation>
</message>
<message>
+ <location line="+6"/>
<source>Toolbars</source>
<translation>工具列</translation>
</message>
@@ -4170,19 +4856,21 @@ Do you want overwrite the template?</source>
<context>
<name>VersionDialog</name>
<message>
- <location filename="../tools/designer/src/designer/versiondialog.cpp" line="141"/>
+ <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+171"/>
<source>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;&lt;br/&gt;Version %2</source>
<translation>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;&lt;br/&gt;版本 %2</translation>
</message>
<message>
<source> Open Source Edition</source>
- <translation> 開放源碼版本</translation>
+ <translation type="obsolete"> 開放源碼版本</translation>
</message>
<message>
+ <location line="+1"/>
<source>Qt Designer</source>
<translation>Qt 設計家</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 設計家是一套圖形使用者介面應用程式,用於設計 Qt 的應用程式。&lt;br /&gt;</translation>
</message>
@@ -4192,25 +4880,26 @@ Do you want overwrite the template?</source>
</message>
<message>
<source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.&lt;br/&gt;</source>
- <translation>此程式以 Qt 商業授權同意書(Qt Commerical License Agreement)授權給您。詳情請參照 LICENSE 檔。&lt;br /&gt;</translation>
+ <translation type="obsolete">此程式以 Qt 商業授權同意書(Qt Commerical License Agreement)授權給您。詳情請參照 LICENSE 檔。&lt;br /&gt;</translation>
</message>
<message>
+ <location line="+5"/>
<source>%1&lt;br/&gt;%2&lt;br/&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt; </source>
<translation>%1&lt;br/&gt;%2&lt;br/&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt; </translation>
</message>
<message>
<source>This version of Qt Designer is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel.html&lt;/a&gt; for an overview of Qt licensing.&lt;br/&gt;</source>
- <translation>此版本的 Qt 設計家是 Qt 開放源碼版本的一部份,只能用於開發開放源碼的應用程式。Qt 為一個跨平台的,強大的 C++ 應用程式開發框架。您需要商業版的 Qt 授權才能發展私有(封閉)應用程式軟體。關於 Qt 授權的概要,請參考 &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel.html&lt;/a&gt;。&lt;br/&gt;</translation>
+ <translation type="obsolete">此版本的 Qt 設計家是 Qt 開放源碼版本的一部份,只能用於開發開放源碼的應用程式。Qt 為一個跨平台的,強大的 C++ 應用程式開發框架。您需要商業版的 Qt 授權才能發展私有(封閉)應用程式軟體。關於 Qt 授權的概要,請參考 &lt;a href=&quot;http://qtsoftware.com/company/about/businessmodel&quot;&gt;http://qtsoftware.com/company/about/businessmodel.html&lt;/a&gt;。&lt;br/&gt;</translation>
</message>
<message>
<source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.&lt;br/&gt;</source>
- <translation>此程式以 Qt %1 授權同意書授權給您。詳情請參照此軟體套件中的授權檔。&lt;br /&gt;</translation>
+ <translation type="obsolete">此程式以 Qt %1 授權同意書授權給您。詳情請參照此軟體套件中的授權檔。&lt;br /&gt;</translation>
</message>
</context>
<context>
<name>WidgetDataBase</name>
<message>
- <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="786"/>
+ <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>此檔案包含了自訂元件 %1,其基礎類別(%2)與在元件資料庫目前的項目(%3)不同。元件資料庫並未做更動。</translation>
</message>
@@ -4218,23 +4907,27 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::ActionEditor</name>
<message>
- <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="111"/>
+ <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+143"/>
<source>Actions</source>
<translation>動作</translation>
</message>
<message>
+ <location line="-16"/>
<source>New...</source>
<translation>新增...</translation>
</message>
<message>
+ <location line="+7"/>
<source>Delete</source>
<translation>刪除</translation>
</message>
<message>
+ <location line="+307"/>
<source>New action</source>
<translation>新動作</translation>
</message>
<message>
+ <location line="+98"/>
<source>Edit action</source>
<translation>編輯動作</translation>
</message>
@@ -4247,46 +4940,62 @@ Do you want overwrite the template?</source>
<translation type="obsolete">功能尚未實作!</translation>
</message>
<message>
+ <location line="-411"/>
<source>Edit...</source>
<translation>編輯...</translation>
</message>
<message>
+ <location line="+1"/>
+ <source>Go to slot...</source>
+ <translation type="unfinished">跳到信號槽...</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="+54"/>
<source>Configure Action Editor</source>
<translation>設定動作編輯器</translation>
</message>
<message>
+ <location line="+3"/>
<source>Icon View</source>
<translation>圖示檢視</translation>
</message>
<message>
+ <location line="+6"/>
<source>Detailed View</source>
<translation>詳情檢視</translation>
</message>
<message>
+ <location line="+412"/>
<source>Remove actions</source>
<translation>移除動作</translation>
</message>
<message>
+ <location line="+0"/>
<source>Remove action &apos;%1&apos;</source>
<translation>移除動作 %1</translation>
</message>
<message>
+ <location line="+186"/>
<source>Used In</source>
<translation>使用於</translation>
</message>
@@ -4301,27 +5010,32 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::ActionModel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="64"/>
+ <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+95"/>
<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>
@@ -4329,27 +5043,31 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::BuddyEditor</name>
<message>
- <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="235"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+265"/>
<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>
</translation>
</message>
<message numerus="yes">
+ <location line="+51"/>
<source>Add %n buddies</source>
<translation>
<numerusform>新增 %n 個項目</numerusform>
</translation>
</message>
<message>
+ <location line="+47"/>
<source>Set automatically</source>
<translation>自動設定</translation>
</message>
@@ -4357,7 +5075,7 @@ 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="47"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+77"/>
<source>Edit Buddies</source>
<translation>編輯同伴</translation>
</message>
@@ -4365,7 +5083,7 @@ 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="30"/>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+60"/>
<source>Edit Buddies</source>
<translation>編輯同伴</translation>
</message>
@@ -4373,11 +5091,12 @@ 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"/>
+ <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>
@@ -4385,26 +5104,32 @@ 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>按鍵群組 %1</translation>
</message>
@@ -4412,47 +5137,57 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::CodeDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="69"/>
+ <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+99"/>
<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;F)...</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>
@@ -4460,7 +5195,7 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::ColorAction</name>
<message>
- <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="220"/>
+ <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+250"/>
<source>Text Color</source>
<translation>文字顏色</translation>
</message>
@@ -4468,11 +5203,12 @@ 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="42"/>
+ <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+72"/>
<source>Edit Items...</source>
<translation>編輯項目...</translation>
</message>
<message>
+ <location line="+38"/>
<source>Change Combobox Contents</source>
<translation>變更下拉式選單內容</translation>
</message>
@@ -4480,7 +5216,7 @@ 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"/>
+ <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+156"/>
<source>Change description...</source>
<translation>變更描述...</translation>
</message>
@@ -4503,15 +5239,17 @@ 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"/>
+ <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>
@@ -4519,38 +5257,47 @@ 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="+110"/>
<source>Signal and Slot Editor</source>
<translation>信號與信號槽編輯器</translation>
</message>
@@ -4559,6 +5306,7 @@ Do you want overwrite the template?</source>
<translation type="obsolete">連線已存在。&lt;br&gt;發送者(%1),信號(%2),接收者(%3),信號槽(%4)</translation>
</message>
<message>
+ <location line="-2"/>
<source>The connection already exists!&lt;br&gt;%1</source>
<translation>連線已存在!&lt;br&gt;%1</translation>
</message>
@@ -4570,35 +5318,42 @@ Do you want overwrite the template?</source>
<translation type="obsolete">刪除頁面</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="82"/>
+ <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+112"/>
<source>Insert Page Before Current Page</source>
<translation>在目前頁面之前插入</translation>
</message>
<message>
+ <location line="+4"/>
<source>Insert Page After Current Page</source>
<translation>在目前頁面之後插入</translation>
</message>
<message>
+ <location line="-32"/>
<source>Delete</source>
<translation>刪除</translation>
</message>
<message>
+ <location line="+25"/>
<source>Insert</source>
<translation>插入</translation>
</message>
<message>
+ <location line="+15"/>
<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>
@@ -4606,46 +5361,59 @@ 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"/>
+ <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>
</message>
</context>
<context>
<name>qdesigner_internal::DesignerPropertyManager</name>
<message>
+ <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+644"/>
+ <location line="+6"/>
<source>AlignLeft</source>
<translation>置左對齊</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>
@@ -4662,68 +5430,87 @@ Do you want overwrite the template?</source>
<translation type="obsolete">預設反鋸齒</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>
</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>正常時關閉</translation>
</message>
<message>
+ <location line="+1"/>
<source>Normal On</source>
<translation>正常時開啟</translation>
</message>
<message>
+ <location line="+1"/>
<source>Disabled Off</source>
<translation>關閉時關閉</translation>
</message>
<message>
+ <location line="+1"/>
<source>Disabled On</source>
<translation>關閉時開啟</translation>
</message>
<message>
+ <location line="+1"/>
<source>Active Off</source>
<translation>啟用時關閉</translation>
</message>
<message>
+ <location line="+1"/>
<source>Active On</source>
<translation>啟用時開啟</translation>
</message>
<message>
+ <location line="+1"/>
<source>Selected Off</source>
<translation>選擇時關閉</translation>
</message>
<message>
+ <location line="+1"/>
<source>Selected On</source>
<translation>選擇時開啟</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>
@@ -4735,39 +5522,48 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::DeviceProfileDialog</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="33"/>
+ <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>無法開啟檔案 %1 以寫入:%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>無法開啟檔案 %1 以讀取:%2</translation>
</message>
<message>
+ <location line="+6"/>
<source>&apos;%1&apos; is not a valid profile: %2</source>
<translation>%1 不是合法的設定檔:%2</translation>
</message>
@@ -4775,46 +5571,57 @@ 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;N)</translation>
</message>
<message>
+ <location/>
<source>Delete String</source>
<translation>刪除字串</translation>
</message>
<message>
+ <location/>
<source>&amp;Delete</source>
<translation>刪除(&amp;D)</translation>
</message>
<message>
+ <location/>
<source>&amp;Value:</source>
<translation>數值(&amp;V):</translation>
</message>
<message>
+ <location/>
<source>Move String Up</source>
<translation>字串上移</translation>
</message>
<message>
+ <location/>
<source>Up</source>
<translation>上</translation>
</message>
<message>
+ <location/>
<source>Move String Down</source>
<translation>字串下移</translation>
</message>
<message>
+ <location/>
<source>Down</source>
<translation>下</translation>
</message>
@@ -4861,14 +5668,60 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::EmbeddedOptionsControl</name>
<message>
+ <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="-256"/>
+ <source>Add a profile</source>
+ <translation type="unfinished">新增設定檔</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Edit the selected profile</source>
+ <translation type="unfinished">編輯選取的設定檔</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Delete the selected profile</source>
+ <translation type="unfinished">刪除選取的設定檔</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Add Profile</source>
+ <translation type="unfinished">新增設定檔</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>New profile</source>
+ <translation type="unfinished">新增設定檔</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Edit Profile</source>
+ <translation type="unfinished">編輯設定檔</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Delete Profile</source>
+ <translation type="unfinished">刪除設定檔</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Would you like to delete the profile &apos;%1&apos;?</source>
+ <translation type="unfinished">您要刪除設定檔 %1 嗎?</translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>Default</source>
+ <translation type="unfinished">預設</translation>
+ </message>
+ <message>
+ <location line="-160"/>
<source>None</source>
- <translation type="obsolete">無</translation>
+ <translation type="unfinished">無</translation>
</message>
</context>
<context>
<name>qdesigner_internal::FilterWidget</name>
<message>
- <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="155"/>
+ <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+185"/>
<source>&lt;Filter&gt;</source>
<translation>&lt;過濾器&gt;</translation>
</message>
@@ -4895,11 +5748,12 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::FormEditor</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="160"/>
+ <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>檔案 %1 在設計器之外被人更動過。您要重新載入嗎?</translation>
</message>
@@ -4907,7 +5761,7 @@ 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"/>
+ <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+24"/>
<source>Add form layout row...</source>
<translation>新增表單佈局列...</translation>
</message>
@@ -4915,10 +5769,12 @@ Do you want overwrite the template?</source>
<context>
<name>qdesigner_internal::FormWindow</name>
<message>
+ <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1267"/>
<source>Edit contents</source>
<translation>編輯內容</translation>
</message>
<message>
+ <location line="+1"/>
<source>F2</source>
<translation>F2</translation>
</message>
@@ -4927,10 +5783,13 @@ Do you want overwrite the template?</source>
<translation type="obsolete">插入元件 %1</translation>
</message>
<message>
+ <location line="+841"/>
<source>Resize</source>
<translation>重新調整大小</translation>
</message>
<message>
+ <location line="+218"/>
+ <location line="+15"/>
<source>Key Move</source>
<translation>鍵移動</translation>
</message>
@@ -4939,6 +5798,7 @@ Do you want overwrite the template?</source>
<translation type="obsolete">貼上</translation>
</message>
<message>
+ <location line="+276"/>
<source>Paste error</source>
<translation>貼上錯誤</translation>
</message>
@@ -4955,54 +5815,67 @@ and then paste again.</source>
<translation type="obsolete">打斷佈局</translation>
</message>
<message>
+ <location line="+442"/>
<source>Lay out</source>
<translation>佈局</translation>
</message>
<message>
+ <location line="+493"/>
+ <location line="+55"/>
<source>Drop widget</source>
<translation>丟棄元件</translation>
</message>
<message numerus="yes">
+ <location line="-1055"/>
<source>Paste %n action(s)</source>
<translation>
<numerusform>貼上 %n 個動作</numerusform>
</translation>
</message>
<message>
+ <location line="-511"/>
<source>Insert widget &apos;%1&apos;</source>
<translation>插入元件 %1</translation>
</message>
<message numerus="yes">
+ <location line="+513"/>
<source>Paste %n widget(s)</source>
<translation>
<numerusform>貼上 %n 個元件</numerusform>
</translation>
</message>
<message>
+ <location line="+1"/>
<source>Paste (%1 widgets, %2 actions)</source>
<translation>貼上(%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>無法貼上元件。設計器找不到沒有佈局的容器來貼上。</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="+187"/>
<source>Raise widgets</source>
<translation>抬升元件</translation>
</message>
<message>
+ <location line="+17"/>
<source>Lower widgets</source>
<translation>降低元件</translation>
</message>
<message>
+ <location line="+201"/>
<source>Select Ancestor</source>
<translation>選擇祖先</translation>
</message>
<message>
+ <location line="+576"/>
<source>A QMainWindow-based form does not contain a central widget.</source>
<translation>QMainWindow 為基底的表單並未包含中央元件。</translation>
</message>
@@ -5010,11 +5883,12 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::FormWindowBase</name>
<message>
- <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="363"/>
+ <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+397"/>
<source>Delete</source>
<translation>刪除</translation>
</message>
<message>
+ <location line="+0"/>
<source>Delete &apos;%1&apos;</source>
<translation>刪除 &apos;%1&apos;</translation>
</message>
@@ -5022,160 +5896,200 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::FormWindowManager</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="337"/>
+ <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+368"/>
<source>Cu&amp;t</source>
<translation>剪下(&amp;T)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Cuts the selected widgets and puts them on the clipboard</source>
<translation>剪下選取的元件,並放到剪貼簿中</translation>
</message>
<message>
+ <location line="+5"/>
<source>&amp;Copy</source>
<translation>複製(&amp;C)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Copies the selected widgets to the clipboard</source>
<translation>將選取的元件複製進剪貼簿</translation>
</message>
<message>
+ <location line="+5"/>
<source>&amp;Paste</source>
<translation>貼上(&amp;P)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Pastes the clipboard&apos;s contents</source>
<translation>貼上剪貼簿中的內容</translation>
</message>
<message>
+ <location line="+5"/>
<source>&amp;Delete</source>
<translation>刪除(&amp;D)</translation>
</message>
<message>
+ <location line="+2"/>
<source>Deletes the selected widgets</source>
<translation>刪除選取的元件</translation>
</message>
<message>
+ <location line="+5"/>
<source>Select &amp;All</source>
<translation>全部選取(&amp;A)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Selects all widgets</source>
<translation>選擇所有的元件</translation>
</message>
<message>
+ <location line="+5"/>
<source>Bring to &amp;Front</source>
<translation>帶到前景(&amp;F)</translation>
</message>
<message>
+ <location line="+3"/>
+ <location line="+1"/>
<source>Raises the selected widgets</source>
<translation>抬升選取的元件</translation>
</message>
<message>
+ <location line="+4"/>
<source>Send to &amp;Back</source>
<translation>送回背景(&amp;B)</translation>
</message>
<message>
+ <location line="+3"/>
+ <location line="+1"/>
<source>Lowers the selected widgets</source>
<translation>降低選取的元件</translation>
</message>
<message>
+ <location line="+4"/>
<source>Adjust &amp;Size</source>
<translation>調整大小(&amp;S)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Adjusts the size of the selected widget</source>
<translation>調整選取的元件大小</translation>
</message>
<message>
+ <location line="+6"/>
<source>Lay Out &amp;Horizontally</source>
<translation>水平佈局(&amp;H)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Lays out the selected widgets horizontally</source>
<translation>將選取的元件做水平佈局</translation>
</message>
<message>
+ <location line="+6"/>
<source>Lay Out &amp;Vertically</source>
<translation>垂直佈局(&amp;V)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Lays out the selected widgets vertically</source>
<translation>將選取的元件做垂直佈局</translation>
</message>
<message>
+ <location line="+16"/>
<source>Lay Out in a &amp;Grid</source>
<translation>使用格線佈局(&amp;G)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Lays out the selected widgets in a grid</source>
<translation>將選取的元件佈局在格線內</translation>
</message>
<message>
+ <location line="+7"/>
<source>Lay Out Horizontally in S&amp;plitter</source>
<translation>以水平分離佈局(&amp;P)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Lays out the selected widgets horizontally in a splitter</source>
<translation>將選取的元件在分離器中做水平佈局</translation>
</message>
<message>
+ <location line="+7"/>
<source>Lay Out Vertically in Sp&amp;litter</source>
<translation>以垂直分離佈局(&amp;L)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Lays out the selected widgets vertically in a splitter</source>
<translation>將選取的元件在分離器中做垂直佈局</translation>
</message>
<message>
+ <location line="+7"/>
<source>&amp;Break Layout</source>
<translation>打斷佈局(&amp;B)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Breaks the selected layout</source>
<translation>打斷選取的佈局</translation>
</message>
<message>
+ <location line="+13"/>
<source>&amp;Preview...</source>
<translation>預覽(&amp;P)...</translation>
</message>
<message>
+ <location line="+2"/>
<source>Preview current form</source>
<translation>預覽目前的表單</translation>
</message>
<message>
+ <location line="+14"/>
<source>Form &amp;Settings...</source>
<translation>表單設定(&amp;S)...</translation>
</message>
<message>
+ <location line="+78"/>
<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>
<message>
+ <location line="-560"/>
<source>Lay Out in a &amp;Form Layout</source>
<translation>在表單中佈局(&amp;F)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Lays out the selected widgets in a form layout</source>
<translation>將選取的元件於表單中佈局</translation>
</message>
<message>
+ <location line="+45"/>
<source>Si&amp;mplify Grid Layout</source>
<translation>簡化格線佈局(&amp;M)</translation>
</message>
<message>
+ <location line="+2"/>
<source>Removes empty columns and rows</source>
<translation>移除空的欄與列</translation>
</message>
@@ -5183,11 +6097,12 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::FormWindowSettings</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="162"/>
+ <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>
@@ -5206,30 +6121,37 @@ and then paste again.</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>X 軸格線(&amp;X)</translation>
</message>
<message>
+ <location/>
<source>Snap</source>
<translation>貼齊</translation>
</message>
<message>
+ <location/>
<source>Reset</source>
<translation>重置</translation>
</message>
<message>
+ <location/>
<source>Grid &amp;Y</source>
<translation>Y 軸格線(&amp;Y)</translation>
</message>
@@ -5237,7 +6159,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::GroupBoxTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="56"/>
+ <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+86"/>
<source>Change title...</source>
<translation>變更標題...</translation>
</message>
@@ -5245,6 +6167,7 @@ and then paste again.</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 entity</translation>
</message>
@@ -5252,75 +6175,92 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::IconSelector</name>
<message>
- <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="210"/>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+211"/>
<source>The pixmap file &apos;%1&apos; cannot be read.</source>
<translation>無法讀取像素檔 %1。</translation>
</message>
<message>
+ <location line="+6"/>
<source>The file &apos;%1&apos; does not appear to be a valid pixmap file: %2</source>
<translation>檔案 %1 似乎不是合法的像素檔:%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="+55"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
+ <location line="+6"/>
<source>Normal Off</source>
<translation>正常時關閉</translation>
</message>
<message>
+ <location line="+1"/>
<source>Normal On</source>
<translation>正常時開啟</translation>
</message>
<message>
+ <location line="+1"/>
<source>Disabled Off</source>
<translation>關閉時關閉</translation>
</message>
<message>
+ <location line="+1"/>
<source>Disabled On</source>
<translation>關閉時開啟</translation>
</message>
<message>
+ <location line="+1"/>
<source>Active Off</source>
<translation>啟用時關閉</translation>
</message>
<message>
+ <location line="+1"/>
<source>Active On</source>
<translation>啟用時開啟</translation>
</message>
<message>
+ <location line="+1"/>
<source>Selected Off</source>
<translation>選擇時關閉</translation>
</message>
<message>
+ <location line="+1"/>
<source>Selected On</source>
<translation>選擇時開啟</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>
@@ -5328,47 +6268,58 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::ItemListEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="349"/>
+ <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 line="+2"/>
+ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui"/>
<source>Properties &amp;&gt;&gt;</source>
<translation>屬性 &amp;&gt;&gt;</translation>
</message>
<message>
+ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui"/>
<source>Items List</source>
<translation>項目列表</translation>
</message>
<message>
+ <location/>
<source>New Item</source>
<translation>新增項目</translation>
</message>
<message>
+ <location/>
<source>&amp;New</source>
<translation>新增(&amp;N)</translation>
</message>
<message>
+ <location/>
<source>Delete Item</source>
<translation>刪除項目</translation>
</message>
<message>
+ <location/>
<source>&amp;Delete</source>
<translation>刪除(&amp;D)</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>
@@ -5376,11 +6327,12 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::LabelTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="59"/>
+ <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="+89"/>
<source>Change rich text...</source>
<translation>變更 rich text...</translation>
</message>
<message>
+ <location line="+1"/>
<source>Change plain text...</source>
<translation>變更純文字...</translation>
</message>
@@ -5388,7 +6340,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::LineEditTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="54"/>
+ <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+84"/>
<source>Change text...</source>
<translation>變更文字...</translation>
</message>
@@ -5396,15 +6348,17 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::ListWidgetEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="75"/>
+ <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+105"/>
<source>Edit List Widget</source>
<translation>編輯列表元件</translation>
</message>
<message>
+ <location line="+19"/>
<source>Edit Combobox</source>
<translation>編輯下拉式選單</translation>
</message>
<message>
+ <location line="-51"/>
<source>New Item</source>
<translation>新增項目</translation>
</message>
@@ -5484,11 +6438,12 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::ListWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="41"/>
+ <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+71"/>
<source>Edit Items...</source>
<translation>編輯項目...</translation>
</message>
<message>
+ <location line="+38"/>
<source>Change List Contents</source>
<translation>變更列表內容</translation>
</message>
@@ -5496,19 +6451,22 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::MdiContainerWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="118"/>
+ <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>
@@ -5516,7 +6474,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::MenuTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="30"/>
+ <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+60"/>
<source>Remove</source>
<translation>移除</translation>
</message>
@@ -5524,7 +6482,7 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::MorphMenu</name>
<message>
- <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="264"/>
+ <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+264"/>
<source>Morph into</source>
<translation>變型為</translation>
</message>
@@ -5532,34 +6490,42 @@ and then paste again.</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;T)</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>
<message>
+ <location/>
<source>&amp;Icon:</source>
<translation>圖示(&amp;I)</translation>
</message>
<message>
+ <location/>
<source>Object &amp;name:</source>
<translation>物件名稱(&amp;N):</translation>
</message>
@@ -5567,11 +6533,12 @@ and then paste again.</source>
<context>
<name>qdesigner_internal::NewDynamicPropertyDialog</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="104"/>
+ <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>目前的物件已經有名為 %1 的屬性了。
@@ -5584,25 +6551,29 @@ Please select another name.</source>
請選擇另外的名稱。</translation>
</message>
<message>
+ <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui"/>
<source>Create Dynamic Property</source>
<translation>建立動態屬性</translation>
</message>
<message>
+ <location/>
<source>Property Name</source>
<translation>屬性名稱</translation>
</message>
<message>
+ <location/>
<source>Property Type</source>
<translation>屬性型態</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="4"/>
+ <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>前置字串 &apos;_q_&apos; 是保留給 Qt 函式庫用的。
請選擇其它字串。</translation>
</message>
<message>
+ <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui"/>
<source>horizontalSpacer</source>
<translation>水平間隔</translation>
</message>
@@ -5610,62 +6581,78 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::NewFormWidget</name>
<message>
+ <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="-391"/>
<source>Default size</source>
<translation>預設大小</translation>
</message>
<message>
+ <location line="+1"/>
<source>QVGA portrait (240x320)</source>
<translation>QVGA 縱向(240 x 320)</translation>
</message>
<message>
+ <location line="+1"/>
<source>QVGA landscape (320x240)</source>
<translation>QVGA 橫向(320 x 240)</translation>
</message>
<message>
+ <location line="+1"/>
<source>VGA portrait (480x640)</source>
<translation>VGA 縱向(480 x 640)</translation>
</message>
<message>
+ <location line="+1"/>
<source>VGA landscape (640x480)</source>
<translation>VGA 橫向(640 x 480)</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="+312"/>
<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>嵌入式設計</translation>
</message>
<message>
+ <location/>
<source>Device:</source>
<translation>裝置:</translation>
</message>
<message>
+ <location/>
<source>Screen Size:</source>
<translation>螢幕大小:</translation>
</message>
@@ -5673,31 +6660,37 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::NewPromotedClassPanel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="66"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+96"/>
<source>Add</source>
<translation>新增</translation>
</message>
<message>
+ <location line="+2"/>
<source>New Promoted Class</source>
<translation>新增提升的元件</translation>
</message>
<message>
+ <location line="+15"/>
<source>Base class name:</source>
<translation>基底類別名稱:</translation>
</message>
<message>
+ <location line="+1"/>
<source>Promoted class name:</source>
<translation>提升的類別名稱:</translation>
</message>
<message>
+ <location line="+1"/>
<source>Header file:</source>
<translation>標頭檔:</translation>
</message>
<message>
+ <location line="+1"/>
<source>Global include</source>
<translation>全域引入</translation>
</message>
<message>
+ <location line="+11"/>
<source>Reset</source>
<translation>重置</translation>
</message>
@@ -5721,7 +6714,7 @@ Please select another name.</source>
<translation type="obsolete">分隔器</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="727"/>
+ <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+758"/>
<source>&amp;Find in Text...</source>
<translation>在文字中尋找(&amp;F)...</translation>
</message>
@@ -5729,6 +6722,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::ObjectInspector::ObjectInspectorPrivate</name>
<message>
+ <location line="-438"/>
<source>Change Current Page</source>
<translation>變更目前的頁面</translation>
</message>
@@ -5736,15 +6730,17 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::OrderDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="83"/>
+ <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+113"/>
<source>Index %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>
@@ -5757,15 +6753,17 @@ Please select another name.</source>
<translation type="obsolete">下</translation>
</message>
<message>
- <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="3"/>
+ <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+3"/>
<source>%1 %2</source>
<translation>%1 %2</translation>
</message>
<message>
+ <location filename="../tools/designer/src/lib/shared/orderdialog.ui"/>
<source>Move page up</source>
<translation>頁面上移</translation>
</message>
<message>
+ <location/>
<source>Move page down</source>
<translation>頁面下移</translation>
</message>
@@ -5773,38 +6771,47 @@ 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>顯示詳情</translation>
</message>
<message>
+ <location/>
<source>Compute Details</source>
<translation>計算詳情</translation>
</message>
<message>
+ <location/>
<source>Quick</source>
<translation>快</translation>
</message>
<message>
+ <location/>
<source>Preview</source>
<translation>預覽</translation>
</message>
<message>
+ <location/>
<source>Disabled</source>
<translation>已關閉</translation>
</message>
<message>
+ <location/>
<source>Inactive</source>
<translation>未啟動</translation>
</message>
<message>
+ <location/>
<source>Active</source>
<translation>啟動</translation>
</message>
@@ -5812,7 +6819,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PaletteEditorButton</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="31"/>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+61"/>
<source>Change Palette</source>
<translation>變更調色盤</translation>
</message>
@@ -5820,19 +6827,22 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PaletteModel</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="351"/>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+381"/>
<source>Color Role</source>
<translation>顏色角色</translation>
</message>
<message>
+ <location line="+2"/>
<source>Active</source>
<translation>啟動</translation>
</message>
<message>
+ <location line="+2"/>
<source>Inactive</source>
<translation>未啟動</translation>
</message>
<message>
+ <location line="+2"/>
<source>Disabled</source>
<translation>已關閉</translation>
</message>
@@ -5840,22 +6850,28 @@ 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>複製路徑</translation>
</message>
<message>
+ <location line="+1"/>
<source>Paste Path</source>
<translation>貼上路徑</translation>
</message>
<message>
+ <location line="-3"/>
<source>Choose Resource...</source>
<translation>選擇資源...</translation>
</message>
<message>
+ <location line="+1"/>
<source>Choose File...</source>
<translation>選擇檔案...</translation>
</message>
<message>
+ <location line="+8"/>
+ <location line="+16"/>
<source>...</source>
<translation>...</translation>
</message>
@@ -5863,15 +6879,61 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PlainTextEditorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="39"/>
+ <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+69"/>
<source>Edit text</source>
<translation>編輯文字</translation>
</message>
</context>
<context>
+ <name>qdesigner_internal::PluginDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="+72"/>
+ <source>Components</source>
+ <translation>組件</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Plugin Information</source>
+ <translation>外掛程式資訊</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Refresh</source>
+ <translation>刷新</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Scan for newly installed custom widget plugins.</source>
+ <translation>掃描是否有新安裝的自訂元件外掛程式。</translation>
+ </message>
+ <message>
+ <location line="+48"/>
+ <source>Qt Designer couldn&apos;t find any plugins</source>
+ <translation>Qt 設計家找不到任何的外掛程式。</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Qt Designer found the following plugins</source>
+ <translation>Qt 設計家找到以下的外掛程式</translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>New custom widget plugins have been found.</source>
+ <translation>找到新的自訂元件外掛程式。</translation>
+ </message>
+ <message>
+ <source>TextLabel</source>
+ <translation type="obsolete">文字標籤</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation type="obsolete">1</translation>
+ </message>
+</context>
+<context>
<name>qdesigner_internal::PreviewActionGroup</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="65"/>
+ <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+95"/>
<source>%1 Style</source>
<translation>%1 樣式</translation>
</message>
@@ -5879,27 +6941,32 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate</name>
<message>
- <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="118"/>
+ <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" 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>外觀 %1 已存在。</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 不是合法的外觀目錄:
@@ -5909,7 +6976,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PreviewDeviceSkin</name>
<message>
- <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="188"/>
+ <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+218"/>
<source>&amp;Close</source>
<translation>關閉(&amp;C)</translation>
</message>
@@ -5917,6 +6984,7 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PreviewManager</name>
<message>
+ <location line="+345"/>
<source>%1 - [Preview]</source>
<translation>%1─[預覽]</translation>
</message>
@@ -5928,46 +6996,57 @@ Please select another name.</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>行編輯器</translation>
</message>
<message>
+ <location/>
<source>ComboBox</source>
<translation>下拉式選單</translation>
</message>
<message>
+ <location/>
<source>PushButton</source>
<translation>按鍵</translation>
</message>
<message>
+ <location/>
<source>ButtonGroup2</source>
<translation>按鍵群組2</translation>
</message>
<message>
+ <location/>
<source>CheckBox1</source>
<translation>勾選盒1</translation>
</message>
<message>
+ <location/>
<source>CheckBox2</source>
<translation>勾選盒2</translation>
</message>
<message>
+ <location/>
<source>ButtonGroup</source>
<translation>按鍵群組</translation>
</message>
<message>
+ <location/>
<source>RadioButton1</source>
<translation>單選圓鈕1</translation>
</message>
<message>
+ <location/>
<source>RadioButton2</source>
<translation>單選圓鈕2</translation>
</message>
<message>
+ <location/>
<source>RadioButton3</source>
<translation>單選圓鈕3</translation>
</message>
@@ -5975,19 +7054,22 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PromotionModel</name>
<message>
- <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="17"/>
+ <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>
@@ -5995,23 +7077,27 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PromotionTaskMenu</name>
<message>
- <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="55"/>
+ <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+85"/>
<source>Promoted widgets...</source>
<translation>已提升元件</translation>
</message>
<message>
+ <location line="+1"/>
<source>Promote to ...</source>
<translation>提升到...</translation>
</message>
<message>
+ <location line="+2"/>
<source>Promote to</source>
<translation>提升到</translation>
</message>
<message>
+ <location line="+1"/>
<source>Demote to %1</source>
<translation>降級到 %1</translation>
</message>
<message>
+ <location line="-2"/>
<source>Change signals/slots...</source>
<translation>變更信號/信號槽...</translation>
</message>
@@ -6019,43 +7105,52 @@ Please select another name.</source>
<context>
<name>qdesigner_internal::PropertyEditor</name>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="222"/>
+ <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+188"/>
<source>Add Dynamic Property...</source>
<translation>新增動態屬性...</translation>
</message>
<message>
+ <location line="+1"/>
<source>Remove Dynamic Property</source>
<translation>移除動態屬性</translation>
</message>
<message>
+ <location line="+1"/>
<source>Sorting</source>
<translation>排序</translation>
</message>
<message>
+ <location line="+1"/>
<source>Color Groups</source>
<translation>顏色群組</translation>
</message>
<message>
+ <location line="+1"/>
<source>Tree View</source>
<translation>樹狀檢視</translation>
</message>
<message>
+ <location line="+1"/>
<source>Drop Down Button View</source>
<translation>放下按鍵檢視</translation>
</message>
<message>
+ <location line="+49"/>
<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>
@@ -6066,6 +7161,7 @@ Please select another name.</source>
%2</translation>
</message>
<message>
+ <location line="+533"/>
<source>Object: %1
Class: %2</source>
<translation>物件:%1
@@ -6075,7 +7171,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::PropertyLineEdit</name>
<message>
- <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="58"/>
+ <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+88"/>
<source>Insert line break</source>
<translation>插入行中斷</translation>
</message>
@@ -6083,23 +7179,27 @@ Class: %2</source>
<context>
<name>qdesigner_internal::QDesignerPromotionDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="85"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+85"/>
<source>Promoted Widgets</source>
<translation>已提升元件</translation>
</message>
<message>
+ <location line="+7"/>
<source>Promoted Classes</source>
<translation>已提升類別</translation>
</message>
<message>
+ <location line="+60"/>
<source>Promote</source>
<translation>提升</translation>
</message>
<message>
+ <location line="+169"/>
<source>%1 - Error</source>
<translation>%1─錯誤</translation>
</message>
<message>
+ <location line="-17"/>
<source>Change signals/slots...</source>
<translation>變更信號/信號槽...</translation>
</message>
@@ -6107,19 +7207,22 @@ Class: %2</source>
<context>
<name>qdesigner_internal::QDesignerResource</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="277"/>
+ <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>
@@ -6127,87 +7230,112 @@ Class: %2</source>
<context>
<name>qdesigner_internal::QDesignerTaskMenu</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="68"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+68"/>
<source>Change objectName...</source>
<translation>變更物件名稱...</translation>
</message>
<message>
+ <location line="+1"/>
<source>Change toolTip...</source>
<translation>變更工具提示...</translation>
</message>
<message>
+ <location line="+1"/>
<source>Change whatsThis...</source>
<translation>變更「這是什麼?」...</translation>
</message>
<message>
+ <location line="+1"/>
<source>Change styleSheet...</source>
<translation>變更樣式表...</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>編輯「這是什麼」</translation>
</message>
+ <message>
+ <location line="+144"/>
+ <source>no signals available</source>
+ <translation type="unfinished"></translation>
+ </message>
<message numerus="yes">
+ <location line="+67"/>
<source>Set size constraint on %n widget(s)</source>
<translation>
<numerusform>設定 %n 個元件的大小限制</numerusform>
@@ -6217,16 +7345,20 @@ Class: %2</source>
<context>
<name>qdesigner_internal::QDesignerWidgetBox</name>
<message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="+127"/>
+ <location line="+13"/>
<source>Unexpected element &lt;%1&gt;</source>
<translation>未預期的元素 &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>在元件 %3 的 XML 代碼第 %1 行第 %2 個字元發生剖析錯誤:%4
%5</translation>
</message>
<message>
+ <location line="+9"/>
<source>The XML code specified for the widget %1 does not contain any widget elements.
%2</source>
<translation>元件 %1 的 XML 源碼未包含任何元件元素。
@@ -6274,8 +7406,8 @@ Class: %2</source>
<translation type="obsolete">顏色樣式</translation>
</message>
<message>
- <source>Rename<byte value="x9"/>F2</source>
- <translation type="obsolete">重新命名<byte value="x9"/>F2</translation>
+ <source>Rename F2</source>
+ <translation type="obsolete">重新命名 F2</translation>
</message>
<message>
<source>Form</source>
@@ -6458,27 +7590,32 @@ Class: %2</source>
<context>
<name>qdesigner_internal::QtGradientEditor</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="289"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+289"/>
<source>Linear</source>
<translation>線性</translation>
</message>
<message>
+ <location line="+1"/>
<source>Radial</source>
<translation>放射狀</translation>
</message>
<message>
+ <location line="+1"/>
<source>Conical</source>
<translation>圓錐狀</translation>
</message>
<message>
+ <location line="+20"/>
<source>Pad</source>
<translation>墊子狀</translation>
</message>
<message>
+ <location line="+1"/>
<source>Repeat</source>
<translation>重覆</translation>
</message>
<message>
+ <location line="+1"/>
<source>Reflect</source>
<translation>反射</translation>
</message>
@@ -6538,59 +7675,73 @@ Class: %2</source>
<context>
<name>qdesigner_internal::QtGradientStopsController</name>
<message>
- <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="147"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="+177"/>
<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>
@@ -6759,23 +7910,27 @@ Class: %2</source>
<context>
<name>qdesigner_internal::RichTextEditorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="436"/>
+ <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+436"/>
<source>Edit text</source>
<translation>編輯文字</translation>
</message>
<message>
+ <location line="+30"/>
<source>&amp;OK</source>
<translation>確定(&amp;O)</translation>
</message>
<message>
+ <location line="+2"/>
<source>&amp;Cancel</source>
<translation>取消(&amp;C)</translation>
</message>
<message>
+ <location line="-9"/>
<source>Rich Text</source>
<translation>Rich Text</translation>
</message>
<message>
+ <location line="+1"/>
<source>Source</source>
<translation>來源</translation>
</message>
@@ -6783,58 +7938,72 @@ Class: %2</source>
<context>
<name>qdesigner_internal::RichTextEditorToolBar</name>
<message>
+ <location line="-294"/>
<source>Bold</source>
<translation>粗體</translation>
</message>
<message>
+ <location line="+1"/>
<source>CTRL+B</source>
<translation>CTRL+B</translation>
</message>
<message>
+ <location line="+5"/>
<source>Italic</source>
<translation>斜體</translation>
</message>
<message>
+ <location line="+1"/>
<source>CTRL+I</source>
<translation>CTRL+I</translation>
</message>
<message>
+ <location line="+5"/>
<source>Underline</source>
<translation>底線</translation>
</message>
<message>
+ <location line="+1"/>
<source>CTRL+U</source>
<translation>CTRL+U</translation>
</message>
<message>
+ <location line="+13"/>
<source>Left Align</source>
<translation>置左對齊</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;L)</translation>
</message>
<message>
+ <location line="+5"/>
<source>Insert &amp;Image</source>
<translation>插入影像(&amp;I)</translation>
</message>
@@ -6842,15 +8011,17 @@ Class: %2</source>
<context>
<name>qdesigner_internal::ScriptDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="38"/>
+ <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+68"/>
<source>Edit script</source>
<translation>編輯文稿</translation>
</message>
<message>
+ <location line="+5"/>
<source>&lt;html&gt;Enter a Qt Script snippet to be executed while loading the form.&lt;br&gt;The widget and its children are accessible via the variables &lt;i&gt;widget&lt;/i&gt; and &lt;i&gt;childWidgets&lt;/i&gt;, respectively.</source>
<translation>&lt;html&gt;請輸入載入表單時要執行的文稿片段。&lt;br&gt;元件與子元件可以用變數 &lt;i&gt;widget&lt;/i&gt; 與 &lt;i&gt;childWidgets&lt;/i&gt; 來存取。</translation>
</message>
<message>
+ <location line="+50"/>
<source>Syntax error</source>
<translation>語法錯誤</translation>
</message>
@@ -6858,7 +8029,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::ScriptErrorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="27"/>
+ <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+27"/>
<source>Script errors</source>
<translation>文稿錯誤</translation>
</message>
@@ -6873,19 +8044,23 @@ Class: %2</source>
<context>
<name>qdesigner_internal::SignalSlotDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="199"/>
+ <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>已經有一個信號槽,其簽章為 %1。</translation>
</message>
<message>
+ <location line="+5"/>
<source>There is already a signal with the signature &apos;%1&apos;.</source>
<translation>已經有一個信號,其簽章為 %1。</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>
@@ -6893,11 +8068,12 @@ Class: %2</source>
<context>
<name>qdesigner_internal::SignalSlotEditorPlugin</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="46"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="+76"/>
<source>Edit Signals/Slots</source>
<translation>編輯信號與信號槽</translation>
</message>
<message>
+ <location line="+2"/>
<source>F4</source>
<translation>F4</translation>
</message>
@@ -6905,7 +8081,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::SignalSlotEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="32"/>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="+62"/>
<source>Edit Signals/Slots</source>
<translation>編輯信號與信號槽</translation>
</message>
@@ -6913,7 +8089,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::StatusBarTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="55"/>
+ <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+85"/>
<source>Remove</source>
<translation>移除</translation>
</message>
@@ -6925,7 +8101,7 @@ Class: %2</source>
<translation type="obsolete">變更字串列表</translation>
</message>
<message>
- <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="30"/>
+ <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+60"/>
<source>Change String List</source>
<translation>變更字串列表</translation>
</message>
@@ -6933,31 +8109,38 @@ Class: %2</source>
<context>
<name>qdesigner_internal::StyleSheetEditorDialog</name>
<message>
- <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="71"/>
+ <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+101"/>
<source>Edit Style Sheet</source>
<translation>編輯樣式表</translation>
</message>
<message>
+ <location line="-7"/>
+ <location line="+283"/>
<source>Valid Style Sheet</source>
<translation>合法樣式表</translation>
</message>
<message>
+ <location line="+3"/>
<source>Invalid Style Sheet</source>
<translation>不合法的樣式表</translation>
</message>
<message>
+ <location line="-284"/>
<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>
@@ -6986,23 +8169,27 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TabOrderEditor</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="333"/>
+ <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>
@@ -7010,7 +8197,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TabOrderEditorPlugin</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="47"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="+77"/>
<source>Edit Tab Order</source>
<translation>編輯定位點順序</translation>
</message>
@@ -7018,7 +8205,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TabOrderEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="31"/>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="+61"/>
<source>Edit Tab Order</source>
<translation>編輯定位點順序</translation>
</message>
@@ -7026,35 +8213,43 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TableWidgetEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="41"/>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+71"/>
<source>New Column</source>
<translation>新增欄位</translation>
</message>
<message>
+ <location line="+3"/>
<source>New Row</source>
<translation>新增列</translation>
</message>
<message>
+ <location line="+8"/>
<source>&amp;Columns</source>
<translation>欄(&amp;C)</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Rows</source>
<translation>列(&amp;R)</translation>
</message>
<message>
+ <location line="+137"/>
<source>Properties &amp;&lt;&lt;</source>
<translation>屬性 &amp;&lt;&lt;</translation>
</message>
<message>
+ <location line="+2"/>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.ui"/>
<source>Properties &amp;&gt;&gt;</source>
<translation>屬性 &amp;&gt;&gt;</translation>
</message>
<message>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.ui"/>
<source>Edit Table Widget</source>
<translation>編輯表格元件</translation>
</message>
<message>
+ <location/>
<source>&amp;Items</source>
<translation>項目(&amp;I)</translation>
</message>
@@ -7119,6 +8314,7 @@ Class: %2</source>
<translation type="obsolete">重置列像素圖</translation>
</message>
<message>
+ <location/>
<source>Table Items</source>
<translation>表格項目</translation>
</message>
@@ -7182,7 +8378,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TableWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="38"/>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+68"/>
<source>Edit Items...</source>
<translation>編輯項目...</translation>
</message>
@@ -7190,18 +8386,22 @@ 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>
@@ -7209,19 +8409,22 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TextEditTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="33"/>
+ <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+63"/>
<source>Change HTML...</source>
<translation>變更 HTML...</translation>
</message>
<message>
+ <location line="-1"/>
<source>Edit HTML</source>
<translation>編輯 HTML</translation>
</message>
<message>
+ <location line="+10"/>
<source>Edit Text</source>
<translation>編輯文字</translation>
</message>
<message>
+ <location line="+1"/>
<source>Change Plain Text...</source>
<translation>變更純文字...</translation>
</message>
@@ -7229,18 +8432,22 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TextEditor</name>
<message>
+ <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-201"/>
<source>Choose Resource...</source>
<translation>選擇資源...</translation>
</message>
<message>
+ <location line="+1"/>
<source>Choose File...</source>
<translation>選擇檔案...</translation>
</message>
<message>
+ <location line="+120"/>
<source>Choose a File</source>
<translation>選擇檔案</translation>
</message>
<message>
+ <location line="-115"/>
<source>...</source>
<translation>...</translation>
</message>
@@ -7248,23 +8455,27 @@ Class: %2</source>
<context>
<name>qdesigner_internal::ToolBarEventFilter</name>
<message>
- <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="209"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+239"/>
<source>Insert Separator</source>
<translation>插入分隔器</translation>
</message>
<message>
+ <location line="-65"/>
<source>Remove action &apos;%1&apos;</source>
<translation>移除動作 %1</translation>
</message>
<message>
+ <location line="+7"/>
<source>Remove Toolbar &apos;%1&apos;</source>
<translation>移除工具列 %1</translation>
</message>
<message>
+ <location line="-28"/>
<source>Insert Separator before &apos;%1&apos;</source>
<translation>在 %1 之前插入分隔器</translation>
</message>
<message>
+ <location line="+9"/>
<source>Append Separator</source>
<translation>附加分隔器</translation>
</message>
@@ -7279,27 +8490,34 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TreeWidgetEditor</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="50"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+80"/>
<source>&amp;Columns</source>
<translation>欄(&amp;C)</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 line="+53"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
<source>New Item</source>
<translation>新增項目</translation>
</message>
<message>
+ <location line="+194"/>
<source>Properties &amp;&lt;&lt;</source>
<translation>屬性 &amp;&lt;&lt;</translation>
</message>
<message>
+ <location line="+2"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
<source>Properties &amp;&gt;&gt;</source>
<translation>屬性 &amp;&gt;&gt;</translation>
</message>
@@ -7308,18 +8526,22 @@ Class: %2</source>
<translation type="obsolete">新增子項目</translation>
</message>
<message>
+ <location line="-327"/>
<source>New Column</source>
<translation>新增欄位</translation>
</message>
<message>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
<source>Edit Tree Widget</source>
<translation>編輯樹狀圖元件</translation>
</message>
<message>
+ <location/>
<source>&amp;Items</source>
<translation>項目(&amp;I)</translation>
</message>
<message>
+ <location/>
<source>Tree Items</source>
<translation>樹狀圖項目</translation>
</message>
@@ -7352,14 +8574,18 @@ Class: %2</source>
<translation type="obsolete">新增項目(&amp;N)</translation>
</message>
<message>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+150"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
<source>New Subitem</source>
<translation>新增子項目</translation>
</message>
<message>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
<source>New &amp;Subitem</source>
<translation>新增子項目(&amp;S)</translation>
</message>
<message>
+ <location/>
<source>Delete Item</source>
<translation>刪除項目</translation>
</message>
@@ -7368,34 +8594,42 @@ Class: %2</source>
<translation type="obsolete">刪除項目(&amp;D)</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>R</translation>
</message>
<message>
+ <location/>
<source>Move Item Up</source>
<translation>將項目上移</translation>
</message>
<message>
+ <location/>
<source>U</source>
<translation>U</translation>
</message>
<message>
+ <location/>
<source>Move Item Down</source>
<translation>將項目下移</translation>
</message>
<message>
+ <location/>
<source>D</source>
<translation>D</translation>
</message>
@@ -7448,14 +8682,17 @@ Class: %2</source>
<translation type="obsolete">樹狀圖欄位</translation>
</message>
<message>
+ <location/>
<source>1</source>
<translation>1</translation>
</message>
<message>
+ <location/>
<source>&amp;New</source>
<translation>新增(&amp;N)</translation>
</message>
<message>
+ <location/>
<source>&amp;Delete</source>
<translation>刪除(&amp;D)</translation>
</message>
@@ -7467,7 +8704,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::TreeWidgetTaskMenu</name>
<message>
- <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="37"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+67"/>
<source>Edit Items...</source>
<translation>編輯項目...</translation>
</message>
@@ -7475,7 +8712,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::WidgetBox</name>
<message>
- <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="83"/>
+ <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="+113"/>
<source>Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML.</source>
<translation>警告:在元件盒內建立元件失敗。可能是不合法的自訂元件 XML 造成的。</translation>
</message>
@@ -7510,34 +8747,42 @@ 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>暫存</translation>
</message>
<message>
+ <location line="+370"/>
<source>Custom Widgets</source>
<translation>自訂元件</translation>
</message>
<message>
+ <location line="+260"/>
<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>
@@ -7545,6 +8790,7 @@ 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>
@@ -7552,7 +8798,7 @@ Class: %2</source>
<context>
<name>qdesigner_internal::WidgetEditorTool</name>
<message>
- <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="41"/>
+ <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+71"/>
<source>Edit Widgets</source>
<translation>編輯元件</translation>
</message>
@@ -7560,29 +8806,34 @@ Class: %2</source>
<context>
<name>qdesigner_internal::WidgetFactory</name>
<message>
- <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="237"/>
+ <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="+267"/>
<source>The custom widget factory registered for widgets of class %1 returned 0.</source>
<translation>類別 %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>在建立佈局時,容器 %1(%2)裡目前的頁面無法被決定。這表示介面檔中可能有不相符的情況。可能在容器元件裡已經建構了一個佈局。</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>您試圖將一個佈局新增到元件 %1(%2)中,但該元件已經有一個型態為 %3 的未管理佈局。
這表示在 ui 檔中有發生不一致的情況。</translation>
</message>
<message>
+ <location line="+211"/>
<source>Cannot create style &apos;%1&apos;.</source>
<translation>無法建立樣式 %1。</translation>
</message>
@@ -7590,10 +8841,12 @@ 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>
@@ -7601,8 +8854,9 @@ 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="54"/>
+ <location filename="../tools/designer/src/lib/shared/zoomwidget.cpp" line="+84"/>
<source>%1 %</source>
+ <extracomment>Zoom factor</extracomment>
<translation>%1 %</translation>
</message>
</context>
diff --git a/translations/linguist_de.ts b/translations/linguist_de.ts
index 925b6c2..712f75d 100644
--- a/translations/linguist_de.ts
+++ b/translations/linguist_de.ts
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="de">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="de">
<context>
<name></name>
<message>
- <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+29"/>
+ <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+59"/>
<source>(New Entry)</source>
<translation type="unfinished"></translation>
</message>
@@ -19,7 +19,7 @@
<context>
<name>AboutDialog</name>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1318"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1357"/>
<source>Qt Linguist</source>
<translation>QT Linguist</translation>
</message>
@@ -27,7 +27,7 @@
<context>
<name>BatchTranslationDialog</name>
<message>
- <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+49"/>
+ <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+79"/>
<source>Batch Translation of &apos;%1&apos; - Qt Linguist</source>
<translation type="unfinished"></translation>
</message>
@@ -118,7 +118,7 @@
<context>
<name>DataModel</name>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+184"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+214"/>
<source>&lt;qt&gt;Duplicate messages found in &apos;%1&apos;:</source>
<translation type="unfinished"></translation>
</message>
@@ -138,10 +138,21 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+121"/>
+ <location line="+70"/>
+ <source>Linguist does not know the plural rules for &apos;%1&apos;.
+Will assume a single universal form.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+56"/>
<source>Cannot create &apos;%2&apos;: %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+56"/>
+ <source>Universal Form</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>EditorPage</name>
@@ -201,7 +212,7 @@
<context>
<name>ErrorsView</name>
<message>
- <location filename="../tools/linguist/linguist/errorsview.cpp" line="+46"/>
+ <location filename="../tools/linguist/linguist/errorsview.cpp" line="+76"/>
<source>Accelerator possibly superfluous in translation.</source>
<translation>Zusätzliche Kurztaste im Übersetzungstext.</translation>
</message>
@@ -373,7 +384,7 @@
<context>
<name>LRelease</name>
<message numerus="yes">
- <location filename="../tools/linguist/shared/qm.cpp" line="+653"/>
+ <location filename="../tools/linguist/shared/qm.cpp" line="+715"/>
<source> Generated %n translation(s) (%1 finished and %2 unfinished)
</source>
<translation>
@@ -922,9 +933,8 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">Gehe zum nächsten unerledigten Eintrag.</translation>
</message>
<message>
- <location/>
<source>Ctrl+L</source>
- <translation>Ctrl+L</translation>
+ <translation type="obsolete">Ctrl+L</translation>
</message>
<message>
<location/>
@@ -950,9 +960,8 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">Gehe zum nächsten Eintrag.</translation>
</message>
<message>
- <location/>
<source>Ctrl+Shift+L</source>
- <translation>Ctrl+Shift+L</translation>
+ <translation type="obsolete">Ctrl+Shift+L</translation>
</message>
<message>
<location/>
@@ -1153,13 +1162,13 @@ p, li { white-space: pre-wrap; }
<translation>Eryeuge eine Qt Nachrichtendatei aus der aktuellen Übersetzungsdatei. Der Dateiname wird automatisch aus dem Namen der .ts Datei abgeleitet.</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1965"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2004"/>
<source></source>
<comment>This is the application&apos;s main window.</comment>
<translation></translation>
</message>
<message>
- <location line="+165"/>
+ <location line="+195"/>
<source>Source text</source>
<translation type="unfinished">Ursprungstext</translation>
</message>
@@ -1212,32 +1221,32 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<source>Loading...</source>
<translation type="unfinished">Lade...</translation>
</message>
<message>
+ <location line="+32"/>
<location line="+22"/>
- <location line="+20"/>
<source>Loading File - Qt Linguist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-19"/>
+ <location line="-21"/>
<source>The file &apos;%1&apos; does not seem to be related to the currently open file(s) &apos;%2&apos;.
Close the open file(s) first?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+20"/>
+ <location line="+22"/>
<source>The file &apos;%1&apos; does not seem to be related to the file &apos;%2&apos; which is being loaded as well.
Skip loading the first named file?</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location line="+49"/>
+ <location line="+61"/>
<source>%n translation unit(s) loaded.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -1245,7 +1254,7 @@ Skip loading the first named file?</source>
</translation>
</message>
<message>
- <location line="+92"/>
+ <location line="+93"/>
<source>Related files (%1);;</source>
<translation type="unfinished"></translation>
</message>
@@ -1255,20 +1264,20 @@ Skip loading the first named file?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+9"/>
- <location line="+30"/>
+ <location line="+10"/>
+ <location line="+31"/>
<source>File saved.</source>
<translation type="unfinished">Datei gespeichert.</translation>
</message>
<message>
- <location line="+14"/>
- <location line="+1184"/>
+ <location line="+15"/>
+ <location line="+1164"/>
<location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Release</source>
<translation type="unfinished">Freigeben</translation>
</message>
<message>
- <location line="-1183"/>
+ <location line="-1163"/>
<source>Qt message files for released applications (*.qm)
All files (*)</source>
<translation type="unfinished">Qt Nachrichtendateien (*.qm)
@@ -1332,7 +1341,7 @@ Alle Dateien (*)</translation>
<message>
<location line="+17"/>
<location line="+278"/>
- <location line="+60"/>
+ <location line="+40"/>
<location line="+24"/>
<location line="+22"/>
<location line="+516"/>
@@ -1344,7 +1353,7 @@ Alle Dateien (*)</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-1224"/>
+ <location line="-1204"/>
<location line="+102"/>
<source>Cannot find the string &apos;%1&apos;.</source>
<translation type="unfinished">Kann Zeichenkette &apos;%1&apos; nicht finden.</translation>
@@ -1449,27 +1458,11 @@ Alle Dateien (*)</translation>
<translation type="unfinished">Version %1</translation>
</message>
<message>
- <location line="+2"/>
<source> Open Source Edition</source>
- <translation type="unfinished">Open Source Edition</translation>
- </message>
- <message>
- <location line="+7"/>
- <source>This version of Qt Linguist is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;tt&gt;http://qtsoftware.com/company/model.html&lt;/tt&gt; for an overview of Qt licensing.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+8"/>
- <source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+4"/>
- <source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Open Source Edition</translation>
</message>
<message>
- <location line="+5"/>
+ <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) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;/p&gt;</source>
<translation type="unfinished">&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 ist ein Werkzeug zum Übersetzen von Qt Anwendungen.&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 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;</translation>
</message>
@@ -1652,7 +1645,7 @@ Alle Dateien (*)</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+312"/>
+ <location line="+314"/>
<source>All</source>
<translation type="unfinished"></translation>
</message>
@@ -1672,7 +1665,7 @@ Alle Dateien (*)</translation>
<translation>F5</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-525"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-527"/>
<location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Translation File &amp;Settings...</source>
<translation>E&amp;instellungen...</translation>
@@ -1695,11 +1688,21 @@ Alle Dateien (*)</translation>
<source>Ctrl+T</source>
<translation>Ctrl+T</translation>
</message>
+ <message>
+ <location/>
+ <source>Ctrl+J</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Shift+J</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>MessageEditor</name>
<message>
- <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+42"/>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+72"/>
<source>German</source>
<translation type="unfinished">Deutsch</translation>
</message>
@@ -1834,7 +1837,7 @@ Zeile: %2</translation>
<translation type="obsolete">Index</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+861"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+832"/>
<source>Completion status for %1</source>
<translation type="unfinished"></translation>
</message>
@@ -1864,7 +1867,7 @@ Zeile: %2</translation>
<context>
<name>MsgEdit</name>
<message>
- <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-549"/>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-579"/>
<source></source>
<comment>This is the right panel of the main window.</comment>
<translation></translation>
@@ -1877,13 +1880,13 @@ Zeile: %2</translation>
<translation type="obsolete">%1 - %2[*]</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-17"/>
+ <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-47"/>
<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="+25"/>
+ <location line="+55"/>
<source>%1[*] - Qt Linguist</source>
<translation type="unfinished"></translation>
</message>
@@ -2002,7 +2005,7 @@ Zeile: %2</translation>
<context>
<name>PhraseModel</name>
<message>
- <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+87"/>
+ <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+117"/>
<source>Source phrase</source>
<translation>Ursprungstext</translation>
</message>
@@ -2020,7 +2023,7 @@ Zeile: %2</translation>
<context>
<name>PhraseView</name>
<message>
- <location filename="../tools/linguist/linguist/phraseview.cpp" line="+91"/>
+ <location filename="../tools/linguist/linguist/phraseview.cpp" line="+121"/>
<source>Insert</source>
<translation>Einfügen</translation>
</message>
@@ -2048,7 +2051,7 @@ Zeile: %2</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1296"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1279"/>
<source>Translation files (%1);;</source>
<translation type="unfinished"></translation>
</message>
@@ -2058,37 +2061,38 @@ Zeile: %2</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1086"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1118"/>
<location line="+18"/>
- <location line="+101"/>
+ <location line="+67"/>
+ <location line="+39"/>
<location line="+17"/>
<location line="+15"/>
- <location filename="../tools/linguist/linguist/phrase.cpp" line="+166"/>
+ <location filename="../tools/linguist/linguist/phrase.cpp" line="+196"/>
<source>Qt Linguist</source>
<translation>Qt Linguist</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/cpp.cpp" line="+1039"/>
+ <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="+624"/>
+ <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="+584"/>
+ <location filename="../tools/linguist/shared/po.cpp" line="+651"/>
<source>GNU Gettext localization files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/qscript.cpp" line="+2369"/>
+ <location filename="../tools/linguist/shared/qscript.cpp" line="+2399"/>
<source>Qt Script source files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/ts.cpp" line="+617"/>
+ <location filename="../tools/linguist/shared/ts.cpp" line="+752"/>
<source>Qt translation sources (format 1.1)</source>
<translation type="unfinished"></translation>
</message>
@@ -2099,11 +2103,11 @@ Zeile: %2</translation>
</message>
<message>
<location line="+9"/>
- <source>Qt translation sources</source>
+ <source>Qt translation sources (latest format)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/ui.cpp" line="+171"/>
+ <location filename="../tools/linguist/shared/ui.cpp" line="+213"/>
<source>Qt Designer form files</source>
<translation type="unfinished"></translation>
</message>
@@ -2113,10 +2117,15 @@ Zeile: %2</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/xliff.cpp" line="+778"/>
+ <location filename="../tools/linguist/shared/xliff.cpp" line="+817"/>
<source>XLIFF localization files</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../tools/linguist/shared/qph.cpp" line="+192"/>
+ <source>Qt Linguist &apos;Phrase Book&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QtWindowListMenu</name>
@@ -2155,7 +2164,7 @@ Zeile: %2</translation>
<context>
<name>SourceCodeView</name>
<message>
- <location filename="../tools/linguist/linguist/sourcecodeview.cpp" line="+40"/>
+ <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>
@@ -2710,7 +2719,7 @@ Alle Dateien (*)</translation>
<context>
<name>TranslationSettingsDialog</name>
<message>
- <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+38"/>
+ <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+68"/>
<source>Any Country</source>
<translation>Land</translation>
</message>
diff --git a/translations/linguist_fr.ts b/translations/linguist_fr.ts
index ad346bf..b8317b2 100644
--- a/translations/linguist_fr.ts
+++ b/translations/linguist_fr.ts
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0">
+<!DOCTYPE TS>
+<TS version="2.0">
<context>
<name></name>
<message>
- <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+29"/>
+ <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+59"/>
<source>(New Entry)</source>
<translation type="unfinished"></translation>
</message>
@@ -11,7 +12,7 @@
<context>
<name>AboutDialog</name>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1318"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1357"/>
<source>Qt Linguist</source>
<translation type="unfinished"></translation>
</message>
@@ -19,7 +20,7 @@
<context>
<name>BatchTranslationDialog</name>
<message>
- <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+49"/>
+ <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+79"/>
<source>Batch Translation of &apos;%1&apos; - Qt Linguist</source>
<translation type="unfinished"></translation>
</message>
@@ -109,7 +110,7 @@
<context>
<name>DataModel</name>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+184"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+214"/>
<source>&lt;qt&gt;Duplicate messages found in &apos;%1&apos;:</source>
<translation type="unfinished"></translation>
</message>
@@ -129,15 +130,26 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+121"/>
+ <location line="+70"/>
+ <source>Linguist does not know the plural rules for &apos;%1&apos;.
+Will assume a single universal form.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+56"/>
<source>Cannot create &apos;%2&apos;: %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+56"/>
+ <source>Universal Form</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ErrorsView</name>
<message>
- <location filename="../tools/linguist/linguist/errorsview.cpp" line="+46"/>
+ <location filename="../tools/linguist/linguist/errorsview.cpp" line="+76"/>
<source>Accelerator possibly superfluous in translation.</source>
<translation type="unfinished"></translation>
</message>
@@ -274,7 +286,7 @@
<context>
<name>LRelease</name>
<message numerus="yes">
- <location filename="../tools/linguist/shared/qm.cpp" line="+653"/>
+ <location filename="../tools/linguist/shared/qm.cpp" line="+715"/>
<source> Generated %n translation(s) (%1 finished and %2 unfinished)
</source>
<translation type="unfinished">
@@ -707,11 +719,6 @@
</message>
<message>
<location/>
- <source>Ctrl+L</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location/>
<source>P&amp;rev</source>
<translation type="unfinished"></translation>
</message>
@@ -727,11 +734,6 @@
</message>
<message>
<location/>
- <source>Ctrl+Shift+L</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location/>
<source>&amp;Done and Next</source>
<translation type="unfinished"></translation>
</message>
@@ -909,13 +911,13 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1965"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2004"/>
<source></source>
<comment>This is the application&apos;s main window.</comment>
<translation></translation>
</message>
<message>
- <location line="+165"/>
+ <location line="+195"/>
<source>Source text</source>
<translation type="unfinished"></translation>
</message>
@@ -968,39 +970,39 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<source>Loading...</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+32"/>
<location line="+22"/>
- <location line="+20"/>
<source>Loading File - Qt Linguist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-19"/>
+ <location line="-21"/>
<source>The file &apos;%1&apos; does not seem to be related to the currently open file(s) &apos;%2&apos;.
Close the open file(s) first?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+20"/>
+ <location line="+22"/>
<source>The file &apos;%1&apos; does not seem to be related to the file &apos;%2&apos; which is being loaded as well.
Skip loading the first named file?</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location line="+49"/>
+ <location line="+61"/>
<source>%n translation unit(s) loaded.</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message>
- <location line="+92"/>
+ <location line="+93"/>
<source>Related files (%1);;</source>
<translation type="unfinished"></translation>
</message>
@@ -1010,20 +1012,20 @@ Skip loading the first named file?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+9"/>
- <location line="+30"/>
+ <location line="+10"/>
+ <location line="+31"/>
<source>File saved.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+14"/>
- <location line="+1184"/>
+ <location line="+15"/>
+ <location line="+1164"/>
<location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Release</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-1183"/>
+ <location line="-1163"/>
<source>Qt message files for released applications (*.qm)
All files (*)</source>
<translation type="unfinished"></translation>
@@ -1086,7 +1088,7 @@ All files (*)</source>
<message>
<location line="+17"/>
<location line="+278"/>
- <location line="+60"/>
+ <location line="+40"/>
<location line="+24"/>
<location line="+22"/>
<location line="+516"/>
@@ -1098,7 +1100,7 @@ All files (*)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-1224"/>
+ <location line="-1204"/>
<location line="+102"/>
<source>Cannot find the string &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
@@ -1193,27 +1195,7 @@ All files (*)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
- <source> Open Source Edition</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+7"/>
- <source>This version of Qt Linguist is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;tt&gt;http://qtsoftware.com/company/model.html&lt;/tt&gt; for an overview of Qt licensing.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+8"/>
- <source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+4"/>
- <source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+5"/>
+ <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) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -1396,7 +1378,7 @@ All files (*)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+312"/>
+ <location line="+314"/>
<source>All</source>
<translation type="unfinished"></translation>
</message>
@@ -1416,7 +1398,7 @@ All files (*)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-525"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-527"/>
<location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Translation File &amp;Settings...</source>
<translation type="unfinished"></translation>
@@ -1431,11 +1413,21 @@ All files (*)</source>
<source>Ctrl+T</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location/>
+ <source>Ctrl+J</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Shift+J</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>MessageEditor</name>
<message>
- <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+42"/>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+72"/>
<source>German</source>
<translation type="unfinished"></translation>
</message>
@@ -1529,7 +1521,7 @@ Line: %2</source>
<context>
<name>MessageModel</name>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+861"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+832"/>
<source>Completion status for %1</source>
<translation type="unfinished"></translation>
</message>
@@ -1552,7 +1544,7 @@ Line: %2</source>
<context>
<name>MsgEdit</name>
<message>
- <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-547"/>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-577"/>
<source></source>
<comment>This is the right panel of the main window.</comment>
<translation></translation>
@@ -1561,13 +1553,13 @@ Line: %2</source>
<context>
<name>PhraseBookBox</name>
<message>
- <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-15"/>
+ <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-45"/>
<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="+23"/>
+ <location line="+53"/>
<source>%1[*] - Qt Linguist</source>
<translation type="unfinished"></translation>
</message>
@@ -1670,7 +1662,7 @@ Line: %2</source>
<context>
<name>PhraseModel</name>
<message>
- <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+87"/>
+ <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+117"/>
<source>Source phrase</source>
<translation type="unfinished"></translation>
</message>
@@ -1688,7 +1680,7 @@ Line: %2</source>
<context>
<name>PhraseView</name>
<message>
- <location filename="../tools/linguist/linguist/phraseview.cpp" line="+91"/>
+ <location filename="../tools/linguist/linguist/phraseview.cpp" line="+121"/>
<source>Insert</source>
<translation type="unfinished"></translation>
</message>
@@ -1716,7 +1708,7 @@ Line: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1296"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1279"/>
<source>Translation files (%1);;</source>
<translation type="unfinished"></translation>
</message>
@@ -1726,37 +1718,38 @@ Line: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1086"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1118"/>
<location line="+18"/>
- <location line="+101"/>
+ <location line="+67"/>
+ <location line="+39"/>
<location line="+17"/>
<location line="+15"/>
- <location filename="../tools/linguist/linguist/phrase.cpp" line="+166"/>
+ <location filename="../tools/linguist/linguist/phrase.cpp" line="+196"/>
<source>Qt Linguist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/cpp.cpp" line="+1039"/>
+ <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="+624"/>
+ <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="+584"/>
+ <location filename="../tools/linguist/shared/po.cpp" line="+651"/>
<source>GNU Gettext localization files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/qscript.cpp" line="+2369"/>
+ <location filename="../tools/linguist/shared/qscript.cpp" line="+2399"/>
<source>Qt Script source files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/ts.cpp" line="+617"/>
+ <location filename="../tools/linguist/shared/ts.cpp" line="+752"/>
<source>Qt translation sources (format 1.1)</source>
<translation type="unfinished"></translation>
</message>
@@ -1767,11 +1760,11 @@ Line: %2</source>
</message>
<message>
<location line="+9"/>
- <source>Qt translation sources</source>
+ <source>Qt translation sources (latest format)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/ui.cpp" line="+171"/>
+ <location filename="../tools/linguist/shared/ui.cpp" line="+213"/>
<source>Qt Designer form files</source>
<translation type="unfinished"></translation>
</message>
@@ -1781,15 +1774,20 @@ Line: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/xliff.cpp" line="+778"/>
+ <location filename="../tools/linguist/shared/xliff.cpp" line="+817"/>
<source>XLIFF localization files</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../tools/linguist/shared/qph.cpp" line="+192"/>
+ <source>Qt Linguist &apos;Phrase Book&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>SourceCodeView</name>
<message>
- <location filename="../tools/linguist/linguist/sourcecodeview.cpp" line="+40"/>
+ <location filename="../tools/linguist/linguist/sourcecodeview.cpp" line="+70"/>
<source>&lt;i&gt;Source code not available&lt;/i&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -1932,7 +1930,7 @@ Line: %2</source>
<context>
<name>TranslationSettingsDialog</name>
<message>
- <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+38"/>
+ <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+68"/>
<source>Any Country</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/linguist_ja.ts b/translations/linguist_ja.ts
index 41c24ca..7af3ebb 100644
--- a/translations/linguist_ja.ts
+++ b/translations/linguist_ja.ts
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="ja">
+<!DOCTYPE TS>
+<TS version="2.0" language="ja">
<context>
<name></name>
<message>
- <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+29"/>
+ <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+59"/>
<source>(New Entry)</source>
<translation type="unfinished"></translation>
</message>
@@ -18,7 +19,7 @@
<context>
<name>AboutDialog</name>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1318"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1357"/>
<source>Qt Linguist</source>
<translation>Qt Linguist</translation>
</message>
@@ -30,7 +31,7 @@
<translation type="obsolete">%1 項目が一括翻訳されました</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+86"/>
+ <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+116"/>
<source>&amp;Cancel</source>
<translation>キャンセル(&amp;C)</translation>
</message>
@@ -135,7 +136,7 @@
<context>
<name>DataModel</name>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+184"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+214"/>
<source>&lt;qt&gt;Duplicate messages found in &apos;%1&apos;:</source>
<translation type="unfinished"></translation>
</message>
@@ -155,10 +156,21 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+121"/>
+ <location line="+70"/>
+ <source>Linguist does not know the plural rules for &apos;%1&apos;.
+Will assume a single universal form.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+56"/>
<source>Cannot create &apos;%2&apos;: %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+56"/>
+ <source>Universal Form</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>EditorPage</name>
@@ -186,7 +198,7 @@
<context>
<name>ErrorsView</name>
<message>
- <location filename="../tools/linguist/linguist/errorsview.cpp" line="+46"/>
+ <location filename="../tools/linguist/linguist/errorsview.cpp" line="+76"/>
<source>Accelerator possibly superfluous in translation.</source>
<translation type="unfinished">訳に余分なアクセラレータがついています。</translation>
</message>
@@ -373,7 +385,7 @@
<context>
<name>LRelease</name>
<message numerus="yes">
- <location filename="../tools/linguist/shared/qm.cpp" line="+653"/>
+ <location filename="../tools/linguist/shared/qm.cpp" line="+715"/>
<source> Generated %n translation(s) (%1 finished and %2 unfinished)
</source>
<translation type="unfinished">
@@ -507,9 +519,8 @@
<translation>Ctrl+K</translation>
</message>
<message>
- <location/>
<source>Ctrl+L</source>
- <translation>Ctrl+L</translation>
+ <translation type="obsolete">Ctrl+L</translation>
</message>
<message>
<location/>
@@ -552,9 +563,8 @@
<translation>Ctrl+Shift+K</translation>
</message>
<message>
- <location/>
<source>Ctrl+Shift+L</source>
- <translation>Ctrl+Shift+L</translation>
+ <translation type="obsolete">Ctrl+Shift+L</translation>
</message>
<message>
<location/>
@@ -838,13 +848,13 @@
<translation type="obsolete">ソート順序を初期状態に(&amp;R)</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1965"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2004"/>
<source></source>
<comment>This is the application&apos;s main window.</comment>
<translation></translation>
</message>
<message>
- <location line="+165"/>
+ <location line="+195"/>
<source>Source text</source>
<translation type="unfinished">ソーステキスト</translation>
</message>
@@ -897,39 +907,39 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<source>Loading...</source>
<translation type="unfinished">ロードしています...</translation>
</message>
<message>
+ <location line="+32"/>
<location line="+22"/>
- <location line="+20"/>
<source>Loading File - Qt Linguist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-19"/>
+ <location line="-21"/>
<source>The file &apos;%1&apos; does not seem to be related to the currently open file(s) &apos;%2&apos;.
Close the open file(s) first?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+20"/>
+ <location line="+22"/>
<source>The file &apos;%1&apos; does not seem to be related to the file &apos;%2&apos; which is being loaded as well.
Skip loading the first named file?</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location line="+49"/>
+ <location line="+61"/>
<source>%n translation unit(s) loaded.</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message>
- <location line="+92"/>
+ <location line="+93"/>
<source>Related files (%1);;</source>
<translation type="unfinished"></translation>
</message>
@@ -939,20 +949,20 @@ Skip loading the first named file?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+9"/>
- <location line="+30"/>
+ <location line="+10"/>
+ <location line="+31"/>
<source>File saved.</source>
<translation type="unfinished">ファイルが保存されました。</translation>
</message>
<message>
- <location line="+14"/>
- <location line="+1184"/>
+ <location line="+15"/>
+ <location line="+1164"/>
<location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Release</source>
<translation type="unfinished">リリース</translation>
</message>
<message>
- <location line="-1183"/>
+ <location line="-1163"/>
<source>Qt message files for released applications (*.qm)
All files (*)</source>
<translation type="unfinished">リリースされたアプリケーション用の Qt メッセージファイル (*.qm)
@@ -1016,7 +1026,7 @@ All files (*)</source>
<message>
<location line="+17"/>
<location line="+278"/>
- <location line="+60"/>
+ <location line="+40"/>
<location line="+24"/>
<location line="+22"/>
<location line="+516"/>
@@ -1028,7 +1038,7 @@ All files (*)</source>
<translation type="unfinished">Qt Linguist</translation>
</message>
<message>
- <location line="-1224"/>
+ <location line="-1204"/>
<location line="+102"/>
<source>Cannot find the string &apos;%1&apos;.</source>
<translation type="unfinished">文字列 &apos;%1&apos; が見つかりません。</translation>
@@ -1134,27 +1144,19 @@ All files (*)</source>
<translation type="unfinished">バージョン %1</translation>
</message>
<message>
- <location line="+2"/>
<source> Open Source Edition</source>
- <translation type="unfinished"> オープンソース版</translation>
+ <translation type="obsolete"> オープンソース版</translation>
</message>
<message>
- <location line="+7"/>
<source>This version of Qt Linguist is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;tt&gt;http://qtsoftware.com/company/model.html&lt;/tt&gt; for an overview of Qt licensing.</source>
- <translation type="unfinished">このバージョンの Qt Linguist は、 オープンソースアプリケーションを開発するための Qt オープンソース版の一部です。Qt は、クロスプラットフォームなアプリケーションを開発するための包括的な C++ のフレームワークです。&lt;br/&gt;&lt;br/&gt;独占的な(ソースが隠された)アプリケーションを開発するには、Qt の商用ライセンスが必要です。Qt のライセンスの概要については &lt;tt&gt;http://qtsoftware.com/company/model.html&lt;/tt&gt; をご覧ください。</translation>
- </message>
- <message>
- <location line="+8"/>
- <source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">このバージョンの Qt Linguist は、 オープンソースアプリケーションを開発するための Qt オープンソース版の一部です。Qt は、クロスプラットフォームなアプリケーションを開発するための包括的な C++ のフレームワークです。&lt;br/&gt;&lt;br/&gt;独占的な(ソースが隠された)アプリケーションを開発するには、Qt の商用ライセンスが必要です。Qt のライセンスの概要については &lt;tt&gt;http://qtsoftware.com/company/model.html&lt;/tt&gt; をご覧ください。</translation>
</message>
<message>
- <location line="+4"/>
<source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation type="unfinished">このプログラムは、Qt 商用ライセンス契約書の定める条件の下であなたの利用が認められています。詳細は、ソフトウェアと一緒に配布される LICENSE ファイルを参照してください。</translation>
+ <translation type="obsolete">このプログラムは、Qt 商用ライセンス契約書の定める条件の下であなたの利用が認められています。詳細は、ソフトウェアと一緒に配布される LICENSE ファイルを参照してください。</translation>
</message>
<message>
- <location line="+5"/>
+ <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) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;/p&gt;</source>
<translation type="unfinished">&lt;center&gt;&lt;img src=&quot;:/images/splash.png&quot;/&gt;&lt;/img&gt;&lt;p&gt;%1&lt;/p&gt;&lt;/center&gt;&lt;p&gt;Qt Linguist は、Qt アプリケーションの翻訳を行うツールです。&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 全ての権利は保護されています。&lt;/p&gt;&lt;p&gt;このプログラムは、「設計」、「市場性」および「特定の目的への適合性」も含む、あらゆる種類の「保証がなく」、「そのままで」提供されます。&lt;/p&gt;</translation>
</message>
@@ -1320,7 +1322,7 @@ All files (*)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+312"/>
+ <location line="+314"/>
<source>All</source>
<translation type="unfinished"></translation>
</message>
@@ -1409,7 +1411,7 @@ All files (*)</source>
<translation type="obsolete">ツール(&amp;L)</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-459"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-461"/>
<location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Translation</source>
<translation>翻訳</translation>
@@ -1645,6 +1647,16 @@ All files (*)</source>
<source>Ctrl+T</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location/>
+ <source>Ctrl+J</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Shift+J</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>MessageEditor</name>
@@ -1693,7 +1705,7 @@ All files (*)</source>
<translation type="obsolete">タブ</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+42"/>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+72"/>
<source>German</source>
<translation type="unfinished"></translation>
</message>
@@ -1807,7 +1819,7 @@ Line: %2</source>
<translation type="obsolete">項目数</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+861"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+832"/>
<source>Completion status for %1</source>
<translation type="unfinished"></translation>
</message>
@@ -1837,7 +1849,7 @@ Line: %2</source>
<context>
<name>MsgEdit</name>
<message>
- <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-547"/>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-577"/>
<source></source>
<comment>This is the right panel of the main window.</comment>
<translation></translation>
@@ -1973,7 +1985,7 @@ Line: %2</source>
<translation>訳(&amp;T):</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-113"/>
+ <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-143"/>
<source></source>
<comment>Go to Phrase &gt; Edit Phrase Book... The dialog that pops up is a PhraseBookBox.</comment>
<translation></translation>
@@ -1982,7 +1994,7 @@ Line: %2</source>
<context>
<name>PhraseModel</name>
<message>
- <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+91"/>
+ <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+121"/>
<source>Definition</source>
<translation>定義</translation>
</message>
@@ -2000,7 +2012,7 @@ Line: %2</source>
<context>
<name>PhraseView</name>
<message>
- <location filename="../tools/linguist/linguist/phraseview.cpp" line="+91"/>
+ <location filename="../tools/linguist/linguist/phraseview.cpp" line="+121"/>
<source>Insert</source>
<translation type="unfinished"></translation>
</message>
@@ -2028,7 +2040,7 @@ Line: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1296"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1279"/>
<source>Translation files (%1);;</source>
<translation type="unfinished"></translation>
</message>
@@ -2038,37 +2050,38 @@ Line: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1086"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1118"/>
<location line="+18"/>
- <location line="+101"/>
+ <location line="+67"/>
+ <location line="+39"/>
<location line="+17"/>
<location line="+15"/>
- <location filename="../tools/linguist/linguist/phrase.cpp" line="+166"/>
+ <location filename="../tools/linguist/linguist/phrase.cpp" line="+196"/>
<source>Qt Linguist</source>
<translation>Qt Linguist</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/cpp.cpp" line="+1039"/>
+ <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="+624"/>
+ <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="+584"/>
+ <location filename="../tools/linguist/shared/po.cpp" line="+651"/>
<source>GNU Gettext localization files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/qscript.cpp" line="+2369"/>
+ <location filename="../tools/linguist/shared/qscript.cpp" line="+2399"/>
<source>Qt Script source files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/ts.cpp" line="+617"/>
+ <location filename="../tools/linguist/shared/ts.cpp" line="+752"/>
<source>Qt translation sources (format 1.1)</source>
<translation type="unfinished"></translation>
</message>
@@ -2079,11 +2092,11 @@ Line: %2</source>
</message>
<message>
<location line="+9"/>
- <source>Qt translation sources</source>
+ <source>Qt translation sources (latest format)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/ui.cpp" line="+171"/>
+ <location filename="../tools/linguist/shared/ui.cpp" line="+213"/>
<source>Qt Designer form files</source>
<translation type="unfinished"></translation>
</message>
@@ -2093,10 +2106,15 @@ Line: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/xliff.cpp" line="+778"/>
+ <location filename="../tools/linguist/shared/xliff.cpp" line="+817"/>
<source>XLIFF localization files</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../tools/linguist/shared/qph.cpp" line="+192"/>
+ <source>Qt Linguist &apos;Phrase Book&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QtWindowListMenu</name>
@@ -2127,7 +2145,7 @@ Line: %2</source>
<context>
<name>SourceCodeView</name>
<message>
- <location filename="../tools/linguist/linguist/sourcecodeview.cpp" line="+40"/>
+ <location filename="../tools/linguist/linguist/sourcecodeview.cpp" line="+70"/>
<source>&lt;i&gt;Source code not available&lt;/i&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -2688,7 +2706,7 @@ All files (*)</source>
<context>
<name>TranslationSettingsDialog</name>
<message>
- <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+38"/>
+ <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+68"/>
<source>Any Country</source>
<translation>指定しない</translation>
</message>
diff --git a/translations/linguist_pl.ts b/translations/linguist_pl.ts
index 12b98d5..efed849 100644
--- a/translations/linguist_pl.ts
+++ b/translations/linguist_pl.ts
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="pl">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="pl">
<context>
<name></name>
<message>
- <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+29"/>
+ <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+59"/>
<source>(New Entry)</source>
<translation>(Nowe wyrażenie)</translation>
</message>
@@ -12,7 +12,7 @@
<context>
<name>AboutDialog</name>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1318"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1357"/>
<source>Qt Linguist</source>
<translation>Qt Linguist</translation>
</message>
@@ -20,7 +20,7 @@
<context>
<name>BatchTranslationDialog</name>
<message numerus="yes">
- <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+129"/>
+ <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+159"/>
<source>Batch translated %n entries</source>
<translation>
<numerusform>Automat przetłumaczył %n wpis</numerusform>
@@ -112,7 +112,7 @@
<context>
<name>DataModel</name>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+184"/>
+ <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;Znaleziono powtórzenia w &apos;%1&apos;:</translation>
</message>
@@ -132,15 +132,26 @@
<translation>&lt;br&gt;* Komentarz: %3</translation>
</message>
<message>
- <location line="+121"/>
+ <location line="+70"/>
+ <source>Linguist does not know the plural rules for &apos;%1&apos;.
+Will assume a single universal form.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+56"/>
<source>Cannot create &apos;%2&apos;: %1</source>
<translation>Nie można utworzyć &apos;%2&apos;: %1</translation>
</message>
+ <message>
+ <location line="+56"/>
+ <source>Universal Form</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ErrorsView</name>
<message>
- <location filename="../tools/linguist/linguist/errorsview.cpp" line="+46"/>
+ <location filename="../tools/linguist/linguist/errorsview.cpp" line="+76"/>
<source>Accelerator possibly superfluous in translation.</source>
<translation>Prawdopodobnie nadmiarowy klawisz skrótu w tłumaczeniu.</translation>
</message>
@@ -277,7 +288,7 @@
<context>
<name>LRelease</name>
<message numerus="yes">
- <location filename="../tools/linguist/shared/qm.cpp" line="+653"/>
+ <location filename="../tools/linguist/shared/qm.cpp" line="+715"/>
<source> Generated %n translation(s) (%1 finished and %2 unfinished)
</source>
<translation>
@@ -406,9 +417,8 @@
<translation>Ctrl+K</translation>
</message>
<message>
- <location/>
<source>Ctrl+L</source>
- <translation>Ctrl+L</translation>
+ <translation type="obsolete">Ctrl+L</translation>
</message>
<message>
<location/>
@@ -451,9 +461,8 @@
<translation>Ctrl+Shift+K</translation>
</message>
<message>
- <location/>
<source>Ctrl+Shift+L</source>
- <translation>Ctrl+Shift+L</translation>
+ <translation type="obsolete">Ctrl+Shift+L</translation>
</message>
<message>
<location/>
@@ -676,13 +685,13 @@
<translation>Zamienia tłumaczenia we wszystkich pasujących do wzorca wpisach.</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1965"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2004"/>
<source></source>
<comment>This is the application&apos;s main window.</comment>
<translation></translation>
</message>
<message>
- <location line="+165"/>
+ <location line="+195"/>
<source>Source text</source>
<translation>Tekst źródłowy</translation>
</message>
@@ -735,18 +744,18 @@
<translation> MOD </translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<source>Loading...</source>
<translation>Ładowanie...</translation>
</message>
<message>
+ <location line="+32"/>
<location line="+22"/>
- <location line="+20"/>
<source>Loading File - Qt Linguist</source>
<translation>Wczytywanie pliku - Qt Linguist</translation>
</message>
<message>
- <location line="-19"/>
+ <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>
@@ -755,7 +764,7 @@ Close the open file(s) first?</source>
Czy chcesz najpierw zamknąć otwarty plik (pliki)?</translation>
</message>
<message>
- <location line="+20"/>
+ <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>
@@ -764,7 +773,7 @@ Skip loading the first named file?</source>
Czy chcesz pominąć pierwszy plik?</translation>
</message>
<message numerus="yes">
- <location line="+49"/>
+ <location line="+61"/>
<source>%n translation unit(s) loaded.</source>
<translation>
<numerusform>Załadowano %n część z tłumaczeniami.</numerusform>
@@ -773,7 +782,7 @@ Czy chcesz pominąć pierwszy plik?</translation>
</translation>
</message>
<message>
- <location line="+92"/>
+ <location line="+93"/>
<source>Related files (%1);;</source>
<translation>Związane pliki (%1);;</translation>
</message>
@@ -783,20 +792,20 @@ Czy chcesz pominąć pierwszy plik?</translation>
<translation>Otwórz pliki z tłumaczeniami</translation>
</message>
<message>
- <location line="+9"/>
- <location line="+30"/>
+ <location line="+10"/>
+ <location line="+31"/>
<source>File saved.</source>
<translation>Plik zachowany.</translation>
</message>
<message>
- <location line="+14"/>
- <location line="+1184"/>
+ <location line="+15"/>
+ <location line="+1164"/>
<location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Release</source>
<translation>Wydaj</translation>
</message>
<message>
- <location line="-1183"/>
+ <location line="-1163"/>
<source>Qt message files for released applications (*.qm)
All files (*)</source>
<translation>Pliki z wydanymi tłumaczeniami (*.qm)
@@ -860,7 +869,7 @@ Wszystkie pliki (*)</translation>
<message>
<location line="+17"/>
<location line="+278"/>
- <location line="+60"/>
+ <location line="+40"/>
<location line="+24"/>
<location line="+22"/>
<location line="+516"/>
@@ -872,7 +881,7 @@ Wszystkie pliki (*)</translation>
<translation>Qt Linguist</translation>
</message>
<message>
- <location line="-1224"/>
+ <location line="-1204"/>
<location line="+102"/>
<source>Cannot find the string &apos;%1&apos;.</source>
<translation>Nie można znaleźć tekstu &apos;%1&apos;.</translation>
@@ -984,27 +993,19 @@ Wszystkie pliki (*)</translation>
<translation>Wersja %1</translation>
</message>
<message>
- <location line="+2"/>
<source> Open Source Edition</source>
- <translation> Wydanie Open Source</translation>
+ <translation type="obsolete"> Wydanie Open Source</translation>
</message>
<message>
- <location line="+7"/>
<source>This version of Qt Linguist is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;tt&gt;http://qtsoftware.com/company/model.html&lt;/tt&gt; for an overview of Qt licensing.</source>
- <translation type="unfinished">Ta wersja Qt Linguist jest częścią wydania Qt Open Source, przeznaczonego do tworzenia aplikacji Open Source. Qt zawiera obszerny zestaw bibliotek wykorzystywanych do pisania przenośnych aplikacji.&lt;br/&gt;&lt;br/&gt;Aby móc tworzyć przy pomocy Qt własne aplikacje bez publikowania kodu (closed source) potrzebujesz wydania komercyjnego. Opis sposobów licencjonowania Qt znajduje się na stronie &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;qtsoftware.com/company/model.html&lt;/a&gt;.</translation>
+ <translation type="obsolete">Ta wersja Qt Linguist jest częścią wydania Qt Open Source, przeznaczonego do tworzenia aplikacji Open Source. Qt zawiera obszerny zestaw bibliotek wykorzystywanych do pisania przenośnych aplikacji.&lt;br/&gt;&lt;br/&gt;Aby móc tworzyć przy pomocy Qt własne aplikacje bez publikowania kodu (closed source) potrzebujesz wydania komercyjnego. Opis sposobów licencjonowania Qt znajduje się na stronie &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;qtsoftware.com/company/model.html&lt;/a&gt;.</translation>
</message>
<message>
- <location line="+8"/>
- <source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+4"/>
<source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation type="unfinished">Ten program wydany jest na licencji Qt Commercial. Aby sprawdzić szczegóły licencji, proszę sprawdzić plik LICENSE, który dołączany jest do pakietu Qt.</translation>
+ <translation type="obsolete">Ten program wydany jest na licencji Qt Commercial. Aby sprawdzić szczegóły licencji, proszę sprawdzić plik LICENSE, który dołączany jest do pakietu Qt.</translation>
</message>
<message>
- <location line="+5"/>
+ <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) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -1170,7 +1171,7 @@ Wszystkie pliki (*)</translation>
<translation>Czy chcesz zachować książke wyrażeń &apos;%1&apos;?</translation>
</message>
<message>
- <location line="+312"/>
+ <location line="+314"/>
<source>All</source>
<translation>Wszystko</translation>
</message>
@@ -1240,7 +1241,7 @@ Wszystkie pliki (*)</translation>
<translation>&amp;Tłumaczenie</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-459"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-461"/>
<location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Translation</source>
<translation>Tłumaczenie</translation>
@@ -1468,11 +1469,21 @@ Wszystkie pliki (*)</translation>
<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>Przełącz sprawdzanie zgodności znaczników, tzn. czy: %1, %2, ... są spójnie użyte w tekście źródłowym i tłumaczeniu. W przypadku niezgodności pojawia się komunikat w oknie z ostrzeżeniami.</translation>
</message>
+ <message>
+ <location/>
+ <source>Ctrl+J</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Shift+J</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>MessageEditor</name>
<message>
- <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+42"/>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+72"/>
<source>German</source>
<translation>Niemieckie</translation>
</message>
@@ -1567,7 +1578,7 @@ Linia: %2</translation>
<context>
<name>MessageModel</name>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+861"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+832"/>
<source>Completion status for %1</source>
<translation>Stan ukończenia dla %1</translation>
</message>
@@ -1590,7 +1601,7 @@ Linia: %2</translation>
<context>
<name>MsgEdit</name>
<message>
- <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-547"/>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-577"/>
<source></source>
<comment>This is the right panel of the main window.</comment>
<translation></translation>
@@ -1699,7 +1710,7 @@ Linia: %2</translation>
<translation>&amp;Tłumaczenie:</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-113"/>
+ <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-143"/>
<source></source>
<comment>Go to Phrase &gt; Edit Phrase Book... The dialog that pops up is a PhraseBookBox.</comment>
<translation></translation>
@@ -1708,7 +1719,7 @@ Linia: %2</translation>
<context>
<name>PhraseModel</name>
<message>
- <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+91"/>
+ <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+121"/>
<source>Definition</source>
<translation>Definicja</translation>
</message>
@@ -1726,7 +1737,7 @@ Linia: %2</translation>
<context>
<name>PhraseView</name>
<message>
- <location filename="../tools/linguist/linguist/phraseview.cpp" line="+91"/>
+ <location filename="../tools/linguist/linguist/phraseview.cpp" line="+121"/>
<source>Insert</source>
<translation>Wstaw</translation>
</message>
@@ -1754,7 +1765,7 @@ Linia: %2</translation>
<translation>Skompilowane tłumaczenia Qt</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1296"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1279"/>
<source>Translation files (%1);;</source>
<translation>Pliki z tłumaczeniami (%1);;</translation>
</message>
@@ -1764,37 +1775,38 @@ Linia: %2</translation>
<translation>Wszystkie pliki (*)</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1086"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1118"/>
<location line="+18"/>
- <location line="+101"/>
+ <location line="+67"/>
+ <location line="+39"/>
<location line="+17"/>
<location line="+15"/>
- <location filename="../tools/linguist/linguist/phrase.cpp" line="+166"/>
+ <location filename="../tools/linguist/linguist/phrase.cpp" line="+196"/>
<source>Qt Linguist</source>
<translation>Qt Linguist</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/cpp.cpp" line="+1039"/>
+ <location filename="../tools/linguist/shared/cpp.cpp" line="+1072"/>
<source>C++ source files</source>
<translation>Pliki źródłowe C++</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/java.cpp" line="+624"/>
+ <location filename="../tools/linguist/shared/java.cpp" line="+646"/>
<source>Java source files</source>
<translation>Pliki źródłowe Java</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/po.cpp" line="+584"/>
+ <location filename="../tools/linguist/shared/po.cpp" line="+651"/>
<source>GNU Gettext localization files</source>
<translation>Pliki GNU Gettext</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/qscript.cpp" line="+2369"/>
+ <location filename="../tools/linguist/shared/qscript.cpp" line="+2399"/>
<source>Qt Script source files</source>
<translation>Pliki źródłowe Qt Script</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/ts.cpp" line="+617"/>
+ <location filename="../tools/linguist/shared/ts.cpp" line="+752"/>
<source>Qt translation sources (format 1.1)</source>
<translation>Źródła tlumaczeń Qt (format 1.1)</translation>
</message>
@@ -1805,11 +1817,15 @@ Linia: %2</translation>
</message>
<message>
<location line="+9"/>
+ <source>Qt translation sources (latest format)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Qt translation sources</source>
- <translation>Źródła tlumaczeń Qt</translation>
+ <translation type="obsolete">Źródła tlumaczeń Qt</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/ui.cpp" line="+171"/>
+ <location filename="../tools/linguist/shared/ui.cpp" line="+213"/>
<source>Qt Designer form files</source>
<translation>Pliki z formularzami Qt Designer</translation>
</message>
@@ -1819,15 +1835,20 @@ Linia: %2</translation>
<translation>Pliki z formularzami Qt Jambi</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/xliff.cpp" line="+778"/>
+ <location filename="../tools/linguist/shared/xliff.cpp" line="+817"/>
<source>XLIFF localization files</source>
<translation>Pliki XLIFF</translation>
</message>
+ <message>
+ <location filename="../tools/linguist/shared/qph.cpp" line="+192"/>
+ <source>Qt Linguist &apos;Phrase Book&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>SourceCodeView</name>
<message>
- <location filename="../tools/linguist/linguist/sourcecodeview.cpp" line="+40"/>
+ <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;Kod źródłowy nie jest dostępny&lt;/i&gt;</translation>
</message>
@@ -1970,7 +1991,7 @@ Linia: %2</translation>
<context>
<name>TranslationSettingsDialog</name>
<message>
- <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+38"/>
+ <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+68"/>
<source>Any Country</source>
<translation>Dowolny kraj</translation>
</message>
diff --git a/translations/linguist_untranslated.ts b/translations/linguist_untranslated.ts
index 5690378..ae3ff20 100644
--- a/translations/linguist_untranslated.ts
+++ b/translations/linguist_untranslated.ts
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0">
+<!DOCTYPE TS>
+<TS version="2.0">
<context>
<name></name>
<message>
- <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+29"/>
+ <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+59"/>
<source>(New Entry)</source>
<translation type="unfinished"></translation>
</message>
@@ -11,7 +12,7 @@
<context>
<name>AboutDialog</name>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1318"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1357"/>
<source>Qt Linguist</source>
<translation type="unfinished"></translation>
</message>
@@ -19,7 +20,7 @@
<context>
<name>BatchTranslationDialog</name>
<message>
- <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+49"/>
+ <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+79"/>
<source>Batch Translation of &apos;%1&apos; - Qt Linguist</source>
<translation type="unfinished"></translation>
</message>
@@ -109,7 +110,7 @@
<context>
<name>DataModel</name>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+184"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+214"/>
<source>&lt;qt&gt;Duplicate messages found in &apos;%1&apos;:</source>
<translation type="unfinished"></translation>
</message>
@@ -129,15 +130,26 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+121"/>
+ <location line="+70"/>
+ <source>Linguist does not know the plural rules for &apos;%1&apos;.
+Will assume a single universal form.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+56"/>
<source>Cannot create &apos;%2&apos;: %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+56"/>
+ <source>Universal Form</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ErrorsView</name>
<message>
- <location filename="../tools/linguist/linguist/errorsview.cpp" line="+46"/>
+ <location filename="../tools/linguist/linguist/errorsview.cpp" line="+76"/>
<source>Accelerator possibly superfluous in translation.</source>
<translation type="unfinished"></translation>
</message>
@@ -274,7 +286,7 @@
<context>
<name>LRelease</name>
<message numerus="yes">
- <location filename="../tools/linguist/shared/qm.cpp" line="+653"/>
+ <location filename="../tools/linguist/shared/qm.cpp" line="+715"/>
<source> Generated %n translation(s) (%1 finished and %2 unfinished)
</source>
<translation type="unfinished">
@@ -572,11 +584,6 @@
</message>
<message>
<location/>
- <source>Ctrl+L</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location/>
<source>P&amp;rev</source>
<translation type="unfinished"></translation>
</message>
@@ -592,11 +599,6 @@
</message>
<message>
<location/>
- <source>Ctrl+Shift+L</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location/>
<source>&amp;Done and Next</source>
<translation type="unfinished"></translation>
</message>
@@ -743,13 +745,13 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1965"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2004"/>
<source></source>
<comment>This is the application&apos;s main window.</comment>
<translation></translation>
</message>
<message>
- <location line="+165"/>
+ <location line="+195"/>
<source>Source text</source>
<translation type="unfinished"></translation>
</message>
@@ -802,39 +804,39 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<source>Loading...</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+32"/>
<location line="+22"/>
- <location line="+20"/>
<source>Loading File - Qt Linguist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-19"/>
+ <location line="-21"/>
<source>The file &apos;%1&apos; does not seem to be related to the currently open file(s) &apos;%2&apos;.
Close the open file(s) first?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+20"/>
+ <location line="+22"/>
<source>The file &apos;%1&apos; does not seem to be related to the file &apos;%2&apos; which is being loaded as well.
Skip loading the first named file?</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location line="+49"/>
+ <location line="+61"/>
<source>%n translation unit(s) loaded.</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message>
- <location line="+92"/>
+ <location line="+93"/>
<source>Related files (%1);;</source>
<translation type="unfinished"></translation>
</message>
@@ -844,20 +846,20 @@ Skip loading the first named file?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+9"/>
- <location line="+30"/>
+ <location line="+10"/>
+ <location line="+31"/>
<source>File saved.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+14"/>
- <location line="+1184"/>
+ <location line="+15"/>
+ <location line="+1164"/>
<location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Release</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-1183"/>
+ <location line="-1163"/>
<source>Qt message files for released applications (*.qm)
All files (*)</source>
<translation type="unfinished"></translation>
@@ -920,7 +922,7 @@ All files (*)</source>
<message>
<location line="+17"/>
<location line="+278"/>
- <location line="+60"/>
+ <location line="+40"/>
<location line="+24"/>
<location line="+22"/>
<location line="+516"/>
@@ -932,7 +934,7 @@ All files (*)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-1224"/>
+ <location line="-1204"/>
<location line="+102"/>
<source>Cannot find the string &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
@@ -1027,27 +1029,7 @@ All files (*)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
- <source> Open Source Edition</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+7"/>
- <source>This version of Qt Linguist is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;tt&gt;http://qtsoftware.com/company/model.html&lt;/tt&gt; for an overview of Qt licensing.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+8"/>
- <source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+4"/>
- <source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+5"/>
+ <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) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -1230,7 +1212,7 @@ All files (*)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+312"/>
+ <location line="+314"/>
<source>All</source>
<translation type="unfinished"></translation>
</message>
@@ -1410,7 +1392,7 @@ All files (*)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-524"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-526"/>
<location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>&amp;Batch Translation...</source>
<translation type="unfinished"></translation>
@@ -1431,11 +1413,21 @@ All files (*)</source>
<source>Ctrl+T</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location/>
+ <source>Ctrl+J</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Shift+J</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>MessageEditor</name>
<message>
- <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+42"/>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+72"/>
<source>German</source>
<translation type="unfinished"></translation>
</message>
@@ -1529,7 +1521,7 @@ Line: %2</source>
<context>
<name>MessageModel</name>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+861"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+832"/>
<source>Completion status for %1</source>
<translation type="unfinished"></translation>
</message>
@@ -1552,7 +1544,7 @@ Line: %2</source>
<context>
<name>MsgEdit</name>
<message>
- <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-547"/>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-577"/>
<source></source>
<comment>This is the right panel of the main window.</comment>
<translation></translation>
@@ -1661,7 +1653,7 @@ Line: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-114"/>
+ <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-144"/>
<source></source>
<comment>Go to Phrase &gt; Edit Phrase Book... The dialog that pops up is a PhraseBookBox.</comment>
<translation></translation>
@@ -1670,7 +1662,7 @@ Line: %2</source>
<context>
<name>PhraseModel</name>
<message>
- <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+87"/>
+ <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+117"/>
<source>Source phrase</source>
<translation type="unfinished"></translation>
</message>
@@ -1688,7 +1680,7 @@ Line: %2</source>
<context>
<name>PhraseView</name>
<message>
- <location filename="../tools/linguist/linguist/phraseview.cpp" line="+91"/>
+ <location filename="../tools/linguist/linguist/phraseview.cpp" line="+121"/>
<source>Insert</source>
<translation type="unfinished"></translation>
</message>
@@ -1716,7 +1708,7 @@ Line: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1296"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1279"/>
<source>Translation files (%1);;</source>
<translation type="unfinished"></translation>
</message>
@@ -1726,37 +1718,38 @@ Line: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1086"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1118"/>
<location line="+18"/>
- <location line="+101"/>
+ <location line="+67"/>
+ <location line="+39"/>
<location line="+17"/>
<location line="+15"/>
- <location filename="../tools/linguist/linguist/phrase.cpp" line="+166"/>
+ <location filename="../tools/linguist/linguist/phrase.cpp" line="+196"/>
<source>Qt Linguist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/cpp.cpp" line="+1039"/>
+ <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="+624"/>
+ <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="+584"/>
+ <location filename="../tools/linguist/shared/po.cpp" line="+651"/>
<source>GNU Gettext localization files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/qscript.cpp" line="+2369"/>
+ <location filename="../tools/linguist/shared/qscript.cpp" line="+2399"/>
<source>Qt Script source files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/ts.cpp" line="+617"/>
+ <location filename="../tools/linguist/shared/ts.cpp" line="+752"/>
<source>Qt translation sources (format 1.1)</source>
<translation type="unfinished"></translation>
</message>
@@ -1767,11 +1760,11 @@ Line: %2</source>
</message>
<message>
<location line="+9"/>
- <source>Qt translation sources</source>
+ <source>Qt translation sources (latest format)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/ui.cpp" line="+171"/>
+ <location filename="../tools/linguist/shared/ui.cpp" line="+213"/>
<source>Qt Designer form files</source>
<translation type="unfinished"></translation>
</message>
@@ -1781,15 +1774,20 @@ Line: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/linguist/shared/xliff.cpp" line="+778"/>
+ <location filename="../tools/linguist/shared/xliff.cpp" line="+817"/>
<source>XLIFF localization files</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../tools/linguist/shared/qph.cpp" line="+192"/>
+ <source>Qt Linguist &apos;Phrase Book&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>SourceCodeView</name>
<message>
- <location filename="../tools/linguist/linguist/sourcecodeview.cpp" line="+40"/>
+ <location filename="../tools/linguist/linguist/sourcecodeview.cpp" line="+70"/>
<source>&lt;i&gt;Source code not available&lt;/i&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -1932,7 +1930,7 @@ Line: %2</source>
<context>
<name>TranslationSettingsDialog</name>
<message>
- <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+38"/>
+ <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+68"/>
<source>Any Country</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/linguist_zh_CN.ts b/translations/linguist_zh_CN.ts
index a9ecdb6..3a81543 100644
--- a/translations/linguist_zh_CN.ts
+++ b/translations/linguist_zh_CN.ts
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="zh">
-<defaultcodec></defaultcodec>
<context>
<name></name>
<message>
@@ -9,7 +8,7 @@
<translation type="obsolete">(新短语)</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+29"/>
+ <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+59"/>
<source>(New Entry)</source>
<translation>(新条目)</translation>
</message>
@@ -17,7 +16,7 @@
<context>
<name>AboutDialog</name>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1318"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1357"/>
<source>Qt Linguist</source>
<translation>Qt 语言家</translation>
</message>
@@ -25,7 +24,7 @@
<context>
<name>BatchTranslationDialog</name>
<message numerus="yes">
- <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+129"/>
+ <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+159"/>
<source>Batch translated %n entries</source>
<translation>
<numerusform>已经批翻译 %n 个条目</numerusform>
@@ -115,7 +114,7 @@
<context>
<name>DataModel</name>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+184"/>
+ <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;在“%1”中找到的重复信息:</translation>
</message>
@@ -135,10 +134,21 @@
<translation>&lt;br&gt;* 注释:%3</translation>
</message>
<message>
- <location line="+121"/>
+ <location line="+70"/>
+ <source>Linguist does not know the plural rules for &apos;%1&apos;.
+Will assume a single universal form.</source>
+ <translation type="unfinished"></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 type="unfinished"></translation>
+ </message>
</context>
<context>
<name>EditorPage</name>
@@ -198,7 +208,7 @@
<context>
<name>ErrorsView</name>
<message>
- <location filename="../tools/linguist/linguist/errorsview.cpp" line="+46"/>
+ <location filename="../tools/linguist/linguist/errorsview.cpp" line="+76"/>
<source>Accelerator possibly superfluous in translation.</source>
<translation>译文中可能加速键过多。</translation>
</message>
@@ -342,7 +352,7 @@
<context>
<name>LRelease</name>
<message numerus="yes">
- <location filename="../tools/linguist/shared/qm.cpp" line="+653"/>
+ <location filename="../tools/linguist/shared/qm.cpp" line="+715"/>
<source> Generated %n translation(s) (%1 finished and %2 unfinished)
</source>
<translation>
@@ -538,9 +548,8 @@ p, li { white-space: pre-wrap; }
<translation>Ctrl+K</translation>
</message>
<message>
- <location/>
<source>Ctrl+L</source>
- <translation>Ctrl+L</translation>
+ <translation type="obsolete">Ctrl+L</translation>
</message>
<message>
<location/>
@@ -583,9 +592,8 @@ p, li { white-space: pre-wrap; }
<translation>Ctrl+Shift+K</translation>
</message>
<message>
- <location/>
<source>Ctrl+Shift+L</source>
- <translation>Ctrl+Shift+L</translation>
+ <translation type="obsolete">Ctrl+Shift+L</translation>
</message>
<message>
<location/>
@@ -816,13 +824,13 @@ p, li { white-space: pre-wrap; }
<translation>替换所有和搜索的源文匹配的条目的译文。</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1965"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2004"/>
<source></source>
<comment>This is the application&apos;s main window.</comment>
<translation></translation>
</message>
<message>
- <location line="+165"/>
+ <location line="+195"/>
<source>Source text</source>
<translation>源文</translation>
</message>
@@ -875,18 +883,18 @@ p, li { white-space: pre-wrap; }
<translation>已修改</translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<source>Loading...</source>
<translation>正在载入...</translation>
</message>
<message>
+ <location line="+32"/>
<location line="+22"/>
- <location line="+20"/>
<source>Loading File - Qt Linguist</source>
<translation>正在载入文件 - Qt 语言家</translation>
</message>
<message>
- <location line="-19"/>
+ <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>
@@ -895,7 +903,7 @@ Close the open file(s) first?</source>
要将打开的文件先关闭么?</translation>
</message>
<message>
- <location line="+20"/>
+ <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>
@@ -904,14 +912,14 @@ Skip loading the first named file?</source>
要跳过对第一个文件的加载么?</translation>
</message>
<message numerus="yes">
- <location line="+49"/>
+ <location line="+61"/>
<source>%n translation unit(s) loaded.</source>
<translation>
<numerusform>%n 个翻译单元已经被加载。</numerusform>
</translation>
</message>
<message>
- <location line="+92"/>
+ <location line="+93"/>
<source>Related files (%1);;</source>
<translation>相关文件(%1);;</translation>
</message>
@@ -921,20 +929,20 @@ Skip loading the first named file?</source>
<translation>打开翻译文件</translation>
</message>
<message>
- <location line="+9"/>
- <location line="+30"/>
+ <location line="+10"/>
+ <location line="+31"/>
<source>File saved.</source>
<translation>文件已保存。</translation>
</message>
<message>
- <location line="+14"/>
- <location line="+1184"/>
+ <location line="+15"/>
+ <location line="+1164"/>
<location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Release</source>
<translation>发布</translation>
</message>
<message>
- <location line="-1183"/>
+ <location line="-1163"/>
<source>Qt message files for released applications (*.qm)
All files (*)</source>
<translation>用于发布应用程序的 Qt 消息文件 (*.qm)
@@ -998,7 +1006,7 @@ All files (*)</source>
<message>
<location line="+17"/>
<location line="+278"/>
- <location line="+60"/>
+ <location line="+40"/>
<location line="+24"/>
<location line="+22"/>
<location line="+516"/>
@@ -1010,7 +1018,7 @@ All files (*)</source>
<translation>Qt 语言家</translation>
</message>
<message>
- <location line="-1224"/>
+ <location line="-1204"/>
<location line="+102"/>
<source>Cannot find the string &apos;%1&apos;.</source>
<translation>无法找到字符串“%1”。</translation>
@@ -1116,27 +1124,23 @@ All files (*)</source>
<translation>%1 版本</translation>
</message>
<message>
- <location line="+2"/>
<source> Open Source Edition</source>
- <translation>开源版本</translation>
+ <translation type="obsolete">开源版本</translation>
</message>
<message>
- <location line="+7"/>
<source>This version of Qt Linguist is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;tt&gt;http://qtsoftware.com/company/model.html&lt;/tt&gt; for an overview of Qt licensing.</source>
- <translation>这个版本的 Qt 语言家是 Qt 开源版本的一部分,用于开发开源应用程序。Qt 是一个用于跨平台应用程序开发的综合 C++ 框架。&lt;br/&gt;&lt;br/&gt;开发商业(闭源)应用程序,你需要商业 Qt 许可。对于 Qt 许可的概览,请参考&lt;tt&gt;http://qtsoftware.com/company/model.html&lt;/tt&gt;。</translation>
+ <translation type="obsolete">这个版本的 Qt 语言家是 Qt 开源版本的一部分,用于开发开源应用程序。Qt 是一个用于跨平台应用程序开发的综合 C++ 框架。&lt;br/&gt;&lt;br/&gt;开发商业(闭源)应用程序,你需要商业 Qt 许可。对于 Qt 许可的概览,请参考&lt;tt&gt;http://qtsoftware.com/company/model.html&lt;/tt&gt;。</translation>
</message>
<message>
- <location line="+8"/>
<source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.</source>
- <translation>我们已经允许您在 Qt %1 许可协议下使用本程序。有关细节,请阅读本软件发行中所带的协议文件。</translation>
+ <translation type="obsolete">我们已经允许您在 Qt %1 许可协议下使用本程序。有关细节,请阅读本软件发行中所带的协议文件。</translation>
</message>
<message>
- <location line="+4"/>
<source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation>我们已经允许您在 Qt 商业许可协议下使用本程序。有关细节,请阅读本软件发行中所带的 LICENSE 文件。</translation>
+ <translation type="obsolete">我们已经允许您在 Qt 商业许可协议下使用本程序。有关细节,请阅读本软件发行中所带的 LICENSE 文件。</translation>
</message>
<message>
- <location line="+5"/>
+ <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) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;/p&gt;</source>
<translation>&lt;center&gt;&lt;img src=&quot;:/images/splash.png&quot;/&gt;&lt;/img&gt;&lt;p&gt;%1&lt;/p&gt;&lt;/center&gt;&lt;p&gt;Qt 语言家是一个用于为 Qt 应用程序添加翻译的工具。&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;版权所有 (C) 2000-$THISYEAR$ Nokia公司和/或它的子公司。所有权利已被保留。&lt;/p&gt;&lt;p&gt;本程序是在&lt;b&gt;没有任何担保(其中包括任何特定目的的设计、商业和适当性的担保)&lt;/b&gt;的条件下提供的。&lt;/p&gt;</translation>
</message>
@@ -1302,7 +1306,7 @@ All files (*)</source>
<translation>是否保存短语书&apos;%1&apos;?</translation>
</message>
<message>
- <location line="+312"/>
+ <location line="+314"/>
<source>All</source>
<translation>全部</translation>
</message>
@@ -1376,7 +1380,7 @@ All files (*)</source>
<translation>译文(&amp;T)</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-459"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-461"/>
<location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Translation</source>
<translation>译文</translation>
@@ -1624,6 +1628,16 @@ All files (*)</source>
<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>Ctrl+J</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Shift+J</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>MessageEditor</name>
@@ -1652,7 +1666,7 @@ All files (*)</source>
<translation type="obsolete">制表符</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+42"/>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+72"/>
<source>German</source>
<translation>德语</translation>
</message>
@@ -1762,7 +1776,7 @@ Line: %2</source>
<translation type="obsolete">索引</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+861"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+832"/>
<source>Completion status for %1</source>
<translation>%1 的完成状态</translation>
</message>
@@ -1792,7 +1806,7 @@ Line: %2</source>
<context>
<name>MsgEdit</name>
<message>
- <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-549"/>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-579"/>
<source></source>
<comment>This is the right panel of the main window.</comment>
<translation></translation>
@@ -1801,13 +1815,13 @@ Line: %2</source>
<context>
<name>PhraseBookBox</name>
<message>
- <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-17"/>
+ <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-47"/>
<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="+25"/>
+ <location line="+55"/>
<source>%1[*] - Qt Linguist</source>
<translation>%1[*] - Qt 语言家</translation>
</message>
@@ -1930,7 +1944,7 @@ Line: %2</source>
<context>
<name>PhraseModel</name>
<message>
- <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+91"/>
+ <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+121"/>
<source>Definition</source>
<translation>准确度</translation>
</message>
@@ -1948,7 +1962,7 @@ Line: %2</source>
<context>
<name>PhraseView</name>
<message>
- <location filename="../tools/linguist/linguist/phraseview.cpp" line="+91"/>
+ <location filename="../tools/linguist/linguist/phraseview.cpp" line="+121"/>
<source>Insert</source>
<translation>插入</translation>
</message>
@@ -1976,7 +1990,7 @@ Line: %2</source>
<translation>已编译的 Qt 翻译</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1296"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1279"/>
<source>Translation files (%1);;</source>
<translation>翻译文件(%1);;</translation>
</message>
@@ -1986,37 +2000,38 @@ Line: %2</source>
<translation>全部文件(*)</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1086"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1118"/>
<location line="+18"/>
- <location line="+101"/>
+ <location line="+67"/>
+ <location line="+39"/>
<location line="+17"/>
<location line="+15"/>
- <location filename="../tools/linguist/linguist/phrase.cpp" line="+166"/>
+ <location filename="../tools/linguist/linguist/phrase.cpp" line="+196"/>
<source>Qt Linguist</source>
<translation>Qt 语言家</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/cpp.cpp" line="+1039"/>
+ <location filename="../tools/linguist/shared/cpp.cpp" line="+1072"/>
<source>C++ source files</source>
<translation>C++源文件</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/java.cpp" line="+624"/>
+ <location filename="../tools/linguist/shared/java.cpp" line="+646"/>
<source>Java source files</source>
<translation>Java源文件</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/po.cpp" line="+584"/>
+ <location filename="../tools/linguist/shared/po.cpp" line="+651"/>
<source>GNU Gettext localization files</source>
<translation>GNU Gettext 本地化文件</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/qscript.cpp" line="+2369"/>
+ <location filename="../tools/linguist/shared/qscript.cpp" line="+2399"/>
<source>Qt Script source files</source>
<translation>Qt脚本源文件</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/ts.cpp" line="+617"/>
+ <location filename="../tools/linguist/shared/ts.cpp" line="+752"/>
<source>Qt translation sources (format 1.1)</source>
<translation>Qt翻译源(格式1.1)</translation>
</message>
@@ -2027,11 +2042,15 @@ Line: %2</source>
</message>
<message>
<location line="+9"/>
+ <source>Qt translation sources (latest format)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Qt translation sources</source>
- <translation>Qt翻译源</translation>
+ <translation type="obsolete">Qt翻译源</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/ui.cpp" line="+171"/>
+ <location filename="../tools/linguist/shared/ui.cpp" line="+213"/>
<source>Qt Designer form files</source>
<translation>Qt设计师表单文件</translation>
</message>
@@ -2041,10 +2060,15 @@ Line: %2</source>
<translation>Qt Jambi表单文件</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/xliff.cpp" line="+778"/>
+ <location filename="../tools/linguist/shared/xliff.cpp" line="+817"/>
<source>XLIFF localization files</source>
<translation>XLIFF 本地化文件</translation>
</message>
+ <message>
+ <location filename="../tools/linguist/shared/qph.cpp" line="+192"/>
+ <source>Qt Linguist &apos;Phrase Book&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QtWindowListMenu</name>
@@ -2083,7 +2107,7 @@ Line: %2</source>
<context>
<name>SourceCodeView</name>
<message>
- <location filename="../tools/linguist/linguist/sourcecodeview.cpp" line="+40"/>
+ <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>
@@ -2651,7 +2675,7 @@ XLIFF 本地化文件 (*.xlf)
<context>
<name>TranslationSettingsDialog</name>
<message>
- <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+38"/>
+ <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+68"/>
<source>Any Country</source>
<translation>任意国家</translation>
</message>
diff --git a/translations/linguist_zh_TW.ts b/translations/linguist_zh_TW.ts
index 47aff95..7bb7e57 100644
--- a/translations/linguist_zh_TW.ts
+++ b/translations/linguist_zh_TW.ts
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="zh_TW">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_TW">
<context>
<name></name>
<message>
@@ -8,7 +8,7 @@
<translation type="obsolete">(新片語)</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="29"/>
+ <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+59"/>
<source>(New Entry)</source>
<translation>(新項目)</translation>
</message>
@@ -23,7 +23,7 @@
<context>
<name>AboutDialog</name>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="1318"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1357"/>
<source>Qt Linguist</source>
<translation>Qt 語言家</translation>
</message>
@@ -31,73 +31,89 @@
<context>
<name>BatchTranslationDialog</name>
<message>
- <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="49"/>
+ <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+79"/>
<source>Batch Translation of &apos;%1&apos; - Qt Linguist</source>
<translation>批次翻譯 %1 ─ Qt 語言家</translation>
</message>
<message>
+ <location line="+37"/>
<source>Searching, please wait...</source>
<translation>搜尋中,請稍候...</translation>
</message>
<message>
+ <location line="+0"/>
<source>&amp;Cancel</source>
<translation>取消(&amp;C)</translation>
</message>
<message>
+ <location line="+42"/>
<source>Linguist batch translator</source>
<translation>語言家批次翻譯器</translation>
</message>
<message numerus="yes">
+ <location line="+1"/>
<source>Batch translated %n entries</source>
<translation>
<numerusform>已批次翻譯 %n 個條目</numerusform>
</translation>
</message>
<message>
+ <location filename="../tools/linguist/linguist/batchtranslation.ui"/>
<source>Qt Linguist - Batch Translation</source>
<translation>Qt 語言家─批次翻譯</translation>
</message>
<message>
+ <location/>
<source>Options</source>
<translation>選項</translation>
</message>
<message>
+ <location/>
<source>Set translated entries to finished</source>
<translation>將已翻譯條目設為完成</translation>
</message>
<message>
+ <location/>
<source>Retranslate entries with existing translation</source>
<translation>以現有的翻譯來重新翻譯項目</translation>
</message>
<message>
+ <location/>
<source>Note that the modified entries will be reset to unfinished if &apos;Set translated entries to finished&apos; above is unchecked.</source>
<translation>注意,若上述的「將已翻譯條目設為完成」未被勾選,則變更的項目將會設為「未完成」。</translation>
</message>
<message>
+ <location/>
<source>Translate also finished entries</source>
<translation>也對已完成的項目做翻譯</translation>
</message>
<message>
+ <location/>
<source>Phrase book preference</source>
<translation>片語書喜好設定</translation>
</message>
<message>
+ <location/>
<source>Move up</source>
<translation>上移</translation>
</message>
<message>
+ <location/>
<source>Move down</source>
<translation>下移</translation>
</message>
<message>
+ <location/>
<source>The batch translator will search through the selected phrase books in the order given above.</source>
<translation>批次翻譯器會依指定的順序搜尋選取的片語書。</translation>
</message>
<message>
+ <location/>
<source>&amp;Run</source>
<translation>執行(&amp;R)</translation>
</message>
<message>
+ <location/>
<source>Cancel</source>
<translation>取消</translation>
</message>
@@ -105,26 +121,41 @@
<context>
<name>DataModel</name>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="184"/>
+ <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;複製在 %1 找到的訊息:</translation>
</message>
<message>
+ <location line="+4"/>
<source>&lt;p&gt;[more duplicates omitted]</source>
<translation>&lt;p&gt;[省略更多複製]</translation>
</message>
<message>
+ <location line="+3"/>
<source>&lt;p&gt;* Context: %1&lt;br&gt;* Source: %2</source>
<translation>&lt;p&gt;* 內文:%1&lt;br&gt;* 源碼:%2</translation>
</message>
<message>
+ <location line="+3"/>
<source>&lt;br&gt;* Comment: %3</source>
<translation>&lt;br&gt;* 註解:%3</translation>
</message>
<message>
+ <location line="+70"/>
+ <source>Linguist does not know the plural rules for &apos;%1&apos;.
+Will assume a single universal form.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+56"/>
<source>Cannot create &apos;%2&apos;: %1</source>
<translation>無法建立 %2:%1</translation>
</message>
+ <message>
+ <location line="+56"/>
+ <source>Universal Form</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>EditorPage</name>
@@ -196,31 +227,37 @@
<context>
<name>ErrorsView</name>
<message>
- <location filename="../tools/linguist/linguist/errorsview.cpp" line="46"/>
+ <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>對 %1 的片語書建議已被忽略。</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>
@@ -232,6 +269,7 @@
<translation type="obsolete">Qt 語言家</translation>
</message>
<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>此視窗讓您搜尋翻譯源碼檔中的一些文字。</translation>
</message>
@@ -240,14 +278,17 @@
<translation type="obsolete">要搜尋的文字:</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>
@@ -256,6 +297,7 @@
<translation type="obsolete">原始訊息文字</translation>
</message>
<message>
+ <location/>
<source>Translations are searched when checked.</source>
<translation>勾選此項目的話,會搜尋已翻譯的文字。</translation>
</message>
@@ -264,6 +306,7 @@
<translation type="obsolete">翻譯</translation>
</message>
<message>
+ <location/>
<source>Texts such as &apos;TeX&apos; and &apos;tex&apos; are considered as different when checked.</source>
<translation>勾選此項目的話,TeX 與 tex 會被認為是兩個不同的字串。</translation>
</message>
@@ -272,6 +315,7 @@
<translation type="obsolete">符合大小寫</translation>
</message>
<message>
+ <location/>
<source>Comments and contexts are searched when checked.</source>
<translation>勾選此項目的話,會搜尋註解與內文。</translation>
</message>
@@ -280,51 +324,62 @@
<translation type="obsolete">註解</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>
<message>
+ <location/>
<source>Find</source>
<translation>尋找</translation>
</message>
<message>
+ <location/>
<source>&amp;Find what:</source>
<translation>尋找什麼(&amp;F):</translation>
</message>
<message>
+ <location/>
<source>&amp;Source texts</source>
<translation>來源文字(&amp;S)</translation>
</message>
<message>
+ <location/>
<source>&amp;Translations</source>
<translation>翻譯(&amp;T)</translation>
</message>
<message>
+ <location/>
<source>&amp;Match case</source>
<translation>符合大小寫(&amp;M)</translation>
</message>
<message>
+ <location/>
<source>&amp;Comments</source>
<translation>註解(&amp;C)</translation>
</message>
<message>
+ <location/>
<source>Ignore &amp;accelerators</source>
<translation>忽略快捷鍵(&amp;A)</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/finddialog.cpp" line="14"/>
+ <location filename="../tools/linguist/linguist/finddialog.cpp" line="+14"/>
<source></source>
<comment>Choose Edit|Find from the menu bar or press Ctrl+F to pop up the Find dialog</comment>
<translation></translation>
@@ -359,7 +414,7 @@
<context>
<name>LRelease</name>
<message numerus="yes">
- <location filename="../tools/linguist/shared/qm.cpp" line="653"/>
+ <location filename="../tools/linguist/shared/qm.cpp" line="+715"/>
<source> Generated %n translation(s) (%1 finished and %2 unfinished)
</source>
<translation>
@@ -368,6 +423,7 @@
</translation>
</message>
<message numerus="yes">
+ <location line="+4"/>
<source> Ignored %n untranslated source text(s)
</source>
<translation>
@@ -462,38 +518,47 @@ p, li { white-space: pre-wrap; }
<context>
<name>MainWindow</name>
<message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>MainWindow</source>
<translation>主視窗</translation>
</message>
<message>
+ <location/>
<source>&amp;Phrases</source>
<translation>片語(&amp;P)</translation>
</message>
<message>
+ <location/>
<source>&amp;Close Phrase Book</source>
<translation>關閉片語書(&amp;C)</translation>
</message>
<message>
+ <location/>
<source>&amp;Edit Phrase Book</source>
<translation>編輯片語書(&amp;E)</translation>
</message>
<message>
+ <location/>
<source>&amp;Print Phrase Book</source>
<translation>列印片語書(&amp;P)</translation>
</message>
<message>
+ <location/>
<source>V&amp;alidation</source>
<translation>確認(&amp;A)</translation>
</message>
<message>
+ <location/>
<source>&amp;View</source>
<translation>檢視(&amp;V)</translation>
</message>
<message>
+ <location/>
<source>Vie&amp;ws</source>
<translation>檢視(&amp;W)</translation>
</message>
<message>
+ <location/>
<source>&amp;Toolbars</source>
<translation>工具列(&amp;T)</translation>
</message>
@@ -502,14 +567,17 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">工具(&amp;L)</translation>
</message>
<message>
+ <location/>
<source>&amp;Help</source>
<translation>說明(&amp;H)</translation>
</message>
<message>
+ <location/>
<source>&amp;Translation</source>
<translation>翻譯(&amp;T)</translation>
</message>
<message>
+ <location/>
<source>&amp;File</source>
<translation>檔案(&amp;F)</translation>
</message>
@@ -518,6 +586,7 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">最近開啟的檔案(&amp;C)</translation>
</message>
<message>
+ <location/>
<source>&amp;Edit</source>
<translation>編輯(&amp;E)</translation>
</message>
@@ -530,63 +599,80 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">開啟(&amp;O)</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>Ctrl+Q</translation>
</message>
<message>
+ <location/>
<source>E&amp;xit</source>
<translation>離開(&amp;X)</translation>
</message>
<message>
+ <location/>
<source>Close this window and exit.</source>
<translation>關閉視窗並離開。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+Q</source>
<translation>Ctrl+Q</translation>
</message>
<message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+646"/>
+ <location line="+15"/>
<source>&amp;Save</source>
<translation>儲存(&amp;S)</translation>
</message>
<message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Save changes made to this Qt translation source file</source>
<translation>儲存對此檔案的變更</translation>
</message>
<message>
+ <location/>
<source>Open Read-O&amp;nly...</source>
<translation>以唯讀模式開啟(&amp;N)...</translation>
</message>
<message>
+ <location/>
<source>&amp;Save All</source>
<translation>全部儲存(&amp;S)</translation>
</message>
<message>
+ <location/>
<source>Ctrl+S</source>
<translation>Ctrl+S</translation>
</message>
<message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-14"/>
+ <location line="+11"/>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Save &amp;As...</source>
<translation>另存新檔(&amp;A)...</translation>
</message>
<message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Save As...</source>
<translation>另存新檔...</translation>
</message>
<message>
+ <location/>
<source>Save changes made to this Qt translation source file into a new file.</source>
<translation>將此檔存成另一個檔案。</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/mainwindow.cpp" line="4"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+4"/>
<source>&amp;Release</source>
<translation>釋出(&amp;R)</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 訊息檔。</translation>
</message>
@@ -599,10 +685,12 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">列印目前 Qt 翻譯源碼檔中所有的片語清單。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+P</source>
<translation>Ctrl+P</translation>
</message>
<message>
+ <location/>
<source>&amp;Undo</source>
<translation>復原(&amp;U)</translation>
</message>
@@ -611,66 +699,82 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">復原上次的編輯動作。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+Z</source>
<translation>Ctrl+Z</translation>
</message>
<message>
+ <location/>
<source>&amp;Redo</source>
<translation>重做(&amp;R)</translation>
</message>
<message>
+ <location/>
<source>Redo an undone editing operation performed on the translation.</source>
<translation>重做上次復原的動作。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+Y</source>
<translation>Ctrl+Y</translation>
</message>
<message>
+ <location/>
<source>Cu&amp;t</source>
<translation>剪下(&amp;T)</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>Ctrl+X</translation>
</message>
<message>
+ <location/>
<source>&amp;Copy</source>
<translation>複製(&amp;C)</translation>
</message>
<message>
+ <location/>
<source>Copy the selected translation text to the clipboard.</source>
<translation>複製所選取的文字到剪貼簿中。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+C</source>
<translation>Ctrl+C</translation>
</message>
<message>
+ <location/>
<source>&amp;Paste</source>
<translation>貼上(&amp;P)</translation>
</message>
<message>
+ <location/>
<source>Paste the clipboard text into the translation.</source>
<translation>將剪貼簿內容貼到翻譯區。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+V</source>
<translation>Ctrl+V</translation>
</message>
<message>
+ <location/>
<source>Select &amp;All</source>
<translation>全部選取(&amp;A)</translation>
</message>
<message>
+ <location/>
<source>Select the whole translation text.</source>
<translation>選擇整個翻譯文字。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+A</source>
<translation>Ctrl+A</translation>
</message>
@@ -679,26 +783,32 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">尋找(&amp;F)</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>Ctrl+F</translation>
</message>
<message>
+ <location/>
<source>Find &amp;Next</source>
<translation>尋找下一個(&amp;N)</translation>
</message>
<message>
+ <location/>
<source>Continue the search where it was left.</source>
<translation>繼續尋找下一個。</translation>
</message>
<message>
+ <location/>
<source>F3</source>
<translation>F3</translation>
</message>
<message>
+ <location/>
<source>&amp;Prev Unfinished</source>
<translation>前一個未完成的條目(&amp;P)</translation>
</message>
@@ -707,10 +817,12 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">移到前一個未完成的條目。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+K</source>
<translation>Ctrl+K</translation>
</message>
<message>
+ <location/>
<source>&amp;Next Unfinished</source>
<translation>下一個未完成的條目(&amp;N)</translation>
</message>
@@ -720,9 +832,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Ctrl+L</source>
- <translation>Ctrl+L</translation>
+ <translation type="obsolete">Ctrl+L</translation>
</message>
<message>
+ <location/>
<source>P&amp;rev</source>
<translation>前一個(&amp;R)</translation>
</message>
@@ -731,10 +844,12 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">移到前一個條目。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+Shift+K</source>
<translation>Ctrl+Shift+K</translation>
</message>
<message>
+ <location/>
<source>Ne&amp;xt</source>
<translation>下一個(&amp;X)</translation>
</message>
@@ -744,9 +859,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Ctrl+Shift+L</source>
- <translation>Ctrl+Shift+L</translation>
+ <translation type="obsolete">Ctrl+Shift+L</translation>
</message>
<message>
+ <location/>
<source>&amp;Done and Next</source>
<translation>完成並跳到下一個(&amp;D)</translation>
</message>
@@ -759,14 +875,17 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">複製原始訊息(&amp;B)</translation>
</message>
<message>
+ <location/>
<source>Copies the source text into the translation field.</source>
<translation>將原始訊息複製到翻譯欄位中。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+B</source>
<translation>Ctrl+B</translation>
</message>
<message>
+ <location/>
<source>&amp;Accelerators</source>
<translation>快捷鍵(&amp;A)</translation>
</message>
@@ -775,6 +894,7 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">切換是否要檢查快捷鍵是否有加入翻譯中。</translation>
</message>
<message>
+ <location/>
<source>&amp;Ending Punctuation</source>
<translation>結束的標點(&amp;E)</translation>
</message>
@@ -783,14 +903,17 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">切換是否要檢查結束的標點。</translation>
</message>
<message>
+ <location/>
<source>&amp;Phrase matches</source>
<translation>片語翻譯建議(&amp;P)</translation>
</message>
<message>
+ <location/>
<source>Toggle checking that phrase suggestions are used.</source>
<translation>切換是否要使用片語翻譯建議。</translation>
</message>
<message>
+ <location/>
<source>Place &amp;Marker Matches</source>
<translation>參數符號(&amp;M)</translation>
</message>
@@ -803,10 +926,12 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">新增片語書(&amp;N)</translation>
</message>
<message>
+ <location/>
<source>Create a new phrase book.</source>
<translation>建立新的片語書。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+N</source>
<translation>Ctrl+N</translation>
</message>
@@ -815,10 +940,12 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">開啟片語書(&amp;O)</translation>
</message>
<message>
+ <location/>
<source>Open a phrase book to assist translation.</source>
<translation>開啟片語書以協助翻譯。</translation>
</message>
<message>
+ <location/>
<source>Ctrl+H</source>
<translation>Ctrl+H</translation>
</message>
@@ -827,18 +954,22 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">反向排序(&amp;R)</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;D)</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;S)</translation>
</message>
@@ -847,38 +978,47 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">設定是否要顯示翻譯統計。</translation>
</message>
<message>
+ <location/>
<source>&amp;Manual</source>
<translation>手冊(&amp;M)</translation>
</message>
<message>
+ <location/>
<source>F1</source>
<translation>F1</translation>
</message>
<message>
+ <location/>
<source>About Qt Linguist</source>
<translation>關於 Qt 語言家</translation>
</message>
<message>
+ <location/>
<source>About Qt</source>
<translation>關於 Qt</translation>
</message>
<message>
+ <location/>
<source>Display information about the Qt toolkit by Trolltech.</source>
<translation>顯示關於 Qt 的資訊。</translation>
</message>
<message>
+ <location/>
<source>&amp;What&apos;s This?</source>
<translation>這是什麼?(&amp;W)</translation>
</message>
<message>
+ <location/>
<source>What&apos;s This?</source>
<translation>這是什麼?</translation>
</message>
<message>
+ <location/>
<source>Enter What&apos;s This? mode.</source>
<translation>進入「這是什麼?」模式。</translation>
</message>
<message>
+ <location/>
<source>Shift+F1</source>
<translation>Shift+F1</translation>
</message>
@@ -887,6 +1027,7 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">搜尋並翻譯(&amp;S)</translation>
</message>
<message>
+ <location/>
<source>Replace the translation on all entries that matches the search source text.</source>
<translation>在所有條目中搜尋,並取代符合者。</translation>
</message>
@@ -895,14 +1036,19 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">批次翻譯(&amp;B)</translation>
</message>
<message>
+ <location/>
<source>Batch translate all entries using the information in the phrase books.</source>
<translation>使用片語書中的資訊來批次翻譯所有的條目。</translation>
</message>
<message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-13"/>
+ <location line="+10"/>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Release As...</source>
<translation>釋出為...</translation>
</message>
<message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>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 訊息檔。檔名會自動由此檔的前面一部份來決定。</translation>
</message>
@@ -912,55 +1058,71 @@ p, li { white-space: pre-wrap; }
<translation></translation>
</message>
<message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1809"/>
<source>Source text</source>
<translation>原始訊息文字</translation>
</message>
<message>
+ <location line="+1"/>
+ <location line="+25"/>
<source>Index</source>
<translation>索引</translation>
</message>
<message>
+ <location line="-2"/>
+ <location line="+61"/>
<source>Context</source>
<translation>內文</translation>
</message>
<message>
+ <location line="-60"/>
<source>Items</source>
<translation>條目</translation>
</message>
<message>
+ <location line="+77"/>
<source>This panel lists the source contexts.</source>
<translation>此面板列出源碼檔中的內容。</translation>
</message>
<message>
+ <location line="+15"/>
<source>Strings</source>
<translation>字串</translation>
</message>
<message>
+ <location line="+39"/>
<source>Phrases and guesses</source>
<translation>片語與猜測</translation>
</message>
<message>
+ <location line="+10"/>
<source>Sources and Forms</source>
<translation>來源與表單</translation>
</message>
<message>
+ <location line="+15"/>
<source>Warnings</source>
<translation>警告</translation>
</message>
<message>
+ <location line="+59"/>
<source> MOD </source>
<comment>status bar: file(s) modified</comment>
<translation>已變更</translation>
</message>
<message>
+ <location line="+125"/>
<source>Loading...</source>
<translation>載入中...</translation>
</message>
<message>
+ <location line="+32"/>
+ <location line="+22"/>
<source>Loading File - Qt Linguist</source>
<translation>載入檔案中 ─ Qt 語言家</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>
@@ -969,6 +1131,7 @@ 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>
@@ -977,78 +1140,114 @@ 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>
</translation>
</message>
<message>
+ <location line="+93"/>
<source>Related files (%1);;</source>
<translation>關聯檔案(%1);;</translation>
</message>
<message>
+ <location line="+4"/>
<source>Open Translation Files</source>
<translation>開啟翻譯檔</translation>
</message>
<message>
+ <location line="+10"/>
+ <location line="+31"/>
<source>File saved.</source>
<translation>檔案已儲存。</translation>
</message>
<message>
+ <location line="+15"/>
+ <location line="+1164"/>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Release</source>
<translation>釋出</translation>
</message>
<message>
+ <location line="-1163"/>
<source>Qt message files for released applications (*.qm)
All files (*)</source>
<translation>釋出的應用程式使用的 Qt 訊息檔 (*.qm)
所有檔案 (*)</translation>
</message>
<message>
+ <location line="+3"/>
+ <location line="+12"/>
<source>File created.</source>
<translation>檔案已建立。</translation>
</message>
<message>
+ <location line="+27"/>
+ <location line="+355"/>
<source>Printing...</source>
<translation>列印中...</translation>
</message>
<message>
+ <location line="-347"/>
<source>Context: %1</source>
<translation>內文:%1</translation>
</message>
<message>
+ <location line="+32"/>
<source>finished</source>
<translation>已完成</translation>
</message>
<message>
+ <location line="+3"/>
<source>unresolved</source>
<translation>未解決</translation>
</message>
<message>
+ <location line="+3"/>
<source>obsolete</source>
<translation>已棄用</translation>
</message>
<message>
+ <location line="+15"/>
+ <location line="+307"/>
<source>Printing... (page %1)</source>
<translation>列印中...(第 %1 頁)</translation>
</message>
<message>
+ <location line="-300"/>
+ <location line="+307"/>
<source>Printing completed</source>
<translation>列印已完成</translation>
</message>
<message>
+ <location line="-305"/>
+ <location line="+307"/>
<source>Printing aborted</source>
<translation>列印已中止</translation>
</message>
<message>
+ <location line="-232"/>
<source>Search wrapped.</source>
<translation>搜尋折回。</translation>
</message>
<message>
+ <location line="+17"/>
+ <location line="+278"/>
+ <location line="+40"/>
+ <location line="+24"/>
+ <location line="+22"/>
+ <location line="+516"/>
+ <location line="+1"/>
+ <location line="+274"/>
+ <location line="+40"/>
+ <location line="+10"/>
<source>Qt Linguist</source>
<translation>Qt 語言家</translation>
</message>
<message>
+ <location line="-1204"/>
+ <location line="+102"/>
<source>Cannot find the string &apos;%1&apos;.</source>
<translation>無法找到字串 %1。</translation>
</message>
@@ -1063,244 +1262,311 @@ All files (*)</source>
</translation>
</message>
<message>
+ <location line="-82"/>
<source>Search And Translate in &apos;%1&apos; - Qt Linguist</source>
<translation>在 %1 內搜尋並翻譯 ─ Qt 語言家</translation>
</message>
<message>
+ <location line="+34"/>
+ <location line="+23"/>
+ <location line="+24"/>
<source>Translate - Qt Linguist</source>
<translation>翻譯 ─ Qt 語言家</translation>
</message>
<message numerus="yes">
+ <location line="-46"/>
<source>Translated %n entry(s)</source>
<translation>
<numerusform>已翻譯 %n 個條目</numerusform>
</translation>
</message>
<message>
+ <location line="+23"/>
<source>No more occurrences of &apos;%1&apos;. Start over?</source>
<translation>找不到更多的 %1。要從頭開始嗎?</translation>
</message>
<message>
+ <location line="+30"/>
<source>Create New Phrase Book</source>
<translation>建立新的片語書</translation>
</message>
<message>
+ <location line="+1"/>
<source>Qt phrase books (*.qph)
All files (*)</source>
<translation>Qt 片語書 (*.qph)
所有檔案 (*)</translation>
</message>
<message>
+ <location line="+11"/>
<source>Phrase book created.</source>
<translation>片語書已建立。</translation>
</message>
<message>
+ <location line="+17"/>
<source>Open Phrase Book</source>
<translation>開啟片語書</translation>
</message>
<message>
+ <location line="+1"/>
<source>Qt phrase books (*.qph);;All files (*)</source>
<translation>Qt 片語書 (*.qph);;所有檔案 (*)</translation>
</message>
<message numerus="yes">
+ <location line="+7"/>
<source>%n phrase(s) loaded.</source>
<translation>
<numerusform>已載入 %n 個片語。</numerusform>
</translation>
</message>
<message>
+ <location line="+93"/>
+ <location line="+3"/>
+ <location line="+7"/>
<source>Add to phrase book</source>
<translation>新增到片語書</translation>
</message>
<message>
+ <location line="-9"/>
<source>No appropriate phrasebook found.</source>
<translation>找不到合適的片語書。</translation>
</message>
<message>
+ <location line="+3"/>
<source>Adding entry to phrasebook %1</source>
<translation>新增項目到片語書 %1</translation>
</message>
<message>
+ <location line="+7"/>
<source>Select phrase book to add to</source>
<translation>選取要新增到哪個片語書</translation>
</message>
<message>
+ <location line="+29"/>
<source>Unable to launch Qt Assistant (%1)</source>
<translation>無法啟動 Qt 小幫手(%1)</translation>
</message>
<message>
+ <location line="+17"/>
<source>Version %1</source>
<translation>版本 %1</translation>
</message>
<message>
<source> Open Source Edition</source>
- <translation> 開放源碼版本</translation>
+ <translation type="obsolete"> 開放源碼版本</translation>
</message>
<message>
<source>This version of Qt Linguist is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;tt&gt;http://qtsoftware.com/company/model.html&lt;/tt&gt; for an overview of Qt licensing.</source>
- <translation>此版本的 Qt 語言家是 Qt 開放源碼版本的一部份,只能用於開發開放源碼的應用程式。Qt 為一個跨平台的,強大的 C++ 應用程式開發框架。&lt;br/&gt;&lt;br/&gt;您需要商業版的 Qt 授權才能發展私有(封閉)應用程式軟體。關於 Qt 授權的概要,請參考 &lt;tt&gt;http://qtsoftware.com/company/model.html&lt;/tt&gt;。</translation>
+ <translation type="obsolete">此版本的 Qt 語言家是 Qt 開放源碼版本的一部份,只能用於開發開放源碼的應用程式。Qt 為一個跨平台的,強大的 C++ 應用程式開發框架。&lt;br/&gt;&lt;br/&gt;您需要商業版的 Qt 授權才能發展私有(封閉)應用程式軟體。關於 Qt 授權的概要,請參考 &lt;tt&gt;http://qtsoftware.com/company/model.html&lt;/tt&gt;。</translation>
</message>
<message>
<source>This program is licensed to you under the terms of the Qt %1 License Agreement. For details, see the license file that came with this software distribution.</source>
- <translation>此程式以 Qt %1授權同意書授權給您。詳情請參照 LICENSE 檔。</translation>
+ <translation type="obsolete">此程式以 Qt %1授權同意書授權給您。詳情請參照 LICENSE 檔。</translation>
</message>
<message>
<source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
- <translation>此程式以 Qt 商業授權同意書(Qt Commerical License Agreement)授權給您。詳情請參照 LICENSE 檔。</translation>
+ <translation type="obsolete">此程式以 Qt 商業授權同意書(Qt Commerical License Agreement)授權給您。詳情請參照 LICENSE 檔。</translation>
</message>
<message>
+ <location line="+6"/>
<source>&lt;center&gt;&lt;img src=&quot;:/images/splash.png&quot;/&gt;&lt;/img&gt;&lt;p&gt;%1&lt;/p&gt;&lt;/center&gt;&lt;p&gt;Qt Linguist is a tool for adding translations to Qt applications.&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;/p&gt;</source>
<translation>&lt;center&gt;&lt;img src=&quot;:/images/splash.png&quot;/&gt;&lt;/img&gt;&lt;p&gt;%1&lt;/p&gt;&lt;/center&gt;&lt;p&gt;Qt 語言家是一套新增 Qt 應用程式的翻譯的工具。&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 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;</translation>
</message>
<message>
+ <location line="+41"/>
<source>Do you want to save the modified files?</source>
<translation>您要儲存已變更的檔案嗎?</translation>
</message>
<message>
+ <location line="+22"/>
<source>Do you want to save &apos;%1&apos;?</source>
<translation>您確定要儲存 %1 嗎?</translation>
</message>
<message>
+ <location line="+43"/>
<source>Qt Linguist[*]</source>
<translation>Qt 語言家 [*]</translation>
</message>
<message>
+ <location line="+2"/>
<source>%1[*] - Qt Linguist</source>
<translation>%1 [*] ─ Qt 語言家</translation>
</message>
<message>
+ <location line="+267"/>
+ <location line="+12"/>
<source>No untranslated translation units left.</source>
<translation>沒有任何未翻譯的翻譯單位。</translation>
</message>
<message>
+ <location line="+176"/>
<source>&amp;Window</source>
<translation>視窗(&amp;W)</translation>
</message>
<message>
+ <location line="+2"/>
<source>Minimize</source>
<translation>最小化</translation>
</message>
<message>
+ <location line="+1"/>
<source>Ctrl+M</source>
<translation>Ctrl+M</translation>
</message>
<message>
+ <location line="+12"/>
<source>Display the manual for %1.</source>
<translation>顯示 %1 的手冊。</translation>
</message>
<message>
+ <location line="+1"/>
<source>Display information about %1.</source>
<translation>顯示 %1 的資訊。</translation>
</message>
<message>
+ <location line="+70"/>
<source>&amp;Save &apos;%1&apos;</source>
<translation>儲存 &apos;%1&apos; (&amp;S)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Save &apos;%1&apos; &amp;As...</source>
<translation>另存 &apos;%1&apos; 為(&amp;A)...</translation>
</message>
<message>
+ <location line="+1"/>
<source>Release &apos;%1&apos;</source>
<translation>釋出 &apos;%1&apos;</translation>
</message>
<message>
+ <location line="+1"/>
<source>Release &apos;%1&apos; As...</source>
<translation>釋出 &apos;%1&apos; 為...</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Close &apos;%1&apos;</source>
<translation>關閉 &apos;%1&apos;(&amp;C)</translation>
</message>
<message>
+ <location line="+6"/>
+ <location line="+13"/>
<source>&amp;Close</source>
<translation>關閉(&amp;C)</translation>
</message>
<message>
+ <location line="-10"/>
<source>Save All</source>
<translation>全部儲存</translation>
</message>
<message>
+ <location line="+1"/>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>&amp;Release All</source>
<translation>全部釋出(&amp;R)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Close All</source>
<translation>全部關閉</translation>
</message>
<message>
+ <location line="+23"/>
<source>Translation File &amp;Settings for &apos;%1&apos;...</source>
<translation>%1 的翻譯檔設定(&amp;S)...</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Batch Translation of &apos;%1&apos;...</source>
<translation>%1 的批次翻譯(&amp;B)...</translation>
</message>
<message>
+ <location line="+1"/>
<source>Search And &amp;Translate in &apos;%1&apos;...</source>
<translation>在 %1 內搜尋並翻譯(&amp;T)...</translation>
</message>
<message>
+ <location line="+4"/>
<source>Search And &amp;Translate...</source>
<translation>搜尋並翻譯(&amp;T)...</translation>
</message>
<message>
+ <location line="+51"/>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>File</source>
<translation>檔案</translation>
</message>
<message>
+ <location line="+7"/>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Edit</source>
<translation>編輯</translation>
</message>
<message>
+ <location line="+6"/>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Translation</source>
<translation>翻譯</translation>
</message>
<message>
+ <location line="+6"/>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Validation</source>
<translation>確認</translation>
</message>
<message>
+ <location line="+7"/>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Help</source>
<translation>說明</translation>
</message>
<message>
+ <location line="+84"/>
<source>Cannot read from phrase book &apos;%1&apos;.</source>
<translation>無法從片語書 %1 中讀取。</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>無法建立片語書 %1。</translation>
</message>
<message>
+ <location line="+10"/>
<source>Do you want to save phrase book &apos;%1&apos;?</source>
<translation>您要儲存片語書 %1 嗎?</translation>
</message>
<message>
+ <location line="+314"/>
<source>All</source>
<translation>全部</translation>
</message>
<message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Open/Refresh Form &amp;Preview</source>
<translation>開啟/刷新表單預覽(&amp;P)</translation>
</message>
<message>
+ <location/>
<source>Form Preview Tool</source>
<translation>表單預覽工具</translation>
</message>
<message>
+ <location/>
<source>F5</source>
<translation>F5</translation>
</message>
@@ -1321,42 +1587,54 @@ All files (*)</source>
<translation type="obsolete">最近開啟的檔案(&amp;C)</translation>
</message>
<message>
+ <location/>
<source>&amp;Open...</source>
<translation>開啟(&amp;O)...</translation>
</message>
<message>
+ <location/>
<source>&amp;Print...</source>
<translation>列印(&amp;P)...</translation>
</message>
<message>
+ <location/>
<source>&amp;Find...</source>
<translation>尋找(&amp;F)...</translation>
</message>
<message>
+ <location/>
<source>&amp;New Phrase Book...</source>
<translation>新增片語書(&amp;N)...</translation>
</message>
<message>
+ <location/>
<source>&amp;Open Phrase Book...</source>
<translation>開啟片語書(&amp;O)...</translation>
</message>
<message>
+ <location/>
<source>&amp;Reset Sorting</source>
<translation>重置排序(&amp;R)</translation>
</message>
<message>
+ <location/>
<source>Display translation statistics.</source>
<translation>顯示翻譯統計。</translation>
</message>
<message>
+ <location/>
<source>&amp;Search And Translate...</source>
<translation>搜尋並翻譯(&amp;S)...</translation>
</message>
<message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-526"/>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>&amp;Batch Translation...</source>
<translation>批次翻譯(&amp;B)...</translation>
</message>
<message>
+ <location line="-1"/>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>Translation File &amp;Settings...</source>
<translation>翻譯檔案設定(&amp;S)...</translation>
</message>
@@ -1369,94 +1647,117 @@ All files (*)</source>
<translation type="obsolete">編輯要顯示哪一種語言。</translation>
</message>
<message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
<source>&amp;Add to Phrase Book</source>
<translation>新增到片語書(&amp;A)</translation>
</message>
<message>
+ <location/>
<source>Ctrl+T</source>
<translation>Ctrl+T</translation>
</message>
<message>
+ <location/>
<source>Previous unfinished item.</source>
<translation>前一個未完成的條目。</translation>
</message>
<message>
+ <location/>
<source>Recently Opened &amp;Files</source>
<translation>最近開啟的檔案(&amp;F)</translation>
</message>
<message>
+ <location/>
<source>Save</source>
<translation>儲存</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>Undo the last editing operation performed on the current translation.</source>
<translation>復原上次對目前翻譯執行的的編輯動作。</translation>
</message>
<message>
+ <location/>
<source>Move to the previous unfinished item.</source>
<translation>移到前一個未完成的條目。</translation>
</message>
<message>
+ <location/>
<source>Next unfinished item.</source>
<translation>下一個未完成的條目。</translation>
</message>
<message>
+ <location/>
<source>Move to the next unfinished item.</source>
<translation>移到下一個未完成的條目。</translation>
</message>
<message>
+ <location/>
<source>Move to previous item.</source>
<translation>移到前一個條目。</translation>
</message>
<message>
+ <location/>
<source>Move to the previous item.</source>
<translation>移到前一個條目。</translation>
</message>
<message>
+ <location/>
<source>Next item.</source>
<translation>下一個條目。</translation>
</message>
<message>
+ <location/>
<source>Move to the next item.</source>
<translation>移到下一個條目。</translation>
</message>
<message>
+ <location/>
<source>Mark item as done and move to the next unfinished item.</source>
<translation>標記此條目為完成,並移到下一個未完成的條目。</translation>
</message>
<message>
+ <location/>
<source>Mark this item as done and move to the next unfinished item.</source>
<translation>標記此條目為完成,並移到下一個未完成的條目。</translation>
</message>
<message>
+ <location/>
<source>Copy from source text</source>
<translation>複製原始訊息</translation>
</message>
<message>
+ <location/>
<source>Toggle the validity check of accelerators.</source>
<translation>切換是否要檢查快捷鍵是否有加入翻譯中。</translation>
</message>
<message>
+ <location/>
<source>Toggle the validity check of accelerators, i.e. whether the number of ampersands in the source and translation text is the same. If the check fails, a message is shown in the warnings window.</source>
<translation>切換是否要檢查快捷鍵是否有加入翻譯中,也就是檢查源碼中的快捷鍵符號數量與翻譯文字中是否相同。若是沒有,則會在警告視窗中顯示訊息。</translation>
</message>
<message>
+ <location/>
<source>Toggle the validity check of ending punctuation.</source>
<translation>切換是否要檢查結束的標點。</translation>
</message>
<message>
+ <location/>
<source>Close</source>
<translation>關閉</translation>
</message>
<message>
+ <location/>
<source>&amp;Close All</source>
<translation>全部關閉(&amp;C)</translation>
</message>
<message>
+ <location/>
<source>Ctrl+W</source>
<translation>Ctrl+W</translation>
</message>
@@ -1465,21 +1766,35 @@ All files (*)</source>
<translation type="obsolete">切換是否要檢查結束的標點。若是不相符,則會在警告視窗中顯示訊息。</translation>
</message>
<message>
+ <location/>
<source>Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window.</source>
<translation>切換檢查是否使用建議的片語。若是沒有,則會在警告視窗中顯示訊息。</translation>
</message>
<message>
+ <location/>
<source>Toggle the validity check of place markers.</source>
<translation>切換是否檢查參數符號的正確性。</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>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>Ctrl+J</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Shift+J</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>MessageEditor</name>
@@ -1520,71 +1835,87 @@ All files (*)</source>
<translation type="obsolete">片語與猜測:</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/messageeditor.cpp" line="42"/>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+72"/>
<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="+50"/>
<source>This whole panel allows you to view and edit the translation of some source text.</source>
<translation>這整個面板可以讓您檢視與編輯某些原始訊息的翻譯檔。</translation>
</message>
<message>
+ <location line="+25"/>
<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="+3"/>
<source>Source text (Plural)</source>
<translation>原始訊息文字(複數型)</translation>
</message>
<message>
+ <location line="+2"/>
<source>This area shows the plural form of the source text.</source>
<translation>此區域顯示原始訊息文字的複數型。</translation>
</message>
<message>
+ <location line="+3"/>
<source>Developer comments</source>
<translation>開發者提示</translation>
</message>
<message>
+ <location line="+3"/>
<source>This area shows a comment that may guide you, and the context in which the text occurs.</source>
<translation>此區域顯示註解,說明此文字的內容協助您翻譯。</translation>
</message>
<message>
+ <location line="+59"/>
<source>Here you can enter comments for your own use. They have no effect on the translated applications.</source>
<translation>您可以在此輸入您自己的註解。它們不會對應用程式的訊息造成影響。</translation>
</message>
<message>
+ <location line="+205"/>
<source>%1 translation (%2)</source>
<translation>%1 翻譯(%2)</translation>
</message>
<message>
+ <location line="+19"/>
<source>This is where you can enter or modify the translation of the above source text.</source>
<translation>您可以在此輸入或變更某些原始訊息的翻譯。</translation>
</message>
<message>
+ <location line="+5"/>
<source>%1 translation</source>
<translation>%1 翻譯</translation>
</message>
<message>
+ <location line="+1"/>
<source>%1 translator comments</source>
<translation>%1 翻譯註解</translation>
</message>
@@ -1605,6 +1936,7 @@ All files (*)</source>
<translation type="obsolete">您可以在此輸入或變更某些原始訊息的翻譯。</translation>
</message>
<message>
+ <location line="+138"/>
<source>&apos;%1&apos;
Line: %2</source>
<translation>&apos;%1&apos;
@@ -1634,19 +1966,22 @@ Line: %2</source>
<translation type="obsolete">索引</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/messagemodel.cpp" line="861"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+832"/>
<source>Completion status for %1</source>
<translation>%1 的完成狀態</translation>
</message>
<message>
+ <location line="+15"/>
<source>&lt;file header&gt;</source>
<translation>&lt;檔案標頭&gt;</translation>
</message>
<message>
+ <location line="+2"/>
<source>&lt;context comment&gt;</source>
<translation>&lt;內文註解&gt;</translation>
</message>
<message>
+ <location line="+71"/>
<source>&lt;unnamed context&gt;</source>
<translation>&lt;未命名內文&gt;</translation>
</message>
@@ -1680,19 +2015,22 @@ Line: %2</source>
<context>
<name>PhraseBookBox</name>
<message>
- <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="8"/>
+ <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+8"/>
<source>%1[*] - Qt Linguist</source>
<translation>%1 [*] ─ Qt 語言家</translation>
</message>
<message>
+ <location line="+90"/>
<source>Qt Linguist</source>
<translation>Qt 語言家</translation>
</message>
<message>
+ <location line="+1"/>
<source>Cannot save phrase book &apos;%1&apos;.</source>
<translation>無法儲存片語書 %1。</translation>
</message>
<message>
+ <location filename="../tools/linguist/linguist/phrasebookbox.ui"/>
<source>Edit Phrase Book</source>
<translation>編輯片語書</translation>
</message>
@@ -1701,26 +2039,32 @@ Line: %2</source>
<translation type="obsolete">此視窗讓您可以新增、變更與刪除片語。</translation>
</message>
<message>
+ <location/>
<source>&amp;Translation:</source>
<translation>翻譯(&amp;T):</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;O):</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;D):</translation>
</message>
@@ -1729,6 +2073,7 @@ Line: %2</source>
<translation type="obsolete">新增片語(&amp;N)</translation>
</message>
<message>
+ <location/>
<source>Click here to add the phrase to the phrase book.</source>
<translation>點選這裡將片語新增到片語書中。</translation>
</message>
@@ -1741,38 +2086,47 @@ Line: %2</source>
<translation type="obsolete">點選這裡以從片語書中移除片語。</translation>
</message>
<message>
+ <location/>
<source>&amp;Save</source>
<translation>儲存(&amp;S)</translation>
</message>
<message>
+ <location/>
<source>Click here to save the changes made.</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;New Entry</source>
<translation>新條目(&amp;N)</translation>
</message>
<message>
+ <location/>
<source>Click here to remove the entry from the phrase book.</source>
<translation>點擊此處以從片語書中移除條目。</translation>
</message>
<message>
+ <location/>
<source>&amp;Remove Entry</source>
<translation>移除條目(&amp;R)</translation>
</message>
<message>
+ <location/>
<source>Settin&amp;gs...</source>
<translation>設定(&amp;G)...</translation>
</message>
<message>
+ <location/>
<source>Close</source>
<translation>關閉</translation>
</message>
<message>
+ <location/>
<source>Click here to close this window.</source>
<translation>點選這裡以關閉視窗。</translation>
</message>
@@ -1789,15 +2143,17 @@ Line: %2</source>
<context>
<name>PhraseModel</name>
<message>
- <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="87"/>
+ <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>
@@ -1805,19 +2161,22 @@ Line: %2</source>
<context>
<name>PhraseView</name>
<message>
- <location filename="../tools/linguist/linguist/phraseview.cpp" line="91"/>
+ <location filename="../tools/linguist/linguist/phraseview.cpp" line="+121"/>
<source>Insert</source>
<translation>插入</translation>
</message>
<message>
+ <location line="+3"/>
<source>Edit</source>
<translation>編輯</translation>
</message>
<message>
+ <location line="+113"/>
<source>Guess (%1)</source>
<translation>猜測(%1)</translation>
</message>
<message>
+ <location line="+2"/>
<source>Guess</source>
<translation>猜測</translation>
</message>
@@ -1825,70 +2184,90 @@ Line: %2</source>
<context>
<name>QObject</name>
<message>
- <location filename="../tools/linguist/shared/qm.cpp" line="12"/>
+ <location filename="../tools/linguist/shared/qm.cpp" line="+12"/>
<source>Compiled Qt translations</source>
<translation>已編譯的 Qt 翻譯</translation>
</message>
<message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1279"/>
<source>Translation files (%1);;</source>
<translation>翻譯檔(%1):</translation>
</message>
<message>
+ <location line="+5"/>
<source>All files (*)</source>
<translation>所有檔案(*)</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/phrase.cpp" line="166"/>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1118"/>
+ <location line="+18"/>
+ <location line="+67"/>
+ <location line="+39"/>
+ <location line="+17"/>
+ <location line="+15"/>
+ <location filename="../tools/linguist/linguist/phrase.cpp" line="+196"/>
<source>Qt Linguist</source>
<translation>Qt 語言家</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/cpp.cpp" line="1039"/>
+ <location filename="../tools/linguist/shared/cpp.cpp" line="+1072"/>
<source>C++ source files</source>
<translation>C++ 程式檔</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/java.cpp" line="624"/>
+ <location filename="../tools/linguist/shared/java.cpp" line="+646"/>
<source>Java source files</source>
<translation>Java 程式檔</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/po.cpp" line="584"/>
+ <location filename="../tools/linguist/shared/po.cpp" line="+651"/>
<source>GNU Gettext localization files</source>
<translation>GNU Gettext 地域化檔案</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/qscript.cpp" line="2369"/>
+ <location filename="../tools/linguist/shared/qscript.cpp" line="+2399"/>
<source>Qt Script source files</source>
<translation>Qt 文稿程式檔</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/ts.cpp" line="617"/>
+ <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 type="unfinished"></translation>
+ </message>
+ <message>
<source>Qt translation sources</source>
- <translation>Qt 翻譯源碼</translation>
+ <translation type="obsolete">Qt 翻譯源碼</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/ui.cpp" line="171"/>
+ <location filename="../tools/linguist/shared/ui.cpp" line="+213"/>
<source>Qt Designer form files</source>
<translation>Qt 設計器表單檔</translation>
</message>
<message>
+ <location line="+9"/>
<source>Qt Jambi form files</source>
<translation>Qt Jambi 表單檔</translation>
</message>
<message>
- <location filename="../tools/linguist/shared/xliff.cpp" line="778"/>
+ <location filename="../tools/linguist/shared/xliff.cpp" line="+817"/>
<source>XLIFF localization files</source>
<translation>XLIFF 地域化檔案</translation>
</message>
+ <message>
+ <location filename="../tools/linguist/shared/qph.cpp" line="+192"/>
+ <source>Qt Linguist &apos;Phrase Book&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QtWindowListMenu</name>
@@ -1927,15 +2306,17 @@ Line: %2</source>
<context>
<name>SourceCodeView</name>
<message>
- <location filename="../tools/linguist/linguist/sourcecodeview.cpp" line="40"/>
+ <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>
@@ -1962,6 +2343,7 @@ Line: %2</source>
<context>
<name>Statistics</name>
<message>
+ <location filename="../tools/linguist/linguist/statistics.ui"/>
<source>Statistics</source>
<translation>統計</translation>
</message>
@@ -1970,30 +2352,37 @@ Line: %2</source>
<translation type="obsolete">關閉(&amp;C)</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>
<message>
+ <location/>
<source>Close</source>
<translation>關閉</translation>
</message>
@@ -2467,7 +2856,7 @@ All files (*)</source>
<translation type="obsolete">您要儲存片語書 %1 嗎?</translation>
</message>
<message>
- <location filename="../tools/linguist/linguist/trwindow.cpp" line="14"/>
+ <location filename="../tools/linguist/linguist/trwindow.cpp" line="+14"/>
<source></source>
<comment>This is the application&apos;s main window.</comment>
<translation></translation>
@@ -2480,58 +2869,72 @@ All files (*)</source>
<translation type="obsolete">Qt 語言家</translation>
</message>
<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;S):</translation>
</message>
<message>
+ <location/>
<source>&amp;Translate to:</source>
<translation>翻譯為(&amp;T):</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>勾選此項目的話,TeX 與 tex 會被認為是兩個不同的字串。</translation>
</message>
<message>
+ <location/>
<source>Match &amp;case</source>
<translation>符合大小寫(&amp;C)</translation>
</message>
<message>
+ <location/>
<source>Mark new translation as &amp;finished</source>
<translation>將新翻譯標記為完成(&amp;F)</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>
@@ -2558,27 +2961,33 @@ All files (*)</source>
<context>
<name>TranslationSettingsDialog</name>
<message>
- <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="38"/>
+ <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+68"/>
<source>Any Country</source>
<translation>任何國家</translation>
</message>
<message>
+ <location line="+11"/>
+ <location line="+8"/>
<source>Settings for &apos;%1&apos; - Qt Linguist</source>
<translation>%1 的設定 ─ Qt 語言家</translation>
</message>
<message>
+ <location filename="../tools/linguist/linguist/translationsettings.ui"/>
<source>Source language</source>
<translation>原始語言</translation>
</message>
<message>
+ <location/>
<source>Language</source>
<translation>語言</translation>
</message>
<message>
+ <location/>
<source>Country/Region</source>
<translation>國家/地區</translation>
</message>
<message>
+ <location/>
<source>Target language</source>
<translation>目標語言</translation>
</message>
diff --git a/translations/qt_ar.ts b/translations/qt_ar.ts
index 76a1956..b5a60e2 100644
--- a/translations/qt_ar.ts
+++ b/translations/qt_ar.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioOutput</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+374"/>
+ <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/>
<source>&lt;html&gt;The audio playback device &lt;b&gt;%1&lt;/b&gt; does not work.&lt;br/&gt;Falling back to &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -22,7 +22,7 @@
<context>
<name>CloseButton</name>
<message>
- <location filename="../src/gui/widgets/qtabbar.cpp" line="+2217"/>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/>
<source>Close Tab</source>
<translation type="unfinished"></translation>
</message>
@@ -85,7 +85,7 @@
<context>
<name>Phonon::Gstreamer::MediaObject</name>
<message>
- <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+88"/>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/>
<source>Cannot start playback.
Check your Gstreamer installation and make sure you
@@ -98,24 +98,24 @@ have libgstreamer-plugins-base installed.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+653"/>
- <location line="+9"/>
+ <location line="+676"/>
+ <location line="+8"/>
<location line="+15"/>
- <location line="+7"/>
- <location line="+5"/>
- <location line="+20"/>
- <location line="+317"/>
+ <location line="+9"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+335"/>
<location line="+24"/>
<source>Could not open media source.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-381"/>
+ <location line="-403"/>
<source>Invalid source type.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+355"/>
+ <location line="+377"/>
<source>Could not locate media source.</source>
<translation type="unfinished"></translation>
</message>
@@ -149,7 +149,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3Accel</name>
<message>
- <location filename="../src/qt3support/other/q3accel.cpp" line="+451"/>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
<source>%1, %2 not defined</source>
<translation type="unfinished"></translation>
</message>
@@ -162,7 +162,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3DataTable</name>
<message>
- <location filename="../src/qt3support/sql/q3datatable.cpp" line="+253"/>
+ <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
<source>True</source>
<translation type="unfinished">صحيح</translation>
</message>
@@ -190,7 +190,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3FileDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+834"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+864"/>
<source>Copy or Move a File</source>
<translation type="unfinished">نسخ أو تحريك ملفّ</translation>
</message>
@@ -215,7 +215,7 @@ have libgstreamer-plugins-base installed.</source>
<location line="-157"/>
<location line="+49"/>
<location line="+2153"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+80"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
<source>All Files (*)</source>
<translation type="unfinished">جميع الملفّات (*)</translation>
</message>
@@ -355,7 +355,7 @@ have libgstreamer-plugins-base installed.</source>
<message>
<location line="+704"/>
<location line="+2100"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+307"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/>
<source>Open</source>
<translation type="unfinished">فتح</translation>
</message>
@@ -523,7 +523,7 @@ Check path and filename.</source>
<context>
<name>Q3LocalFs</name>
<message>
- <location filename="../src/qt3support/network/q3localfs.cpp" line="+100"/>
+ <location filename="../src/qt3support/network/q3localfs.cpp" line="+130"/>
<location line="+10"/>
<source>Could not read directory
%1</source>
@@ -573,7 +573,7 @@ to
<context>
<name>Q3MainWindow</name>
<message>
- <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2021"/>
+ <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
<source>Line up</source>
<translation type="unfinished">تصفيف</translation>
</message>
@@ -586,7 +586,7 @@ to
<context>
<name>Q3NetworkProtocol</name>
<message>
- <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+824"/>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
<source>Operation stopped by the user</source>
<translation type="unfinished">أوقفت العمليّة من طرف المستعمل</translation>
</message>
@@ -594,7 +594,7 @@ to
<context>
<name>Q3ProgressDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+194"/>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
<location line="+61"/>
<source>Cancel</source>
<translation type="unfinished">إلغاء</translation>
@@ -603,7 +603,7 @@ to
<context>
<name>Q3TabDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+159"/>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/>
<location line="+814"/>
<source>OK</source>
<translation type="unfinished">موافقة</translation>
@@ -632,7 +632,7 @@ to
<context>
<name>Q3TextEdit</name>
<message>
- <location filename="../src/qt3support/text/q3textedit.cpp" line="+5399"/>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
<source>&amp;Undo</source>
<translation type="unfinished">&amp;تراجع</translation>
</message>
@@ -671,7 +671,7 @@ to
<context>
<name>Q3TitleBar</name>
<message>
- <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+216"/>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
<source>System</source>
<translation type="unfinished"></translation>
</message>
@@ -739,7 +739,7 @@ to
<context>
<name>Q3ToolBar</name>
<message>
- <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+662"/>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
<source>More...</source>
<translation type="unfinished">أكثر...</translation>
</message>
@@ -747,7 +747,7 @@ to
<context>
<name>Q3UrlOperator</name>
<message>
- <location filename="../src/qt3support/network/q3urloperator.cpp" line="+356"/>
+ <location filename="../src/qt3support/network/q3urloperator.cpp" line="+386"/>
<location line="+260"/>
<location line="+4"/>
<source>The protocol `%1&apos; is not supported</source>
@@ -799,7 +799,7 @@ to
<context>
<name>Q3Wizard</name>
<message>
- <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+147"/>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
<source>&amp;Cancel</source>
<translation type="unfinished">&amp;إلغاء</translation>
</message>
@@ -827,9 +827,9 @@ to
<context>
<name>QAbstractSocket</name>
<message>
- <location filename="../src/network/socket/qabstractsocket.cpp" line="+838"/>
- <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+585"/>
- <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+627"/>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
<location line="+26"/>
<source>Host not found</source>
<translation type="unfinished"></translation>
@@ -872,7 +872,7 @@ to
<context>
<name>QAbstractSpinBox</name>
<message>
- <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1169"/>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/>
<source>&amp;Step up</source>
<translation type="unfinished"></translation>
</message>
@@ -890,13 +890,13 @@ to
<context>
<name>QApplication</name>
<message>
- <location filename="../src/gui/kernel/qapplication.cpp" line="+2212"/>
+ <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>RTL</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.h" line="+322"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
<source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
<translation>البرنامج &apos;%1&apos; يتطلّب Qt %2، تمّ إيجاد Qt %3.</translation>
</message>
@@ -906,7 +906,7 @@ to
<translation>خطأ: مكتبة Qt غير موافقة</translation>
</message>
<message>
- <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+346"/>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
<source>Activate</source>
<translation type="unfinished"></translation>
</message>
@@ -942,7 +942,7 @@ to
<context>
<name>QCheckBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+84"/>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/>
<source>Uncheck</source>
<translation type="unfinished"></translation>
</message>
@@ -960,7 +960,7 @@ to
<context>
<name>QColorDialog</name>
<message>
- <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1219"/>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/>
<source>Hu&amp;e:</source>
<translation>ال&amp;صّبغة:</translation>
</message>
@@ -1034,13 +1034,13 @@ to
<context>
<name>QComboBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1741"/>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
<location line="+65"/>
<source>Open</source>
<translation type="unfinished">فتح</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+514"/>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
<source>False</source>
<translation type="unfinished">خاطئ</translation>
</message>
@@ -1058,7 +1058,7 @@ to
<context>
<name>QCoreApplication</name>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+89"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
<source>%1: key is empty</source>
<comment>QSystemSemaphore</comment>
<translation type="unfinished"></translation>
@@ -1079,12 +1079,12 @@ to
<context>
<name>QDB2Driver</name>
<message>
- <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1217"/>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
<source>Unable to connect</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+263"/>
+ <location line="+303"/>
<source>Unable to commit transaction</source>
<translation type="unfinished"></translation>
</message>
@@ -1102,8 +1102,8 @@ to
<context>
<name>QDB2Result</name>
<message>
- <location line="-986"/>
- <location line="+242"/>
+ <location line="-1043"/>
+ <location line="+243"/>
<source>Unable to execute statement</source>
<translation type="unfinished"></translation>
</message>
@@ -1118,7 +1118,7 @@ to
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+91"/>
+ <location line="+92"/>
<source>Unable to fetch record %1</source>
<translation type="unfinished"></translation>
</message>
@@ -1136,7 +1136,7 @@ to
<context>
<name>QDateTimeEdit</name>
<message>
- <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2265"/>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
<source>AM</source>
<translation type="unfinished"></translation>
</message>
@@ -1159,7 +1159,7 @@ to
<context>
<name>QDial</name>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+921"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
<source>QDial</source>
<translation type="unfinished"></translation>
</message>
@@ -1177,7 +1177,7 @@ to
<context>
<name>QDialog</name>
<message>
- <location filename="../src/gui/dialogs/qdialog.cpp" line="+567"/>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
<source>What&apos;s This?</source>
<translation>ما هذا؟</translation>
</message>
@@ -1190,9 +1190,9 @@ to
<context>
<name>QDialogButtonBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1830"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
<location line="+464"/>
- <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+531"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/>
<source>OK</source>
<translation type="unfinished">موافقة</translation>
</message>
@@ -1315,7 +1315,7 @@ to
<context>
<name>QDirModel</name>
<message>
- <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+423"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/>
<source>Name</source>
<translation type="unfinished">الإسم</translation>
</message>
@@ -1345,7 +1345,7 @@ to
<context>
<name>QDockWidget</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1209"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
<source>Close</source>
<translation type="unfinished">إغلاق</translation>
</message>
@@ -1376,7 +1376,7 @@ to
<context>
<name>QErrorMessage</name>
<message>
- <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+361"/>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+391"/>
<source>&amp;Show this message again</source>
<translation>أ&amp;عرض مجدّداهذاالبلاغ</translation>
</message>
@@ -1404,13 +1404,18 @@ to
<context>
<name>QFile</name>
<message>
- <location filename="../src/corelib/io/qfile.cpp" line="+678"/>
- <location line="+130"/>
+ <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
+ <location line="+141"/>
<source>Destination file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+12"/>
+ <location line="-108"/>
+ <source>Cannot remove source file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+120"/>
<source>Cannot open %1 for input</source>
<translation type="unfinished"></translation>
</message>
@@ -1433,8 +1438,8 @@ to
<context>
<name>QFileDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+484"/>
- <location line="+423"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+515"/>
+ <location line="+444"/>
<source>All Files (*)</source>
<translation>جميع الملفّات (*)</translation>
</message>
@@ -1457,13 +1462,13 @@ to
<translation type="unfinished">معاينة مفصّلة</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+384"/>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+414"/>
<location line="+1"/>
<source>File</source>
<translation type="unfinished">ملفّ</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-440"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-461"/>
<source>Open</source>
<translation>فتح</translation>
</message>
@@ -1473,26 +1478,26 @@ to
<translation type="unfinished">حفظ تحت</translation>
</message>
<message>
- <location line="+653"/>
+ <location line="+678"/>
<location line="+50"/>
- <location line="+1440"/>
+ <location line="+1471"/>
<location line="+75"/>
<source>&amp;Open</source>
<translation>&amp;فتح</translation>
</message>
<message>
- <location line="-1565"/>
+ <location line="-1596"/>
<location line="+50"/>
<source>&amp;Save</source>
<translation>&amp;حفظ</translation>
</message>
<message>
- <location line="+1790"/>
+ <location line="+1822"/>
<source>Recent Places</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-2464"/>
+ <location line="-2521"/>
<source>&amp;Rename</source>
<translation type="unfinished">ت&amp;غيير الإسم</translation>
</message>
@@ -1507,33 +1512,33 @@ to
<translation type="unfinished">ع&amp;رض الملفّات المخفية</translation>
</message>
<message>
- <location line="+1908"/>
+ <location line="+1964"/>
<source>New Folder</source>
<translation type="unfinished">دليل جديد</translation>
</message>
<message>
- <location line="-1943"/>
+ <location line="-1999"/>
<source>Find Directory</source>
<translation type="unfinished">إيجاد الدّليل</translation>
</message>
<message>
- <location line="+660"/>
+ <location line="+685"/>
<source>Directories</source>
<translation>دلائل</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+130"/>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
<source>All Files (*.*)</source>
<translation type="unfinished">جميع الملفّات (*.*)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-619"/>
- <location line="+623"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-644"/>
+ <location line="+648"/>
<source>Directory:</source>
<translation type="unfinished">دليل:</translation>
</message>
<message>
- <location line="+807"/>
+ <location line="+828"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation type="unfinished"></translation>
@@ -1564,14 +1569,14 @@ Please verify the correct file name was given.</source>
</message>
<message>
<location filename="../src/gui/dialogs/qfiledialog.cpp" line="-54"/>
- <location line="+851"/>
+ <location line="+862"/>
<source>%1
Directory not found.
Please verify the correct directory name was given.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-217"/>
+ <location line="-218"/>
<source>&apos;%1&apos; is write protected.
Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
@@ -1597,7 +1602,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2062"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2118"/>
<source>Show </source>
<translation type="unfinished"></translation>
</message>
@@ -1613,19 +1618,19 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+631"/>
+ <location line="+656"/>
<location line="+38"/>
<source>&amp;Choose</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qsidebar.cpp" line="+388"/>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-662"/>
- <location line="+627"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-687"/>
+ <location line="+652"/>
<source>File &amp;name:</source>
<translation type="unfinished">إ&amp;سم الملفّ:</translation>
</message>
@@ -1645,7 +1650,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFileSystemModel</name>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+707"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+744"/>
<source>%1 TB</source>
<translation type="unfinished"></translation>
</message>
@@ -1707,7 +1712,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+204"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/>
<source>My Computer</source>
<translation type="unfinished"></translation>
</message>
@@ -1720,7 +1725,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFontDatabase</name>
<message>
- <location filename="../src/gui/text/qfontdatabase.cpp" line="+60"/>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
<location line="+1176"/>
<source>Normal</source>
<translation type="unfinished"></translation>
@@ -1937,7 +1942,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFontDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+742"/>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/>
<source>&amp;Font</source>
<translation>ال&amp;خطّ</translation>
</message>
@@ -1986,7 +1991,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFtp</name>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="+2273"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+2303"/>
<source>Host %1 found</source>
<translation type="unfinished">تمّ إيجاد المضيف %1</translation>
</message>
@@ -1996,7 +2001,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished">تمّ إيجاد المضيف</translation>
</message>
<message>
- <location filename="../src/network/access/qftp.cpp" line="+973"/>
+ <location filename="../src/network/access/qftp.cpp" line="+1003"/>
<location filename="../src/qt3support/network/q3ftp.cpp" line="-1456"/>
<location line="+1451"/>
<source>Connected to host %1</source>
@@ -2132,7 +2137,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QHostInfo</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_p.h" line="+153"/>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
<source>Unknown error</source>
<translation type="unfinished">خطأ مجهول</translation>
</message>
@@ -2140,11 +2145,11 @@ Do you want to delete it anyway?</source>
<context>
<name>QHostInfoAgent</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+148"/>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
<location line="+9"/>
<location line="+64"/>
<location line="+31"/>
- <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+150"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
<location line="+9"/>
<location line="+40"/>
<location line="+27"/>
@@ -2170,13 +2175,13 @@ Do you want to delete it anyway?</source>
<context>
<name>QHttp</name>
<message>
- <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+1712"/>
- <location filename="../src/qt3support/network/q3http.cpp" line="+1806"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+876"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+1836"/>
<source>Connection refused</source>
<translation>رفض الوصل</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="+2597"/>
+ <location filename="../src/network/access/qhttp.cpp" line="+2631"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
<source>Host %1 not found</source>
@@ -2189,12 +2194,12 @@ Do you want to delete it anyway?</source>
<translation>طول المحتوى خاطئ</translation>
</message>
<message>
- <location line="-2200"/>
+ <location line="-2204"/>
<source>HTTPS connection requested but SSL support not compiled in</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2282"/>
+ <location line="+2286"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+10"/>
<location line="+19"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+48"/>
@@ -2233,21 +2238,21 @@ Do you want to delete it anyway?</source>
<translation type="unfinished">وصل مغلق</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-1073"/>
- <location line="+816"/>
+ <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="-564"/>
+ <location line="-568"/>
<location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
<source>Request aborted</source>
<translation>تمّ إبطال الطّلب</translation>
</message>
<message>
- <location line="+575"/>
+ <location line="+579"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
<source>No server set to connect to</source>
<translation>ليس هناك أيّ خادم للوصل</translation>
@@ -2265,7 +2270,12 @@ Do you want to delete it anyway?</source>
<translation>صديرة استجابة الHTTP غير صالحة</translation>
</message>
<message>
- <location line="+120"/>
+ <location line="+28"/>
+ <source>Unknown authentication method</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+97"/>
<location line="+48"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
<location line="+47"/>
@@ -2288,7 +2298,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-133"/>
+ <location line="-138"/>
<source>Connection refused (or timed out)</source>
<translation type="unfinished"></translation>
</message>
@@ -2369,7 +2379,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseDriver</name>
<message>
- <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1378"/>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1428"/>
<source>Error opening database</source>
<translation type="unfinished"></translation>
</message>
@@ -2392,7 +2402,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseResult</name>
<message>
- <location line="-1077"/>
+ <location line="-1097"/>
<source>Unable to create BLOB</source>
<translation type="unfinished"></translation>
</message>
@@ -2412,7 +2422,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<location line="+189"/>
<source>Could not find array</source>
<translation type="unfinished"></translation>
@@ -2482,7 +2492,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIODevice</name>
<message>
- <location filename="../src/corelib/global/qglobal.cpp" line="+1830"/>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/>
<source>Permission denied</source>
<translation type="unfinished"></translation>
</message>
@@ -2502,7 +2512,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/io/qiodevice.cpp" line="+1506"/>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/>
<source>Unknown error</source>
<translation type="unfinished">خطأ مجهول</translation>
</message>
@@ -2510,7 +2520,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QInputContext</name>
<message>
- <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+212"/>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/>
<source>XIM</source>
<translation type="unfinished"></translation>
</message>
@@ -2533,7 +2543,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QInputDialog</name>
<message>
- <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+193"/>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
<source>Enter a value:</source>
<translation type="unfinished"></translation>
</message>
@@ -2541,7 +2551,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QLibrary</name>
<message>
- <location filename="../src/corelib/plugin/qlibrary.cpp" line="+348"/>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
<source>Could not mmap &apos;%1&apos;: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2572,7 +2582,7 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="-377"/>
- <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+250"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
<source>The shared library was not found.</source>
<translation type="unfinished"></translation>
</message>
@@ -2587,8 +2597,8 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+179"/>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+69"/>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
<source>Cannot load library %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2608,7 +2618,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QLineEdit</name>
<message>
- <location filename="../src/gui/widgets/qlineedit.cpp" line="+2649"/>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+2680"/>
<source>&amp;Undo</source>
<translation type="unfinished">&amp;تراجع</translation>
</message>
@@ -2646,8 +2656,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QLocalServer</name>
<message>
- <location filename="../src/network/socket/qlocalserver.cpp" line="+196"/>
- <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+201"/>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/>
<source>%1: Name error</source>
<translation type="unfinished"></translation>
</message>
@@ -2663,7 +2673,7 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="+5"/>
- <location filename="../src/network/socket/qlocalserver_win.cpp" line="+127"/>
+ <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/>
<source>%1: Unknown error %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2671,8 +2681,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QLocalSocket</name>
<message>
- <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+102"/>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+104"/>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/>
<source>%1: Connection refused</source>
<translation type="unfinished"></translation>
</message>
@@ -2685,7 +2695,7 @@ Do you want to delete it anyway?</source>
<message>
<location line="+3"/>
<location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
- <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+50"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/>
<location line="+43"/>
<source>%1: Invalid name</source>
<translation type="unfinished"></translation>
@@ -2742,7 +2752,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMYSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1200"/>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1231"/>
<source>Unable to open database &apos;</source>
<translation type="unfinished"></translation>
</message>
@@ -2752,7 +2762,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+123"/>
+ <location line="+127"/>
<source>Unable to begin transaction</source>
<translation type="unfinished"></translation>
</message>
@@ -2770,7 +2780,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMYSQLResult</name>
<message>
- <location line="-917"/>
+ <location line="-922"/>
<source>Unable to fetch data</source>
<translation type="unfinished"></translation>
</message>
@@ -2785,7 +2795,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+189"/>
+ <location line="+190"/>
<location line="+8"/>
<source>Unable to prepare statement</source>
<translation type="unfinished"></translation>
@@ -2830,7 +2840,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMdiArea</name>
<message>
- <location filename="../src/gui/widgets/qmdiarea.cpp" line="+260"/>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
<source>(Untitled)</source>
<translation type="unfinished"></translation>
</message>
@@ -2838,7 +2848,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMdiSubWindow</name>
<message>
- <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+250"/>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
<source>%1 - [%2]</source>
<translation type="unfinished">%1 - [%2]</translation>
</message>
@@ -2931,7 +2941,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMenu</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+127"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
<location line="+225"/>
<source>Close</source>
<translation type="unfinished">إغلاق</translation>
@@ -2988,7 +2998,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMessageBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1958"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1964"/>
<location line="+852"/>
<location filename="../src/gui/dialogs/qmessagebox.h" line="-52"/>
<location line="+8"/>
@@ -2996,22 +3006,17 @@ Do you want to delete it anyway?</source>
<translation>موافقة</translation>
</message>
<message>
- <location line="+503"/>
+ <location line="+509"/>
<source>About Qt</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-502"/>
+ <location line="-508"/>
<source>Help</source>
<translation type="unfinished">مساعدة</translation>
</message>
<message>
- <location line="+487"/>
- <source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="-1584"/>
+ <location line="-1097"/>
<source>Show Details...</source>
<translation type="unfinished"></translation>
</message>
@@ -3022,19 +3027,14 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="+1570"/>
- <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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+15"/>
- <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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
+ <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://www.qtsoftware.com/products/licensing&quot;&gt;www.qtsoftware.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://www.qtsoftware.com/qt/&quot;&gt;www.qtsoftware.com/qt&lt;/a&gt; for more information.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QMultiInputContext</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+58"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
<source>Select IM</source>
<translation type="unfinished"></translation>
</message>
@@ -3042,7 +3042,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMultiInputContextPlugin</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+65"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
<source>Multiple input method switcher</source>
<translation type="unfinished"></translation>
</message>
@@ -3055,7 +3055,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNativeSocketEngine</name>
<message>
- <location filename="../src/network/socket/qnativesocketengine.cpp" line="+176"/>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/>
<source>The remote host closed the connection</source>
<translation type="unfinished"></translation>
</message>
@@ -3188,7 +3188,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessCacheBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+35"/>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
<source>Error opening %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3196,7 +3196,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessFileBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+69"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/>
<source>Request for opening non-local file %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3224,7 +3224,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessFtpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+135"/>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3234,7 +3234,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+131"/>
+ <location line="+130"/>
<source>Logging in to %1 failed: authentication required</source>
<translation type="unfinished"></translation>
</message>
@@ -3252,7 +3252,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessHttpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+565"/>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3265,7 +3265,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+37"/>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/>
<source>Protocol &quot;%1&quot; is unknown</source>
<translation type="unfinished"></translation>
</message>
@@ -3273,7 +3273,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkReplyImpl</name>
<message>
- <location line="+422"/>
+ <location line="+432"/>
<location line="+22"/>
<source>Operation canceled</source>
<translation type="unfinished"></translation>
@@ -3282,7 +3282,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIDriver</name>
<message>
- <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2027"/>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2069"/>
<source>Unable to logon</source>
<translation type="unfinished"></translation>
</message>
@@ -3311,7 +3311,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIResult</name>
<message>
- <location line="-976"/>
+ <location line="-963"/>
<location line="+161"/>
<location line="+15"/>
<source>Unable to bind column for batch execute</source>
@@ -3338,18 +3338,12 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+29"/>
- <location line="+37"/>
+ <location line="+36"/>
<source>Unable to bind value</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-20"/>
- <source>Unable to execute select statement</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+32"/>
+ <location line="+19"/>
<source>Unable to execute statement</source>
<translation type="unfinished"></translation>
</message>
@@ -3357,7 +3351,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCDriver</name>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1657"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1785"/>
<source>Unable to connect</source>
<translation type="unfinished"></translation>
</message>
@@ -3367,7 +3361,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+234"/>
+ <location line="+242"/>
<source>Unable to disable autocommit</source>
<translation type="unfinished"></translation>
</message>
@@ -3390,19 +3384,19 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCResult</name>
<message>
- <location line="-1204"/>
+ <location line="-1218"/>
<location line="+349"/>
<source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-332"/>
- <location line="+625"/>
+ <location line="+626"/>
<source>Unable to execute statement</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-554"/>
+ <location line="-555"/>
<source>Unable to fetch next</source>
<translation type="unfinished"></translation>
</message>
@@ -3412,19 +3406,19 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+267"/>
+ <location line="+268"/>
<source>Unable to bind variable</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-474"/>
- <location line="+577"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-475"/>
+ <location line="+578"/>
<source>Unable to fetch last</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-671"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
<source>Unable to fetch</source>
<translation type="unfinished"></translation>
</message>
@@ -3442,12 +3436,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QObject</name>
<message>
- <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+134"/>
+ <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
<source>Home</source>
<translation type="unfinished">منزل</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+44"/>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
<source>Operation not supported on %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3457,7 +3451,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+145"/>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
<source>Write error writing to %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -3482,7 +3476,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/kernel/qhostinfo.cpp" line="+147"/>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
<location line="+57"/>
<source>No host name given</source>
<translation type="unfinished"></translation>
@@ -3491,7 +3485,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPPDOptionsModel</name>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1165"/>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/>
<source>Name</source>
<translation type="unfinished">الإسم</translation>
</message>
@@ -3504,7 +3498,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+732"/>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/>
<source>Unable to connect</source>
<translation type="unfinished"></translation>
</message>
@@ -3524,7 +3518,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+336"/>
+ <location line="+358"/>
<source>Unable to subscribe</source>
<translation type="unfinished"></translation>
</message>
@@ -3537,12 +3531,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QPSQLResult</name>
<message>
- <location line="-1035"/>
+ <location line="-1058"/>
<source>Unable to create query</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+373"/>
+ <location line="+374"/>
<source>Unable to prepare statement</source>
<translation type="unfinished"></translation>
</message>
@@ -3550,7 +3544,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPageSetupWidget</name>
<message>
- <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+274"/>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
<source>Centimeters (cm)</source>
<translation type="unfinished"></translation>
</message>
@@ -3666,7 +3660,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPrintDialog</name>
<message>
- <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+68"/>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/>
<source>locally connected</source>
<translation>موصل محليّا</translation>
</message>
@@ -3683,7 +3677,7 @@ Do you want to delete it anyway?</source>
<translation>مجهول</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+238"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
<source>OK</source>
<translation type="unfinished">موافقة</translation>
</message>
@@ -3700,7 +3694,7 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">الطّابعة</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+345"/>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+375"/>
<source>Print all</source>
<translation type="unfinished">طباعة الجميع</translation>
</message>
@@ -3880,7 +3874,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+80"/>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
<location line="+13"/>
<location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
<source>Print</source>
@@ -4128,13 +4122,13 @@ Please choose a different file name.</source>
<context>
<name>QPrintPreviewDialog</name>
<message>
- <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+38"/>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
<location line="+12"/>
<source>Page Setup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+222"/>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/>
<source>%1%</source>
<translation type="unfinished"></translation>
</message>
@@ -4412,8 +4406,8 @@ Please choose a different file name.</source>
<context>
<name>QProcess</name>
<message>
- <location filename="../src/corelib/io/qprocess_unix.cpp" line="+445"/>
- <location filename="../src/corelib/io/qprocess_win.cpp" line="+117"/>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
<source>Could not open input redirection for reading</source>
<translation type="unfinished"></translation>
</message>
@@ -4442,7 +4436,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/io/qprocess.cpp" line="+503"/>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+533"/>
<location line="+52"/>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
<location line="+50"/>
@@ -4462,6 +4456,11 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+912"/>
+ <source>No program defined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
<source>Process failed to start</source>
<translation type="unfinished"></translation>
@@ -4470,7 +4469,7 @@ Please choose a different file name.</source>
<context>
<name>QProgressDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+152"/>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
<source>Cancel</source>
<translation>إلغاء</translation>
</message>
@@ -4494,7 +4493,7 @@ Please choose a different file name.</source>
<context>
<name>QRegExp</name>
<message>
- <location filename="../src/corelib/tools/qregexp.cpp" line="+34"/>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/>
<source>no error occurred</source>
<translation>لم يحدث هناك أيّ خطأ</translation>
</message>
@@ -4542,7 +4541,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Driver</name>
<message>
- <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+353"/>
+ <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
<source>Error to open database</source>
<translation type="unfinished"></translation>
</message>
@@ -4565,12 +4564,12 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Result</name>
<message>
- <location line="-310"/>
+ <location line="-323"/>
<source>Unable to fetch results</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+139"/>
+ <location line="+147"/>
<source>Unable to execute statement</source>
<translation type="unfinished"></translation>
</message>
@@ -4578,7 +4577,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLiteDriver</name>
<message>
- <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+498"/>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/>
<source>Error opening database</source>
<translation type="unfinished"></translation>
</message>
@@ -4641,12 +4640,12 @@ Please choose a different file name.</source>
<context>
<name>QScrollBar</name>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="+419"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/>
<source>Scroll here</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Left edge</source>
<translation type="unfinished"></translation>
</message>
@@ -4656,7 +4655,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Right edge</source>
<translation type="unfinished"></translation>
</message>
@@ -4666,7 +4665,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Page left</source>
<translation type="unfinished"></translation>
</message>
@@ -4677,7 +4676,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Page right</source>
<translation type="unfinished"></translation>
</message>
@@ -4688,7 +4687,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Scroll left</source>
<translation type="unfinished"></translation>
</message>
@@ -4698,7 +4697,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Scroll right</source>
<translation type="unfinished"></translation>
</message>
@@ -4726,7 +4725,7 @@ Please choose a different file name.</source>
<context>
<name>QSharedMemory</name>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+177"/>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+207"/>
<source>%1: unable to set key on lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4737,7 +4736,7 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+168"/>
- <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+118"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
<source>%1: unable to lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4747,8 +4746,8 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+48"/>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+57"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
<source>%1: permission denied</source>
<translation type="unfinished"></translation>
</message>
@@ -4826,7 +4825,7 @@ Please choose a different file name.</source>
<context>
<name>QShortcut</name>
<message>
- <location filename="../src/gui/kernel/qkeysequence.cpp" line="+343"/>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/>
<source>Space</source>
<translation type="unfinished">فراغ</translation>
</message>
@@ -5407,7 +5406,7 @@ Please choose a different file name.</source>
<context>
<name>QSql</name>
<message>
- <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+860"/>
+ <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
<source>Delete</source>
<translation>حذف</translation>
</message>
@@ -5464,7 +5463,7 @@ Please choose a different file name.</source>
<context>
<name>QSslSocket</name>
<message>
- <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+539"/>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+569"/>
<source>Unable to write data: %1</source>
<translation type="unfinished"></translation>
</message>
@@ -5523,7 +5522,7 @@ Please choose a different file name.</source>
<name>QSystemSemaphore</name>
<message>
<location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+36"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
<source>%1: out of resources</source>
<translation type="unfinished"></translation>
</message>
@@ -5553,7 +5552,7 @@ Please choose a different file name.</source>
<context>
<name>QTDSDriver</name>
<message>
- <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+552"/>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
<source>Unable to open connection</source>
<translation type="unfinished"></translation>
</message>
@@ -5579,7 +5578,7 @@ Please choose a different file name.</source>
<context>
<name>QTcpServer</name>
<message>
- <location filename="../src/network/socket/qtcpserver.cpp" line="+252"/>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
<source>Operation on socket is not supported</source>
<translation type="unfinished"></translation>
</message>
@@ -5587,7 +5586,7 @@ Please choose a different file name.</source>
<context>
<name>QTextControl</name>
<message>
- <location filename="../src/gui/text/qtextcontrol.cpp" line="+1942"/>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/>
<source>&amp;Undo</source>
<translation type="unfinished">&amp;تراجع</translation>
</message>
@@ -5645,7 +5644,7 @@ Please choose a different file name.</source>
<context>
<name>QUdpSocket</name>
<message>
- <location filename="../src/network/socket/qudpsocket.cpp" line="+139"/>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
<source>This platform does not support IPv6</source>
<translation type="unfinished"></translation>
</message>
@@ -5653,7 +5652,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoGroup</name>
<message>
- <location filename="../src/gui/util/qundogroup.cpp" line="+356"/>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+386"/>
<source>Undo</source>
<translation type="unfinished">تراجع</translation>
</message>
@@ -5666,7 +5665,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoModel</name>
<message>
- <location filename="../src/gui/util/qundoview.cpp" line="+71"/>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
<source>&lt;empty&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -5674,7 +5673,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoStack</name>
<message>
- <location filename="../src/gui/util/qundostack.cpp" line="+804"/>
+ <location filename="../src/gui/util/qundostack.cpp" line="+834"/>
<source>Undo</source>
<translation type="unfinished">تراجع</translation>
</message>
@@ -5745,7 +5744,7 @@ Please choose a different file name.</source>
<context>
<name>QWebFrame</name>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+686"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
<source>Request cancelled</source>
<translation type="unfinished"></translation>
</message>
@@ -6155,7 +6154,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1342"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
<source>JavaScript Alert - %1</source>
<translation type="unfinished"></translation>
</message>
@@ -6231,6 +6230,11 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+3"/>
+ <source>Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
<source>Select to the next character</source>
<translation type="unfinished"></translation>
</message>
@@ -6299,11 +6303,21 @@ Please choose a different file name.</source>
<source>Delete to the end of the word</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+33"/>
+ <source>Insert a new paragraph</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QWhatsThisAction</name>
<message>
- <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+492"/>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
<source>What&apos;s This?</source>
<translation type="unfinished">ما هذا؟</translation>
</message>
@@ -6311,7 +6325,7 @@ Please choose a different file name.</source>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5290"/>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/>
<source>*</source>
<translation type="unfinished"></translation>
</message>
@@ -6319,7 +6333,7 @@ Please choose a different file name.</source>
<context>
<name>QWizard</name>
<message>
- <location filename="../src/gui/dialogs/qwizard.cpp" line="+605"/>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/>
<source>&lt; &amp;Back</source>
<translation type="unfinished">&lt; &amp;رجوع</translation>
</message>
@@ -6381,7 +6395,7 @@ Please choose a different file name.</source>
<context>
<name>QWorkspace</name>
<message>
- <location filename="../src/gui/widgets/qworkspace.cpp" line="+1064"/>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/>
<source>&amp;Restore</source>
<translation type="unfinished">ا&amp;ستعاد</translation>
</message>
@@ -6451,7 +6465,7 @@ Please choose a different file name.</source>
<context>
<name>QXml</name>
<message>
- <location filename="../src/xml/sax/qxml.cpp" line="+28"/>
+ <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
<source>no error occurred</source>
<translation>لم يحدث هناك أيّ خطأ</translation>
</message>
@@ -6569,8 +6583,8 @@ Please choose a different file name.</source>
<context>
<name>QXmlStream</name>
<message>
- <location filename="../src/corelib/xml/qxmlstream.cpp" line="+562"/>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1739"/>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/>
<source>Extra content at end of document.</source>
<translation type="unfinished"></translation>
</message>
@@ -6754,7 +6768,7 @@ Please choose a different file name.</source>
<context>
<name>QtXmlPatterns</name>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+175"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
<source>An %1-attribute with value %2 has already been declared.</source>
<translation type="unfinished"></translation>
</message>
@@ -6764,12 +6778,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+54"/>
+ <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
<source>Network timeout.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+290"/>
+ <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>
@@ -6779,7 +6793,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+50"/>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
<source>Year %1 is invalid because it begins with %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6819,7 +6833,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+69"/>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/>
<location line="+15"/>
<source>At least one component must be present.</source>
<translation type="unfinished"></translation>
@@ -6830,7 +6844,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+34"/>
+ <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
<source>No operand in an integer division, %1, can be %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6845,17 +6859,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+102"/>
+ <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/>
<source>%1 is not a valid value of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+193"/>
+ <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="+35"/>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
<source>Integer division (%1) by zero (%2) is undefined.</source>
<translation type="unfinished"></translation>
</message>
@@ -6886,17 +6900,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+49"/>
+ <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/>
<source>A value of type %1 cannot have an Effective Boolean Value.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+48"/>
+ <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/>
<source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+372"/>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
<source>Value %1 of type %2 exceeds maximum (%3).</source>
<translation type="unfinished"></translation>
</message>
@@ -6906,7 +6920,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+61"/>
+ <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/>
<source>A value of type %1 must contain an even number of digits. The value %2 does not.</source>
<translation type="unfinished"></translation>
</message>
@@ -6916,7 +6930,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+177"/>
+ <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
<source>Operator %1 cannot be used on type %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6926,7 +6940,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+36"/>
+ <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 type="unfinished"></translation>
</message>
@@ -6936,7 +6950,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
<source>Type error in cast, expected %1, received %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6946,7 +6960,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+104"/>
+ <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/>
<source>No casting is possible with %1 as the target type.</source>
<translation type="unfinished"></translation>
</message>
@@ -6971,7 +6985,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+37"/>
+ <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
<source>A comment cannot contain %1</source>
<translation type="unfinished"></translation>
</message>
@@ -6981,7 +6995,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+137"/>
+ <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
<source>No comparisons can be done involving the type %1.</source>
<translation type="unfinished"></translation>
</message>
@@ -6991,12 +7005,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+56"/>
+ <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="+139"/>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
<source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
<translation type="unfinished"></translation>
</message>
@@ -7006,7 +7020,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+76"/>
+ <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>
@@ -7016,7 +7030,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+83"/>
+ <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+113"/>
<source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source>
<translation type="unfinished"></translation>
</message>
@@ -7026,33 +7040,33 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+79"/>
+ <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="+54"/>
+ <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/>
<source>The data of a processing instruction cannot contain the string %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+52"/>
+ <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="+126"/>
+ <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="+39"/>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
<source>%1 is an invalid %2</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+47"/>
+ <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/>
<source>%1 takes at most %n argument(s). %2 is therefore invalid.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -7066,7 +7080,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+90"/>
+ <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/>
<source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source>
<translation type="unfinished"></translation>
</message>
@@ -7081,27 +7095,27 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/>
<source>%1 is not a valid XML 1.0 character.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+167"/>
+ <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
<source>The first argument to %1 cannot be of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+56"/>
+ <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="+31"/>
+ <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
<source>%1 was called.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+64"/>
+ <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>
@@ -7116,7 +7130,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+62"/>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
<source>%1 matches newline characters</source>
<translation type="unfinished"></translation>
</message>
@@ -7151,17 +7165,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+317"/>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/>
<source>It will not be possible to retrieve %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+24"/>
+ <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="+249"/>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
<source>The default collection is undefined</source>
<translation type="unfinished"></translation>
</message>
@@ -7171,12 +7185,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+222"/>
+ <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="+57"/>
+ <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>
@@ -7186,17 +7200,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+28"/>
+ <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="+37"/>
+ <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/>
<source>The item %1 did not match the required type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+319"/>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/>
<location line="+7253"/>
<source>%1 is an unknown schema type.</source>
<translation type="unfinished"></translation>
@@ -7217,7 +7231,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+63"/>
+ <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
<source>The variable %1 is unused</source>
<translation type="unfinished"></translation>
</message>
@@ -7499,7 +7513,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+25"/>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
<source>empty</source>
<translation type="unfinished"></translation>
</message>
@@ -7524,7 +7538,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+33"/>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
<source>Required type is %1, but %2 was found.</source>
<translation type="unfinished"></translation>
</message>
@@ -7539,7 +7553,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+56"/>
+ <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>
@@ -7549,12 +7563,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+90"/>
+ <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/>
<source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+284"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
<source>%1 is an unsupported encoding.</source>
<translation type="unfinished"></translation>
</message>
@@ -7569,13 +7583,13 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+89"/>
+ <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
<source>Ambiguous rule match.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+39"/>
- <source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source>
+ <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>
@@ -7594,12 +7608,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+87"/>
+ <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
<source>Circularity detected</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+115"/>
+ <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/>
<source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
<translation type="unfinished"></translation>
</message>
@@ -7609,12 +7623,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+35"/>
+ <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="+489"/>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
<source>Element %1 is not allowed at this location.</source>
<translation type="unfinished"></translation>
</message>
@@ -7669,7 +7683,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+153"/>
+ <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/>
<source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source>
<translation type="unfinished"></translation>
</message>
@@ -7744,7 +7758,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+432"/>
+ <location line="+434"/>
<source>Element %1 cannot have a sequence constructor.</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/qt_de.ts b/translations/qt_de.ts
index 640ad40..70cf6f3 100644
--- a/translations/qt_de.ts
+++ b/translations/qt_de.ts
@@ -1,11 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="de">
-<defaultcodec></defaultcodec>
<context>
<name>AudioOutput</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+374"/>
+ <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;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>
@@ -23,7 +22,7 @@
<context>
<name>CloseButton</name>
<message>
- <location filename="../src/gui/widgets/qtabbar.cpp" line="+2217"/>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/>
<source>Close Tab</source>
<translation>Schließen</translation>
</message>
@@ -81,7 +80,7 @@ Die Audio- und Video-Unterstützung wurde abgeschaltet</translation>
<context>
<name>Phonon::Gstreamer::MediaObject</name>
<message>
- <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+88"/>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/>
<source>Cannot start playback.
Check your Gstreamer installation and make sure you
@@ -95,24 +94,24 @@ Bitte prüfen Sie die Gstreamer-Installation und stellen Sie sicher, dass das Pa
<translation>Es sind nicht alle erforderlichen Codecs installiert. Um diesen Inhalt abzuspielen, muss der folgende Codec installiert werden: %0</translation>
</message>
<message>
- <location line="+653"/>
- <location line="+9"/>
+ <location line="+676"/>
+ <location line="+8"/>
<location line="+15"/>
- <location line="+7"/>
- <location line="+5"/>
- <location line="+20"/>
- <location line="+317"/>
+ <location line="+9"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+335"/>
<location line="+24"/>
<source>Could not open media source.</source>
<translation>Die Medienquelle konnte nicht geöffnet werden.</translation>
</message>
<message>
- <location line="-381"/>
+ <location line="-403"/>
<source>Invalid source type.</source>
<translation>Ungültiger Typ der Medienquelle.</translation>
</message>
<message>
- <location line="+355"/>
+ <location line="+377"/>
<source>Could not locate media source.</source>
<translation>Die Medienquelle konnte nicht gefunden werden.</translation>
</message>
@@ -146,7 +145,7 @@ Bitte prüfen Sie die Gstreamer-Installation und stellen Sie sicher, dass das Pa
<context>
<name>Q3Accel</name>
<message>
- <location filename="../src/qt3support/other/q3accel.cpp" line="+451"/>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
<source>%1, %2 not defined</source>
<translation>%1, %2 sind nicht definiert</translation>
</message>
@@ -159,7 +158,7 @@ Bitte prüfen Sie die Gstreamer-Installation und stellen Sie sicher, dass das Pa
<context>
<name>Q3DataTable</name>
<message>
- <location filename="../src/qt3support/sql/q3datatable.cpp" line="+253"/>
+ <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
<source>True</source>
<translation>Wahr</translation>
</message>
@@ -187,7 +186,7 @@ Bitte prüfen Sie die Gstreamer-Installation und stellen Sie sicher, dass das Pa
<context>
<name>Q3FileDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+834"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+864"/>
<source>Copy or Move a File</source>
<translation>Datei kopieren oder verschieben</translation>
</message>
@@ -212,7 +211,7 @@ Bitte prüfen Sie die Gstreamer-Installation und stellen Sie sicher, dass das Pa
<location line="-157"/>
<location line="+49"/>
<location line="+2153"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+80"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
<source>All Files (*)</source>
<translation>Alle Dateien (*)</translation>
</message>
@@ -352,7 +351,7 @@ Bitte prüfen Sie die Gstreamer-Installation und stellen Sie sicher, dass das Pa
<message>
<location line="+704"/>
<location line="+2100"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+307"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/>
<source>Open</source>
<translation>Öffnen</translation>
</message>
@@ -520,7 +519,7 @@ Datei konnte nicht gefunden werden.
<context>
<name>Q3LocalFs</name>
<message>
- <location filename="../src/qt3support/network/q3localfs.cpp" line="+100"/>
+ <location filename="../src/qt3support/network/q3localfs.cpp" line="+130"/>
<location line="+10"/>
<source>Could not read directory
%1</source>
@@ -570,7 +569,7 @@ nach
<context>
<name>Q3MainWindow</name>
<message>
- <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2021"/>
+ <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
<source>Line up</source>
<translation>Ausrichten</translation>
</message>
@@ -583,7 +582,7 @@ nach
<context>
<name>Q3NetworkProtocol</name>
<message>
- <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+824"/>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
<source>Operation stopped by the user</source>
<translation>Operation von Benutzer angehalten</translation>
</message>
@@ -591,7 +590,7 @@ nach
<context>
<name>Q3ProgressDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+194"/>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
<location line="+61"/>
<source>Cancel</source>
<translation>Abbrechen</translation>
@@ -600,7 +599,7 @@ nach
<context>
<name>Q3TabDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+159"/>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/>
<location line="+814"/>
<source>OK</source>
<translation>OK</translation>
@@ -629,7 +628,7 @@ nach
<context>
<name>Q3TextEdit</name>
<message>
- <location filename="../src/qt3support/text/q3textedit.cpp" line="+5399"/>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
<source>&amp;Undo</source>
<translation>&amp;Rückgängig</translation>
</message>
@@ -668,7 +667,7 @@ nach
<context>
<name>Q3TitleBar</name>
<message>
- <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+216"/>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
<source>System</source>
<translation>System</translation>
</message>
@@ -736,7 +735,7 @@ nach
<context>
<name>Q3ToolBar</name>
<message>
- <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+662"/>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
<source>More...</source>
<translation>Mehr...</translation>
</message>
@@ -744,7 +743,7 @@ nach
<context>
<name>Q3UrlOperator</name>
<message>
- <location filename="../src/qt3support/network/q3urloperator.cpp" line="+356"/>
+ <location filename="../src/qt3support/network/q3urloperator.cpp" line="+386"/>
<location line="+260"/>
<location line="+4"/>
<source>The protocol `%1&apos; is not supported</source>
@@ -796,7 +795,7 @@ nach
<context>
<name>Q3Wizard</name>
<message>
- <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+147"/>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
<source>&amp;Cancel</source>
<translation>&amp;Abbrechen</translation>
</message>
@@ -824,9 +823,9 @@ nach
<context>
<name>QAbstractSocket</name>
<message>
- <location filename="../src/network/socket/qabstractsocket.cpp" line="+838"/>
- <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+585"/>
- <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+627"/>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
<location line="+26"/>
<source>Host not found</source>
<translation>Rechner konnte nicht gefunden werden</translation>
@@ -869,7 +868,7 @@ nach
<context>
<name>QAbstractSpinBox</name>
<message>
- <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1169"/>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/>
<source>&amp;Step up</source>
<translation>&amp;Inkrementieren</translation>
</message>
@@ -887,13 +886,13 @@ nach
<context>
<name>QApplication</name>
<message>
- <location filename="../src/gui/kernel/qapplication.cpp" line="+2212"/>
+ <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>
</message>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.h" line="+322"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
<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>
@@ -903,7 +902,7 @@ nach
<translation>Qt Bibliothek ist inkompatibel</translation>
</message>
<message>
- <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+346"/>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
<source>Activate</source>
<translation>Aktivieren</translation>
</message>
@@ -939,7 +938,7 @@ nach
<context>
<name>QCheckBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+84"/>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/>
<source>Uncheck</source>
<translation>Löschen</translation>
</message>
@@ -957,7 +956,7 @@ nach
<context>
<name>QColorDialog</name>
<message>
- <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1219"/>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/>
<source>Hu&amp;e:</source>
<translation>Farb&amp;ton:</translation>
</message>
@@ -1015,13 +1014,13 @@ nach
<context>
<name>QComboBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1741"/>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
<location line="+65"/>
<source>Open</source>
<translation>Öffnen</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+514"/>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
<source>False</source>
<translation>Falsch</translation>
</message>
@@ -1039,7 +1038,7 @@ nach
<context>
<name>QCoreApplication</name>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+89"/>
+ <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>
@@ -1060,12 +1059,12 @@ nach
<context>
<name>QDB2Driver</name>
<message>
- <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1217"/>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
<source>Unable to connect</source>
<translation>Es kann keine Verbindung aufgebaut werden</translation>
</message>
<message>
- <location line="+263"/>
+ <location line="+303"/>
<source>Unable to commit transaction</source>
<translation>Die Transaktion konnte nicht durchgeführt werden (Operation &apos;commit&apos; fehlgeschlagen)</translation>
</message>
@@ -1083,8 +1082,8 @@ nach
<context>
<name>QDB2Result</name>
<message>
- <location line="-986"/>
- <location line="+242"/>
+ <location line="-1043"/>
+ <location line="+243"/>
<source>Unable to execute statement</source>
<translation>Der Befehl konnte nicht ausgeführt werden</translation>
</message>
@@ -1099,7 +1098,7 @@ nach
<translation>Die Variable konnte nicht gebunden werden</translation>
</message>
<message>
- <location line="+91"/>
+ <location line="+92"/>
<source>Unable to fetch record %1</source>
<translation>Der Datensatz %1 konnte nicht abgeholt werden</translation>
</message>
@@ -1117,7 +1116,7 @@ nach
<context>
<name>QDateTimeEdit</name>
<message>
- <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2265"/>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
<source>AM</source>
<translation>AM</translation>
</message>
@@ -1140,7 +1139,7 @@ nach
<context>
<name>QDial</name>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+921"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
<source>QDial</source>
<translation>QDial</translation>
</message>
@@ -1158,7 +1157,7 @@ nach
<context>
<name>QDialog</name>
<message>
- <location filename="../src/gui/dialogs/qdialog.cpp" line="+567"/>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
<source>What&apos;s This?</source>
<translation>Direkthilfe</translation>
</message>
@@ -1171,9 +1170,9 @@ nach
<context>
<name>QDialogButtonBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1830"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
<location line="+464"/>
- <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+531"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -1296,7 +1295,7 @@ nach
<context>
<name>QDirModel</name>
<message>
- <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+423"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/>
<source>Name</source>
<translation>Name</translation>
</message>
@@ -1326,7 +1325,7 @@ nach
<context>
<name>QDockWidget</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1209"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
<source>Close</source>
<translation>Schließen</translation>
</message>
@@ -1357,7 +1356,7 @@ nach
<context>
<name>QErrorMessage</name>
<message>
- <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+361"/>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+391"/>
<source>&amp;Show this message again</source>
<translation>Diese Meldung noch einmal an&amp;zeigen</translation>
</message>
@@ -1385,13 +1384,18 @@ nach
<context>
<name>QFile</name>
<message>
- <location filename="../src/corelib/io/qfile.cpp" line="+678"/>
- <location line="+130"/>
+ <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
+ <location line="+141"/>
<source>Destination file exists</source>
<translation>Die Zieldatei existiert bereits</translation>
</message>
<message>
- <location line="+12"/>
+ <location line="-108"/>
+ <source>Cannot remove source file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+120"/>
<source>Cannot open %1 for input</source>
<translation>%1 konnte nicht zum Lesen geöffnet werden</translation>
</message>
@@ -1414,8 +1418,8 @@ nach
<context>
<name>QFileDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+484"/>
- <location line="+423"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+515"/>
+ <location line="+444"/>
<source>All Files (*)</source>
<translation>Alle Dateien (*)</translation>
</message>
@@ -1438,13 +1442,13 @@ nach
<translation>Details</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+384"/>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+414"/>
<location line="+1"/>
<source>File</source>
<translation>Datei</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-440"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-461"/>
<source>Open</source>
<translation>Öffnen</translation>
</message>
@@ -1454,26 +1458,26 @@ nach
<translation>Speichern unter</translation>
</message>
<message>
- <location line="+653"/>
+ <location line="+678"/>
<location line="+50"/>
- <location line="+1440"/>
+ <location line="+1471"/>
<location line="+75"/>
<source>&amp;Open</source>
<translation>&amp;Öffnen</translation>
</message>
<message>
- <location line="-1565"/>
+ <location line="-1596"/>
<location line="+50"/>
<source>&amp;Save</source>
<translation>S&amp;peichern</translation>
</message>
<message>
- <location line="+1790"/>
+ <location line="+1822"/>
<source>Recent Places</source>
<translation>Zuletzt besucht</translation>
</message>
<message>
- <location line="-2464"/>
+ <location line="-2521"/>
<source>&amp;Rename</source>
<translation>&amp;Umbenennen</translation>
</message>
@@ -1488,33 +1492,33 @@ nach
<translation>&amp;Versteckte Dateien anzeigen</translation>
</message>
<message>
- <location line="+1908"/>
+ <location line="+1964"/>
<source>New Folder</source>
<translation>Neues Verzeichnis</translation>
</message>
<message>
- <location line="-1943"/>
+ <location line="-1999"/>
<source>Find Directory</source>
<translation>Verzeichnis suchen</translation>
</message>
<message>
- <location line="+660"/>
+ <location line="+685"/>
<source>Directories</source>
<translation>Verzeichnisse</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+130"/>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
<source>All Files (*.*)</source>
<translation>Alle Dateien (*.*)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-619"/>
- <location line="+623"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-644"/>
+ <location line="+648"/>
<source>Directory:</source>
<translation>Verzeichnis:</translation>
</message>
<message>
- <location line="+807"/>
+ <location line="+828"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>Die Datei %1 existiert bereits.
@@ -1548,7 +1552,7 @@ Stellen Sie sicher, dass der Dateiname richtig ist.</translation>
</message>
<message>
<location filename="../src/gui/dialogs/qfiledialog.cpp" line="-54"/>
- <location line="+851"/>
+ <location line="+862"/>
<source>%1
Directory not found.
Please verify the correct directory name was given.</source>
@@ -1557,7 +1561,7 @@ Das Verzeichnis konnte nicht gefunden werden.
Stellen Sie sicher, dass der Verzeichnisname richtig ist.</translation>
</message>
<message>
- <location line="-217"/>
+ <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.
@@ -1584,7 +1588,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Unbekannt</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2062"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2118"/>
<source>Show </source>
<translation>Anzeigen </translation>
</message>
@@ -1600,19 +1604,19 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>&amp;Neues Verzeichnis</translation>
</message>
<message>
- <location line="+631"/>
+ <location line="+656"/>
<location line="+38"/>
<source>&amp;Choose</source>
<translation>&amp;Auswählen</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qsidebar.cpp" line="+388"/>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/>
<source>Remove</source>
<translation>Löschen</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-662"/>
- <location line="+627"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-687"/>
+ <location line="+652"/>
<source>File &amp;name:</source>
<translation>Datei&amp;name:</translation>
</message>
@@ -1632,7 +1636,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QFileSystemModel</name>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+707"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+744"/>
<source>%1 TB</source>
<translation>%1 TB</translation>
</message>
@@ -1694,7 +1698,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Änderungsdatum</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+204"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/>
<source>My Computer</source>
<translation>Mein Computer</translation>
</message>
@@ -1707,7 +1711,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QFontDatabase</name>
<message>
- <location filename="../src/gui/text/qfontdatabase.cpp" line="+60"/>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
<location line="+1176"/>
<source>Normal</source>
<translation>Normal</translation>
@@ -1924,7 +1928,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QFontDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+742"/>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/>
<source>&amp;Font</source>
<translation>&amp;Schriftart</translation>
</message>
@@ -1973,7 +1977,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QFtp</name>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="+2273"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+2303"/>
<source>Host %1 found</source>
<translation>Rechner %1 gefunden</translation>
</message>
@@ -1983,7 +1987,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Rechner gefunden</translation>
</message>
<message>
- <location filename="../src/network/access/qftp.cpp" line="+973"/>
+ <location filename="../src/network/access/qftp.cpp" line="+1003"/>
<location filename="../src/qt3support/network/q3ftp.cpp" line="-1456"/>
<location line="+1451"/>
<source>Connected to host %1</source>
@@ -2119,7 +2123,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QHostInfo</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_p.h" line="+153"/>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
<source>Unknown error</source>
<translation>Unbekannter Fehler</translation>
</message>
@@ -2127,11 +2131,11 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QHostInfoAgent</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+148"/>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
<location line="+9"/>
<location line="+64"/>
<location line="+31"/>
- <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+150"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
<location line="+9"/>
<location line="+40"/>
<location line="+27"/>
@@ -2157,13 +2161,13 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QHttp</name>
<message>
- <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+1712"/>
- <location filename="../src/qt3support/network/q3http.cpp" line="+1806"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+876"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+1836"/>
<source>Connection refused</source>
<translation>Verbindung verweigert</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="+2597"/>
+ <location filename="../src/network/access/qhttp.cpp" line="+2631"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
<source>Host %1 not found</source>
@@ -2215,21 +2219,21 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Verbindung beendet</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-1073"/>
- <location line="+816"/>
+ <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="-564"/>
+ <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="+575"/>
+ <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>
@@ -2247,7 +2251,12 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Der Kopfteil der HTTP-Antwort ist ungültig</translation>
</message>
<message>
- <location line="+120"/>
+ <location line="+28"/>
+ <source>Unknown authentication method</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+97"/>
<location line="+48"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
<location line="+47"/>
@@ -2295,12 +2304,12 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Es wurde ein unbekanntes Protokoll angegeben</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-133"/>
+ <location filename="../src/network/access/qhttp.cpp" line="-138"/>
<source>Connection refused (or timed out)</source>
<translation>Verbindung verweigert oder Zeitlimit überschritten</translation>
</message>
<message>
- <location line="-2259"/>
+ <location line="-2263"/>
<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>
@@ -2356,7 +2365,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QIBaseDriver</name>
<message>
- <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1378"/>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1428"/>
<source>Error opening database</source>
<translation>Die Datenbankverbindung konnte nicht geöffnet werden</translation>
</message>
@@ -2379,7 +2388,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QIBaseResult</name>
<message>
- <location line="-1077"/>
+ <location line="-1097"/>
<source>Unable to create BLOB</source>
<translation>Es konnte kein BLOB erzeugt werden</translation>
</message>
@@ -2399,7 +2408,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Der BLOB konnte nicht gelesen werden</translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<location line="+189"/>
<source>Could not find array</source>
<translation>Das Feld konnte nicht gefunden werden</translation>
@@ -2469,7 +2478,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QIODevice</name>
<message>
- <location filename="../src/corelib/global/qglobal.cpp" line="+1830"/>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/>
<source>Permission denied</source>
<translation>Zugriff verweigert</translation>
</message>
@@ -2489,7 +2498,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Kein freier Speicherplatz auf dem Gerät vorhanden</translation>
</message>
<message>
- <location filename="../src/corelib/io/qiodevice.cpp" line="+1506"/>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/>
<source>Unknown error</source>
<translation>Unbekannter Fehler</translation>
</message>
@@ -2497,7 +2506,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QInputContext</name>
<message>
- <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+212"/>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/>
<source>XIM</source>
<translation>XIM</translation>
</message>
@@ -2520,7 +2529,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QInputDialog</name>
<message>
- <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+193"/>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
<source>Enter a value:</source>
<translation>Geben Sie einen Wert ein:</translation>
</message>
@@ -2528,7 +2537,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QLibrary</name>
<message>
- <location filename="../src/corelib/plugin/qlibrary.cpp" line="+348"/>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
<source>Could not mmap &apos;%1&apos;: %2</source>
<translation>Operation mmap fehlgeschlagen für &apos;%1&apos;: %2</translation>
</message>
@@ -2559,7 +2568,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
</message>
<message>
<location line="-377"/>
- <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+250"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
<source>The shared library was not found.</source>
<translation>Die dynamische Bibliothek konnte nicht gefunden werden.</translation>
</message>
@@ -2574,8 +2583,8 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Das Plugin &apos;%1&apos; verwendet eine inkompatible Qt-Bibliothek. (Im Debug- und Release-Modus erstellte Bibliotheken können nicht zusammen verwendet werden.)</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+179"/>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+69"/>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
<source>Cannot load library %1: %2</source>
<translation>Die Library %1 kann nicht geladen werden: %2</translation>
</message>
@@ -2595,7 +2604,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QLineEdit</name>
<message>
- <location filename="../src/gui/widgets/qlineedit.cpp" line="+2679"/>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+2710"/>
<source>Select All</source>
<translation>Alles auswählen</translation>
</message>
@@ -2633,8 +2642,8 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QLocalServer</name>
<message>
- <location filename="../src/network/socket/qlocalserver.cpp" line="+196"/>
- <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+201"/>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/>
<source>%1: Name error</source>
<translation>%1: Fehlerhafter Name</translation>
</message>
@@ -2650,7 +2659,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
</message>
<message>
<location line="+5"/>
- <location filename="../src/network/socket/qlocalserver_win.cpp" line="+127"/>
+ <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/>
<source>%1: Unknown error %2</source>
<translation>%1: Unbekannter Fehler %2</translation>
</message>
@@ -2658,8 +2667,8 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QLocalSocket</name>
<message>
- <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+102"/>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+104"/>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/>
<source>%1: Connection refused</source>
<translation>%1: Der Aufbau einer Verbindung wurde verweigert</translation>
</message>
@@ -2672,7 +2681,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<message>
<location line="+3"/>
<location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
- <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+50"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/>
<location line="+43"/>
<source>%1: Invalid name</source>
<translation>%1: Ungültiger Name</translation>
@@ -2729,7 +2738,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QMYSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1200"/>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1231"/>
<source>Unable to open database &apos;</source>
<translation>Die Datenbankverbindung konnte nicht geöffnet werden &apos;</translation>
</message>
@@ -2739,7 +2748,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Es kann keine Verbindung aufgebaut werden</translation>
</message>
<message>
- <location line="+123"/>
+ <location line="+127"/>
<source>Unable to begin transaction</source>
<translation>Es konnte keine Transaktion gestartet werden</translation>
</message>
@@ -2757,7 +2766,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QMYSQLResult</name>
<message>
- <location line="-917"/>
+ <location line="-922"/>
<source>Unable to fetch data</source>
<translation>Es konnten keine Daten abgeholt werden</translation>
</message>
@@ -2772,7 +2781,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Das Ergebnis konnte nicht gespeichert werden</translation>
</message>
<message>
- <location line="+189"/>
+ <location line="+190"/>
<location line="+8"/>
<source>Unable to prepare statement</source>
<translation>Der Befehl konnte nicht initialisiert werden</translation>
@@ -2817,7 +2826,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QMdiArea</name>
<message>
- <location filename="../src/gui/widgets/qmdiarea.cpp" line="+260"/>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
<source>(Untitled)</source>
<translation>(Unbenannt)</translation>
</message>
@@ -2825,7 +2834,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QMdiSubWindow</name>
<message>
- <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+250"/>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
<source>%1 - [%2]</source>
<translation>%1 - [%2]</translation>
</message>
@@ -2918,7 +2927,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QMenu</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+127"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
<location line="+225"/>
<source>Close</source>
<translation>Schließen</translation>
@@ -2940,7 +2949,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QMessageBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1958"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1964"/>
<location line="+852"/>
<location filename="../src/gui/dialogs/qmessagebox.h" line="-52"/>
<location line="+8"/>
@@ -2948,22 +2957,21 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>OK</translation>
</message>
<message>
- <location line="+503"/>
+ <location line="+509"/>
<source>About Qt</source>
<translation>Über Qt</translation>
</message>
<message>
- <location line="-502"/>
+ <location line="-508"/>
<source>Help</source>
<translation>Hilfe</translation>
</message>
<message>
- <location line="+487"/>
<source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Dieses Programm verwendet Qt-Version %1.&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Dieses Programm verwendet Qt-Version %1.&lt;/p&gt;</translation>
</message>
<message>
- <location line="-1584"/>
+ <location line="-1097"/>
<source>Show Details...</source>
<translation>Details einblenden...</translation>
</message>
@@ -2974,19 +2982,14 @@ Möchten sie die Datei trotzdem löschen?</translation>
</message>
<message>
<location line="+1570"/>
- <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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+15"/>
- <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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
+ <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://www.qtsoftware.com/products/licensing&quot;&gt;www.qtsoftware.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://www.qtsoftware.com/qt/&quot;&gt;www.qtsoftware.com/qt&lt;/a&gt; for more information.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QMultiInputContext</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+58"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
<source>Select IM</source>
<translation>Eingabemethode auswählen</translation>
</message>
@@ -2994,7 +2997,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QMultiInputContextPlugin</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+65"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
<source>Multiple input method switcher</source>
<translation>Umschalter für Eingabemethoden</translation>
</message>
@@ -3007,7 +3010,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QNativeSocketEngine</name>
<message>
- <location filename="../src/network/socket/qnativesocketengine.cpp" line="+176"/>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/>
<source>The remote host closed the connection</source>
<translation>Der entfernte Rechner hat die Verbindung geschlossen</translation>
</message>
@@ -3140,7 +3143,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QNetworkAccessCacheBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+35"/>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
<source>Error opening %1</source>
<translation>%1 konnte nicht geöffnet werden</translation>
</message>
@@ -3148,7 +3151,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QNetworkAccessFileBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+69"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/>
<source>Request for opening non-local file %1</source>
<translation>Anforderung zum Öffnen einer Datei über Netzwerk %1</translation>
</message>
@@ -3176,7 +3179,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QNetworkAccessFtpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+135"/>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/>
<source>No suitable proxy found</source>
<translation>Es konnte kein geeigneter Proxy-Server gefunden werden</translation>
</message>
@@ -3186,7 +3189,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>%1 kann nicht geöffnet werden: Es handelt sich um ein Verzeichnis</translation>
</message>
<message>
- <location line="+131"/>
+ <location line="+130"/>
<source>Logging in to %1 failed: authentication required</source>
<translation>Die Anmeldung bei %1 schlug fehl: Es ist eine Authentifizierung erforderlich</translation>
</message>
@@ -3204,7 +3207,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QNetworkAccessHttpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+565"/>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/>
<source>No suitable proxy found</source>
<translation>Es konnte kein geeigneter Proxy-Server gefunden werden</translation>
</message>
@@ -3217,7 +3220,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<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="+37"/>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/>
<source>Protocol &quot;%1&quot; is unknown</source>
<translation>Das Protokoll &quot;%1&quot; ist unbekannt</translation>
</message>
@@ -3225,7 +3228,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QNetworkReplyImpl</name>
<message>
- <location line="+422"/>
+ <location line="+432"/>
<location line="+22"/>
<source>Operation canceled</source>
<translation>Operation abgebrochen</translation>
@@ -3234,7 +3237,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QOCIDriver</name>
<message>
- <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2027"/>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2069"/>
<source>Unable to logon</source>
<translation>Logon-Vorgang fehlgeschlagen</translation>
</message>
@@ -3263,7 +3266,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QOCIResult</name>
<message>
- <location line="-976"/>
+ <location line="-963"/>
<location line="+161"/>
<location line="+15"/>
<source>Unable to bind column for batch execute</source>
@@ -3290,18 +3293,16 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Der Befehl konnte nicht initialisiert werden</translation>
</message>
<message>
- <location line="+29"/>
- <location line="+37"/>
+ <location line="+36"/>
<source>Unable to bind value</source>
<translation>Der Wert konnte nicht gebunden werden</translation>
</message>
<message>
- <location line="-20"/>
<source>Unable to execute select statement</source>
- <translation>Die &apos;select&apos;-Abfrage konnte nicht ausgeführt werden</translation>
+ <translation type="obsolete">Die &apos;select&apos;-Abfrage konnte nicht ausgeführt werden</translation>
</message>
<message>
- <location line="+32"/>
+ <location line="+19"/>
<source>Unable to execute statement</source>
<translation>Der Befehl konnte nicht ausgeführt werden</translation>
</message>
@@ -3309,7 +3310,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QODBCDriver</name>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1657"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1785"/>
<source>Unable to connect</source>
<translation>Es kann keine Verbindung aufgebaut werden</translation>
</message>
@@ -3319,7 +3320,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Es kann keine Verbindung aufgebaut werden weil der Treiber die benötigte Funktionalität nicht vollständig unterstützt</translation>
</message>
<message>
- <location line="+234"/>
+ <location line="+242"/>
<source>Unable to disable autocommit</source>
<translation>&apos;autocommit&apos; konnte nicht deaktiviert werden</translation>
</message>
@@ -3342,19 +3343,19 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QODBCResult</name>
<message>
- <location line="-1204"/>
+ <location line="-1218"/>
<location line="+349"/>
<source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
<translation>QODBCResult::reset: &apos;SQL_CURSOR_STATIC&apos; konnte nicht als Attribut des Befehls gesetzt werden. Bitte prüfen Sie die Konfiguration Ihres ODBC-Treibers</translation>
</message>
<message>
<location line="-332"/>
- <location line="+625"/>
+ <location line="+626"/>
<source>Unable to execute statement</source>
<translation>Der Befehl konnte nicht ausgeführt werden</translation>
</message>
<message>
- <location line="-554"/>
+ <location line="-555"/>
<source>Unable to fetch next</source>
<translation>Der nächste Datensatz konnte nicht abgeholt werden</translation>
</message>
@@ -3364,19 +3365,19 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Der Befehl konnte nicht initialisiert werden</translation>
</message>
<message>
- <location line="+267"/>
+ <location line="+268"/>
<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="+194"/>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-474"/>
- <location line="+577"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-475"/>
+ <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="-671"/>
+ <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>
@@ -3394,12 +3395,12 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QObject</name>
<message>
- <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+134"/>
+ <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
<source>Home</source>
<translation>Pos1</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+44"/>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
<source>Operation not supported on %1</source>
<translation>Diese Operation wird von %1 nicht unterstützt</translation>
</message>
@@ -3409,7 +3410,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Ungültiger URI: %1</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+145"/>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
<source>Write error writing to %1: %2</source>
<translation>Fehler beim Schreiben zur Datei %1: %2</translation>
</message>
@@ -3434,7 +3435,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Protokollfehler: Ein leeres Datenpaket wurde empfangen</translation>
</message>
<message>
- <location filename="../src/network/kernel/qhostinfo.cpp" line="+147"/>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
<location line="+57"/>
<source>No host name given</source>
<translation>Es wurde kein Hostname angegeben</translation>
@@ -3443,7 +3444,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QPPDOptionsModel</name>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1165"/>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/>
<source>Name</source>
<translation>Name</translation>
</message>
@@ -3456,7 +3457,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QPSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+732"/>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/>
<source>Unable to connect</source>
<translation>Es kann keine Verbindung aufgebaut werden</translation>
</message>
@@ -3476,7 +3477,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Die Transaktion konnte nicht rückgängig gemacht werden (Operation &apos;rollback&apos; fehlgeschlagen)</translation>
</message>
<message>
- <location line="+336"/>
+ <location line="+358"/>
<source>Unable to subscribe</source>
<translation>Die Registrierung schlug fehl</translation>
</message>
@@ -3489,12 +3490,12 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QPSQLResult</name>
<message>
- <location line="-1035"/>
+ <location line="-1058"/>
<source>Unable to create query</source>
<translation>Es konnte keine Abfrage erzeugt werden</translation>
</message>
<message>
- <location line="+373"/>
+ <location line="+374"/>
<source>Unable to prepare statement</source>
<translation>Der Befehl konnte nicht initialisiert werden</translation>
</message>
@@ -3502,7 +3503,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QPageSetupWidget</name>
<message>
- <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+274"/>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
<source>Centimeters (cm)</source>
<translation>Zentimeter (cm)</translation>
</message>
@@ -3618,7 +3619,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<context>
<name>QPrintDialog</name>
<message>
- <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+68"/>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/>
<source>locally connected</source>
<translation>direkt verbunden</translation>
</message>
@@ -3635,12 +3636,12 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>unbekannt</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+238"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+345"/>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+375"/>
<source>Print all</source>
<translation>Alles drucken</translation>
</message>
@@ -3805,7 +3806,7 @@ Möchten sie die Datei trotzdem löschen?</translation>
<translation>Auswahl drucken</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+80"/>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
<location line="+13"/>
<location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
<source>Print</source>
@@ -4047,7 +4048,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QPrintPreviewDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+222"/>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
@@ -4147,7 +4148,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>PostScript exportieren</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+38"/>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
<location line="+12"/>
<source>Page Setup</source>
<translation>Seite einrichten</translation>
@@ -4320,8 +4321,8 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QProcess</name>
<message>
- <location filename="../src/corelib/io/qprocess_unix.cpp" line="+445"/>
- <location filename="../src/corelib/io/qprocess_win.cpp" line="+117"/>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
<source>Could not open input redirection for reading</source>
<translation>Die Eingabeumleitung konnte nicht zum Lesen geöffnet werden</translation>
</message>
@@ -4350,7 +4351,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Zeitüberschreitung</translation>
</message>
<message>
- <location filename="../src/corelib/io/qprocess.cpp" line="+503"/>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+533"/>
<location line="+52"/>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
<location line="+50"/>
@@ -4370,6 +4371,11 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Der Prozess ist abgestürzt</translation>
</message>
<message>
+ <location line="+912"/>
+ <source>No program defined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
<source>Process failed to start</source>
<translation>Das Starten des Prozesses schlug fehl</translation>
@@ -4378,7 +4384,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QProgressDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+152"/>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
<source>Cancel</source>
<translation>Abbrechen</translation>
</message>
@@ -4402,7 +4408,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QRegExp</name>
<message>
- <location filename="../src/corelib/tools/qregexp.cpp" line="+34"/>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/>
<source>no error occurred</source>
<translation>kein Fehler</translation>
</message>
@@ -4450,7 +4456,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QSQLite2Driver</name>
<message>
- <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+353"/>
+ <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
<source>Error to open database</source>
<translation>Die Datenbankverbindung konnte nicht geöffnet werden</translation>
</message>
@@ -4473,12 +4479,12 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QSQLite2Result</name>
<message>
- <location line="-310"/>
+ <location line="-323"/>
<source>Unable to fetch results</source>
<translation>Das Ergebnis konnte nicht abgeholt werden</translation>
</message>
<message>
- <location line="+139"/>
+ <location line="+147"/>
<source>Unable to execute statement</source>
<translation>Der Befehl konnte nicht ausgeführt werden</translation>
</message>
@@ -4486,7 +4492,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QSQLiteDriver</name>
<message>
- <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+498"/>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/>
<source>Error opening database</source>
<translation>Die Datenbankverbindung konnte nicht geöffnet werden</translation>
</message>
@@ -4549,12 +4555,12 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QScrollBar</name>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="+419"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/>
<source>Scroll here</source>
<translation>Hierher scrollen</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Left edge</source>
<translation>Linker Rand</translation>
</message>
@@ -4564,7 +4570,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Anfang</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Right edge</source>
<translation>Rechter Rand</translation>
</message>
@@ -4574,7 +4580,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Ende</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Page left</source>
<translation>Eine Seite nach links</translation>
</message>
@@ -4585,7 +4591,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Eine Seite nach oben</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Page right</source>
<translation>Eine Seite nach rechts</translation>
</message>
@@ -4596,7 +4602,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Eine Seite nach unten</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Scroll left</source>
<translation>Nach links scrollen</translation>
</message>
@@ -4606,7 +4612,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Nach oben scrollen</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Scroll right</source>
<translation>Nach rechts scrollen</translation>
</message>
@@ -4634,13 +4640,13 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QSharedMemory</name>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+258"/>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+288"/>
<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="+118"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
<source>%1: unable to lock</source>
<translation>%1: Sperrung fehlgeschlagen</translation>
</message>
@@ -4650,8 +4656,8 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>%1: Die Sperrung konnte nicht aufgehoben werden</translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+48"/>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+57"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
<source>%1: permission denied</source>
<translation>%1: Zugriff verweigert</translation>
</message>
@@ -4734,7 +4740,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QShortcut</name>
<message>
- <location filename="../src/gui/kernel/qkeysequence.cpp" line="+343"/>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/>
<source>Space</source>
<translation>Leertaste</translation>
</message>
@@ -5315,7 +5321,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QSql</name>
<message>
- <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+860"/>
+ <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
<source>Delete</source>
<translation>Löschen</translation>
</message>
@@ -5372,7 +5378,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QSslSocket</name>
<message>
- <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+539"/>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+569"/>
<source>Unable to write data: %1</source>
<translation>Die Daten konnten nicht geschrieben werden: %1</translation>
</message>
@@ -5436,7 +5442,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
</message>
<message>
<location line="+5"/>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+36"/>
+ <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>
@@ -5461,7 +5467,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QTDSDriver</name>
<message>
- <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+552"/>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
<source>Unable to open connection</source>
<translation>Die Datenbankverbindung konnte nicht geöffnet werden</translation>
</message>
@@ -5487,7 +5493,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QTcpServer</name>
<message>
- <location filename="../src/network/socket/qtcpserver.cpp" line="+252"/>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
<source>Operation on socket is not supported</source>
<translation>Diese Socketoperation wird nicht unterstützt</translation>
</message>
@@ -5495,7 +5501,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QTextControl</name>
<message>
- <location filename="../src/gui/text/qtextcontrol.cpp" line="+1942"/>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/>
<source>&amp;Undo</source>
<translation>&amp;Rückgängig</translation>
</message>
@@ -5553,7 +5559,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QUdpSocket</name>
<message>
- <location filename="../src/network/socket/qudpsocket.cpp" line="+139"/>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
<source>This platform does not support IPv6</source>
<translation>Diese Plattform unterstützt kein IPv6</translation>
</message>
@@ -5561,7 +5567,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QUndoGroup</name>
<message>
- <location filename="../src/gui/util/qundogroup.cpp" line="+356"/>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+386"/>
<source>Undo</source>
<translation>Rückgängig</translation>
</message>
@@ -5574,7 +5580,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QUndoModel</name>
<message>
- <location filename="../src/gui/util/qundoview.cpp" line="+71"/>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
<source>&lt;empty&gt;</source>
<translation>&lt;leer&gt;</translation>
</message>
@@ -5582,7 +5588,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QUndoStack</name>
<message>
- <location filename="../src/gui/util/qundostack.cpp" line="+804"/>
+ <location filename="../src/gui/util/qundostack.cpp" line="+834"/>
<source>Undo</source>
<translation>Rückgängig</translation>
</message>
@@ -5653,7 +5659,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QWebFrame</name>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+686"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
<source>Request cancelled</source>
<translation>Anfrage wurde abgebrochen</translation>
</message>
@@ -6064,7 +6070,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1342"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
<source>JavaScript Alert - %1</source>
<translation>JavaScript-Hinweis - %1</translation>
</message>
@@ -6140,6 +6146,11 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
</message>
<message>
<location line="+3"/>
+ <source>Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
<source>Select to the next character</source>
<translation>Bis zum folgenden Zeichen markieren</translation>
</message>
@@ -6208,11 +6219,21 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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 type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QWhatsThisAction</name>
<message>
- <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+492"/>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
<source>What&apos;s This?</source>
<translation>Direkthilfe</translation>
</message>
@@ -6220,7 +6241,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5290"/>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/>
<source>*</source>
<translation>*</translation>
</message>
@@ -6228,7 +6249,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QWizard</name>
<message>
- <location filename="../src/gui/dialogs/qwizard.cpp" line="+617"/>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+649"/>
<source>Cancel</source>
<translation>Abbrechen</translation>
</message>
@@ -6286,7 +6307,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QWorkspace</name>
<message>
- <location filename="../src/gui/widgets/qworkspace.cpp" line="+1064"/>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/>
<source>&amp;Restore</source>
<translation>Wieder&amp;herstellen</translation>
</message>
@@ -6356,7 +6377,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QXml</name>
<message>
- <location filename="../src/xml/sax/qxml.cpp" line="+28"/>
+ <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
<source>no error occurred</source>
<translation>kein Fehler</translation>
</message>
@@ -6474,8 +6495,8 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QXmlStream</name>
<message>
- <location filename="../src/corelib/xml/qxmlstream.cpp" line="+562"/>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1739"/>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/>
<source>Extra content at end of document.</source>
<translation>Überzähliger Inhalt nach Ende des Dokumentes.</translation>
</message>
@@ -6659,38 +6680,38 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<context>
<name>QtXmlPatterns</name>
<message>
- <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+69"/>
+ <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/qabstractfloatmathematician.cpp" line="+34"/>
+ <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
<source>No operand in an integer division, %1, can be %2.</source>
<translation>Bei der Ganzzahldivision %1 darf kein Operand %2 sein.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+102"/>
+ <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="+193"/>
+ <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="+48"/>
+ <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/qcomparisonplatform.cpp" line="+151"/>
+ <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+181"/>
<source>Operator %1 is not available between atomic values of type %2 and %3.</source>
<translation>Der Operator %1 kann auf atomare Werte der Typen %2 und %3 nicht angewandt werden.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+119"/>
+ <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+149"/>
<source>It is not possible to cast from %1 to %2.</source>
<translation>Es kann keine &quot;cast&quot;-Operation von %1 zu %2 durchgeführt werden.</translation>
</message>
@@ -6715,33 +6736,33 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Mit dem Typ %1 können keine Vergleichsoperationen durchgeführt werden.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+54"/>
+ <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="+138"/>
- <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+39"/>
+ <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="+58"/>
+ <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/qcomparingaggregator.cpp" line="+167"/>
+ <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
<source>The first argument to %1 cannot be of type %2.</source>
<translation>Das erste Argument von %1 kann nicht vom Typ %2 sein.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+31"/>
+ <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="+103"/>
+ <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>
@@ -6751,7 +6772,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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="+62"/>
+ <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>
@@ -6766,12 +6787,12 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>%1 ist kein gültiger regulärer Ausdruck: %2</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+317"/>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/>
<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="+249"/>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
<source>The default collection is undefined</source>
<translation>Für eine Kollektion ist keine Vorgabe definiert</translation>
</message>
@@ -6781,12 +6802,12 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>%1 kann nicht bestimmt werden</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+37"/>
+ <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="+319"/>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/>
<location line="+7253"/>
<source>%1 is an unknown schema type.</source>
<translation>%1 ist ein unbekannter Schema-Typ.</translation>
@@ -6802,7 +6823,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Die Initialisierung der Variable %1 hängt von ihrem eigenem Wert ab</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+63"/>
+ <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>
@@ -6923,7 +6944,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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="+25"/>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
<source>empty</source>
<translation>leer</translation>
</message>
@@ -6948,27 +6969,27 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>kein oder mehrere</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+126"/>
+ <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="+63"/>
+ <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="+54"/>
+ <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="+290"/>
+ <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="+50"/>
+ <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>
@@ -7013,7 +7034,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Bei Vorhandensein eines %1-Begrenzers muss mindestens eine Komponente vorhanden sein.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+171"/>
+ <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>
@@ -7029,12 +7050,12 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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="+49"/>
+ <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="+372"/>
+ <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>
@@ -7044,7 +7065,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Der Wert %1 des Typs %2 unterschreitet das Minimum (%3).</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+61"/>
+ <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>
@@ -7054,7 +7075,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>%1 ist kein gültiger Wert des Typs %2.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+177"/>
+ <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>
@@ -7064,7 +7085,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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="+36"/>
+ <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>
@@ -7074,7 +7095,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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="+58"/>
+ <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>
@@ -7084,7 +7105,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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="+37"/>
+ <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>
@@ -7094,12 +7115,12 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Ein Kommentar darf nicht auf %1 enden.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+56"/>
+ <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="+139"/>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
<source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
<translation>Ein Bibliotheksmodul kann nicht direkt ausgewertet werden, er muss von einem Hauptmodul importiert werden.</translation>
</message>
@@ -7109,7 +7130,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Es existiert keine Vorlage mit dem Namen %1.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+76"/>
+ <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>
@@ -7119,17 +7140,17 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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="+107"/>
+ <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+137"/>
<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="+79"/>
+ <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="+52"/>
+ <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>
@@ -7139,7 +7160,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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="+90"/>
+ <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>
@@ -7154,7 +7175,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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="+56"/>
+ <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>
@@ -7184,17 +7205,17 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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="+222"/>
+ <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="+57"/>
+ <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="+28"/>
+ <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>
@@ -7349,12 +7370,12 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Attribute dürfen nicht auf andere Knoten folgen.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+90"/>
+ <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/acceltree/qacceltreebuilder.cpp" line="+175"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
<source>An %1-attribute with value %2 has already been declared.</source>
<translation>Das Element hat bereits ein Attribut mit dem Namen %1 mit dem Wert %2.</translation>
</message>
@@ -7399,7 +7420,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>%2 ist kein gültiger Zielname einer Processing-Anweisung, da dieser nicht %1 sein darf (ungeachtet der Groß/Kleinschreibung).</translation>
</message>
<message numerus="yes">
- <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+47"/>
+ <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>
@@ -7415,7 +7436,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+24"/>
+ <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>
@@ -7461,7 +7482,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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="+284"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
<source>%1 is an unsupported encoding.</source>
<translation>Das Encoding %1 wird nicht unterstützt.</translation>
</message>
@@ -7476,14 +7497,18 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<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="+89"/>
+ <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="+39"/>
<source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source>
- <translation>Im Konstruktor eines Namensraums darf der Wert des Namensraumes keine leere Zeichenkette sein.</translation>
+ <translation type="obsolete">Im Konstruktor eines Namensraums darf der Wert des Namensraumes keine leere Zeichenkette sein.</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"/>
@@ -7501,12 +7526,12 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>An %2 kann nur der Präfix %1 gebunden werden (und umgekehrt).</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+87"/>
+ <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
<source>Circularity detected</source>
<translation>Es wurde eine zirkuläre Abhängigkeit festgestellt.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+115"/>
+ <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>
@@ -7516,12 +7541,12 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Es existiert kein entsprechendes %2 für den übergebenen Parameter %1.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+35"/>
+ <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="+489"/>
+ <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>
@@ -7576,7 +7601,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Im %1-Attribut des Elements %2 muss mindestens ein Modus angegeben werden.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+153"/>
+ <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>Das Element %2 kann nur die Standardattribute haben, nicht jedoch %1.</translation>
</message>
@@ -7651,7 +7676,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation>
<translation>Das Element %1 kann keine Kindelemente haben.</translation>
</message>
<message>
- <location line="+432"/>
+ <location line="+434"/>
<source>Element %1 cannot have a sequence constructor.</source>
<translation>Das Element %1 kann keinen Sequenzkonstruktor haben.</translation>
</message>
diff --git a/translations/qt_es.ts b/translations/qt_es.ts
index 294b009..ee1e88c 100644
--- a/translations/qt_es.ts
+++ b/translations/qt_es.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioOutput</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+374"/>
+ <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/>
<source>&lt;html&gt;The audio playback device &lt;b&gt;%1&lt;/b&gt; does not work.&lt;br/&gt;Falling back to &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -22,7 +22,7 @@
<context>
<name>CloseButton</name>
<message>
- <location filename="../src/gui/widgets/qtabbar.cpp" line="+2217"/>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/>
<source>Close Tab</source>
<translation type="unfinished"></translation>
</message>
@@ -89,7 +89,7 @@
<context>
<name>Phonon::Gstreamer::MediaObject</name>
<message>
- <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+88"/>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/>
<source>Cannot start playback.
Check your Gstreamer installation and make sure you
@@ -102,24 +102,24 @@ have libgstreamer-plugins-base installed.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+653"/>
- <location line="+9"/>
+ <location line="+676"/>
+ <location line="+8"/>
<location line="+15"/>
- <location line="+7"/>
- <location line="+5"/>
- <location line="+20"/>
- <location line="+317"/>
+ <location line="+9"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+335"/>
<location line="+24"/>
<source>Could not open media source.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-381"/>
+ <location line="-403"/>
<source>Invalid source type.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+355"/>
+ <location line="+377"/>
<source>Could not locate media source.</source>
<translation type="unfinished"></translation>
</message>
@@ -153,7 +153,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3Accel</name>
<message>
- <location filename="../src/qt3support/other/q3accel.cpp" line="+451"/>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
<source>%1, %2 not defined</source>
<translation>La secuencia %1, %2 no está definida</translation>
</message>
@@ -166,7 +166,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3DataTable</name>
<message>
- <location filename="../src/qt3support/sql/q3datatable.cpp" line="+253"/>
+ <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
<source>True</source>
<translation>Verdadero</translation>
</message>
@@ -194,7 +194,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3FileDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+834"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+864"/>
<source>Copy or Move a File</source>
<translation>Copiar o mover un fichero</translation>
</message>
@@ -219,7 +219,7 @@ have libgstreamer-plugins-base installed.</source>
<location line="-157"/>
<location line="+49"/>
<location line="+2153"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+80"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
<source>All Files (*)</source>
<translation>Todos los ficheros (*)</translation>
</message>
@@ -359,7 +359,7 @@ have libgstreamer-plugins-base installed.</source>
<message>
<location line="+704"/>
<location line="+2100"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+307"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/>
<source>Open</source>
<translation>Abrir</translation>
</message>
@@ -527,7 +527,7 @@ Compruebe la ruta y el nombre del fichero.</translation>
<context>
<name>Q3LocalFs</name>
<message>
- <location filename="../src/qt3support/network/q3localfs.cpp" line="+100"/>
+ <location filename="../src/qt3support/network/q3localfs.cpp" line="+130"/>
<location line="+10"/>
<source>Could not read directory
%1</source>
@@ -577,7 +577,7 @@ a
<context>
<name>Q3MainWindow</name>
<message>
- <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2021"/>
+ <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
<source>Line up</source>
<translation>Alinear</translation>
</message>
@@ -590,7 +590,7 @@ a
<context>
<name>Q3NetworkProtocol</name>
<message>
- <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+824"/>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
<source>Operation stopped by the user</source>
<translation>Operación detenida por el usuario</translation>
</message>
@@ -598,7 +598,7 @@ a
<context>
<name>Q3ProgressDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+194"/>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
<location line="+61"/>
<source>Cancel</source>
<translation>Cancelar</translation>
@@ -607,7 +607,7 @@ a
<context>
<name>Q3TabDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+159"/>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/>
<location line="+814"/>
<source>OK</source>
<translation>Aceptar</translation>
@@ -636,7 +636,7 @@ a
<context>
<name>Q3TextEdit</name>
<message>
- <location filename="../src/qt3support/text/q3textedit.cpp" line="+5399"/>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
<source>&amp;Undo</source>
<translation>&amp;Deshacer</translation>
</message>
@@ -675,7 +675,7 @@ a
<context>
<name>Q3TitleBar</name>
<message>
- <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+216"/>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
<source>System</source>
<translation>Sistema</translation>
</message>
@@ -743,7 +743,7 @@ a
<context>
<name>Q3ToolBar</name>
<message>
- <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+662"/>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
<source>More...</source>
<translation>Más...</translation>
</message>
@@ -751,7 +751,7 @@ a
<context>
<name>Q3UrlOperator</name>
<message>
- <location filename="../src/qt3support/network/q3urloperator.cpp" line="+356"/>
+ <location filename="../src/qt3support/network/q3urloperator.cpp" line="+386"/>
<location line="+260"/>
<location line="+4"/>
<source>The protocol `%1&apos; is not supported</source>
@@ -803,7 +803,7 @@ a
<context>
<name>Q3Wizard</name>
<message>
- <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+147"/>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
<source>&amp;Cancel</source>
<translation>&amp;Cancelar</translation>
</message>
@@ -831,9 +831,9 @@ a
<context>
<name>QAbstractSocket</name>
<message>
- <location filename="../src/network/socket/qabstractsocket.cpp" line="+838"/>
- <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+585"/>
- <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+627"/>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
<location line="+26"/>
<source>Host not found</source>
<translation>Equipo no encontrado</translation>
@@ -876,7 +876,7 @@ a
<context>
<name>QAbstractSpinBox</name>
<message>
- <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1169"/>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/>
<source>&amp;Step up</source>
<translation>&amp;Aumentar</translation>
</message>
@@ -894,12 +894,12 @@ a
<context>
<name>QApplication</name>
<message>
- <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+346"/>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
<source>Activate</source>
<translation>Activar</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.h" line="+322"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
<source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
<translation>El ejecutable «%1» requiere Qt %2 (se encontró Qt %3).</translation>
</message>
@@ -909,7 +909,7 @@ a
<translation>Error: biblioteca Qt incompatible</translation>
</message>
<message>
- <location filename="../src/gui/kernel/qapplication.cpp" line="+2212"/>
+ <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>
@@ -946,7 +946,7 @@ a
<context>
<name>QCheckBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+84"/>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/>
<source>Uncheck</source>
<translation>Desmarcar</translation>
</message>
@@ -964,7 +964,7 @@ a
<context>
<name>QColorDialog</name>
<message>
- <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1219"/>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/>
<source>Hu&amp;e:</source>
<translation>&amp;Tono:</translation>
</message>
@@ -1038,13 +1038,13 @@ a
<context>
<name>QComboBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1741"/>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
<location line="+65"/>
<source>Open</source>
<translation>Abrir</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+514"/>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
<source>False</source>
<translation>Falso</translation>
</message>
@@ -1062,7 +1062,7 @@ a
<context>
<name>QCoreApplication</name>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+89"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
<source>%1: key is empty</source>
<comment>QSystemSemaphore</comment>
<translation type="unfinished"></translation>
@@ -1083,12 +1083,12 @@ a
<context>
<name>QDB2Driver</name>
<message>
- <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1217"/>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
<source>Unable to connect</source>
<translation>Imposible establecer una conexión</translation>
</message>
<message>
- <location line="+263"/>
+ <location line="+303"/>
<source>Unable to commit transaction</source>
<translation>Incapaz de enviar la transacción</translation>
</message>
@@ -1106,8 +1106,8 @@ a
<context>
<name>QDB2Result</name>
<message>
- <location line="-986"/>
- <location line="+242"/>
+ <location line="-1043"/>
+ <location line="+243"/>
<source>Unable to execute statement</source>
<translation>Imposible ejecutar la instrucción</translation>
</message>
@@ -1122,7 +1122,7 @@ a
<translation>No es posible ligar la variable</translation>
</message>
<message>
- <location line="+91"/>
+ <location line="+92"/>
<source>Unable to fetch record %1</source>
<translation>Imposible obtener el registro %1</translation>
</message>
@@ -1140,7 +1140,7 @@ a
<context>
<name>QDateTimeEdit</name>
<message>
- <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2265"/>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
<source>AM</source>
<translation>AM</translation>
</message>
@@ -1163,7 +1163,7 @@ a
<context>
<name>QDial</name>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+921"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
<source>QDial</source>
<translation>QDial</translation>
</message>
@@ -1181,7 +1181,7 @@ a
<context>
<name>QDialog</name>
<message>
- <location filename="../src/gui/dialogs/qdialog.cpp" line="+567"/>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
<source>What&apos;s This?</source>
<translation>¿Qué es esto?</translation>
</message>
@@ -1194,9 +1194,9 @@ a
<context>
<name>QDialogButtonBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1830"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
<location line="+464"/>
- <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+531"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/>
<source>OK</source>
<translation>Aceptar</translation>
</message>
@@ -1319,7 +1319,7 @@ a
<context>
<name>QDirModel</name>
<message>
- <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+423"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/>
<source>Name</source>
<translation>Nombre</translation>
</message>
@@ -1355,7 +1355,7 @@ a
<context>
<name>QDockWidget</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1209"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
<source>Close</source>
<translation>Cerrar</translation>
</message>
@@ -1386,7 +1386,7 @@ a
<context>
<name>QErrorMessage</name>
<message>
- <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+162"/>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+192"/>
<source>Debug Message:</source>
<translation>Mensaje de depuración:</translation>
</message>
@@ -1414,13 +1414,18 @@ a
<context>
<name>QFile</name>
<message>
- <location filename="../src/corelib/io/qfile.cpp" line="+678"/>
- <location line="+130"/>
+ <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
+ <location line="+141"/>
<source>Destination file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+12"/>
+ <location line="-108"/>
+ <source>Cannot remove source file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+120"/>
<source>Cannot open %1 for input</source>
<translation type="unfinished"></translation>
</message>
@@ -1443,37 +1448,37 @@ a
<context>
<name>QFileDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+484"/>
- <location line="+423"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+515"/>
+ <location line="+444"/>
<source>All Files (*)</source>
<translation>Todos los ficheros (*)</translation>
</message>
<message>
- <location line="+218"/>
+ <location line="+222"/>
<source>Directories</source>
<translation>Directorios</translation>
</message>
<message>
<location line="-3"/>
<location line="+50"/>
- <location line="+1440"/>
+ <location line="+1471"/>
<location line="+75"/>
<source>&amp;Open</source>
<translation>&amp;Abrir</translation>
</message>
<message>
- <location line="-1565"/>
+ <location line="-1596"/>
<location line="+50"/>
<source>&amp;Save</source>
<translation>&amp;Guardar</translation>
</message>
<message>
- <location line="-705"/>
+ <location line="-730"/>
<source>Open</source>
<translation>Abrir</translation>
</message>
<message>
- <location line="+1469"/>
+ <location line="+1515"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>El fichero %1 ya existe.
@@ -1494,7 +1499,7 @@ Verifique que el nombre del fichero es correcto.</translation>
<translation>Mi equipo</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1458"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1504"/>
<source>&amp;Rename</source>
<translation>Cambia&amp;r de nombre</translation>
</message>
@@ -1540,7 +1545,7 @@ Verifique que el nombre del fichero es correcto.</translation>
</message>
<message>
<location filename="../src/gui/dialogs/qfiledialog.cpp" line="+6"/>
- <location line="+623"/>
+ <location line="+648"/>
<source>Directory:</source>
<translation>Directorio:</translation>
</message>
@@ -1553,8 +1558,8 @@ Fichero no encontrado.
Compruebe que el nombre del fichero es correcto</translation>
</message>
<message>
- <location line="+773"/>
- <location line="+851"/>
+ <location line="+794"/>
+ <location line="+862"/>
<source>%1
Directory not found.
Please verify the correct directory name was given.</source>
@@ -1563,7 +1568,7 @@ Directorio no encontrado.
Verique que el nombre del directorio es correcto.</translation>
</message>
<message>
- <location line="-217"/>
+ <location line="-218"/>
<source>&apos;%1&apos; is write protected.
Do you want to delete it anyway?</source>
<translation>«%1» está protegido contra escritura.
@@ -1580,22 +1585,22 @@ Do you want to delete it anyway?</source>
<translation>No fue posible borrar el directorio.</translation>
</message>
<message>
- <location line="+406"/>
+ <location line="+407"/>
<source>Recent Places</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+130"/>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
<source>All Files (*.*)</source>
<translation>Todos los ficheros (*.*)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2493"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2550"/>
<source>Save As</source>
<translation>Guardar como</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+381"/>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+411"/>
<source>Drive</source>
<translation>Unidad</translation>
</message>
@@ -1627,29 +1632,29 @@ Do you want to delete it anyway?</source>
<translation>Siguiente (histórico)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1914"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1970"/>
<source>New Folder</source>
<translation>Nueva carpeta</translation>
</message>
<message>
- <location line="-1907"/>
+ <location line="-1963"/>
<source>&amp;New Folder</source>
<translation>&amp;Nueva carpeta</translation>
</message>
<message>
- <location line="+631"/>
+ <location line="+656"/>
<location line="+38"/>
<source>&amp;Choose</source>
<translation>&amp;Seleccionar</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qsidebar.cpp" line="+388"/>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/>
<source>Remove</source>
<translation>Eliminar</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-662"/>
- <location line="+627"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-687"/>
+ <location line="+652"/>
<source>File &amp;name:</source>
<translation>&amp;Nombre de fichero:</translation>
</message>
@@ -1669,7 +1674,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFileSystemModel</name>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+707"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+744"/>
<source>%1 TB</source>
<translation>%1 TiB</translation>
</message>
@@ -1731,7 +1736,7 @@ All other platforms</comment>
<translation>Última modificación</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+204"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/>
<source>My Computer</source>
<translation>Mi equipo</translation>
</message>
@@ -1750,7 +1755,7 @@ All other platforms</comment>
<context>
<name>QFontDatabase</name>
<message>
- <location filename="../src/gui/text/qfontdatabase.cpp" line="+60"/>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
<location line="+1176"/>
<source>Normal</source>
<translation type="unfinished"></translation>
@@ -1967,7 +1972,7 @@ All other platforms</comment>
<context>
<name>QFontDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+742"/>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/>
<source>&amp;Font</source>
<translation>&amp;Tipo de letra</translation>
</message>
@@ -2016,8 +2021,8 @@ All other platforms</comment>
<context>
<name>QFtp</name>
<message>
- <location filename="../src/network/access/qftp.cpp" line="+796"/>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="+653"/>
+ <location filename="../src/network/access/qftp.cpp" line="+826"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+683"/>
<source>Not connected</source>
<translation>No conectado</translation>
</message>
@@ -2162,7 +2167,7 @@ All other platforms</comment>
<context>
<name>QHostInfo</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_p.h" line="+153"/>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
<source>Unknown error</source>
<translation>Error desconocido</translation>
</message>
@@ -2170,11 +2175,11 @@ All other platforms</comment>
<context>
<name>QHostInfoAgent</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+148"/>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
<location line="+9"/>
<location line="+64"/>
<location line="+31"/>
- <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+150"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
<location line="+9"/>
<location line="+40"/>
<location line="+27"/>
@@ -2200,26 +2205,26 @@ All other platforms</comment>
<context>
<name>QHttp</name>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="+335"/>
+ <location filename="../src/network/access/qhttp.cpp" line="+365"/>
<source>HTTPS connection requested but SSL support not compiled in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1209"/>
- <location line="+816"/>
- <location filename="../src/qt3support/network/q3http.cpp" line="+1130"/>
+ <location line="+820"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+1160"/>
<location line="+567"/>
<source>Unknown error</source>
<translation>Error desconocido</translation>
</message>
<message>
- <location line="-564"/>
+ <location line="-568"/>
<location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
<source>Request aborted</source>
<translation>Solicitud interrumpida</translation>
</message>
<message>
- <location line="+575"/>
+ <location line="+579"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
<source>No server set to connect to</source>
<translation>No se ha indicado ningún servidor al que conectarse</translation>
@@ -2237,18 +2242,23 @@ All other platforms</comment>
<translation>El servidor cerró la conexión inesperadamente</translation>
</message>
<message>
- <location line="+357"/>
+ <location line="+179"/>
+ <source>Unknown authentication method</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+183"/>
<source>Error writing response to device</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+1712"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+876"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+38"/>
<source>Connection refused</source>
<translation>Conexión rechazada</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-299"/>
+ <location filename="../src/network/access/qhttp.cpp" line="-304"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
<source>Host %1 not found</source>
@@ -2269,7 +2279,7 @@ All other platforms</comment>
<translation>Cabecera de respuesta HTTP no válida</translation>
</message>
<message>
- <location line="+120"/>
+ <location line="+125"/>
<location line="+48"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
<location line="+47"/>
@@ -2318,7 +2328,7 @@ All other platforms</comment>
<translation>Se precisa autenticación</translation>
</message>
<message>
- <location line="-133"/>
+ <location line="-138"/>
<source>Connection refused (or timed out)</source>
<translation type="unfinished"></translation>
</message>
@@ -2399,7 +2409,7 @@ All other platforms</comment>
<context>
<name>QIBaseDriver</name>
<message>
- <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1378"/>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1428"/>
<source>Error opening database</source>
<translation>Error al abrir la base de datos</translation>
</message>
@@ -2422,7 +2432,7 @@ All other platforms</comment>
<context>
<name>QIBaseResult</name>
<message>
- <location line="-1077"/>
+ <location line="-1097"/>
<source>Unable to create BLOB</source>
<translation>Imposible crear un BLOB</translation>
</message>
@@ -2442,7 +2452,7 @@ All other platforms</comment>
<translation>Imposible leer el BLOB</translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<location line="+189"/>
<source>Could not find array</source>
<translation>No fue posible encontrar la tabla</translation>
@@ -2512,7 +2522,7 @@ All other platforms</comment>
<context>
<name>QIODevice</name>
<message>
- <location filename="../src/corelib/global/qglobal.cpp" line="+1830"/>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/>
<source>Permission denied</source>
<translation>Permiso denegado</translation>
</message>
@@ -2532,7 +2542,7 @@ All other platforms</comment>
<translation>No queda espacio en el dispositivo</translation>
</message>
<message>
- <location filename="../src/corelib/io/qiodevice.cpp" line="+1506"/>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/>
<source>Unknown error</source>
<translation>Error desconocido</translation>
</message>
@@ -2540,7 +2550,7 @@ All other platforms</comment>
<context>
<name>QInputContext</name>
<message>
- <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+212"/>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/>
<source>XIM</source>
<translation>XIM</translation>
</message>
@@ -2563,7 +2573,7 @@ All other platforms</comment>
<context>
<name>QInputDialog</name>
<message>
- <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+193"/>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
<source>Enter a value:</source>
<translation type="unfinished"></translation>
</message>
@@ -2583,7 +2593,7 @@ All other platforms</comment>
<translation type="obsolete">QLibrary::resolve_sys: Símbolo «%1» no definido en %2 (%3)</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary.cpp" line="+348"/>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
<source>Could not mmap &apos;%1&apos;: %2</source>
<translation>No fu posible establecer la proyección en memoria de «%1»: %2</translation>
</message>
@@ -2614,7 +2624,7 @@ All other platforms</comment>
</message>
<message>
<location line="-377"/>
- <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+250"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
<source>The shared library was not found.</source>
<translation>No se ha encontrado la biblioteca compartida.</translation>
</message>
@@ -2629,8 +2639,8 @@ All other platforms</comment>
<translation>El complemento «%1» usa una biblioteca Qt incompatible. (No se pueden mezclar las bibliotecas «debug» y «release».)</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+179"/>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+69"/>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
<source>Cannot load library %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2650,7 +2660,7 @@ All other platforms</comment>
<context>
<name>QLineEdit</name>
<message>
- <location filename="../src/gui/widgets/qlineedit.cpp" line="+2649"/>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+2680"/>
<source>&amp;Undo</source>
<translation>&amp;Deshacer</translation>
</message>
@@ -2688,8 +2698,8 @@ All other platforms</comment>
<context>
<name>QLocalServer</name>
<message>
- <location filename="../src/network/socket/qlocalserver.cpp" line="+196"/>
- <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+201"/>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/>
<source>%1: Name error</source>
<translation type="unfinished"></translation>
</message>
@@ -2705,7 +2715,7 @@ All other platforms</comment>
</message>
<message>
<location line="+5"/>
- <location filename="../src/network/socket/qlocalserver_win.cpp" line="+127"/>
+ <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/>
<source>%1: Unknown error %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2713,8 +2723,8 @@ All other platforms</comment>
<context>
<name>QLocalSocket</name>
<message>
- <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+102"/>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+104"/>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/>
<source>%1: Connection refused</source>
<translation type="unfinished"></translation>
</message>
@@ -2727,7 +2737,7 @@ All other platforms</comment>
<message>
<location line="+3"/>
<location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
- <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+50"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/>
<location line="+43"/>
<source>%1: Invalid name</source>
<translation type="unfinished"></translation>
@@ -2784,7 +2794,7 @@ All other platforms</comment>
<context>
<name>QMYSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1200"/>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1231"/>
<source>Unable to open database &apos;</source>
<translation>Imposible abrir la base de datos &apos;</translation>
</message>
@@ -2794,7 +2804,7 @@ All other platforms</comment>
<translation>No es posible establecer una conexión</translation>
</message>
<message>
- <location line="+123"/>
+ <location line="+127"/>
<source>Unable to begin transaction</source>
<translation>No es posible iniciar la transacción</translation>
</message>
@@ -2812,7 +2822,7 @@ All other platforms</comment>
<context>
<name>QMYSQLResult</name>
<message>
- <location line="-917"/>
+ <location line="-922"/>
<source>Unable to fetch data</source>
<translation>No es posible obtener los datos</translation>
</message>
@@ -2827,7 +2837,7 @@ All other platforms</comment>
<translation>No es posible almacenar el resultado</translation>
</message>
<message>
- <location line="+189"/>
+ <location line="+190"/>
<location line="+8"/>
<source>Unable to prepare statement</source>
<translation>No es posible preparar la instrucción</translation>
@@ -2872,7 +2882,7 @@ All other platforms</comment>
<context>
<name>QMdiArea</name>
<message>
- <location filename="../src/gui/widgets/qmdiarea.cpp" line="+260"/>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
<source>(Untitled)</source>
<translation type="unfinished"></translation>
</message>
@@ -2880,7 +2890,7 @@ All other platforms</comment>
<context>
<name>QMdiSubWindow</name>
<message>
- <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+250"/>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
<source>%1 - [%2]</source>
<translation>%1 - [%2]</translation>
</message>
@@ -2973,7 +2983,7 @@ All other platforms</comment>
<context>
<name>QMenu</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+127"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
<location line="+225"/>
<source>Close</source>
<translation>Cerrar</translation>
@@ -3046,7 +3056,7 @@ All other platforms</comment>
<context>
<name>QMessageBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1105"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1111"/>
<source>Help</source>
<translation>Ayuda</translation>
</message>
@@ -3059,21 +3069,20 @@ All other platforms</comment>
<translation>Aceptar</translation>
</message>
<message>
- <location line="+503"/>
+ <location line="+509"/>
<source>About Qt</source>
<translation>Acerca de Qt</translation>
</message>
<message>
- <location line="-15"/>
<source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Este programa utiliza la versión %1 de Qt.&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Este programa utiliza la versión %1 de 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 Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt is a Trolltech product. See &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
<translation type="obsolete">&lt;h3&gt;Acerca de Qt&lt;/h3&gt;%1&lt;p&gt;Qt es un toolkit en C++ para desarrollo de aplicaciones multiplataforma.&lt;/p&gt;&lt;p&gt;Qt proporciona portabilidad del código entre MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux y todas las variantes comerciales de Unix importantes. Qt también está disponible para sistemas empotrados bajo el nombre Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt es un producto de Trolltech. Visite &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; para obtener más información.&lt;/p&gt;</translation>
</message>
<message>
- <location line="-1584"/>
+ <location line="-1605"/>
<source>Show Details...</source>
<translation>Mostrar los detalles...</translation>
</message>
@@ -3084,19 +3093,18 @@ All other platforms</comment>
</message>
<message>
<location line="+1570"/>
- <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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
+ <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://www.qtsoftware.com/products/licensing&quot;&gt;www.qtsoftware.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://www.qtsoftware.com/qt/&quot;&gt;www.qtsoftware.com/qt&lt;/a&gt; for more information.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+15"/>
<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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Este programa utiliza Qt Open Source Edition versión %1.&lt;/p&gt;&lt;p&gt;Qt Open Source Edition está dirigida al desarrollo de aplicaciones libres. Para desarrollar aplicaciones privativas (de código cerrado) necesita una licencia comercial de Qt.&lt;/p&gt;&lt;p&gt;Visite &lt;a href=&quot;http://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; para obtener una visión global de las licencias de Qt.&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Este programa utiliza Qt Open Source Edition versión %1.&lt;/p&gt;&lt;p&gt;Qt Open Source Edition está dirigida al desarrollo de aplicaciones libres. Para desarrollar aplicaciones privativas (de código cerrado) necesita una licencia comercial de Qt.&lt;/p&gt;&lt;p&gt;Visite &lt;a href=&quot;http://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; para obtener una visión global de las licencias de Qt.&lt;/p&gt;</translation>
</message>
</context>
<context>
<name>QMultiInputContext</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+58"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
<source>Select IM</source>
<translation>Seleccionar IM</translation>
</message>
@@ -3104,7 +3112,7 @@ All other platforms</comment>
<context>
<name>QMultiInputContextPlugin</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+65"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
<source>Multiple input method switcher</source>
<translation>Seleccionador de varios métodos de entrada</translation>
</message>
@@ -3117,7 +3125,7 @@ All other platforms</comment>
<context>
<name>QNativeSocketEngine</name>
<message>
- <location filename="../src/network/socket/qnativesocketengine.cpp" line="+176"/>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/>
<source>The remote host closed the connection</source>
<translation>El equipo remoto ha cerrado la conexión</translation>
</message>
@@ -3250,7 +3258,7 @@ All other platforms</comment>
<context>
<name>QNetworkAccessCacheBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+35"/>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
<source>Error opening %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3258,7 +3266,7 @@ All other platforms</comment>
<context>
<name>QNetworkAccessFileBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+69"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/>
<source>Request for opening non-local file %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3286,7 +3294,7 @@ All other platforms</comment>
<context>
<name>QNetworkAccessFtpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+135"/>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3296,7 +3304,7 @@ All other platforms</comment>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+131"/>
+ <location line="+130"/>
<source>Logging in to %1 failed: authentication required</source>
<translation type="unfinished"></translation>
</message>
@@ -3314,7 +3322,7 @@ All other platforms</comment>
<context>
<name>QNetworkAccessHttpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+565"/>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3327,7 +3335,7 @@ All other platforms</comment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+37"/>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/>
<source>Protocol &quot;%1&quot; is unknown</source>
<translation type="unfinished"></translation>
</message>
@@ -3335,7 +3343,7 @@ All other platforms</comment>
<context>
<name>QNetworkReplyImpl</name>
<message>
- <location line="+422"/>
+ <location line="+432"/>
<location line="+22"/>
<source>Operation canceled</source>
<translation type="unfinished"></translation>
@@ -3344,7 +3352,7 @@ All other platforms</comment>
<context>
<name>QOCIDriver</name>
<message>
- <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2027"/>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2069"/>
<source>Unable to logon</source>
<translation>No es posible abrir sesión</translation>
</message>
@@ -3373,7 +3381,7 @@ All other platforms</comment>
<context>
<name>QOCIResult</name>
<message>
- <location line="-976"/>
+ <location line="-963"/>
<location line="+161"/>
<location line="+15"/>
<source>Unable to bind column for batch execute</source>
@@ -3400,18 +3408,16 @@ All other platforms</comment>
<translation>No es posible preparar la instrucción</translation>
</message>
<message>
- <location line="+29"/>
- <location line="+37"/>
+ <location line="+36"/>
<source>Unable to bind value</source>
<translation>No es posible ligar el valor</translation>
</message>
<message>
- <location line="-20"/>
<source>Unable to execute select statement</source>
- <translation>No es posible ejecutar la instrucción select</translation>
+ <translation type="obsolete">No es posible ejecutar la instrucción select</translation>
</message>
<message>
- <location line="+32"/>
+ <location line="+19"/>
<source>Unable to execute statement</source>
<translation>No es posible ejecutar la instrucción</translation>
</message>
@@ -3419,7 +3425,7 @@ All other platforms</comment>
<context>
<name>QODBCDriver</name>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1657"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1785"/>
<source>Unable to connect</source>
<translation>No es posible establecer una conexión</translation>
</message>
@@ -3429,7 +3435,7 @@ All other platforms</comment>
<translation>No es posible conectarse - El controlador no ofrece todas las funciones necesarias</translation>
</message>
<message>
- <location line="+234"/>
+ <location line="+242"/>
<source>Unable to disable autocommit</source>
<translation>No es posible inhabilitar el envío automático</translation>
</message>
@@ -3452,19 +3458,19 @@ All other platforms</comment>
<context>
<name>QODBCResult</name>
<message>
- <location line="-1204"/>
+ <location line="-1218"/>
<location line="+349"/>
<source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
<translation>QODBCResult::reset: No es posible establecer «SQL_CURSOR_STATIC» como atributo de instrucción. Compruebe la configuración de su controlador ODBC</translation>
</message>
<message>
<location line="-332"/>
- <location line="+625"/>
+ <location line="+626"/>
<source>Unable to execute statement</source>
<translation>No es posible ejecutar la instrucción</translation>
</message>
<message>
- <location line="-554"/>
+ <location line="-555"/>
<source>Unable to fetch next</source>
<translation>No es posible obtener el siguiente</translation>
</message>
@@ -3474,19 +3480,19 @@ All other platforms</comment>
<translation>No es posible preparar la instrucción</translation>
</message>
<message>
- <location line="+267"/>
+ <location line="+268"/>
<source>Unable to bind variable</source>
<translation>No es posible ligar la variable</translation>
</message>
<message>
<location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-474"/>
- <location line="+577"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-475"/>
+ <location line="+578"/>
<source>Unable to fetch last</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-671"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
<source>Unable to fetch</source>
<translation type="unfinished"></translation>
</message>
@@ -3504,12 +3510,12 @@ All other platforms</comment>
<context>
<name>QObject</name>
<message>
- <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+134"/>
+ <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
<source>Home</source>
<translation>Inicio</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+44"/>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
<source>Operation not supported on %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3519,7 +3525,7 @@ All other platforms</comment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+145"/>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
<source>Write error writing to %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -3544,7 +3550,7 @@ All other platforms</comment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/kernel/qhostinfo.cpp" line="+147"/>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
<location line="+57"/>
<source>No host name given</source>
<translation type="unfinished"></translation>
@@ -3553,7 +3559,7 @@ All other platforms</comment>
<context>
<name>QPPDOptionsModel</name>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1165"/>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/>
<source>Name</source>
<translation type="unfinished">Nombre</translation>
</message>
@@ -3566,7 +3572,7 @@ All other platforms</comment>
<context>
<name>QPSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+732"/>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/>
<source>Unable to connect</source>
<translation>No es posible establecer conexión</translation>
</message>
@@ -3586,7 +3592,7 @@ All other platforms</comment>
<translation>No fue posible anular la transacción</translation>
</message>
<message>
- <location line="+336"/>
+ <location line="+358"/>
<source>Unable to subscribe</source>
<translation type="unfinished"></translation>
</message>
@@ -3599,12 +3605,12 @@ All other platforms</comment>
<context>
<name>QPSQLResult</name>
<message>
- <location line="-1035"/>
+ <location line="-1058"/>
<source>Unable to create query</source>
<translation>No es posible crear la consulta</translation>
</message>
<message>
- <location line="+373"/>
+ <location line="+374"/>
<source>Unable to prepare statement</source>
<translation type="unfinished"></translation>
</message>
@@ -3612,7 +3618,7 @@ All other platforms</comment>
<context>
<name>QPageSetupWidget</name>
<message>
- <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+274"/>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
<source>Centimeters (cm)</source>
<translation type="unfinished"></translation>
</message>
@@ -3728,7 +3734,7 @@ All other platforms</comment>
<context>
<name>QPrintDialog</name>
<message>
- <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+68"/>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/>
<source>locally connected</source>
<translation>conectado localmente</translation>
</message>
@@ -3749,7 +3755,7 @@ All other platforms</comment>
<translation type="obsolete">Imprimir en color si es posible</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+345"/>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+375"/>
<source>Print all</source>
<translation>Imprimir todo</translation>
</message>
@@ -3934,7 +3940,7 @@ All other platforms</comment>
<translation>Sobre US Common #10 (105 x 241 mm)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+238"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
<source>OK</source>
<translation>Aceptar</translation>
</message>
@@ -3955,7 +3961,7 @@ All other platforms</comment>
<translation type="obsolete">Fuente del papel:</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+80"/>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
<location line="+13"/>
<location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
<source>Print</source>
@@ -4257,13 +4263,13 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QPrintPreviewDialog</name>
<message>
- <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+38"/>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
<location line="+12"/>
<source>Page Setup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+222"/>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/>
<source>%1%</source>
<translation type="unfinished"></translation>
</message>
@@ -4545,8 +4551,8 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QProcess</name>
<message>
- <location filename="../src/corelib/io/qprocess_unix.cpp" line="+445"/>
- <location filename="../src/corelib/io/qprocess_win.cpp" line="+117"/>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
<source>Could not open input redirection for reading</source>
<translation type="unfinished"></translation>
</message>
@@ -4575,7 +4581,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/io/qprocess.cpp" line="+503"/>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+533"/>
<location line="+52"/>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
<location line="+50"/>
@@ -4595,6 +4601,11 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+912"/>
+ <source>No program defined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
<source>Process failed to start</source>
<translation type="unfinished"></translation>
@@ -4603,7 +4614,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QProgressDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+152"/>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
<source>Cancel</source>
<translation>Cancelar</translation>
</message>
@@ -4627,7 +4638,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QRegExp</name>
<message>
- <location filename="../src/corelib/tools/qregexp.cpp" line="+34"/>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/>
<source>no error occurred</source>
<translation>no se ha producido ningún error</translation>
</message>
@@ -4675,7 +4686,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QSQLite2Driver</name>
<message>
- <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+353"/>
+ <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
<source>Error to open database</source>
<translation>Error al abrir la base de datos</translation>
</message>
@@ -4698,12 +4709,12 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QSQLite2Result</name>
<message>
- <location line="-310"/>
+ <location line="-323"/>
<source>Unable to fetch results</source>
<translation>No es posible obtener los resultados</translation>
</message>
<message>
- <location line="+139"/>
+ <location line="+147"/>
<source>Unable to execute statement</source>
<translation>No es posible ejecutar la instrucción</translation>
</message>
@@ -4711,7 +4722,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QSQLiteDriver</name>
<message>
- <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+498"/>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/>
<source>Error opening database</source>
<translation>Error al abrir la base de datos</translation>
</message>
@@ -4778,12 +4789,12 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QScrollBar</name>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="+419"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/>
<source>Scroll here</source>
<translation>Desplazar hasta aquí</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Left edge</source>
<translation>Borde izquierdo</translation>
</message>
@@ -4793,7 +4804,7 @@ Elija un nombre de fichero diferente.</translation>
<translation>Parte superior</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Right edge</source>
<translation>Borde derecho</translation>
</message>
@@ -4803,7 +4814,7 @@ Elija un nombre de fichero diferente.</translation>
<translation>Parte inferior</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Page left</source>
<translation>Una página a la izquierda</translation>
</message>
@@ -4814,7 +4825,7 @@ Elija un nombre de fichero diferente.</translation>
<translation>Una página hacia arriba</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Page right</source>
<translation>Una página a la derecha</translation>
</message>
@@ -4825,7 +4836,7 @@ Elija un nombre de fichero diferente.</translation>
<translation>Una página hacia abajo</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Scroll left</source>
<translation>Desplazar hacia la izquierda</translation>
</message>
@@ -4835,7 +4846,7 @@ Elija un nombre de fichero diferente.</translation>
<translation>Desplazar hacia arriba</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Scroll right</source>
<translation>Desplazar hacia la derecha</translation>
</message>
@@ -4863,7 +4874,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QSharedMemory</name>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+177"/>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+207"/>
<source>%1: unable to set key on lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4874,7 +4885,7 @@ Elija un nombre de fichero diferente.</translation>
</message>
<message>
<location line="+168"/>
- <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+118"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
<source>%1: unable to lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4884,8 +4895,8 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+48"/>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+57"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
<source>%1: permission denied</source>
<translation type="unfinished"></translation>
</message>
@@ -4963,7 +4974,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QShortcut</name>
<message>
- <location filename="../src/gui/kernel/qkeysequence.cpp" line="+343"/>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/>
<source>Space</source>
<translation>Espacio</translation>
</message>
@@ -5548,7 +5559,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QSql</name>
<message>
- <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+860"/>
+ <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
<source>Delete</source>
<translation>Borrar</translation>
</message>
@@ -5605,7 +5616,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QSslSocket</name>
<message>
- <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+539"/>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+569"/>
<source>Unable to write data: %1</source>
<translation>No es posible escribir los datos: %1</translation>
</message>
@@ -5668,7 +5679,7 @@ Elija un nombre de fichero diferente.</translation>
<name>QSystemSemaphore</name>
<message>
<location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+36"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
<source>%1: out of resources</source>
<translation type="unfinished"></translation>
</message>
@@ -5698,7 +5709,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QTDSDriver</name>
<message>
- <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+552"/>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
<source>Unable to open connection</source>
<translation>No es posible abrir la conexión</translation>
</message>
@@ -5728,7 +5739,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="obsolete">Operación socket no admitida</translation>
</message>
<message>
- <location filename="../src/network/socket/qtcpserver.cpp" line="+252"/>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
<source>Operation on socket is not supported</source>
<translation type="unfinished"></translation>
</message>
@@ -5736,7 +5747,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QTextControl</name>
<message>
- <location filename="../src/gui/text/qtextcontrol.cpp" line="+1942"/>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/>
<source>&amp;Undo</source>
<translation>&amp;Deshacer</translation>
</message>
@@ -5794,7 +5805,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QUdpSocket</name>
<message>
- <location filename="../src/network/socket/qudpsocket.cpp" line="+139"/>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
<source>This platform does not support IPv6</source>
<translation>La plataforma no contempla IPv6</translation>
</message>
@@ -5802,7 +5813,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QUndoGroup</name>
<message>
- <location filename="../src/gui/util/qundogroup.cpp" line="+356"/>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+386"/>
<source>Undo</source>
<translation>Deshacer</translation>
</message>
@@ -5815,7 +5826,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QUndoModel</name>
<message>
- <location filename="../src/gui/util/qundoview.cpp" line="+71"/>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
<source>&lt;empty&gt;</source>
<translation>&lt;vacío&gt;</translation>
</message>
@@ -5823,7 +5834,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QUndoStack</name>
<message>
- <location filename="../src/gui/util/qundostack.cpp" line="+804"/>
+ <location filename="../src/gui/util/qundostack.cpp" line="+834"/>
<source>Undo</source>
<translation>Deshacer</translation>
</message>
@@ -5894,7 +5905,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QWebFrame</name>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+686"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
<source>Request cancelled</source>
<translation type="unfinished"></translation>
</message>
@@ -6305,7 +6316,7 @@ Elija un nombre de fichero diferente.</translation>
</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1342"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
<source>JavaScript Alert - %1</source>
<translation type="unfinished"></translation>
</message>
@@ -6381,6 +6392,11 @@ Elija un nombre de fichero diferente.</translation>
</message>
<message>
<location line="+3"/>
+ <source>Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
<source>Select to the next character</source>
<translation type="unfinished"></translation>
</message>
@@ -6449,11 +6465,21 @@ Elija un nombre de fichero diferente.</translation>
<source>Delete to the end of the word</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+33"/>
+ <source>Insert a new paragraph</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QWhatsThisAction</name>
<message>
- <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+492"/>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
<source>What&apos;s This?</source>
<translation>¿Qué es esto?</translation>
</message>
@@ -6461,7 +6487,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5290"/>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/>
<source>*</source>
<translation>*</translation>
</message>
@@ -6469,7 +6495,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QWizard</name>
<message>
- <location filename="../src/gui/dialogs/qwizard.cpp" line="+605"/>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/>
<source>Go Back</source>
<translation>Precedente</translation>
</message>
@@ -6531,7 +6557,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QWorkspace</name>
<message>
- <location filename="../src/gui/widgets/qworkspace.cpp" line="+1064"/>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/>
<source>&amp;Restore</source>
<translation>&amp;Restaurar</translation>
</message>
@@ -6601,7 +6627,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QXml</name>
<message>
- <location filename="../src/xml/sax/qxml.cpp" line="+28"/>
+ <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
<source>no error occurred</source>
<translation>no se ha producido ningún error</translation>
</message>
@@ -6719,8 +6745,8 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QXmlStream</name>
<message>
- <location filename="../src/corelib/xml/qxmlstream.cpp" line="+562"/>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1739"/>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/>
<source>Extra content at end of document.</source>
<translation>Contenido extra al final del documento.</translation>
</message>
@@ -6908,7 +6934,7 @@ Elija un nombre de fichero diferente.</translation>
<context>
<name>QtXmlPatterns</name>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+175"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
<source>An %1-attribute with value %2 has already been declared.</source>
<translation type="unfinished"></translation>
</message>
@@ -6918,12 +6944,12 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+54"/>
+ <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
<source>Network timeout.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+290"/>
+ <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>
@@ -6933,7 +6959,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+50"/>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
<source>Year %1 is invalid because it begins with %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6973,7 +6999,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+69"/>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/>
<location line="+15"/>
<source>At least one component must be present.</source>
<translation type="unfinished"></translation>
@@ -6984,7 +7010,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+34"/>
+ <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
<source>No operand in an integer division, %1, can be %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6999,17 +7025,17 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+102"/>
+ <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/>
<source>%1 is not a valid value of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+193"/>
+ <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="+35"/>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
<source>Integer division (%1) by zero (%2) is undefined.</source>
<translation type="unfinished"></translation>
</message>
@@ -7040,17 +7066,17 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+49"/>
+ <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/>
<source>A value of type %1 cannot have an Effective Boolean Value.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+48"/>
+ <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/>
<source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+372"/>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
<source>Value %1 of type %2 exceeds maximum (%3).</source>
<translation type="unfinished"></translation>
</message>
@@ -7060,7 +7086,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+61"/>
+ <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/>
<source>A value of type %1 must contain an even number of digits. The value %2 does not.</source>
<translation type="unfinished"></translation>
</message>
@@ -7070,7 +7096,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+177"/>
+ <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
<source>Operator %1 cannot be used on type %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -7080,7 +7106,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+36"/>
+ <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 type="unfinished"></translation>
</message>
@@ -7090,7 +7116,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
<source>Type error in cast, expected %1, received %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -7100,7 +7126,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+104"/>
+ <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/>
<source>No casting is possible with %1 as the target type.</source>
<translation type="unfinished"></translation>
</message>
@@ -7125,7 +7151,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+37"/>
+ <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
<source>A comment cannot contain %1</source>
<translation type="unfinished"></translation>
</message>
@@ -7135,7 +7161,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+137"/>
+ <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
<source>No comparisons can be done involving the type %1.</source>
<translation type="unfinished"></translation>
</message>
@@ -7145,12 +7171,12 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+56"/>
+ <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="+139"/>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
<source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
<translation type="unfinished"></translation>
</message>
@@ -7160,7 +7186,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+76"/>
+ <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>
@@ -7170,7 +7196,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+83"/>
+ <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+113"/>
<source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source>
<translation type="unfinished"></translation>
</message>
@@ -7180,33 +7206,33 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+79"/>
+ <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="+54"/>
+ <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/>
<source>The data of a processing instruction cannot contain the string %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+52"/>
+ <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="+126"/>
+ <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="+39"/>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
<source>%1 is an invalid %2</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+47"/>
+ <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/>
<source>%1 takes at most %n argument(s). %2 is therefore invalid.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -7222,7 +7248,7 @@ Elija un nombre de fichero diferente.</translation>
</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+90"/>
+ <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/>
<source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source>
<translation type="unfinished"></translation>
</message>
@@ -7237,27 +7263,27 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/>
<source>%1 is not a valid XML 1.0 character.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+167"/>
+ <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
<source>The first argument to %1 cannot be of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+56"/>
+ <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="+31"/>
+ <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
<source>%1 was called.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+64"/>
+ <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>
@@ -7272,7 +7298,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+62"/>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
<source>%1 matches newline characters</source>
<translation type="unfinished"></translation>
</message>
@@ -7307,17 +7333,17 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+317"/>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/>
<source>It will not be possible to retrieve %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+24"/>
+ <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="+249"/>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
<source>The default collection is undefined</source>
<translation type="unfinished"></translation>
</message>
@@ -7327,12 +7353,12 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+222"/>
+ <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="+57"/>
+ <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>
@@ -7342,17 +7368,17 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+28"/>
+ <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="+37"/>
+ <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/>
<source>The item %1 did not match the required type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+319"/>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/>
<location line="+7253"/>
<source>%1 is an unknown schema type.</source>
<translation type="unfinished"></translation>
@@ -7373,7 +7399,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+63"/>
+ <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
<source>The variable %1 is unused</source>
<translation type="unfinished"></translation>
</message>
@@ -7655,7 +7681,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+25"/>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
<source>empty</source>
<translation type="unfinished"></translation>
</message>
@@ -7680,7 +7706,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+33"/>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
<source>Required type is %1, but %2 was found.</source>
<translation type="unfinished"></translation>
</message>
@@ -7695,7 +7721,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+56"/>
+ <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>
@@ -7705,12 +7731,12 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+90"/>
+ <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/>
<source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+284"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
<source>%1 is an unsupported encoding.</source>
<translation type="unfinished"></translation>
</message>
@@ -7725,13 +7751,13 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+89"/>
+ <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
<source>Ambiguous rule match.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+39"/>
- <source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source>
+ <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>
@@ -7750,12 +7776,12 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+87"/>
+ <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
<source>Circularity detected</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+115"/>
+ <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/>
<source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
<translation type="unfinished"></translation>
</message>
@@ -7765,12 +7791,12 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+35"/>
+ <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="+489"/>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
<source>Element %1 is not allowed at this location.</source>
<translation type="unfinished"></translation>
</message>
@@ -7825,7 +7851,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+153"/>
+ <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/>
<source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source>
<translation type="unfinished"></translation>
</message>
@@ -7900,7 +7926,7 @@ Elija un nombre de fichero diferente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+432"/>
+ <location line="+434"/>
<source>Element %1 cannot have a sequence constructor.</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/qt_fr.ts b/translations/qt_fr.ts
index 2408e8b..37b334b 100644
--- a/translations/qt_fr.ts
+++ b/translations/qt_fr.ts
@@ -1,11 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="fr">
-<defaultcodec></defaultcodec>
<context>
<name>AudioOutput</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+374"/>
+ <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 dispositif 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>
@@ -65,7 +64,7 @@
<context>
<name>CloseButton</name>
<message>
- <location filename="../src/gui/widgets/qtabbar.cpp" line="+2217"/>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/>
<source>Close Tab</source>
<translation>Fermer l&apos;onglet</translation>
</message>
@@ -189,7 +188,7 @@ Le support audio et vidéo est désactivé</translation>
<context>
<name>Phonon::Gstreamer::MediaObject</name>
<message>
- <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+88"/>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/>
<source>Cannot start playback.
Check your Gstreamer installation and make sure you
@@ -234,24 +233,24 @@ have libgstreamer-plugins-base installed.</source>
<translation>Un codec requis est manquant. Vous devez installer le codec suivant pour jouer le contenu: %0</translation>
</message>
<message>
- <location line="+653"/>
- <location line="+9"/>
+ <location line="+676"/>
+ <location line="+8"/>
<location line="+15"/>
- <location line="+7"/>
- <location line="+5"/>
- <location line="+20"/>
- <location line="+317"/>
+ <location line="+9"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+335"/>
<location line="+24"/>
<source>Could not open media source.</source>
<translation>Impossible d&apos;ouvrir le média source.</translation>
</message>
<message>
- <location line="-381"/>
+ <location line="-403"/>
<source>Invalid source type.</source>
<translation>Type de source invalide.</translation>
</message>
<message>
- <location line="+355"/>
+ <location line="+377"/>
<source>Could not locate media source.</source>
<translation>Impossible de localiser le média source.</translation>
</message>
@@ -285,7 +284,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3Accel</name>
<message>
- <location filename="../src/qt3support/other/q3accel.cpp" line="+451"/>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
<source>%1, %2 not defined</source>
<translation>La séquence %1, %2 n&apos;est pas définie</translation>
</message>
@@ -298,7 +297,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3DataTable</name>
<message>
- <location filename="../src/qt3support/sql/q3datatable.cpp" line="+253"/>
+ <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
<source>True</source>
<translation>Vrai</translation>
</message>
@@ -326,7 +325,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3FileDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+834"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+864"/>
<source>Copy or Move a File</source>
<translation>Copie ou déplace un fichier</translation>
</message>
@@ -351,7 +350,7 @@ have libgstreamer-plugins-base installed.</source>
<location line="-157"/>
<location line="+49"/>
<location line="+2153"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+80"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
<source>All Files (*)</source>
<translation>Tous les fichiers (*)</translation>
</message>
@@ -491,7 +490,7 @@ have libgstreamer-plugins-base installed.</source>
<message>
<location line="+704"/>
<location line="+2100"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+307"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/>
<source>Open</source>
<translation>Ouvrir</translation>
</message>
@@ -659,7 +658,7 @@ Vérifier le chemin et le nom du fichier.</translation>
<context>
<name>Q3LocalFs</name>
<message>
- <location filename="../src/qt3support/network/q3localfs.cpp" line="+100"/>
+ <location filename="../src/qt3support/network/q3localfs.cpp" line="+130"/>
<location line="+10"/>
<source>Could not read directory
%1</source>
@@ -709,7 +708,7 @@ en
<context>
<name>Q3MainWindow</name>
<message>
- <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2021"/>
+ <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
<source>Line up</source>
<translation>Aligner</translation>
</message>
@@ -722,7 +721,7 @@ en
<context>
<name>Q3NetworkProtocol</name>
<message>
- <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+824"/>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
<source>Operation stopped by the user</source>
<translation>Opération interrompue par l&apos;utilisateur</translation>
</message>
@@ -730,7 +729,7 @@ en
<context>
<name>Q3ProgressDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+194"/>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
<location line="+61"/>
<source>Cancel</source>
<translation>Annuler</translation>
@@ -739,7 +738,7 @@ en
<context>
<name>Q3TabDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+159"/>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/>
<location line="+814"/>
<source>OK</source>
<translation>OK</translation>
@@ -768,7 +767,7 @@ en
<context>
<name>Q3TextEdit</name>
<message>
- <location filename="../src/qt3support/text/q3textedit.cpp" line="+5399"/>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
<source>&amp;Undo</source>
<translation>&amp;Annuler</translation>
</message>
@@ -807,7 +806,7 @@ en
<context>
<name>Q3TitleBar</name>
<message>
- <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+216"/>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
<source>System</source>
<translation>Système</translation>
</message>
@@ -875,7 +874,7 @@ en
<context>
<name>Q3ToolBar</name>
<message>
- <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+662"/>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
<source>More...</source>
<translation>Reste...</translation>
</message>
@@ -883,7 +882,7 @@ en
<context>
<name>Q3UrlOperator</name>
<message>
- <location filename="../src/qt3support/network/q3urloperator.cpp" line="+356"/>
+ <location filename="../src/qt3support/network/q3urloperator.cpp" line="+386"/>
<location line="+260"/>
<location line="+4"/>
<source>The protocol `%1&apos; is not supported</source>
@@ -935,7 +934,7 @@ en
<context>
<name>Q3Wizard</name>
<message>
- <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+147"/>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
<source>&amp;Cancel</source>
<translation>&amp;Annuler</translation>
</message>
@@ -963,9 +962,9 @@ en
<context>
<name>QAbstractSocket</name>
<message>
- <location filename="../src/network/socket/qabstractsocket.cpp" line="+838"/>
- <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+585"/>
- <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+627"/>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
<location line="+26"/>
<source>Host not found</source>
<translation>Hôte introuvable</translation>
@@ -1008,7 +1007,7 @@ en
<context>
<name>QAbstractSpinBox</name>
<message>
- <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1169"/>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/>
<source>&amp;Step up</source>
<translation>&amp;Augmenter</translation>
</message>
@@ -1026,13 +1025,13 @@ en
<context>
<name>QApplication</name>
<message>
- <location filename="../src/gui/kernel/qapplication.cpp" line="+2212"/>
+ <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>
</message>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.h" line="+322"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
<source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
<translation>L&apos;exécutable &apos;%1&apos; requiert Qt %2 (Qt %3 présent).</translation>
</message>
@@ -1042,7 +1041,7 @@ en
<translation>Erreur : bibliothèque Qt incompatible</translation>
</message>
<message>
- <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+346"/>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
<source>Activate</source>
<translation>Activer</translation>
</message>
@@ -1078,7 +1077,7 @@ en
<context>
<name>QCheckBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+84"/>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/>
<source>Uncheck</source>
<translation>Décocher</translation>
</message>
@@ -1096,7 +1095,7 @@ en
<context>
<name>QColorDialog</name>
<message>
- <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1219"/>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/>
<source>Hu&amp;e:</source>
<translation>&amp;Teinte :</translation>
</message>
@@ -1170,13 +1169,13 @@ en
<context>
<name>QComboBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1741"/>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
<location line="+65"/>
<source>Open</source>
<translation>Ouvrir</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+514"/>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
<source>False</source>
<translation>Faux</translation>
</message>
@@ -1219,7 +1218,7 @@ en
<translation type="obsolete">%1: erreur inconnue %2</translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+89"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
<source>%1: key is empty</source>
<comment>QSystemSemaphore</comment>
<translation>%1: clé vide</translation>
@@ -1240,12 +1239,12 @@ en
<context>
<name>QDB2Driver</name>
<message>
- <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1217"/>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
<source>Unable to connect</source>
<translation>Incapable d&apos;établir une connexion</translation>
</message>
<message>
- <location line="+263"/>
+ <location line="+303"/>
<source>Unable to commit transaction</source>
<translation>Incapable de soumettre la transaction</translation>
</message>
@@ -1263,8 +1262,8 @@ en
<context>
<name>QDB2Result</name>
<message>
- <location line="-986"/>
- <location line="+242"/>
+ <location line="-1043"/>
+ <location line="+243"/>
<source>Unable to execute statement</source>
<translation>Impossible d&apos;exécuter la requête</translation>
</message>
@@ -1279,7 +1278,7 @@ en
<translation>Impossible d&apos;attacher la variable</translation>
</message>
<message>
- <location line="+91"/>
+ <location line="+92"/>
<source>Unable to fetch record %1</source>
<translation>Impossible de récupérer l&apos;enregistrement %1</translation>
</message>
@@ -1297,7 +1296,7 @@ en
<context>
<name>QDateTimeEdit</name>
<message>
- <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2265"/>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
<source>AM</source>
<translation>AM</translation>
</message>
@@ -1320,7 +1319,7 @@ en
<context>
<name>QDial</name>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+921"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
<source>QDial</source>
<translation></translation>
</message>
@@ -1338,7 +1337,7 @@ en
<context>
<name>QDialog</name>
<message>
- <location filename="../src/gui/dialogs/qdialog.cpp" line="+567"/>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
<source>What&apos;s This?</source>
<translation>Qu&apos;est-ce que c&apos;est ?</translation>
</message>
@@ -1351,9 +1350,9 @@ en
<context>
<name>QDialogButtonBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1830"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
<location line="+464"/>
- <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+531"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -1476,7 +1475,7 @@ en
<context>
<name>QDirModel</name>
<message>
- <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+423"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/>
<source>Name</source>
<translation>Nom</translation>
</message>
@@ -1506,7 +1505,7 @@ en
<context>
<name>QDockWidget</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1209"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
<source>Close</source>
<translation>Fermer</translation>
</message>
@@ -1537,7 +1536,7 @@ en
<context>
<name>QErrorMessage</name>
<message>
- <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+361"/>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+391"/>
<source>&amp;Show this message again</source>
<translation>&amp;Afficher ce message de nouveau</translation>
</message>
@@ -1565,13 +1564,18 @@ en
<context>
<name>QFile</name>
<message>
- <location filename="../src/corelib/io/qfile.cpp" line="+678"/>
- <location line="+130"/>
+ <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
+ <location line="+141"/>
<source>Destination file exists</source>
<translation>Le fichier destination existe</translation>
</message>
<message>
- <location line="+12"/>
+ <location line="-108"/>
+ <source>Cannot remove source file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+120"/>
<source>Cannot open %1 for input</source>
<translation>Impossible d&apos;ouvrir %1 pour lecture</translation>
</message>
@@ -1612,26 +1616,26 @@ en
<translation>Affichage détaillé</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+467"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+498"/>
<source>Open</source>
<translation>Ouvrir</translation>
</message>
<message>
- <location line="+655"/>
+ <location line="+680"/>
<location line="+50"/>
- <location line="+1440"/>
+ <location line="+1471"/>
<location line="+75"/>
<source>&amp;Open</source>
<translation>&amp;Ouvrir</translation>
</message>
<message>
- <location line="-1565"/>
+ <location line="-1596"/>
<location line="+50"/>
<source>&amp;Save</source>
<translation>&amp;Enregistrer</translation>
</message>
<message>
- <location line="-674"/>
+ <location line="-699"/>
<source>&amp;Rename</source>
<translation>&amp;Renommer</translation>
</message>
@@ -1646,23 +1650,23 @@ en
<translation>Afficher les fic&amp;hiers cachés</translation>
</message>
<message>
- <location line="+625"/>
+ <location line="+650"/>
<source>Directories</source>
<translation>Dossiers</translation>
</message>
<message>
- <location line="+1837"/>
+ <location line="+1869"/>
<source>Recent Places</source>
<translation>Emplacements récents</translation>
</message>
<message>
- <location line="-2478"/>
- <location line="+423"/>
+ <location line="-2535"/>
+ <location line="+444"/>
<source>All Files (*)</source>
<translation>Tous les fichiers (*)</translation>
</message>
<message>
- <location line="+1029"/>
+ <location line="+1054"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>Le fichier %1 existe déjà. Voulez-vous l&apos;écraser ?</translation>
@@ -1694,8 +1698,8 @@ Veuillez vérifier que le nom du fichier est correct.</translation>
<translation>Fichiers de type :</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1450"/>
- <location line="+623"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1496"/>
+ <location line="+648"/>
<source>Directory:</source>
<translation>Dossier :</translation>
</message>
@@ -1708,8 +1712,8 @@ Fichier introuvable.
Veuillez vérifier que le nom du fichier est correct</translation>
</message>
<message>
- <location line="+773"/>
- <location line="+851"/>
+ <location line="+794"/>
+ <location line="+862"/>
<source>%1
Directory not found.
Please verify the correct directory name was given.</source>
@@ -1718,7 +1722,7 @@ Dossier introuvable.
Veuillez vérifier que le nom du dossier est correct.</translation>
</message>
<message>
- <location line="-217"/>
+ <location line="-218"/>
<source>&apos;%1&apos; is write protected.
Do you want to delete it anyway?</source>
<translation>&apos;%1&apos; est protégé en écriture.
@@ -1735,17 +1739,17 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Impossible de supprimer le dossier.</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+130"/>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
<source>All Files (*.*)</source>
<translation>Tous les fichiers (*.*)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2087"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2143"/>
<source>Save As</source>
<translation>Enregistrer sous</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+381"/>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+411"/>
<source>Drive</source>
<translation>Unité</translation>
</message>
@@ -1777,29 +1781,29 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Successeur</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1914"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1970"/>
<source>New Folder</source>
<translation>Nouveau dossier</translation>
</message>
<message>
- <location line="-1907"/>
+ <location line="-1963"/>
<source>&amp;New Folder</source>
<translation>&amp;Nouveau dossier</translation>
</message>
<message>
- <location line="+631"/>
+ <location line="+656"/>
<location line="+38"/>
<source>&amp;Choose</source>
<translation>&amp;Choisir</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qsidebar.cpp" line="+388"/>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/>
<source>Remove</source>
<translation>Supprimer</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-662"/>
- <location line="+627"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-687"/>
+ <location line="+652"/>
<source>File &amp;name:</source>
<translation>&amp;Nom de fichier :</translation>
</message>
@@ -1819,7 +1823,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QFileSystemModel</name>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+707"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+744"/>
<source>%1 TB</source>
<translation>%1 To</translation>
</message>
@@ -1881,7 +1885,7 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Dernière modification</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+204"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/>
<source>My Computer</source>
<translation>Mon ordinateur</translation>
</message>
@@ -1894,7 +1898,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QFontDatabase</name>
<message>
- <location filename="../src/gui/text/qfontdatabase.cpp" line="+60"/>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
<location line="+1176"/>
<source>Normal</source>
<translation></translation>
@@ -2111,7 +2115,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QFontDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+742"/>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/>
<source>&amp;Font</source>
<translation>&amp;Police</translation>
</message>
@@ -2160,7 +2164,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QFtp</name>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="+2273"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+2303"/>
<source>Host %1 found</source>
<translation>Hôte %1 trouvé</translation>
</message>
@@ -2170,7 +2174,7 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Hôte trouvé</translation>
</message>
<message>
- <location filename="../src/network/access/qftp.cpp" line="+973"/>
+ <location filename="../src/network/access/qftp.cpp" line="+1003"/>
<location filename="../src/qt3support/network/q3ftp.cpp" line="-1456"/>
<location line="+1451"/>
<source>Connected to host %1</source>
@@ -2306,7 +2310,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QHostInfo</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_p.h" line="+153"/>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
<source>Unknown error</source>
<translation>Erreur inconnue</translation>
</message>
@@ -2314,11 +2318,11 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QHostInfoAgent</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+148"/>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
<location line="+9"/>
<location line="+64"/>
<location line="+31"/>
- <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+150"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
<location line="+9"/>
<location line="+40"/>
<location line="+27"/>
@@ -2344,13 +2348,13 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QHttp</name>
<message>
- <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+1712"/>
- <location filename="../src/qt3support/network/q3http.cpp" line="+1806"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+876"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+1836"/>
<source>Connection refused</source>
<translation>Connexion refusée</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="+2597"/>
+ <location filename="../src/network/access/qhttp.cpp" line="+2631"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
<source>Host %1 not found</source>
@@ -2402,21 +2406,21 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Connexion arrêtée</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-1073"/>
- <location line="+816"/>
+ <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>Erreur inconnue</translation>
</message>
<message>
- <location line="-564"/>
+ <location line="-568"/>
<location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
<source>Request aborted</source>
<translation>Requête interrompue</translation>
</message>
<message>
- <location line="+575"/>
+ <location line="+579"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
<source>No server set to connect to</source>
<translation>Aucun serveur spécifié</translation>
@@ -2434,7 +2438,12 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Entête de réponse HTTP invalide</translation>
</message>
<message>
- <location line="+120"/>
+ <location line="+28"/>
+ <source>Unknown authentication method</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+97"/>
<location line="+48"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
<location line="+47"/>
@@ -2482,12 +2491,12 @@ Voulez-vous quand même le supprimer?</translation>
<translation>le handshake SSL a échoué</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-133"/>
+ <location filename="../src/network/access/qhttp.cpp" line="-138"/>
<source>Connection refused (or timed out)</source>
<translation>Connexion refusée (ou délai expiré)</translation>
</message>
<message>
- <location line="-2259"/>
+ <location line="-2263"/>
<source>HTTPS connection requested but SSL support not compiled in</source>
<translation>Connexion HTTPS requise mais le support SSL n&apos;est pas compilé</translation>
</message>
@@ -2543,7 +2552,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QIBaseDriver</name>
<message>
- <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1378"/>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1428"/>
<source>Error opening database</source>
<translation>Erreur d&apos;ouverture de la base de données</translation>
</message>
@@ -2566,7 +2575,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QIBaseResult</name>
<message>
- <location line="-1077"/>
+ <location line="-1097"/>
<source>Unable to create BLOB</source>
<translation>Impossible de créer un BLOB</translation>
</message>
@@ -2586,7 +2595,7 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Impossible de lire le BLOB</translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<location line="+189"/>
<source>Could not find array</source>
<translation>Impossible de trouver le tableau</translation>
@@ -2656,7 +2665,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QIODevice</name>
<message>
- <location filename="../src/corelib/global/qglobal.cpp" line="+1830"/>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/>
<source>Permission denied</source>
<translation>Accès refusé</translation>
</message>
@@ -2676,7 +2685,7 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Aucun espace disponible sur le périphérique</translation>
</message>
<message>
- <location filename="../src/corelib/io/qiodevice.cpp" line="+1506"/>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/>
<source>Unknown error</source>
<translation>Erreur inconnue</translation>
</message>
@@ -2684,7 +2693,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QInputContext</name>
<message>
- <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+212"/>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/>
<source>XIM</source>
<translation>XIM</translation>
</message>
@@ -2707,7 +2716,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QInputDialog</name>
<message>
- <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+193"/>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
<source>Enter a value:</source>
<translation>Entrer une valeur :</translation>
</message>
@@ -2727,7 +2736,7 @@ Voulez-vous quand même le supprimer?</translation>
<translation type="obsolete">QLibrary::resolve_sys: Symbole &quot;%1&quot; non défini dans %2 (%3)</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary.cpp" line="+348"/>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
<source>Could not mmap &apos;%1&apos;: %2</source>
<translation>Impossible d&apos;établir la projection en mémoire de &apos;%1&apos; : %2</translation>
</message>
@@ -2758,7 +2767,7 @@ Voulez-vous quand même le supprimer?</translation>
</message>
<message>
<location line="-377"/>
- <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+250"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
<source>The shared library was not found.</source>
<translation>La bibliothèque partagée est introuvable.</translation>
</message>
@@ -2773,8 +2782,8 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Le plugin &apos;%1&apos; utilise une bibliothèque Qt incompatible. (Il est impossible de mélanger des bibliothèques &apos;debug&apos; et &apos;release&apos;.)</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+179"/>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+69"/>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
<source>Cannot load library %1: %2</source>
<translation>Impossible de charger la bibliothèque %1 : %2</translation>
</message>
@@ -2794,7 +2803,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QLineEdit</name>
<message>
- <location filename="../src/gui/widgets/qlineedit.cpp" line="+2679"/>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+2710"/>
<source>Select All</source>
<translation>Tout sélectionner</translation>
</message>
@@ -2832,8 +2841,8 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QLocalServer</name>
<message>
- <location filename="../src/network/socket/qlocalserver.cpp" line="+196"/>
- <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+201"/>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/>
<source>%1: Name error</source>
<translation>%1: Erreur de nom</translation>
</message>
@@ -2849,7 +2858,7 @@ Voulez-vous quand même le supprimer?</translation>
</message>
<message>
<location line="+5"/>
- <location filename="../src/network/socket/qlocalserver_win.cpp" line="+127"/>
+ <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/>
<source>%1: Unknown error %2</source>
<translation>%1: Erreur inconnue %2</translation>
</message>
@@ -2857,8 +2866,8 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QLocalSocket</name>
<message>
- <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+102"/>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+104"/>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/>
<source>%1: Connection refused</source>
<translation>%1: Connexion refusée</translation>
</message>
@@ -2871,7 +2880,7 @@ Voulez-vous quand même le supprimer?</translation>
<message>
<location line="+3"/>
<location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
- <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+50"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/>
<location line="+43"/>
<source>%1: Invalid name</source>
<translation>%1: Nom invalide</translation>
@@ -2928,7 +2937,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QMYSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1200"/>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1231"/>
<source>Unable to open database &apos;</source>
<translation>Impossible d&apos;ouvrir la base de données &apos;</translation>
</message>
@@ -2938,7 +2947,7 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Impossible d&apos;établir une connexion</translation>
</message>
<message>
- <location line="+123"/>
+ <location line="+127"/>
<source>Unable to begin transaction</source>
<translation>Impossible de démarrer la transaction</translation>
</message>
@@ -2956,7 +2965,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QMYSQLResult</name>
<message>
- <location line="-917"/>
+ <location line="-922"/>
<source>Unable to fetch data</source>
<translation>Impossible de récuperer des données</translation>
</message>
@@ -2971,7 +2980,7 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Impossible de stocker le résultat</translation>
</message>
<message>
- <location line="+189"/>
+ <location line="+190"/>
<location line="+8"/>
<source>Unable to prepare statement</source>
<translation>Impossible de préparer l&apos;instruction</translation>
@@ -3016,7 +3025,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QMdiArea</name>
<message>
- <location filename="../src/gui/widgets/qmdiarea.cpp" line="+260"/>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
<source>(Untitled)</source>
<translation>(Sans titre)</translation>
</message>
@@ -3024,7 +3033,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QMdiSubWindow</name>
<message>
- <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+250"/>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
<source>%1 - [%2]</source>
<translation>%1 - [%2]</translation>
</message>
@@ -3117,7 +3126,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QMenu</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+127"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
<location line="+225"/>
<source>Close</source>
<translation>Fermer</translation>
@@ -3190,7 +3199,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QMessageBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1958"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1964"/>
<location line="+852"/>
<location filename="../src/gui/dialogs/qmessagebox.h" line="-52"/>
<location line="+8"/>
@@ -3198,26 +3207,25 @@ Voulez-vous quand même le supprimer?</translation>
<translation>OK</translation>
</message>
<message>
- <location line="+503"/>
+ <location line="+509"/>
<source>About Qt</source>
<translation>À propos de Qt</translation>
</message>
<message>
- <location line="-502"/>
+ <location line="-508"/>
<source>Help</source>
<translation>Aide</translation>
</message>
<message>
- <location line="+487"/>
<source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Ce programme utilise la version %1 de Qt.&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Ce programme utilise la version %1 de 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 Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt is a Trolltech product. See &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</translation>
</message>
<message>
- <location line="-1584"/>
+ <location line="-1097"/>
<source>Show Details...</source>
<translation>Montrer les détails...</translation>
</message>
@@ -3228,13 +3236,16 @@ Voulez-vous quand même le supprimer?</translation>
</message>
<message>
<location line="+1570"/>
+ <source>&lt;h3&gt;About Qt&lt;/h3&gt;&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;&lt;p&gt;Qt is a C++ toolkit for cross-platform application development.&lt;/p&gt;&lt;p&gt;Qt provides single-source portability across MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.&lt;/p&gt;&lt;p&gt;Qt is available under three different licensing options designed to accommodate the needs of our various users.&lt;/p&gt;Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.&lt;/p&gt;&lt;p&gt;Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.&lt;/p&gt;&lt;p&gt;Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.&lt;/p&gt;&lt;p&gt;Please see &lt;a href=&quot;http://www.qtsoftware.com/products/licensing&quot;&gt;www.qtsoftware.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://www.qtsoftware.com/qt/&quot;&gt;www.qtsoftware.com/qt&lt;/a&gt; for more information.&lt;/p&gt;</source>
+ <translation type="unfinished"></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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
- <translation>&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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; pour plus d&apos;informations.&lt;/p&gt;</translation>
+ <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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; pour plus d&apos;informations.&lt;/p&gt;</translation>
</message>
<message>
- <location line="+15"/>
<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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
- <translation>&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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
@@ -3244,7 +3255,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QMultiInputContext</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+58"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
<source>Select IM</source>
<translation>Sélectionner IM</translation>
</message>
@@ -3252,7 +3263,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QMultiInputContextPlugin</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+65"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
<source>Multiple input method switcher</source>
<translation>Sélectionneur de méthode de saisie</translation>
</message>
@@ -3265,7 +3276,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QNativeSocketEngine</name>
<message>
- <location filename="../src/network/socket/qnativesocketengine.cpp" line="+176"/>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/>
<source>The remote host closed the connection</source>
<translation>L&apos;hôte distant a fermé la connexion</translation>
</message>
@@ -3398,7 +3409,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QNetworkAccessCacheBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+35"/>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
<source>Error opening %1</source>
<translation>Erreur lors de l&apos;ouverture de %1</translation>
</message>
@@ -3406,7 +3417,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QNetworkAccessFileBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+69"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/>
<source>Request for opening non-local file %1</source>
<translation>Requête d&apos;ouverture de fichier distant %1</translation>
</message>
@@ -3434,7 +3445,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QNetworkAccessFtpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+135"/>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/>
<source>No suitable proxy found</source>
<translation>Aucun proxy trouvé</translation>
</message>
@@ -3444,7 +3455,7 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Impossible d&apos;ouvrir %1 : le chemin est un dossier</translation>
</message>
<message>
- <location line="+131"/>
+ <location line="+130"/>
<source>Logging in to %1 failed: authentication required</source>
<translation>Connexion à %1 a échoué : authentification requise</translation>
</message>
@@ -3462,7 +3473,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QNetworkAccessHttpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+565"/>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/>
<source>No suitable proxy found</source>
<translation>Aucun proxy trouvé</translation>
</message>
@@ -3475,7 +3486,7 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Erreur lors du téléchargement de %1 - le serveur a répondu: %2</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+37"/>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/>
<source>Protocol &quot;%1&quot; is unknown</source>
<translation>Le protocole &quot;%1&quot; est inconnu</translation>
</message>
@@ -3483,7 +3494,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QNetworkReplyImpl</name>
<message>
- <location line="+422"/>
+ <location line="+432"/>
<location line="+22"/>
<source>Operation canceled</source>
<translation>Opération annulée</translation>
@@ -3492,7 +3503,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QOCIDriver</name>
<message>
- <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2027"/>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2069"/>
<source>Unable to logon</source>
<translation>Impossible d&apos;ouvrir une session</translation>
</message>
@@ -3521,7 +3532,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QOCIResult</name>
<message>
- <location line="-976"/>
+ <location line="-963"/>
<location line="+161"/>
<location line="+15"/>
<source>Unable to bind column for batch execute</source>
@@ -3548,18 +3559,16 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Impossible de préparer la requête</translation>
</message>
<message>
- <location line="+29"/>
- <location line="+37"/>
+ <location line="+36"/>
<source>Unable to bind value</source>
<translation>Impossible d&apos;attacher la valeur</translation>
</message>
<message>
- <location line="-20"/>
<source>Unable to execute select statement</source>
- <translation>Impossible d&apos;exéctuer la requête select</translation>
+ <translation type="obsolete">Impossible d&apos;exéctuer la requête select</translation>
</message>
<message>
- <location line="+32"/>
+ <location line="+19"/>
<source>Unable to execute statement</source>
<translation>Impossible d&apos;exéctuer la requête</translation>
</message>
@@ -3567,7 +3576,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QODBCDriver</name>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1657"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1785"/>
<source>Unable to connect</source>
<translation>Incapable d&apos;établir une connexion</translation>
</message>
@@ -3577,7 +3586,7 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Impossible de se connecter - Le pilote ne supporte pas toutes les fonctionnalités nécessaires</translation>
</message>
<message>
- <location line="+234"/>
+ <location line="+242"/>
<source>Unable to disable autocommit</source>
<translation>Impossible de désactiver l&apos;autocommit</translation>
</message>
@@ -3600,19 +3609,19 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QODBCResult</name>
<message>
- <location line="-1204"/>
+ <location line="-1218"/>
<location line="+349"/>
<source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
<translation>QODBCResult::reset: 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>
<location line="-332"/>
- <location line="+625"/>
+ <location line="+626"/>
<source>Unable to execute statement</source>
<translation>Impossible d&apos;exéctuer la requête</translation>
</message>
<message>
- <location line="-554"/>
+ <location line="-555"/>
<source>Unable to fetch next</source>
<translation>Impossible de récupérer le suivant</translation>
</message>
@@ -3622,19 +3631,19 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Impossible de préparer la requête</translation>
</message>
<message>
- <location line="+267"/>
+ <location line="+268"/>
<source>Unable to bind variable</source>
<translation>Impossible d&apos;attacher la variable</translation>
</message>
<message>
<location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-474"/>
- <location line="+577"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-475"/>
+ <location line="+578"/>
<source>Unable to fetch last</source>
<translation>Impossible de récupérer le dernier</translation>
</message>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-671"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
<source>Unable to fetch</source>
<translation>Impossible de récupérer</translation>
</message>
@@ -3652,12 +3661,12 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QObject</name>
<message>
- <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+134"/>
+ <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
<source>Home</source>
<translation>Début</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+44"/>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
<source>Operation not supported on %1</source>
<translation>Opération non supportée sur %1</translation>
</message>
@@ -3667,7 +3676,7 @@ Voulez-vous quand même le supprimer?</translation>
<translation>URI invalide : %1</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+145"/>
+ <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>
</message>
@@ -3692,7 +3701,7 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Erreur de protocole: paquet de taille 0 reçu</translation>
</message>
<message>
- <location filename="../src/network/kernel/qhostinfo.cpp" line="+147"/>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
<location line="+57"/>
<source>No host name given</source>
<translation>Nom d&apos;hôte manquant</translation>
@@ -3701,7 +3710,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QPPDOptionsModel</name>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1165"/>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/>
<source>Name</source>
<translation>Nom</translation>
</message>
@@ -3714,7 +3723,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QPSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+732"/>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/>
<source>Unable to connect</source>
<translation>Impossible d&apos;établir une connexion</translation>
</message>
@@ -3734,7 +3743,7 @@ Voulez-vous quand même le supprimer?</translation>
<translation>Impossible d&apos;annuler la transaction</translation>
</message>
<message>
- <location line="+336"/>
+ <location line="+358"/>
<source>Unable to subscribe</source>
<translation>Impossible de s&apos;inscrire</translation>
</message>
@@ -3747,12 +3756,12 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QPSQLResult</name>
<message>
- <location line="-1035"/>
+ <location line="-1058"/>
<source>Unable to create query</source>
<translation>Impossible de créer la requête</translation>
</message>
<message>
- <location line="+373"/>
+ <location line="+374"/>
<source>Unable to prepare statement</source>
<translation>Impossible de préparer la requête</translation>
</message>
@@ -3760,7 +3769,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QPageSetupWidget</name>
<message>
- <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+274"/>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
<source>Centimeters (cm)</source>
<translation>Centimètres (cm)</translation>
</message>
@@ -3876,7 +3885,7 @@ Voulez-vous quand même le supprimer?</translation>
<context>
<name>QPrintDialog</name>
<message>
- <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+68"/>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/>
<source>locally connected</source>
<translation>connecté en local</translation>
</message>
@@ -3887,7 +3896,7 @@ Voulez-vous quand même le supprimer?</translation>
<translation>inconnu</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+238"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -3900,7 +3909,7 @@ Voulez-vous quand même le supprimer?</translation>
<translation type="obsolete">Imprimer en couleur si possible</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+345"/>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+375"/>
<source>Print all</source>
<translation>Imprimer tout</translation>
</message>
@@ -4103,7 +4112,7 @@ Voulez-vous quand même le supprimer?</translation>
<translation type="obsolete">Source du papier :</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+80"/>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
<location line="+13"/>
<location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
<source>Print</source>
@@ -4405,7 +4414,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QPrintPreviewDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+222"/>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
@@ -4505,7 +4514,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Exporter vers PostScript</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+38"/>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
<location line="+12"/>
<source>Page Setup</source>
<translation>Configuration de la page</translation>
@@ -4693,8 +4702,8 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QProcess</name>
<message>
- <location filename="../src/corelib/io/qprocess_unix.cpp" line="+445"/>
- <location filename="../src/corelib/io/qprocess_win.cpp" line="+117"/>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
<source>Could not open input redirection for reading</source>
<translation>Impossible d&apos;ouvrir la redirection d&apos;entrée en lecture</translation>
</message>
@@ -4723,7 +4732,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Operation de processus a expiré</translation>
</message>
<message>
- <location filename="../src/corelib/io/qprocess.cpp" line="+503"/>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+533"/>
<location line="+52"/>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
<location line="+50"/>
@@ -4743,6 +4752,11 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Le processus à planté</translation>
</message>
<message>
+ <location line="+912"/>
+ <source>No program defined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
<source>Process failed to start</source>
<translation>Le processus n&apos;a pas démarré</translation>
@@ -4751,7 +4765,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QProgressDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+152"/>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
<source>Cancel</source>
<translation>Annuler</translation>
</message>
@@ -4775,7 +4789,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QRegExp</name>
<message>
- <location filename="../src/corelib/tools/qregexp.cpp" line="+34"/>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/>
<source>no error occurred</source>
<translation>aucune erreur ne s&apos;est produite</translation>
</message>
@@ -4823,7 +4837,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QSQLite2Driver</name>
<message>
- <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+353"/>
+ <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>
</message>
@@ -4846,12 +4860,12 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QSQLite2Result</name>
<message>
- <location line="-310"/>
+ <location line="-323"/>
<source>Unable to fetch results</source>
<translation>Impossible de récupérer les résultats</translation>
</message>
<message>
- <location line="+139"/>
+ <location line="+147"/>
<source>Unable to execute statement</source>
<translation>Impossible d&apos;exécuter la requête</translation>
</message>
@@ -4859,7 +4873,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QSQLiteDriver</name>
<message>
- <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+498"/>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/>
<source>Error opening database</source>
<translation>Erreur lors de l&apos;ouverture de la base de données</translation>
</message>
@@ -4926,12 +4940,12 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QScrollBar</name>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="+419"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/>
<source>Scroll here</source>
<translation>Défiler jusqu&apos;ici</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Left edge</source>
<translation>Extrême gauche</translation>
</message>
@@ -4941,7 +4955,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>En haut</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Right edge</source>
<translation>Extrême droite</translation>
</message>
@@ -4951,7 +4965,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>En bas</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Page left</source>
<translation>Page précédente</translation>
</message>
@@ -4962,7 +4976,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Page précédente</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Page right</source>
<translation>Page suivante</translation>
</message>
@@ -4973,7 +4987,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Page suivante</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Scroll left</source>
<translation>Défiler vers la gauche</translation>
</message>
@@ -4983,7 +4997,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Défiler vers le haut</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Scroll right</source>
<translation>Défiler vers la droite</translation>
</message>
@@ -5011,7 +5025,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QSharedMemory</name>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+177"/>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+207"/>
<source>%1: unable to set key on lock</source>
<translation>%1 : impossible d&apos;affecter la clé au verrou</translation>
</message>
@@ -5022,7 +5036,7 @@ Veuillez choisir un nom de fichier différent.</translation>
</message>
<message>
<location line="+168"/>
- <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+118"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
<source>%1: unable to lock</source>
<translation>%1 : impossible de vérrouiller</translation>
</message>
@@ -5032,8 +5046,8 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>%1 : impossible de déverrouiller</translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+48"/>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+57"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
<source>%1: permission denied</source>
<translation>%1 : permission refusée</translation>
</message>
@@ -5111,7 +5125,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QShortcut</name>
<message>
- <location filename="../src/gui/kernel/qkeysequence.cpp" line="+343"/>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/>
<source>Space</source>
<translation>Espace</translation>
</message>
@@ -5697,7 +5711,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QSql</name>
<message>
- <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+860"/>
+ <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
<source>Delete</source>
<translation>Supprimer</translation>
</message>
@@ -5754,7 +5768,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QSslSocket</name>
<message>
- <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+539"/>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+569"/>
<source>Unable to write data: %1</source>
<translation>Impossible d&apos;écrire les données : %1</translation>
</message>
@@ -5817,7 +5831,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<name>QSystemSemaphore</name>
<message>
<location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+36"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
<source>%1: out of resources</source>
<translation>%1: plus de ressources disponibles</translation>
</message>
@@ -5847,7 +5861,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QTDSDriver</name>
<message>
- <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+552"/>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
<source>Unable to open connection</source>
<translation>Impossible d&apos;ouvrir la connexion</translation>
</message>
@@ -5877,7 +5891,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation type="obsolete">Operation socket non supportée</translation>
</message>
<message>
- <location filename="../src/network/socket/qtcpserver.cpp" line="+252"/>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
<source>Operation on socket is not supported</source>
<translation>Opération sur le socket non supportée</translation>
</message>
@@ -5885,7 +5899,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QTextControl</name>
<message>
- <location filename="../src/gui/text/qtextcontrol.cpp" line="+1942"/>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/>
<source>&amp;Undo</source>
<translation>&amp;Annuler</translation>
</message>
@@ -5943,7 +5957,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QUdpSocket</name>
<message>
- <location filename="../src/network/socket/qudpsocket.cpp" line="+139"/>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
<source>This platform does not support IPv6</source>
<translation>Cette plateforme ne supporte pas IPv6</translation>
</message>
@@ -5951,7 +5965,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QUndoGroup</name>
<message>
- <location filename="../src/gui/util/qundogroup.cpp" line="+356"/>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+386"/>
<source>Undo</source>
<translation>Annuler</translation>
</message>
@@ -5964,7 +5978,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QUndoModel</name>
<message>
- <location filename="../src/gui/util/qundoview.cpp" line="+71"/>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
<source>&lt;empty&gt;</source>
<translation>&lt;vide&gt;</translation>
</message>
@@ -5972,7 +5986,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QUndoStack</name>
<message>
- <location filename="../src/gui/util/qundostack.cpp" line="+804"/>
+ <location filename="../src/gui/util/qundostack.cpp" line="+834"/>
<source>Undo</source>
<translation>Annuler</translation>
</message>
@@ -6043,7 +6057,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QWebFrame</name>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+686"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
<source>Request cancelled</source>
<translation>Requête annulée</translation>
</message>
@@ -6459,7 +6473,7 @@ Veuillez choisir un nom de fichier différent.</translation>
</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1342"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
<source>JavaScript Alert - %1</source>
<translation>Alerte javascript - %1</translation>
</message>
@@ -6535,6 +6549,11 @@ Veuillez choisir un nom de fichier différent.</translation>
</message>
<message>
<location line="+3"/>
+ <source>Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
<source>Select to the next character</source>
<translation>Sélectionner le caractère suivant</translation>
</message>
@@ -6603,11 +6622,21 @@ Veuillez choisir un nom de fichier différent.</translation>
<source>Delete to the end of the word</source>
<translation>Supprimer jusqu&apos;à la fin du mot</translation>
</message>
+ <message>
+ <location line="+33"/>
+ <source>Insert a new paragraph</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QWhatsThisAction</name>
<message>
- <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+492"/>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
<source>What&apos;s This?</source>
<translation>Qu&apos;est-ce que c&apos;est ?</translation>
</message>
@@ -6615,7 +6644,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5290"/>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/>
<source>*</source>
<translation>*</translation>
</message>
@@ -6623,7 +6652,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QWizard</name>
<message>
- <location filename="../src/gui/dialogs/qwizard.cpp" line="+605"/>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/>
<source>Go Back</source>
<translation>Précédent</translation>
</message>
@@ -6685,7 +6714,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QWorkspace</name>
<message>
- <location filename="../src/gui/widgets/qworkspace.cpp" line="+1064"/>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/>
<source>&amp;Restore</source>
<translation>&amp;Restaurer</translation>
</message>
@@ -6755,7 +6784,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QXml</name>
<message>
- <location filename="../src/xml/sax/qxml.cpp" line="+28"/>
+ <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
<source>no error occurred</source>
<translation>aucune erreur ne s&apos;est produite</translation>
</message>
@@ -6873,8 +6902,8 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QXmlStream</name>
<message>
- <location filename="../src/corelib/xml/qxmlstream.cpp" line="+562"/>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1739"/>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/>
<source>Extra content at end of document.</source>
<translation>Conteny supplémentaire à la fin du document.</translation>
</message>
@@ -7062,7 +7091,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<context>
<name>QtXmlPatterns</name>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+175"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
<source>An %1-attribute with value %2 has already been declared.</source>
<translation>Un attribute %1 avec la valeur %2 est déjà déclaré.</translation>
</message>
@@ -7072,12 +7101,12 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Un attribute %1 doit avoir un %2 valide, %3 ne l&apos;a pas.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+54"/>
+ <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
<source>Network timeout.</source>
<translation>Le réseau ne répond pas.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+290"/>
+ <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>L&apos;élément %1 ne peut pas être sérialisé parce qu&apos;il est hors de l&apos;élément document.</translation>
</message>
@@ -7086,7 +7115,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation type="obsolete">L&apos;élément attribute %1 ne peut pas être sérialisé parce qu&apos;il apparaît comme racine.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+50"/>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
<source>Year %1 is invalid because it begins with %2.</source>
<translation>L&apos;année %1 est invalide parce qu&apos;elle commence par %2.</translation>
</message>
@@ -7126,7 +7155,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Overflow : la date ne peut pas être représentée.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+69"/>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/>
<location line="+15"/>
<source>At least one component must be present.</source>
<translation>Au moins un composant doit être présent.</translation>
@@ -7137,7 +7166,7 @@ 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="+34"/>
+ <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
<source>No operand in an integer division, %1, can be %2.</source>
<translation>Pas d&apos;opérande dans une division entière, %1, peut être %2.</translation>
</message>
@@ -7152,17 +7181,17 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Le second opérande dans une division, %1, ne peut être nul (%2).</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+102"/>
+ <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/>
<source>%1 is not a valid value of type %2.</source>
<translation>%1 n&apos;est pas une valeur valide du type %2.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+193"/>
+ <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>En castant de %2 vers %1, la valeur source ne peut pas être %3.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+35"/>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
<source>Integer division (%1) by zero (%2) is undefined.</source>
<translation>Division entière (%1) par zéro (%2) indéfinie.</translation>
</message>
@@ -7193,17 +7222,17 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>La multiplication d&apos;une valeur du type %1 par %2 ou %3 (plus ou moins infini) est interdite.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+49"/>
+ <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/>
<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>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+48"/>
+ <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>Effective Boolean Value ne peut être calculée pour une séquence contenant deux ou plus valeurs atomiques.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+372"/>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
<source>Value %1 of type %2 exceeds maximum (%3).</source>
<translation>La valeur %1 de type %2 excède le maximum (%3).</translation>
</message>
@@ -7213,7 +7242,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>La valeur %1 de type %2 est inférieur au minimum (%3).</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+61"/>
+ <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>Une valeur de type %1 doit contenir un nombre pair de chiffre. La valeur %2 n&apos;est pas conforme.</translation>
</message>
@@ -7223,7 +7252,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>%1 n&apos;est pas une valeur valide de type %2.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+177"/>
+ <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
<source>Operator %1 cannot be used on type %2.</source>
<translation>L&apos;opérateur %1 ne peut pas être utilisé pour le type %2.</translation>
</message>
@@ -7233,7 +7262,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>L&apos;opérateur %1 ne peut pas être utilisé pour des valeurs atomiques de type %2 ou %3.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+36"/>
+ <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>L&apos;URI de namespace dans le nom d&apos;un attribut calculé ne peut pas être %1.</translation>
</message>
@@ -7243,7 +7272,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Le nom d&apos;un attribut calculé ne peut pas avoir l&apos;URI de namespace %1 avec le nom local %2.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
<source>Type error in cast, expected %1, received %2.</source>
<translation>Erreur de type lors du cast, attendu %1 mais reçu %2.</translation>
</message>
@@ -7253,7 +7282,7 @@ 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="+104"/>
+ <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/>
<source>No casting is possible with %1 as the target type.</source>
<translation>Aucun cast n&apos;est possible avec %1 comme type de destination.</translation>
</message>
@@ -7278,7 +7307,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Echec en castant de %1 ver %2 : %3</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+37"/>
+ <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
<source>A comment cannot contain %1</source>
<translation>Un commentaire ne peut pas contenir %1</translation>
</message>
@@ -7288,7 +7317,7 @@ 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="+137"/>
+ <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
<source>No comparisons can be done involving the type %1.</source>
<translation>Aucune comparaison ne peut être faite avec le type %1.</translation>
</message>
@@ -7298,12 +7327,12 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>L&apos;opérateur %1 n&apos;est pas disponible entre valeurs atomiques de type %2 et %3.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+56"/>
+ <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>Un noeuds attribut ne peut être un fils d&apos;un noeuds document. C&apos;est pourquoi l&apos;attribut %1 est mal placé.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+139"/>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
<source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
<translation>Un module de bibliothèque ne peut pas être évalué directement. Il doit être importé d&apos;un module principal.</translation>
</message>
@@ -7313,7 +7342,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Aucun template nommé %1 n&apos;existe.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+76"/>
+ <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>Une valeur de type %1 ne peut être un prédicat. Un prédicat doit être de type numérique ou un Effective Boolean Value.</translation>
</message>
@@ -7323,7 +7352,7 @@ 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="+83"/>
+ <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>
</message>
@@ -7333,33 +7362,33 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>%1 n&apos;est pas un nom de destination valide dans une instruction de traitement. Ce doit être une valeur %2, par ex. %3.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+79"/>
+ <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>La dernière étape dans un chemin doit contenir soit des noeuds soit des valeurs atomiques. Cela ne peut pas être un mélange des deux.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+54"/>
+ <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/>
<source>The data of a processing instruction cannot contain the string %1</source>
<translation>Les données d&apos;une instruction de traitement ne peut contenir la chaîne %1</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+52"/>
+ <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+82"/>
<source>No namespace binding exists for the prefix %1</source>
<translation>Aucun lien de namespace n&apos;existe pour le préfixe %1</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+126"/>
+ <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+156"/>
<source>No namespace binding exists for the prefix %1 in %2</source>
<translation>Aucun lien de namespace n&apos;existe pour le préfixe %1 dans %2</translation>
</message>
<message>
<location line="+12"/>
- <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+39"/>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
<source>%1 is an invalid %2</source>
<translation>%1 est un ivalide %2</translation>
</message>
<message numerus="yes">
- <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+47"/>
+ <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 prend au maximum %n argument. %2 est donc invalide.</numerusform>
@@ -7375,7 +7404,7 @@ Veuillez choisir un nom de fichier différent.</translation>
</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+90"/>
+ <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>Le premier argument de %1 ne peut être du type %2. Il doit être de type numérique, xs:yearMonthDuration ou xs:dayTimeDuration.</translation>
</message>
@@ -7390,27 +7419,27 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Le deuxième argument de %1 ne peut être du type %2. Il doit être de type %3, %4 ou %5.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/>
<source>%1 is not a valid XML 1.0 character.</source>
<translation>%1 n&apos;est pas un caractère XML 1.0 valide.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+167"/>
+ <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>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+56"/>
+ <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>Si les deux valeurs ont des décalages de zone, elle doivent avoir le même. %1 et %2 sont différents.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+31"/>
+ <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
<source>%1 was called.</source>
<translation>%1 a été appelé.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+64"/>
+ <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>%1 doit être suivi par %2 ou %3, et non à la fin de la chaîne de remplacement.</translation>
</message>
@@ -7425,7 +7454,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Dans la chaîne de remplacement, %1 peut seulement être utilisé pour échapper lui-même ou %2 mais pas %3</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+62"/>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
<source>%1 matches newline characters</source>
<translation>%1 correspond à des caractères de saut de ligne</translation>
</message>
@@ -7460,17 +7489,17 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Si le premier argument est une sequence vide ou un chaîne vide (sans namespace), un préfixe ne peut être spécifié. Le préfixe %1 a été spécifié.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+317"/>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/>
<source>It will not be possible to retrieve %1.</source>
<translation>Il sera impossible de récupérer %1.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+24"/>
+ <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>Le noeuds racine du deuxième argument à la fonction %1 doit être un noeuds document. %2 n&apos;est pas un document.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+249"/>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
<source>The default collection is undefined</source>
<translation>I&apos;l n&apos;y a pas de collection par défaut</translation>
</message>
@@ -7480,12 +7509,12 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>%1 ne peut pas être récupéré</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+222"/>
+ <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>Le forme de normalisation %1 n&apos;est pas supportée. Les formes supportées sont %2, %3, %4 et %5, et aucun, ie. une chaîne vide (pas de normalisation).</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+57"/>
+ <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>Un décalage de zone doit être dans l&apos;intervalle %1..%2 inclus. %3 est hors de l&apos;intervalle.</translation>
</message>
@@ -7494,17 +7523,17 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation type="obsolete">%1 n&apos;est pas un nombre complet de minutes.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+28"/>
+ <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+58"/>
<source>Required cardinality is %1; got cardinality %2.</source>
<translation>La cardinalité requise est %1; reçu %2.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+37"/>
+ <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/>
<source>The item %1 did not match the required type %2.</source>
<translation>L&apos;item %1 ne correspond pas au type requis %2.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+319"/>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/>
<location line="+7253"/>
<source>%1 is an unknown schema type.</source>
<translation>%1 est un type de schema inconnu.</translation>
@@ -7525,7 +7554,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Aucun variable nommée %1 existe</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+63"/>
+ <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
<source>The variable %1 is unused</source>
<translation>La variable %1 est inutilisée</translation>
</message>
@@ -7823,7 +7852,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Le nom d&apos;une expression d&apos;extension doit être dans un namespace.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+25"/>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
<source>empty</source>
<translation>vide</translation>
</message>
@@ -7848,7 +7877,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>zéro ou plus</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+33"/>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
<source>Required type is %1, but %2 was found.</source>
<translation>Le type requis est %1, mais %2 a été reçu.</translation>
</message>
@@ -7863,7 +7892,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Le focus est indéfini.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+56"/>
+ <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>Il est impossible d&apos;ajouter des attributs après un autre type de noeuds.</translation>
</message>
@@ -7873,7 +7902,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Un attribute de nom %1 a déjà été créé.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+90"/>
+ <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/>
<source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source>
<translation>Seule le Unicode CodepointCollation est supporté (%1), %2 n&apos;est pas supporté.</translation>
</message>
@@ -7888,7 +7917,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>L&apos;attribut %1 ne peut pas être sérialisé car il apparaît à la racine.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+284"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
<source>%1 is an unsupported encoding.</source>
<translation>%1 est un encodage non supporté.</translation>
</message>
@@ -7903,14 +7932,18 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Le codepoint %1 dans %2 et utilisant l&apos;encodage %3 est un caractère XML invalide.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+89"/>
+ <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
<source>Ambiguous rule match.</source>
<translation>Corresonpdance aux règles ambigüe.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+39"/>
<source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source>
- <translation>Dans un cosntructeur de namespace, la valeur pour un namespace ne peut pas être une chaîne vide.</translation>
+ <translation type="obsolete">Dans un cosntructeur de namespace, la valeur pour un namespace ne peut pas être une chaîne vide.</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"/>
@@ -7928,12 +7961,12 @@ 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="+87"/>
+ <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
<source>Circularity detected</source>
<translation>Circularité détectée</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+115"/>
+ <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/>
<source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
<translation>Le paramètre %1 est requis, mais aucun %2 correspondant n&apos;est fourni.</translation>
</message>
@@ -7943,12 +7976,12 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Le paramètre %1 est passé mais aucun %2 correspondant n&apos;existe.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+35"/>
+ <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+65"/>
<source>The URI cannot have a fragment</source>
<translation>L&apos;URI ne peut pas avoir de fragments</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+489"/>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
<source>Element %1 is not allowed at this location.</source>
<translation>L&apos;élément %1 n&apos;est pas autorisé à cet emplacement.</translation>
</message>
@@ -8003,7 +8036,7 @@ 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="+153"/>
+ <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/>
<source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source>
<translation>L&apos;attribut %1 ne peut pas apparaître sur l&apos;élément %2. Seuls les attributs standard le peuvent.</translation>
</message>
@@ -8078,7 +8111,7 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>L&apos;élément %1 ne peut pas avoir de fils.</translation>
</message>
<message>
- <location line="+432"/>
+ <location line="+434"/>
<source>Element %1 cannot have a sequence constructor.</source>
<translation>L&apos;élément %1 ne peut pas avoir un constructuer de séquence.</translation>
</message>
diff --git a/translations/qt_help_de.ts b/translations/qt_help_de.ts
index 45ddf03..ed8a3c3 100644
--- a/translations/qt_help_de.ts
+++ b/translations/qt_help_de.ts
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="de">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="de">
<context>
<name>QCLuceneResultWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+80"/>
+ <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+110"/>
<source>Search Results</source>
<translation>Ergebnisse</translation>
</message>
@@ -32,7 +32,7 @@
<context>
<name>QHelpCollectionHandler</name>
<message>
- <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+49"/>
+ <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/>
<source>The collection file is not set up yet!</source>
<translation>Das &quot;Collection File&quot; ist noch nicht eingerichtet.</translation>
</message>
@@ -111,7 +111,7 @@
<context>
<name>QHelpDBReader</name>
<message>
- <location filename="../tools/assistant/lib/qhelpdbreader.cpp" line="+65"/>
+ <location filename="../tools/assistant/lib/qhelpdbreader.cpp" line="+95"/>
<source>Cannot open database &apos;%1&apos; &apos;%2&apos;: %3</source>
<translation>Kann Datenbank nicht öffnen: &apos;%1&apos; &apos;%2&apos;: %3</translation>
</message>
@@ -119,7 +119,7 @@
<context>
<name>QHelpEngineCore</name>
<message>
- <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+482"/>
+ <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+516"/>
<source>The specified namespace does not exist!</source>
<translation>Der angegebene Namensraum existiert nicht!</translation>
</message>
@@ -127,7 +127,7 @@
<context>
<name>QHelpEngineCorePrivate</name>
<message>
- <location line="-390"/>
+ <location line="-394"/>
<source>Cannot open documentation file %1: %2!</source>
<translation>Kann Dokumentations-Datei nicht öffnen: %1: %2!</translation>
</message>
@@ -135,7 +135,7 @@
<context>
<name>QHelpGenerator</name>
<message>
- <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+127"/>
+ <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+157"/>
<source>Invalid help data!</source>
<translation>Ungültige Hilfe-Daten!</translation>
</message>
@@ -180,7 +180,7 @@
<translation>Dokumentation erfolgreich generiert.</translation>
</message>
<message>
- <location line="+72"/>
+ <location line="+76"/>
<source>Some tables already exist!</source>
<translation>Einige Tabellen existieren bereits!</translation>
</message>
@@ -210,7 +210,7 @@
<translation>Kann Datei %1 nicht öffnen! Überspringe sie.</translation>
</message>
<message>
- <location line="+132"/>
+ <location line="+134"/>
<source>The filter %1 is already registered!</source>
<translation>Der Filter %1 is bereits registriert!</translation>
</message>
@@ -243,7 +243,7 @@
<context>
<name>QHelpSearchQueryWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+170"/>
+ <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+200"/>
<source>Search for:</source>
<translation>Suche nach:</translation>
</message>
@@ -286,7 +286,7 @@
<context>
<name>QHelpSearchResultWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+232"/>
+ <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+235"/>
<source>0 - 0 of 0 Hits</source>
<translation>0 - 0 von 0 Treffern</translation>
</message>
@@ -302,12 +302,12 @@
<context>
<name>QObject</name>
<message>
- <location filename="../tools/assistant/lib/qhelp_global.h" line="+53"/>
+ <location filename="../tools/assistant/lib/qhelp_global.h" line="+83"/>
<source>Untitled</source>
<translation>Ohne Titel</translation>
</message>
<message>
- <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+50"/>
+ <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+80"/>
<source>Unknown token.</source>
<translation>Unbekanntes Token.</translation>
</message>
diff --git a/translations/qt_help_ja.ts b/translations/qt_help_ja.ts
index 01ef482..5702cfd 100644
--- a/translations/qt_help_ja.ts
+++ b/translations/qt_help_ja.ts
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0">
+<!DOCTYPE TS>
+<TS version="2.0">
<context>
<name>QCLuceneResultWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+80"/>
+ <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+110"/>
<source>Search Results</source>
<translation type="unfinished"></translation>
</message>
@@ -31,7 +32,7 @@
<context>
<name>QHelpCollectionHandler</name>
<message>
- <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+49"/>
+ <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/>
<source>The collection file is not set up yet!</source>
<translation type="unfinished"></translation>
</message>
@@ -110,7 +111,7 @@
<context>
<name>QHelpDBReader</name>
<message>
- <location filename="../tools/assistant/lib/qhelpdbreader.cpp" line="+65"/>
+ <location filename="../tools/assistant/lib/qhelpdbreader.cpp" line="+95"/>
<source>Cannot open database &apos;%1&apos; &apos;%2&apos;: %3</source>
<translation type="unfinished"></translation>
</message>
@@ -118,7 +119,7 @@
<context>
<name>QHelpEngineCore</name>
<message>
- <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+482"/>
+ <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+516"/>
<source>The specified namespace does not exist!</source>
<translation type="unfinished"></translation>
</message>
@@ -126,7 +127,7 @@
<context>
<name>QHelpEngineCorePrivate</name>
<message>
- <location line="-390"/>
+ <location line="-394"/>
<source>Cannot open documentation file %1: %2!</source>
<translation type="unfinished"></translation>
</message>
@@ -134,7 +135,7 @@
<context>
<name>QHelpGenerator</name>
<message>
- <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+127"/>
+ <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+157"/>
<source>Invalid help data!</source>
<translation type="unfinished"></translation>
</message>
@@ -179,7 +180,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+72"/>
+ <location line="+76"/>
<source>Some tables already exist!</source>
<translation type="unfinished"></translation>
</message>
@@ -209,7 +210,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+132"/>
+ <location line="+134"/>
<source>The filter %1 is already registered!</source>
<translation type="unfinished"></translation>
</message>
@@ -242,7 +243,7 @@
<context>
<name>QHelpSearchQueryWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+170"/>
+ <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+200"/>
<source>Search for:</source>
<translation type="unfinished"></translation>
</message>
@@ -285,7 +286,7 @@
<context>
<name>QHelpSearchResultWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+232"/>
+ <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+235"/>
<source>0 - 0 of 0 Hits</source>
<translation type="unfinished"></translation>
</message>
@@ -301,12 +302,12 @@
<context>
<name>QObject</name>
<message>
- <location filename="../tools/assistant/lib/qhelp_global.h" line="+53"/>
+ <location filename="../tools/assistant/lib/qhelp_global.h" line="+83"/>
<source>Untitled</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+50"/>
+ <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+80"/>
<source>Unknown token.</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/qt_help_pl.ts b/translations/qt_help_pl.ts
index 1b586bc..c85b46c 100644
--- a/translations/qt_help_pl.ts
+++ b/translations/qt_help_pl.ts
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="pl">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="pl">
<context>
<name>QCLuceneResultWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+80"/>
+ <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+110"/>
<source>Search Results</source>
<translation>Wyniki wyszukiwania</translation>
</message>
@@ -32,7 +32,7 @@
<context>
<name>QHelpCollectionHandler</name>
<message>
- <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+49"/>
+ <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/>
<source>The collection file is not set up yet!</source>
<translation>Plik z kolekcją nie jest jeszcze ustawiony!</translation>
</message>
@@ -115,7 +115,7 @@
<translation type="obsolete">Nie można otworzyć bazy danych!</translation>
</message>
<message>
- <location filename="../tools/assistant/lib/qhelpdbreader.cpp" line="+65"/>
+ <location filename="../tools/assistant/lib/qhelpdbreader.cpp" line="+95"/>
<source>Cannot open database &apos;%1&apos; &apos;%2&apos;: %3</source>
<translation>Nie można otworzyć bazy danych &apos;%1&apos; &apos;%2&apos;: %3</translation>
</message>
@@ -123,7 +123,7 @@
<context>
<name>QHelpEngineCore</name>
<message>
- <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+482"/>
+ <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+516"/>
<source>The specified namespace does not exist!</source>
<translation>Podana przestrzeń nazw nie istnieje!</translation>
</message>
@@ -131,7 +131,7 @@
<context>
<name>QHelpEngineCorePrivate</name>
<message>
- <location line="-390"/>
+ <location line="-394"/>
<source>Cannot open documentation file %1: %2!</source>
<translation>Nie można otworzyć pliku z dokumentacją %1: %2!</translation>
</message>
@@ -147,7 +147,7 @@
<context>
<name>QHelpGenerator</name>
<message>
- <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+127"/>
+ <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+157"/>
<source>Invalid help data!</source>
<translation>Niepoprawne dane pomocy!</translation>
</message>
@@ -200,7 +200,7 @@
<translation>Dokumentacja została poprawnie wygenerowana.</translation>
</message>
<message>
- <location line="+72"/>
+ <location line="+76"/>
<source>Some tables already exist!</source>
<translation>Niektóre tabele już istnieją!</translation>
</message>
@@ -230,7 +230,7 @@
<translation>Nie można otworzyć pliku %1! Zostaje on opuszczony.</translation>
</message>
<message>
- <location line="+132"/>
+ <location line="+134"/>
<source>The filter %1 is already registered!</source>
<translation>Filtr %1 jest już zarejestrowany!</translation>
</message>
@@ -263,7 +263,7 @@
<context>
<name>QHelpSearchQueryWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+170"/>
+ <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+200"/>
<source>Search for:</source>
<translation>Wyszukaj:</translation>
</message>
@@ -306,7 +306,7 @@
<context>
<name>QHelpSearchResultWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+232"/>
+ <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+235"/>
<source>0 - 0 of 0 Hits</source>
<translation>0 - 0 z 0 Trafień</translation>
</message>
@@ -322,7 +322,7 @@
<context>
<name>QObject</name>
<message>
- <location filename="../tools/assistant/lib/qhelp_global.h" line="+53"/>
+ <location filename="../tools/assistant/lib/qhelp_global.h" line="+83"/>
<source>Untitled</source>
<translation>Nienazwany</translation>
</message>
@@ -335,7 +335,7 @@
<translation type="obsolete">Nieznany znak w linii %1. Spodziewano się &quot;QtHelpProject&quot;!</translation>
</message>
<message>
- <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+50"/>
+ <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+80"/>
<source>Unknown token.</source>
<translation>Nieznany znak.</translation>
</message>
diff --git a/translations/qt_help_untranslated.ts b/translations/qt_help_untranslated.ts
index 01ef482..5702cfd 100644
--- a/translations/qt_help_untranslated.ts
+++ b/translations/qt_help_untranslated.ts
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0">
+<!DOCTYPE TS>
+<TS version="2.0">
<context>
<name>QCLuceneResultWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+80"/>
+ <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+110"/>
<source>Search Results</source>
<translation type="unfinished"></translation>
</message>
@@ -31,7 +32,7 @@
<context>
<name>QHelpCollectionHandler</name>
<message>
- <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+49"/>
+ <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/>
<source>The collection file is not set up yet!</source>
<translation type="unfinished"></translation>
</message>
@@ -110,7 +111,7 @@
<context>
<name>QHelpDBReader</name>
<message>
- <location filename="../tools/assistant/lib/qhelpdbreader.cpp" line="+65"/>
+ <location filename="../tools/assistant/lib/qhelpdbreader.cpp" line="+95"/>
<source>Cannot open database &apos;%1&apos; &apos;%2&apos;: %3</source>
<translation type="unfinished"></translation>
</message>
@@ -118,7 +119,7 @@
<context>
<name>QHelpEngineCore</name>
<message>
- <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+482"/>
+ <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+516"/>
<source>The specified namespace does not exist!</source>
<translation type="unfinished"></translation>
</message>
@@ -126,7 +127,7 @@
<context>
<name>QHelpEngineCorePrivate</name>
<message>
- <location line="-390"/>
+ <location line="-394"/>
<source>Cannot open documentation file %1: %2!</source>
<translation type="unfinished"></translation>
</message>
@@ -134,7 +135,7 @@
<context>
<name>QHelpGenerator</name>
<message>
- <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+127"/>
+ <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+157"/>
<source>Invalid help data!</source>
<translation type="unfinished"></translation>
</message>
@@ -179,7 +180,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+72"/>
+ <location line="+76"/>
<source>Some tables already exist!</source>
<translation type="unfinished"></translation>
</message>
@@ -209,7 +210,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+132"/>
+ <location line="+134"/>
<source>The filter %1 is already registered!</source>
<translation type="unfinished"></translation>
</message>
@@ -242,7 +243,7 @@
<context>
<name>QHelpSearchQueryWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+170"/>
+ <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+200"/>
<source>Search for:</source>
<translation type="unfinished"></translation>
</message>
@@ -285,7 +286,7 @@
<context>
<name>QHelpSearchResultWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+232"/>
+ <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+235"/>
<source>0 - 0 of 0 Hits</source>
<translation type="unfinished"></translation>
</message>
@@ -301,12 +302,12 @@
<context>
<name>QObject</name>
<message>
- <location filename="../tools/assistant/lib/qhelp_global.h" line="+53"/>
+ <location filename="../tools/assistant/lib/qhelp_global.h" line="+83"/>
<source>Untitled</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+50"/>
+ <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+80"/>
<source>Unknown token.</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/qt_help_zh_CN.ts b/translations/qt_help_zh_CN.ts
index 0f2d3ed..cc100b7 100644
--- a/translations/qt_help_zh_CN.ts
+++ b/translations/qt_help_zh_CN.ts
@@ -1,11 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="zh">
-<defaultcodec></defaultcodec>
<context>
<name>QCLuceneResultWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+80"/>
+ <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+110"/>
<source>Search Results</source>
<translation>搜索结果</translation>
</message>
@@ -33,7 +32,7 @@
<context>
<name>QHelpCollectionHandler</name>
<message>
- <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+49"/>
+ <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/>
<source>The collection file is not set up yet!</source>
<translation>还没有设置收藏文件呢!</translation>
</message>
@@ -116,7 +115,7 @@
<translation type="obsolete">不能打开数据库!</translation>
</message>
<message>
- <location filename="../tools/assistant/lib/qhelpdbreader.cpp" line="+65"/>
+ <location filename="../tools/assistant/lib/qhelpdbreader.cpp" line="+95"/>
<source>Cannot open database &apos;%1&apos; &apos;%2&apos;: %3</source>
<translation>不能打开数据库“%1” “%2”:%3</translation>
</message>
@@ -124,7 +123,7 @@
<context>
<name>QHelpEngineCore</name>
<message>
- <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+482"/>
+ <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+516"/>
<source>The specified namespace does not exist!</source>
<translation>指定的命名空间不存在!</translation>
</message>
@@ -132,7 +131,7 @@
<context>
<name>QHelpEngineCorePrivate</name>
<message>
- <location line="-390"/>
+ <location line="-394"/>
<source>Cannot open documentation file %1: %2!</source>
<translation>不能打开文档文件%1:%2!</translation>
</message>
@@ -144,7 +143,7 @@
<context>
<name>QHelpGenerator</name>
<message>
- <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+127"/>
+ <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+157"/>
<source>Invalid help data!</source>
<translation>无效的帮助数据!</translation>
</message>
@@ -179,7 +178,7 @@
<translation>文档已经被成功生成。</translation>
</message>
<message>
- <location line="+72"/>
+ <location line="+76"/>
<source>Some tables already exist!</source>
<translation>一些表格已经存在!</translation>
</message>
@@ -209,7 +208,7 @@
<translation>不能打开文件 %1!正在忽略它。</translation>
</message>
<message>
- <location line="+132"/>
+ <location line="+134"/>
<source>The filter %1 is already registered!</source>
<translation>过滤器 %1 已经被注册!</translation>
</message>
@@ -239,7 +238,7 @@
<translation>不能注册内容!</translation>
</message>
<message>
- <location line="-603"/>
+ <location line="-609"/>
<source>The file %1 cannot be overwritten!</source>
<translation>文件 %1 不能被覆盖!</translation>
</message>
@@ -252,7 +251,7 @@
<context>
<name>QHelpSearchQueryWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+170"/>
+ <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+200"/>
<source>Search for:</source>
<translation>搜索:</translation>
</message>
@@ -295,7 +294,7 @@
<context>
<name>QHelpSearchResultWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+232"/>
+ <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+235"/>
<source>0 - 0 of 0 Hits</source>
<translation>0 次点击中的 0 - 0</translation>
</message>
@@ -311,7 +310,7 @@
<context>
<name>QObject</name>
<message>
- <location filename="../tools/assistant/lib/qhelp_global.h" line="+53"/>
+ <location filename="../tools/assistant/lib/qhelp_global.h" line="+83"/>
<source>Untitled</source>
<translation>未命名的</translation>
</message>
@@ -324,7 +323,7 @@
<translation type="obsolete">在行 %1 的未知标记。需要“QtHelpProject”!</translation>
</message>
<message>
- <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+81"/>
+ <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+111"/>
<source>A virtual folder must not contain a &apos;/&apos; character!</source>
<translation>虚拟文件夹必须不包含“/“字符!</translation>
</message>
diff --git a/translations/qt_help_zh_TW.ts b/translations/qt_help_zh_TW.ts
index e2609d7..2e9340e 100644
--- a/translations/qt_help_zh_TW.ts
+++ b/translations/qt_help_zh_TW.ts
@@ -1,26 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="zh_TW">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_TW">
<context>
<name>QCLuceneResultWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="80"/>
+ <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>
@@ -28,63 +32,78 @@
<context>
<name>QHelpCollectionHandler</name>
<message>
- <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="49"/>
+ <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/>
<source>The collection file is not set up yet!</source>
<translation>收集檔尚未設定。</translation>
</message>
<message>
+ <location line="+22"/>
<source>Cannot load sqlite database driver!</source>
<translation>無法載入 sqlite 資料庫驅動程式!</translation>
</message>
<message>
+ <location line="+11"/>
+ <location line="+48"/>
<source>Cannot open collection file: %1</source>
<translation>無法開啟收集檔:%1</translation>
</message>
<message>
+ <location line="-39"/>
<source>Cannot create tables in file %1!</source>
<translation>無法在檔案 %1 裡建立表格。</translation>
</message>
<message>
+ <location line="+16"/>
<source>The specified collection file already exists!</source>
<translation>指定的收集檔已存在。</translation>
</message>
<message>
+ <location line="+5"/>
<source>Cannot create directory: %1</source>
<translation>無法建立目錄:%1</translation>
</message>
<message>
+ <location line="+23"/>
<source>Cannot copy collection file: %1</source>
<translation>無法複製收集檔:%1</translation>
</message>
<message>
+ <location line="+119"/>
<source>Unknown filter!</source>
<translation>未知的過濾器!</translation>
</message>
<message>
+ <location line="+55"/>
<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="+6"/>
<source>Invalid documentation file!</source>
<translation>不合法的文件檔!</translation>
</message>
<message>
+ <location line="+34"/>
<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>
<message>
+ <location line="+13"/>
<source>Cannot register namespace!</source>
<translation>無法註冊命名空間。</translation>
</message>
<message>
+ <location line="+24"/>
<source>Cannot open database to optimize!</source>
<translation>無法開啟資料庫以進行最佳化。</translation>
</message>
@@ -96,7 +115,7 @@
<translation type="obsolete">無法開啟資料庫。</translation>
</message>
<message>
- <location filename="../tools/assistant/lib/qhelpdbreader.cpp" line="65"/>
+ <location filename="../tools/assistant/lib/qhelpdbreader.cpp" line="+95"/>
<source>Cannot open database &apos;%1&apos; &apos;%2&apos;: %3</source>
<translation>無法開啟資料庫 &apos;%1&apos; &apos;%2&apos;:%3</translation>
</message>
@@ -104,7 +123,7 @@
<context>
<name>QHelpEngineCore</name>
<message>
- <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="482"/>
+ <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+516"/>
<source>The specified namespace does not exist!</source>
<translation>指定的命名空間不存在。</translation>
</message>
@@ -112,6 +131,7 @@
<context>
<name>QHelpEngineCorePrivate</name>
<message>
+ <location line="-394"/>
<source>Cannot open documentation file %1: %2!</source>
<translation>無法開啟文件檔 %1&apos;:%2!</translation>
</message>
@@ -127,11 +147,12 @@
<context>
<name>QHelpGenerator</name>
<message>
- <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="127"/>
+ <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+157"/>
<source>Invalid help data!</source>
<translation>不合法的說明資料。</translation>
</message>
<message>
+ <location line="+6"/>
<source>No output file name specified!</source>
<translation>沒有指定輸出檔名。</translation>
</message>
@@ -140,6 +161,7 @@
<translation type="obsolete">檔案 %1 已存在。</translation>
</message>
<message>
+ <location line="+14"/>
<source>Building up file structure...</source>
<translation>建立檔案結構中...</translation>
</message>
@@ -148,42 +170,52 @@
<translation type="obsolete">無法開啟資料庫。</translation>
</message>
<message>
+ <location line="+22"/>
<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="+41"/>
<source>The file %1 does not exist! Skipping it.</source>
<translation>檔案 %1 不存在!將忽略它。</translation>
</message>
<message>
+ <location line="+7"/>
<source>Cannot open file %1! Skipping it.</source>
<translation>無法開啟檔案 %1。將忽略它。</translation>
</message>
@@ -192,34 +224,42 @@
<translation type="obsolete">無法將檔案資料插入資料庫。</translation>
</message>
<message>
+ <location line="+134"/>
<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="+80"/>
<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="-609"/>
<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>
@@ -227,35 +267,42 @@
<context>
<name>QHelpSearchQueryWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="170"/>
+ <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+200"/>
<source>Search for:</source>
<translation>搜尋:</translation>
</message>
<message>
+ <location line="+2"/>
<source>Search</source>
<translation>搜尋</translation>
</message>
<message>
+ <location line="+16"/>
<source>Advanced search</source>
<translation>進階搜尋</translation>
</message>
<message>
+ <location line="+18"/>
<source>words &lt;B&gt;similar&lt;/B&gt; to:</source>
<translation>&lt;B&gt;相似於&lt;/B&gt;這些單字:</translation>
</message>
<message>
+ <location line="+5"/>
<source>&lt;B&gt;without&lt;/B&gt; the words:</source>
<translation>&lt;B&gt;不含&lt;/B&gt;這些單字:</translation>
</message>
<message>
+ <location line="+5"/>
<source>with &lt;B&gt;exact phrase&lt;/B&gt;:</source>
<translation>&lt;B&gt;完全符合&lt;/B&gt;此片語:</translation>
</message>
<message>
+ <location line="+5"/>
<source>with &lt;B&gt;all&lt;/B&gt; of the words:</source>
<translation>包含&lt;B&gt;所有&lt;/B&gt;單字:</translation>
</message>
<message>
+ <location line="+5"/>
<source>with &lt;B&gt;at least one&lt;/B&gt; of the words:</source>
<translation>&lt;B&gt;至少符合一個&lt;/B&gt;單字:</translation>
</message>
@@ -263,7 +310,7 @@
<context>
<name>QHelpSearchResultWidget</name>
<message>
- <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="232"/>
+ <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+235"/>
<source>0 - 0 of 0 Hits</source>
<translation>0 - 0/0 筆符合</translation>
</message>
@@ -271,6 +318,7 @@
<context>
<name>QHelpSearchResultWidgetPrivate</name>
<message>
+ <location line="-61"/>
<source>%1 - %2 of %3 Hits</source>
<translation>%1 - %2 / %3 筆符合</translation>
</message>
@@ -278,7 +326,7 @@
<context>
<name>QObject</name>
<message>
- <location filename="../tools/assistant/lib/qhelp_global.h" line="53"/>
+ <location filename="../tools/assistant/lib/qhelp_global.h" line="+83"/>
<source>Untitled</source>
<translation>未命名</translation>
</message>
@@ -291,39 +339,47 @@
<translation type="obsolete">第 %1 行有未知的符號。應該要是 &quot;QtHelpProject&quot;。</translation>
</message>
<message>
- <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="81"/>
+ <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+111"/>
<source>A virtual folder must not contain a &apos;/&apos; character!</source>
<translation>虛擬資料夾不能含有 / 字元。</translation>
</message>
<message>
+ <location line="+4"/>
<source>A namespace must not contain a &apos;/&apos; character!</source>
<translation>命名空間不能含有 / 字元。</translation>
</message>
<message>
+ <location line="+16"/>
<source>Missing namespace in QtHelpProject.</source>
<translation>QtHelpProject 中沒有命名空間。</translation>
</message>
<message>
+ <location line="+2"/>
<source>Missing virtual folder in QtHelpProject</source>
<translation>QtHelpProject 中沒有虛擬資料夾。</translation>
</message>
<message>
+ <location line="+88"/>
<source>Missing attribute in keyword at line %1.</source>
<translation>第 %1 行的關鍵字中沒有屬性。</translation>
</message>
<message>
+ <location line="+83"/>
<source>The input file %1 could not be opened!</source>
<translation>無法開啟輸入檔 %1。</translation>
</message>
<message>
+ <location line="-224"/>
<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="+5"/>
<source>Error in line %1: %2</source>
<translation>第 %1 行發生錯誤:%2</translation>
</message>
diff --git a/translations/qt_iw.ts b/translations/qt_iw.ts
index 3eea6dd..3b4897d 100644
--- a/translations/qt_iw.ts
+++ b/translations/qt_iw.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioOutput</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+374"/>
+ <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/>
<source>&lt;html&gt;The audio playback device &lt;b&gt;%1&lt;/b&gt; does not work.&lt;br/&gt;Falling back to &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -22,7 +22,7 @@
<context>
<name>CloseButton</name>
<message>
- <location filename="../src/gui/widgets/qtabbar.cpp" line="+2217"/>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/>
<source>Close Tab</source>
<translation type="unfinished"></translation>
</message>
@@ -85,7 +85,7 @@
<context>
<name>Phonon::Gstreamer::MediaObject</name>
<message>
- <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+88"/>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/>
<source>Cannot start playback.
Check your Gstreamer installation and make sure you
@@ -98,24 +98,24 @@ have libgstreamer-plugins-base installed.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+653"/>
- <location line="+9"/>
+ <location line="+676"/>
+ <location line="+8"/>
<location line="+15"/>
- <location line="+7"/>
- <location line="+5"/>
- <location line="+20"/>
- <location line="+317"/>
+ <location line="+9"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+335"/>
<location line="+24"/>
<source>Could not open media source.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-381"/>
+ <location line="-403"/>
<source>Invalid source type.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+355"/>
+ <location line="+377"/>
<source>Could not locate media source.</source>
<translation type="unfinished"></translation>
</message>
@@ -149,7 +149,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3Accel</name>
<message>
- <location filename="../src/qt3support/other/q3accel.cpp" line="+451"/>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
<source>%1, %2 not defined</source>
<translation type="unfinished"></translation>
</message>
@@ -162,7 +162,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3DataTable</name>
<message>
- <location filename="../src/qt3support/sql/q3datatable.cpp" line="+253"/>
+ <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
<source>True</source>
<translation type="unfinished">אמת</translation>
</message>
@@ -190,7 +190,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3FileDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+834"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+864"/>
<source>Copy or Move a File</source>
<translation type="unfinished">העתק או העבר קובץ</translation>
</message>
@@ -215,7 +215,7 @@ have libgstreamer-plugins-base installed.</source>
<location line="-157"/>
<location line="+49"/>
<location line="+2153"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+80"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
<source>All Files (*)</source>
<translation type="unfinished">כל הקבצים (*)</translation>
</message>
@@ -355,7 +355,7 @@ have libgstreamer-plugins-base installed.</source>
<message>
<location line="+704"/>
<location line="+2100"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+307"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/>
<source>Open</source>
<translation type="unfinished">פתח</translation>
</message>
@@ -523,7 +523,7 @@ Check path and filename.</source>
<context>
<name>Q3LocalFs</name>
<message>
- <location filename="../src/qt3support/network/q3localfs.cpp" line="+100"/>
+ <location filename="../src/qt3support/network/q3localfs.cpp" line="+130"/>
<location line="+10"/>
<source>Could not read directory
%1</source>
@@ -570,7 +570,7 @@ to
<context>
<name>Q3MainWindow</name>
<message>
- <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2021"/>
+ <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
<source>Line up</source>
<translation type="unfinished">סדר בשורה</translation>
</message>
@@ -583,7 +583,7 @@ to
<context>
<name>Q3NetworkProtocol</name>
<message>
- <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+824"/>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
<source>Operation stopped by the user</source>
<translation type="unfinished">הפעולה הופסקה על ידי המשתמש</translation>
</message>
@@ -591,7 +591,7 @@ to
<context>
<name>Q3ProgressDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+194"/>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
<location line="+61"/>
<source>Cancel</source>
<translation type="unfinished">ביטול</translation>
@@ -600,7 +600,7 @@ to
<context>
<name>Q3TabDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+159"/>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/>
<location line="+814"/>
<source>OK</source>
<translation type="unfinished">אישור</translation>
@@ -629,7 +629,7 @@ to
<context>
<name>Q3TextEdit</name>
<message>
- <location filename="../src/qt3support/text/q3textedit.cpp" line="+5399"/>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
<source>&amp;Undo</source>
<translation type="unfinished">&amp;בטל</translation>
</message>
@@ -668,7 +668,7 @@ to
<context>
<name>Q3TitleBar</name>
<message>
- <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+216"/>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
<source>System</source>
<translation type="unfinished"></translation>
</message>
@@ -736,7 +736,7 @@ to
<context>
<name>Q3ToolBar</name>
<message>
- <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+662"/>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
<source>More...</source>
<translation type="unfinished"></translation>
</message>
@@ -744,7 +744,7 @@ to
<context>
<name>Q3UrlOperator</name>
<message>
- <location filename="../src/qt3support/network/q3urloperator.cpp" line="+356"/>
+ <location filename="../src/qt3support/network/q3urloperator.cpp" line="+386"/>
<location line="+260"/>
<location line="+4"/>
<source>The protocol `%1&apos; is not supported</source>
@@ -796,7 +796,7 @@ to
<context>
<name>Q3Wizard</name>
<message>
- <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+147"/>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
@@ -824,9 +824,9 @@ to
<context>
<name>QAbstractSocket</name>
<message>
- <location filename="../src/network/socket/qabstractsocket.cpp" line="+838"/>
- <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+585"/>
- <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+627"/>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
<location line="+26"/>
<source>Host not found</source>
<translation type="unfinished"></translation>
@@ -869,7 +869,7 @@ to
<context>
<name>QAbstractSpinBox</name>
<message>
- <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1169"/>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/>
<source>&amp;Step up</source>
<translation type="unfinished"></translation>
</message>
@@ -887,13 +887,13 @@ to
<context>
<name>QApplication</name>
<message>
- <location filename="../src/gui/kernel/qapplication.cpp" line="+2212"/>
+ <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>RTL</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.h" line="+322"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
<source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
<translation type="unfinished"></translation>
</message>
@@ -903,7 +903,7 @@ to
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+346"/>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
<source>Activate</source>
<translation type="unfinished"></translation>
</message>
@@ -939,7 +939,7 @@ to
<context>
<name>QCheckBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+84"/>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/>
<source>Uncheck</source>
<translation type="unfinished"></translation>
</message>
@@ -957,7 +957,7 @@ to
<context>
<name>QColorDialog</name>
<message>
- <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1219"/>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/>
<source>Hu&amp;e:</source>
<translation>&amp;גוון:</translation>
</message>
@@ -1031,13 +1031,13 @@ to
<context>
<name>QComboBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1741"/>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
<location line="+65"/>
<source>Open</source>
<translation type="unfinished">פתח</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+514"/>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
<source>False</source>
<translation type="unfinished">שקר</translation>
</message>
@@ -1055,7 +1055,7 @@ to
<context>
<name>QCoreApplication</name>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+89"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
<source>%1: key is empty</source>
<comment>QSystemSemaphore</comment>
<translation type="unfinished"></translation>
@@ -1076,12 +1076,12 @@ to
<context>
<name>QDB2Driver</name>
<message>
- <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1217"/>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
<source>Unable to connect</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+263"/>
+ <location line="+303"/>
<source>Unable to commit transaction</source>
<translation type="unfinished"></translation>
</message>
@@ -1099,8 +1099,8 @@ to
<context>
<name>QDB2Result</name>
<message>
- <location line="-986"/>
- <location line="+242"/>
+ <location line="-1043"/>
+ <location line="+243"/>
<source>Unable to execute statement</source>
<translation type="unfinished"></translation>
</message>
@@ -1115,7 +1115,7 @@ to
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+91"/>
+ <location line="+92"/>
<source>Unable to fetch record %1</source>
<translation type="unfinished"></translation>
</message>
@@ -1133,7 +1133,7 @@ to
<context>
<name>QDateTimeEdit</name>
<message>
- <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2265"/>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
<source>AM</source>
<translation type="unfinished"></translation>
</message>
@@ -1156,7 +1156,7 @@ to
<context>
<name>QDial</name>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+921"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
<source>QDial</source>
<translation type="unfinished"></translation>
</message>
@@ -1174,7 +1174,7 @@ to
<context>
<name>QDialog</name>
<message>
- <location filename="../src/gui/dialogs/qdialog.cpp" line="+567"/>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
<source>What&apos;s This?</source>
<translation>מה זה?</translation>
</message>
@@ -1187,9 +1187,9 @@ to
<context>
<name>QDialogButtonBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1830"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
<location line="+464"/>
- <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+531"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/>
<source>OK</source>
<translation type="unfinished">אישור</translation>
</message>
@@ -1312,7 +1312,7 @@ to
<context>
<name>QDirModel</name>
<message>
- <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+423"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/>
<source>Name</source>
<translation type="unfinished">שם</translation>
</message>
@@ -1342,7 +1342,7 @@ to
<context>
<name>QDockWidget</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1209"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
<source>Close</source>
<translation type="unfinished">סגור</translation>
</message>
@@ -1373,7 +1373,7 @@ to
<context>
<name>QErrorMessage</name>
<message>
- <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+361"/>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+391"/>
<source>&amp;Show this message again</source>
<translation>&amp;הצג הודעה זו שנית</translation>
</message>
@@ -1401,13 +1401,18 @@ to
<context>
<name>QFile</name>
<message>
- <location filename="../src/corelib/io/qfile.cpp" line="+678"/>
- <location line="+130"/>
+ <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
+ <location line="+141"/>
<source>Destination file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+12"/>
+ <location line="-108"/>
+ <source>Cannot remove source file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+120"/>
<source>Cannot open %1 for input</source>
<translation type="unfinished"></translation>
</message>
@@ -1430,8 +1435,8 @@ to
<context>
<name>QFileDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+484"/>
- <location line="+423"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+515"/>
+ <location line="+444"/>
<source>All Files (*)</source>
<translation>כל הקבצים (*)</translation>
</message>
@@ -1454,13 +1459,13 @@ to
<translation type="unfinished">תצוגת פרטים</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+384"/>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+414"/>
<location line="+1"/>
<source>File</source>
<translation type="unfinished">קובץ</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-440"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-461"/>
<source>Open</source>
<translation>פתח</translation>
</message>
@@ -1470,21 +1475,21 @@ to
<translation type="unfinished">שמירה בשם</translation>
</message>
<message>
- <location line="+653"/>
+ <location line="+678"/>
<location line="+50"/>
- <location line="+1440"/>
+ <location line="+1471"/>
<location line="+75"/>
<source>&amp;Open</source>
<translation>&amp;פתח</translation>
</message>
<message>
- <location line="-1565"/>
+ <location line="-1596"/>
<location line="+50"/>
<source>&amp;Save</source>
<translation>&amp;שמור</translation>
</message>
<message>
- <location line="-674"/>
+ <location line="-699"/>
<source>&amp;Rename</source>
<translation type="unfinished">ש&amp;נה שם</translation>
</message>
@@ -1499,27 +1504,27 @@ to
<translation type="unfinished">הצג קבצים &amp;מוסתרים</translation>
</message>
<message>
- <location line="+1908"/>
+ <location line="+1964"/>
<source>New Folder</source>
<translation type="unfinished">תיקיה חדשה</translation>
</message>
<message>
- <location line="-1943"/>
+ <location line="-1999"/>
<source>Find Directory</source>
<translation type="unfinished">חפש ספריה</translation>
</message>
<message>
- <location line="+660"/>
+ <location line="+685"/>
<source>Directories</source>
<translation>ספריות</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+130"/>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
<source>All Files (*.*)</source>
<translation type="unfinished">כל הקבצים (*.*)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+811"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+832"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation type="unfinished"></translation>
@@ -1549,21 +1554,21 @@ Please verify the correct file name was given.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1450"/>
- <location line="+623"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1496"/>
+ <location line="+648"/>
<source>Directory:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+773"/>
- <location line="+851"/>
+ <location line="+794"/>
+ <location line="+862"/>
<source>%1
Directory not found.
Please verify the correct directory name was given.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-217"/>
+ <location line="-218"/>
<source>&apos;%1&apos; is write protected.
Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
@@ -1579,7 +1584,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+406"/>
+ <location line="+407"/>
<source>Recent Places</source>
<translation type="unfinished"></translation>
</message>
@@ -1594,7 +1599,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2468"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2525"/>
<source>Show </source>
<translation type="unfinished"></translation>
</message>
@@ -1610,19 +1615,19 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+631"/>
+ <location line="+656"/>
<location line="+38"/>
<source>&amp;Choose</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qsidebar.cpp" line="+388"/>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-662"/>
- <location line="+627"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-687"/>
+ <location line="+652"/>
<source>File &amp;name:</source>
<translation type="unfinished">&amp;שם הקובץ:</translation>
</message>
@@ -1642,7 +1647,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFileSystemModel</name>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+707"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+744"/>
<source>%1 TB</source>
<translation type="unfinished"></translation>
</message>
@@ -1704,7 +1709,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+204"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/>
<source>My Computer</source>
<translation type="unfinished"></translation>
</message>
@@ -1717,7 +1722,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFontDatabase</name>
<message>
- <location filename="../src/gui/text/qfontdatabase.cpp" line="+60"/>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
<location line="+1176"/>
<source>Normal</source>
<translation type="unfinished"></translation>
@@ -1934,7 +1939,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFontDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+742"/>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/>
<source>&amp;Font</source>
<translation>&amp;גופן</translation>
</message>
@@ -1983,7 +1988,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFtp</name>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="+2273"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+2303"/>
<source>Host %1 found</source>
<translation type="unfinished">המארח %1 נמצא</translation>
</message>
@@ -1993,7 +1998,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished">המארח נמצא</translation>
</message>
<message>
- <location filename="../src/network/access/qftp.cpp" line="+973"/>
+ <location filename="../src/network/access/qftp.cpp" line="+1003"/>
<location filename="../src/qt3support/network/q3ftp.cpp" line="-1456"/>
<location line="+1451"/>
<source>Connected to host %1</source>
@@ -2120,7 +2125,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QHostInfo</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_p.h" line="+153"/>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
<source>Unknown error</source>
<translation type="unfinished"></translation>
</message>
@@ -2128,11 +2133,11 @@ Do you want to delete it anyway?</source>
<context>
<name>QHostInfoAgent</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+148"/>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
<location line="+9"/>
<location line="+64"/>
<location line="+31"/>
- <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+150"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
<location line="+9"/>
<location line="+40"/>
<location line="+27"/>
@@ -2158,13 +2163,13 @@ Do you want to delete it anyway?</source>
<context>
<name>QHttp</name>
<message>
- <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+1712"/>
- <location filename="../src/qt3support/network/q3http.cpp" line="+1806"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+876"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+1836"/>
<source>Connection refused</source>
<translation>החיבור נדחה</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="+2597"/>
+ <location filename="../src/network/access/qhttp.cpp" line="+2631"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
<source>Host %1 not found</source>
@@ -2177,12 +2182,12 @@ Do you want to delete it anyway?</source>
<translation>אורך תוכן שגוי</translation>
</message>
<message>
- <location line="-2200"/>
+ <location line="-2204"/>
<source>HTTPS connection requested but SSL support not compiled in</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2282"/>
+ <location line="+2286"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+10"/>
<location line="+19"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+48"/>
@@ -2221,21 +2226,21 @@ Do you want to delete it anyway?</source>
<translation type="unfinished">החיבור נסגר</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-1073"/>
- <location line="+816"/>
+ <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 type="unfinished"></translation>
</message>
<message>
- <location line="-564"/>
+ <location line="-568"/>
<location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
<source>Request aborted</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+575"/>
+ <location line="+579"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
<source>No server set to connect to</source>
<translation type="unfinished"></translation>
@@ -2253,7 +2258,12 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+120"/>
+ <location line="+28"/>
+ <source>Unknown authentication method</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+97"/>
<location line="+48"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
<location line="+47"/>
@@ -2276,7 +2286,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-133"/>
+ <location line="-138"/>
<source>Connection refused (or timed out)</source>
<translation type="unfinished"></translation>
</message>
@@ -2357,7 +2367,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseDriver</name>
<message>
- <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1378"/>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1428"/>
<source>Error opening database</source>
<translation type="unfinished"></translation>
</message>
@@ -2380,7 +2390,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseResult</name>
<message>
- <location line="-1077"/>
+ <location line="-1097"/>
<source>Unable to create BLOB</source>
<translation type="unfinished"></translation>
</message>
@@ -2400,7 +2410,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<location line="+189"/>
<source>Could not find array</source>
<translation type="unfinished"></translation>
@@ -2470,7 +2480,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIODevice</name>
<message>
- <location filename="../src/corelib/global/qglobal.cpp" line="+1830"/>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/>
<source>Permission denied</source>
<translation type="unfinished"></translation>
</message>
@@ -2490,7 +2500,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/io/qiodevice.cpp" line="+1506"/>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/>
<source>Unknown error</source>
<translation type="unfinished"></translation>
</message>
@@ -2498,7 +2508,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QInputContext</name>
<message>
- <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+212"/>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/>
<source>XIM</source>
<translation type="unfinished"></translation>
</message>
@@ -2521,7 +2531,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QInputDialog</name>
<message>
- <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+193"/>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
<source>Enter a value:</source>
<translation type="unfinished"></translation>
</message>
@@ -2529,7 +2539,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QLibrary</name>
<message>
- <location filename="../src/corelib/plugin/qlibrary.cpp" line="+348"/>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
<source>Could not mmap &apos;%1&apos;: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2560,7 +2570,7 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="-377"/>
- <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+250"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
<source>The shared library was not found.</source>
<translation type="unfinished"></translation>
</message>
@@ -2575,8 +2585,8 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+179"/>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+69"/>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
<source>Cannot load library %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2596,7 +2606,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QLineEdit</name>
<message>
- <location filename="../src/gui/widgets/qlineedit.cpp" line="+2649"/>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+2680"/>
<source>&amp;Undo</source>
<translation type="unfinished">&amp;בטל</translation>
</message>
@@ -2634,8 +2644,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QLocalServer</name>
<message>
- <location filename="../src/network/socket/qlocalserver.cpp" line="+196"/>
- <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+201"/>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/>
<source>%1: Name error</source>
<translation type="unfinished"></translation>
</message>
@@ -2651,7 +2661,7 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="+5"/>
- <location filename="../src/network/socket/qlocalserver_win.cpp" line="+127"/>
+ <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/>
<source>%1: Unknown error %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2659,8 +2669,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QLocalSocket</name>
<message>
- <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+102"/>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+104"/>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/>
<source>%1: Connection refused</source>
<translation type="unfinished"></translation>
</message>
@@ -2673,7 +2683,7 @@ Do you want to delete it anyway?</source>
<message>
<location line="+3"/>
<location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
- <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+50"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/>
<location line="+43"/>
<source>%1: Invalid name</source>
<translation type="unfinished"></translation>
@@ -2730,7 +2740,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMYSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1200"/>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1231"/>
<source>Unable to open database &apos;</source>
<translation type="unfinished"></translation>
</message>
@@ -2740,7 +2750,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+123"/>
+ <location line="+127"/>
<source>Unable to begin transaction</source>
<translation type="unfinished"></translation>
</message>
@@ -2758,7 +2768,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMYSQLResult</name>
<message>
- <location line="-917"/>
+ <location line="-922"/>
<source>Unable to fetch data</source>
<translation type="unfinished"></translation>
</message>
@@ -2773,7 +2783,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+189"/>
+ <location line="+190"/>
<location line="+8"/>
<source>Unable to prepare statement</source>
<translation type="unfinished"></translation>
@@ -2818,7 +2828,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMdiArea</name>
<message>
- <location filename="../src/gui/widgets/qmdiarea.cpp" line="+260"/>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
<source>(Untitled)</source>
<translation type="unfinished"></translation>
</message>
@@ -2826,7 +2836,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMdiSubWindow</name>
<message>
- <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+250"/>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
<source>%1 - [%2]</source>
<translation type="unfinished">%1 - [%2]</translation>
</message>
@@ -2919,7 +2929,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMenu</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+127"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
<location line="+225"/>
<source>Close</source>
<translation type="unfinished">סגור</translation>
@@ -2948,7 +2958,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMessageBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1958"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1964"/>
<location line="+852"/>
<location filename="../src/gui/dialogs/qmessagebox.h" line="-52"/>
<location line="+8"/>
@@ -2956,22 +2966,17 @@ Do you want to delete it anyway?</source>
<translation>אישור</translation>
</message>
<message>
- <location line="+503"/>
+ <location line="+509"/>
<source>About Qt</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-502"/>
+ <location line="-508"/>
<source>Help</source>
<translation type="unfinished">עזרה</translation>
</message>
<message>
- <location line="+487"/>
- <source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="-1584"/>
+ <location line="-1097"/>
<source>Show Details...</source>
<translation type="unfinished"></translation>
</message>
@@ -2982,19 +2987,14 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="+1570"/>
- <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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+15"/>
- <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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
+ <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://www.qtsoftware.com/products/licensing&quot;&gt;www.qtsoftware.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://www.qtsoftware.com/qt/&quot;&gt;www.qtsoftware.com/qt&lt;/a&gt; for more information.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QMultiInputContext</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+58"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
<source>Select IM</source>
<translation type="unfinished"></translation>
</message>
@@ -3002,7 +3002,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMultiInputContextPlugin</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+65"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
<source>Multiple input method switcher</source>
<translation type="unfinished"></translation>
</message>
@@ -3015,7 +3015,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNativeSocketEngine</name>
<message>
- <location filename="../src/network/socket/qnativesocketengine.cpp" line="+176"/>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/>
<source>The remote host closed the connection</source>
<translation type="unfinished"></translation>
</message>
@@ -3148,7 +3148,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessCacheBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+35"/>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
<source>Error opening %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3156,7 +3156,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessFileBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+69"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/>
<source>Request for opening non-local file %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3184,7 +3184,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessFtpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+135"/>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3194,7 +3194,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+131"/>
+ <location line="+130"/>
<source>Logging in to %1 failed: authentication required</source>
<translation type="unfinished"></translation>
</message>
@@ -3212,7 +3212,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessHttpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+565"/>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3225,7 +3225,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+37"/>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/>
<source>Protocol &quot;%1&quot; is unknown</source>
<translation type="unfinished"></translation>
</message>
@@ -3233,7 +3233,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkReplyImpl</name>
<message>
- <location line="+422"/>
+ <location line="+432"/>
<location line="+22"/>
<source>Operation canceled</source>
<translation type="unfinished"></translation>
@@ -3242,7 +3242,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIDriver</name>
<message>
- <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2027"/>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2069"/>
<source>Unable to logon</source>
<translation type="unfinished"></translation>
</message>
@@ -3271,7 +3271,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIResult</name>
<message>
- <location line="-976"/>
+ <location line="-963"/>
<location line="+161"/>
<location line="+15"/>
<source>Unable to bind column for batch execute</source>
@@ -3298,18 +3298,12 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+29"/>
- <location line="+37"/>
+ <location line="+36"/>
<source>Unable to bind value</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-20"/>
- <source>Unable to execute select statement</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+32"/>
+ <location line="+19"/>
<source>Unable to execute statement</source>
<translation type="unfinished"></translation>
</message>
@@ -3317,7 +3311,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCDriver</name>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1657"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1785"/>
<source>Unable to connect</source>
<translation type="unfinished"></translation>
</message>
@@ -3327,7 +3321,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+234"/>
+ <location line="+242"/>
<source>Unable to disable autocommit</source>
<translation type="unfinished"></translation>
</message>
@@ -3350,19 +3344,19 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCResult</name>
<message>
- <location line="-1204"/>
+ <location line="-1218"/>
<location line="+349"/>
<source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-332"/>
- <location line="+625"/>
+ <location line="+626"/>
<source>Unable to execute statement</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-554"/>
+ <location line="-555"/>
<source>Unable to fetch next</source>
<translation type="unfinished"></translation>
</message>
@@ -3372,19 +3366,19 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+267"/>
+ <location line="+268"/>
<source>Unable to bind variable</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-474"/>
- <location line="+577"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-475"/>
+ <location line="+578"/>
<source>Unable to fetch last</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-671"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
<source>Unable to fetch</source>
<translation type="unfinished"></translation>
</message>
@@ -3402,12 +3396,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QObject</name>
<message>
- <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+134"/>
+ <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
<source>Home</source>
<translation type="unfinished">Home</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+44"/>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
<source>Operation not supported on %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3417,7 +3411,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+145"/>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
<source>Write error writing to %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -3442,7 +3436,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/kernel/qhostinfo.cpp" line="+147"/>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
<location line="+57"/>
<source>No host name given</source>
<translation type="unfinished"></translation>
@@ -3451,7 +3445,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPPDOptionsModel</name>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1165"/>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/>
<source>Name</source>
<translation type="unfinished">שם</translation>
</message>
@@ -3464,7 +3458,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+732"/>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/>
<source>Unable to connect</source>
<translation type="unfinished"></translation>
</message>
@@ -3484,7 +3478,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+336"/>
+ <location line="+358"/>
<source>Unable to subscribe</source>
<translation type="unfinished"></translation>
</message>
@@ -3497,12 +3491,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QPSQLResult</name>
<message>
- <location line="-1035"/>
+ <location line="-1058"/>
<source>Unable to create query</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+373"/>
+ <location line="+374"/>
<source>Unable to prepare statement</source>
<translation type="unfinished"></translation>
</message>
@@ -3510,7 +3504,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPageSetupWidget</name>
<message>
- <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+274"/>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
<source>Centimeters (cm)</source>
<translation type="unfinished"></translation>
</message>
@@ -3626,7 +3620,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPrintDialog</name>
<message>
- <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+68"/>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/>
<source>locally connected</source>
<translation>מחוברת מקומית</translation>
</message>
@@ -3643,7 +3637,7 @@ Do you want to delete it anyway?</source>
<translation>לא ידוע</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+238"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
<source>OK</source>
<translation type="unfinished">אישור</translation>
</message>
@@ -3660,7 +3654,7 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">מדפסת</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+345"/>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+375"/>
<source>Print all</source>
<translation type="unfinished">הדפס הכל</translation>
</message>
@@ -3840,7 +3834,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+80"/>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
<location line="+13"/>
<location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
<source>Print</source>
@@ -4092,13 +4086,13 @@ Please choose a different file name.</source>
<context>
<name>QPrintPreviewDialog</name>
<message>
- <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+38"/>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
<location line="+12"/>
<source>Page Setup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+222"/>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/>
<source>%1%</source>
<translation type="unfinished"></translation>
</message>
@@ -4376,8 +4370,8 @@ Please choose a different file name.</source>
<context>
<name>QProcess</name>
<message>
- <location filename="../src/corelib/io/qprocess_unix.cpp" line="+445"/>
- <location filename="../src/corelib/io/qprocess_win.cpp" line="+117"/>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
<source>Could not open input redirection for reading</source>
<translation type="unfinished"></translation>
</message>
@@ -4406,7 +4400,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/io/qprocess.cpp" line="+503"/>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+533"/>
<location line="+52"/>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
<location line="+50"/>
@@ -4426,6 +4420,11 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+912"/>
+ <source>No program defined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
<source>Process failed to start</source>
<translation type="unfinished"></translation>
@@ -4434,7 +4433,7 @@ Please choose a different file name.</source>
<context>
<name>QProgressDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+152"/>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
<source>Cancel</source>
<translation>ביטול</translation>
</message>
@@ -4458,7 +4457,7 @@ Please choose a different file name.</source>
<context>
<name>QRegExp</name>
<message>
- <location filename="../src/corelib/tools/qregexp.cpp" line="+34"/>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/>
<source>no error occurred</source>
<translation type="unfinished">לא אירעה כל שגיאה</translation>
</message>
@@ -4506,7 +4505,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Driver</name>
<message>
- <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+353"/>
+ <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
<source>Error to open database</source>
<translation type="unfinished"></translation>
</message>
@@ -4529,12 +4528,12 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Result</name>
<message>
- <location line="-310"/>
+ <location line="-323"/>
<source>Unable to fetch results</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+139"/>
+ <location line="+147"/>
<source>Unable to execute statement</source>
<translation type="unfinished"></translation>
</message>
@@ -4542,7 +4541,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLiteDriver</name>
<message>
- <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+498"/>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/>
<source>Error opening database</source>
<translation type="unfinished"></translation>
</message>
@@ -4605,12 +4604,12 @@ Please choose a different file name.</source>
<context>
<name>QScrollBar</name>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="+419"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/>
<source>Scroll here</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Left edge</source>
<translation type="unfinished"></translation>
</message>
@@ -4620,7 +4619,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Right edge</source>
<translation type="unfinished"></translation>
</message>
@@ -4630,7 +4629,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Page left</source>
<translation type="unfinished"></translation>
</message>
@@ -4641,7 +4640,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Page right</source>
<translation type="unfinished"></translation>
</message>
@@ -4652,7 +4651,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Scroll left</source>
<translation type="unfinished"></translation>
</message>
@@ -4662,7 +4661,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Scroll right</source>
<translation type="unfinished"></translation>
</message>
@@ -4690,7 +4689,7 @@ Please choose a different file name.</source>
<context>
<name>QSharedMemory</name>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+177"/>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+207"/>
<source>%1: unable to set key on lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4701,7 +4700,7 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+168"/>
- <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+118"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
<source>%1: unable to lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4711,8 +4710,8 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+48"/>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+57"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
<source>%1: permission denied</source>
<translation type="unfinished"></translation>
</message>
@@ -4790,7 +4789,7 @@ Please choose a different file name.</source>
<context>
<name>QShortcut</name>
<message>
- <location filename="../src/gui/kernel/qkeysequence.cpp" line="+343"/>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/>
<source>Space</source>
<translation type="unfinished">רווח</translation>
</message>
@@ -5371,7 +5370,7 @@ Please choose a different file name.</source>
<context>
<name>QSql</name>
<message>
- <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+860"/>
+ <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
<source>Delete</source>
<translation type="unfinished">מחק</translation>
</message>
@@ -5428,7 +5427,7 @@ Please choose a different file name.</source>
<context>
<name>QSslSocket</name>
<message>
- <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+539"/>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+569"/>
<source>Unable to write data: %1</source>
<translation type="unfinished"></translation>
</message>
@@ -5487,7 +5486,7 @@ Please choose a different file name.</source>
<name>QSystemSemaphore</name>
<message>
<location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+36"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
<source>%1: out of resources</source>
<translation type="unfinished"></translation>
</message>
@@ -5517,7 +5516,7 @@ Please choose a different file name.</source>
<context>
<name>QTDSDriver</name>
<message>
- <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+552"/>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
<source>Unable to open connection</source>
<translation type="unfinished"></translation>
</message>
@@ -5543,7 +5542,7 @@ Please choose a different file name.</source>
<context>
<name>QTcpServer</name>
<message>
- <location filename="../src/network/socket/qtcpserver.cpp" line="+252"/>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
<source>Operation on socket is not supported</source>
<translation type="unfinished"></translation>
</message>
@@ -5551,7 +5550,7 @@ Please choose a different file name.</source>
<context>
<name>QTextControl</name>
<message>
- <location filename="../src/gui/text/qtextcontrol.cpp" line="+1942"/>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/>
<source>&amp;Undo</source>
<translation type="unfinished">&amp;בטל</translation>
</message>
@@ -5609,7 +5608,7 @@ Please choose a different file name.</source>
<context>
<name>QUdpSocket</name>
<message>
- <location filename="../src/network/socket/qudpsocket.cpp" line="+139"/>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
<source>This platform does not support IPv6</source>
<translation type="unfinished"></translation>
</message>
@@ -5617,7 +5616,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoGroup</name>
<message>
- <location filename="../src/gui/util/qundogroup.cpp" line="+356"/>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+386"/>
<source>Undo</source>
<translation type="unfinished">בטל</translation>
</message>
@@ -5630,7 +5629,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoModel</name>
<message>
- <location filename="../src/gui/util/qundoview.cpp" line="+71"/>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
<source>&lt;empty&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -5638,7 +5637,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoStack</name>
<message>
- <location filename="../src/gui/util/qundostack.cpp" line="+804"/>
+ <location filename="../src/gui/util/qundostack.cpp" line="+834"/>
<source>Undo</source>
<translation type="unfinished">בטל</translation>
</message>
@@ -5709,7 +5708,7 @@ Please choose a different file name.</source>
<context>
<name>QWebFrame</name>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+686"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
<source>Request cancelled</source>
<translation type="unfinished"></translation>
</message>
@@ -6119,7 +6118,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1342"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
<source>JavaScript Alert - %1</source>
<translation type="unfinished"></translation>
</message>
@@ -6195,6 +6194,11 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+3"/>
+ <source>Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
<source>Select to the next character</source>
<translation type="unfinished"></translation>
</message>
@@ -6263,11 +6267,21 @@ Please choose a different file name.</source>
<source>Delete to the end of the word</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+33"/>
+ <source>Insert a new paragraph</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QWhatsThisAction</name>
<message>
- <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+492"/>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
<source>What&apos;s This?</source>
<translation type="unfinished">מה זה?</translation>
</message>
@@ -6275,7 +6289,7 @@ Please choose a different file name.</source>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5290"/>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/>
<source>*</source>
<translation type="unfinished"></translation>
</message>
@@ -6283,7 +6297,7 @@ Please choose a different file name.</source>
<context>
<name>QWizard</name>
<message>
- <location filename="../src/gui/dialogs/qwizard.cpp" line="+617"/>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+649"/>
<source>Cancel</source>
<translation type="unfinished">ביטול</translation>
</message>
@@ -6341,7 +6355,7 @@ Please choose a different file name.</source>
<context>
<name>QWorkspace</name>
<message>
- <location filename="../src/gui/widgets/qworkspace.cpp" line="+1064"/>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/>
<source>&amp;Restore</source>
<translation type="unfinished">ש&amp;חזר</translation>
</message>
@@ -6411,7 +6425,7 @@ Please choose a different file name.</source>
<context>
<name>QXml</name>
<message>
- <location filename="../src/xml/sax/qxml.cpp" line="+28"/>
+ <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
<source>no error occurred</source>
<translation>לא אירעה כל שגיאה</translation>
</message>
@@ -6529,8 +6543,8 @@ Please choose a different file name.</source>
<context>
<name>QXmlStream</name>
<message>
- <location filename="../src/corelib/xml/qxmlstream.cpp" line="+562"/>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1739"/>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/>
<source>Extra content at end of document.</source>
<translation type="unfinished"></translation>
</message>
@@ -6714,7 +6728,7 @@ Please choose a different file name.</source>
<context>
<name>QtXmlPatterns</name>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+175"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
<source>An %1-attribute with value %2 has already been declared.</source>
<translation type="unfinished"></translation>
</message>
@@ -6724,12 +6738,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+54"/>
+ <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
<source>Network timeout.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+290"/>
+ <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>
@@ -6739,7 +6753,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+50"/>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
<source>Year %1 is invalid because it begins with %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6779,7 +6793,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+69"/>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/>
<location line="+15"/>
<source>At least one component must be present.</source>
<translation type="unfinished"></translation>
@@ -6790,7 +6804,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+34"/>
+ <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
<source>No operand in an integer division, %1, can be %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6805,17 +6819,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+102"/>
+ <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/>
<source>%1 is not a valid value of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+193"/>
+ <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="+35"/>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
<source>Integer division (%1) by zero (%2) is undefined.</source>
<translation type="unfinished"></translation>
</message>
@@ -6846,17 +6860,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+49"/>
+ <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/>
<source>A value of type %1 cannot have an Effective Boolean Value.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+48"/>
+ <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/>
<source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+372"/>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
<source>Value %1 of type %2 exceeds maximum (%3).</source>
<translation type="unfinished"></translation>
</message>
@@ -6866,7 +6880,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+61"/>
+ <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/>
<source>A value of type %1 must contain an even number of digits. The value %2 does not.</source>
<translation type="unfinished"></translation>
</message>
@@ -6876,7 +6890,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+177"/>
+ <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
<source>Operator %1 cannot be used on type %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6886,7 +6900,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+36"/>
+ <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 type="unfinished"></translation>
</message>
@@ -6896,7 +6910,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
<source>Type error in cast, expected %1, received %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6906,7 +6920,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+104"/>
+ <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/>
<source>No casting is possible with %1 as the target type.</source>
<translation type="unfinished"></translation>
</message>
@@ -6931,7 +6945,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+37"/>
+ <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
<source>A comment cannot contain %1</source>
<translation type="unfinished"></translation>
</message>
@@ -6941,7 +6955,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+137"/>
+ <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
<source>No comparisons can be done involving the type %1.</source>
<translation type="unfinished"></translation>
</message>
@@ -6951,12 +6965,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+56"/>
+ <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="+139"/>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
<source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
<translation type="unfinished"></translation>
</message>
@@ -6966,7 +6980,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+76"/>
+ <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>
@@ -6976,7 +6990,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+83"/>
+ <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+113"/>
<source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source>
<translation type="unfinished"></translation>
</message>
@@ -6986,33 +7000,33 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+79"/>
+ <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="+54"/>
+ <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/>
<source>The data of a processing instruction cannot contain the string %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+52"/>
+ <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="+126"/>
+ <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="+39"/>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
<source>%1 is an invalid %2</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+47"/>
+ <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/>
<source>%1 takes at most %n argument(s). %2 is therefore invalid.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -7026,7 +7040,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+90"/>
+ <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/>
<source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source>
<translation type="unfinished"></translation>
</message>
@@ -7041,27 +7055,27 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/>
<source>%1 is not a valid XML 1.0 character.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+167"/>
+ <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
<source>The first argument to %1 cannot be of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+56"/>
+ <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="+31"/>
+ <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
<source>%1 was called.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+64"/>
+ <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>
@@ -7076,7 +7090,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+62"/>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
<source>%1 matches newline characters</source>
<translation type="unfinished"></translation>
</message>
@@ -7111,17 +7125,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+317"/>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/>
<source>It will not be possible to retrieve %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+24"/>
+ <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="+249"/>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
<source>The default collection is undefined</source>
<translation type="unfinished"></translation>
</message>
@@ -7131,12 +7145,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+222"/>
+ <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="+57"/>
+ <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>
@@ -7146,17 +7160,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+28"/>
+ <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="+37"/>
+ <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/>
<source>The item %1 did not match the required type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+319"/>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/>
<location line="+7253"/>
<source>%1 is an unknown schema type.</source>
<translation type="unfinished"></translation>
@@ -7177,7 +7191,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+63"/>
+ <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
<source>The variable %1 is unused</source>
<translation type="unfinished"></translation>
</message>
@@ -7459,7 +7473,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+25"/>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
<source>empty</source>
<translation type="unfinished"></translation>
</message>
@@ -7484,7 +7498,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+33"/>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
<source>Required type is %1, but %2 was found.</source>
<translation type="unfinished"></translation>
</message>
@@ -7499,7 +7513,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+56"/>
+ <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>
@@ -7509,12 +7523,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+90"/>
+ <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/>
<source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+284"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
<source>%1 is an unsupported encoding.</source>
<translation type="unfinished"></translation>
</message>
@@ -7529,13 +7543,13 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+89"/>
+ <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
<source>Ambiguous rule match.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+39"/>
- <source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source>
+ <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>
@@ -7554,12 +7568,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+87"/>
+ <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
<source>Circularity detected</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+115"/>
+ <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/>
<source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
<translation type="unfinished"></translation>
</message>
@@ -7569,12 +7583,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+35"/>
+ <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="+489"/>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
<source>Element %1 is not allowed at this location.</source>
<translation type="unfinished"></translation>
</message>
@@ -7629,7 +7643,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+153"/>
+ <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/>
<source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source>
<translation type="unfinished"></translation>
</message>
@@ -7704,7 +7718,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+432"/>
+ <location line="+434"/>
<source>Element %1 cannot have a sequence constructor.</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/qt_ja_JP.ts b/translations/qt_ja_JP.ts
index de76cf1..7c8b874 100644
--- a/translations/qt_ja_JP.ts
+++ b/translations/qt_ja_JP.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioOutput</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+374"/>
+ <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/>
<source>&lt;html&gt;The audio playback device &lt;b&gt;%1&lt;/b&gt; does not work.&lt;br/&gt;Falling back to &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -22,7 +22,7 @@
<context>
<name>CloseButton</name>
<message>
- <location filename="../src/gui/widgets/qtabbar.cpp" line="+2217"/>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/>
<source>Close Tab</source>
<translation type="unfinished"></translation>
</message>
@@ -89,7 +89,7 @@
<context>
<name>Phonon::Gstreamer::MediaObject</name>
<message>
- <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+88"/>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/>
<source>Cannot start playback.
Check your Gstreamer installation and make sure you
@@ -102,24 +102,24 @@ have libgstreamer-plugins-base installed.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+653"/>
- <location line="+9"/>
+ <location line="+676"/>
+ <location line="+8"/>
<location line="+15"/>
- <location line="+7"/>
- <location line="+5"/>
- <location line="+20"/>
- <location line="+317"/>
+ <location line="+9"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+335"/>
<location line="+24"/>
<source>Could not open media source.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-381"/>
+ <location line="-403"/>
<source>Invalid source type.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+355"/>
+ <location line="+377"/>
<source>Could not locate media source.</source>
<translation type="unfinished"></translation>
</message>
@@ -153,7 +153,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3Accel</name>
<message>
- <location filename="../src/qt3support/other/q3accel.cpp" line="+451"/>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
<source>%1, %2 not defined</source>
<translation>%1, %2 は定義されていません</translation>
</message>
@@ -166,7 +166,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3DataTable</name>
<message>
- <location filename="../src/qt3support/sql/q3datatable.cpp" line="+253"/>
+ <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
<source>True</source>
<translation>True</translation>
</message>
@@ -194,7 +194,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3FileDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+102"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+132"/>
<source>All Files (*.*)</source>
<translation>すべてのファイル(*.*)</translation>
</message>
@@ -209,7 +209,7 @@ have libgstreamer-plugins-base installed.</source>
<translation>ディレクトリを選択</translation>
</message>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+834"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+864"/>
<source>Copy or Move a File</source>
<translation>ファイルをコピーまたは移動</translation>
</message>
@@ -234,7 +234,7 @@ have libgstreamer-plugins-base installed.</source>
<location line="-157"/>
<location line="+49"/>
<location line="+2153"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+80"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
<source>All Files (*)</source>
<translation>すべてのファイル(*)</translation>
</message>
@@ -527,7 +527,7 @@ Check path and filename.</source>
<context>
<name>Q3LocalFs</name>
<message>
- <location filename="../src/qt3support/network/q3localfs.cpp" line="+100"/>
+ <location filename="../src/qt3support/network/q3localfs.cpp" line="+130"/>
<location line="+10"/>
<source>Could not read directory
%1</source>
@@ -577,7 +577,7 @@ to
<context>
<name>Q3MainWindow</name>
<message>
- <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2021"/>
+ <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
<source>Line up</source>
<translation>整列</translation>
</message>
@@ -590,7 +590,7 @@ to
<context>
<name>Q3NetworkProtocol</name>
<message>
- <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+824"/>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
<source>Operation stopped by the user</source>
<translation>操作がユーザによって停止されました</translation>
</message>
@@ -598,7 +598,7 @@ to
<context>
<name>Q3ProgressDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+194"/>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
<location line="+61"/>
<source>Cancel</source>
<translation>キャンセル</translation>
@@ -607,7 +607,7 @@ to
<context>
<name>Q3TabDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+159"/>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/>
<location line="+814"/>
<source>OK</source>
<translation>OK</translation>
@@ -636,7 +636,7 @@ to
<context>
<name>Q3TextEdit</name>
<message>
- <location filename="../src/qt3support/text/q3textedit.cpp" line="+5399"/>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
<source>&amp;Undo</source>
<translation>元に戻す(&amp;U)</translation>
</message>
@@ -675,7 +675,7 @@ to
<context>
<name>Q3TitleBar</name>
<message>
- <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+216"/>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
<source>System</source>
<translation>システム</translation>
</message>
@@ -743,7 +743,7 @@ to
<context>
<name>Q3ToolBar</name>
<message>
- <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+662"/>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
<source>More...</source>
<translation>その他...</translation>
</message>
@@ -751,7 +751,7 @@ to
<context>
<name>Q3UrlOperator</name>
<message>
- <location filename="../src/qt3support/network/q3urloperator.cpp" line="+356"/>
+ <location filename="../src/qt3support/network/q3urloperator.cpp" line="+386"/>
<location line="+260"/>
<location line="+4"/>
<source>The protocol `%1&apos; is not supported</source>
@@ -803,7 +803,7 @@ to
<context>
<name>Q3Wizard</name>
<message>
- <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+147"/>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
<source>&amp;Cancel</source>
<translation>キャンセル(&amp;C)</translation>
</message>
@@ -831,9 +831,9 @@ to
<context>
<name>QAbstractSocket</name>
<message>
- <location filename="../src/network/socket/qabstractsocket.cpp" line="+838"/>
- <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+585"/>
- <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+627"/>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
<location line="+26"/>
<source>Host not found</source>
<translation>ホストが見つかりませんでした</translation>
@@ -876,7 +876,7 @@ to
<context>
<name>QAbstractSpinBox</name>
<message>
- <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1169"/>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/>
<source>&amp;Step up</source>
<translation>上(&amp;S)</translation>
</message>
@@ -894,7 +894,7 @@ to
<context>
<name>QApplication</name>
<message>
- <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+346"/>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
<source>Activate</source>
<translation>アクティブに</translation>
</message>
@@ -904,7 +904,7 @@ to
<translation>メインウィンドウをアクティブにする</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.h" line="+322"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
<source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
<translation>実行可能ファイル &apos;%1&apos; には Qt %2 が必要です。Qt %3 が見つかりました。</translation>
</message>
@@ -914,7 +914,7 @@ to
<translation>互換性のないQtライブラリエラー</translation>
</message>
<message>
- <location filename="../src/gui/kernel/qapplication.cpp" line="+2212"/>
+ <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>
@@ -946,7 +946,7 @@ to
<context>
<name>QCheckBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+84"/>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/>
<source>Uncheck</source>
<translation>選択解除</translation>
</message>
@@ -964,7 +964,7 @@ to
<context>
<name>QColorDialog</name>
<message>
- <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1219"/>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/>
<source>Hu&amp;e:</source>
<translation>色相(&amp;E):</translation>
</message>
@@ -1038,13 +1038,13 @@ to
<context>
<name>QComboBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1741"/>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
<location line="+65"/>
<source>Open</source>
<translation>オープン</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+514"/>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
<source>False</source>
<translation type="unfinished">False</translation>
</message>
@@ -1062,7 +1062,7 @@ to
<context>
<name>QCoreApplication</name>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+89"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
<source>%1: key is empty</source>
<comment>QSystemSemaphore</comment>
<translation type="unfinished"></translation>
@@ -1083,12 +1083,12 @@ to
<context>
<name>QDB2Driver</name>
<message>
- <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1217"/>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
<source>Unable to connect</source>
<translation>接続できません</translation>
</message>
<message>
- <location line="+263"/>
+ <location line="+303"/>
<source>Unable to commit transaction</source>
<translation>トランザクションをコミットできません</translation>
</message>
@@ -1106,8 +1106,8 @@ to
<context>
<name>QDB2Result</name>
<message>
- <location line="-986"/>
- <location line="+242"/>
+ <location line="-1043"/>
+ <location line="+243"/>
<source>Unable to execute statement</source>
<translation>ステートメントを実行できません</translation>
</message>
@@ -1122,7 +1122,7 @@ to
<translation>変数をバインドできません</translation>
</message>
<message>
- <location line="+91"/>
+ <location line="+92"/>
<source>Unable to fetch record %1</source>
<translation>レコード %1 をフェッチできません</translation>
</message>
@@ -1140,7 +1140,7 @@ to
<context>
<name>QDateTimeEdit</name>
<message>
- <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2265"/>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
<source>AM</source>
<translation>AM</translation>
</message>
@@ -1163,7 +1163,7 @@ to
<context>
<name>QDial</name>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+921"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
<source>QDial</source>
<translation type="unfinished"></translation>
</message>
@@ -1181,7 +1181,7 @@ to
<context>
<name>QDialog</name>
<message>
- <location filename="../src/gui/dialogs/qdialog.cpp" line="+567"/>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
<source>What&apos;s This?</source>
<translation>ヒント</translation>
</message>
@@ -1194,9 +1194,9 @@ to
<context>
<name>QDialogButtonBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1830"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
<location line="+464"/>
- <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+531"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -1319,7 +1319,7 @@ to
<context>
<name>QDirModel</name>
<message>
- <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+423"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/>
<source>Name</source>
<translation>名前</translation>
</message>
@@ -1349,7 +1349,7 @@ to
<context>
<name>QDockWidget</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1209"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
<source>Close</source>
<translation type="unfinished">閉じる</translation>
</message>
@@ -1380,7 +1380,7 @@ to
<context>
<name>QErrorMessage</name>
<message>
- <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+162"/>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+192"/>
<source>Debug Message:</source>
<translation>デバッグメッセージ:</translation>
</message>
@@ -1408,13 +1408,18 @@ to
<context>
<name>QFile</name>
<message>
- <location filename="../src/corelib/io/qfile.cpp" line="+678"/>
- <location line="+130"/>
+ <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
+ <location line="+141"/>
<source>Destination file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+12"/>
+ <location line="-108"/>
+ <source>Cannot remove source file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+120"/>
<source>Cannot open %1 for input</source>
<translation type="unfinished"></translation>
</message>
@@ -1437,44 +1442,44 @@ to
<context>
<name>QFileDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+484"/>
- <location line="+423"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+515"/>
+ <location line="+444"/>
<source>All Files (*)</source>
<translation>すべてのファイル(*)</translation>
</message>
<message>
- <location line="+218"/>
+ <location line="+222"/>
<source>Directories</source>
<translation>ディレクトリ</translation>
</message>
<message>
- <location line="-619"/>
- <location line="+623"/>
+ <location line="-644"/>
+ <location line="+648"/>
<source>Directory:</source>
<translation>ディレクトリ:</translation>
</message>
<message>
- <location line="-621"/>
- <location line="+627"/>
+ <location line="-646"/>
+ <location line="+652"/>
<source>File &amp;name:</source>
<translation>ファイル名:</translation>
</message>
<message>
<location line="-13"/>
<location line="+50"/>
- <location line="+1440"/>
+ <location line="+1471"/>
<location line="+75"/>
<source>&amp;Open</source>
<translation>オープン(&amp;O)</translation>
</message>
<message>
- <location line="-1565"/>
+ <location line="-1596"/>
<location line="+50"/>
<source>&amp;Save</source>
<translation>保存(&amp;S)</translation>
</message>
<message>
- <location line="-705"/>
+ <location line="-730"/>
<source>Open</source>
<translation>オープン</translation>
</message>
@@ -1491,7 +1496,7 @@ Please verify the correct file name was given</source>
正しいファイル名が入力されたかどうか確認してください</translation>
</message>
<message>
- <location line="+1469"/>
+ <location line="+1515"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>%1はすでに存在します。
@@ -1513,7 +1518,7 @@ Please verify the correct file name was given.</source>
</message>
<message>
<location filename="../src/gui/dialogs/qfiledialog.cpp" line="-54"/>
- <location line="+851"/>
+ <location line="+862"/>
<source>%1
Directory not found.
Please verify the correct directory name was given.</source>
@@ -1526,7 +1531,7 @@ Please verify the correct directory name was given.</source>
<translation type="obsolete">ソート</translation>
</message>
<message>
- <location line="-2255"/>
+ <location line="-2312"/>
<source>&amp;Rename</source>
<translation>名前の変更(&amp;R)</translation>
</message>
@@ -1603,7 +1608,7 @@ Please verify the correct directory name was given.</source>
<translation>ファイルの種類:</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+381"/>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+411"/>
<source>Drive</source>
<translation>ドライブ</translation>
</message>
@@ -1619,7 +1624,7 @@ Please verify the correct directory name was given.</source>
<translation>不明</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+130"/>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
<source>All Files (*.*)</source>
<translation type="unfinished">すべてのファイル(*.*)</translation>
</message>
@@ -1637,7 +1642,7 @@ Please verify the correct directory name was given.</source>
<translation type="obsolete">ディレクトリを選択</translation>
</message>
<message>
- <location line="+2067"/>
+ <location line="+2123"/>
<source>&apos;%1&apos; is write protected.
Do you want to delete it anyway?</source>
<translation>&apos;%1&apos; は書き込みが禁止されています。
@@ -1654,7 +1659,7 @@ Do you want to delete it anyway?</source>
<translation>ディレクトリを削除できませんでした。</translation>
</message>
<message>
- <location line="-2091"/>
+ <location line="-2147"/>
<source>Find Directory</source>
<translation type="unfinished">ディレクトリの検索</translation>
</message>
@@ -1669,18 +1674,18 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+631"/>
+ <location line="+656"/>
<location line="+38"/>
<source>&amp;Choose</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+1238"/>
+ <location line="+1269"/>
<source>New Folder</source>
<translation type="unfinished">新しいフォルダ</translation>
</message>
<message>
- <location line="+554"/>
+ <location line="+555"/>
<source>Recent Places</source>
<translation type="unfinished"></translation>
</message>
@@ -1691,7 +1696,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished">進む</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qsidebar.cpp" line="+388"/>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
@@ -1699,7 +1704,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFileSystemModel</name>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+855"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+892"/>
<source>Name</source>
<translation>名前</translation>
</message>
@@ -1761,7 +1766,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+204"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/>
<source>My Computer</source>
<translation type="unfinished">マイ コンピュータ</translation>
</message>
@@ -1774,7 +1779,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFontDatabase</name>
<message>
- <location filename="../src/gui/text/qfontdatabase.cpp" line="+60"/>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
<location line="+1176"/>
<source>Normal</source>
<translation type="unfinished"></translation>
@@ -1991,7 +1996,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFontDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+742"/>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/>
<source>&amp;Font</source>
<translation>フォント(&amp;F)</translation>
</message>
@@ -2040,8 +2045,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QFtp</name>
<message>
- <location filename="../src/network/access/qftp.cpp" line="+796"/>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="+653"/>
+ <location filename="../src/network/access/qftp.cpp" line="+826"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+683"/>
<source>Not connected</source>
<translation>未接続です</translation>
</message>
@@ -2186,7 +2191,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QHostInfo</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_p.h" line="+153"/>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
<source>Unknown error</source>
<translation>不明なエラー</translation>
</message>
@@ -2194,11 +2199,11 @@ Do you want to delete it anyway?</source>
<context>
<name>QHostInfoAgent</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+148"/>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
<location line="+9"/>
<location line="+64"/>
<location line="+31"/>
- <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+150"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
<location line="+9"/>
<location line="+40"/>
<location line="+27"/>
@@ -2224,26 +2229,26 @@ Do you want to delete it anyway?</source>
<context>
<name>QHttp</name>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="+335"/>
+ <location filename="../src/network/access/qhttp.cpp" line="+365"/>
<source>HTTPS connection requested but SSL support not compiled in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1209"/>
- <location line="+816"/>
- <location filename="../src/qt3support/network/q3http.cpp" line="+1130"/>
+ <location line="+820"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+1160"/>
<location line="+567"/>
<source>Unknown error</source>
<translation>不明なエラー</translation>
</message>
<message>
- <location line="-564"/>
+ <location line="-568"/>
<location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
<source>Request aborted</source>
<translation>要求が中止されました</translation>
</message>
<message>
- <location line="+575"/>
+ <location line="+579"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
<source>No server set to connect to</source>
<translation>接続が設定されているサーバがありません</translation>
@@ -2261,18 +2266,23 @@ Do you want to delete it anyway?</source>
<translation>サーバの接続が予期せず閉じられました</translation>
</message>
<message>
- <location line="+357"/>
+ <location line="+179"/>
+ <source>Unknown authentication method</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+183"/>
<source>Error writing response to device</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+1712"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+876"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+38"/>
<source>Connection refused</source>
<translation>接続が拒否されました</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-299"/>
+ <location filename="../src/network/access/qhttp.cpp" line="-304"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
<source>Host %1 not found</source>
@@ -2293,7 +2303,7 @@ Do you want to delete it anyway?</source>
<translation>無効なHTTP応答ヘッダです</translation>
</message>
<message>
- <location line="+120"/>
+ <location line="+125"/>
<location line="+48"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
<location line="+47"/>
@@ -2342,7 +2352,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-133"/>
+ <location line="-138"/>
<source>Connection refused (or timed out)</source>
<translation type="unfinished"></translation>
</message>
@@ -2423,7 +2433,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseDriver</name>
<message>
- <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1378"/>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1428"/>
<source>Error opening database</source>
<translation>データベースのオープンでエラーが発生しました</translation>
</message>
@@ -2446,7 +2456,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseResult</name>
<message>
- <location line="-1077"/>
+ <location line="-1097"/>
<source>Unable to create BLOB</source>
<translation>バイナリラージオブジェクトを作成できません</translation>
</message>
@@ -2466,7 +2476,7 @@ Do you want to delete it anyway?</source>
<translation>バイナリラージオブジェクトを読み込めません</translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<location line="+189"/>
<source>Could not find array</source>
<translation>配列が見つかりませんでした</translation>
@@ -2536,7 +2546,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIODevice</name>
<message>
- <location filename="../src/corelib/global/qglobal.cpp" line="+1830"/>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/>
<source>Permission denied</source>
<translation>許可されていません</translation>
</message>
@@ -2556,7 +2566,7 @@ Do you want to delete it anyway?</source>
<translation>デバイスの残り容量がありません</translation>
</message>
<message>
- <location filename="../src/corelib/io/qiodevice.cpp" line="+1506"/>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/>
<source>Unknown error</source>
<translation>不明なエラー</translation>
</message>
@@ -2564,7 +2574,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QInputContext</name>
<message>
- <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+212"/>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/>
<source>XIM</source>
<translation>XIM</translation>
</message>
@@ -2587,7 +2597,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QInputDialog</name>
<message>
- <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+193"/>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
<source>Enter a value:</source>
<translation type="unfinished"></translation>
</message>
@@ -2595,7 +2605,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QLibrary</name>
<message>
- <location filename="../src/corelib/plugin/qlibrary.cpp" line="+348"/>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
<source>Could not mmap &apos;%1&apos;: %2</source>
<translation>&apos;%1&apos; をメモリにマッピングできませんでした: %2</translation>
</message>
@@ -2638,7 +2648,7 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="-377"/>
- <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+250"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
<source>The shared library was not found.</source>
<translation type="unfinished"></translation>
</message>
@@ -2653,8 +2663,8 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+179"/>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+69"/>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
<source>Cannot load library %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2674,7 +2684,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QLineEdit</name>
<message>
- <location filename="../src/gui/widgets/qlineedit.cpp" line="+2649"/>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+2680"/>
<source>&amp;Undo</source>
<translation>元に戻す(&amp;U)</translation>
</message>
@@ -2712,8 +2722,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QLocalServer</name>
<message>
- <location filename="../src/network/socket/qlocalserver.cpp" line="+196"/>
- <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+201"/>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/>
<source>%1: Name error</source>
<translation type="unfinished"></translation>
</message>
@@ -2729,7 +2739,7 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="+5"/>
- <location filename="../src/network/socket/qlocalserver_win.cpp" line="+127"/>
+ <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/>
<source>%1: Unknown error %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2737,8 +2747,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QLocalSocket</name>
<message>
- <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+102"/>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+104"/>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/>
<source>%1: Connection refused</source>
<translation type="unfinished"></translation>
</message>
@@ -2751,7 +2761,7 @@ Do you want to delete it anyway?</source>
<message>
<location line="+3"/>
<location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
- <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+50"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/>
<location line="+43"/>
<source>%1: Invalid name</source>
<translation type="unfinished"></translation>
@@ -2808,7 +2818,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMYSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1200"/>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1231"/>
<source>Unable to open database &apos;</source>
<translation>データベースをオープンできません &apos;</translation>
</message>
@@ -2818,7 +2828,7 @@ Do you want to delete it anyway?</source>
<translation>接続できません</translation>
</message>
<message>
- <location line="+123"/>
+ <location line="+127"/>
<source>Unable to begin transaction</source>
<translation>トランザクションを開始できません</translation>
</message>
@@ -2836,7 +2846,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMYSQLResult</name>
<message>
- <location line="-917"/>
+ <location line="-922"/>
<source>Unable to fetch data</source>
<translation>データをフェッチできません</translation>
</message>
@@ -2851,7 +2861,7 @@ Do you want to delete it anyway?</source>
<translation>実行結果を記録できません</translation>
</message>
<message>
- <location line="+189"/>
+ <location line="+190"/>
<location line="+8"/>
<source>Unable to prepare statement</source>
<translation>プリペアステートメントを使えません</translation>
@@ -2896,7 +2906,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMdiArea</name>
<message>
- <location filename="../src/gui/widgets/qmdiarea.cpp" line="+260"/>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
<source>(Untitled)</source>
<translation type="unfinished"></translation>
</message>
@@ -2904,7 +2914,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMdiSubWindow</name>
<message>
- <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+250"/>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
<source>%1 - [%2]</source>
<translation type="unfinished">%1 - [%2]</translation>
</message>
@@ -2997,7 +3007,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMenu</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+127"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
<location line="+225"/>
<source>Close</source>
<translation>閉じる</translation>
@@ -3026,7 +3036,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMessageBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1105"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1111"/>
<source>Help</source>
<translation>ヘルプ</translation>
</message>
@@ -3046,28 +3056,21 @@ Do you want to delete it anyway?</source>
&lt;p&gt;QtはTrolltechの商品です。詳細は&lt;tt&gt;http://qtsoftware.com/qt/&lt;/tt&gt;を参照してください。&lt;/p&gt;</translation>
</message>
<message>
- <location line="+475"/>
- <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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+13"/>
<source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
- <translation>&lt;p&gt;このプログラムは Qt バージョン %1 を使用しています。&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;このプログラムは Qt バージョン %1 を使用しています。&lt;/p&gt;</translation>
</message>
<message>
- <location line="+2"/>
<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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
- <translation>&lt;p&gt;このプログラムは Qt オープンソース版バージョン %1 を使用しています。&lt;/p&gt;
+ <translation type="obsolete">&lt;p&gt;このプログラムは Qt オープンソース版バージョン %1 を使用しています。&lt;/p&gt;
&lt;p&gt;Qt オープンソース版はオープンソースのアプリケーションの開発用です。ソースコードを公開しない商用アプリケーションを開発するには商用版のライセンスが必要です。&lt;/p&gt;&lt;p&gt;Qtのライセンスについては&lt;tt&gt;http://qtsoftware.com/company/model.html&lt;/tt&gt;を参照してください。&lt;/p&gt;</translation>
</message>
<message>
- <location line="+13"/>
+ <location line="+509"/>
<source>About Qt</source>
<translation>Qt について</translation>
</message>
<message>
- <location line="-1599"/>
+ <location line="-1605"/>
<source>Show Details...</source>
<translation>詳細を表示...</translation>
</message>
@@ -3076,11 +3079,16 @@ Do you want to delete it anyway?</source>
<source>Hide Details...</source>
<translation>詳細を隠す...</translation>
</message>
+ <message>
+ <location line="+1570"/>
+ <source>&lt;h3&gt;About Qt&lt;/h3&gt;&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;&lt;p&gt;Qt is a C++ toolkit for cross-platform application development.&lt;/p&gt;&lt;p&gt;Qt provides single-source portability across MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.&lt;/p&gt;&lt;p&gt;Qt is available under three different licensing options designed to accommodate the needs of our various users.&lt;/p&gt;Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.&lt;/p&gt;&lt;p&gt;Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.&lt;/p&gt;&lt;p&gt;Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.&lt;/p&gt;&lt;p&gt;Please see &lt;a href=&quot;http://www.qtsoftware.com/products/licensing&quot;&gt;www.qtsoftware.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://www.qtsoftware.com/qt/&quot;&gt;www.qtsoftware.com/qt&lt;/a&gt; for more information.&lt;/p&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QMultiInputContext</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+58"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
<source>Select IM</source>
<translation>入力メソッドを選択</translation>
</message>
@@ -3088,7 +3096,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMultiInputContextPlugin</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+65"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
<source>Multiple input method switcher</source>
<translation>複数の入力メソッドを切り替え</translation>
</message>
@@ -3101,7 +3109,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNativeSocketEngine</name>
<message>
- <location filename="../src/network/socket/qnativesocketengine.cpp" line="+167"/>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+197"/>
<source>Unable to initialize non-blocking socket</source>
<translation>ノンブロッキングソケットを初期化できません</translation>
</message>
@@ -3234,7 +3242,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessCacheBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+35"/>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
<source>Error opening %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3242,7 +3250,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessFileBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+69"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/>
<source>Request for opening non-local file %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3270,7 +3278,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessFtpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+135"/>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3280,7 +3288,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+131"/>
+ <location line="+130"/>
<source>Logging in to %1 failed: authentication required</source>
<translation type="unfinished"></translation>
</message>
@@ -3298,7 +3306,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessHttpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+565"/>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3311,7 +3319,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+37"/>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/>
<source>Protocol &quot;%1&quot; is unknown</source>
<translation type="unfinished"></translation>
</message>
@@ -3319,7 +3327,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkReplyImpl</name>
<message>
- <location line="+422"/>
+ <location line="+432"/>
<location line="+22"/>
<source>Operation canceled</source>
<translation type="unfinished"></translation>
@@ -3328,7 +3336,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIDriver</name>
<message>
- <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+1883"/>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+1925"/>
<source>Unable to initialize</source>
<comment>QOCIDriver</comment>
<translation>初期化できません</translation>
@@ -3357,7 +3365,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIResult</name>
<message>
- <location line="-976"/>
+ <location line="-963"/>
<location line="+161"/>
<location line="+15"/>
<source>Unable to bind column for batch execute</source>
@@ -3384,18 +3392,16 @@ Do you want to delete it anyway?</source>
<translation>プリペアステートメントを使えません</translation>
</message>
<message>
- <location line="+29"/>
- <location line="+37"/>
+ <location line="+36"/>
<source>Unable to bind value</source>
<translation>値をバインドできません</translation>
</message>
<message>
- <location line="-20"/>
<source>Unable to execute select statement</source>
- <translation>SELECT ステートメントを実行できません</translation>
+ <translation type="obsolete">SELECT ステートメントを実行できません</translation>
</message>
<message>
- <location line="+32"/>
+ <location line="+19"/>
<source>Unable to execute statement</source>
<translation>ステートメントを実行できません</translation>
</message>
@@ -3403,7 +3409,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCDriver</name>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1657"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1785"/>
<source>Unable to connect</source>
<translation>接続できません</translation>
</message>
@@ -3413,7 +3419,7 @@ Do you want to delete it anyway?</source>
<translation>接続できません - ドライバは全ての必要な機能をサポートしていません</translation>
</message>
<message>
- <location line="+234"/>
+ <location line="+242"/>
<source>Unable to disable autocommit</source>
<translation>オートコミットを無効にできません</translation>
</message>
@@ -3436,13 +3442,13 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCResult</name>
<message>
- <location line="-1187"/>
- <location line="+625"/>
+ <location line="-1201"/>
+ <location line="+626"/>
<source>Unable to execute statement</source>
<translation>ステートメントを実行できません</translation>
</message>
<message>
- <location line="-554"/>
+ <location line="-555"/>
<source>Unable to fetch next</source>
<translation>次のレコードをフェッチできません</translation>
</message>
@@ -3452,12 +3458,12 @@ Do you want to delete it anyway?</source>
<translation>プリペアステートメントを使えません</translation>
</message>
<message>
- <location line="+267"/>
+ <location line="+268"/>
<source>Unable to bind variable</source>
<translation>変数をバインドできません</translation>
</message>
<message>
- <location line="-634"/>
+ <location line="-635"/>
<location line="+349"/>
<source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
<translation>QODBCResult::reset: ステートメントの属性として &apos;SQL_CURSOR_STATUS&apos; を設定できません。ODBC ドライバの構成をチェックしてください。</translation>
@@ -3465,12 +3471,12 @@ Do you want to delete it anyway?</source>
<message>
<location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/>
<location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-189"/>
- <location line="+577"/>
+ <location line="+578"/>
<source>Unable to fetch last</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-671"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
<source>Unable to fetch</source>
<translation type="unfinished"></translation>
</message>
@@ -3496,12 +3502,12 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">True</translation>
</message>
<message>
- <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+134"/>
+ <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
<source>Home</source>
<translation>ホーム</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+44"/>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
<source>Operation not supported on %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3511,7 +3517,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+145"/>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
<source>Write error writing to %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -3536,7 +3542,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/kernel/qhostinfo.cpp" line="+147"/>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
<location line="+57"/>
<source>No host name given</source>
<translation type="unfinished"></translation>
@@ -3545,7 +3551,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPPDOptionsModel</name>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1165"/>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/>
<source>Name</source>
<translation type="unfinished">名前</translation>
</message>
@@ -3558,7 +3564,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+732"/>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/>
<source>Unable to connect</source>
<translation>接続できません</translation>
</message>
@@ -3578,7 +3584,7 @@ Do you want to delete it anyway?</source>
<translation>トランザクションをロールバックできませんでした</translation>
</message>
<message>
- <location line="+336"/>
+ <location line="+358"/>
<source>Unable to subscribe</source>
<translation type="unfinished"></translation>
</message>
@@ -3591,12 +3597,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QPSQLResult</name>
<message>
- <location line="-1035"/>
+ <location line="-1058"/>
<source>Unable to create query</source>
<translation>クエリーを作成できません</translation>
</message>
<message>
- <location line="+373"/>
+ <location line="+374"/>
<source>Unable to prepare statement</source>
<translation type="unfinished">プリペアステートメントを使えません</translation>
</message>
@@ -3604,7 +3610,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPageSetupWidget</name>
<message>
- <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+274"/>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
<source>Centimeters (cm)</source>
<translation type="unfinished"></translation>
</message>
@@ -3732,7 +3738,7 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">給紙装置:</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+238"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -3749,7 +3755,7 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">横</translation>
</message>
<message>
- <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+68"/>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/>
<source>locally connected</source>
<translation>ローカルに接続しています</translation>
</message>
@@ -3778,7 +3784,7 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">参照...</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+345"/>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+375"/>
<source>Print all</source>
<translation>すべて印刷</translation>
</message>
@@ -3998,7 +4004,7 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">両面印刷</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+80"/>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
<location line="+13"/>
<location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
<source>Print</source>
@@ -4248,13 +4254,13 @@ Please choose a different file name.</source>
<context>
<name>QPrintPreviewDialog</name>
<message>
- <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+38"/>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
<location line="+12"/>
<source>Page Setup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+222"/>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/>
<source>%1%</source>
<translation type="unfinished"></translation>
</message>
@@ -4536,8 +4542,8 @@ Please choose a different file name.</source>
<context>
<name>QProcess</name>
<message>
- <location filename="../src/corelib/io/qprocess_unix.cpp" line="+445"/>
- <location filename="../src/corelib/io/qprocess_win.cpp" line="+117"/>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
<source>Could not open input redirection for reading</source>
<translation type="unfinished"></translation>
</message>
@@ -4566,7 +4572,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/io/qprocess.cpp" line="+503"/>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+533"/>
<location line="+52"/>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
<location line="+50"/>
@@ -4586,6 +4592,11 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+912"/>
+ <source>No program defined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
<source>Process failed to start</source>
<translation type="unfinished"></translation>
@@ -4594,7 +4605,7 @@ Please choose a different file name.</source>
<context>
<name>QProgressDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+152"/>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
@@ -4618,7 +4629,7 @@ Please choose a different file name.</source>
<context>
<name>QRegExp</name>
<message>
- <location filename="../src/corelib/tools/qregexp.cpp" line="+34"/>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/>
<source>no error occurred</source>
<translation>エラーは発生しませんでした</translation>
</message>
@@ -4666,7 +4677,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Driver</name>
<message>
- <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+353"/>
+ <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
<source>Error to open database</source>
<translation>データベースのオープンでエラーが発生しました</translation>
</message>
@@ -4689,12 +4700,12 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Result</name>
<message>
- <location line="-310"/>
+ <location line="-323"/>
<source>Unable to fetch results</source>
<translation>実行結果をフェッチできません</translation>
</message>
<message>
- <location line="+139"/>
+ <location line="+147"/>
<source>Unable to execute statement</source>
<translation>ステートメントを実行できません</translation>
</message>
@@ -4702,7 +4713,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLiteDriver</name>
<message>
- <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+498"/>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/>
<source>Error opening database</source>
<translation>データベースのオープンでエラーが発生しました</translation>
</message>
@@ -4769,12 +4780,12 @@ Please choose a different file name.</source>
<context>
<name>QScrollBar</name>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="+419"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/>
<source>Scroll here</source>
<translation>ここにスクロール</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Left edge</source>
<translation>左端</translation>
</message>
@@ -4784,7 +4795,7 @@ Please choose a different file name.</source>
<translation>上端</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Right edge</source>
<translation>右端</translation>
</message>
@@ -4794,7 +4805,7 @@ Please choose a different file name.</source>
<translation>下端</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Page left</source>
<translation>1ページ左へスクロール</translation>
</message>
@@ -4805,7 +4816,7 @@ Please choose a different file name.</source>
<translation>1ページ戻る</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Page right</source>
<translation>1ページ右へスクロール</translation>
</message>
@@ -4816,7 +4827,7 @@ Please choose a different file name.</source>
<translation>1ページ進む</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Scroll left</source>
<translation>左へスクロール</translation>
</message>
@@ -4826,7 +4837,7 @@ Please choose a different file name.</source>
<translation>上へスクロール</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Scroll right</source>
<translation>右へスクロール</translation>
</message>
@@ -4854,7 +4865,7 @@ Please choose a different file name.</source>
<context>
<name>QSharedMemory</name>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+177"/>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+207"/>
<source>%1: unable to set key on lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4865,7 +4876,7 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+168"/>
- <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+118"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
<source>%1: unable to lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4875,8 +4886,8 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+48"/>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+57"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
<source>%1: permission denied</source>
<translation type="unfinished"></translation>
</message>
@@ -4954,7 +4965,7 @@ Please choose a different file name.</source>
<context>
<name>QShortcut</name>
<message>
- <location filename="../src/gui/kernel/qkeysequence.cpp" line="+343"/>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/>
<source>Space</source>
<translation>Space</translation>
</message>
@@ -5540,7 +5551,7 @@ Please choose a different file name.</source>
<context>
<name>QSql</name>
<message>
- <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+860"/>
+ <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
<source>Delete</source>
<translation>削除</translation>
</message>
@@ -5597,7 +5608,7 @@ Please choose a different file name.</source>
<context>
<name>QSslSocket</name>
<message>
- <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+230"/>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+260"/>
<source>Error creating SSL context (%1)</source>
<translation type="unfinished"></translation>
</message>
@@ -5656,7 +5667,7 @@ Please choose a different file name.</source>
<name>QSystemSemaphore</name>
<message>
<location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+36"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
<source>%1: out of resources</source>
<translation type="unfinished"></translation>
</message>
@@ -5686,7 +5697,7 @@ Please choose a different file name.</source>
<context>
<name>QTDSDriver</name>
<message>
- <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+552"/>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
<source>Unable to open connection</source>
<translation>接続をオープンできません</translation>
</message>
@@ -5716,7 +5727,7 @@ Please choose a different file name.</source>
<translation type="obsolete">ソケット操作はサポートされていません</translation>
</message>
<message>
- <location filename="../src/network/socket/qtcpserver.cpp" line="+252"/>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
<source>Operation on socket is not supported</source>
<translation type="unfinished"></translation>
</message>
@@ -5724,7 +5735,7 @@ Please choose a different file name.</source>
<context>
<name>QTextControl</name>
<message>
- <location filename="../src/gui/text/qtextcontrol.cpp" line="+1942"/>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/>
<source>&amp;Undo</source>
<translation>元に戻す(&amp;U)</translation>
</message>
@@ -5782,7 +5793,7 @@ Please choose a different file name.</source>
<context>
<name>QUdpSocket</name>
<message>
- <location filename="../src/network/socket/qudpsocket.cpp" line="+139"/>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
<source>This platform does not support IPv6</source>
<translation>このプラットフォームは IPv6 をサポートしていません</translation>
</message>
@@ -5790,7 +5801,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoGroup</name>
<message>
- <location filename="../src/gui/util/qundogroup.cpp" line="+356"/>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+386"/>
<source>Undo</source>
<translation>元に戻す</translation>
</message>
@@ -5803,7 +5814,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoModel</name>
<message>
- <location filename="../src/gui/util/qundoview.cpp" line="+71"/>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
<source>&lt;empty&gt;</source>
<translation>&lt;空&gt;</translation>
</message>
@@ -5811,7 +5822,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoStack</name>
<message>
- <location filename="../src/gui/util/qundostack.cpp" line="+804"/>
+ <location filename="../src/gui/util/qundostack.cpp" line="+834"/>
<source>Undo</source>
<translation>元に戻す</translation>
</message>
@@ -5882,7 +5893,7 @@ Please choose a different file name.</source>
<context>
<name>QWebFrame</name>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+686"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
<source>Request cancelled</source>
<translation type="unfinished"></translation>
</message>
@@ -6292,7 +6303,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1342"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
<source>JavaScript Alert - %1</source>
<translation type="unfinished"></translation>
</message>
@@ -6368,6 +6379,11 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+3"/>
+ <source>Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
<source>Select to the next character</source>
<translation type="unfinished"></translation>
</message>
@@ -6436,11 +6452,21 @@ Please choose a different file name.</source>
<source>Delete to the end of the word</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+33"/>
+ <source>Insert a new paragraph</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QWhatsThisAction</name>
<message>
- <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+492"/>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
<source>What&apos;s This?</source>
<translation>ヒント</translation>
</message>
@@ -6448,7 +6474,7 @@ Please choose a different file name.</source>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5290"/>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/>
<source>*</source>
<translation>*</translation>
</message>
@@ -6456,7 +6482,7 @@ Please choose a different file name.</source>
<context>
<name>QWizard</name>
<message>
- <location filename="../src/gui/dialogs/qwizard.cpp" line="+605"/>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/>
<source>Go Back</source>
<translation type="unfinished"></translation>
</message>
@@ -6514,7 +6540,7 @@ Please choose a different file name.</source>
<context>
<name>QWorkspace</name>
<message>
- <location filename="../src/gui/widgets/qworkspace.cpp" line="+1064"/>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/>
<source>&amp;Restore</source>
<translation>元に戻す(&amp;R)</translation>
</message>
@@ -6584,7 +6610,7 @@ Please choose a different file name.</source>
<context>
<name>QXml</name>
<message>
- <location filename="../src/xml/sax/qxml.cpp" line="+28"/>
+ <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
<source>no error occurred</source>
<translation>エラーは発生しませんでした</translation>
</message>
@@ -6702,8 +6728,8 @@ Please choose a different file name.</source>
<context>
<name>QXmlStream</name>
<message>
- <location filename="../src/corelib/xml/qxmlstream.cpp" line="+562"/>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1739"/>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/>
<source>Extra content at end of document.</source>
<translation type="unfinished"></translation>
</message>
@@ -6887,7 +6913,7 @@ Please choose a different file name.</source>
<context>
<name>QtXmlPatterns</name>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+175"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
<source>An %1-attribute with value %2 has already been declared.</source>
<translation type="unfinished"></translation>
</message>
@@ -6897,12 +6923,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+54"/>
+ <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
<source>Network timeout.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+290"/>
+ <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>
@@ -6912,7 +6938,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+50"/>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
<source>Year %1 is invalid because it begins with %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6952,7 +6978,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+69"/>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/>
<location line="+15"/>
<source>At least one component must be present.</source>
<translation type="unfinished"></translation>
@@ -6963,7 +6989,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+34"/>
+ <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
<source>No operand in an integer division, %1, can be %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6978,17 +7004,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+102"/>
+ <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/>
<source>%1 is not a valid value of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+193"/>
+ <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="+35"/>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
<source>Integer division (%1) by zero (%2) is undefined.</source>
<translation type="unfinished"></translation>
</message>
@@ -7019,17 +7045,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+49"/>
+ <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/>
<source>A value of type %1 cannot have an Effective Boolean Value.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+48"/>
+ <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/>
<source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+372"/>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
<source>Value %1 of type %2 exceeds maximum (%3).</source>
<translation type="unfinished"></translation>
</message>
@@ -7039,7 +7065,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+61"/>
+ <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/>
<source>A value of type %1 must contain an even number of digits. The value %2 does not.</source>
<translation type="unfinished"></translation>
</message>
@@ -7049,7 +7075,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+177"/>
+ <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
<source>Operator %1 cannot be used on type %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -7059,7 +7085,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+36"/>
+ <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 type="unfinished"></translation>
</message>
@@ -7069,7 +7095,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
<source>Type error in cast, expected %1, received %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -7079,7 +7105,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+104"/>
+ <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/>
<source>No casting is possible with %1 as the target type.</source>
<translation type="unfinished"></translation>
</message>
@@ -7104,7 +7130,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+37"/>
+ <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
<source>A comment cannot contain %1</source>
<translation type="unfinished"></translation>
</message>
@@ -7114,7 +7140,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+137"/>
+ <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
<source>No comparisons can be done involving the type %1.</source>
<translation type="unfinished"></translation>
</message>
@@ -7124,12 +7150,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+56"/>
+ <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="+139"/>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
<source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
<translation type="unfinished"></translation>
</message>
@@ -7139,7 +7165,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+76"/>
+ <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>
@@ -7149,7 +7175,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+83"/>
+ <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+113"/>
<source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source>
<translation type="unfinished"></translation>
</message>
@@ -7159,33 +7185,33 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+79"/>
+ <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="+54"/>
+ <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/>
<source>The data of a processing instruction cannot contain the string %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+52"/>
+ <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="+126"/>
+ <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="+39"/>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
<source>%1 is an invalid %2</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+47"/>
+ <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/>
<source>%1 takes at most %n argument(s). %2 is therefore invalid.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -7199,7 +7225,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+90"/>
+ <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/>
<source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source>
<translation type="unfinished"></translation>
</message>
@@ -7214,27 +7240,27 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/>
<source>%1 is not a valid XML 1.0 character.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+167"/>
+ <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
<source>The first argument to %1 cannot be of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+56"/>
+ <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="+31"/>
+ <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
<source>%1 was called.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+64"/>
+ <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>
@@ -7249,7 +7275,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+62"/>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
<source>%1 matches newline characters</source>
<translation type="unfinished"></translation>
</message>
@@ -7284,17 +7310,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+317"/>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/>
<source>It will not be possible to retrieve %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+24"/>
+ <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="+249"/>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
<source>The default collection is undefined</source>
<translation type="unfinished"></translation>
</message>
@@ -7304,12 +7330,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+222"/>
+ <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="+57"/>
+ <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>
@@ -7319,17 +7345,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+28"/>
+ <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="+37"/>
+ <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/>
<source>The item %1 did not match the required type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+319"/>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/>
<location line="+7253"/>
<source>%1 is an unknown schema type.</source>
<translation type="unfinished"></translation>
@@ -7350,7 +7376,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+63"/>
+ <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
<source>The variable %1 is unused</source>
<translation type="unfinished"></translation>
</message>
@@ -7632,7 +7658,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+25"/>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
<source>empty</source>
<translation type="unfinished"></translation>
</message>
@@ -7657,7 +7683,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+33"/>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
<source>Required type is %1, but %2 was found.</source>
<translation type="unfinished"></translation>
</message>
@@ -7672,7 +7698,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+56"/>
+ <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>
@@ -7682,12 +7708,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+90"/>
+ <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/>
<source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+284"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
<source>%1 is an unsupported encoding.</source>
<translation type="unfinished"></translation>
</message>
@@ -7702,13 +7728,13 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+89"/>
+ <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
<source>Ambiguous rule match.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+39"/>
- <source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source>
+ <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>
@@ -7727,12 +7753,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+87"/>
+ <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
<source>Circularity detected</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+115"/>
+ <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/>
<source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
<translation type="unfinished"></translation>
</message>
@@ -7742,12 +7768,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+35"/>
+ <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="+489"/>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
<source>Element %1 is not allowed at this location.</source>
<translation type="unfinished"></translation>
</message>
@@ -7802,7 +7828,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+153"/>
+ <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/>
<source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source>
<translation type="unfinished"></translation>
</message>
@@ -7877,7 +7903,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+432"/>
+ <location line="+434"/>
<source>Element %1 cannot have a sequence constructor.</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/qt_pl.ts b/translations/qt_pl.ts
index b7b9cb7..7f9ec8d 100644
--- a/translations/qt_pl.ts
+++ b/translations/qt_pl.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioOutput</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+374"/>
+ <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;Urządzenie dźwiękowe &lt;b&gt;%1&lt;/b&gt; nie działa.&lt;br/&gt;Przywracanie do &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</translation>
</message>
@@ -22,7 +22,7 @@
<context>
<name>CloseButton</name>
<message>
- <location filename="../src/gui/widgets/qtabbar.cpp" line="+2217"/>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/>
<source>Close Tab</source>
<translation>Zamknij kartę</translation>
</message>
@@ -80,7 +80,7 @@ Obsługa dźwięku i wideo została wyłączona</translation>
<context>
<name>Phonon::Gstreamer::MediaObject</name>
<message>
- <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+88"/>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/>
<source>Cannot start playback.
Check your Gstreamer installation and make sure you
@@ -96,24 +96,24 @@ zainstalowałeś libgstreamer-plugins-base.</translation>
<translation type="unfinished">Brak wymaganego kodeka. Aby odtworzyć zawartość musisz zainstalować poniższego kodeka: %0</translation>
</message>
<message>
- <location line="+653"/>
- <location line="+9"/>
+ <location line="+676"/>
+ <location line="+8"/>
<location line="+15"/>
- <location line="+7"/>
- <location line="+5"/>
- <location line="+20"/>
- <location line="+317"/>
+ <location line="+9"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+335"/>
<location line="+24"/>
<source>Could not open media source.</source>
<translation>Nie można otworzyć źródła mediów.</translation>
</message>
<message>
- <location line="-381"/>
+ <location line="-403"/>
<source>Invalid source type.</source>
<translation>Niepoprawny typ źródła.</translation>
</message>
<message>
- <location line="+355"/>
+ <location line="+377"/>
<source>Could not locate media source.</source>
<translation>Nie można znaleźć źródła mediów.</translation>
</message>
@@ -147,7 +147,7 @@ zainstalowałeś libgstreamer-plugins-base.</translation>
<context>
<name>Q3Accel</name>
<message>
- <location filename="../src/qt3support/other/q3accel.cpp" line="+451"/>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
<source>%1, %2 not defined</source>
<translation>%1, %2 nie określone</translation>
</message>
@@ -160,7 +160,7 @@ zainstalowałeś libgstreamer-plugins-base.</translation>
<context>
<name>Q3DataTable</name>
<message>
- <location filename="../src/qt3support/sql/q3datatable.cpp" line="+761"/>
+ <location filename="../src/qt3support/sql/q3datatable.cpp" line="+793"/>
<source>Delete</source>
<translation>Skasuj</translation>
</message>
@@ -188,7 +188,7 @@ zainstalowałeś libgstreamer-plugins-base.</translation>
<context>
<name>Q3FileDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+4500"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+4530"/>
<source>%1
File not found.
Check path and filename.</source>
@@ -205,7 +205,7 @@ Sprawdź ścieżkę i nazwę pliku.</translation>
<location line="-1928"/>
<location line="+49"/>
<location line="+2153"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+80"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
<source>All Files (*)</source>
<translation>Wszystkie pliki (*)</translation>
</message>
@@ -360,7 +360,7 @@ Sprawdź ścieżkę i nazwę pliku.</translation>
<message>
<location line="-1112"/>
<location line="+2100"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+307"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/>
<source>Open</source>
<translation>Otwórz</translation>
</message>
@@ -521,7 +521,7 @@ Sprawdź ścieżkę i nazwę pliku.</translation>
<context>
<name>Q3LocalFs</name>
<message>
- <location filename="../src/qt3support/network/q3localfs.cpp" line="+155"/>
+ <location filename="../src/qt3support/network/q3localfs.cpp" line="+185"/>
<source>Could not create directory
%1</source>
<translation>Nie można utworzyć katalogu
@@ -571,7 +571,7 @@ na
<context>
<name>Q3MainWindow</name>
<message>
- <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2023"/>
+ <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2053"/>
<source>Customize...</source>
<translation>Ustawienia użytkownika...</translation>
</message>
@@ -584,7 +584,7 @@ na
<context>
<name>Q3NetworkProtocol</name>
<message>
- <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+824"/>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
<source>Operation stopped by the user</source>
<translation>Operacja zatrzymana przez użytkownika</translation>
</message>
@@ -592,7 +592,7 @@ na
<context>
<name>Q3ProgressDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+194"/>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
<location line="+61"/>
<source>Cancel</source>
<translation>Anuluj</translation>
@@ -601,7 +601,7 @@ na
<context>
<name>Q3TabDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+617"/>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+647"/>
<source>Apply</source>
<translation>Zatwierdź</translation>
</message>
@@ -630,7 +630,7 @@ na
<context>
<name>Q3TextEdit</name>
<message>
- <location filename="../src/qt3support/text/q3textedit.cpp" line="+5411"/>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5441"/>
<source>Clear</source>
<translation>Wyczyść</translation>
</message>
@@ -669,7 +669,7 @@ na
<context>
<name>Q3TitleBar</name>
<message>
- <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+226"/>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+256"/>
<source>Close</source>
<translation>Zamknij okno</translation>
</message>
@@ -737,7 +737,7 @@ na
<context>
<name>Q3ToolBar</name>
<message>
- <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+662"/>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
<source>More...</source>
<translation>Więcej...</translation>
</message>
@@ -745,7 +745,7 @@ na
<context>
<name>Q3UrlOperator</name>
<message>
- <location filename="../src/qt3support/network/q3urloperator.cpp" line="+859"/>
+ <location filename="../src/qt3support/network/q3urloperator.cpp" line="+889"/>
<location line="+1"/>
<source>(unknown)</source>
<translation>(nieznany)</translation>
@@ -797,7 +797,7 @@ na
<context>
<name>Q3Wizard</name>
<message>
- <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+148"/>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+178"/>
<source>&lt; &amp;Back</source>
<translation>&lt; &amp;Wstecz</translation>
</message>
@@ -825,9 +825,9 @@ na
<context>
<name>QAbstractSocket</name>
<message>
- <location filename="../src/network/socket/qabstractsocket.cpp" line="+888"/>
- <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+588"/>
- <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+918"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+618"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+687"/>
<source>Connection refused</source>
<translation>Połączenie odrzucone</translation>
</message>
@@ -870,7 +870,7 @@ na
<context>
<name>QAbstractSpinBox</name>
<message>
- <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1171"/>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1201"/>
<source>Step &amp;down</source>
<translation>Krok w &amp;dół</translation>
</message>
@@ -888,7 +888,7 @@ na
<context>
<name>QApplication</name>
<message>
- <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+346"/>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
<source>Activate</source>
<translation>Uaktywnij</translation>
</message>
@@ -898,7 +898,7 @@ na
<translation>Uaktywnia główne okno programu</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.h" line="+322"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
<source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
<translation>Program &apos;%1&apos; wymaga do uruchomienia Qt %2, znaleziono Qt %3.</translation>
</message>
@@ -908,7 +908,7 @@ na
<translation>Niekompatybilność biblioteki Qt</translation>
</message>
<message>
- <location filename="../src/gui/kernel/qapplication.cpp" line="+2212"/>
+ <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>
@@ -940,7 +940,7 @@ na
<context>
<name>QCheckBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+87"/>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+117"/>
<source>Check</source>
<translation>Zaznacz</translation>
</message>
@@ -958,7 +958,7 @@ na
<context>
<name>QColorDialog</name>
<message>
- <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1465"/>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1499"/>
<source>&amp;Add to Custom Colors</source>
<translation>&amp;Dodaj do własnych kolorów</translation>
</message>
@@ -1016,13 +1016,13 @@ na
<context>
<name>QComboBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1741"/>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
<location line="+65"/>
<source>Open</source>
<translation>Otwórz</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+514"/>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
<source>False</source>
<translation>Fałsz</translation>
</message>
@@ -1065,7 +1065,7 @@ na
<translation type="obsolete">%1: nieznany błąd %2</translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+89"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
<source>%1: key is empty</source>
<comment>QSystemSemaphore</comment>
<translation>%1: klucz jest pusty</translation>
@@ -1086,12 +1086,12 @@ na
<context>
<name>QDB2Driver</name>
<message>
- <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1217"/>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
<source>Unable to connect</source>
<translation>Nie można nawiązać połączenia</translation>
</message>
<message>
- <location line="+263"/>
+ <location line="+303"/>
<source>Unable to commit transaction</source>
<translation>Nie można dokonać transakcji</translation>
</message>
@@ -1109,8 +1109,8 @@ na
<context>
<name>QDB2Result</name>
<message>
- <location line="-986"/>
- <location line="+242"/>
+ <location line="-1043"/>
+ <location line="+243"/>
<source>Unable to execute statement</source>
<translation>Nie można wykonać polecenia</translation>
</message>
@@ -1125,7 +1125,7 @@ na
<translation>Nie można powiązać zmiennej</translation>
</message>
<message>
- <location line="+91"/>
+ <location line="+92"/>
<source>Unable to fetch record %1</source>
<translation>Nie można pobrać rekordu %1</translation>
</message>
@@ -1143,7 +1143,7 @@ na
<context>
<name>QDateTimeEdit</name>
<message>
- <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2265"/>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
<source>am</source>
<translation>am</translation>
</message>
@@ -1166,7 +1166,7 @@ na
<context>
<name>QDial</name>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+921"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
<source>QDial</source>
<translation>QDial</translation>
</message>
@@ -1184,7 +1184,7 @@ na
<context>
<name>QDialog</name>
<message>
- <location filename="../src/gui/dialogs/qdialog.cpp" line="+567"/>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
<source>What&apos;s This?</source>
<translation>Co to jest?</translation>
</message>
@@ -1197,7 +1197,7 @@ na
<context>
<name>QDialogButtonBox</name>
<message>
- <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+578"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+608"/>
<source>Abort</source>
<translation>Przerwij</translation>
</message>
@@ -1267,7 +1267,7 @@ na
<translation>Ni&amp;e dla wszystkich</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1830"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
<location line="+464"/>
<location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="-41"/>
<source>OK</source>
@@ -1322,7 +1322,7 @@ na
<context>
<name>QDirModel</name>
<message>
- <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+435"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+465"/>
<source>Date Modified</source>
<translation>Data modyfikacji</translation>
</message>
@@ -1352,7 +1352,7 @@ na
<context>
<name>QDockWidget</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1209"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
<source>Close</source>
<translation>Zamknij</translation>
</message>
@@ -1383,7 +1383,7 @@ na
<context>
<name>QErrorMessage</name>
<message>
- <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+162"/>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+192"/>
<source>Debug Message:</source>
<translation>Komunikat dla programisty:</translation>
</message>
@@ -1411,13 +1411,18 @@ na
<context>
<name>QFile</name>
<message>
- <location filename="../src/corelib/io/qfile.cpp" line="+678"/>
- <location line="+130"/>
+ <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
+ <location line="+141"/>
<source>Destination file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+12"/>
+ <location line="-108"/>
+ <source>Cannot remove source file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+120"/>
<source>Cannot open %1 for input</source>
<translation type="unfinished"></translation>
</message>
@@ -1440,22 +1445,22 @@ na
<context>
<name>QFileDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1936"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+2013"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>%1 już istnieje.
Czy chcesz zamienić?</translation>
</message>
<message>
- <location line="+600"/>
+ <location line="+610"/>
<source>&apos;%1&apos; is write protected.
Do you want to delete it anyway?</source>
<translation>&apos;%1&apos; jest zabezpieczony przed zapisem.
Czy na pewno chcesz go skasować?</translation>
</message>
<message>
- <location line="-634"/>
- <location line="+851"/>
+ <location line="-644"/>
+ <location line="+862"/>
<source>%1
Directory not found.
Please verify the correct directory name was given.</source>
@@ -1464,7 +1469,7 @@ Katalog nie znaleziony.
Sprawdź podaną nazwę katalogu.</translation>
</message>
<message>
- <location line="-797"/>
+ <location line="-808"/>
<source>%1
File not found.
Please verify the correct file name was given.</source>
@@ -1473,12 +1478,12 @@ Plik nie znaleziony.
Proszę o sprawdzenie podanej nazwy pliku.</translation>
</message>
<message>
- <location line="+585"/>
+ <location line="+595"/>
<source>Are sure you want to delete &apos;%1&apos;?</source>
<translation>Czy na pewno chcesz skasować &apos;%1&apos;?</translation>
</message>
<message>
- <location line="+421"/>
+ <location line="+422"/>
<source>Recent Places</source>
<translation type="unfinished"></translation>
</message>
@@ -1489,12 +1494,12 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Powrót</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-406"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-407"/>
<source>Could not delete directory.</source>
<translation>Nie można skasować katalogu.</translation>
</message>
<message>
- <location line="-2057"/>
+ <location line="-2113"/>
<source>&amp;Delete</source>
<translation>&amp;Skasuj</translation>
</message>
@@ -1505,18 +1510,18 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Szczegóły</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+626"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+651"/>
<source>Directories</source>
<translation>Katalogi</translation>
</message>
<message>
- <location line="-619"/>
- <location line="+623"/>
+ <location line="-644"/>
+ <location line="+648"/>
<source>Directory:</source>
<translation>Katalog:</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+381"/>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+411"/>
<source>Drive</source>
<translation>Urządzenie</translation>
</message>
@@ -1546,7 +1551,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<message>
<location filename="../src/gui/dialogs/qfiledialog.cpp" line="-7"/>
<location line="+50"/>
- <location line="+1440"/>
+ <location line="+1471"/>
<location line="+75"/>
<source>&amp;Open</source>
<translation>&amp;Otwórz</translation>
@@ -1558,18 +1563,18 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Katalog wyżej</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2189"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2245"/>
<source>&amp;Rename</source>
<translation>&amp;Zmień nazwę</translation>
</message>
<message>
- <location line="+624"/>
+ <location line="+649"/>
<location line="+50"/>
<source>&amp;Save</source>
<translation>&amp;Zachowaj</translation>
</message>
<message>
- <location line="-672"/>
+ <location line="-697"/>
<source>Show &amp;hidden files</source>
<translation>Pokaż &amp;ukryte pliki</translation>
</message>
@@ -1594,7 +1599,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Znajdź katalog</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+130"/>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
<source>All Files (*.*)</source>
<translation>Wszystkie pliki (*.*)</translation>
</message>
@@ -1610,35 +1615,35 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Do przodu</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1914"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1970"/>
<source>New Folder</source>
<translation>Nowy katalog</translation>
</message>
<message>
- <location line="-1907"/>
+ <location line="-1963"/>
<source>&amp;New Folder</source>
<translation>&amp;Nowy katalog</translation>
</message>
<message>
- <location line="+631"/>
+ <location line="+656"/>
<location line="+38"/>
<source>&amp;Choose</source>
<translation>&amp;Wybierz</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qsidebar.cpp" line="+388"/>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/>
<source>Remove</source>
<translation>Usuń</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-686"/>
- <location line="+423"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-711"/>
+ <location line="+444"/>
<source>All Files (*)</source>
<translation>Wszystkie pliki (*)</translation>
</message>
<message>
- <location line="-399"/>
- <location line="+627"/>
+ <location line="-420"/>
+ <location line="+652"/>
<source>File &amp;name:</source>
<translation>Nazwa &amp;pliku:</translation>
</message>
@@ -1658,7 +1663,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QFileSystemModel</name>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+707"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+744"/>
<source>%1 TB</source>
<translation>%1 TB</translation>
</message>
@@ -1720,7 +1725,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Data modyfikacji</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+204"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/>
<source>My Computer</source>
<translation>Mój komputer</translation>
</message>
@@ -1733,7 +1738,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QFontDatabase</name>
<message>
- <location filename="../src/gui/text/qfontdatabase.cpp" line="+60"/>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
<location line="+1176"/>
<source>Normal</source>
<translation>Normalny</translation>
@@ -1952,7 +1957,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QFontDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+745"/>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+775"/>
<source>Effects</source>
<translation>Efekty</translation>
</message>
@@ -2001,8 +2006,8 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QFtp</name>
<message>
- <location filename="../src/network/access/qftp.cpp" line="+2300"/>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="+1994"/>
+ <location filename="../src/network/access/qftp.cpp" line="+2330"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+2024"/>
<source>Changing directory failed:
%1</source>
<translation>Zmiana katalogu zakończona błędem:
@@ -2147,7 +2152,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QHostInfo</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_p.h" line="+153"/>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
<source>Unknown error</source>
<translation>Nieznany błąd</translation>
</message>
@@ -2155,11 +2160,11 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QHostInfoAgent</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+148"/>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
<location line="+9"/>
<location line="+64"/>
<location line="+31"/>
- <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+150"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
<location line="+9"/>
<location line="+40"/>
<location line="+27"/>
@@ -2185,7 +2190,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QHttp</name>
<message>
- <location filename="../src/qt3support/network/q3http.cpp" line="+2279"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+2309"/>
<source>Connected to host</source>
<translation>Podłączony do hosta</translation>
</message>
@@ -2195,7 +2200,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Podłączony do hosta %1</translation>
</message>
<message>
- <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+1715"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+879"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+17"/>
<source>Connection closed</source>
<translation>Połączenie zakończone</translation>
@@ -2217,7 +2222,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Host %1 znaleziony</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="+2597"/>
+ <location filename="../src/network/access/qhttp.cpp" line="+2631"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
<location filename="../src/qt3support/network/q3http.cpp" line="-453"/>
<source>Host %1 not found</source>
@@ -2237,7 +2242,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Komenda HTTP zakończona błędem</translation>
</message>
<message>
- <location line="+193"/>
+ <location line="+198"/>
<location line="+48"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+109"/>
<location line="+47"/>
@@ -2245,7 +2250,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Niepoprawne ciało HTTP</translation>
</message>
<message>
- <location line="-168"/>
+ <location line="-173"/>
<location filename="../src/qt3support/network/q3http.cpp" line="-87"/>
<source>Invalid HTTP response header</source>
<translation>Niepoprawny nagłówek odpowiedzi HTTP</translation>
@@ -2257,38 +2262,43 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Brak serwera do podłączenia</translation>
</message>
<message>
- <location line="-575"/>
+ <location line="-579"/>
<location filename="../src/qt3support/network/q3http.cpp" line="-381"/>
<source>Request aborted</source>
<translation>Komenda przerwana</translation>
</message>
<message>
- <location line="+743"/>
+ <location line="+747"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+441"/>
<source>Server closed connection unexpectedly</source>
<translation>Serwer niespodziewanie zakończył połączenie</translation>
</message>
<message>
- <location line="-995"/>
- <location line="+816"/>
+ <location line="-999"/>
+ <location line="+820"/>
<location filename="../src/qt3support/network/q3http.cpp" line="-638"/>
<location line="+567"/>
<source>Unknown error</source>
<translation>Nieznany błąd</translation>
</message>
<message>
- <location line="-2025"/>
+ <location line="-2029"/>
<source>HTTPS connection requested but SSL support not compiled in</source>
<translation>Zażądano połączenia HTTPS lecz obsługa SSL nie jest wkompilowana</translation>
</message>
<message>
- <location line="+2200"/>
+ <location line="+2204"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+67"/>
<source>Wrong content length</source>
<translation>Błędna długość zawartości</translation>
</message>
<message>
- <location line="+188"/>
+ <location line="+183"/>
+ <source>Unknown authentication method</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
<source>Proxy authentication required</source>
<translation>Wymagana autoryzacja pośrednika</translation>
</message>
@@ -2328,7 +2338,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Nawiązanie sesji SSL nie powiodło się</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-302"/>
+ <location filename="../src/network/access/qhttp.cpp" line="-307"/>
<source>Connection refused (or timed out)</source>
<translation>Połączenie odrzucone (przekroczony czas połączenia)</translation>
</message>
@@ -2384,7 +2394,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QIBaseDriver</name>
<message>
- <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1432"/>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1482"/>
<source>Could not start transaction</source>
<translation>Nie można rozpocząć transakcji</translation>
</message>
@@ -2407,7 +2417,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QIBaseResult</name>
<message>
- <location line="-601"/>
+ <location line="-620"/>
<source>Could not allocate statement</source>
<translation>Nie można zaallokować polecenia</translation>
</message>
@@ -2469,17 +2479,17 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Nie można dokonać transakcji</translation>
</message>
<message>
- <location line="-443"/>
+ <location line="-444"/>
<source>Unable to create BLOB</source>
<translation>Nie można utworzyć obiektu typu BLOB</translation>
</message>
<message>
- <location line="+626"/>
+ <location line="+627"/>
<source>Unable to execute query</source>
<translation>Nie można wykonać zapytania</translation>
</message>
<message>
- <location line="-606"/>
+ <location line="-607"/>
<source>Unable to open BLOB</source>
<translation>Nie można otworzyć obiektu typu BLOB</translation>
</message>
@@ -2497,7 +2507,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QIODevice</name>
<message>
- <location filename="../src/corelib/global/qglobal.cpp" line="+1839"/>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+1878"/>
<source>No space left on device</source>
<translation>Brak wolnego miejsca na urządzeniu</translation>
</message>
@@ -2517,7 +2527,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Zbyt wiele otwartych plików</translation>
</message>
<message>
- <location filename="../src/corelib/io/qiodevice.cpp" line="+1506"/>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/>
<source>Unknown error</source>
<translation>Nieznany błąd</translation>
</message>
@@ -2525,7 +2535,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QInputContext</name>
<message>
- <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+243"/>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+273"/>
<source>Mac OS X input method</source>
<translation>Metoda wprowadzania Mac OS X</translation>
</message>
@@ -2548,7 +2558,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QInputDialog</name>
<message>
- <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+193"/>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
<source>Enter a value:</source>
<translation>Podaj wartość:</translation>
</message>
@@ -2556,7 +2566,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QLibrary</name>
<message>
- <location filename="../src/corelib/plugin/qlibrary.cpp" line="+348"/>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
<source>Could not mmap &apos;%1&apos;: %2</source>
<translation>Nie można wykonać przypisania &apos;%1&apos;: %2</translation>
</message>
@@ -2587,7 +2597,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
</message>
<message>
<location line="-377"/>
- <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+250"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
<source>The shared library was not found.</source>
<translation>Biblioteka współdzielona niedostępna.</translation>
</message>
@@ -2602,8 +2612,8 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Wtyczka &quot;%1&quot; używa innej wersji biblioteki Qt. (Nie można łączyć bibliotek zwykłych i debugowych.)</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+179"/>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+69"/>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
<source>Cannot load library %1: %2</source>
<translation>Nie można załadować biblioteki %1: %2</translation>
</message>
@@ -2623,7 +2633,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QLineEdit</name>
<message>
- <location filename="../src/gui/widgets/qlineedit.cpp" line="+2664"/>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+2695"/>
<source>&amp;Copy</source>
<translation>S&amp;kopiuj</translation>
</message>
@@ -2661,8 +2671,8 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QLocalServer</name>
<message>
- <location filename="../src/network/socket/qlocalserver.cpp" line="+196"/>
- <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+201"/>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/>
<source>%1: Name error</source>
<translation>%1: Błąd nazwy</translation>
</message>
@@ -2678,7 +2688,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
</message>
<message>
<location line="+5"/>
- <location filename="../src/network/socket/qlocalserver_win.cpp" line="+127"/>
+ <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/>
<source>%1: Unknown error %2</source>
<translation>%1: Nieznany błąd %2</translation>
</message>
@@ -2686,8 +2696,8 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QLocalSocket</name>
<message>
- <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+102"/>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+104"/>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/>
<source>%1: Connection refused</source>
<translation>%1: Odmowa połączenia</translation>
</message>
@@ -2700,7 +2710,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<message>
<location line="+3"/>
<location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
- <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+50"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/>
<location line="+43"/>
<source>%1: Invalid name</source>
<translation>%1: Niepoprawna nazwa</translation>
@@ -2757,7 +2767,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QMYSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1330"/>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1365"/>
<source>Unable to begin transaction</source>
<translation>Nie można rozpocząć transakcji</translation>
</message>
@@ -2767,7 +2777,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Nie można potwierdzić transakcji</translation>
</message>
<message>
- <location line="-140"/>
+ <location line="-144"/>
<source>Unable to connect</source>
<translation>Nie można nawiązać połączenia</translation>
</message>
@@ -2777,7 +2787,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Nie można otworzyć bazy danych &apos;</translation>
</message>
<message>
- <location line="+164"/>
+ <location line="+168"/>
<source>Unable to rollback transaction</source>
<translation>Nie można wycofać transakcji</translation>
</message>
@@ -2785,7 +2795,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QMYSQLResult</name>
<message>
- <location line="-392"/>
+ <location line="-396"/>
<location line="+21"/>
<source>Unable to bind outvalues</source>
<translation>Nie można powiązać wartości zewnętrznych</translation>
@@ -2796,22 +2806,22 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Nie można powiązać wartości</translation>
</message>
<message>
- <location line="-324"/>
+ <location line="-325"/>
<source>Unable to execute query</source>
<translation>Nie można wykonać zapytania</translation>
</message>
<message>
- <location line="+335"/>
+ <location line="+336"/>
<source>Unable to execute statement</source>
<translation>Nie można wykonać polecenia</translation>
</message>
<message>
- <location line="-511"/>
+ <location line="-512"/>
<source>Unable to fetch data</source>
<translation>Nie można pobrać danych</translation>
</message>
<message>
- <location line="+371"/>
+ <location line="+372"/>
<location line="+8"/>
<source>Unable to prepare statement</source>
<translation>Nie można przygotować polecenia</translation>
@@ -2822,12 +2832,12 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Nie można skasować polecenia</translation>
</message>
<message>
- <location line="-231"/>
+ <location line="-232"/>
<source>Unable to store result</source>
<translation>Nie można zachować wyników</translation>
</message>
<message>
- <location line="+352"/>
+ <location line="+353"/>
<source>Unable to store statement results</source>
<translation>Nie można zachować wyników polecenia</translation>
</message>
@@ -2845,7 +2855,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QMdiArea</name>
<message>
- <location filename="../src/gui/widgets/qmdiarea.cpp" line="+260"/>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
<source>(Untitled)</source>
<translation>(Nienazwany)</translation>
</message>
@@ -2853,7 +2863,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QMdiSubWindow</name>
<message>
- <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+250"/>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
<source>%1 - [%2]</source>
<translation>%1 - [%2]</translation>
</message>
@@ -2946,7 +2956,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QMenu</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+127"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
<location line="+225"/>
<source>Close</source>
<translation>Zamknij</translation>
@@ -2968,27 +2978,24 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QMessageBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-616"/>
<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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
- <translation>&lt;p&gt; Ten program używa Qt Open Source Edition w wersji %1.&lt;/p&gt;&lt;p&gt;Qt Open Source Edition jest przeznaczone do pisania aplikacji z otwartym kodem źródłowym. W przypadku aplikacji zamkniętych (bez kodu źródłowego) wymagana jest licencja komercyjna Qt.&lt;/p&gt;&lt;p&gt;Strona &lt;a href=&quot;http://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; opisuje sposób licencjonowania Qt.&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt; Ten program używa Qt Open Source Edition w wersji %1.&lt;/p&gt;&lt;p&gt;Qt Open Source Edition jest przeznaczone do pisania aplikacji z otwartym kodem źródłowym. W przypadku aplikacji zamkniętych (bez kodu źródłowego) wymagana jest licencja komercyjna Qt.&lt;/p&gt;&lt;p&gt;Strona &lt;a href=&quot;http://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; opisuje sposób licencjonowania Qt.&lt;/p&gt;</translation>
</message>
<message>
- <location line="-2"/>
<source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
- <translation>&lt;p&gt; Ten program używa Qt w wersji %1.&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt; Ten program używa Qt w wersji %1.&lt;/p&gt;</translation>
</message>
<message>
- <location line="-13"/>
<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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
- <translation>&lt;h3&gt;Informacje o Qt&lt;/h3&gt;%1&lt;p&gt;Qt jest biblioteką C++ do tworzenia przenośnego oprogramowania.&lt;/p&gt;&lt;p&gt;Qt umożliwia pisanie przenośnego kodu zarówno dla MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux jak i dla wszystkich głównych komercyjnych wariantów Unix&apos;ów. Qt jest również dostępne dla urządzeń specjalizowanych i przenośnych jako Qt dla Embedded Linux lub jako Qt dla Windows CE.&lt;/p&gt;&lt;p&gt;Producentem Qt jest Nokia. Więcej informacji na stronie &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt;.&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;h3&gt;Informacje o Qt&lt;/h3&gt;%1&lt;p&gt;Qt jest biblioteką C++ do tworzenia przenośnego oprogramowania.&lt;/p&gt;&lt;p&gt;Qt umożliwia pisanie przenośnego kodu zarówno dla MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux jak i dla wszystkich głównych komercyjnych wariantów Unix&apos;ów. Qt jest również dostępne dla urządzeń specjalizowanych i przenośnych jako Qt dla Embedded Linux lub jako Qt dla Windows CE.&lt;/p&gt;&lt;p&gt;Producentem Qt jest Nokia. Więcej informacji na stronie &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
- <location line="+28"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-603"/>
<source>About Qt</source>
<translation>Informacje o Qt</translation>
</message>
<message>
- <location line="-502"/>
+ <location line="-508"/>
<source>Help</source>
<translation>Pomoc</translation>
</message>
@@ -3006,7 +3013,12 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>OK</translation>
</message>
<message>
- <location line="-1096"/>
+ <location line="+475"/>
+ <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://www.qtsoftware.com/products/licensing&quot;&gt;www.qtsoftware.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://www.qtsoftware.com/qt/&quot;&gt;www.qtsoftware.com/qt&lt;/a&gt; for more information.&lt;/p&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="-1571"/>
<source>Show Details...</source>
<translation>Pokaż szczegóły...</translation>
</message>
@@ -3014,7 +3026,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QMultiInputContext</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+58"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
<source>Select IM</source>
<translation>Wybierz metodę wprowadzania</translation>
</message>
@@ -3022,7 +3034,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QMultiInputContextPlugin</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+65"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
<source>Multiple input method switcher</source>
<translation>Przełącznik metody wprowadzania</translation>
</message>
@@ -3035,7 +3047,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QNativeSocketEngine</name>
<message>
- <location filename="../src/network/socket/qnativesocketengine.cpp" line="+233"/>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+263"/>
<source>Another socket is already listening on the same port</source>
<translation>Inne gniazdo nasłuchuje już na tym porcie</translation>
</message>
@@ -3168,7 +3180,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QNetworkAccessCacheBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+35"/>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
<source>Error opening %1</source>
<translation>Błąd otwierania %1</translation>
</message>
@@ -3176,7 +3188,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QNetworkAccessFileBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+69"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/>
<source>Request for opening non-local file %1</source>
<translation>Żądanie otwarcia zdalnego pliku %1</translation>
</message>
@@ -3204,7 +3216,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QNetworkAccessFtpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+135"/>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/>
<source>No suitable proxy found</source>
<translation>Nie odnaleziono odpowiedniego pośrednika</translation>
</message>
@@ -3214,7 +3226,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Nie można otworzyć %1: jest to katalog</translation>
</message>
<message>
- <location line="+131"/>
+ <location line="+130"/>
<source>Logging in to %1 failed: authentication required</source>
<translation>Błąd podczas logowania do %1: wymagana autoryzacja</translation>
</message>
@@ -3232,7 +3244,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QNetworkAccessHttpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+565"/>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/>
<source>No suitable proxy found</source>
<translation>Nie odnaleziono odpowiedniego pośrednika</translation>
</message>
@@ -3245,7 +3257,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Błąd podczas pobierania %1 - odpowiedź serwera: %2</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+37"/>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/>
<source>Protocol &quot;%1&quot; is unknown</source>
<translation>Protokół &quot;%1&quot; nie jest znany</translation>
</message>
@@ -3253,7 +3265,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QNetworkReplyImpl</name>
<message>
- <location line="+422"/>
+ <location line="+432"/>
<location line="+22"/>
<source>Operation canceled</source>
<translation>Operacja anulowana</translation>
@@ -3262,7 +3274,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QOCIDriver</name>
<message>
- <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+1883"/>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+1925"/>
<source>Unable to initialize</source>
<comment>QOCIDriver</comment>
<translation>Nie można dokonać inicjalizacji</translation>
@@ -3291,7 +3303,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QOCIResult</name>
<message>
- <location line="-976"/>
+ <location line="-963"/>
<location line="+161"/>
<location line="+15"/>
<source>Unable to bind column for batch execute</source>
@@ -3318,18 +3330,16 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Nie można przygotować polecenia</translation>
</message>
<message>
- <location line="+29"/>
- <location line="+37"/>
+ <location line="+36"/>
<source>Unable to bind value</source>
<translation>Nie można powiązać wartości</translation>
</message>
<message>
- <location line="-20"/>
<source>Unable to execute select statement</source>
- <translation>Nie można wykonać polecenia select</translation>
+ <translation type="obsolete">Nie można wykonać polecenia select</translation>
</message>
<message>
- <location line="+32"/>
+ <location line="+19"/>
<source>Unable to execute statement</source>
<translation>Nie można wykonać polecenia</translation>
</message>
@@ -3337,12 +3347,12 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QODBCDriver</name>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1914"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+2050"/>
<source>Unable to commit transaction</source>
<translation>Nie można potwierdzić transakcji</translation>
</message>
<message>
- <location line="-257"/>
+ <location line="-265"/>
<source>Unable to connect</source>
<translation>Nie można nawiązać połączenia</translation>
</message>
@@ -3352,7 +3362,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Nie można nawiązać połączenia - sterownik nie obsługuje całej potrzebnej funkcjonalności</translation>
</message>
<message>
- <location line="+234"/>
+ <location line="+242"/>
<source>Unable to disable autocommit</source>
<translation>Nie można wyłączyć trybu automatycznego dokonywania transakcji</translation>
</message>
@@ -3370,24 +3380,24 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QODBCResult</name>
<message>
- <location line="-1189"/>
+ <location line="-1203"/>
<location line="+349"/>
<source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
<translation>QODBCResult::reset: Nie można ustawić &apos;SQL_CURSOR_STATIC&apos; jako atrybutu polecenia. Proszę sprawdzić konfiguracje sterownika ODBC</translation>
</message>
<message>
- <location line="+285"/>
+ <location line="+286"/>
<source>Unable to bind variable</source>
<translation>Nie można powiązać zmiennej</translation>
</message>
<message>
- <location line="-617"/>
- <location line="+625"/>
+ <location line="-618"/>
+ <location line="+626"/>
<source>Unable to execute statement</source>
<translation>Nie można wykonać polecenia</translation>
</message>
<message>
- <location line="-554"/>
+ <location line="-555"/>
<source>Unable to fetch next</source>
<translation>Nie można pobrać kolejnych danych</translation>
</message>
@@ -3399,12 +3409,12 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<message>
<location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/>
<location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-207"/>
- <location line="+577"/>
+ <location line="+578"/>
<source>Unable to fetch last</source>
<translation>Nie można pobrać ostatnich danych</translation>
</message>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-671"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
<source>Unable to fetch</source>
<translation>Nie można pobrać</translation>
</message>
@@ -3422,12 +3432,12 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QObject</name>
<message>
- <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+134"/>
+ <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
<source>Home</source>
<translation>Strona startowa</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+44"/>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
<source>Operation not supported on %1</source>
<translation>Operacja nieobsługiwana na %1</translation>
</message>
@@ -3437,7 +3447,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Niepoprawny URI: %1</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+145"/>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
<source>Write error writing to %1: %2</source>
<translation>Błąd w trakcie zapisywania do %1: %2</translation>
</message>
@@ -3462,7 +3472,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Błąd protokołu: otrzymano pakiet o zerowym rozmiarze</translation>
</message>
<message>
- <location filename="../src/network/kernel/qhostinfo.cpp" line="+147"/>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
<location line="+57"/>
<source>No host name given</source>
<translation>Nie podano nazwy hosta</translation>
@@ -3471,7 +3481,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QPPDOptionsModel</name>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1165"/>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/>
<source>Name</source>
<translation>Nazwa</translation>
</message>
@@ -3484,7 +3494,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QPSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+781"/>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+812"/>
<source>Could not begin transaction</source>
<translation>Nie można rozpocząć transakcji</translation>
</message>
@@ -3504,7 +3514,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>Nie można nawiązać połączenia</translation>
</message>
<message>
- <location line="+418"/>
+ <location line="+440"/>
<source>Unable to subscribe</source>
<translation>Nie można wykonać subskrypcji</translation>
</message>
@@ -3517,12 +3527,12 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QPSQLResult</name>
<message>
- <location line="-1035"/>
+ <location line="-1058"/>
<source>Unable to create query</source>
<translation>Nie można utworzyć zapytania</translation>
</message>
<message>
- <location line="+373"/>
+ <location line="+374"/>
<source>Unable to prepare statement</source>
<translation>Nie można przygotować wyrażenia</translation>
</message>
@@ -3530,7 +3540,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QPageSetupWidget</name>
<message>
- <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+274"/>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
<source>Centimeters (cm)</source>
<translation>Centymetry (cm)</translation>
</message>
@@ -3646,7 +3656,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<context>
<name>QPrintDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+299"/>
+ <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>
@@ -3696,7 +3706,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>A9 (37 x 52 mm)</translation>
</message>
<message>
- <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+91"/>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+121"/>
<location line="+225"/>
<source>Aliases: %1</source>
<translation>Aliasy: %1</translation>
@@ -3772,7 +3782,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>podłączony lokalnie</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+238"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -3828,7 +3838,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
<translation>US Common #10 Envelope (105 x 241 mm)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+80"/>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
<location line="+13"/>
<location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
<source>Print</source>
@@ -4075,7 +4085,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QPrintPreviewDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+222"/>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
@@ -4175,7 +4185,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+38"/>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
<location line="+12"/>
<source>Page Setup</source>
<translation>Ustawienia strony</translation>
@@ -4348,8 +4358,8 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QProcess</name>
<message>
- <location filename="../src/corelib/io/qprocess_unix.cpp" line="+445"/>
- <location filename="../src/corelib/io/qprocess_win.cpp" line="+117"/>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
<source>Could not open input redirection for reading</source>
<translation type="unfinished"></translation>
</message>
@@ -4378,7 +4388,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/io/qprocess.cpp" line="+503"/>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+533"/>
<location line="+52"/>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
<location line="+50"/>
@@ -4398,6 +4408,11 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+912"/>
+ <source>No program defined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
<source>Process failed to start</source>
<translation type="unfinished"></translation>
@@ -4406,7 +4421,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QProgressDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+152"/>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
<source>Cancel</source>
<translation>Anuluj</translation>
</message>
@@ -4430,7 +4445,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QRegExp</name>
<message>
- <location filename="../src/corelib/tools/qregexp.cpp" line="+36"/>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+66"/>
<source>bad char class syntax</source>
<translation>niepoprawna składnia klasy znakowej</translation>
</message>
@@ -4478,7 +4493,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QSQLite2Driver</name>
<message>
- <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+353"/>
+ <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
<source>Error to open database</source>
<translation>Nie można otworzyć bazy danych</translation>
</message>
@@ -4501,12 +4516,12 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QSQLite2Result</name>
<message>
- <location line="-171"/>
+ <location line="-176"/>
<source>Unable to execute statement</source>
<translation>Nie można wykonać polecenia</translation>
</message>
<message>
- <location line="-139"/>
+ <location line="-147"/>
<source>Unable to fetch results</source>
<translation>Nie można pobrać wyników</translation>
</message>
@@ -4514,7 +4529,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QSQLiteDriver</name>
<message>
- <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+509"/>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+539"/>
<source>Error closing database</source>
<translation>Błąd zamykania bazy danych</translation>
</message>
@@ -4577,12 +4592,12 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QScrollBar</name>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="+424"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+451"/>
<source>Bottom</source>
<translation>W dół</translation>
</message>
<message>
- <location line="-2"/>
+ <location line="-1"/>
<source>Left edge</source>
<translation>Lewa krawędź</translation>
</message>
@@ -4597,23 +4612,23 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Linia w górę</translation>
</message>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="+7"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+4"/>
<location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+6"/>
<source>Page down</source>
<translation>Strona w dół</translation>
</message>
<message>
- <location line="-2"/>
+ <location line="-1"/>
<source>Page left</source>
<translation>Strona w lewo</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Page right</source>
<translation>Strona w prawo</translation>
</message>
<message>
- <location line="-2"/>
+ <location line="-1"/>
<location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-4"/>
<source>Page up</source>
<translation>Strona do góry</translation>
@@ -4624,37 +4639,37 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Pozycja</translation>
</message>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="-3"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="-2"/>
<source>Right edge</source>
<translation>Prawa krawędź</translation>
</message>
<message>
- <location line="+10"/>
+ <location line="+6"/>
<source>Scroll down</source>
<translation>Przewiń w dół</translation>
</message>
<message>
- <location line="-15"/>
+ <location line="-9"/>
<source>Scroll here</source>
<translation>Przewiń tutaj</translation>
</message>
<message>
- <location line="+13"/>
+ <location line="+8"/>
<source>Scroll left</source>
<translation>Przewiń w lewo</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Scroll right</source>
<translation>Przewiń w prawo</translation>
</message>
<message>
- <location line="-2"/>
+ <location line="-1"/>
<source>Scroll up</source>
<translation>Przewiń do góry</translation>
</message>
<message>
- <location line="-10"/>
+ <location line="-6"/>
<source>Top</source>
<translation>Do góry</translation>
</message>
@@ -4662,13 +4677,13 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QSharedMemory</name>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+258"/>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+288"/>
<source>%1: create size is less then 0</source>
<translation>%1: rozmiar przy tworzeniu mniejszy od 0</translation>
</message>
<message>
<location line="+168"/>
- <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+118"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
<source>%1: unable to lock</source>
<translation>%1: nie można zablokować</translation>
</message>
@@ -4678,8 +4693,8 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>%1: nie można odblokować</translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+48"/>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+57"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
<source>%1: permission denied</source>
<translation>%1: brak dostępu</translation>
</message>
@@ -4762,7 +4777,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QShortcut</name>
<message>
- <location filename="../src/gui/kernel/qkeysequence.cpp" line="+1061"/>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+1091"/>
<source>+</source>
<translation>+</translation>
</message>
@@ -5343,7 +5358,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QSql</name>
<message>
- <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+880"/>
+ <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+910"/>
<source>Cancel</source>
<translation>Anuluj</translation>
</message>
@@ -5400,7 +5415,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QSslSocket</name>
<message>
- <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+539"/>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+569"/>
<source>Unable to write data: %1</source>
<translation>Nie można zapisać danych: %1</translation>
</message>
@@ -5459,7 +5474,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<name>QSystemSemaphore</name>
<message>
<location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+36"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
<source>%1: out of resources</source>
<translation>%1: zasoby wyczerpane</translation>
</message>
@@ -5489,7 +5504,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QTDSDriver</name>
<message>
- <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+552"/>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
<source>Unable to open connection</source>
<translation>Nie można otworzyć połączenia</translation>
</message>
@@ -5515,7 +5530,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QTcpServer</name>
<message>
- <location filename="../src/network/socket/qtcpserver.cpp" line="+252"/>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
<source>Operation on socket is not supported</source>
<translation>Operacja na gnieździe nieobsługiwana</translation>
</message>
@@ -5523,7 +5538,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QTextControl</name>
<message>
- <location filename="../src/gui/text/qtextcontrol.cpp" line="+1953"/>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+1984"/>
<source>&amp;Copy</source>
<translation>S&amp;kopiuj</translation>
</message>
@@ -5581,7 +5596,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QUdpSocket</name>
<message>
- <location filename="../src/network/socket/qudpsocket.cpp" line="+139"/>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
<source>This platform does not support IPv6</source>
<translation>Ta platforma nie obsługuje IPv6</translation>
</message>
@@ -5589,7 +5604,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QUndoGroup</name>
<message>
- <location filename="../src/gui/util/qundogroup.cpp" line="+384"/>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+414"/>
<source>Redo</source>
<translation>Przywróć</translation>
</message>
@@ -5602,7 +5617,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QUndoModel</name>
<message>
- <location filename="../src/gui/util/qundoview.cpp" line="+71"/>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
<source>&lt;empty&gt;</source>
<translation>&lt;pusty&gt;</translation>
</message>
@@ -5610,7 +5625,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QUndoStack</name>
<message>
- <location filename="../src/gui/util/qundostack.cpp" line="+831"/>
+ <location filename="../src/gui/util/qundostack.cpp" line="+861"/>
<source>Redo</source>
<translation>Przywróć</translation>
</message>
@@ -5681,7 +5696,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QWebFrame</name>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+686"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
<source>Request cancelled</source>
<translation>Prośba anulowana</translation>
</message>
@@ -6093,7 +6108,7 @@ Proszę wybrać inną nazwę pliku.</translation>
</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1342"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
<source>JavaScript Alert - %1</source>
<translation type="unfinished"></translation>
</message>
@@ -6169,6 +6184,11 @@ Proszę wybrać inną nazwę pliku.</translation>
</message>
<message>
<location line="+3"/>
+ <source>Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
<source>Select to the next character</source>
<translation type="unfinished"></translation>
</message>
@@ -6237,11 +6257,21 @@ Proszę wybrać inną nazwę pliku.</translation>
<source>Delete to the end of the word</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+33"/>
+ <source>Insert a new paragraph</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QWhatsThisAction</name>
<message>
- <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+492"/>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
<source>What&apos;s This?</source>
<translation>Co to jest?</translation>
</message>
@@ -6249,7 +6279,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5290"/>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/>
<source>*</source>
<translation>*</translation>
</message>
@@ -6257,7 +6287,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QWizard</name>
<message>
- <location filename="../src/gui/dialogs/qwizard.cpp" line="+605"/>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/>
<source>Go Back</source>
<translation>Wróć</translation>
</message>
@@ -6319,7 +6349,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QWorkspace</name>
<message>
- <location filename="../src/gui/widgets/qworkspace.cpp" line="+1862"/>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1892"/>
<location line="+60"/>
<source>%1 - [%2]</source>
<translation>%1 - [%2]</translation>
@@ -6389,7 +6419,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QXml</name>
<message>
- <location filename="../src/xml/sax/qxml.cpp" line="+39"/>
+ <location filename="../src/xml/sax/qxml.cpp" line="+69"/>
<source>encoding declaration or standalone declaration expected while reading the XML declaration</source>
<translation>oczekiwano deklaracji &quot;encoding&quot; lub &quot;standalone&quot; podczas odczytywania deklaracji XML</translation>
</message>
@@ -6507,8 +6537,8 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QXmlStream</name>
<message>
- <location filename="../src/corelib/xml/qxmlstream.cpp" line="+562"/>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1739"/>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/>
<source>Extra content at end of document.</source>
<translation>Dodatkowa treść na końcu dokumentu.</translation>
</message>
@@ -6692,12 +6722,12 @@ Proszę wybrać inną nazwę pliku.</translation>
<context>
<name>QtXmlPatterns</name>
<message>
- <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+54"/>
+ <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
<source>Network timeout.</source>
<translation>Przekroczony czas połączenia.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+290"/>
+ <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+320"/>
<source>Element %1 can&apos;t be serialized because it appears outside the document element.</source>
<translation>Element %1 nie może być zserializowany ponieważ pojawił się poza elementem &quot;document&quot;.</translation>
</message>
@@ -6707,7 +6737,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Atrybut %1 nie może być zserializowany ponieważ pojawił się na najwyższym poziomie.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+50"/>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
<source>Year %1 is invalid because it begins with %2.</source>
<translation>Rok %1 jest niepoprawny ponieważ rozpoczyna się: %2.</translation>
</message>
@@ -6747,7 +6777,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Przepełnienie: Data nie może być wyrażona.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+69"/>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/>
<location line="+15"/>
<source>At least one component must be present.</source>
<translation>Przynajmniej jeden komponent musi być obecny.</translation>
@@ -6758,22 +6788,22 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Przynajmniej jeden komponent musi wystąpić po nawiasie %1.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+34"/>
+ <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
<source>No operand in an integer division, %1, can be %2.</source>
<translation>Żaden składnik dzielenia %1 nie może być %2.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+102"/>
+ <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/>
<source>%1 is not a valid value of type %2.</source>
<translation>%1 nie jest poprawną wartością dla typu %2.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+193"/>
+ <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+223"/>
<source>When casting to %1 from %2, the source value cannot be %3.</source>
<translation>W rzutowaniu %1 na %2 wartość źródłowa nie może być %3.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+171"/>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+201"/>
<location line="+32"/>
<source>Dividing a value of type %1 by %2 (not-a-number) is not allowed.</source>
<translation>Dzielenie wartości typu %1 przez %2 (typ nienumeryczny) jest niedozwolone.</translation>
@@ -6789,17 +6819,17 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Mnożenie wartości typu %1 przez %2 lub %3 (plus lub minus nieskończoność) jest niedozwolone.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+49"/>
+ <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/>
<source>A value of type %1 cannot have an Effective Boolean Value.</source>
<translation>Wartość typu %1 nie może posiadać efektywnej wartości boolowskiej (EBV).</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+48"/>
+ <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/>
<source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source>
<translation>Efektywna wartość boolowska (EBV) nie może być obliczona dla sekwencji zawierającej dwie lub więcej wartości atomowe.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+372"/>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
<source>Value %1 of type %2 exceeds maximum (%3).</source>
<translation>Wartość %1 typu %2 przekracza maksimum (%3).</translation>
</message>
@@ -6809,7 +6839,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Wartość %1 typu %2 jest poniżej minimum (%3).</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+61"/>
+ <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/>
<source>A value of type %1 must contain an even number of digits. The value %2 does not.</source>
<translation>Wartość typu %1 musi zawierać parzystą liczbę cyfr. Wartość %2 nie zawiera.</translation>
</message>
@@ -6819,7 +6849,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Wartość %1 nie jest poprawna jako wartość typu %2.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+177"/>
+ <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
<source>Operator %1 cannot be used on type %2.</source>
<translation>Operator %1 nie może być użyty dla typu %2.</translation>
</message>
@@ -6829,7 +6859,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Operator %1 nie może być użyty dla atomowych wartości typu %2 i %3.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+36"/>
+ <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+66"/>
<source>The namespace URI in the name for a computed attribute cannot be %1.</source>
<translation>Przestrzeń nazw URI nie może być %1 w nazwie dla obliczonego atrybutu.</translation>
</message>
@@ -6839,7 +6869,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Nazwa dla wyliczonego atrybutu nie może mieć przestrzeni nazw URI %1 z lokalną nazwą %2.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
<source>Type error in cast, expected %1, received %2.</source>
<translation>Błąd typów w rzutowaniu: spodziewano się %1, otrzymano %2.</translation>
</message>
@@ -6849,7 +6879,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Podczas rzutowania na %1 lub na typ pochodny, wartość źródłowa musi być tego samego typu lub musi być zapisem tekstowym. Typ %2 nie jest dozwolony.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+119"/>
+ <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+149"/>
<source>It is not possible to cast from %1 to %2.</source>
<translation>Nie można zrzutować %1 na %2.</translation>
</message>
@@ -6869,7 +6899,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Błąd podczas rzutowania %1 na %2: %3</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+37"/>
+ <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
<source>A comment cannot contain %1</source>
<translation>Komentarz nie może zawierać %1</translation>
</message>
@@ -6879,7 +6909,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Komentarz nie może kończyć się: %1.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+137"/>
+ <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
<source>No comparisons can be done involving the type %1.</source>
<translation>Żadne porównania nie mogą być wykonane dla typu %1.</translation>
</message>
@@ -6889,12 +6919,12 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Operator %1 jest niedostępny pomiędzy atomowymi wartościami %2 i %3.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+56"/>
+ <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+86"/>
<source>An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place.</source>
<translation>Węzeł &quot;attribute&quot; nie może być dzieckiem węzła &quot;document&quot;. Dlatego atrybut %1 jest w złym miejscu.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+139"/>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
<source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
<translation>Moduł biblioteki nie może być bezpośrednio oceniony. On musi być zaimportowany z głównego modułu.</translation>
</message>
@@ -6904,7 +6934,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Szablon o nazwie %1 nie istnieje.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+76"/>
+ <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+106"/>
<source>A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type.</source>
<translation>Wartość typu %1 nie może być predykatem. Predykat musi być typu liczbowego lub Efektywną Wartość Logiczną.</translation>
</message>
@@ -6914,38 +6944,38 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Wynikiem predykatu pozycyjnego musi być pojedyńcza wartość liczbowa.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+107"/>
+ <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+137"/>
<source>%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3.</source>
<translation>%1 nie jest poprawną nazwą docelową w instrukcji przetwarzania. Nazwa musi być wartością %2, np. %3.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+79"/>
+ <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+109"/>
<source>The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two.</source>
<translation>Ostatni krok w ścieżce musi zawierać albo wezły albo wartości atomowe. Nie może zawierać obu jednocześnie.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+54"/>
+ <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/>
<source>The data of a processing instruction cannot contain the string %1</source>
<translation>Dane instrukcji przetwarzania nie mogą zawierać ciągu %1</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+52"/>
+ <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+82"/>
<source>No namespace binding exists for the prefix %1</source>
<translation>Żadna przestrzeń nazw nie jest powiązana z przedrostkiem %1</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+126"/>
+ <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+156"/>
<source>No namespace binding exists for the prefix %1 in %2</source>
<translation>Żadna przestrzeń nazw nie jest powiązana z przedrostkiem %1 w %2</translation>
</message>
<message>
<location line="+12"/>
- <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+39"/>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
<source>%1 is an invalid %2</source>
<translation>%1 jest niepoprawnym %2</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+90"/>
+ <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/>
<source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source>
<translation>Pierwszy argument w %1 nie może być typu %2. Musi on być typu liczbowego: xs:yearMonthDuration lub xs:dayTimeDuration.</translation>
</message>
@@ -6960,27 +6990,27 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Drugi argument w %1 nie może być typu %2. Musi on być typu: %3, %4 lub %5.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/>
<source>%1 is not a valid XML 1.0 character.</source>
<translation>%1 nie jest poprawnym znakiem XML 1.0.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+167"/>
+ <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
<source>The first argument to %1 cannot be of type %2.</source>
<translation>Pierwszy argument dla %1 nie może być typu %2.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+56"/>
+ <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+86"/>
<source>If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same.</source>
<translation>Jeśli oba argumenty mają przesunięcia strefowe, muszą one być takie same. %1 i %2 nie są takie same.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+31"/>
+ <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
<source>%1 was called.</source>
<translation>Wywołano %1.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+64"/>
+ <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+94"/>
<source>%1 must be followed by %2 or %3, not at the end of the replacement string.</source>
<translation>Po %1 musi następowac %2 lub %3, lecz nie na końcu zastępczego ciągu.</translation>
</message>
@@ -6995,7 +7025,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>W zastępczym ciągu %1 może być użyte tylko do zabezpieczenia samej siebie lub %2, nigdy %3</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+62"/>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
<source>%1 matches newline characters</source>
<translation>%1 dopasowało znak nowej linii</translation>
</message>
@@ -7030,12 +7060,12 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Jeśli pierwszy argument jest pustą sekwencją lub zerowej długości ciągiem (przy braku przestrzeni nazw), przedrostek nie może wystąpić. Wystąpił przedrostek %1.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+317"/>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/>
<source>It will not be possible to retrieve %1.</source>
<translation>Nie będzie można odzyskać %1.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+249"/>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
<source>The default collection is undefined</source>
<translation>Domyślna kolekcja jest niezdefiniowana</translation>
</message>
@@ -7045,27 +7075,27 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>%1 nie może być odzyskane</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+222"/>
+ <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+252"/>
<source>The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization).</source>
<translation>Znormalizowana forma %1 nie jest obsługiwana. Obsługiwanymi formami są: %2, %3, %4 i %5 oraz pusta forma (brak normalizacji).</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+57"/>
+ <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+87"/>
<source>A zone offset must be in the range %1..%2 inclusive. %3 is out of range.</source>
<translation>Przesunięcie strefowe musi być w zakresie %1..%2 włącznie. %3 jest poza tym zakresem.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+28"/>
+ <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+58"/>
<source>Required cardinality is %1; got cardinality %2.</source>
<translation>Wymagana liczność wynosi %1; otrzymano %2.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+37"/>
+ <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/>
<source>The item %1 did not match the required type %2.</source>
<translation>Element %1 nie został dopasowany do wymaganego typu %2.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+319"/>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/>
<location line="+7253"/>
<source>%1 is an unknown schema type.</source>
<translation>%1 jest nieznanym typem schematu.</translation>
@@ -7081,7 +7111,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Inicjalizacja zmiennej %1 zależy od niej samej</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+63"/>
+ <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
<source>The variable %1 is unused</source>
<translation>Zmienna %1 jest nieużywana</translation>
</message>
@@ -7355,7 +7385,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Nazwa dodatkowego wyrażenia musi znajdować sie w przestrzeni nazw.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+25"/>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
<source>empty</source>
<translation>pusty</translation>
</message>
@@ -7380,7 +7410,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>zero lub więcej</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+33"/>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
<source>Required type is %1, but %2 was found.</source>
<translation>Odnaleziono typ %2, lecz wymaganym typem jest %1.</translation>
</message>
@@ -7395,7 +7425,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Focus jest niezdefiniowany.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+56"/>
+ <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+86"/>
<source>It&apos;s not possible to add attributes after any other kind of node.</source>
<translation>Dodanie atrybutu poza węzłami nie jest możliwe.</translation>
</message>
@@ -7405,12 +7435,12 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Atrybut o nazwie %1 został już utworzony.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+90"/>
+ <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/>
<source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source>
<translation>Obsługiwane jest jedynie &quot;Unicode Codepoint Collation&quot; (%1), %2 nie jest obsługiwane.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+175"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
<source>An %1-attribute with value %2 has already been declared.</source>
<translation>Atrybut %1 o wartości %2 został już zadeklarowany.</translation>
</message>
@@ -7455,7 +7485,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Docelowa nazwa w instrukcji przetwarzania nie może być %1 w żadnej kombinacji wielkich i małych liter. Dlatego nazwa %2 jest niepoprawna.</translation>
</message>
<message numerus="yes">
- <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+47"/>
+ <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/>
<source>%1 takes at most %n argument(s). %2 is therefore invalid.</source>
<translation>
<numerusform>%1 przyjmuje co najwyżej %n argument. %2 jest dlatego niepoprawne.</numerusform>
@@ -7473,7 +7503,7 @@ Proszę wybrać inną nazwę pliku.</translation>
</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+24"/>
+ <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+54"/>
<source>The root node of the second argument to function %1 must be a document node. %2 is not a document node.</source>
<translation>Głównym węzłem drugiego argumentu w funkcji %1 musi być węzeł &quot;document&quot;. %2 nie jest węzłem &quot;document&quot;.</translation>
</message>
@@ -7504,7 +7534,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Importy modułów muszą pojawić się przed deklaracjami funkcji, zmiennych i opcji.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+284"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
<source>%1 is an unsupported encoding.</source>
<translation>Nieobsługiwane kodowanie %1.</translation>
</message>
@@ -7519,14 +7549,18 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+89"/>
+ <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
<source>Ambiguous rule match.</source>
<translation>Dopasowano niejednoznaczną regułę.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+39"/>
<source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source>
- <translation>W konstruktorze przestrzeni nazw wartość przestrzeni nazw nie może być pustym ciągiem.</translation>
+ <translation type="obsolete">W konstruktorze przestrzeni nazw wartość przestrzeni nazw nie może być pustym ciągiem.</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"/>
@@ -7544,12 +7578,12 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Tylko przedrostek %1 może być powiązany z %2 i vice versa.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+87"/>
+ <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
<source>Circularity detected</source>
<translation>Wykryto cykl</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+115"/>
+ <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/>
<source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
<translation>Wymagany jest parametr %1 lecz żaden odpowiadający mu %2 nie został dostarczony.</translation>
</message>
@@ -7559,12 +7593,12 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Przekazany jest parametr %1 lecz żaden odpowiadający mu %2 nie istnieje.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+35"/>
+ <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+65"/>
<source>The URI cannot have a fragment</source>
<translation>URI nie może posiadać fragmentu</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+489"/>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
<source>Element %1 is not allowed at this location.</source>
<translation>Element %1 jest niedozwolony w tym miejscu.</translation>
</message>
@@ -7619,7 +7653,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Przynajmniej jeden tryb musi być określony w atrybucie %1 elementu %2.</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+153"/>
+ <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>W elemencie %2 nie może wystąpić atrybut %1. Wystąpić mogą jedynie standardowe atrybuty.</translation>
</message>
@@ -7694,7 +7728,7 @@ Proszę wybrać inną nazwę pliku.</translation>
<translation>Element %1 nie może posiadać potomków.</translation>
</message>
<message>
- <location line="+432"/>
+ <location line="+434"/>
<source>Element %1 cannot have a sequence constructor.</source>
<translation>Element %1 nie może posiadać sekwencyjnego konstruktora.</translation>
</message>
diff --git a/translations/qt_pt.ts b/translations/qt_pt.ts
index c04456a..b00aaa0 100644
--- a/translations/qt_pt.ts
+++ b/translations/qt_pt.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioOutput</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+374"/>
+ <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/>
<source>&lt;html&gt;The audio playback device &lt;b&gt;%1&lt;/b&gt; does not work.&lt;br/&gt;Falling back to &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -22,7 +22,7 @@
<context>
<name>CloseButton</name>
<message>
- <location filename="../src/gui/widgets/qtabbar.cpp" line="+2217"/>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/>
<source>Close Tab</source>
<translation type="unfinished"></translation>
</message>
@@ -89,7 +89,7 @@
<context>
<name>Phonon::Gstreamer::MediaObject</name>
<message>
- <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+88"/>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/>
<source>Cannot start playback.
Check your Gstreamer installation and make sure you
@@ -102,24 +102,24 @@ have libgstreamer-plugins-base installed.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+653"/>
- <location line="+9"/>
+ <location line="+676"/>
+ <location line="+8"/>
<location line="+15"/>
- <location line="+7"/>
- <location line="+5"/>
- <location line="+20"/>
- <location line="+317"/>
+ <location line="+9"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+335"/>
<location line="+24"/>
<source>Could not open media source.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-381"/>
+ <location line="-403"/>
<source>Invalid source type.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+355"/>
+ <location line="+377"/>
<source>Could not locate media source.</source>
<translation type="unfinished"></translation>
</message>
@@ -153,7 +153,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3Accel</name>
<message>
- <location filename="../src/qt3support/other/q3accel.cpp" line="+451"/>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
<source>%1, %2 not defined</source>
<translation>%1, %2 indefinido</translation>
</message>
@@ -166,7 +166,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3DataTable</name>
<message>
- <location filename="../src/qt3support/sql/q3datatable.cpp" line="+253"/>
+ <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
<source>True</source>
<translation>Verdadeiro</translation>
</message>
@@ -194,7 +194,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3FileDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+834"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+864"/>
<source>Copy or Move a File</source>
<translation>Copiar ou Mover um Ficheiro</translation>
</message>
@@ -219,7 +219,7 @@ have libgstreamer-plugins-base installed.</source>
<location line="-157"/>
<location line="+49"/>
<location line="+2153"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+80"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
<source>All Files (*)</source>
<translation>Todos os Ficheiros (*)</translation>
</message>
@@ -359,7 +359,7 @@ have libgstreamer-plugins-base installed.</source>
<message>
<location line="+704"/>
<location line="+2100"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+307"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/>
<source>Open</source>
<translation>Abrir</translation>
</message>
@@ -527,7 +527,7 @@ Verifique a localização e o nome.</translation>
<context>
<name>Q3LocalFs</name>
<message>
- <location filename="../src/qt3support/network/q3localfs.cpp" line="+100"/>
+ <location filename="../src/qt3support/network/q3localfs.cpp" line="+130"/>
<location line="+10"/>
<source>Could not read directory
%1</source>
@@ -577,7 +577,7 @@ para
<context>
<name>Q3MainWindow</name>
<message>
- <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2021"/>
+ <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
<source>Line up</source>
<translation>Alinhar</translation>
</message>
@@ -590,7 +590,7 @@ para
<context>
<name>Q3NetworkProtocol</name>
<message>
- <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+824"/>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
<source>Operation stopped by the user</source>
<translation>Operação interrompida pelo utilizador</translation>
</message>
@@ -598,7 +598,7 @@ para
<context>
<name>Q3ProgressDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+194"/>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
<location line="+61"/>
<source>Cancel</source>
<translation>Cancelar</translation>
@@ -607,7 +607,7 @@ para
<context>
<name>Q3TabDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+159"/>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/>
<location line="+814"/>
<source>OK</source>
<translation>OK</translation>
@@ -636,7 +636,7 @@ para
<context>
<name>Q3TextEdit</name>
<message>
- <location filename="../src/qt3support/text/q3textedit.cpp" line="+5399"/>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
<source>&amp;Undo</source>
<translation>&amp;Desfazer</translation>
</message>
@@ -675,7 +675,7 @@ para
<context>
<name>Q3TitleBar</name>
<message>
- <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+216"/>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
<source>System</source>
<translation>Sistema</translation>
</message>
@@ -743,7 +743,7 @@ para
<context>
<name>Q3ToolBar</name>
<message>
- <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+662"/>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
<source>More...</source>
<translation>Mais...</translation>
</message>
@@ -751,7 +751,7 @@ para
<context>
<name>Q3UrlOperator</name>
<message>
- <location filename="../src/qt3support/network/q3urloperator.cpp" line="+356"/>
+ <location filename="../src/qt3support/network/q3urloperator.cpp" line="+386"/>
<location line="+260"/>
<location line="+4"/>
<source>The protocol `%1&apos; is not supported</source>
@@ -803,7 +803,7 @@ para
<context>
<name>Q3Wizard</name>
<message>
- <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+147"/>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
<source>&amp;Cancel</source>
<translation>&amp;Cancelar</translation>
</message>
@@ -831,9 +831,9 @@ para
<context>
<name>QAbstractSocket</name>
<message>
- <location filename="../src/network/socket/qabstractsocket.cpp" line="+838"/>
- <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+585"/>
- <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+627"/>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
<location line="+26"/>
<source>Host not found</source>
<translation>Máquina desconhecida</translation>
@@ -876,7 +876,7 @@ para
<context>
<name>QAbstractSpinBox</name>
<message>
- <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1169"/>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/>
<source>&amp;Step up</source>
<translation>&amp;Passo acima</translation>
</message>
@@ -894,12 +894,12 @@ para
<context>
<name>QApplication</name>
<message>
- <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+346"/>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
<source>Activate</source>
<translation>Activar</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.h" line="+322"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
<source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
<translation>O executável &apos;%1&apos; requere Qt %2, Qt %3 encontrado.</translation>
</message>
@@ -909,7 +909,7 @@ para
<translation>Erro de Incompatibilidade da Biblioteca Qt</translation>
</message>
<message>
- <location filename="../src/gui/kernel/qapplication.cpp" line="+2212"/>
+ <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>
@@ -946,7 +946,7 @@ para
<context>
<name>QCheckBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+84"/>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/>
<source>Uncheck</source>
<translation>Desactivar</translation>
</message>
@@ -964,7 +964,7 @@ para
<context>
<name>QColorDialog</name>
<message>
- <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1219"/>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/>
<source>Hu&amp;e:</source>
<translation>C&amp;or:</translation>
</message>
@@ -1038,13 +1038,13 @@ para
<context>
<name>QComboBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1741"/>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
<location line="+65"/>
<source>Open</source>
<translation>Abrir</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+514"/>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
<source>False</source>
<translation type="unfinished">Falso</translation>
</message>
@@ -1062,7 +1062,7 @@ para
<context>
<name>QCoreApplication</name>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+89"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
<source>%1: key is empty</source>
<comment>QSystemSemaphore</comment>
<translation type="unfinished"></translation>
@@ -1083,12 +1083,12 @@ para
<context>
<name>QDB2Driver</name>
<message>
- <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1217"/>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
<source>Unable to connect</source>
<translation>Ligação não possível</translation>
</message>
<message>
- <location line="+263"/>
+ <location line="+303"/>
<source>Unable to commit transaction</source>
<translation>Finalização de transacção não possível</translation>
</message>
@@ -1106,8 +1106,8 @@ para
<context>
<name>QDB2Result</name>
<message>
- <location line="-986"/>
- <location line="+242"/>
+ <location line="-1043"/>
+ <location line="+243"/>
<source>Unable to execute statement</source>
<translation>Execução não possível</translation>
</message>
@@ -1122,7 +1122,7 @@ para
<translation>Ligação de variável não possível</translation>
</message>
<message>
- <location line="+91"/>
+ <location line="+92"/>
<source>Unable to fetch record %1</source>
<translation>Obtenção do registo %1 não possível</translation>
</message>
@@ -1140,7 +1140,7 @@ para
<context>
<name>QDateTimeEdit</name>
<message>
- <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2265"/>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
<source>AM</source>
<translation>AM</translation>
</message>
@@ -1163,7 +1163,7 @@ para
<context>
<name>QDial</name>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+921"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
<source>QDial</source>
<translation type="unfinished"></translation>
</message>
@@ -1181,7 +1181,7 @@ para
<context>
<name>QDialog</name>
<message>
- <location filename="../src/gui/dialogs/qdialog.cpp" line="+567"/>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
<source>What&apos;s This?</source>
<translation>O Que é Isto?</translation>
</message>
@@ -1194,9 +1194,9 @@ para
<context>
<name>QDialogButtonBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1830"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
<location line="+464"/>
- <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+531"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -1319,7 +1319,7 @@ para
<context>
<name>QDirModel</name>
<message>
- <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+423"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/>
<source>Name</source>
<translation>Nome</translation>
</message>
@@ -1349,7 +1349,7 @@ para
<context>
<name>QDockWidget</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1209"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
<source>Close</source>
<translation type="unfinished">Fechar</translation>
</message>
@@ -1380,7 +1380,7 @@ para
<context>
<name>QErrorMessage</name>
<message>
- <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+162"/>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+192"/>
<source>Debug Message:</source>
<translation>Mensagem Depuração:</translation>
</message>
@@ -1408,13 +1408,18 @@ para
<context>
<name>QFile</name>
<message>
- <location filename="../src/corelib/io/qfile.cpp" line="+678"/>
- <location line="+130"/>
+ <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
+ <location line="+141"/>
<source>Destination file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+12"/>
+ <location line="-108"/>
+ <source>Cannot remove source file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+120"/>
<source>Cannot open %1 for input</source>
<translation type="unfinished"></translation>
</message>
@@ -1437,37 +1442,37 @@ para
<context>
<name>QFileDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+484"/>
- <location line="+423"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+515"/>
+ <location line="+444"/>
<source>All Files (*)</source>
<translation>Todos os Ficheiros (*)</translation>
</message>
<message>
- <location line="+218"/>
+ <location line="+222"/>
<source>Directories</source>
<translation>Pastas</translation>
</message>
<message>
<location line="-3"/>
<location line="+50"/>
- <location line="+1440"/>
+ <location line="+1471"/>
<location line="+75"/>
<source>&amp;Open</source>
<translation>&amp;Abrir</translation>
</message>
<message>
- <location line="-1565"/>
+ <location line="-1596"/>
<location line="+50"/>
<source>&amp;Save</source>
<translation>&amp;Gravar</translation>
</message>
<message>
- <location line="-705"/>
+ <location line="-730"/>
<source>Open</source>
<translation>Abrir</translation>
</message>
<message>
- <location line="+1469"/>
+ <location line="+1515"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>%1 já existe.
@@ -1488,7 +1493,7 @@ Por favor verifique o nome do ficheiro.</translation>
<translation>O Meu Computador</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1458"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1504"/>
<source>&amp;Rename</source>
<translation>&amp;Mudar o Nome</translation>
</message>
@@ -1534,7 +1539,7 @@ Por favor verifique o nome do ficheiro.</translation>
</message>
<message>
<location filename="../src/gui/dialogs/qfiledialog.cpp" line="+6"/>
- <location line="+623"/>
+ <location line="+648"/>
<source>Directory:</source>
<translation>Pasta:</translation>
</message>
@@ -1547,8 +1552,8 @@ Ficheiro não encontrado.
Por favor verifique o nome do ficheiro</translation>
</message>
<message>
- <location line="+773"/>
- <location line="+851"/>
+ <location line="+794"/>
+ <location line="+862"/>
<source>%1
Directory not found.
Please verify the correct directory name was given.</source>
@@ -1557,7 +1562,7 @@ Pasta não encontrada.
Por favor verifique o nome da pasta.</translation>
</message>
<message>
- <location line="-217"/>
+ <location line="-218"/>
<source>&apos;%1&apos; is write protected.
Do you want to delete it anyway?</source>
<translation>&apos;%1&apos; está protegido contra escrita.
@@ -1574,22 +1579,22 @@ Deseja apagar de qualquer forma?</translation>
<translation>Não foi possível apagar a pasta.</translation>
</message>
<message>
- <location line="+406"/>
+ <location line="+407"/>
<source>Recent Places</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+130"/>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
<source>All Files (*.*)</source>
<translation>Todos os Ficheiros (*.*)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2493"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2550"/>
<source>Save As</source>
<translation>Gravar Como</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+381"/>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+411"/>
<source>Drive</source>
<translation>Unidade</translation>
</message>
@@ -1621,29 +1626,29 @@ Deseja apagar de qualquer forma?</translation>
<translation type="unfinished">Seguinte</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1914"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1970"/>
<source>New Folder</source>
<translation type="unfinished">Nova Pasta</translation>
</message>
<message>
- <location line="-1907"/>
+ <location line="-1963"/>
<source>&amp;New Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+631"/>
+ <location line="+656"/>
<location line="+38"/>
<source>&amp;Choose</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qsidebar.cpp" line="+388"/>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-662"/>
- <location line="+627"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-687"/>
+ <location line="+652"/>
<source>File &amp;name:</source>
<translation type="unfinished">&amp;Nome do Ficheiro:</translation>
</message>
@@ -1663,7 +1668,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QFileSystemModel</name>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+707"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+744"/>
<source>%1 TB</source>
<translation type="unfinished"></translation>
</message>
@@ -1725,7 +1730,7 @@ Deseja apagar de qualquer forma?</translation>
<translation type="unfinished">Data de Modificação</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+204"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/>
<source>My Computer</source>
<translation type="unfinished">O Meu Computador</translation>
</message>
@@ -1738,7 +1743,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QFontDatabase</name>
<message>
- <location filename="../src/gui/text/qfontdatabase.cpp" line="+60"/>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
<location line="+1176"/>
<source>Normal</source>
<translation type="unfinished"></translation>
@@ -1955,7 +1960,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QFontDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+742"/>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/>
<source>&amp;Font</source>
<translation>&amp;Tipo de Letra</translation>
</message>
@@ -2004,8 +2009,8 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QFtp</name>
<message>
- <location filename="../src/network/access/qftp.cpp" line="+796"/>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="+653"/>
+ <location filename="../src/network/access/qftp.cpp" line="+826"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+683"/>
<source>Not connected</source>
<translation>Desligado</translation>
</message>
@@ -2150,7 +2155,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QHostInfo</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_p.h" line="+153"/>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
<source>Unknown error</source>
<translation>Erro desconhecido</translation>
</message>
@@ -2158,11 +2163,11 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QHostInfoAgent</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+148"/>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
<location line="+9"/>
<location line="+64"/>
<location line="+31"/>
- <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+150"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
<location line="+9"/>
<location line="+40"/>
<location line="+27"/>
@@ -2188,26 +2193,26 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QHttp</name>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="+335"/>
+ <location filename="../src/network/access/qhttp.cpp" line="+365"/>
<source>HTTPS connection requested but SSL support not compiled in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1209"/>
- <location line="+816"/>
- <location filename="../src/qt3support/network/q3http.cpp" line="+1130"/>
+ <location line="+820"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+1160"/>
<location line="+567"/>
<source>Unknown error</source>
<translation>Erro desconhecido</translation>
</message>
<message>
- <location line="-564"/>
+ <location line="-568"/>
<location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
<source>Request aborted</source>
<translation>Pedido abortado</translation>
</message>
<message>
- <location line="+575"/>
+ <location line="+579"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
<source>No server set to connect to</source>
<translation>Nenhum servidor para ligar</translation>
@@ -2225,18 +2230,23 @@ Deseja apagar de qualquer forma?</translation>
<translation>O servidor fechou a ligação inesperadamente</translation>
</message>
<message>
- <location line="+357"/>
+ <location line="+179"/>
+ <source>Unknown authentication method</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+183"/>
<source>Error writing response to device</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+1712"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+876"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+38"/>
<source>Connection refused</source>
<translation>Ligação recusada</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-299"/>
+ <location filename="../src/network/access/qhttp.cpp" line="-304"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
<source>Host %1 not found</source>
@@ -2257,7 +2267,7 @@ Deseja apagar de qualquer forma?</translation>
<translation>Cabeçalho de resposta HTTP inválido</translation>
</message>
<message>
- <location line="+120"/>
+ <location line="+125"/>
<location line="+48"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
<location line="+47"/>
@@ -2306,7 +2316,7 @@ Deseja apagar de qualquer forma?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-133"/>
+ <location line="-138"/>
<source>Connection refused (or timed out)</source>
<translation type="unfinished"></translation>
</message>
@@ -2387,7 +2397,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QIBaseDriver</name>
<message>
- <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1378"/>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1428"/>
<source>Error opening database</source>
<translation>Erro ao abrir a base de dados</translation>
</message>
@@ -2410,7 +2420,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QIBaseResult</name>
<message>
- <location line="-1077"/>
+ <location line="-1097"/>
<source>Unable to create BLOB</source>
<translation>Não foi possível criar o BLOB</translation>
</message>
@@ -2430,7 +2440,7 @@ Deseja apagar de qualquer forma?</translation>
<translation>Não foi possível ler o BLOB</translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<location line="+189"/>
<source>Could not find array</source>
<translation>Não foi possível encontrar o array</translation>
@@ -2500,7 +2510,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QIODevice</name>
<message>
- <location filename="../src/corelib/global/qglobal.cpp" line="+1830"/>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/>
<source>Permission denied</source>
<translation>Permissão negada</translation>
</message>
@@ -2520,7 +2530,7 @@ Deseja apagar de qualquer forma?</translation>
<translation>Dispositivo sem espaço livre</translation>
</message>
<message>
- <location filename="../src/corelib/io/qiodevice.cpp" line="+1506"/>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/>
<source>Unknown error</source>
<translation>Erro desconhecido</translation>
</message>
@@ -2528,7 +2538,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QInputContext</name>
<message>
- <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+212"/>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/>
<source>XIM</source>
<translation>XIM</translation>
</message>
@@ -2551,7 +2561,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QInputDialog</name>
<message>
- <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+193"/>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
<source>Enter a value:</source>
<translation type="unfinished"></translation>
</message>
@@ -2571,7 +2581,7 @@ Deseja apagar de qualquer forma?</translation>
<translation type="obsolete">QLibrary::resolve_sys: Símbolo &quot;%1&quot; indefinido em %2 (%3)</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary.cpp" line="+348"/>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
<source>Could not mmap &apos;%1&apos;: %2</source>
<translation>Não foi possivel mapear &apos;%1&apos;: %2</translation>
</message>
@@ -2602,7 +2612,7 @@ Deseja apagar de qualquer forma?</translation>
</message>
<message>
<location line="-377"/>
- <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+250"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
<source>The shared library was not found.</source>
<translation type="unfinished"></translation>
</message>
@@ -2617,8 +2627,8 @@ Deseja apagar de qualquer forma?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+179"/>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+69"/>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
<source>Cannot load library %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2638,7 +2648,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QLineEdit</name>
<message>
- <location filename="../src/gui/widgets/qlineedit.cpp" line="+2649"/>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+2680"/>
<source>&amp;Undo</source>
<translation>&amp;Desfazer</translation>
</message>
@@ -2676,8 +2686,8 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QLocalServer</name>
<message>
- <location filename="../src/network/socket/qlocalserver.cpp" line="+196"/>
- <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+201"/>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/>
<source>%1: Name error</source>
<translation type="unfinished"></translation>
</message>
@@ -2693,7 +2703,7 @@ Deseja apagar de qualquer forma?</translation>
</message>
<message>
<location line="+5"/>
- <location filename="../src/network/socket/qlocalserver_win.cpp" line="+127"/>
+ <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/>
<source>%1: Unknown error %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2701,8 +2711,8 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QLocalSocket</name>
<message>
- <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+102"/>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+104"/>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/>
<source>%1: Connection refused</source>
<translation type="unfinished"></translation>
</message>
@@ -2715,7 +2725,7 @@ Deseja apagar de qualquer forma?</translation>
<message>
<location line="+3"/>
<location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
- <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+50"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/>
<location line="+43"/>
<source>%1: Invalid name</source>
<translation type="unfinished"></translation>
@@ -2772,7 +2782,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QMYSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1200"/>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1231"/>
<source>Unable to open database &apos;</source>
<translation>Não foi possível abrir a base de dados &apos;</translation>
</message>
@@ -2782,7 +2792,7 @@ Deseja apagar de qualquer forma?</translation>
<translation>Não foi possível estabelecer a ligação</translation>
</message>
<message>
- <location line="+123"/>
+ <location line="+127"/>
<source>Unable to begin transaction</source>
<translation>Não foi possível iniciar a transacção</translation>
</message>
@@ -2800,7 +2810,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QMYSQLResult</name>
<message>
- <location line="-917"/>
+ <location line="-922"/>
<source>Unable to fetch data</source>
<translation>Não foi possível obter dados</translation>
</message>
@@ -2815,7 +2825,7 @@ Deseja apagar de qualquer forma?</translation>
<translation>Não foi possível guardar o resultado</translation>
</message>
<message>
- <location line="+189"/>
+ <location line="+190"/>
<location line="+8"/>
<source>Unable to prepare statement</source>
<translation>Não foi possível preparar a expressão</translation>
@@ -2860,7 +2870,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QMdiArea</name>
<message>
- <location filename="../src/gui/widgets/qmdiarea.cpp" line="+260"/>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
<source>(Untitled)</source>
<translation type="unfinished"></translation>
</message>
@@ -2868,7 +2878,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QMdiSubWindow</name>
<message>
- <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+250"/>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
<source>%1 - [%2]</source>
<translation type="unfinished">%1 - [%2]</translation>
</message>
@@ -2961,7 +2971,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QMenu</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+127"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
<location line="+225"/>
<source>Close</source>
<translation>Fechar</translation>
@@ -3034,7 +3044,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QMessageBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1105"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1111"/>
<source>Help</source>
<translation>Ajuda</translation>
</message>
@@ -3047,21 +3057,20 @@ Deseja apagar de qualquer forma?</translation>
<translation>OK</translation>
</message>
<message>
- <location line="+503"/>
+ <location line="+509"/>
<source>About Qt</source>
<translation>Acerca do Qt</translation>
</message>
<message>
- <location line="-15"/>
<source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Este programa usa Qt versão %1.&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Este programa usa Qt versão %1.&lt;/p&gt;</translation>
</message>
<message>
<source>&lt;h3&gt;About Qt&lt;/h3&gt;%1&lt;p&gt;Qt is a C++ toolkit for cross-platform application development.&lt;/p&gt;&lt;p&gt;Qt provides single-source portability across MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt is a Trolltech product. See &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
<translation type="obsolete">&lt;h3&gt;Acerca do Qt&lt;/h3&gt;%1&lt;p&gt;Qt é um conjunto de ferramentas para desenvolvimento de aplicações multiplataforma.&lt;/p&gt;O Qt oferece portabilidade de código fonte único em MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux e todas as principais variantes comerciais de Unix. O Qt está igualmente disponível para dispositivos embebidos como Qtopia Core.&lt;/p&gt;&lt;p&gt;O Qt é um produto Trolltech. Veja &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; para mais informação.&lt;/p&gt;</translation>
</message>
<message>
- <location line="-1584"/>
+ <location line="-1605"/>
<source>Show Details...</source>
<translation>Mostrar Detalhes...</translation>
</message>
@@ -3072,19 +3081,18 @@ Deseja apagar de qualquer forma?</translation>
</message>
<message>
<location line="+1570"/>
- <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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
+ <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://www.qtsoftware.com/products/licensing&quot;&gt;www.qtsoftware.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://www.qtsoftware.com/qt/&quot;&gt;www.qtsoftware.com/qt&lt;/a&gt; for more information.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+15"/>
<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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Este programa usa Qt Open Source Edition versão %1.&lt;/p&gt;&lt;p&gt;Qt Open Source Edition é indicado para o desenvolvimento de aplicações/programas open source. Se pretender desenvolver aplicações sem disponibilizar o codigo fonte, então precisará de obter uma licença comercial.&lt;/p&gt;&lt;p&gt;Por favor consulte &lt;a href=&quot;http://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt;para obter mais informação acerca de licenças Qt.&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Este programa usa Qt Open Source Edition versão %1.&lt;/p&gt;&lt;p&gt;Qt Open Source Edition é indicado para o desenvolvimento de aplicações/programas open source. Se pretender desenvolver aplicações sem disponibilizar o codigo fonte, então precisará de obter uma licença comercial.&lt;/p&gt;&lt;p&gt;Por favor consulte &lt;a href=&quot;http://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt;para obter mais informação acerca de licenças Qt.&lt;/p&gt;</translation>
</message>
</context>
<context>
<name>QMultiInputContext</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+58"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
<source>Select IM</source>
<translation>Seleccione Método de Entrada</translation>
</message>
@@ -3092,7 +3100,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QMultiInputContextPlugin</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+65"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
<source>Multiple input method switcher</source>
<translation>Seleccionador de método de entrada</translation>
</message>
@@ -3105,7 +3113,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QNativeSocketEngine</name>
<message>
- <location filename="../src/network/socket/qnativesocketengine.cpp" line="+176"/>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/>
<source>The remote host closed the connection</source>
<translation>A máquina remota fechou a ligação</translation>
</message>
@@ -3238,7 +3246,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QNetworkAccessCacheBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+35"/>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
<source>Error opening %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3246,7 +3254,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QNetworkAccessFileBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+69"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/>
<source>Request for opening non-local file %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3274,7 +3282,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QNetworkAccessFtpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+135"/>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3284,7 +3292,7 @@ Deseja apagar de qualquer forma?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+131"/>
+ <location line="+130"/>
<source>Logging in to %1 failed: authentication required</source>
<translation type="unfinished"></translation>
</message>
@@ -3302,7 +3310,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QNetworkAccessHttpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+565"/>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3315,7 +3323,7 @@ Deseja apagar de qualquer forma?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+37"/>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/>
<source>Protocol &quot;%1&quot; is unknown</source>
<translation type="unfinished"></translation>
</message>
@@ -3323,7 +3331,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QNetworkReplyImpl</name>
<message>
- <location line="+422"/>
+ <location line="+432"/>
<location line="+22"/>
<source>Operation canceled</source>
<translation type="unfinished"></translation>
@@ -3332,7 +3340,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QOCIDriver</name>
<message>
- <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2027"/>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2069"/>
<source>Unable to logon</source>
<translation>Não foi possível autenticar</translation>
</message>
@@ -3361,7 +3369,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QOCIResult</name>
<message>
- <location line="-976"/>
+ <location line="-963"/>
<location line="+161"/>
<location line="+15"/>
<source>Unable to bind column for batch execute</source>
@@ -3388,18 +3396,16 @@ Deseja apagar de qualquer forma?</translation>
<translation>Não foi possível preparar a expressão</translation>
</message>
<message>
- <location line="+29"/>
- <location line="+37"/>
+ <location line="+36"/>
<source>Unable to bind value</source>
<translation>Não foi possível fazer o ligamento do valor</translation>
</message>
<message>
- <location line="-20"/>
<source>Unable to execute select statement</source>
- <translation>Não foi possível executar a expressão select</translation>
+ <translation type="obsolete">Não foi possível executar a expressão select</translation>
</message>
<message>
- <location line="+32"/>
+ <location line="+19"/>
<source>Unable to execute statement</source>
<translation>Não foi possível executar a expressão</translation>
</message>
@@ -3407,7 +3413,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QODBCDriver</name>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1657"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1785"/>
<source>Unable to connect</source>
<translation>Não foi possível ligar</translation>
</message>
@@ -3417,7 +3423,7 @@ Deseja apagar de qualquer forma?</translation>
<translation>Não foi possível ligar - O &apos;driver&apos; não suporta todas as funcionalidades necessárias</translation>
</message>
<message>
- <location line="+234"/>
+ <location line="+242"/>
<source>Unable to disable autocommit</source>
<translation>Não foi possível desactivar finalização automática</translation>
</message>
@@ -3440,19 +3446,19 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QODBCResult</name>
<message>
- <location line="-1204"/>
+ <location line="-1218"/>
<location line="+349"/>
<source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
<translation>QODBCResult::reset: Não foi possível definir &apos;SQL_CURSOR_STATIC&apos; como atributo da expressão. Por favor verifique a configuração do seu &apos;driver&apos; ODBC</translation>
</message>
<message>
<location line="-332"/>
- <location line="+625"/>
+ <location line="+626"/>
<source>Unable to execute statement</source>
<translation>Não foi possível executar a expressão</translation>
</message>
<message>
- <location line="-554"/>
+ <location line="-555"/>
<source>Unable to fetch next</source>
<translation>Não foi possível obter o seguinte</translation>
</message>
@@ -3462,19 +3468,19 @@ Deseja apagar de qualquer forma?</translation>
<translation>Não foi possível preparar a expressão</translation>
</message>
<message>
- <location line="+267"/>
+ <location line="+268"/>
<source>Unable to bind variable</source>
<translation>Não foi possível fazer o ligamento da variável</translation>
</message>
<message>
<location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-474"/>
- <location line="+577"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-475"/>
+ <location line="+578"/>
<source>Unable to fetch last</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-671"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
<source>Unable to fetch</source>
<translation type="unfinished"></translation>
</message>
@@ -3492,12 +3498,12 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QObject</name>
<message>
- <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+134"/>
+ <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
<source>Home</source>
<translation>Início</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+44"/>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
<source>Operation not supported on %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3507,7 +3513,7 @@ Deseja apagar de qualquer forma?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+145"/>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
<source>Write error writing to %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -3532,7 +3538,7 @@ Deseja apagar de qualquer forma?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/kernel/qhostinfo.cpp" line="+147"/>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
<location line="+57"/>
<source>No host name given</source>
<translation type="unfinished"></translation>
@@ -3541,7 +3547,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QPPDOptionsModel</name>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1165"/>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/>
<source>Name</source>
<translation type="unfinished">Nome</translation>
</message>
@@ -3554,7 +3560,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QPSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+732"/>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/>
<source>Unable to connect</source>
<translation>Não foi possível ligar</translation>
</message>
@@ -3574,7 +3580,7 @@ Deseja apagar de qualquer forma?</translation>
<translation>Não foi possível anular a transacção</translation>
</message>
<message>
- <location line="+336"/>
+ <location line="+358"/>
<source>Unable to subscribe</source>
<translation type="unfinished"></translation>
</message>
@@ -3587,12 +3593,12 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QPSQLResult</name>
<message>
- <location line="-1035"/>
+ <location line="-1058"/>
<source>Unable to create query</source>
<translation>Não foi possível criar a &apos;query&apos;</translation>
</message>
<message>
- <location line="+373"/>
+ <location line="+374"/>
<source>Unable to prepare statement</source>
<translation type="unfinished"></translation>
</message>
@@ -3600,7 +3606,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QPageSetupWidget</name>
<message>
- <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+274"/>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
<source>Centimeters (cm)</source>
<translation type="unfinished"></translation>
</message>
@@ -3716,7 +3722,7 @@ Deseja apagar de qualquer forma?</translation>
<context>
<name>QPrintDialog</name>
<message>
- <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+68"/>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/>
<source>locally connected</source>
<translation>ligado localmente</translation>
</message>
@@ -3741,7 +3747,7 @@ Deseja apagar de qualquer forma?</translation>
<translation type="obsolete">Paisagem</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+299"/>
+ <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>
@@ -3891,7 +3897,7 @@ Deseja apagar de qualquer forma?</translation>
<translation>Envelope #10 Comum EUA (105 x 241 mm)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+238"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -3912,7 +3918,7 @@ Deseja apagar de qualquer forma?</translation>
<translation type="obsolete">Fonte papel:</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+80"/>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
<location line="+13"/>
<location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
<source>Print</source>
@@ -4244,13 +4250,13 @@ Please choose a different file name.</source>
<context>
<name>QPrintPreviewDialog</name>
<message>
- <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+38"/>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
<location line="+12"/>
<source>Page Setup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+222"/>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/>
<source>%1%</source>
<translation type="unfinished"></translation>
</message>
@@ -4532,8 +4538,8 @@ Please choose a different file name.</source>
<context>
<name>QProcess</name>
<message>
- <location filename="../src/corelib/io/qprocess_unix.cpp" line="+445"/>
- <location filename="../src/corelib/io/qprocess_win.cpp" line="+117"/>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
<source>Could not open input redirection for reading</source>
<translation type="unfinished"></translation>
</message>
@@ -4562,7 +4568,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/io/qprocess.cpp" line="+503"/>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+533"/>
<location line="+52"/>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
<location line="+50"/>
@@ -4582,6 +4588,11 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+912"/>
+ <source>No program defined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
<source>Process failed to start</source>
<translation type="unfinished"></translation>
@@ -4590,7 +4601,7 @@ Please choose a different file name.</source>
<context>
<name>QProgressDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+152"/>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
<source>Cancel</source>
<translation>Cancelar</translation>
</message>
@@ -4614,7 +4625,7 @@ Please choose a different file name.</source>
<context>
<name>QRegExp</name>
<message>
- <location filename="../src/corelib/tools/qregexp.cpp" line="+34"/>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/>
<source>no error occurred</source>
<translation>sem erros</translation>
</message>
@@ -4662,7 +4673,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Driver</name>
<message>
- <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+353"/>
+ <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
<source>Error to open database</source>
<translation>Erro ao abrir base de dados</translation>
</message>
@@ -4685,12 +4696,12 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Result</name>
<message>
- <location line="-310"/>
+ <location line="-323"/>
<source>Unable to fetch results</source>
<translation>Não foi possível obter os resultados</translation>
</message>
<message>
- <location line="+139"/>
+ <location line="+147"/>
<source>Unable to execute statement</source>
<translation>Não foi possível executar a expressão</translation>
</message>
@@ -4698,7 +4709,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLiteDriver</name>
<message>
- <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+498"/>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/>
<source>Error opening database</source>
<translation>Erro ao abrir a base de dados</translation>
</message>
@@ -4765,12 +4776,12 @@ Please choose a different file name.</source>
<context>
<name>QScrollBar</name>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="+419"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/>
<source>Scroll here</source>
<translation>Deslizar aqui</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Left edge</source>
<translation>Borda esquerda</translation>
</message>
@@ -4780,7 +4791,7 @@ Please choose a different file name.</source>
<translation>Topo</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Right edge</source>
<translation>Borda direita</translation>
</message>
@@ -4790,7 +4801,7 @@ Please choose a different file name.</source>
<translation>Fundo</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Page left</source>
<translation>Página para esquerda</translation>
</message>
@@ -4801,7 +4812,7 @@ Please choose a different file name.</source>
<translation>Página para cima</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Page right</source>
<translation>Página para direita</translation>
</message>
@@ -4812,7 +4823,7 @@ Please choose a different file name.</source>
<translation>Página para baixo</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Scroll left</source>
<translation>Deslizar para esquerda</translation>
</message>
@@ -4822,7 +4833,7 @@ Please choose a different file name.</source>
<translation>Deslizar para cima</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Scroll right</source>
<translation>Deslizar para a direita</translation>
</message>
@@ -4850,7 +4861,7 @@ Please choose a different file name.</source>
<context>
<name>QSharedMemory</name>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+177"/>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+207"/>
<source>%1: unable to set key on lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4861,7 +4872,7 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+168"/>
- <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+118"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
<source>%1: unable to lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4871,8 +4882,8 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+48"/>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+57"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
<source>%1: permission denied</source>
<translation type="unfinished"></translation>
</message>
@@ -4950,7 +4961,7 @@ Please choose a different file name.</source>
<context>
<name>QShortcut</name>
<message>
- <location filename="../src/gui/kernel/qkeysequence.cpp" line="+343"/>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/>
<source>Space</source>
<translation>Space</translation>
</message>
@@ -5535,7 +5546,7 @@ Please choose a different file name.</source>
<context>
<name>QSql</name>
<message>
- <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+860"/>
+ <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
<source>Delete</source>
<translation>Apagar</translation>
</message>
@@ -5592,7 +5603,7 @@ Please choose a different file name.</source>
<context>
<name>QSslSocket</name>
<message>
- <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+539"/>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+569"/>
<source>Unable to write data: %1</source>
<translation type="unfinished"></translation>
</message>
@@ -5651,7 +5662,7 @@ Please choose a different file name.</source>
<name>QSystemSemaphore</name>
<message>
<location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+36"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
<source>%1: out of resources</source>
<translation type="unfinished"></translation>
</message>
@@ -5681,7 +5692,7 @@ Please choose a different file name.</source>
<context>
<name>QTDSDriver</name>
<message>
- <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+552"/>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
<source>Unable to open connection</source>
<translation>Não foi possível estabelecer a ligação</translation>
</message>
@@ -5711,7 +5722,7 @@ Please choose a different file name.</source>
<translation type="obsolete">Operação de &apos;socket&apos; não suportada</translation>
</message>
<message>
- <location filename="../src/network/socket/qtcpserver.cpp" line="+252"/>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
<source>Operation on socket is not supported</source>
<translation type="unfinished"></translation>
</message>
@@ -5719,7 +5730,7 @@ Please choose a different file name.</source>
<context>
<name>QTextControl</name>
<message>
- <location filename="../src/gui/text/qtextcontrol.cpp" line="+1942"/>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/>
<source>&amp;Undo</source>
<translation>&amp;Desfazer</translation>
</message>
@@ -5777,7 +5788,7 @@ Please choose a different file name.</source>
<context>
<name>QUdpSocket</name>
<message>
- <location filename="../src/network/socket/qudpsocket.cpp" line="+139"/>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
<source>This platform does not support IPv6</source>
<translation>Esta plataforma não suporta IPv6</translation>
</message>
@@ -5785,7 +5796,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoGroup</name>
<message>
- <location filename="../src/gui/util/qundogroup.cpp" line="+356"/>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+386"/>
<source>Undo</source>
<translation>Desfazer</translation>
</message>
@@ -5798,7 +5809,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoModel</name>
<message>
- <location filename="../src/gui/util/qundoview.cpp" line="+71"/>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
<source>&lt;empty&gt;</source>
<translation>&lt;vazio&gt;</translation>
</message>
@@ -5806,7 +5817,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoStack</name>
<message>
- <location filename="../src/gui/util/qundostack.cpp" line="+804"/>
+ <location filename="../src/gui/util/qundostack.cpp" line="+834"/>
<source>Undo</source>
<translation>Desfazer</translation>
</message>
@@ -5877,7 +5888,7 @@ Please choose a different file name.</source>
<context>
<name>QWebFrame</name>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+686"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
<source>Request cancelled</source>
<translation type="unfinished"></translation>
</message>
@@ -6288,7 +6299,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1342"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
<source>JavaScript Alert - %1</source>
<translation type="unfinished"></translation>
</message>
@@ -6364,6 +6375,11 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+3"/>
+ <source>Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
<source>Select to the next character</source>
<translation type="unfinished"></translation>
</message>
@@ -6432,11 +6448,21 @@ Please choose a different file name.</source>
<source>Delete to the end of the word</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+33"/>
+ <source>Insert a new paragraph</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QWhatsThisAction</name>
<message>
- <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+492"/>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
<source>What&apos;s This?</source>
<translation>O Que é Isto?</translation>
</message>
@@ -6444,7 +6470,7 @@ Please choose a different file name.</source>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5290"/>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/>
<source>*</source>
<translation>*</translation>
</message>
@@ -6452,7 +6478,7 @@ Please choose a different file name.</source>
<context>
<name>QWizard</name>
<message>
- <location filename="../src/gui/dialogs/qwizard.cpp" line="+605"/>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/>
<source>Go Back</source>
<translation type="unfinished"></translation>
</message>
@@ -6514,7 +6540,7 @@ Please choose a different file name.</source>
<context>
<name>QWorkspace</name>
<message>
- <location filename="../src/gui/widgets/qworkspace.cpp" line="+1064"/>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/>
<source>&amp;Restore</source>
<translation>&amp;Restaurar</translation>
</message>
@@ -6584,7 +6610,7 @@ Please choose a different file name.</source>
<context>
<name>QXml</name>
<message>
- <location filename="../src/xml/sax/qxml.cpp" line="+28"/>
+ <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
<source>no error occurred</source>
<translation>não ocorreu nenhum erro</translation>
</message>
@@ -6702,8 +6728,8 @@ Please choose a different file name.</source>
<context>
<name>QXmlStream</name>
<message>
- <location filename="../src/corelib/xml/qxmlstream.cpp" line="+562"/>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1739"/>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/>
<source>Extra content at end of document.</source>
<translation type="unfinished"></translation>
</message>
@@ -6887,7 +6913,7 @@ Please choose a different file name.</source>
<context>
<name>QtXmlPatterns</name>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+175"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
<source>An %1-attribute with value %2 has already been declared.</source>
<translation type="unfinished"></translation>
</message>
@@ -6897,12 +6923,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+54"/>
+ <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
<source>Network timeout.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+290"/>
+ <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>
@@ -6912,7 +6938,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+50"/>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
<source>Year %1 is invalid because it begins with %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6952,7 +6978,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+69"/>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/>
<location line="+15"/>
<source>At least one component must be present.</source>
<translation type="unfinished"></translation>
@@ -6963,7 +6989,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+34"/>
+ <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
<source>No operand in an integer division, %1, can be %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6978,17 +7004,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+102"/>
+ <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/>
<source>%1 is not a valid value of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+193"/>
+ <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="+35"/>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
<source>Integer division (%1) by zero (%2) is undefined.</source>
<translation type="unfinished"></translation>
</message>
@@ -7019,17 +7045,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+49"/>
+ <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/>
<source>A value of type %1 cannot have an Effective Boolean Value.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+48"/>
+ <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/>
<source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+372"/>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
<source>Value %1 of type %2 exceeds maximum (%3).</source>
<translation type="unfinished"></translation>
</message>
@@ -7039,7 +7065,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+61"/>
+ <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/>
<source>A value of type %1 must contain an even number of digits. The value %2 does not.</source>
<translation type="unfinished"></translation>
</message>
@@ -7049,7 +7075,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+177"/>
+ <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
<source>Operator %1 cannot be used on type %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -7059,7 +7085,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+36"/>
+ <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 type="unfinished"></translation>
</message>
@@ -7069,7 +7095,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
<source>Type error in cast, expected %1, received %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -7079,7 +7105,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+104"/>
+ <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/>
<source>No casting is possible with %1 as the target type.</source>
<translation type="unfinished"></translation>
</message>
@@ -7104,7 +7130,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+37"/>
+ <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
<source>A comment cannot contain %1</source>
<translation type="unfinished"></translation>
</message>
@@ -7114,7 +7140,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+137"/>
+ <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
<source>No comparisons can be done involving the type %1.</source>
<translation type="unfinished"></translation>
</message>
@@ -7124,12 +7150,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+56"/>
+ <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="+139"/>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
<source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
<translation type="unfinished"></translation>
</message>
@@ -7139,7 +7165,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+76"/>
+ <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>
@@ -7149,7 +7175,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+83"/>
+ <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+113"/>
<source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source>
<translation type="unfinished"></translation>
</message>
@@ -7159,33 +7185,33 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+79"/>
+ <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="+54"/>
+ <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/>
<source>The data of a processing instruction cannot contain the string %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+52"/>
+ <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="+126"/>
+ <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="+39"/>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
<source>%1 is an invalid %2</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+47"/>
+ <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/>
<source>%1 takes at most %n argument(s). %2 is therefore invalid.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -7201,7 +7227,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+90"/>
+ <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/>
<source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source>
<translation type="unfinished"></translation>
</message>
@@ -7216,27 +7242,27 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/>
<source>%1 is not a valid XML 1.0 character.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+167"/>
+ <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
<source>The first argument to %1 cannot be of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+56"/>
+ <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="+31"/>
+ <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
<source>%1 was called.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+64"/>
+ <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>
@@ -7251,7 +7277,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+62"/>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
<source>%1 matches newline characters</source>
<translation type="unfinished"></translation>
</message>
@@ -7286,17 +7312,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+317"/>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/>
<source>It will not be possible to retrieve %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+24"/>
+ <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="+249"/>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
<source>The default collection is undefined</source>
<translation type="unfinished"></translation>
</message>
@@ -7306,12 +7332,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+222"/>
+ <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="+57"/>
+ <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>
@@ -7321,17 +7347,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+28"/>
+ <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="+37"/>
+ <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/>
<source>The item %1 did not match the required type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+319"/>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/>
<location line="+7253"/>
<source>%1 is an unknown schema type.</source>
<translation type="unfinished"></translation>
@@ -7352,7 +7378,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+63"/>
+ <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
<source>The variable %1 is unused</source>
<translation type="unfinished"></translation>
</message>
@@ -7634,7 +7660,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+25"/>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
<source>empty</source>
<translation type="unfinished"></translation>
</message>
@@ -7659,7 +7685,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+33"/>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
<source>Required type is %1, but %2 was found.</source>
<translation type="unfinished"></translation>
</message>
@@ -7674,7 +7700,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+56"/>
+ <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>
@@ -7684,12 +7710,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+90"/>
+ <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/>
<source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+284"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
<source>%1 is an unsupported encoding.</source>
<translation type="unfinished"></translation>
</message>
@@ -7704,13 +7730,13 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+89"/>
+ <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
<source>Ambiguous rule match.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+39"/>
- <source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source>
+ <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>
@@ -7729,12 +7755,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+87"/>
+ <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
<source>Circularity detected</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+115"/>
+ <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/>
<source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
<translation type="unfinished"></translation>
</message>
@@ -7744,12 +7770,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+35"/>
+ <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="+489"/>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
<source>Element %1 is not allowed at this location.</source>
<translation type="unfinished"></translation>
</message>
@@ -7804,7 +7830,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+153"/>
+ <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/>
<source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source>
<translation type="unfinished"></translation>
</message>
@@ -7879,7 +7905,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+432"/>
+ <location line="+434"/>
<source>Element %1 cannot have a sequence constructor.</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/qt_ru.ts b/translations/qt_ru.ts
index 3d05b71..28e786b 100644
--- a/translations/qt_ru.ts
+++ b/translations/qt_ru.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioOutput</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+374"/>
+ <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/>
<source>&lt;html&gt;The audio playback device &lt;b&gt;%1&lt;/b&gt; does not work.&lt;br/&gt;Falling back to &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -22,7 +22,7 @@
<context>
<name>CloseButton</name>
<message>
- <location filename="../src/gui/widgets/qtabbar.cpp" line="+2217"/>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/>
<source>Close Tab</source>
<translation type="unfinished"></translation>
</message>
@@ -85,7 +85,7 @@
<context>
<name>Phonon::Gstreamer::MediaObject</name>
<message>
- <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+88"/>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/>
<source>Cannot start playback.
Check your Gstreamer installation and make sure you
@@ -98,24 +98,24 @@ have libgstreamer-plugins-base installed.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+653"/>
- <location line="+9"/>
+ <location line="+676"/>
+ <location line="+8"/>
<location line="+15"/>
- <location line="+7"/>
- <location line="+5"/>
- <location line="+20"/>
- <location line="+317"/>
+ <location line="+9"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+335"/>
<location line="+24"/>
<source>Could not open media source.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-381"/>
+ <location line="-403"/>
<source>Invalid source type.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+355"/>
+ <location line="+377"/>
<source>Could not locate media source.</source>
<translation type="unfinished"></translation>
</message>
@@ -149,7 +149,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3Accel</name>
<message>
- <location filename="../src/qt3support/other/q3accel.cpp" line="+451"/>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
<source>%1, %2 not defined</source>
<translation type="unfinished"></translation>
</message>
@@ -162,7 +162,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3DataTable</name>
<message>
- <location filename="../src/qt3support/sql/q3datatable.cpp" line="+253"/>
+ <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
<source>True</source>
<translation type="unfinished">True</translation>
</message>
@@ -190,7 +190,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3FileDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+834"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+864"/>
<source>Copy or Move a File</source>
<translation type="unfinished">Копировать или переместить файл</translation>
</message>
@@ -215,7 +215,7 @@ have libgstreamer-plugins-base installed.</source>
<location line="-157"/>
<location line="+49"/>
<location line="+2153"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+80"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
<source>All Files (*)</source>
<translation type="unfinished">Все файлы (*)</translation>
</message>
@@ -355,7 +355,7 @@ have libgstreamer-plugins-base installed.</source>
<message>
<location line="+704"/>
<location line="+2100"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+307"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/>
<source>Open</source>
<translation type="unfinished">Открыть</translation>
</message>
@@ -523,7 +523,7 @@ Check path and filename.</source>
<context>
<name>Q3LocalFs</name>
<message>
- <location filename="../src/qt3support/network/q3localfs.cpp" line="+100"/>
+ <location filename="../src/qt3support/network/q3localfs.cpp" line="+130"/>
<location line="+10"/>
<source>Could not read directory
%1</source>
@@ -573,7 +573,7 @@ to
<context>
<name>Q3MainWindow</name>
<message>
- <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2021"/>
+ <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
<source>Line up</source>
<translation type="unfinished">Выровнять</translation>
</message>
@@ -586,7 +586,7 @@ to
<context>
<name>Q3NetworkProtocol</name>
<message>
- <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+824"/>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
<source>Operation stopped by the user</source>
<translation type="unfinished">Операция прервана пользователем</translation>
</message>
@@ -594,7 +594,7 @@ to
<context>
<name>Q3ProgressDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+194"/>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
<location line="+61"/>
<source>Cancel</source>
<translation type="unfinished">Отмена</translation>
@@ -603,7 +603,7 @@ to
<context>
<name>Q3TabDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+159"/>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/>
<location line="+814"/>
<source>OK</source>
<translation type="unfinished">OK</translation>
@@ -632,7 +632,7 @@ to
<context>
<name>Q3TextEdit</name>
<message>
- <location filename="../src/qt3support/text/q3textedit.cpp" line="+5399"/>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
<source>&amp;Undo</source>
<translation type="unfinished">&amp;Отменить</translation>
</message>
@@ -671,7 +671,7 @@ to
<context>
<name>Q3TitleBar</name>
<message>
- <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+216"/>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
<source>System</source>
<translation type="unfinished"></translation>
</message>
@@ -739,7 +739,7 @@ to
<context>
<name>Q3ToolBar</name>
<message>
- <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+662"/>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
<source>More...</source>
<translation type="unfinished">Больше...</translation>
</message>
@@ -747,7 +747,7 @@ to
<context>
<name>Q3UrlOperator</name>
<message>
- <location filename="../src/qt3support/network/q3urloperator.cpp" line="+356"/>
+ <location filename="../src/qt3support/network/q3urloperator.cpp" line="+386"/>
<location line="+260"/>
<location line="+4"/>
<source>The protocol `%1&apos; is not supported</source>
@@ -799,7 +799,7 @@ to
<context>
<name>Q3Wizard</name>
<message>
- <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+147"/>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
<source>&amp;Cancel</source>
<translation type="unfinished">&amp;Отмена</translation>
</message>
@@ -827,9 +827,9 @@ to
<context>
<name>QAbstractSocket</name>
<message>
- <location filename="../src/network/socket/qabstractsocket.cpp" line="+838"/>
- <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+585"/>
- <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+627"/>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
<location line="+26"/>
<source>Host not found</source>
<translation type="unfinished"></translation>
@@ -872,7 +872,7 @@ to
<context>
<name>QAbstractSpinBox</name>
<message>
- <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1169"/>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/>
<source>&amp;Step up</source>
<translation type="unfinished"></translation>
</message>
@@ -890,13 +890,13 @@ to
<context>
<name>QApplication</name>
<message>
- <location filename="../src/gui/kernel/qapplication.cpp" line="+2212"/>
+ <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>
</message>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.h" line="+322"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
<source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
<translation>Программный модуль &apos;%1&apos; требует Qt %2, найдена версия %3.</translation>
</message>
@@ -906,7 +906,7 @@ to
<translation>Ошибка совместимости библиотеки Qt</translation>
</message>
<message>
- <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+346"/>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
<source>Activate</source>
<translation type="unfinished"></translation>
</message>
@@ -942,7 +942,7 @@ to
<context>
<name>QCheckBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+84"/>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/>
<source>Uncheck</source>
<translation type="unfinished"></translation>
</message>
@@ -960,7 +960,7 @@ to
<context>
<name>QColorDialog</name>
<message>
- <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1219"/>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/>
<source>Hu&amp;e:</source>
<translation>&amp;Тон:</translation>
</message>
@@ -1034,13 +1034,13 @@ to
<context>
<name>QComboBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1741"/>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
<location line="+65"/>
<source>Open</source>
<translation type="unfinished">Открыть</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+514"/>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
<source>False</source>
<translation type="unfinished">False</translation>
</message>
@@ -1058,7 +1058,7 @@ to
<context>
<name>QCoreApplication</name>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+89"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
<source>%1: key is empty</source>
<comment>QSystemSemaphore</comment>
<translation type="unfinished"></translation>
@@ -1079,12 +1079,12 @@ to
<context>
<name>QDB2Driver</name>
<message>
- <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1217"/>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
<source>Unable to connect</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+263"/>
+ <location line="+303"/>
<source>Unable to commit transaction</source>
<translation type="unfinished"></translation>
</message>
@@ -1102,8 +1102,8 @@ to
<context>
<name>QDB2Result</name>
<message>
- <location line="-986"/>
- <location line="+242"/>
+ <location line="-1043"/>
+ <location line="+243"/>
<source>Unable to execute statement</source>
<translation type="unfinished"></translation>
</message>
@@ -1118,7 +1118,7 @@ to
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+91"/>
+ <location line="+92"/>
<source>Unable to fetch record %1</source>
<translation type="unfinished"></translation>
</message>
@@ -1136,7 +1136,7 @@ to
<context>
<name>QDateTimeEdit</name>
<message>
- <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2265"/>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
<source>AM</source>
<translation type="unfinished"></translation>
</message>
@@ -1159,7 +1159,7 @@ to
<context>
<name>QDial</name>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+921"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
<source>QDial</source>
<translation type="unfinished"></translation>
</message>
@@ -1177,7 +1177,7 @@ to
<context>
<name>QDialog</name>
<message>
- <location filename="../src/gui/dialogs/qdialog.cpp" line="+567"/>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
<source>What&apos;s This?</source>
<translation>Что это?</translation>
</message>
@@ -1190,9 +1190,9 @@ to
<context>
<name>QDialogButtonBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1830"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
<location line="+464"/>
- <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+531"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/>
<source>OK</source>
<translation type="unfinished">OK</translation>
</message>
@@ -1315,7 +1315,7 @@ to
<context>
<name>QDirModel</name>
<message>
- <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+423"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/>
<source>Name</source>
<translation type="unfinished">Имя</translation>
</message>
@@ -1345,7 +1345,7 @@ to
<context>
<name>QDockWidget</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1209"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
<source>Close</source>
<translation type="unfinished">Закрыть</translation>
</message>
@@ -1376,7 +1376,7 @@ to
<context>
<name>QErrorMessage</name>
<message>
- <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+361"/>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+391"/>
<source>&amp;Show this message again</source>
<translation>&amp;Показывать это сообщение в дальнейшем</translation>
</message>
@@ -1404,13 +1404,18 @@ to
<context>
<name>QFile</name>
<message>
- <location filename="../src/corelib/io/qfile.cpp" line="+678"/>
- <location line="+130"/>
+ <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
+ <location line="+141"/>
<source>Destination file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+12"/>
+ <location line="-108"/>
+ <source>Cannot remove source file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+120"/>
<source>Cannot open %1 for input</source>
<translation type="unfinished"></translation>
</message>
@@ -1433,8 +1438,8 @@ to
<context>
<name>QFileDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+484"/>
- <location line="+423"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+515"/>
+ <location line="+444"/>
<source>All Files (*)</source>
<translation>Все файлы (*)</translation>
</message>
@@ -1457,13 +1462,13 @@ to
<translation type="unfinished">Детальный вид</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+384"/>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+414"/>
<location line="+1"/>
<source>File</source>
<translation type="unfinished">Файл</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-440"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-461"/>
<source>Open</source>
<translation>Открыть</translation>
</message>
@@ -1473,26 +1478,26 @@ to
<translation type="unfinished">Сохранить как</translation>
</message>
<message>
- <location line="+653"/>
+ <location line="+678"/>
<location line="+50"/>
- <location line="+1440"/>
+ <location line="+1471"/>
<location line="+75"/>
<source>&amp;Open</source>
<translation>&amp;Открыть</translation>
</message>
<message>
- <location line="-1565"/>
+ <location line="-1596"/>
<location line="+50"/>
<source>&amp;Save</source>
<translation>&amp;Сохранить</translation>
</message>
<message>
- <location line="+1790"/>
+ <location line="+1822"/>
<source>Recent Places</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-2464"/>
+ <location line="-2521"/>
<source>&amp;Rename</source>
<translation type="unfinished">&amp;Переименовать</translation>
</message>
@@ -1507,33 +1512,33 @@ to
<translation type="unfinished">Показать &amp;скрытые файлы</translation>
</message>
<message>
- <location line="+1908"/>
+ <location line="+1964"/>
<source>New Folder</source>
<translation type="unfinished">Новый каталог</translation>
</message>
<message>
- <location line="-1943"/>
+ <location line="-1999"/>
<source>Find Directory</source>
<translation type="unfinished">Найти каталог</translation>
</message>
<message>
- <location line="+660"/>
+ <location line="+685"/>
<source>Directories</source>
<translation>Каталоги</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+130"/>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
<source>All Files (*.*)</source>
<translation type="unfinished">Все файлы (*.*)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-619"/>
- <location line="+623"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-644"/>
+ <location line="+648"/>
<source>Directory:</source>
<translation type="unfinished">Каталог:</translation>
</message>
<message>
- <location line="+807"/>
+ <location line="+828"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation type="unfinished"></translation>
@@ -1564,14 +1569,14 @@ Please verify the correct file name was given.</source>
</message>
<message>
<location filename="../src/gui/dialogs/qfiledialog.cpp" line="-54"/>
- <location line="+851"/>
+ <location line="+862"/>
<source>%1
Directory not found.
Please verify the correct directory name was given.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-217"/>
+ <location line="-218"/>
<source>&apos;%1&apos; is write protected.
Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
@@ -1597,7 +1602,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2062"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2118"/>
<source>Show </source>
<translation type="unfinished"></translation>
</message>
@@ -1613,19 +1618,19 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+631"/>
+ <location line="+656"/>
<location line="+38"/>
<source>&amp;Choose</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qsidebar.cpp" line="+388"/>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-662"/>
- <location line="+627"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-687"/>
+ <location line="+652"/>
<source>File &amp;name:</source>
<translation type="unfinished">&amp;Имя файла:</translation>
</message>
@@ -1645,7 +1650,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFileSystemModel</name>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+707"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+744"/>
<source>%1 TB</source>
<translation type="unfinished"></translation>
</message>
@@ -1707,7 +1712,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+204"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/>
<source>My Computer</source>
<translation type="unfinished"></translation>
</message>
@@ -1720,7 +1725,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFontDatabase</name>
<message>
- <location filename="../src/gui/text/qfontdatabase.cpp" line="+60"/>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
<location line="+1176"/>
<source>Normal</source>
<translation type="unfinished"></translation>
@@ -1937,7 +1942,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFontDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+742"/>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/>
<source>&amp;Font</source>
<translation>&amp;Шрифт</translation>
</message>
@@ -1986,7 +1991,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFtp</name>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="+2273"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+2303"/>
<source>Host %1 found</source>
<translation type="unfinished">Обнаружен узел %1</translation>
</message>
@@ -1996,7 +2001,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished">Узел обнаружен</translation>
</message>
<message>
- <location filename="../src/network/access/qftp.cpp" line="+973"/>
+ <location filename="../src/network/access/qftp.cpp" line="+1003"/>
<location filename="../src/qt3support/network/q3ftp.cpp" line="-1456"/>
<location line="+1451"/>
<source>Connected to host %1</source>
@@ -2132,7 +2137,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QHostInfo</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_p.h" line="+153"/>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
<source>Unknown error</source>
<translation type="unfinished">Неизвестная ошибка</translation>
</message>
@@ -2140,11 +2145,11 @@ Do you want to delete it anyway?</source>
<context>
<name>QHostInfoAgent</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+148"/>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
<location line="+9"/>
<location line="+64"/>
<location line="+31"/>
- <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+150"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
<location line="+9"/>
<location line="+40"/>
<location line="+27"/>
@@ -2170,13 +2175,13 @@ Do you want to delete it anyway?</source>
<context>
<name>QHttp</name>
<message>
- <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+1712"/>
- <location filename="../src/qt3support/network/q3http.cpp" line="+1806"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+876"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+1836"/>
<source>Connection refused</source>
<translation>Отказано в соединении</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="+2597"/>
+ <location filename="../src/network/access/qhttp.cpp" line="+2631"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
<source>Host %1 not found</source>
@@ -2189,12 +2194,12 @@ Do you want to delete it anyway?</source>
<translation>Неверная длина данных</translation>
</message>
<message>
- <location line="-2200"/>
+ <location line="-2204"/>
<source>HTTPS connection requested but SSL support not compiled in</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2282"/>
+ <location line="+2286"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+10"/>
<location line="+19"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+48"/>
@@ -2233,21 +2238,21 @@ Do you want to delete it anyway?</source>
<translation type="unfinished">Соединение разорвано</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-1073"/>
- <location line="+816"/>
+ <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="-564"/>
+ <location line="-568"/>
<location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
<source>Request aborted</source>
<translation>Запрос отменен</translation>
</message>
<message>
- <location line="+575"/>
+ <location line="+579"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
<source>No server set to connect to</source>
<translation>Не выбран сервер для подключения</translation>
@@ -2265,7 +2270,12 @@ Do you want to delete it anyway?</source>
<translation>Получен некорректный HTTP-заголовок</translation>
</message>
<message>
- <location line="+120"/>
+ <location line="+28"/>
+ <source>Unknown authentication method</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+97"/>
<location line="+48"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
<location line="+47"/>
@@ -2288,7 +2298,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-133"/>
+ <location line="-138"/>
<source>Connection refused (or timed out)</source>
<translation type="unfinished"></translation>
</message>
@@ -2369,7 +2379,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseDriver</name>
<message>
- <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1378"/>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1428"/>
<source>Error opening database</source>
<translation type="unfinished"></translation>
</message>
@@ -2392,7 +2402,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseResult</name>
<message>
- <location line="-1077"/>
+ <location line="-1097"/>
<source>Unable to create BLOB</source>
<translation type="unfinished"></translation>
</message>
@@ -2412,7 +2422,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<location line="+189"/>
<source>Could not find array</source>
<translation type="unfinished"></translation>
@@ -2482,7 +2492,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIODevice</name>
<message>
- <location filename="../src/corelib/global/qglobal.cpp" line="+1830"/>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/>
<source>Permission denied</source>
<translation type="unfinished"></translation>
</message>
@@ -2502,7 +2512,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/io/qiodevice.cpp" line="+1506"/>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/>
<source>Unknown error</source>
<translation type="unfinished">Неизвестная ошибка</translation>
</message>
@@ -2510,7 +2520,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QInputContext</name>
<message>
- <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+212"/>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/>
<source>XIM</source>
<translation type="unfinished"></translation>
</message>
@@ -2533,7 +2543,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QInputDialog</name>
<message>
- <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+193"/>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
<source>Enter a value:</source>
<translation type="unfinished"></translation>
</message>
@@ -2541,7 +2551,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QLibrary</name>
<message>
- <location filename="../src/corelib/plugin/qlibrary.cpp" line="+348"/>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
<source>Could not mmap &apos;%1&apos;: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2572,7 +2582,7 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="-377"/>
- <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+250"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
<source>The shared library was not found.</source>
<translation type="unfinished"></translation>
</message>
@@ -2587,8 +2597,8 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+179"/>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+69"/>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
<source>Cannot load library %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2608,7 +2618,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QLineEdit</name>
<message>
- <location filename="../src/gui/widgets/qlineedit.cpp" line="+2649"/>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+2680"/>
<source>&amp;Undo</source>
<translation type="unfinished">&amp;Отменить</translation>
</message>
@@ -2646,8 +2656,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QLocalServer</name>
<message>
- <location filename="../src/network/socket/qlocalserver.cpp" line="+196"/>
- <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+201"/>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/>
<source>%1: Name error</source>
<translation type="unfinished"></translation>
</message>
@@ -2663,7 +2673,7 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="+5"/>
- <location filename="../src/network/socket/qlocalserver_win.cpp" line="+127"/>
+ <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/>
<source>%1: Unknown error %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2671,8 +2681,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QLocalSocket</name>
<message>
- <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+102"/>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+104"/>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/>
<source>%1: Connection refused</source>
<translation type="unfinished"></translation>
</message>
@@ -2685,7 +2695,7 @@ Do you want to delete it anyway?</source>
<message>
<location line="+3"/>
<location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
- <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+50"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/>
<location line="+43"/>
<source>%1: Invalid name</source>
<translation type="unfinished"></translation>
@@ -2742,7 +2752,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMYSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1200"/>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1231"/>
<source>Unable to open database &apos;</source>
<translation type="unfinished"></translation>
</message>
@@ -2752,7 +2762,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+123"/>
+ <location line="+127"/>
<source>Unable to begin transaction</source>
<translation type="unfinished"></translation>
</message>
@@ -2770,7 +2780,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMYSQLResult</name>
<message>
- <location line="-917"/>
+ <location line="-922"/>
<source>Unable to fetch data</source>
<translation type="unfinished"></translation>
</message>
@@ -2785,7 +2795,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+189"/>
+ <location line="+190"/>
<location line="+8"/>
<source>Unable to prepare statement</source>
<translation type="unfinished"></translation>
@@ -2830,7 +2840,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMdiArea</name>
<message>
- <location filename="../src/gui/widgets/qmdiarea.cpp" line="+260"/>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
<source>(Untitled)</source>
<translation type="unfinished"></translation>
</message>
@@ -2838,7 +2848,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMdiSubWindow</name>
<message>
- <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+250"/>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
<source>%1 - [%2]</source>
<translation type="unfinished">%1 - [%2]</translation>
</message>
@@ -2931,7 +2941,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMenu</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+127"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
<location line="+225"/>
<source>Close</source>
<translation type="unfinished">Закрыть</translation>
@@ -2988,7 +2998,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMessageBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1958"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1964"/>
<location line="+852"/>
<location filename="../src/gui/dialogs/qmessagebox.h" line="-52"/>
<location line="+8"/>
@@ -2996,22 +3006,17 @@ Do you want to delete it anyway?</source>
<translation>OK</translation>
</message>
<message>
- <location line="+503"/>
+ <location line="+509"/>
<source>About Qt</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-502"/>
+ <location line="-508"/>
<source>Help</source>
<translation type="unfinished">Справка</translation>
</message>
<message>
- <location line="+487"/>
- <source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="-1584"/>
+ <location line="-1097"/>
<source>Show Details...</source>
<translation type="unfinished"></translation>
</message>
@@ -3022,19 +3027,14 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="+1570"/>
- <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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+15"/>
- <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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
+ <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://www.qtsoftware.com/products/licensing&quot;&gt;www.qtsoftware.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://www.qtsoftware.com/qt/&quot;&gt;www.qtsoftware.com/qt&lt;/a&gt; for more information.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QMultiInputContext</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+58"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
<source>Select IM</source>
<translation type="unfinished"></translation>
</message>
@@ -3042,7 +3042,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMultiInputContextPlugin</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+65"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
<source>Multiple input method switcher</source>
<translation type="unfinished"></translation>
</message>
@@ -3055,7 +3055,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNativeSocketEngine</name>
<message>
- <location filename="../src/network/socket/qnativesocketengine.cpp" line="+176"/>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/>
<source>The remote host closed the connection</source>
<translation type="unfinished"></translation>
</message>
@@ -3188,7 +3188,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessCacheBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+35"/>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
<source>Error opening %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3196,7 +3196,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessFileBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+69"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/>
<source>Request for opening non-local file %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3224,7 +3224,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessFtpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+135"/>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3234,7 +3234,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+131"/>
+ <location line="+130"/>
<source>Logging in to %1 failed: authentication required</source>
<translation type="unfinished"></translation>
</message>
@@ -3252,7 +3252,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessHttpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+565"/>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3265,7 +3265,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+37"/>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/>
<source>Protocol &quot;%1&quot; is unknown</source>
<translation type="unfinished"></translation>
</message>
@@ -3273,7 +3273,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkReplyImpl</name>
<message>
- <location line="+422"/>
+ <location line="+432"/>
<location line="+22"/>
<source>Operation canceled</source>
<translation type="unfinished"></translation>
@@ -3282,7 +3282,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIDriver</name>
<message>
- <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2027"/>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2069"/>
<source>Unable to logon</source>
<translation type="unfinished"></translation>
</message>
@@ -3311,7 +3311,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIResult</name>
<message>
- <location line="-976"/>
+ <location line="-963"/>
<location line="+161"/>
<location line="+15"/>
<source>Unable to bind column for batch execute</source>
@@ -3338,18 +3338,12 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+29"/>
- <location line="+37"/>
+ <location line="+36"/>
<source>Unable to bind value</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-20"/>
- <source>Unable to execute select statement</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+32"/>
+ <location line="+19"/>
<source>Unable to execute statement</source>
<translation type="unfinished"></translation>
</message>
@@ -3357,7 +3351,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCDriver</name>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1657"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1785"/>
<source>Unable to connect</source>
<translation type="unfinished"></translation>
</message>
@@ -3367,7 +3361,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+234"/>
+ <location line="+242"/>
<source>Unable to disable autocommit</source>
<translation type="unfinished"></translation>
</message>
@@ -3390,19 +3384,19 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCResult</name>
<message>
- <location line="-1204"/>
+ <location line="-1218"/>
<location line="+349"/>
<source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-332"/>
- <location line="+625"/>
+ <location line="+626"/>
<source>Unable to execute statement</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-554"/>
+ <location line="-555"/>
<source>Unable to fetch next</source>
<translation type="unfinished"></translation>
</message>
@@ -3412,19 +3406,19 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+267"/>
+ <location line="+268"/>
<source>Unable to bind variable</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-474"/>
- <location line="+577"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-475"/>
+ <location line="+578"/>
<source>Unable to fetch last</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-671"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
<source>Unable to fetch</source>
<translation type="unfinished"></translation>
</message>
@@ -3442,12 +3436,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QObject</name>
<message>
- <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+134"/>
+ <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
<source>Home</source>
<translation type="unfinished">Home</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+44"/>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
<source>Operation not supported on %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3457,7 +3451,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+145"/>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
<source>Write error writing to %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -3482,7 +3476,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/kernel/qhostinfo.cpp" line="+147"/>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
<location line="+57"/>
<source>No host name given</source>
<translation type="unfinished"></translation>
@@ -3491,7 +3485,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPPDOptionsModel</name>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1165"/>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/>
<source>Name</source>
<translation type="unfinished">Имя</translation>
</message>
@@ -3504,7 +3498,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+732"/>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/>
<source>Unable to connect</source>
<translation type="unfinished"></translation>
</message>
@@ -3524,7 +3518,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+336"/>
+ <location line="+358"/>
<source>Unable to subscribe</source>
<translation type="unfinished"></translation>
</message>
@@ -3537,12 +3531,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QPSQLResult</name>
<message>
- <location line="-1035"/>
+ <location line="-1058"/>
<source>Unable to create query</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+373"/>
+ <location line="+374"/>
<source>Unable to prepare statement</source>
<translation type="unfinished"></translation>
</message>
@@ -3550,7 +3544,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPageSetupWidget</name>
<message>
- <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+274"/>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
<source>Centimeters (cm)</source>
<translation type="unfinished"></translation>
</message>
@@ -3666,7 +3660,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPrintDialog</name>
<message>
- <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+68"/>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/>
<source>locally connected</source>
<translation>локальный</translation>
</message>
@@ -3683,7 +3677,7 @@ Do you want to delete it anyway?</source>
<translation>неизвестно</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+238"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
<source>OK</source>
<translation type="unfinished">OK</translation>
</message>
@@ -3700,7 +3694,7 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">Принтер</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+345"/>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+375"/>
<source>Print all</source>
<translation type="unfinished">Печатать все</translation>
</message>
@@ -3880,7 +3874,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+80"/>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
<location line="+13"/>
<location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
<source>Print</source>
@@ -4128,13 +4122,13 @@ Please choose a different file name.</source>
<context>
<name>QPrintPreviewDialog</name>
<message>
- <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+38"/>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
<location line="+12"/>
<source>Page Setup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+222"/>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/>
<source>%1%</source>
<translation type="unfinished"></translation>
</message>
@@ -4412,8 +4406,8 @@ Please choose a different file name.</source>
<context>
<name>QProcess</name>
<message>
- <location filename="../src/corelib/io/qprocess_unix.cpp" line="+445"/>
- <location filename="../src/corelib/io/qprocess_win.cpp" line="+117"/>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
<source>Could not open input redirection for reading</source>
<translation type="unfinished"></translation>
</message>
@@ -4442,7 +4436,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/io/qprocess.cpp" line="+503"/>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+533"/>
<location line="+52"/>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
<location line="+50"/>
@@ -4462,6 +4456,11 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+912"/>
+ <source>No program defined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
<source>Process failed to start</source>
<translation type="unfinished"></translation>
@@ -4470,7 +4469,7 @@ Please choose a different file name.</source>
<context>
<name>QProgressDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+152"/>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
@@ -4494,7 +4493,7 @@ Please choose a different file name.</source>
<context>
<name>QRegExp</name>
<message>
- <location filename="../src/corelib/tools/qregexp.cpp" line="+34"/>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/>
<source>no error occurred</source>
<translation>ошибки отсутствуют</translation>
</message>
@@ -4542,7 +4541,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Driver</name>
<message>
- <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+353"/>
+ <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
<source>Error to open database</source>
<translation type="unfinished"></translation>
</message>
@@ -4565,12 +4564,12 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Result</name>
<message>
- <location line="-310"/>
+ <location line="-323"/>
<source>Unable to fetch results</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+139"/>
+ <location line="+147"/>
<source>Unable to execute statement</source>
<translation type="unfinished"></translation>
</message>
@@ -4578,7 +4577,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLiteDriver</name>
<message>
- <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+498"/>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/>
<source>Error opening database</source>
<translation type="unfinished"></translation>
</message>
@@ -4641,12 +4640,12 @@ Please choose a different file name.</source>
<context>
<name>QScrollBar</name>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="+419"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/>
<source>Scroll here</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Left edge</source>
<translation type="unfinished"></translation>
</message>
@@ -4656,7 +4655,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Right edge</source>
<translation type="unfinished"></translation>
</message>
@@ -4666,7 +4665,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Page left</source>
<translation type="unfinished"></translation>
</message>
@@ -4677,7 +4676,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Page right</source>
<translation type="unfinished"></translation>
</message>
@@ -4688,7 +4687,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Scroll left</source>
<translation type="unfinished"></translation>
</message>
@@ -4698,7 +4697,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Scroll right</source>
<translation type="unfinished"></translation>
</message>
@@ -4726,7 +4725,7 @@ Please choose a different file name.</source>
<context>
<name>QSharedMemory</name>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+177"/>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+207"/>
<source>%1: unable to set key on lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4737,7 +4736,7 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+168"/>
- <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+118"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
<source>%1: unable to lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4747,8 +4746,8 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+48"/>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+57"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
<source>%1: permission denied</source>
<translation type="unfinished"></translation>
</message>
@@ -4826,7 +4825,7 @@ Please choose a different file name.</source>
<context>
<name>QShortcut</name>
<message>
- <location filename="../src/gui/kernel/qkeysequence.cpp" line="+343"/>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/>
<source>Space</source>
<translation type="unfinished">Space</translation>
</message>
@@ -5407,7 +5406,7 @@ Please choose a different file name.</source>
<context>
<name>QSql</name>
<message>
- <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+860"/>
+ <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
<source>Delete</source>
<translation>Удалить</translation>
</message>
@@ -5464,7 +5463,7 @@ Please choose a different file name.</source>
<context>
<name>QSslSocket</name>
<message>
- <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+539"/>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+569"/>
<source>Unable to write data: %1</source>
<translation type="unfinished"></translation>
</message>
@@ -5523,7 +5522,7 @@ Please choose a different file name.</source>
<name>QSystemSemaphore</name>
<message>
<location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+36"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
<source>%1: out of resources</source>
<translation type="unfinished"></translation>
</message>
@@ -5553,7 +5552,7 @@ Please choose a different file name.</source>
<context>
<name>QTDSDriver</name>
<message>
- <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+552"/>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
<source>Unable to open connection</source>
<translation type="unfinished"></translation>
</message>
@@ -5579,7 +5578,7 @@ Please choose a different file name.</source>
<context>
<name>QTcpServer</name>
<message>
- <location filename="../src/network/socket/qtcpserver.cpp" line="+252"/>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
<source>Operation on socket is not supported</source>
<translation type="unfinished"></translation>
</message>
@@ -5587,7 +5586,7 @@ Please choose a different file name.</source>
<context>
<name>QTextControl</name>
<message>
- <location filename="../src/gui/text/qtextcontrol.cpp" line="+1942"/>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/>
<source>&amp;Undo</source>
<translation type="unfinished">&amp;Отменить</translation>
</message>
@@ -5645,7 +5644,7 @@ Please choose a different file name.</source>
<context>
<name>QUdpSocket</name>
<message>
- <location filename="../src/network/socket/qudpsocket.cpp" line="+139"/>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
<source>This platform does not support IPv6</source>
<translation type="unfinished"></translation>
</message>
@@ -5653,7 +5652,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoGroup</name>
<message>
- <location filename="../src/gui/util/qundogroup.cpp" line="+356"/>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+386"/>
<source>Undo</source>
<translation type="unfinished">Отменить</translation>
</message>
@@ -5666,7 +5665,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoModel</name>
<message>
- <location filename="../src/gui/util/qundoview.cpp" line="+71"/>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
<source>&lt;empty&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -5674,7 +5673,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoStack</name>
<message>
- <location filename="../src/gui/util/qundostack.cpp" line="+804"/>
+ <location filename="../src/gui/util/qundostack.cpp" line="+834"/>
<source>Undo</source>
<translation type="unfinished">Отменить</translation>
</message>
@@ -5745,7 +5744,7 @@ Please choose a different file name.</source>
<context>
<name>QWebFrame</name>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+686"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
<source>Request cancelled</source>
<translation type="unfinished"></translation>
</message>
@@ -6155,7 +6154,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1342"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
<source>JavaScript Alert - %1</source>
<translation type="unfinished"></translation>
</message>
@@ -6231,6 +6230,11 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+3"/>
+ <source>Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
<source>Select to the next character</source>
<translation type="unfinished"></translation>
</message>
@@ -6299,11 +6303,21 @@ Please choose a different file name.</source>
<source>Delete to the end of the word</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+33"/>
+ <source>Insert a new paragraph</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QWhatsThisAction</name>
<message>
- <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+492"/>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
<source>What&apos;s This?</source>
<translation type="unfinished">Что это?</translation>
</message>
@@ -6311,7 +6325,7 @@ Please choose a different file name.</source>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5290"/>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/>
<source>*</source>
<translation type="unfinished"></translation>
</message>
@@ -6319,7 +6333,7 @@ Please choose a different file name.</source>
<context>
<name>QWizard</name>
<message>
- <location filename="../src/gui/dialogs/qwizard.cpp" line="+605"/>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/>
<source>&lt; &amp;Back</source>
<translation type="unfinished">&lt; &amp;Назад</translation>
</message>
@@ -6381,7 +6395,7 @@ Please choose a different file name.</source>
<context>
<name>QWorkspace</name>
<message>
- <location filename="../src/gui/widgets/qworkspace.cpp" line="+1064"/>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/>
<source>&amp;Restore</source>
<translation type="unfinished">&amp;Восстановить</translation>
</message>
@@ -6451,7 +6465,7 @@ Please choose a different file name.</source>
<context>
<name>QXml</name>
<message>
- <location filename="../src/xml/sax/qxml.cpp" line="+28"/>
+ <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
<source>no error occurred</source>
<translation>ошибки отсутствуют</translation>
</message>
@@ -6569,8 +6583,8 @@ Please choose a different file name.</source>
<context>
<name>QXmlStream</name>
<message>
- <location filename="../src/corelib/xml/qxmlstream.cpp" line="+562"/>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1739"/>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/>
<source>Extra content at end of document.</source>
<translation type="unfinished"></translation>
</message>
@@ -6754,7 +6768,7 @@ Please choose a different file name.</source>
<context>
<name>QtXmlPatterns</name>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+175"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
<source>An %1-attribute with value %2 has already been declared.</source>
<translation type="unfinished"></translation>
</message>
@@ -6764,12 +6778,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+54"/>
+ <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
<source>Network timeout.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+290"/>
+ <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>
@@ -6779,7 +6793,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+50"/>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
<source>Year %1 is invalid because it begins with %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6819,7 +6833,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+69"/>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/>
<location line="+15"/>
<source>At least one component must be present.</source>
<translation type="unfinished"></translation>
@@ -6830,7 +6844,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+34"/>
+ <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
<source>No operand in an integer division, %1, can be %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6845,17 +6859,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+102"/>
+ <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/>
<source>%1 is not a valid value of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+193"/>
+ <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="+35"/>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
<source>Integer division (%1) by zero (%2) is undefined.</source>
<translation type="unfinished"></translation>
</message>
@@ -6886,17 +6900,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+49"/>
+ <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/>
<source>A value of type %1 cannot have an Effective Boolean Value.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+48"/>
+ <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/>
<source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+372"/>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
<source>Value %1 of type %2 exceeds maximum (%3).</source>
<translation type="unfinished"></translation>
</message>
@@ -6906,7 +6920,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+61"/>
+ <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/>
<source>A value of type %1 must contain an even number of digits. The value %2 does not.</source>
<translation type="unfinished"></translation>
</message>
@@ -6916,7 +6930,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+177"/>
+ <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
<source>Operator %1 cannot be used on type %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6926,7 +6940,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+36"/>
+ <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 type="unfinished"></translation>
</message>
@@ -6936,7 +6950,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
<source>Type error in cast, expected %1, received %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6946,7 +6960,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+104"/>
+ <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/>
<source>No casting is possible with %1 as the target type.</source>
<translation type="unfinished"></translation>
</message>
@@ -6971,7 +6985,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+37"/>
+ <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
<source>A comment cannot contain %1</source>
<translation type="unfinished"></translation>
</message>
@@ -6981,7 +6995,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+137"/>
+ <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
<source>No comparisons can be done involving the type %1.</source>
<translation type="unfinished"></translation>
</message>
@@ -6991,12 +7005,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+56"/>
+ <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="+139"/>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
<source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
<translation type="unfinished"></translation>
</message>
@@ -7006,7 +7020,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+76"/>
+ <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>
@@ -7016,7 +7030,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+83"/>
+ <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+113"/>
<source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source>
<translation type="unfinished"></translation>
</message>
@@ -7026,33 +7040,33 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+79"/>
+ <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="+54"/>
+ <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/>
<source>The data of a processing instruction cannot contain the string %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+52"/>
+ <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="+126"/>
+ <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="+39"/>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
<source>%1 is an invalid %2</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+47"/>
+ <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/>
<source>%1 takes at most %n argument(s). %2 is therefore invalid.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -7066,7 +7080,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+90"/>
+ <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/>
<source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source>
<translation type="unfinished"></translation>
</message>
@@ -7081,27 +7095,27 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/>
<source>%1 is not a valid XML 1.0 character.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+167"/>
+ <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
<source>The first argument to %1 cannot be of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+56"/>
+ <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="+31"/>
+ <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
<source>%1 was called.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+64"/>
+ <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>
@@ -7116,7 +7130,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+62"/>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
<source>%1 matches newline characters</source>
<translation type="unfinished"></translation>
</message>
@@ -7151,17 +7165,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+317"/>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/>
<source>It will not be possible to retrieve %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+24"/>
+ <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="+249"/>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
<source>The default collection is undefined</source>
<translation type="unfinished"></translation>
</message>
@@ -7171,12 +7185,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+222"/>
+ <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="+57"/>
+ <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>
@@ -7186,17 +7200,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+28"/>
+ <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="+37"/>
+ <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/>
<source>The item %1 did not match the required type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+319"/>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/>
<location line="+7253"/>
<source>%1 is an unknown schema type.</source>
<translation type="unfinished"></translation>
@@ -7217,7 +7231,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+63"/>
+ <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
<source>The variable %1 is unused</source>
<translation type="unfinished"></translation>
</message>
@@ -7499,7 +7513,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+25"/>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
<source>empty</source>
<translation type="unfinished"></translation>
</message>
@@ -7524,7 +7538,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+33"/>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
<source>Required type is %1, but %2 was found.</source>
<translation type="unfinished"></translation>
</message>
@@ -7539,7 +7553,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+56"/>
+ <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>
@@ -7549,12 +7563,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+90"/>
+ <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/>
<source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+284"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
<source>%1 is an unsupported encoding.</source>
<translation type="unfinished"></translation>
</message>
@@ -7569,13 +7583,13 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+89"/>
+ <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
<source>Ambiguous rule match.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+39"/>
- <source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source>
+ <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>
@@ -7594,12 +7608,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+87"/>
+ <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
<source>Circularity detected</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+115"/>
+ <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/>
<source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
<translation type="unfinished"></translation>
</message>
@@ -7609,12 +7623,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+35"/>
+ <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="+489"/>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
<source>Element %1 is not allowed at this location.</source>
<translation type="unfinished"></translation>
</message>
@@ -7669,7 +7683,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+153"/>
+ <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/>
<source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source>
<translation type="unfinished"></translation>
</message>
@@ -7744,7 +7758,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+432"/>
+ <location line="+434"/>
<source>Element %1 cannot have a sequence constructor.</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/qt_sk.ts b/translations/qt_sk.ts
index f681d1b..1bf53e7 100644
--- a/translations/qt_sk.ts
+++ b/translations/qt_sk.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioOutput</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+374"/>
+ <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/>
<source>&lt;html&gt;The audio playback device &lt;b&gt;%1&lt;/b&gt; does not work.&lt;br/&gt;Falling back to &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -22,7 +22,7 @@
<context>
<name>CloseButton</name>
<message>
- <location filename="../src/gui/widgets/qtabbar.cpp" line="+2217"/>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/>
<source>Close Tab</source>
<translation type="unfinished"></translation>
</message>
@@ -89,7 +89,7 @@
<context>
<name>Phonon::Gstreamer::MediaObject</name>
<message>
- <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+88"/>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/>
<source>Cannot start playback.
Check your Gstreamer installation and make sure you
@@ -102,24 +102,24 @@ have libgstreamer-plugins-base installed.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+653"/>
- <location line="+9"/>
+ <location line="+676"/>
+ <location line="+8"/>
<location line="+15"/>
- <location line="+7"/>
- <location line="+5"/>
- <location line="+20"/>
- <location line="+317"/>
+ <location line="+9"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+335"/>
<location line="+24"/>
<source>Could not open media source.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-381"/>
+ <location line="-403"/>
<source>Invalid source type.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+355"/>
+ <location line="+377"/>
<source>Could not locate media source.</source>
<translation type="unfinished"></translation>
</message>
@@ -153,7 +153,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3Accel</name>
<message>
- <location filename="../src/qt3support/other/q3accel.cpp" line="+451"/>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
<source>%1, %2 not defined</source>
<translation>%1, %2 nie je definované</translation>
</message>
@@ -166,7 +166,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3DataTable</name>
<message>
- <location filename="../src/qt3support/sql/q3datatable.cpp" line="+253"/>
+ <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
<source>True</source>
<translation>Pravda</translation>
</message>
@@ -194,7 +194,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3FileDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+834"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+864"/>
<source>Copy or Move a File</source>
<translation>Kopírovať alebo presunúť súbor</translation>
</message>
@@ -219,7 +219,7 @@ have libgstreamer-plugins-base installed.</source>
<location line="-157"/>
<location line="+49"/>
<location line="+2153"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+80"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
<source>All Files (*)</source>
<translation>Všetky súbory (*)</translation>
</message>
@@ -359,7 +359,7 @@ have libgstreamer-plugins-base installed.</source>
<message>
<location line="+704"/>
<location line="+2100"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+307"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/>
<source>Open</source>
<translation>Otvoriť</translation>
</message>
@@ -527,7 +527,7 @@ Overte cestu a meno súboru.</translation>
<context>
<name>Q3LocalFs</name>
<message>
- <location filename="../src/qt3support/network/q3localfs.cpp" line="+100"/>
+ <location filename="../src/qt3support/network/q3localfs.cpp" line="+130"/>
<location line="+10"/>
<source>Could not read directory
%1</source>
@@ -577,7 +577,7 @@ na
<context>
<name>Q3MainWindow</name>
<message>
- <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2021"/>
+ <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
<source>Line up</source>
<translation>Vyrovnať</translation>
</message>
@@ -590,7 +590,7 @@ na
<context>
<name>Q3NetworkProtocol</name>
<message>
- <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+824"/>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
<source>Operation stopped by the user</source>
<translation>Operácia zastavená užívateľom</translation>
</message>
@@ -598,7 +598,7 @@ na
<context>
<name>Q3ProgressDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+194"/>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
<location line="+61"/>
<source>Cancel</source>
<translation>Storno</translation>
@@ -607,7 +607,7 @@ na
<context>
<name>Q3TabDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+159"/>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/>
<location line="+814"/>
<source>OK</source>
<translation>OK</translation>
@@ -636,7 +636,7 @@ na
<context>
<name>Q3TextEdit</name>
<message>
- <location filename="../src/qt3support/text/q3textedit.cpp" line="+5399"/>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
<source>&amp;Undo</source>
<translation>V&amp;rátiť späť</translation>
</message>
@@ -675,7 +675,7 @@ na
<context>
<name>Q3TitleBar</name>
<message>
- <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+216"/>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
<source>System</source>
<translation>Systém</translation>
</message>
@@ -743,7 +743,7 @@ na
<context>
<name>Q3ToolBar</name>
<message>
- <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+662"/>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
<source>More...</source>
<translation>Viac...</translation>
</message>
@@ -751,7 +751,7 @@ na
<context>
<name>Q3UrlOperator</name>
<message>
- <location filename="../src/qt3support/network/q3urloperator.cpp" line="+356"/>
+ <location filename="../src/qt3support/network/q3urloperator.cpp" line="+386"/>
<location line="+260"/>
<location line="+4"/>
<source>The protocol `%1&apos; is not supported</source>
@@ -803,7 +803,7 @@ na
<context>
<name>Q3Wizard</name>
<message>
- <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+147"/>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
<source>&amp;Cancel</source>
<translation>S&amp;torno</translation>
</message>
@@ -831,9 +831,9 @@ na
<context>
<name>QAbstractSocket</name>
<message>
- <location filename="../src/network/socket/qabstractsocket.cpp" line="+838"/>
- <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+585"/>
- <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+627"/>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
<location line="+26"/>
<source>Host not found</source>
<translation>Počítač nenájdený</translation>
@@ -876,7 +876,7 @@ na
<context>
<name>QAbstractSpinBox</name>
<message>
- <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1169"/>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/>
<source>&amp;Step up</source>
<translation>Krok na&amp;hor</translation>
</message>
@@ -894,13 +894,13 @@ na
<context>
<name>QApplication</name>
<message>
- <location filename="../src/gui/kernel/qapplication.cpp" line="+2212"/>
+ <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>
</message>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.h" line="+322"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
<source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
<translation>Program &apos;%1&apos; vyžaduje Qt %2, nájdené Qt %3.</translation>
</message>
@@ -910,7 +910,7 @@ na
<translation>Chyba kompatibility knižnice Qt</translation>
</message>
<message>
- <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+346"/>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
<source>Activate</source>
<translation>Aktivovať</translation>
</message>
@@ -946,7 +946,7 @@ na
<context>
<name>QCheckBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+84"/>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/>
<source>Uncheck</source>
<translation>Odškrtnúť</translation>
</message>
@@ -964,7 +964,7 @@ na
<context>
<name>QColorDialog</name>
<message>
- <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1219"/>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/>
<source>Hu&amp;e:</source>
<translation>Od&amp;tieň:</translation>
</message>
@@ -1038,13 +1038,13 @@ na
<context>
<name>QComboBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1741"/>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
<location line="+65"/>
<source>Open</source>
<translation>Otvoriť</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+514"/>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
<source>False</source>
<translation>Nepravda</translation>
</message>
@@ -1062,7 +1062,7 @@ na
<context>
<name>QCoreApplication</name>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+89"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
<source>%1: key is empty</source>
<comment>QSystemSemaphore</comment>
<translation type="unfinished"></translation>
@@ -1083,12 +1083,12 @@ na
<context>
<name>QDB2Driver</name>
<message>
- <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1217"/>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
<source>Unable to connect</source>
<translation>Nedá sa pripojiť</translation>
</message>
<message>
- <location line="+263"/>
+ <location line="+303"/>
<source>Unable to commit transaction</source>
<translation>Transakcia sa nedá potvrdiť</translation>
</message>
@@ -1106,8 +1106,8 @@ na
<context>
<name>QDB2Result</name>
<message>
- <location line="-986"/>
- <location line="+242"/>
+ <location line="-1043"/>
+ <location line="+243"/>
<source>Unable to execute statement</source>
<translation>Príkaz sa nedá vykonať</translation>
</message>
@@ -1122,7 +1122,7 @@ na
<translation>Premenná sa nedá naviazať</translation>
</message>
<message>
- <location line="+91"/>
+ <location line="+92"/>
<source>Unable to fetch record %1</source>
<translation>Záznam %1 sa nedá získať</translation>
</message>
@@ -1140,7 +1140,7 @@ na
<context>
<name>QDateTimeEdit</name>
<message>
- <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2265"/>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
<source>AM</source>
<translation>AM</translation>
</message>
@@ -1163,7 +1163,7 @@ na
<context>
<name>QDial</name>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+921"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
<source>QDial</source>
<translation>QDial</translation>
</message>
@@ -1181,7 +1181,7 @@ na
<context>
<name>QDialog</name>
<message>
- <location filename="../src/gui/dialogs/qdialog.cpp" line="+567"/>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
<source>What&apos;s This?</source>
<translation>Čo je to?</translation>
</message>
@@ -1194,9 +1194,9 @@ na
<context>
<name>QDialogButtonBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1830"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
<location line="+464"/>
- <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+531"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -1319,7 +1319,7 @@ na
<context>
<name>QDirModel</name>
<message>
- <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+423"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/>
<source>Name</source>
<translation>Meno</translation>
</message>
@@ -1349,7 +1349,7 @@ na
<context>
<name>QDockWidget</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1209"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
<source>Close</source>
<translation>Zavrieť</translation>
</message>
@@ -1380,7 +1380,7 @@ na
<context>
<name>QErrorMessage</name>
<message>
- <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+361"/>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+391"/>
<source>&amp;Show this message again</source>
<translation>&amp;Zobraziť túto správu aj nabudúce</translation>
</message>
@@ -1408,13 +1408,18 @@ na
<context>
<name>QFile</name>
<message>
- <location filename="../src/corelib/io/qfile.cpp" line="+678"/>
- <location line="+130"/>
+ <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
+ <location line="+141"/>
<source>Destination file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+12"/>
+ <location line="-108"/>
+ <source>Cannot remove source file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+120"/>
<source>Cannot open %1 for input</source>
<translation type="unfinished"></translation>
</message>
@@ -1437,8 +1442,8 @@ na
<context>
<name>QFileDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+484"/>
- <location line="+423"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+515"/>
+ <location line="+444"/>
<source>All Files (*)</source>
<translation>Všetky súbory (*)</translation>
</message>
@@ -1467,26 +1472,26 @@ na
<translation>Detaily</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-440"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-461"/>
<source>Open</source>
<translation>Otvoriť</translation>
</message>
<message>
- <location line="+655"/>
+ <location line="+680"/>
<location line="+50"/>
- <location line="+1440"/>
+ <location line="+1471"/>
<location line="+75"/>
<source>&amp;Open</source>
<translation>&amp;Otvoriť</translation>
</message>
<message>
- <location line="-1565"/>
+ <location line="-1596"/>
<location line="+50"/>
<source>&amp;Save</source>
<translation>&amp;Uložiť</translation>
</message>
<message>
- <location line="-674"/>
+ <location line="-699"/>
<source>&amp;Rename</source>
<translation>P&amp;remenovať</translation>
</message>
@@ -1501,12 +1506,12 @@ na
<translation>Zobraziť &amp;skryté súbory</translation>
</message>
<message>
- <location line="+625"/>
+ <location line="+650"/>
<source>Directories</source>
<translation>Priečinky</translation>
</message>
<message>
- <location line="+811"/>
+ <location line="+832"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>%1 už existuje.
@@ -1522,7 +1527,7 @@ Súbor nenájdený.
Prosím overte správnosť zadaného mena súboru.</translation>
</message>
<message>
- <location line="+1006"/>
+ <location line="+1017"/>
<source>Recent Places</source>
<translation type="unfinished"></translation>
</message>
@@ -1550,8 +1555,8 @@ Prosím overte správnosť zadaného mena súboru.</translation>
<translation>Súbory typu:</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2456"/>
- <location line="+623"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2513"/>
+ <location line="+648"/>
<source>Directory:</source>
<translation>Priečinok:</translation>
</message>
@@ -1564,8 +1569,8 @@ Súbor nenájdený.
Prosím overte správnosť zadaného mena súboru</translation>
</message>
<message>
- <location line="+773"/>
- <location line="+851"/>
+ <location line="+794"/>
+ <location line="+862"/>
<source>%1
Directory not found.
Please verify the correct directory name was given.</source>
@@ -1574,7 +1579,7 @@ Priečinok nenájdený.
Prosím overte správnosť zadaného mena priečinku.</translation>
</message>
<message>
- <location line="-217"/>
+ <location line="-218"/>
<source>&apos;%1&apos; is write protected.
Do you want to delete it anyway?</source>
<translation>&apos;%1&apos; je chránený proti zápisu.
@@ -1591,17 +1596,17 @@ Chcete ho aj tak zmazať?</translation>
<translation>Priečinok sa nedá zmazať.</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+130"/>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
<source>All Files (*.*)</source>
<translation>Všetky súbory (*.*)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2087"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2143"/>
<source>Save As</source>
<translation>Uložiť ako</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+381"/>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+411"/>
<source>Drive</source>
<translation>Oddiel</translation>
</message>
@@ -1632,19 +1637,19 @@ Chcete ho aj tak zmazať?</translation>
<translation>&amp;Nový priečinok</translation>
</message>
<message>
- <location line="+631"/>
+ <location line="+656"/>
<location line="+38"/>
<source>&amp;Choose</source>
<translation>&amp;Zvoliť</translation>
</message>
<message>
- <location line="-662"/>
- <location line="+627"/>
+ <location line="-687"/>
+ <location line="+652"/>
<source>File &amp;name:</source>
<translation>Me&amp;no súboru:</translation>
</message>
<message>
- <location line="+1273"/>
+ <location line="+1304"/>
<source>New Folder</source>
<translation>Nový priečinok</translation>
</message>
@@ -1655,7 +1660,7 @@ Chcete ho aj tak zmazať?</translation>
<translation>Dopredu</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qsidebar.cpp" line="+388"/>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/>
<source>Remove</source>
<translation>Odstrániť</translation>
</message>
@@ -1663,7 +1668,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QFileSystemModel</name>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+707"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+744"/>
<source>%1 TB</source>
<translation>%1 TB</translation>
</message>
@@ -1725,7 +1730,7 @@ Chcete ho aj tak zmazať?</translation>
<translation>Dátum zmeny</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+204"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/>
<source>My Computer</source>
<translation>Môj počítač</translation>
</message>
@@ -1738,7 +1743,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QFontDatabase</name>
<message>
- <location filename="../src/gui/text/qfontdatabase.cpp" line="+60"/>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
<location line="+1176"/>
<source>Normal</source>
<translation type="unfinished"></translation>
@@ -1955,7 +1960,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QFontDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+742"/>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/>
<source>&amp;Font</source>
<translation>&amp;Písmo</translation>
</message>
@@ -2004,7 +2009,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QFtp</name>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="+2273"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+2303"/>
<source>Host %1 found</source>
<translation>Počítač %1 nenájdený</translation>
</message>
@@ -2014,7 +2019,7 @@ Chcete ho aj tak zmazať?</translation>
<translation>Počítač nájdený</translation>
</message>
<message>
- <location filename="../src/network/access/qftp.cpp" line="+973"/>
+ <location filename="../src/network/access/qftp.cpp" line="+1003"/>
<location filename="../src/qt3support/network/q3ftp.cpp" line="-1456"/>
<location line="+1451"/>
<source>Connected to host %1</source>
@@ -2150,7 +2155,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QHostInfo</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_p.h" line="+153"/>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
<source>Unknown error</source>
<translation>Neznáma chyba</translation>
</message>
@@ -2158,11 +2163,11 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QHostInfoAgent</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+148"/>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
<location line="+9"/>
<location line="+64"/>
<location line="+31"/>
- <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+150"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
<location line="+9"/>
<location line="+40"/>
<location line="+27"/>
@@ -2188,13 +2193,13 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QHttp</name>
<message>
- <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+1712"/>
- <location filename="../src/qt3support/network/q3http.cpp" line="+1806"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+876"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+1836"/>
<source>Connection refused</source>
<translation>Spojenie odmietnuté</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="+2597"/>
+ <location filename="../src/network/access/qhttp.cpp" line="+2631"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
<source>Host %1 not found</source>
@@ -2207,12 +2212,12 @@ Chcete ho aj tak zmazať?</translation>
<translation>Neplatná dĺžka obsahu</translation>
</message>
<message>
- <location line="-2200"/>
+ <location line="-2204"/>
<source>HTTPS connection requested but SSL support not compiled in</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2282"/>
+ <location line="+2286"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+10"/>
<location line="+19"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+48"/>
@@ -2246,21 +2251,21 @@ Chcete ho aj tak zmazať?</translation>
<translation>Spojenie uzavreté</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-1073"/>
- <location line="+816"/>
+ <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>Neznáma chyba</translation>
</message>
<message>
- <location line="-564"/>
+ <location line="-568"/>
<location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
<source>Request aborted</source>
<translation>Požiadavka prerušená</translation>
</message>
<message>
- <location line="+575"/>
+ <location line="+579"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
<source>No server set to connect to</source>
<translation>Nenastavený server na pripojenie</translation>
@@ -2278,7 +2283,12 @@ Chcete ho aj tak zmazať?</translation>
<translation>Neplatná hlavička odpovede HTTP</translation>
</message>
<message>
- <location line="+120"/>
+ <location line="+28"/>
+ <source>Unknown authentication method</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+97"/>
<location line="+48"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
<location line="+47"/>
@@ -2306,7 +2316,7 @@ Chcete ho aj tak zmazať?</translation>
<translation>Vyžaduje sa overenie</translation>
</message>
<message>
- <location line="-133"/>
+ <location line="-138"/>
<source>Connection refused (or timed out)</source>
<translation type="unfinished"></translation>
</message>
@@ -2387,7 +2397,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QIBaseDriver</name>
<message>
- <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1378"/>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1428"/>
<source>Error opening database</source>
<translation>Chyba pri otváraní databázy</translation>
</message>
@@ -2410,7 +2420,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QIBaseResult</name>
<message>
- <location line="-1077"/>
+ <location line="-1097"/>
<source>Unable to create BLOB</source>
<translation>BLOB sa nedá vytvoriť</translation>
</message>
@@ -2430,7 +2440,7 @@ Chcete ho aj tak zmazať?</translation>
<translation>BLOB sa nedá čítať</translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<location line="+189"/>
<source>Could not find array</source>
<translation>Pole sa nedá nájsť</translation>
@@ -2500,7 +2510,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QIODevice</name>
<message>
- <location filename="../src/corelib/global/qglobal.cpp" line="+1830"/>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/>
<source>Permission denied</source>
<translation>Prístup zamietnutý</translation>
</message>
@@ -2520,7 +2530,7 @@ Chcete ho aj tak zmazať?</translation>
<translation>Na zariadení nie je voľné miesto</translation>
</message>
<message>
- <location filename="../src/corelib/io/qiodevice.cpp" line="+1506"/>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/>
<source>Unknown error</source>
<translation>Neznáma chyba</translation>
</message>
@@ -2528,7 +2538,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QInputContext</name>
<message>
- <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+212"/>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/>
<source>XIM</source>
<translation>XIM</translation>
</message>
@@ -2551,7 +2561,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QInputDialog</name>
<message>
- <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+193"/>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
<source>Enter a value:</source>
<translation type="unfinished"></translation>
</message>
@@ -2571,7 +2581,7 @@ Chcete ho aj tak zmazať?</translation>
<translation type="obsolete">QLibrary::resolve_sys: Symbol &quot;%1&quot; nie je definovaný v %2 (%3)</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary.cpp" line="+348"/>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
<source>Could not mmap &apos;%1&apos;: %2</source>
<translation>Nedá sa mmap &apos;%1&apos;: %2</translation>
</message>
@@ -2602,7 +2612,7 @@ Chcete ho aj tak zmazať?</translation>
</message>
<message>
<location line="-377"/>
- <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+250"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
<source>The shared library was not found.</source>
<translation>Zdieľaná knižnica nebola nájdená.</translation>
</message>
@@ -2617,8 +2627,8 @@ Chcete ho aj tak zmazať?</translation>
<translation>Modul &apos;%1&apos; používa nekompatibilnú Qt knižnicu. (Nedajú sa miešať debug a release knižnice.)</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+179"/>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+69"/>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
<source>Cannot load library %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2638,7 +2648,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QLineEdit</name>
<message>
- <location filename="../src/gui/widgets/qlineedit.cpp" line="+2649"/>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+2680"/>
<source>&amp;Undo</source>
<translation>V&amp;rátiť späť</translation>
</message>
@@ -2676,8 +2686,8 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QLocalServer</name>
<message>
- <location filename="../src/network/socket/qlocalserver.cpp" line="+196"/>
- <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+201"/>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/>
<source>%1: Name error</source>
<translation type="unfinished"></translation>
</message>
@@ -2693,7 +2703,7 @@ Chcete ho aj tak zmazať?</translation>
</message>
<message>
<location line="+5"/>
- <location filename="../src/network/socket/qlocalserver_win.cpp" line="+127"/>
+ <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/>
<source>%1: Unknown error %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2701,8 +2711,8 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QLocalSocket</name>
<message>
- <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+102"/>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+104"/>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/>
<source>%1: Connection refused</source>
<translation type="unfinished"></translation>
</message>
@@ -2715,7 +2725,7 @@ Chcete ho aj tak zmazať?</translation>
<message>
<location line="+3"/>
<location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
- <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+50"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/>
<location line="+43"/>
<source>%1: Invalid name</source>
<translation type="unfinished"></translation>
@@ -2772,7 +2782,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QMYSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1200"/>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1231"/>
<source>Unable to open database &apos;</source>
<translation>Databáza sa nedá otvoriť &apos;</translation>
</message>
@@ -2782,7 +2792,7 @@ Chcete ho aj tak zmazať?</translation>
<translation>Nedá sa pripojiť</translation>
</message>
<message>
- <location line="+123"/>
+ <location line="+127"/>
<source>Unable to begin transaction</source>
<translation>Transakcia sa nedá spustiť</translation>
</message>
@@ -2800,7 +2810,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QMYSQLResult</name>
<message>
- <location line="-917"/>
+ <location line="-922"/>
<source>Unable to fetch data</source>
<translation>Dáta sa nedajú získať</translation>
</message>
@@ -2815,7 +2825,7 @@ Chcete ho aj tak zmazať?</translation>
<translation>Výsledok sa nedá uložiť</translation>
</message>
<message>
- <location line="+189"/>
+ <location line="+190"/>
<location line="+8"/>
<source>Unable to prepare statement</source>
<translation>Príkaz sa nedá pripraviť</translation>
@@ -2860,7 +2870,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QMdiArea</name>
<message>
- <location filename="../src/gui/widgets/qmdiarea.cpp" line="+260"/>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
<source>(Untitled)</source>
<translation type="unfinished"></translation>
</message>
@@ -2868,7 +2878,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QMdiSubWindow</name>
<message>
- <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+250"/>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
<source>%1 - [%2]</source>
<translation>%1 - [%2]</translation>
</message>
@@ -2961,7 +2971,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QMenu</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+127"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
<location line="+225"/>
<source>Close</source>
<translation>Zavrieť</translation>
@@ -3034,7 +3044,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QMessageBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1958"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1964"/>
<location line="+852"/>
<location filename="../src/gui/dialogs/qmessagebox.h" line="-52"/>
<location line="+8"/>
@@ -3042,26 +3052,25 @@ Chcete ho aj tak zmazať?</translation>
<translation>OK</translation>
</message>
<message>
- <location line="+503"/>
+ <location line="+509"/>
<source>About Qt</source>
<translation>Informácie o Qt</translation>
</message>
<message>
- <location line="-502"/>
+ <location line="-508"/>
<source>Help</source>
<translation>Pomocník</translation>
</message>
<message>
- <location line="+487"/>
<source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Tento program používa Qt verziu %1.&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Tento program používa Qt verziu %1.&lt;/p&gt;</translation>
</message>
<message>
<source>&lt;h3&gt;About Qt&lt;/h3&gt;%1&lt;p&gt;Qt is a C++ toolkit for cross-platform application development.&lt;/p&gt;&lt;p&gt;Qt provides single-source portability across MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt is a Trolltech product. See &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
<translation type="obsolete">&lt;h3&gt;Informácie o Qt&lt;h3&gt;%1&lt;p&gt;Qt je C++ nástroj pre vývoj viac-platformových aplikácií.&lt;/p&gt;&lt;p&gt;Qt poskytuje jedno zdrojový prenos medzi MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux a všetkými významnými komerčnými variantmi Unix. Qt je tiež dostupná pre vložené zariadenia ako Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt je produkt spoločnosti Trolltech. Pozrite &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; pre viac informácií.&lt;/p&gt;</translation>
</message>
<message>
- <location line="-1584"/>
+ <location line="-1097"/>
<source>Show Details...</source>
<translation>Zobraziť detaily...</translation>
</message>
@@ -3072,19 +3081,18 @@ Chcete ho aj tak zmazať?</translation>
</message>
<message>
<location line="+1570"/>
- <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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
+ <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://www.qtsoftware.com/products/licensing&quot;&gt;www.qtsoftware.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://www.qtsoftware.com/qt/&quot;&gt;www.qtsoftware.com/qt&lt;/a&gt; for more information.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+15"/>
<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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Tento program používa Qt Open Source Edition verziu %1.&lt;/p&gt;&lt;p&gt;Qt Open Source Edition je určená pre vývoj Open Source aplikácií. Pre vývoj vlastnených (closed source) aplikácií potrebujete komerčnú Qt licenciu.&lt;/p&gt;&lt;p&gt;Prosím pozrite &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;qtsoftware.com/company/model.html&lt;/a&gt; pre prehľad Qt licencovania.&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Tento program používa Qt Open Source Edition verziu %1.&lt;/p&gt;&lt;p&gt;Qt Open Source Edition je určená pre vývoj Open Source aplikácií. Pre vývoj vlastnených (closed source) aplikácií potrebujete komerčnú Qt licenciu.&lt;/p&gt;&lt;p&gt;Prosím pozrite &lt;a href=&quot;http://qtsoftware.com/company/model.html&quot;&gt;qtsoftware.com/company/model.html&lt;/a&gt; pre prehľad Qt licencovania.&lt;/p&gt;</translation>
</message>
</context>
<context>
<name>QMultiInputContext</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+58"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
<source>Select IM</source>
<translation>Vybrať IM</translation>
</message>
@@ -3092,7 +3100,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QMultiInputContextPlugin</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+65"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
<source>Multiple input method switcher</source>
<translation>Prepínač metódy viacnásobného vstupu</translation>
</message>
@@ -3105,7 +3113,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QNativeSocketEngine</name>
<message>
- <location filename="../src/network/socket/qnativesocketengine.cpp" line="+176"/>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/>
<source>The remote host closed the connection</source>
<translation>Vzdialený počítač uzavrel spojenie</translation>
</message>
@@ -3238,7 +3246,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QNetworkAccessCacheBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+35"/>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
<source>Error opening %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3246,7 +3254,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QNetworkAccessFileBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+69"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/>
<source>Request for opening non-local file %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3274,7 +3282,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QNetworkAccessFtpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+135"/>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3284,7 +3292,7 @@ Chcete ho aj tak zmazať?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+131"/>
+ <location line="+130"/>
<source>Logging in to %1 failed: authentication required</source>
<translation type="unfinished"></translation>
</message>
@@ -3302,7 +3310,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QNetworkAccessHttpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+565"/>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3315,7 +3323,7 @@ Chcete ho aj tak zmazať?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+37"/>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/>
<source>Protocol &quot;%1&quot; is unknown</source>
<translation type="unfinished"></translation>
</message>
@@ -3323,7 +3331,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QNetworkReplyImpl</name>
<message>
- <location line="+422"/>
+ <location line="+432"/>
<location line="+22"/>
<source>Operation canceled</source>
<translation type="unfinished"></translation>
@@ -3332,7 +3340,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QOCIDriver</name>
<message>
- <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2027"/>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2069"/>
<source>Unable to logon</source>
<translation>Nedá sa prihlásiť</translation>
</message>
@@ -3361,7 +3369,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QOCIResult</name>
<message>
- <location line="-976"/>
+ <location line="-963"/>
<location line="+161"/>
<location line="+15"/>
<source>Unable to bind column for batch execute</source>
@@ -3388,18 +3396,16 @@ Chcete ho aj tak zmazať?</translation>
<translation>Príkaz sa nedá pripraviť</translation>
</message>
<message>
- <location line="+29"/>
- <location line="+37"/>
+ <location line="+36"/>
<source>Unable to bind value</source>
<translation>Hodnota sa nedá previazať</translation>
</message>
<message>
- <location line="-20"/>
<source>Unable to execute select statement</source>
- <translation>Príkaz select sa nedá vykonať</translation>
+ <translation type="obsolete">Príkaz select sa nedá vykonať</translation>
</message>
<message>
- <location line="+32"/>
+ <location line="+19"/>
<source>Unable to execute statement</source>
<translation>Príkaz sa nedá vykonať</translation>
</message>
@@ -3407,7 +3413,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QODBCDriver</name>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1657"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1785"/>
<source>Unable to connect</source>
<translation>Nedá sa pripojiť</translation>
</message>
@@ -3417,7 +3423,7 @@ Chcete ho aj tak zmazať?</translation>
<translation>Nedá sa pripojiť - ovládač neposkytuje všetku požadovanú funkcionalitu</translation>
</message>
<message>
- <location line="+234"/>
+ <location line="+242"/>
<source>Unable to disable autocommit</source>
<translation>Nedá sa zakázať automatické potvrdzovanie</translation>
</message>
@@ -3440,19 +3446,19 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QODBCResult</name>
<message>
- <location line="-1204"/>
+ <location line="-1218"/>
<location line="+349"/>
<source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
<translation>QODBCResult::reset: Pre príkaz sa nedá nastaviť atribút &apos;SQL_CURSOR_STATIC&apos;. Prosím skontrolujte konfiguráciu ovládača ODBC</translation>
</message>
<message>
<location line="-332"/>
- <location line="+625"/>
+ <location line="+626"/>
<source>Unable to execute statement</source>
<translation>Príkaz sa nedá vykonať</translation>
</message>
<message>
- <location line="-554"/>
+ <location line="-555"/>
<source>Unable to fetch next</source>
<translation>Nedá sa získať ďaľší záznam</translation>
</message>
@@ -3462,19 +3468,19 @@ Chcete ho aj tak zmazať?</translation>
<translation>Príkaz sa nedá pripraviť</translation>
</message>
<message>
- <location line="+267"/>
+ <location line="+268"/>
<source>Unable to bind variable</source>
<translation>Premenná sa nedá previazať</translation>
</message>
<message>
<location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-474"/>
- <location line="+577"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-475"/>
+ <location line="+578"/>
<source>Unable to fetch last</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-671"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
<source>Unable to fetch</source>
<translation type="unfinished"></translation>
</message>
@@ -3492,12 +3498,12 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QObject</name>
<message>
- <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+134"/>
+ <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
<source>Home</source>
<translation>Domov</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+44"/>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
<source>Operation not supported on %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3507,7 +3513,7 @@ Chcete ho aj tak zmazať?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+145"/>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
<source>Write error writing to %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -3532,7 +3538,7 @@ Chcete ho aj tak zmazať?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/kernel/qhostinfo.cpp" line="+147"/>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
<location line="+57"/>
<source>No host name given</source>
<translation type="unfinished"></translation>
@@ -3541,7 +3547,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QPPDOptionsModel</name>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1165"/>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/>
<source>Name</source>
<translation type="unfinished">Meno</translation>
</message>
@@ -3554,7 +3560,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QPSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+732"/>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/>
<source>Unable to connect</source>
<translation>Nedá sa pripojiť</translation>
</message>
@@ -3574,7 +3580,7 @@ Chcete ho aj tak zmazať?</translation>
<translation>Transakcia sa nedá vrátiť späť</translation>
</message>
<message>
- <location line="+336"/>
+ <location line="+358"/>
<source>Unable to subscribe</source>
<translation type="unfinished"></translation>
</message>
@@ -3587,12 +3593,12 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QPSQLResult</name>
<message>
- <location line="-1035"/>
+ <location line="-1058"/>
<source>Unable to create query</source>
<translation>Nedá sa vytvoriť hľadanie</translation>
</message>
<message>
- <location line="+373"/>
+ <location line="+374"/>
<source>Unable to prepare statement</source>
<translation type="unfinished"></translation>
</message>
@@ -3600,7 +3606,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QPageSetupWidget</name>
<message>
- <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+274"/>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
<source>Centimeters (cm)</source>
<translation type="unfinished"></translation>
</message>
@@ -3716,7 +3722,7 @@ Chcete ho aj tak zmazať?</translation>
<context>
<name>QPrintDialog</name>
<message>
- <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+68"/>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/>
<source>locally connected</source>
<translation>lokálne pripojená</translation>
</message>
@@ -3733,7 +3739,7 @@ Chcete ho aj tak zmazať?</translation>
<translation>neznáme</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+238"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -3746,7 +3752,7 @@ Chcete ho aj tak zmazať?</translation>
<translation type="obsolete">Tlačiť farebne ak je to dostupné</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+345"/>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+375"/>
<source>Print all</source>
<translation>Tlačiť všetko</translation>
</message>
@@ -3943,7 +3949,7 @@ Chcete ho aj tak zmazať?</translation>
<translation type="obsolete">Zdroj papiera:</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+80"/>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
<location line="+13"/>
<location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
<source>Print</source>
@@ -4245,13 +4251,13 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QPrintPreviewDialog</name>
<message>
- <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+38"/>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
<location line="+12"/>
<source>Page Setup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+222"/>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/>
<source>%1%</source>
<translation type="unfinished"></translation>
</message>
@@ -4533,8 +4539,8 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QProcess</name>
<message>
- <location filename="../src/corelib/io/qprocess_unix.cpp" line="+445"/>
- <location filename="../src/corelib/io/qprocess_win.cpp" line="+117"/>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
<source>Could not open input redirection for reading</source>
<translation type="unfinished"></translation>
</message>
@@ -4563,7 +4569,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/io/qprocess.cpp" line="+503"/>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+533"/>
<location line="+52"/>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
<location line="+50"/>
@@ -4583,6 +4589,11 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+912"/>
+ <source>No program defined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
<source>Process failed to start</source>
<translation type="unfinished"></translation>
@@ -4591,7 +4602,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QProgressDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+152"/>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
<source>Cancel</source>
<translation>Storno</translation>
</message>
@@ -4615,7 +4626,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QRegExp</name>
<message>
- <location filename="../src/corelib/tools/qregexp.cpp" line="+34"/>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/>
<source>no error occurred</source>
<translation>nevyskytli sa žiadne chyby</translation>
</message>
@@ -4663,7 +4674,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QSQLite2Driver</name>
<message>
- <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+353"/>
+ <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
<source>Error to open database</source>
<translation>Chyba pri otváraní databázy</translation>
</message>
@@ -4686,12 +4697,12 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QSQLite2Result</name>
<message>
- <location line="-310"/>
+ <location line="-323"/>
<source>Unable to fetch results</source>
<translation>Výsledky sa nedajú získať</translation>
</message>
<message>
- <location line="+139"/>
+ <location line="+147"/>
<source>Unable to execute statement</source>
<translation>Príkaz sa nedá vykonať</translation>
</message>
@@ -4699,7 +4710,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QSQLiteDriver</name>
<message>
- <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+498"/>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/>
<source>Error opening database</source>
<translation>Chyba pri otváraní databázy</translation>
</message>
@@ -4766,12 +4777,12 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QScrollBar</name>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="+419"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/>
<source>Scroll here</source>
<translation>Posunúť sem</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Left edge</source>
<translation>Ľavá hrana</translation>
</message>
@@ -4781,7 +4792,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation>Vrch</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Right edge</source>
<translation>Pravá hrana</translation>
</message>
@@ -4791,7 +4802,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation>Spodok</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Page left</source>
<translation>Strana naľavo</translation>
</message>
@@ -4802,7 +4813,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation>Strana nahor</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Page right</source>
<translation>Strana napravo</translation>
</message>
@@ -4813,7 +4824,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation>Strana nadol</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Scroll left</source>
<translation>Posunúť naľavo</translation>
</message>
@@ -4823,7 +4834,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation>Posunúť nahor</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Scroll right</source>
<translation>Posunúť napravo</translation>
</message>
@@ -4851,7 +4862,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QSharedMemory</name>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+177"/>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+207"/>
<source>%1: unable to set key on lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4862,7 +4873,7 @@ Prosím zvoľte iné meno súboru.</translation>
</message>
<message>
<location line="+168"/>
- <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+118"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
<source>%1: unable to lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4872,8 +4883,8 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+48"/>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+57"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
<source>%1: permission denied</source>
<translation type="unfinished"></translation>
</message>
@@ -4951,7 +4962,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QShortcut</name>
<message>
- <location filename="../src/gui/kernel/qkeysequence.cpp" line="+343"/>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/>
<source>Space</source>
<translation>Medzera</translation>
</message>
@@ -5536,7 +5547,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QSql</name>
<message>
- <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+860"/>
+ <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
<source>Delete</source>
<translation>Odstrániť</translation>
</message>
@@ -5593,7 +5604,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QSslSocket</name>
<message>
- <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+230"/>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+260"/>
<source>Error creating SSL context (%1)</source>
<translation>Chyba pri vytváraní SSL kontextu (%1)</translation>
</message>
@@ -5656,7 +5667,7 @@ Prosím zvoľte iné meno súboru.</translation>
<name>QSystemSemaphore</name>
<message>
<location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+36"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
<source>%1: out of resources</source>
<translation type="unfinished"></translation>
</message>
@@ -5686,7 +5697,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QTDSDriver</name>
<message>
- <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+552"/>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
<source>Unable to open connection</source>
<translation>Nedá sa otvoriť spojenie</translation>
</message>
@@ -5716,7 +5727,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="obsolete">Nepodporovaná operácia so soketom</translation>
</message>
<message>
- <location filename="../src/network/socket/qtcpserver.cpp" line="+252"/>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
<source>Operation on socket is not supported</source>
<translation type="unfinished"></translation>
</message>
@@ -5724,7 +5735,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QTextControl</name>
<message>
- <location filename="../src/gui/text/qtextcontrol.cpp" line="+1942"/>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/>
<source>&amp;Undo</source>
<translation>V&amp;rátiť späť</translation>
</message>
@@ -5782,7 +5793,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QUdpSocket</name>
<message>
- <location filename="../src/network/socket/qudpsocket.cpp" line="+139"/>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
<source>This platform does not support IPv6</source>
<translation>Táto platforma nepodporuje IPv6</translation>
</message>
@@ -5790,7 +5801,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QUndoGroup</name>
<message>
- <location filename="../src/gui/util/qundogroup.cpp" line="+356"/>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+386"/>
<source>Undo</source>
<translation>Vrátiť späť</translation>
</message>
@@ -5803,7 +5814,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QUndoModel</name>
<message>
- <location filename="../src/gui/util/qundoview.cpp" line="+71"/>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
<source>&lt;empty&gt;</source>
<translation>&lt;prázdne&gt;</translation>
</message>
@@ -5811,7 +5822,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QUndoStack</name>
<message>
- <location filename="../src/gui/util/qundostack.cpp" line="+804"/>
+ <location filename="../src/gui/util/qundostack.cpp" line="+834"/>
<source>Undo</source>
<translation>Vrátiť späť</translation>
</message>
@@ -5882,7 +5893,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QWebFrame</name>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+686"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
<source>Request cancelled</source>
<translation type="unfinished"></translation>
</message>
@@ -6292,7 +6303,7 @@ Prosím zvoľte iné meno súboru.</translation>
</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1342"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
<source>JavaScript Alert - %1</source>
<translation type="unfinished"></translation>
</message>
@@ -6368,6 +6379,11 @@ Prosím zvoľte iné meno súboru.</translation>
</message>
<message>
<location line="+3"/>
+ <source>Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
<source>Select to the next character</source>
<translation type="unfinished"></translation>
</message>
@@ -6436,11 +6452,21 @@ Prosím zvoľte iné meno súboru.</translation>
<source>Delete to the end of the word</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+33"/>
+ <source>Insert a new paragraph</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QWhatsThisAction</name>
<message>
- <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+492"/>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
<source>What&apos;s This?</source>
<translation>Čo je to?</translation>
</message>
@@ -6448,7 +6474,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5290"/>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/>
<source>*</source>
<translation>*</translation>
</message>
@@ -6456,7 +6482,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QWizard</name>
<message>
- <location filename="../src/gui/dialogs/qwizard.cpp" line="+605"/>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/>
<source>Go Back</source>
<translation>Vrátiť sa späť</translation>
</message>
@@ -6518,7 +6544,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QWorkspace</name>
<message>
- <location filename="../src/gui/widgets/qworkspace.cpp" line="+1064"/>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/>
<source>&amp;Restore</source>
<translation>&amp;Obnoviť</translation>
</message>
@@ -6588,7 +6614,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QXml</name>
<message>
- <location filename="../src/xml/sax/qxml.cpp" line="+28"/>
+ <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
<source>no error occurred</source>
<translation>nevyskytla sa žiadna chyba</translation>
</message>
@@ -6706,8 +6732,8 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QXmlStream</name>
<message>
- <location filename="../src/corelib/xml/qxmlstream.cpp" line="+562"/>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1739"/>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/>
<source>Extra content at end of document.</source>
<translation>Obsah naviac na konci dokumentu.</translation>
</message>
@@ -6895,7 +6921,7 @@ Prosím zvoľte iné meno súboru.</translation>
<context>
<name>QtXmlPatterns</name>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+175"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
<source>An %1-attribute with value %2 has already been declared.</source>
<translation type="unfinished"></translation>
</message>
@@ -6905,12 +6931,12 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+54"/>
+ <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
<source>Network timeout.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+290"/>
+ <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>
@@ -6920,7 +6946,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+50"/>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
<source>Year %1 is invalid because it begins with %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6960,7 +6986,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+69"/>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/>
<location line="+15"/>
<source>At least one component must be present.</source>
<translation type="unfinished"></translation>
@@ -6971,7 +6997,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+34"/>
+ <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
<source>No operand in an integer division, %1, can be %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6986,17 +7012,17 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+102"/>
+ <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/>
<source>%1 is not a valid value of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+193"/>
+ <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="+35"/>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
<source>Integer division (%1) by zero (%2) is undefined.</source>
<translation type="unfinished"></translation>
</message>
@@ -7027,17 +7053,17 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+49"/>
+ <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/>
<source>A value of type %1 cannot have an Effective Boolean Value.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+48"/>
+ <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/>
<source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+372"/>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
<source>Value %1 of type %2 exceeds maximum (%3).</source>
<translation type="unfinished"></translation>
</message>
@@ -7047,7 +7073,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+61"/>
+ <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/>
<source>A value of type %1 must contain an even number of digits. The value %2 does not.</source>
<translation type="unfinished"></translation>
</message>
@@ -7057,7 +7083,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+177"/>
+ <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
<source>Operator %1 cannot be used on type %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -7067,7 +7093,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+36"/>
+ <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 type="unfinished"></translation>
</message>
@@ -7077,7 +7103,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
<source>Type error in cast, expected %1, received %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -7087,7 +7113,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+104"/>
+ <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/>
<source>No casting is possible with %1 as the target type.</source>
<translation type="unfinished"></translation>
</message>
@@ -7112,7 +7138,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+37"/>
+ <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
<source>A comment cannot contain %1</source>
<translation type="unfinished"></translation>
</message>
@@ -7122,7 +7148,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+137"/>
+ <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
<source>No comparisons can be done involving the type %1.</source>
<translation type="unfinished"></translation>
</message>
@@ -7132,12 +7158,12 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+56"/>
+ <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="+139"/>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
<source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
<translation type="unfinished"></translation>
</message>
@@ -7147,7 +7173,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+76"/>
+ <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>
@@ -7157,7 +7183,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+83"/>
+ <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+113"/>
<source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source>
<translation type="unfinished"></translation>
</message>
@@ -7167,33 +7193,33 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+79"/>
+ <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="+54"/>
+ <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/>
<source>The data of a processing instruction cannot contain the string %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+52"/>
+ <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="+126"/>
+ <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="+39"/>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
<source>%1 is an invalid %2</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+47"/>
+ <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/>
<source>%1 takes at most %n argument(s). %2 is therefore invalid.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -7207,7 +7233,7 @@ Prosím zvoľte iné meno súboru.</translation>
</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+90"/>
+ <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/>
<source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source>
<translation type="unfinished"></translation>
</message>
@@ -7222,27 +7248,27 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/>
<source>%1 is not a valid XML 1.0 character.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+167"/>
+ <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
<source>The first argument to %1 cannot be of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+56"/>
+ <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="+31"/>
+ <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
<source>%1 was called.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+64"/>
+ <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>
@@ -7257,7 +7283,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+62"/>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
<source>%1 matches newline characters</source>
<translation type="unfinished"></translation>
</message>
@@ -7292,17 +7318,17 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+317"/>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/>
<source>It will not be possible to retrieve %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+24"/>
+ <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="+249"/>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
<source>The default collection is undefined</source>
<translation type="unfinished"></translation>
</message>
@@ -7312,12 +7338,12 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+222"/>
+ <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="+57"/>
+ <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>
@@ -7327,17 +7353,17 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+28"/>
+ <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="+37"/>
+ <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/>
<source>The item %1 did not match the required type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+319"/>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/>
<location line="+7253"/>
<source>%1 is an unknown schema type.</source>
<translation type="unfinished"></translation>
@@ -7358,7 +7384,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+63"/>
+ <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
<source>The variable %1 is unused</source>
<translation type="unfinished"></translation>
</message>
@@ -7640,7 +7666,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+25"/>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
<source>empty</source>
<translation type="unfinished"></translation>
</message>
@@ -7665,7 +7691,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+33"/>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
<source>Required type is %1, but %2 was found.</source>
<translation type="unfinished"></translation>
</message>
@@ -7680,7 +7706,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+56"/>
+ <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>
@@ -7690,12 +7716,12 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+90"/>
+ <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/>
<source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+284"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
<source>%1 is an unsupported encoding.</source>
<translation type="unfinished"></translation>
</message>
@@ -7710,13 +7736,13 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+89"/>
+ <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
<source>Ambiguous rule match.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+39"/>
- <source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source>
+ <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>
@@ -7735,12 +7761,12 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+87"/>
+ <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
<source>Circularity detected</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+115"/>
+ <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/>
<source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
<translation type="unfinished"></translation>
</message>
@@ -7750,12 +7776,12 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+35"/>
+ <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="+489"/>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
<source>Element %1 is not allowed at this location.</source>
<translation type="unfinished"></translation>
</message>
@@ -7810,7 +7836,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+153"/>
+ <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/>
<source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source>
<translation type="unfinished"></translation>
</message>
@@ -7885,7 +7911,7 @@ Prosím zvoľte iné meno súboru.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+432"/>
+ <location line="+434"/>
<source>Element %1 cannot have a sequence constructor.</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/qt_sv.ts b/translations/qt_sv.ts
index f27480d..d6affce 100644
--- a/translations/qt_sv.ts
+++ b/translations/qt_sv.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioOutput</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+374"/>
+ <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/>
<source>&lt;html&gt;The audio playback device &lt;b&gt;%1&lt;/b&gt; does not work.&lt;br/&gt;Falling back to &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -22,7 +22,7 @@
<context>
<name>CloseButton</name>
<message>
- <location filename="../src/gui/widgets/qtabbar.cpp" line="+2217"/>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/>
<source>Close Tab</source>
<translation type="unfinished"></translation>
</message>
@@ -89,7 +89,7 @@
<context>
<name>Phonon::Gstreamer::MediaObject</name>
<message>
- <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+88"/>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/>
<source>Cannot start playback.
Check your Gstreamer installation and make sure you
@@ -102,24 +102,24 @@ have libgstreamer-plugins-base installed.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+653"/>
- <location line="+9"/>
+ <location line="+676"/>
+ <location line="+8"/>
<location line="+15"/>
- <location line="+7"/>
- <location line="+5"/>
- <location line="+20"/>
- <location line="+317"/>
+ <location line="+9"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+335"/>
<location line="+24"/>
<source>Could not open media source.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-381"/>
+ <location line="-403"/>
<source>Invalid source type.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+355"/>
+ <location line="+377"/>
<source>Could not locate media source.</source>
<translation type="unfinished"></translation>
</message>
@@ -153,7 +153,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3Accel</name>
<message>
- <location filename="../src/qt3support/other/q3accel.cpp" line="+451"/>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
<source>%1, %2 not defined</source>
<translation>%1, %2 är inte definierad</translation>
</message>
@@ -166,7 +166,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3DataTable</name>
<message>
- <location filename="../src/qt3support/sql/q3datatable.cpp" line="+253"/>
+ <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
<source>True</source>
<translation>Sant</translation>
</message>
@@ -194,7 +194,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3FileDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+834"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+864"/>
<source>Copy or Move a File</source>
<translation>Kopiera eller ta bort en fil</translation>
</message>
@@ -219,7 +219,7 @@ have libgstreamer-plugins-base installed.</source>
<location line="-157"/>
<location line="+49"/>
<location line="+2153"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+80"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
<source>All Files (*)</source>
<translation>Alla filer (*)</translation>
</message>
@@ -359,7 +359,7 @@ have libgstreamer-plugins-base installed.</source>
<message>
<location line="+704"/>
<location line="+2100"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+307"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/>
<source>Open</source>
<translation>Öppna</translation>
</message>
@@ -527,7 +527,7 @@ Kontrollera sökväg och filnamn.</translation>
<context>
<name>Q3LocalFs</name>
<message>
- <location filename="../src/qt3support/network/q3localfs.cpp" line="+100"/>
+ <location filename="../src/qt3support/network/q3localfs.cpp" line="+130"/>
<location line="+10"/>
<source>Could not read directory
%1</source>
@@ -577,7 +577,7 @@ till
<context>
<name>Q3MainWindow</name>
<message>
- <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2021"/>
+ <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
<source>Line up</source>
<translation>Rada upp</translation>
</message>
@@ -590,7 +590,7 @@ till
<context>
<name>Q3NetworkProtocol</name>
<message>
- <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+824"/>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
<source>Operation stopped by the user</source>
<translation>Åtgärden stoppades av användaren</translation>
</message>
@@ -598,7 +598,7 @@ till
<context>
<name>Q3ProgressDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+194"/>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
<location line="+61"/>
<source>Cancel</source>
<translation>Avbryt</translation>
@@ -607,7 +607,7 @@ till
<context>
<name>Q3TabDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+159"/>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/>
<location line="+814"/>
<source>OK</source>
<translation>OK</translation>
@@ -636,7 +636,7 @@ till
<context>
<name>Q3TextEdit</name>
<message>
- <location filename="../src/qt3support/text/q3textedit.cpp" line="+5399"/>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
<source>&amp;Undo</source>
<translation>&amp;Ångra</translation>
</message>
@@ -675,7 +675,7 @@ till
<context>
<name>Q3TitleBar</name>
<message>
- <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+216"/>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
<source>System</source>
<translation>System</translation>
</message>
@@ -743,7 +743,7 @@ till
<context>
<name>Q3ToolBar</name>
<message>
- <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+662"/>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
<source>More...</source>
<translation>Mer...</translation>
</message>
@@ -751,7 +751,7 @@ till
<context>
<name>Q3UrlOperator</name>
<message>
- <location filename="../src/qt3support/network/q3urloperator.cpp" line="+356"/>
+ <location filename="../src/qt3support/network/q3urloperator.cpp" line="+386"/>
<location line="+260"/>
<location line="+4"/>
<source>The protocol `%1&apos; is not supported</source>
@@ -803,7 +803,7 @@ till
<context>
<name>Q3Wizard</name>
<message>
- <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+147"/>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
<source>&amp;Cancel</source>
<translation>&amp;Avbryt</translation>
</message>
@@ -831,9 +831,9 @@ till
<context>
<name>QAbstractSocket</name>
<message>
- <location filename="../src/network/socket/qabstractsocket.cpp" line="+838"/>
- <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+585"/>
- <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+627"/>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
<location line="+26"/>
<source>Host not found</source>
<translation>Värden hittades inte</translation>
@@ -876,7 +876,7 @@ till
<context>
<name>QAbstractSpinBox</name>
<message>
- <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1169"/>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/>
<source>&amp;Step up</source>
<translation>&amp;Stega uppåt</translation>
</message>
@@ -894,12 +894,12 @@ till
<context>
<name>QApplication</name>
<message>
- <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+346"/>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
<source>Activate</source>
<translation>Aktivera</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.h" line="+322"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
<source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
<translation>Binären \&quot;%1\&quot; kräver Qt %2, hittade Qt %3.</translation>
</message>
@@ -909,7 +909,7 @@ till
<translation>Inkompatibelt Qt-biblioteksfel</translation>
</message>
<message>
- <location filename="../src/gui/kernel/qapplication.cpp" line="+2212"/>
+ <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>
@@ -946,7 +946,7 @@ till
<context>
<name>QCheckBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+84"/>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/>
<source>Uncheck</source>
<translation>Avkryssa</translation>
</message>
@@ -964,7 +964,7 @@ till
<context>
<name>QColorDialog</name>
<message>
- <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1219"/>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/>
<source>Hu&amp;e:</source>
<translation>Nya&amp;ns:</translation>
</message>
@@ -1038,13 +1038,13 @@ till
<context>
<name>QComboBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1741"/>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
<location line="+65"/>
<source>Open</source>
<translation>Öppna</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+514"/>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
<source>False</source>
<translation type="unfinished">Falskt</translation>
</message>
@@ -1062,7 +1062,7 @@ till
<context>
<name>QCoreApplication</name>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+89"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
<source>%1: key is empty</source>
<comment>QSystemSemaphore</comment>
<translation type="unfinished"></translation>
@@ -1083,12 +1083,12 @@ till
<context>
<name>QDB2Driver</name>
<message>
- <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1217"/>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
<source>Unable to connect</source>
<translation>Kunde inte ansluta</translation>
</message>
<message>
- <location line="+263"/>
+ <location line="+303"/>
<source>Unable to commit transaction</source>
<translation>Kunde inte verkställa transaktion</translation>
</message>
@@ -1106,8 +1106,8 @@ till
<context>
<name>QDB2Result</name>
<message>
- <location line="-986"/>
- <location line="+242"/>
+ <location line="-1043"/>
+ <location line="+243"/>
<source>Unable to execute statement</source>
<translation>Kunde inte köra frågesats</translation>
</message>
@@ -1122,7 +1122,7 @@ till
<translation>Kunde inte binda variabel</translation>
</message>
<message>
- <location line="+91"/>
+ <location line="+92"/>
<source>Unable to fetch record %1</source>
<translation>Kunde inte hämta posten %1</translation>
</message>
@@ -1140,7 +1140,7 @@ till
<context>
<name>QDateTimeEdit</name>
<message>
- <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2265"/>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
<source>AM</source>
<translation>AM</translation>
</message>
@@ -1163,7 +1163,7 @@ till
<context>
<name>QDial</name>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+921"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
<source>QDial</source>
<translation type="unfinished"></translation>
</message>
@@ -1181,7 +1181,7 @@ till
<context>
<name>QDialog</name>
<message>
- <location filename="../src/gui/dialogs/qdialog.cpp" line="+567"/>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
<source>What&apos;s This?</source>
<translation>Vad är det här?</translation>
</message>
@@ -1194,9 +1194,9 @@ till
<context>
<name>QDialogButtonBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1830"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
<location line="+464"/>
- <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+531"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -1319,7 +1319,7 @@ till
<context>
<name>QDirModel</name>
<message>
- <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+423"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/>
<source>Name</source>
<translation>Namn</translation>
</message>
@@ -1349,7 +1349,7 @@ till
<context>
<name>QDockWidget</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1209"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
<source>Close</source>
<translation type="unfinished">Stäng</translation>
</message>
@@ -1380,7 +1380,7 @@ till
<context>
<name>QErrorMessage</name>
<message>
- <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+162"/>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+192"/>
<source>Debug Message:</source>
<translation>Felsökningsmeddelande:</translation>
</message>
@@ -1408,13 +1408,18 @@ till
<context>
<name>QFile</name>
<message>
- <location filename="../src/corelib/io/qfile.cpp" line="+678"/>
- <location line="+130"/>
+ <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
+ <location line="+141"/>
<source>Destination file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+12"/>
+ <location line="-108"/>
+ <source>Cannot remove source file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+120"/>
<source>Cannot open %1 for input</source>
<translation type="unfinished"></translation>
</message>
@@ -1437,37 +1442,37 @@ till
<context>
<name>QFileDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+484"/>
- <location line="+423"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+515"/>
+ <location line="+444"/>
<source>All Files (*)</source>
<translation>Alla filer (*)</translation>
</message>
<message>
- <location line="+218"/>
+ <location line="+222"/>
<source>Directories</source>
<translation>Kataloger</translation>
</message>
<message>
<location line="-3"/>
<location line="+50"/>
- <location line="+1440"/>
+ <location line="+1471"/>
<location line="+75"/>
<source>&amp;Open</source>
<translation>&amp;Öppna</translation>
</message>
<message>
- <location line="-1565"/>
+ <location line="-1596"/>
<location line="+50"/>
<source>&amp;Save</source>
<translation>&amp;Spara</translation>
</message>
<message>
- <location line="-705"/>
+ <location line="-730"/>
<source>Open</source>
<translation>Öppna</translation>
</message>
<message>
- <location line="+1469"/>
+ <location line="+1515"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>%1 finns redan.
@@ -1488,7 +1493,7 @@ Kontrollera att det korrekta filnamnet angavs.</translation>
<translation>Min dator</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1458"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1504"/>
<source>&amp;Rename</source>
<translation>&amp;Byt namn</translation>
</message>
@@ -1534,7 +1539,7 @@ Kontrollera att det korrekta filnamnet angavs.</translation>
</message>
<message>
<location filename="../src/gui/dialogs/qfiledialog.cpp" line="+6"/>
- <location line="+623"/>
+ <location line="+648"/>
<source>Directory:</source>
<translation>Katalog:</translation>
</message>
@@ -1547,8 +1552,8 @@ Filen hittades inte.
Kontrollera att det korrekta filnamnet angavs</translation>
</message>
<message>
- <location line="+773"/>
- <location line="+851"/>
+ <location line="+794"/>
+ <location line="+862"/>
<source>%1
Directory not found.
Please verify the correct directory name was given.</source>
@@ -1557,7 +1562,7 @@ Katalogen hittades inte.
Kontrollera att det korrekta katalognamnet angavs.</translation>
</message>
<message>
- <location line="-217"/>
+ <location line="-218"/>
<source>&apos;%1&apos; is write protected.
Do you want to delete it anyway?</source>
<translation>\&quot;%1\&quot; är skrivskyddad.
@@ -1574,22 +1579,22 @@ Vill du ta bort den ändå?</translation>
<translation>Kunde inte ta bort katalogen.</translation>
</message>
<message>
- <location line="+406"/>
+ <location line="+407"/>
<source>Recent Places</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+130"/>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
<source>All Files (*.*)</source>
<translation>Alla filer (*.*)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2493"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2550"/>
<source>Save As</source>
<translation>Spara som</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+381"/>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+411"/>
<source>Drive</source>
<translation>Enhet</translation>
</message>
@@ -1621,29 +1626,29 @@ Vill du ta bort den ändå?</translation>
<translation type="unfinished">Framåt</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1914"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1970"/>
<source>New Folder</source>
<translation type="unfinished">Ny mapp</translation>
</message>
<message>
- <location line="-1907"/>
+ <location line="-1963"/>
<source>&amp;New Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+631"/>
+ <location line="+656"/>
<location line="+38"/>
<source>&amp;Choose</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qsidebar.cpp" line="+388"/>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-662"/>
- <location line="+627"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-687"/>
+ <location line="+652"/>
<source>File &amp;name:</source>
<translation type="unfinished">Fil&amp;namn:</translation>
</message>
@@ -1663,7 +1668,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QFileSystemModel</name>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+707"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+744"/>
<source>%1 TB</source>
<translation type="unfinished"></translation>
</message>
@@ -1725,7 +1730,7 @@ Vill du ta bort den ändå?</translation>
<translation type="unfinished">Ändringsdatum</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+204"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/>
<source>My Computer</source>
<translation type="unfinished">Min dator</translation>
</message>
@@ -1738,7 +1743,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QFontDatabase</name>
<message>
- <location filename="../src/gui/text/qfontdatabase.cpp" line="+60"/>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
<location line="+1176"/>
<source>Normal</source>
<translation type="unfinished"></translation>
@@ -1955,7 +1960,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QFontDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+742"/>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/>
<source>&amp;Font</source>
<translation>&amp;Typsnitt</translation>
</message>
@@ -2004,8 +2009,8 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QFtp</name>
<message>
- <location filename="../src/network/access/qftp.cpp" line="+796"/>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="+653"/>
+ <location filename="../src/network/access/qftp.cpp" line="+826"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+683"/>
<source>Not connected</source>
<translation>Inte ansluten</translation>
</message>
@@ -2150,7 +2155,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QHostInfo</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_p.h" line="+153"/>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
<source>Unknown error</source>
<translation>Okänt fel</translation>
</message>
@@ -2158,11 +2163,11 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QHostInfoAgent</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+148"/>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
<location line="+9"/>
<location line="+64"/>
<location line="+31"/>
- <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+150"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
<location line="+9"/>
<location line="+40"/>
<location line="+27"/>
@@ -2188,26 +2193,26 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QHttp</name>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="+335"/>
+ <location filename="../src/network/access/qhttp.cpp" line="+365"/>
<source>HTTPS connection requested but SSL support not compiled in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1209"/>
- <location line="+816"/>
- <location filename="../src/qt3support/network/q3http.cpp" line="+1130"/>
+ <location line="+820"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+1160"/>
<location line="+567"/>
<source>Unknown error</source>
<translation>Okänt fel</translation>
</message>
<message>
- <location line="-564"/>
+ <location line="-568"/>
<location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
<source>Request aborted</source>
<translation>Begäran avbröts</translation>
</message>
<message>
- <location line="+575"/>
+ <location line="+579"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
<source>No server set to connect to</source>
<translation>Ingen server inställd att ansluta till</translation>
@@ -2225,18 +2230,23 @@ Vill du ta bort den ändå?</translation>
<translation>Servern stängde oväntat anslutningen</translation>
</message>
<message>
- <location line="+357"/>
+ <location line="+179"/>
+ <source>Unknown authentication method</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+183"/>
<source>Error writing response to device</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+1712"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+876"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+38"/>
<source>Connection refused</source>
<translation>Anslutningen nekades</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-299"/>
+ <location filename="../src/network/access/qhttp.cpp" line="-304"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
<source>Host %1 not found</source>
@@ -2257,7 +2267,7 @@ Vill du ta bort den ändå?</translation>
<translation>Ogiltig HTTP-svarshuvud</translation>
</message>
<message>
- <location line="+120"/>
+ <location line="+125"/>
<location line="+48"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
<location line="+47"/>
@@ -2306,7 +2316,7 @@ Vill du ta bort den ändå?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-133"/>
+ <location line="-138"/>
<source>Connection refused (or timed out)</source>
<translation type="unfinished"></translation>
</message>
@@ -2387,7 +2397,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QIBaseDriver</name>
<message>
- <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1378"/>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1428"/>
<source>Error opening database</source>
<translation>Fel vid öppning av databas</translation>
</message>
@@ -2410,7 +2420,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QIBaseResult</name>
<message>
- <location line="-1077"/>
+ <location line="-1097"/>
<source>Unable to create BLOB</source>
<translation>Kunde inte skapa BLOB</translation>
</message>
@@ -2430,7 +2440,7 @@ Vill du ta bort den ändå?</translation>
<translation>Kunde inte läsa BLOB</translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<location line="+189"/>
<source>Could not find array</source>
<translation>Kunde inte hitta kedja</translation>
@@ -2500,7 +2510,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QIODevice</name>
<message>
- <location filename="../src/corelib/global/qglobal.cpp" line="+1830"/>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/>
<source>Permission denied</source>
<translation>Åtkomst nekad</translation>
</message>
@@ -2520,7 +2530,7 @@ Vill du ta bort den ändå?</translation>
<translation>Inget ledigt utrymme på enheten</translation>
</message>
<message>
- <location filename="../src/corelib/io/qiodevice.cpp" line="+1506"/>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/>
<source>Unknown error</source>
<translation>Okänt fel</translation>
</message>
@@ -2528,7 +2538,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QInputContext</name>
<message>
- <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+212"/>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/>
<source>XIM</source>
<translation>XIM</translation>
</message>
@@ -2551,7 +2561,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QInputDialog</name>
<message>
- <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+193"/>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
<source>Enter a value:</source>
<translation type="unfinished"></translation>
</message>
@@ -2571,7 +2581,7 @@ Vill du ta bort den ändå?</translation>
<translation type="obsolete">QLibrary::resolve_sys: Symbolen &quot;%1&quot; är inte definierad i %2 (%3)</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary.cpp" line="+348"/>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
<source>Could not mmap &apos;%1&apos;: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2587,7 +2597,7 @@ Vill du ta bort den ändå?</translation>
</message>
<message>
<location line="+285"/>
- <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+250"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
<source>The shared library was not found.</source>
<translation type="unfinished"></translation>
</message>
@@ -2617,8 +2627,8 @@ Vill du ta bort den ändå?</translation>
<translation type="unfinished">Okänt fel</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+179"/>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+69"/>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
<source>Cannot load library %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2638,7 +2648,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QLineEdit</name>
<message>
- <location filename="../src/gui/widgets/qlineedit.cpp" line="+2649"/>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+2680"/>
<source>&amp;Undo</source>
<translation>&amp;Ångra</translation>
</message>
@@ -2676,8 +2686,8 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QLocalServer</name>
<message>
- <location filename="../src/network/socket/qlocalserver.cpp" line="+196"/>
- <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+201"/>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/>
<source>%1: Name error</source>
<translation type="unfinished"></translation>
</message>
@@ -2693,7 +2703,7 @@ Vill du ta bort den ändå?</translation>
</message>
<message>
<location line="+5"/>
- <location filename="../src/network/socket/qlocalserver_win.cpp" line="+127"/>
+ <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/>
<source>%1: Unknown error %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2701,8 +2711,8 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QLocalSocket</name>
<message>
- <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+102"/>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+104"/>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/>
<source>%1: Connection refused</source>
<translation type="unfinished"></translation>
</message>
@@ -2715,7 +2725,7 @@ Vill du ta bort den ändå?</translation>
<message>
<location line="+3"/>
<location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
- <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+50"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/>
<location line="+43"/>
<source>%1: Invalid name</source>
<translation type="unfinished"></translation>
@@ -2772,7 +2782,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QMYSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1200"/>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1231"/>
<source>Unable to open database &apos;</source>
<translation>Kunde inte öppna databasen \&quot;</translation>
</message>
@@ -2782,7 +2792,7 @@ Vill du ta bort den ändå?</translation>
<translation>Kunde inte ansluta</translation>
</message>
<message>
- <location line="+123"/>
+ <location line="+127"/>
<source>Unable to begin transaction</source>
<translation>Kunde inte påbörja transaktion</translation>
</message>
@@ -2800,7 +2810,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QMYSQLResult</name>
<message>
- <location line="-917"/>
+ <location line="-922"/>
<source>Unable to fetch data</source>
<translation>Kunde inte hämta data</translation>
</message>
@@ -2815,7 +2825,7 @@ Vill du ta bort den ändå?</translation>
<translation>Kunde inte lagra resultat</translation>
</message>
<message>
- <location line="+189"/>
+ <location line="+190"/>
<location line="+8"/>
<source>Unable to prepare statement</source>
<translation>Kunde inte förbereda frågesats</translation>
@@ -2860,7 +2870,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QMdiArea</name>
<message>
- <location filename="../src/gui/widgets/qmdiarea.cpp" line="+260"/>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
<source>(Untitled)</source>
<translation type="unfinished"></translation>
</message>
@@ -2868,7 +2878,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QMdiSubWindow</name>
<message>
- <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+250"/>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
<source>%1 - [%2]</source>
<translation type="unfinished">%1 - [%2]</translation>
</message>
@@ -2961,7 +2971,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QMenu</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+127"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
<location line="+225"/>
<source>Close</source>
<translation>Stäng</translation>
@@ -2990,7 +3000,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QMessageBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1105"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1111"/>
<source>Help</source>
<translation>Hjälp</translation>
</message>
@@ -3003,21 +3013,20 @@ Vill du ta bort den ändå?</translation>
<translation>OK</translation>
</message>
<message>
- <location line="+503"/>
+ <location line="+509"/>
<source>About Qt</source>
<translation>Om Qt</translation>
</message>
<message>
- <location line="-15"/>
<source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Detta program använder Qt version %1.&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Detta program använder Qt version %1.&lt;/p&gt;</translation>
</message>
<message>
<source>&lt;h3&gt;About Qt&lt;/h3&gt;%1&lt;p&gt;Qt is a C++ toolkit for cross-platform application development.&lt;/p&gt;&lt;p&gt;Qt provides single-source portability across MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt is a Trolltech product. See &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
<translation type="obsolete">&lt;h3&gt;Om Qt&lt;/h3&gt;%1&lt;p&gt;Qt är ett C++-verktygssamling för utveckling av krossplattformsprogram.&lt;/p&gt;&lt;p&gt;Qt tillhandahåller portabilitet för samma källkod mellan MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, och alla andra stora kommersiella Unix-varianter. Qt finns också tillgängligt för inbäddade enheter som Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt är en produkt från Trolltech. Se &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; för mer information.&lt;/p&gt;</translation>
</message>
<message>
- <location line="-1584"/>
+ <location line="-1605"/>
<source>Show Details...</source>
<translation>Visa detaljer...</translation>
</message>
@@ -3028,19 +3037,14 @@ Vill du ta bort den ändå?</translation>
</message>
<message>
<location line="+1570"/>
- <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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+15"/>
- <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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
+ <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://www.qtsoftware.com/products/licensing&quot;&gt;www.qtsoftware.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://www.qtsoftware.com/qt/&quot;&gt;www.qtsoftware.com/qt&lt;/a&gt; for more information.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QMultiInputContext</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+58"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
<source>Select IM</source>
<translation>Välj inmatningsmetod</translation>
</message>
@@ -3048,7 +3052,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QMultiInputContextPlugin</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+65"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
<source>Multiple input method switcher</source>
<translation>Växlare för flera inmatningsmetoder</translation>
</message>
@@ -3061,7 +3065,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QNativeSocketEngine</name>
<message>
- <location filename="../src/network/socket/qnativesocketengine.cpp" line="+176"/>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/>
<source>The remote host closed the connection</source>
<translation>Fjärrvärden stängde anslutningen</translation>
</message>
@@ -3194,7 +3198,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QNetworkAccessCacheBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+35"/>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
<source>Error opening %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3202,7 +3206,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QNetworkAccessFileBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+69"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/>
<source>Request for opening non-local file %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3230,7 +3234,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QNetworkAccessFtpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+135"/>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3240,7 +3244,7 @@ Vill du ta bort den ändå?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+131"/>
+ <location line="+130"/>
<source>Logging in to %1 failed: authentication required</source>
<translation type="unfinished"></translation>
</message>
@@ -3258,7 +3262,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QNetworkAccessHttpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+565"/>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3271,7 +3275,7 @@ Vill du ta bort den ändå?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+37"/>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/>
<source>Protocol &quot;%1&quot; is unknown</source>
<translation type="unfinished"></translation>
</message>
@@ -3279,7 +3283,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QNetworkReplyImpl</name>
<message>
- <location line="+422"/>
+ <location line="+432"/>
<location line="+22"/>
<source>Operation canceled</source>
<translation type="unfinished"></translation>
@@ -3288,7 +3292,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QOCIDriver</name>
<message>
- <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2027"/>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2069"/>
<source>Unable to logon</source>
<translation>Kunde inte logga in</translation>
</message>
@@ -3317,7 +3321,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QOCIResult</name>
<message>
- <location line="-976"/>
+ <location line="-963"/>
<location line="+161"/>
<location line="+15"/>
<source>Unable to bind column for batch execute</source>
@@ -3344,18 +3348,16 @@ Vill du ta bort den ändå?</translation>
<translation>Kunde inte förbereda frågesats</translation>
</message>
<message>
- <location line="+29"/>
- <location line="+37"/>
+ <location line="+36"/>
<source>Unable to bind value</source>
<translation>Kunde inte binda värde</translation>
</message>
<message>
- <location line="-20"/>
<source>Unable to execute select statement</source>
- <translation>Kunde inte köra \&quot;select\&quot;-frågesats</translation>
+ <translation type="obsolete">Kunde inte köra \&quot;select\&quot;-frågesats</translation>
</message>
<message>
- <location line="+32"/>
+ <location line="+19"/>
<source>Unable to execute statement</source>
<translation>Kunde inte köra frågesats</translation>
</message>
@@ -3363,7 +3365,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QODBCDriver</name>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1657"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1785"/>
<source>Unable to connect</source>
<translation>Kunde inte ansluta</translation>
</message>
@@ -3373,7 +3375,7 @@ Vill du ta bort den ändå?</translation>
<translation>Kunde inte ansluta - Drivrutinen har inte stöd för all nödvändig funktionalitet</translation>
</message>
<message>
- <location line="+234"/>
+ <location line="+242"/>
<source>Unable to disable autocommit</source>
<translation>Kunde inte inaktivera automatisk verkställning</translation>
</message>
@@ -3396,19 +3398,19 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QODBCResult</name>
<message>
- <location line="-1204"/>
+ <location line="-1218"/>
<location line="+349"/>
<source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
<translation>QODBCResult::reset: Kunde inte ställa in \&quot;SQL_CURSOR_STATIC\&quot; som frågesatsattribut. Kontrollera konfigurationen för din ODBC-drivrutin</translation>
</message>
<message>
<location line="-332"/>
- <location line="+625"/>
+ <location line="+626"/>
<source>Unable to execute statement</source>
<translation>Kunde inte köra frågesats</translation>
</message>
<message>
- <location line="-554"/>
+ <location line="-555"/>
<source>Unable to fetch next</source>
<translation>Kunde inte hämta nästa</translation>
</message>
@@ -3418,19 +3420,19 @@ Vill du ta bort den ändå?</translation>
<translation>Kunde inte förbereda frågesats</translation>
</message>
<message>
- <location line="+267"/>
+ <location line="+268"/>
<source>Unable to bind variable</source>
<translation>Kunde inte binda variabel</translation>
</message>
<message>
<location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-474"/>
- <location line="+577"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-475"/>
+ <location line="+578"/>
<source>Unable to fetch last</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-671"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
<source>Unable to fetch</source>
<translation type="unfinished"></translation>
</message>
@@ -3448,12 +3450,12 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QObject</name>
<message>
- <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+134"/>
+ <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
<source>Home</source>
<translation type="unfinished">Home</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+44"/>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
<source>Operation not supported on %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3463,7 +3465,7 @@ Vill du ta bort den ändå?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+145"/>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
<source>Write error writing to %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -3488,7 +3490,7 @@ Vill du ta bort den ändå?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/kernel/qhostinfo.cpp" line="+147"/>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
<location line="+57"/>
<source>No host name given</source>
<translation type="unfinished"></translation>
@@ -3497,7 +3499,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QPPDOptionsModel</name>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1165"/>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/>
<source>Name</source>
<translation type="unfinished">Namn</translation>
</message>
@@ -3510,7 +3512,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QPSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+732"/>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/>
<source>Unable to connect</source>
<translation>Kunde inte ansluta</translation>
</message>
@@ -3530,7 +3532,7 @@ Vill du ta bort den ändå?</translation>
<translation>Kunde inte rulla tillbaka transaktion</translation>
</message>
<message>
- <location line="+336"/>
+ <location line="+358"/>
<source>Unable to subscribe</source>
<translation type="unfinished"></translation>
</message>
@@ -3543,12 +3545,12 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QPSQLResult</name>
<message>
- <location line="-1035"/>
+ <location line="-1058"/>
<source>Unable to create query</source>
<translation>Kunde inte skapa fråga</translation>
</message>
<message>
- <location line="+373"/>
+ <location line="+374"/>
<source>Unable to prepare statement</source>
<translation type="unfinished">Kunde inte förbereda frågesats</translation>
</message>
@@ -3556,7 +3558,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QPageSetupWidget</name>
<message>
- <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+274"/>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
<source>Centimeters (cm)</source>
<translation type="unfinished"></translation>
</message>
@@ -3672,7 +3674,7 @@ Vill du ta bort den ändå?</translation>
<context>
<name>QPrintDialog</name>
<message>
- <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+68"/>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/>
<source>locally connected</source>
<translation>lokalt ansluten</translation>
</message>
@@ -3697,7 +3699,7 @@ Vill du ta bort den ändå?</translation>
<translation type="obsolete">Liggande</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+299"/>
+ <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>
@@ -3847,7 +3849,7 @@ Vill du ta bort den ändå?</translation>
<translation>US Common #10 Envelope (105 x 241 mm)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+238"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -3868,7 +3870,7 @@ Vill du ta bort den ändå?</translation>
<translation type="obsolete">Papperskälla:</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+80"/>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
<location line="+13"/>
<location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
<source>Print</source>
@@ -4200,13 +4202,13 @@ Please choose a different file name.</source>
<context>
<name>QPrintPreviewDialog</name>
<message>
- <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+38"/>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
<location line="+12"/>
<source>Page Setup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+222"/>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/>
<source>%1%</source>
<translation type="unfinished"></translation>
</message>
@@ -4488,8 +4490,8 @@ Please choose a different file name.</source>
<context>
<name>QProcess</name>
<message>
- <location filename="../src/corelib/io/qprocess_unix.cpp" line="+445"/>
- <location filename="../src/corelib/io/qprocess_win.cpp" line="+117"/>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
<source>Could not open input redirection for reading</source>
<translation type="unfinished"></translation>
</message>
@@ -4518,7 +4520,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/io/qprocess.cpp" line="+503"/>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+533"/>
<location line="+52"/>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
<location line="+50"/>
@@ -4538,6 +4540,11 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+912"/>
+ <source>No program defined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
<source>Process failed to start</source>
<translation type="unfinished"></translation>
@@ -4546,7 +4553,7 @@ Please choose a different file name.</source>
<context>
<name>QProgressDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+152"/>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
<source>Cancel</source>
<translation>Avbryt</translation>
</message>
@@ -4570,7 +4577,7 @@ Please choose a different file name.</source>
<context>
<name>QRegExp</name>
<message>
- <location filename="../src/corelib/tools/qregexp.cpp" line="+34"/>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/>
<source>no error occurred</source>
<translation>inga fel inträffade</translation>
</message>
@@ -4618,7 +4625,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Driver</name>
<message>
- <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+353"/>
+ <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
<source>Error to open database</source>
<translation>Fel vid öppning av databas</translation>
</message>
@@ -4641,12 +4648,12 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Result</name>
<message>
- <location line="-310"/>
+ <location line="-323"/>
<source>Unable to fetch results</source>
<translation>Kunde inte hämta resultat</translation>
</message>
<message>
- <location line="+139"/>
+ <location line="+147"/>
<source>Unable to execute statement</source>
<translation>Kunde inte köra frågesats</translation>
</message>
@@ -4654,7 +4661,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLiteDriver</name>
<message>
- <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+498"/>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/>
<source>Error opening database</source>
<translation>Fel vid öppning av databas</translation>
</message>
@@ -4721,12 +4728,12 @@ Please choose a different file name.</source>
<context>
<name>QScrollBar</name>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="+419"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/>
<source>Scroll here</source>
<translation>Rulla här</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Left edge</source>
<translation>Vänsterkant</translation>
</message>
@@ -4736,7 +4743,7 @@ Please choose a different file name.</source>
<translation>Överkant</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Right edge</source>
<translation>Högerkant</translation>
</message>
@@ -4746,7 +4753,7 @@ Please choose a different file name.</source>
<translation>Nederkant</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Page left</source>
<translation>Sida vänster</translation>
</message>
@@ -4757,7 +4764,7 @@ Please choose a different file name.</source>
<translation>Sida uppåt</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Page right</source>
<translation>Sida höger</translation>
</message>
@@ -4768,7 +4775,7 @@ Please choose a different file name.</source>
<translation>Sida nedåt</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Scroll left</source>
<translation>Rulla vänster</translation>
</message>
@@ -4778,7 +4785,7 @@ Please choose a different file name.</source>
<translation>Rulla uppåt</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Scroll right</source>
<translation>Rulla höger</translation>
</message>
@@ -4806,7 +4813,7 @@ Please choose a different file name.</source>
<context>
<name>QSharedMemory</name>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+177"/>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+207"/>
<source>%1: unable to set key on lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4817,7 +4824,7 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+168"/>
- <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+118"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
<source>%1: unable to lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4827,8 +4834,8 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+48"/>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+57"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
<source>%1: permission denied</source>
<translation type="unfinished"></translation>
</message>
@@ -4906,7 +4913,7 @@ Please choose a different file name.</source>
<context>
<name>QShortcut</name>
<message>
- <location filename="../src/gui/kernel/qkeysequence.cpp" line="+343"/>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/>
<source>Space</source>
<translation>Mellanslag</translation>
</message>
@@ -5491,7 +5498,7 @@ Please choose a different file name.</source>
<context>
<name>QSql</name>
<message>
- <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+860"/>
+ <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
<source>Delete</source>
<translation>Ta bort</translation>
</message>
@@ -5548,7 +5555,7 @@ Please choose a different file name.</source>
<context>
<name>QSslSocket</name>
<message>
- <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+539"/>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+569"/>
<source>Unable to write data: %1</source>
<translation type="unfinished"></translation>
</message>
@@ -5607,7 +5614,7 @@ Please choose a different file name.</source>
<name>QSystemSemaphore</name>
<message>
<location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+36"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
<source>%1: out of resources</source>
<translation type="unfinished"></translation>
</message>
@@ -5637,7 +5644,7 @@ Please choose a different file name.</source>
<context>
<name>QTDSDriver</name>
<message>
- <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+552"/>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
<source>Unable to open connection</source>
<translation>Kunde inte öppna anslutning</translation>
</message>
@@ -5667,7 +5674,7 @@ Please choose a different file name.</source>
<translation type="obsolete">Uttagsåtgärd stöds inte</translation>
</message>
<message>
- <location filename="../src/network/socket/qtcpserver.cpp" line="+252"/>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
<source>Operation on socket is not supported</source>
<translation type="unfinished"></translation>
</message>
@@ -5675,7 +5682,7 @@ Please choose a different file name.</source>
<context>
<name>QTextControl</name>
<message>
- <location filename="../src/gui/text/qtextcontrol.cpp" line="+1942"/>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/>
<source>&amp;Undo</source>
<translation>&amp;Ångra</translation>
</message>
@@ -5733,7 +5740,7 @@ Please choose a different file name.</source>
<context>
<name>QUdpSocket</name>
<message>
- <location filename="../src/network/socket/qudpsocket.cpp" line="+139"/>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
<source>This platform does not support IPv6</source>
<translation>Denna plattform saknar stöd för IPv6</translation>
</message>
@@ -5741,7 +5748,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoGroup</name>
<message>
- <location filename="../src/gui/util/qundogroup.cpp" line="+356"/>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+386"/>
<source>Undo</source>
<translation>Ångra</translation>
</message>
@@ -5754,7 +5761,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoModel</name>
<message>
- <location filename="../src/gui/util/qundoview.cpp" line="+71"/>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
<source>&lt;empty&gt;</source>
<translation>&lt;tom&gt;</translation>
</message>
@@ -5762,7 +5769,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoStack</name>
<message>
- <location filename="../src/gui/util/qundostack.cpp" line="+804"/>
+ <location filename="../src/gui/util/qundostack.cpp" line="+834"/>
<source>Undo</source>
<translation>Ångra</translation>
</message>
@@ -5833,7 +5840,7 @@ Please choose a different file name.</source>
<context>
<name>QWebFrame</name>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+686"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
<source>Request cancelled</source>
<translation type="unfinished"></translation>
</message>
@@ -6243,7 +6250,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1342"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
<source>JavaScript Alert - %1</source>
<translation type="unfinished"></translation>
</message>
@@ -6319,6 +6326,11 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+3"/>
+ <source>Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
<source>Select to the next character</source>
<translation type="unfinished"></translation>
</message>
@@ -6387,11 +6399,21 @@ Please choose a different file name.</source>
<source>Delete to the end of the word</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+33"/>
+ <source>Insert a new paragraph</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QWhatsThisAction</name>
<message>
- <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+492"/>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
<source>What&apos;s This?</source>
<translation>Vad är det här?</translation>
</message>
@@ -6399,7 +6421,7 @@ Please choose a different file name.</source>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5290"/>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/>
<source>*</source>
<translation>*</translation>
</message>
@@ -6407,7 +6429,7 @@ Please choose a different file name.</source>
<context>
<name>QWizard</name>
<message>
- <location filename="../src/gui/dialogs/qwizard.cpp" line="+605"/>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/>
<source>Go Back</source>
<translation type="unfinished"></translation>
</message>
@@ -6465,7 +6487,7 @@ Please choose a different file name.</source>
<context>
<name>QWorkspace</name>
<message>
- <location filename="../src/gui/widgets/qworkspace.cpp" line="+1064"/>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/>
<source>&amp;Restore</source>
<translation>Åte&amp;rställ</translation>
</message>
@@ -6535,7 +6557,7 @@ Please choose a different file name.</source>
<context>
<name>QXml</name>
<message>
- <location filename="../src/xml/sax/qxml.cpp" line="+28"/>
+ <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
<source>no error occurred</source>
<translation>inga fel inträffade</translation>
</message>
@@ -6653,8 +6675,8 @@ Please choose a different file name.</source>
<context>
<name>QXmlStream</name>
<message>
- <location filename="../src/corelib/xml/qxmlstream.cpp" line="+562"/>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1739"/>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/>
<source>Extra content at end of document.</source>
<translation type="unfinished"></translation>
</message>
@@ -6838,7 +6860,7 @@ Please choose a different file name.</source>
<context>
<name>QtXmlPatterns</name>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+175"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
<source>An %1-attribute with value %2 has already been declared.</source>
<translation type="unfinished"></translation>
</message>
@@ -6848,12 +6870,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+54"/>
+ <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
<source>Network timeout.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+290"/>
+ <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>
@@ -6863,7 +6885,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+50"/>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
<source>Year %1 is invalid because it begins with %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6903,7 +6925,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+69"/>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/>
<location line="+15"/>
<source>At least one component must be present.</source>
<translation type="unfinished"></translation>
@@ -6914,7 +6936,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+34"/>
+ <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
<source>No operand in an integer division, %1, can be %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6929,17 +6951,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+102"/>
+ <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/>
<source>%1 is not a valid value of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+193"/>
+ <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="+35"/>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
<source>Integer division (%1) by zero (%2) is undefined.</source>
<translation type="unfinished"></translation>
</message>
@@ -6970,17 +6992,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+49"/>
+ <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/>
<source>A value of type %1 cannot have an Effective Boolean Value.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+48"/>
+ <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/>
<source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+372"/>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
<source>Value %1 of type %2 exceeds maximum (%3).</source>
<translation type="unfinished"></translation>
</message>
@@ -6990,7 +7012,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+61"/>
+ <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/>
<source>A value of type %1 must contain an even number of digits. The value %2 does not.</source>
<translation type="unfinished"></translation>
</message>
@@ -7000,7 +7022,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+177"/>
+ <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
<source>Operator %1 cannot be used on type %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -7010,7 +7032,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+36"/>
+ <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 type="unfinished"></translation>
</message>
@@ -7020,7 +7042,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
<source>Type error in cast, expected %1, received %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -7030,7 +7052,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+104"/>
+ <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/>
<source>No casting is possible with %1 as the target type.</source>
<translation type="unfinished"></translation>
</message>
@@ -7055,7 +7077,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+37"/>
+ <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
<source>A comment cannot contain %1</source>
<translation type="unfinished"></translation>
</message>
@@ -7065,7 +7087,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+137"/>
+ <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
<source>No comparisons can be done involving the type %1.</source>
<translation type="unfinished"></translation>
</message>
@@ -7075,12 +7097,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+56"/>
+ <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="+139"/>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
<source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
<translation type="unfinished"></translation>
</message>
@@ -7090,7 +7112,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+76"/>
+ <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>
@@ -7100,7 +7122,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+83"/>
+ <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+113"/>
<source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source>
<translation type="unfinished"></translation>
</message>
@@ -7110,33 +7132,33 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+79"/>
+ <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="+54"/>
+ <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/>
<source>The data of a processing instruction cannot contain the string %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+52"/>
+ <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="+126"/>
+ <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="+39"/>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
<source>%1 is an invalid %2</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+47"/>
+ <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/>
<source>%1 takes at most %n argument(s). %2 is therefore invalid.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -7150,7 +7172,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+90"/>
+ <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/>
<source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source>
<translation type="unfinished"></translation>
</message>
@@ -7165,27 +7187,27 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/>
<source>%1 is not a valid XML 1.0 character.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+167"/>
+ <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
<source>The first argument to %1 cannot be of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+56"/>
+ <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="+31"/>
+ <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
<source>%1 was called.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+64"/>
+ <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>
@@ -7200,7 +7222,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+62"/>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
<source>%1 matches newline characters</source>
<translation type="unfinished"></translation>
</message>
@@ -7235,17 +7257,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+317"/>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/>
<source>It will not be possible to retrieve %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+24"/>
+ <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="+249"/>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
<source>The default collection is undefined</source>
<translation type="unfinished"></translation>
</message>
@@ -7255,12 +7277,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+222"/>
+ <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="+57"/>
+ <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>
@@ -7270,17 +7292,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+28"/>
+ <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="+37"/>
+ <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/>
<source>The item %1 did not match the required type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+319"/>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/>
<location line="+7253"/>
<source>%1 is an unknown schema type.</source>
<translation type="unfinished"></translation>
@@ -7301,7 +7323,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+63"/>
+ <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
<source>The variable %1 is unused</source>
<translation type="unfinished"></translation>
</message>
@@ -7583,7 +7605,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+25"/>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
<source>empty</source>
<translation type="unfinished"></translation>
</message>
@@ -7608,7 +7630,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+33"/>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
<source>Required type is %1, but %2 was found.</source>
<translation type="unfinished"></translation>
</message>
@@ -7623,7 +7645,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+56"/>
+ <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>
@@ -7633,12 +7655,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+90"/>
+ <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/>
<source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+284"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
<source>%1 is an unsupported encoding.</source>
<translation type="unfinished"></translation>
</message>
@@ -7653,13 +7675,13 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+89"/>
+ <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
<source>Ambiguous rule match.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+39"/>
- <source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source>
+ <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>
@@ -7678,12 +7700,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+87"/>
+ <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
<source>Circularity detected</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+115"/>
+ <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/>
<source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
<translation type="unfinished"></translation>
</message>
@@ -7693,12 +7715,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+35"/>
+ <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="+489"/>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
<source>Element %1 is not allowed at this location.</source>
<translation type="unfinished"></translation>
</message>
@@ -7753,7 +7775,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+153"/>
+ <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/>
<source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source>
<translation type="unfinished"></translation>
</message>
@@ -7828,7 +7850,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+432"/>
+ <location line="+434"/>
<source>Element %1 cannot have a sequence constructor.</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/qt_uk.ts b/translations/qt_uk.ts
index c16a645..9c1b1f4 100644
--- a/translations/qt_uk.ts
+++ b/translations/qt_uk.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioOutput</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+374"/>
+ <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/>
<source>&lt;html&gt;The audio playback device &lt;b&gt;%1&lt;/b&gt; does not work.&lt;br/&gt;Falling back to &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -22,7 +22,7 @@
<context>
<name>CloseButton</name>
<message>
- <location filename="../src/gui/widgets/qtabbar.cpp" line="+2217"/>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/>
<source>Close Tab</source>
<translation type="unfinished"></translation>
</message>
@@ -96,7 +96,7 @@
<context>
<name>Phonon::Gstreamer::MediaObject</name>
<message>
- <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+88"/>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/>
<source>Cannot start playback.
Check your Gstreamer installation and make sure you
@@ -109,24 +109,24 @@ have libgstreamer-plugins-base installed.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+653"/>
- <location line="+9"/>
+ <location line="+676"/>
+ <location line="+8"/>
<location line="+15"/>
- <location line="+7"/>
- <location line="+5"/>
- <location line="+20"/>
- <location line="+317"/>
+ <location line="+9"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+335"/>
<location line="+24"/>
<source>Could not open media source.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-381"/>
+ <location line="-403"/>
<source>Invalid source type.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+355"/>
+ <location line="+377"/>
<source>Could not locate media source.</source>
<translation type="unfinished"></translation>
</message>
@@ -160,7 +160,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3Accel</name>
<message>
- <location filename="../src/qt3support/other/q3accel.cpp" line="+451"/>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
<source>%1, %2 not defined</source>
<translation>%1, %2 не визначено</translation>
</message>
@@ -173,7 +173,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3DataTable</name>
<message>
- <location filename="../src/qt3support/sql/q3datatable.cpp" line="+253"/>
+ <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
<source>True</source>
<translation>Так</translation>
</message>
@@ -201,7 +201,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3FileDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+834"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+864"/>
<source>Copy or Move a File</source>
<translation>Копіювати або пересунути файл</translation>
</message>
@@ -226,7 +226,7 @@ have libgstreamer-plugins-base installed.</source>
<location line="-157"/>
<location line="+49"/>
<location line="+2153"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+80"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
<source>All Files (*)</source>
<translation>Всі файли (*)</translation>
</message>
@@ -366,7 +366,7 @@ have libgstreamer-plugins-base installed.</source>
<message>
<location line="+704"/>
<location line="+2100"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+307"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/>
<source>Open</source>
<translation>Відкрити</translation>
</message>
@@ -534,7 +534,7 @@ Check path and filename.</source>
<context>
<name>Q3LocalFs</name>
<message>
- <location filename="../src/qt3support/network/q3localfs.cpp" line="+100"/>
+ <location filename="../src/qt3support/network/q3localfs.cpp" line="+130"/>
<location line="+10"/>
<source>Could not read directory
%1</source>
@@ -583,7 +583,7 @@ to
<context>
<name>Q3MainWindow</name>
<message>
- <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2021"/>
+ <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
<source>Line up</source>
<translation>Вирівняти</translation>
</message>
@@ -596,7 +596,7 @@ to
<context>
<name>Q3NetworkProtocol</name>
<message>
- <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+824"/>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
<source>Operation stopped by the user</source>
<translation>Дію зупинено користувачем</translation>
</message>
@@ -604,7 +604,7 @@ to
<context>
<name>Q3ProgressDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+194"/>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
<location line="+61"/>
<source>Cancel</source>
<translation>Скасувати</translation>
@@ -613,7 +613,7 @@ to
<context>
<name>Q3TabDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+159"/>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/>
<location line="+814"/>
<source>OK</source>
<translation>Гаразд</translation>
@@ -642,7 +642,7 @@ to
<context>
<name>Q3TextEdit</name>
<message>
- <location filename="../src/qt3support/text/q3textedit.cpp" line="+5399"/>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
<source>&amp;Undo</source>
<translation>&amp;Повернути</translation>
</message>
@@ -681,7 +681,7 @@ to
<context>
<name>Q3TitleBar</name>
<message>
- <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+216"/>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
<source>System</source>
<translation>Система</translation>
</message>
@@ -749,7 +749,7 @@ to
<context>
<name>Q3ToolBar</name>
<message>
- <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+662"/>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
<source>More...</source>
<translation>Додатково...</translation>
</message>
@@ -757,7 +757,7 @@ to
<context>
<name>Q3UrlOperator</name>
<message>
- <location filename="../src/qt3support/network/q3urloperator.cpp" line="+356"/>
+ <location filename="../src/qt3support/network/q3urloperator.cpp" line="+386"/>
<location line="+260"/>
<location line="+4"/>
<source>The protocol `%1&apos; is not supported</source>
@@ -809,7 +809,7 @@ to
<context>
<name>Q3Wizard</name>
<message>
- <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+147"/>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
<source>&amp;Cancel</source>
<translation>&amp;Скасувати</translation>
</message>
@@ -837,9 +837,9 @@ to
<context>
<name>QAbstractSocket</name>
<message>
- <location filename="../src/network/socket/qabstractsocket.cpp" line="+838"/>
- <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+585"/>
- <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+627"/>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
<location line="+26"/>
<source>Host not found</source>
<translation>Вузол не знайдено</translation>
@@ -882,7 +882,7 @@ to
<context>
<name>QAbstractSpinBox</name>
<message>
- <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1169"/>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/>
<source>&amp;Step up</source>
<translation>&amp;Крок вгору</translation>
</message>
@@ -900,12 +900,12 @@ to
<context>
<name>QApplication</name>
<message>
- <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+346"/>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
<source>Activate</source>
<translation>Активувати</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.h" line="+322"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
<source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
<translation>Програма &quot;%1&quot; потребує Qt %2, але знайдено Qt %3.</translation>
</message>
@@ -915,7 +915,7 @@ to
<translation>Помилка несумісності бібліотеки Qt</translation>
</message>
<message>
- <location filename="../src/gui/kernel/qapplication.cpp" line="+2212"/>
+ <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>
@@ -952,7 +952,7 @@ to
<context>
<name>QCheckBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+84"/>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/>
<source>Uncheck</source>
<translation>Зняти позначку</translation>
</message>
@@ -970,7 +970,7 @@ to
<context>
<name>QColorDialog</name>
<message>
- <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1219"/>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/>
<source>Hu&amp;e:</source>
<translation>Від&amp;тінок:</translation>
</message>
@@ -1044,13 +1044,13 @@ to
<context>
<name>QComboBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1741"/>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
<location line="+65"/>
<source>Open</source>
<translation>Відкрити</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+514"/>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
<source>False</source>
<translation>Ні</translation>
</message>
@@ -1068,7 +1068,7 @@ to
<context>
<name>QCoreApplication</name>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+89"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
<source>%1: key is empty</source>
<comment>QSystemSemaphore</comment>
<translation type="unfinished"></translation>
@@ -1089,12 +1089,12 @@ to
<context>
<name>QDB2Driver</name>
<message>
- <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1217"/>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
<source>Unable to connect</source>
<translation>Неможливо з&apos;єднатися</translation>
</message>
<message>
- <location line="+263"/>
+ <location line="+303"/>
<source>Unable to commit transaction</source>
<translation>Неможливо завершити транзакцію</translation>
</message>
@@ -1112,8 +1112,8 @@ to
<context>
<name>QDB2Result</name>
<message>
- <location line="-986"/>
- <location line="+242"/>
+ <location line="-1043"/>
+ <location line="+243"/>
<source>Unable to execute statement</source>
<translation>Неможливо виконати оператор</translation>
</message>
@@ -1128,7 +1128,7 @@ to
<translation>Неможливо прив&apos;язати змінну</translation>
</message>
<message>
- <location line="+91"/>
+ <location line="+92"/>
<source>Unable to fetch record %1</source>
<translation>Неможливо вибрати запис %1</translation>
</message>
@@ -1146,7 +1146,7 @@ to
<context>
<name>QDateTimeEdit</name>
<message>
- <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2265"/>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
<source>AM</source>
<translation>AM</translation>
</message>
@@ -1169,7 +1169,7 @@ to
<context>
<name>QDial</name>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+921"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
<source>QDial</source>
<translation>QDial</translation>
</message>
@@ -1187,7 +1187,7 @@ to
<context>
<name>QDialog</name>
<message>
- <location filename="../src/gui/dialogs/qdialog.cpp" line="+567"/>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
<source>What&apos;s This?</source>
<translation>Що це?</translation>
</message>
@@ -1200,9 +1200,9 @@ to
<context>
<name>QDialogButtonBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1830"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
<location line="+464"/>
- <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+531"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/>
<source>OK</source>
<translation>Гаразд</translation>
</message>
@@ -1325,7 +1325,7 @@ to
<context>
<name>QDirModel</name>
<message>
- <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+423"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/>
<source>Name</source>
<translation>Ім&apos;я</translation>
</message>
@@ -1355,7 +1355,7 @@ to
<context>
<name>QDockWidget</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1209"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
<source>Close</source>
<translation>Закрити</translation>
</message>
@@ -1386,7 +1386,7 @@ to
<context>
<name>QErrorMessage</name>
<message>
- <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+162"/>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+192"/>
<source>Debug Message:</source>
<translation>Повідомлення зневадження:</translation>
</message>
@@ -1414,13 +1414,18 @@ to
<context>
<name>QFile</name>
<message>
- <location filename="../src/corelib/io/qfile.cpp" line="+678"/>
- <location line="+130"/>
+ <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
+ <location line="+141"/>
<source>Destination file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+12"/>
+ <location line="-108"/>
+ <source>Cannot remove source file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+120"/>
<source>Cannot open %1 for input</source>
<translation type="unfinished"></translation>
</message>
@@ -1443,37 +1448,37 @@ to
<context>
<name>QFileDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+484"/>
- <location line="+423"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+515"/>
+ <location line="+444"/>
<source>All Files (*)</source>
<translation>Всі файли (*)</translation>
</message>
<message>
- <location line="+218"/>
+ <location line="+222"/>
<source>Directories</source>
<translation>Каталоги</translation>
</message>
<message>
<location line="-3"/>
<location line="+50"/>
- <location line="+1440"/>
+ <location line="+1471"/>
<location line="+75"/>
<source>&amp;Open</source>
<translation>&amp;Відкрити</translation>
</message>
<message>
- <location line="-1565"/>
+ <location line="-1596"/>
<location line="+50"/>
<source>&amp;Save</source>
<translation>&amp;Зберегти</translation>
</message>
<message>
- <location line="-705"/>
+ <location line="-730"/>
<source>Open</source>
<translation>Відкрити</translation>
</message>
<message>
- <location line="+1469"/>
+ <location line="+1515"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>%1 вже існує.
@@ -1494,7 +1499,7 @@ Please verify the correct file name was given.</source>
<translation>Мій комп&apos;ютер</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1458"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1504"/>
<source>&amp;Rename</source>
<translation>&amp;Перейменувати</translation>
</message>
@@ -1540,7 +1545,7 @@ Please verify the correct file name was given.</source>
</message>
<message>
<location filename="../src/gui/dialogs/qfiledialog.cpp" line="+6"/>
- <location line="+623"/>
+ <location line="+648"/>
<source>Directory:</source>
<translation>Каталог:</translation>
</message>
@@ -1553,8 +1558,8 @@ Please verify the correct file name was given</source>
Переконайтеся, що введено правильне ім&apos;я файлу</translation>
</message>
<message>
- <location line="+773"/>
- <location line="+851"/>
+ <location line="+794"/>
+ <location line="+862"/>
<source>%1
Directory not found.
Please verify the correct directory name was given.</source>
@@ -1563,7 +1568,7 @@ Please verify the correct directory name was given.</source>
Переконайтеся, що введено правильне ім&apos;я каталогу.</translation>
</message>
<message>
- <location line="-217"/>
+ <location line="-218"/>
<source>&apos;%1&apos; is write protected.
Do you want to delete it anyway?</source>
<translation>&quot;%1&quot; захищено від запису.
@@ -1580,22 +1585,22 @@ Do you want to delete it anyway?</source>
<translation>Неможливо вилучити каталог.</translation>
</message>
<message>
- <location line="+406"/>
+ <location line="+407"/>
<source>Recent Places</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+130"/>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
<source>All Files (*.*)</source>
<translation>Всі файли (*.*)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2493"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2550"/>
<source>Save As</source>
<translation>Зберегти, як</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+381"/>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+411"/>
<source>Drive</source>
<translation>Диск</translation>
</message>
@@ -1631,17 +1636,17 @@ Do you want to delete it anyway?</source>
<translation>Вперед</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1914"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1970"/>
<source>New Folder</source>
<translation>Нова тека</translation>
</message>
<message>
- <location line="-1907"/>
+ <location line="-1963"/>
<source>&amp;New Folder</source>
<translation>&amp;Нова тека</translation>
</message>
<message>
- <location line="+631"/>
+ <location line="+656"/>
<location line="+38"/>
<source>&amp;Choose</source>
<translation>&amp;Вибрати</translation>
@@ -1651,13 +1656,13 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">Зберегти, &amp;як:</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qsidebar.cpp" line="+388"/>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/>
<source>Remove</source>
<translation>Вилучити</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-662"/>
- <location line="+627"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-687"/>
+ <location line="+652"/>
<source>File &amp;name:</source>
<translation>&amp;Ім&apos;я файлу:</translation>
</message>
@@ -1677,7 +1682,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFileSystemModel</name>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+791"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+828"/>
<source>Invalid filename</source>
<translation>Неправильне ім&apos;я файлу</translation>
</message>
@@ -1714,7 +1719,7 @@ Do you want to delete it anyway?</source>
<translation>Дата зміни</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+204"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/>
<source>My Computer</source>
<translation>Мій комп&apos;ютер</translation>
</message>
@@ -1752,7 +1757,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFontDatabase</name>
<message>
- <location filename="../src/gui/text/qfontdatabase.cpp" line="+60"/>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
<location line="+1176"/>
<source>Normal</source>
<translation type="unfinished"></translation>
@@ -1969,7 +1974,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFontDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+742"/>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/>
<source>&amp;Font</source>
<translation>&amp;Шрифт</translation>
</message>
@@ -2018,8 +2023,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QFtp</name>
<message>
- <location filename="../src/network/access/qftp.cpp" line="+796"/>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="+653"/>
+ <location filename="../src/network/access/qftp.cpp" line="+826"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+683"/>
<source>Not connected</source>
<translation>Не з&apos;єднано</translation>
</message>
@@ -2161,7 +2166,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QHostInfo</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_p.h" line="+153"/>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
<source>Unknown error</source>
<translation>Невідома помилка</translation>
</message>
@@ -2169,11 +2174,11 @@ Do you want to delete it anyway?</source>
<context>
<name>QHostInfoAgent</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+148"/>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
<location line="+9"/>
<location line="+64"/>
<location line="+31"/>
- <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+150"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
<location line="+9"/>
<location line="+40"/>
<location line="+27"/>
@@ -2199,26 +2204,26 @@ Do you want to delete it anyway?</source>
<context>
<name>QHttp</name>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="+335"/>
+ <location filename="../src/network/access/qhttp.cpp" line="+365"/>
<source>HTTPS connection requested but SSL support not compiled in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1209"/>
- <location line="+816"/>
- <location filename="../src/qt3support/network/q3http.cpp" line="+1130"/>
+ <location line="+820"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+1160"/>
<location line="+567"/>
<source>Unknown error</source>
<translation>Невідома помилка</translation>
</message>
<message>
- <location line="-564"/>
+ <location line="-568"/>
<location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
<source>Request aborted</source>
<translation>Запит перервано</translation>
</message>
<message>
- <location line="+575"/>
+ <location line="+579"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
<source>No server set to connect to</source>
<translation>Не вказано сервер для з&apos;єднання</translation>
@@ -2236,18 +2241,23 @@ Do you want to delete it anyway?</source>
<translation>Сервер несподівано закрив з&apos;єднання</translation>
</message>
<message>
- <location line="+357"/>
+ <location line="+179"/>
+ <source>Unknown authentication method</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+183"/>
<source>Error writing response to device</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+1712"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+876"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+38"/>
<source>Connection refused</source>
<translation>Відмовлено у зв&apos;язку</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-299"/>
+ <location filename="../src/network/access/qhttp.cpp" line="-304"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
<source>Host %1 not found</source>
@@ -2268,7 +2278,7 @@ Do you want to delete it anyway?</source>
<translation>Неправильний заголовок відповіді HTTP</translation>
</message>
<message>
- <location line="+120"/>
+ <location line="+125"/>
<location line="+48"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
<location line="+47"/>
@@ -2317,7 +2327,7 @@ Do you want to delete it anyway?</source>
<translation>Автентифікація обов&apos;язкова</translation>
</message>
<message>
- <location line="-133"/>
+ <location line="-138"/>
<source>Connection refused (or timed out)</source>
<translation type="unfinished"></translation>
</message>
@@ -2398,7 +2408,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseDriver</name>
<message>
- <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1378"/>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1428"/>
<source>Error opening database</source>
<translation>Неможливо відкрити базу даних</translation>
</message>
@@ -2421,7 +2431,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseResult</name>
<message>
- <location line="-1077"/>
+ <location line="-1097"/>
<source>Unable to create BLOB</source>
<translation>Неможливо створити BLOB</translation>
</message>
@@ -2441,7 +2451,7 @@ Do you want to delete it anyway?</source>
<translation>Неможливо прочитати BLOB</translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<location line="+189"/>
<source>Could not find array</source>
<translation>Неможливо знайти масив</translation>
@@ -2511,7 +2521,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIODevice</name>
<message>
- <location filename="../src/corelib/global/qglobal.cpp" line="+1830"/>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/>
<source>Permission denied</source>
<translation>Відмовлено у доступі</translation>
</message>
@@ -2531,7 +2541,7 @@ Do you want to delete it anyway?</source>
<translation>На пристрої не лишилось місця</translation>
</message>
<message>
- <location filename="../src/corelib/io/qiodevice.cpp" line="+1506"/>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/>
<source>Unknown error</source>
<translation>Невідома помилка</translation>
</message>
@@ -2539,7 +2549,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QInputContext</name>
<message>
- <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+212"/>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/>
<source>XIM</source>
<translation>XIM</translation>
</message>
@@ -2562,7 +2572,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QInputDialog</name>
<message>
- <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+193"/>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
<source>Enter a value:</source>
<translation type="unfinished"></translation>
</message>
@@ -2582,7 +2592,7 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">QLibrary::resolve_sys: символ &quot;%1&quot; не є визначеним в %2 (%3)</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary.cpp" line="+348"/>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
<source>Could not mmap &apos;%1&apos;: %2</source>
<translation>Помилка виконання mmap &quot;%1&quot;: %2</translation>
</message>
@@ -2613,7 +2623,7 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="-377"/>
- <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+250"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
<source>The shared library was not found.</source>
<translation>Спільну бібліотеку не знайдено.</translation>
</message>
@@ -2628,8 +2638,8 @@ Do you want to delete it anyway?</source>
<translation>Додаток &quot;%1&quot; використовує несумісну бібліотеку Qt. (Не дозволяється змішувати версію бібліотеки для зневадження і версію випуску.)</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+179"/>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+69"/>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
<source>Cannot load library %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2649,7 +2659,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QLineEdit</name>
<message>
- <location filename="../src/gui/widgets/qlineedit.cpp" line="+2649"/>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+2680"/>
<source>&amp;Undo</source>
<translation>&amp;Повернути</translation>
</message>
@@ -2687,8 +2697,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QLocalServer</name>
<message>
- <location filename="../src/network/socket/qlocalserver.cpp" line="+196"/>
- <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+201"/>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/>
<source>%1: Name error</source>
<translation type="unfinished"></translation>
</message>
@@ -2704,7 +2714,7 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="+5"/>
- <location filename="../src/network/socket/qlocalserver_win.cpp" line="+127"/>
+ <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/>
<source>%1: Unknown error %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2712,8 +2722,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QLocalSocket</name>
<message>
- <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+102"/>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+104"/>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/>
<source>%1: Connection refused</source>
<translation type="unfinished"></translation>
</message>
@@ -2726,7 +2736,7 @@ Do you want to delete it anyway?</source>
<message>
<location line="+3"/>
<location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
- <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+50"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/>
<location line="+43"/>
<source>%1: Invalid name</source>
<translation type="unfinished"></translation>
@@ -2783,7 +2793,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMYSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1200"/>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1231"/>
<source>Unable to open database &apos;</source>
<translation>Неможливо відкрити базу даних</translation>
</message>
@@ -2793,7 +2803,7 @@ Do you want to delete it anyway?</source>
<translation>Неможливо з&apos;єднатися</translation>
</message>
<message>
- <location line="+123"/>
+ <location line="+127"/>
<source>Unable to begin transaction</source>
<translation>Неможливо почати транзакцію</translation>
</message>
@@ -2811,7 +2821,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMYSQLResult</name>
<message>
- <location line="-917"/>
+ <location line="-922"/>
<source>Unable to fetch data</source>
<translation>Неможливо вибрати дані</translation>
</message>
@@ -2826,7 +2836,7 @@ Do you want to delete it anyway?</source>
<translation>Неможливо записати результат</translation>
</message>
<message>
- <location line="+189"/>
+ <location line="+190"/>
<location line="+8"/>
<source>Unable to prepare statement</source>
<translation>Неможливо підготувати оператор</translation>
@@ -2871,7 +2881,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMdiArea</name>
<message>
- <location filename="../src/gui/widgets/qmdiarea.cpp" line="+260"/>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
<source>(Untitled)</source>
<translation type="unfinished"></translation>
</message>
@@ -2879,7 +2889,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMdiSubWindow</name>
<message>
- <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+250"/>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
<source>%1 - [%2]</source>
<translation>%1 - [%2]</translation>
</message>
@@ -2972,7 +2982,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMenu</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+127"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
<location line="+225"/>
<source>Close</source>
<translation>Закрити</translation>
@@ -3045,7 +3055,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMessageBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1105"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1111"/>
<source>Help</source>
<translation>Довідка</translation>
</message>
@@ -3058,21 +3068,20 @@ Do you want to delete it anyway?</source>
<translation>Гаразд</translation>
</message>
<message>
- <location line="+503"/>
+ <location line="+509"/>
<source>About Qt</source>
<translation>Про Qt</translation>
</message>
<message>
- <location line="-15"/>
<source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Ця програма використовує Qt версії %1.&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Ця програма використовує Qt версії %1.&lt;/p&gt;</translation>
</message>
<message>
<source>&lt;h3&gt;About Qt&lt;/h3&gt;%1&lt;p&gt;Qt is a C++ toolkit for cross-platform application development.&lt;/p&gt;&lt;p&gt;Qt provides single-source portability across MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt is a Trolltech product. See &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
<translation type="obsolete">&lt;h3&gt;Про Qt&lt;/h3&gt;%1&lt;p&gt;Qt - це інструментарій C++ для міжплатформової розробки.&lt;/p&gt;&lt;p&gt;Qt забезпечує мобільність єдиних джерельних текстів між MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux та всіма основними комерційними версіями Unix. Qt існує також для вбудованих пристроїв, таких, як Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt - це продукт компанії Trolltech. Більше інформації можна знайти на &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
- <location line="-1584"/>
+ <location line="-1605"/>
<source>Show Details...</source>
<translation>Показати подробиці...</translation>
</message>
@@ -3083,19 +3092,18 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="+1570"/>
- <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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
+ <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://www.qtsoftware.com/products/licensing&quot;&gt;www.qtsoftware.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://www.qtsoftware.com/qt/&quot;&gt;www.qtsoftware.com/qt&lt;/a&gt; for more information.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+15"/>
<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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Ця програма використовує Qt Open Source Edition версії %1.&lt;/p&gt;&lt;p&gt;Qt Open Source Edition призначено для розробки відкритих програмних засобів. Для розробки власницьких (закритих) програм вам потрібна комерційна ліцензія для Qt.&lt;/p&gt;&lt;p&gt;Перегляньте &lt;a href=&quot;http://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; щодо огляду ліцензій Qt.&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Ця програма використовує Qt Open Source Edition версії %1.&lt;/p&gt;&lt;p&gt;Qt Open Source Edition призначено для розробки відкритих програмних засобів. Для розробки власницьких (закритих) програм вам потрібна комерційна ліцензія для Qt.&lt;/p&gt;&lt;p&gt;Перегляньте &lt;a href=&quot;http://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; щодо огляду ліцензій Qt.&lt;/p&gt;</translation>
</message>
</context>
<context>
<name>QMultiInputContext</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+58"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
<source>Select IM</source>
<translation>Вибрати метод вводу</translation>
</message>
@@ -3103,7 +3111,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMultiInputContextPlugin</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+65"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
<source>Multiple input method switcher</source>
<translation>Перемикач методів вводу</translation>
</message>
@@ -3116,7 +3124,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNativeSocketEngine</name>
<message>
- <location filename="../src/network/socket/qnativesocketengine.cpp" line="+176"/>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/>
<source>The remote host closed the connection</source>
<translation>Віддалений вузол закрив з&apos;єднання</translation>
</message>
@@ -3249,7 +3257,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessCacheBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+35"/>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
<source>Error opening %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3257,7 +3265,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessFileBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+69"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/>
<source>Request for opening non-local file %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3285,7 +3293,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessFtpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+135"/>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3295,7 +3303,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+131"/>
+ <location line="+130"/>
<source>Logging in to %1 failed: authentication required</source>
<translation type="unfinished"></translation>
</message>
@@ -3313,7 +3321,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessHttpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+565"/>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3326,7 +3334,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+37"/>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/>
<source>Protocol &quot;%1&quot; is unknown</source>
<translation type="unfinished"></translation>
</message>
@@ -3334,7 +3342,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkReplyImpl</name>
<message>
- <location line="+422"/>
+ <location line="+432"/>
<location line="+22"/>
<source>Operation canceled</source>
<translation type="unfinished"></translation>
@@ -3343,7 +3351,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIDriver</name>
<message>
- <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2027"/>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2069"/>
<source>Unable to logon</source>
<translation>Неможливо зайти</translation>
</message>
@@ -3372,7 +3380,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIResult</name>
<message>
- <location line="-976"/>
+ <location line="-963"/>
<location line="+161"/>
<location line="+15"/>
<source>Unable to bind column for batch execute</source>
@@ -3399,18 +3407,16 @@ Do you want to delete it anyway?</source>
<translation>Неможливо підготувати оператор</translation>
</message>
<message>
- <location line="+29"/>
- <location line="+37"/>
+ <location line="+36"/>
<source>Unable to bind value</source>
<translation>Неможливо прив&apos;язати значення</translation>
</message>
<message>
- <location line="-20"/>
<source>Unable to execute select statement</source>
- <translation>Неможливо виконати оператор вибирання</translation>
+ <translation type="obsolete">Неможливо виконати оператор вибирання</translation>
</message>
<message>
- <location line="+32"/>
+ <location line="+19"/>
<source>Unable to execute statement</source>
<translation>Неможливо виконати оператор</translation>
</message>
@@ -3418,7 +3424,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCDriver</name>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1657"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1785"/>
<source>Unable to connect</source>
<translation>Неможливо з&apos;єднатися</translation>
</message>
@@ -3428,7 +3434,7 @@ Do you want to delete it anyway?</source>
<translation>Неможливо з&apos;єднатися - драйвер не підтримує всіх потрібних функцій</translation>
</message>
<message>
- <location line="+234"/>
+ <location line="+242"/>
<source>Unable to disable autocommit</source>
<translation>Неможливо вимкнути автозавершення транзакцій</translation>
</message>
@@ -3451,19 +3457,19 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCResult</name>
<message>
- <location line="-1204"/>
+ <location line="-1218"/>
<location line="+349"/>
<source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
<translation>QODBCResult::reset: неможливо встановити &apos;SQL_CURSOR_STATIC&apos;, як атрибут оператора. Будь ласка, перевірте налаштування драйвера ODBC</translation>
</message>
<message>
<location line="-332"/>
- <location line="+625"/>
+ <location line="+626"/>
<source>Unable to execute statement</source>
<translation>Неможливо виконати оператор</translation>
</message>
<message>
- <location line="-554"/>
+ <location line="-555"/>
<source>Unable to fetch next</source>
<translation>Неможливо вибрати наступний</translation>
</message>
@@ -3473,19 +3479,19 @@ Do you want to delete it anyway?</source>
<translation>Неможливо підготувати оператор</translation>
</message>
<message>
- <location line="+267"/>
+ <location line="+268"/>
<source>Unable to bind variable</source>
<translation>Неможливо прив&apos;язати змінну</translation>
</message>
<message>
<location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-474"/>
- <location line="+577"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-475"/>
+ <location line="+578"/>
<source>Unable to fetch last</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-671"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
<source>Unable to fetch</source>
<translation type="unfinished"></translation>
</message>
@@ -3503,12 +3509,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QObject</name>
<message>
- <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+134"/>
+ <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+44"/>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
<source>Operation not supported on %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3518,7 +3524,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+145"/>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
<source>Write error writing to %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -3543,7 +3549,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/kernel/qhostinfo.cpp" line="+147"/>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
<location line="+57"/>
<source>No host name given</source>
<translation type="unfinished"></translation>
@@ -3552,7 +3558,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPPDOptionsModel</name>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1165"/>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/>
<source>Name</source>
<translation type="unfinished">Ім&apos;я</translation>
</message>
@@ -3565,7 +3571,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+732"/>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/>
<source>Unable to connect</source>
<translation>Неможливо з&apos;єднатися</translation>
</message>
@@ -3585,7 +3591,7 @@ Do you want to delete it anyway?</source>
<translation>Неможливо відкотити транзакцію</translation>
</message>
<message>
- <location line="+336"/>
+ <location line="+358"/>
<source>Unable to subscribe</source>
<translation type="unfinished"></translation>
</message>
@@ -3598,12 +3604,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QPSQLResult</name>
<message>
- <location line="-1035"/>
+ <location line="-1058"/>
<source>Unable to create query</source>
<translation>Неможливо створити запит</translation>
</message>
<message>
- <location line="+373"/>
+ <location line="+374"/>
<source>Unable to prepare statement</source>
<translation type="unfinished">Неможливо підготувати оператор</translation>
</message>
@@ -3611,7 +3617,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPageSetupWidget</name>
<message>
- <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+274"/>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
<source>Centimeters (cm)</source>
<translation type="unfinished"></translation>
</message>
@@ -3727,7 +3733,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPrintDialog</name>
<message>
- <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+68"/>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/>
<source>locally connected</source>
<translation>локальне з&apos;єднання</translation>
</message>
@@ -3752,7 +3758,7 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">Альбомне</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+299"/>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+329"/>
<source>A0 (841 x 1189 mm)</source>
<translation>A0 (841 x 1189 мм)</translation>
</message>
@@ -3902,7 +3908,7 @@ Do you want to delete it anyway?</source>
<translation>US Common #10 Envelope (105 x 241 мм)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+238"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
<source>OK</source>
<translation>Гаразд</translation>
</message>
@@ -3923,7 +3929,7 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">Джерело паперу:</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+80"/>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
<location line="+13"/>
<location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
<source>Print</source>
@@ -4255,13 +4261,13 @@ Please choose a different file name.</source>
<context>
<name>QPrintPreviewDialog</name>
<message>
- <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+38"/>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
<location line="+12"/>
<source>Page Setup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+222"/>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/>
<source>%1%</source>
<translation type="unfinished"></translation>
</message>
@@ -4543,8 +4549,8 @@ Please choose a different file name.</source>
<context>
<name>QProcess</name>
<message>
- <location filename="../src/corelib/io/qprocess_unix.cpp" line="+445"/>
- <location filename="../src/corelib/io/qprocess_win.cpp" line="+117"/>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
<source>Could not open input redirection for reading</source>
<translation type="unfinished"></translation>
</message>
@@ -4573,7 +4579,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/io/qprocess.cpp" line="+503"/>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+533"/>
<location line="+52"/>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
<location line="+50"/>
@@ -4593,6 +4599,11 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+912"/>
+ <source>No program defined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
<source>Process failed to start</source>
<translation type="unfinished"></translation>
@@ -4601,7 +4612,7 @@ Please choose a different file name.</source>
<context>
<name>QProgressDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+152"/>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
<source>Cancel</source>
<translation>Скасувати</translation>
</message>
@@ -4625,7 +4636,7 @@ Please choose a different file name.</source>
<context>
<name>QRegExp</name>
<message>
- <location filename="../src/corelib/tools/qregexp.cpp" line="+34"/>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/>
<source>no error occurred</source>
<translation>без помилок</translation>
</message>
@@ -4673,7 +4684,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Driver</name>
<message>
- <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+353"/>
+ <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
<source>Error to open database</source>
<translation>Помилка відкривання бази даних</translation>
</message>
@@ -4696,12 +4707,12 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Result</name>
<message>
- <location line="-310"/>
+ <location line="-323"/>
<source>Unable to fetch results</source>
<translation>Неможливо витягнути результат</translation>
</message>
<message>
- <location line="+139"/>
+ <location line="+147"/>
<source>Unable to execute statement</source>
<translation>Неможливо виконати оператор</translation>
</message>
@@ -4709,7 +4720,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLiteDriver</name>
<message>
- <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+498"/>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/>
<source>Error opening database</source>
<translation>Неможливо відкрити базу даних</translation>
</message>
@@ -4776,12 +4787,12 @@ Please choose a different file name.</source>
<context>
<name>QScrollBar</name>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="+419"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/>
<source>Scroll here</source>
<translation>Прокрутити сюди</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Left edge</source>
<translation>Лівий край</translation>
</message>
@@ -4791,7 +4802,7 @@ Please choose a different file name.</source>
<translation>Верх</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Right edge</source>
<translation>Правий край</translation>
</message>
@@ -4801,7 +4812,7 @@ Please choose a different file name.</source>
<translation>Низ</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Page left</source>
<translation>Сторінка ліворуч</translation>
</message>
@@ -4812,7 +4823,7 @@ Please choose a different file name.</source>
<translation>Сторінка вгору</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Page right</source>
<translation>Сторінка праворуч</translation>
</message>
@@ -4823,7 +4834,7 @@ Please choose a different file name.</source>
<translation>Сторінка додолу</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Scroll left</source>
<translation>Прокрутити ліворуч</translation>
</message>
@@ -4833,7 +4844,7 @@ Please choose a different file name.</source>
<translation>Прокрутити вгору</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Scroll right</source>
<translation>Прокрутити праворуч</translation>
</message>
@@ -4861,7 +4872,7 @@ Please choose a different file name.</source>
<context>
<name>QSharedMemory</name>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+177"/>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+207"/>
<source>%1: unable to set key on lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4872,7 +4883,7 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+168"/>
- <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+118"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
<source>%1: unable to lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4882,8 +4893,8 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+48"/>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+57"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
<source>%1: permission denied</source>
<translation type="unfinished"></translation>
</message>
@@ -4961,7 +4972,7 @@ Please choose a different file name.</source>
<context>
<name>QShortcut</name>
<message>
- <location filename="../src/gui/kernel/qkeysequence.cpp" line="+343"/>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/>
<source>Space</source>
<translation>Прогалина</translation>
</message>
@@ -5546,7 +5557,7 @@ Please choose a different file name.</source>
<context>
<name>QSql</name>
<message>
- <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+860"/>
+ <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
<source>Delete</source>
<translation>Вилучити</translation>
</message>
@@ -5603,7 +5614,7 @@ Please choose a different file name.</source>
<context>
<name>QSslSocket</name>
<message>
- <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+539"/>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+569"/>
<source>Unable to write data: %1</source>
<translation>Неможливо записати дані: %1</translation>
</message>
@@ -5666,7 +5677,7 @@ Please choose a different file name.</source>
<name>QSystemSemaphore</name>
<message>
<location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+36"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
<source>%1: out of resources</source>
<translation type="unfinished"></translation>
</message>
@@ -5696,7 +5707,7 @@ Please choose a different file name.</source>
<context>
<name>QTDSDriver</name>
<message>
- <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+552"/>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
<source>Unable to open connection</source>
<translation>Неможливо відкрити з&apos;єднання</translation>
</message>
@@ -5726,7 +5737,7 @@ Please choose a different file name.</source>
<translation type="obsolete">Дії з сокетами не підтримуються</translation>
</message>
<message>
- <location filename="../src/network/socket/qtcpserver.cpp" line="+252"/>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
<source>Operation on socket is not supported</source>
<translation type="unfinished"></translation>
</message>
@@ -5734,7 +5745,7 @@ Please choose a different file name.</source>
<context>
<name>QTextControl</name>
<message>
- <location filename="../src/gui/text/qtextcontrol.cpp" line="+1942"/>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/>
<source>&amp;Undo</source>
<translation>&amp;Повернути</translation>
</message>
@@ -5792,7 +5803,7 @@ Please choose a different file name.</source>
<context>
<name>QUdpSocket</name>
<message>
- <location filename="../src/network/socket/qudpsocket.cpp" line="+139"/>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
<source>This platform does not support IPv6</source>
<translation>Ця платформа не підтримує IPv6</translation>
</message>
@@ -5800,7 +5811,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoGroup</name>
<message>
- <location filename="../src/gui/util/qundogroup.cpp" line="+356"/>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+386"/>
<source>Undo</source>
<translation>Повернути</translation>
</message>
@@ -5813,7 +5824,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoModel</name>
<message>
- <location filename="../src/gui/util/qundoview.cpp" line="+71"/>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
<source>&lt;empty&gt;</source>
<translation>&lt;порожньо&gt;</translation>
</message>
@@ -5821,7 +5832,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoStack</name>
<message>
- <location filename="../src/gui/util/qundostack.cpp" line="+804"/>
+ <location filename="../src/gui/util/qundostack.cpp" line="+834"/>
<source>Undo</source>
<translation>Повернути</translation>
</message>
@@ -5892,7 +5903,7 @@ Please choose a different file name.</source>
<context>
<name>QWebFrame</name>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+686"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
<source>Request cancelled</source>
<translation type="unfinished"></translation>
</message>
@@ -6304,7 +6315,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1342"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
<source>JavaScript Alert - %1</source>
<translation type="unfinished"></translation>
</message>
@@ -6380,6 +6391,11 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+3"/>
+ <source>Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
<source>Select to the next character</source>
<translation type="unfinished"></translation>
</message>
@@ -6448,11 +6464,21 @@ Please choose a different file name.</source>
<source>Delete to the end of the word</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+33"/>
+ <source>Insert a new paragraph</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QWhatsThisAction</name>
<message>
- <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+492"/>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
<source>What&apos;s This?</source>
<translation>Що це?</translation>
</message>
@@ -6460,7 +6486,7 @@ Please choose a different file name.</source>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5290"/>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/>
<source>*</source>
<translation>*</translation>
</message>
@@ -6468,7 +6494,7 @@ Please choose a different file name.</source>
<context>
<name>QWizard</name>
<message>
- <location filename="../src/gui/dialogs/qwizard.cpp" line="+605"/>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/>
<source>Go Back</source>
<translation>Піти назад</translation>
</message>
@@ -6530,7 +6556,7 @@ Please choose a different file name.</source>
<context>
<name>QWorkspace</name>
<message>
- <location filename="../src/gui/widgets/qworkspace.cpp" line="+1064"/>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/>
<source>&amp;Restore</source>
<translation>&amp;Відновити</translation>
</message>
@@ -6600,7 +6626,7 @@ Please choose a different file name.</source>
<context>
<name>QXml</name>
<message>
- <location filename="../src/xml/sax/qxml.cpp" line="+28"/>
+ <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
<source>no error occurred</source>
<translation>без помилок</translation>
</message>
@@ -6718,8 +6744,8 @@ Please choose a different file name.</source>
<context>
<name>QXmlStream</name>
<message>
- <location filename="../src/corelib/xml/qxmlstream.cpp" line="+562"/>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1739"/>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/>
<source>Extra content at end of document.</source>
<translation>Надлишковий вміст в кінці документу.</translation>
</message>
@@ -6911,7 +6937,7 @@ Please choose a different file name.</source>
<context>
<name>QtXmlPatterns</name>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+175"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
<source>An %1-attribute with value %2 has already been declared.</source>
<translation type="unfinished"></translation>
</message>
@@ -6921,12 +6947,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+54"/>
+ <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
<source>Network timeout.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+290"/>
+ <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>
@@ -6936,7 +6962,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+50"/>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
<source>Year %1 is invalid because it begins with %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6976,7 +7002,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+69"/>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/>
<location line="+15"/>
<source>At least one component must be present.</source>
<translation type="unfinished"></translation>
@@ -6987,7 +7013,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+34"/>
+ <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
<source>No operand in an integer division, %1, can be %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -7002,17 +7028,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+102"/>
+ <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/>
<source>%1 is not a valid value of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+193"/>
+ <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="+35"/>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
<source>Integer division (%1) by zero (%2) is undefined.</source>
<translation type="unfinished"></translation>
</message>
@@ -7043,17 +7069,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+49"/>
+ <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/>
<source>A value of type %1 cannot have an Effective Boolean Value.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+48"/>
+ <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/>
<source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+372"/>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
<source>Value %1 of type %2 exceeds maximum (%3).</source>
<translation type="unfinished"></translation>
</message>
@@ -7063,7 +7089,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+61"/>
+ <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/>
<source>A value of type %1 must contain an even number of digits. The value %2 does not.</source>
<translation type="unfinished"></translation>
</message>
@@ -7073,7 +7099,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+177"/>
+ <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
<source>Operator %1 cannot be used on type %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -7083,7 +7109,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+36"/>
+ <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 type="unfinished"></translation>
</message>
@@ -7093,7 +7119,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
<source>Type error in cast, expected %1, received %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -7103,7 +7129,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+104"/>
+ <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/>
<source>No casting is possible with %1 as the target type.</source>
<translation type="unfinished"></translation>
</message>
@@ -7128,7 +7154,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+37"/>
+ <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
<source>A comment cannot contain %1</source>
<translation type="unfinished"></translation>
</message>
@@ -7138,7 +7164,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+137"/>
+ <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
<source>No comparisons can be done involving the type %1.</source>
<translation type="unfinished"></translation>
</message>
@@ -7148,12 +7174,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+56"/>
+ <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="+139"/>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
<source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
<translation type="unfinished"></translation>
</message>
@@ -7163,7 +7189,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+76"/>
+ <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>
@@ -7173,7 +7199,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+83"/>
+ <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+113"/>
<source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source>
<translation type="unfinished"></translation>
</message>
@@ -7183,33 +7209,33 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+79"/>
+ <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="+54"/>
+ <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/>
<source>The data of a processing instruction cannot contain the string %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+52"/>
+ <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="+126"/>
+ <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="+39"/>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
<source>%1 is an invalid %2</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+47"/>
+ <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/>
<source>%1 takes at most %n argument(s). %2 is therefore invalid.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -7227,7 +7253,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+90"/>
+ <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/>
<source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source>
<translation type="unfinished"></translation>
</message>
@@ -7242,27 +7268,27 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/>
<source>%1 is not a valid XML 1.0 character.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+167"/>
+ <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
<source>The first argument to %1 cannot be of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+56"/>
+ <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="+31"/>
+ <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
<source>%1 was called.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+64"/>
+ <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>
@@ -7277,7 +7303,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+62"/>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
<source>%1 matches newline characters</source>
<translation type="unfinished"></translation>
</message>
@@ -7312,17 +7338,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+317"/>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/>
<source>It will not be possible to retrieve %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+24"/>
+ <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="+249"/>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
<source>The default collection is undefined</source>
<translation type="unfinished"></translation>
</message>
@@ -7332,12 +7358,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+222"/>
+ <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="+57"/>
+ <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>
@@ -7347,17 +7373,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+28"/>
+ <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="+37"/>
+ <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/>
<source>The item %1 did not match the required type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+319"/>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/>
<location line="+7253"/>
<source>%1 is an unknown schema type.</source>
<translation type="unfinished"></translation>
@@ -7378,7 +7404,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+63"/>
+ <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
<source>The variable %1 is unused</source>
<translation type="unfinished"></translation>
</message>
@@ -7660,7 +7686,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+25"/>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
<source>empty</source>
<translation type="unfinished"></translation>
</message>
@@ -7685,7 +7711,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+33"/>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
<source>Required type is %1, but %2 was found.</source>
<translation type="unfinished"></translation>
</message>
@@ -7700,7 +7726,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+56"/>
+ <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>
@@ -7710,12 +7736,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+90"/>
+ <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/>
<source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+284"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
<source>%1 is an unsupported encoding.</source>
<translation type="unfinished"></translation>
</message>
@@ -7730,13 +7756,13 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+89"/>
+ <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
<source>Ambiguous rule match.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+39"/>
- <source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source>
+ <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>
@@ -7755,12 +7781,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+87"/>
+ <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
<source>Circularity detected</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+115"/>
+ <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/>
<source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
<translation type="unfinished"></translation>
</message>
@@ -7770,12 +7796,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+35"/>
+ <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="+489"/>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
<source>Element %1 is not allowed at this location.</source>
<translation type="unfinished"></translation>
</message>
@@ -7830,7 +7856,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+153"/>
+ <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/>
<source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source>
<translation type="unfinished"></translation>
</message>
@@ -7905,7 +7931,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+432"/>
+ <location line="+434"/>
<source>Element %1 cannot have a sequence constructor.</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/qt_untranslated.ts b/translations/qt_untranslated.ts
index cbedeba..35a2802 100644
--- a/translations/qt_untranslated.ts
+++ b/translations/qt_untranslated.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioOutput</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+374"/>
+ <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/>
<source>&lt;html&gt;The audio playback device &lt;b&gt;%1&lt;/b&gt; does not work.&lt;br/&gt;Falling back to &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -22,7 +22,7 @@
<context>
<name>CloseButton</name>
<message>
- <location filename="../src/gui/widgets/qtabbar.cpp" line="+2217"/>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/>
<source>Close Tab</source>
<translation type="unfinished"></translation>
</message>
@@ -78,7 +78,7 @@
<context>
<name>Phonon::Gstreamer::MediaObject</name>
<message>
- <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+88"/>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/>
<source>Cannot start playback.
Check your Gstreamer installation and make sure you
@@ -91,24 +91,24 @@ have libgstreamer-plugins-base installed.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+653"/>
- <location line="+9"/>
+ <location line="+676"/>
+ <location line="+8"/>
<location line="+15"/>
- <location line="+7"/>
- <location line="+5"/>
- <location line="+20"/>
- <location line="+317"/>
+ <location line="+9"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+335"/>
<location line="+24"/>
<source>Could not open media source.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-381"/>
+ <location line="-403"/>
<source>Invalid source type.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+355"/>
+ <location line="+377"/>
<source>Could not locate media source.</source>
<translation type="unfinished"></translation>
</message>
@@ -142,7 +142,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3Accel</name>
<message>
- <location filename="../src/qt3support/other/q3accel.cpp" line="+451"/>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
<source>%1, %2 not defined</source>
<translation type="unfinished"></translation>
</message>
@@ -155,7 +155,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3DataTable</name>
<message>
- <location filename="../src/qt3support/sql/q3datatable.cpp" line="+253"/>
+ <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
<source>True</source>
<translation type="unfinished"></translation>
</message>
@@ -183,7 +183,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3FileDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+834"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+864"/>
<source>Copy or Move a File</source>
<translation type="unfinished"></translation>
</message>
@@ -208,7 +208,7 @@ have libgstreamer-plugins-base installed.</source>
<location line="-157"/>
<location line="+49"/>
<location line="+2153"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+80"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
<source>All Files (*)</source>
<translation type="unfinished"></translation>
</message>
@@ -348,7 +348,7 @@ have libgstreamer-plugins-base installed.</source>
<message>
<location line="+704"/>
<location line="+2100"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+307"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
@@ -514,7 +514,7 @@ Check path and filename.</source>
<context>
<name>Q3LocalFs</name>
<message>
- <location filename="../src/qt3support/network/q3localfs.cpp" line="+100"/>
+ <location filename="../src/qt3support/network/q3localfs.cpp" line="+130"/>
<location line="+10"/>
<source>Could not read directory
%1</source>
@@ -556,7 +556,7 @@ to
<context>
<name>Q3MainWindow</name>
<message>
- <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2021"/>
+ <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
<source>Line up</source>
<translation type="unfinished"></translation>
</message>
@@ -569,7 +569,7 @@ to
<context>
<name>Q3NetworkProtocol</name>
<message>
- <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+824"/>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
<source>Operation stopped by the user</source>
<translation type="unfinished"></translation>
</message>
@@ -577,7 +577,7 @@ to
<context>
<name>Q3ProgressDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+194"/>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
<location line="+61"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
@@ -586,7 +586,7 @@ to
<context>
<name>Q3TabDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+159"/>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/>
<location line="+814"/>
<source>OK</source>
<translation type="unfinished"></translation>
@@ -615,7 +615,7 @@ to
<context>
<name>Q3TextEdit</name>
<message>
- <location filename="../src/qt3support/text/q3textedit.cpp" line="+5399"/>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
<source>&amp;Undo</source>
<translation type="unfinished"></translation>
</message>
@@ -654,7 +654,7 @@ to
<context>
<name>Q3TitleBar</name>
<message>
- <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+216"/>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
<source>System</source>
<translation type="unfinished"></translation>
</message>
@@ -722,7 +722,7 @@ to
<context>
<name>Q3ToolBar</name>
<message>
- <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+662"/>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
<source>More...</source>
<translation type="unfinished"></translation>
</message>
@@ -730,7 +730,7 @@ to
<context>
<name>Q3UrlOperator</name>
<message>
- <location filename="../src/qt3support/network/q3urloperator.cpp" line="+356"/>
+ <location filename="../src/qt3support/network/q3urloperator.cpp" line="+386"/>
<location line="+260"/>
<location line="+4"/>
<source>The protocol `%1&apos; is not supported</source>
@@ -782,7 +782,7 @@ to
<context>
<name>Q3Wizard</name>
<message>
- <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+147"/>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
@@ -810,9 +810,9 @@ to
<context>
<name>QAbstractSocket</name>
<message>
- <location filename="../src/network/socket/qabstractsocket.cpp" line="+838"/>
- <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+585"/>
- <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+627"/>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
<location line="+26"/>
<source>Host not found</source>
<translation type="unfinished"></translation>
@@ -855,7 +855,7 @@ to
<context>
<name>QAbstractSpinBox</name>
<message>
- <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1169"/>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/>
<source>&amp;Step up</source>
<translation type="unfinished"></translation>
</message>
@@ -873,12 +873,12 @@ to
<context>
<name>QApplication</name>
<message>
- <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+346"/>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
<source>Activate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.h" line="+322"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
<source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
<translation type="unfinished"></translation>
</message>
@@ -888,7 +888,7 @@ to
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/kernel/qapplication.cpp" line="+2212"/>
+ <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 type="unfinished"></translation>
@@ -925,7 +925,7 @@ to
<context>
<name>QCheckBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+84"/>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/>
<source>Uncheck</source>
<translation type="unfinished"></translation>
</message>
@@ -943,7 +943,7 @@ to
<context>
<name>QColorDialog</name>
<message>
- <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1219"/>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/>
<source>Hu&amp;e:</source>
<translation type="unfinished"></translation>
</message>
@@ -1001,13 +1001,13 @@ to
<context>
<name>QComboBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1741"/>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
<location line="+65"/>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+514"/>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
<source>False</source>
<translation type="unfinished"></translation>
</message>
@@ -1025,7 +1025,7 @@ to
<context>
<name>QCoreApplication</name>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+89"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
<source>%1: key is empty</source>
<comment>QSystemSemaphore</comment>
<translation type="unfinished"></translation>
@@ -1046,12 +1046,12 @@ to
<context>
<name>QDB2Driver</name>
<message>
- <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1217"/>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
<source>Unable to connect</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+263"/>
+ <location line="+303"/>
<source>Unable to commit transaction</source>
<translation type="unfinished"></translation>
</message>
@@ -1069,8 +1069,8 @@ to
<context>
<name>QDB2Result</name>
<message>
- <location line="-986"/>
- <location line="+242"/>
+ <location line="-1043"/>
+ <location line="+243"/>
<source>Unable to execute statement</source>
<translation type="unfinished"></translation>
</message>
@@ -1085,7 +1085,7 @@ to
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+91"/>
+ <location line="+92"/>
<source>Unable to fetch record %1</source>
<translation type="unfinished"></translation>
</message>
@@ -1103,7 +1103,7 @@ to
<context>
<name>QDateTimeEdit</name>
<message>
- <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2265"/>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
<source>AM</source>
<translation type="unfinished"></translation>
</message>
@@ -1126,7 +1126,7 @@ to
<context>
<name>QDial</name>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+921"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
<source>QDial</source>
<translation type="unfinished"></translation>
</message>
@@ -1144,7 +1144,7 @@ to
<context>
<name>QDialog</name>
<message>
- <location filename="../src/gui/dialogs/qdialog.cpp" line="+567"/>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
<source>What&apos;s This?</source>
<translation type="unfinished"></translation>
</message>
@@ -1157,9 +1157,9 @@ to
<context>
<name>QDialogButtonBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1830"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
<location line="+464"/>
- <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+531"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
@@ -1282,7 +1282,7 @@ to
<context>
<name>QDirModel</name>
<message>
- <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+423"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
@@ -1312,7 +1312,7 @@ to
<context>
<name>QDockWidget</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1209"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
<source>Close</source>
<translation type="unfinished"></translation>
</message>
@@ -1343,7 +1343,7 @@ to
<context>
<name>QErrorMessage</name>
<message>
- <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+162"/>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+192"/>
<source>Debug Message:</source>
<translation type="unfinished"></translation>
</message>
@@ -1371,13 +1371,18 @@ to
<context>
<name>QFile</name>
<message>
- <location filename="../src/corelib/io/qfile.cpp" line="+678"/>
- <location line="+130"/>
+ <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
+ <location line="+141"/>
<source>Destination file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+12"/>
+ <location line="-108"/>
+ <source>Cannot remove source file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+120"/>
<source>Cannot open %1 for input</source>
<translation type="unfinished"></translation>
</message>
@@ -1400,37 +1405,37 @@ to
<context>
<name>QFileDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+484"/>
- <location line="+423"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+515"/>
+ <location line="+444"/>
<source>All Files (*)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+218"/>
+ <location line="+222"/>
<source>Directories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-3"/>
<location line="+50"/>
- <location line="+1440"/>
+ <location line="+1471"/>
<location line="+75"/>
<source>&amp;Open</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-1565"/>
+ <location line="-1596"/>
<location line="+50"/>
<source>&amp;Save</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-705"/>
+ <location line="-730"/>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+1469"/>
+ <location line="+1515"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation type="unfinished"></translation>
@@ -1448,7 +1453,7 @@ Please verify the correct file name was given.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1458"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1504"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
@@ -1494,20 +1499,20 @@ Please verify the correct file name was given.</source>
</message>
<message>
<location filename="../src/gui/dialogs/qfiledialog.cpp" line="+6"/>
- <location line="+623"/>
+ <location line="+648"/>
<source>Directory:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+773"/>
- <location line="+851"/>
+ <location line="+794"/>
+ <location line="+862"/>
<source>%1
Directory not found.
Please verify the correct directory name was given.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-217"/>
+ <location line="-218"/>
<source>&apos;%1&apos; is write protected.
Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
@@ -1523,22 +1528,22 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+406"/>
+ <location line="+407"/>
<source>Recent Places</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+130"/>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
<source>All Files (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2493"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2550"/>
<source>Save As</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+381"/>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+411"/>
<source>Drive</source>
<translation type="unfinished"></translation>
</message>
@@ -1570,29 +1575,29 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1914"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1970"/>
<source>New Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-1907"/>
+ <location line="-1963"/>
<source>&amp;New Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+631"/>
+ <location line="+656"/>
<location line="+38"/>
<source>&amp;Choose</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qsidebar.cpp" line="+388"/>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-662"/>
- <location line="+627"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-687"/>
+ <location line="+652"/>
<source>File &amp;name:</source>
<translation type="unfinished"></translation>
</message>
@@ -1612,7 +1617,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFileSystemModel</name>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+791"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+828"/>
<source>Invalid filename</source>
<translation type="unfinished"></translation>
</message>
@@ -1649,7 +1654,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+204"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/>
<source>My Computer</source>
<translation type="unfinished"></translation>
</message>
@@ -1687,7 +1692,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFontDatabase</name>
<message>
- <location filename="../src/gui/text/qfontdatabase.cpp" line="+60"/>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
<location line="+1176"/>
<source>Normal</source>
<translation type="unfinished"></translation>
@@ -1904,7 +1909,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFontDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+742"/>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/>
<source>&amp;Font</source>
<translation type="unfinished"></translation>
</message>
@@ -1953,8 +1958,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QFtp</name>
<message>
- <location filename="../src/network/access/qftp.cpp" line="+796"/>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="+653"/>
+ <location filename="../src/network/access/qftp.cpp" line="+826"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+683"/>
<source>Not connected</source>
<translation type="unfinished"></translation>
</message>
@@ -2090,7 +2095,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QHostInfo</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_p.h" line="+153"/>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
<source>Unknown error</source>
<translation type="unfinished"></translation>
</message>
@@ -2098,11 +2103,11 @@ Do you want to delete it anyway?</source>
<context>
<name>QHostInfoAgent</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+148"/>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
<location line="+9"/>
<location line="+64"/>
<location line="+31"/>
- <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+150"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
<location line="+9"/>
<location line="+40"/>
<location line="+27"/>
@@ -2128,21 +2133,21 @@ Do you want to delete it anyway?</source>
<context>
<name>QHttp</name>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="+1544"/>
- <location line="+816"/>
- <location filename="../src/qt3support/network/q3http.cpp" line="+1130"/>
+ <location filename="../src/network/access/qhttp.cpp" line="+1574"/>
+ <location line="+820"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+1160"/>
<location line="+567"/>
<source>Unknown error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-564"/>
+ <location line="-568"/>
<location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
<source>Request aborted</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+575"/>
+ <location line="+579"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
<source>No server set to connect to</source>
<translation type="unfinished"></translation>
@@ -2160,18 +2165,23 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+357"/>
+ <location line="+179"/>
+ <source>Unknown authentication method</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+183"/>
<source>Error writing response to device</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+1712"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+876"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+38"/>
<source>Connection refused</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-299"/>
+ <location filename="../src/network/access/qhttp.cpp" line="-304"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
<source>Host %1 not found</source>
@@ -2192,7 +2202,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+120"/>
+ <location line="+125"/>
<location line="+48"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
<location line="+47"/>
@@ -2241,7 +2251,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-133"/>
+ <location line="-138"/>
<source>Connection refused (or timed out)</source>
<translation type="unfinished"></translation>
</message>
@@ -2271,7 +2281,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-2259"/>
+ <location filename="../src/network/access/qhttp.cpp" line="-2263"/>
<source>HTTPS connection requested but SSL support not compiled in</source>
<translation type="unfinished"></translation>
</message>
@@ -2327,7 +2337,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseDriver</name>
<message>
- <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1378"/>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1428"/>
<source>Error opening database</source>
<translation type="unfinished"></translation>
</message>
@@ -2350,7 +2360,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseResult</name>
<message>
- <location line="-1077"/>
+ <location line="-1097"/>
<source>Unable to create BLOB</source>
<translation type="unfinished"></translation>
</message>
@@ -2370,7 +2380,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<location line="+189"/>
<source>Could not find array</source>
<translation type="unfinished"></translation>
@@ -2440,7 +2450,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIODevice</name>
<message>
- <location filename="../src/corelib/global/qglobal.cpp" line="+1830"/>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/>
<source>Permission denied</source>
<translation type="unfinished"></translation>
</message>
@@ -2460,7 +2470,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/io/qiodevice.cpp" line="+1506"/>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/>
<source>Unknown error</source>
<translation type="unfinished"></translation>
</message>
@@ -2468,7 +2478,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QInputContext</name>
<message>
- <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+212"/>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/>
<source>XIM</source>
<translation type="unfinished"></translation>
</message>
@@ -2491,7 +2501,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QInputDialog</name>
<message>
- <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+193"/>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
<source>Enter a value:</source>
<translation type="unfinished"></translation>
</message>
@@ -2499,7 +2509,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QLibrary</name>
<message>
- <location filename="../src/corelib/plugin/qlibrary.cpp" line="+348"/>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
<source>Could not mmap &apos;%1&apos;: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2530,7 +2540,7 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="-377"/>
- <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+250"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
<source>The shared library was not found.</source>
<translation type="unfinished"></translation>
</message>
@@ -2545,8 +2555,8 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+179"/>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+69"/>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
<source>Cannot load library %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2566,7 +2576,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QLineEdit</name>
<message>
- <location filename="../src/gui/widgets/qlineedit.cpp" line="+2649"/>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+2680"/>
<source>&amp;Undo</source>
<translation type="unfinished"></translation>
</message>
@@ -2604,8 +2614,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QLocalServer</name>
<message>
- <location filename="../src/network/socket/qlocalserver.cpp" line="+196"/>
- <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+201"/>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/>
<source>%1: Name error</source>
<translation type="unfinished"></translation>
</message>
@@ -2621,7 +2631,7 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="+5"/>
- <location filename="../src/network/socket/qlocalserver_win.cpp" line="+127"/>
+ <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/>
<source>%1: Unknown error %2</source>
<translation type="unfinished"></translation>
</message>
@@ -2629,8 +2639,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QLocalSocket</name>
<message>
- <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+102"/>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+104"/>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/>
<source>%1: Connection refused</source>
<translation type="unfinished"></translation>
</message>
@@ -2643,7 +2653,7 @@ Do you want to delete it anyway?</source>
<message>
<location line="+3"/>
<location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
- <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+50"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/>
<location line="+43"/>
<source>%1: Invalid name</source>
<translation type="unfinished"></translation>
@@ -2700,7 +2710,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMYSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1200"/>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1231"/>
<source>Unable to open database &apos;</source>
<translation type="unfinished"></translation>
</message>
@@ -2710,7 +2720,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+123"/>
+ <location line="+127"/>
<source>Unable to begin transaction</source>
<translation type="unfinished"></translation>
</message>
@@ -2728,7 +2738,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMYSQLResult</name>
<message>
- <location line="-917"/>
+ <location line="-922"/>
<source>Unable to fetch data</source>
<translation type="unfinished"></translation>
</message>
@@ -2743,7 +2753,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+189"/>
+ <location line="+190"/>
<location line="+8"/>
<source>Unable to prepare statement</source>
<translation type="unfinished"></translation>
@@ -2788,7 +2798,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMdiArea</name>
<message>
- <location filename="../src/gui/widgets/qmdiarea.cpp" line="+260"/>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
<source>(Untitled)</source>
<translation type="unfinished"></translation>
</message>
@@ -2796,7 +2806,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMdiSubWindow</name>
<message>
- <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+250"/>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
<source>%1 - [%2]</source>
<translation type="unfinished"></translation>
</message>
@@ -2889,7 +2899,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMenu</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+127"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
<location line="+225"/>
<source>Close</source>
<translation type="unfinished"></translation>
@@ -2911,7 +2921,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMessageBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1105"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1111"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
@@ -2924,17 +2934,12 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+503"/>
+ <location line="+509"/>
<source>About Qt</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-15"/>
- <source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="-1584"/>
+ <location line="-1605"/>
<source>Show Details...</source>
<translation type="unfinished"></translation>
</message>
@@ -2945,19 +2950,14 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="+1570"/>
- <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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+15"/>
- <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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
+ <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://www.qtsoftware.com/products/licensing&quot;&gt;www.qtsoftware.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://www.qtsoftware.com/qt/&quot;&gt;www.qtsoftware.com/qt&lt;/a&gt; for more information.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QMultiInputContext</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+58"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
<source>Select IM</source>
<translation type="unfinished"></translation>
</message>
@@ -2965,7 +2965,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMultiInputContextPlugin</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+65"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
<source>Multiple input method switcher</source>
<translation type="unfinished"></translation>
</message>
@@ -2978,7 +2978,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNativeSocketEngine</name>
<message>
- <location filename="../src/network/socket/qnativesocketengine.cpp" line="+176"/>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/>
<source>The remote host closed the connection</source>
<translation type="unfinished"></translation>
</message>
@@ -3111,7 +3111,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessCacheBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+35"/>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
<source>Error opening %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3119,7 +3119,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessFileBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+69"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/>
<source>Request for opening non-local file %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3147,7 +3147,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessFtpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+135"/>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3157,7 +3157,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+131"/>
+ <location line="+130"/>
<source>Logging in to %1 failed: authentication required</source>
<translation type="unfinished"></translation>
</message>
@@ -3175,7 +3175,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessHttpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+565"/>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/>
<source>No suitable proxy found</source>
<translation type="unfinished"></translation>
</message>
@@ -3188,7 +3188,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+37"/>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/>
<source>Protocol &quot;%1&quot; is unknown</source>
<translation type="unfinished"></translation>
</message>
@@ -3196,7 +3196,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkReplyImpl</name>
<message>
- <location line="+422"/>
+ <location line="+432"/>
<location line="+22"/>
<source>Operation canceled</source>
<translation type="unfinished"></translation>
@@ -3205,7 +3205,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIDriver</name>
<message>
- <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2027"/>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2069"/>
<source>Unable to logon</source>
<translation type="unfinished"></translation>
</message>
@@ -3234,7 +3234,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIResult</name>
<message>
- <location line="-976"/>
+ <location line="-963"/>
<location line="+161"/>
<location line="+15"/>
<source>Unable to bind column for batch execute</source>
@@ -3261,18 +3261,12 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+29"/>
- <location line="+37"/>
+ <location line="+36"/>
<source>Unable to bind value</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-20"/>
- <source>Unable to execute select statement</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+32"/>
+ <location line="+19"/>
<source>Unable to execute statement</source>
<translation type="unfinished"></translation>
</message>
@@ -3280,7 +3274,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCDriver</name>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1657"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1785"/>
<source>Unable to connect</source>
<translation type="unfinished"></translation>
</message>
@@ -3290,7 +3284,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+234"/>
+ <location line="+242"/>
<source>Unable to disable autocommit</source>
<translation type="unfinished"></translation>
</message>
@@ -3313,19 +3307,19 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCResult</name>
<message>
- <location line="-1204"/>
+ <location line="-1218"/>
<location line="+349"/>
<source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-332"/>
- <location line="+625"/>
+ <location line="+626"/>
<source>Unable to execute statement</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-554"/>
+ <location line="-555"/>
<source>Unable to fetch next</source>
<translation type="unfinished"></translation>
</message>
@@ -3335,19 +3329,19 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+267"/>
+ <location line="+268"/>
<source>Unable to bind variable</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-474"/>
- <location line="+577"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-475"/>
+ <location line="+578"/>
<source>Unable to fetch last</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-671"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
<source>Unable to fetch</source>
<translation type="unfinished"></translation>
</message>
@@ -3365,12 +3359,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QObject</name>
<message>
- <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+134"/>
+ <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
<source>Home</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+44"/>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
<source>Operation not supported on %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3380,7 +3374,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+145"/>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
<source>Write error writing to %1: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -3405,7 +3399,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/network/kernel/qhostinfo.cpp" line="+147"/>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
<location line="+57"/>
<source>No host name given</source>
<translation type="unfinished"></translation>
@@ -3414,7 +3408,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPPDOptionsModel</name>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1165"/>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
@@ -3427,7 +3421,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+732"/>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/>
<source>Unable to connect</source>
<translation type="unfinished"></translation>
</message>
@@ -3447,7 +3441,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+336"/>
+ <location line="+358"/>
<source>Unable to subscribe</source>
<translation type="unfinished"></translation>
</message>
@@ -3460,12 +3454,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QPSQLResult</name>
<message>
- <location line="-1035"/>
+ <location line="-1058"/>
<source>Unable to create query</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+373"/>
+ <location line="+374"/>
<source>Unable to prepare statement</source>
<translation type="unfinished"></translation>
</message>
@@ -3473,7 +3467,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPageSetupWidget</name>
<message>
- <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+274"/>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
<source>Centimeters (cm)</source>
<translation type="unfinished"></translation>
</message>
@@ -3589,7 +3583,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPrintDialog</name>
<message>
- <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+68"/>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/>
<source>locally connected</source>
<translation type="unfinished"></translation>
</message>
@@ -3606,7 +3600,7 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+299"/>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+329"/>
<source>A0 (841 x 1189 mm)</source>
<translation type="unfinished"></translation>
</message>
@@ -3756,12 +3750,12 @@ Do you want to delete it anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+238"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+80"/>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
<location line="+13"/>
<location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
<source>Print</source>
@@ -4015,13 +4009,13 @@ Please choose a different file name.</source>
<context>
<name>QPrintPreviewDialog</name>
<message>
- <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+38"/>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
<location line="+12"/>
<source>Page Setup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+222"/>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/>
<source>%1%</source>
<translation type="unfinished"></translation>
</message>
@@ -4288,8 +4282,8 @@ Please choose a different file name.</source>
<context>
<name>QProcess</name>
<message>
- <location filename="../src/corelib/io/qprocess_unix.cpp" line="+445"/>
- <location filename="../src/corelib/io/qprocess_win.cpp" line="+117"/>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
<source>Could not open input redirection for reading</source>
<translation type="unfinished"></translation>
</message>
@@ -4318,7 +4312,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/io/qprocess.cpp" line="+503"/>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+533"/>
<location line="+52"/>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
<location line="+50"/>
@@ -4338,6 +4332,11 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+912"/>
+ <source>No program defined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
<source>Process failed to start</source>
<translation type="unfinished"></translation>
@@ -4346,7 +4345,7 @@ Please choose a different file name.</source>
<context>
<name>QProgressDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+152"/>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
@@ -4370,7 +4369,7 @@ Please choose a different file name.</source>
<context>
<name>QRegExp</name>
<message>
- <location filename="../src/corelib/tools/qregexp.cpp" line="+34"/>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/>
<source>no error occurred</source>
<translation type="unfinished"></translation>
</message>
@@ -4418,7 +4417,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Driver</name>
<message>
- <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+353"/>
+ <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
<source>Error to open database</source>
<translation type="unfinished"></translation>
</message>
@@ -4441,12 +4440,12 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Result</name>
<message>
- <location line="-310"/>
+ <location line="-323"/>
<source>Unable to fetch results</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+139"/>
+ <location line="+147"/>
<source>Unable to execute statement</source>
<translation type="unfinished"></translation>
</message>
@@ -4454,7 +4453,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLiteDriver</name>
<message>
- <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+498"/>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/>
<source>Error opening database</source>
<translation type="unfinished"></translation>
</message>
@@ -4517,12 +4516,12 @@ Please choose a different file name.</source>
<context>
<name>QScrollBar</name>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="+419"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/>
<source>Scroll here</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Left edge</source>
<translation type="unfinished"></translation>
</message>
@@ -4532,7 +4531,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Right edge</source>
<translation type="unfinished"></translation>
</message>
@@ -4542,7 +4541,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Page left</source>
<translation type="unfinished"></translation>
</message>
@@ -4553,7 +4552,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Page right</source>
<translation type="unfinished"></translation>
</message>
@@ -4564,7 +4563,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Scroll left</source>
<translation type="unfinished"></translation>
</message>
@@ -4574,7 +4573,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Scroll right</source>
<translation type="unfinished"></translation>
</message>
@@ -4602,7 +4601,7 @@ Please choose a different file name.</source>
<context>
<name>QSharedMemory</name>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+177"/>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+207"/>
<source>%1: unable to set key on lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4613,7 +4612,7 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+168"/>
- <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+118"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
<source>%1: unable to lock</source>
<translation type="unfinished"></translation>
</message>
@@ -4623,8 +4622,8 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+48"/>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+57"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
<source>%1: permission denied</source>
<translation type="unfinished"></translation>
</message>
@@ -4702,7 +4701,7 @@ Please choose a different file name.</source>
<context>
<name>QShortcut</name>
<message>
- <location filename="../src/gui/kernel/qkeysequence.cpp" line="+343"/>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/>
<source>Space</source>
<translation type="unfinished"></translation>
</message>
@@ -5283,7 +5282,7 @@ Please choose a different file name.</source>
<context>
<name>QSql</name>
<message>
- <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+860"/>
+ <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
@@ -5340,7 +5339,7 @@ Please choose a different file name.</source>
<context>
<name>QSslSocket</name>
<message>
- <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+539"/>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+569"/>
<source>Unable to write data: %1</source>
<translation type="unfinished"></translation>
</message>
@@ -5399,7 +5398,7 @@ Please choose a different file name.</source>
<name>QSystemSemaphore</name>
<message>
<location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+36"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
<source>%1: out of resources</source>
<translation type="unfinished"></translation>
</message>
@@ -5429,7 +5428,7 @@ Please choose a different file name.</source>
<context>
<name>QTDSDriver</name>
<message>
- <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+552"/>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
<source>Unable to open connection</source>
<translation type="unfinished"></translation>
</message>
@@ -5455,7 +5454,7 @@ Please choose a different file name.</source>
<context>
<name>QTcpServer</name>
<message>
- <location filename="../src/network/socket/qtcpserver.cpp" line="+252"/>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
<source>Operation on socket is not supported</source>
<translation type="unfinished"></translation>
</message>
@@ -5463,7 +5462,7 @@ Please choose a different file name.</source>
<context>
<name>QTextControl</name>
<message>
- <location filename="../src/gui/text/qtextcontrol.cpp" line="+1942"/>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/>
<source>&amp;Undo</source>
<translation type="unfinished"></translation>
</message>
@@ -5521,7 +5520,7 @@ Please choose a different file name.</source>
<context>
<name>QUdpSocket</name>
<message>
- <location filename="../src/network/socket/qudpsocket.cpp" line="+139"/>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
<source>This platform does not support IPv6</source>
<translation type="unfinished"></translation>
</message>
@@ -5529,7 +5528,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoGroup</name>
<message>
- <location filename="../src/gui/util/qundogroup.cpp" line="+356"/>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+386"/>
<source>Undo</source>
<translation type="unfinished"></translation>
</message>
@@ -5542,7 +5541,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoModel</name>
<message>
- <location filename="../src/gui/util/qundoview.cpp" line="+71"/>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
<source>&lt;empty&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -5550,7 +5549,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoStack</name>
<message>
- <location filename="../src/gui/util/qundostack.cpp" line="+804"/>
+ <location filename="../src/gui/util/qundostack.cpp" line="+834"/>
<source>Undo</source>
<translation type="unfinished"></translation>
</message>
@@ -5621,7 +5620,7 @@ Please choose a different file name.</source>
<context>
<name>QWebFrame</name>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+686"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
<source>Request cancelled</source>
<translation type="unfinished"></translation>
</message>
@@ -6031,7 +6030,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1342"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
<source>JavaScript Alert - %1</source>
<translation type="unfinished"></translation>
</message>
@@ -6107,6 +6106,11 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+3"/>
+ <source>Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
<source>Select to the next character</source>
<translation type="unfinished"></translation>
</message>
@@ -6175,11 +6179,21 @@ Please choose a different file name.</source>
<source>Delete to the end of the word</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+33"/>
+ <source>Insert a new paragraph</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QWhatsThisAction</name>
<message>
- <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+492"/>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
<source>What&apos;s This?</source>
<translation type="unfinished"></translation>
</message>
@@ -6187,7 +6201,7 @@ Please choose a different file name.</source>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5290"/>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/>
<source>*</source>
<translation type="unfinished"></translation>
</message>
@@ -6195,7 +6209,7 @@ Please choose a different file name.</source>
<context>
<name>QWizard</name>
<message>
- <location filename="../src/gui/dialogs/qwizard.cpp" line="+605"/>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/>
<source>Go Back</source>
<translation type="unfinished"></translation>
</message>
@@ -6253,7 +6267,7 @@ Please choose a different file name.</source>
<context>
<name>QWorkspace</name>
<message>
- <location filename="../src/gui/widgets/qworkspace.cpp" line="+1064"/>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/>
<source>&amp;Restore</source>
<translation type="unfinished"></translation>
</message>
@@ -6323,7 +6337,7 @@ Please choose a different file name.</source>
<context>
<name>QXml</name>
<message>
- <location filename="../src/xml/sax/qxml.cpp" line="+28"/>
+ <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
<source>no error occurred</source>
<translation type="unfinished"></translation>
</message>
@@ -6441,8 +6455,8 @@ Please choose a different file name.</source>
<context>
<name>QXmlStream</name>
<message>
- <location filename="../src/corelib/xml/qxmlstream.cpp" line="+562"/>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1739"/>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/>
<source>Extra content at end of document.</source>
<translation type="unfinished"></translation>
</message>
@@ -6626,7 +6640,7 @@ Please choose a different file name.</source>
<context>
<name>QtXmlPatterns</name>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+175"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
<source>An %1-attribute with value %2 has already been declared.</source>
<translation type="unfinished"></translation>
</message>
@@ -6636,17 +6650,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+54"/>
+ <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
<source>Network timeout.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+290"/>
+ <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="+50"/>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
<source>Year %1 is invalid because it begins with %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6686,7 +6700,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+69"/>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/>
<location line="+15"/>
<source>At least one component must be present.</source>
<translation type="unfinished"></translation>
@@ -6697,7 +6711,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+34"/>
+ <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
<source>No operand in an integer division, %1, can be %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6712,17 +6726,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+102"/>
+ <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/>
<source>%1 is not a valid value of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+193"/>
+ <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="+35"/>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
<source>Integer division (%1) by zero (%2) is undefined.</source>
<translation type="unfinished"></translation>
</message>
@@ -6753,17 +6767,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+49"/>
+ <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/>
<source>A value of type %1 cannot have an Effective Boolean Value.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+48"/>
+ <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/>
<source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+372"/>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
<source>Value %1 of type %2 exceeds maximum (%3).</source>
<translation type="unfinished"></translation>
</message>
@@ -6773,7 +6787,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+61"/>
+ <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/>
<source>A value of type %1 must contain an even number of digits. The value %2 does not.</source>
<translation type="unfinished"></translation>
</message>
@@ -6783,7 +6797,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+177"/>
+ <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
<source>Operator %1 cannot be used on type %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6793,7 +6807,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+36"/>
+ <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 type="unfinished"></translation>
</message>
@@ -6803,7 +6817,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
<source>Type error in cast, expected %1, received %2.</source>
<translation type="unfinished"></translation>
</message>
@@ -6813,7 +6827,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+104"/>
+ <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/>
<source>No casting is possible with %1 as the target type.</source>
<translation type="unfinished"></translation>
</message>
@@ -6838,7 +6852,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+37"/>
+ <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
<source>A comment cannot contain %1</source>
<translation type="unfinished"></translation>
</message>
@@ -6848,7 +6862,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+137"/>
+ <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
<source>No comparisons can be done involving the type %1.</source>
<translation type="unfinished"></translation>
</message>
@@ -6858,12 +6872,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+56"/>
+ <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="+139"/>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
<source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
<translation type="unfinished"></translation>
</message>
@@ -6873,7 +6887,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+76"/>
+ <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>
@@ -6883,7 +6897,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+83"/>
+ <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+113"/>
<source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source>
<translation type="unfinished"></translation>
</message>
@@ -6893,33 +6907,33 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+79"/>
+ <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="+54"/>
+ <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/>
<source>The data of a processing instruction cannot contain the string %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+52"/>
+ <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="+126"/>
+ <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="+39"/>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
<source>%1 is an invalid %2</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+47"/>
+ <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/>
<source>%1 takes at most %n argument(s). %2 is therefore invalid.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -6933,7 +6947,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+90"/>
+ <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/>
<source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source>
<translation type="unfinished"></translation>
</message>
@@ -6948,27 +6962,27 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/>
<source>%1 is not a valid XML 1.0 character.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+167"/>
+ <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
<source>The first argument to %1 cannot be of type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+56"/>
+ <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="+31"/>
+ <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
<source>%1 was called.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+64"/>
+ <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>
@@ -6983,7 +6997,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+62"/>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
<source>%1 matches newline characters</source>
<translation type="unfinished"></translation>
</message>
@@ -7018,17 +7032,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+317"/>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/>
<source>It will not be possible to retrieve %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+24"/>
+ <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="+249"/>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
<source>The default collection is undefined</source>
<translation type="unfinished"></translation>
</message>
@@ -7038,12 +7052,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+222"/>
+ <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="+57"/>
+ <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>
@@ -7053,17 +7067,17 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+28"/>
+ <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="+37"/>
+ <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/>
<source>The item %1 did not match the required type %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+319"/>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/>
<location line="+7253"/>
<source>%1 is an unknown schema type.</source>
<translation type="unfinished"></translation>
@@ -7084,7 +7098,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+63"/>
+ <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
<source>The variable %1 is unused</source>
<translation type="unfinished"></translation>
</message>
@@ -7366,7 +7380,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+25"/>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
<source>empty</source>
<translation type="unfinished"></translation>
</message>
@@ -7391,7 +7405,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+33"/>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
<source>Required type is %1, but %2 was found.</source>
<translation type="unfinished"></translation>
</message>
@@ -7406,7 +7420,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+56"/>
+ <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>
@@ -7416,7 +7430,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+90"/>
+ <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>
@@ -7426,7 +7440,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+284"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
<source>%1 is an unsupported encoding.</source>
<translation type="unfinished"></translation>
</message>
@@ -7441,13 +7455,13 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+89"/>
+ <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
<source>Ambiguous rule match.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+39"/>
- <source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source>
+ <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>
@@ -7466,12 +7480,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+87"/>
+ <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
<source>Circularity detected</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+115"/>
+ <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/>
<source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
<translation type="unfinished"></translation>
</message>
@@ -7481,12 +7495,12 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+35"/>
+ <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="+489"/>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
<source>Element %1 is not allowed at this location.</source>
<translation type="unfinished"></translation>
</message>
@@ -7541,7 +7555,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+153"/>
+ <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/>
<source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source>
<translation type="unfinished"></translation>
</message>
@@ -7616,7 +7630,7 @@ Please choose a different file name.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+432"/>
+ <location line="+434"/>
<source>Element %1 cannot have a sequence constructor.</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/qt_zh_CN.ts b/translations/qt_zh_CN.ts
index 14ec1cd..b0a7947 100644
--- a/translations/qt_zh_CN.ts
+++ b/translations/qt_zh_CN.ts
@@ -1,11 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="zh">
-<defaultcodec></defaultcodec>
<context>
<name>AudioOutput</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+374"/>
+ <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/>
<source>&lt;html&gt;The audio playback device &lt;b&gt;%1&lt;/b&gt; does not work.&lt;br/&gt;Falling back to &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</source>
<translation>&lt;html&gt;音频回放设备 &lt;b&gt;%1&lt;/b&gt; 没有工作。&lt;br/&gt;回滚到 &lt;b&gt;%2&lt;/b&gt;。&lt;/html&gt;</translation>
</message>
@@ -23,7 +22,7 @@
<context>
<name>CloseButton</name>
<message>
- <location filename="../src/gui/widgets/qtabbar.cpp" line="+2217"/>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/>
<source>Close Tab</source>
<translation>关闭标签页</translation>
</message>
@@ -81,7 +80,7 @@
<context>
<name>Phonon::Gstreamer::MediaObject</name>
<message>
- <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+88"/>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/>
<source>Cannot start playback.
Check your Gstreamer installation and make sure you
@@ -97,24 +96,24 @@ have libgstreamer-plugins-base installed.</source>
<translation>缺少一个需要的解码器。您需要安装如下解码器来播放这个内容:%0</translation>
</message>
<message>
- <location line="+653"/>
- <location line="+9"/>
+ <location line="+676"/>
+ <location line="+8"/>
<location line="+15"/>
- <location line="+7"/>
- <location line="+5"/>
- <location line="+20"/>
- <location line="+317"/>
+ <location line="+9"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+335"/>
<location line="+24"/>
<source>Could not open media source.</source>
<translation>不能打开媒体源。</translation>
</message>
<message>
- <location line="-381"/>
+ <location line="-403"/>
<source>Invalid source type.</source>
<translation>无效的源类型。</translation>
</message>
<message>
- <location line="+355"/>
+ <location line="+377"/>
<source>Could not locate media source.</source>
<translation>不能定位媒体源。</translation>
</message>
@@ -148,7 +147,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3Accel</name>
<message>
- <location filename="../src/qt3support/other/q3accel.cpp" line="+451"/>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
<source>%1, %2 not defined</source>
<translation>%1,%2未定义</translation>
</message>
@@ -161,7 +160,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3DataTable</name>
<message>
- <location filename="../src/qt3support/sql/q3datatable.cpp" line="+253"/>
+ <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
<source>True</source>
<translation>真</translation>
</message>
@@ -189,7 +188,7 @@ have libgstreamer-plugins-base installed.</source>
<context>
<name>Q3FileDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+834"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+864"/>
<source>Copy or Move a File</source>
<translation>复制或者移动一个文件</translation>
</message>
@@ -214,7 +213,7 @@ have libgstreamer-plugins-base installed.</source>
<location line="-157"/>
<location line="+49"/>
<location line="+2153"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+80"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
<source>All Files (*)</source>
<translation>所有文件 (*)</translation>
</message>
@@ -354,7 +353,7 @@ have libgstreamer-plugins-base installed.</source>
<message>
<location line="+704"/>
<location line="+2100"/>
- <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+307"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/>
<source>Open</source>
<translation>打开</translation>
</message>
@@ -523,7 +522,7 @@ Check path and filename.</source>
<context>
<name>Q3LocalFs</name>
<message>
- <location filename="../src/qt3support/network/q3localfs.cpp" line="+100"/>
+ <location filename="../src/qt3support/network/q3localfs.cpp" line="+130"/>
<location line="+10"/>
<source>Could not read directory
%1</source>
@@ -573,7 +572,7 @@ to
<context>
<name>Q3MainWindow</name>
<message>
- <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2021"/>
+ <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
<source>Line up</source>
<translation>排列</translation>
</message>
@@ -586,7 +585,7 @@ to
<context>
<name>Q3NetworkProtocol</name>
<message>
- <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+824"/>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
<source>Operation stopped by the user</source>
<translation>操作被用户停止</translation>
</message>
@@ -594,7 +593,7 @@ to
<context>
<name>Q3ProgressDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+194"/>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
<location line="+61"/>
<source>Cancel</source>
<translation>取消</translation>
@@ -603,7 +602,7 @@ to
<context>
<name>Q3TabDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+159"/>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/>
<location line="+814"/>
<source>OK</source>
<translation>确认</translation>
@@ -632,7 +631,7 @@ to
<context>
<name>Q3TextEdit</name>
<message>
- <location filename="../src/qt3support/text/q3textedit.cpp" line="+5399"/>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
<source>&amp;Undo</source>
<translation>撤消(&amp;U)</translation>
</message>
@@ -671,7 +670,7 @@ to
<context>
<name>Q3TitleBar</name>
<message>
- <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+216"/>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
<source>System</source>
<translation>系统</translation>
</message>
@@ -739,7 +738,7 @@ to
<context>
<name>Q3ToolBar</name>
<message>
- <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+662"/>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
<source>More...</source>
<translation>更多...</translation>
</message>
@@ -747,7 +746,7 @@ to
<context>
<name>Q3UrlOperator</name>
<message>
- <location filename="../src/qt3support/network/q3urloperator.cpp" line="+356"/>
+ <location filename="../src/qt3support/network/q3urloperator.cpp" line="+386"/>
<location line="+260"/>
<location line="+4"/>
<source>The protocol `%1&apos; is not supported</source>
@@ -799,7 +798,7 @@ to
<context>
<name>Q3Wizard</name>
<message>
- <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+147"/>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
<source>&amp;Cancel</source>
<translation>取消(&amp;C)</translation>
</message>
@@ -827,9 +826,9 @@ to
<context>
<name>QAbstractSocket</name>
<message>
- <location filename="../src/network/socket/qabstractsocket.cpp" line="+838"/>
- <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+585"/>
- <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+627"/>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
<location line="+26"/>
<source>Host not found</source>
<translation>主机未找到</translation>
@@ -872,7 +871,7 @@ to
<context>
<name>QAbstractSpinBox</name>
<message>
- <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1169"/>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/>
<source>&amp;Step up</source>
<translation>增加(&amp;S)</translation>
</message>
@@ -890,12 +889,12 @@ to
<context>
<name>QApplication</name>
<message>
- <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+346"/>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
<source>Activate</source>
<translation>激活</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.h" line="+322"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
<source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
<translation>执行“%1”需要Qt %2,只找到了Qt %3。</translation>
</message>
@@ -905,7 +904,7 @@ to
<translation>不兼容的Qt错误</translation>
</message>
<message>
- <location filename="../src/gui/kernel/qapplication.cpp" line="+2212"/>
+ <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>
@@ -942,7 +941,7 @@ to
<context>
<name>QCheckBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+84"/>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/>
<source>Uncheck</source>
<translation>取消选中</translation>
</message>
@@ -960,7 +959,7 @@ to
<context>
<name>QColorDialog</name>
<message>
- <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1219"/>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/>
<source>Hu&amp;e:</source>
<translation>色调(&amp;E):</translation>
</message>
@@ -1022,13 +1021,13 @@ to
<context>
<name>QComboBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1741"/>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
<location line="+65"/>
<source>Open</source>
<translation>打开</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+514"/>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
<source>False</source>
<translation>假</translation>
</message>
@@ -1071,7 +1070,7 @@ to
<translation type="obsolete">%1:未知错误 %2</translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+89"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
<source>%1: key is empty</source>
<comment>QSystemSemaphore</comment>
<translation>%1:键是空的</translation>
@@ -1092,12 +1091,12 @@ to
<context>
<name>QDB2Driver</name>
<message>
- <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1217"/>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
<source>Unable to connect</source>
<translation>不能连接</translation>
</message>
<message>
- <location line="+263"/>
+ <location line="+303"/>
<source>Unable to commit transaction</source>
<translation>不能提交事务</translation>
</message>
@@ -1115,8 +1114,8 @@ to
<context>
<name>QDB2Result</name>
<message>
- <location line="-986"/>
- <location line="+242"/>
+ <location line="-1043"/>
+ <location line="+243"/>
<source>Unable to execute statement</source>
<translation>不能执行语句</translation>
</message>
@@ -1131,7 +1130,7 @@ to
<translation>不能帮定变量</translation>
</message>
<message>
- <location line="+91"/>
+ <location line="+92"/>
<source>Unable to fetch record %1</source>
<translation>不能获取记录%1</translation>
</message>
@@ -1149,7 +1148,7 @@ to
<context>
<name>QDateTimeEdit</name>
<message>
- <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2265"/>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
<source>AM</source>
<translation>AM</translation>
</message>
@@ -1172,7 +1171,7 @@ to
<context>
<name>QDial</name>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+921"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
<source>QDial</source>
<translation>QDial</translation>
</message>
@@ -1190,7 +1189,7 @@ to
<context>
<name>QDialog</name>
<message>
- <location filename="../src/gui/dialogs/qdialog.cpp" line="+567"/>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
<source>What&apos;s This?</source>
<translation>这是什么?</translation>
</message>
@@ -1203,9 +1202,9 @@ to
<context>
<name>QDialogButtonBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1830"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
<location line="+464"/>
- <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+531"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/>
<source>OK</source>
<translation>确定</translation>
</message>
@@ -1328,7 +1327,7 @@ to
<context>
<name>QDirModel</name>
<message>
- <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+423"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/>
<source>Name</source>
<translation>名称</translation>
</message>
@@ -1358,7 +1357,7 @@ to
<context>
<name>QDockWidget</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1209"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
<source>Close</source>
<translation>关闭</translation>
</message>
@@ -1389,7 +1388,7 @@ to
<context>
<name>QErrorMessage</name>
<message>
- <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+162"/>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+192"/>
<source>Debug Message:</source>
<translation>调试消息:</translation>
</message>
@@ -1417,13 +1416,18 @@ to
<context>
<name>QFile</name>
<message>
- <location filename="../src/corelib/io/qfile.cpp" line="+678"/>
- <location line="+130"/>
+ <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
+ <location line="+141"/>
<source>Destination file exists</source>
<translation>目标文件已存在</translation>
</message>
<message>
- <location line="+12"/>
+ <location line="-108"/>
+ <source>Cannot remove source file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+120"/>
<source>Cannot open %1 for input</source>
<translation>无法输入 %1 </translation>
</message>
@@ -1446,37 +1450,37 @@ to
<context>
<name>QFileDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+484"/>
- <location line="+423"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+515"/>
+ <location line="+444"/>
<source>All Files (*)</source>
<translation>所有文件 (*)</translation>
</message>
<message>
- <location line="+218"/>
+ <location line="+222"/>
<source>Directories</source>
<translation>目录</translation>
</message>
<message>
<location line="-3"/>
<location line="+50"/>
- <location line="+1440"/>
+ <location line="+1471"/>
<location line="+75"/>
<source>&amp;Open</source>
<translation>打开(&amp;O)</translation>
</message>
<message>
- <location line="-1565"/>
+ <location line="-1596"/>
<location line="+50"/>
<source>&amp;Save</source>
<translation>保存(&amp;S)</translation>
</message>
<message>
- <location line="-705"/>
+ <location line="-730"/>
<source>Open</source>
<translation>打开</translation>
</message>
<message>
- <location line="+1469"/>
+ <location line="+1515"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>%1已经存在。
@@ -1497,7 +1501,7 @@ Please verify the correct file name was given.</source>
<translation>我的计算机</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1458"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1504"/>
<source>&amp;Rename</source>
<translation>重命名(&amp;R)</translation>
</message>
@@ -1543,13 +1547,13 @@ Please verify the correct file name was given.</source>
</message>
<message>
<location filename="../src/gui/dialogs/qfiledialog.cpp" line="+6"/>
- <location line="+623"/>
+ <location line="+648"/>
<source>Directory:</source>
<translation>目录:</translation>
</message>
<message>
- <location line="+773"/>
- <location line="+851"/>
+ <location line="+794"/>
+ <location line="+862"/>
<source>%1
Directory not found.
Please verify the correct directory name was given.</source>
@@ -1558,7 +1562,7 @@ Please verify the correct directory name was given.</source>
请核实已给定正确目录名。</translation>
</message>
<message>
- <location line="-217"/>
+ <location line="-218"/>
<source>&apos;%1&apos; is write protected.
Do you want to delete it anyway?</source>
<translation>“%1“是写保护的。
@@ -1575,17 +1579,17 @@ Do you want to delete it anyway?</source>
<translation>不能删除目录。</translation>
</message>
<message>
- <location line="+406"/>
+ <location line="+407"/>
<source>Recent Places</source>
<translation>最近的地方</translation>
</message>
<message>
- <location line="-2493"/>
+ <location line="-2550"/>
<source>Save As</source>
<translation>另存为</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+381"/>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+411"/>
<source>Drive</source>
<translation>驱动器</translation>
</message>
@@ -1617,29 +1621,29 @@ Do you want to delete it anyway?</source>
<translation>前进</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1914"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1970"/>
<source>New Folder</source>
<translation>新建文件夹</translation>
</message>
<message>
- <location line="-1907"/>
+ <location line="-1963"/>
<source>&amp;New Folder</source>
<translation>新建文件夹(&amp;N)</translation>
</message>
<message>
- <location line="+631"/>
+ <location line="+656"/>
<location line="+38"/>
<source>&amp;Choose</source>
<translation>选择(&amp;C)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qsidebar.cpp" line="+388"/>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/>
<source>Remove</source>
<translation>移除</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-662"/>
- <location line="+627"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-687"/>
+ <location line="+652"/>
<source>File &amp;name:</source>
<translation>文件名称(&amp;N):</translation>
</message>
@@ -1656,7 +1660,7 @@ Do you want to delete it anyway?</source>
<translation>创建新文件夹</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+130"/>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
<source>All Files (*.*)</source>
<translation>所有文件 (*.*)</translation>
</message>
@@ -1664,7 +1668,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFileSystemModel</name>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+707"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+744"/>
<source>%1 TB</source>
<translation>%1 TB</translation>
</message>
@@ -1726,7 +1730,7 @@ Do you want to delete it anyway?</source>
<translation>日期被修改</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+204"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/>
<source>My Computer</source>
<translation>我的计算机</translation>
</message>
@@ -1739,7 +1743,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFontDatabase</name>
<message>
- <location filename="../src/gui/text/qfontdatabase.cpp" line="+60"/>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
<location line="+1176"/>
<source>Normal</source>
<translation>普通</translation>
@@ -1956,7 +1960,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QFontDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+742"/>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/>
<source>&amp;Font</source>
<translation>字体(&amp;F)</translation>
</message>
@@ -2005,8 +2009,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QFtp</name>
<message>
- <location filename="../src/network/access/qftp.cpp" line="+796"/>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="+653"/>
+ <location filename="../src/network/access/qftp.cpp" line="+826"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+683"/>
<source>Not connected</source>
<translation>没有连接</translation>
</message>
@@ -2151,7 +2155,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QHostInfo</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_p.h" line="+153"/>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
<source>Unknown error</source>
<translation>未知的错误</translation>
</message>
@@ -2159,11 +2163,11 @@ Do you want to delete it anyway?</source>
<context>
<name>QHostInfoAgent</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+148"/>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
<location line="+9"/>
<location line="+64"/>
<location line="+31"/>
- <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+150"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
<location line="+9"/>
<location line="+40"/>
<location line="+27"/>
@@ -2189,21 +2193,21 @@ Do you want to delete it anyway?</source>
<context>
<name>QHttp</name>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="+1544"/>
- <location line="+816"/>
- <location filename="../src/qt3support/network/q3http.cpp" line="+1130"/>
+ <location filename="../src/network/access/qhttp.cpp" line="+1574"/>
+ <location line="+820"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+1160"/>
<location line="+567"/>
<source>Unknown error</source>
<translation>未知的错误</translation>
</message>
<message>
- <location line="-564"/>
+ <location line="-568"/>
<location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
<source>Request aborted</source>
<translation>请求被放弃了</translation>
</message>
<message>
- <location line="+575"/>
+ <location line="+579"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
<source>No server set to connect to</source>
<translation>没有设置要连接的服务器</translation>
@@ -2221,18 +2225,23 @@ Do you want to delete it anyway?</source>
<translation>服务器异常地关闭了连接</translation>
</message>
<message>
- <location line="+357"/>
+ <location line="+179"/>
+ <source>Unknown authentication method</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+183"/>
<source>Error writing response to device</source>
<translation>向设备中进行写回复时发生错误</translation>
</message>
<message>
- <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+1712"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+876"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+38"/>
<source>Connection refused</source>
<translation>连接被拒绝</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-299"/>
+ <location filename="../src/network/access/qhttp.cpp" line="-304"/>
<location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
<source>Host %1 not found</source>
@@ -2253,7 +2262,7 @@ Do you want to delete it anyway?</source>
<translation>无效的HTTP响应头</translation>
</message>
<message>
- <location line="+120"/>
+ <location line="+125"/>
<location line="+48"/>
<location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
<location line="+47"/>
@@ -2302,7 +2311,7 @@ Do you want to delete it anyway?</source>
<translation>需要认证</translation>
</message>
<message>
- <location line="-133"/>
+ <location line="-138"/>
<source>Connection refused (or timed out)</source>
<translation>连接被拒绝(或者超时)</translation>
</message>
@@ -2332,7 +2341,7 @@ Do you want to delete it anyway?</source>
<translation>SSL 握手失败</translation>
</message>
<message>
- <location filename="../src/network/access/qhttp.cpp" line="-2259"/>
+ <location filename="../src/network/access/qhttp.cpp" line="-2263"/>
<source>HTTPS connection requested but SSL support not compiled in</source>
<translation>HTTPS 连接需要 SSL,但它没有被编译进来</translation>
</message>
@@ -2388,7 +2397,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseDriver</name>
<message>
- <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1378"/>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1428"/>
<source>Error opening database</source>
<translation>打开数据库错误</translation>
</message>
@@ -2411,7 +2420,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseResult</name>
<message>
- <location line="-1077"/>
+ <location line="-1097"/>
<source>Unable to create BLOB</source>
<translation>不能创建BLOB</translation>
</message>
@@ -2431,7 +2440,7 @@ Do you want to delete it anyway?</source>
<translation>不能读取BLOB</translation>
</message>
<message>
- <location line="+124"/>
+ <location line="+125"/>
<location line="+189"/>
<source>Could not find array</source>
<translation>不能找到数组</translation>
@@ -2501,7 +2510,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIODevice</name>
<message>
- <location filename="../src/corelib/global/qglobal.cpp" line="+1830"/>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/>
<source>Permission denied</source>
<translation>权限被拒绝</translation>
</message>
@@ -2521,7 +2530,7 @@ Do you want to delete it anyway?</source>
<translation>设备上没有空间了</translation>
</message>
<message>
- <location filename="../src/corelib/io/qiodevice.cpp" line="+1506"/>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/>
<source>Unknown error</source>
<translation>未知的错误</translation>
</message>
@@ -2529,7 +2538,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QInputContext</name>
<message>
- <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+212"/>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/>
<source>XIM</source>
<translation>XIM</translation>
</message>
@@ -2552,7 +2561,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QInputDialog</name>
<message>
- <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+193"/>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
<source>Enter a value:</source>
<translation>输入一个值:</translation>
</message>
@@ -2572,7 +2581,7 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">QLibrary::resolve_sys: 符号“%1”在%2(%3)没有被定义</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary.cpp" line="+348"/>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
<source>Could not mmap &apos;%1&apos;: %2</source>
<translation>不能映射”%1“:%2</translation>
</message>
@@ -2603,7 +2612,7 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="-377"/>
- <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+250"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
<source>The shared library was not found.</source>
<translation>共享库没有被找到。</translation>
</message>
@@ -2618,8 +2627,8 @@ Do you want to delete it anyway?</source>
<translation>插件“%1“使用了不兼容的Qt库。(不能混合使用库的调试版本和发布版本。)</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+179"/>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+69"/>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
<source>Cannot load library %1: %2</source>
<translation>无法加载库%1:%2</translation>
</message>
@@ -2639,7 +2648,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QLineEdit</name>
<message>
- <location filename="../src/gui/widgets/qlineedit.cpp" line="+2649"/>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+2680"/>
<source>&amp;Undo</source>
<translation>撤消(&amp;U)</translation>
</message>
@@ -2677,8 +2686,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QLocalServer</name>
<message>
- <location filename="../src/network/socket/qlocalserver.cpp" line="+196"/>
- <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+201"/>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/>
<source>%1: Name error</source>
<translation>%1: 名称错误</translation>
</message>
@@ -2694,7 +2703,7 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="+5"/>
- <location filename="../src/network/socket/qlocalserver_win.cpp" line="+127"/>
+ <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/>
<source>%1: Unknown error %2</source>
<translation>%1:未知错误 %2</translation>
</message>
@@ -2702,8 +2711,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QLocalSocket</name>
<message>
- <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+102"/>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+104"/>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/>
<source>%1: Connection refused</source>
<translation>%1:连接被拒绝</translation>
</message>
@@ -2716,7 +2725,7 @@ Do you want to delete it anyway?</source>
<message>
<location line="+3"/>
<location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
- <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+50"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/>
<location line="+43"/>
<source>%1: Invalid name</source>
<translation>%1:无效名称</translation>
@@ -2773,7 +2782,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMYSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1200"/>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1231"/>
<source>Unable to open database &apos;</source>
<translation>不能打开数据库</translation>
</message>
@@ -2783,7 +2792,7 @@ Do you want to delete it anyway?</source>
<translation>不能连接</translation>
</message>
<message>
- <location line="+123"/>
+ <location line="+127"/>
<source>Unable to begin transaction</source>
<translation>不能开始事务</translation>
</message>
@@ -2801,7 +2810,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMYSQLResult</name>
<message>
- <location line="-917"/>
+ <location line="-922"/>
<source>Unable to fetch data</source>
<translation>不能获取数据</translation>
</message>
@@ -2816,7 +2825,7 @@ Do you want to delete it anyway?</source>
<translation>不能存储结果</translation>
</message>
<message>
- <location line="+189"/>
+ <location line="+190"/>
<location line="+8"/>
<source>Unable to prepare statement</source>
<translation>不能准备语句</translation>
@@ -2861,7 +2870,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMdiArea</name>
<message>
- <location filename="../src/gui/widgets/qmdiarea.cpp" line="+260"/>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
<source>(Untitled)</source>
<translation>(未命名的)</translation>
</message>
@@ -2869,7 +2878,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMdiSubWindow</name>
<message>
- <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+250"/>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
<source>%1 - [%2]</source>
<translation>%1 - [%2]</translation>
</message>
@@ -2962,7 +2971,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMenu</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+127"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
<location line="+225"/>
<source>Close</source>
<translation>关闭</translation>
@@ -3035,7 +3044,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMessageBox</name>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1105"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1111"/>
<source>Help</source>
<translation>帮助</translation>
</message>
@@ -3048,17 +3057,16 @@ Do you want to delete it anyway?</source>
<translation>确定</translation>
</message>
<message>
- <location line="+503"/>
+ <location line="+509"/>
<source>About Qt</source>
<translation>关于Qt</translation>
</message>
<message>
- <location line="-15"/>
<source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
- <translation>&lt;p&gt;这个程序使用的是Qt %1版。&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;这个程序使用的是Qt %1版。&lt;/p&gt;</translation>
</message>
<message>
- <location line="-1584"/>
+ <location line="-1605"/>
<source>Show Details...</source>
<translation>显示细节……</translation>
</message>
@@ -3069,13 +3077,16 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="+1570"/>
+ <source>&lt;h3&gt;About Qt&lt;/h3&gt;&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;&lt;p&gt;Qt is a C++ toolkit for cross-platform application development.&lt;/p&gt;&lt;p&gt;Qt provides single-source portability across MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.&lt;/p&gt;&lt;p&gt;Qt is available under three different licensing options designed to accommodate the needs of our various users.&lt;/p&gt;Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.&lt;/p&gt;&lt;p&gt;Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.&lt;/p&gt;&lt;p&gt;Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.&lt;/p&gt;&lt;p&gt;Please see &lt;a href=&quot;http://www.qtsoftware.com/products/licensing&quot;&gt;www.qtsoftware.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://www.qtsoftware.com/qt/&quot;&gt;www.qtsoftware.com/qt&lt;/a&gt; for more information.&lt;/p&gt;</source>
+ <translation type="unfinished"></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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
- <translation>&lt;h3&gt;关于Qt&lt;/h3&gt;%1&lt;p&gt;Qt是一个用于跨平台应用程序开发的C++工具包。&lt;/p&gt;&lt;p&gt;对于MS&amp;nbsp;Windows、Mac&amp;nbsp;OS&amp;nbsp;X、Linux和所有主流商业Unix,Qt提供了单一源程序的可移植性。Qt也有用于嵌入式Linux和Windows CE的版本。&lt;/p&gt;&lt;p&gt;Qt是Nokia的产品。有关更多信息,请参考&lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt;。&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;h3&gt;关于Qt&lt;/h3&gt;%1&lt;p&gt;Qt是一个用于跨平台应用程序开发的C++工具包。&lt;/p&gt;&lt;p&gt;对于MS&amp;nbsp;Windows、Mac&amp;nbsp;OS&amp;nbsp;X、Linux和所有主流商业Unix,Qt提供了单一源程序的可移植性。Qt也有用于嵌入式Linux和Windows CE的版本。&lt;/p&gt;&lt;p&gt;Qt是Nokia的产品。有关更多信息,请参考&lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt;。&lt;/p&gt;</translation>
</message>
<message>
- <location line="+15"/>
<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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
- <translation>&lt;p&gt;这个程序使用了Qt %1开源版本。&lt;/p&gt;&lt;p&gt;Qt开源版本只用于开源应用程序的开发。如果要开发私有(闭源)软件,你需要一个商业的Qt协议。&lt;/p&gt;&lt;p&gt;有关Qt协议的概览,请参考&lt;a href=&quot;http://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt;。&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;这个程序使用了Qt %1开源版本。&lt;/p&gt;&lt;p&gt;Qt开源版本只用于开源应用程序的开发。如果要开发私有(闭源)软件,你需要一个商业的Qt协议。&lt;/p&gt;&lt;p&gt;有关Qt协议的概览,请参考&lt;a href=&quot;http://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt;。&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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
@@ -3085,7 +3096,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMultiInputContext</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+58"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
<source>Select IM</source>
<translation>选择输入法</translation>
</message>
@@ -3093,7 +3104,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMultiInputContextPlugin</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+65"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
<source>Multiple input method switcher</source>
<translation>多输入法切换器</translation>
</message>
@@ -3106,7 +3117,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNativeSocketEngine</name>
<message>
- <location filename="../src/network/socket/qnativesocketengine.cpp" line="+176"/>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/>
<source>The remote host closed the connection</source>
<translation>远端主机关闭了这个连接</translation>
</message>
@@ -3239,7 +3250,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessCacheBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+35"/>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
<source>Error opening %1</source>
<translation>打开%1发生错误</translation>
</message>
@@ -3247,7 +3258,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessFileBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+69"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/>
<source>Request for opening non-local file %1</source>
<translation>正在打开非本地文件 %1 的请求</translation>
</message>
@@ -3275,7 +3286,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessFtpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+135"/>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/>
<source>No suitable proxy found</source>
<translation>未找到合适的代理</translation>
</message>
@@ -3285,7 +3296,7 @@ Do you want to delete it anyway?</source>
<translation>无法读取 %1:是一个目录</translation>
</message>
<message>
- <location line="+131"/>
+ <location line="+130"/>
<source>Logging in to %1 failed: authentication required</source>
<translation>登入 %1 失败:需要验证</translation>
</message>
@@ -3303,7 +3314,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessHttpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+565"/>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/>
<source>No suitable proxy found</source>
<translation>未找到合适的代理</translation>
</message>
@@ -3316,7 +3327,7 @@ Do you want to delete it anyway?</source>
<translation>下载 %1 错误 - 服务器回复:%2</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+37"/>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/>
<source>Protocol &quot;%1&quot; is unknown</source>
<translation>协议“%1”是未知的</translation>
</message>
@@ -3324,7 +3335,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkReplyImpl</name>
<message>
- <location line="+422"/>
+ <location line="+432"/>
<location line="+22"/>
<source>Operation canceled</source>
<translation>操作被取消</translation>
@@ -3333,7 +3344,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIDriver</name>
<message>
- <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2027"/>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2069"/>
<source>Unable to logon</source>
<translation>不能登录</translation>
</message>
@@ -3362,7 +3373,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIResult</name>
<message>
- <location line="-976"/>
+ <location line="-963"/>
<location line="+161"/>
<location line="+15"/>
<source>Unable to bind column for batch execute</source>
@@ -3389,18 +3400,16 @@ Do you want to delete it anyway?</source>
<translation>不能准备语句</translation>
</message>
<message>
- <location line="+29"/>
- <location line="+37"/>
+ <location line="+36"/>
<source>Unable to bind value</source>
<translation>不能绑定值</translation>
</message>
<message>
- <location line="-20"/>
<source>Unable to execute select statement</source>
- <translation>不能执行选择语句</translation>
+ <translation type="obsolete">不能执行选择语句</translation>
</message>
<message>
- <location line="+32"/>
+ <location line="+19"/>
<source>Unable to execute statement</source>
<translation>不能执行语句</translation>
</message>
@@ -3408,7 +3417,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCDriver</name>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1657"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1785"/>
<source>Unable to connect</source>
<translation>不能连接</translation>
</message>
@@ -3418,7 +3427,7 @@ Do you want to delete it anyway?</source>
<translation>不能连接—驱动程序不支持所有功能</translation>
</message>
<message>
- <location line="+234"/>
+ <location line="+242"/>
<source>Unable to disable autocommit</source>
<translation>不能禁止自动提交</translation>
</message>
@@ -3441,19 +3450,19 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCResult</name>
<message>
- <location line="-1204"/>
+ <location line="-1218"/>
<location line="+349"/>
<source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
<translation>QODBCResult::reset: 不能把“SQL_CURSOR_STATIC”设置为语句属性。请检查你的ODBC驱动程序设置。</translation>
</message>
<message>
<location line="-332"/>
- <location line="+625"/>
+ <location line="+626"/>
<source>Unable to execute statement</source>
<translation>不能执行语句</translation>
</message>
<message>
- <location line="-554"/>
+ <location line="-555"/>
<source>Unable to fetch next</source>
<translation>不能获取下一个</translation>
</message>
@@ -3463,19 +3472,19 @@ Do you want to delete it anyway?</source>
<translation>不能准备语句</translation>
</message>
<message>
- <location line="+267"/>
+ <location line="+268"/>
<source>Unable to bind variable</source>
<translation>不能帮定变量</translation>
</message>
<message>
<location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-474"/>
- <location line="+577"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-475"/>
+ <location line="+578"/>
<source>Unable to fetch last</source>
<translation>不能获取最后一个</translation>
</message>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-671"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
<source>Unable to fetch</source>
<translation>不能获取</translation>
</message>
@@ -3493,12 +3502,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QObject</name>
<message>
- <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+134"/>
+ <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
<source>Home</source>
<translation>家</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+44"/>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
<source>Operation not supported on %1</source>
<translation>在 %1 上不被支持的操作</translation>
</message>
@@ -3508,7 +3517,7 @@ Do you want to delete it anyway?</source>
<translation>无效的 URI:%1</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+145"/>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
<source>Write error writing to %1: %2</source>
<translation>写入 %1 错误:%2</translation>
</message>
@@ -3533,7 +3542,7 @@ Do you want to delete it anyway?</source>
<translation>协议错误:收到了大小为 0 的包</translation>
</message>
<message>
- <location filename="../src/network/kernel/qhostinfo.cpp" line="+147"/>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
<location line="+57"/>
<source>No host name given</source>
<translation>未指定主机名</translation>
@@ -3542,7 +3551,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPPDOptionsModel</name>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1165"/>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/>
<source>Name</source>
<translation>名称</translation>
</message>
@@ -3555,7 +3564,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+732"/>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/>
<source>Unable to connect</source>
<translation>不能连接</translation>
</message>
@@ -3575,7 +3584,7 @@ Do you want to delete it anyway?</source>
<translation>不能回滚事务</translation>
</message>
<message>
- <location line="+336"/>
+ <location line="+358"/>
<source>Unable to subscribe</source>
<translation>不能订阅</translation>
</message>
@@ -3588,12 +3597,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QPSQLResult</name>
<message>
- <location line="-1035"/>
+ <location line="-1058"/>
<source>Unable to create query</source>
<translation>不能创建查询</translation>
</message>
<message>
- <location line="+373"/>
+ <location line="+374"/>
<source>Unable to prepare statement</source>
<translation>不能准备语句</translation>
</message>
@@ -3601,7 +3610,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPageSetupWidget</name>
<message>
- <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+274"/>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
<source>Centimeters (cm)</source>
<translation>厘米 (cm)</translation>
</message>
@@ -3717,7 +3726,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QPrintDialog</name>
<message>
- <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+68"/>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/>
<source>locally connected</source>
<translation>本地已经连接的</translation>
</message>
@@ -3734,7 +3743,7 @@ Do you want to delete it anyway?</source>
<translation>未知的</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+345"/>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+375"/>
<source>Print all</source>
<translation>打印全部</translation>
</message>
@@ -3899,12 +3908,12 @@ Do you want to delete it anyway?</source>
<translation>美国普通10号信封 (105 x 241 毫米)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+238"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+80"/>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
<location line="+13"/>
<location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
<source>Print</source>
@@ -4146,13 +4155,13 @@ Please choose a different file name.</source>
<context>
<name>QPrintPreviewDialog</name>
<message>
- <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+38"/>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
<location line="+12"/>
<source>Page Setup</source>
<translation>页面设置</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+222"/>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
@@ -4419,8 +4428,8 @@ Please choose a different file name.</source>
<context>
<name>QProcess</name>
<message>
- <location filename="../src/corelib/io/qprocess_unix.cpp" line="+445"/>
- <location filename="../src/corelib/io/qprocess_win.cpp" line="+117"/>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
<source>Could not open input redirection for reading</source>
<translation>无法打开用于读取的输入重定向</translation>
</message>
@@ -4449,7 +4458,7 @@ Please choose a different file name.</source>
<translation>进程处理超时</translation>
</message>
<message>
- <location filename="../src/corelib/io/qprocess.cpp" line="+503"/>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+533"/>
<location line="+52"/>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
<location line="+50"/>
@@ -4469,6 +4478,11 @@ Please choose a different file name.</source>
<translation>进程已崩溃</translation>
</message>
<message>
+ <location line="+912"/>
+ <source>No program defined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
<source>Process failed to start</source>
<translation>启动进程失败</translation>
@@ -4477,7 +4491,7 @@ Please choose a different file name.</source>
<context>
<name>QProgressDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+152"/>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
<source>Cancel</source>
<translation>撤消</translation>
</message>
@@ -4501,7 +4515,7 @@ Please choose a different file name.</source>
<context>
<name>QRegExp</name>
<message>
- <location filename="../src/corelib/tools/qregexp.cpp" line="+34"/>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/>
<source>no error occurred</source>
<translation>没有错误发生</translation>
</message>
@@ -4549,7 +4563,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Driver</name>
<message>
- <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+353"/>
+ <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
<source>Error to open database</source>
<translation>打开数据库错误</translation>
</message>
@@ -4572,12 +4586,12 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Result</name>
<message>
- <location line="-310"/>
+ <location line="-323"/>
<source>Unable to fetch results</source>
<translation>不能获取结果</translation>
</message>
<message>
- <location line="+139"/>
+ <location line="+147"/>
<source>Unable to execute statement</source>
<translation>不能执行语句</translation>
</message>
@@ -4585,7 +4599,7 @@ Please choose a different file name.</source>
<context>
<name>QSQLiteDriver</name>
<message>
- <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+498"/>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/>
<source>Error opening database</source>
<translation>打开数据库错误</translation>
</message>
@@ -4648,12 +4662,12 @@ Please choose a different file name.</source>
<context>
<name>QScrollBar</name>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="+419"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/>
<source>Scroll here</source>
<translation>滚动到这里</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Left edge</source>
<translation>左边缘</translation>
</message>
@@ -4663,7 +4677,7 @@ Please choose a different file name.</source>
<translation>顶部</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Right edge</source>
<translation>右边缘</translation>
</message>
@@ -4673,7 +4687,7 @@ Please choose a different file name.</source>
<translation>底部</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Page left</source>
<translation>左一页</translation>
</message>
@@ -4684,7 +4698,7 @@ Please choose a different file name.</source>
<translation>上一页</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Page right</source>
<translation>右一页</translation>
</message>
@@ -4695,7 +4709,7 @@ Please choose a different file name.</source>
<translation>下一页</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
<source>Scroll left</source>
<translation>向左滚动</translation>
</message>
@@ -4705,7 +4719,7 @@ Please choose a different file name.</source>
<translation>向上滚动</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="+1"/>
<source>Scroll right</source>
<translation>向右滚动</translation>
</message>
@@ -4733,7 +4747,7 @@ Please choose a different file name.</source>
<context>
<name>QSharedMemory</name>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+177"/>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+207"/>
<source>%1: unable to set key on lock</source>
<translation>%1:无法设置锁定的键</translation>
</message>
@@ -4744,7 +4758,7 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+168"/>
- <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+118"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
<source>%1: unable to lock</source>
<translation>%1:无法锁定</translation>
</message>
@@ -4754,8 +4768,8 @@ Please choose a different file name.</source>
<translation>%1:无法取消锁定</translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+48"/>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+57"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
<source>%1: permission denied</source>
<translation>%1:权限被拒绝</translation>
</message>
@@ -4833,7 +4847,7 @@ Please choose a different file name.</source>
<context>
<name>QShortcut</name>
<message>
- <location filename="../src/gui/kernel/qkeysequence.cpp" line="+343"/>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/>
<source>Space</source>
<translation>空格</translation>
</message>
@@ -5418,7 +5432,7 @@ Please choose a different file name.</source>
<context>
<name>QSql</name>
<message>
- <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+860"/>
+ <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
<source>Delete</source>
<translation>删除</translation>
</message>
@@ -5475,7 +5489,7 @@ Please choose a different file name.</source>
<context>
<name>QSslSocket</name>
<message>
- <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+539"/>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+569"/>
<source>Unable to write data: %1</source>
<translation>不能写入数据:%1</translation>
</message>
@@ -5534,7 +5548,7 @@ Please choose a different file name.</source>
<name>QSystemSemaphore</name>
<message>
<location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+36"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
<source>%1: out of resources</source>
<translation>%1:资源耗尽了</translation>
</message>
@@ -5564,7 +5578,7 @@ Please choose a different file name.</source>
<context>
<name>QTDSDriver</name>
<message>
- <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+552"/>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
<source>Unable to open connection</source>
<translation>不能打开连接</translation>
</message>
@@ -5590,7 +5604,7 @@ Please choose a different file name.</source>
<context>
<name>QTcpServer</name>
<message>
- <location filename="../src/network/socket/qtcpserver.cpp" line="+252"/>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
<source>Operation on socket is not supported</source>
<translation>socket操作不被支持</translation>
</message>
@@ -5598,7 +5612,7 @@ Please choose a different file name.</source>
<context>
<name>QTextControl</name>
<message>
- <location filename="../src/gui/text/qtextcontrol.cpp" line="+1942"/>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/>
<source>&amp;Undo</source>
<translation>撤消(&amp;U)</translation>
</message>
@@ -5656,7 +5670,7 @@ Please choose a different file name.</source>
<context>
<name>QUdpSocket</name>
<message>
- <location filename="../src/network/socket/qudpsocket.cpp" line="+139"/>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
<source>This platform does not support IPv6</source>
<translation>这个平台不支持IPv6</translation>
</message>
@@ -5664,7 +5678,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoGroup</name>
<message>
- <location filename="../src/gui/util/qundogroup.cpp" line="+356"/>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+386"/>
<source>Undo</source>
<translation>撤销</translation>
</message>
@@ -5677,7 +5691,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoModel</name>
<message>
- <location filename="../src/gui/util/qundoview.cpp" line="+71"/>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
<source>&lt;empty&gt;</source>
<translation>&lt;空白&gt;</translation>
</message>
@@ -5685,7 +5699,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoStack</name>
<message>
- <location filename="../src/gui/util/qundostack.cpp" line="+804"/>
+ <location filename="../src/gui/util/qundostack.cpp" line="+834"/>
<source>Undo</source>
<translation>撤销</translation>
</message>
@@ -5756,7 +5770,7 @@ Please choose a different file name.</source>
<context>
<name>QWebFrame</name>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+686"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
<source>Request cancelled</source>
<translation>请求被取消了</translation>
</message>
@@ -6166,7 +6180,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1342"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
<source>JavaScript Alert - %1</source>
<translation>JavaScript警告 - %1</translation>
</message>
@@ -6242,6 +6256,11 @@ Please choose a different file name.</source>
</message>
<message>
<location line="+3"/>
+ <source>Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
<source>Select to the next character</source>
<translation>选中到下一个字符</translation>
</message>
@@ -6310,11 +6329,21 @@ Please choose a different file name.</source>
<source>Delete to the end of the word</source>
<translation>删除到单词尾</translation>
</message>
+ <message>
+ <location line="+33"/>
+ <source>Insert a new paragraph</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QWhatsThisAction</name>
<message>
- <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+492"/>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
<source>What&apos;s This?</source>
<translation>这是什么?</translation>
</message>
@@ -6322,7 +6351,7 @@ Please choose a different file name.</source>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="+5290"/>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/>
<source>*</source>
<translation>*</translation>
</message>
@@ -6330,7 +6359,7 @@ Please choose a different file name.</source>
<context>
<name>QWizard</name>
<message>
- <location filename="../src/gui/dialogs/qwizard.cpp" line="+605"/>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/>
<source>Go Back</source>
<translation>返回</translation>
</message>
@@ -6392,7 +6421,7 @@ Please choose a different file name.</source>
<context>
<name>QWorkspace</name>
<message>
- <location filename="../src/gui/widgets/qworkspace.cpp" line="+1064"/>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/>
<source>&amp;Restore</source>
<translation>恢复(&amp;R)</translation>
</message>
@@ -6462,7 +6491,7 @@ Please choose a different file name.</source>
<context>
<name>QXml</name>
<message>
- <location filename="../src/xml/sax/qxml.cpp" line="+28"/>
+ <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
<source>no error occurred</source>
<translation>没有错误发生</translation>
</message>
@@ -6580,8 +6609,8 @@ Please choose a different file name.</source>
<context>
<name>QXmlStream</name>
<message>
- <location filename="../src/corelib/xml/qxmlstream.cpp" line="+562"/>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1739"/>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/>
<source>Extra content at end of document.</source>
<translation>文档末尾有额外内容。</translation>
</message>
@@ -6765,7 +6794,7 @@ Please choose a different file name.</source>
<context>
<name>QtXmlPatterns</name>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+175"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
<source>An %1-attribute with value %2 has already been declared.</source>
<translation>带有值 %2 的 %1 属性已经声明过了。</translation>
</message>
@@ -6775,12 +6804,12 @@ Please choose a different file name.</source>
<translation>一个 %1 属性必须带有一个有效的 %2 作为值,但 %3 却不是。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+54"/>
+ <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="+290"/>
+ <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>
@@ -6789,7 +6818,7 @@ Please choose a different file name.</source>
<translation type="obsolete">属性元素 %1 不能被串行化,因为它出现在最顶层。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+50"/>
+ <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>
@@ -6829,7 +6858,7 @@ Please choose a different file name.</source>
<translation>溢出:数据无法被呈现。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+69"/>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/>
<location line="+15"/>
<source>At least one component must be present.</source>
<translation>至少有一个组件被呈现。</translation>
@@ -6840,7 +6869,7 @@ Please choose a different file name.</source>
<translation>至少一个时间组件必须出现在这个 %1 界限之后。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+34"/>
+ <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
<source>No operand in an integer division, %1, can be %2.</source>
<translation>在整数除法中没有操作数,%1,可以是 %2。</translation>
</message>
@@ -6855,17 +6884,17 @@ Please choose a different file name.</source>
<translation>除法中的第二个操作数,%1,不能是零(%2)。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+102"/>
+ <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="+193"/>
+ <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/qatomicmathematicians.cpp" line="+35"/>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
<source>Integer division (%1) by zero (%2) is undefined.</source>
<translation>整数除法(%1)除零(%2)是未定义的。</translation>
</message>
@@ -6896,17 +6925,17 @@ Please choose a different file name.</source>
<translation>一个类型为 %1 的值乘以 %2 或者 %3(正负无穷)是不允许的。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+49"/>
+ <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/>
<source>A value of type %1 cannot have an Effective Boolean Value.</source>
<translation>一个类型为 %1 的值不能是一个有效的布尔值(Effective Boolean Value)。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+48"/>
+ <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>有效的布尔值(Effective Boolean Value)不能被用于计算一个包含两个或者更多原子值的序列。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+372"/>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
<source>Value %1 of type %2 exceeds maximum (%3).</source>
<translation>类型为 %2 的值 %1 超过了最大值(%3)。</translation>
</message>
@@ -6916,7 +6945,7 @@ Please choose a different file name.</source>
<translation>类型为 %2 的值 %1 超过了最小值(%3)。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+61"/>
+ <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>
@@ -6926,7 +6955,7 @@ Please choose a different file name.</source>
<translation>%1 不是类型为 %2 的有效值。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+177"/>
+ <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
<source>Operator %1 cannot be used on type %2.</source>
<translation>操作符 %1 不能被用于类型 %2。</translation>
</message>
@@ -6936,7 +6965,7 @@ Please choose a different file name.</source>
<translation>操作符 %1 不能被用于类型为 %2 和 %3 的原子值。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+36"/>
+ <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>
@@ -6946,7 +6975,7 @@ Please choose a different file name.</source>
<translation>一个被计算的属性的名称不能使用带有本地名称 %2 的命名空间 URI %1。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+58"/>
+ <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
<source>Type error in cast, expected %1, received %2.</source>
<translation>抛出类型错误,期望的是 %1,收到的是 %2。</translation>
</message>
@@ -6956,7 +6985,7 @@ Please choose a different file name.</source>
<translation>当抛出到 %1 或者它的派生类时,源类型必须是同一类型,或者它必须是一个字符串类型。类型 %2 是不被允许的。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+104"/>
+ <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/>
<source>No casting is possible with %1 as the target type.</source>
<translation>无法以 %1 为目标类型进行抛出。</translation>
</message>
@@ -6981,7 +7010,7 @@ Please choose a different file name.</source>
<translation>从 %2 抛出到 %1 失败:%3</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+37"/>
+ <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
<source>A comment cannot contain %1</source>
<translation>注释不能包含 %1</translation>
</message>
@@ -6991,7 +7020,7 @@ Please choose a different file name.</source>
<translation>注释不能以 %1 结尾。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+137"/>
+ <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
<source>No comparisons can be done involving the type %1.</source>
<translation>对于类型 %1 不能进行比较。</translation>
</message>
@@ -7001,12 +7030,12 @@ Please choose a different file name.</source>
<translation>在类型 %2 和 %3 的原子值之间,操作符 %1 是不可用的。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+56"/>
+ <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="+139"/>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
<source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
<translation>一个库模块不能被直接评估。它必须从一个主模块中导入。</translation>
</message>
@@ -7016,7 +7045,7 @@ Please choose a different file name.</source>
<translation>没有名为 %1 的模板存在。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+76"/>
+ <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 的值不能被判断。一个判断必须是数值类型或者一个有效的布尔值(Effective Boolean Value)类型。</translation>
</message>
@@ -7026,7 +7055,7 @@ Please choose a different file name.</source>
<translation>一个定位判断必须评估一个单一数值。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+83"/>
+ <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>一个处理指令中的目标名称不能是任何大小写混合的 %1。因此,%2 是无效的。</translation>
</message>
@@ -7036,33 +7065,33 @@ Please choose a different file name.</source>
<translation>%1 不是处理指令的有效目标名称。它必须是值 %2,例如 %3。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+79"/>
+ <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/qprocessinginstructionconstructor.cpp" line="+54"/>
+ <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/>
<source>The data of a processing instruction cannot contain the string %1</source>
<translation>处理指令的数据不能包含字符串 %1</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+52"/>
+ <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="+126"/>
+ <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+156"/>
<source>No namespace binding exists for the prefix %1 in %2</source>
<translation>对于 %2 中的前缀 %1,没有存在绑定的命名空间。</translation>
</message>
<message>
<location line="+12"/>
- <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+39"/>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
<source>%1 is an invalid %2</source>
<translation>%1 是一个无效的 %2。</translation>
</message>
<message numerus="yes">
- <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+47"/>
+ <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>
@@ -7076,7 +7105,7 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+90"/>
+ <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>
@@ -7091,27 +7120,27 @@ Please choose a different file name.</source>
<translation>%1 的第二个参数不能是类型 %2 的。它必须是类型 %3、%4 或者 %5 的。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+58"/>
+ <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/qcomparingaggregator.cpp" line="+167"/>
+ <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
<source>The first argument to %1 cannot be of type %2.</source>
<translation>%1 的第一个参数不能是类型 %2 的。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+56"/>
+ <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>如果两个值都有区偏移(zone offset),它们必须拥有相同的区偏移。%1 和 %2 的区偏移是不同的。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+31"/>
+ <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="+64"/>
+ <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>%1 必须被 %2 或者 %3 跟随,不能在替换字符串的末尾。</translation>
</message>
@@ -7126,7 +7155,7 @@ Please choose a different file name.</source>
<translation>在这个替换字符串中,%1 只能被用于转义它本身或者 %2,而不是 %3</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+62"/>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
<source>%1 matches newline characters</source>
<translation>%1 匹配了换行符</translation>
</message>
@@ -7161,17 +7190,17 @@ Please choose a different file name.</source>
<translation>如果第一个参数是空序列或者零长度字符串(无命名空间),那么就不能指定前缀。前缀 %1 被指定了。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+317"/>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/>
<source>It will not be possible to retrieve %1.</source>
<translation>将不能获取 %1。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+24"/>
+ <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/functions/qsequencegeneratingfns.cpp" line="+249"/>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
<source>The default collection is undefined</source>
<translation>默认收集(collection)是未定义的</translation>
</message>
@@ -7181,12 +7210,12 @@ Please choose a different file name.</source>
<translation>无法获取 %1</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+222"/>
+ <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>不支持正规化(normalization)表单 %1。被支持的表单是 %2、%3、%4 和 %5,以及无,例如空字符串(无正规化)。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+57"/>
+ <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>区偏移(zone offset)必须在 %1...%2 范围之内。%3 是在范围之外的。</translation>
</message>
@@ -7196,17 +7225,17 @@ Please choose a different file name.</source>
<translation>%1 不是分钟的整数。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+28"/>
+ <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/janitors/qitemverifier.cpp" line="+37"/>
+ <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="+319"/>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/>
<location line="+7253"/>
<source>%1 is an unknown schema type.</source>
<translation>%1 是一个未知的方案类型。</translation>
@@ -7227,7 +7256,7 @@ Please choose a different file name.</source>
<translation>没有名称为 %1 的变量存在。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+63"/>
+ <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
<source>The variable %1 is unused</source>
<translation>变量 %1 没有被使用</translation>
</message>
@@ -7525,7 +7554,7 @@ Please choose a different file name.</source>
<translation>一个扩展表达式的名称必须在一个命名空间中。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+25"/>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
<source>empty</source>
<translation>空白</translation>
</message>
@@ -7550,7 +7579,7 @@ Please choose a different file name.</source>
<translation>零或者更多</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+33"/>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
<source>Required type is %1, but %2 was found.</source>
<translation>需要的类型是 %1,但是找到的是 %2。</translation>
</message>
@@ -7565,7 +7594,7 @@ Please choose a different file name.</source>
<translation>焦点未定义。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+56"/>
+ <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>不能在任何其它类型节点后添加属性。</translation>
</message>
@@ -7575,7 +7604,7 @@ Please choose a different file name.</source>
<translation>一个名称为 %1 的属性已经被创建。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+90"/>
+ <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 代码点校验(Unicode Codepoint Collation)(%1)。%2 是不被支持的。</translation>
</message>
@@ -7585,7 +7614,7 @@ Please choose a different file name.</source>
<translation>属性 %1 不能被串行化,因为它出现在最顶层。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+284"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
<source>%1 is an unsupported encoding.</source>
<translation> %1 是不被支持的编码。</translation>
</message>
@@ -7600,14 +7629,18 @@ Please choose a different file name.</source>
<translation>在使用编码%3的%2中出现的代码点%1不是一个有效的XML字符。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+89"/>
+ <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="+39"/>
<source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source>
- <translation>在一个命名空间构造中,命名空间的值不能为空字符串。</translation>
+ <translation type="obsolete">在一个命名空间构造中,命名空间的值不能为空字符串。</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"/>
@@ -7625,12 +7658,12 @@ Please choose a different file name.</source>
<translation>只有前缀%1可以绑定到%2,反之也一样</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+87"/>
+ <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
<source>Circularity detected</source>
<translation>检测到环</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+115"/>
+ <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>
@@ -7640,12 +7673,12 @@ Please choose a different file name.</source>
<translation>参数%1已传递,但没有相应的%2存在。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+35"/>
+ <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="+489"/>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
<source>Element %1 is not allowed at this location.</source>
<translation>元素%1不能在这个位置。</translation>
</message>
@@ -7700,7 +7733,7 @@ Please choose a different file name.</source>
<translation>在元素%2的%1属性中至少要指定一个模式。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+153"/>
+ <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>属性%1不能出现在元素%2上。只有标准属性可以出现。</translation>
</message>
@@ -7775,7 +7808,7 @@ Please choose a different file name.</source>
<translation>元素%1不能有子元素。</translation>
</message>
<message>
- <location line="+432"/>
+ <location line="+434"/>
<source>Element %1 cannot have a sequence constructor.</source>
<translation>元素%1不能有顺序构造。</translation>
</message>
diff --git a/translations/qt_zh_TW.ts b/translations/qt_zh_TW.ts
index 5fccebf..bcb6f8d 100644
--- a/translations/qt_zh_TW.ts
+++ b/translations/qt_zh_TW.ts
@@ -1,18 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="zh_TW">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_TW">
<context>
<name>AudioOutput</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="374"/>
+ <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/>
<source>&lt;html&gt;The audio playback device &lt;b&gt;%1&lt;/b&gt; does not work.&lt;br/&gt;Falling back to &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</source>
<translation>&lt;html&gt;音效播放裝置 &lt;b&gt;%1&lt;/b&gt; 未能運作。&lt;br/&gt;改用預設裝置 &lt;b&gt;%2&lt;/b&gt;。&lt;/html&gt;</translation>
</message>
<message>
+ <location line="+13"/>
<source>&lt;html&gt;Switching to the audio playback device &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;which just became available and has higher preference.&lt;/html&gt;</source>
<translation>&lt;html&gt;音效播放裝置 &lt;b&gt;%1&lt;/b&gt; 已可使用,因為有較高優先權,因此將切換到該裝置。&lt;/html&gt;</translation>
</message>
<message>
+ <location line="+3"/>
<source>Revert back to device &apos;%1&apos;</source>
<translation>回復到裝置 %1</translation>
</message>
@@ -20,7 +22,7 @@
<context>
<name>CloseButton</name>
<message>
- <location filename="../src/gui/widgets/qtabbar.cpp" line="2217"/>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/>
<source>Close Tab</source>
<translation>關閉分頁</translation>
</message>
@@ -39,27 +41,32 @@
<context>
<name>Phonon::</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/phononnamespace.cpp" line="55"/>
+ <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>
@@ -67,13 +74,14 @@
<context>
<name>Phonon::Gstreamer::Backend</name>
<message>
- <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="171"/>
+ <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+171"/>
<source>Warning: You do not seem to have the package gstreamer0.10-plugins-good installed.
Some video features have been disabled.</source>
<translation>警告:您可能沒有安裝 gstreamer0.10-plugins-good。
有些影像的功能將被關閉。</translation>
</message>
<message>
+ <location line="+5"/>
<source>Warning: You do not seem to have the base GStreamer plugins installed.
All audio and video support has been disabled</source>
<translation>警告:您可能沒有安裝 GStreamer 外掛程式。 所有音效與影像支援將被關閉。</translation>
@@ -82,7 +90,7 @@
<context>
<name>Phonon::Gstreamer::MediaObject</name>
<message>
- <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="88"/>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/>
<source>Cannot start playback.
Check your Gstreamer installation and make sure you
@@ -93,26 +101,39 @@ have libgstreamer-plugins-base installed.</source>
libgstreamer-plugins-base 套件。</translation>
</message>
<message>
+ <location line="+113"/>
<source>A required codec is missing. You need to install the following codec(s) to play this content: %0</source>
<translation>找不到需要的編解碼器。您需要安裝以下的套件來播放此內容:%0</translation>
</message>
<message>
+ <location line="+676"/>
+ <location line="+8"/>
+ <location line="+15"/>
+ <location line="+9"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+335"/>
+ <location line="+24"/>
<source>Could not open media source.</source>
<translation>無法開啟媒體來源。</translation>
</message>
<message>
+ <location line="-403"/>
<source>Invalid source type.</source>
<translation>不合法的來源型態。</translation>
</message>
<message>
+ <location line="+377"/>
<source>Could not locate media source.</source>
<translation>無法定位媒體來源。</translation>
</message>
<message>
+ <location line="+10"/>
<source>Could not open audio device. The device is already in use.</source>
<translation>無法開啟音效裝置。裝置已在使用中。</translation>
</message>
<message>
+ <location line="+13"/>
<source>Could not decode media source.</source>
<translation>無法解碼媒體來源。</translation>
</message>
@@ -120,10 +141,15 @@ libgstreamer-plugins-base 套件。</translation>
<context>
<name>Phonon::VolumeSlider</name>
<message>
+ <location filename="../src/3rdparty/phonon/phonon/volumeslider.cpp" line="+42"/>
+ <location line="+18"/>
<source>Volume: %1%</source>
<translation>音量:%1%</translation>
</message>
<message>
+ <location line="-15"/>
+ <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>
@@ -131,11 +157,12 @@ libgstreamer-plugins-base 套件。</translation>
<context>
<name>Q3Accel</name>
<message>
- <location filename="../src/qt3support/other/q3accel.cpp" line="451"/>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
<source>%1, %2 not defined</source>
<translation>%1,%2 未定義</translation>
</message>
<message>
+ <location line="+36"/>
<source>Ambiguous %1 not handled</source>
<translation>不明確的 %1 尚未處理</translation>
</message>
@@ -143,23 +170,27 @@ libgstreamer-plugins-base 套件。</translation>
<context>
<name>Q3DataTable</name>
<message>
- <location filename="../src/qt3support/sql/q3datatable.cpp" line="253"/>
+ <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>
@@ -167,242 +198,313 @@ libgstreamer-plugins-base 套件。</translation>
<context>
<name>Q3FileDialog</name>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="834"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+864"/>
<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="+1575"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="80"/>
+ <location line="-157"/>
+ <location line="+49"/>
+ <location line="+2153"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
<source>All Files (*)</source>
<translation>所有檔案 (*)</translation>
</message>
<message>
+ <location line="-2089"/>
<source>Name</source>
<translation>名稱</translation>
</message>
<message>
+ <location line="+1"/>
<source>Size</source>
<translation>大小</translation>
</message>
<message>
+ <location line="+2"/>
<source>Type</source>
<translation>型態</translation>
</message>
<message>
+ <location line="+1"/>
<source>Date</source>
<translation>日期</translation>
</message>
<message>
+ <location line="+1"/>
<source>Attributes</source>
<translation>屬性</translation>
</message>
<message>
+ <location line="+35"/>
+ <location line="+2031"/>
<source>&amp;OK</source>
<translation>確定(&amp;O)</translation>
</message>
<message>
+ <location line="-1991"/>
<source>Look &amp;in:</source>
<translation>尋找於(&amp;I):</translation>
</message>
<message>
+ <location line="+1"/>
+ <location line="+1981"/>
+ <location line="+16"/>
<source>File &amp;name:</source>
<translation>檔名(&amp;N):</translation>
</message>
<message>
+ <location line="-1996"/>
<source>File &amp;type:</source>
<translation>檔案型態(&amp;T):</translation>
</message>
<message>
+ <location line="+7"/>
<source>Back</source>
<translation>返回</translation>
</message>
<message>
+ <location line="+7"/>
<source>One directory up</source>
<translation>往上一層目錄</translation>
</message>
<message>
+ <location line="+9"/>
<source>Create New Folder</source>
<translation>建立新資料夾</translation>
</message>
<message>
+ <location line="+18"/>
<source>List View</source>
<translation>列表檢視</translation>
</message>
<message>
+ <location line="+8"/>
<source>Detail View</source>
<translation>詳細檢視</translation>
</message>
<message>
+ <location line="+9"/>
<source>Preview File Info</source>
<translation>預覽檔案資訊</translation>
</message>
<message>
+ <location line="+23"/>
<source>Preview File Contents</source>
<translation>預覽檔案內容</translation>
</message>
<message>
+ <location line="+88"/>
<source>Read-write</source>
<translation>可讀寫</translation>
</message>
<message>
+ <location line="+1"/>
<source>Read-only</source>
<translation>唯讀</translation>
</message>
<message>
+ <location line="+1"/>
<source>Write-only</source>
<translation>唯寫</translation>
</message>
<message>
+ <location line="+1"/>
<source>Inaccessible</source>
<translation>無法存取</translation>
</message>
<message>
+ <location line="+2"/>
<source>Symlink to File</source>
<translation>到檔案的符號連結</translation>
</message>
<message>
+ <location line="+1"/>
<source>Symlink to Directory</source>
<translation>到目錄的符號連結</translation>
</message>
<message>
+ <location line="+1"/>
<source>Symlink to Special</source>
<translation>到特殊節點的符號連結</translation>
</message>
<message>
+ <location line="+1"/>
<source>File</source>
<translation>檔案</translation>
</message>
<message>
+ <location line="+1"/>
<source>Dir</source>
<translation>目錄</translation>
</message>
<message>
+ <location line="+1"/>
<source>Special</source>
<translation>特殊節點</translation>
</message>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="307"/>
+ <location line="+704"/>
+ <location line="+2100"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/>
<source>Open</source>
<translation>開啟</translation>
</message>
<message>
- <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="84"/>
+ <location line="-1990"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+84"/>
<source>Save As</source>
<translation>另存新檔</translation>
</message>
<message>
+ <location line="+642"/>
+ <location line="+5"/>
+ <location line="+355"/>
<source>&amp;Open</source>
<translation>開啟(&amp;O)</translation>
</message>
<message>
+ <location line="-357"/>
+ <location line="+341"/>
<source>&amp;Save</source>
<translation>儲存(&amp;S)</translation>
</message>
<message>
+ <location line="-334"/>
<source>&amp;Rename</source>
<translation>重新命名(&amp;R)</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Delete</source>
<translation>刪除(&amp;D)</translation>
</message>
<message>
+ <location line="+20"/>
<source>R&amp;eload</source>
<translation>重新載入(&amp;E)</translation>
</message>
<message>
+ <location line="+4"/>
<source>Sort by &amp;Name</source>
<translation>依名稱排序(&amp;N)</translation>
</message>
<message>
+ <location line="+2"/>
<source>Sort by &amp;Size</source>
<translation>依大小排序(&amp;S)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Sort by &amp;Date</source>
<translation>依日期排序(&amp;D)</translation>
</message>
<message>
+ <location line="+2"/>
<source>&amp;Unsorted</source>
<translation>未排序(&amp;U)</translation>
</message>
<message>
+ <location line="+15"/>
<source>Sort</source>
<translation>排序</translation>
</message>
<message>
+ <location line="+4"/>
<source>Show &amp;hidden files</source>
<translation>顯示隱藏檔(&amp;H)</translation>
</message>
<message>
+ <location line="+31"/>
<source>the file</source>
<translation>此檔案</translation>
</message>
<message>
+ <location line="+2"/>
<source>the directory</source>
<translation>此目錄</translation>
</message>
<message>
+ <location line="+2"/>
<source>the symlink</source>
<translation>此符號連結</translation>
</message>
<message>
+ <location line="+3"/>
<source>Delete %1</source>
<translation>刪除 %1</translation>
</message>
<message>
+ <location line="+1"/>
<source>&lt;qt&gt;Are you sure you wish to delete %1 &quot;%2&quot;?&lt;/qt&gt;</source>
<translation>&lt;qt&gt;您確定要刪除 %1 &quot;%2&quot; 嗎?&lt;/qt&gt;</translation>
</message>
<message>
+ <location line="+2"/>
<source>&amp;Yes</source>
<translation>是(&amp;Y)</translation>
</message>
<message>
+ <location line="+0"/>
<source>&amp;No</source>
<translation>否(&amp;N)</translation>
</message>
<message>
+ <location line="+36"/>
<source>New Folder 1</source>
<translation>新資料夾 1</translation>
</message>
<message>
+ <location line="+5"/>
<source>New Folder</source>
<translation>新資料夾</translation>
</message>
<message>
+ <location line="+5"/>
<source>New Folder %1</source>
<translation>新資料夾 %1</translation>
</message>
<message>
+ <location line="+98"/>
<source>Find Directory</source>
<translation>尋找目錄</translation>
</message>
<message>
+ <location line="+5"/>
+ <location line="+108"/>
<source>Directories</source>
<translation>目錄</translation>
</message>
<message>
+ <location line="-2"/>
<source>Directory:</source>
<translation>目錄:</translation>
</message>
<message>
+ <location line="+40"/>
+ <location line="+1110"/>
<source>Error</source>
<translation>錯誤</translation>
</message>
<message>
+ <location line="-1109"/>
<source>%1
File not found.
Check path and filename.</source>
@@ -411,14 +513,17 @@ Check path and filename.</source>
請檢查路徑與檔名。</translation>
</message>
<message>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="-289"/>
<source>All Files (*.*)</source>
<translation>所有檔案 (*.*)</translation>
</message>
<message>
+ <location line="+375"/>
<source>Open </source>
<translation>開啟 </translation>
</message>
<message>
+ <location line="+155"/>
<source>Select a Directory</source>
<translation>請選擇一個目錄</translation>
</message>
@@ -426,24 +531,29 @@ 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
@@ -454,12 +564,14 @@ 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>無法寫入
@@ -469,11 +581,12 @@ to
<context>
<name>Q3MainWindow</name>
<message>
- <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="2021"/>
+ <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>
@@ -481,7 +594,7 @@ to
<context>
<name>Q3NetworkProtocol</name>
<message>
- <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="824"/>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
<source>Operation stopped by the user</source>
<translation>使用者已中止操作</translation>
</message>
@@ -489,6 +602,8 @@ to
<context>
<name>Q3ProgressDialog</name>
<message>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
+ <location line="+61"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
@@ -496,22 +611,28 @@ to
<context>
<name>Q3TabDialog</name>
<message>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/>
+ <location line="+814"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
+ <location line="-356"/>
<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>
@@ -519,31 +640,38 @@ to
<context>
<name>Q3TextEdit</name>
<message>
- <location filename="../src/qt3support/text/q3textedit.cpp" line="5399"/>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
<source>&amp;Undo</source>
<translation>復原(&amp;U)</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Redo</source>
<translation>重做(&amp;R)</translation>
</message>
<message>
+ <location line="+5"/>
<source>Cu&amp;t</source>
<translation>剪下(&amp;T)</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Copy</source>
<translation>複製(&amp;C)</translation>
</message>
<message>
+ <location line="+2"/>
<source>&amp;Paste</source>
<translation>貼上(&amp;P)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Clear</source>
<translation>清除</translation>
</message>
<message>
+ <location line="+4"/>
+ <location line="+2"/>
<source>Select All</source>
<translation>全部選擇</translation>
</message>
@@ -551,55 +679,67 @@ to
<context>
<name>Q3TitleBar</name>
<message>
- <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="216"/>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
<source>System</source>
<translation>系統</translation>
</message>
<message>
+ <location line="+3"/>
<source>Restore up</source>
<translation>向上恢復</translation>
</message>
<message>
+ <location line="+1"/>
<source>Minimize</source>
<translation>最小化</translation>
</message>
<message>
+ <location line="+3"/>
<source>Restore down</source>
<translation>向下恢復</translation>
</message>
<message>
+ <location line="+1"/>
<source>Maximize</source>
<translation>最大化</translation>
</message>
<message>
+ <location line="+2"/>
<source>Close</source>
<translation>關閉</translation>
</message>
<message>
+ <location line="+18"/>
<source>Contains commands to manipulate the window</source>
<translation>包含要操作此視窗的指令</translation>
</message>
<message>
+ <location line="+3"/>
<source>Puts a minimized back to normal</source>
<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>
@@ -607,7 +747,7 @@ to
<context>
<name>Q3ToolBar</name>
<message>
- <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="662"/>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
<source>More...</source>
<translation>更多...</translation>
</message>
@@ -615,38 +755,51 @@ 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>協定 %1 未支援</translation>
</message>
<message>
+ <location line="-260"/>
<source>The protocol `%1&apos; does not support listing directories</source>
<translation>協定 %1 未支援列出目錄</translation>
</message>
<message>
+ <location line="+3"/>
<source>The protocol `%1&apos; does not support creating new directories</source>
<translation>協定 %1 未支援建立新目錄</translation>
</message>
<message>
+ <location line="+3"/>
<source>The protocol `%1&apos; does not support removing files or directories</source>
<translation>協定 %1 未支援移除檔案或目錄</translation>
</message>
<message>
+ <location line="+3"/>
<source>The protocol `%1&apos; does not support renaming files or directories</source>
<translation>協定 %1 未支援重新命名檔案或目錄</translation>
</message>
<message>
+ <location line="+3"/>
<source>The protocol `%1&apos; does not support getting files</source>
<translation>協定 %1 未支援取得檔案</translation>
</message>
<message>
+ <location line="+3"/>
<source>The protocol `%1&apos; does not support putting files</source>
<translation>協定 %1 未支援寫入檔案</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>協定 %1 未支援複製或移動檔案或目錄</translation>
</message>
<message>
+ <location line="+237"/>
+ <location line="+1"/>
<source>(unknown)</source>
<translation>(未知)</translation>
</message>
@@ -654,23 +807,27 @@ to
<context>
<name>Q3Wizard</name>
<message>
- <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="147"/>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
<source>&amp;Cancel</source>
<translation>取消(&amp;C)</translation>
</message>
<message>
+ <location line="+1"/>
<source>&lt; &amp;Back</source>
<translation><返回(&amp;B)</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Next &gt;</source>
<translation>下一個(&amp;N)></translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Finish</source>
<translation>完成(&amp;F)</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Help</source>
<translation>說明(&amp;H)</translation>
</message>
@@ -678,31 +835,44 @@ to
<context>
<name>QAbstractSocket</name>
<message>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
+ <location line="+26"/>
<source>Host not found</source>
<translation>找不到主機</translation>
</message>
<message>
- <location filename="../src/network/socket/qsocks5socketengine.cpp" line="4"/>
+ <location line="+50"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+3"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+4"/>
<source>Connection refused</source>
<translation>連線被拒</translation>
</message>
<message>
+ <location line="+141"/>
<source>Connection timed out</source>
<translation>連線逾時</translation>
</message>
<message>
+ <location line="-547"/>
+ <location line="+787"/>
+ <location line="+208"/>
<source>Operation on socket is not supported</source>
<translation>Socket 的操作未被支援</translation>
</message>
<message>
+ <location line="+137"/>
<source>Socket operation timed out</source>
<translation>Socket 操作逾時</translation>
</message>
<message>
+ <location line="+380"/>
<source>Socket is not connected</source>
<translation>Socket 未連線</translation>
</message>
<message>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-8"/>
<source>Network unreachable</source>
<translation>無法使用網路</translation>
</message>
@@ -710,15 +880,17 @@ to
<context>
<name>QAbstractSpinBox</name>
<message>
- <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="1169"/>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/>
<source>&amp;Step up</source>
<translation>單步向上(&amp;S)</translation>
</message>
<message>
+ <location line="+2"/>
<source>Step &amp;down</source>
<translation>單步向下(&amp;D)</translation>
</message>
<message>
+ <location line="-8"/>
<source>&amp;Select All</source>
<translation>全部選擇(&amp;S)</translation>
</message>
@@ -726,27 +898,28 @@ to
<context>
<name>QApplication</name>
<message>
- <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="346"/>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
<source>Activate</source>
<translation>啟動</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qmessagebox.h" line="322"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
<source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
<translation>執行檔 %1 需要 Qt %2,但只找到 Qt %3。</translation>
</message>
<message>
+ <location line="+2"/>
<source>Incompatible Qt Library Error</source>
<translation>Qt 函式庫不相容的錯誤</translation>
</message>
<message>
- <location filename="../src/gui/kernel/qapplication.cpp" line="2212"/>
+ <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>
</message>
<message>
- <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="2"/>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+2"/>
<source>Activates the program&apos;s main window</source>
<translation>啟動程式的主視窗</translation>
</message>
@@ -754,18 +927,22 @@ 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;C)</translation>
</message>
<message>
+ <location/>
<source>COM &amp;Object:</source>
<translation>COM 物件(&amp;O)</translation>
</message>
@@ -773,15 +950,17 @@ to
<context>
<name>QCheckBox</name>
<message>
- <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="84"/>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/>
<source>Uncheck</source>
<translation>取消勾選</translation>
</message>
<message>
+ <location line="+3"/>
<source>Check</source>
<translation>勾選</translation>
</message>
<message>
+ <location line="+1"/>
<source>Toggle</source>
<translation>切換</translation>
</message>
@@ -789,43 +968,52 @@ to
<context>
<name>QColorDialog</name>
<message>
- <location filename="../src/gui/dialogs/qcolordialog.cpp" line="1219"/>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/>
<source>Hu&amp;e:</source>
<translation>色調(&amp;E):</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Sat:</source>
<translation>飽和度(&amp;S):</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Val:</source>
<translation>亮度(&amp;V):</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Red:</source>
<translation>紅(&amp;R):</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Green:</source>
<translation>綠(&amp;G):</translation>
</message>
<message>
+ <location line="+1"/>
<source>Bl&amp;ue:</source>
<translation>藍(&amp;U):</translation>
</message>
<message>
+ <location line="+1"/>
<source>A&amp;lpha channel:</source>
<translation>Alpha 色頻(&amp;L):</translation>
</message>
<message>
+ <location line="+101"/>
<source>Select Color</source>
<translation>選擇顏色</translation>
</message>
<message>
+ <location line="+137"/>
<source>&amp;Basic colors</source>
<translation>基本顏色(&amp;B)</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Custom colors</source>
<translation>自訂顏色(&amp;C)</translation>
</message>
@@ -842,6 +1030,7 @@ to
<translation type="obsolete">取消</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Add to Custom Colors</source>
<translation>新增到自訂顏色(&amp;A)</translation>
</message>
@@ -853,20 +1042,23 @@ to
<context>
<name>QComboBox</name>
<message>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
+ <location line="+65"/>
<source>Open</source>
<translation>開啟</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="514"/>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
<source>False</source>
<translation>假</translation>
</message>
<message>
+ <location line="+1"/>
<source>True</source>
<translation>真</translation>
</message>
<message>
- <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="0"/>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+0"/>
<source>Close</source>
<translation>關閉</translation>
</message>
@@ -899,17 +1091,19 @@ to
<translation type="obsolete">%1:未知的錯誤 %2</translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="89"/>
+ <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>
@@ -918,19 +1112,22 @@ to
<context>
<name>QDB2Driver</name>
<message>
- <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="1217"/>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
<source>Unable to connect</source>
<translation>無法連接</translation>
</message>
<message>
+ <location line="+303"/>
<source>Unable to commit transaction</source>
<translation>無法提交事務</translation>
</message>
<message>
+ <location line="+17"/>
<source>Unable to rollback transaction</source>
<translation>無法反轉事務</translation>
</message>
<message>
+ <location line="+15"/>
<source>Unable to set autocommit</source>
<translation>無法設定自動提交</translation>
</message>
@@ -938,26 +1135,33 @@ to
<context>
<name>QDB2Result</name>
<message>
+ <location line="-1043"/>
+ <location line="+243"/>
<source>Unable to execute statement</source>
<translation>無法執行敘述</translation>
</message>
<message>
+ <location line="-206"/>
<source>Unable to prepare statement</source>
<translation>無法準備敘述</translation>
</message>
<message>
+ <location line="+196"/>
<source>Unable to bind variable</source>
<translation>無法結合變數</translation>
</message>
<message>
+ <location line="+92"/>
<source>Unable to fetch record %1</source>
<translation>無法抓取紀錄 %1</translation>
</message>
<message>
+ <location line="+17"/>
<source>Unable to fetch next</source>
<translation>無法抓取下一筆</translation>
</message>
<message>
+ <location line="+20"/>
<source>Unable to fetch first</source>
<translation>無法抓取第一筆</translation>
</message>
@@ -965,19 +1169,22 @@ to
<context>
<name>QDateTimeEdit</name>
<message>
- <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="2265"/>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
<source>AM</source>
<translation>AM</translation>
</message>
<message>
+ <location line="+0"/>
<source>am</source>
<translation>am</translation>
</message>
<message>
+ <location line="+2"/>
<source>PM</source>
<translation>PM</translation>
</message>
<message>
+ <location line="+0"/>
<source>pm</source>
<translation>pm</translation>
</message>
@@ -985,15 +1192,17 @@ to
<context>
<name>QDial</name>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="921"/>
+ <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>
@@ -1001,11 +1210,12 @@ to
<context>
<name>QDialog</name>
<message>
- <location filename="../src/gui/dialogs/qdialog.cpp" line="567"/>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
<source>What&apos;s This?</source>
<translation>這是什麼?</translation>
</message>
<message>
+ <location line="-115"/>
<source>Done</source>
<translation>完成</translation>
</message>
@@ -1013,100 +1223,124 @@ to
<context>
<name>QDialogButtonBox</name>
<message>
- <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="531"/>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
+ <location line="+464"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
- <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="3"/>
+ <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;S)</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;C)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Close</source>
<translation>關閉</translation>
</message>
<message>
+ <location line="+0"/>
<source>&amp;Close</source>
<translation>關閉(&amp;C)</translation>
</message>
<message>
+ <location line="+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;Y)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Yes to &amp;All</source>
<translation>全部回答是(&amp;A)</translation>
</message>
<message>
+ <location line="+3"/>
<source>&amp;No</source>
<translation>否(&amp;N)</translation>
</message>
<message>
+ <location line="+3"/>
<source>N&amp;o to All</source>
<translation>全部回答否(&amp;O)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Save All</source>
<translation>全部儲存</translation>
</message>
<message>
+ <location line="+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;O)</translation>
</message>
@@ -1114,25 +1348,29 @@ to
<context>
<name>QDirModel</name>
<message>
- <location filename="../src/gui/itemviews/qdirmodel.cpp" line="423"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/>
<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>
@@ -1140,15 +1378,17 @@ to
<context>
<name>QDockWidget</name>
<message>
- <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="1209"/>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
<source>Close</source>
<translation>關閉</translation>
</message>
<message>
+ <location line="+2"/>
<source>Dock</source>
<translation>嵌入</translation>
</message>
<message>
+ <location line="+1"/>
<source>Float</source>
<translation>飄浮</translation>
</message>
@@ -1156,10 +1396,12 @@ 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>
@@ -1167,23 +1409,27 @@ to
<context>
<name>QErrorMessage</name>
<message>
- <location filename="../src/gui/dialogs/qerrormessage.cpp" line="162"/>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+192"/>
<source>Debug Message:</source>
<translation>除錯訊息:</translation>
</message>
<message>
+ <location line="+3"/>
<source>Warning:</source>
<translation>警告:</translation>
</message>
<message>
+ <location line="+3"/>
<source>Fatal Error:</source>
<translation>嚴重錯誤:</translation>
</message>
<message>
+ <location line="+193"/>
<source>&amp;Show this message again</source>
<translation>再度顯示此訊息(&amp;S)</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;OK</source>
<translation>確定(&amp;O)</translation>
</message>
@@ -1191,22 +1437,33 @@ to
<context>
<name>QFile</name>
<message>
+ <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
+ <location line="+141"/>
<source>Destination file exists</source>
<translation>目標檔已存在</translation>
</message>
<message>
+ <location line="-108"/>
+ <source>Cannot remove source file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+120"/>
<source>Cannot open %1 for input</source>
<translation>無法開啟 %1 以輸入</translation>
</message>
<message>
+ <location line="+17"/>
<source>Cannot open for output</source>
<translation>無法開啟 %1 以輸出</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>
@@ -1214,32 +1471,44 @@ to
<context>
<name>QFileDialog</name>
<message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+515"/>
+ <location line="+444"/>
<source>All Files (*)</source>
<translation>所有檔案 (*)</translation>
</message>
<message>
+ <location line="+222"/>
<source>Directories</source>
<translation>目錄</translation>
</message>
<message>
+ <location line="-3"/>
+ <location line="+50"/>
+ <location line="+1471"/>
+ <location line="+75"/>
<source>&amp;Open</source>
<translation>開啟(&amp;O)</translation>
</message>
<message>
+ <location line="-1596"/>
+ <location line="+50"/>
<source>&amp;Save</source>
<translation>儲存(&amp;S)</translation>
</message>
<message>
+ <location line="-730"/>
<source>Open</source>
<translation>開啟</translation>
</message>
<message>
+ <location line="+1515"/>
<source>%1 already exists.
Do you want to replace it?</source>
<translation>%1 已存在
您要取代它嗎?</translation>
</message>
<message>
+ <location line="+20"/>
<source>%1
File not found.
Please verify the correct file name was given.</source>
@@ -1248,43 +1517,58 @@ Please verify the correct file name was given.</source>
請檢查檔名是否正確。</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qdirmodel.cpp" line="402"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+402"/>
<source>My Computer</source>
<translation>我的電腦</translation>
</message>
<message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1504"/>
<source>&amp;Rename</source>
<translation>重新命名(&amp;R)</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Delete</source>
<translation>刪除(&amp;D)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Show &amp;hidden files</source>
<translation>顯示隱藏檔(&amp;H)</translation>
</message>
<message>
+ <location filename="../src/gui/dialogs/qfiledialog.ui"/>
+ <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
<source>Back</source>
<translation>返回</translation>
</message>
<message>
+ <location/>
+ <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
<source>Parent Directory</source>
<translation>父目錄</translation>
</message>
<message>
+ <location/>
+ <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
<source>List View</source>
<translation>列表檢視</translation>
</message>
<message>
+ <location/>
+ <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
<source>Detail View</source>
<translation>詳細檢視</translation>
</message>
<message>
+ <location/>
+ <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
<source>Files of type:</source>
<translation>檔案型態:</translation>
</message>
<message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+6"/>
+ <location line="+648"/>
<source>Directory:</source>
<translation>目錄:</translation>
</message>
@@ -1297,6 +1581,8 @@ Please verify the correct file name was given</source>
請檢查檔名是否正確。</translation>
</message>
<message>
+ <location line="+794"/>
+ <location line="+862"/>
<source>%1
Directory not found.
Please verify the correct directory name was given.</source>
@@ -1305,84 +1591,105 @@ Please verify the correct directory name was given.</source>
請檢查目錄名稱是否正確。</translation>
</message>
<message>
+ <location line="-218"/>
<source>&apos;%1&apos; is write protected.
Do you want to delete it anyway?</source>
<translation>%1 有寫入保護。
您確定要刪除它嗎?</translation>
</message>
<message>
+ <location line="+5"/>
<source>Are sure you want to delete &apos;%1&apos;?</source>
<translation>您確定要刪除 %1 嗎?</translation>
</message>
<message>
+ <location line="+15"/>
<source>Could not delete directory.</source>
<translation>無法刪除目錄。</translation>
</message>
<message>
+ <location line="+407"/>
<source>Recent Places</source>
<translation>最近的地方</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="130"/>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
<source>All Files (*.*)</source>
<translation>所有檔案 (*.*)</translation>
</message>
<message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2550"/>
<source>Save As</source>
<translation>另存新檔</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="381"/>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+411"/>
<source>Drive</source>
<translation>磁碟</translation>
</message>
<message>
+ <location line="+3"/>
+ <location line="+1"/>
<source>File</source>
<translation>檔案</translation>
</message>
<message>
+ <location line="+29"/>
<source>Unknown</source>
<translation>未知</translation>
</message>
<message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-4"/>
<source>Find Directory</source>
<translation>尋找目錄</translation>
</message>
<message>
+ <location line="+29"/>
<source>Show </source>
<translation>顯示 </translation>
</message>
<message>
+ <location filename="../src/gui/dialogs/qfiledialog.ui"/>
+ <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
<source>Forward</source>
<translation>往前</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.cpp" line="1914"/>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1970"/>
<source>New Folder</source>
<translation>新資料夾</translation>
</message>
<message>
+ <location line="-1963"/>
<source>&amp;New Folder</source>
<translation>新增資料夾(&amp;N)</translation>
</message>
<message>
+ <location line="+656"/>
+ <location line="+38"/>
<source>&amp;Choose</source>
<translation>選擇(&amp;C)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qsidebar.cpp" line="388"/>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/>
<source>Remove</source>
<translation>移除</translation>
</message>
<message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-687"/>
+ <location line="+652"/>
<source>File &amp;name:</source>
<translation>檔名(&amp;N):</translation>
</message>
<message>
+ <location filename="../src/gui/dialogs/qfiledialog.ui"/>
+ <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
<source>Look in:</source>
<translation>尋找於:</translation>
</message>
<message>
+ <location/>
+ <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
<source>Create New Folder</source>
<translation>建立新資料夾</translation>
</message>
@@ -1390,62 +1697,74 @@ Do you want to delete it anyway?</source>
<context>
<name>QFileSystemModel</name>
<message>
- <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="791"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+828"/>
<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="+63"/>
<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="204"/>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/>
<source>My Computer</source>
<translation>我的電腦</translation>
</message>
<message>
+ <location line="+2"/>
<source>Computer</source>
<translation>電腦</translation>
</message>
<message>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="-163"/>
<source>%1 TB</source>
<translation>%1 TB</translation>
</message>
<message>
+ <location line="+2"/>
<source>%1 GB</source>
<translation>%1 GB</translation>
</message>
<message>
+ <location line="+2"/>
<source>%1 MB</source>
<translation>%1 MB</translation>
</message>
<message>
+ <location line="+2"/>
<source>%1 KB</source>
<translation>%1 KB</translation>
</message>
<message>
+ <location line="+1"/>
<source>%1 bytes</source>
<translation>%1 位元組</translation>
</message>
@@ -1453,166 +1772,216 @@ Do you want to delete it anyway?</source>
<context>
<name>QFontDatabase</name>
<message>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
+ <location line="+1176"/>
<source>Normal</source>
<translation>正常</translation>
</message>
<message>
+ <location line="-1173"/>
+ <location line="+12"/>
+ <location line="+1149"/>
<source>Bold</source>
<translation>粗體</translation>
</message>
<message>
+ <location line="-1158"/>
+ <location line="+1160"/>
<source>Demi Bold</source>
<translation>半粗體</translation>
</message>
<message>
+ <location line="-1157"/>
+ <location line="+18"/>
+ <location line="+1135"/>
<source>Black</source>
<translation>黑體</translation>
</message>
<message>
+ <location line="-1145"/>
<source>Demi</source>
<translation>半體</translation>
</message>
<message>
+ <location line="+6"/>
+ <location line="+1145"/>
<source>Light</source>
<translation>輕體</translation>
</message>
<message>
+ <location line="-1004"/>
+ <location line="+1007"/>
<source>Italic</source>
<translation>斜體</translation>
</message>
<message>
+ <location line="-1004"/>
+ <location line="+1006"/>
<source>Oblique</source>
<translation>傾斜體</translation>
</message>
<message>
+ <location line="+705"/>
<source>Any</source>
<translation>任何</translation>
</message>
<message>
+ <location line="+3"/>
<source>Latin</source>
<translation>拉丁</translation>
</message>
<message>
+ <location line="+3"/>
<source>Greek</source>
<translation>希臘</translation>
</message>
<message>
+ <location line="+3"/>
<source>Cyrillic</source>
<translation>斯拉夫</translation>
</message>
<message>
+ <location line="+3"/>
<source>Armenian</source>
<translation>亞美尼亞</translation>
</message>
<message>
+ <location line="+3"/>
<source>Hebrew</source>
<translation>希伯來</translation>
</message>
<message>
+ <location line="+3"/>
<source>Arabic</source>
<translation>阿拉伯</translation>
</message>
<message>
+ <location line="+3"/>
<source>Syriac</source>
<translation>敘利亞</translation>
</message>
<message>
+ <location line="+3"/>
<source>Thaana</source>
<translation>Thaana</translation>
</message>
<message>
+ <location line="+3"/>
<source>Devanagari</source>
<translation>Devanagari</translation>
</message>
<message>
+ <location line="+3"/>
<source>Bengali</source>
<translation>孟加拉</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>坦米爾</translation>
</message>
<message>
+ <location line="+3"/>
<source>Telugu</source>
<translation>Telugu</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>
@@ -1620,39 +1989,48 @@ Do you want to delete it anyway?</source>
<context>
<name>QFontDialog</name>
<message>
- <location filename="../src/gui/dialogs/qfontdialog.cpp" line="742"/>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/>
<source>&amp;Font</source>
<translation>字型(&amp;F)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Font st&amp;yle</source>
<translation>字型樣式(&amp;Y)</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Size</source>
<translation>大小(&amp;S)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Effects</source>
<translation>效果</translation>
</message>
<message>
+ <location line="+1"/>
<source>Stri&amp;keout</source>
<translation>刪除線(&amp;K)</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Underline</source>
<translation>底線(&amp;U)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Sample</source>
<translation>範例</translation>
</message>
<message>
+ <location line="+1"/>
<source>Wr&amp;iting System</source>
<translation>寫入系統(&amp;I)</translation>
</message>
<message>
+ <location line="-604"/>
+ <location line="+247"/>
<source>Select Font</source>
<translation>選擇字型</translation>
</message>
@@ -1660,116 +2038,145 @@ Do you want to delete it anyway?</source>
<context>
<name>QFtp</name>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="653"/>
+ <location filename="../src/network/access/qftp.cpp" line="+826"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+683"/>
<source>Not connected</source>
<translation>未連線</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="65"/>
+ <location line="+65"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+65"/>
<source>Host %1 not found</source>
<translation>找不到主機 %1</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="4"/>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+4"/>
<source>Connection refused to host %1</source>
<translation>連線到主機 %1 被拒</translation>
</message>
<message>
+ <location line="+4"/>
<source>Connection timed out to host %1</source>
<translation>連線到主機 %1 逾時</translation>
</message>
<message>
+ <location line="+104"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+102"/>
+ <location line="+1451"/>
<source>Connected to host %1</source>
<translation>已連接到主機 %1</translation>
</message>
<message>
+ <location line="+219"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="-1290"/>
<source>Connection refused for data connection</source>
<translation>資料連線被拒</translation>
</message>
<message>
+ <location line="+178"/>
+ <location line="+29"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+195"/>
+ <location line="+728"/>
<source>Unknown error</source>
<translation>未知的錯誤</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="77"/>
+ <location line="+889"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+77"/>
<source>Connecting to host failed:
%1</source>
<translation>連線到主機失敗:
%1</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="3"/>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
<source>Login failed:
%1</source>
<translation>登入失敗:
%1</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="3"/>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
<source>Listing directory failed:
%1</source>
<translation>列出目錄時失敗:
%1</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="3"/>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
<source>Changing directory failed:
%1</source>
<translation>變更目錄時失敗:
%1</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="3"/>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
<source>Downloading file failed:
%1</source>
<translation>下載檔案時失敗:
%1</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="3"/>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
<source>Uploading file failed:
%1</source>
<translation>上傳檔案時失敗:
%1</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="3"/>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
<source>Removing file failed:
%1</source>
<translation>移除檔案時失敗:
%1</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="3"/>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
<source>Creating directory failed:
%1</source>
<translation>建立目錄時失敗:
%1</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3ftp.cpp" line="3"/>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
<source>Removing directory failed:
%1</source>
<translation>移除目錄時失敗:
%1</translation>
</message>
<message>
+ <location line="+28"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+25"/>
+ <location line="+250"/>
<source>Connection closed</source>
<translation>連線已關閉</translation>
</message>
<message>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="-11"/>
<source>Host %1 found</source>
<translation>找到主機 %1</translation>
</message>
<message>
+ <location line="+4"/>
<source>Connection to %1 closed</source>
<translation>到 %1 的連線已關閉</translation>
</message>
<message>
+ <location line="+3"/>
<source>Host found</source>
<translation>找到主機</translation>
</message>
<message>
+ <location line="+2"/>
<source>Connected to host</source>
<translation>已連線到主機</translation>
</message>
@@ -1777,7 +2184,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QHostInfo</name>
<message>
- <location filename="../src/network/kernel/qhostinfo_p.h" line="153"/>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
<source>Unknown error</source>
<translation>未知的錯誤</translation>
</message>
@@ -1785,14 +2192,29 @@ Do you want to delete it anyway?</source>
<context>
<name>QHostInfoAgent</name>
<message>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
+ <location line="+9"/>
+ <location line="+64"/>
+ <location line="+31"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
+ <location line="+9"/>
+ <location line="+40"/>
+ <location line="+27"/>
<source>Host not found</source>
<translation>找不到主機</translation>
</message>
<message>
+ <location line="-44"/>
+ <location line="+39"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-34"/>
+ <location line="+29"/>
<source>Unknown address type</source>
<translation>未知的位址型態</translation>
</message>
<message>
+ <location line="+8"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-19"/>
+ <location line="+27"/>
<source>Unknown error</source>
<translation>未知的錯誤</translation>
</message>
@@ -1800,116 +2222,155 @@ Do you want to delete it anyway?</source>
<context>
<name>QHttp</name>
<message>
+ <location filename="../src/network/access/qhttp.cpp" line="+1574"/>
+ <location line="+820"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+1160"/>
+ <location line="+567"/>
<source>Unknown error</source>
<translation>未知的錯誤</translation>
</message>
<message>
+ <location line="-568"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
<source>Request aborted</source>
<translation>要求中止</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3http.cpp" line="381"/>
+ <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 filename="../src/qt3support/network/q3http.cpp" line="56"/>
+ <location line="+164"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+56"/>
<source>Wrong content length</source>
<translation>錯誤的內容長度</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3http.cpp" line="4"/>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+4"/>
<source>Server closed connection unexpectedly</source>
<translation>伺服器無預警關閉連線</translation>
</message>
<message>
+ <location line="+179"/>
+ <source>Unknown authentication method</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+183"/>
<source>Error writing response to device</source>
<translation>寫入回應到裝置時發生錯誤</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3http.cpp" line="38"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+876"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+38"/>
<source>Connection refused</source>
<translation>連線被拒</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3http.cpp" line="3"/>
+ <location filename="../src/network/access/qhttp.cpp" line="-304"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
<source>Host %1 not found</source>
<translation>找不到主機 %1</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3http.cpp" line="3"/>
+ <location line="+20"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+10"/>
+ <location line="+19"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
<source>HTTP request failed</source>
<translation>HTTP 要求失敗</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3http.cpp" line="69"/>
+ <location line="+73"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+69"/>
<source>Invalid HTTP response header</source>
<translation>不合法的 HTTP 回覆標頭</translation>
</message>
<message>
+ <location line="+125"/>
+ <location line="+48"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
+ <location line="+47"/>
<source>Invalid HTTP chunked body</source>
<translation>不合法的 HTTP 區塊主體</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3http.cpp" line="294"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+294"/>
<source>Host %1 found</source>
<translation>找到主機 %1</translation>
</message>
<message>
+ <location line="+3"/>
<source>Connected to host %1</source>
<translation>已連接到主機 %1</translation>
</message>
<message>
+ <location line="+3"/>
<source>Connection to %1 closed</source>
<translation>到 %1 的連線已關閉</translation>
</message>
<message>
+ <location line="+8"/>
<source>Host found</source>
<translation>找到主機</translation>
</message>
<message>
+ <location line="+3"/>
<source>Connected to host</source>
<translation>已連線到主機</translation>
</message>
<message>
- <location filename="../src/qt3support/network/q3http.cpp" line="3"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-22"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
<source>Connection closed</source>
<translation>連線已關閉</translation>
</message>
<message>
+ <location filename="../src/network/access/qhttp.cpp" line="-135"/>
<source>Proxy authentication required</source>
<translation>代理伺服器需要認證</translation>
</message>
<message>
+ <location line="+4"/>
<source>Authentication required</source>
<translation>需要認證</translation>
</message>
<message>
+ <location line="-138"/>
<source>Connection refused (or timed out)</source>
<translation>連線被拒(或連線逾時)</translation>
</message>
<message>
- <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="6"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+6"/>
<source>Proxy requires authentication</source>
<translation>代理伺服器需要認證</translation>
</message>
<message>
+ <location line="+3"/>
<source>Host requires authentication</source>
<translation>主機需要認證</translation>
</message>
<message>
+ <location line="+3"/>
<source>Data corrupted</source>
<translation>資料已損毀</translation>
</message>
<message>
+ <location line="+3"/>
<source>Unknown protocol specified</source>
<translation>指定了未知的協定</translation>
</message>
<message>
+ <location line="+3"/>
<source>SSL handshake failed</source>
<translation>SSL 溝通失敗</translation>
</message>
<message>
+ <location filename="../src/network/access/qhttp.cpp" line="-2263"/>
<source>HTTPS connection requested but SSL support not compiled in</source>
<translation>HTTPS 連線需要的 SSL 支援並未編譯進來</translation>
</message>
@@ -1917,38 +2378,47 @@ Do you want to delete it anyway?</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>
@@ -1956,19 +2426,22 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseDriver</name>
<message>
- <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="1378"/>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1428"/>
<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>
@@ -1976,70 +2449,89 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseResult</name>
<message>
+ <location line="-1097"/>
<source>Unable to create BLOB</source>
<translation>無法建立 BLOB</translation>
</message>
<message>
+ <location line="+6"/>
<source>Unable to write BLOB</source>
<translation>無法寫入 BLOB</translation>
</message>
<message>
+ <location line="+14"/>
<source>Unable to open BLOB</source>
<translation>無法開啟 BLOB</translation>
</message>
<message>
+ <location line="+16"/>
<source>Unable to read BLOB</source>
<translation>無法讀取 BLOB</translation>
</message>
<message>
+ <location line="+125"/>
+ <location line="+189"/>
<source>Could not find array</source>
<translation>找不到陣列</translation>
</message>
<message>
+ <location line="-157"/>
<source>Could not get array data</source>
<translation>無法取得陣列資料</translation>
</message>
<message>
+ <location line="+212"/>
<source>Could not get query info</source>
<translation>無法取得查詢資訊</translation>
</message>
<message>
+ <location line="+20"/>
<source>Could not start transaction</source>
<translation>無法開始事務</translation>
</message>
<message>
+ <location line="+19"/>
<source>Unable to commit transaction</source>
<translation>無法提交事務</translation>
</message>
<message>
+ <location line="+33"/>
<source>Could not allocate statement</source>
<translation>無法配置敘述</translation>
</message>
<message>
+ <location line="+5"/>
<source>Could not prepare statement</source>
<translation>無法準備敘述</translation>
</message>
<message>
+ <location line="+5"/>
+ <location line="+7"/>
<source>Could not describe input statement</source>
<translation>無法描述輸入敘述</translation>
</message>
<message>
+ <location line="+10"/>
<source>Could not describe statement</source>
<translation>無法描述敘述</translation>
</message>
<message>
+ <location line="+115"/>
<source>Unable to close statement</source>
<translation>無法關閉敘述</translation>
</message>
<message>
+ <location line="+8"/>
<source>Unable to execute query</source>
<translation>無法執行查詢</translation>
</message>
<message>
+ <location line="+46"/>
<source>Could not fetch next item</source>
<translation>無法抓取下一個項目</translation>
</message>
<message>
+ <location line="+160"/>
<source>Could not get statement info</source>
<translation>無法取得敘述資訊</translation>
</message>
@@ -2047,24 +2539,27 @@ Do you want to delete it anyway?</source>
<context>
<name>QIODevice</name>
<message>
- <location filename="../src/corelib/global/qglobal.cpp" line="1830"/>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/>
<source>Permission denied</source>
<translation>權限不足</translation>
</message>
<message>
+ <location line="+3"/>
<source>Too many open files</source>
<translation>開啟過多檔案</translation>
</message>
<message>
+ <location line="+3"/>
<source>No such file or directory</source>
<translation>找不到該檔案或目錄</translation>
</message>
<message>
+ <location line="+3"/>
<source>No space left on device</source>
<translation>裝置上已無空間</translation>
</message>
<message>
- <location filename="../src/corelib/io/qiodevice.cpp" line="1506"/>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/>
<source>Unknown error</source>
<translation>未知的錯誤</translation>
</message>
@@ -2072,19 +2567,22 @@ Do you want to delete it anyway?</source>
<context>
<name>QInputContext</name>
<message>
- <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="212"/>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/>
<source>XIM</source>
<translation>XIM</translation>
</message>
<message>
+ <location line="+23"/>
<source>XIM input method</source>
<translation>XIM 輸入法</translation>
</message>
<message>
+ <location line="+4"/>
<source>Windows input method</source>
<translation>Windows 輸入法</translation>
</message>
<message>
+ <location line="+4"/>
<source>Mac OS X input method</source>
<translation>Mac OS X 輸入法</translation>
</message>
@@ -2092,7 +2590,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QInputDialog</name>
<message>
- <location filename="../src/gui/dialogs/qinputdialog.cpp" line="193"/>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
<source>Enter a value:</source>
<translation>請輸入值:</translation>
</message>
@@ -2112,55 +2610,66 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">QLibrary::resolve_sys: 符號 &quot;%1&quot; 未定義於 %2 (%3)</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary.cpp" line="348"/>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
<source>Could not mmap &apos;%1&apos;: %2</source>
<translation>無法 mmap &apos;%1&apos;:%2</translation>
</message>
<message>
+ <location line="+22"/>
<source>Plugin verification data mismatch in &apos;%1&apos;</source>
<translation>在 %1 中的外掛程式確認資料不符合</translation>
</message>
<message>
+ <location line="+6"/>
<source>Could not unmap &apos;%1&apos;: %2</source>
<translation>無法 unmap &apos;%1&apos;:%2</translation>
</message>
<message>
+ <location line="+302"/>
<source>The plugin &apos;%1&apos; uses incompatible Qt library. (%2.%3.%4) [%5]</source>
<translation>外掛程式 %1 使用不相容的 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>外掛程式 %1 使用不相容的 Qt 函式庫。預期建構鑰 %2,卻得到 %3</translation>
</message>
<message>
+ <location line="+340"/>
<source>Unknown error</source>
<translation>未知的錯誤</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qpluginloader.cpp" line="250"/>
+ <location line="-377"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
<source>The shared library was not found.</source>
<translation>找不到分享函式庫</translation>
</message>
<message>
+ <location line="+2"/>
<source>The file &apos;%1&apos; is not a valid Qt plugin.</source>
<translation>檔案 %1 不是合法的 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>外掛程式 %1 使用不相容的 Qt 函式庫。(不能將除錯與釋出版的函式庫混在一起。)</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="69"/>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
<source>Cannot load library %1: %2</source>
<translation>無法載入函式庫 %1:%2</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="26"/>
+ <location line="+16"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+26"/>
<source>Cannot unload library %1: %2</source>
<translation>無法卸載函式庫 %1:%2</translation>
</message>
<message>
- <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="15"/>
+ <location line="+31"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+15"/>
<source>Cannot resolve symbol &quot;%1&quot; in %2: %3</source>
<translation>無法反解 %2 內的符號 %1:%3</translation>
</message>
@@ -2168,31 +2677,37 @@ Do you want to delete it anyway?</source>
<context>
<name>QLineEdit</name>
<message>
- <location filename="../src/gui/widgets/qlineedit.cpp" line="2649"/>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+2680"/>
<source>&amp;Undo</source>
<translation>復原(&amp;U)</translation>
</message>
<message>
+ <location line="+4"/>
<source>&amp;Redo</source>
<translation>重做(&amp;R)</translation>
</message>
<message>
+ <location line="+7"/>
<source>Cu&amp;t</source>
<translation>剪下(&amp;T)</translation>
</message>
<message>
+ <location line="+4"/>
<source>&amp;Copy</source>
<translation>複製(&amp;C)</translation>
</message>
<message>
+ <location line="+4"/>
<source>&amp;Paste</source>
<translation>貼上(&amp;P)</translation>
</message>
<message>
+ <location line="+5"/>
<source>Delete</source>
<translation>刪除</translation>
</message>
<message>
+ <location line="+6"/>
<source>Select All</source>
<translation>全部選擇</translation>
</message>
@@ -2200,20 +2715,24 @@ Do you want to delete it anyway?</source>
<context>
<name>QLocalServer</name>
<message>
- <location filename="../src/network/socket/qlocalserver_unix.cpp" line="201"/>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/>
<source>%1: Name error</source>
<translation>%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 filename="../src/network/socket/qlocalserver_win.cpp" line="127"/>
+ <location line="+5"/>
+ <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/>
<source>%1: Unknown error %2</source>
<translation>%1:未知的錯誤 %2</translation>
</message>
@@ -2221,54 +2740,70 @@ Do you want to delete it anyway?</source>
<context>
<name>QLocalSocket</name>
<message>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="104"/>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/>
<source>%1: Connection refused</source>
<translation>%1:連線被拒</translation>
</message>
<message>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="3"/>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
<source>%1: Remote closed</source>
<translation>%1:遠端已關閉</translation>
</message>
<message>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/>
+ <location line="+43"/>
<source>%1: Invalid name</source>
<translation>%1:不合法的名稱</translation>
</message>
<message>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="3"/>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
<source>%1: Socket access error</source>
<translation>%1:Socket 位址錯誤</translation>
</message>
<message>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="3"/>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
<source>%1: Socket resource error</source>
<translation>%1:Socket 資源錯誤</translation>
</message>
<message>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="3"/>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
<source>%1: Socket operation timed out</source>
<translation>%1:Socket 操作逾時</translation>
</message>
<message>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="3"/>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
<source>%1: Datagram too large</source>
<translation>%1:資料包過大</translation>
</message>
<message>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="-48"/>
<source>%1: Connection error</source>
<translation>%1:連線錯誤</translation>
</message>
<message>
- <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="3"/>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
<source>%1: The socket operation is not supported</source>
<translation>%1:socket 操作未支援</translation>
</message>
<message>
+ <location line="+4"/>
<source>%1: Unknown error</source>
<translation>%1:未知的錯誤</translation>
</message>
<message>
- <location filename="../src/network/socket/qlocalsocket_win.cpp" line="10"/>
+ <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>
@@ -2276,23 +2811,27 @@ Do you want to delete it anyway?</source>
<context>
<name>QMYSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="1200"/>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1231"/>
<source>Unable to open database &apos;</source>
<translation>無法開啟資料庫</translation>
</message>
<message>
+ <location line="+7"/>
<source>Unable to connect</source>
<translation>無法連線</translation>
</message>
<message>
+ <location line="+127"/>
<source>Unable to begin transaction</source>
<translation>無法開始事務</translation>
</message>
<message>
+ <location line="+17"/>
<source>Unable to commit transaction</source>
<translation>無法提交事務</translation>
</message>
<message>
+ <location line="+17"/>
<source>Unable to rollback transaction</source>
<translation>無法反轉事務</translation>
</message>
@@ -2300,46 +2839,59 @@ Do you want to delete it anyway?</source>
<context>
<name>QMYSQLResult</name>
<message>
+ <location line="-922"/>
<source>Unable to fetch data</source>
<translation>無法抓取資料</translation>
</message>
<message>
+ <location line="+176"/>
<source>Unable to execute query</source>
<translation>無法執行查詢</translation>
</message>
<message>
+ <location line="+6"/>
<source>Unable to store result</source>
<translation>無法儲存結果</translation>
</message>
<message>
+ <location line="+190"/>
+ <location line="+8"/>
<source>Unable to prepare statement</source>
<translation>無法準備敘述</translation>
</message>
<message>
+ <location line="+34"/>
<source>Unable to reset statement</source>
<translation>無法重置敘述</translation>
</message>
<message>
+ <location line="+87"/>
<source>Unable to bind value</source>
<translation>無法結合數值</translation>
</message>
<message>
+ <location line="+11"/>
<source>Unable to execute statement</source>
<translation>無法執行敘述</translation>
</message>
<message>
+ <location line="+14"/>
+ <location line="+21"/>
<source>Unable to bind outvalues</source>
<translation>無法結合輸出值</translation>
</message>
<message>
+ <location line="-12"/>
<source>Unable to store statement results</source>
<translation>無法儲存敘述結果</translation>
</message>
<message>
+ <location line="-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>
@@ -2347,7 +2899,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMdiArea</name>
<message>
- <location filename="../src/gui/widgets/qmdiarea.cpp" line="260"/>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
<source>(Untitled)</source>
<translation>(未命名)</translation>
</message>
@@ -2355,75 +2907,92 @@ Do you want to delete it anyway?</source>
<context>
<name>QMdiSubWindow</name>
<message>
- <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="250"/>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
<source>%1 - [%2]</source>
<translation>%1 - [%2]</translation>
</message>
<message>
+ <location line="+72"/>
<source>Close</source>
<translation>關閉</translation>
</message>
<message>
+ <location line="-18"/>
<source>Minimize</source>
<translation>最小化</translation>
</message>
<message>
+ <location line="+13"/>
<source>Restore Down</source>
<translation>向下恢復</translation>
</message>
<message>
+ <location line="+707"/>
<source>&amp;Restore</source>
<translation>回復(&amp;R)</translation>
</message>
<message>
+ <location line="+3"/>
<source>&amp;Move</source>
<translation>移動(&amp;M)</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Size</source>
<translation>大小(&amp;S)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Mi&amp;nimize</source>
<translation>最小化(&amp;N)</translation>
</message>
<message>
+ <location line="+2"/>
<source>Ma&amp;ximize</source>
<translation>最大化(&amp;X)</translation>
</message>
<message>
+ <location line="+2"/>
<source>Stay on &amp;Top</source>
<translation>留在頂端(&amp;T)</translation>
</message>
<message>
+ <location line="+3"/>
<source>&amp;Close</source>
<translation>關閉(&amp;C)</translation>
</message>
<message>
+ <location line="-787"/>
<source>- [%1]</source>
<translation>- [%1]</translation>
</message>
<message>
+ <location line="+58"/>
<source>Maximize</source>
<translation>最大化</translation>
</message>
<message>
+ <location line="+3"/>
<source>Unshade</source>
<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>
@@ -2431,14 +3000,21 @@ Do you want to delete it anyway?</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>
@@ -2497,40 +3073,53 @@ Do you want to delete it anyway?</source>
<context>
<name>QMessageBox</name>
<message>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1111"/>
<source>Help</source>
<translation>說明</translation>
</message>
<message>
+ <location line="-853"/>
+ <location line="+852"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="-52"/>
+ <location line="+8"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
+ <location line="+509"/>
<source>About Qt</source>
<translation>關於 Qt</translation>
</message>
<message>
<source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
- <translation>&lt;p&gt; 這個程式使用 Qt 版本 %1&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt; 這個程式使用 Qt 版本 %1&lt;/p&gt;</translation>
</message>
<message>
<source>&lt;h3&gt;About Qt&lt;/h3&gt;%1&lt;p&gt;Qt is a C++ toolkit for cross-platform application development.&lt;/p&gt;&lt;p&gt;Qt provides single-source portability across MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt is a Trolltech product. See &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
<translation type="obsolete">&lt;h3&gt;關於 Qt&lt;/h3&gt;%1&lt;p&gt;Qt 為一個跨平台的 C++ 開發工具。&lt;/p&gt;&lt;p&gt;Qt 提供各平台相容機制,只要寫一份程式碼,就可以在 MS&amp;nbsp;Windows、Mac&amp;nbsp;OS&amp;nbsp;X、Linux 與各主要的商業 Unix 平台上編譯。Qt 也可以用 Qtopia Core 用於嵌入式系統。&lt;/p&gt;&lt;p&gt;Qt 為 Trolltech 的產品。詳情請參考 &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt;。&lt;/p&gt;</translation>
</message>
<message>
+ <location line="-1605"/>
<source>Show Details...</source>
<translation>顯示詳情...</translation>
</message>
<message>
+ <location line="+1"/>
<source>Hide Details...</source>
<translation>隱藏詳情...</translation>
</message>
<message>
+ <location line="+1570"/>
+ <source>&lt;h3&gt;About Qt&lt;/h3&gt;&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;&lt;p&gt;Qt is a C++ toolkit for cross-platform application development.&lt;/p&gt;&lt;p&gt;Qt provides single-source portability across MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.&lt;/p&gt;&lt;p&gt;Qt is available under three different licensing options designed to accommodate the needs of our various users.&lt;/p&gt;Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.&lt;/p&gt;&lt;p&gt;Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.&lt;/p&gt;&lt;p&gt;Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.&lt;/p&gt;&lt;p&gt;Please see &lt;a href=&quot;http://www.qtsoftware.com/products/licensing&quot;&gt;www.qtsoftware.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://www.qtsoftware.com/qt/&quot;&gt;www.qtsoftware.com/qt&lt;/a&gt; for more information.&lt;/p&gt;</source>
+ <translation type="unfinished"></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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
- <translation>&lt;h3&gt;關於 Qt&lt;/h3&gt;%1&lt;p&gt;Qt 為一個跨平台的 C++ 開發工具。&lt;/p&gt;&lt;p&gt;Qt 提供各平台相容機制,只要寫一份程式碼,就可以在 MS&amp;nbsp;Windows、Mac&amp;nbsp;OS&amp;nbsp;X、Linux 與各主要的商業 Unix 平台上編譯。Qt 也有用於嵌入式 Linux 與 Windows CE 的版本。&lt;/p&gt;&lt;p&gt;Qt 為 Nokia 的產品。詳情請參考 &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt;。&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;h3&gt;關於 Qt&lt;/h3&gt;%1&lt;p&gt;Qt 為一個跨平台的 C++ 開發工具。&lt;/p&gt;&lt;p&gt;Qt 提供各平台相容機制,只要寫一份程式碼,就可以在 MS&amp;nbsp;Windows、Mac&amp;nbsp;OS&amp;nbsp;X、Linux 與各主要的商業 Unix 平台上編譯。Qt 也有用於嵌入式 Linux 與 Windows CE 的版本。&lt;/p&gt;&lt;p&gt;Qt 為 Nokia 的產品。詳情請參考 &lt;a href=&quot;http://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt;。&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://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
- <translation>&lt;p&gt;這個程式使用了 Qt 開放源碼版本 %1。&lt;/p&gt;&lt;p&gt;Qt 開放源碼版本是專門為了開發開放源碼應用程式使用的版本。若是您要開發專利私有(封閉)軟體,您需要 Qt 的商業授權。&lt;/p&gt;&lt;p&gt;Qt 的授權概要請參考 &lt;a href=&quot;http://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt;。&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;這個程式使用了 Qt 開放源碼版本 %1。&lt;/p&gt;&lt;p&gt;Qt 開放源碼版本是專門為了開發開放源碼應用程式使用的版本。若是您要開發專利私有(封閉)軟體,您需要 Qt 的商業授權。&lt;/p&gt;&lt;p&gt;Qt 的授權概要請參考 &lt;a href=&quot;http://qtsoftware.com/company/model/&quot;&gt;qtsoftware.com/company/model/&lt;/a&gt;。&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://qtsoftware.com/qt/&quot;&gt;qtsoftware.com/qt/&lt;/a&gt; for more information.&lt;/p&gt;</source>
@@ -2540,7 +3129,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QMultiInputContext</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="58"/>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
<source>Select IM</source>
<translation>選擇輸入法</translation>
</message>
@@ -2548,11 +3137,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QMultiInputContextPlugin</name>
<message>
- <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="65"/>
+ <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>
@@ -2560,107 +3150,132 @@ Do you want to delete it anyway?</source>
<context>
<name>QNativeSocketEngine</name>
<message>
- <location filename="../src/network/socket/qnativesocketengine.cpp" line="176"/>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/>
<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>未支援的 socket 操作</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>不合法的 socket 描述子</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>另一個 socket 已經在監聽同一個連接埠</translation>
</message>
<message>
+ <location line="-66"/>
<source>Unable to initialize non-blocking socket</source>
<translation>無法初始化非阻擋性 socket</translation>
</message>
<message>
+ <location line="+3"/>
<source>Unable to initialize broadcast socket</source>
<translation>無法初始化廣播 socket</translation>
</message>
<message>
+ <location line="+3"/>
<source>Attempt to use IPv6 socket on a platform with no IPv6 support</source>
<translation>試圖在沒有 IPv6 支援的平台上使用 IPv6 socket</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>對非 socket 操作</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>
@@ -2668,7 +3283,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessCacheBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="35"/>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
<source>Error opening %1</source>
<translation>開啟 %1 發生錯誤</translation>
</message>
@@ -2676,23 +3291,27 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessFileBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="69"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/>
<source>Request for opening non-local file %1</source>
<translation>要求開啟非本地端檔案 %1</translation>
</message>
<message>
+ <location line="+42"/>
<source>Error opening %1: %2</source>
<translation>開啟 %1 發生錯誤:%2</translation>
</message>
<message>
+ <location line="+56"/>
<source>Write error writing to %1: %2</source>
<translation>寫入 %1 時發生錯誤:%2</translation>
</message>
<message>
+ <location line="+33"/>
<source>Cannot open %1: Path is a directory</source>
<translation>無法開啟 %1:此路徑是一個目錄</translation>
</message>
<message>
+ <location line="+21"/>
<source>Read error reading from %1: %2</source>
<translation>從 %1 讀取錯誤:%2</translation>
</message>
@@ -2700,23 +3319,27 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessFtpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="135"/>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/>
<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="+130"/>
<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>
@@ -2724,7 +3347,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkAccessHttpBackend</name>
<message>
- <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="565"/>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/>
<source>No suitable proxy found</source>
<translation>找不到合適的代理伺服器</translation>
</message>
@@ -2732,11 +3355,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkReply</name>
<message>
+ <location line="+128"/>
<source>Error downloading %1 - server replied: %2</source>
<translation>下載 %1 時發生錯誤─伺服器回應:%2</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="37"/>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/>
<source>Protocol &quot;%1&quot; is unknown</source>
<translation>未知的協定 %1</translation>
</message>
@@ -2744,6 +3368,8 @@ Do you want to delete it anyway?</source>
<context>
<name>QNetworkReplyImpl</name>
<message>
+ <location line="+432"/>
+ <location line="+22"/>
<source>Operation canceled</source>
<translation>取消操作</translation>
</message>
@@ -2751,24 +3377,28 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIDriver</name>
<message>
- <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="2027"/>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2069"/>
<source>Unable to logon</source>
<translation>無法登入</translation>
</message>
<message>
+ <location line="-144"/>
<source>Unable to initialize</source>
<comment>QOCIDriver</comment>
<translation>無法初始化</translation>
</message>
<message>
+ <location line="+215"/>
<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>
@@ -2776,34 +3406,43 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIResult</name>
<message>
+ <location line="-963"/>
+ <location line="+161"/>
+ <location line="+15"/>
<source>Unable to bind column for batch execute</source>
<translation>無法結合欄位以做批次執行</translation>
</message>
<message>
+ <location line="+15"/>
<source>Unable to execute batch statement</source>
<translation>無法執行批次敘述</translation>
</message>
<message>
+ <location line="+302"/>
<source>Unable to goto next</source>
<translation>無法跳到下一個</translation>
</message>
<message>
+ <location line="+59"/>
<source>Unable to alloc statement</source>
<translation>無法配置敘述</translation>
</message>
<message>
+ <location line="+15"/>
<source>Unable to prepare statement</source>
<translation>無法準備敘述</translation>
</message>
<message>
+ <location line="+36"/>
<source>Unable to bind value</source>
<translation>無法結合數值</translation>
</message>
<message>
<source>Unable to execute select statement</source>
- <translation>無法執行選取的敘述</translation>
+ <translation type="obsolete">無法執行選取的敘述</translation>
</message>
<message>
+ <location line="+19"/>
<source>Unable to execute statement</source>
<translation>無法執行敘述</translation>
</message>
@@ -2811,27 +3450,32 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCDriver</name>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="1657"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1785"/>
<source>Unable to connect</source>
<translation>無法連接</translation>
</message>
<message>
+ <location line="+6"/>
<source>Unable to connect - Driver doesn&apos;t support all needed functionality</source>
<translation>無法連接─驅動程式無法支援所有需要的功能</translation>
</message>
<message>
+ <location line="+242"/>
<source>Unable to 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>
@@ -2839,38 +3483,51 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCResult</name>
<message>
+ <location line="-1218"/>
+ <location line="+349"/>
<source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
<translation>QODBCResult::reset: 無法設定 SQL_CURSOR_STATIC 做為敘述屬性。請檢查您的 ODBC 驅動程式的設定</translation>
</message>
<message>
+ <location line="-332"/>
+ <location line="+626"/>
<source>Unable to execute statement</source>
<translation>無法執行敘述</translation>
</message>
<message>
+ <location line="-555"/>
<source>Unable to fetch next</source>
<translation>無法抓取下一筆</translation>
</message>
<message>
+ <location line="+279"/>
<source>Unable to prepare statement</source>
<translation>無法準備敘述</translation>
</message>
<message>
+ <location line="+268"/>
<source>Unable to bind variable</source>
<translation>無法結合變數</translation>
</message>
<message>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-475"/>
+ <location line="+578"/>
<source>Unable to fetch last</source>
<translation>無法抓取最後一筆</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>
@@ -2878,41 +3535,48 @@ Do you want to delete it anyway?</source>
<context>
<name>QObject</name>
<message>
- <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="134"/>
+ <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
<source>Home</source>
<translation>首頁</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="44"/>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
<source>Operation not supported on %1</source>
<translation>在 %1 上不支援此操作</translation>
</message>
<message>
+ <location line="+53"/>
<source>Invalid URI: %1</source>
<translation>不合法的網址:%1</translation>
</message>
<message>
- <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="145"/>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
<source>Write error writing to %1: %2</source>
<translation>寫入 %1 時發生錯誤:%2</translation>
</message>
<message>
+ <location line="+57"/>
<source>Read error reading from %1: %2</source>
<translation>從 %1 讀取錯誤:%2</translation>
</message>
<message>
+ <location line="+31"/>
<source>Socket error on %1: %2</source>
<translation>%1 上發生 socket 錯誤:%2</translation>
</message>
<message>
+ <location line="+15"/>
<source>Remote host closed the connection prematurely on %1</source>
<translation>於 %1 上遠端主機關閉了不正常的連線</translation>
</message>
<message>
+ <location line="+53"/>
<source>Protocol error: packet of size 0 received</source>
<translation>協定錯誤:接收到大小為 0 的封包</translation>
</message>
<message>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
+ <location line="+57"/>
<source>No host name given</source>
<translation>未指定主機</translation>
</message>
@@ -2920,11 +3584,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QPPDOptionsModel</name>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="1165"/>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/>
<source>Name</source>
<translation>名稱</translation>
</message>
<message>
+ <location line="+2"/>
<source>Value</source>
<translation>值</translation>
</message>
@@ -2932,27 +3597,32 @@ Do you want to delete it anyway?</source>
<context>
<name>QPSQLDriver</name>
<message>
- <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="732"/>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/>
<source>Unable to connect</source>
<translation>無法連線</translation>
</message>
<message>
+ <location line="+49"/>
<source>Could not begin transaction</source>
<translation>無法開始事務</translation>
</message>
<message>
+ <location line="+17"/>
<source>Could not commit transaction</source>
<translation>無法提交事務</translation>
</message>
<message>
+ <location line="+16"/>
<source>Could not rollback transaction</source>
<translation>無法反轉事務</translation>
</message>
<message>
+ <location line="+358"/>
<source>Unable to subscribe</source>
<translation>無法訂閱</translation>
</message>
<message>
+ <location line="+32"/>
<source>Unable to unsubscribe</source>
<translation>無法取消訂閱</translation>
</message>
@@ -2960,10 +3630,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QPSQLResult</name>
<message>
+ <location line="-1058"/>
<source>Unable to create query</source>
<translation>無法建立查詢</translation>
</message>
<message>
+ <location line="+374"/>
<source>Unable to prepare statement</source>
<translation>無法準備敘述</translation>
</message>
@@ -2971,83 +3643,102 @@ Do you want to delete it anyway?</source>
<context>
<name>QPageSetupWidget</name>
<message>
- <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="274"/>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
<source>Centimeters (cm)</source>
<translation>公分</translation>
</message>
<message>
+ <location line="+0"/>
<source>Millimeters (mm)</source>
<translation>公厘</translation>
</message>
<message>
+ <location line="+0"/>
<source>Inches (in)</source>
<translation>英吋</translation>
</message>
<message>
+ <location line="+0"/>
<source>Points (pt)</source>
<translation>點</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>
@@ -3055,11 +3746,12 @@ Do you want to delete it anyway?</source>
<context>
<name>QPluginLoader</name>
<message>
- <location filename="../src/corelib/plugin/qpluginloader.cpp" line="24"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+24"/>
<source>Unknown error</source>
<translation>未知的錯誤</translation>
</message>
<message>
+ <location line="-68"/>
<source>The plugin was not loaded.</source>
<translation>外掛程式未載入。</translation>
</message>
@@ -3067,15 +3759,19 @@ Do you want to delete it anyway?</source>
<context>
<name>QPrintDialog</name>
<message>
- <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="68"/>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/>
<source>locally connected</source>
<translation>本地連接</translation>
</message>
<message>
+ <location line="+23"/>
+ <location line="+225"/>
<source>Aliases: %1</source>
<translation>別名:%1</translation>
</message>
<message>
+ <location line="+223"/>
+ <location line="+199"/>
<source>unknown</source>
<translation>未知</translation>
</message>
@@ -3088,128 +3784,157 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">橫向</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="299"/>
+ <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 英吋)</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 英吋)</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 英吋, 191 x 254 mm)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Folio (210 x 330 mm)</source>
<translation>對開 (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 英吋, 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 英吋, 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 常用 10 號信封 (105x241 mm)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="238"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
<source>OK</source>
<translation>確定</translation>
</message>
@@ -3230,6 +3955,9 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">紙張來源:</translation>
</message>
<message>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
+ <location line="+13"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
<source>Print</source>
<translation>列印</translation>
</message>
@@ -3242,6 +3970,7 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">印表機</translation>
</message>
<message>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-357"/>
<source>Print To File ...</source>
<translation>列印到檔案...</translation>
</message>
@@ -3274,11 +4003,12 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">列印到檔案</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="19"/>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+19"/>
<source>Print range</source>
<translation>列印範圍</translation>
</message>
<message>
+ <location line="-2"/>
<source>Print all</source>
<translation>全部列印</translation>
</message>
@@ -3323,190 +4053,234 @@ Do you want to delete it anyway?</source>
<translation type="obsolete">雙面列印</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="80"/>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+80"/>
<source>File %1 is not writable.
Please choose a different file name.</source>
<translation>檔案 %1 無法寫入。
請選擇其它檔名。</translation>
</message>
<message>
+ <location line="+4"/>
<source>%1 already exists.
Do you want to overwrite it?</source>
<translation>%1 已存在。
您要覆寫它嗎?</translation>
</message>
<message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-227"/>
<source>File exists</source>
<translation>檔案已存在</translation>
</message>
<message>
+ <location line="+1"/>
<source>&lt;qt&gt;Do you want to overwrite it?&lt;/qt&gt;</source>
<translation>&lt;qt&gt;您要覆寫它嗎?&lt;/qt&gt;</translation>
</message>
<message>
+ <location line="+227"/>
<source>Print selection</source>
<translation>列印選擇區</translation>
</message>
<message>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-8"/>
<source>%1 is a directory.
Please choose a different file name.</source>
<translation>%1 是一個目錄。
請選擇其他檔名。</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="-522"/>
+ <location line="+68"/>
<source>&amp;Options &gt;&gt;</source>
<translation>操作 (&amp;O) &gt;&gt;</translation>
</message>
<message>
+ <location line="-63"/>
<source>&amp;Print</source>
<translation>列印(&amp;P)</translation>
</message>
<message>
+ <location line="+67"/>
<source>&amp;Options &lt;&lt;</source>
<translation>操作 (&amp;O) &lt;&lt;</translation>
</message>
<message>
+ <location line="+253"/>
<source>Print to File (PDF)</source>
<translation>列印到檔案(PDF)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Print to File (Postscript)</source>
<translation>列印到檔案(Postscript)</translation>
</message>
<message>
+ <location line="+45"/>
<source>Local file</source>
<translation>本地端檔案</translation>
</message>
<message>
+ <location line="+1"/>
<source>Write %1 file</source>
<translation>寫入 %1 檔案</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="1"/>
+ <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>起始數值不能大於結束數值</translation>
</message>
@@ -3514,87 +4288,108 @@ Please choose a different file name.</source>
<context>
<name>QPrintPreviewDialog</name>
<message>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
+ <location line="+12"/>
<source>Page Setup</source>
<translation>頁面設定</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="222"/>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
<message>
+ <location line="+79"/>
<source>Print Preview</source>
<translation>列印預覽</translation>
</message>
<message>
+ <location line="+29"/>
<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="+1"/>
<source>Close</source>
<translation>關閉</translation>
</message>
<message>
+ <location line="+151"/>
<source>Export to PDF</source>
<translation>匯出到 PDF 檔</translation>
</message>
<message>
+ <location line="+3"/>
<source>Export to PostScript</source>
<translation>匯出到 PostScript 檔</translation>
</message>
@@ -3617,14 +4412,17 @@ 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>
@@ -3632,78 +4430,97 @@ 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>
</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>
@@ -3711,38 +4528,47 @@ 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;N):</translation>
</message>
<message>
+ <location/>
<source>P&amp;roperties</source>
<translation>屬性(&amp;R)</translation>
</message>
<message>
+ <location/>
<source>Location:</source>
<translation>位置:</translation>
</message>
<message>
+ <location/>
<source>Preview</source>
<translation>預覽</translation>
</message>
<message>
+ <location/>
<source>Type:</source>
<translation>型態:</translation>
</message>
<message>
+ <location/>
<source>Output &amp;file:</source>
<translation>輸出檔案(&amp;F):</translation>
</message>
<message>
+ <location/>
<source>...</source>
<translation>...</translation>
</message>
@@ -3750,37 +4576,62 @@ Please choose a different file name.</source>
<context>
<name>QProcess</name>
<message>
- <location filename="../src/corelib/io/qprocess_win.cpp" line="117"/>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
<source>Could not open input redirection for reading</source>
<translation>無法開啟輸入導向以讀取</translation>
</message>
<message>
- <location filename="../src/corelib/io/qprocess_win.cpp" line="36"/>
+ <location line="+12"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+36"/>
<source>Could not open output redirection for writing</source>
<translation>無法開啟輸出導向以寫入</translation>
</message>
<message>
+ <location line="+235"/>
<source>Resource error (fork failure): %1</source>
<translation>資源錯誤(fork 失敗):%1</translation>
</message>
<message>
+ <location line="+259"/>
+ <location line="+53"/>
+ <location line="+74"/>
+ <location line="+67"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+422"/>
+ <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="+533"/>
+ <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 filename="../src/corelib/io/qprocess_win.cpp" line="140"/>
+ <location line="+47"/>
+ <location line="+779"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+140"/>
<source>Error writing to process</source>
<translation>寫入行程時發生錯誤</translation>
</message>
<message>
+ <location line="-709"/>
<source>Process crashed</source>
<translation>行程已崩潰</translation>
</message>
<message>
+ <location line="+912"/>
+ <source>No program defined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
<source>Process failed to start</source>
<translation>啟動行程失敗</translation>
</message>
@@ -3788,7 +4639,7 @@ Please choose a different file name.</source>
<context>
<name>QProgressDialog</name>
<message>
- <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="152"/>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
@@ -3796,6 +4647,7 @@ 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>
@@ -3803,6 +4655,7 @@ Please choose a different file name.</source>
<context>
<name>QRadioButton</name>
<message>
+ <location line="+12"/>
<source>Check</source>
<translation>勾選</translation>
</message>
@@ -3810,39 +4663,47 @@ Please choose a different file name.</source>
<context>
<name>QRegExp</name>
<message>
- <location filename="../src/corelib/tools/qregexp.cpp" line="34"/>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/>
<source>no error occurred</source>
<translation>沒有發生錯誤</translation>
</message>
<message>
+ <location line="+1"/>
<source>disabled feature used</source>
<translation>使用已關閉的功能</translation>
</message>
<message>
+ <location line="+1"/>
<source>bad char class syntax</source>
<translation>錯誤的字元類別語法</translation>
</message>
<message>
+ <location line="+1"/>
<source>bad lookahead syntax</source>
<translation>錯誤的 lookahead 語法</translation>
</message>
<message>
+ <location line="+1"/>
<source>bad repetition syntax</source>
<translation>錯誤的重覆語法</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>
@@ -3850,19 +4711,22 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Driver</name>
<message>
- <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="353"/>
+ <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
<source>Error to open database</source>
<translation>開啟資料庫時發生錯誤</translation>
</message>
<message>
+ <location line="+41"/>
<source>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>
@@ -3870,10 +4734,12 @@ Please choose a different file name.</source>
<context>
<name>QSQLite2Result</name>
<message>
+ <location line="-323"/>
<source>Unable to fetch results</source>
<translation>無法抓取結果</translation>
</message>
<message>
+ <location line="+147"/>
<source>Unable to execute statement</source>
<translation>無法執行敘述</translation>
</message>
@@ -3881,19 +4747,22 @@ Please choose a different file name.</source>
<context>
<name>QSQLiteDriver</name>
<message>
- <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="498"/>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/>
<source>Error opening database</source>
<translation>開啟資料庫發生錯誤</translation>
</message>
<message>
+ <location line="+11"/>
<source>Error closing database</source>
<translation>關閉資料庫發生錯誤</translation>
</message>
<message>
+ <location line="+20"/>
<source>Unable to begin transaction</source>
<translation>無法開始事務</translation>
</message>
<message>
+ <location line="+15"/>
<source>Unable to commit transaction</source>
<translation>無法提交事務</translation>
</message>
@@ -3902,6 +4771,7 @@ Please choose a different file name.</source>
<translation type="obsolete">無法反轉事務</translation>
</message>
<message>
+ <location line="+15"/>
<source>Unable to rollback transaction</source>
<translation>無法反轉事務</translation>
</message>
@@ -3909,26 +4779,34 @@ Please choose a different file name.</source>
<context>
<name>QSQLiteResult</name>
<message>
+ <location line="-400"/>
+ <location line="+66"/>
+ <location line="+8"/>
<source>Unable to fetch row</source>
<translation>無法抓取列</translation>
</message>
<message>
+ <location line="+63"/>
<source>Unable to execute statement</source>
<translation>無法執行敘述</translation>
</message>
<message>
+ <location line="+20"/>
<source>Unable to reset statement</source>
<translation>無法重置敘述</translation>
</message>
<message>
+ <location line="+45"/>
<source>Unable to bind parameters</source>
<translation>無法結合參數</translation>
</message>
<message>
+ <location line="+7"/>
<source>Parameter count mismatch</source>
<translation>參數數量不符合</translation>
</message>
<message>
+ <location line="-208"/>
<source>No query</source>
<translation>沒有查詢</translation>
</message>
@@ -3936,69 +4814,84 @@ Please choose a different file name.</source>
<context>
<name>QScrollBar</name>
<message>
- <location filename="../src/gui/widgets/qscrollbar.cpp" line="419"/>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/>
<source>Scroll here</source>
<translation>在此捲軸</translation>
</message>
<message>
+ <location line="+2"/>
<source>Left edge</source>
<translation>左邊緣</translation>
</message>
<message>
+ <location line="+0"/>
<source>Top</source>
<translation>頂端</translation>
</message>
<message>
+ <location line="+1"/>
<source>Right edge</source>
<translation>右邊緣</translation>
</message>
<message>
+ <location line="+0"/>
<source>Bottom</source>
<translation>底端</translation>
</message>
<message>
+ <location line="+2"/>
<source>Page left</source>
<translation>頁面左方</translation>
</message>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="143"/>
+ <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 filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="4"/>
+ <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>
@@ -4006,81 +4899,99 @@ Please choose a different file name.</source>
<context>
<name>QSharedMemory</name>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="177"/>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+207"/>
<source>%1: unable to set key on lock</source>
<translation>%1:無法設定鍵值</translation>
</message>
<message>
+ <location line="+81"/>
<source>%1: create size is less then 0</source>
<translation>%1:建立大小小於 0</translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="118"/>
+ <location line="+168"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
<source>%1: unable to lock</source>
<translation>%1:無法鎖定</translation>
</message>
<message>
+ <location line="+22"/>
<source>%1: unable to unlock</source>
<translation>%1:無法解除鎖定</translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="57"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
<source>%1: permission denied</source>
<translation>%1:存取被拒</translation>
</message>
<message>
+ <location line="+4"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-22"/>
<source>%1: already exists</source>
<translation>%1:已存在</translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="9"/>
+ <location line="+4"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+9"/>
<source>%1: doesn&apos;t exists</source>
<translation>%1:不存在</translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="9"/>
+ <location line="+6"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+9"/>
<source>%1: out of resources</source>
<translation>%1:資源不足</translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="7"/>
+ <location line="+4"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+7"/>
<source>%1: unknown error %2</source>
<translation>%1:未知的錯誤 %2</translation>
</message>
<message>
+ <location line="+21"/>
<source>%1: key is empty</source>
<translation>%1:鍵值是空的</translation>
</message>
<message>
+ <location line="+8"/>
<source>%1: unix key file doesn&apos;t exists</source>
<translation>%1:unix 鍵值檔不存在</translation>
</message>
<message>
+ <location line="+7"/>
<source>%1: ftok failed</source>
<translation>%1:ftok 失敗</translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="15"/>
+ <location line="+51"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+15"/>
<source>%1: unable to make key</source>
<translation>%1:無法產生鍵值</translation>
</message>
<message>
+ <location line="+20"/>
<source>%1: 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_win.cpp" line="-27"/>
<source>%1: invalid size</source>
<translation>%1:不合法的大小</translation>
</message>
<message>
+ <location line="+68"/>
<source>%1: key error</source>
<translation>%1:鍵值錯誤</translation>
</message>
<message>
+ <location line="+38"/>
<source>%1: size query failed</source>
<translation>%1:大小查詢失敗</translation>
</message>
@@ -4088,371 +4999,466 @@ Please choose a different file name.</source>
<context>
<name>QShortcut</name>
<message>
- <location filename="../src/gui/kernel/qkeysequence.cpp" line="343"/>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/>
<source>Space</source>
<translation>空白鍵</translation>
</message>
<message>
+ <location line="+1"/>
<source>Esc</source>
<translation>Esc</translation>
</message>
<message>
+ <location line="+1"/>
<source>Tab</source>
<translation>Tab</translation>
</message>
<message>
+ <location line="+1"/>
<source>Backtab</source>
<translation>Backtab</translation>
</message>
<message>
+ <location line="+1"/>
<source>Backspace</source>
<translation>Backspace</translation>
</message>
<message>
+ <location line="+1"/>
<source>Return</source>
<translation>Return</translation>
</message>
<message>
+ <location line="+1"/>
<source>Enter</source>
<translation>Enter</translation>
</message>
<message>
+ <location line="+1"/>
<source>Ins</source>
<translation>Ins</translation>
</message>
<message>
+ <location line="+1"/>
<source>Del</source>
<translation>Del</translation>
</message>
<message>
+ <location line="+1"/>
<source>Pause</source>
<translation>Pause</translation>
</message>
<message>
+ <location line="+1"/>
<source>Print</source>
<translation>Print</translation>
</message>
<message>
+ <location line="+1"/>
<source>SysReq</source>
<translation>SysReq</translation>
</message>
<message>
+ <location line="+1"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
+ <location line="+1"/>
<source>End</source>
<translation>End</translation>
</message>
<message>
+ <location line="+1"/>
<source>Left</source>
<translation>左鍵</translation>
</message>
<message>
+ <location line="+1"/>
<source>Up</source>
<translation>上鍵</translation>
</message>
<message>
+ <location line="+1"/>
<source>Right</source>
<translation>右鍵</translation>
</message>
<message>
+ <location line="+1"/>
<source>Down</source>
<translation>下鍵</translation>
</message>
<message>
+ <location line="+1"/>
<source>PgUp</source>
<translation>PgUp</translation>
</message>
<message>
+ <location line="+1"/>
<source>PgDown</source>
<translation>PgDown</translation>
</message>
<message>
+ <location line="+1"/>
<source>CapsLock</source>
<translation>大寫鎖定</translation>
</message>
<message>
+ <location line="+1"/>
<source>NumLock</source>
<translation>數字鎖定</translation>
</message>
<message>
+ <location line="+1"/>
<source>ScrollLock</source>
<translation>捲軸鎖定</translation>
</message>
<message>
+ <location line="+1"/>
<source>Menu</source>
<translation>選單</translation>
</message>
<message>
+ <location line="+1"/>
<source>Help</source>
<translation>說明</translation>
</message>
<message>
+ <location line="+3"/>
<source>Back</source>
<translation>返回</translation>
</message>
<message>
+ <location line="+1"/>
<source>Forward</source>
<translation>往前</translation>
</message>
<message>
+ <location line="+1"/>
<source>Stop</source>
<translation>停止</translation>
</message>
<message>
+ <location line="+1"/>
<source>Refresh</source>
<translation>刷新</translation>
</message>
<message>
+ <location line="+1"/>
<source>Volume Down</source>
<translation>音量降低</translation>
</message>
<message>
+ <location line="+1"/>
<source>Volume Mute</source>
<translation>靜音</translation>
</message>
<message>
+ <location line="+1"/>
<source>Volume Up</source>
<translation>音量提高</translation>
</message>
<message>
+ <location line="+1"/>
<source>Bass Boost</source>
<translation>重低音</translation>
</message>
<message>
+ <location line="+1"/>
<source>Bass Up</source>
<translation>Bass Up</translation>
</message>
<message>
+ <location line="+1"/>
<source>Bass Down</source>
<translation>Bass Down</translation>
</message>
<message>
+ <location line="+1"/>
<source>Treble Up</source>
<translation>Treble Up</translation>
</message>
<message>
+ <location line="+1"/>
<source>Treble Down</source>
<translation>Treble Down</translation>
</message>
<message>
+ <location line="+1"/>
<source>Media Play</source>
<translation>媒體播放</translation>
</message>
<message>
+ <location line="+1"/>
<source>Media Stop</source>
<translation>媒體停止</translation>
</message>
<message>
+ <location line="+1"/>
<source>Media Previous</source>
<translation>媒體前一首</translation>
</message>
<message>
+ <location line="+1"/>
<source>Media Next</source>
<translation>媒體下一首</translation>
</message>
<message>
+ <location line="+1"/>
<source>Media Record</source>
<translation>媒體錄音</translation>
</message>
<message>
+ <location line="+2"/>
<source>Favorites</source>
<translation>我的最愛</translation>
</message>
<message>
+ <location line="+1"/>
<source>Search</source>
<translation>搜尋</translation>
</message>
<message>
+ <location line="+1"/>
<source>Standby</source>
<translation>待命</translation>
</message>
<message>
+ <location line="+1"/>
<source>Open URL</source>
<translation>開啟網址</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch Mail</source>
<translation>啟動郵件程式</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch Media</source>
<translation>啟動媒體程式</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch (0)</source>
<translation>啟動(0)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch (1)</source>
<translation>啟動(1)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch (2)</source>
<translation>啟動(2)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch (3)</source>
<translation>啟動(3)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch (4)</source>
<translation>啟動(4)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch (5)</source>
<translation>啟動(5)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch (6)</source>
<translation>啟動(6)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch (7)</source>
<translation>啟動(7)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch (8)</source>
<translation>啟動(8)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch (9)</source>
<translation>啟動(9)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch (A)</source>
<translation>啟動(A)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch (B)</source>
<translation>啟動(B)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch (C)</source>
<translation>啟動(C)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch (D)</source>
<translation>啟動(D)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch (E)</source>
<translation>啟動(E)</translation>
</message>
<message>
+ <location line="+1"/>
<source>Launch (F)</source>
<translation>啟動(F)</translation>
</message>
<message>
+ <location line="+4"/>
<source>Print Screen</source>
<translation>列印螢幕</translation>
</message>
<message>
+ <location line="+1"/>
<source>Page Up</source>
<translation>往上一頁</translation>
</message>
<message>
+ <location line="+1"/>
<source>Page Down</source>
<translation>往下一頁</translation>
</message>
<message>
+ <location line="+1"/>
<source>Caps Lock</source>
<translation>大寫鎖定</translation>
</message>
<message>
+ <location line="+1"/>
<source>Num Lock</source>
<translation>數字鎖定</translation>
</message>
<message>
+ <location line="+1"/>
<source>Number Lock</source>
<translation>數字鎖定</translation>
</message>
<message>
+ <location line="+1"/>
<source>Scroll Lock</source>
<translation>捲軸鎖定</translation>
</message>
<message>
+ <location line="+1"/>
<source>Insert</source>
<translation>插入</translation>
</message>
<message>
+ <location line="+1"/>
<source>Delete</source>
<translation>刪除</translation>
</message>
<message>
+ <location line="+1"/>
<source>Escape</source>
<translation>Escape</translation>
</message>
<message>
+ <location line="+1"/>
<source>System Request</source>
<translation>系統要求 SysRq</translation>
</message>
<message>
+ <location line="+4"/>
<source>Select</source>
<translation>選擇</translation>
</message>
<message>
+ <location line="+1"/>
<source>Yes</source>
<translation>是</translation>
</message>
<message>
+ <location line="+1"/>
<source>No</source>
<translation>否</translation>
</message>
<message>
+ <location line="+4"/>
<source>Context1</source>
<translation>內文1</translation>
</message>
<message>
+ <location line="+1"/>
<source>Context2</source>
<translation>內文2</translation>
</message>
<message>
+ <location line="+1"/>
<source>Context3</source>
<translation>內文3</translation>
</message>
<message>
+ <location line="+1"/>
<source>Context4</source>
<translation>內文4</translation>
</message>
<message>
+ <location line="+1"/>
<source>Call</source>
<translation>呼叫</translation>
</message>
<message>
+ <location line="+1"/>
<source>Hangup</source>
<translation>掛斷</translation>
</message>
<message>
+ <location line="+1"/>
<source>Flip</source>
<translation>反轉</translation>
</message>
<message>
+ <location line="+527"/>
+ <location line="+122"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
+ <location line="-121"/>
+ <location line="+125"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
+ <location line="-124"/>
+ <location line="+122"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
+ <location line="-121"/>
+ <location line="+117"/>
<source>Meta</source>
<translation>Meta</translation>
</message>
<message>
+ <location line="-25"/>
<source>+</source>
<translation>+</translation>
</message>
<message>
+ <location line="+46"/>
<source>F%1</source>
<translation>F%1</translation>
</message>
<message>
+ <location line="-720"/>
<source>Home Page</source>
<translation>首頁</translation>
</message>
@@ -4460,23 +5466,27 @@ Please choose a different file name.</source>
<context>
<name>QSlider</name>
<message>
- <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="151"/>
+ <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>
@@ -4484,54 +5494,67 @@ 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>SOCKS 5 的協定錯誤</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>
@@ -4540,6 +5563,7 @@ Please choose a different file name.</source>
<translation type="obsolete">連接到 socks 伺服器時發生 socks5 逾時錯誤</translation>
</message>
<message>
+ <location line="+685"/>
<source>Network operation timed out</source>
<translation>網路操作逾時</translation>
</message>
@@ -4547,10 +5571,12 @@ 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>
@@ -4558,43 +5584,56 @@ Please choose a different file name.</source>
<context>
<name>QSql</name>
<message>
- <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="860"/>
+ <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>
@@ -4602,43 +5641,52 @@ Please choose a different file name.</source>
<context>
<name>QSslSocket</name>
<message>
- <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="539"/>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+569"/>
<source>Unable to write data: %1</source>
<translation>無法寫入資料:%1</translation>
</message>
<message>
+ <location line="+119"/>
<source>Error while reading: %1</source>
<translation>讀取時發生錯誤:%1</translation>
</message>
<message>
+ <location line="+96"/>
<source>Error during SSL handshake: %1</source>
<translation>SSL 同步時發生錯誤:%1</translation>
</message>
<message>
+ <location line="-524"/>
<source>Error creating SSL context (%1)</source>
<translation>建立 SSL 內文時發生錯誤(%1)</translation>
</message>
<message>
+ <location line="+25"/>
<source>Invalid or empty cipher list (%1)</source>
<translation>不合法或空白的加密清單(%1)</translation>
</message>
<message>
+ <location line="+62"/>
<source>Error creating SSL session, %1</source>
<translation>建立 SSL 工作階段時發生錯誤:%1</translation>
</message>
<message>
+ <location line="+15"/>
<source>Error creating SSL session: %1</source>
<translation>建立 SSL 工作階段時發生錯誤:%1</translation>
</message>
<message>
+ <location line="-61"/>
<source>Cannot provide a certificate with no key, %1</source>
<translation>沒有金鑰無法提供憑證:%1</translation>
</message>
<message>
+ <location line="+7"/>
<source>Error loading local certificate, %1</source>
<translation>載入本地憑證時發生錯誤:%1</translation>
</message>
<message>
+ <location line="+12"/>
<source>Error loading private key, %1</source>
<translation>載入私鑰時發生錯誤:%1</translation>
</message>
@@ -4647,6 +5695,7 @@ Please choose a different file name.</source>
<translation type="obsolete">私鑰與公鑰不符:%1</translation>
</message>
<message>
+ <location line="+7"/>
<source>Private key does not certificate public key, %1</source>
<translation>私密金鑰無法認證公開金鑰,%1</translation>
</message>
@@ -4654,25 +5703,30 @@ Please choose a different file name.</source>
<context>
<name>QSystemSemaphore</name>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="36"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
<source>%1: out of resources</source>
<translation>%1:資源不足</translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="4"/>
+ <location line="-13"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+4"/>
<source>%1: permission denied</source>
<translation>%1:存取被拒</translation>
</message>
<message>
+ <location line="+4"/>
<source>%1: already exists</source>
<translation>%1:已存在</translation>
</message>
<message>
+ <location line="+4"/>
<source>%1: does not exist</source>
<translation>%1:不存在</translation>
</message>
<message>
- <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="3"/>
+ <location line="+9"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+3"/>
<source>%1: unknown error %2</source>
<translation>%1:未知的錯誤 %2</translation>
</message>
@@ -4680,11 +5734,12 @@ Please choose a different file name.</source>
<context>
<name>QTDSDriver</name>
<message>
- <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="552"/>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
<source>Unable to open connection</source>
<translation>無法開啟連線</translation>
</message>
<message>
+ <location line="+5"/>
<source>Unable to use database</source>
<translation>無法使用資料庫</translation>
</message>
@@ -4692,10 +5747,12 @@ 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>
@@ -4707,7 +5764,7 @@ Please choose a different file name.</source>
<translation type="obsolete">未支援的 socket 操作</translation>
</message>
<message>
- <location filename="../src/network/socket/qtcpserver.cpp" line="252"/>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
<source>Operation on socket is not supported</source>
<translation>Socket 的操作未被支援</translation>
</message>
@@ -4715,35 +5772,42 @@ Please choose a different file name.</source>
<context>
<name>QTextControl</name>
<message>
- <location filename="../src/gui/text/qtextcontrol.cpp" line="1942"/>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/>
<source>&amp;Undo</source>
<translation>復原(&amp;U)</translation>
</message>
<message>
+ <location line="+2"/>
<source>&amp;Redo</source>
<translation>重做(&amp;R)</translation>
</message>
<message>
+ <location line="+4"/>
<source>Cu&amp;t</source>
<translation>剪下(&amp;T)</translation>
</message>
<message>
+ <location line="+5"/>
<source>&amp;Copy</source>
<translation>複製(&amp;C)</translation>
</message>
<message>
+ <location line="+7"/>
<source>Copy &amp;Link Location</source>
<translation>複製連結位址(&amp;L)</translation>
</message>
<message>
+ <location line="+6"/>
<source>&amp;Paste</source>
<translation>貼上(&amp;P)</translation>
</message>
<message>
+ <location line="+3"/>
<source>Delete</source>
<translation>刪除</translation>
</message>
<message>
+ <location line="+7"/>
<source>Select All</source>
<translation>全部選擇</translation>
</message>
@@ -4751,10 +5815,14 @@ Please choose a different file name.</source>
<context>
<name>QToolButton</name>
<message>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+254"/>
+ <location line="+6"/>
<source>Press</source>
<translation>按下</translation>
</message>
<message>
+ <location line="-4"/>
+ <location line="+8"/>
<source>Open</source>
<translation>開啟</translation>
</message>
@@ -4762,7 +5830,7 @@ Please choose a different file name.</source>
<context>
<name>QUdpSocket</name>
<message>
- <location filename="../src/network/socket/qudpsocket.cpp" line="139"/>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
<source>This platform does not support IPv6</source>
<translation>此平台不支援 IPv6</translation>
</message>
@@ -4770,11 +5838,12 @@ Please choose a different file name.</source>
<context>
<name>QUndoGroup</name>
<message>
- <location filename="../src/gui/util/qundogroup.cpp" line="356"/>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+386"/>
<source>Undo</source>
<translation>復原</translation>
</message>
<message>
+ <location line="+28"/>
<source>Redo</source>
<translation>重做</translation>
</message>
@@ -4782,7 +5851,7 @@ Please choose a different file name.</source>
<context>
<name>QUndoModel</name>
<message>
- <location filename="../src/gui/util/qundoview.cpp" line="71"/>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
<source>&lt;empty&gt;</source>
<translation><空白></translation>
</message>
@@ -4790,11 +5859,12 @@ Please choose a different file name.</source>
<context>
<name>QUndoStack</name>
<message>
- <location filename="../src/gui/util/qundostack.cpp" line="804"/>
+ <location filename="../src/gui/util/qundostack.cpp" line="+834"/>
<source>Undo</source>
<translation>復原</translation>
</message>
<message>
+ <location line="+27"/>
<source>Redo</source>
<translation>重做</translation>
</message>
@@ -4802,47 +5872,57 @@ Please choose a different file name.</source>
<context>
<name>QUnicodeControlCharacterMenu</name>
<message>
- <location filename="../src/gui/text/qtextcontrol.cpp" line="884"/>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+884"/>
<source>LRM Left-to-right mark</source>
<translation>LRM 左到右標記</translation>
</message>
<message>
+ <location line="+1"/>
<source>RLM Right-to-left mark</source>
<translation>RLM 右到左標記</translation>
</message>
<message>
+ <location line="+1"/>
<source>ZWJ Zero width joiner</source>
<translation>ZWJ 零寬度連接器</translation>
</message>
<message>
+ <location line="+1"/>
<source>ZWNJ Zero width non-joiner</source>
<translation>ZWNJ 零寬度非連接器</translation>
</message>
<message>
+ <location line="+1"/>
<source>ZWSP Zero width space</source>
<translation>ZWSP 零寬度空白</translation>
</message>
<message>
+ <location line="+1"/>
<source>LRE Start of left-to-right embedding</source>
<translation>LRE 左到右嵌入起點</translation>
</message>
<message>
+ <location line="+1"/>
<source>RLE Start of right-to-left embedding</source>
<translation>RLE 右到左嵌入起點</translation>
</message>
<message>
+ <location line="+1"/>
<source>LRO Start of left-to-right override</source>
<translation>LRO 左到右覆寫起點</translation>
</message>
<message>
+ <location line="+1"/>
<source>RLO Start of right-to-left override</source>
<translation>RLO 右到左覆寫起點</translation>
</message>
<message>
+ <location line="+1"/>
<source>PDF Pop directional formatting</source>
<translation>PDF 彈出方向格式</translation>
</message>
<message>
+ <location line="+6"/>
<source>Insert Unicode control character</source>
<translation>插入萬國碼控制字元</translation>
</message>
@@ -4850,27 +5930,32 @@ Please choose a different file name.</source>
<context>
<name>QWebFrame</name>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="686"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
<source>Request cancelled</source>
<translation>請求已取消</translation>
</message>
<message>
+ <location line="+17"/>
<source>Request blocked</source>
<translation>請求已被阻擋</translation>
</message>
<message>
+ <location line="+7"/>
<source>Cannot show URL</source>
<translation>無法顯示網址</translation>
</message>
<message>
+ <location line="+6"/>
<source>Frame load interruped 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>
@@ -4878,316 +5963,376 @@ Please choose a different file name.</source>
<context>
<name>QWebPage</name>
<message>
- <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="382"/>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+382"/>
<source>Bad HTTP request</source>
<translation>不良的 HTTP 請求</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="42"/>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+42"/>
<source>Submit</source>
<comment>default label for Submit buttons in forms on web pages</comment>
<translation>提交</translation>
</message>
<message>
+ <location line="+5"/>
<source>Submit</source>
<comment>Submit (input element) alt text for &lt;input&gt; elements with no alt, title, or value</comment>
<translation>提交</translation>
</message>
<message>
+ <location line="+5"/>
<source>Reset</source>
<comment>default label for Reset buttons in forms on web pages</comment>
<translation>重置</translation>
</message>
<message>
+ <location line="+10"/>
<source>This is a searchable index. Enter search keywords: </source>
<comment>text that appears at the start of nearly-obsolete web pages in the form of a &apos;searchable index&apos;</comment>
<translation>這是可搜尋的索引。請輸入關鍵字: </translation>
</message>
<message>
+ <location line="+5"/>
<source>Choose File</source>
<comment>title for file button used in HTML forms</comment>
<translation>選擇檔案</translation>
</message>
<message>
+ <location line="+5"/>
<source>No file selected</source>
<comment>text to display in file button used in HTML forms when no file is selected</comment>
<translation>未選取任何檔案</translation>
</message>
<message>
+ <location line="+5"/>
<source>Open in New Window</source>
<comment>Open in New Window context menu item</comment>
<translation>在新視窗開啟</translation>
</message>
<message>
+ <location line="+5"/>
<source>Save Link...</source>
<comment>Download Linked File context menu item</comment>
<translation>儲存連結...</translation>
</message>
<message>
+ <location line="+5"/>
<source>Copy Link</source>
<comment>Copy Link context menu item</comment>
<translation>複製連結</translation>
</message>
<message>
+ <location line="+5"/>
<source>Open Image</source>
<comment>Open Image in New Window context menu item</comment>
<translation>開啟影像</translation>
</message>
<message>
+ <location line="+5"/>
<source>Save Image</source>
<comment>Download Image context menu item</comment>
<translation>儲存影像</translation>
</message>
<message>
+ <location line="+5"/>
<source>Copy Image</source>
<comment>Copy Link context menu item</comment>
<translation>複製影像</translation>
</message>
<message>
+ <location line="+5"/>
<source>Open Frame</source>
<comment>Open Frame in New Window context menu item</comment>
<translation>開啟框架</translation>
</message>
<message>
+ <location line="+5"/>
<source>Copy</source>
<comment>Copy context menu item</comment>
<translation>複製</translation>
</message>
<message>
+ <location line="+5"/>
<source>Go Back</source>
<comment>Back context menu item</comment>
<translation>往回</translation>
</message>
<message>
+ <location line="+5"/>
<source>Go Forward</source>
<comment>Forward context menu item</comment>
<translation>往前</translation>
</message>
<message>
+ <location line="+5"/>
<source>Stop</source>
<comment>Stop context menu item</comment>
<translation>停止</translation>
</message>
<message>
+ <location line="+5"/>
<source>Reload</source>
<comment>Reload context menu item</comment>
<translation>重新載入</translation>
</message>
<message>
+ <location line="+5"/>
<source>Cut</source>
<comment>Cut context menu item</comment>
<translation>剪下</translation>
</message>
<message>
+ <location line="+5"/>
<source>Paste</source>
<comment>Paste context menu item</comment>
<translation>貼上</translation>
</message>
<message>
+ <location line="+5"/>
<source>No Guesses Found</source>
<comment>No Guesses Found context menu item</comment>
<translation>找不到可能的內容</translation>
</message>
<message>
+ <location line="+5"/>
<source>Ignore</source>
<comment>Ignore Spelling context menu item</comment>
<translation>忽略</translation>
</message>
<message>
+ <location line="+5"/>
<source>Add To Dictionary</source>
<comment>Learn Spelling context menu item</comment>
<translation>新增到字典</translation>
</message>
<message>
+ <location line="+5"/>
<source>Search The Web</source>
<comment>Search The Web context menu item</comment>
<translation>搜尋站台</translation>
</message>
<message>
+ <location line="+5"/>
<source>Look Up In Dictionary</source>
<comment>Look Up in Dictionary context menu item</comment>
<translation>在字典裡搜尋</translation>
</message>
<message>
+ <location line="+5"/>
<source>Open Link</source>
<comment>Open Link context menu item</comment>
<translation>開啟連結</translation>
</message>
<message>
+ <location line="+5"/>
<source>Ignore</source>
<comment>Ignore Grammar context menu item</comment>
<translation>忽略</translation>
</message>
<message>
+ <location line="+5"/>
<source>Spelling</source>
<comment>Spelling and Grammar context sub-menu item</comment>
<translation>拼字</translation>
</message>
<message>
+ <location line="+5"/>
<source>Show Spelling and Grammar</source>
<comment>menu item title</comment>
<translation>顯示拼字與文法</translation>
</message>
<message>
+ <location line="+1"/>
<source>Hide Spelling and Grammar</source>
<comment>menu item title</comment>
<translation>隱藏拼字與文法</translation>
</message>
<message>
+ <location line="+5"/>
<source>Check Spelling</source>
<comment>Check spelling context menu item</comment>
<translation>檢查拼字</translation>
</message>
<message>
+ <location line="+5"/>
<source>Check Spelling While Typing</source>
<comment>Check spelling while typing context menu item</comment>
<translation>打字時立即檢查拼字</translation>
</message>
<message>
+ <location line="+5"/>
<source>Check Grammar With Spelling</source>
<comment>Check grammar with spelling context menu item</comment>
<translation>檢查拼字與文法</translation>
</message>
<message>
+ <location line="+5"/>
<source>Fonts</source>
<comment>Font context sub-menu item</comment>
<translation>字型</translation>
</message>
<message>
+ <location line="+5"/>
<source>Bold</source>
<comment>Bold context menu item</comment>
<translation>粗體</translation>
</message>
<message>
+ <location line="+5"/>
<source>Italic</source>
<comment>Italic context menu item</comment>
<translation>斜體</translation>
</message>
<message>
+ <location line="+5"/>
<source>Underline</source>
<comment>Underline context menu item</comment>
<translation>底線</translation>
</message>
<message>
+ <location line="+5"/>
<source>Outline</source>
<comment>Outline context menu item</comment>
<translation>外框線</translation>
</message>
<message>
+ <location line="+5"/>
<source>Direction</source>
<comment>Writing direction context sub-menu item</comment>
<translation>方向</translation>
</message>
<message>
+ <location line="+5"/>
<source>Text Direction</source>
<comment>Text direction context sub-menu item</comment>
<translation>文字方向</translation>
</message>
<message>
+ <location line="+5"/>
<source>Default</source>
<comment>Default writing direction context menu item</comment>
<translation>預設</translation>
</message>
<message>
+ <location line="+5"/>
<source>LTR</source>
<comment>Left to Right context menu item</comment>
<translation>左到右</translation>
</message>
<message>
+ <location line="+5"/>
<source>RTL</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="+75"/>
<source>Unknown</source>
<comment>Unknown filesize FTP directory listing item</comment>
<translation>未知</translation>
</message>
<message>
+ <location line="+5"/>
<source>%1 (%2x%3 pixels)</source>
<comment>Title string for images</comment>
<translation>%1(%2x%3 像素)</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="185"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+185"/>
<source>Web Inspector - %2</source>
<translation>網站查驗器─%2</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="58"/>
+ <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 numerus="yes">
- <location filename="../src/3rdparty/webkit/WebCore/platform/qt/FileChooserQt.cpp" line="45"/>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/FileChooserQt.cpp" line="+45"/>
<source>%n file(s)</source>
<comment>number of chosen file</comment>
<translation>
@@ -5195,127 +6340,170 @@ Please choose a different file name.</source>
</translation>
</message>
<message>
- <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="1342"/>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
<source>JavaScript Alert - %1</source>
<translation>JavaScript 警告 ─ %1</translation>
</message>
<message>
+ <location line="+15"/>
<source>JavaScript Confirm - %1</source>
<translation>JavaScript 確認 ─ %1</translation>
</message>
<message>
+ <location line="+17"/>
<source>JavaScript Prompt - %1</source>
<translation>JavaScript 提示 ─ %1</translation>
</message>
<message>
+ <location line="+333"/>
<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 type="unfinished"></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 type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QWhatsThisAction</name>
<message>
- <location filename="../src/gui/kernel/qwhatsthis.cpp" line="492"/>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
<source>What&apos;s This?</source>
<translation>這是什麼?</translation>
</message>
@@ -5323,7 +6511,7 @@ Please choose a different file name.</source>
<context>
<name>QWidget</name>
<message>
- <location filename="../src/gui/kernel/qwidget.cpp" line="5290"/>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/>
<source>*</source>
<translation>+</translation>
</message>
@@ -5331,19 +6519,22 @@ Please choose a different file name.</source>
<context>
<name>QWizard</name>
<message>
- <location filename="../src/gui/dialogs/qwizard.cpp" line="605"/>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/>
<source>Go Back</source>
<translation>往回</translation>
</message>
<message>
+ <location line="+3"/>
<source>Continue</source>
<translation>繼續</translation>
</message>
<message>
+ <location line="+5"/>
<source>Commit</source>
<translation>提交</translation>
</message>
<message>
+ <location line="+2"/>
<source>Done</source>
<translation>完成</translation>
</message>
@@ -5352,30 +6543,37 @@ Please choose a different file name.</source>
<translation type="obsolete">離開</translation>
</message>
<message>
+ <location line="+4"/>
<source>Help</source>
<translation>說明</translation>
</message>
<message>
+ <location line="-14"/>
<source>&lt; &amp;Back</source>
<translation><返回(&amp;B)</translation>
</message>
<message>
+ <location line="+10"/>
<source>&amp;Finish</source>
<translation>完成(&amp;F)</translation>
</message>
<message>
+ <location line="+2"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
+ <location line="+2"/>
<source>&amp;Help</source>
<translation>說明(&amp;H)</translation>
</message>
<message>
+ <location line="-8"/>
<source>&amp;Next</source>
<translation>下一個(&amp;N)</translation>
</message>
<message>
+ <location line="+0"/>
<source>&amp;Next &gt;</source>
<translation>下一個(&amp;N)></translation>
</message>
@@ -5383,55 +6581,69 @@ Please choose a different file name.</source>
<context>
<name>QWorkspace</name>
<message>
- <location filename="../src/gui/widgets/qworkspace.cpp" line="1064"/>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/>
<source>&amp;Restore</source>
<translation>回復(&amp;R)</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Move</source>
<translation>移動(&amp;M)</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Size</source>
<translation>大小(&amp;S)</translation>
</message>
<message>
+ <location line="+2"/>
<source>Mi&amp;nimize</source>
<translation>最小化(&amp;N)</translation>
</message>
<message>
+ <location line="+2"/>
<source>Ma&amp;ximize</source>
<translation>最大化(&amp;X)</translation>
</message>
<message>
+ <location line="+2"/>
<source>&amp;Close</source>
<translation>關閉(&amp;C)</translation>
</message>
<message>
+ <location line="+6"/>
<source>Stay on &amp;Top</source>
<translation>留在頂端(&amp;T)</translation>
</message>
<message>
+ <location line="+3"/>
+ <location line="+1059"/>
<source>Sh&amp;ade</source>
<translation>遮蔽(&amp;A)</translation>
</message>
<message>
+ <location line="-278"/>
+ <location line="+60"/>
<source>%1 - [%2]</source>
<translation>%1 - [%2]</translation>
</message>
<message>
+ <location line="-1837"/>
<source>Minimize</source>
<translation>最小化</translation>
</message>
<message>
+ <location line="+2"/>
<source>Restore Down</source>
<translation>向下恢復</translation>
</message>
<message>
+ <location line="-4"/>
<source>Close</source>
<translation>關閉</translation>
</message>
<message>
+ <location line="+2053"/>
<source>&amp;Unshade</source>
<translation>取消遮蔽(&amp;U)</translation>
</message>
@@ -5439,95 +6651,117 @@ Please choose a different file name.</source>
<context>
<name>QXml</name>
<message>
- <location filename="../src/xml/sax/qxml.cpp" line="28"/>
+ <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 宣告時應有版本號</translation>
</message>
<message>
+ <location line="+1"/>
<source>wrong value for standalone declaration</source>
<translation>獨立宣告時的值錯誤</translation>
</message>
<message>
+ <location line="+1"/>
<source>encoding declaration or standalone declaration expected while reading the XML declaration</source>
<translation>讀取 XML 宣告時應有編碼宣告或獨立宣告</translation>
</message>
<message>
+ <location line="+1"/>
<source>standalone declaration expected while reading the XML declaration</source>
<translation>讀取 XML 宣告時應有讀立宣告</translation>
</message>
<message>
+ <location line="+1"/>
<source>error occurred while parsing document type definition</source>
<translation>剖析文件型態定義時發生錯誤</translation>
</message>
<message>
+ <location line="+1"/>
<source>letter is expected</source>
<translation>預期應為字母</translation>
</message>
<message>
+ <location line="+1"/>
<source>error occurred while parsing comment</source>
<translation>剖析註解時發生錯誤</translation>
</message>
<message>
+ <location line="+1"/>
<source>error occurred while parsing reference</source>
<translation>剖析參考時發生錯誤</translation>
</message>
<message>
+ <location line="+1"/>
<source>internal general entity reference not allowed in DTD</source>
<translation>在 DTD 中不允許內部產生的實體參考</translation>
</message>
<message>
+ <location line="+1"/>
<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>
@@ -5535,47 +6769,58 @@ Please choose a different file name.</source>
<context>
<name>QXmlStream</name>
<message>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="1739"/>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/>
<source>Extra content at end of document.</source>
<translation>文件尾端有多餘的內容。</translation>
</message>
<message>
+ <location line="+222"/>
<source>Invalid entity value.</source>
<translation>不合法的實體值</translation>
</message>
<message>
+ <location line="+107"/>
<source>Invalid XML character.</source>
<translation>不合法的 XML 字元。</translation>
</message>
<message>
+ <location line="+259"/>
<source>Sequence &apos;]]&gt;&apos; not allowed in content.</source>
<translation>在內文中不允許有序列 &quot;]]&gt;&quot;。</translation>
</message>
<message>
+ <location line="+309"/>
<source>Namespace prefix &apos;%1&apos; not declared</source>
<translation>命名空間的前置字串 %1 未宣告</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>在公開代碼字元中遇到非預期的字元 %1。</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>
@@ -5584,100 +6829,128 @@ Please choose a different file name.</source>
<translation type="obsolete">不合法的 XML 編碼名稱。</translation>
</message>
<message>
+ <location line="+16"/>
<source>Standalone accepts only yes or no.</source>
<translation>獨立實體只接受 yes 或 no。</translation>
</message>
<message>
+ <location line="+2"/>
<source>Invalid attribute in XML declaration.</source>
<translation>XML 宣告中有不合法的屬性。</translation>
</message>
<message>
+ <location line="+16"/>
<source>Premature end of document.</source>
<translation>文件結尾不正確。</translation>
</message>
<message>
+ <location line="+2"/>
<source>Invalid document.</source>
<translation>不合法的文件。</translation>
</message>
<message>
+ <location line="+40"/>
<source>Expected </source>
<translation>預期應為 </translation>
</message>
<message>
+ <location line="+11"/>
<source>, but got &apos;</source>
<translation>,但是看到的是 </translation>
</message>
<message>
+ <location line="+4"/>
<source>Unexpected &apos;</source>
<translation>非預期</translation>
</message>
<message>
+ <location line="+210"/>
<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="-521"/>
+ <location line="+12"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+164"/>
+ <location line="+53"/>
<source>Illegal namespace declaration.</source>
<translation>不合法的命名空間宣告。</translation>
</message>
<message>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="15"/>
+ <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>參考到未剖析的實體 %1。</translation>
</message>
<message>
+ <location line="-13"/>
+ <location line="+61"/>
+ <location line="+40"/>
<source>Entity &apos;%1&apos; not declared.</source>
<translation>實體 %1 未宣告。</translation>
</message>
<message>
+ <location line="-26"/>
<source>Reference to external entity &apos;%1&apos; in attribute value.</source>
<translation>在屬性值中參考到外部實體 %1。</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>獨立的虛擬屬性必須在編碼之後出現。</translation>
</message>
<message>
- <location filename="../src/corelib/xml/qxmlstream_p.h" line="562"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+562"/>
<source>%1 is an invalid PUBLIC identifier.</source>
<translation>%1 為不合法的 PUBLIC 識別子。</translation>
</message>
@@ -5685,21 +6958,22 @@ Please choose a different file name.</source>
<context>
<name>QtXmlPatterns</name>
<message>
- <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="175"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
<source>An %1-attribute with value %2 has already been declared.</source>
<translation>已宣告屬性 %1 的值為 %2。</translation>
</message>
<message>
+ <location line="+13"/>
<source>An %1-attribute must have a valid %2 as value, which %3 isn&apos;t.</source>
<translation>屬性 %1 必須以合法的 %2 為值,而 %3 是不合法的。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="54"/>
+ <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="290"/>
+ <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>
@@ -5708,425 +6982,482 @@ Please choose a different file name.</source>
<translation type="obsolete">屬性元素 %1 無法序列化,因為似乎是在頂層。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="50"/>
+ <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>月份 %2 中沒有日期 %1。</translation>
</message>
<message>
+ <location line="+49"/>
<source>Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; </source>
<translation>時間 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="+99"/>
+ <location line="+15"/>
<source>At least one component must be present.</source>
<translation>必須表達至少一個組件。</translation>
</message>
<message>
+ <location line="-7"/>
<source>At least one time component must appear after the %1-delimiter.</source>
<translation>在分隔符 %1 後必須至少有一個時間組件。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="34"/>
+ <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
<source>No operand in an integer division, %1, can be %2.</source>
<translation>整數除法沒有運作對象,%1,可以是 %2</translation>
</message>
<message>
+ <location line="+7"/>
<source>The first operand in an integer division, %1, cannot be infinity (%2).</source>
<translation>整數除法的第一個運算對象 %1 不能是無限大(%2)。</translation>
</message>
<message>
+ <location line="+6"/>
<source>The second operand in a division, %1, cannot be zero (%2).</source>
<translation>整數除法的第二個運算對象 %1 不能是零(%2)。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="102"/>
+ <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="193"/>
+ <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/qatomicmathematicians.cpp" line="35"/>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
<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>
+ <location line="+122"/>
+ <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="49"/>
+ <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/qboolean.cpp" line="48"/>
+ <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>實際布林值(Effective Boolean)無法用在兩個或兩個以上的原數值(atomic value)的計算。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="372"/>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
<source>Value %1 of type %2 exceeds maximum (%3).</source>
<translation>型態 %2 的數值 %1 已超過最大值(%3)。</translation>
</message>
<message>
+ <location line="+9"/>
<source>Value %1 of type %2 is below minimum (%3).</source>
<translation>型態 %2 的數值 %1 已低過最小值(%3)。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="61"/>
+ <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="177"/>
+ <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="36"/>
+ <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>在已計算屬性的名稱的命名空間網址不能是 %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>在已計算屬性的名稱不能同時有命名空間網址 %1 與本地端名稱 %2。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="58"/>
+ <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/qcastingplatform.cpp" line="104"/>
+ <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/>
<source>No casting is possible with %1 as the target type.</source>
<translation>不能轉換到 %1 型態。</translation>
</message>
<message>
+ <location line="+15"/>
<source>It is not possible to cast from %1 to %2.</source>
<translation>不能從 %1 轉換到 %2。</translation>
</message>
<message>
+ <location line="+27"/>
<source>Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated.</source>
<translation>無法轉換到 %1 因為它是一個抽象型態,不能被實體化。</translation>
</message>
<message>
+ <location line="+23"/>
<source>It&apos;s not possible to cast the value %1 of type %2 to %3</source>
<translation>無法轉換型態 %2 的數值 %1 到 %3</translation>
</message>
<message>
+ <location line="+8"/>
<source>Failure when casting from %1 to %2: %3</source>
<translation>從 %1 轉換到 %2 時失敗:%3</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="37"/>
+ <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/qcomparisonplatform.cpp" line="137"/>
+ <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
<source>No comparisons can be done involving the type %1.</source>
<translation>包含型態 %1 時不能做比較。</translation>
</message>
<message>
+ <location line="+14"/>
<source>Operator %1 is not available between atomic values of type %2 and %3.</source>
<translation>操作元 %1 不能用於型態 %2 與 %3 的原數值。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="56"/>
+ <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="139"/>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
<source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
<translation>不能直接計算函式模組。必須要從主模組匯入。</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="76"/>
+ <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 的值不能是謂詞(predicate)。謂詞必須是數值型態,或是實際布林值。</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="83"/>
+ <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>處理指令的目標名稱不能是任何大小寫組合的 %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="79"/>
+ <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/qprocessinginstructionconstructor.cpp" line="54"/>
+ <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/>
<source>The data of a processing instruction cannot contain the string %1</source>
<translation>處理指令的資料不能包含字串 %1</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="52"/>
+ <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="126"/>
+ <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+156"/>
<source>No namespace binding exists for the prefix %1 in %2</source>
<translation>在 %2 的前置字串 %1 沒有結合命名空間</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="39"/>
+ <location line="+12"/>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
<source>%1 is an invalid %2</source>
<translation>%1 是不合法的 %2</translation>
</message>
<message numerus="yes">
- <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="47"/>
+ <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>
</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>
</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="90"/>
+ <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/qassemblestringfns.cpp" line="58"/>
+ <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/qcomparingaggregator.cpp" line="167"/>
+ <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
<source>The first argument to %1 cannot be of type %2.</source>
<translation>呼叫 %1 的第一個參數不能是 %2 型態。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="56"/>
+ <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/qerrorfn.cpp" line="31"/>
+ <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="64"/>
+ <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>%1 後面必須跟著 %2 或 %3,而非取代字串的結尾。</translation>
</message>
<message>
+ <location line="+39"/>
<source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source>
<translation>在取代字串中,在未脫逸的情形下 %1 必須至少跟著一位數字。</translation>
</message>
<message>
+ <location line="+26"/>
<source>In the replacement string, %1 can only be used to escape itself or %2, not %3</source>
<translation>在取代字串中,%1 只能用於自身或 %2 的脫逸,而非 %3。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="62"/>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
<source>%1 matches newline characters</source>
<translation>%1 符合了換行字元</translation>
</message>
<message>
+ <location line="+4"/>
<source>%1 and %2 match the start and end of a line.</source>
<translation>%1 與 %2 符合了一行的開始與結尾。</translation>
</message>
<message>
+ <location line="+6"/>
<source>Matches are case insensitive</source>
<translation>比對為區分大小寫</translation>
</message>
<message>
+ <location line="+4"/>
<source>Whitespace characters are removed, except when they appear in character classes</source>
<translation>空白字元已移除,除非它們出現在字元類別</translation>
</message>
<message>
+ <location line="+99"/>
<source>%1 is an invalid regular expression pattern: %2</source>
<translation>%1 是不合法的正規表示式樣式:%2</translation>
</message>
<message>
+ <location line="+30"/>
<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"/>
+ <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>如果第一個參數是空序列,或是長度為 0 的字串(沒有命名空間),則無法指定前置字串。但是您指定了 %1。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="317"/>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/>
<source>It will not be possible to retrieve %1.</source>
<translation>無法取得 %1。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="24"/>
+ <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/functions/qsequencegeneratingfns.cpp" line="249"/>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
<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/functions/qstringvaluefns.cpp" line="222"/>
+ <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="57"/>
+ <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 line="+12"/>
<source>%1 is not a whole number of minutes.</source>
<translation>%1 不是分鐘的數值。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="28"/>
+ <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/janitors/qitemverifier.cpp" line="37"/>
+ <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="+379"/>
+ <location line="+7253"/>
<source>%1 is an unknown schema type.</source>
<translation>%1 是未知的機制型態。</translation>
</message>
<message>
+ <location line="-6971"/>
<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 line="+63"/>
<source>No variable by name %1 exists</source>
<translation>沒有名為 %1 的變數存在</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="63"/>
+ <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="2841"/>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+2841"/>
<source>Version %1 is not supported. The supported XQuery version is 1.0.</source>
<translation>版本 %1 未支援。支援的 XQuery 版本為 1.0。</translation>
</message>
<message>
+ <location line="+16"/>
<source>The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2.</source>
<translation>編碼 %1 不合法。必須只能包含拉丁字元,不含空白,並且要符合正規表示式 %2。</translation>
</message>
<message>
+ <location line="+55"/>
<source>No function with signature %1 is available</source>
<translation>沒有簽章為 %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>預設的命名空間宣告必須在函式、變數與選項宣告之前。</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 line="+200"/>
<source>It is not possible to redeclare prefix %1.</source>
<translation>無法重宣告前置字串 %1。</translation>
</message>
@@ -6135,22 +7466,27 @@ Please choose a different file name.</source>
<translation type="obsolete">只有前置字串 %1 可以被宣告與命名空間 %2 結合。它預設已經與前置字串 %1 結合。</translation>
</message>
<message>
+ <location line="+18"/>
<source>Prefix %1 is already declared in the prolog.</source>
<translation>前置字串 %1 已在 prolog 中宣告。</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>
@@ -6159,6 +7495,7 @@ Please choose a different file name.</source>
<translation type="obsolete">名稱為 %1 的變數已經在 prolog 中宣告。</translation>
</message>
<message>
+ <location line="+52"/>
<source>No value is available for the external variable by name %1.</source>
<translation>名為 %1 的外部變數沒有可用的值。</translation>
</message>
@@ -6167,162 +7504,202 @@ Please choose a different file name.</source>
<translation type="obsolete">使用者定義的函式的命名空間不能是空的(請試試使用預定義前置字串 %1)</translation>
</message>
<message>
+ <location line="-4154"/>
<source>A construct was encountered which only is allowed in XQuery.</source>
<translation>遇到了建構,實際上只能允許在 XQuery 內。</translation>
</message>
<message>
+ <location line="+118"/>
<source>A template by name %1 has already been declared.</source>
<translation>名為 %1 的屬性已被宣告。</translation>
</message>
<message>
+ <location line="+3581"/>
<source>The keyword %1 cannot occur with any other mode name.</source>
<translation>關鍵字 %1 不能與任何其它模式名稱一起存在。</translation>
</message>
<message>
+ <location line="+29"/>
<source>The value of attribute %1 must of type %2, which %3 isn&apos;t.</source>
<translation>屬性 %1 的值必須為型態 %2,但 %3 不是。</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>前置字串 %1 不能被結合。預設它已與命名空間 %2 結合。</translation>
</message>
<message>
+ <location line="+312"/>
<source>A variable by name %1 has already been declared.</source>
<translation>名為 %1 的變數已被宣告。</translation>
</message>
<message>
+ <location line="+135"/>
<source>A stylesheet function must have a prefixed name.</source>
<translation>樣式表函式必須有前置名稱。</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>使用者定義函式的命名空間不能為空白(請試著用預先定義的前置字串 %1)</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>命名空間 %1 已被保留,因此使用者定義函式不能使用它。請試試預定義前置字串 %2。</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>在函式模組中的使用者定義函式的命名空間必須與模組的命名空間相同。也就是,應該為 %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="+37"/>
<source>An argument by 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="+758"/>
<source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source>
<translation>未支援機制確認功能。%1 敘述無法使用。</translation>
</message>
<message>
+ <location line="+39"/>
<source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source>
<translation>未支援 pragma 敘述。因次,必須有預設的敘述。</translation>
</message>
<message>
+ <location line="+267"/>
<source>Each name of a template parameter must be unique; %1 is duplicated.</source>
<translation>每個樣本參數的名稱必須唯一;%1 已經被使用。</translation>
</message>
<message>
+ <location line="+129"/>
<source>The %1-axis is unsupported in XQuery</source>
<translation>XQuery 中未支援 %1 軸</translation>
</message>
<message>
+ <location line="+1150"/>
<source>%1 is not a valid name for a processing-instruction.</source>
<translation>%1 不是處理指令的合法名稱。</translation>
</message>
<message>
+ <location line="-7029"/>
<source>%1 is not a valid numeric literal.</source>
<translation>%1 不是合法的數值。</translation>
</message>
<message>
+ <location line="+6165"/>
<source>No function by name %1 is available.</source>
<translation>沒有名為 %1 的函式。</translation>
</message>
<message>
+ <location line="+102"/>
<source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source>
<translation>要與前置字串 %1 結合的命名空間網址不能是空字串。</translation>
</message>
<message>
+ <location line="+7"/>
<source>%1 is an invalid namespace URI.</source>
<translation>%1 是不合法的命名空間網址。</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="+7"/>
<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="+15"/>
<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>命名空間網址必須是常數,並且不能使用封閉敘述。</translation>
</message>
<message>
+ <location line="+16"/>
<source>An attribute by 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>
@@ -6331,260 +7708,313 @@ Please choose a different file name.</source>
<translation type="obsolete">%1 不是一個合法的處理指令的名稱。因此名稱測試永遠不會成功。</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>%1 不是範圍內屬性宣告。注意機制匯入功能未支援。</translation>
</message>
<message>
+ <location line="+48"/>
<source>The name of an extension expression must be in a namespace.</source>
<translation>延伸敘述的名稱必須在命名空間內。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="25"/>
+ <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>0 或 1 個</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>0 個以上</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="33"/>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
<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 line="+49"/>
<source>The focus is undefined.</source>
<translation>焦點未定義。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="56"/>
+ <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>不能在任何其它種類的節點後面加入屬性。</translation>
</message>
<message>
+ <location line="+7"/>
<source>An attribute by name %1 has already been created.</source>
<translation>名為 %1 的屬性已被建立。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="90"/>
+ <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/api/qxmlserializer.cpp" line="60"/>
+ <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="284"/>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
<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>在 %2 內的代碼點 %1(編碼 %3)是一個不合法的 XML 字元。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="89"/>
+ <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="39"/>
<source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source>
- <translation>在命名空間建構子中,命名空間的值不能是空字串。</translation>
+ <translation type="obsolete">在命名空間建構子中,命名空間的值不能是空字串。</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>前置字串必須是合法的 %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/qevaluationcache.cpp" line="87"/>
+ <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
<source>Circularity detected</source>
<translation>偵測到環狀</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="115"/>
+ <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="35"/>
+ <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="489"/>
+ <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>XLS-T 版本屬性的值必須是型態 %1 的值,而 %2 不是。</translation>
</message>
<message>
+ <location line="+20"/>
<source>Running an XSL-T 1.0 stylesheet with a 2.0 processor.</source>
<translation>使用 2.0 處理器執行 XSL-T 1.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>在元素 %2 的 %1 屬性中至少要指定一個模式。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="153"/>
+ <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>屬性 %1 不能出現在元素 %2。只能有標準屬性。</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>屬性 %1 不能出現在元素 %2。只能有 %3 以及標準屬性。</translation>
</message>
<message>
+ <location line="+8"/>
<source>Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes.</source>
<translation>屬性 %1 不能出現在元素 %2。只能有 %3,%4 以及標準屬性。</translation>
</message>
<message>
+ <location line="+9"/>
<source>Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes.</source>
<translation>屬性 %1 不能出現在元素 %2。只能有 %3 以及標準屬性。</translation>
</message>
<message>
+ <location line="+13"/>
<source>XSL-T attributes on XSL-T elements must be in the null namespace, not in the XSL-T namespace which %1 is.</source>
<translation>XSL-T 元素內的 XSL-T 屬性必須放在空(null)的命名空間,而不是像 %1 在 XSL-T 命名空間。</translation>
</message>
<message>
+ <location line="+12"/>
<source>The attribute %1 must appear on element %2.</source>
<translation>屬性 %1 必須在元素 %2 內出現。</translation>
</message>
<message>
+ <location line="+8"/>
<source>The element with local name %1 does not exist in XSL-T.</source>
<translation>有本地名稱 %1 的元素在 XSL-T 內不存在。</translation>
</message>
<message>
- <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="123"/>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" 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>當屬性 %1 出現在 %2 內時,不能使用序列建構子。</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>元素 %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>屬性 %1 不能出現在 %2,因為它是 %3 的子元素。</translation>
</message>
<message>
+ <location line="+15"/>
<source>A parameter in a function cannot be declared to be a tunnel.</source>
<translation>函式內的參數不能被宣告為通道(tunnel)。</translation>
</message>
<message>
+ <location line="+149"/>
<source>This processor is not Schema-aware and therefore %1 cannot be used.</source>
<translation>此處理器不是 Schema-aware,因此不能使用 %1。</translation>
</message>
<message>
+ <location line="+57"/>
<source>Top level stylesheet elements must be in a non-null namespace, which %1 isn&apos;t.</source>
<translation>頂層樣式表元素必須是非空白的命名空間,而 %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>元素 %2 內屬性 %1 的值必須是 %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>%2 必須至少有一個子元素 %1。</translation>
</message>
@@ -6592,11 +8022,13 @@ Please choose a different file name.</source>
<context>
<name>VolumeSlider</name>
<message>
- <location filename="../src/3rdparty/phonon/phonon/volumeslider.cpp" line="67"/>
+ <location filename="../src/3rdparty/phonon/phonon/volumeslider.cpp" line="+67"/>
<source>Muted</source>
<translation>靜音</translation>
</message>
<message>
+ <location line="+5"/>
+ <location line="+15"/>
<source>Volume: %1%</source>
<translation>音量:%1%</translation>
</message>
diff --git a/translations/qtconfig_pl.ts b/translations/qtconfig_pl.ts
index cff5eb1..cafc022 100644
--- a/translations/qtconfig_pl.ts
+++ b/translations/qtconfig_pl.ts
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="pl_PL">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="pl_PL">
<context>
<name>MainWindow</name>
<message>
- <location filename="../tools/qtconfig/mainwindow.cpp" line="+344"/>
+ <location filename="../tools/qtconfig/mainwindow.cpp" line="+351"/>
<source>On The Spot</source>
<translation>W oknie dokumentu (On-The-Spot)</translation>
</message>
@@ -76,7 +76,7 @@
<translation>Użyj prostego oprogramowania renderującego</translation>
</message>
<message>
- <location line="+74"/>
+ <location line="+79"/>
<source>Over The Spot</source>
<translation>Nad oknem dokumentu (Over-The-Spot)</translation>
</message>
@@ -91,17 +91,21 @@
<translation>W dodatkowym oknie (Root)</translation>
</message>
<message>
- <location line="+455"/>
+ <location line="+466"/>
<source>Select a Directory</source>
<translation>Wybierz katalog</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) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt; </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;Version %2</source>
- <translation>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;Wersja %2</translation>
+ <translation type="obsolete">&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;Wersja %2</translation>
</message>
<message>
- <location line="+20"/>
+ <location line="+6"/>
<location line="+1"/>
<location line="+8"/>
<source>Qt Configuration</source>
@@ -133,12 +137,22 @@
<translation>&amp;Anuluj</translation>
</message>
<message>
- <location line="-577"/>
+ <location line="-578"/>
<source>No changes to be saved.</source>
<translation>Brak zmian do zapisania.</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="-259"/>
+ <source>Desktop Settings (Default)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Choose style and palette based on your desktop settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+258"/>
<source>Saving changes...</source>
<translation>Zapisywanie zmian...</translation>
</message>
@@ -809,6 +823,14 @@ p, li { white-space: pre-wrap; }
</message>
</context>
<context>
+ <name>PreviewFrame</name>
+ <message>
+ <location filename="../tools/qtconfig/previewframe.cpp" line="+81"/>
+ <source>Desktop settings will only take effect after an application restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PreviewWidgetBase</name>
<message>
<location filename="../tools/qtconfig/previewwidgetbase.ui"/>
diff --git a/translations/qtconfig_untranslated.ts b/translations/qtconfig_untranslated.ts
index 09f8985..e0f85c3 100644
--- a/translations/qtconfig_untranslated.ts
+++ b/translations/qtconfig_untranslated.ts
@@ -1,9 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0">
+<!DOCTYPE TS>
+<TS version="2.0">
<context>
<name>MainWindow</name>
<message>
- <location filename="../tools/qtconfig/mainwindow.cpp" line="+344"/>
+ <location filename="../tools/qtconfig/mainwindow.cpp" line="+202"/>
+ <source>Desktop Settings (Default)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Choose style and palette based on your desktop settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+144"/>
<source>On The Spot</source>
<translation type="unfinished"></translation>
</message>
@@ -75,7 +86,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+26"/>
+ <location line="+27"/>
<source>No changes to be saved.</source>
<translation type="unfinished"></translation>
</message>
@@ -85,7 +96,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+44"/>
+ <location line="+48"/>
<source>Over The Spot</source>
<translation type="unfinished"></translation>
</message>
@@ -100,17 +111,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+455"/>
+ <location line="+466"/>
<source>Select a Directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+17"/>
- <source>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;Version %2</source>
+ <source>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;Version %2&lt;br/&gt;&lt;br/&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+20"/>
+ <location line="+6"/>
<location line="+1"/>
<location line="+8"/>
<source>Qt Configuration</source>
@@ -796,6 +807,14 @@ p, li { white-space: pre-wrap; }
</message>
</context>
<context>
+ <name>PreviewFrame</name>
+ <message>
+ <location filename="../tools/qtconfig/previewframe.cpp" line="+81"/>
+ <source>Desktop settings will only take effect after an application restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PreviewWidgetBase</name>
<message>
<location filename="../tools/qtconfig/previewwidgetbase.ui"/>
diff --git a/translations/qtconfig_zh_CN.ts b/translations/qtconfig_zh_CN.ts
index 90d3e6b..63e198c 100644
--- a/translations/qtconfig_zh_CN.ts
+++ b/translations/qtconfig_zh_CN.ts
@@ -1,16 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="zh_CN">
-<defaultcodec></defaultcodec>
<context>
<name>MainWindow</name>
<message>
- <location filename="../tools/qtconfig/mainwindow.cpp" line="+344"/>
+ <location filename="../tools/qtconfig/mainwindow.cpp" line="+351"/>
<source>On The Spot</source>
<translation>客户端程序预编辑模式(On The Spot)</translation>
</message>
<message>
- <location line="+157"/>
+ <location line="+162"/>
<source>Over The Spot</source>
<translation>光标跟随风格(Over The Spot)</translation>
</message>
@@ -25,17 +24,16 @@
<translation>输入服务器预编辑模式(Root)</translation>
</message>
<message>
- <location line="+455"/>
+ <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</source>
- <translation>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;版本 %2</translation>
+ <translation type="obsolete">&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;版本 %2</translation>
</message>
<message>
- <location line="+20"/>
+ <location line="+23"/>
<location line="+1"/>
<location line="+8"/>
<source>Qt Configuration</source>
@@ -67,7 +65,7 @@
<translation>取消(&amp;C)</translation>
</message>
<message>
- <location line="-577"/>
+ <location line="-578"/>
<source>No changes to be saved.</source>
<translation>没有变化被保存。</translation>
</message>
@@ -77,7 +75,7 @@
<translation>正在保存变化...</translation>
</message>
<message>
- <location line="-80"/>
+ <location line="-81"/>
<location line="+1"/>
<location line="+38"/>
<location line="+1"/>
@@ -85,7 +83,17 @@
<translation>自动(默认)</translation>
</message>
<message>
- <location line="-38"/>
+ <location line="-222"/>
+ <source>Desktop Settings (Default)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Choose style and palette based on your desktop settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+179"/>
<source>Choose audio output automatically.</source>
<translation>自动选择音频输出。</translation>
</message>
@@ -133,7 +141,12 @@
<translation>使用简单的软件渲染。</translation>
</message>
<message>
- <location line="-47"/>
+ <location line="+566"/>
+ <source>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;Version %2&lt;br/&gt;&lt;br/&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt; </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="-613"/>
<location line="+1"/>
<source>aRts</source>
<translation>aRts</translation>
@@ -810,6 +823,14 @@ p, li { white-space: pre-wrap; }
</message>
</context>
<context>
+ <name>PreviewFrame</name>
+ <message>
+ <location filename="../tools/qtconfig/previewframe.cpp" line="+81"/>
+ <source>Desktop settings will only take effect after an application restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PreviewWidgetBase</name>
<message>
<location filename="../tools/qtconfig/previewwidgetbase.ui"/>
diff --git a/translations/qtconfig_zh_TW.ts b/translations/qtconfig_zh_TW.ts
index 88f9bb0..d55614d 100644
--- a/translations/qtconfig_zh_TW.ts
+++ b/translations/qtconfig_zh_TW.ts
@@ -1,110 +1,158 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="zh_TW">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_TW">
<context>
<name>MainWindow</name>
<message>
- <location filename="../tools/qtconfig/mainwindow.cpp" line="344"/>
+ <location filename="../tools/qtconfig/mainwindow.cpp" line="+351"/>
<source>On The Spot</source>
<translation>On The Spot(在輸入處輸入)</translation>
</message>
<message>
+ <location line="+110"/>
<source>No changes to be saved.</source>
<translation>沒有要儲存的變更。</translation>
</message>
<message>
+ <location line="+4"/>
<source>Saving changes...</source>
<translation>儲存變更...</translation>
</message>
<message>
+ <location line="+48"/>
<source>Over The Spot</source>
<translation>Over The Spot(在輸入處提供編輯視窗)</translation>
</message>
<message>
+ <location line="+2"/>
<source>Off The Spot</source>
<translation>Off The Spot(在輸入處下方提供編輯視窗)</translation>
</message>
<message>
+ <location line="+2"/>
<source>Root</source>
<translation>Root(使用根視窗)</translation>
</message>
<message>
+ <location line="+466"/>
<source>Select a Directory</source>
<translation>選擇一個目錄</translation>
</message>
<message>
<source>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;Version %2</source>
- <translation>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;版本 %2</translation>
+ <translation type="obsolete">&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;版本 %2</translation>
</message>
<message>
+ <location line="+23"/>
+ <location line="+1"/>
+ <location line="+8"/>
<source>Qt Configuration</source>
<translation>Qt 設定</translation>
</message>
<message>
+ <location line="+22"/>
<source>Save Changes</source>
<translation>儲存變更</translation>
</message>
<message>
+ <location line="+1"/>
<source>Save changes to settings?</source>
<translation>要儲存設定的變更嗎?</translation>
</message>
<message>
+ <location line="+1"/>
<source>&amp;Yes</source>
<translation>是(&amp;Y)</translation>
</message>
<message>
+ <location line="+0"/>
<source>&amp;No</source>
<translation>否(&amp;N)</translation>
</message>
<message>
+ <location line="+0"/>
<source>&amp;Cancel</source>
<translation>取消(&amp;C)</translation>
</message>
<message>
+ <location line="-655"/>
+ <location line="+1"/>
+ <location line="+38"/>
+ <location line="+1"/>
<source>Auto (default)</source>
<translation>自動(預設)</translation>
</message>
<message>
+ <location line="-222"/>
+ <source>Desktop Settings (Default)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Choose style and palette based on your desktop settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+179"/>
<source>Choose audio output automatically.</source>
<translation>自動選擇音效輸出。</translation>
</message>
<message>
+ <location line="+34"/>
<source>Phonon GStreamer backend not available.</source>
<translation>沒有 Phonon GStreamer 後端介面。</translation>
</message>
<message>
+ <location line="+4"/>
<source>Choose render method automatically</source>
<translation>自動選擇成像方法</translation>
</message>
<message>
+ <location line="+2"/>
+ <location line="+1"/>
<source>X11</source>
<translation>X11</translation>
</message>
<message>
+ <location line="+0"/>
<source>Use X11 Overlays</source>
<translation>使用 X11 成像</translation>
</message>
<message>
+ <location line="+3"/>
+ <location line="+1"/>
<source>OpenGL</source>
<translation>OpenGL</translation>
</message>
<message>
+ <location line="+0"/>
<source>Use OpenGL if avaiable</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="+566"/>
+ <source>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;Version %2&lt;br/&gt;&lt;br/&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt; </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="-613"/>
+ <location line="+1"/>
<source>aRts</source>
<translation>aRts</translation>
</message>
<message>
+ <location line="+1"/>
<source>Experimental aRts support for GStreamer.</source>
<translation>GStreamer 中實驗性的 aRts 支援。</translation>
</message>
@@ -112,318 +160,397 @@
<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;S):</translation>
</message>
<message>
+ <location/>
<source>Build Palette</source>
<translation>建構調色盤</translation>
</message>
<message>
+ <location/>
<source>&amp;3-D Effects:</source>
<translation>立體效果(&amp;3):</translation>
</message>
<message>
+ <location/>
<source>Window Back&amp;ground:</source>
<translation>視窗背景(&amp;G):</translation>
</message>
<message>
+ <location/>
<source>&amp;Tune Palette...</source>
<translation>調整調色盤(&amp;T)...</translation>
</message>
<message>
+ <location/>
<source>Preview</source>
<translation>預覽</translation>
</message>
<message>
+ <location/>
<source>Select &amp;Palette:</source>
<translation>選擇調色盤(&amp;P):</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;S)</translation>
</message>
<message>
+ <location/>
<source>&amp;Point Size:</source>
<translation>點大小(&amp;P):</translation>
</message>
<message>
+ <location/>
<source>F&amp;amily:</source>
<translation>家族(&amp;A):</translation>
</message>
<message>
+ <location/>
<source>Sample Text</source>
<translation>範例文字</translation>
</message>
<message>
+ <location/>
<source>Font Substitution</source>
<translation>字型替換</translation>
</message>
<message>
+ <location/>
<source>S&amp;elect or Enter a Family:</source>
<translation>選擇或輸入一個字型家族(&amp;E):</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;U):</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>感覺設定</translation>
</message>
<message>
+ <location/>
<source> ms</source>
<translation> 毫秒</translation>
</message>
<message>
+ <location/>
<source>&amp;Double Click Interval:</source>
<translation>雙擊間隔(&amp;D):</translation>
</message>
<message>
+ <location/>
<source>No blinking</source>
<translation>不閃爍</translation>
</message>
<message>
+ <location/>
<source>&amp;Cursor Flash Time:</source>
<translation>游標閃爍時間(&amp;C):</translation>
</message>
<message>
+ <location/>
<source> lines</source>
<translation> 行</translation>
</message>
<message>
+ <location/>
<source>Wheel &amp;Scroll Lines:</source>
<translation>滾輪捲軸行數(&amp;S):</translation>
</message>
<message>
+ <location/>
<source>Resolve symlinks in URLs</source>
<translation>解譯網址中的符號連結</translation>
</message>
<message>
+ <location/>
<source>GUI Effects</source>
<translation>使用者介面效果</translation>
</message>
<message>
+ <location/>
<source>&amp;Enable</source>
<translation>開啟(&amp;E)</translation>
</message>
<message>
+ <location/>
<source>Alt+E</source>
<translation>Alt+E</translation>
</message>
<message>
+ <location/>
<source>&amp;Menu Effect:</source>
<translation>選單效果(&amp;M)</translation>
</message>
<message>
+ <location/>
<source>C&amp;omboBox Effect:</source>
<translation>下拉式選單效果(&amp;O):</translation>
</message>
<message>
+ <location/>
<source>&amp;ToolTip Effect:</source>
<translation>工具提示效果(&amp;T):</translation>
</message>
<message>
+ <location/>
<source>Tool&amp;Box Effect:</source>
<translation>工具盒效果(&amp;B):</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>全域支柱(Strut)</translation>
</message>
<message>
+ <location/>
<source>Minimum &amp;Width:</source>
<translation>最小寬度(&amp;W):</translation>
</message>
<message>
+ <location/>
<source>Minimum Hei&amp;ght:</source>
<translation>最小高度(&amp;G):</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>On The Spot(在輸入處輸入)</translation>
</message>
<message>
+ <location/>
<source>Over The Spot</source>
<translation>Over The Spot(在輸入處提供編輯視窗)</translation>
</message>
<message>
+ <location/>
<source>Off The Spot</source>
<translation>Off The Spot(在輸入處下方提供編輯視窗)</translation>
</message>
<message>
+ <location/>
<source>Root</source>
<translation>Root(使用根視窗)</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>按下「瀏覽」鍵或輸入一個目錄並按 Enter 鍵來加入列表中。</translation>
</message>
<message>
+ <location/>
<source>&amp;File</source>
<translation>檔案(&amp;F)</translation>
</message>
<message>
+ <location/>
<source>&amp;Help</source>
<translation>說明(&amp;H)</translation>
</message>
<message>
+ <location/>
<source>&amp;Save</source>
<translation>儲存(&amp;S)</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;X)</translation>
</message>
<message>
+ <location/>
<source>Exit</source>
<translation>離開</translation>
</message>
<message>
+ <location/>
<source>&amp;About</source>
<translation>關於(&amp;A)</translation>
</message>
<message>
+ <location/>
<source>About</source>
<translation>關於</translation>
</message>
<message>
+ <location/>
<source>About &amp;Qt</source>
<translation>關於Qt (&amp;Q)</translation>
</message>
<message>
+ <location/>
<source>About Qt</source>
<translation>關於Qt</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; }
@@ -436,10 +563,12 @@ 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; }
@@ -452,18 +581,22 @@ 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; }
@@ -476,6 +609,7 @@ 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>Please use the KDE Control Center to set the palette.</source>
<translation>請使用 KDE 控制中心來設定調色盤。</translation>
</message>
@@ -483,217 +617,278 @@ 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;P):</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>從啟用的調色盤建立新的非啟用的調色盤</translation>
</message>
<message>
+ <location/>
<source>Build disabled palette from active</source>
<translation>從啟用的調色盤建立新的關閉的調色盤</translation>
</message>
<message>
+ <location/>
<source>Central color &amp;roles</source>
<translation>將顏色角色置中(&amp;R)</translation>
</message>
<message>
+ <location/>
<source>Choose central color role</source>
<translation>選擇中央顏色角色</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>&lt;b&gt;選擇顏色角色&lt;/b&gt;&lt;p&gt;可用的中央角色包括:&lt;ul&gt;&lt;li&gt;視窗─一般背景顏色。&lt;/li&gt;&lt;li&gt;視窗文字─一般前景文字&lt;/li&gt;&lt;li&gt;基底─用於如文字輸入元件的背景,通常是白色或其它較淡的顏色。&lt;/li&gt;&lt;li&gt;文字─與基底一起使用的前景顏色。通常是與視窗文字一樣,這樣可以讓視窗與基底都有好的對比效果。&lt;/li&gt;&lt;li&gt;按鍵─一般按鍵的背景顏色,要與視窗的背景顏色不同,就像麥金塔式的風格。&lt;/li&gt;&lt;li&gt;按鍵文字─用於按鍵的前景顏色。&lt;/li&gt;&lt;li&gt;突顯─用於選擇區或突顯項目的顏色。&lt;/li&gt;&lt;li&gt;突顯文字─突顯文字用的顏色。&lt;/li&gt;&lt;li&gt;明亮文字─與視窗文字非常不同的文字顏色。&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;</translation>
</message>
<message>
+ <location/>
<source>Window</source>
<translation>視窗</translation>
</message>
<message>
+ <location/>
<source>WindowText</source>
<translation>視窗文字</translation>
</message>
<message>
+ <location/>
<source>Button</source>
<translation>按鍵</translation>
</message>
<message>
+ <location/>
<source>Base</source>
<translation>基底</translation>
</message>
<message>
+ <location/>
<source>Text</source>
<translation>文字</translation>
</message>
<message>
+ <location/>
<source>BrightText</source>
<translation>明亮文字</translation>
</message>
<message>
+ <location/>
<source>ButtonText</source>
<translation>按鍵文字</translation>
</message>
<message>
+ <location/>
<source>Highlight</source>
<translation>突顯</translation>
</message>
<message>
+ <location/>
<source>HighlightedText</source>
<translation>突顯文字</translation>
</message>
<message>
+ <location/>
<source>&amp;Select Color:</source>
<translation>選擇顏色(&amp;S):</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;E)</translation>
</message>
<message>
+ <location/>
<source>Build &amp;from button color</source>
<translation>從按鍵顏色建立(&amp;F)</translation>
</message>
<message>
+ <location/>
<source>Generate shadings</source>
<translation>產生遮蔽</translation>
</message>
<message>
+ <location/>
<source>Check to let 3D-effect colors be calculated from button-color.</source>
<translation>勾選以讓立體效果可以從按鍵顏色中計算顏色。</translation>
</message>
<message>
+ <location/>
<source>Choose 3D-effect color role</source>
<translation>選擇立體效果顏色角色</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;淡─比按鍵顏色淡。&lt;li&gt;&lt;li&gt;中淡─在按鍵顏色與淡色之間。&lt;/li&gt;&lt;li&gt;中等─在按鍵顏色與暗色之間。&lt;/li&gt;&lt;li&gt;暗色─比按鍵顏色暗。&lt;/li&gt;&lt;li&gt;陰影:非常暗的顏色。&lt;/li&gt;&lt;/ul&gt;</translation>
</message>
<message>
+ <location/>
<source>Light</source>
<translation>淡</translation>
</message>
<message>
+ <location/>
<source>Midlight</source>
<translation>中淡</translation>
</message>
<message>
+ <location/>
<source>Mid</source>
<translation>中等</translation>
</message>
<message>
+ <location/>
<source>Dark</source>
<translation>暗</translation>
</message>
<message>
+ <location/>
<source>Shadow</source>
<translation>陰影</translation>
</message>
<message>
+ <location/>
<source>Select Co&amp;lor:</source>
<translation>選擇顏色(&amp;O):</translation>
</message>
<message>
+ <location/>
<source>Choose a color for the selected effect color role.</source>
<translation>選擇用於選取的效果顏色角色的顏色。</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>
</context>
<context>
+ <name>PreviewFrame</name>
+ <message>
+ <location filename="../tools/qtconfig/previewframe.cpp" line="+81"/>
+ <source>Desktop settings will only take effect after an application restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PreviewWidgetBase</name>
<message>
+ <location filename="../tools/qtconfig/previewwidgetbase.ui"/>
<source>Preview Window</source>
<translation>預覽視窗</translation>
</message>
<message>
+ <location/>
<source>ButtonGroup</source>
<translation>按鍵群組</translation>
</message>
<message>
+ <location/>
<source>RadioButton1</source>
<translation>圓鈕1</translation>
</message>
<message>
+ <location/>
<source>RadioButton2</source>
<translation>圓鈕2</translation>
</message>
<message>
+ <location/>
<source>RadioButton3</source>
<translation>圓鈕3</translation>
</message>
<message>
+ <location/>
<source>ButtonGroup2</source>
<translation>按鍵群組2</translation>
</message>
<message>
+ <location/>
<source>CheckBox1</source>
<translation>勾選盒1</translation>
</message>
<message>
+ <location/>
<source>CheckBox2</source>
<translation>勾選盒2</translation>
</message>
<message>
+ <location/>
<source>LineEdit</source>
<translation>行編輯區</translation>
</message>
<message>
+ <location/>
<source>ComboBox</source>
<translation>下拉式選單</translation>
</message>
<message>
+ <location/>
<source>PushButton</source>
<translation>按鍵</translation>
</message>
<message>
+ <location/>
<source>&lt;p&gt;
&lt;a href=&quot;http://qtsoftware.com&quot;&gt;http://qtsoftware.com&lt;/a&gt;
&lt;/p&gt;
diff --git a/translations/qvfb_pl.ts b/translations/qvfb_pl.ts
index ac42503..a5baaed 100644
--- a/translations/qvfb_pl.ts
+++ b/translations/qvfb_pl.ts
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="pl">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="pl">
<context>
<name>AnimationSaveWidget</name>
<message>
- <location filename="../tools/qvfb/qvfb.cpp" line="+824"/>
+ <location filename="../tools/qvfb/qvfb.cpp" line="+850"/>
<location line="+204"/>
<source>Record</source>
<translation>Nagraj</translation>
@@ -249,7 +249,7 @@
<context>
<name>DeviceSkin</name>
<message>
- <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+49"/>
+ <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/>
<source>The image file &apos;%1&apos; could not be loaded.</source>
<translation>Nie można załadować pliku z obrazkiem &apos;%1&apos;.</translation>
</message>
diff --git a/translations/qvfb_untranslated.ts b/translations/qvfb_untranslated.ts
index 0f75227..cc18132 100644
--- a/translations/qvfb_untranslated.ts
+++ b/translations/qvfb_untranslated.ts
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0">
+<!DOCTYPE TS>
+<TS version="2.0">
<context>
<name>AnimationSaveWidget</name>
<message>
- <location filename="../tools/qvfb/qvfb.cpp" line="+824"/>
+ <location filename="../tools/qvfb/qvfb.cpp" line="+850"/>
<location line="+204"/>
<source>Record</source>
<translation type="unfinished"></translation>
@@ -248,7 +249,7 @@
<context>
<name>DeviceSkin</name>
<message>
- <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+49"/>
+ <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/>
<source>The image file &apos;%1&apos; could not be loaded.</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/qvfb_zh_CN.ts b/translations/qvfb_zh_CN.ts
index cbccfe3..d9c816d 100644
--- a/translations/qvfb_zh_CN.ts
+++ b/translations/qvfb_zh_CN.ts
@@ -4,7 +4,7 @@
<context>
<name>AnimationSaveWidget</name>
<message>
- <location filename="../tools/qvfb/qvfb.cpp" line="+824"/>
+ <location filename="../tools/qvfb/qvfb.cpp" line="+850"/>
<location line="+204"/>
<source>Record</source>
<translation>录像</translation>
@@ -249,7 +249,7 @@
<context>
<name>DeviceSkin</name>
<message>
- <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+49"/>
+ <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/>
<source>The image file &apos;%1&apos; could not be loaded.</source>
<translation>图像文件“%1”不能被加载。</translation>
</message>
diff --git a/translations/qvfb_zh_TW.ts b/translations/qvfb_zh_TW.ts
index a48aae4..b789479 100644
--- a/translations/qvfb_zh_TW.ts
+++ b/translations/qvfb_zh_TW.ts
@@ -1,57 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="zh_TW">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_TW">
<context>
<name>AnimationSaveWidget</name>
<message>
+ <location filename="../tools/qvfb/qvfb.cpp" line="+850"/>
+ <location line="+204"/>
<source>Record</source>
<translation>錄影</translation>
</message>
<message>
+ <location line="-202"/>
<source>Reset</source>
<translation>重置</translation>
</message>
<message>
+ <location line="+2"/>
<source>Save</source>
<translation>儲存</translation>
</message>
<message>
+ <location line="+18"/>
<source>Save in MPEG format (requires netpbm package installed)</source>
<translation>以 MPEG 格式儲存 (需要安裝 netpbm 套件)</translation>
</message>
<message>
+ <location line="+8"/>
+ <location line="+206"/>
<source>Click record to begin recording.</source>
<translation>按下「錄影」開始錄影。</translation>
</message>
<message>
+ <location line="-115"/>
+ <location line="+147"/>
<source>Finished saving.</source>
<translation>完成儲存。</translation>
</message>
<message>
+ <location line="-63"/>
<source>Paused. Click record to resume, or save if done.</source>
<translation>已暫停。按下「錄影」可以繼續,按「儲存」表示已完成。</translation>
</message>
<message>
+ <location line="+6"/>
<source>Pause</source>
<translation>暫停</translation>
</message>
<message>
+ <location line="+1"/>
<source>Recording...</source>
<translation>錄影中...</translation>
</message>
<message>
+ <location line="+40"/>
<source>Saving... </source>
<translation>儲存中...</translation>
</message>
<message>
+ <location line="+4"/>
+ <location line="+4"/>
<source>Save animation...</source>
<translation>儲存動畫...</translation>
</message>
<message>
+ <location line="+2"/>
<source>Save canceled.</source>
<translation>儲存已取消。</translation>
</message>
<message>
+ <location line="+9"/>
<source>Save failed!</source>
<translation>儲存失敗!</translation>
</message>
@@ -59,138 +76,172 @@
<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 「智慧型手機」</translation>
</message>
<message>
+ <location/>
<source>240x320 &quot;PDA&quot;</source>
<translation>240x320 「PDA」</translation>
</message>
<message>
+ <location/>
<source>320x240 &quot;TV&quot; / &quot;QVGA&quot;</source>
<translation>320x240 「TV」/「QVGA」</translation>
</message>
<message>
+ <location/>
<source>640x480 &quot;VGA&quot;</source>
<translation>640x480「VGA」</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>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>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>Skin</source>
<translation>外觀</translation>
</message>
<message>
+ <location/>
<source>None</source>
<translation>無</translation>
</message>
<message>
+ <location/>
<source>Emulate touch screen (no mouse move)</source>
<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;注意,任何使用此虛擬 framebuffer 的應用程式在您變更大小或深度後都會被終止。不過變更底下的 Gamma 值則不會。</translation>
</message>
<message>
+ <location/>
<source>Gamma</source>
<translation>Gamma</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;O)</translation>
</message>
<message>
+ <location/>
<source>&amp;Cancel</source>
<translation>取消(&amp;C)</translation>
</message>
<message>
+ <location/>
<source>15 bit</source>
<translation>15 位元</translation>
</message>
<message>
+ <location/>
<source>32 bit ARGB</source>
<translation>32 位元 ARGB</translation>
</message>
@@ -198,47 +249,57 @@
<context>
<name>DeviceSkin</name>
<message>
- <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="49"/>
+ <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>外觀目錄 %1 內並沒有設定檔。</translation>
</message>
<message>
+ <location line="+5"/>
<source>The skin configuration file &apos;%1&apos; could not be opened.</source>
<translation>無法開啟外觀設定檔 %1。</translation>
</message>
<message>
+ <location line="+6"/>
<source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
<translation>無法讀取外觀設定檔 %1。</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>「上」的外觀影像檔 %1 不存在。</translation>
</message>
<message>
+ <location line="+10"/>
<source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
<translation>「下」的外觀影像檔 %1 不存在。</translation>
</message>
<message>
+ <location line="+11"/>
<source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
<translation>「關閉」的外觀影像檔 %1 不存在。</translation>
</message>
<message>
+ <location line="+12"/>
<source>The skin cursor image file &apos;%1&apos; does not exist.</source>
<translation>游標的外觀影像檔 %1 不存在。</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>
@@ -246,14 +307,17 @@
<context>
<name>QVFb</name>
<message>
+ <location filename="../tools/qvfb/qvfb.cpp" line="-487"/>
<source>Browse...</source>
<translation>瀏覽...</translation>
</message>
<message>
+ <location line="+126"/>
<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/util/qlalr/doc/qlalr.qdocconf b/util/qlalr/doc/qlalr.qdocconf
index d97ff7d..a97ef6a 100644
--- a/util/qlalr/doc/qlalr.qdocconf
+++ b/util/qlalr/doc/qlalr.qdocconf
@@ -59,7 +59,7 @@ HTML.postheader = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0
HTML.footer = "<p /><address><hr /><div align=\"center\">\n" \
"<table width=\"100%\" cellspacing=\"0\" border=\"0\"><tr class=\"address\">\n" \
- "<td width=\"30%\">Copyright &copy; \$THISYEAR\$ <a href=\"trolltech.html\">Trolltech</a></td>\n" \
+ "<td width=\"30%\" align=\"left\">Copyright &copy; 2009 Nokia Corporation and/or its subsidiary(-ies)</td>\n" \
"<td width=\"40%\" align=\"center\"><a href=\"trademarks.html\">Trademarks</a></td>\n" \
"<td width=\"30%\" align=\"right\"><div align=\"right\">Qt \\version</div></td>\n" \
"</tr></table></div></address>"
diff --git a/util/scripts/make_qfeatures_dot_h b/util/scripts/make_qfeatures_dot_h
index 056c113..27f43e9 100755
--- a/util/scripts/make_qfeatures_dot_h
+++ b/util/scripts/make_qfeatures_dot_h
@@ -2,9 +2,9 @@
#
# Usage: make_qfeatures_dot_h
#
-# Generates core/base/qfeatures.h from core/base/qfeatures.txt.
+# Generates src/corelib/global/qfeatures.h from src/corelib/global/qfeatures.txt.
#
-# The tools/qfeatures.txt file can contain redundancies, and this program
+# The qfeatures.txt file can contain redundancies, and this program
# will show them.
#
@@ -86,11 +86,11 @@ print OUT
'/****************************************************************************
**
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (qt-info@nokia.com)
+** Contact: Qt Software Information (qt-info\@nokia.com)
**
** This file is part of the QtCore module of the Qt Toolkit.
**
-** $QT_BEGIN_LICENSE:LGPL$
+** \$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
@@ -119,8 +119,8 @@ print OUT
** met: http://www.gnu.org/copyleft/gpl.html.
**
** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-** $QT_END_LICENSE$
+** contact the sales department at qt-sales\@nokia.com.
+** \$QT_END_LICENSE\$
**
****************************************************************************/
diff --git a/util/webkit/mkdist-webkit b/util/webkit/mkdist-webkit
index 701133e..a7ecbc6 100755
--- a/util/webkit/mkdist-webkit
+++ b/util/webkit/mkdist-webkit
@@ -142,13 +142,11 @@ files_to_remove="$files_to_remove WebKit/qt/QtLauncher/QtLauncher.pro"
files_to_remove="$files_to_remove WebKit/qt/QtLauncher/main.cpp"
files_to_remove="$files_to_remove JavaScriptCore/AllInOneFile.cpp"
-files_to_remove="$files_to_remove JavaScriptCore/JavaScriptCore.scons"
files_to_remove="$files_to_remove JavaScriptCore/JavaScriptCoreSources.bkl"
files_to_remove="$files_to_remove JavaScriptCore/SConstruct"
files_to_remove="$files_to_remove JavaScriptCore/jscore.bkl"
files_to_remove="$files_to_remove WebCore/SConstruct"
-files_to_remove="$files_to_remove WebCore/WebCore.scons"
files_to_remove="$files_to_remove WebCore/WebCoreSources.bkl"
files_to_remove="$files_to_remove WebCore/webcore-base.bkl"
files_to_remove="$files_to_remove WebCore/webcore-wx.bkl"