diff options
author | Michael Brasser <michael.brasser@nokia.com> | 2009-10-04 22:53:42 (GMT) |
---|---|---|
committer | Michael Brasser <michael.brasser@nokia.com> | 2009-10-04 22:53:42 (GMT) |
commit | 276857a52db4640095ede5e7840fabb451b97b85 (patch) | |
tree | dd8f26f85583a99b411bbcd6e5ceb4d280ff4af9 | |
parent | c76bb1dcda7b0339d9de427d155b593b3779bea7 (diff) | |
parent | 34a1438c4184afecc237fe0177ed4a536b2d5e43 (diff) | |
download | Qt-276857a52db4640095ede5e7840fabb451b97b85.zip Qt-276857a52db4640095ede5e7840fabb451b97b85.tar.gz Qt-276857a52db4640095ede5e7840fabb451b97b85.tar.bz2 |
Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into kinetic-declarativeui
Conflicts:
configure
218 files changed, 5018 insertions, 1969 deletions
diff --git a/config.tests/unix/javascriptcore-jit/hwcap_test.cpp b/config.tests/unix/javascriptcore-jit/hwcap_test.cpp new file mode 100644 index 0000000..f0f5d40 --- /dev/null +++ b/config.tests/unix/javascriptcore-jit/hwcap_test.cpp @@ -0,0 +1,46 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the 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 Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include <asm/hwcap.h> + +int main (int argc, char **argv) +{ + return 0; +} diff --git a/config.tests/unix/javascriptcore-jit/javascriptcore-jit.pro b/config.tests/unix/javascriptcore-jit/javascriptcore-jit.pro new file mode 100644 index 0000000..0d5a20d --- /dev/null +++ b/config.tests/unix/javascriptcore-jit/javascriptcore-jit.pro @@ -0,0 +1,2 @@ +SOURCES = hwcap_test.cpp +CONFIG -= qt dylib @@ -674,6 +674,7 @@ CFG_MULTIMEDIA=yes CFG_SVG=yes CFG_DECLARATIVE=yes CFG_WEBKIT=auto # (yes|no|auto) +CFG_JAVASCRIPTCORE_JIT=auto CFG_GFX_AVAILABLE="linuxfb transformed qvfb vnc multiscreen directfb" CFG_GFX_ON="linuxfb multiscreen" @@ -912,7 +913,7 @@ while [ "$#" -gt 0 ]; do VAL=no ;; #Qt style yes options - -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xinput|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-universal|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-svg|-declarative|-webkit|-script|-scripttools|-rpath|-force-pkg-config) + -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xinput|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-universal|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-svg|-declarative|-webkit|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config) VAR=`echo $1 | sed "s,^-\(.*\),\1,"` VAL=yes ;; @@ -1866,6 +1867,13 @@ while [ "$#" -gt 0 ]; do fi fi ;; + javascript-jit) + if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then + CFG_JAVASCRIPTCORE_JIT="$VAL" + else + UNKNOWN_OPT=yes + fi + ;; confirm-license) if [ "$VAL" = "yes" ]; then OPT_CONFIRM_LICENSE="$VAL" @@ -2317,9 +2325,6 @@ if [ "$CFG_EMBEDDED" != "no" ]; then *86_64) PLATFORM=qws/linux-x86_64-g++ ;; - *ppc) - PLATFORM=qws/linux-ppc-g++ - ;; *) PLATFORM=qws/linux-generic-g++ ;; @@ -2337,9 +2342,6 @@ if [ "$CFG_EMBEDDED" != "no" ]; then *86_64) CFG_EMBEDDED=x86_64 ;; - *ppc) - CFG_EMBEDDED=ppc - ;; *) CFG_EMBEDDED=generic ;; @@ -3237,7 +3239,7 @@ Usage: $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir [-no-optimized-qmake] [-optimized-qmake] [-no-xmlpatterns] [-xmlpatterns] [-no-multimedia] [-multimedia] [-no-phonon] [-phonon] [-no-phonon-backend] [-phonon-backend] [-no-openssl] [-openssl] [-openssl-linked] - [-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit] + [-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit] [-no-javascript-jit] [-javascript-jit] [-no-script] [-script] [-no-scripttools] [-scripttools] [-no-declarative] [-declarative] [additional platform specific options (see below)] @@ -3387,6 +3389,9 @@ fi + -webkit ............ Build the WebKit module. WebKit is built if a decent C++ compiler is used. + -no-javascript-jit . Do not build the JavaScriptCore JIT compiler. + + -javascript-jit .... Build the JavaScriptCore JIT compiler. + -no-script ......... Do not build the QtScript module. + -script ............ Build the QtScript module. @@ -5772,6 +5777,21 @@ if [ "$CFG_ALSA" = "auto" ]; then fi fi +if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then + if [ "$CFG_ARCH" = "arm" ] || [ "$CFG_ARCH" = "armv6" ]; then + "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/javascriptcore-jit "javascriptcore-jit" $L_FLAGS $I_FLAGS $l_FLAGS + if [ $? != "0" ]; then + CFG_JAVASCRIPTCORE_JIT=no + fi + fi +fi + +if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then + QMakeVar set JAVASCRIPTCORE_JIT yes +elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then + QMakeVar set JAVASCRIPTCORE_JIT no +fi + #------------------------------------------------------------------------------- # ask for all that hasn't been auto-detected or specified in the arguments #------------------------------------------------------------------------------- @@ -7289,6 +7309,13 @@ echo "Phonon module ....... $CFG_PHONON" echo "Multimedia module ... $CFG_MULTIMEDIA" echo "SVG module .......... $CFG_SVG" echo "WebKit module ....... $CFG_WEBKIT" +if [ "$CFG_WEBKIT" = "yes" ]; then + if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then + echo "JavaScriptCore JIT .. To be decided by JavaScriptCore" + else + echo "JavaScriptCore JIT .. $CFG_JAVASCRIPTCORE_JIT" + fi +fi echo "Declarative module .. $CFG_DECLARATIVE" echo "STL support ......... $CFG_STL" echo "PCH support ......... $CFG_PRECOMPILE" diff --git a/demos/affine/main.cpp b/demos/affine/main.cpp index 7d3d781..61fde96 100644 --- a/demos/affine/main.cpp +++ b/demos/affine/main.cpp @@ -54,8 +54,10 @@ int main(int argc, char **argv) xformWidget.setStyle(arthurStyle); QList<QWidget *> widgets = qFindChildren<QWidget *>(&xformWidget); - foreach (QWidget *w, widgets) + foreach (QWidget *w, widgets) { w->setStyle(arthurStyle); + w->setAttribute(Qt::WA_AcceptTouchEvents); + } xformWidget.show(); diff --git a/demos/browser/browser.pro b/demos/browser/browser.pro index 407030f..dab9387 100644 --- a/demos/browser/browser.pro +++ b/demos/browser/browser.pro @@ -93,6 +93,6 @@ sources.path = $$[QT_INSTALL_DEMOS]/browser INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) TARGET.UID3 = 0xA000CF70 + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) } diff --git a/demos/deform/deform.pro b/demos/deform/deform.pro index 4cce195..421432d 100644 --- a/demos/deform/deform.pro +++ b/demos/deform/deform.pro @@ -19,6 +19,6 @@ sources.path = $$[QT_INSTALL_DEMOS]/deform INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) TARGET.UID3 = 0xA000A63D + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) } diff --git a/demos/embedded/anomaly/anomaly.pro b/demos/embedded/anomaly/anomaly.pro index f7c11b6..06d73fa 100644 --- a/demos/embedded/anomaly/anomaly.pro +++ b/demos/embedded/anomaly/anomaly.pro @@ -22,10 +22,10 @@ SOURCES += src/Main.cpp \ RESOURCES += src/anomaly.qrc symbian { + TARGET.UID3 = 0xA000CF71 include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) HEADERS += $$QT_SOURCE_TREE/examples/network/ftp/sym_iap_util.h LIBS += -lesock -linsock -lconnmon TARGET.CAPABILITY = NetworkServices TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 - TARGET.UID3 = 0xA000CF71 } diff --git a/demos/embedded/desktopservices/desktopservices.pro b/demos/embedded/desktopservices/desktopservices.pro index 81fe16d..c160029c 100644 --- a/demos/embedded/desktopservices/desktopservices.pro +++ b/demos/embedded/desktopservices/desktopservices.pro @@ -16,7 +16,7 @@ image.path = /data/images/ DEPLOYMENT += music image symbian { - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) TARGET.UID3 = 0xA000C611 + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) ICON = ./resources/heart.svg } diff --git a/demos/embedded/digiflip/digiflip.pro b/demos/embedded/digiflip/digiflip.pro index 4db5171..72cdc0f 100644 --- a/demos/embedded/digiflip/digiflip.pro +++ b/demos/embedded/digiflip/digiflip.pro @@ -1,7 +1,7 @@ SOURCES = digiflip.cpp symbian { - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) TARGET.UID3 = 0xA000CF72 + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) } diff --git a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro index 9401871..209ec1a 100644 --- a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro +++ b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro @@ -16,6 +16,6 @@ wince* { } symbian { - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) TARGET.UID3 = 0xA000A640 + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) } diff --git a/demos/embedded/flickable/flickable.pro b/demos/embedded/flickable/flickable.pro index 02e88aa..731dcbe 100644 --- a/demos/embedded/flickable/flickable.pro +++ b/demos/embedded/flickable/flickable.pro @@ -2,6 +2,6 @@ SOURCES = flickable.cpp main.cpp HEADERS = flickable.h symbian { - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) TARGET.UID3 = 0xA000CF73 + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) } diff --git a/demos/embedded/flightinfo/flightinfo.pro b/demos/embedded/flightinfo/flightinfo.pro index 2f36cb8..5659fa2 100644 --- a/demos/embedded/flightinfo/flightinfo.pro +++ b/demos/embedded/flightinfo/flightinfo.pro @@ -6,8 +6,8 @@ RESOURCES = flightinfo.qrc QT += network symbian { - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) TARGET.UID3 = 0xA000CF74 + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) HEADERS += $$QT_SOURCE_TREE/examples/network/ftp/sym_iap_util.h LIBS += -lesock -lconnmon -linsock TARGET.CAPABILITY = NetworkServices diff --git a/demos/embedded/fluidlauncher/config_s60/config.xml b/demos/embedded/fluidlauncher/config_s60/config.xml index acd14cb..fefa3dd 100644 --- a/demos/embedded/fluidlauncher/config_s60/config.xml +++ b/demos/embedded/fluidlauncher/config_s60/config.xml @@ -7,7 +7,7 @@ <example filename="pathstroke" name="Path Stroking" image="screenshots/pathstroke.png" args="-small-screen"/> <example filename="wiggly" name="Wiggly Text" image="screenshots/wiggly_s60.png" args="-small-screen"/> <example filename="ftp" name="Ftp Client" image="screenshots/ftp_s60.png"/> - <example filename="context2d" name="Context2d" image="screenshots/context2d_s60.png"/> + <example filename="context2d" name="Context2d" image="screenshots/context2d_s60.png" args="-small-screen"/> <example filename="saxbookmarks" name="SaxBookmarks" image="screenshots/saxbookmarks_s60.png"/> <example filename="desktopservices" name="Desktop Services" image="screenshots/desktopservices_s60.png"/> <example filename="fridgemagnets" name="Fridge Magnets" image="screenshots/fridgemagnets_s60.png" args="-small-screen"/> @@ -20,7 +20,7 @@ <example filename="weatherinfo" name="Weather Info" image="screenshots/weatherinfo.png"/> <example filename="flickable" name="Kinetic Scrolling" image="screenshots/flickable.png"/> <example filename="digiflip" name="Flipping Clock" image="screenshots/digiflip.png"/> - <example filename="qmediaplayer" name="Media Player" image="screenshots/mediaplayer.png"/> + <example filename="qmediaplayer" name="Media Player" image="screenshots/mediaplayer.png" args="-small-screen"/> </demos> <slideshow timeout="60000" interval="10000"> <imagedir dir="slides"/> diff --git a/demos/embedded/fluidlauncher/fluidlauncher.pro b/demos/embedded/fluidlauncher/fluidlauncher.pro index 408bf53..d677e9d 100644 --- a/demos/embedded/fluidlauncher/fluidlauncher.pro +++ b/demos/embedded/fluidlauncher/fluidlauncher.pro @@ -59,6 +59,7 @@ symbian { load(data_caging_paths) TARGET.UID3 = 0xA000A641 + ICON = $$QT_SOURCE_TREE/src/s60installs/qt.svg executables.sources = \ styledemo.exe \ @@ -123,6 +124,25 @@ symbian { resource.path = $$APP_RESOURCE_DIR + mifs.sources = \ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000A641.mif \ #fluidlauncher + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000A63F.mif \ #styledemo + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000A63D.mif \ #deform + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000A63E.mif \ #pathstroke + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000C607.mif \ #wiggly + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000A648.mif \ #ftp + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000C60A.mif \ #saxbookmarks + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000C611.mif \ #desktopservices + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000C610.mif \ #fridgemagnets + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000C612.mif \ #drilldown + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000CF6B.mif \ #softkeys + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000CF76.mif \ #raycasting + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000CF73.mif \ #flickable + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000CF72.mif \ #digiflip + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000CF75.mif \ #lightmaps + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000CF74.mif #flightinfo + mifs.path = $$APP_RESOURCE_DIR + contains(QT_CONFIG, svg) { executables.sources += \ embeddedsvgviewer.exe \ @@ -135,28 +155,35 @@ symbian { resource.sources += \ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/embeddedsvgviewer.rsc \ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/weatherinfo.rsc + + mifs.sources += \ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000A640.mif \ #embeddedsvgviewer + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000CF77.mif #weatherinfo + } contains(QT_CONFIG, webkit) { executables.sources += anomaly.exe reg_resource.sources += $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/anomaly_reg.rsc resource.sources += $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/anomaly.rsc + mifs.sources += \ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000CF71.mif #anomaly } contains(QT_CONFIG, phonon) { executables.sources += qmediaplayer.exe resource.sources += $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/qmediaplayer.rsc + mifs.sources += \ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000C613.mif #qmediaplayer } contains(QT_CONFIG, script) { executables.sources += context2d.exe reg_resource.sources += $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/context2d_reg.rsc resource.sources += $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/context2d.rsc + mifs.sources += \ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000C608.mif #context2d } - mifs.sources = \ - $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000C611.mif - mifs.path = $$APP_RESOURCE_DIR - files.sources = $$PWD/screenshots $$PWD/slides files.path = . @@ -166,6 +193,7 @@ symbian { viewerimages.sources = $$PWD/../embeddedsvgviewer/shapes.svg viewerimages.path = /data/images/qt/demos/embeddedsvgviewer + # demos/mediaplayer make also use of these files. desktopservices_music.sources = \ $$PWD/../desktopservices/data/*.mp3 \ $$PWD/../desktopservices/data/*.wav diff --git a/demos/embedded/fluidlauncher/screenshots/mediaplayer.png b/demos/embedded/fluidlauncher/screenshots/mediaplayer.png Binary files differindex 1304a19..2d8a637 100644 --- a/demos/embedded/fluidlauncher/screenshots/mediaplayer.png +++ b/demos/embedded/fluidlauncher/screenshots/mediaplayer.png diff --git a/demos/embedded/lightmaps/lightmaps.pro b/demos/embedded/lightmaps/lightmaps.pro index d4168b1..122865e 100644 --- a/demos/embedded/lightmaps/lightmaps.pro +++ b/demos/embedded/lightmaps/lightmaps.pro @@ -3,8 +3,8 @@ SOURCES = lightmaps.cpp QT += network symbian { - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) TARGET.UID3 = 0xA000CF75 + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) HEADERS += $$QT_SOURCE_TREE/examples/network/ftp/sym_iap_util.h LIBS += -lesock -lconnmon -linsock TARGET.CAPABILITY = NetworkServices diff --git a/demos/embedded/raycasting/raycasting.pro b/demos/embedded/raycasting/raycasting.pro index 19e0212..8dd8a24 100644 --- a/demos/embedded/raycasting/raycasting.pro +++ b/demos/embedded/raycasting/raycasting.pro @@ -3,6 +3,6 @@ SOURCES = raycasting.cpp RESOURCES += raycasting.qrc symbian { - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) TARGET.UID3 = 0xA000CF76 + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) } diff --git a/demos/embedded/styledemo/styledemo.pro b/demos/embedded/styledemo/styledemo.pro index 7107798..2125f3b 100644 --- a/demos/embedded/styledemo/styledemo.pro +++ b/demos/embedded/styledemo/styledemo.pro @@ -12,6 +12,6 @@ sources.path = $$[QT_INSTALL_DEMOS]/embedded/styledemo INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) TARGET.UID3 = 0xA000A63F + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) } diff --git a/demos/embedded/weatherinfo/weatherinfo.pro b/demos/embedded/weatherinfo/weatherinfo.pro index 7bff6e9..5b2f03a 100644 --- a/demos/embedded/weatherinfo/weatherinfo.pro +++ b/demos/embedded/weatherinfo/weatherinfo.pro @@ -5,8 +5,8 @@ RESOURCES = weatherinfo.qrc QT += network svg symbian { - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) TARGET.UID3 = 0xA000CF77 + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) HEADERS += $$QT_SOURCE_TREE/examples/network/ftp/sym_iap_util.h LIBS += -lesock -lconnmon -linsock TARGET.CAPABILITY = NetworkServices diff --git a/demos/gradients/main.cpp b/demos/gradients/main.cpp index 9ffcdd1..c70cdb7 100644 --- a/demos/gradients/main.cpp +++ b/demos/gradients/main.cpp @@ -53,8 +53,10 @@ int main(int argc, char **argv) QStyle *arthurStyle = new ArthurStyle(); gradientWidget.setStyle(arthurStyle); QList<QWidget *> widgets = qFindChildren<QWidget *>(&gradientWidget); - foreach (QWidget *w, widgets) + foreach (QWidget *w, widgets) { w->setStyle(arthurStyle); + w->setAttribute(Qt::WA_AcceptTouchEvents); + } gradientWidget.show(); return app.exec(); diff --git a/demos/mediaplayer/main.cpp b/demos/mediaplayer/main.cpp index fd1431d..66aa445 100644 --- a/demos/mediaplayer/main.cpp +++ b/demos/mediaplayer/main.cpp @@ -50,9 +50,39 @@ int main (int argc, char *argv[]) app.setOrganizationName("Qt"); app.setQuitOnLastWindowClosed(true); - QString fileString = app.arguments().value(1); - MediaPlayer player(fileString); - player.show(); + bool hasSmallScreen = +#ifdef Q_OS_SYMBIAN + /* On Symbian, we always want fullscreen. One reason is that it's not + * possible to launch any demos from the fluidlauncher due to a + * limitation in the emulator. */ + true +#else + false +#endif + ; + + QString fileString; + const QStringList args(app.arguments()); + /* We have a minor problem here, we accept two arguments, both are + * optional: + * - A file name + * - the option "-small-screen", so let's try to cope with that. + */ + for (int i = 0; i < args.count(); ++i) { + const QString &at = args.at(i); + + if (at == QLatin1String("-small-screen")) + hasSmallScreen = true; + else if (i > 0) // We don't want the app name. + fileString = at; + } + + MediaPlayer player(fileString, hasSmallScreen); + + if (hasSmallScreen) + player.showMaximized(); + else + player.show(); return app.exec(); } diff --git a/demos/mediaplayer/mediaplayer.cpp b/demos/mediaplayer/mediaplayer.cpp index 8dd0609..baac236 100644 --- a/demos/mediaplayer/mediaplayer.cpp +++ b/demos/mediaplayer/mediaplayer.cpp @@ -147,10 +147,12 @@ private: }; -MediaPlayer::MediaPlayer(const QString &filePath) : +MediaPlayer::MediaPlayer(const QString &filePath, + const bool hasSmallScreen) : playButton(0), nextEffect(0), settingsDialog(0), ui(0), m_AudioOutput(Phonon::VideoCategory), - m_videoWidget(new MediaVideoWidget(this)) + m_videoWidget(new MediaVideoWidget(this)), + m_hasSmallScreen(hasSmallScreen) { setWindowTitle(tr("Media Player")); setContextMenuPolicy(Qt::CustomContextMenu); @@ -341,13 +343,15 @@ void MediaPlayer::stateChanged(Phonon::State newstate, Phonon::State oldstate) info->setVisible(!m_MediaObject.hasVideo()); QRect videoHintRect = QRect(QPoint(0, 0), m_videoWindow.sizeHint()); QRect newVideoRect = QApplication::desktop()->screenGeometry().intersected(videoHintRect); - if (m_MediaObject.hasVideo()){ - // Flush event que so that sizeHint takes the - // recently shown/hidden m_videoWindow into account: - qApp->processEvents(); - resize(sizeHint()); - } else - resize(minimumSize()); + if (!m_hasSmallScreen) { + if (m_MediaObject.hasVideo()) { + // Flush event que so that sizeHint takes the + // recently shown/hidden m_videoWindow into account: + qApp->processEvents(); + resize(sizeHint()); + } else + resize(minimumSize()); + } } switch (newstate) { @@ -648,7 +652,8 @@ void MediaPlayer::setFile(const QString &fileName) void MediaPlayer::openFile() { - QStringList fileNames = QFileDialog::getOpenFileNames(this); + QStringList fileNames = QFileDialog::getOpenFileNames(this, QString(), + QDesktopServices::storageLocation(QDesktopServices::MusicLocation)); m_MediaObject.clearQueue(); if (fileNames.size() > 0) { QString fileName = fileNames[0]; diff --git a/demos/mediaplayer/mediaplayer.h b/demos/mediaplayer/mediaplayer.h index 38ace26..40ffa40 100644 --- a/demos/mediaplayer/mediaplayer.h +++ b/demos/mediaplayer/mediaplayer.h @@ -72,7 +72,8 @@ class MediaPlayer : { Q_OBJECT public: - MediaPlayer(const QString &); + MediaPlayer(const QString &, + const bool hasSmallScreen); void dragEnterEvent(QDragEnterEvent *e); void dragMoveEvent(QDragMoveEvent *e); @@ -132,6 +133,7 @@ private: Phonon::AudioOutput m_AudioOutput; Phonon::VideoWidget *m_videoWidget; Phonon::Path m_audioOutputPath; + const bool m_hasSmallScreen; }; #endif //MEDIAPLAYER_H diff --git a/demos/mediaplayer/mediaplayer.pro b/demos/mediaplayer/mediaplayer.pro index 8f9ec82..84293f2 100644 --- a/demos/mediaplayer/mediaplayer.pro +++ b/demos/mediaplayer/mediaplayer.pro @@ -16,7 +16,7 @@ RESOURCES += mediaplayer.qrc SOURCES += main.cpp mediaplayer.cpp HEADERS += mediaplayer.h -target.path = $$[QT_INSTALL_DEMOS]/mediaplayer +target.path = $$[QT_INSTALL_DEMOS]/qmediaplayer sources.files = $$SOURCES $$HEADERS $$FORMS $$RESOURCES *.pro *.html *.doc images sources.path = $$[QT_INSTALL_DEMOS]/mediaplayer INSTALLS += target sources @@ -26,6 +26,12 @@ DEPLOYMENT_PLUGIN += phonon_ds9 phonon_waveout } symbian { - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) TARGET.UID3 = 0xA000C613 + + addFiles.sources = ../../tests/auto/mediaobject/media/sax.mp3 + + addFiles.path = /data/sounds/ + DEPLOYMENT += addFiles + + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) } diff --git a/demos/pathstroke/main.cpp b/demos/pathstroke/main.cpp index 60520f1..67f4639 100644 --- a/demos/pathstroke/main.cpp +++ b/demos/pathstroke/main.cpp @@ -57,8 +57,10 @@ int main(int argc, char **argv) QStyle *arthurStyle = new ArthurStyle(); pathStrokeWidget.setStyle(arthurStyle); QList<QWidget *> widgets = qFindChildren<QWidget *>(&pathStrokeWidget); - foreach (QWidget *w, widgets) + foreach (QWidget *w, widgets) { w->setStyle(arthurStyle); + w->setAttribute(Qt::WA_AcceptTouchEvents); + } if (smallScreen) pathStrokeWidget.showFullScreen(); diff --git a/demos/pathstroke/pathstroke.cpp b/demos/pathstroke/pathstroke.cpp index fdc7480..e072f0a 100644 --- a/demos/pathstroke/pathstroke.cpp +++ b/demos/pathstroke/pathstroke.cpp @@ -402,6 +402,7 @@ PathStrokeRenderer::PathStrokeRenderer(QWidget *parent, bool smallScreen) m_penStyle = Qt::SolidLine; m_wasAnimated = true; setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + setAttribute(Qt::WA_AcceptTouchEvents); } void PathStrokeRenderer::paint(QPainter *painter) @@ -510,10 +511,6 @@ void PathStrokeRenderer::updatePoints() Q_ASSERT(m_points.size() == m_vectors.size()); for (int i=0; i<m_points.size(); ++i) { - - if (i == m_activePoint) - continue; - QPointF pos = m_points.at(i); QPointF vec = m_vectors.at(i); pos += vec; @@ -532,6 +529,8 @@ void PathStrokeRenderer::updatePoints() void PathStrokeRenderer::mousePressEvent(QMouseEvent *e) { + if (!m_fingerPointMapping.isEmpty()) + return; setDescriptionEnabled(false); m_activePoint = -1; qreal distance = -1; @@ -556,6 +555,8 @@ void PathStrokeRenderer::mousePressEvent(QMouseEvent *e) void PathStrokeRenderer::mouseMoveEvent(QMouseEvent *e) { + if (!m_fingerPointMapping.isEmpty()) + return; // If we've moved more then 25 pixels, assume user is dragging if (!m_mouseDrag && QPoint(m_mousePress - e->pos()).manhattanLength() > 25) m_mouseDrag = true; @@ -568,6 +569,8 @@ void PathStrokeRenderer::mouseMoveEvent(QMouseEvent *e) void PathStrokeRenderer::mouseReleaseEvent(QMouseEvent *) { + if (!m_fingerPointMapping.isEmpty()) + return; m_activePoint = -1; setAnimation(m_wasAnimated); @@ -586,6 +589,90 @@ void PathStrokeRenderer::timerEvent(QTimerEvent *e) // } } +bool PathStrokeRenderer::event(QEvent *e) +{ + bool touchBegin = false; + switch (e->type()) { + case QEvent::TouchBegin: + touchBegin = true; + case QEvent::TouchUpdate: + { + const QTouchEvent *const event = static_cast<const QTouchEvent*>(e); + const QList<QTouchEvent::TouchPoint> points = event->touchPoints(); + foreach (const QTouchEvent::TouchPoint &touchPoint, points) { + const int id = touchPoint.id(); + switch (touchPoint.state()) { + case Qt::TouchPointPressed: + { + // find the point, move it + QSet<int> activePoints = QSet<int>::fromList(m_fingerPointMapping.values()); + int activePoint = -1; + qreal distance = -1; + const int pointsCount = m_points.size(); + for (int i=0; i<pointsCount; ++i) { + if (activePoints.contains(i)) + continue; + + qreal d = QLineF(touchPoint.pos(), m_points.at(i)).length(); + if ((distance < 0 && d < 12 * m_pointSize) || d < distance) { + distance = d; + activePoint = i; + } + } + if (activePoint != -1) { + m_fingerPointMapping.insert(touchPoint.id(), activePoint); + m_points[activePoint] = touchPoint.pos(); + } + } + break; + case Qt::TouchPointReleased: + { + // move the point and release + QHash<int,int>::iterator it = m_fingerPointMapping.find(id); + m_points[it.value()] = touchPoint.pos(); + m_fingerPointMapping.erase(it); + } + break; + case Qt::TouchPointMoved: + { + // move the point + const int pointIdx = m_fingerPointMapping.value(id, -1); + if (pointIdx >= 0) + m_points[pointIdx] = touchPoint.pos(); + } + break; + default: + break; + } + } + if (m_fingerPointMapping.isEmpty()) { + e->ignore(); + return false; + } else { + if (touchBegin) { + m_wasAnimated = m_timer.isActive(); + setAnimation(false); + } + update(); + return true; + } + } + break; + case QEvent::TouchEnd: + if (m_fingerPointMapping.isEmpty()) { + e->ignore(); + return false; + } + m_fingerPointMapping.clear(); + setAnimation(m_wasAnimated); + return true; + break; + default: + break; + } + return QWidget::event(e); +} + void PathStrokeRenderer::setAnimation(bool animation) { m_timer.stop(); diff --git a/demos/pathstroke/pathstroke.h b/demos/pathstroke/pathstroke.h index 3ff2c55..e869515 100644 --- a/demos/pathstroke/pathstroke.h +++ b/demos/pathstroke/pathstroke.h @@ -60,6 +60,7 @@ public: void mouseMoveEvent(QMouseEvent *e); void mouseReleaseEvent(QMouseEvent *e); void timerEvent(QTimerEvent *e); + bool event(QEvent *e); QSize sizeHint() const { return QSize(500, 500); } @@ -118,6 +119,8 @@ private: bool m_smallScreen; QPoint m_mousePress; bool m_mouseDrag; + + QHash<int, int> m_fingerPointMapping; }; class PathStrokeControls : public QWidget diff --git a/demos/pathstroke/pathstroke.pro b/demos/pathstroke/pathstroke.pro index ac50842..43f20b6 100644 --- a/demos/pathstroke/pathstroke.pro +++ b/demos/pathstroke/pathstroke.pro @@ -19,6 +19,6 @@ sources.path = $$[QT_INSTALL_DEMOS]/pathstroke INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) TARGET.UID3 = 0xA000A63E + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) } diff --git a/demos/shared/arthurwidgets.h b/demos/shared/arthurwidgets.h index aa70002..7b02bcd 100644 --- a/demos/shared/arthurwidgets.h +++ b/demos/shared/arthurwidgets.h @@ -49,13 +49,32 @@ #if defined(QT_OPENGL_SUPPORT) #include <QGLWidget> +#include <QEvent> class GLWidget : public QGLWidget { public: GLWidget(QWidget *parent) - : QGLWidget(QGLFormat(QGL::SampleBuffers), parent) {} + : QGLWidget(QGLFormat(QGL::SampleBuffers), parent) + { + setAttribute(Qt::WA_AcceptTouchEvents); + } void disableAutoBufferSwap() { setAutoBufferSwap(false); } void paintEvent(QPaintEvent *) { parentWidget()->update(); } +protected: + bool event(QEvent *event) + { + switch (event->type()) { + case QEvent::TouchBegin: + case QEvent::TouchUpdate: + case QEvent::TouchEnd: + event->ignore(); + return false; + break; + default: + break; + } + return QGLWidget::event(event); + } }; #endif diff --git a/demos/shared/hoverpoints.cpp b/demos/shared/hoverpoints.cpp index 182f4d8..84f5815 100644 --- a/demos/shared/hoverpoints.cpp +++ b/demos/shared/hoverpoints.cpp @@ -53,6 +53,7 @@ HoverPoints::HoverPoints(QWidget *widget, PointShape shape) { m_widget = widget; widget->installEventFilter(this); + widget->setAttribute(Qt::WA_AcceptTouchEvents); m_connectionType = CurveConnection; m_sortType = NoSort; @@ -86,6 +87,8 @@ bool HoverPoints::eventFilter(QObject *object, QEvent *event) case QEvent::MouseButtonPress: { + if (!m_fingerPointMapping.isEmpty()) + return true; QMouseEvent *me = (QMouseEvent *) event; QPointF clickPos = me->pos(); @@ -147,13 +150,90 @@ bool HoverPoints::eventFilter(QObject *object, QEvent *event) break; case QEvent::MouseButtonRelease: + if (!m_fingerPointMapping.isEmpty()) + return true; m_currentIndex = -1; break; case QEvent::MouseMove: + if (!m_fingerPointMapping.isEmpty()) + return true; if (m_currentIndex >= 0) movePoint(m_currentIndex, ((QMouseEvent *)event)->pos()); break; + case QEvent::TouchBegin: + case QEvent::TouchUpdate: + { + const QTouchEvent *const touchEvent = static_cast<const QTouchEvent*>(event); + const QList<QTouchEvent::TouchPoint> points = touchEvent->touchPoints(); + const qreal pointSize = qMax(m_pointSize.width(), m_pointSize.height()); + foreach (const QTouchEvent::TouchPoint &touchPoint, points) { + const int id = touchPoint.id(); + switch (touchPoint.state()) { + case Qt::TouchPointPressed: + { + // find the point, move it + QSet<int> activePoints = QSet<int>::fromList(m_fingerPointMapping.values()); + int activePoint = -1; + qreal distance = -1; + const int pointsCount = m_points.size(); + const int activePointCount = activePoints.size(); + if (pointsCount == 2 && activePointCount == 1) { // only two points + activePoint = activePoints.contains(0) ? 1 : 0; + } else { + for (int i=0; i<pointsCount; ++i) { + if (activePoints.contains(i)) + continue; + + qreal d = QLineF(touchPoint.pos(), m_points.at(i)).length(); + if ((distance < 0 && d < 12 * pointSize) || d < distance) { + distance = d; + activePoint = i; + } + + } + } + if (activePoint != -1) { + m_fingerPointMapping.insert(touchPoint.id(), activePoint); + movePoint(activePoint, touchPoint.pos()); + } + } + break; + case Qt::TouchPointReleased: + { + // move the point and release + QHash<int,int>::iterator it = m_fingerPointMapping.find(id); + movePoint(it.value(), touchPoint.pos()); + m_fingerPointMapping.erase(it); + } + break; + case Qt::TouchPointMoved: + { + // move the point + const int pointIdx = m_fingerPointMapping.value(id, -1); + if (pointIdx >= 0) // do we track this point? + movePoint(pointIdx, touchPoint.pos()); + } + break; + default: + break; + } + } + if (m_fingerPointMapping.isEmpty()) { + event->ignore(); + return false; + } else { + return true; + } + } + break; + case QEvent::TouchEnd: + if (m_fingerPointMapping.isEmpty()) { + event->ignore(); + return false; + } + return true; + break; case QEvent::Resize: { @@ -262,6 +342,8 @@ static QPointF bound_point(const QPointF &point, const QRectF &bounds, int lock) void HoverPoints::setPoints(const QPolygonF &points) { + if (points.size() != m_points.size()) + m_fingerPointMapping.clear(); m_points.clear(); for (int i=0; i<points.size(); ++i) m_points << bound_point(points.at(i), boundingRect(), 0); diff --git a/demos/shared/hoverpoints.h b/demos/shared/hoverpoints.h index 8f6e1b8..23ac8c1 100644 --- a/demos/shared/hoverpoints.h +++ b/demos/shared/hoverpoints.h @@ -133,6 +133,8 @@ private: bool m_editable; bool m_enabled; + QHash<int, int> m_fingerPointMapping; + QPen m_pointPen; QBrush m_pointBrush; QPen m_connectionPen; diff --git a/demos/shared/shared.pro b/demos/shared/shared.pro index de29857..0f7137f 100644 --- a/demos/shared/shared.pro +++ b/demos/shared/shared.pro @@ -33,6 +33,6 @@ INSTALLS += sources !cross_compile:INSTALLS += target symbian { - include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) TARGET.UID3 = 0xA000A63C + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) } diff --git a/demos/symbianpkgrules.pri b/demos/symbianpkgrules.pri index 7e6852b..cf52cb3 100644 --- a/demos/symbianpkgrules.pri +++ b/demos/symbianpkgrules.pri @@ -11,3 +11,5 @@ vendorinfo = \ " " default_deployment.pkg_prerules += vendorinfo + +!isEmpty(TARGET.UID3):ICON = $$QT_SOURCE_TREE/src/s60installs/qt.svg diff --git a/dist/changes-4.6.0 b/dist/changes-4.6.0 index f9984d3..2e7e699 100644 --- a/dist/changes-4.6.0 +++ b/dist/changes-4.6.0 @@ -126,3 +126,11 @@ information about a particular change. means that code that assigned a float to a variant would create a variant with userType QMetaType::Float, instead of QVariant::Double. + - QDataStream will now read and write all floating point numbers with the + same precision, regardless of whether it's streamed into or out from a + float or double. This is to maintain compatibility across platforms with + a different default precision for qreal. The default is 64-bit precision + for all floating point numbers, and this can be changed using the new + function setFloatingPointPrecision(). Set Qt_4_5 as the version of the + QDataStream to get the behavior of previous versions. +
\ No newline at end of file diff --git a/doc/src/diagrams/programs/standard_views.py b/doc/src/diagrams/programs/standard_views.py index f1d69f6..5581387 100644 --- a/doc/src/diagrams/programs/standard_views.py +++ b/doc/src/diagrams/programs/standard_views.py @@ -1,4 +1,44 @@ #!/usr/bin/env python +############################################################################# +## +## Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +## All rights reserved. +## Contact: Nokia Corporation (qt-info@nokia.com) +## +## This file is part of the test suite of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL$ +## No Commercial Usage +## This file contains pre-release code and may not be distributed. +## You may use this file in accordance with the terms and conditions +## contained in the Technology Preview License Agreement accompanying +## this package. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 2.1 requirements +## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## In addition, as a special exception, Nokia gives you certain additional +## rights. These rights are described in the Nokia Qt LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## If you have questions regarding the use of this file, please contact +## Nokia at qt-info@nokia.com. +## +## +## +## +## +## +## +## +## $QT_END_LICENSE$ +## +############################################################################# import sys from PyQt4.QtCore import QDir, Qt diff --git a/doc/src/frameworks-technologies/gestures.qdoc b/doc/src/frameworks-technologies/gestures.qdoc index 1e3cc47..158a273 100644 --- a/doc/src/frameworks-technologies/gestures.qdoc +++ b/doc/src/frameworks-technologies/gestures.qdoc @@ -102,8 +102,6 @@ \snippet examples/gestures/imageviewer/imagewidget.cpp swipe slot start - \snippet examples/gestures/imageviewer/imagewidget.cpp swipe slot finish - Here, we examine the direction in which the user swiped the widget and modify its contents accordingly. diff --git a/doc/src/getting-started/examples.qdoc b/doc/src/getting-started/examples.qdoc index d80308a..30dae88 100644 --- a/doc/src/getting-started/examples.qdoc +++ b/doc/src/getting-started/examples.qdoc @@ -1077,9 +1077,13 @@ \contentspage Qt Examples \nextpage D-Bus Examples + The API of the gesture framework is not yet finalized and + still subject to change. +\omit \list \o \l{widgets/imageviewer}{Image Viewer} \endlist +\endomit */ /*! diff --git a/doc/src/images/xml-schema.png b/doc/src/images/xml-schema.png Binary files differnew file mode 100644 index 0000000..b1bcecc --- /dev/null +++ b/doc/src/images/xml-schema.png diff --git a/doc/src/platforms/supported-platforms.qdoc b/doc/src/platforms/supported-platforms.qdoc index 788af67..65d335b 100644 --- a/doc/src/platforms/supported-platforms.qdoc +++ b/doc/src/platforms/supported-platforms.qdoc @@ -140,7 +140,7 @@ Even though some Tier 3 platforms are available under the Qt Commercial License, technical support is not included in that license. - However, \l{Hot to Order}{contact our sales team} to find out about the + However, \l{How to Order}{contact our sales team} to find out about the availability of other services for those platforms. Qt users should note, however, that there may be various open source diff --git a/doc/src/qt-resources.qdoc b/doc/src/qt-resources.qdoc index a7dffe4..3b31660 100644 --- a/doc/src/qt-resources.qdoc +++ b/doc/src/qt-resources.qdoc @@ -41,5 +41,6 @@ /*! \page qt-resources.html + \title Not Used \image gradient.png */ diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc index 47eab16..6224cd4 100644 --- a/doc/src/qt4-intro.qdoc +++ b/doc/src/qt4-intro.qdoc @@ -567,7 +567,8 @@ \o Enable extensibility. \endlist - See the QTouchEvent and QGesture class documentation for more information. + See the QTouchEvent class documentation for more information. The + Gesture framework API is still subject to change. \section1 DOM access API @@ -627,6 +628,8 @@ through C++ APIs in the Qt application, or using the xmlpatternsvalidator command line utility. The implementation of XML Schema Validation supports the specification version 1.0 in large parts. + + \img xml-schema.png See the \l{XML Processing} and QXmlSchema class documentation for more information. diff --git a/examples/draganddrop/draggableicons/draggableicons.pro b/examples/draganddrop/draggableicons/draggableicons.pro index f177bd6..9def1bc 100644 --- a/examples/draganddrop/draggableicons/draggableicons.pro +++ b/examples/draganddrop/draggableicons/draggableicons.pro @@ -10,6 +10,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/draganddrop/draggableicons INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C615 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/draganddrop/draggabletext/draggabletext.pro b/examples/draganddrop/draggabletext/draggabletext.pro index 19fee2d..7c2cfbb 100644 --- a/examples/draganddrop/draggabletext/draggabletext.pro +++ b/examples/draganddrop/draggabletext/draggabletext.pro @@ -12,6 +12,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/draganddrop/draggabletext INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000CF64 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/draganddrop/fridgemagnets/fridgemagnets.pro b/examples/draganddrop/fridgemagnets/fridgemagnets.pro index b8388cf..ea40a74 100644 --- a/examples/draganddrop/fridgemagnets/fridgemagnets.pro +++ b/examples/draganddrop/fridgemagnets/fridgemagnets.pro @@ -12,8 +12,8 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/draganddrop/fridgemagnets INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C610 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/draganddrop/puzzle/puzzle.pro b/examples/draganddrop/puzzle/puzzle.pro index 20080e9..31786c7 100644 --- a/examples/draganddrop/puzzle/puzzle.pro +++ b/examples/draganddrop/puzzle/puzzle.pro @@ -14,11 +14,11 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/draganddrop/puzzle INSTALLS += target sources symbian:{ + TARGET.UID3 = 0xA000CF65 include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) addFile.sources = example.jpg addFile.path = . DEPLOYMENT += addFile - TARGET.UID3 = 0xA000CF65 } wince*: { addFile.sources = example.jpg diff --git a/examples/gestures/imageviewer/imagewidget.cpp b/examples/gestures/imageviewer/imagewidget.cpp index 2be6cc5..3489b5b 100644 --- a/examples/gestures/imageviewer/imagewidget.cpp +++ b/examples/gestures/imageviewer/imagewidget.cpp @@ -145,7 +145,7 @@ void ImageWidget::swipeTriggered() goNextImage(); update(); } -//! [swipe slot finish] +//! [swipe slot start] void ImageWidget::resizeEvent(QResizeEvent*) { diff --git a/examples/graphicsview/basicgraphicslayouts/basicgraphicslayouts.pro b/examples/graphicsview/basicgraphicslayouts/basicgraphicslayouts.pro index 8a6aae1..9549174 100644 --- a/examples/graphicsview/basicgraphicslayouts/basicgraphicslayouts.pro +++ b/examples/graphicsview/basicgraphicslayouts/basicgraphicslayouts.pro @@ -12,6 +12,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/graphicsview/basicgraphicslayouts INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000A645 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/graphicsview/collidingmice/collidingmice.pro b/examples/graphicsview/collidingmice/collidingmice.pro index e4dc117..207c645 100644 --- a/examples/graphicsview/collidingmice/collidingmice.pro +++ b/examples/graphicsview/collidingmice/collidingmice.pro @@ -14,6 +14,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/graphicsview/collidingmice INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000A643 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/graphicsview/elasticnodes/elasticnodes.pro b/examples/graphicsview/elasticnodes/elasticnodes.pro index ba17386..c086461 100644 --- a/examples/graphicsview/elasticnodes/elasticnodes.pro +++ b/examples/graphicsview/elasticnodes/elasticnodes.pro @@ -18,6 +18,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/graphicsview/elasticnodes INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000A642 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/graphicsview/padnavigator/padnavigator.pro b/examples/graphicsview/padnavigator/padnavigator.pro index cb09b90..d6f536c 100644 --- a/examples/graphicsview/padnavigator/padnavigator.pro +++ b/examples/graphicsview/padnavigator/padnavigator.pro @@ -26,6 +26,6 @@ INSTALLS += target sources CONFIG += console symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000A644 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/itemviews/addressbook/addressbook.pro b/examples/itemviews/addressbook/addressbook.pro index b53a1cf..f45f92c 100644 --- a/examples/itemviews/addressbook/addressbook.pro +++ b/examples/itemviews/addressbook/addressbook.pro @@ -17,6 +17,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/itemviews/addressbook INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000A646 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/itemviews/chart/chart.pro b/examples/itemviews/chart/chart.pro index 8568181..53601f4 100644 --- a/examples/itemviews/chart/chart.pro +++ b/examples/itemviews/chart/chart.pro @@ -15,6 +15,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/itemviews/chart INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000A647 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/mainwindows/menus/menus.pro b/examples/mainwindows/menus/menus.pro index 5ac5b34..7ca442e 100644 --- a/examples/mainwindows/menus/menus.pro +++ b/examples/mainwindows/menus/menus.pro @@ -9,6 +9,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/mainwindows/menus INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000CF66 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/multimedia/audio/audiodevices/audiodevices.pro b/examples/multimedia/audio/audiodevices/audiodevices.pro index 2c078ba..173aa8f 100644 --- a/examples/multimedia/audio/audiodevices/audiodevices.pro +++ b/examples/multimedia/audio/audiodevices/audiodevices.pro @@ -12,6 +12,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/multimedia/audio/audiodevices INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000D7BE + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/multimedia/audio/audioinput/audioinput.pro b/examples/multimedia/audio/audioinput/audioinput.pro index 139240e..0d6198d 100644 --- a/examples/multimedia/audio/audioinput/audioinput.pro +++ b/examples/multimedia/audio/audioinput/audioinput.pro @@ -11,6 +11,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/multimedia/audio/audioinput INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000D7BF + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/multimedia/audio/audiooutput/audiooutput.pro b/examples/multimedia/audio/audiooutput/audiooutput.pro index e2069cf..b43763c 100644 --- a/examples/multimedia/audio/audiooutput/audiooutput.pro +++ b/examples/multimedia/audio/audiooutput/audiooutput.pro @@ -11,6 +11,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/multimedia/audio/audiooutput INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000D7C0 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/network/fortuneserver/fortuneserver.pro b/examples/network/fortuneserver/fortuneserver.pro index 0a132a5..803c2f2 100644 --- a/examples/network/fortuneserver/fortuneserver.pro +++ b/examples/network/fortuneserver/fortuneserver.pro @@ -10,10 +10,10 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/network/fortuneserver INSTALLS += target sources symbian { + TARGET.UID3 = 0xA000CF71 include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) HEADERS += $$QT_SOURCE_TREE/examples/network/ftp/sym_iap_util.h LIBS += -lesock - TARGET.UID3 = 0xA000CF71 TARGET.CAPABILITY = "All -TCB" TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 } diff --git a/examples/network/ftp/ftp.pro b/examples/network/ftp/ftp.pro index 73eb716..ce2a97b 100644 --- a/examples/network/ftp/ftp.pro +++ b/examples/network/ftp/ftp.pro @@ -11,10 +11,10 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/network/ftp INSTALLS += target sources symbian { + TARGET.UID3 = 0xA000A648 include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) HEADERS += sym_iap_util.h INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE TARGET.CAPABILITY="NetworkServices ReadUserData WriteUserData" - TARGET.UID3 = 0xA000A648 LIBS+=-lesock -lcommdb -linsock # For IAP selection } diff --git a/examples/network/securesocketclient/securesocketclient.pro b/examples/network/securesocketclient/securesocketclient.pro index 48c8e0d..ff4f4587 100644 --- a/examples/network/securesocketclient/securesocketclient.pro +++ b/examples/network/securesocketclient/securesocketclient.pro @@ -16,6 +16,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/network/securesocketclient INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000CF67 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/painting/basicdrawing/basicdrawing.pro b/examples/painting/basicdrawing/basicdrawing.pro index ea23706..4fa0e71 100644 --- a/examples/painting/basicdrawing/basicdrawing.pro +++ b/examples/painting/basicdrawing/basicdrawing.pro @@ -12,6 +12,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/painting/basicdrawing INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000A649 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/painting/concentriccircles/concentriccircles.pro b/examples/painting/concentriccircles/concentriccircles.pro index a8d2c36..0ef4337 100644 --- a/examples/painting/concentriccircles/concentriccircles.pro +++ b/examples/painting/concentriccircles/concentriccircles.pro @@ -11,6 +11,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/painting/concentriccircles INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000A64A + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/painting/imagecomposition/imagecomposition.pro b/examples/painting/imagecomposition/imagecomposition.pro index fe29a8a..e9e8725 100644 --- a/examples/painting/imagecomposition/imagecomposition.pro +++ b/examples/painting/imagecomposition/imagecomposition.pro @@ -10,6 +10,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/painting/imagecomposition INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000A64B + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/painting/painterpaths/painterpaths.pro b/examples/painting/painterpaths/painterpaths.pro index 1d981bb..1f42b41 100644 --- a/examples/painting/painterpaths/painterpaths.pro +++ b/examples/painting/painterpaths/painterpaths.pro @@ -12,6 +12,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/painting/painterpaths INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000A64C + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/painting/svgviewer/svgviewer.pro b/examples/painting/svgviewer/svgviewer.pro index 583d51c..5af8731 100644 --- a/examples/painting/svgviewer/svgviewer.pro +++ b/examples/painting/svgviewer/svgviewer.pro @@ -23,8 +23,8 @@ wince*: { } symbian: { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000A64E + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) addFiles.sources = files\*.svg addFiles.path = . DEPLOYMENT += addFiles diff --git a/examples/painting/transformations/transformations.pro b/examples/painting/transformations/transformations.pro index 9e225a4..91470f7 100644 --- a/examples/painting/transformations/transformations.pro +++ b/examples/painting/transformations/transformations.pro @@ -11,6 +11,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/painting/transformations INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000A64D + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/qtestlib/tutorial1/tutorial1.pro b/examples/qtestlib/tutorial1/tutorial1.pro index bcce234..93b0ec6 100644 --- a/examples/qtestlib/tutorial1/tutorial1.pro +++ b/examples/qtestlib/tutorial1/tutorial1.pro @@ -8,6 +8,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/qtestlib/tutorial1 INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C60B + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/qtestlib/tutorial2/tutorial2.pro b/examples/qtestlib/tutorial2/tutorial2.pro index bcfe940..eb79038 100644 --- a/examples/qtestlib/tutorial2/tutorial2.pro +++ b/examples/qtestlib/tutorial2/tutorial2.pro @@ -8,6 +8,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/qtestlib/tutorial2 INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C60C + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/qtestlib/tutorial3/tutorial3.pro b/examples/qtestlib/tutorial3/tutorial3.pro index fed5064..603afd1 100644 --- a/examples/qtestlib/tutorial3/tutorial3.pro +++ b/examples/qtestlib/tutorial3/tutorial3.pro @@ -8,6 +8,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/qtestlib/tutorial3 INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C60D + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/qtestlib/tutorial4/tutorial4.pro b/examples/qtestlib/tutorial4/tutorial4.pro index 00c2147..8695849 100644 --- a/examples/qtestlib/tutorial4/tutorial4.pro +++ b/examples/qtestlib/tutorial4/tutorial4.pro @@ -8,6 +8,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/qtestlib/tutorial4 INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C60E + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/qtestlib/tutorial5/tutorial5.pro b/examples/qtestlib/tutorial5/tutorial5.pro index 4fdcec9..7f5e695 100644 --- a/examples/qtestlib/tutorial5/tutorial5.pro +++ b/examples/qtestlib/tutorial5/tutorial5.pro @@ -8,6 +8,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/qtestlib/tutorial5 INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C60F + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/script/context2d/context2d.pro b/examples/script/context2d/context2d.pro index 301c227..54f5c31 100644 --- a/examples/script/context2d/context2d.pro +++ b/examples/script/context2d/context2d.pro @@ -23,8 +23,8 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/script/context2d INSTALLS += target sources symbian:{ - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C608 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.EPOCHEAPSIZE = 0x200000 0xA00000 contextScripts.path = . contextScripts.sources = scripts diff --git a/examples/script/context2d/main.cpp b/examples/script/context2d/main.cpp index 2f195c9..2c3c623 100644 --- a/examples/script/context2d/main.cpp +++ b/examples/script/context2d/main.cpp @@ -46,8 +46,19 @@ int main(int argc, char **argv) { Q_INIT_RESOURCE(context2d); + bool smallScreen = false; + for (int i = 0; i < argc; i++) + if (QString(argv[i]) == "-small-screen") + smallScreen = true; + QApplication app(argc, argv); Window win; - win.show(); + + if (!smallScreen) { + win.show(); + } else { + win.showFullScreen(); + } + return app.exec(); } diff --git a/examples/sql/drilldown/drilldown.pro b/examples/sql/drilldown/drilldown.pro index b6de511..5c97e88 100644 --- a/examples/sql/drilldown/drilldown.pro +++ b/examples/sql/drilldown/drilldown.pro @@ -16,6 +16,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/sql/drilldown INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C612 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/statemachine/rogue/movementtransition.h b/examples/statemachine/rogue/movementtransition.h index b919360..3452155 100644 --- a/examples/statemachine/rogue/movementtransition.h +++ b/examples/statemachine/rogue/movementtransition.h @@ -61,7 +61,7 @@ public: //![1] protected: bool eventTest(QEvent *event) { - if (event->type() == QEvent::Wrapped && + if (event->type() == QEvent::StateMachineWrapped && static_cast<QStateMachine::WrappedEvent *>(event)->event()->type() == QEvent::KeyPress) { QEvent *wrappedEvent = static_cast<QStateMachine::WrappedEvent *>(event)->event(); diff --git a/examples/symbianpkgrules.pri b/examples/symbianpkgrules.pri index 59c5480..069a16e 100644 --- a/examples/symbianpkgrules.pri +++ b/examples/symbianpkgrules.pri @@ -11,3 +11,5 @@ vendorinfo = \ " " default_deployment.pkg_prerules += vendorinfo + +!isEmpty(TARGET.UID3):ICON = $$QT_SOURCE_TREE/src/s60installs/qt.svg diff --git a/examples/uitools/multipleinheritance/multipleinheritance.pro b/examples/uitools/multipleinheritance/multipleinheritance.pro index b401c05..9b76d33 100644 --- a/examples/uitools/multipleinheritance/multipleinheritance.pro +++ b/examples/uitools/multipleinheritance/multipleinheritance.pro @@ -11,6 +11,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/uitools/multipleinheritance INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000D7C1 -}
\ No newline at end of file + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) +} diff --git a/examples/video/videographicsitem/videographicsitem.pro b/examples/video/videographicsitem/videographicsitem.pro index 7ebd975..d79c3fb 100644 --- a/examples/video/videographicsitem/videographicsitem.pro +++ b/examples/video/videographicsitem/videographicsitem.pro @@ -16,6 +16,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/video/videographicsitem INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000D7C2 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/video/videographicsitem/videoitem.h b/examples/video/videographicsitem/videoitem.h index 80679dd..96f578a 100644 --- a/examples/video/videographicsitem/videoitem.h +++ b/examples/video/videographicsitem/videoitem.h @@ -50,6 +50,7 @@ class VideoItem public QGraphicsItem { Q_OBJECT + Q_INTERFACES(QGraphicsItem) public: explicit VideoItem(QGraphicsItem *parentItem = 0); ~VideoItem(); diff --git a/examples/video/videowidget/videowidget.pro b/examples/video/videowidget/videowidget.pro index cc0260f..4a1d717 100644 --- a/examples/video/videowidget/videowidget.pro +++ b/examples/video/videowidget/videowidget.pro @@ -14,6 +14,6 @@ SOURCES = \ videowidgetsurface.cpp symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000D7C3 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/webkit/formextractor/formextractor.pro b/examples/webkit/formextractor/formextractor.pro index ba9c72f..4364b4c 100644 --- a/examples/webkit/formextractor/formextractor.pro +++ b/examples/webkit/formextractor/formextractor.pro @@ -16,6 +16,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/webkit/formextractor INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000CF6D + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/webkit/previewer/previewer.pro b/examples/webkit/previewer/previewer.pro index c3088a2..525dbb2 100644 --- a/examples/webkit/previewer/previewer.pro +++ b/examples/webkit/previewer/previewer.pro @@ -13,6 +13,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/webkit/previewer INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000CF6F + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/widgets/analogclock/analogclock.pro b/examples/widgets/analogclock/analogclock.pro index 50c0a06..34c0ec5 100644 --- a/examples/widgets/analogclock/analogclock.pro +++ b/examples/widgets/analogclock/analogclock.pro @@ -9,6 +9,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/widgets/analogclock INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000A64F + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/widgets/calculator/calculator.pro b/examples/widgets/calculator/calculator.pro index 585ff43..b31208e 100644 --- a/examples/widgets/calculator/calculator.pro +++ b/examples/widgets/calculator/calculator.pro @@ -11,6 +11,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/widgets/calculator INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C602 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/widgets/calendarwidget/calendarwidget.pro b/examples/widgets/calendarwidget/calendarwidget.pro index f6cf21f..4675db1 100644 --- a/examples/widgets/calendarwidget/calendarwidget.pro +++ b/examples/widgets/calendarwidget/calendarwidget.pro @@ -9,6 +9,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/widgets/calendarwidget INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C603 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/widgets/lineedits/lineedits.pro b/examples/widgets/lineedits/lineedits.pro index 409215c..0a40dcf 100644 --- a/examples/widgets/lineedits/lineedits.pro +++ b/examples/widgets/lineedits/lineedits.pro @@ -9,6 +9,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/widgets/lineedits INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C604 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/widgets/shapedclock/shapedclock.pro b/examples/widgets/shapedclock/shapedclock.pro index bf4ee70..0a2515f 100644 --- a/examples/widgets/shapedclock/shapedclock.pro +++ b/examples/widgets/shapedclock/shapedclock.pro @@ -9,6 +9,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/widgets/shapedclock INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C605 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/widgets/softkeys/softkeys.pro b/examples/widgets/softkeys/softkeys.pro index 6c3271e..d4d192f 100644 --- a/examples/widgets/softkeys/softkeys.pro +++ b/examples/widgets/softkeys/softkeys.pro @@ -10,6 +10,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/widgets/softkeys INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000CF6B + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/widgets/tetrix/tetrix.pro b/examples/widgets/tetrix/tetrix.pro index d683f61..fbdb366 100644 --- a/examples/widgets/tetrix/tetrix.pro +++ b/examples/widgets/tetrix/tetrix.pro @@ -13,6 +13,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/widgets/tetrix INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C606 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/widgets/wiggly/wiggly.pro b/examples/widgets/wiggly/wiggly.pro index 857122f..f40f86f 100644 --- a/examples/widgets/wiggly/wiggly.pro +++ b/examples/widgets/wiggly/wiggly.pro @@ -11,6 +11,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/widgets/wiggly INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C607 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/xml/htmlinfo/htmlinfo.pro b/examples/xml/htmlinfo/htmlinfo.pro index f70fb7d..5e9c8ca 100644 --- a/examples/xml/htmlinfo/htmlinfo.pro +++ b/examples/xml/htmlinfo/htmlinfo.pro @@ -14,6 +14,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/xml/htmlinfo INSTALLS += target sources symbian { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C609 + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) } diff --git a/examples/xml/saxbookmarks/saxbookmarks.pro b/examples/xml/saxbookmarks/saxbookmarks.pro index 16ef184..4af3ddd 100644 --- a/examples/xml/saxbookmarks/saxbookmarks.pro +++ b/examples/xml/saxbookmarks/saxbookmarks.pro @@ -20,8 +20,8 @@ wince*: { } symbian: { - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.UID3 = 0xA000C60A + include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) addFiles.sources = frank.xbel jennifer.xbel addFiles.path = /data/qt/saxbookmarks DEPLOYMENT += addFiles diff --git a/mkspecs/qws/linux-powerpc-g++/qmake.conf b/mkspecs/qws/linux-powerpc-g++/qmake.conf new file mode 100644 index 0000000..e1926b4 --- /dev/null +++ b/mkspecs/qws/linux-powerpc-g++/qmake.conf @@ -0,0 +1,20 @@ +# +# qmake configuration for building with g++ +# + +include(../../common/g++.conf) +include(../../common/linux.conf) +include(../../common/qws.conf) + +# modifications to g++.conf +QMAKE_CC = powerpc-linux-gcc +QMAKE_CXX = powerpc-linux-g++ +QMAKE_LINK = powerpc-linux-g++ +QMAKE_LINK_SHLIB = powerpc-linux-g++ + +# modifications to linux.conf +QMAKE_AR = powerpc-linux-ar cqs +QMAKE_OBJCOPY = powerpc-linux-objcopy +QMAKE_STRIP = powerpc-linux-strip + +load(qt_config) diff --git a/mkspecs/qws/linux-ppc-g++/qplatformdefs.h b/mkspecs/qws/linux-powerpc-g++/qplatformdefs.h index 60e0f5e..60e0f5e 100644 --- a/mkspecs/qws/linux-ppc-g++/qplatformdefs.h +++ b/mkspecs/qws/linux-powerpc-g++/qplatformdefs.h diff --git a/mkspecs/qws/linux-ppc-g++/qmake.conf b/mkspecs/qws/linux-ppc-g++/qmake.conf deleted file mode 100644 index a026e88..0000000 --- a/mkspecs/qws/linux-ppc-g++/qmake.conf +++ /dev/null @@ -1,9 +0,0 @@ -# -# qmake configuration for building with g++ -# - -include(../../common/g++.conf) -include(../../common/linux.conf) -include(../../common/qws.conf) - -load(qt_config) diff --git a/qmake/generators/symbian/symmake.cpp b/qmake/generators/symbian/symmake.cpp index dd1dd5f..3d24053 100644 --- a/qmake/generators/symbian/symmake.cpp +++ b/qmake/generators/symbian/symmake.cpp @@ -71,6 +71,9 @@ #define MMP_TARGET "TARGET" #define MMP_TARGETTYPE "TARGETTYPE" #define MMP_SECUREID "SECUREID" +#define MMP_OPTION_CW "OPTION CW" +#define MMP_OPTION_ARMCC "OPTION ARMCC" +#define MMP_OPTION_GCCE "OPTION GCCE" #define SIS_TARGET "sis" #define OK_SIS_TARGET "ok_sis" @@ -649,9 +652,35 @@ void SymbianMakefileGenerator::initMmpVariables() sysincspaths << temporary; systeminclude.insert("SYSTEMINCLUDE", sysincspaths); + + // Check MMP_RULES for singleton keywords that are overridden + QStringList overridableMmpKeywords; + overridableMmpKeywords << QLatin1String(MMP_TARGETTYPE) << QLatin1String(MMP_OPTION_CW) + << QLatin1String(MMP_OPTION_ARMCC) << QLatin1String(MMP_OPTION_GCCE); + + foreach (QString item, project->values("MMP_RULES")) { + if (project->values(item).isEmpty()) { + checkOverridability(overridableMmpKeywords, item); + } else { + foreach (QString itemRow, project->values(item)) { + checkOverridability(overridableMmpKeywords, itemRow); + } + } + } +} + +void SymbianMakefileGenerator::checkOverridability(QStringList &overridableKeywords, QString &checkString) +{ + // Check if checkString contains overridable keyword and + // add the keyword to overridden keywords list if so. + QString simplifiedString = checkString.simplified(); + foreach (QString item, overridableKeywords) { + if (simplifiedString.startsWith(item)) + appendIfnotExist(overriddenMmpKeywords, item); + } } -bool SymbianMakefileGenerator::removeDuplicatedStrings(QStringList& stringList) +bool SymbianMakefileGenerator::removeDuplicatedStrings(QStringList &stringList) { QStringList tmpStringList; @@ -762,24 +791,32 @@ void SymbianMakefileGenerator::addMacro(QTextStream& t, const QString& value) void SymbianMakefileGenerator::writeMmpFileTargetPart(QTextStream& t) { + bool skipTargetType = overriddenMmpKeywords.contains(MMP_TARGETTYPE); + if (targetType == TypeExe) { t << MMP_TARGET << "\t\t" << fixedTarget << ".exe" << endl; - if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) - t << MMP_TARGETTYPE << "\t\t" << "STDEXE" << endl; - else - t << MMP_TARGETTYPE << "\t\t" << "EXE" << endl; + if (!skipTargetType) { + if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) + t << MMP_TARGETTYPE << "\t\t" << "STDEXE" << endl; + else + t << MMP_TARGETTYPE << "\t\t" << "EXE" << endl; + } } else if (targetType == TypeDll || targetType == TypePlugin) { t << MMP_TARGET << "\t\t" << fixedTarget << ".dll" << endl; - if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) - t << MMP_TARGETTYPE << "\t\t" << "STDDLL" << endl; - else - t << MMP_TARGETTYPE << "\t\t" << "DLL" << endl; + if (!skipTargetType) { + if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) + t << MMP_TARGETTYPE << "\t\t" << "STDDLL" << endl; + else + t << MMP_TARGETTYPE << "\t\t" << "DLL" << endl; + } } else if (targetType == TypeLib) { t << MMP_TARGET << "\t\t" << fixedTarget << ".lib" << endl; - if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) - t << MMP_TARGETTYPE << "\t\t" << "STDLIB" << endl; - else - t << MMP_TARGETTYPE << "\t\t" << "LIB" << endl; + if (!skipTargetType) { + if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) + t << MMP_TARGETTYPE << "\t\t" << "STDLIB" << endl; + else + t << MMP_TARGETTYPE << "\t\t" << "LIB" << endl; + } } else { fprintf(stderr, "Error: Unexpected targettype (%d) in SymbianMakefileGenerator::writeMmpFileTargetPart\n", targetType); } @@ -990,12 +1027,12 @@ void SymbianMakefileGenerator::writeMmpFileCompilerOptionPart(QTextStream& t) if (!gcce.isEmpty() && gcce[gcce.size()-1] == ' ') gcce.chop(1); - if (!cw.isEmpty()) - t << "OPTION CW " << cw << endl; - if (!armcc.isEmpty()) - t << "OPTION ARMCC " << armcc << endl; - if (!gcce.isEmpty()) - t << "OPTION GCCE " << gcce << endl; + if (!cw.isEmpty() && !overriddenMmpKeywords.contains(MMP_OPTION_CW)) + t << MMP_OPTION_CW " " << cw << endl; + if (!armcc.isEmpty() && !overriddenMmpKeywords.contains(MMP_OPTION_ARMCC)) + t << MMP_OPTION_ARMCC " " << armcc << endl; + if (!gcce.isEmpty() && !overriddenMmpKeywords.contains(MMP_OPTION_GCCE)) + t << MMP_OPTION_GCCE " " << gcce << endl; t << endl; } diff --git a/qmake/generators/symbian/symmake.h b/qmake/generators/symbian/symmake.h index 8e1a492..36f6e05 100644 --- a/qmake/generators/symbian/symmake.h +++ b/qmake/generators/symbian/symmake.h @@ -73,6 +73,7 @@ protected: QMap<QString, QStringList> library; // (output file) (source , command) QMap<QString, QStringList> makmakeCommands; + QStringList overriddenMmpKeywords; QStringList generatedFiles; QStringList generatedDirs; @@ -95,6 +96,7 @@ protected: QString generateUID3(); void initMmpVariables(); + void checkOverridability(QStringList &overridableKeywords, QString &checkString); void writeHeader(QTextStream &t); void writeBldInfContent(QTextStream& t, bool addDeploymentExtension); diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri b/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri index 8483469..965f3d6 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri +++ b/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri @@ -37,6 +37,9 @@ win32-* { LIBS += -lwinmm } +contains(JAVASCRIPTCORE_JIT,yes): DEFINES+=ENABLE_JIT=1 +contains(JAVASCRIPTCORE_JIT,no): DEFINES+=ENABLE_JIT=0 + # In debug mode JIT disabled until crash fixed win32-* { CONFIG(debug):!contains(DEFINES, ENABLE_JIT=1): DEFINES+=ENABLE_JIT=0 diff --git a/src/3rdparty/javascriptcore/WebKit.pri b/src/3rdparty/javascriptcore/WebKit.pri index ded4701..fd918c9 100644 --- a/src/3rdparty/javascriptcore/WebKit.pri +++ b/src/3rdparty/javascriptcore/WebKit.pri @@ -48,7 +48,7 @@ symbian|*-armcc { RVCT_COMMON_CFLAGS = --gnu --diag_suppress 68,111,177,368,830,1293 RVCT_COMMON_CXXFLAGS = $$RVCT_COMMON_CFLAGS --no_parse_templates DEFINES *= QT_NO_UITOOLS -} +} *-armcc { QMAKE_CFLAGS += $$RVCT_COMMON_CFLAGS @@ -63,7 +63,7 @@ contains(DEFINES, QT_NO_UITOOLS): CONFIG -= uitools # Disable a few warnings on Windows. The warnings are also # disabled in WebKitLibraries/win/tools/vsprops/common.vsprops -win32-msvc*: QMAKE_CXXFLAGS += -wd4291 -wd4344 -wd4503 -wd4800 -wd4819 -wd4996 +win32-msvc*: QMAKE_CXXFLAGS += -wd4291 -wd4344 -wd4396 -wd4503 -wd4800 -wd4819 -wd4996 # # For builds inside Qt we interpret the output rule and the input of each extra compiler manually diff --git a/src/3rdparty/phonon/mmf/TODO.txt b/src/3rdparty/phonon/mmf/TODO.txt deleted file mode 100644 index a2b1865..0000000 --- a/src/3rdparty/phonon/mmf/TODO.txt +++ /dev/null @@ -1,29 +0,0 @@ -TODO list for MMF Phonon backend --------------------------------- - -The following items are in rough order of priority. - -* Activating full-screen video playback in qmediaplayer causes the app to crash -This may be symptomatic of more general problems with re-sizing / re-positioning video while playing. - -* Implement audio effects - -* Support for playing "file:" URLs - -* Support for network streaming playback -The main question here is how best to implement the MIME type detection for streams. The OpenUrlL functions only take a URL, whereas the corresponding OpenFileL functions have overloads for filenames and for open RFile handles. This is because files support random access whereas streams do not. A naieve approach to MIME type detection for streams is as follows; is there a more efficient approach? - 1. Open network connection - 2. Download header - 3. Detect MIME type and create AbstractMediaPlayer instance - 4. Close network connection - 5. Pass URL to MMF client utility, which will then re-open the stream -An alternative approach is to always create a VideoPlayer when passed an RTSP URL, and then modify VideoPlayer::hasVideo to check CVideoPlayerUtility::VideoMimeTypeL before returning. This way, we would always use CVideoPlayerUtility for RTSP streaming, whether the source is audio or video. Well-behaved client apps, however, should check MediaObject::hasVideo before creating the UI - and therefore the VideoWidget would only be connected if the source is actually a video stream. - -* Performance analysis -Compare video frame rate obtained using default S60 media player and Qt demo apps - -* Implement MMF::Backend::disconnectNodes -This should probably be left for now, particularly until audio effects have been implemented. This is because the node connection mechanism may need to be refactored slightly once we start building up longer graphs (e.g. MediaObject -> Effect -> Effect -> AudioOutput). - -* Metadata is not implemented. - diff --git a/src/3rdparty/phonon/mmf/audioplayer.cpp b/src/3rdparty/phonon/mmf/audioplayer.cpp index aa2a94b..6c1fc68 100644 --- a/src/3rdparty/phonon/mmf/audioplayer.cpp +++ b/src/3rdparty/phonon/mmf/audioplayer.cpp @@ -101,7 +101,7 @@ int MMF::AudioPlayer::setDeviceVolume(int mmfVolume) * stack by doing a runtime check of the SDK version. */ #if !defined(__SERIES60_31__) const int err = m_player->SetVolume(mmfVolume); - if (QSysInfo::s60Version() > QSysInfo::SV_S60_3_1) + if (QSysInfo::s60Version() >= QSysInfo::SV_S60_5_0) return err; else return KErrNone; diff --git a/src/3rdparty/phonon/mmf/mmf_medianode.cpp b/src/3rdparty/phonon/mmf/mmf_medianode.cpp index b5ea91a..b60d6f4 100644 --- a/src/3rdparty/phonon/mmf/mmf_medianode.cpp +++ b/src/3rdparty/phonon/mmf/mmf_medianode.cpp @@ -49,7 +49,7 @@ bool MMF::MediaNode::disconnectMediaNode(MediaNode *target) Q_UNUSED(target); m_target = 0; m_isApplied = false; - return false; + return true; } void MMF::MediaNode::setSource(MediaNode *source) diff --git a/src/3rdparty/phonon/mmf/mmf_videoplayer.cpp b/src/3rdparty/phonon/mmf/mmf_videoplayer.cpp index 83d715d..c7fa791 100644 --- a/src/3rdparty/phonon/mmf/mmf_videoplayer.cpp +++ b/src/3rdparty/phonon/mmf/mmf_videoplayer.cpp @@ -16,11 +16,12 @@ along with this library. If not, see <http://www.gnu.org/licenses/>. */ +#include <QApplication> // for QApplication::activeWindow #include <QUrl> #include <QTimer> #include <QWidget> -#include <coemain.h> // For CCoeEnv +#include <coemain.h> // for CCoeEnv #include <coecntrl.h> #include "mmf_videoplayer.h" @@ -69,11 +70,8 @@ void MMF::VideoPlayer::construct() TRACE_CONTEXT(VideoPlayer::VideoPlayer, EVideoApi); TRACE_ENTRY_0(); - if (!m_videoOutput) { - m_dummyVideoOutput.reset(new VideoOutput(0)); - } - - videoOutput().setObserver(this); + if(m_videoOutput) + m_videoOutput->setObserver(this); const TInt priority = 0; const TMdaPriorityPreference preference = EMdaPriorityPreferenceNone; @@ -253,7 +251,8 @@ void MMF::VideoPlayer::MvpuoPrepareComplete(TInt aError) if (KErrNone == err) { maxVolumeChanged(m_player->MaxVolume()); - videoOutput().setFrameSize(m_frameSize); + if(m_videoOutput) + m_videoOutput->setFrameSize(m_frameSize); // See comment in updateMmfOutput if(m_mmfOutputChangePending) { @@ -339,6 +338,38 @@ void MMF::VideoPlayer::videoOutputRegionChanged() TRACE_EXIT_0(); } +// DEBUGGING *** DO NOT INTEGRATE *** +class CDummyAO : public CActive +{ +public: + CDummyAO() : CActive(CActive::EPriorityStandard) { CActiveScheduler::Add(this); } + void RunL() { } + void DoCancel() { } + TRequestStatus& Status() { return iStatus; } + void SetActive() { CActive::SetActive(); } +}; + +// DEBUGGING *** DO NOT INTEGRATE *** +void getDsaRegion(RWsSession &session, const RWindowBase &window) +{ + RDirectScreenAccess dsa(session); + TInt err = dsa.Construct(); + CDummyAO ao; + RRegion* region; + err = dsa.Request(region, ao.Status(), window); + ao.SetActive(); + dsa.Close(); + ao.Cancel(); + if(region) { + qDebug() << "Phonon::MMF::getDsaRegion count" << region->Count(); + for(int i=0; i<region->Count(); ++i) { + const TRect& rect = region->RectangleList()[i]; + qDebug() << "Phonon::MMF::getDsaRegion rect" << rect.iTl.iX << rect.iTl.iY << rect.iBr.iX << rect.iBr.iY; + } + region->Close(); + } +} + void MMF::VideoPlayer::updateMmfOutput() { TRACE_CONTEXT(VideoPlayer::updateMmfOutput, EVideoInternal); @@ -351,13 +382,10 @@ void MMF::VideoPlayer::updateMmfOutput() // MvpuoPrepareComplete, at which point the MMF controller has been // loaded. - // TODO: check whether videoOutput is visible? If not, then the - // corresponding window will not be active, meaning that the - // clipping region will be set to empty and the video will not be - // visible. If this is the case, we should set m_mmfOutputChangePending - // and respond to future showEvents from the videoOutput widget. - getNativeWindowSystemHandles(); + +// DEBUGGING *** DO NOT INTEGRATE *** +getDsaRegion(*m_wsSession, *m_window); TRAPD(err, m_player->SetDisplayWindowL @@ -383,28 +411,16 @@ void MMF::VideoPlayer::updateMmfOutput() // Private functions //----------------------------------------------------------------------------- -VideoOutput& MMF::VideoPlayer::videoOutput() -{ - TRACE_CONTEXT(VideoPlayer::videoOutput, EVideoInternal); - TRACE("videoOutput 0x%08x dummy 0x%08x", m_videoOutput, m_dummyVideoOutput.data()); - - return m_videoOutput ? *m_videoOutput : *m_dummyVideoOutput; -} - void MMF::VideoPlayer::videoOutputChanged() { TRACE_CONTEXT(VideoPlayer::videoOutputChanged, EVideoInternal); TRACE_ENTRY_0(); - // Lazily construct a dummy output if needed here - if (!m_videoOutput and m_dummyVideoOutput.isNull()) { - m_dummyVideoOutput.reset(new VideoOutput(0)); + if(m_videoOutput) { + m_videoOutput->setObserver(this); + m_videoOutput->setFrameSize(m_frameSize); } - videoOutput().setObserver(this); - - videoOutput().setFrameSize(m_frameSize); - videoOutputRegionChanged(); TRACE_EXIT_0(); @@ -414,9 +430,15 @@ void MMF::VideoPlayer::getNativeWindowSystemHandles() { TRACE_CONTEXT(VideoPlayer::getNativeWindowSystemHandles, EVideoInternal); TRACE_ENTRY_0(); - - VideoOutput& output = videoOutput(); - CCoeControl* const control = output.winId(); + + CCoeControl *control = 0; + + if(m_videoOutput) + // Create native window + control = m_videoOutput->winId(); + else + // Get top-level window + control = QApplication::activeWindow()->effectiveWinId(); CCoeEnv* const coeEnv = control->ControlEnv(); m_wsSession = &(coeEnv->WsSession()); @@ -424,18 +446,29 @@ void MMF::VideoPlayer::getNativeWindowSystemHandles() m_window = control->DrawableWindow(); #ifdef _DEBUG - QScopedPointer<ObjectDump::QDumper> dumper(new ObjectDump::QDumper); - dumper->setPrefix("Phonon::MMF"); // to aid searchability of logs - ObjectDump::addDefaultAnnotators(*dumper); - TRACE_0("Dumping VideoOutput:"); - dumper->dumpObject(output); + if(m_videoOutput) { + QScopedPointer<ObjectDump::QDumper> dumper(new ObjectDump::QDumper); + dumper->setPrefix("Phonon::MMF"); // to aid searchability of logs + ObjectDump::addDefaultAnnotators(*dumper); + TRACE_0("Dumping VideoOutput:"); + dumper->dumpObject(*m_videoOutput); + } + else { + TRACE_0("m_videoOutput is null - dumping top-level control info:"); + TRACE("control %08x", control); + TRACE("control.parent %08x", control->Parent()); + TRACE("control.isVisible %d", control->IsVisible()); + TRACE("control.rect %d,%d %dx%d", + control->Position().iX, control->Position().iY, + control->Size().iWidth, control->Size().iHeight); + TRACE("control.ownsWindow %d", control->OwnsWindow()); + } #endif m_windowRect = TRect( control->DrawableWindow()->AbsPosition(), control->DrawableWindow()->Size()); - - m_clipRect = m_windowRect; + m_clipRect = m_windowRect; TRACE("windowRect %d %d - %d %d", m_windowRect.iTl.iX, m_windowRect.iTl.iY, diff --git a/src/3rdparty/phonon/mmf/mmf_videoplayer.h b/src/3rdparty/phonon/mmf/mmf_videoplayer.h index a805135..ee3650a 100644 --- a/src/3rdparty/phonon/mmf/mmf_videoplayer.h +++ b/src/3rdparty/phonon/mmf/mmf_videoplayer.h @@ -75,7 +75,6 @@ public: private: void construct(); - VideoOutput& videoOutput(); void doPrepareCompleteL(TInt aError); @@ -87,7 +86,6 @@ private: private: QScopedPointer<CVideoPlayerUtility> m_player; - QScopedPointer<VideoOutput> m_dummyVideoOutput; // Not owned RWsSession* m_wsSession; diff --git a/src/3rdparty/phonon/mmf/mmfphonondebug/objectdump_symbian.cpp b/src/3rdparty/phonon/mmf/mmfphonondebug/objectdump_symbian.cpp index f8adcd5..5ae10f9 100644 --- a/src/3rdparty/phonon/mmf/mmfphonondebug/objectdump_symbian.cpp +++ b/src/3rdparty/phonon/mmf/mmfphonondebug/objectdump_symbian.cpp @@ -82,9 +82,10 @@ QList<QByteArray> QAnnotatorWindow::annotation(const QObject& object) // ClientHandle() is available first in 5.0. #if !defined(__SERIES60_31__) && !defined(__S60_32__) - // Client-side window handle - // Cast to a void pointer so that log output is in hexadecimal format. - stream << "cli " << reinterpret_cast<const void*>(window.ClientHandle()) << ' '; + if (QSysInfo::s60Version() > QSysInfo::SV_S60_3_2) + // Client-side window handle + // Cast to a void pointer so that log output is in hexadecimal format. + stream << "cli " << reinterpret_cast<const void*>(window.ClientHandle()) << ' '; #endif // Server-side address of CWsWindow object @@ -104,7 +105,9 @@ QList<QByteArray> QAnnotatorWindow::annotation(const QObject& object) stream << window.Size().iWidth << 'x' << window.Size().iHeight << ' '; const TDisplayMode displayMode = window.DisplayMode(); - stream << "mode " << displayMode; + stream << "mode " << displayMode << ' '; + + stream << "ord " << window.OrdinalPosition(); stream.flush(); result.append(array); diff --git a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pri b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pri index 73791e0..d8b6f4b 100644 --- a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pri +++ b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pri @@ -36,6 +36,8 @@ GENERATED_SOURCES_DIR_SLASH = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP} win32-* { LIBS += -lwinmm } +contains(JAVASCRIPTCORE_JIT,yes): DEFINES+=ENABLE_JIT=1 +contains(JAVASCRIPTCORE_JIT,no): DEFINES+=ENABLE_JIT=0 # In debug mode JIT disabled until crash fixed win32-* { diff --git a/src/3rdparty/webkit/WebCore/bridge/qt/qt_class.h b/src/3rdparty/webkit/WebCore/bridge/qt/qt_class.h index 19d4207..dc6b130 100644 --- a/src/3rdparty/webkit/WebCore/bridge/qt/qt_class.h +++ b/src/3rdparty/webkit/WebCore/bridge/qt/qt_class.h @@ -26,7 +26,7 @@ QT_BEGIN_NAMESPACE class QObject; -class QMetaObject; +struct QMetaObject; QT_END_NAMESPACE namespace JSC { diff --git a/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp b/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp index 23eef11..3cb2156 100644 --- a/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp +++ b/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp @@ -1339,7 +1339,7 @@ void QtRuntimeMetaMethod::markChildren(MarkStack& markStack) markStack.append(d->m_disconnect); } -JSValue QtRuntimeMetaMethod::call(ExecState* exec, JSObject* functionObject, JSValue thisValue, const ArgList& args) +JSValue QtRuntimeMetaMethod::call(ExecState* exec, JSObject* functionObject, JSValue, const ArgList& args) { QtRuntimeMetaMethodData* d = static_cast<QtRuntimeMetaMethod *>(functionObject)->d_func(); @@ -1437,7 +1437,7 @@ QtRuntimeConnectionMethod::QtRuntimeConnectionMethod(ExecState* exec, const Iden d->m_isConnect = isConnect; } -JSValue QtRuntimeConnectionMethod::call(ExecState* exec, JSObject* functionObject, JSValue thisValue, const ArgList& args) +JSValue QtRuntimeConnectionMethod::call(ExecState* exec, JSObject* functionObject, JSValue, const ArgList& args) { QtRuntimeConnectionMethodData* d = static_cast<QtRuntimeConnectionMethod *>(functionObject)->d_func(); diff --git a/src/3rdparty/webkit/WebCore/dom/XMLTokenizerQt.cpp b/src/3rdparty/webkit/WebCore/dom/XMLTokenizerQt.cpp index f745830..04405d6 100644 --- a/src/3rdparty/webkit/WebCore/dom/XMLTokenizerQt.cpp +++ b/src/3rdparty/webkit/WebCore/dom/XMLTokenizerQt.cpp @@ -238,7 +238,7 @@ void XMLTokenizer::doWrite(const String& parseString) return; } -void XMLTokenizer::initializeParserContext(const char* chunk) +void XMLTokenizer::initializeParserContext(const char*) { m_parserStopped = false; m_sawError = false; diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontCacheQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontCacheQt.cpp index aa79cb9..1113eae 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontCacheQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontCacheQt.cpp @@ -48,7 +48,7 @@ FontCache::FontCache() { } -void FontCache::getTraitsInFamily(const AtomicString& familyName, Vector<unsigned>& traitsMasks) +void FontCache::getTraitsInFamily(const AtomicString&, Vector<unsigned>&) { } @@ -177,7 +177,7 @@ typedef HashMap<FontPlatformDataCacheKey, FontPlatformData*, FontPlatformDataCac // using Q_GLOBAL_STATIC leads to crash. TODO investigate the way to fix this. static FontPlatformDataCache* gFontPlatformDataCache = 0; -FontPlatformData* FontCache::getCachedFontPlatformData(const FontDescription& description, const AtomicString& family, bool checkingAlternateName) +FontPlatformData* FontCache::getCachedFontPlatformData(const FontDescription& description, const AtomicString&, bool) { if (!gFontPlatformDataCache) gFontPlatformDataCache = new FontPlatformDataCache; diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontFallbackListQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontFallbackListQt.cpp index c29fd56..8e1e4f6 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontFallbackListQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontFallbackListQt.cpp @@ -130,7 +130,7 @@ const FontData* FontFallbackList::fontDataForCharacters(const WebCore::Font* fon return primaryFontData(font); } -void FontFallbackList::setPlatformFont(const WebCore::FontPlatformData& platformData) +void FontFallbackList::setPlatformFont(const WebCore::FontPlatformData&) { m_familyIndex = cAllFamiliesScanned; } diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp index e8eb923..c5960ac 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp @@ -197,7 +197,7 @@ float Font::floatWidthForComplexText(const TextRun& run, HashSet<const SimpleFon return w + run.padding(); } -int Font::offsetForPositionForComplexText(const TextRun& run, int position, bool includePartialGlyphs) const +int Font::offsetForPositionForComplexText(const TextRun& run, int position, bool) const { const QString string = fixSpacing(qstring(run)); QTextLayout layout(string, font()); diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsContextQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsContextQt.cpp index 2f367fa..094054b 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsContextQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsContextQt.cpp @@ -860,7 +860,7 @@ void GraphicsContext::drawFocusRing(const Color& color) p->setRenderHint(QPainter::Antialiasing, antiAlias); } -void GraphicsContext::drawLineForText(const IntPoint& origin, int width, bool printing) +void GraphicsContext::drawLineForText(const IntPoint& origin, int width, bool) { if (paintingDisabled()) return; @@ -869,8 +869,7 @@ void GraphicsContext::drawLineForText(const IntPoint& origin, int width, bool pr drawLine(origin, endPoint); } -void GraphicsContext::drawLineForMisspellingOrBadGrammar(const IntPoint&, - int width, bool grammar) +void GraphicsContext::drawLineForMisspellingOrBadGrammar(const IntPoint&, int, bool) { if (paintingDisabled()) return; @@ -887,7 +886,7 @@ FloatRect GraphicsContext::roundToDevicePixels(const FloatRect& frect) return FloatRect(QRectF(result)); } -void GraphicsContext::setPlatformShadow(const IntSize& size, int blur, const Color &color) +void GraphicsContext::setPlatformShadow(const IntSize& size, int, const Color&) { // Qt doesn't support shadows natively, they are drawn manually in the draw* // functions @@ -1198,7 +1197,7 @@ void GraphicsContext::concatCTM(const TransformationMatrix& transform) } } -void GraphicsContext::setURLForRect(const KURL& link, const IntRect& destRect) +void GraphicsContext::setURLForRect(const KURL&, const IntRect&) { notImplemented(); } diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/IconQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/IconQt.cpp index 34c3c47..98f4606 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/IconQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/IconQt.cpp @@ -47,7 +47,7 @@ PassRefPtr<Icon> Icon::createIconForFile(const String& filename) return i.release(); } -PassRefPtr<Icon> Icon::createIconForFiles(const Vector<String>& filenames) +PassRefPtr<Icon> Icon::createIconForFiles(const Vector<String>&) { //FIXME: Implement this return 0; diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageBufferQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageBufferQt.cpp index be32797..5255428 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageBufferQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageBufferQt.cpp @@ -68,7 +68,7 @@ ImageBufferData::ImageBufferData(const IntSize& size) painter->setCompositionMode(QPainter::CompositionMode_SourceOver); } -ImageBuffer::ImageBuffer(const IntSize& size, ImageColorSpace imageColorSpace, bool& success) +ImageBuffer::ImageBuffer(const IntSize& size, ImageColorSpace, bool& success) : m_data(size) , m_size(size) { diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.cpp index bf6210b..8851984 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.cpp @@ -301,7 +301,7 @@ String ImageDecoderQt::filenameExtension() const return m_imageFormat; }; -RGBA32Buffer* ImageDecoderQt::frameBufferAtIndex(size_t index) +RGBA32Buffer* ImageDecoderQt::frameBufferAtIndex(size_t) { Q_ASSERT("use imageAtIndex instead"); return 0; diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp index 71c5cd4..f0d513c 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp @@ -150,7 +150,7 @@ void MediaPlayerPrivate::getSupportedTypes(HashSet<String>&) notImplemented(); } -MediaPlayer::SupportsType MediaPlayerPrivate::supportsType(const String& type, const String& codecs) +MediaPlayer::SupportsType MediaPlayerPrivate::supportsType(const String&, const String&) { // FIXME: do the real thing notImplemented(); @@ -259,7 +259,7 @@ float MediaPlayerPrivate::currentTime() const return currentTime; } -void MediaPlayerPrivate::setEndTime(float endTime) +void MediaPlayerPrivate::setEndTime(float) { notImplemented(); } diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/SimpleFontDataQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/SimpleFontDataQt.cpp index f823f84..f093d7d 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/SimpleFontDataQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/SimpleFontDataQt.cpp @@ -33,7 +33,7 @@ void SimpleFontData::determinePitch() m_treatAsFixedPitch = m_platformData.font().fixedPitch(); } -bool SimpleFontData::containsCharacters(const UChar*, int length) const +bool SimpleFontData::containsCharacters(const UChar*, int) const { return true; } diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/StillImageQt.h b/src/3rdparty/webkit/WebCore/platform/graphics/qt/StillImageQt.h index 2b2c1f7..6c417b1 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/StillImageQt.h +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/StillImageQt.h @@ -41,7 +41,7 @@ namespace WebCore { // FIXME: StillImages are underreporting decoded sizes and will be unable // to prune because these functions are not implemented yet. - virtual void destroyDecodedData(bool destroyAll = true) { } + virtual void destroyDecodedData(bool destroyAll = true) { Q_UNUSED(destroyAll); } virtual unsigned decodedSize() const { return 0; } virtual IntSize size() const; diff --git a/src/3rdparty/webkit/WebCore/platform/network/qt/DnsPrefetchHelper.h b/src/3rdparty/webkit/WebCore/platform/network/qt/DnsPrefetchHelper.h index e85d2dc..0d98fcb 100644 --- a/src/3rdparty/webkit/WebCore/platform/network/qt/DnsPrefetchHelper.h +++ b/src/3rdparty/webkit/WebCore/platform/network/qt/DnsPrefetchHelper.h @@ -56,7 +56,7 @@ namespace WebCore { } } - void lookedUp(const QHostInfo &host) + void lookedUp(const QHostInfo&) { // we do not cache the result, we throw it away. // we currently rely on the OS to cache the results. If it does not do that diff --git a/src/3rdparty/webkit/WebCore/platform/qt/ContextMenuQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/ContextMenuQt.cpp index 063a46b..9b1a054 100644 --- a/src/3rdparty/webkit/WebCore/platform/qt/ContextMenuQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/qt/ContextMenuQt.cpp @@ -61,7 +61,7 @@ void ContextMenu::insertItem(unsigned position, ContextMenuItem& item) m_items.insert(position, item); } -void ContextMenu::setPlatformDescription(PlatformMenuDescription menu) +void ContextMenu::setPlatformDescription(PlatformMenuDescription) { // doesn't make sense } diff --git a/src/3rdparty/webkit/WebCore/platform/qt/DragDataQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/DragDataQt.cpp index c8c0be1..b0611e6 100644 --- a/src/3rdparty/webkit/WebCore/platform/qt/DragDataQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/qt/DragDataQt.cpp @@ -119,7 +119,7 @@ bool DragData::containsURL() const return m_platformDragData->hasUrls(); } -String DragData::asURL(String* title) const +String DragData::asURL(String*) const { if (!m_platformDragData) return String(); diff --git a/src/3rdparty/webkit/WebCore/platform/qt/PopupMenuQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/PopupMenuQt.cpp index 9ce5838..b44f2ec 100644 --- a/src/3rdparty/webkit/WebCore/platform/qt/PopupMenuQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/qt/PopupMenuQt.cpp @@ -60,7 +60,7 @@ void PopupMenu::clear() m_popup->clear(); } -void PopupMenu::populate(const IntRect& r) +void PopupMenu::populate(const IntRect&) { clear(); Q_ASSERT(client()); diff --git a/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp index f250047..f505d0c 100644 --- a/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp @@ -172,7 +172,7 @@ bool RenderThemeQt::supportsHover(const RenderStyle*) const return true; } -bool RenderThemeQt::supportsFocusRing(const RenderStyle* style) const +bool RenderThemeQt::supportsFocusRing(const RenderStyle*) const { return true; // Qt provides this through the style } @@ -274,7 +274,7 @@ Color RenderThemeQt::platformInactiveSelectionForegroundColor() const return pal.brush(QPalette::Inactive, QPalette::HighlightedText).color(); } -void RenderThemeQt::systemFont(int propId, FontDescription& fontDescription) const +void RenderThemeQt::systemFont(int, FontDescription&) const { // no-op } @@ -387,7 +387,7 @@ bool RenderThemeQt::paintRadio(RenderObject* o, const RenderObject::PaintInfo& i return paintButton(o, i, r); } -void RenderThemeQt::adjustButtonStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const +void RenderThemeQt::adjustButtonStyle(CSSStyleSelector* selector, RenderStyle* style, Element*) const { // Ditch the border. style->resetBorder(); @@ -584,8 +584,7 @@ bool RenderThemeQt::paintMenuList(RenderObject* o, const RenderObject::PaintInfo return false; } -void RenderThemeQt::adjustMenuListButtonStyle(CSSStyleSelector* selector, RenderStyle* style, - Element* e) const +void RenderThemeQt::adjustMenuListButtonStyle(CSSStyleSelector*, RenderStyle* style, Element*) const { // WORKAROUND because html.css specifies -webkit-border-radius for <select> so we override it here // see also http://bugs.webkit.org/show_bug.cgi?id=18399 @@ -887,13 +886,13 @@ bool RenderThemeQt::paintMediaPlayButton(RenderObject* o, const RenderObject::Pa return false; } -bool RenderThemeQt::paintMediaSeekBackButton(RenderObject* o, const RenderObject::PaintInfo& paintInfo, const IntRect& r) +bool RenderThemeQt::paintMediaSeekBackButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { // We don't want to paint this at the moment. return false; } -bool RenderThemeQt::paintMediaSeekForwardButton(RenderObject* o, const RenderObject::PaintInfo& paintInfo, const IntRect& r) +bool RenderThemeQt::paintMediaSeekForwardButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { // We don't want to paint this at the moment. return false; diff --git a/src/3rdparty/webkit/WebCore/platform/qt/ScrollViewQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/ScrollViewQt.cpp index 48885d3..ccbd751 100644 --- a/src/3rdparty/webkit/WebCore/platform/qt/ScrollViewQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/qt/ScrollViewQt.cpp @@ -53,7 +53,7 @@ void ScrollView::adjustWidgetsPreventingBlittingCount(int delta) parent()->adjustWidgetsPreventingBlittingCount(delta); } -void ScrollView::platformAddChild(Widget* child) +void ScrollView::platformAddChild(Widget*) { adjustWidgetsPreventingBlittingCount(1); } diff --git a/src/3rdparty/webkit/WebCore/platform/qt/SearchPopupMenuQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/SearchPopupMenuQt.cpp index 7822b2c..187a5de 100644 --- a/src/3rdparty/webkit/WebCore/platform/qt/SearchPopupMenuQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/qt/SearchPopupMenuQt.cpp @@ -29,11 +29,11 @@ SearchPopupMenu::SearchPopupMenu(PopupMenuClient* client) { } -void SearchPopupMenu::saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems) +void SearchPopupMenu::saveRecentSearches(const AtomicString&, const Vector<String>&) { } -void SearchPopupMenu::loadRecentSearches(const AtomicString& name, Vector<String>& searchItems) +void SearchPopupMenu::loadRecentSearches(const AtomicString&, Vector<String>&) { } diff --git a/src/3rdparty/webkit/WebCore/platform/qt/TemporaryLinkStubs.cpp b/src/3rdparty/webkit/WebCore/platform/qt/TemporaryLinkStubs.cpp index d37d412..814f961 100644 --- a/src/3rdparty/webkit/WebCore/platform/qt/TemporaryLinkStubs.cpp +++ b/src/3rdparty/webkit/WebCore/platform/qt/TemporaryLinkStubs.cpp @@ -100,7 +100,7 @@ void getSupportedKeySizes(Vector<String>&) notImplemented(); } -String signedPublicKeyAndChallengeString(unsigned keySizeIndex, const String &challengeString, const KURL &url) +String signedPublicKeyAndChallengeString(unsigned, const String&, const KURL&) { return String(); } diff --git a/src/3rdparty/webkit/WebCore/platform/qt/WidgetQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/WidgetQt.cpp index 4e82080..e9c99a4 100644 --- a/src/3rdparty/webkit/WebCore/platform/qt/WidgetQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/qt/WidgetQt.cpp @@ -101,7 +101,7 @@ void Widget::hide() platformWidget()->hide(); } -void Widget::paint(GraphicsContext *, const IntRect &rect) +void Widget::paint(GraphicsContext*, const IntRect&) { } diff --git a/src/3rdparty/webkit/WebCore/xml/XSLStyleSheetQt.cpp b/src/3rdparty/webkit/WebCore/xml/XSLStyleSheetQt.cpp index 9fada0e..6d27e20 100644 --- a/src/3rdparty/webkit/WebCore/xml/XSLStyleSheetQt.cpp +++ b/src/3rdparty/webkit/WebCore/xml/XSLStyleSheetQt.cpp @@ -83,12 +83,12 @@ void XSLStyleSheet::loadChildSheets() notImplemented(); } -void XSLStyleSheet::loadChildSheet(const String& href) +void XSLStyleSheet::loadChildSheet(const String&) { notImplemented(); } -void XSLStyleSheet::setParentStyleSheet(XSLStyleSheet* parent) +void XSLStyleSheet::setParentStyleSheet(XSLStyleSheet*) { notImplemented(); } diff --git a/src/3rdparty/webkit/WebCore/xml/XSLTProcessorQt.cpp b/src/3rdparty/webkit/WebCore/xml/XSLTProcessorQt.cpp index 523306a..50ee427 100644 --- a/src/3rdparty/webkit/WebCore/xml/XSLTProcessorQt.cpp +++ b/src/3rdparty/webkit/WebCore/xml/XSLTProcessorQt.cpp @@ -60,7 +60,7 @@ XSLTMessageHandler::XSLTMessageHandler(Document* document) } void XSLTMessageHandler::handleMessage(QtMsgType type, const QString& description, - const QUrl& identifier, const QSourceLocation& sourceLocation) + const QUrl&, const QSourceLocation& sourceLocation) { if (!m_document->frame()) return; @@ -87,7 +87,7 @@ void XSLTMessageHandler::handleMessage(QtMsgType type, const QString& descriptio sourceLocation.line(), sourceLocation.uri().toString()); } -bool XSLTProcessor::transformToString(Node* sourceNode, String& mimeType, String& resultString, String& resultEncoding) +bool XSLTProcessor::transformToString(Node* sourceNode, String&, String& resultString, String&) { bool success = false; diff --git a/src/3rdparty/webkit/WebKit.pri b/src/3rdparty/webkit/WebKit.pri index ded4701..fd918c9 100644 --- a/src/3rdparty/webkit/WebKit.pri +++ b/src/3rdparty/webkit/WebKit.pri @@ -48,7 +48,7 @@ symbian|*-armcc { RVCT_COMMON_CFLAGS = --gnu --diag_suppress 68,111,177,368,830,1293 RVCT_COMMON_CXXFLAGS = $$RVCT_COMMON_CFLAGS --no_parse_templates DEFINES *= QT_NO_UITOOLS -} +} *-armcc { QMAKE_CFLAGS += $$RVCT_COMMON_CFLAGS @@ -63,7 +63,7 @@ contains(DEFINES, QT_NO_UITOOLS): CONFIG -= uitools # Disable a few warnings on Windows. The warnings are also # disabled in WebKitLibraries/win/tools/vsprops/common.vsprops -win32-msvc*: QMAKE_CXXFLAGS += -wd4291 -wd4344 -wd4503 -wd4800 -wd4819 -wd4996 +win32-msvc*: QMAKE_CXXFLAGS += -wd4291 -wd4344 -wd4396 -wd4503 -wd4800 -wd4819 -wd4996 # # For builds inside Qt we interpret the output rule and the input of each extra compiler manually diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qgraphicswebview.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qgraphicswebview.cpp index d8d9d64..2a0ee20 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qgraphicswebview.cpp +++ b/src/3rdparty/webkit/WebKit/qt/Api/qgraphicswebview.cpp @@ -392,7 +392,8 @@ void QGraphicsWebView::setGeometry(const QRectF& rect) } /*! - \brief The load status message associated to the web graphicsitem + \property QGraphicsWebView::status + \brief the load status message. Provides the latest status message set during the load of a URL. Commonly shown by Status Bar widgets. @@ -492,14 +493,15 @@ void QGraphicsWebView::load(const QNetworkRequest& request, } /*! - Sets the content of the web graphicsitem to the specified \a html. + \property QGraphicsWebView::html + This property provides an HTML interface to the text in the webview. - External objects such as stylesheets or images referenced in the HTML - document are located relative to \a baseUrl. + When setting this property, external objects such as stylesheets or images + referenced in the HTML document are located relative to \a baseUrl. The \a html is loaded immediately; external objects are loaded asynchronously. - When using this method, WebKit assumes that external resources such as + When using these methods, WebKit assumes that external resources such as JavaScript programs or style sheets are encoded in UTF-8 unless otherwise specified. For example, the encoding of an external script can be specified through the charset attribute of the HTML script tag. Alternatively, the diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp index fe813b8..780f862 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp @@ -873,6 +873,7 @@ int QWebFrame::scrollBarMaximum(Qt::Orientation orientation) const */ int QWebFrame::scrollBarMinimum(Qt::Orientation orientation) const { + Q_UNUSED(orientation) return 0; } diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp index 942c3ea..655fd0e 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp @@ -967,7 +967,7 @@ void QWebPagePrivate::keyReleaseEvent(QKeyEvent *ev) ev->setAccepted(handled); } -void QWebPagePrivate::focusInEvent(QFocusEvent *ev) +void QWebPagePrivate::focusInEvent(QFocusEvent*) { FocusController *focusController = page->focusController(); Frame *frame = focusController->focusedFrame(); @@ -978,7 +978,7 @@ void QWebPagePrivate::focusInEvent(QFocusEvent *ev) focusController->setFocusedFrame(QWebFramePrivate::core(mainFrame)); } -void QWebPagePrivate::focusOutEvent(QFocusEvent *ev) +void QWebPagePrivate::focusOutEvent(QFocusEvent*) { // only set the focused frame inactive so that we stop painting the caret // and the focus frame. But don't tell the focus controller so that upon @@ -1082,7 +1082,7 @@ void QWebPagePrivate::dropEvent(QDropEvent* ev) #endif } -void QWebPagePrivate::leaveEvent(QEvent *ev) +void QWebPagePrivate::leaveEvent(QEvent*) { // Fake a mouse move event just outside of the widget, since all // the interesting mouse-out behavior like invalidating scrollbars @@ -1722,6 +1722,7 @@ void QWebPage::javaScriptConsoleMessage(const QString& message, int lineNumber, */ void QWebPage::javaScriptAlert(QWebFrame *frame, const QString& msg) { + Q_UNUSED(frame) #ifndef QT_NO_MESSAGEBOX QMessageBox::information(d->view, tr("JavaScript Alert - %1").arg(mainFrame()->url().host()), msg, QMessageBox::Ok); #endif @@ -1735,6 +1736,7 @@ void QWebPage::javaScriptAlert(QWebFrame *frame, const QString& msg) */ bool QWebPage::javaScriptConfirm(QWebFrame *frame, const QString& msg) { + Q_UNUSED(frame) #ifdef QT_NO_MESSAGEBOX return true; #else @@ -1753,6 +1755,7 @@ bool QWebPage::javaScriptConfirm(QWebFrame *frame, const QString& msg) */ bool QWebPage::javaScriptPrompt(QWebFrame *frame, const QString& msg, const QString& defaultValue, QString* result) { + Q_UNUSED(frame) bool ok = false; #ifndef QT_NO_INPUTDIALOG QString x = QInputDialog::getText(d->view, tr("JavaScript Prompt - %1").arg(mainFrame()->url().host()), msg, QLineEdit::Normal, defaultValue, &ok); @@ -1846,7 +1849,7 @@ static void openNewWindow(const QUrl& url, WebCore::Frame* frame) \sa action() */ -void QWebPage::triggerAction(WebAction action, bool checked) +void QWebPage::triggerAction(WebAction action, bool) { WebCore::Frame *frame = d->page->focusController()->focusedOrMainFrame(); if (!frame) @@ -2032,6 +2035,7 @@ bool QWebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest & bool QWebPage::acceptNavigationRequest(QWebFrame *frame, const QWebNetworkRequest &request, QWebPage::NavigationType type) #endif { + Q_UNUSED(frame) if (type == NavigationTypeLinkClicked) { switch (d->linkPolicy) { case DontDelegateLinks: @@ -2805,6 +2809,7 @@ QWebSettings *QWebPage::settings() const */ QString QWebPage::chooseFile(QWebFrame *parentFrame, const QString& suggestedFile) { + Q_UNUSED(parentFrame) #ifndef QT_NO_FILEDIALOG return QFileDialog::getOpenFileName(d->view, QString::null, suggestedFile); #else diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp index c7515ab..3c5f89f 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp @@ -650,6 +650,7 @@ qreal QWebView::textSizeMultiplier() const return page()->mainFrame()->textSizeMultiplier(); } +#if !defined(Q_OS_SYMBIAN) /*! \property QWebView::renderHints \since 4.6 @@ -661,6 +662,7 @@ qreal QWebView::textSizeMultiplier() const \sa QPainter::renderHints() */ +#endif QPainter::RenderHints QWebView::renderHints() const { return d->renderHints; diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebview.h b/src/3rdparty/webkit/WebKit/qt/Api/qwebview.h index 0f2649d..15b5836 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebview.h +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebview.h @@ -53,6 +53,7 @@ class QWEBKIT_EXPORT QWebView : public QWidget { // FIXME: temporary work around for elftran issue that it couldn't find the QPainter::staticMetaObject // symbol from Qt lib; it should be reverted after the right symbol is exported. +// remember to revert the qdoc \property comment as well. // See bug: http://qt.nokia.com/developer/task-tracker/index_html?method=entry&id=258893 #if !defined(Q_OS_SYMBIAN) Q_PROPERTY(QPainter::RenderHints renderHints READ renderHints WRITE setRenderHints) diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp index 5c65112..26cf6f6 100644 --- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp +++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp @@ -305,7 +305,7 @@ IntRect ChromeClientQt::windowResizerRect() const return IntRect(); } -void ChromeClientQt::repaint(const IntRect& windowRect, bool contentChanged, bool immediate, bool repaintContentOnly) +void ChromeClientQt::repaint(const IntRect& windowRect, bool contentChanged, bool, bool) { // No double buffer, so only update the QWidget if content changed. if (contentChanged) { @@ -351,7 +351,7 @@ void ChromeClientQt::contentsSizeChanged(Frame* frame, const IntSize& size) cons emit QWebFramePrivate::kit(frame)->contentsSizeChanged(size); } -void ChromeClientQt::mouseDidMoveOverElement(const HitTestResult& result, unsigned modifierFlags) +void ChromeClientQt::mouseDidMoveOverElement(const HitTestResult& result, unsigned) { TextDirection dir; if (result.absoluteLinkURL() != lastHoverURL @@ -402,7 +402,7 @@ void ChromeClientQt::exceededDatabaseQuota(Frame* frame, const String& databaseN #endif #if ENABLE(OFFLINE_WEB_APPLICATIONS) -void ChromeClientQt::reachedMaxAppCacheSize(int64_t spaceNeeded) +void ChromeClientQt::reachedMaxAppCacheSize(int64_t) { // FIXME: Free some space. notImplemented(); diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ContextMenuClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ContextMenuClientQt.cpp index ed79946..b4400ff 100644 --- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ContextMenuClientQt.cpp +++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ContextMenuClientQt.cpp @@ -52,7 +52,7 @@ void ContextMenuClientQt::contextMenuItemSelected(ContextMenuItem*, const Contex notImplemented(); } -void ContextMenuClientQt::downloadURL(const KURL& url) +void ContextMenuClientQt::downloadURL(const KURL&) { notImplemented(); } diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp index 67d974c..905e11d 100644 --- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp +++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp @@ -282,9 +282,7 @@ void FrameLoaderClientQt::dispatchDidCancelClientRedirect() } -void FrameLoaderClientQt::dispatchWillPerformClientRedirect(const KURL& url, - double interval, - double fireDate) +void FrameLoaderClientQt::dispatchWillPerformClientRedirect(const KURL& url, double, double) { if (dumpFrameLoaderCallbacks) printf("%s - willPerformClientRedirectToURL: %s \n", qPrintable(drtDescriptionSuitableForTestResult(m_frame)), qPrintable(drtDescriptionSuitableForTestResult(url))); @@ -464,7 +462,7 @@ void FrameLoaderClientQt::postProgressFinishedNotification() emit loadFinished(m_loadError.isNull()); } -void FrameLoaderClientQt::setMainFrameDocumentReady(bool b) +void FrameLoaderClientQt::setMainFrameDocumentReady(bool) { // this is only interesting once we provide an external API for the DOM } @@ -514,13 +512,13 @@ bool FrameLoaderClientQt::canShowMIMEType(const String& MIMEType) const return false; } -bool FrameLoaderClientQt::representationExistsForURLScheme(const String& URLScheme) const +bool FrameLoaderClientQt::representationExistsForURLScheme(const String&) const { return false; } -String FrameLoaderClientQt::generatedMIMETypeForURLScheme(const String& URLScheme) const +String FrameLoaderClientQt::generatedMIMETypeForURLScheme(const String&) const { notImplemented(); return String(); @@ -632,7 +630,7 @@ void FrameLoaderClientQt::updateGlobalHistoryRedirectLinks() { } -bool FrameLoaderClientQt::shouldGoToHistoryItem(WebCore::HistoryItem *item) const +bool FrameLoaderClientQt::shouldGoToHistoryItem(WebCore::HistoryItem *) const { return true; } @@ -750,7 +748,7 @@ WebCore::ResourceError FrameLoaderClientQt::fileDoesNotExistError(const WebCore: QCoreApplication::translate("QWebFrame", "File does not exist", 0, QCoreApplication::UnicodeUTF8)); } -WebCore::ResourceError FrameLoaderClientQt::pluginWillHandleLoadError(const WebCore::ResourceResponse& response) +WebCore::ResourceError FrameLoaderClientQt::pluginWillHandleLoadError(const WebCore::ResourceResponse&) { notImplemented(); return ResourceError(); @@ -788,7 +786,7 @@ void FrameLoaderClientQt::download(WebCore::ResourceHandle* handle, const WebCor #endif } -void FrameLoaderClientQt::assignIdentifierToInitialRequest(unsigned long identifier, WebCore::DocumentLoader* loader, const WebCore::ResourceRequest& request) +void FrameLoaderClientQt::assignIdentifierToInitialRequest(unsigned long identifier, WebCore::DocumentLoader*, const WebCore::ResourceRequest& request) { if (dumpResourceLoadCallbacks) dumpAssignedUrls[identifier] = drtDescriptionSuitableForTestResult(request.url()); @@ -835,7 +833,7 @@ void FrameLoaderClientQt::dispatchDidReceiveContentLength(WebCore::DocumentLoade { } -void FrameLoaderClientQt::dispatchDidFinishLoading(WebCore::DocumentLoader* loader, unsigned long) +void FrameLoaderClientQt::dispatchDidFinishLoading(WebCore::DocumentLoader*, unsigned long) { } @@ -1206,8 +1204,8 @@ void FrameLoaderClientQt::redirectDataToPlugin(Widget* pluginWidget) m_hasSentResponseToPlugin = false; } -PassRefPtr<Widget> FrameLoaderClientQt::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, - const Vector<String>& paramNames, const Vector<String>& paramValues) +PassRefPtr<Widget> FrameLoaderClientQt::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL&, + const Vector<String>&, const Vector<String>&) { notImplemented(); return 0; diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp index 340325e..3931a85 100644 --- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp +++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp @@ -138,12 +138,12 @@ void InspectorClientQt::detachWindow() notImplemented(); } -void InspectorClientQt::setAttachedWindowHeight(unsigned height) +void InspectorClientQt::setAttachedWindowHeight(unsigned) { notImplemented(); } -void InspectorClientQt::highlight(Node* node) +void InspectorClientQt::highlight(Node*) { notImplemented(); } @@ -205,7 +205,7 @@ void InspectorClientQt::storeSetting(const String& key, const InspectorControlle qsettings.setValue(settingKey + settingStorageTypeSuffix, QVariant::typeToName(valueToStore.type())); } -void InspectorClientQt::removeSetting(const String& key) +void InspectorClientQt::removeSetting(const String&) { notImplemented(); } diff --git a/src/corelib/animation/qabstractanimation.cpp b/src/corelib/animation/qabstractanimation.cpp index f92c22d..6bbd801 100644 --- a/src/corelib/animation/qabstractanimation.cpp +++ b/src/corelib/animation/qabstractanimation.cpp @@ -83,7 +83,7 @@ updateCurrentTime(). The duration() function lets you report a duration for the animation (as discussed above). The animation framework calls updateCurrentTime() when current time has changed. - By reimplementing this function, you can track the animation + By reimplementing this function, you can track the animation progress. Note that neither the interval between calls nor the number of calls to this function are defined; though, it will normally be 60 updates per second. @@ -228,15 +228,16 @@ void QUnifiedTimer::timerEvent(QTimerEvent *event) void QUnifiedTimer::registerAnimation(QAbstractAnimation *animation) { - if (animations.contains(animation) || animationsToStart.contains(animation)) - return; + Q_ASSERT(!QAbstractAnimationPrivate::get(animation)->hasRegisteredTimer); + QAbstractAnimationPrivate::get(animation)->hasRegisteredTimer = true; animationsToStart << animation; - startStopAnimationTimer.start(STARTSTOP_TIMER_DELAY, this); // we delay the check if we should start/stop the global timer + startStopAnimationTimer.start(STARTSTOP_TIMER_DELAY, this); } void QUnifiedTimer::unregisterAnimation(QAbstractAnimation *animation) { - Q_ASSERT(animations.count(animation) + animationsToStart.count(animation) <= 1); + if (!QAbstractAnimationPrivate::get(animation)->hasRegisteredTimer) + return; int idx = animations.indexOf(animation); if (idx != -1) { @@ -244,13 +245,14 @@ void QUnifiedTimer::unregisterAnimation(QAbstractAnimation *animation) // this is needed if we unregister an animation while its running if (idx <= currentAnimationIdx) --currentAnimationIdx; + if (animations.isEmpty()) + startStopAnimationTimer.start(STARTSTOP_TIMER_DELAY, this); } else { animationsToStart.removeOne(animation); } - startStopAnimationTimer.start(STARTSTOP_TIMER_DELAY, this); // we delay the check if we should start/stop the global timer + QAbstractAnimationPrivate::get(animation)->hasRegisteredTimer = false; } - void QAbstractAnimationPrivate::setState(QAbstractAnimation::State newState) { Q_Q(QAbstractAnimation); @@ -326,7 +328,6 @@ void QAbstractAnimationPrivate::setState(QAbstractAnimation::State newState) } break; } - } /*! diff --git a/src/corelib/animation/qabstractanimation_p.h b/src/corelib/animation/qabstractanimation_p.h index 20868f9..1a79f40 100644 --- a/src/corelib/animation/qabstractanimation_p.h +++ b/src/corelib/animation/qabstractanimation_p.h @@ -75,6 +75,7 @@ public: currentTime(0), loopCount(1), currentLoop(0), + hasRegisteredTimer(false), group(0) { } @@ -96,6 +97,8 @@ public: int loopCount; int currentLoop; + bool hasRegisteredTimer; + QAnimationGroup *group; private: @@ -137,7 +140,10 @@ protected: void timerEvent(QTimerEvent *); private: - QBasicTimer animationTimer, startStopAnimationTimer; + // timer used for all active animations + QBasicTimer animationTimer; + // timer used to delay the check if we should start/stop the global timer + QBasicTimer startStopAnimationTimer; QTime time; int lastTick; int timingInterval; diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h index a440606..9d76dcc 100644 --- a/src/corelib/global/qnamespace.h +++ b/src/corelib/global/qnamespace.h @@ -194,9 +194,9 @@ public: }; enum TileRule { - Stretch, - Repeat, - Round + StretchTile, + RepeatTile, + RoundTile }; // Text formatting flags for QPainter::drawText and QLabel. diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc index 9106fa8..6f0b0ee 100644 --- a/src/corelib/global/qnamespace.qdoc +++ b/src/corelib/global/qnamespace.qdoc @@ -612,12 +612,6 @@ */ /*! - \enum Qt::CoordinateSystem - \value DeviceCoordinates - \value LogicalCoordinates - */ - -/*! \enum Qt::CaseSensitivity \value CaseInsensitive @@ -1220,7 +1214,7 @@ touch device will be sent as mouse events. \value WA_TouchPadAcceptSingleTouchEvents Allows touchpad single - touch events to be sent to the widget. + touch events to be sent to the widget. \value WA_DontUseStandardGestures Disables standard gestures on Qt widgets. @@ -1241,7 +1235,7 @@ \omitvalue WA_PendingUpdate \omitvalue WA_LaidOut \omitvalue WA_GrabbedShortcut - \omitvalue WA_DontShowOnScreen + \omitvalue WA_DontShowOnScreen \omitvalue WA_InvalidSize \omitvalue WA_ForceUpdatesDisabled \omitvalue WA_NoX11EventCompression @@ -1259,7 +1253,7 @@ /*! \typedef Qt::HANDLE Platform-specific handle type for system objects. This is - equivalent to \c{void *} on Mac OS X and embedded Linux, + equivalent to \c{void *} on Mac OS X and embedded Linux, and to \c{unsigned long} on X11. On Windows it is the DWORD returned by the Win32 function getCurrentThreadId(). @@ -2762,13 +2756,13 @@ 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 StretchTile 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 RepeatTile Repeat 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. + \value RoundTile Similar to Repeat, but scales the image down to + ensure that the last tile is not cropped. */ /*! @@ -2812,13 +2806,13 @@ \value NavigationModeNone Only the touch screen is used. \value NavigationModeKeypadTabOrder Qt::Key_Up and Qt::Key_Down are used to change focus. \value NavigationModeKeypadDirectional Qt::Key_Up, Qt::Key_Down, Qt::Key_Left and Qt::Key_Right are used to change focus. - \value NavigationModeCursorAuto The mouse cursor is used to change focus, + \value NavigationModeCursorAuto The mouse cursor is used to change focus, it is displayed only on non touchscreen devices. The keypad is used to implement a virtual cursor, unless the device has an analog mouse type of input device (e.g. touchpad). This is the recommended setting for an application such as a web browser that needs pointer control on both touch and non-touch devices. - \value NavigationModeCursorForceVisible The mouse cursor is used to change focus, + \value NavigationModeCursorForceVisible The mouse cursor is used to change focus, it is displayed regardless of device type. The keypad is used to implement a virtual cursor, unless the device has an analog mouse type of input device (e.g. touchpad) diff --git a/src/corelib/io/qdatastream.cpp b/src/corelib/io/qdatastream.cpp index cc62201..19e86a6 100644 --- a/src/corelib/io/qdatastream.cpp +++ b/src/corelib/io/qdatastream.cpp @@ -442,7 +442,7 @@ QDataStream::FloatingPointPrecision QDataStream::floatingPointPrecision() const } /*! - Sets the floating point precision of the data stream. If the floating point precision is + Sets the floating point precision of the data stream to \a precision. If the floating point precision is DoublePrecision and the version of the data stream is Qt_4_6 or higher, all floating point numbers will be written and read with 64-bit precision. If the floating point precision is SinglePrecision and the version is Qt_4_6 or higher, all floating point numbers will be written diff --git a/src/corelib/kernel/kernel.pri b/src/corelib/kernel/kernel.pri index 003693b..d0dad49 100644 --- a/src/corelib/kernel/kernel.pri +++ b/src/corelib/kernel/kernel.pri @@ -33,7 +33,8 @@ HEADERS += \ kernel/qsystemsemaphore.h \ kernel/qsystemsemaphore_p.h \ kernel/qfunctions_p.h \ - kernel/qguard_p.h + kernel/qguard_p.h \ + kernel/qmath.h SOURCES += \ kernel/qabstracteventdispatcher.cpp \ @@ -55,7 +56,8 @@ SOURCES += \ kernel/qcoreglobaldata.cpp \ kernel/qsharedmemory.cpp \ kernel/qsystemsemaphore.cpp \ - kernel/qpointer.cpp + kernel/qpointer.cpp \ + kernel/qmath.cpp win32 { SOURCES += \ diff --git a/src/corelib/kernel/qcoreevent.cpp b/src/corelib/kernel/qcoreevent.cpp index 3bef0d4..744e6a9 100644 --- a/src/corelib/kernel/qcoreevent.cpp +++ b/src/corelib/kernel/qcoreevent.cpp @@ -192,8 +192,9 @@ QT_BEGIN_NAMESPACE \value ShortcutOverride Key press in child, for overriding shortcut key handling (QKeyEvent). \value Show Widget was shown on screen (QShowEvent). \value ShowToParent A child widget has been shown. - \value Signal A signal delivered to a state machine (QStateMachine::SignalEvent). \value SockAct Socket activated, used to implement QSocketNotifier. + \value StateMachineSignal A signal delivered to a state machine (QStateMachine::SignalEvent). + \value StateMachineWrapped The event is a wrapper for, i.e., contains, another event (QStateMachine::WrappedEvent). \value StatusTip A status tip is requested (QStatusTipEvent). \value StyleChange Widget's style has been changed. \value TabletMove Wacom tablet move (QTabletEvent). @@ -221,7 +222,6 @@ QT_BEGIN_NAMESPACE \value WindowStateChange The \l{QWidget::windowState()}{window's state} (minimized, maximized or full-screen) has changed (QWindowStateChangeEvent). \value WindowTitleChange The window title has changed. \value WindowUnblocked The window is unblocked after a modal dialog exited. - \value Wrapped The event is a wrapper for, i.e., contains, another event (QStateMachine::WrappedEvent). \value ZOrderChange The widget's z-order has changed. This event is never sent to top level windows. \value KeyboardLayoutChange The keyboard layout has changed. \value DynamicPropertyChange A dynamic property was added, changed or removed from the object. diff --git a/src/corelib/kernel/qcoreevent.h b/src/corelib/kernel/qcoreevent.h index be25b41..a039d32 100644 --- a/src/corelib/kernel/qcoreevent.h +++ b/src/corelib/kernel/qcoreevent.h @@ -269,8 +269,8 @@ public: CocoaRequestModal = 190, // Internal for requesting an application modal Cocoa Window MacGLClearDrawable = 191, // Internal Cocoa, the window has changed, so we must clear - Signal = 192, - Wrapped = 193, + StateMachineSignal = 192, + StateMachineWrapped = 193, TouchBegin = 194, TouchUpdate = 195, diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp index 0474bf3..aae351c 100644 --- a/src/corelib/kernel/qeventdispatcher_win.cpp +++ b/src/corelib/kernel/qeventdispatcher_win.cpp @@ -539,7 +539,7 @@ void QEventDispatcherWin32Private::registerTimer(WinTimerInfo *t) int ok = 0; - if (t->interval > 10 || !t->interval || !qtimeSetEvent) { + if (t->interval > 15 || !t->interval || !qtimeSetEvent) { ok = 1; if (!t->interval) // optimization for single-shot-zero-timer QCoreApplication::postEvent(q, new QZeroTimerEvent(t->timerId)); diff --git a/src/corelib/kernel/qmath.cpp b/src/corelib/kernel/qmath.cpp new file mode 100644 index 0000000..24bec4a --- /dev/null +++ b/src/corelib/kernel/qmath.cpp @@ -0,0 +1,305 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore/qmath.h> + +QT_BEGIN_NAMESPACE + +Q_CORE_EXPORT const qreal qt_sine_table[QT_SINE_TABLE_SIZE] = { + 0.0, + 0.024541228522912288, + 0.049067674327418015, + 0.073564563599667426, + 0.098017140329560604, + 0.1224106751992162, + 0.14673047445536175, + 0.17096188876030122, + 0.19509032201612825, + 0.2191012401568698, + 0.24298017990326387, + 0.26671275747489837, + 0.29028467725446233, + 0.31368174039889152, + 0.33688985339222005, + 0.35989503653498811, + 0.38268343236508978, + 0.40524131400498986, + 0.42755509343028208, + 0.44961132965460654, + 0.47139673682599764, + 0.49289819222978404, + 0.51410274419322166, + 0.53499761988709715, + 0.55557023301960218, + 0.57580819141784534, + 0.59569930449243336, + 0.61523159058062682, + 0.63439328416364549, + 0.65317284295377676, + 0.67155895484701833, + 0.68954054473706683, + 0.70710678118654746, + 0.72424708295146689, + 0.74095112535495911, + 0.75720884650648446, + 0.77301045336273699, + 0.78834642762660623, + 0.80320753148064483, + 0.81758481315158371, + 0.83146961230254524, + 0.84485356524970701, + 0.85772861000027212, + 0.87008699110871135, + 0.88192126434835494, + 0.89322430119551532, + 0.90398929312344334, + 0.91420975570353069, + 0.92387953251128674, + 0.93299279883473885, + 0.94154406518302081, + 0.94952818059303667, + 0.95694033573220894, + 0.96377606579543984, + 0.97003125319454397, + 0.97570213003852857, + 0.98078528040323043, + 0.98527764238894122, + 0.98917650996478101, + 0.99247953459870997, + 0.99518472667219682, + 0.99729045667869021, + 0.99879545620517241, + 0.99969881869620425, + 1.0, + 0.99969881869620425, + 0.99879545620517241, + 0.99729045667869021, + 0.99518472667219693, + 0.99247953459870997, + 0.98917650996478101, + 0.98527764238894122, + 0.98078528040323043, + 0.97570213003852857, + 0.97003125319454397, + 0.96377606579543984, + 0.95694033573220894, + 0.94952818059303667, + 0.94154406518302081, + 0.93299279883473885, + 0.92387953251128674, + 0.91420975570353069, + 0.90398929312344345, + 0.89322430119551521, + 0.88192126434835505, + 0.87008699110871146, + 0.85772861000027212, + 0.84485356524970723, + 0.83146961230254546, + 0.81758481315158371, + 0.80320753148064494, + 0.78834642762660634, + 0.7730104533627371, + 0.75720884650648468, + 0.74095112535495899, + 0.72424708295146689, + 0.70710678118654757, + 0.68954054473706705, + 0.67155895484701855, + 0.65317284295377664, + 0.63439328416364549, + 0.61523159058062693, + 0.59569930449243347, + 0.57580819141784545, + 0.55557023301960218, + 0.53499761988709715, + 0.51410274419322177, + 0.49289819222978415, + 0.47139673682599786, + 0.44961132965460687, + 0.42755509343028203, + 0.40524131400498992, + 0.38268343236508989, + 0.35989503653498833, + 0.33688985339222033, + 0.31368174039889141, + 0.29028467725446239, + 0.26671275747489848, + 0.24298017990326407, + 0.21910124015687005, + 0.19509032201612861, + 0.17096188876030122, + 0.1467304744553618, + 0.12241067519921635, + 0.098017140329560826, + 0.073564563599667732, + 0.049067674327417966, + 0.024541228522912326, + 0.0, + -0.02454122852291208, + -0.049067674327417724, + -0.073564563599667496, + -0.09801714032956059, + -0.1224106751992161, + -0.14673047445536158, + -0.17096188876030097, + -0.19509032201612836, + -0.2191012401568698, + -0.24298017990326382, + -0.26671275747489825, + -0.29028467725446211, + -0.31368174039889118, + -0.33688985339222011, + -0.35989503653498811, + -0.38268343236508967, + -0.40524131400498969, + -0.42755509343028181, + -0.44961132965460665, + -0.47139673682599764, + -0.49289819222978393, + -0.51410274419322155, + -0.53499761988709693, + -0.55557023301960196, + -0.57580819141784534, + -0.59569930449243325, + -0.61523159058062671, + -0.63439328416364527, + -0.65317284295377653, + -0.67155895484701844, + -0.68954054473706683, + -0.70710678118654746, + -0.72424708295146678, + -0.74095112535495888, + -0.75720884650648423, + -0.77301045336273666, + -0.78834642762660589, + -0.80320753148064505, + -0.81758481315158382, + -0.83146961230254524, + -0.84485356524970701, + -0.85772861000027201, + -0.87008699110871135, + -0.88192126434835494, + -0.89322430119551521, + -0.90398929312344312, + -0.91420975570353047, + -0.92387953251128652, + -0.93299279883473896, + -0.94154406518302081, + -0.94952818059303667, + -0.95694033573220882, + -0.96377606579543984, + -0.97003125319454397, + -0.97570213003852846, + -0.98078528040323032, + -0.98527764238894111, + -0.9891765099647809, + -0.99247953459871008, + -0.99518472667219693, + -0.99729045667869021, + -0.99879545620517241, + -0.99969881869620425, + -1.0, + -0.99969881869620425, + -0.99879545620517241, + -0.99729045667869021, + -0.99518472667219693, + -0.99247953459871008, + -0.9891765099647809, + -0.98527764238894122, + -0.98078528040323043, + -0.97570213003852857, + -0.97003125319454397, + -0.96377606579543995, + -0.95694033573220894, + -0.94952818059303679, + -0.94154406518302092, + -0.93299279883473907, + -0.92387953251128663, + -0.91420975570353058, + -0.90398929312344334, + -0.89322430119551532, + -0.88192126434835505, + -0.87008699110871146, + -0.85772861000027223, + -0.84485356524970723, + -0.83146961230254546, + -0.81758481315158404, + -0.80320753148064528, + -0.78834642762660612, + -0.77301045336273688, + -0.75720884650648457, + -0.74095112535495911, + -0.724247082951467, + -0.70710678118654768, + -0.68954054473706716, + -0.67155895484701866, + -0.65317284295377709, + -0.63439328416364593, + -0.61523159058062737, + -0.59569930449243325, + -0.57580819141784523, + -0.55557023301960218, + -0.53499761988709726, + -0.51410274419322188, + -0.49289819222978426, + -0.47139673682599792, + -0.44961132965460698, + -0.42755509343028253, + -0.40524131400499042, + -0.38268343236509039, + -0.359895036534988, + -0.33688985339222, + -0.31368174039889152, + -0.2902846772544625, + -0.26671275747489859, + -0.24298017990326418, + -0.21910124015687016, + -0.19509032201612872, + -0.17096188876030177, + -0.14673047445536239, + -0.12241067519921603, + -0.098017140329560506, + -0.073564563599667412, + -0.049067674327418091, + -0.024541228522912448 +}; + +QT_END_NAMESPACE diff --git a/src/corelib/kernel/qmath.h b/src/corelib/kernel/qmath.h index b521323..a9e4378 100644 --- a/src/corelib/kernel/qmath.h +++ b/src/corelib/kernel/qmath.h @@ -52,6 +52,10 @@ QT_BEGIN_NAMESPACE QT_MODULE(Core) +#define QT_SINE_TABLE_SIZE 256 + +extern Q_CORE_EXPORT const qreal qt_sine_table[QT_SINE_TABLE_SIZE]; + inline int qCeil(qreal v) { #ifdef QT_USE_MATH_H_FLOATS @@ -136,6 +140,26 @@ inline qreal qPow(qreal x, qreal y) #define M_PI (3.14159265358979323846) #endif +inline qreal qFastSin(qreal x) +{ + int si = int(x * (0.5 * QT_SINE_TABLE_SIZE / M_PI)); // Would be more accurate with qRound, but slower. + qreal d = x - si * (2.0 * M_PI / QT_SINE_TABLE_SIZE); + int ci = si + QT_SINE_TABLE_SIZE / 4; + si &= QT_SINE_TABLE_SIZE - 1; + ci &= QT_SINE_TABLE_SIZE - 1; + return qt_sine_table[si] + (qt_sine_table[ci] - 0.5 * qt_sine_table[si] * d) * d; +} + +inline qreal qFastCos(qreal x) +{ + int ci = int(x * (0.5 * QT_SINE_TABLE_SIZE / M_PI)); // Would be more accurate with qRound, but slower. + qreal d = x - ci * (2.0 * M_PI / QT_SINE_TABLE_SIZE); + int si = ci + QT_SINE_TABLE_SIZE / 4; + si &= QT_SINE_TABLE_SIZE - 1; + ci &= QT_SINE_TABLE_SIZE - 1; + return qt_sine_table[si] - (qt_sine_table[ci] + 0.5 * qt_sine_table[si] * d) * d; +} + QT_END_NAMESPACE QT_END_HEADER diff --git a/src/corelib/statemachine/qeventtransition.cpp b/src/corelib/statemachine/qeventtransition.cpp index f278371..949f39e 100644 --- a/src/corelib/statemachine/qeventtransition.cpp +++ b/src/corelib/statemachine/qeventtransition.cpp @@ -231,7 +231,7 @@ void QEventTransition::setEventSource(QObject *object) bool QEventTransition::eventTest(QEvent *event) { Q_D(const QEventTransition); - if (event->type() == QEvent::Wrapped) { + if (event->type() == QEvent::StateMachineWrapped) { QStateMachine::WrappedEvent *we = static_cast<QStateMachine::WrappedEvent*>(event); return (we->object() == d->object) && (we->event()->type() == d->eventType); diff --git a/src/corelib/statemachine/qsignaltransition.cpp b/src/corelib/statemachine/qsignaltransition.cpp index 9811725..f55f634 100644 --- a/src/corelib/statemachine/qsignaltransition.cpp +++ b/src/corelib/statemachine/qsignaltransition.cpp @@ -218,7 +218,7 @@ void QSignalTransition::setSignal(const QByteArray &signal) bool QSignalTransition::eventTest(QEvent *event) { Q_D(const QSignalTransition); - if (event->type() == QEvent::Signal) { + if (event->type() == QEvent::StateMachineSignal) { if (d->signalIndex == -1) return false; QStateMachine::SignalEvent *se = static_cast<QStateMachine::SignalEvent*>(event); @@ -248,7 +248,7 @@ void QSignalTransitionPrivate::callOnTransition(QEvent *e) { Q_Q(QSignalTransition); - if (e->type() == QEvent::Signal) { + if (e->type() == QEvent::StateMachineSignal) { QStateMachine::SignalEvent *se = static_cast<QStateMachine::SignalEvent *>(e); int savedSignalIndex = se->m_signalIndex; se->m_signalIndex = originalSignalIndex; diff --git a/src/corelib/statemachine/qstatemachine.cpp b/src/corelib/statemachine/qstatemachine.cpp index c7144e4..e182c88 100644 --- a/src/corelib/statemachine/qstatemachine.cpp +++ b/src/corelib/statemachine/qstatemachine.cpp @@ -2206,7 +2206,7 @@ QSignalEventGenerator::QSignalEventGenerator(QStateMachine *parent) */ QStateMachine::SignalEvent::SignalEvent(QObject *sender, int signalIndex, const QList<QVariant> &arguments) - : QEvent(QEvent::Signal), m_sender(sender), + : QEvent(QEvent::StateMachineSignal), m_sender(sender), m_signalIndex(signalIndex), m_arguments(arguments) { } @@ -2269,7 +2269,7 @@ QStateMachine::SignalEvent::~SignalEvent() The WrappedEvent object takes ownership of \a event. */ QStateMachine::WrappedEvent::WrappedEvent(QObject *object, QEvent *event) - : QEvent(QEvent::Wrapped), m_object(object), m_event(event) + : QEvent(QEvent::StateMachineWrapped), m_object(object), m_event(event) { } diff --git a/src/gui/dialogs/qfiledialog.cpp b/src/gui/dialogs/qfiledialog.cpp index 297c900..eb5fed0 100644 --- a/src/gui/dialogs/qfiledialog.cpp +++ b/src/gui/dialogs/qfiledialog.cpp @@ -3022,6 +3022,12 @@ bool QFileDialogPrivate::itemViewKeyboardEvent(QKeyEvent *event) { case Qt::Key_Escape: q->hide(); return true; +#ifdef QT_KEYPAD_NAVIGATION + case Qt::Key_Down: + case Qt::Key_Up: + return (QApplication::navigationMode() != Qt::NavigationModeKeypadTabOrder + && QApplication::navigationMode() != Qt::NavigationModeKeypadDirectional); +#endif default: break; } @@ -3142,7 +3148,17 @@ void QFileDialogListView::keyPressEvent(QKeyEvent *e) if (!d_ptr->itemViewKeyboardEvent(e)) { QListView::keyPressEvent(e); } +#ifdef QT_KEYPAD_NAVIGATION + if ((QApplication::navigationMode() == Qt::NavigationModeKeypadTabOrder + || QApplication::navigationMode() == Qt::NavigationModeKeypadDirectional) + && !hasEditFocus()) { + e->ignore(); + } else { + e->accept(); + } +#else e->accept(); +#endif } QFileDialogTreeView::QFileDialogTreeView(QWidget *parent) : QTreeView(parent) @@ -3189,7 +3205,11 @@ void QFileDialogLineEdit::keyPressEvent(QKeyEvent *e) { int key = e->key(); QLineEdit::keyPressEvent(e); - if (key != Qt::Key_Escape) + if (key != Qt::Key_Escape +#ifdef QT_KEYPAD_NAVIGATION + && QApplication::navigationMode() == Qt::NavigationModeNone +#endif + ) e->accept(); if (hideOnEsc && (key == Qt::Key_Escape || key == Qt::Key_Return || key == Qt::Key_Enter)) { e->accept(); diff --git a/src/gui/embedded/qvfbhdr.h b/src/gui/embedded/qvfbhdr.h index f02286e..eff5fc2 100644 --- a/src/gui/embedded/qvfbhdr.h +++ b/src/gui/embedded/qvfbhdr.h @@ -56,6 +56,7 @@ QT_MODULE(Gui) #define QT_QWS_TEMP_DIR "/tmp" #endif +#ifdef QT_PRIVATE_QWS #define QT_VFB_DATADIR(DISPLAY) QString("%1/qtembedded-%2-%3") \ .arg(QT_QWS_TEMP_DIR).arg(getuid()).arg(DISPLAY) @@ -67,7 +68,22 @@ QT_MODULE(Gui) .append("/qtvfb_map") #define QT_VFB_SOUND_PIPE(DISPLAY) QT_VFB_DATADIR(DISPLAY) \ .append("/qt_soundserver") -#define QTE_PIPE "QtEmbedded" +#define QTE_PIPE(DISPLAY) QT_VFB_DATADIR(DISPLAY) \ + .append("/QtEmbedded") +#define QTE_PIPE_QVFB QTE_PIPE +#else +#define QT_VFB_DATADIR(DISPLAY) QString("%1/qtembedded-%2") \ + .arg(QT_QWS_TEMP_DIR).arg(DISPLAY) +#define QT_VFB_MOUSE_PIPE(DISPLAY) QString("/tmp/.qtvfb_mouse-%1").arg(DISPLAY) +#define QT_VFB_KEYBOARD_PIPE(DISPLAY) QString("/tmp/.qtvfb_keyboard-%1").arg(DISPLAY) +#define QT_VFB_MAP(DISPLAY) QString("/tmp/.qtvfb_map-%1").arg(DISPLAY) +#define QT_VFB_SOUND_PIPE(DISPLAY) QString("/tmp/.qt_soundserver-%1").arg(DISPLAY) +#define QTE_PIPE(DISPLAY) QT_VFB_DATADIR(DISPLAY) \ + .append("/QtEmbedded-%1") \ + .arg(DISPLAY) +#define QTE_PIPE_QVFB(DISPLAY) QString("/tmp/qtembedded-%1/QtEmbedded-%1") \ + .arg(DISPLAY) +#endif struct QVFbHeader { diff --git a/src/gui/graphicsview/qgraphicsanchorlayout.cpp b/src/gui/graphicsview/qgraphicsanchorlayout.cpp index fdb1708..ffbb67c 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout.cpp @@ -118,9 +118,13 @@ QGraphicsAnchor::~QGraphicsAnchor() } /*! - Set the spacing for the anchor to \a spacing. + \property QGraphicsAnchor::spacing + \brief the space between items in the QGraphicsAnchorLayout. - \sa spacing(), unsetSpacing() + Depending on the anchor type, the default spacing is either + 0 or a value returned from the style. + + \sa QGraphicsAnchorLayout::anchor() */ void QGraphicsAnchor::setSpacing(qreal spacing) { @@ -128,23 +132,12 @@ void QGraphicsAnchor::setSpacing(qreal spacing) d->setSpacing(spacing); } -/*! - Returns the spacing for the anchor - - \sa setSpacing() -*/ qreal QGraphicsAnchor::spacing() const { Q_D(const QGraphicsAnchor); return d->spacing(); } -/*! - Resets the spacing of the anchor point to be the default spacing. Depending on the anchor type, - the default spacing is either 0 or a value returned from the style. - - \sa setSpacing(), spacing(), QGraphicsAnchorLayout::anchor() -*/ void QGraphicsAnchor::unsetSpacing() { Q_D(QGraphicsAnchor); diff --git a/src/gui/graphicsview/qgraphicsanchorlayout.h b/src/gui/graphicsview/qgraphicsanchorlayout.h index d9a87ba..99dbf92 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout.h +++ b/src/gui/graphicsview/qgraphicsanchorlayout.h @@ -61,7 +61,7 @@ class QGraphicsAnchorLayoutPrivate; class Q_GUI_EXPORT QGraphicsAnchor : public QObject { Q_OBJECT - Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing) + Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing RESET unsetSpacing) public: void setSpacing(qreal spacing); void unsetSpacing(); diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index 912cfb6..d766acc 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -609,6 +609,7 @@ /*! \enum QGraphicsItem::PanelModality + \since 4.6 This enum specifies the behavior of a modal panel. A modal panel is one that blocks input to other panels. Note that items that diff --git a/src/gui/image/qimage_p.h b/src/gui/image/qimage_p.h index 4f44109..bea1e8d 100644 --- a/src/gui/image/qimage_p.h +++ b/src/gui/image/qimage_p.h @@ -63,7 +63,7 @@ QT_BEGIN_NAMESPACE -struct QImageData { // internal image data +struct Q_GUI_EXPORT QImageData { // internal image data QImageData(); ~QImageData(); static QImageData *create(const QSize &size, QImage::Format format, int numColors = 0); diff --git a/src/gui/image/qpixmap_s60.cpp b/src/gui/image/qpixmap_s60.cpp index 4938442..326dd10 100644 --- a/src/gui/image/qpixmap_s60.cpp +++ b/src/gui/image/qpixmap_s60.cpp @@ -64,7 +64,7 @@ const uchar qt_pixmap_bit_mask[] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 }; -/*! +/* \class QSymbianFbsClient \since 4.6 \internal @@ -145,7 +145,7 @@ void QSymbianFbsHeapLock::relock() qt_symbianFbsClient()->lockHeap(); } -/*! +/* \class QSymbianBitmapDataAccess \since 4.6 \internal diff --git a/src/gui/image/qpixmap_x11.cpp b/src/gui/image/qpixmap_x11.cpp index f77d200..6cde898 100644 --- a/src/gui/image/qpixmap_x11.cpp +++ b/src/gui/image/qpixmap_x11.cpp @@ -67,6 +67,7 @@ #include <private/qt_x11_p.h> #include "qx11info_x11.h" #include <private/qdrawhelper_p.h> +#include <private/qimage_p.h> #include <stdlib.h> @@ -369,6 +370,30 @@ void QX11PixmapData::resize(int width, int height) #endif // QT_NO_XRENDER } +struct QX11AlphaDetector +{ + bool hasAlpha() const { + if (checked) + return has; + // Will implicitly also check format and return quickly for opaque types... + checked = true; + has = const_cast<QImage *>(image)->data_ptr()->checkForAlphaPixels(); + return has; + } + + bool hasXRenderAndAlpha() const { + if (!X11->use_xrender) + return false; + return hasAlpha(); + } + + QX11AlphaDetector(const QImage *i) : image(i), checked(false), has(false) { } + + const QImage *image; + mutable bool checked; + mutable bool has; +}; + void QX11PixmapData::fromImage(const QImage &img, Qt::ImageConversionFlags flags) { @@ -402,7 +427,9 @@ void QX11PixmapData::fromImage(const QImage &img, return; } - int dd = X11->use_xrender && img.hasAlphaChannel() ? 32 : xinfo.depth(); + QX11AlphaDetector alphaCheck(&img); + int dd = alphaCheck.hasXRenderAndAlpha() ? 32 : xinfo.depth(); + if (qt_x11_preferred_pixmap_depth) dd = qt_x11_preferred_pixmap_depth; @@ -454,7 +481,7 @@ void QX11PixmapData::fromImage(const QImage &img, uchar *newbits= 0; #ifndef QT_NO_XRENDER - if (X11->use_xrender && image.hasAlphaChannel()) { + if (alphaCheck.hasXRenderAndAlpha()) { const QImage &cimage = image; d = 32; @@ -1091,7 +1118,7 @@ void QX11PixmapData::fromImage(const QImage &img, } #endif - if (image.hasAlphaChannel()) { + if (alphaCheck.hasAlpha()) { QBitmap m = QBitmap::fromImage(image.createAlphaMask(flags)); setMask(m); } diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp index 0fae959..18cab13 100644 --- a/src/gui/itemviews/qabstractitemview.cpp +++ b/src/gui/itemviews/qabstractitemview.cpp @@ -87,6 +87,7 @@ QAbstractItemViewPrivate::QAbstractItemViewPrivate() dragDropMode(QAbstractItemView::NoDragDrop), overwrite(false), dropIndicatorPosition(QAbstractItemView::OnItem), + defaultDropAction(Qt::IgnoreAction), #endif #ifdef QT_SOFTKEYS_ENABLED doneSoftKey(0), @@ -1371,6 +1372,28 @@ QAbstractItemView::DragDropMode QAbstractItemView::dragDropMode() const return NoDragDrop; } +/*! + \property QAbstractItemView::defaultDropAction + \brief the drop action that will be used by default in QAbstractItemView::drag() + + If the property is not set, the drop action is CopyAction when the supported + actions support CopyAction. + + \since 4.6 + \sa showDropIndicator dragDropOverwriteMode +*/ +void QAbstractItemView::setDefaultDropAction(Qt::DropAction dropAction) +{ + Q_D(QAbstractItemView); + d->defaultDropAction = dropAction; +} + +Qt::DropAction QAbstractItemView::defaultDropAction() const +{ + Q_D(const QAbstractItemView); + return d->defaultDropAction; +} + #endif // QT_NO_DRAGANDDROP /*! @@ -3297,7 +3320,9 @@ void QAbstractItemView::startDrag(Qt::DropActions supportedActions) drag->setMimeData(data); drag->setHotSpot(d->pressedPosition - rect.topLeft()); Qt::DropAction defaultDropAction = Qt::IgnoreAction; - if (supportedActions & Qt::CopyAction && dragDropMode() != QAbstractItemView::InternalMove) + if (d->defaultDropAction != Qt::IgnoreAction && (supportedActions & d->defaultDropAction)) + defaultDropAction = d->defaultDropAction; + else if (supportedActions & Qt::CopyAction && dragDropMode() != QAbstractItemView::InternalMove) defaultDropAction = Qt::CopyAction; if (drag->exec(supportedActions, defaultDropAction) == Qt::MoveAction) d->clearOrRemove(); diff --git a/src/gui/itemviews/qabstractitemview.h b/src/gui/itemviews/qabstractitemview.h index 7d5c765..b4f0957 100644 --- a/src/gui/itemviews/qabstractitemview.h +++ b/src/gui/itemviews/qabstractitemview.h @@ -74,6 +74,7 @@ class Q_GUI_EXPORT QAbstractItemView : public QAbstractScrollArea Q_PROPERTY(bool dragEnabled READ dragEnabled WRITE setDragEnabled) Q_PROPERTY(bool dragDropOverwriteMode READ dragDropOverwriteMode WRITE setDragDropOverwriteMode) Q_PROPERTY(DragDropMode dragDropMode READ dragDropMode WRITE setDragDropMode) + Q_PROPERTY(Qt::DropAction defaultDropAction READ defaultDropAction WRITE setDefaultDropAction) #endif Q_PROPERTY(bool alternatingRowColors READ alternatingRowColors WRITE setAlternatingRowColors) Q_PROPERTY(SelectionMode selectionMode READ selectionMode WRITE setSelectionMode) @@ -181,7 +182,11 @@ public: void setDragDropMode(DragDropMode behavior); DragDropMode dragDropMode() const; + + void setDefaultDropAction(Qt::DropAction dropAction); + Qt::DropAction defaultDropAction() const; #endif + void setAlternatingRowColors(bool enable); bool alternatingRowColors() const; diff --git a/src/gui/itemviews/qabstractitemview_p.h b/src/gui/itemviews/qabstractitemview_p.h index 84c0892..fcf381a 100644 --- a/src/gui/itemviews/qabstractitemview_p.h +++ b/src/gui/itemviews/qabstractitemview_p.h @@ -117,7 +117,7 @@ public: virtual void _q_columnsInserted(const QModelIndex &parent, int start, int end); virtual void _q_modelDestroyed(); virtual void _q_layoutChanged(); - + void fetchMore(); bool shouldEdit(QAbstractItemView::EditTrigger trigger, const QModelIndex &index) const; @@ -315,7 +315,7 @@ public: } return ref; } - + /** * return true if the index is registered as a QPersistentModelIndex */ @@ -356,8 +356,8 @@ public: Qt::KeyboardModifiers pressedModifiers; QPoint pressedPosition; bool pressedAlreadySelected; - - //forces the next mouseMoveEvent to send the viewportEntered signal + + //forces the next mouseMoveEvent to send the viewportEntered signal //if the mouse is over the viewport and not over an item bool viewportEnteredNeeded; @@ -377,6 +377,7 @@ public: QAbstractItemView::DragDropMode dragDropMode; bool overwrite; QAbstractItemView::DropIndicatorPosition dropIndicatorPosition; + Qt::DropAction defaultDropAction; #endif #ifdef QT_SOFTKEYS_ENABLED diff --git a/src/gui/kernel/qapplication_qws.cpp b/src/gui/kernel/qapplication_qws.cpp index 01c64f1..634f23a 100644 --- a/src/gui/kernel/qapplication_qws.cpp +++ b/src/gui/kernel/qapplication_qws.cpp @@ -232,7 +232,7 @@ QString qws_dataDir() // Get the filename of the pipe Qt for Embedded Linux uses for server/client comms Q_GUI_EXPORT QString qws_qtePipeFilename() { - return (qws_dataDir().append(QTE_PIPE)); + return QTE_PIPE(qws_display_id); } static void setMaxWindowRect(const QRect &rect) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index d50e7e1..807a17f 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -780,7 +780,7 @@ TCoeInputCapabilities QSymbianControl::InputCapabilities() const } #endif -void QSymbianControl::Draw(const TRect& r) const +void QSymbianControl::Draw(const TRect& controlRect) const { QWindowSurface *surface = qwidget->windowSurface(); QPaintEngine *engine = surface ? surface->paintDevice()->paintEngine() : NULL; @@ -788,6 +788,11 @@ void QSymbianControl::Draw(const TRect& r) const if (!engine) return; + // Map source rectangle into coordinates of the backing store. + const QPoint controlBase(controlRect.iTl.iX, controlRect.iTl.iY); + const QPoint backingStoreBase = qwidget->mapTo(qwidget->window(), controlBase); + const TRect backingStoreRect(TPoint(backingStoreBase.x(), backingStoreBase.y()), controlRect.Size()); + if (engine->type() == QPaintEngine::Raster) { QS60WindowSurface *s60Surface = static_cast<QS60WindowSurface *>(qwidget->windowSurface()); CFbsBitmap *bitmap = s60Surface->symbianBitmap(); @@ -796,10 +801,10 @@ void QSymbianControl::Draw(const TRect& r) const if(!qwidget->d_func()->extraData()->disableBlit) { if (qwidget->d_func()->isOpaque) gc.SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha); - gc.BitBlt(r.iTl, bitmap, r); - } + gc.BitBlt(controlRect.iTl, bitmap, backingStoreRect); + } } else { - surface->flush(qwidget, QRegion(qt_TRect2QRect(r)), QPoint()); + surface->flush(qwidget, QRegion(qt_TRect2QRect(backingStoreRect)), QPoint()); } } @@ -950,13 +955,14 @@ void QSymbianControl::setFocusSafely(bool focus) /*! \typedef QApplication::QS60MainApplicationFactory + \since 4.6 This is a typedef for a pointer to a function with the following signature: \snippet doc/src/snippets/code/src_corelib_global_qglobal.cpp 47 - \sa QApplication::QApplication(QApplication::QS60MainApplicationFactory, int &, char **) + \sa QApplication::QApplication() */ /*! diff --git a/src/gui/kernel/qgesture.cpp b/src/gui/kernel/qgesture.cpp index 00839d1..237ce46 100644 --- a/src/gui/kernel/qgesture.cpp +++ b/src/gui/kernel/qgesture.cpp @@ -67,6 +67,7 @@ private: /*! \class QGesture \since 4.6 + \preliminary \brief The QGesture class is the base class for implementing custom gestures. diff --git a/src/gui/kernel/qstandardgestures.cpp b/src/gui/kernel/qstandardgestures.cpp index bcc411a..3cfb987 100644 --- a/src/gui/kernel/qstandardgestures.cpp +++ b/src/gui/kernel/qstandardgestures.cpp @@ -57,6 +57,7 @@ QWidgetPrivate *qt_widget_private(QWidget *widget); /*! \class QPanGesture + \preliminary \since 4.6 \brief The QPanGesture class represents a Pan gesture, @@ -339,6 +340,7 @@ QSizeF QPanGesture::offset() const /*! \class QPinchGesture + \preliminary \since 4.6 \brief The QPinchGesture class represents a Pinch gesture, @@ -667,6 +669,7 @@ QPointF QPinchGesture::startCenterPoint() const /*! \class QSwipeGesture + \preliminary \since 4.6 \brief The QSwipeGesture class represents a swipe gesture, diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index 0b75b06..2359812 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -923,7 +923,7 @@ void QWidget::setAutoFillBackground(bool enabled) Note: Currently softkeys are only supported on the Symbian Platform. - \sa addAction, QAction, QMenuBar + \sa addAction(), QAction, QMenuBar */ @@ -11444,19 +11444,32 @@ QWidget *QWidgetPrivate::widgetInNavigationDirection(Direction direction) QWidget *targetWidget = 0; int shortestDistance = INT_MAX; foreach(QWidget *targetCandidate, QApplication::allWidgets()) { - - if (targetCandidate->focusProxy()) //skip if focus proxy set - continue; const QRect targetCandidateRect = targetCandidate->rect().translated(targetCandidate->mapToGlobal(QPoint())); + + // For focus proxies, the child widget handling the focus can have keypad navigation focus, + // but the owner of the proxy cannot. + // Additionally, empty widgets should be ignored. + if (targetCandidate->focusProxy() || targetCandidateRect.isEmpty()) + continue; + + // Only navigate to a target widget that... if ( targetCandidate != sourceWidget + // ...takes the focus, && targetCandidate->focusPolicy() & Qt::TabFocus + // ...is above if DirectionNorth, && !(direction == DirectionNorth && targetCandidateRect.bottom() > sourceRect.top()) + // ...is on the right if DirectionEast, && !(direction == DirectionEast && targetCandidateRect.left() < sourceRect.right()) + // ...is below if DirectionSouth, && !(direction == DirectionSouth && targetCandidateRect.top() < sourceRect.bottom()) + // ...is on the left if DirectionWest, && !(direction == DirectionWest && targetCandidateRect.right() > sourceRect.left()) + // ...is enabled, && targetCandidate->isEnabled() + // ...is visible, && targetCandidate->isVisible() + // ...is in the same window, && targetCandidate->window() == sourceWindow) { const int targetCandidateDistance = pointToRect(sourcePoint, targetCandidateRect); if (targetCandidateDistance < shortestDistance) { diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h index 6c879be..c06ef73 100644 --- a/src/gui/kernel/qwidget_p.h +++ b/src/gui/kernel/qwidget_p.h @@ -294,6 +294,7 @@ public: void setMask_sys(const QRegion &); #ifdef Q_OS_SYMBIAN void setSoftKeys_sys(const QList<QAction*> &softkeys); + void activateSymbianWindow(); #endif void raise_sys(); diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index 05db8ca..3328cee 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -194,8 +194,8 @@ void QWidgetPrivate::setWSGeometry(bool dontShow, const QRect &) } if (jump && data.winid) { - RWindow *const window = static_cast<RWindow *>(data.winid->DrawableWindow()); - window->Invalidate(TRect(0, 0, wrect.width(), wrect.height())); + RWindow *const window = static_cast<RWindow *>(data.winid->DrawableWindow()); + window->Invalidate(TRect(0, 0, wrect.width(), wrect.height())); } } @@ -411,6 +411,14 @@ void QWidgetPrivate::create_sys(WId window, bool /* initializeWindow */, bool de int x, y, w, h; data.crect.getRect(&x, &y, &w, &h); control->SetRect(TRect(TPoint(x, y), TSize(w, h))); + + RDrawableWindow *const drawableWindow = control->DrawableWindow(); + // Request mouse move events. + drawableWindow->PointerFilter(EPointerFilterEnterExit + | EPointerFilterMove | EPointerFilterDrag, 0); + + if (q->isVisible() && q->testAttribute(Qt::WA_Mapped)) + activateSymbianWindow(); } if (destroyw) { @@ -440,12 +448,11 @@ void QWidgetPrivate::show_sys() } if (q->internalWinId()) { - - QSymbianControl *id = static_cast<QSymbianControl *>(q->internalWinId()); - if (!extra->activated) { - QT_TRAP_THROWING(id->ActivateL()); - extra->activated = 1; - } + if (!extra->activated) + activateSymbianWindow(); + + QSymbianControl *id = static_cast<QSymbianControl *>(q->internalWinId()); + id->MakeVisible(true); if(q->isWindow()) @@ -461,6 +468,19 @@ void QWidgetPrivate::show_sys() invalidateBuffer(q->rect()); } +void QWidgetPrivate::activateSymbianWindow() +{ + Q_Q(QWidget); + + Q_ASSERT(q->testAttribute(Qt::WA_WState_Created)); + Q_ASSERT(q->testAttribute(Qt::WA_Mapped)); + Q_ASSERT(!extra->activated); + + WId id = q->internalWinId(); + QT_TRAP_THROWING(id->ActivateL()); + extra->activated = 1; +} + void QWidgetPrivate::hide_sys() { Q_Q(QWidget); @@ -1016,9 +1036,9 @@ QPoint QWidget::mapFromGlobal(const QPoint &pos) const } // Native window case - const TPoint widgetScreenOffset = internalWinId()->PositionRelativeToScreen(); - const QPoint widgetPos = pos - QPoint(widgetScreenOffset.iX, widgetScreenOffset.iY); - return widgetPos; + const TPoint widgetScreenOffset = internalWinId()->PositionRelativeToScreen(); + const QPoint widgetPos = pos - QPoint(widgetScreenOffset.iX, widgetScreenOffset.iY); + return widgetPos; } void QWidget::setWindowState(Qt::WindowStates newstate) diff --git a/src/gui/painting/qdrawutil.cpp b/src/gui/painting/qdrawutil.cpp index 716300e..c20d8d8 100644 --- a/src/gui/painting/qdrawutil.cpp +++ b/src/gui/painting/qdrawutil.cpp @@ -45,6 +45,9 @@ #include "qapplication.h" #include "qpainter.h" #include "qpalette.h" +#include <private/qpaintengineex_p.h> +#include <qvarlengtharray.h> +#include <qmath.h> QT_BEGIN_NAMESPACE @@ -1078,91 +1081,7 @@ void qDrawItem(QPainter *p, Qt::GUIStyle gs, 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); -} +typedef QVarLengthArray<QDrawPixmaps::Data, 16> QDrawPixmapsDataArray; /*! \since 4.6 @@ -1179,176 +1098,282 @@ static inline void qDrawHorizontallyRoundedPixmap(QPainter *painter, const QRect \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) +void qDrawBorderPixmap(QPainter *painter, const QRect &targetRect, const QMargins &targetMargins, + const QPixmap &pixmap, const QRect &sourceRect,const QMargins &sourceMargins, + const QTileRules &rules, QDrawBorderPixmap::DrawingHints hints) { + QDrawPixmaps::Data d; + d.opacity = 1.0; + d.rotation = 0.0; + + QDrawPixmapsDataArray opaqueData; + QDrawPixmapsDataArray translucentData; + // 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 sourceCenterTop = sourceRect.top() + sourceMargins.top(); + const int sourceCenterLeft = sourceRect.left() + 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(); + const int sourceCenterWidth = sourceCenterRight - sourceCenterLeft; + const int sourceCenterHeight = sourceCenterBottom - sourceCenterTop; // 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 targetCenterTop = targetRect.top() + targetMargins.top(); + const int targetCenterLeft = targetRect.left() + 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; + QVarLengthArray<qreal, 16> xTarget; // x-coordinates of target rectangles + QVarLengthArray<qreal, 16> yTarget; // y-coordinates of target rectangles + + int columns = 3; + int rows = 3; + if (rules.horizontal != Qt::StretchTile && sourceCenterWidth != 0) + columns = qMax(3, 2 + qCeil(targetCenterWidth / qreal(sourceCenterWidth))); + if (rules.vertical != Qt::StretchTile && sourceCenterHeight != 0) + rows = qMax(3, 2 + qCeil(targetCenterHeight / qreal(sourceCenterHeight))); + + xTarget.resize(columns + 1); + yTarget.resize(rows + 1); + + xTarget[0] = targetRect.left(); + xTarget[1] = targetCenterLeft; + xTarget[columns - 1] = targetCenterRight; + xTarget[columns] = targetRect.left() + targetRect.width(); + + yTarget[0] = targetRect.top(); + yTarget[1] = targetCenterTop; + yTarget[rows - 1] = targetCenterBottom; + yTarget[rows] = targetRect.top() + targetRect.height(); + + qreal dx; + qreal dy; + + switch (rules.horizontal) { + case Qt::StretchTile: + dx = targetCenterWidth; + break; + case Qt::RepeatTile: + dx = sourceCenterWidth; + break; + case Qt::RoundTile: + dx = targetCenterWidth / qreal(columns - 2); + break; + } + + for (int i = 2; i < columns - 1; ++i) + xTarget[i] = xTarget[i - 1] + dx; + + switch (rules.vertical) { + case Qt::StretchTile: + dy = targetCenterHeight; + break; + case Qt::RepeatTile: + dy = sourceCenterHeight; + break; + case Qt::RoundTile: + dy = targetCenterHeight / qreal(rows - 2); + break; + } + + for (int i = 2; i < rows - 1; ++i) + yTarget[i] = yTarget[i - 1] + dy; + // 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); + d.point.setX(0.5 * (xTarget[1] + xTarget[0])); + d.point.setY(0.5 * (yTarget[1] + yTarget[0])); + d.source = QRectF(sourceRect.left(), sourceRect.top(), sourceMargins.left(), sourceMargins.top()); + d.scaleX = qreal(xTarget[1] - xTarget[0]) / d.source.width(); + d.scaleY = qreal(yTarget[1] - yTarget[0]) / d.source.height(); + if (hints & QDrawBorderPixmap::OpaqueTopLeft) + opaqueData.append(d); + else + translucentData.append(d); } 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); + d.point.setX(0.5 * (xTarget[columns] + xTarget[columns - 1])); + d.point.setY(0.5 * (yTarget[1] + yTarget[0])); + d.source = QRectF(sourceCenterRight, sourceRect.top(), sourceMargins.right(), sourceMargins.top()); + d.scaleX = qreal(xTarget[columns] - xTarget[columns - 1]) / d.source.width(); + d.scaleY = qreal(yTarget[1] - yTarget[0]) / d.source.height(); + if (hints & QDrawBorderPixmap::OpaqueTopRight) + opaqueData.append(d); + else + translucentData.append(d); } 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); + d.point.setX(0.5 * (xTarget[1] + xTarget[0])); + d.point.setY(0.5 * (yTarget[rows] + yTarget[rows - 1])); + d.source = QRectF(sourceRect.left(), sourceCenterBottom, sourceMargins.left(), sourceMargins.bottom()); + d.scaleX = qreal(xTarget[1] - xTarget[0]) / d.source.width(); + d.scaleY = qreal(yTarget[rows] - yTarget[rows - 1]) / d.source.height(); + if (hints & QDrawBorderPixmap::OpaqueBottomLeft) + opaqueData.append(d); + else + translucentData.append(d); } 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); + d.point.setX(0.5 * (xTarget[columns] + xTarget[columns - 1])); + d.point.setY(0.5 * (yTarget[rows] + yTarget[rows - 1])); + d.source = QRectF(sourceCenterRight, sourceCenterBottom, sourceMargins.right(), sourceMargins.bottom()); + d.scaleX = qreal(xTarget[columns] - xTarget[columns - 1]) / d.source.width(); + d.scaleY = qreal(yTarget[rows] - yTarget[rows - 1]) / d.source.height(); + if (hints & QDrawBorderPixmap::OpaqueBottomRight) + opaqueData.append(d); + else + translucentData.append(d); } // 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 (targetCenterWidth > 0 && sourceCenterWidth > 0) { 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); + QDrawPixmapsDataArray &data = hints & QDrawBorderPixmap::OpaqueTop ? opaqueData : translucentData; + d.source = QRectF(sourceCenterLeft, sourceRect.top(), sourceCenterWidth, sourceMargins.top()); + d.point.setY(0.5 * (yTarget[1] + yTarget[0])); + d.scaleX = dx / d.source.width(); + d.scaleY = qreal(yTarget[1] - yTarget[0]) / d.source.height(); + for (int i = 1; i < columns - 1; ++i) { + d.point.setX(0.5 * (xTarget[i + 1] + xTarget[i])); + data.append(d); + } + if (rules.horizontal == Qt::RepeatTile) + data[data.size() - 1].source.setWidth((xTarget[columns - 1] - xTarget[columns - 2]) / d.scaleX); } 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); + QDrawPixmapsDataArray &data = hints & QDrawBorderPixmap::OpaqueBottom ? opaqueData : translucentData; + d.source = QRectF(sourceCenterLeft, sourceCenterBottom, sourceCenterWidth, sourceMargins.bottom());; + d.point.setY(0.5 * (yTarget[rows] + yTarget[rows - 1])); + d.scaleX = dx / d.source.width(); + d.scaleY = qreal(yTarget[rows] - yTarget[rows - 1]) / d.source.height(); + for (int i = 1; i < columns - 1; ++i) { + d.point.setX(0.5 * (xTarget[i + 1] + xTarget[i])); + data.append(d); + } + if (rules.horizontal == Qt::RepeatTile) + data[data.size() - 1].source.setWidth((xTarget[columns - 1] - xTarget[columns - 2]) / d.scaleX); } - 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 (targetCenterHeight > 0 && sourceCenterHeight > 0) { 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); + QDrawPixmapsDataArray &data = hints & QDrawBorderPixmap::OpaqueLeft ? opaqueData : translucentData; + d.source = QRectF(sourceRect.left(), sourceCenterTop, sourceMargins.left(), sourceCenterHeight); + d.point.setX(0.5 * (xTarget[1] + xTarget[0])); + d.scaleX = qreal(xTarget[1] - xTarget[0]) / d.source.width(); + d.scaleY = dy / d.source.height(); + for (int i = 1; i < rows - 1; ++i) { + d.point.setY(0.5 * (yTarget[i + 1] + yTarget[i])); + data.append(d); + } + if (rules.vertical == Qt::RepeatTile) + data[data.size() - 1].source.setHeight((yTarget[rows - 1] - yTarget[rows - 2]) / d.scaleY); } 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); + QDrawPixmapsDataArray &data = hints & QDrawBorderPixmap::OpaqueRight ? opaqueData : translucentData; + d.source = QRectF(sourceCenterRight, sourceCenterTop, sourceMargins.right(), sourceCenterHeight); + d.point.setX(0.5 * (xTarget[columns] + xTarget[columns - 1])); + d.scaleX = qreal(xTarget[columns] - xTarget[columns - 1]) / d.source.width(); + d.scaleY = dy / d.source.height(); + for (int i = 1; i < rows - 1; ++i) { + d.point.setY(0.5 * (yTarget[i + 1] + yTarget[i])); + data.append(d); + } + if (rules.vertical == Qt::RepeatTile) + data[data.size() - 1].source.setHeight((yTarget[rows - 1] - yTarget[rows - 2]) / d.scaleY); } - 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; + QDrawPixmapsDataArray &data = hints & QDrawBorderPixmap::OpaqueCenter ? opaqueData : translucentData; + d.source = QRectF(sourceCenterLeft, sourceCenterTop, sourceCenterWidth, sourceCenterHeight); + d.scaleX = dx / d.source.width(); + d.scaleY = dy / d.source.height(); + + qreal repeatWidth = (xTarget[columns - 1] - xTarget[columns - 2]) / d.scaleX; + qreal repeatHeight = (yTarget[rows - 1] - yTarget[rows - 2]) / d.scaleY; + + for (int j = 1; j < rows - 1; ++j) { + d.point.setY(0.5 * (yTarget[j + 1] + yTarget[j])); + for (int i = 1; i < columns - 1; ++i) { + d.point.setX(0.5 * (xTarget[i + 1] + xTarget[i])); + data.append(d); } - 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; + if (rules.horizontal == Qt::RepeatTile) + data[data.size() - 1].source.setWidth(repeatWidth); + } + if (rules.vertical == Qt::RepeatTile) { + for (int i = 1; i < columns - 1; ++i) + data[data.size() - i].source.setHeight(repeatHeight); } } + + if (opaqueData.size()) + qDrawPixmaps(painter, opaqueData.data(), opaqueData.size(), pixmap, QDrawPixmaps::OpaqueHint); + if (translucentData.size()) + qDrawPixmaps(painter, translucentData.data(), translucentData.size(), pixmap); +} + +/*! + \class QDrawPixmaps::Data + \since 4.6 + \internal + + This structure is used with the qDrawPixmaps() function. + + QPointF point: Specifies the center of the target rectangle. + QRectF source: Specifies the source rectangle in the pixmap passed into the qDrawPixmaps() call. + qreal scaleX: Specifies the horizontal scale of the target rectangle. + qreal scaleY: Specifies the vertical scale of the target rectangle. + qreal rotation: Specifies the rotation of the target rectangle in degrees. + The target rectangle is rotated after scaling. + qreal opacity: Specifies the opacity of the rectangle. +*/ + +/*! + \enum QDrawPixmaps::DrawingHint + \internal +*/ + +/*! + \internal + \since 4.6 + + This function is used to draw \a pixmap, or a sub-rectangle of \a pixmap, at multiple positions + with different scale, rotation and opacity on \a painter. \a drawingData is an array of \a + dataCount elements specifying the parameters used to draw each pixmap instance. + This can be used for example to implement a particle system. +*/ +void qDrawPixmaps(QPainter *painter, const QDrawPixmaps::Data *drawingData, int dataCount, const QPixmap &pixmap, QDrawPixmaps::DrawingHints hints) +{ + QPaintEngine *engine = painter->paintEngine(); + if (!engine) + return; + + if (engine->isExtended()) { + static_cast<QPaintEngineEx *>(engine)->drawPixmaps(drawingData, dataCount, pixmap, hints); + } else { + qreal oldOpacity = painter->opacity(); + QTransform oldTransform = painter->transform(); + + for (int i = 0; i < dataCount; ++i) { + QTransform transform = oldTransform; + transform.translate(drawingData[i].point.x(), drawingData[i].point.y()); + transform.rotate(drawingData[i].rotation); + painter->setOpacity(oldOpacity * drawingData[i].opacity); + painter->setTransform(transform); + + qreal w = drawingData[i].scaleX * drawingData[i].source.width(); + qreal h = drawingData[i].scaleY * drawingData[i].source.height(); + painter->drawPixmap(QRectF(-0.5 * w, -0.5 * h, w, h), pixmap, drawingData[i].source); + } + + painter->setOpacity(oldOpacity); + painter->setTransform(oldTransform); + } } QT_END_NAMESPACE diff --git a/src/gui/painting/qdrawutil.h b/src/gui/painting/qdrawutil.h index 3a2dd0e..fff1cc1 100644 --- a/src/gui/painting/qdrawutil.h +++ b/src/gui/painting/qdrawutil.h @@ -137,27 +137,82 @@ struct QTileRules { inline QTileRules(Qt::TileRule horizontalRule, Qt::TileRule verticalRule) : horizontal(horizontalRule), vertical(verticalRule) {} - inline QTileRules(Qt::TileRule rule = Qt::Stretch) + inline QTileRules(Qt::TileRule rule = Qt::StretchTile) : horizontal(rule), vertical(rule) {} Qt::TileRule horizontal; Qt::TileRule vertical; }; -Q_GUI_EXPORT void qDrawBorderPixmap(QPainter *painter, - const QRect &targetRect, - const QMargins &targetMargins, +#ifndef Q_QDOC +// For internal use only. +namespace QDrawBorderPixmap +{ + enum DrawingHint + { + OpaqueTopLeft = 0x0001, + OpaqueTop = 0x0002, + OpaqueTopRight = 0x0004, + OpaqueLeft = 0x0008, + OpaqueCenter = 0x0010, + OpaqueRight = 0x0020, + OpaqueBottomLeft = 0x0040, + OpaqueBottom = 0x0080, + OpaqueBottomRight = 0x0100, + OpaqueCorners = OpaqueTopLeft | OpaqueTopRight | OpaqueBottomLeft | OpaqueBottomRight, + OpaqueEdges = OpaqueTop | OpaqueLeft | OpaqueRight | OpaqueBottom, + OpaqueFrame = OpaqueCorners | OpaqueEdges, + OpaqueAll = OpaqueCenter | OpaqueFrame + }; + + Q_DECLARE_FLAGS(DrawingHints, DrawingHint) +} +#endif + +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()); -inline void qDrawBorderPixmap(QPainter *painter, - const QRect &target, - const QMargins &margins, + const QRect &sourceRect, + const QMargins &sourceMargins, + const QTileRules &rules = QTileRules() +#ifndef Q_QDOC + , QDrawBorderPixmap::DrawingHints hints = 0 +#endif + ); + +inline void qDrawBorderPixmap(QPainter *painter, + const QRect &target, + const QMargins &margins, const QPixmap &pixmap) { qDrawBorderPixmap(painter, target, margins, pixmap, pixmap.rect(), margins); } +// For internal use only. +namespace QDrawPixmaps +{ + struct Data + { + QPointF point; + QRectF source; + qreal scaleX; + qreal scaleY; + qreal rotation; + qreal opacity; + }; + + enum DrawingHint + { + OpaqueHint = 0x01 + }; + + Q_DECLARE_FLAGS(DrawingHints, DrawingHint) +} + +// This function is private and may change without notice. Do not use outside Qt!!! +Q_GUI_EXPORT void qDrawPixmaps(QPainter *painter, const QDrawPixmaps::Data *drawingData, + int dataCount, const QPixmap &pixmap, QDrawPixmaps::DrawingHints hints = 0); + QT_END_NAMESPACE QT_END_HEADER diff --git a/src/gui/painting/qpaintengineex.cpp b/src/gui/painting/qpaintengineex.cpp index 60e4df6..d712669 100644 --- a/src/gui/painting/qpaintengineex.cpp +++ b/src/gui/painting/qpaintengineex.cpp @@ -932,6 +932,31 @@ void QPaintEngineEx::drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, con fill(path, brush); } +void QPaintEngineEx::drawPixmaps(const QDrawPixmaps::Data *drawingData, int dataCount, const QPixmap &pixmap, QDrawPixmaps::DrawingHints hints) +{ + qreal oldOpacity = state()->opacity; + QTransform oldTransform = state()->matrix; + + for (int i = 0; i < dataCount; ++i) { + QTransform transform = oldTransform; + transform.translate(drawingData[i].point.x(), drawingData[i].point.y()); + transform.rotate(drawingData[i].rotation); + state()->opacity = oldOpacity * drawingData[i].opacity; + state()->matrix = transform; + opacityChanged(); + transformChanged(); + + qreal w = drawingData[i].scaleX * drawingData[i].source.width(); + qreal h = drawingData[i].scaleY * drawingData[i].source.height(); + drawPixmap(QRectF(-0.5 * w, -0.5 * h, w, h), pixmap, drawingData[i].source); + } + + state()->opacity = oldOpacity; + state()->matrix = oldTransform; + opacityChanged(); + transformChanged(); +} + void QPaintEngineEx::setState(QPainterState *s) { QPaintEngine::state = s; diff --git a/src/gui/painting/qpaintengineex_p.h b/src/gui/painting/qpaintengineex_p.h index 814a0f0..81ed06b 100644 --- a/src/gui/painting/qpaintengineex_p.h +++ b/src/gui/painting/qpaintengineex_p.h @@ -71,6 +71,11 @@ class QPainterState; class QPaintEngineExPrivate; struct StrokeHandler; +namespace QDrawPixmaps +{ + struct Data; + enum DrawingHint; +} struct QIntRect { int x1, y1, x2, y2; @@ -133,8 +138,6 @@ public: qreal pts[8]; }; - - #ifndef QT_NO_DEBUG_STREAM QDebug Q_GUI_EXPORT &operator<<(QDebug &, const QVectorPath &path); #endif @@ -198,6 +201,8 @@ public: virtual void drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s); + virtual void drawPixmaps(const QDrawPixmaps::Data *drawingData, int dataCount, const QPixmap &pixmap, QFlags<QDrawPixmaps::DrawingHint> hints); + virtual void updateState(const QPaintEngineState &state); virtual void setState(QPainterState *s); diff --git a/src/gui/s60framework/qs60mainapplication.cpp b/src/gui/s60framework/qs60mainapplication.cpp index 54fb3b1..2973c97 100644 --- a/src/gui/s60framework/qs60mainapplication.cpp +++ b/src/gui/s60framework/qs60mainapplication.cpp @@ -63,7 +63,7 @@ _LIT(KQtWrapperResourceFile, "\\resource\\apps\\s60main.rsc"); * \class QS60MainApplication * \obsolete * \since 4.6 - * \brief Helper class for S60 migration + * \brief The QS60MainApplication class provides support for migration from S60. * * The QS60MainApplication provides a helper class for use in migrating from existing S60 based * applications to Qt based applications. It is used in the exact same way as the @@ -80,7 +80,7 @@ _LIT(KQtWrapperResourceFile, "\\resource\\apps\\s60main.rsc"); * Unlike other Qt classes, QS60MainApplication behaves like an S60 class, and can throw Symbian * leaves. * - * \sa QS60MainDocument, QS60MainAppUi, QApplication::QApplication(QApplication::QS60MainApplicationFactory, int &, char **) + * \sa QS60MainDocument, QS60MainAppUi, QApplication::QS60MainApplicationFactory */ /*! diff --git a/src/gui/styles/qstylesheetstyle.cpp b/src/gui/styles/qstylesheetstyle.cpp index 0f3a88b..707b05e 100644 --- a/src/gui/styles/qstylesheetstyle.cpp +++ b/src/gui/styles/qstylesheetstyle.cpp @@ -1126,7 +1126,7 @@ void QRenderRule::fixupBorder(int nativeWidth) void QRenderRule::drawBorderImage(QPainter *p, const QRect& rect) { static const Qt::TileRule tileMode2TileRule[] = { - Qt::Stretch, Qt::Round, Qt::Stretch, Qt::Repeat, Qt::Stretch }; + Qt::StretchTile, Qt::RoundTile, Qt::StretchTile, Qt::RepeatTile, Qt::StretchTile }; const QStyleSheetBorderImageData *borderImageData = border()->borderImage(); const int *targetBorders = border()->borders; diff --git a/src/gui/widgets/qabstractslider.cpp b/src/gui/widgets/qabstractslider.cpp index c3289b4..19a8b63 100644 --- a/src/gui/widgets/qabstractslider.cpp +++ b/src/gui/widgets/qabstractslider.cpp @@ -693,13 +693,8 @@ void QAbstractSlider::wheelEvent(QWheelEvent * e) if (e->orientation() != d->orientation && !rect().contains(e->pos())) return; - int step = qMin(QApplication::wheelScrollLines() * d->singleStep, d->pageStep); - if ((e->modifiers() & Qt::ControlModifier) || (e->modifiers() & Qt::ShiftModifier)) - step = d->pageStep; - - qreal currentOffset = qreal(e->delta()) * step / 120; - d->offset_accumulated += d->invertedControls ? -currentOffset : currentOffset; - + qreal currentOffset = qreal(e->delta()) / 120; + d->offset_accumulated += currentOffset; if (int(d->offset_accumulated) == 0) { // QAbstractSlider works on integer values. So if the accumulated // offset is less than +/- 1, we need to wait until we get more @@ -708,8 +703,27 @@ void QAbstractSlider::wheelEvent(QWheelEvent * e) return; } + int stepsToScroll; + if ((e->modifiers() & Qt::ControlModifier) || (e->modifiers() & Qt::ShiftModifier)) { + stepsToScroll = currentOffset > 0 ? d->pageStep : -d->pageStep; + } else { + // Calculate the number of steps to scroll (per 15 degrees of rotate): +#ifdef Q_OS_MAC + // On mac, since mouse wheel scrolling is accelerated and + // fine tuned by the OS, we skip applying acceleration: + stepsToScroll = int(d->offset_accumulated); +#else + stepsToScroll = int(d->offset_accumulated) * QApplication::wheelScrollLines() * d->singleStep; +#endif + if (qAbs(stepsToScroll) > d->pageStep) + stepsToScroll = currentOffset > 0 ? d->pageStep : -d->pageStep; + } + + if (d->invertedControls) + stepsToScroll = -stepsToScroll; + int prevValue = d->value; - d->position = d->overflowSafeAdd(int(d->offset_accumulated)); // value will be updated by triggerAction() + d->position = d->overflowSafeAdd(stepsToScroll); // value will be updated by triggerAction() triggerAction(SliderMove); if (prevValue == d->value) { diff --git a/src/gui/widgets/qlabel.cpp b/src/gui/widgets/qlabel.cpp index 5ff323a..5ba0571 100644 --- a/src/gui/widgets/qlabel.cpp +++ b/src/gui/widgets/qlabel.cpp @@ -886,7 +886,18 @@ void QLabel::focusInEvent(QFocusEvent *ev) void QLabel::focusOutEvent(QFocusEvent *ev) { Q_D(QLabel); - d->sendControlEvent(ev); + if (d->control) { + d->sendControlEvent(ev); + QTextCursor cursor = d->control->textCursor(); + Qt::FocusReason reason = ev->reason(); + if (reason != Qt::ActiveWindowFocusReason + && reason != Qt::PopupFocusReason + && cursor.hasSelection()) { + cursor.clearSelection(); + d->control->setTextCursor(cursor); + } + } + QFrame::focusOutEvent(ev); } diff --git a/src/gui/widgets/qtextedit.cpp b/src/gui/widgets/qtextedit.cpp index 3fe9bb4..dc78fd5 100644 --- a/src/gui/widgets/qtextedit.cpp +++ b/src/gui/widgets/qtextedit.cpp @@ -174,13 +174,8 @@ void QTextEditPrivate::init(const QString &html) if (!html.isEmpty()) control->setHtml(html); -#ifdef Q_OS_MAC - hbar->setSingleStep(1); - vbar->setSingleStep(1); -#else hbar->setSingleStep(20); vbar->setSingleStep(20); -#endif viewport->setBackgroundRole(QPalette::Base); q->setAcceptDrops(true); diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp index 84224ec..f890d12 100644 --- a/src/network/socket/qnativesocketengine_unix.cpp +++ b/src/network/socket/qnativesocketengine_unix.cpp @@ -312,7 +312,7 @@ bool QNativeSocketEnginePrivate::setOption(QNativeSocketEngine::SocketOption opt return true; } case QNativeSocketEngine::AddressReusable: -#ifdef SO_REUSEPORT +#if defined(SO_REUSEPORT) && !defined(Q_OS_SYMBIAN) n = SO_REUSEPORT; #else n = SO_REUSEADDR; @@ -1018,10 +1018,12 @@ int QNativeSocketEnginePrivate::nativeSelect(int timeout, bool checkRead, bool c if(selectForExec) { qWarning("nativeSelect (checkRead %d, checkWrite %d, ret %d, errno %d): Unexpected expectfds ready in fd %d", checkRead, checkWrite, ret, errno, socketDescriptor); - if (checkRead) - FD_SET(socketDescriptor, &fdread); - if (checkWrite) + if (checkWrite){ + FD_CLR(socketDescriptor, &fdread); FD_SET(socketDescriptor, &fdwrite); + } else if (checkRead) + FD_SET(socketDescriptor, &fdread); + if ((ret == -1) && ( errno == ECONNREFUSED || errno == EPIPE )) ret = 1; diff --git a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp index fcb20b4..59c50aa 100644 --- a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp +++ b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp @@ -97,6 +97,7 @@ QGLEngineSharedShaders::QGLEngineSharedShaders(const QGLContext* context) code[MainVertexShader] = qglslMainVertexShader; code[MainWithTexCoordsVertexShader] = qglslMainWithTexCoordsVertexShader; + code[MainWithTexCoordsAndOpacityVertexShader] = qglslMainWithTexCoordsAndOpacityVertexShader; code[UntransformedPositionVertexShader] = qglslUntransformedPositionVertexShader; code[PositionOnlyVertexShader] = qglslPositionOnlyVertexShader; @@ -119,6 +120,7 @@ QGLEngineSharedShaders::QGLEngineSharedShaders(const QGLContext* context) code[MainFragmentShader_C] = qglslMainFragmentShader_C; code[MainFragmentShader_O] = qglslMainFragmentShader_O; code[MainFragmentShader] = qglslMainFragmentShader; + code[MainFragmentShader_ImageArrays] = qglslMainFragmentShader_ImageArrays; code[ImageSrcFragmentShader] = qglslImageSrcFragmentShader; code[ImageSrcWithPatternFragmentShader] = qglslImageSrcWithPatternFragmentShader; @@ -285,6 +287,8 @@ QGLEngineShaderProg *QGLEngineSharedShaders::findProgramInCache(const QGLEngineS cached.program->bindAttributeLocation("vertexCoordsArray", QT_VERTEX_COORDS_ATTR); if (cached.useTextureCoords) cached.program->bindAttributeLocation("textureCoordArray", QT_TEXTURE_COORDS_ATTR); + if (cached.useOpacityAttribute) + cached.program->bindAttributeLocation("opacityArray", QT_OPACITY_ATTR); cached.program->link(); if (!cached.program->isLinked()) { @@ -331,7 +335,7 @@ QGLEngineShaderManager::QGLEngineShaderManager(QGLContext* context) : ctx(context), shaderProgNeedsChanging(true), srcPixelType(Qt::NoBrush), - useGlobalOpacity(false), + opacityMode(NoOpacity), maskType(NoMask), compositionMode(QPainter::CompositionMode_SourceOver), customSrcStage(0), @@ -407,12 +411,12 @@ void QGLEngineShaderManager::setSrcPixelType(PixelSrcType type) shaderProgNeedsChanging = true; //### } -void QGLEngineShaderManager::setUseGlobalOpacity(bool useOpacity) +void QGLEngineShaderManager::setOpacityMode(OpacityMode mode) { - if (useGlobalOpacity == useOpacity) + if (opacityMode == mode) return; - useGlobalOpacity = useOpacity; + opacityMode = mode; shaderProgNeedsChanging = true; //### } @@ -564,22 +568,28 @@ bool QGLEngineShaderManager::useCorrectShaderProg() // Choose fragment shader main function: QGLEngineSharedShaders::ShaderName mainFragShaderName; - if (hasCompose && hasMask && useGlobalOpacity) - mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader_CMO; - if (hasCompose && hasMask && !useGlobalOpacity) - mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader_CM; - if (!hasCompose && hasMask && useGlobalOpacity) - mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader_MO; - if (!hasCompose && hasMask && !useGlobalOpacity) - mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader_M; - if (hasCompose && !hasMask && useGlobalOpacity) - mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader_CO; - if (hasCompose && !hasMask && !useGlobalOpacity) - mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader_C; - if (!hasCompose && !hasMask && useGlobalOpacity) - mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader_O; - if (!hasCompose && !hasMask && !useGlobalOpacity) - mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader; + if (opacityMode == AttributeOpacity) { + Q_ASSERT(!hasCompose && !hasMask); + mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader_ImageArrays; + } else { + bool useGlobalOpacity = (opacityMode == UniformOpacity); + if (hasCompose && hasMask && useGlobalOpacity) + mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader_CMO; + if (hasCompose && hasMask && !useGlobalOpacity) + mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader_CM; + if (!hasCompose && hasMask && useGlobalOpacity) + mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader_MO; + if (!hasCompose && hasMask && !useGlobalOpacity) + mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader_M; + if (hasCompose && !hasMask && useGlobalOpacity) + mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader_CO; + if (hasCompose && !hasMask && !useGlobalOpacity) + mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader_C; + if (!hasCompose && !hasMask && useGlobalOpacity) + mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader_O; + if (!hasCompose && !hasMask && !useGlobalOpacity) + mainFragShaderName = QGLEngineSharedShaders::MainFragmentShader; + } requiredProgram.mainFragShader = sharedShaders->compileNamedShader(mainFragShaderName, QGLShader::PartialFragmentShader); @@ -652,12 +662,17 @@ bool QGLEngineShaderManager::useCorrectShaderProg() // Choose vertex shader main function QGLEngineSharedShaders::ShaderName mainVertexShaderName = QGLEngineSharedShaders::InvalidShaderName; - if (texCoords) + if (opacityMode == AttributeOpacity) { + Q_ASSERT(texCoords); + mainVertexShaderName = QGLEngineSharedShaders::MainWithTexCoordsAndOpacityVertexShader; + } else if (texCoords) { mainVertexShaderName = QGLEngineSharedShaders::MainWithTexCoordsVertexShader; - else + } else { mainVertexShaderName = QGLEngineSharedShaders::MainVertexShader; + } requiredProgram.mainVertexShader = sharedShaders->compileNamedShader(mainVertexShaderName, QGLShader::PartialVertexShader); requiredProgram.useTextureCoords = texCoords; + requiredProgram.useOpacityAttribute = (opacityMode == AttributeOpacity); // At this point, requiredProgram is fully populated so try to find the program in the cache diff --git a/src/opengl/gl2paintengineex/qglengineshadermanager_p.h b/src/opengl/gl2paintengineex/qglengineshadermanager_p.h index fbb6d9c..291d24c 100644 --- a/src/opengl/gl2paintengineex/qglengineshadermanager_p.h +++ b/src/opengl/gl2paintengineex/qglengineshadermanager_p.h @@ -247,6 +247,7 @@ struct QGLEngineShaderProg QVector<uint> uniformLocations; bool useTextureCoords; + bool useOpacityAttribute; bool operator==(const QGLEngineShaderProg& other) { // We don't care about the program @@ -277,6 +278,7 @@ struct QGLEngineCachedShaderProg static const GLuint QT_VERTEX_COORDS_ATTR = 0; static const GLuint QT_TEXTURE_COORDS_ATTR = 1; +static const GLuint QT_OPACITY_ATTR = 2; class QGLEngineSharedShaders : public QObject { @@ -285,6 +287,7 @@ public: enum ShaderName { MainVertexShader, MainWithTexCoordsVertexShader, + MainWithTexCoordsAndOpacityVertexShader, UntransformedPositionVertexShader, PositionOnlyVertexShader, @@ -307,6 +310,7 @@ public: MainFragmentShader_C, MainFragmentShader_O, MainFragmentShader, + MainFragmentShader_ImageArrays, ImageSrcFragmentShader, ImageSrcWithPatternFragmentShader, @@ -406,13 +410,19 @@ public: NumUniforms }; + enum OpacityMode { + NoOpacity, + UniformOpacity, + AttributeOpacity + }; + // There are optimisations we can do, depending on the brush transform: // 1) May not have to apply perspective-correction // 2) Can use lower precision for matrix void optimiseForBrushTransform(const QTransform &transform); void setSrcPixelType(Qt::BrushStyle); void setSrcPixelType(PixelSrcType); // For non-brush sources, like pixmaps & images - void setUseGlobalOpacity(bool); + void setOpacityMode(OpacityMode); void setMaskType(MaskType); void setCompositionMode(QPainter::CompositionMode); void setCustomStage(QGLCustomShaderStage* stage); @@ -451,7 +461,7 @@ private: // Current state variables which influence the choice of shader: QTransform brushTransform; int srcPixelType; - bool useGlobalOpacity; + OpacityMode opacityMode; MaskType maskType; QPainter::CompositionMode compositionMode; QGLCustomShaderStage* customSrcStage; diff --git a/src/opengl/gl2paintengineex/qglengineshadersource_p.h b/src/opengl/gl2paintengineex/qglengineshadersource_p.h index 8ae86d3..6712bf6 100644 --- a/src/opengl/gl2paintengineex/qglengineshadersource_p.h +++ b/src/opengl/gl2paintengineex/qglengineshadersource_p.h @@ -84,6 +84,20 @@ static const char* const qglslMainWithTexCoordsVertexShader = "\ textureCoords = textureCoordArray; \ }"; +static const char* const qglslMainWithTexCoordsAndOpacityVertexShader = "\ + attribute highp vec2 textureCoordArray; \ + attribute lowp float opacityArray; \ + varying highp vec2 textureCoords; \ + varying lowp float opacity; \ + uniform highp float depth; \ + void setPosition(); \ + void main(void) \ + { \ + setPosition(); \ + gl_Position.z = depth * gl_Position.w; \ + textureCoords = textureCoordArray; \ + opacity = opacityArray; \ + }"; static const char* const qglslPositionOnlyVertexShader = "\ attribute highp vec4 vertexCoordsArray;\ @@ -331,6 +345,12 @@ static const char* const qglslShockingPinkSrcFragmentShader = "\ return vec4(0.98, 0.06, 0.75, 1.0); \ }"; +static const char* const qglslMainFragmentShader_ImageArrays = "\ + varying lowp float opacity; \ + lowp vec4 srcPixel(); \ + void main() { \ + gl_FragColor = srcPixel() * opacity; \ + }"; static const char* const qglslMainFragmentShader_CMO = "\ uniform lowp float globalOpacity; \ diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index f612bc0..992d47d 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -366,7 +366,7 @@ void QGL2PaintEngineExPrivate::updateTextureFilter(GLenum target, GLenum wrapMod } -QColor QGL2PaintEngineExPrivate::premultiplyColor(QColor c, GLfloat opacity) +inline QColor qt_premultiplyColor(QColor c, GLfloat opacity) { qreal alpha = c.alphaF() * opacity; c.setAlphaF(alpha); @@ -469,7 +469,7 @@ void QGL2PaintEngineExPrivate::updateBrushUniforms() QTransform brushQTransform = currentBrush->transform(); if (style == Qt::SolidPattern) { - QColor col = premultiplyColor(currentBrush->color(), (GLfloat)q->state()->opacity); + QColor col = qt_premultiplyColor(currentBrush->color(), (GLfloat)q->state()->opacity); shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::FragmentColor), col); } else { @@ -479,7 +479,7 @@ void QGL2PaintEngineExPrivate::updateBrushUniforms() if (style <= Qt::DiagCrossPattern) { translationPoint = q->state()->brushOrigin; - QColor col = premultiplyColor(currentBrush->color(), (GLfloat)q->state()->opacity); + QColor col = qt_premultiplyColor(currentBrush->color(), (GLfloat)q->state()->opacity); shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::PatternColor), col); @@ -541,7 +541,7 @@ void QGL2PaintEngineExPrivate::updateBrushUniforms() const QPixmap& texPixmap = currentBrush->texture(); if (qHasPixmapTexture(*currentBrush) && currentBrush->texture().isQBitmap()) { - QColor col = premultiplyColor(currentBrush->color(), (GLfloat)q->state()->opacity); + QColor col = qt_premultiplyColor(currentBrush->color(), (GLfloat)q->state()->opacity); shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::PatternColor), col); } @@ -712,7 +712,7 @@ void QGL2PaintEngineExPrivate::drawTexture(const QGLRect& dest, const QGLRect& s shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::ImageTexture), QT_IMAGE_TEXTURE_UNIT); if (pattern) { - QColor col = premultiplyColor(q->state()->pen.color(), (GLfloat)q->state()->opacity); + QColor col = qt_premultiplyColor(q->state()->pen.color(), (GLfloat)q->state()->opacity); shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::PatternColor), col); } @@ -796,9 +796,10 @@ void QGL2PaintEngineExPrivate::transferMode(EngineMode newMode) if (newMode == mode) return; - if (mode == TextDrawingMode || mode == ImageDrawingMode) { + if (mode == TextDrawingMode || mode == ImageDrawingMode || mode == ImageArrayDrawingMode) { glDisableVertexAttribArray(QT_TEXTURE_COORDS_ATTR); glDisableVertexAttribArray(QT_VERTEX_COORDS_ATTR); + glDisableVertexAttribArray(QT_OPACITY_ATTR); lastTexture = GLuint(-1); } @@ -824,6 +825,16 @@ void QGL2PaintEngineExPrivate::transferMode(EngineMode newMode) glVertexAttribPointer(QT_TEXTURE_COORDS_ATTR, 2, GL_FLOAT, GL_FALSE, 0, staticTextureCoordinateArray); } + if (newMode == ImageArrayDrawingMode) { + glEnableVertexAttribArray(QT_VERTEX_COORDS_ATTR); + glEnableVertexAttribArray(QT_TEXTURE_COORDS_ATTR); + glEnableVertexAttribArray(QT_OPACITY_ATTR); + + glVertexAttribPointer(QT_VERTEX_COORDS_ATTR, 2, GL_FLOAT, GL_FALSE, 0, vertexCoordinateArray.data()); + glVertexAttribPointer(QT_TEXTURE_COORDS_ATTR, 2, GL_FLOAT, GL_FALSE, 0, textureCoordinateArray.data()); + glVertexAttribPointer(QT_OPACITY_ATTR, 1, GL_FLOAT, GL_FALSE, 0, opacityArray.data()); + } + // This needs to change when we implement high-quality anti-aliasing... if (newMode != TextDrawingMode) shaderManager->setMaskType(QGLEngineShaderManager::NoMask); @@ -953,7 +964,7 @@ void QGL2PaintEngineExPrivate::fillStencilWithVertexArray(QGL2PEXVertexArray& ve bool QGL2PaintEngineExPrivate::prepareForDraw(bool srcPixelsAreOpaque) { - if (brushTextureDirty && mode != ImageDrawingMode) + if (brushTextureDirty && mode != ImageDrawingMode && mode != ImageArrayDrawingMode) updateBrushTexture(); if (compositionModeDirty) @@ -972,16 +983,22 @@ bool QGL2PaintEngineExPrivate::prepareForDraw(bool srcPixelsAreOpaque) glEnable(GL_BLEND); } - bool useGlobalOpacityUniform = stateHasOpacity; - if (stateHasOpacity && (mode != ImageDrawingMode)) { - // Using a brush - bool brushIsPattern = (currentBrush->style() >= Qt::Dense1Pattern) && - (currentBrush->style() <= Qt::DiagCrossPattern); - - if ((currentBrush->style() == Qt::SolidPattern) || brushIsPattern) - useGlobalOpacityUniform = false; // Global opacity handled by srcPixel shader + QGLEngineShaderManager::OpacityMode opacityMode; + if (mode == ImageArrayDrawingMode) { + opacityMode = QGLEngineShaderManager::AttributeOpacity; + } else { + opacityMode = stateHasOpacity ? QGLEngineShaderManager::UniformOpacity + : QGLEngineShaderManager::NoOpacity; + if (stateHasOpacity && (mode != ImageDrawingMode)) { + // Using a brush + bool brushIsPattern = (currentBrush->style() >= Qt::Dense1Pattern) && + (currentBrush->style() <= Qt::DiagCrossPattern); + + if ((currentBrush->style() == Qt::SolidPattern) || brushIsPattern) + opacityMode = QGLEngineShaderManager::NoOpacity; // Global opacity handled by srcPixel shader + } } - shaderManager->setUseGlobalOpacity(useGlobalOpacityUniform); + shaderManager->setOpacityMode(opacityMode); bool changed = shaderManager->useCorrectShaderProg(); // If the shader program needs changing, we change it and mark all uniforms as dirty @@ -993,7 +1010,7 @@ bool QGL2PaintEngineExPrivate::prepareForDraw(bool srcPixelsAreOpaque) opacityUniformDirty = true; } - if (brushUniformsDirty && mode != ImageDrawingMode) + if (brushUniformsDirty && mode != ImageDrawingMode && mode != ImageArrayDrawingMode) updateBrushUniforms(); if (shaderMatrixUniformDirty) { @@ -1006,7 +1023,7 @@ bool QGL2PaintEngineExPrivate::prepareForDraw(bool srcPixelsAreOpaque) depthUniformDirty = false; } - if (useGlobalOpacityUniform && opacityUniformDirty) { + if (opacityMode == QGLEngineShaderManager::UniformOpacity && opacityUniformDirty) { shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::GlobalOpacity), (GLfloat)q->state()->opacity); opacityUniformDirty = false; } @@ -1332,7 +1349,7 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(const QPointF &p, QFontEngineGly QColor c = pensBrush.color(); qreal oldOpacity = q->state()->opacity; if (compMode == QPainter::CompositionMode_Source) { - c = premultiplyColor(c, q->state()->opacity); + c = qt_premultiplyColor(c, q->state()->opacity); q->state()->opacity = 1; opacityUniformDirty = true; } @@ -1411,6 +1428,96 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(const QPointF &p, QFontEngineGly glDrawArrays(GL_TRIANGLES, 0, 6 * glyphs.size()); } +void QGL2PaintEngineEx::drawPixmaps(const QDrawPixmaps::Data *drawingData, int dataCount, const QPixmap &pixmap, QDrawPixmaps::DrawingHints hints) +{ + // Use fallback for extended composition modes. + if (state()->composition_mode > QPainter::CompositionMode_Plus) { + QPaintEngineEx::drawPixmaps(drawingData, dataCount, pixmap, hints); + return; + } + + Q_D(QGL2PaintEngineEx); + + GLfloat dx = 1.0f / pixmap.size().width(); + GLfloat dy = 1.0f / pixmap.size().height(); + + d->vertexCoordinateArray.clear(); + d->textureCoordinateArray.clear(); + d->opacityArray.reset(); + + bool allOpaque = true; + + for (int i = 0; i < dataCount; ++i) { + qreal s = 0; + qreal c = 1; + if (drawingData[i].rotation != 0) { + s = qFastSin(drawingData[i].rotation * Q_PI / 180); + c = qFastCos(drawingData[i].rotation * Q_PI / 180); + } + + qreal right = 0.5 * drawingData[i].scaleX * drawingData[i].source.width(); + qreal bottom = 0.5 * drawingData[i].scaleY * drawingData[i].source.height(); + QGLPoint bottomRight(right * c - bottom * s, right * s + bottom * c); + QGLPoint bottomLeft(-right * c - bottom * s, -right * s + bottom * c); + + d->vertexCoordinateArray.lineToArray(bottomRight.x + drawingData[i].point.x(), bottomRight.y + drawingData[i].point.y()); + d->vertexCoordinateArray.lineToArray(-bottomLeft.x + drawingData[i].point.x(), -bottomLeft.y + drawingData[i].point.y()); + d->vertexCoordinateArray.lineToArray(-bottomRight.x + drawingData[i].point.x(), -bottomRight.y + drawingData[i].point.y()); + d->vertexCoordinateArray.lineToArray(-bottomRight.x + drawingData[i].point.x(), -bottomRight.y + drawingData[i].point.y()); + d->vertexCoordinateArray.lineToArray(bottomLeft.x + drawingData[i].point.x(), bottomLeft.y + drawingData[i].point.y()); + d->vertexCoordinateArray.lineToArray(bottomRight.x + drawingData[i].point.x(), bottomRight.y + drawingData[i].point.y()); + + QGLRect src(drawingData[i].source.left() * dx, drawingData[i].source.top() * dy, + drawingData[i].source.right() * dx, drawingData[i].source.bottom() * dy); + + d->textureCoordinateArray.lineToArray(src.right, src.bottom); + d->textureCoordinateArray.lineToArray(src.right, src.top); + d->textureCoordinateArray.lineToArray(src.left, src.top); + d->textureCoordinateArray.lineToArray(src.left, src.top); + d->textureCoordinateArray.lineToArray(src.left, src.bottom); + d->textureCoordinateArray.lineToArray(src.right, src.bottom); + + qreal opacity = drawingData[i].opacity * state()->opacity; + d->opacityArray << opacity << opacity << opacity << opacity << opacity << opacity; + allOpaque &= (opacity >= 0.99f); + } + + ensureActive(); + + QGLContext *ctx = d->ctx; + glActiveTexture(GL_TEXTURE0 + QT_IMAGE_TEXTURE_UNIT); + QGLTexture *texture = ctx->d_func()->bindTexture(pixmap, GL_TEXTURE_2D, GL_RGBA, + QGLContext::InternalBindOption + | QGLContext::CanFlipNativePixmapBindOption); + + if (texture->options & QGLContext::InvertedYBindOption) { + // Flip texture y-coordinate. + QGLPoint *data = d->textureCoordinateArray.data(); + for (int i = 0; i < 6 * dataCount; ++i) + data[i].y = 1 - data[i].y; + } + + d->transferMode(ImageArrayDrawingMode); + + bool isBitmap = pixmap.isQBitmap(); + bool isOpaque = !isBitmap && (!pixmap.hasAlphaChannel() || (hints & QDrawPixmaps::OpaqueHint)) && allOpaque; + + d->updateTextureFilter(GL_TEXTURE_2D, GL_CLAMP_TO_EDGE, + state()->renderHints & QPainter::SmoothPixmapTransform, texture->id); + + // Setup for texture drawing + d->shaderManager->setSrcPixelType(isBitmap ? QGLEngineShaderManager::PatternSrc : QGLEngineShaderManager::ImageSrc); + if (d->prepareForDraw(isOpaque)) + d->shaderManager->currentProgram()->setUniformValue(d->location(QGLEngineShaderManager::ImageTexture), QT_IMAGE_TEXTURE_UNIT); + + if (isBitmap) { + QColor col = qt_premultiplyColor(state()->pen.color(), (GLfloat)state()->opacity); + d->shaderManager->currentProgram()->setUniformValue(d->location(QGLEngineShaderManager::PatternColor), col); + } + + glDrawArrays(GL_TRIANGLES, 0, 6 * dataCount); +} + bool QGL2PaintEngineEx::begin(QPaintDevice *pdev) { Q_D(QGL2PaintEngineEx); diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h index f245945..4f42082 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h @@ -61,11 +61,13 @@ #include <private/qglpaintdevice_p.h> #include <private/qglpixmapfilter_p.h> #include <private/qfontengine_p.h> +#include <private/qdatabuffer_p.h> enum EngineMode { ImageDrawingMode, TextDrawingMode, - BrushDrawingMode + BrushDrawingMode, + ImageArrayDrawingMode }; QT_BEGIN_NAMESPACE @@ -126,6 +128,8 @@ public: virtual void drawTextItem(const QPointF &p, const QTextItem &textItem); + virtual void drawPixmaps(const QDrawPixmaps::Data *drawingData, int dataCount, const QPixmap &pixmap, QDrawPixmaps::DrawingHints hints); + Type type() const { return OpenGL2; } void setState(QPainterState *s); @@ -195,7 +199,6 @@ public: // ^ returns whether the current program changed or not inline void useSimpleShader(); - inline QColor premultiplyColor(QColor c, GLfloat opacity); float zValueForRenderText() const; @@ -230,6 +233,7 @@ public: QGL2PEXVertexArray vertexCoordinateArray; QGL2PEXVertexArray textureCoordinateArray; + QDataBuffer<GLfloat> opacityArray; GLfloat staticVertexCoordinateArray[8]; GLfloat staticTextureCoordinateArray[8]; diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp index 0402268..2327d7a 100644 --- a/src/opengl/qgl.cpp +++ b/src/opengl/qgl.cpp @@ -59,6 +59,8 @@ # include <private/qt_mac_p.h> #endif +#include <qdatetime.h> + #include <stdlib.h> // malloc #include "qpixmap.h" @@ -2077,6 +2079,8 @@ QGLTexture* QGLContextPrivate::bindTexture(const QImage &image, GLenum target, G #ifdef QGL_BIND_TEXTURE_DEBUG printf("QGLContextPrivate::bindTexture(), imageSize=(%d,%d), internalFormat =0x%x, options=%x\n", image.width(), image.height(), internalFormat, int(options)); + QTime time; + time.start(); #endif // Scale the pixmap if needed. GL textures needs to have the @@ -2092,7 +2096,8 @@ QGLTexture* QGLContextPrivate::bindTexture(const QImage &image, GLenum target, G { img = img.scaled(tx_w, tx_h); #ifdef QGL_BIND_TEXTURE_DEBUG - printf(" - upscaled to %dx%d\n", tx_w, tx_h); + printf(" - upscaled to %dx%d (%d ms)\n", tx_w, tx_h, time.elapsed()); + #endif } @@ -2112,7 +2117,7 @@ QGLTexture* QGLContextPrivate::bindTexture(const QImage &image, GLenum target, G && options & QGLContext::MipmapBindOption) { #ifdef QGL_BIND_TEXTURE_DEBUG - printf(" - generating mipmaps\n"); + printf(" - generating mipmaps (%d ms)\n", time.elapsed()); #endif #if !defined(QT_OPENGL_ES_2) glHint(GL_GENERATE_MIPMAP_HINT_SGIS, GL_NICEST); @@ -2148,7 +2153,7 @@ QGLTexture* QGLContextPrivate::bindTexture(const QImage &image, GLenum target, G if (premul) { img = img.convertToFormat(target_format = QImage::Format_ARGB32_Premultiplied); #ifdef QGL_BIND_TEXTURE_DEBUG - printf(" - converting ARGB32 -> ARGB32_Premultiplied \n"); + printf(" - converting ARGB32 -> ARGB32_Premultiplied (%d ms) \n", time.elapsed()); #endif } break; @@ -2156,7 +2161,7 @@ QGLTexture* QGLContextPrivate::bindTexture(const QImage &image, GLenum target, G if (!premul) { img = img.convertToFormat(target_format = QImage::Format_ARGB32); #ifdef QGL_BIND_TEXTURE_DEBUG - printf(" - converting ARGB32_Premultiplied -> ARGB32\n"); + printf(" - converting ARGB32_Premultiplied -> ARGB32 (%d ms)\n", time.elapsed()); #endif } break; @@ -2173,19 +2178,19 @@ QGLTexture* QGLContextPrivate::bindTexture(const QImage &image, GLenum target, G ? QImage::Format_ARGB32_Premultiplied : QImage::Format_ARGB32); #ifdef QGL_BIND_TEXTURE_DEBUG - printf(" - converting to 32-bit alpha format\n"); + printf(" - converting to 32-bit alpha format (%d ms)\n", time.elapsed()); #endif } else { img = img.convertToFormat(QImage::Format_RGB32); #ifdef QGL_BIND_TEXTURE_DEBUG - printf(" - converting to 32-bit\n"); + printf(" - converting to 32-bit (%d ms)\n", time.elapsed()); #endif } } if (options & QGLContext::InvertedYBindOption) { #ifdef QGL_BIND_TEXTURE_DEBUG - printf(" - flipping bits over y\n"); + printf(" - flipping bits over y (%d ms)\n", time.elapsed()); #endif int ipl = img.bytesPerLine() / 4; int h = img.height(); @@ -2199,7 +2204,7 @@ QGLTexture* QGLContextPrivate::bindTexture(const QImage &image, GLenum target, G if (externalFormat == GL_RGBA) { #ifdef QGL_BIND_TEXTURE_DEBUG - printf(" - doing byte swapping\n"); + printf(" - doing byte swapping (%d ms)\n", time.elapsed()); #endif // The only case where we end up with a depth different from // 32 in the switch above is for the RGB16 case, where we set @@ -2242,6 +2247,13 @@ QGLTexture* QGLContextPrivate::bindTexture(const QImage &image, GLenum target, G } #endif +#ifdef QGL_BIND_TEXTURE_DEBUG + static int totalUploadTime = 0; + totalUploadTime += time.elapsed(); + printf(" - upload done in (%d ms) time=%d\n", time.elapsed(), totalUploadTime); +#endif + + // this assumes the size of a texture is always smaller than the max cache size int cost = img.width()*img.height()*4/1024; QGLTexture *texture = new QGLTexture(q, tx_id, target, options); diff --git a/src/opengl/qgl_x11egl.cpp b/src/opengl/qgl_x11egl.cpp index d802bdd..971a660 100644 --- a/src/opengl/qgl_x11egl.cpp +++ b/src/opengl/qgl_x11egl.cpp @@ -86,9 +86,19 @@ bool QGLContext::chooseContext(const QGLContext* shareContext) qt_egl_add_platform_config(configProps, device()); configProps.setRenderableType(QEgl::OpenGL); + QEgl::PixelFormatMatch matchType = QEgl::BestPixelFormat; + if (device()->depth() == 16) { + configProps.setValue(EGL_RED_SIZE, 5); + configProps.setValue(EGL_GREEN_SIZE, 6); + configProps.setValue(EGL_BLUE_SIZE, 5); + configProps.setValue(EGL_ALPHA_SIZE, 0); + matchType = QEgl::ExactPixelFormat; + } + configProps.setRenderableType(QEgl::OpenGL); + // Search for a matching configuration, reducing the complexity // each time until we get something that matches. - if (!d->eglContext->chooseConfig(configProps, QEgl::BestPixelFormat)) { + if (!d->eglContext->chooseConfig(configProps, matchType)) { delete d->eglContext; d->eglContext = 0; return false; diff --git a/src/opengl/qpixmapdata_gl.cpp b/src/opengl/qpixmapdata_gl.cpp index 1ee3bbf..ae4bed0 100644 --- a/src/opengl/qpixmapdata_gl.cpp +++ b/src/opengl/qpixmapdata_gl.cpp @@ -48,9 +48,12 @@ #include <private/qgl_p.h> #include <private/qdrawhelper_p.h> +#include <private/qimage_p.h> #include <private/qpaintengineex_opengl2_p.h> +#include <qdesktopwidget.h> + QT_BEGIN_NAMESPACE extern QGLWidget* qt_gl_share_widget(); @@ -315,7 +318,7 @@ void QGLPixmapData::ensureCreated() const } void QGLPixmapData::fromImage(const QImage &image, - Qt::ImageConversionFlags) + Qt::ImageConversionFlags flags) { if (image.size() == QSize(w, h)) setSerialNumber(++qt_gl_pixmap_serial); @@ -323,20 +326,26 @@ void QGLPixmapData::fromImage(const QImage &image, if (pixelType() == BitmapType) { m_source = image.convertToFormat(QImage::Format_MonoLSB); + } else { - m_source = image.hasAlphaChannel() - ? image.convertToFormat(QImage::Format_ARGB32_Premultiplied) - : image.convertToFormat(QImage::Format_RGB32); + QImage::Format format = QImage::Format_RGB32; + if (qApp->desktop()->depth() == 16) + format = QImage::Format_RGB16; + + if (image.hasAlphaChannel() && const_cast<QImage &>(image).data_ptr()->checkForAlphaPixels()) + format = QImage::Format_ARGB32_Premultiplied;; + + m_source = image.convertToFormat(format); } m_dirty = true; m_hasFillColor = false; - m_hasAlpha = image.hasAlphaChannel(); + m_hasAlpha = m_source.hasAlphaChannel(); w = image.width(); h = image.height(); is_null = (w <= 0 || h <= 0); - d = pixelType() == QPixmapData::PixmapType ? 32 : 1; + d = m_source.depth(); if (m_texture.id) { QGLShareContextScope ctx(qt_gl_share_widget()->context()); diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp index 3a348bc..7f8577a 100644 --- a/src/opengl/qwindowsurface_gl.cpp +++ b/src/opengl/qwindowsurface_gl.cpp @@ -306,8 +306,13 @@ QGLWindowSurface::QGLWindowSurface(QWidget *window) d_ptr->pb = 0; d_ptr->fbo = 0; d_ptr->ctx = 0; +#if defined (QT_OPENGL_ES_2) + d_ptr->tried_fbo = true; + d_ptr->tried_pb = true; +#else d_ptr->tried_fbo = false; d_ptr->tried_pb = false; +#endif d_ptr->destructive_swap_buffers = qgetenv("QT_GL_SWAPBUFFER_PRESERVE").isNull(); d_ptr->glDevice.d = d_ptr; d_ptr->q_ptr = this; @@ -438,6 +443,7 @@ void QGLWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoint & QRect rect = br.translated(-offset - wOffset); const GLenum target = GL_TEXTURE_2D; + Q_UNUSED(target); if (context()) { context()->makeCurrent(); diff --git a/src/qt3support/widgets/q3toolbar.cpp b/src/qt3support/widgets/q3toolbar.cpp index 73b30ab..dbe3afd 100644 --- a/src/qt3support/widgets/q3toolbar.cpp +++ b/src/qt3support/widgets/q3toolbar.cpp @@ -422,7 +422,7 @@ void Q3ToolBar::addSeparator() } /*! - \reimp + \internal */ void Q3ToolBar::styleChange(QStyle &oldStyle) diff --git a/src/s60installs/qt.svg b/src/s60installs/qt.svg new file mode 100644 index 0000000..22cb204 --- /dev/null +++ b/src/s60installs/qt.svg @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" baseProfile="tiny" height="146.3063" version="1.0" viewBox="0 0 122 146" width="121.60006"> +<g transform="translate(-376.34283,-407.78046)"> +<g transform="matrix(0.697424,0,0,0.697424,376.34283,407.78046)"> +<path d="M 43.086,0.358597 C 40.9414,0.00358582 38.8399,-0.0824127 36.8086,0.0775909 L 36.8047,0.0735931 C 36.8047,0.0735931 22.9219,1.01859 22.2891,1.0696 C 9.6211,2.08159 0,12.5036 0,26.8896 L 0,196.554 L 14.1914,209.781 L 156.789,185.816 C 166.606,184.113 174.356,172.538 174.356,160.038 L 174.356,21.8786 L 43.086,0.358597 z" style="fill:#105000;fill-rule:evenodd;stroke:none"/> +<path d="M 174.356,160.042 C 174.356,172.538 166.606,184.113 156.789,185.816 L 14.1914,209.781 L 14.1914,25.9916 C 14.1914,9.2726 27.5313,-2.20741 43.086,0.358597 L 174.356,21.8786 L 174.356,160.042 z" style="fill:#3fe400;fill-rule:evenodd;stroke:none"/> +<path d="M 130.422,45.9136 L 141.938,47.1516 L 141.938,67.3626 L 154.899,68.2766 L 154.899,80.9566 L 141.938,80.3586 L 141.938,126.691 C 141.938,130.723 142.383,133.316 143.278,134.48 C 144.078,135.547 145.324,136.074 146.988,136.074 C 147.149,136.074 147.317,136.07 147.485,136.058 C 150.035,135.91 152.805,135.125 155.828,133.75 L 155.828,145.398 C 150.692,147.656 145.653,148.996 140.703,149.418 C 139.985,149.473 139.293,149.504 138.625,149.504 C 134.145,149.504 130.719,148.203 128.379,145.57 C 125.649,142.519 124.289,137.621 124.289,130.898 L 124.289,79.5426 L 118.063,79.2576 L 118.063,65.6716 L 125.649,66.2186 L 130.422,45.9136 z" style="fill:#ffffff;fill-rule:evenodd;stroke:none"/> +<path d="M 154.899,80.9566 L 141.938,80.3586 L 141.938,80.6366 L 148.883,80.9566 L 154.899,80.9566 z" style="fill:#105000;fill-rule:evenodd;stroke:none"/> +<path d="M 144.637,135.598 C 145.297,135.926 146.067,136.074 146.988,136.074 C 147.149,136.074 147.317,136.07 147.485,136.058 C 150.035,135.91 152.805,135.125 155.828,133.75 L 149.813,133.75 C 147.992,134.582 146.281,135.207 144.637,135.598 z" style="fill:#105000;fill-rule:evenodd;stroke:none"/> +<path d="M 128.379,145.57 C 125.649,142.519 124.289,137.621 124.289,130.898 L 124.289,79.5426 L 118.063,79.2576 L 118.063,65.6716 L 112.047,65.6716 L 112.047,68.7066 C 112.918,71.9796 113.602,75.5266 114.11,79.3506 L 118.274,79.5426 L 118.274,130.898 C 118.274,137.621 119.641,142.519 122.364,145.57 C 124.707,148.203 128.129,149.504 132.61,149.504 L 138.625,149.504 C 134.145,149.504 130.719,148.203 128.379,145.57 z M 130.422,45.9136 L 124.406,45.9136 L 119.738,65.7966 L 125.649,66.2186 L 130.422,45.9136 z" style="fill:#105000;fill-rule:evenodd;stroke:none"/> +<path d="M 91.1528,132.406 C 93.5038,126.355 94.6638,114.492 94.6638,96.7886 C 94.6638,80.8976 93.5158,69.9726 91.1798,63.9756 C 88.8438,57.9486 85.3478,54.6946 80.6598,54.2846 C 80.3008,54.2536 79.9458,54.2336 79.6018,54.2336 C 75.2618,54.2336 71.9218,56.7686 69.5938,61.8586 C 67.0738,67.4016 65.8008,78.8976 65.8008,96.2966 C 65.8008,113.113 67.0388,125.047 69.5348,132.051 C 71.8908,138.723 75.4138,142.027 80.0388,142.027 C 80.2458,142.027 80.4488,142.019 80.6598,142.008 C 85.2928,141.715 88.7808,138.512 91.1528,132.406 M 109.129,136.156 C 105.012,145.863 98.7348,152.214 90.1408,155.156 C 91.0078,159.605 92.3168,162.597 94.0628,164.175 C 95.4138,165.386 97.4958,165.996 100.285,165.996 C 101.09,165.996 101.953,165.941 102.875,165.839 L 102.875,178.964 L 96.9138,179.746 C 95.1558,179.976 93.4878,180.089 91.9098,180.089 C 86.6918,180.089 82.4648,178.824 79.2888,176.265 C 75.0818,172.886 71.9808,166.371 69.9918,156.73 C 60.8555,154.785 53.7344,148.976 48.8008,139.226 C 43.7969,129.324 41.25,114.836 41.25,95.8866 C 41.25,75.4566 44.7344,60.3786 51.5938,50.8156 C 57.3828,42.7456 65.4568,38.7766 75.6168,38.7766 C 77.2458,38.7766 78.9258,38.8786 80.6598,39.0816 C 92.6138,40.4566 101.278,46.0976 106.918,55.8706 C 112.453,65.4326 115.172,79.1366 115.172,97.1326 C 115.172,113.617 113.172,126.582 109.129,136.156 z" style="fill:#ffffff;fill-rule:evenodd;stroke:none"/> +<path d="M 100.281,165.996 C 101.09,165.996 101.953,165.941 102.871,165.839 L 98.0348,165.839 C 98.7108,165.945 99.4878,165.996 100.281,165.996 z" style="fill:#105000;fill-rule:evenodd;stroke:none"/> +<path d="M 84.8518,63.9756 C 87.1878,69.9726 88.3358,80.8976 88.3358,96.7886 C 88.3358,114.492 87.1758,126.355 84.8238,132.406 C 82.9298,137.285 80.2968,140.308 76.9608,141.476 C 77.9258,141.844 78.9528,142.027 80.0388,142.027 C 80.2458,142.027 80.4488,142.019 80.6598,142.008 C 85.2928,141.715 88.7808,138.512 91.1528,132.406 C 93.5038,126.355 94.6638,114.492 94.6638,96.7886 C 94.6638,80.8976 93.5158,69.9726 91.1798,63.9756 C 88.8438,57.9486 85.3478,54.6946 80.6598,54.2846 C 80.3008,54.2536 79.9458,54.2336 79.6018,54.2336 C 78.5118,54.2336 77.4848,54.3936 76.5198,54.7146 L 76.5198,54.7146 L 76.5158,54.7146 C 80.1168,55.8356 82.8948,58.9296 84.8518,63.9756 z M 82.5078,178.253 C 82.3948,178.203 82.2808,178.148 82.1718,178.093 C 82.1598,178.089 82.1488,178.081 82.1368,178.078 C 82.0348,178.027 81.9298,177.972 81.8278,177.921 C 81.8088,177.91 81.7888,177.902 81.7698,177.89 C 81.6798,177.839 81.5858,177.792 81.4918,177.742 C 81.4648,177.726 81.4378,177.706 81.4058,177.691 C 81.3238,177.648 81.2418,177.601 81.1638,177.554 C 81.1248,177.531 81.0858,177.507 81.0508,177.484 C 80.9808,177.445 80.9058,177.402 80.8358,177.359 C 80.7888,177.328 80.7418,177.3 80.6958,177.269 C 80.6368,177.23 80.5778,177.195 80.5198,177.156 C 80.4608,177.117 80.4058,177.081 80.3518,177.042 C 80.3008,177.011 80.2498,176.976 80.2028,176.945 C 80.1368,176.898 80.0708,176.851 80.0078,176.808 C 79.9688,176.781 79.9298,176.753 79.8948,176.726 C 79.8168,176.671 79.7418,176.613 79.6638,176.554 C 79.6408,176.538 79.6138,176.519 79.5858,176.499 C 79.4878,176.421 79.3868,176.343 79.2888,176.265 C 75.0818,172.886 71.9808,166.371 69.9918,156.73 C 60.8555,154.785 53.7344,148.976 48.8008,139.226 C 43.7969,129.324 41.25,114.836 41.25,95.8866 C 41.25,75.4566 44.7344,60.3786 51.5938,50.8156 C 57.3828,42.7456 65.4568,38.7766 75.6168,38.7766 C 75.6528,38.7766 69.2658,38.7766 69.2658,38.7766 L 69.2658,38.7766 C 59.1172,38.7846 51.0508,42.7536 45.2656,50.8156 C 38.4102,60.3786 34.9219,75.4566 34.9219,95.8866 C 34.9219,114.836 37.4688,129.324 42.4727,139.226 C 47.4063,148.976 54.5274,154.785 63.6638,156.73 C 65.6528,166.371 68.7538,172.886 72.9608,176.265 C 76.1368,178.824 80.3638,180.089 85.5858,180.089 C 85.6838,180.089 85.7848,180.089 85.8828,180.085 L 91.4218,180.085 C 88.0158,180.035 85.0388,179.425 82.5158,178.257 C 82.5158,178.257 82.5118,178.257 82.5078,178.253 z" style="fill:#105000;fill-rule:evenodd;stroke:none"/> +</g> +</g> +</svg> diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index eb4dee1..9dea6dc 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -734,12 +734,12 @@ QT_BEGIN_NAMESPACE \sa QTest::qSleep() */ -/*! \fn void QTest::qWaitForWindowShown(QWidget *window) +/*! \fn bool QTest::qWaitForWindowShown(QWidget *window) \since 4.6 Waits until the \a window is shown in the screen. This is mainly useful for asynchronous systems like X11, where a window will be mapped to screen some - time after being asked to show itself on the screen. + time after being asked to show itself on the screen. Returns true. Example: \snippet doc/src/snippets/code/src_qtestlib_qtestcase.cpp 24 diff --git a/tests/auto/network-settings.h b/tests/auto/network-settings.h index 059d7b8..cd48360 100644 --- a/tests/auto/network-settings.h +++ b/tests/auto/network-settings.h @@ -334,31 +334,39 @@ QByteArray QtNetworkSettings::imapExpectedReplySsl; class QtNetworkSettingsInitializerCode { public: QtNetworkSettingsInitializerCode() { -#ifdef Q_OS_SYMBIAN - // We have a non-trivial constructor in global static. +#ifdef Q_OS_SYMBIAN +#ifdef Q_CC_NOKIAX86 + // We have a non-trivial constructor in global static. // The QtNetworkSettings::serverName() uses native API which assumes // Cleanup-stack to exist. That's why we create it here and install // top level TRAP harness. CTrapCleanup *cleanupStack = q_check_ptr(CTrapCleanup::New()); - TRAPD(err, + TRAPD(err, QHostInfo testServerResult = QHostInfo::fromName(QtNetworkSettings::serverName()); if (testServerResult.error() != QHostInfo::NoError) { qWarning() << "Could not lookup" << QtNetworkSettings::serverName(); qWarning() << "Please configure the test environment!"; qWarning() << "See /etc/hosts or network-settings.h"; qFatal("Exiting"); - } - ) + } + ) delete cleanupStack; -#else +//#else + // In Symbian HW there is no sense to run this check since global statics are + // initialized before QTestLib initializes the output channel for QWarnigns. + // So if there is problem network setup, also all QtCore etc tests whcih have + // QtNetwork dependency will crash with panic "0 - Exiciting" +#endif + +#else QHostInfo testServerResult = QHostInfo::fromName(QtNetworkSettings::serverName()); if (testServerResult.error() != QHostInfo::NoError) { qWarning() << "Could not lookup" << QtNetworkSettings::serverName(); qWarning() << "Please configure the test environment!"; qWarning() << "See /etc/hosts or network-settings.h"; qFatal("Exiting"); - } -#endif + } +#endif } }; QtNetworkSettingsInitializerCode qtNetworkSettingsInitializer; diff --git a/tests/auto/networkselftest/.gitattributes b/tests/auto/networkselftest/.gitattributes deleted file mode 100644 index e04709a..0000000 --- a/tests/auto/networkselftest/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -rfc3252.txt -crlf diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp index 21f6269..9545198 100644 --- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp @@ -49,12 +49,14 @@ #include <QAbstractTextDocumentLayout> #include <QBitmap> #include <QCursor> +#include <QLabel> #include <QDial> #include <QGraphicsItem> #include <QGraphicsScene> #include <QGraphicsSceneEvent> #include <QGraphicsView> #include <QGraphicsWidget> +#include <QGraphicsProxyWidget> #include <QPainter> #include <QScrollBar> #include <QVBoxLayout> @@ -330,6 +332,7 @@ private slots: void itemClipsChildrenToShape(); void itemClipsChildrenToShape2(); void itemClipsChildrenToShape3(); + void itemClipsChildrenToShape4(); void itemClipsTextChildToShape(); void itemClippingDiscovery(); void ancestorFlags(); @@ -5170,6 +5173,44 @@ void tst_QGraphicsItem::itemClipsChildrenToShape3() QCOMPARE(scene.itemAt(175,175), (QGraphicsItem *)0); } +class MyProxyWidget : public QGraphicsProxyWidget +{ +public: + MyProxyWidget(QGraphicsItem *parent) : QGraphicsProxyWidget(parent) + { + painted = false; + } + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) + { + QGraphicsProxyWidget::paint(painter, option, widget); + painted = true; + } + bool painted; +}; + +void tst_QGraphicsItem::itemClipsChildrenToShape4() +{ + QGraphicsScene scene; + QGraphicsView view(&scene); + + QGraphicsWidget * outerWidget = new QGraphicsWidget(); + outerWidget->setFlag(QGraphicsItem::ItemClipsChildrenToShape, true); + MyProxyWidget * innerWidget = new MyProxyWidget(outerWidget); + QLabel * label = new QLabel(); + label->setText("Welcome back my friends to the show that never ends..."); + innerWidget->setWidget(label); + view.resize(300, 300); + scene.addItem(outerWidget); + outerWidget->resize( 200, 100 ); + scene.addEllipse( 100, 100, 100, 50 ); // <-- this is important to trigger the right codepath* + //now the label is shown + outerWidget->setFlag(QGraphicsItem::ItemClipsChildrenToShape, false ); + QApplication::setActiveWindow(&view); + view.show(); + QTRY_COMPARE(QApplication::activeWindow(), (QWidget *)&view); + QTRY_COMPARE(innerWidget->painted, true); +} void tst_QGraphicsItem::itemClipsTextChildToShape() { @@ -6306,6 +6347,7 @@ void tst_QGraphicsItem::itemStacksBehindParent() QGraphicsView view(&scene); view.show(); QTest::qWaitForWindowShown(&view); + QTRY_VERIFY(!paintedItems.isEmpty()); QTest::qWait(100); paintedItems.clear(); view.viewport()->update(); @@ -6315,7 +6357,7 @@ void tst_QGraphicsItem::itemStacksBehindParent() << grandChild121 << child12 << parent1 << grandChild211 << child21 << grandChild221 << child22 << parent2)); - QCOMPARE(paintedItems, QList<QGraphicsItem *>() + QTRY_COMPARE(paintedItems, QList<QGraphicsItem *>() << parent2 << child22 << grandChild221 << child21 << grandChild211 << parent1 << child12 << grandChild121 diff --git a/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp b/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp index f0ed008..76e7202 100644 --- a/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp +++ b/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp @@ -1296,7 +1296,7 @@ void tst_QGraphicsProxyWidget::paintEvent() w->show(); QTest::qWaitForWindowShown(w); QApplication::processEvents(); - + QTest::qWait(50); proxy.setWidget(w); scene.addItem(&proxy); diff --git a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp index a76e607..e55dc9aa 100644 --- a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp +++ b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp @@ -1657,7 +1657,7 @@ void tst_QGraphicsScene::hoverEvents_siblings() qApp->processEvents(); // this posts updates from the scene to the view qApp->processEvents(); // which trigger a repaint here - QVERIFY(items.at(i)->isHovered); + QTRY_VERIFY(items.at(i)->isHovered); if (j && i > 0) QVERIFY(!items.at(i - 1)->isHovered); if (!j && i < 14) diff --git a/tests/auto/qgridlayout/tst_qgridlayout.cpp b/tests/auto/qgridlayout/tst_qgridlayout.cpp index 3c7e1fb..7c320be 100644 --- a/tests/auto/qgridlayout/tst_qgridlayout.cpp +++ b/tests/auto/qgridlayout/tst_qgridlayout.cpp @@ -884,6 +884,7 @@ void tst_QGridLayout::minMaxSize() for (int pass = 0; pass < 2; ++pass) { m_toplevel->hide(); QApplication::processEvents(); + QTest::qWait(20); // Test if removeItem uninitializes data properly while (m_grid->count()) { QLayoutItem *item = m_grid->itemAt(0); diff --git a/tests/auto/qmdiarea/tst_qmdiarea.cpp b/tests/auto/qmdiarea/tst_qmdiarea.cpp index 725c31e..a5b3848 100644 --- a/tests/auto/qmdiarea/tst_qmdiarea.cpp +++ b/tests/auto/qmdiarea/tst_qmdiarea.cpp @@ -1776,9 +1776,9 @@ void tst_QMdiArea::tileSubWindows() #endif qApp->processEvents(); - QVERIFY(workspace.size() != QSize(150, 150)); - QVERIFY(!vBar->isVisible()); - QVERIFY(!hBar->isVisible()); + QTRY_VERIFY(workspace.size() != QSize(150, 150)); + QTRY_VERIFY(!vBar->isVisible()); + QTRY_VERIFY(!hBar->isVisible()); } void tst_QMdiArea::cascadeAndTileSubWindows() @@ -1853,6 +1853,7 @@ void tst_QMdiArea::resizeMaximizedChildWindows() #if defined(Q_WS_X11) qt_x11_wait_for_window_manager(&workspace); #endif + QTest::qWait(100); workspace.resize(startSize, startSize); workspace.setOption(QMdiArea::DontMaximizeSubWindowOnActivation); QSize workspaceSize = workspace.size(); @@ -1865,6 +1866,7 @@ void tst_QMdiArea::resizeMaximizedChildWindows() windows.append(window); qApp->processEvents(); window->showMaximized(); + QTest::qWait(100); QVERIFY(window->isMaximized()); QSize windowSize = window->size(); QVERIFY(windowSize.isValid()); @@ -1874,7 +1876,7 @@ void tst_QMdiArea::resizeMaximizedChildWindows() QTest::qWait(100); qApp->processEvents(); QTRY_COMPARE(workspace.size(), workspaceSize + QSize(increment, increment)); - QCOMPARE(window->size(), windowSize + QSize(increment, increment)); + QTRY_COMPARE(window->size(), windowSize + QSize(increment, increment)); workspaceSize = workspace.size(); } diff --git a/tests/auto/qnetworkreply/certs/aspiriniks.ca.crt b/tests/auto/qnetworkreply/certs/aspiriniks.ca.crt new file mode 100644 index 0000000..36436b6 --- /dev/null +++ b/tests/auto/qnetworkreply/certs/aspiriniks.ca.crt @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDnDCCAoQCCQDV3otC4hs2KTANBgkqhkiG9w0BAQUFADCBjzELMAkGA1UEBhMC +Tk8xDTALBgNVBAgTBE9zbG8xDTALBgNVBAcTBE9zbG8xDzANBgNVBAoTBlRUIEFT +QTEOMAwGA1UECxMFUVQgU1cxHDAaBgNVBAMTE2FzcGlyaW5pa3MudHJvbGwubm8x +IzAhBgkqhkiG9w0BCQEWFGFiYWJpY0B0cm9sbHRlY2guY29tMB4XDTA4MTEwMTA4 +NTcyOFoXDTA5MTEwMTA4NTcyOFowgY8xCzAJBgNVBAYTAk5PMQ0wCwYDVQQIEwRP +c2xvMQ0wCwYDVQQHEwRPc2xvMQ8wDQYDVQQKEwZUVCBBU0ExDjAMBgNVBAsTBVFU +IFNXMRwwGgYDVQQDExNhc3BpcmluaWtzLnRyb2xsLm5vMSMwIQYJKoZIhvcNAQkB +FhRhYmFiaWNAdHJvbGx0ZWNoLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAMV2bMD1DN3DMgbxU3DXw2i7EWGDXcWjTDtdHvqgIb+9nHqo3MJSrzJy +qgEPoOsXqswMla9wDPZAsWv5gVAmVSqpy2lfEgfY7LaSHiGD75seF7zIy+CxREHW +DofHXpJGGJpBCZEKQt2HfHu3+yAYNPucN78tWNZAcPbUg5tfxMZeepRimAZNIxBI +93SDrl/f9Ka7hvPSzUQsnp8hfdpHlFPFznKfD6yPrjxgz2mT9efavJ4DhtyIa4m+ +paiX515CidDz4A8CFxKZbYvuqq1ilibF/si2so9VhALC77ZcAJP1IMuT8T+WUCxq +skJqiSCncl0Hgr+ba8MDGF9UQYowgjMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +KcJuNUHvjB8ok3cnTmQEeF0LPPkgj28Tqb5TFB8xpVfRI+wvTYsHsmGdOKCgYJ3a +7VflIsr63ojG8/rXK8H/cx2o2f2Hr3liJdi1UnoLDDRjBqGGz7JNuMreYokPvIbm +eP01mVyK4PO2iYRwHUIAw5eeB1vMWKX2z95MupD+HRLtmGyaLALg8aQxj5N84Ewl +eU2PQfhv8A1wj7aL17kfEUxDerQ1kUzlThJMV1J8Dl0l4C9N8evQkelROJU00i46 +oJikA8BW6EpgbnGyNyyj5Loy4wLPKew9nTS8MCJ5xPMQc0urbY/VzuOeUK7WQof7 +xOFSsRAVyQv+yqgmcZMCtg== +-----END CERTIFICATE----- diff --git a/tests/auto/qnetworkreply/certs/fluke.cert b/tests/auto/qnetworkreply/certs/fluke.cert new file mode 100644 index 0000000..069fa6b --- /dev/null +++ b/tests/auto/qnetworkreply/certs/fluke.cert @@ -0,0 +1,75 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 0 (0x0) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=NO, ST=Oslo, L=Nydalen, O=Nokia Corporation and/or its subsidiary(-ies), OU=Development, CN=fluke.troll.no/emailAddress=ahanssen@trolltech.com + Validity + Not Before: Dec 4 01:10:32 2007 GMT + Not After : Apr 21 01:10:32 2035 GMT + Subject: C=NO, ST=Oslo, O=Nokia Corporation and/or its subsidiary(-ies), OU=Development, CN=fluke.troll.no + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public Key: (1024 bit) + Modulus (1024 bit): + 00:a7:c8:a0:4a:c4:19:05:1b:66:ba:32:e2:d2:f1: + 1c:6f:17:82:e4:39:2e:01:51:90:db:04:34:32:11: + 21:c2:0d:6f:59:d8:53:90:54:3f:83:8f:a9:d3:b3: + d5:ee:1a:9b:80:ae:c3:25:c9:5e:a5:af:4b:60:05: + aa:a0:d1:91:01:1f:ca:04:83:e3:58:1c:99:32:45: + 84:70:72:58:03:98:4a:63:8b:41:f5:08:49:d2:91: + 02:60:6b:e4:64:fe:dd:a0:aa:74:08:e9:34:4c:91: + 5f:12:3d:37:4d:54:2c:ad:7f:5b:98:60:36:02:8c: + 3b:f6:45:f3:27:6a:9b:94:9d + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + Netscape Comment: + OpenSSL Generated Certificate + X509v3 Subject Key Identifier: + 21:85:04:3D:23:01:66:E5:F7:9F:1A:84:24:8A:AF:0A:79:F4:E5:AC + X509v3 Authority Key Identifier: + DirName:/C=NO/ST=Oslo/L=Nydalen/O=Nokia Corporation and/or its subsidiary(-ies)/OU=Development/CN=fluke.troll.no/emailAddress=ahanssen@trolltech.com + serial:8E:A8:B4:E8:91:B7:54:2E + + Signature Algorithm: sha1WithRSAEncryption + 6d:57:5f:d1:05:43:f0:62:05:ec:2a:71:a5:dc:19:08:f2:c4: + a6:bd:bb:25:d9:ca:89:01:0e:e4:cf:1f:c1:8c:c8:24:18:35: + 53:59:7b:c0:43:b4:32:e6:98:b2:a6:ef:15:05:0b:48:5f:e1: + a0:0c:97:a9:a1:77:d8:35:18:30:bc:a9:8f:d3:b7:54:c7:f1: + a9:9e:5d:e6:19:bf:f6:3c:5b:2b:d8:e4:3e:62:18:88:8b:d3: + 24:e1:40:9b:0c:e6:29:16:62:ab:ea:05:24:70:36:aa:55:93: + ef:02:81:1b:23:10:a2:04:eb:56:95:75:fc:f8:94:b1:5d:42: + c5:3f:36:44:85:5d:3a:2e:90:46:8a:a2:b9:6f:87:ae:0c:15: + 40:19:31:90:fc:3b:25:bb:ae:f1:66:13:0d:85:90:d9:49:34: + 8f:f2:5d:f9:7a:db:4d:5d:27:f6:76:9d:35:8c:06:a6:4c:a3: + b1:b2:b6:6f:1d:d7:a3:00:fd:72:eb:9e:ea:44:a1:af:21:34: + 7d:c7:42:e2:49:91:19:8b:c0:ad:ba:82:80:a8:71:70:f4:35: + 31:91:63:84:20:95:e9:60:af:64:8b:cc:ff:3d:8a:76:74:3d: + c8:55:6d:e4:8e:c3:2b:1c:e8:42:18:ae:9f:e6:6b:9c:34:06: + ec:6a:f2:c3 +-----BEGIN CERTIFICATE----- +MIIEEzCCAvugAwIBAgIBADANBgkqhkiG9w0BAQUFADCBnDELMAkGA1UEBhMCTk8x +DTALBgNVBAgTBE9zbG8xEDAOBgNVBAcTB055ZGFsZW4xFjAUBgNVBAoTDVRyb2xs +dGVjaCBBU0ExFDASBgNVBAsTC0RldmVsb3BtZW50MRcwFQYDVQQDEw5mbHVrZS50 +cm9sbC5ubzElMCMGCSqGSIb3DQEJARYWYWhhbnNzZW5AdHJvbGx0ZWNoLmNvbTAe +Fw0wNzEyMDQwMTEwMzJaFw0zNTA0MjEwMTEwMzJaMGMxCzAJBgNVBAYTAk5PMQ0w +CwYDVQQIEwRPc2xvMRYwFAYDVQQKEw1Ucm9sbHRlY2ggQVNBMRQwEgYDVQQLEwtE +ZXZlbG9wbWVudDEXMBUGA1UEAxMOZmx1a2UudHJvbGwubm8wgZ8wDQYJKoZIhvcN +AQEBBQADgY0AMIGJAoGBAKfIoErEGQUbZroy4tLxHG8XguQ5LgFRkNsENDIRIcIN +b1nYU5BUP4OPqdOz1e4am4CuwyXJXqWvS2AFqqDRkQEfygSD41gcmTJFhHByWAOY +SmOLQfUISdKRAmBr5GT+3aCqdAjpNEyRXxI9N01ULK1/W5hgNgKMO/ZF8ydqm5Sd +AgMBAAGjggEaMIIBFjAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NM +IEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUIYUEPSMBZuX3nxqEJIqv +Cnn05awwgbsGA1UdIwSBszCBsKGBoqSBnzCBnDELMAkGA1UEBhMCTk8xDTALBgNV +BAgTBE9zbG8xEDAOBgNVBAcTB055ZGFsZW4xFjAUBgNVBAoTDVRyb2xsdGVjaCBB +U0ExFDASBgNVBAsTC0RldmVsb3BtZW50MRcwFQYDVQQDEw5mbHVrZS50cm9sbC5u +bzElMCMGCSqGSIb3DQEJARYWYWhhbnNzZW5AdHJvbGx0ZWNoLmNvbYIJAI6otOiR +t1QuMA0GCSqGSIb3DQEBBQUAA4IBAQBtV1/RBUPwYgXsKnGl3BkI8sSmvbsl2cqJ +AQ7kzx/BjMgkGDVTWXvAQ7Qy5piypu8VBQtIX+GgDJepoXfYNRgwvKmP07dUx/Gp +nl3mGb/2PFsr2OQ+YhiIi9Mk4UCbDOYpFmKr6gUkcDaqVZPvAoEbIxCiBOtWlXX8 ++JSxXULFPzZEhV06LpBGiqK5b4euDBVAGTGQ/Dslu67xZhMNhZDZSTSP8l35ettN +XSf2dp01jAamTKOxsrZvHdejAP1y657qRKGvITR9x0LiSZEZi8CtuoKAqHFw9DUx +kWOEIJXpYK9ki8z/PYp2dD3IVW3kjsMrHOhCGK6f5mucNAbsavLD +-----END CERTIFICATE----- diff --git a/tests/auto/qnetworkreply/certs/fluke.key b/tests/auto/qnetworkreply/certs/fluke.key new file mode 100644 index 0000000..9d1664d --- /dev/null +++ b/tests/auto/qnetworkreply/certs/fluke.key @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCnyKBKxBkFG2a6MuLS8RxvF4LkOS4BUZDbBDQyESHCDW9Z2FOQ +VD+Dj6nTs9XuGpuArsMlyV6lr0tgBaqg0ZEBH8oEg+NYHJkyRYRwclgDmEpji0H1 +CEnSkQJga+Rk/t2gqnQI6TRMkV8SPTdNVCytf1uYYDYCjDv2RfMnapuUnQIDAQAB +AoGANFzLkanTeSGNFM0uttBipFT9F4a00dqHz6JnO7zXAT26I5r8sU1pqQBb6uLz +/+Qz5Zwk8RUAQcsMRgJetuPQUb0JZjF6Duv24hNazqXBCu7AZzUenjafwmKC/8ri +KpX3fTwqzfzi//FKGgbXQ80yykSSliDL3kn/drATxsLCgQECQQDXhEFWLJ0vVZ1s +1Ekf+3NITE+DR16X+LQ4W6vyEHAjTbaNWtcTKdAWLA2l6N4WAAPYSi6awm+zMxx4 +VomVTsjdAkEAx0z+e7natLeFcrrq8pbU+wa6SAP1VfhQWKitxL1e7u/QO90NCpxE +oQYKzMkmmpOOFjQwEMAy1dvFMbm4LHlewQJAC/ksDBaUcQHHqjktCtrUb8rVjAyW +A8lscckeB2fEYyG5J6dJVaY4ClNOOs5yMDS2Afk1F6H/xKvtQ/5CzInA/QJATDub +K+BPU8jO9q+gpuIi3VIZdupssVGmCgObVCHLakG4uO04y9IyPhV9lA9tALtoIf4c +VIvv5fWGXBrZ48kZAQJBAJmVCdzQxd9LZI5vxijUCj5EI4e+x5DRqVUvyP8KCZrC +AiNyoDP85T+hBZaSXK3aYGpVwelyj3bvo1GrTNwNWLw= +-----END RSA PRIVATE KEY----- diff --git a/tests/auto/qnetworkreply/certs/qt-test-server-cacert.pem b/tests/auto/qnetworkreply/certs/qt-test-server-cacert.pem new file mode 100644 index 0000000..25bd404 --- /dev/null +++ b/tests/auto/qnetworkreply/certs/qt-test-server-cacert.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICrTCCAhYCCQCdDn5rci6VDjANBgkqhkiG9w0BAQQFADCBmjEOMAwGA1UEChMF +Tm9raWExFDASBgNVBAsTC1F0IFNvZnR3YXJlMSIwIAYJKoZIhvcNAQkBFhNub2Jv +ZHlAbm9kb21haW4ub3JnMQ0wCwYDVQQHEwRPc2xvMQ0wCwYDVQQIEwRPc2xvMQsw +CQYDVQQGEwJOTzEjMCEGA1UEAxMacXQtdGVzdC1zZXJ2ZXIucXQtdGVzdC1uZXQw +HhcNMDkwNzEwMDc0MTIzWhcNMTkwNzA4MDc0MTIzWjCBmjEOMAwGA1UEChMFTm9r +aWExFDASBgNVBAsTC1F0IFNvZnR3YXJlMSIwIAYJKoZIhvcNAQkBFhNub2JvZHlA +bm9kb21haW4ub3JnMQ0wCwYDVQQHEwRPc2xvMQ0wCwYDVQQIEwRPc2xvMQswCQYD +VQQGEwJOTzEjMCEGA1UEAxMacXQtdGVzdC1zZXJ2ZXIucXQtdGVzdC1uZXQwgZ8w +DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM2q22/WNMmn8cC+5EEYGeICySLmp9W6 +Ay6eKHr0Xxp3X3epETuPfvAuxp7rOtkS18EMUegkUj8jw0IMEcbyHKFC/rTCaYOt +93CxGBXMIChiMPAsFeYzGa/D6xzAkfcRaJRQ+Ek3CDLXPnXfo7xpABXezYcPXAJr +gsgBfWrwHdxzAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAy7YOLCZABQy2Ygkchq1I ++TUpvMn+gLwAyW8TNErM1V4lNY2+K78RawzKx3SqM97ymCy4TD45EA3A2gmi32NI +xSKBNjFyzngUqsXBdcSasALiowlZCiJrGwlGX5qCkBlxXvJeUEbuJLPYVl5FBjXZ +6o00K4cSPCqtqUez7WSmDZU= +-----END CERTIFICATE----- diff --git a/tests/auto/qnetworkreply/test/test.pro b/tests/auto/qnetworkreply/test/test.pro index e0df503..7bf3852 100644 --- a/tests/auto/qnetworkreply/test/test.pro +++ b/tests/auto/qnetworkreply/test/test.pro @@ -26,6 +26,10 @@ symbian:{ addFiles.path = . DEPLOYMENT += addFiles + certFiles.sources = ../certs + certFiles.path = . + DEPLOYMENT += certFiles + # Symbian toolchain does not support correct include semantics INCPATH+=..\..\..\..\include\QtNetwork\private # bigfile test case requires more heap diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp index 5441b09..578ab29 100644 --- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp @@ -69,9 +69,6 @@ #include "private/qnetworkaccessmanager_p.h" #ifdef Q_OS_SYMBIAN -// In Symbian OS test data is located in applications private dir -// Current path (C:\private\<UID>) contains only ascii chars -//#define SRCDIR QDir::currentPath() #define SRCDIR "." #endif @@ -3902,7 +3899,13 @@ void tst_QNetworkReply::httpConnectionCount() break; } +#ifdef Q_OS_SYMBIAN + // see in qhttpnetworkconnection.cpp + // hardcoded defaultChannelCount = 3 + QCOMPARE(pendingConnectionCount, 3); +#else QCOMPARE(pendingConnectionCount, 6); +#endif } #ifndef QT_NO_OPENSSL @@ -3914,7 +3917,7 @@ void tst_QNetworkReply::ignoreSslErrorsList_data() QList<QSslError> expectedSslErrors; // apparently, because of some weird behaviour of SRCDIR, the file name below needs to start with a slash - QList<QSslCertificate> certs = QSslCertificate::fromPath(QLatin1String(SRCDIR "/../qsslsocket/certs/qt-test-server-cacert.pem")); + QList<QSslCertificate> certs = QSslCertificate::fromPath(QLatin1String(SRCDIR "/certs/qt-test-server-cacert.pem")); QSslError rightError(QSslError::SelfSignedCertificate, certs.at(0)); QSslError wrongError(QSslError::SelfSignedCertificate); diff --git a/tests/auto/qscriptengine/tst_qscriptengine.cpp b/tests/auto/qscriptengine/tst_qscriptengine.cpp index f2c7157..25ee00f 100644 --- a/tests/auto/qscriptengine/tst_qscriptengine.cpp +++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp @@ -48,6 +48,7 @@ #include <qgraphicsitem.h> #include <qstandarditemmodel.h> #include <QtCore/qnumeric.h> +#include <stdlib.h> Q_DECLARE_METATYPE(QList<int>) Q_DECLARE_METATYPE(QObjectList) @@ -60,6 +61,22 @@ Q_DECLARE_METATYPE(QObjectList) # define TOSTRING(x) STRINGIFY(x) # define SRCDIR "C:/Private/" TOSTRING(SYMBIAN_SRCDIR_UID) #endif + +// The JavaScriptCore GC marks the C stack. To try to ensure that there is +// no JSObject* left in stack memory by the compiler, we call this function +// to zap some bytes of memory before calling collectGarbage(). +static void zapSomeStack() +{ + char buf[4096]; + memset(buf, 0, sizeof(buf)); +} + +static void collectGarbage_helper(QScriptEngine &eng) +{ + zapSomeStack(); + eng.collectGarbage(); +} + class tst_QScriptEngine : public QObject { Q_OBJECT @@ -825,7 +842,7 @@ void tst_QScriptEngine::newQMetaObject() // verify that AutoOwnership is in effect instance = QScriptValue(); - eng.collectGarbage(); + collectGarbage_helper(eng); QVERIFY(!qpointer1); QVERIFY(qpointer2); @@ -835,7 +852,7 @@ void tst_QScriptEngine::newQMetaObject() QVERIFY(instance3.toQObject() == 0); // was child of instance QVERIFY(instance2.toQObject() != 0); instance2 = QScriptValue(); - eng.collectGarbage(); + collectGarbage_helper(eng); QVERIFY(instance2.toQObject() == 0); // with custom constructor @@ -922,14 +939,14 @@ void tst_QScriptEngine::getSetGlobalObject() QCOMPARE(eng.globalObject().toString(), QString::fromLatin1("[object Object]")); glob = QScriptValue(); // kill reference to old global object - eng.collectGarbage(); + collectGarbage_helper(eng); obj = eng.newObject(); eng.setGlobalObject(obj); QVERIFY(eng.globalObject().strictlyEquals(obj)); QVERIFY(eng.currentContext()->thisObject().strictlyEquals(obj)); QVERIFY(eng.currentContext()->activationObject().strictlyEquals(obj)); - eng.collectGarbage(); + collectGarbage_helper(eng); QVERIFY(eng.globalObject().strictlyEquals(obj)); QVERIFY(eng.currentContext()->thisObject().strictlyEquals(obj)); QVERIFY(eng.currentContext()->activationObject().strictlyEquals(obj)); @@ -2341,11 +2358,8 @@ void tst_QScriptEngine::collectGarbage() a = eng.newObject(); QPointer<QObject> ptr = new QObject(); QVERIFY(ptr != 0); - { - QScriptValue v = eng.newQObject(ptr, QScriptEngine::ScriptOwnership); - } - eng.collectGarbage(); - QEXPECT_FAIL("","collectGarbage not working", Continue); + (void)eng.newQObject(ptr, QScriptEngine::ScriptOwnership); + collectGarbage_helper(eng); QVERIFY(ptr == 0); } diff --git a/tests/auto/qtableview/tst_qtableview.cpp b/tests/auto/qtableview/tst_qtableview.cpp index 03f4966..09e1e87 100644 --- a/tests/auto/qtableview/tst_qtableview.cpp +++ b/tests/auto/qtableview/tst_qtableview.cpp @@ -3201,9 +3201,17 @@ void tst_QTableView::mouseWheel_data() QTest::newRow("scroll down per item") << int(QAbstractItemView::ScrollPerItem) << -120 << 10 + qApp->wheelScrollLines() << 10 + qApp->wheelScrollLines(); +#ifdef Q_WS_MAC + // On Mac, we always scroll one pixel per 120 delta (rather than multiplying with + // singleStep) since wheel events are accelerated by the OS. + QTest::newRow("scroll down per pixel") + << int(QAbstractItemView::ScrollPerPixel) << -120 + << 10 + qApp->wheelScrollLines() << 10 + qApp->wheelScrollLines(); +#else QTest::newRow("scroll down per pixel") << int(QAbstractItemView::ScrollPerPixel) << -120 << 10 + qApp->wheelScrollLines() * 89 << 10 + qApp->wheelScrollLines() * 28; +#endif } void tst_QTableView::mouseWheel() @@ -3230,7 +3238,6 @@ void tst_QTableView::mouseWheel() view.horizontalScrollBar()->setValue(10); view.verticalScrollBar()->setValue(10); - qDebug() << "delta" << delta << view.viewport()->geometry(); QPoint pos = view.viewport()->geometry().center(); QWheelEvent verticalEvent(pos, delta, 0, 0, Qt::Vertical); QWheelEvent horizontalEvent(pos, delta, 0, 0, Qt::Horizontal); diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp index a9033ba..b0a26c2 100644 --- a/tests/auto/qwidget/tst_qwidget.cpp +++ b/tests/auto/qwidget/tst_qwidget.cpp @@ -5498,10 +5498,11 @@ void tst_QWidget::multipleToplevelFocusCheck() QTest::qWait(100); - w1.activateWindow(); QApplication::setActiveWindow(&w1); + w1.activateWindow(); QApplication::processEvents(); QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&w1)); + QTest::qWait(50); QTest::mouseDClick(&w1, Qt::LeftButton); QTRY_COMPARE(QApplication::focusWidget(), static_cast<QWidget *>(w1.edit)); @@ -7470,10 +7471,11 @@ void tst_QWidget::updateWhileMinimized() QTest::qWaitForWindowShown(&widget); QApplication::processEvents(); QTRY_VERIFY(widget.numPaintEvents > 0); + QTest::qWait(50); // Minimize window. widget.showMinimized(); - QTest::qWait(30); + QTest::qWait(70); widget.reset(); @@ -8174,7 +8176,7 @@ public: static bool firstTime = true; if (firstTime) - QTimer::singleShot(100, this, SLOT(resizeMe())); + QTimer::singleShot(70, this, SLOT(resizeMe())); firstTime = false; } @@ -8709,6 +8711,7 @@ void tst_QWidget::setClearAndResizeMask() // Disable the size grip on the Mac; otherwise it'll be included when grabbing the window. resizeParent.setFixedSize(resizeParent.size()); resizeChild.show(); + QTest::qWait(30); resizeChild.paintedRegion = QRegion(); QTimer::singleShot(100, &resizeChild, SLOT(shrinkMask())); @@ -8892,6 +8895,8 @@ void tst_QWidget::syntheticEnterLeave() int numLeaveEvents; }; + QCursor::setPos(QPoint(0,0)); + MyWidget window; window.setWindowFlags(Qt::WindowStaysOnTopHint); window.resize(200, 200); @@ -9009,6 +9014,8 @@ void tst_QWidget::taskQTBUG_4055_sendSyntheticEnterLeave() int numEnterEvents, numMouseMoveEvents; }; + QCursor::setPos(QPoint(0,0)); + SELParent parent; parent.resize(200, 200); SELChild child(&parent); @@ -9194,6 +9201,7 @@ void tst_QWidget::focusWidget_task254563() void tst_QWidget::destroyBackingStore() { +#ifdef QT_BUILD_INTERNAL UpdateWidget w; w.reset(); w.show(); @@ -9218,6 +9226,7 @@ void tst_QWidget::destroyBackingStore() w.update(); QApplication::processEvents(); QCOMPARE(w.numPaintEvents, 2); +#endif } void tst_QWidget::rectOutsideCoordinatesLimit_task144779() diff --git a/tools/qdoc3/test/qt-inc.qdocconf b/tools/qdoc3/test/qt-inc.qdocconf index 9621fcb..34fb77f 100644 --- a/tools/qdoc3/test/qt-inc.qdocconf +++ b/tools/qdoc3/test/qt-inc.qdocconf @@ -116,6 +116,7 @@ Cpp.ignoredirectives = Q_DECLARE_HANDLE \ Q_ENUMS \ Q_FLAGS \ Q_INTERFACES \ + Q_OS_SYMBIAN \ __attribute__ HTML.stylesheets = $QTDIR/util/qdoc3/test/classic.css diff --git a/tools/qvfb/qvfb.cpp b/tools/qvfb/qvfb.cpp index 6119419..59e8dae 100644 --- a/tools/qvfb/qvfb.cpp +++ b/tools/qvfb/qvfb.cpp @@ -135,7 +135,7 @@ static const char *red_off_led_xpm[] = { static bool copyButtonConfiguration(const QString &prefix, int displayId) { - const QString destDir = QT_VFB_DATADIR(displayId); + const QString destDir = QT_VFB_DATADIR(displayId).append("/"); const QFileInfo src(prefix + QLatin1String("defaultbuttons.conf")); const QFileInfo dst(destDir + QLatin1String("defaultbuttons.conf")); unlink(dst.absoluteFilePath().toLatin1().constData()); diff --git a/tools/qvfb/qvfbshmem.cpp b/tools/qvfb/qvfbshmem.cpp index 8c4cdb9..5a2da0d 100644 --- a/tools/qvfb/qvfbshmem.cpp +++ b/tools/qvfb/qvfbshmem.cpp @@ -128,7 +128,9 @@ QShMemViewProtocol::QShMemViewProtocol(int displayid, const QSize &s, if ( logname ) username = logname; - QString oldPipe = "/tmp/qtembedded-" + username + "/" + QString(QTE_PIPE).arg(displayid); + qws_dataDir(displayid); + + QString oldPipe = "/tmp/qtembedded-" + username + "/" + QString("QtEmbedded-%1").arg(displayid); int oldPipeSemkey = ftok(oldPipe.toLatin1().constData(), 'd'); if (oldPipeSemkey != -1) { int oldPipeLockId = semget(oldPipeSemkey, 0, 0); @@ -149,7 +151,7 @@ QShMemViewProtocol::QShMemViewProtocol(int displayid, const QSize &s, } } - displayPipe = qws_dataDir(displayid).append(QTE_PIPE); + displayPipe = QTE_PIPE_QVFB(displayid); kh = new QVFbKeyPipeProtocol(displayid); /* should really depend on receiving qt version, but how can diff --git a/translations/assistant_adp_de.ts b/translations/assistant_adp_de.ts index ed8f1d5..79c9c76 100644 --- a/translations/assistant_adp_de.ts +++ b/translations/assistant_adp_de.ts @@ -2,17 +2,6 @@ <!DOCTYPE TS> <TS version="2.0" language="de"> <context> - <name>Assistant</name> - <message> - <source>Welcome to the <b>Qt Assistant</b>. Qt Assistant will give you quicker access to help and tips while using applications like Qt Designer.</source> - <translation type="obsolete">Wilkommen bei <b>Qt Assistant</b>. Qt Assistant ermƶglicht einen schnellen Zugriff der Onlinehilfe wƤhrend dem Arbeiten mit Programmen wie dem Qt Designer.</translation> - </message> - <message> - <source>Qt Assistant</source> - <translation type="obsolete">Qt Assistant</translation> - </message> -</context> -<context> <name>AssistantServer</name> <message> <location filename="../tools/assistant/compat/main.cpp" line="+225"/> @@ -26,81 +15,6 @@ </message> </context> <context> - <name>FindDialog</name> - <message> - <source>Find Text</source> - <translation type="obsolete">Textsuche</translation> - </message> - <message> - <source>&Find:</source> - <translation type="obsolete">&Suchen:</translation> - </message> - <message> - <source>&Find</source> - <translation type="obsolete">&Suchen</translation> - </message> - <message> - <source>Close</source> - <translation type="obsolete">SchlieĆen</translation> - </message> - <message> - <source>&Direction</source> - <translation type="obsolete">Rich&tung</translation> - </message> - <message> - <source>Forwar&d</source> - <translation type="obsolete">&VorwƤrts</translation> - </message> - <message> - <source>&Backward</source> - <translation type="obsolete">&RĆ¼ckwƤrts</translation> - </message> - <message> - <source>&Options</source> - <translation type="obsolete">&Optionen</translation> - </message> - <message> - <source>&Whole words only</source> - <translation type="obsolete">&Ganze Wƶrter</translation> - </message> - <message> - <source>&Case sensitive</source> - <translation type="obsolete">GroĆ- und &Kleinschreibung beachten</translation> - </message> - <message> - <source>Qt Assistant - Find Text</source> - <translation type="obsolete">Qt Assistant - Textsuche</translation> - </message> - <message> - <source>Enter the text you are looking for.</source> - <translation type="obsolete">Geben Sie den Suchtext ein.</translation> - </message> - <message> - <source>Search reached end of the document</source> - <translation type="obsolete">Die Suche hat das Ende des Dokuments erreicht</translation> - </message> - <message> - <source>Search reached start of the document</source> - <translation type="obsolete">Die Suche hat den Anfang des Dokuments erreicht</translation> - </message> - <message> - <source>Text not found</source> - <translation type="obsolete">Text nicht gefunden</translation> - </message> - <message> - <source>Fo&rward</source> - <translation type="obsolete">Vo&rwƤrts</translation> - </message> - <message> - <source>F&ind:</source> - <translation type="obsolete">Su&chen:</translation> - </message> - <message> - <source>C&lose</source> - <translation type="obsolete">Sch&lieĆen</translation> - </message> -</context> -<context> <name>FontPanel</name> <message> <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/> @@ -159,35 +73,11 @@ <context> <name>HelpDialog</name> <message> - <source>Index</source> - <translation type="obsolete">Index</translation> - </message> - <message> - <source>Bookmarks</source> - <translation type="obsolete">Lesezeichen</translation> - </message> - <message> <location filename="../tools/assistant/compat/helpdialog.ui"/> <source>Con&tents</source> <translation>Inhal&t</translation> </message> <message> - <source>Qt Reference Documentation</source> - <translation type="obsolete">Qt Referenzdokumentation</translation> - </message> - <message> - <source>Qt Designer Manual</source> - <translation type="obsolete">Qt Designer Handbuch</translation> - </message> - <message> - <source>Qt Linguist Manual</source> - <translation type="obsolete">Qt Linguist Handbuch</translation> - </message> - <message> - <source>Qt Assistant Manual</source> - <translation type="obsolete">Qt Assistant Handbuch</translation> - </message> - <message> <location filename="../tools/assistant/compat/helpdialog.cpp" line="+376"/> <location line="+16"/> <location line="+661"/> @@ -195,23 +85,11 @@ <translation>Qt Assistant</translation> </message> <message> - <source>Open Link in Current Window</source> - <translation type="obsolete">Ćffne Link im aktuellen Fenster</translation> - </message> - <message> <location line="-771"/> <source>Open Link in New Window</source> <translation>Ćffne Link in neuem Fenster</translation> </message> <message> - <source>Contents</source> - <translation type="obsolete">Inhalt</translation> - </message> - <message> - <source>Search</source> - <translation type="obsolete">Suche</translation> - </message> - <message> <location line="+76"/> <location line="+82"/> <source>Prepare...</source> @@ -415,11 +293,6 @@ Assistent ist nicht einsatzbereit!</translation> </message> <message> <location/> - <source>Enter searchword(s).</source> - <translation>Suchebegriff(e).</translation> - </message> - <message> - <location/> <source><b>Enter search word(s).</b><p>Enter here the word(s) you are looking for. The words may contain wildcards (*). For a sequence of words quote them.</p></source> <translation><b>Geben Sie Suchbegriffe ein.</b><p>Geben Sie hier die gesuchten Begriffe ein. Die Begriffe kƶnnen Wildcards (*) enthalten. Eine Phrase muĆ in AnfĆ¼hrungszeichen stehen.</p></translation> </message> @@ -435,11 +308,6 @@ Assistent ist nicht einsatzbereit!</translation> </message> <message> <location/> - <source>Display the help page.</source> - <translation>Zeigt die Hilfe an.</translation> - </message> - <message> - <location/> <source>Display the help page for the full text search.</source> <translation>Zeigt die Hilfeseite fĆ¼r die Volltextsuche an.</translation> </message> @@ -450,11 +318,6 @@ Assistent ist nicht einsatzbereit!</translation> </message> <message> <location/> - <source>Start searching.</source> - <translation>Starte Suche.</translation> - </message> - <message> - <location/> <source>Pressing this button starts the search.</source> <translation>Startet die Suche.</translation> </message> @@ -463,220 +326,35 @@ Assistent ist nicht einsatzbereit!</translation> <source>Preparing...</source> <translation>Initialisiere...</translation> </message> -</context> -<context> - <name>HelpDialogBase</name> - <message> - <source>Help</source> - <translation type="obsolete">Hilfe</translation> - </message> - <message> - <source><b>Help</b><p>Choose the topic you need help for from the contents list, or search the index for keywords.</p></source> - <translation type="obsolete"><b>Hilfe</b><p>WƤhlen Sie ein Thema vom Inhaltsverzeichnis oder suchen Sie im Index nach SchlĆ¼sselwƶrtern.</p></translation> - </message> - <message> - <source>Displays help topics organized by category, index or bookmarks</source> - <translation type="obsolete">Zeigt die Hilfethemen unterteilt in Kategorien, Indizes oder Lesezeichen an</translation> - </message> - <message> - <source>Con&tents</source> - <translation type="obsolete">Inhal&t</translation> - </message> - <message> - <source>Column 1</source> - <translation type="obsolete">Spalte 1</translation> - </message> - <message> - <source><b>Help topics organized by category.</b><p>Double-click an item to see which topics are in that category. To view a topic, select it, and then click <b>Display</b>.</p></source> - <translation type="obsolete"><b>Die Hilfethemen sind nach Kategorien organisiert.</b><p>Ein Doppelklick auf einen Eintrag zeigt die Themen dieser Kategorie an. Um ein Thema anzuzeigen, wƤhlen Sie es aus und drĆ¼cken Sie <b>Anzeigen</b>.</p></translation> - </message> - <message> - <source>&Index</source> - <translation type="obsolete">&Index</translation> - </message> <message> - <source>&Look For:</source> - <translation type="obsolete">Suchen &nach:</translation> - </message> - <message> - <source>Enter keyword</source> - <translation type="obsolete">Geben Sie ein SchlĆ¼sselwort ein</translation> - </message> - <message> - <source><b>Enter a keyword.</b><p>The list will select an item that matches the entered string best.</p></source> - <translation type="obsolete"><b>Geben Sie ein SchlĆ¼sselwort ein.</b><p>Es wird dann der Eintrag aus der Liste ausgewƤhlt, der am besten mit dem eingegebenen Begriff Ć¼bereinstimmt.</p></translation> - </message> - <message> - <source><b>List of available help topics.</b><p>Double-click on an item to open up the help page for this topic. You will have to choose the right page if more than one are found.</p></source> - <translation type="obsolete"><b>Liste aller verfĆ¼gbaren Hilfethemen.</b><p>Ein Doppelklick auf einen Eintrag ƶffnet die dazugehƶrige Hilfeseite. Wenn es mehrere Seiten zu einem Eintrag gibt, wƤhlen Sie die gewĆ¼nschte aus.</p></translation> - </message> - <message> - <source>&Bookmarks</source> - <translation type="obsolete">L&esezeichen</translation> - </message> - <message> - <source>Displays the list of bookmarks.</source> - <translation type="obsolete">Zeigt alle Lesezeichen an.</translation> - </message> - <message> - <source>&New Bookmark</source> - <translation type="obsolete">&Neues Lesezeichen</translation> - </message> - <message> - <source>Add new bookmark</source> - <translation type="obsolete">FĆ¼ge neues Lesezeichen hinzu</translation> - </message> - <message> - <source>Add the current displayed page as new bookmark to the list.</source> - <translation type="obsolete">FĆ¼ge die aktuelle Seite als Lesezeichen hinzu.</translation> - </message> - <message> - <source>D&elete Bookmark</source> - <translation type="obsolete">&Lƶsche Lesezeichen</translation> - </message> - <message> - <source>Delete bookmark</source> - <translation type="obsolete">Lƶsche Lesezeichen</translation> - </message> - <message> - <source>Delete the selected bookmark from the list.</source> - <translation type="obsolete">Lƶsche markiertes Lesezeichen.</translation> - </message> - <message> - <source>Preparing...</source> - <translation type="obsolete">Initialisiere...</translation> - </message> - <message> - <source><b>Help</b><p>Choose the topic you want help on from the contents list, or search the index for keywords.</p></source> - <translation type="obsolete"><b>Hilfe</b><p>WƤhlen Sie ein Hilfethema aus dem Inhalt oder suchen Sie im Index nach SchlĆ¼sselwƶrtern.</p></translation> - </message> - <message> - <source>Displays help topics organized by category, index or bookmarks. Another tab inherits the full text search.</source> - <translation type="obsolete">Zeigt Hilfethemen geordnet nach Kategorie, Index oder Lesezeichen an. Ein weiterer Abschnitt enthƤlt die Volltextsuche.</translation> - </message> - <message> - <source><b>Help topics organized by category.</b><p>Double-click an item to see the topics in that category. To view a topic, just double-click it.</p></source> - <translation type="obsolete"><b>Hilfethemen geordnet nach Kategorie.</b><p>Doppelklicken Sie einen Eintrag, um die Themen dieser Kategorie zu sehen. Doppelklicken Sie ein Thema, um es angezeigt zu bekommen.</p></translation> - </message> - <message> - <source><b>List of available help topics.</b><p>Double-click on an item to open its help page. If more than one is found, you must specify which page you want.</p></source> - <translation type="obsolete"><b>Liste aller verfĆ¼gbaren Hilfethemen.</b><p>Doppelklicken Sie auf einen Eintrag, um die Hilfe zu ƶffnen. Wenn mehr als eine Seite gefunden wurde, wƤhlen Sie die gewĆ¼nschte Seite aus.</p></translation> - </message> - <message> - <source>&New</source> - <translation type="obsolete">&Neu</translation> - </message> - <message> - <source>Add the currently displayed page as a new bookmark.</source> - <translation type="obsolete">FĆ¼ge aktuelle Seite zu den Lesezeichen hinzu.</translation> - </message> - <message> - <source>&Delete</source> - <translation type="obsolete">&Lƶschen</translation> - </message> - <message> - <source>Delete the selected bookmark.</source> - <translation type="obsolete">Lƶsche markiertes Lesezeichen.</translation> - </message> - <message> - <source>&Search</source> - <translation type="obsolete">&Suche</translation> - </message> - <message> - <source>Searching f&or:</source> - <translation type="obsolete">Suche &nach:</translation> - </message> - <message> - <source>Enter searchword(s).</source> - <translation type="obsolete">Suchebegriff(e).</translation> - </message> - <message> - <source><b>Enter search word(s).</b><p>Enter here the word(s) you are looking for. The words may contain wildcards (*). For a sequence of words quote them.</p></source> - <translation type="obsolete"><b>Geben Sie Suchbegriffe ein.</b><p>Geben Sie hier die gesuchten Begriffe ein. Die Begriffe kƶnnen Wildcards (*) enthalten. Eine Phrase muĆ in AnfĆ¼hrungszeichen stehen.</p></translation> - </message> - <message> - <source><b>Found documents</b><p>This list contains all found documents from the last search. The documents are ordered, i.e. the first document has the most matches.</p></source> - <translation type="obsolete"><b>Gefundene Dokumente</b><p>Diese Liste beinhaltet alle gefundenen Dokumente der letzten Suche. Die Dokumente sind nach der HƤufigkeit der Treffer geordnet.</p></translation> - </message> - <message> - <source>Found &Documents:</source> - <translation type="obsolete">Gefundene &Dokumente:</translation> - </message> - <message> - <source>He&lp</source> - <translation type="obsolete">Hi&lfe</translation> - </message> - <message> - <source>Display the help page.</source> - <translation type="obsolete">Zeigt die Hilfe an.</translation> - </message> - <message> - <source>Display the help page for the full text search.</source> - <translation type="obsolete">Zeigt die Hilfeseite fĆ¼r die Volltextsuche an.</translation> + <location/> + <source>Enter searchword(s)</source> + <translation>Geben Sie Suchbegriffe ein</translation> </message> <message> - <source>Start searching.</source> - <translation type="obsolete">Starte Suche.</translation> + <location/> + <source>Display the help page</source> + <translation>Hilfeseite anzeigen</translation> </message> <message> - <source>Pressing this button starts the search.</source> - <translation type="obsolete">Startet die Suche.</translation> + <location/> + <source>Start searching</source> + <translation>Suche beginnen</translation> </message> </context> <context> <name>HelpWindow</name> <message> - <source>Qt Assistant by Trolltech - %1</source> - <translation type="obsolete">Qt Assistant von Trolltech - %1</translation> - </message> - <message> <location filename="../tools/assistant/compat/helpwindow.cpp" line="+97"/> <source>Help</source> <translation>Hilfe</translation> </message> <message> - <source>Can't load and display non-local file -%1</source> - <translation type="obsolete">Kann gewĆ¼nschte Datei nicht laden: -%1</translation> - </message> - <message> <location line="+93"/> <source>Open Link in New Window Shift+LMB</source> <translation>Ćffne Link in neuem Fenster</translation> </message> <message> - <source>Currently no Web browser is selected. -Please use the settings dialog to specify one! -</source> - <translation type="obsolete">Es ist kein Webbrowser ausgewƤhlt. -Ćffnen Sie bitten den "Einstellungen" Dialog um einen Webbrowser auszuwƤhlen. -</translation> - </message> - <message> - <source>Qt Assistant by Trolltech - %1%2</source> - <translation type="obsolete">Qt Assistant von Trolltech - %1%2</translation> - </message> - <message> - <source>No PDF Viewer has been specified -Please use the settings dialog to specify one! -</source> - <translation type="obsolete">Es wurde kein PDF Betrachter angegeben. -Bitte diesen im Menue Einstellungen festlegen! -</translation> - </message> - <message> - <source>Qt Assistant is unable to start the PDF Viewer - -%1 - -Please make sure that the executable exists and is located at -the specified location.</source> - <translation type="obsolete">Der Qt Assistent konnte den PDF betrachter -%1 nicht laden. -Bitte Ć¼berprĆ¼fen Sie, das dieser an der angegeben Stelle existiert.</translation> - </message> - <message> <location line="-2"/> <source>Open Link in New Tab</source> <translation>Link in einem neuen Tab ƶffnen</translation> @@ -725,99 +403,51 @@ Bitte Ć¼berprĆ¼fen Sie, das dieser an der angegeben Stelle existiert.</translati <context> <name>MainWindow</name> <message> - <source>Qt Assistant by Trolltech</source> - <translation type="obsolete">Qt Assistant von Trolltech</translation> - </message> - <message> <location filename="../tools/assistant/compat/mainwindow.ui"/> <source>Toolbar</source> <translation>Werkzeugleiste</translation> </message> <message> - <source>Print</source> - <translation type="obsolete">Drucken</translation> - </message> - <message> <location/> <source>&Print...</source> <translation>&Drucken...</translation> </message> <message> - <source>Exit</source> - <translation type="obsolete">Beenden</translation> - </message> - <message> <location/> <source>E&xit</source> <translation>&Beenden</translation> </message> <message> - <source>Copy</source> - <translation type="obsolete">Kopieren</translation> - </message> - <message> <location/> <source>&Copy</source> <translation>&Kopieren</translation> </message> <message> - <source>Find in Text</source> - <translation type="obsolete">Textsuche</translation> - </message> - <message> <location/> <source>&Find in Text...</source> <translation>Text&suche...</translation> </message> <message> - <source>Home</source> - <translation type="obsolete">Startseite</translation> - </message> - <message> <location/> <source>&Home</source> <translation>St&artseite</translation> </message> <message> - <source>Previous</source> - <translation type="obsolete">Vorherige</translation> - </message> - <message> <location/> <source>&Previous</source> <translation>&Vorherige</translation> </message> <message> - <source>Next</source> - <translation type="obsolete">NƤchste</translation> - </message> - <message> <location/> <source>&Next</source> <translation>&NƤchste</translation> </message> <message> - <source>About</source> - <translation type="obsolete">Ćber</translation> - </message> - <message> <location/> <source>About Qt</source> <translation>Ćber Qt</translation> </message> <message> - <source>Qt Class Reference</source> - <translation type="obsolete">Qt Klassenreferenz</translation> - </message> - <message> - <source>Qt Designer Manual</source> - <translation type="obsolete">Qt Designer Handbuch</translation> - </message> - <message> - <source>Zoom in</source> - <translation type="obsolete">VergrƶĆern</translation> - </message> - <message> <location/> <source>Zoom &in</source> <translation>VergrƶĆern</translation> @@ -828,32 +458,12 @@ Bitte Ć¼berprĆ¼fen Sie, das dieser an der angegeben Stelle existiert.</translati <translation>Ver&kleinern</translation> </message> <message> - <source>Qt Linguist Manual</source> - <translation type="obsolete">Qt Linguist Handbuch</translation> - </message> - <message> - <source>&Settings</source> - <translation type="obsolete">&Einstellungen</translation> - </message> - <message> - <source>&Settings...</source> - <translation type="obsolete">&Einstellungen...</translation> - </message> - <message> <location/> <source>New Window</source> <translation>Neues Fenster...</translation> </message> <message> - <source>Close</source> - <translation type="obsolete">SchlieĆen</translation> - </message> - <message> - <source>Vie&ws</source> - <translation type="obsolete">A&nsicht</translation> - </message> - <message> - <location filename="../tools/assistant/compat/mainwindow.cpp" line="+188"/> + <location filename="../tools/assistant/compat/mainwindow.cpp" line="+198"/> <source>Ctrl+T</source> <translation>Strg+T </translation> @@ -869,15 +479,7 @@ Bitte Ć¼berprĆ¼fen Sie, das dieser an der angegeben Stelle existiert.</translati <translation>Strg+E</translation> </message> <message> - <source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see <a href="http://qt.nokia.com/company/model">qt.nokia.com/company/model</a> for an overview of Qt licensing.</source> - <translation type="obsolete">Sie benƶtigen eine kommerzielle Qt Lizenz fĆ¼r die Entwicklung von proprietƤren (geschlossenen) Anwendungen. Besuchen Sie <a href="http://qt.nokia.com/company/about/businessmodel">http://qt.nokia.com/company/about/businessmodel</a> um sich einen Ćberblick Ć¼ber die Qt Lizenzvergabe zu verschaffen.</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 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="+139"/> + <location line="+129"/> <location line="+1"/> <source>Qt Assistant</source> <translation>Qt Assistant</translation> @@ -888,10 +490,6 @@ Bitte Ć¼berprĆ¼fen Sie, das dieser an der angegeben Stelle existiert.</translati <translation>&FĆ¼ge Lesezeichen hinzu</translation> </message> <message> - <source>Qt Reference Documentation</source> - <translation type="obsolete">Qt Referenzdokumention</translation> - </message> - <message> <location/> <source>&File</source> <translation>&Datei</translation> @@ -919,7 +517,7 @@ Bitte Ć¼berprĆ¼fen Sie, das dieser an der angegeben Stelle existiert.</translati <message> <location/> <source>Qt Assistant by Nokia</source> - <translation type="unfinished"></translation> + <translation>Qt Assistant von Nokia</translation> </message> <message> <location/> @@ -1022,14 +620,6 @@ Bitte Ć¼berprĆ¼fen Sie, das dieser an der angegeben Stelle existiert.</translati <translation>Strg+-</translation> </message> <message> - <source>Display the Guide to the Qt Translation Tools.</source> - <translation type="obsolete">Zeigt die Anleitung zu den Qt Ćbersetzungswerkzeugen an.</translation> - </message> - <message> - <source>Open the settings dialog.</source> - <translation type="obsolete">Ćffnet den "Einstellungen" Dialog.</translation> - </message> - <message> <location/> <source>Open a new window.</source> <translation>Ćffnet ein neues Fenster.</translation> @@ -1080,7 +670,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="-139"/> + <location filename="../tools/assistant/compat/mainwindow.cpp" line="-129"/> <source>Ctrl+S</source> <translation>Strg+S</translation> </message> @@ -1120,14 +710,6 @@ Bitte Ć¼berprĆ¼fen Sie, das dieser an der angegeben Stelle existiert.</translati <translation>Ćber Qt Assistent</translation> </message> <message> - <source>Settings</source> - <translation type="obsolete">Einstellungen</translation> - </message> - <message> - <source>Add Bookmark</source> - <translation type="obsolete">Lesezeichen einfĆ¼gen</translation> - </message> - <message> <location/> <source>Add Tab</source> <translation>Tab einfĆ¼gen</translation> @@ -1168,15 +750,11 @@ Bitte Ć¼berprĆ¼fen Sie, das dieser an der angegeben Stelle existiert.</translati <translation></translation> </message> <message> - <location filename="../tools/assistant/compat/mainwindow.cpp" line="+191"/> + <location filename="../tools/assistant/compat/mainwindow.cpp" line="+181"/> <source>Failed to open about application contents in file: '%1'</source> <translation>Fehler beim Ćffnen des Inhalts in Datei: '%1'</translation> </message> <message> - <source>Error...</source> - <translation type="obsolete">Fehler ...</translation> - </message> - <message> <location line="-246"/> <source>Sidebar</source> <translation>Sidebar</translation> @@ -1197,7 +775,7 @@ Bitte Ć¼berprĆ¼fen Sie, das dieser an der angegeben Stelle existiert.</translati <translation>Strg+M</translation> </message> <message> - <location line="+60"/> + <location line="+70"/> <source>SHIFT+CTRL+=</source> <translation>Umschalt+Strg+=</translation> </message> @@ -1227,19 +805,7 @@ Bitte Ć¼berprĆ¼fen Sie, das dieser an der angegeben Stelle existiert.</translati <translation>Zeigt die Hauptseite eines Dokumentensets an.</translation> </message> <message> - <source>Open Source Edition</source> - <translation type="obsolete">Open Source Edition</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 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> - <source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source> - <translation type="obsolete">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="+270"/> + <location line="+262"/> <source>...</source> <translation>...</translation> </message> @@ -1283,176 +849,12 @@ Bitte Ć¼berprĆ¼fen Sie, das dieser an der angegeben Stelle existiert.</translati <context> <name>QObject</name> <message> - <source>Qt Assistant by Trolltech</source> - <translation type="obsolete">Qt Assistant von Trolltech</translation> - </message> - <message> <location filename="../tools/assistant/compat/config.cpp" line="+350"/> <source>Qt Assistant by Nokia</source> <translation>Qt Assistant von Nokia</translation> </message> </context> <context> - <name>SettingsDialog</name> - <message> - <source>all</source> - <translation type="obsolete">Alle</translation> - </message> - <message> - <source>Qt Assistant - Add Documentation</source> - <translation type="obsolete">Qt Assistant - HinzufĆ¼gen von Dokumentation</translation> - </message> - <message> - <source>Qt Assistant</source> - <translation type="obsolete">Qt Assistant</translation> - </message> - <message> - <source>Parse Error</source> - <translation type="obsolete">Syntaxfehler</translation> - </message> - <message> - <source>This item can not be deleted!</source> - <translation type="obsolete">Dieser Eintrag kann nicht gelƶscht werden!</translation> - </message> - <message> - <source>This branch is not empty! -Firstly, all contents have to be removed.</source> - <translation type="obsolete">Dieser Zweig ist nicht leer! -Es mĆ¼ssen zuerst alle Inhalte gelƶscht werden.</translation> - </message> - <message> - <source>Qt Assistant - Set Web Browser</source> - <translation type="obsolete">Qt Assistant - Setze Webbrowser</translation> - </message> - <message> - <source>Qt Assistant - Set PDF Browser</source> - <translation type="obsolete">Qt Assistent - Setze PDF Betrachter</translation> - </message> - <message> - <source>Qt Assistant - Set Homepage</source> - <translation type="obsolete">Qt Assistent - Setzte Startseite</translation> - </message> -</context> -<context> - <name>SettingsDialogBase</name> - <message> - <source>Settings</source> - <translation type="obsolete">Einstellungen</translation> - </message> - <message> - <source>Font:</source> - <translation type="obsolete">Schriften:</translation> - </message> - <message> - <source>Link color:</source> - <translation type="obsolete">Linkfarbe:</translation> - </message> - <message> - <source>Underline links</source> - <translation type="obsolete">Unterstreiche Links</translation> - </message> - <message> - <source>OK</source> - <translation type="obsolete">OK</translation> - </message> - <message> - <source>Cancel</source> - <translation type="obsolete">Abbrechen</translation> - </message> - <message> - <source>Fixed font:</source> - <translation type="obsolete">Nicht-proportionale Schrift:</translation> - </message> - <message> - <source>Qt Assistant - Settings</source> - <translation type="obsolete">Qt Assistant - Einstellungen</translation> - </message> - <message> - <source>General</source> - <translation type="obsolete">Allgemein</translation> - </message> - <message> - <source>Fix&ed font:</source> - <translation type="obsolete">&Nicht-proportionale Schrift:</translation> - </message> - <message> - <source>&Font:</source> - <translation type="obsolete">&Schrift:</translation> - </message> - <message> - <source>&Underline links</source> - <translation type="obsolete">&Unterstreiche Links</translation> - </message> - <message> - <source>Web</source> - <translation type="obsolete">Web</translation> - </message> - <message> - <source>&Web Browser Application:</source> - <translation type="obsolete">&Webbrowser Anwendung:</translation> - </message> - <message> - <source>...</source> - <translation type="obsolete">...</translation> - </message> - <message> - <source>Documentation</source> - <translation type="obsolete">Dokumentation</translation> - </message> - <message> - <source>&Delete</source> - <translation type="obsolete">&Lƶsche</translation> - </message> - <message> - <source>&Add...</source> - <translation type="obsolete">&HinzufĆ¼gen...</translation> - </message> - <message> - <source>Categories</source> - <translation type="obsolete">Kategorien</translation> - </message> - <message> - <source>Category &Name:</source> - <translation type="obsolete">Kategorie&name:</translation> - </message> - <message> - <source>&Add</source> - <translation type="obsolete">&HinzufĆ¼gen</translation> - </message> - <message> - <source>&OK</source> - <translation type="obsolete">&OK</translation> - </message> - <message> - <source>&Cancel</source> - <translation type="obsolete">&Abbrechen</translation> - </message> - <message> - <source>&General</source> - <translation type="obsolete">&Haupt</translation> - </message> - <message> - <source>&Web</source> - <translation type="obsolete">&Web</translation> - </message> - <message> - <source>Web &Browser Application:</source> - <translation type="obsolete">Web&browser:</translation> - </message> - <message> - <source>&Home page</source> - <translation type="obsolete">&Startseite</translation> - </message> - <message> - <source>&PDF</source> - <translation type="obsolete">&PDF</translation> - </message> - <message> - <source>PDF &Application</source> - <translation type="obsolete">PDF &Betrachter</translation> - </message> -</context> -<context> <name>TabbedBrowser</name> <message> <location filename="../tools/assistant/compat/tabbedbrowser.ui"/> @@ -1568,39 +970,4 @@ Es mĆ¼ssen zuerst alle Inhalte gelƶscht werden.</translation> <translation>SchlieĆt den Dialog.</translation> </message> </context> -<context> - <name>TopicChooserBase</name> - <message> - <source>Choose Topic</source> - <translation type="obsolete">Thema wƤhlen</translation> - </message> - <message> - <source>Select a topic from the list and click the <b>Display</b>-button to open the online help.</source> - <translation type="obsolete">WƤhlen Sie ein Thema aus der Liste aus und klicken Sie <b>Anzeigen</b> um die Hilfe zu ƶffnen.</translation> - </message> - <message> - <source>&Topics</source> - <translation type="obsolete">&Themen</translation> - </message> - <message> - <source>Displays a list of available help topics for the keyword.</source> - <translation type="obsolete">Zeigt eine Liste der verfĆ¼gbaren Hilfethemen fĆ¼r diesen Begriff an.</translation> - </message> - <message> - <source>&Display</source> - <translation type="obsolete">&Anzeigen</translation> - </message> - <message> - <source>Open the topic selected in the list.</source> - <translation type="obsolete">Ćffne das gewƤhlte Thema aus der Liste.</translation> - </message> - <message> - <source>&Close</source> - <translation type="obsolete">&SchlieĆen</translation> - </message> - <message> - <source>Close the Dialog.</source> - <translation type="obsolete">SchlieĆt den Dialog.</translation> - </message> -</context> </TS> diff --git a/translations/assistant_de.ts b/translations/assistant_de.ts index ce32062..027c566 100644 --- a/translations/assistant_de.ts +++ b/translations/assistant_de.ts @@ -465,12 +465,12 @@ <message> <location line="-372"/> <location line="+215"/> - <location line="+502"/> + <location line="+512"/> <source>Qt Assistant</source> <translation>Qt Assistant</translation> </message> <message> - <location line="-534"/> + <location line="-544"/> <location line="+5"/> <source>Unfiltered</source> <translation>Ohne Filter</translation> @@ -616,7 +616,7 @@ <translation>Ćber ...</translation> </message> <message> - <location line="+3"/> + <location line="+16"/> <source>Navigation Toolbar</source> <translation>Navigationsleiste</translation> </message> @@ -651,7 +651,7 @@ <translation>Der zugehƶrige Inhaltseintrag konnte nicht gefunden werden.</translation> </message> <message> - <location line="+74"/> + <location line="+71"/> <source>About %1</source> <translation>Ćber %1</translation> </message> @@ -661,12 +661,12 @@ <translation>Suchindex wird aufgebaut</translation> </message> <message> - <location line="-628"/> + <location line="-638"/> <source>Looking for Qt Documentation...</source> <translation>Suche nach Qt-Dokumentation ...</translation> </message> <message> - <location line="+228"/> + <location line="+241"/> <source>&Window</source> <translation>&Fenster</translation> </message> @@ -686,7 +686,7 @@ <translation>Zoom</translation> </message> <message> - <location line="-146"/> + <location line="-159"/> <source>&File</source> <translation>&Datei</translation> </message> @@ -708,7 +708,7 @@ <message> <location line="+2"/> <source>ALT+Home</source> - <translation type="unfinished"></translation> + <translation>ALT+Home</translation> </message> <message> <location line="+29"/> @@ -1010,7 +1010,7 @@ Grund: <context> <name>RemoteControl</name> <message> - <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+157"/> + <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+163"/> <source>Debugging Remote Control</source> <translation>Debugging Remote Control</translation> </message> diff --git a/translations/designer_de.ts b/translations/designer_de.ts index 405e424..638a8b4 100644 --- a/translations/designer_de.ts +++ b/translations/designer_de.ts @@ -401,9 +401,7 @@ <translation>Seite</translation> </message> <message> - <location line="-121"/> - <location line="+309"/> - <location line="+672"/> + <location line="+860"/> <source>page</source> <translation>Seite</translation> </message> @@ -416,12 +414,7 @@ <translation>Seite einfĆ¼gen</translation> </message> <message> - <location line="-856"/> - <source>tab</source> - <translation>Seite</translation> - </message> - <message> - <location line="+209"/> + <location line="-647"/> <source>Change Tab order</source> <translation>Seite Ƥndern</translation> </message> @@ -524,7 +517,7 @@ </message> <message> <location line="+89"/> - <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+905"/> + <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+907"/> <source>Move action</source> <translation>Aktion verschieben</translation> </message> @@ -825,7 +818,7 @@ <translation>Bitte wandeln Sie sie mit dem Befehl <b>uic3&nbsp;-convert</b> zum Format von Qt 4.</translation> </message> <message> - <location filename="../tools/designer/src/lib/shared/qsimpleresource.cpp" line="+337"/> + <location filename="../tools/designer/src/lib/shared/qsimpleresource.cpp" line="+339"/> <source>Custom Widgets</source> <translation>Benutzerdefinierte Widgets</translation> </message> @@ -1192,7 +1185,7 @@ <context> <name>IconSelector</name> <message> - <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+353"/> + <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+352"/> <source>All Pixmaps (</source> <translation>Alle Pixmap-Dateien (</translation> </message> @@ -1450,12 +1443,12 @@ This indicates an inconsistency in the ui-file.</source> <translation>Fehler beim Setzen der Tabulatorreihenfolge: Es konnte kein Widget mit dem Namen '%1' gefunden werden.</translation> </message> <message> - <location line="+749"/> + <location line="+908"/> <source>Invalid QButtonGroup reference '%1' referenced by '%2'.</source> <translation>UngĆ¼ltige Referenz der Buttongruppe '%1', referenziert von '%2'.</translation> </message> <message> - <location line="+518"/> + <location line="+511"/> <source>This version of the uitools library is linked without script support.</source> <translation>Dies Version der uitools-Bibliothek unterstĆ¼tzt keine Skripte.</translation> </message> @@ -1951,17 +1944,17 @@ Mƶchten Sie es noch einmal versuchen?</translation> <context> <name>QDesignerFormBuilder</name> <message> - <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+88"/> + <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+89"/> <source>Script errors occurred:</source> <translation>Es sind Skriptfehler aufgetreten:</translation> </message> <message> - <location line="+304"/> + <location line="+307"/> <source>The preview failed to build.</source> <translation>Es konnte keine Vorschau erzeugt werden.</translation> </message> <message> - <location line="+63"/> + <location line="+65"/> <source>Designer</source> <translation>Designer</translation> </message> @@ -2092,7 +2085,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="+747"/> + <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+754"/> <source>Dynamic Properties</source> <translation>Dynamische Eigenschaften</translation> </message> @@ -2469,7 +2462,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="+1477"/> + <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1469"/> <source>True</source> <translation>Wahr</translation> </message> @@ -2482,7 +2475,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="+1601"/> + <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1581"/> <source>Clear Char</source> <translation>Zeichen lƶschen</translation> </message> @@ -2490,7 +2483,7 @@ Container-Seiten sollten ausschlieĆlich im XML der domXML()-Methode spezifizier <context> <name>QtColorEditWidget</name> <message> - <location line="+611"/> + <location line="+605"/> <source>...</source> <translation>...</translation> </message> @@ -2498,7 +2491,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="+4777"/> + <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4743"/> <source>Red</source> <translation>Rot</translation> </message> @@ -2619,7 +2612,7 @@ Container-Seiten sollten ausschlieĆlich im XML der domXML()-Methode spezifizier <context> <name>QtFontEditWidget</name> <message> - <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+201"/> + <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+198"/> <source>...</source> <translation>...</translation> </message> @@ -2632,7 +2625,7 @@ Container-Seiten sollten ausschlieĆlich im XML der domXML()-Methode spezifizier <context> <name>QtFontPropertyManager</name> <message> - <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-353"/> + <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-351"/> <source>Family</source> <translation>Familie</translation> </message> @@ -2730,7 +2723,7 @@ Container-Seiten sollten ausschlieĆlich im XML der domXML()-Methode spezifizier <translation>Winkel</translation> </message> <message> - <location line="+289"/> + <location line="+288"/> <source>Linear</source> <translation>Linear</translation> </message> @@ -2983,7 +2976,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="+949"/> + <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+947"/> <source>New Stop</source> <translation>Neuer Bezugspunkt</translation> </message> @@ -3084,7 +3077,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="-3561"/> + <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-3541"/> <source>%1, %2</source> <translation>%1, %2</translation> </message> @@ -3102,7 +3095,7 @@ Container-Seiten sollten ausschlieĆlich im XML der domXML()-Methode spezifizier <context> <name>QtPointFPropertyManager</name> <message> - <location line="+415"/> + <location line="+411"/> <source>(%1, %2)</source> <translation>(%1, %2)</translation> </message> @@ -3120,7 +3113,7 @@ Container-Seiten sollten ausschlieĆlich im XML der domXML()-Methode spezifizier <context> <name>QtPointPropertyManager</name> <message> - <location line="-322"/> + <location line="-320"/> <source>(%1, %2)</source> <translation>(%1, %2)</translation> </message> @@ -3151,7 +3144,7 @@ Container-Seiten sollten ausschlieĆlich im XML der domXML()-Methode spezifizier <context> <name>QtRectFPropertyManager</name> <message> - <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1716"/> + <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1706"/> <source>[(%1, %2), %3 x %4]</source> <translation>[(%1, %2), %3 x %4]</translation> </message> @@ -3179,7 +3172,7 @@ Container-Seiten sollten ausschlieĆlich im XML der domXML()-Methode spezifizier <context> <name>QtRectPropertyManager</name> <message> - <location line="-614"/> + <location line="-612"/> <source>[(%1, %2), %3 x %4]</source> <translation>[(%1, %2), %3 x %4]</translation> </message> @@ -3207,7 +3200,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="+1962"/> + <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="+1961"/> <source>Edit Resources</source> <translation>Ressourcen bearbeiten</translation> </message> @@ -3217,13 +3210,13 @@ Container-Seiten sollten ausschlieĆlich im XML der domXML()-Methode spezifizier <translation>Neu...</translation> </message> <message> - <location line="-566"/> - <location line="+567"/> + <location line="-565"/> + <location line="+566"/> <source>New Resource File</source> <translation>Neue Ressourcendatei</translation> </message> <message> - <location line="-414"/> + <location line="-413"/> <source><p><b>Warning:</b> The file</p><p>%1</p><p>is outside of the current resource file's parent directory.</p></source> <translation><p><b>Hinweis:</b><p>Die gewƤhlte Datei: </p><p>%1</p><p>befindet sich auĆerhalb des Verzeichnisses der Ressourcendatei:</p></translation> </message> @@ -3251,7 +3244,7 @@ zu: %4</translation> </message> <message> - <location line="+84"/> + <location line="+83"/> <source>Open...</source> <translation>Ćffnen...</translation> </message> @@ -3315,7 +3308,7 @@ zu: <translation>Sprache / Alias</translation> </message> <message> - <location line="+119"/> + <location line="+117"/> <source><html><p><b>Warning:</b> There have been problems while reloading the resources:</p><pre>%1</pre></html></source> <translation><html><p><b>Warnung:</b> Beim Neuladen der Ressourcen traten Fehler auf:</p><pre>%1</pre></html></translation> </message> @@ -3370,7 +3363,7 @@ zu: <translation>Datei oder Ressource lƶschen</translation> </message> <message> - <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="-2094"/> + <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="-2091"/> <source>%1 already exists. Do you want to replace it?</source> <translation>Die Datei %1 existiert bereits. @@ -3485,7 +3478,7 @@ Dies kann zum Beispiel eine Sprachkennung wie "_de" sein.</translation <translation>Die Datei %1konnte nicht geschrieben werden: %2</translation> </message> <message> - <location line="+72"/> + <location line="+71"/> <source>Open Resource File</source> <translation>Ressourcendatei ƶffnen</translation> </message> @@ -3518,7 +3511,7 @@ Dies kann zum Beispiel eine Sprachkennung wie "_de" sein.</translation <context> <name>QtResourceViewDialog</name> <message> - <location line="+252"/> + <location line="+250"/> <source>Select Resource</source> <translation>Ressource auswƤhlen</translation> </message> @@ -3526,7 +3519,7 @@ Dies kann zum Beispiel eine Sprachkennung wie "_de" sein.</translation <context> <name>QtSizeFPropertyManager</name> <message> - <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-537"/> + <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-535"/> <source>%1 x %2</source> <translation>%1 x %2</translation> </message> @@ -3544,7 +3537,7 @@ Dies kann zum Beispiel eine Sprachkennung wie "_de" sein.</translation <context> <name>QtSizePolicyPropertyManager</name> <message> - <location line="+1719"/> + <location line="+1709"/> <location line="+1"/> <source><Invalid></source> <translation><UngĆ¼ltig></translation> @@ -3578,7 +3571,7 @@ Dies kann zum Beispiel eine Sprachkennung wie "_de" sein.</translation <context> <name>QtSizePropertyManager</name> <message> - <location line="-2298"/> + <location line="-2286"/> <source>%1 x %2</source> <translation>%1 x %2</translation> </message> @@ -3596,7 +3589,7 @@ Dies kann zum Beispiel eine Sprachkennung wie "_de" sein.</translation <context> <name>QtToolBarDialog</name> <message> - <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1789"/> + <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1784"/> <source>< S E P A R A T O R ></source> <translation>< T R E N N E R ></translation> </message> @@ -3661,7 +3654,7 @@ Dies kann zum Beispiel eine Sprachkennung wie "_de" sein.</translation <translation>Aktionen</translation> </message> <message> - <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="-545"/> + <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="-544"/> <source>Custom Toolbar</source> <translation>Benutzerdefinierte Werkzeugleiste</translation> </message> @@ -3927,7 +3920,7 @@ Mƶchten Sie sie Ć¼berschreiben?</translation> </message> <message> <location line="+2"/> - <source>%1<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 PARTICULAR PURPOSE.<br/> </source> + <source>%1<br/>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</source> <translation type="unfinished"></translation> </message> </context> @@ -4063,7 +4056,7 @@ Mƶchten Sie sie Ć¼berschreiben?</translation> <context> <name>qdesigner_internal::BrushManagerProxy</name> <message> - <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+221"/> + <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+219"/> <source>The element '%1' is missing the required attribute '%2'.</source> <translation>Bei dem Element fehlt das erforderliche Attribut '%2'.</translation> </message> @@ -5120,7 +5113,7 @@ Mƶchten Sie sie Ć¼berschreiben?</translation> <translation>Fehler beim Lesen der Pixmap</translation> </message> <message> - <location line="+55"/> + <location line="+54"/> <source>...</source> <translation>...</translation> </message> @@ -5185,7 +5178,7 @@ Mƶchten Sie sie Ć¼berschreiben?</translation> <translation>Alle rĆ¼cksetzen</translation> </message> <message> - <location line="-86"/> + <location line="-85"/> <source>Choose a Pixmap</source> <translation>Pixmap-Datei auswƤhlen</translation> </message> @@ -5265,7 +5258,7 @@ Mƶchten Sie sie Ć¼berschreiben?</translation> <context> <name>qdesigner_internal::LanguageResourceDialog</name> <message> - <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-259"/> + <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-258"/> <source>Choose Resource</source> <translation>Ressource auswƤhlen</translation> </message> @@ -5557,17 +5550,20 @@ Please select another name.</source> <context> <name>qdesigner_internal::ObjectInspector</name> <message> - <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+316"/> - <source>Change Current Page</source> - <translation>Seite wechseln</translation> - </message> - <message> - <location line="+438"/> + <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+754"/> <source>&Find in Text...</source> <translation>&Suchen...</translation> </message> </context> <context> + <name>qdesigner_internal::ObjectInspector::ObjectInspectorPrivate</name> + <message> + <location line="-438"/> + <source>Change Current Page</source> + <translation>Seite wechseln</translation> + </message> +</context> +<context> <name>qdesigner_internal::OrderDialog</name> <message> <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+109"/> @@ -5779,6 +5775,9 @@ Please select another name.</source> <source>Browse...</source> <translation>Durchsuchen...</translation> </message> +</context> +<context> + <name>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate</name> <message> <location line="+118"/> <source>Load Custom Device Skin</source> @@ -6419,17 +6418,17 @@ Klasse: %2</translation> <context> <name>qdesigner_internal::ScriptDialog</name> <message> - <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+64"/> + <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+66"/> <source>Edit script</source> <translation>Skript bearbeiten</translation> </message> <message> - <location line="+55"/> + <location line="+56"/> <source>Syntax error</source> <translation>Syntaxfehler</translation> </message> <message> - <location line="-50"/> + <location line="-51"/> <source><html>Enter a Qt Script snippet to be executed while loading the form.<br>The widget and its children are accessible via the variables <i>widget</i> and <i>childWidgets</i>, respectively.</source> <translation><html>Geben Sie ein Qt-Skript zur AusfĆ¼hrung wƤhrend des Formularaufbaus ein.<br>Auf das Widget und seine untergeordneten Widgets kann durch die Variablen <i>widget</i> und <i>childWidgets</i> zugegriffen werden.</translation> </message> @@ -6512,7 +6511,7 @@ Klasse: %2</translation> </message> <message> <location line="-7"/> - <location line="+283"/> + <location line="+280"/> <source>Valid Style Sheet</source> <translation>Stylesheet gĆ¼ltig</translation> </message> @@ -6522,7 +6521,7 @@ Klasse: %2</translation> <translation>Stylesheet ungĆ¼ltig</translation> </message> <message> - <location line="-284"/> + <location line="-281"/> <source>Add Resource...</source> <translation>Ressource hinzufĆ¼gen...</translation> </message> diff --git a/translations/linguist_de.ts b/translations/linguist_de.ts index 8924b6e..25f35ef 100644 --- a/translations/linguist_de.ts +++ b/translations/linguist_de.ts @@ -4,7 +4,7 @@ <context> <name>AboutDialog</name> <message> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1359"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1357"/> <source>Qt Linguist</source> <translation>Qt Linguist</translation> </message> @@ -283,19 +283,19 @@ Es wird mit einer einfachen Universalform gearbeitet.</translation> <location filename="../tools/linguist/linguist/messageeditorwidgets.cpp" line="+296"/> <source>Alt+Delete</source> <extracomment>translate, but don't change</extracomment> - <translation type="unfinished"></translation> + <translation>Alt+Delete</translation> </message> <message> <location line="+1"/> <source>Shift+Alt+Insert</source> <extracomment>translate, but don't change</extracomment> - <translation type="unfinished"></translation> + <translation>Shift+Alt+Insert</translation> </message> <message> <location line="+1"/> <source>Alt+Insert</source> <extracomment>translate, but don't change</extracomment> - <translation type="unfinished"></translation> + <translation>Alt+Insert</translation> </message> <message> <location line="+131"/> @@ -908,7 +908,7 @@ Es wird mit einer einfachen Universalform gearbeitet.</translation> <translation>Freigeben unter ...</translation> </message> <message> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2006"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2004"/> <source></source> <comment>This is the application's main window.</comment> <translation></translation> @@ -1020,19 +1020,14 @@ Soll die erstgenannte Datei Ć¼bersprungen werden?</translation> <translation>Datei gespeichert.</translation> </message> <message> - <location line="+526"/> - <source><center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist is a tool for adding translations to Qt applications.</p><p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</p><p>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.</p></source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../tools/linguist/linguist/mainwindow.ui"/> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-511"/> - <location line="+1167"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+15"/> + <location line="+1165"/> <source>Release</source> <translation>Freigeben</translation> </message> <message> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1166"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1164"/> <source>Qt message files for released applications (*.qm) All files (*)</source> <translation>Qt-Nachrichtendateien (*.qm) @@ -1096,7 +1091,7 @@ Alle Dateien (*)</translation> <message> <location line="+17"/> <location line="+278"/> - <location line="+36"/> + <location line="+34"/> <location line="+24"/> <location line="+22"/> <location line="+516"/> @@ -1108,7 +1103,7 @@ Alle Dateien (*)</translation> <translation>Qt Linguist</translation> </message> <message> - <location line="-1200"/> + <location line="-1198"/> <location line="+102"/> <source>Cannot find the string '%1'.</source> <translation>Kann Zeichenkette '%1' nicht finden.</translation> @@ -1206,7 +1201,12 @@ Alle Dateien (*)</translation> <translation>Version %1</translation> </message> <message> - <location line="+43"/> + <location line="+3"/> + <source><center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist is a tool for adding translations to Qt applications.</p><p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+38"/> <source>Do you want to save the modified files?</source> <translation>Mƶchten Sie die geƤnderten Dateien speichern?</translation> </message> @@ -1791,7 +1791,7 @@ Zeile: %2</translation> <translation>Kompilierte Qt-Ćbersetzungen</translation> </message> <message> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1282"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1280"/> <source>Translation files (%1);;</source> <translation>Ćbersetzungsdateien (%1);;</translation> </message> @@ -1832,7 +1832,7 @@ Zeile: %2</translation> <translation>Qt-Ćbersetzungsdateien (aktuelles Format)</translation> </message> <message> - <location filename="../tools/linguist/shared/xliff.cpp" line="+820"/> + <location filename="../tools/linguist/shared/xliff.cpp" line="+827"/> <source>XLIFF localization files</source> <translation>XLIFF-Ćbersetzungsdateien</translation> </message> diff --git a/translations/qt_de.ts b/translations/qt_de.ts index e161da3..c09daa9 100644 --- a/translations/qt_de.ts +++ b/translations/qt_de.ts @@ -2,29 +2,24 @@ <!DOCTYPE TS> <TS version="2.0" language="de"> <context> - <name>AudioOutput</name> + <name>CloseButton</name> <message> - <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/> - <source><html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html></source> - <translation><html>Das AudiogerƤt <b>%1</b> funktioniert nicht.<br/>Es wird stattdessen <b>%2</b> verwendet.</html></translation> + <location filename="../src/gui/widgets/qtabbar.cpp" line="+2245"/> + <source>Close Tab</source> + <translation>SchlieĆen</translation> </message> +</context> +<context> + <name>FakeReply</name> <message> - <location line="+13"/> - <source><html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html></source> - <translation><html>Das AudiogerƤt <b>%1</b> wurde aktiviert,<br/>da es gerade verfĆ¼gbar und hƶher priorisiert ist.</html></translation> + <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2191"/> + <source>Fake error !</source> + <translation>Fake error !</translation> </message> <message> <location line="+3"/> - <source>Revert back to device '%1'</source> - <translation>ZurĆ¼ckschalten zum GerƤt '%1'</translation> - </message> -</context> -<context> - <name>CloseButton</name> - <message> - <location filename="../src/gui/widgets/qtabbar.cpp" line="+2252"/> - <source>Close Tab</source> - <translation>SchlieĆen</translation> + <source>Invalid URL</source> + <translation>UngĆ¼ltige URL</translation> </message> </context> <context> @@ -61,6 +56,24 @@ </message> </context> <context> + <name>Phonon::AudioOutput</name> + <message> + <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+377"/> + <source><html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html></source> + <translation><html>Das AudiogerƤt <b>%1</b> funktioniert nicht.<br/>Es wird stattdessen <b>%2</b> verwendet.</html></translation> + </message> + <message> + <location line="+13"/> + <source><html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html></source> + <translation><html>Das AudiogerƤt <b>%1</b> wurde aktiviert,<br/>da es gerade verfĆ¼gbar und hƶher priorisiert ist.</html></translation> + </message> + <message> + <location line="+3"/> + <source>Revert back to device '%1'</source> + <translation>ZurĆ¼ckschalten zum GerƤt '%1'</translation> + </message> +</context> +<context> <name>Phonon::Gstreamer::Backend</name> <message> <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+171"/> @@ -94,24 +107,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="+676"/> + <location line="+681"/> <location line="+8"/> <location line="+15"/> - <location line="+9"/> + <location line="+22"/> <location line="+6"/> <location line="+19"/> - <location line="+335"/> + <location line="+339"/> <location line="+24"/> <source>Could not open media source.</source> <translation>Die Medienquelle konnte nicht geƶffnet werden.</translation> </message> <message> - <location line="-403"/> + <location line="-420"/> <source>Invalid source type.</source> <translation>UngĆ¼ltiger Typ der Medienquelle.</translation> </message> <message> - <location line="+377"/> + <location line="+394"/> <source>Could not locate media source.</source> <translation>Die Medienquelle konnte nicht gefunden werden.</translation> </message> @@ -127,20 +140,74 @@ Bitte prĆ¼fen Sie die Gstreamer-Installation und stellen Sie sicher, dass das Pa </message> </context> <context> + <name>Phonon::MMF::AudioEqualizer</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/audioequalizer.cpp" line="+74"/> + <source>Frequency band, %1 Hz</source> + <translation>Frequenzband, %1 Hz</translation> + </message> +</context> +<context> + <name>Phonon::MMF::EffectFactory</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/effectfactory.cpp" line="+65"/> + <source>audio equalizer</source> + <translation>Audio-Equalizer</translation> + </message> + <message> + <location line="+2"/> + <source>Bass boost</source> + <translation>Hervorhebung der BƤsse</translation> + </message> + <message> + <location line="+2"/> + <source>Distance Attenuation</source> + <translation>AbschwƤchung in AbhƤngigkeit von der Entfernung</translation> + </message> + <message> + <location line="+2"/> + <location line="+2"/> + <source>Environmental Reverb</source> + <translation>Hall-Effekt der Umgebung</translation> + </message> + <message> + <location line="+2"/> + <source>Loudness</source> + <translation>LautstƤrke</translation> + </message> + <message> + <location line="+2"/> + <source>Source Orientation</source> + <translation>Ausrichtung der Quelle</translation> + </message> + <message> + <location line="+2"/> + <source>Stereo Widening</source> + <translation>Stereo-Basisverbreiterung</translation> + </message> +</context> +<context> <name>Phonon::VolumeSlider</name> <message> <location filename="../src/3rdparty/phonon/phonon/volumeslider.cpp" line="+42"/> <location line="+18"/> + <location line="+129"/> + <location line="+15"/> <source>Volume: %1%</source> <translation>LautstƤrke: %1%</translation> </message> <message> - <location line="-15"/> + <location line="-159"/> <location line="+18"/> <location line="+54"/> <source>Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%</source> <translation>Mit diesem Regler stellen Sie die LautstƤrke ein. Die Position links entspricht 0%; die Position rechts entspricht %1%</translation> </message> + <message> + <location line="+67"/> + <source>Muted</source> + <translation>Stummschaltung</translation> + </message> </context> <context> <name>Q3Accel</name> @@ -186,7 +253,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="+865"/> + <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+829"/> <source>Copy or Move a File</source> <translation>Datei kopieren oder verschieben</translation> </message> @@ -210,13 +277,13 @@ Bitte prĆ¼fen Sie die Gstreamer-Installation und stellen Sie sicher, dass das Pa <message> <location line="-157"/> <location line="+49"/> - <location line="+2153"/> - <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/> + <location line="+2149"/> + <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+112"/> <source>All Files (*)</source> <translation>Alle Dateien (*)</translation> </message> <message> - <location line="-2089"/> + <location line="-2085"/> <source>Name</source> <translation>Name</translation> </message> @@ -242,24 +309,24 @@ Bitte prĆ¼fen Sie die Gstreamer-Installation und stellen Sie sicher, dass das Pa </message> <message> <location line="+35"/> - <location line="+2031"/> + <location line="+2027"/> <source>&OK</source> <translation>&OK</translation> </message> <message> - <location line="-1991"/> + <location line="-1987"/> <source>Look &in:</source> <translation>Su&chen in:</translation> </message> <message> <location line="+1"/> - <location line="+1981"/> + <location line="+1977"/> <location line="+16"/> <source>File &name:</source> <translation>Datei&name:</translation> </message> <message> - <location line="-1996"/> + <location line="-1992"/> <source>File &type:</source> <translation>Datei&typ:</translation> </message> @@ -294,7 +361,7 @@ Bitte prĆ¼fen Sie die Gstreamer-Installation und stellen Sie sicher, dass das Pa <translation>Vorschau der Datei-Informationen</translation> </message> <message> - <location line="+23"/> + <location line="+19"/> <source>Preview File Contents</source> <translation>Vorschau des Datei-Inhalts</translation> </message> @@ -350,14 +417,14 @@ Bitte prĆ¼fen Sie die Gstreamer-Installation und stellen Sie sicher, dass das Pa </message> <message> <location line="+704"/> - <location line="+2100"/> - <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/> + <location line="+1999"/> + <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+209"/> <source>Open</source> <translation>Ćffnen</translation> </message> <message> - <location line="-1990"/> - <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+84"/> + <location line="-1889"/> + <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+71"/> <source>Save As</source> <translation>Speichern unter</translation> </message> @@ -487,12 +554,12 @@ Bitte prĆ¼fen Sie die Gstreamer-Installation und stellen Sie sicher, dass das Pa </message> <message> <location line="+40"/> - <location line="+1110"/> + <location line="+1009"/> <source>Error</source> <translation>Fehler</translation> </message> <message> - <location line="-1109"/> + <location line="-1008"/> <source>%1 File not found. Check path and filename.</source> @@ -501,17 +568,17 @@ Datei kann nicht gefunden werden. ĆberprĆ¼fen Sie Pfad und Dateinamen.</translation> </message> <message> - <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="-289"/> + <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="-191"/> <source>All Files (*.*)</source> <translation>Alle Dateien (*.*)</translation> </message> <message> - <location line="+375"/> + <location line="+264"/> <source>Open </source> <translation>Ćffnen</translation> </message> <message> - <location line="+155"/> + <location line="+107"/> <source>Select a Directory</source> <translation>WƤhlen Sie ein Verzeichnis</translation> </message> @@ -599,13 +666,13 @@ nach <context> <name>Q3TabDialog</name> <message> - <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/> - <location line="+814"/> + <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+190"/> + <location line="+824"/> <source>OK</source> <translation>OK</translation> </message> <message> - <location line="-356"/> + <location line="-366"/> <source>Apply</source> <translation>Anwenden</translation> </message> @@ -703,7 +770,7 @@ nach </message> <message> <location line="+3"/> - <source>Puts a minimized back to normal</source> + <source>Puts a minimized window back to normal</source> <translation>Stellt ein minimiertes Fenster wieder her</translation> </message> <message> @@ -823,9 +890,9 @@ nach <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 filename="../src/network/socket/qabstractsocket.cpp" line="+890"/> + <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+633"/> + <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+661"/> <location line="+26"/> <source>Host not found</source> <translation>Rechner konnte nicht gefunden werden</translation> @@ -838,19 +905,19 @@ nach <translation>Verbindung verweigert</translation> </message> <message> - <location line="+141"/> + <location line="+142"/> <source>Connection timed out</source> <translation>Das Zeitlimit fĆ¼r die Verbindung wurde Ć¼berschritten</translation> </message> <message> - <location line="-547"/> - <location line="+787"/> + <location line="-548"/> + <location line="+789"/> <location line="+208"/> <source>Operation on socket is not supported</source> <translation>Diese Socket-Operation wird nicht unterstĆ¼tzt</translation> </message> <message> - <location line="+137"/> + <location line="+187"/> <source>Socket operation timed out</source> <translation>Das Zeitlimit fĆ¼r die Operation wurde Ć¼berschritten</translation> </message> @@ -868,7 +935,7 @@ nach <context> <name>QAbstractSpinBox</name> <message> - <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/> + <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1217"/> <source>&Step up</source> <translation>&Inkrementieren</translation> </message> @@ -886,13 +953,13 @@ nach <context> <name>QApplication</name> <message> - <location filename="../src/gui/kernel/qapplication.cpp" line="+2247"/> + <location filename="../src/gui/kernel/qapplication.cpp" line="+2306"/> <source>QT_LAYOUT_DIRECTION</source> <comment>Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout.</comment> <translation>LTR</translation> </message> <message> - <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/> + <location filename="../src/gui/dialogs/qmessagebox.h" line="+354"/> <source>Executable '%1' requires Qt %2, found Qt %3.</source> <translation>Die Anwendung '%1' benƶtigt Qt %2; es wurde aber Qt %3 gefunden.</translation> </message> @@ -956,7 +1023,7 @@ nach <context> <name>QColorDialog</name> <message> - <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/> + <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1348"/> <source>Hu&e:</source> <translation>Farb&ton:</translation> </message> @@ -996,7 +1063,7 @@ nach <translation>Farbauswahl</translation> </message> <message> - <location line="+137"/> + <location line="+178"/> <source>&Basic colors</source> <translation>Grundfar&ben</translation> </message> @@ -1020,7 +1087,7 @@ nach <translation>Ćffnen</translation> </message> <message> - <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/> + <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+556"/> <source>False</source> <translation>Falsch</translation> </message> @@ -1055,16 +1122,40 @@ nach <comment>QSystemSemaphore</comment> <translation>%1: ftok-Aufruf schlug fehl</translation> </message> + <message> + <location filename="../src/corelib/kernel/qsystemsemaphore_symbian.cpp" line="+65"/> + <source>%1: already exists</source> + <comment>QSystemSemaphore</comment> + <translation>%1: existiert bereits</translation> + </message> + <message> + <location line="+4"/> + <source>%1: does not exist</source> + <comment>QSystemSemaphore</comment> + <translation>%1: Nicht existent</translation> + </message> + <message> + <location line="+5"/> + <source>%1: out of resources</source> + <comment>QSystemSemaphore</comment> + <translation>%1: Keine Ressourcen mehr verfĆ¼gbar</translation> + </message> + <message> + <location line="+4"/> + <source>%1: unknown error %2</source> + <comment>QSystemSemaphore</comment> + <translation>%1: Unbekannter Fehler %2</translation> + </message> </context> <context> <name>QDB2Driver</name> <message> - <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/> + <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1254"/> <source>Unable to connect</source> <translation>Es kann keine Verbindung aufgebaut werden</translation> </message> <message> - <location line="+303"/> + <location line="+298"/> <source>Unable to commit transaction</source> <translation>Die Transaktion kann nicht durchgefĆ¼hrt werden (Operation 'commit' fehlgeschlagen)</translation> </message> @@ -1082,33 +1173,33 @@ nach <context> <name>QDB2Result</name> <message> - <location line="-1043"/> - <location line="+243"/> + <location line="-1031"/> + <location line="+240"/> <source>Unable to execute statement</source> <translation>Der Befehl kann nicht ausgefĆ¼hrt werden</translation> </message> <message> - <location line="-206"/> + <location line="-203"/> <source>Unable to prepare statement</source> <translation>Der Befehl kann nicht initialisiert werden</translation> </message> <message> - <location line="+196"/> + <location line="+193"/> <source>Unable to bind variable</source> <translation>Die Variable kann nicht gebunden werden</translation> </message> <message> - <location line="+92"/> + <location line="+89"/> <source>Unable to fetch record %1</source> <translation>Der Datensatz %1 kann nicht abgeholt werden</translation> </message> <message> - <location line="+17"/> + <location line="+19"/> <source>Unable to fetch next</source> <translation>Der nƤchste Datensatz kann nicht abgeholt werden</translation> </message> <message> - <location line="+20"/> + <location line="+21"/> <source>Unable to fetch first</source> <translation>Der erste Datensatz kann nicht abgeholt werden</translation> </message> @@ -1116,7 +1207,7 @@ nach <context> <name>QDateTimeEdit</name> <message> - <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/> + <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2287"/> <source>AM</source> <translation>AM</translation> </message> @@ -1157,12 +1248,12 @@ nach <context> <name>QDialog</name> <message> - <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/> + <location filename="../src/gui/dialogs/qdialog.cpp" line="+636"/> <source>What's This?</source> <translation>Direkthilfe</translation> </message> <message> - <location line="-115"/> + <location line="-135"/> <source>Done</source> <translation>Fertig</translation> </message> @@ -1170,9 +1261,9 @@ nach <context> <name>QDialogButtonBox</name> <message> - <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1869"/> + <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1872"/> <location line="+464"/> - <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/> + <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+619"/> <source>OK</source> <translation>OK</translation> </message> @@ -1295,7 +1386,7 @@ nach <context> <name>QDirModel</name> <message> - <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+457"/> <source>Name</source> <translation>Name</translation> </message> @@ -1356,7 +1447,7 @@ nach <context> <name>QErrorMessage</name> <message> - <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+391"/> + <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+413"/> <source>&Show this message again</source> <translation>Diese Meldung wieder an&zeigen</translation> </message> @@ -1366,7 +1457,7 @@ nach <translation>&OK</translation> </message> <message> - <location line="-200"/> + <location line="-206"/> <source>Debug Message:</source> <translation>Debug-Ausgabe:</translation> </message> @@ -1384,18 +1475,23 @@ nach <context> <name>QFile</name> <message> - <location filename="../src/corelib/io/qfile.cpp" line="+708"/> - <location line="+141"/> + <location filename="../src/corelib/io/qfile.cpp" line="+697"/> + <location line="+155"/> <source>Destination file exists</source> <translation>Die Zieldatei existiert bereits</translation> </message> <message> - <location line="-108"/> + <location line="-140"/> + <source>Will not rename sequential file using block copy</source> + <translation>Eine sequentielle Datei kann nicht durch blockweises Kopieren umbenannt werden</translation> + </message> + <message> + <location line="+23"/> <source>Cannot remove source file</source> <translation>Die Quelldatei kann nicht entfernt werden</translation> </message> <message> - <location line="+120"/> + <location line="+130"/> <source>Cannot open %1 for input</source> <translation>%1 kann nicht zum Lesen geƶffnet werden</translation> </message> @@ -1418,37 +1514,37 @@ nach <context> <name>QFileDialog</name> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+514"/> - <location line="+447"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+558"/> + <location line="+450"/> <source>All Files (*)</source> <translation>Alle Dateien (*)</translation> </message> <message> <location filename="../src/gui/dialogs/qfiledialog.ui"/> - <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Back</source> <translation>ZurĆ¼ck</translation> </message> <message> <location/> - <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>List View</source> <translation>Liste</translation> </message> <message> <location/> - <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Detail View</source> <translation>Details</translation> </message> <message> - <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+414"/> + <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+444"/> <location line="+1"/> <source>File</source> <translation>Datei</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-464"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-467"/> <source>Open</source> <translation>Ćffnen</translation> </message> @@ -1458,26 +1554,25 @@ nach <translation>Speichern unter</translation> </message> <message> - <location line="+681"/> + <location line="+689"/> <location line="+50"/> - <location line="+1467"/> - <location line="+75"/> + <location line="+1528"/> <source>&Open</source> <translation>&Ćffnen</translation> </message> <message> - <location line="-1592"/> + <location line="-1578"/> <location line="+50"/> <source>&Save</source> <translation>S&peichern</translation> </message> <message> - <location line="+1818"/> + <location line="+1801"/> <source>Recent Places</source> <translation>Zuletzt besucht</translation> </message> <message> - <location line="-2520"/> + <location line="-2511"/> <source>&Rename</source> <translation>&Umbenennen</translation> </message> @@ -1492,33 +1587,33 @@ nach <translation>&Versteckte Dateien anzeigen</translation> </message> <message> - <location line="+1963"/> + <location line="+1957"/> <source>New Folder</source> <translation>Neues Verzeichnis</translation> </message> <message> - <location line="-1998"/> + <location line="-1992"/> <source>Find Directory</source> <translation>Verzeichnis suchen</translation> </message> <message> - <location line="+688"/> + <location line="+696"/> <source>Directories</source> <translation>Verzeichnisse</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/> + <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+174"/> <source>All Files (*.*)</source> <translation>Alle Dateien (*.*)</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-647"/> - <location line="+651"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-655"/> + <location line="+659"/> <source>Directory:</source> <translation>Verzeichnis:</translation> </message> <message> - <location line="+825"/> + <location line="+810"/> <source>%1 already exists. Do you want to replace it?</source> <translation>Die Datei %1 existiert bereits. @@ -1540,19 +1635,19 @@ Stellen Sie sicher, dass der Dateiname richtig ist.</translation> </message> <message> <location filename="../src/gui/dialogs/qfiledialog.ui"/> - <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Parent Directory</source> <translation>Ćbergeordnetes Verzeichnis</translation> </message> <message> <location/> - <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Files of type:</source> <translation>Dateien des Typs:</translation> </message> <message> <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-54"/> - <location line="+861"/> + <location line="+862"/> <source>%1 Directory not found. Please verify the correct directory name was given.</source> @@ -1583,18 +1678,42 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Laufwerk</translation> </message> <message> - <location line="+33"/> + <location line="+9"/> + <source>File Folder</source> + <comment>Match Windows Explorer</comment> + <translation>Ordner</translation> + </message> + <message> + <location line="+2"/> + <source>Folder</source> + <comment>All other platforms</comment> + <translation>Order</translation> + </message> + <message> + <location line="+9"/> + <source>Alias</source> + <comment>Mac OS X Finder</comment> + <translation>Alias</translation> + </message> + <message> + <location line="+2"/> + <source>Shortcut</source> + <comment>All other platforms</comment> + <translation>Symbolischer Link</translation> + </message> + <message> + <location line="+7"/> <source>Unknown</source> <translation>Unbekannt</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2117"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2111"/> <source>Show </source> <translation>Anzeigen </translation> </message> <message> <location filename="../src/gui/dialogs/qfiledialog.ui"/> - <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Forward</source> <translation>VorwƤrts</translation> </message> @@ -1604,31 +1723,31 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>&Neues Verzeichnis</translation> </message> <message> - <location line="+659"/> + <location line="+667"/> <location line="+38"/> <source>&Choose</source> <translation>&AuswƤhlen</translation> </message> <message> - <location filename="../src/gui/dialogs/qsidebar.cpp" line="+437"/> + <location filename="../src/gui/dialogs/qsidebar.cpp" line="+442"/> <source>Remove</source> <translation>Lƶschen</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-690"/> - <location line="+655"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-698"/> + <location line="+663"/> <source>File &name:</source> <translation>Datei&name:</translation> </message> <message> <location filename="../src/gui/dialogs/qfiledialog.ui"/> - <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Look in:</source> <translation>Suchen in:</translation> </message> <message> <location/> - <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Create New Folder</source> <translation>Neuen Ordner erstellen</translation> </message> @@ -1637,26 +1756,31 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <name>QFileSystemModel</name> <message> <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+744"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+476"/> <source>%1 TB</source> <translation>%1 TB</translation> </message> <message> <location line="+2"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> <source>%1 GB</source> <translation>%1 GB</translation> </message> <message> <location line="+2"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> <source>%1 MB</source> <translation>%1 MB</translation> </message> <message> <location line="+2"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> <source>%1 KB</source> <translation>%1 KB</translation> </message> <message> <location line="+1"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+1"/> <source>%1 bytes</source> <translation>%1 Byte</translation> </message> @@ -1671,7 +1795,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation><b>Der Name "%1" kann nicht verwendet werden.</b><p>Versuchen Sie, die Sonderzeichen zu entfernen oder einen kĆ¼rzeren Namen zu verwenden.</translation> </message> <message> - <location line="+63"/> + <location line="+64"/> <source>Name</source> <translation>Name</translation> </message> @@ -1698,7 +1822,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Ćnderungsdatum</translation> </message> <message> - <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+242"/> + <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+258"/> <source>My Computer</source> <translation>Mein Computer</translation> </message> @@ -1711,56 +1835,56 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QFontDatabase</name> <message> - <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/> - <location line="+1176"/> + <location filename="../src/gui/text/qfontdatabase.cpp" line="+102"/> + <location line="+1330"/> <source>Normal</source> <translation>Normal</translation> </message> <message> - <location line="-1173"/> + <location line="-1327"/> <location line="+12"/> - <location line="+1149"/> + <location line="+1303"/> <source>Bold</source> <translation>Fett</translation> </message> <message> - <location line="-1158"/> - <location line="+1160"/> + <location line="-1312"/> + <location line="+1314"/> <source>Demi Bold</source> <translation>Halbfett</translation> </message> <message> - <location line="-1157"/> + <location line="-1311"/> <location line="+18"/> - <location line="+1135"/> + <location line="+1289"/> <source>Black</source> <translation>Schwarz</translation> </message> <message> - <location line="-1145"/> + <location line="-1299"/> <source>Demi</source> <translation>Semi</translation> </message> <message> <location line="+6"/> - <location line="+1145"/> + <location line="+1299"/> <source>Light</source> <translation>Leicht</translation> </message> <message> - <location line="-1004"/> - <location line="+1007"/> + <location line="-1153"/> + <location line="+1156"/> <source>Italic</source> <translation>Kursiv</translation> </message> <message> - <location line="-1004"/> - <location line="+1006"/> + <location line="-1153"/> + <location line="+1155"/> <source>Oblique</source> <translation>SchrƤggestellt</translation> </message> <message> - <location line="+705"/> + <location line="+703"/> <source>Any</source> <translation>Alle</translation> </message> @@ -1928,7 +2052,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QFontDialog</name> <message> - <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/> + <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+776"/> <source>&Font</source> <translation>&Schriftart</translation> </message> @@ -1943,12 +2067,12 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>&GrƶĆe</translation> </message> <message> - <location line="+1"/> + <location line="+4"/> <source>Effects</source> <translation>Effekte</translation> </message> <message> - <location line="+1"/> + <location line="+2"/> <source>Stri&keout</source> <translation>Durch&gestrichen</translation> </message> @@ -1963,13 +2087,13 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Beispiel</translation> </message> <message> - <location line="-603"/> - <location line="+247"/> + <location line="-608"/> + <location line="+257"/> <source>Select Font</source> <translation>Schriftart auswƤhlen</translation> </message> <message> - <location line="+357"/> + <location line="+352"/> <source>Wr&iting System</source> <translation>&Schriftsystem</translation> </message> @@ -1987,7 +2111,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Rechner gefunden</translation> </message> <message> - <location filename="../src/network/access/qftp.cpp" line="+1003"/> + <location filename="../src/network/access/qftp.cpp" line="+1008"/> <location filename="../src/qt3support/network/q3ftp.cpp" line="-1456"/> <location line="+1451"/> <source>Connected to host %1</source> @@ -2004,14 +2128,14 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Verbindung mit %1 beendet</translation> </message> <message> - <location filename="../src/network/access/qftp.cpp" line="+1375"/> + <location filename="../src/network/access/qftp.cpp" line="+1377"/> <location filename="../src/qt3support/network/q3ftp.cpp" line="-243"/> <location line="+250"/> <source>Connection closed</source> <translation>Verbindung beendet</translation> </message> <message> - <location line="-1487"/> + <location line="-1489"/> <location filename="../src/qt3support/network/q3ftp.cpp" line="-1566"/> <source>Host %1 not found</source> <translation>Rechner %1 konnte nicht gefunden werden</translation> @@ -2036,7 +2160,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Unbekannter Fehler</translation> </message> <message> - <location line="+889"/> + <location line="+891"/> <location filename="../src/qt3support/network/q3ftp.cpp" line="+77"/> <source>Connecting to host failed: %1</source> @@ -2108,13 +2232,13 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> %1</translation> </message> <message> - <location line="-1524"/> + <location line="-1529"/> <location filename="../src/qt3support/network/q3ftp.cpp" line="-1356"/> <source>Not connected</source> <translation>Keine Verbindung</translation> </message> <message> - <location line="+396"/> + <location line="+399"/> <location filename="../src/qt3support/network/q3ftp.cpp" line="+332"/> <source>Connection refused for data connection</source> <translation>Verbindung fĆ¼r die Daten Verbindung verweigert</translation> @@ -2133,17 +2257,17 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <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="+80"/> + <location line="+32"/> + <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+165"/> <location line="+9"/> - <location line="+40"/> + <location line="+56"/> <location line="+27"/> <source>Host not found</source> <translation>Rechner konnte nicht gefunden werden</translation> </message> <message> - <location line="-44"/> + <location line="-45"/> <location line="+39"/> <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-34"/> <location line="+29"/> @@ -2151,23 +2275,33 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Unbekannter Adresstyp</translation> </message> <message> - <location line="+8"/> + <location line="+10"/> <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-19"/> <location line="+27"/> <source>Unknown error</source> <translation>Unbekannter Fehler</translation> </message> + <message> + <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-71"/> + <source>No host name given</source> + <translation>Es wurde kein Hostname angegeben</translation> + </message> + <message> + <location line="+0"/> + <source>Invalid hostname</source> + <translation>UngĆ¼ltiger Rechnername</translation> + </message> </context> <context> <name>QHttp</name> <message> - <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+901"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+1836"/> + <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+569"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+1835"/> <source>Connection refused</source> <translation>Verbindung verweigert</translation> </message> <message> - <location filename="../src/network/access/qhttp.cpp" line="+2631"/> + <location filename="../src/network/access/qhttp.cpp" line="+2634"/> <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/> <location filename="../src/qt3support/network/q3http.cpp" line="+3"/> <source>Host %1 not found</source> @@ -2309,7 +2443,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Verbindung verweigert oder Zeitlimit Ć¼berschritten</translation> </message> <message> - <location line="-2263"/> + <location line="-2266"/> <source>HTTPS connection requested but SSL support not compiled in</source> <translation>Die angeforderte HTTPS-Verbindung kann nicht aufgebaut werden, da keine SSL-UnterstĆ¼tzung vorhanden ist</translation> </message> @@ -2365,7 +2499,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="+1435"/> + <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1491"/> <source>Error opening database</source> <translation>Die Datenbankverbindung konnte nicht geƶffnet werden</translation> </message> @@ -2388,7 +2522,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QIBaseResult</name> <message> - <location line="-1097"/> + <location line="-1149"/> <source>Unable to create BLOB</source> <translation>Es konnte kein BLOB erzeugt werden</translation> </message> @@ -2409,17 +2543,17 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> </message> <message> <location line="+125"/> - <location line="+189"/> + <location line="+187"/> <source>Could not find array</source> <translation>Das Feld konnte nicht gefunden werden</translation> </message> <message> - <location line="-157"/> + <location line="-155"/> <source>Could not get array data</source> <translation>Die Daten des Feldes konnten nicht gelesen werden</translation> </message> <message> - <location line="+212"/> + <location line="+210"/> <source>Could not get query info</source> <translation>Die erforderlichen Informationen zur Abfrage sind nicht verfĆ¼gbar</translation> </message> @@ -2434,7 +2568,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Die Transaktion konnte nicht durchgefĆ¼hrt werden (Operation 'commit' fehlgeschlagen)</translation> </message> <message> - <location line="+33"/> + <location line="+42"/> <source>Could not allocate statement</source> <translation>Die Allokation des Befehls schlug fehl</translation> </message> @@ -2445,12 +2579,12 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> </message> <message> <location line="+5"/> - <location line="+7"/> + <location line="+11"/> <source>Could not describe input statement</source> <translation>Es konnte keine Beschreibung des Eingabebefehls erhalten werden</translation> </message> <message> - <location line="+10"/> + <location line="+14"/> <source>Could not describe statement</source> <translation>Es konnte keine Beschreibung des Befehls erhalten werden</translation> </message> @@ -2470,7 +2604,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Das nƤchste Element konnte nicht abgeholt werden</translation> </message> <message> - <location line="+160"/> + <location line="+197"/> <source>Could not get statement info</source> <translation>Es ist keine Information zum Befehl verfĆ¼gbar</translation> </message> @@ -2478,7 +2612,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QIODevice</name> <message> - <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/> + <location filename="../src/corelib/global/qglobal.cpp" line="+2046"/> <source>Permission denied</source> <translation>Zugriff verweigert</translation> </message> @@ -2498,7 +2632,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="+1536"/> + <location filename="../src/corelib/io/qiodevice.cpp" line="+1561"/> <source>Unknown error</source> <translation>Unbekannter Fehler</translation> </message> @@ -2506,11 +2640,16 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QInputContext</name> <message> - <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/> + <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+256"/> <source>XIM</source> <translation>XIM</translation> </message> <message> + <location line="+4"/> + <source>FEP</source> + <translation>FEP</translation> + </message> + <message> <location line="+23"/> <source>XIM input method</source> <translation>XIM-Eingabemethode</translation> @@ -2525,6 +2664,11 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <source>Mac OS X input method</source> <translation>Mac OS X-Eingabemethode</translation> </message> + <message> + <location line="+4"/> + <source>S60 FEP input method</source> + <translation>S60-FEP-Eingabemethode</translation> + </message> </context> <context> <name>QInputDialog</name> @@ -2537,7 +2681,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QLibrary</name> <message> - <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/> + <location filename="../src/corelib/plugin/qlibrary.cpp" line="+383"/> <source>Could not mmap '%1': %2</source> <translation>Operation mmap fehlgeschlagen fĆ¼r '%1': %2</translation> </message> @@ -2552,7 +2696,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Operation unmap fehlgeschlagen fĆ¼r '%1': %2</translation> </message> <message> - <location line="+302"/> + <location line="+341"/> <source>The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]</source> <translation>Das Plugin '%1' verwendet eine inkompatible Qt-Bibliothek. (%2.%3.%4) [%5]</translation> </message> @@ -2562,13 +2706,13 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Das Plugin '%1' verwendet eine inkompatible Qt-Bibliothek. Erforderlicher build-spezifischer SchlĆ¼ssel "%2", erhalten "%3"</translation> </message> <message> - <location line="+340"/> + <location line="+365"/> <source>Unknown error</source> <translation>Unbekannter Fehler</translation> </message> <message> - <location line="-377"/> - <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/> + <location line="-402"/> + <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+343"/> <source>The shared library was not found.</source> <translation>Die dynamische Bibliothek konnte nicht gefunden werden.</translation> </message> @@ -2583,19 +2727,19 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Das Plugin '%1' verwendet eine inkompatible Qt-Bibliothek. (Im Debug- bzw. Release-Modus erstellte Bibliotheken kƶnnen nicht zusammen verwendet werden.)</translation> </message> <message> - <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/> - <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/> + <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+236"/> + <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+87"/> <source>Cannot load library %1: %2</source> <translation>Die Library %1 kann nicht geladen werden: %2</translation> </message> <message> - <location line="+16"/> - <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+26"/> + <location line="+17"/> + <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+22"/> <source>Cannot unload library %1: %2</source> <translation>Die Library %1 kann nicht entladen werden: %2</translation> </message> <message> - <location line="+31"/> + <location line="+34"/> <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+15"/> <source>Cannot resolve symbol "%1" in %2: %3</source> <translation>Das Symbol "%1" kann in %2 nicht aufgelƶst werden: %3</translation> @@ -2604,12 +2748,12 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QLineEdit</name> <message> - <location filename="../src/gui/widgets/qlineedit.cpp" line="+2710"/> + <location filename="../src/gui/widgets/qlineedit.cpp" line="+2012"/> <source>Select All</source> <translation>Alles auswƤhlen</translation> </message> <message> - <location line="-30"/> + <location line="-32"/> <source>&Undo</source> <translation>&RĆ¼ckgƤngig</translation> </message> @@ -2624,12 +2768,12 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>&Ausschneiden</translation> </message> <message> - <location line="+4"/> + <location line="+5"/> <source>&Copy</source> <translation>&Kopieren</translation> </message> <message> - <location line="+4"/> + <location line="+5"/> <source>&Paste</source> <translation>Einf&Ć¼gen</translation> </message> @@ -2642,8 +2786,8 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QLocalServer</name> <message> - <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/> - <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+233"/> + <location filename="../src/network/socket/qlocalserver.cpp" line="+224"/> + <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+256"/> <source>%1: Name error</source> <translation>%1: Fehlerhafter Name</translation> </message> @@ -2659,7 +2803,6 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> </message> <message> <location line="+5"/> - <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/> <source>%1: Unknown error %2</source> <translation>%1: Unbekannter Fehler %2</translation> </message> @@ -2668,7 +2811,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <name>QLocalSocket</name> <message> <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/> - <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/> + <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+139"/> <source>%1: Connection refused</source> <translation>%1: Der Verbindungsaufbau wurde verweigert</translation> </message> @@ -2682,7 +2825,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <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"/> + <location line="+45"/> <source>%1: Invalid name</source> <translation>%1: UngĆ¼ltiger Name</translation> </message> @@ -2713,7 +2856,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="-48"/> + <location filename="../src/network/socket/qlocalsocket_win.cpp" line="-50"/> <source>%1: Connection error</source> <translation>%1: Verbindungsfehler</translation> </message> @@ -2738,17 +2881,17 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QMYSQLDriver</name> <message> - <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1252"/> + <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1261"/> <source>Unable to open database '</source> <translation>Die Datenbankverbindung kann nicht geƶffnet werden '</translation> </message> <message> - <location line="+7"/> + <location line="+11"/> <source>Unable to connect</source> <translation>Es kann keine Verbindung aufgebaut werden</translation> </message> <message> - <location line="+127"/> + <location line="+151"/> <source>Unable to begin transaction</source> <translation>Es kann keine Transaktion gestartet werden</translation> </message> @@ -2766,7 +2909,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QMYSQLResult</name> <message> - <location line="-935"/> + <location line="-969"/> <source>Unable to fetch data</source> <translation>Es konnten keine Daten abgeholt werden</translation> </message> @@ -2781,18 +2924,18 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Das Ergebnis konnte nicht gespeichert werden</translation> </message> <message> - <location line="+194"/> + <location line="+191"/> <location line="+8"/> <source>Unable to prepare statement</source> <translation>Der Befehl konnte nicht initialisiert werden</translation> </message> <message> - <location line="+36"/> + <location line="+37"/> <source>Unable to reset statement</source> <translation>Der Befehl konnte nicht zurĆ¼ckgesetzt werden</translation> </message> <message> - <location line="+87"/> + <location line="+86"/> <source>Unable to bind value</source> <translation>Der Wert konnte nicht gebunden werden</translation> </message> @@ -2813,7 +2956,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Die Ergebnisse des Befehls konnten nicht gespeichert werden</translation> </message> <message> - <location line="-257"/> + <location line="-253"/> <source>Unable to execute next query</source> <translation>Die folgende Abfrage kann nicht ausgefĆ¼hrt werden</translation> </message> @@ -2947,31 +3090,45 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> </message> </context> <context> + <name>QMenuBar</name> + <message> + <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+401"/> + <source>Actions</source> + <translation>Optionen</translation> + </message> +</context> +<context> <name>QMessageBox</name> <message> <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1964"/> - <location line="+852"/> + <location line="+847"/> <location filename="../src/gui/dialogs/qmessagebox.h" line="-52"/> <location line="+8"/> <source>OK</source> <translation>OK</translation> </message> <message> - <location line="+509"/> + <location line="+477"/> + <source><h3>About Qt</h3><p>This program uses Qt version %1.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source><p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+31"/> <source>About Qt</source> <translation>Ćber Qt</translation> </message> <message> - <location line="-508"/> + <location line="-512"/> <source>Help</source> <translation>Hilfe</translation> </message> <message> - <source><p>This program uses Qt version %1.</p></source> - <translation type="obsolete"><p>Dieses Programm verwendet Qt-Version %1.</p></translation> - </message> - <message> - <location line="-1100"/> + <location line="-1099"/> <source>Show Details...</source> <translation>Details einblenden...</translation> </message> @@ -2980,11 +3137,6 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <source>Hide Details...</source> <translation>Details ausblenden...</translation> </message> - <message> - <location line="+1573"/> - <source><h3>About Qt</h3><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://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p></source> - <translation><h3>Ćber Qt</h3><p>Dieses Programm verwendet Qt in Version %1.</p><p>Qt ist ein C++-Toolkit zur plattformĆ¼bergreifenden Anwendungsentwicklung.</p><p>Qt bietet Single-Source-Ćbertragbarkeit von MS&nbsp;Windows Ć¼ber Mac&nbsp;OS&nbsp;X bis zu Linux und alle groĆen kommerziellen Unix-Varianten. Zudem ist Qt fĆ¼r Embedded Linux und Windows CE fĆ¼r eingebettete Systeme verfĆ¼gbar.</p><p>Qt wird unter drei verschiedenen Lizenzen angeboten, um den WĆ¼nschen unserer Kunden zu entsprechen.</p><p>Qt unter unserer kommerziellen Lizenz dient der Entwicklung proprietƤrer/kommerzieller Software, deren Quelltexte Sie nicht offenlegen mƶchten, oder wenn sie auf andere Weise nicht den Vereinbarungen der GNU LGPL Version 2.1 oder der GNU GPL Version 3.0 erfĆ¼llen kƶnnen.</p><p>Qt unter der GNU LGPL Version 2.1 dient der Entwicklung von Qt-Anwendungen (proprietƤr oder quelloffen), sofern Sie den Vereinbarungen der GNU LGPL Version 2.1 entsprechen kƶnnen.</p><p>Qt unter der GNU General Public License Version 3.0 dient der Entwicklung von Qt-Anwendungen, die in Verbindung mit Software verwendet werden soll, die den Vereinbarungen der GNU GPL Version 3.0 entspricht, oder die aus anderen GrĆ¼nden den Bestimmungen der GNU GPL Version 3.0 unterliegen soll.</p><p>Auf <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> finden Sie eine Ćbersicht der Lizenzen.</p><p>Copyright (C) 2009 Nokia Corporation und/oder ihre Tochtergesellschaft(en).</p><p>Qt ist ein Produkt der Firma Nokia. Auf <a href="http://qt.nokia.com/">qt.nokia.com</a> erhalten Sie weitere Informationen.</p></translation> - </message> </context> <context> <name>QMultiInputContext</name> @@ -3143,30 +3295,38 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QNetworkAccessCacheBackend</name> <message> - <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/> + <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+66"/> <source>Error opening %1</source> <translation>%1 konnte nicht geƶffnet werden</translation> </message> </context> <context> + <name>QNetworkAccessDebugPipeBackend</name> + <message> + <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+195"/> + <source>Write error writing to %1: %2</source> + <translation>Fehler beim Schreiben zu %1: %2</translation> + </message> +</context> +<context> <name>QNetworkAccessFileBackend</name> <message> - <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/> + <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+100"/> <source>Request for opening non-local file %1</source> <translation>Anforderung zum Ćffnen einer Datei Ć¼ber Netzwerk %1</translation> </message> <message> - <location line="+42"/> + <location line="+45"/> <source>Error opening %1: %2</source> <translation>%1 konnte nicht geƶffnet werden: %2</translation> </message> <message> - <location line="+56"/> + <location line="+38"/> <source>Write error writing to %1: %2</source> <translation>Fehler beim Schreiben zur Datei %1: %2</translation> </message> <message> - <location line="+33"/> + <location line="+48"/> <source>Cannot open %1: Path is a directory</source> <translation>%1 kann nicht geƶffnet werden: Der Pfad spezifiziert ein Verzeichnis</translation> </message> @@ -3179,7 +3339,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QNetworkAccessFtpBackend</name> <message> - <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/> + <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+131"/> <source>No suitable proxy found</source> <translation>Es konnte kein geeigneter Proxy-Server gefunden werden</translation> </message> @@ -3189,7 +3349,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="+130"/> + <location line="+112"/> <source>Logging in to %1 failed: authentication required</source> <translation>Die Anmeldung bei %1 schlug fehl: Es ist eine Authentifizierung erforderlich</translation> </message> @@ -3207,7 +3367,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QNetworkAccessHttpBackend</name> <message> - <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/> + <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+585"/> <source>No suitable proxy found</source> <translation>Es konnte kein geeigneter Proxy-Server gefunden werden</translation> </message> @@ -3215,12 +3375,12 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QNetworkReply</name> <message> - <location line="+128"/> + <location line="+95"/> <source>Error downloading %1 - server replied: %2</source> <translation>Beim Herunterladen von %1 trat ein Fehler auf - Die Antwort des Servers ist: %2</translation> </message> <message> - <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/> + <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+77"/> <source>Protocol "%1" is unknown</source> <translation>Das Protokoll "%1" ist unbekannt</translation> </message> @@ -3228,8 +3388,8 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QNetworkReplyImpl</name> <message> - <location line="+432"/> - <location line="+22"/> + <location line="+519"/> + <location line="+28"/> <source>Operation canceled</source> <translation>Operation abgebrochen</translation> </message> @@ -3237,7 +3397,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="+2069"/> + <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2076"/> <source>Unable to logon</source> <translation>Logon-Vorgang fehlgeschlagen</translation> </message> @@ -3266,7 +3426,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QOCIResult</name> <message> - <location line="-963"/> + <location line="-972"/> <location line="+161"/> <location line="+15"/> <source>Unable to bind column for batch execute</source> @@ -3278,7 +3438,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Der Stapelverarbeitungs-Befehl konnte nicht ausgefĆ¼hrt werden</translation> </message> <message> - <location line="+302"/> + <location line="+304"/> <source>Unable to goto next</source> <translation>Kann nicht zum nƤchsten Element gehen</translation> </message> @@ -3293,13 +3453,14 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Der Befehl konnte nicht initialisiert werden</translation> </message> <message> - <location line="+36"/> - <source>Unable to bind value</source> - <translation>Der Wert konnte nicht gebunden werden</translation> + <location line="+26"/> + <source>Unable to get statement type</source> + <translation>Der Anweisungstyp kann nicht bestimmt werden</translation> </message> <message> - <source>Unable to execute select statement</source> - <translation type="obsolete">Die 'select'-Abfrage konnte nicht ausgefĆ¼hrt werden</translation> + <location line="+20"/> + <source>Unable to bind value</source> + <translation>Der Wert konnte nicht gebunden werden</translation> </message> <message> <location line="+19"/> @@ -3310,17 +3471,12 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QODBCDriver</name> <message> - <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1781"/> + <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1790"/> <source>Unable to connect</source> <translation>Es kann keine Verbindung aufgebaut werden</translation> </message> <message> - <location line="+6"/> - <source>Unable to connect - Driver doesn't support all needed functionality</source> - <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="+242"/> + <location line="+238"/> <source>Unable to disable autocommit</source> <translation>'autocommit' konnte nicht deaktiviert werden</translation> </message> @@ -3339,28 +3495,33 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <source>Unable to enable autocommit</source> <translation>'autocommit' konnte nicht aktiviert werden</translation> </message> + <message> + <location line="-281"/> + <source>Unable to connect - Driver doesn't support all functionality required</source> + <translation>Es kann keine Verbindung aufgebaut werden weil der Treiber die benƶtigte FunktionalitƤt nicht vollstƤndig unterstĆ¼tzt</translation> + </message> </context> <context> <name>QODBCResult</name> <message> - <location line="-1218"/> - <location line="+349"/> + <location line="-932"/> + <location line="+346"/> <source>QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration</source> <translation>QODBCResult::reset: 'SQL_CURSOR_STATIC' 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="+626"/> + <location line="-329"/> + <location line="+623"/> <source>Unable to execute statement</source> <translation>Der Befehl konnte nicht ausgefĆ¼hrt werden</translation> </message> <message> - <location line="-555"/> + <location line="-547"/> <source>Unable to fetch next</source> <translation>Der nƤchste Datensatz konnte nicht abgeholt werden</translation> </message> <message> - <location line="+279"/> + <location line="+271"/> <source>Unable to prepare statement</source> <translation>Der Befehl konnte nicht initialisiert werden</translation> </message> @@ -3370,14 +3531,14 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <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="-475"/> - <location line="+578"/> + <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+190"/> + <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-467"/> + <location line="+576"/> <source>Unable to fetch last</source> <translation>Der letzte Datensatz konnte nicht abgeholt werden</translation> </message> <message> - <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/> + <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-670"/> <source>Unable to fetch</source> <translation>Es konnten keine Daten abgeholt werden</translation> </message> @@ -3395,9 +3556,9 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QObject</name> <message> - <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/> - <source>Home</source> - <translation>Pos1</translation> + <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="-101"/> + <source>Invalid hostname</source> + <translation>UngĆ¼ltiger Rechnername</translation> </message> <message> <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/> @@ -3405,22 +3566,12 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Diese Operation wird von %1 nicht unterstĆ¼tzt</translation> </message> <message> - <location line="+53"/> + <location line="+57"/> <source>Invalid URI: %1</source> <translation>UngĆ¼ltiger URI: %1</translation> </message> <message> - <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> - <message> - <location line="+57"/> - <source>Read error reading from %1: %2</source> - <translation>Beim Lesen von der Datei %1 trat ein Fehler auf: %2</translation> - </message> - <message> - <location line="+31"/> + <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+60"/> <source>Socket error on %1: %2</source> <translation>Socket-Fehler bei %1: %2</translation> </message> @@ -3430,13 +3581,8 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Der entfernte Rechner hat die Verbindung zu %1 vorzeitig beendet</translation> </message> <message> - <location line="+53"/> - <source>Protocol error: packet of size 0 received</source> - <translation>Protokollfehler: Ein leeres Datenpaket wurde empfangen</translation> - </message> - <message> - <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/> - <location line="+57"/> + <location filename="../src/network/kernel/qhostinfo.cpp" line="+175"/> + <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+0"/> <source>No host name given</source> <translation>Es wurde kein Hostname angegeben</translation> </message> @@ -3444,7 +3590,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QPPDOptionsModel</name> <message> - <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1197"/> + <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1198"/> <source>Name</source> <translation>Name</translation> </message> @@ -3457,7 +3603,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="+763"/> + <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+782"/> <source>Unable to connect</source> <translation>Es kann keine Verbindung aufgebaut werden</translation> </message> @@ -3467,7 +3613,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Es konnte keine Transaktion gestartet werden</translation> </message> <message> - <location line="+17"/> + <location line="+30"/> <source>Could not commit transaction</source> <translation>Die Transaktion konnte nicht durchgefĆ¼hrt werden (Operation 'commit' fehlgeschlagen)</translation> </message> @@ -3477,7 +3623,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Die Transaktion konnte nicht rĆ¼ckgƤngig gemacht werden (Operation 'rollback' fehlgeschlagen)</translation> </message> <message> - <location line="+358"/> + <location line="+374"/> <source>Unable to subscribe</source> <translation>Die Registrierung schlug fehl</translation> </message> @@ -3490,12 +3636,12 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QPSQLResult</name> <message> - <location line="-1058"/> + <location line="-1085"/> <source>Unable to create query</source> <translation>Es konnte keine Abfrage erzeugt werden</translation> </message> <message> - <location line="+374"/> + <location line="+372"/> <source>Unable to prepare statement</source> <translation>Der Befehl konnte nicht initialisiert werden</translation> </message> @@ -3611,7 +3757,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Unbekannter Fehler</translation> </message> <message> - <location line="-68"/> + <location line="-113"/> <source>The plugin was not loaded.</source> <translation>Das Plugin wurde nicht geladen.</translation> </message> @@ -3619,7 +3765,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <context> <name>QPrintDialog</name> <message> - <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/> + <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+108"/> <source>locally connected</source> <translation>direkt verbunden</translation> </message> @@ -3636,7 +3782,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>unbekannt</translation> </message> <message> - <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/> + <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+259"/> <source>OK</source> <translation>OK</translation> </message> @@ -3806,7 +3952,7 @@ Mƶchten Sie die Datei trotzdem lƶschen?</translation> <translation>Auswahl drucken</translation> </message> <message> - <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/> + <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+112"/> <location line="+13"/> <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/> <source>Print</source> @@ -4048,17 +4194,17 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QPrintPreviewDialog</name> <message> - <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/> + <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+246"/> <source>%1%</source> <translation>%1%</translation> </message> <message> - <location line="+79"/> + <location line="+68"/> <source>Print Preview</source> <translation>Druckvorschau</translation> </message> <message> - <location line="+29"/> + <location line="+30"/> <source>Next page</source> <translation>NƤchste Seite</translation> </message> @@ -4133,12 +4279,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Seite einrichten</translation> </message> <message> - <location line="+1"/> - <source>Close</source> - <translation>SchlieĆen</translation> - </message> - <message> - <location line="+151"/> + <location line="+150"/> <source>Export to PDF</source> <translation>PDF exportieren</translation> </message> @@ -4321,28 +4462,28 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QProcess</name> <message> - <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/> - <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/> + <location filename="../src/corelib/io/qprocess_unix.cpp" line="+402"/> + <location filename="../src/corelib/io/qprocess_win.cpp" line="+137"/> <source>Could not open input redirection for reading</source> <translation>Die Eingabeumleitung konnte nicht zum Lesen geƶffnet werden</translation> </message> <message> <location line="+12"/> - <location filename="../src/corelib/io/qprocess_win.cpp" line="+36"/> + <location filename="../src/corelib/io/qprocess_win.cpp" line="+20"/> <source>Could not open output redirection for writing</source> <translation>Die Ausgabeumleitung konnte nicht zum Lesen geƶffnet werden</translation> </message> <message> - <location line="+235"/> + <location line="+239"/> <source>Resource error (fork failure): %1</source> <translation>Ressourcenproblem ("fork failure"): %1</translation> </message> <message> - <location line="+259"/> - <location line="+53"/> + <location line="+252"/> + <location line="+52"/> <location line="+74"/> - <location line="+67"/> - <location filename="../src/corelib/io/qprocess_win.cpp" line="+422"/> + <location line="+66"/> + <location filename="../src/corelib/io/qprocess_win.cpp" line="+406"/> <location line="+50"/> <location line="+75"/> <location line="+42"/> @@ -4351,7 +4492,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>ZeitĆ¼berschreitung</translation> </message> <message> - <location filename="../src/corelib/io/qprocess.cpp" line="+533"/> + <location filename="../src/corelib/io/qprocess.cpp" line="+851"/> <location line="+52"/> <location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/> <location line="+50"/> @@ -4360,31 +4501,31 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> </message> <message> <location line="+47"/> - <location line="+779"/> + <location line="+826"/> <location filename="../src/corelib/io/qprocess_win.cpp" line="+140"/> <source>Error writing to process</source> <translation>Das Schreiben zum Prozess schlug fehl</translation> </message> <message> - <location line="-709"/> + <location line="-756"/> <source>Process crashed</source> <translation>Der Prozess ist abgestĆ¼rzt</translation> </message> <message> - <location line="+912"/> + <location line="+959"/> <source>No program defined</source> <translation>Es wurde kein Programm angegeben</translation> </message> <message> - <location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/> - <source>Process failed to start</source> - <translation>Das Starten des Prozesses schlug fehl</translation> + <location filename="../src/corelib/io/qprocess_win.cpp" line="-360"/> + <source>Process failed to start: %1</source> + <translation>Das Starten des Prozesses schlug fehl: %1</translation> </message> </context> <context> <name>QProgressDialog</name> <message> - <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/> + <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+196"/> <source>Cancel</source> <translation>Abbrechen</translation> </message> @@ -4408,7 +4549,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QRegExp</name> <message> - <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/> + <location filename="../src/corelib/tools/qregexp.cpp" line="+65"/> <source>no error occurred</source> <translation>kein Fehler</translation> </message> @@ -4452,12 +4593,22 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <source>met internal limit</source> <translation>internes Limit erreicht</translation> </message> + <message> + <location line="+1"/> + <source>invalid interval</source> + <translation>ungĆ¼ltiges Intervall</translation> + </message> + <message> + <location line="+1"/> + <source>invalid category</source> + <translation>ungĆ¼ltige Kategorie</translation> + </message> </context> <context> <name>QSQLite2Driver</name> <message> - <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/> - <source>Error to open database</source> + <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+391"/> + <source>Error opening database</source> <translation>Die Datenbankverbindung konnte nicht geƶffnet werden</translation> </message> <message> @@ -4472,19 +4623,19 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> </message> <message> <location line="+17"/> - <source>Unable to rollback Transaction</source> - <translation>Die Transaktion konnte nicht rĆ¼ckgƤngig gemacht werden (Operation 'rollback' fehlgeschlagen)</translation> + <source>Unable to rollback transaction</source> + <translation>Die Transaktion kann nicht rĆ¼ckgƤngig gemacht werden</translation> </message> </context> <context> <name>QSQLite2Result</name> <message> - <location line="-323"/> + <location line="-319"/> <source>Unable to fetch results</source> <translation>Das Ergebnis konnte nicht abgeholt werden</translation> </message> <message> - <location line="+147"/> + <location line="+143"/> <source>Unable to execute statement</source> <translation>Der Befehl konnte nicht ausgefĆ¼hrt werden</translation> </message> @@ -4492,7 +4643,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QSQLiteDriver</name> <message> - <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/> + <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+544"/> <source>Error opening database</source> <translation>Die Datenbankverbindung konnte nicht geƶffnet werden</translation> </message> @@ -4520,14 +4671,14 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QSQLiteResult</name> <message> - <location line="-400"/> + <location line="-408"/> <location line="+66"/> <location line="+8"/> <source>Unable to fetch row</source> <translation>Der Datensatz konnte nicht abgeholt werden</translation> </message> <message> - <location line="+63"/> + <location line="+59"/> <source>Unable to execute statement</source> <translation>Der Befehl konnte nicht ausgefĆ¼hrt werden</translation> </message> @@ -4547,15 +4698,353 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Die Anzahl der Parameter ist falsch</translation> </message> <message> - <location line="-208"/> + <location line="-204"/> <source>No query</source> <translation>Kein Abfrage</translation> </message> </context> <context> + <name>QScriptBreakpointsModel</name> + <message> + <location filename="../src/scripttools/debugging/qscriptbreakpointsmodel.cpp" line="+455"/> + <source>ID</source> + <translation>ID</translation> + </message> + <message> + <location line="+2"/> + <source>Location</source> + <translation>Stelle</translation> + </message> + <message> + <location line="+2"/> + <source>Condition</source> + <translation>Bedingung</translation> + </message> + <message> + <location line="+2"/> + <source>Ignore-count</source> + <translation>Auslƶsen nach</translation> + </message> + <message> + <location line="+2"/> + <source>Single-shot</source> + <translation>Einmal auslƶsen</translation> + </message> + <message> + <location line="+2"/> + <source>Hit-count</source> + <translation>Ausgelƶst</translation> + </message> +</context> +<context> + <name>QScriptBreakpointsWidget</name> + <message> + <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="+298"/> + <source>New</source> + <translation>Neu</translation> + </message> + <message> + <location line="+6"/> + <source>Delete</source> + <translation>Lƶschen</translation> + </message> +</context> +<context> + <name>QScriptDebugger</name> + <message> + <location filename="../src/scripttools/debugging/qscriptdebugger.cpp" line="+885"/> + <location line="+1013"/> + <source>Go to Line</source> + <translation>Gehe zu Zeile</translation> + </message> + <message> + <location line="-1012"/> + <source>Line:</source> + <translation>Zeile:</translation> + </message> + <message> + <location line="+791"/> + <source>Interrupt</source> + <translation>Unterbrechen</translation> + </message> + <message> + <location line="+2"/> + <source>Shift+F5</source> + <translation>Shift+F5</translation> + </message> + <message> + <location line="+15"/> + <source>Continue</source> + <translation>Weiter</translation> + </message> + <message> + <location line="+2"/> + <source>F5</source> + <translation>F5</translation> + </message> + <message> + <location line="+15"/> + <source>Step Into</source> + <translation>Einzelschritt herein</translation> + </message> + <message> + <location line="+2"/> + <source>F11</source> + <translation>F11</translation> + </message> + <message> + <location line="+15"/> + <source>Step Over</source> + <translation>Einzelschritt Ć¼ber</translation> + </message> + <message> + <location line="+2"/> + <source>F10</source> + <translation>F10</translation> + </message> + <message> + <location line="+15"/> + <source>Step Out</source> + <translation>Einzelschritt heraus</translation> + </message> + <message> + <location line="+2"/> + <source>Shift+F11</source> + <translation>Shift+F11</translation> + </message> + <message> + <location line="+15"/> + <source>Run to Cursor</source> + <translation>Bis Cursor ausfĆ¼hren</translation> + </message> + <message> + <location line="+2"/> + <source>Ctrl+F10</source> + <translation>Ctrl+F10</translation> + </message> + <message> + <location line="+16"/> + <source>Run to New Script</source> + <translation>Bis zu neuem Skript ausfĆ¼hren</translation> + </message> + <message> + <location line="+15"/> + <source>Toggle Breakpoint</source> + <translation>Haltepunkt umschalten</translation> + </message> + <message> + <location line="+1"/> + <source>F9</source> + <translation>F9</translation> + </message> + <message> + <location line="+14"/> + <source>Clear Debug Output</source> + <translation>Debug-Ausgabe lƶschen</translation> + </message> + <message> + <location line="+13"/> + <source>Clear Error Log</source> + <translation>Fehlerausgabe lƶschen</translation> + </message> + <message> + <location line="+13"/> + <source>Clear Console</source> + <translation>Konsole lƶschen</translation> + </message> + <message> + <location line="+14"/> + <source>&Find in Script...</source> + <translation>&Suche im Skript...</translation> + </message> + <message> + <location line="+1"/> + <source>Ctrl+F</source> + <translation>Ctrl+F</translation> + </message> + <message> + <location line="+17"/> + <source>Find &Next</source> + <translation>&NƤchste Fundstelle</translation> + </message> + <message> + <location line="+2"/> + <source>F3</source> + <translation>F3</translation> + </message> + <message> + <location line="+13"/> + <source>Find &Previous</source> + <translation>Vorhergehende Fundstelle</translation> + </message> + <message> + <location line="+2"/> + <source>Shift+F3</source> + <translation>Shift+F3</translation> + </message> + <message> + <location line="+14"/> + <source>Ctrl+G</source> + <translation>Ctrl+G</translation> + </message> + <message> + <location line="+11"/> + <source>Debug</source> + <translation>Debuggen</translation> + </message> +</context> +<context> + <name>QScriptDebuggerCodeFinderWidget</name> + <message> + <location filename="../src/scripttools/debugging/qscriptdebuggercodefinderwidget.cpp" line="+141"/> + <source>Close</source> + <translation>SchlieĆen</translation> + </message> + <message> + <location line="+13"/> + <source>Previous</source> + <translation>Vorige</translation> + </message> + <message> + <location line="+7"/> + <source>Next</source> + <translation>NƤchste</translation> + </message> + <message> + <location line="+5"/> + <source>Case Sensitive</source> + <translation>GroĆ/Kleinschreibung beachten</translation> + </message> + <message> + <location line="+3"/> + <source>Whole words</source> + <translation>Ganze Worte</translation> + </message> + <message> + <location line="+9"/> + <source><img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped</source> + <translation><img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Die Suche hat das Ende erreicht</translation> + </message> +</context> +<context> + <name>QScriptDebuggerLocalsModel</name> + <message> + <location filename="../src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp" line="+872"/> + <source>Name</source> + <translation>Name</translation> + </message> + <message> + <location line="+2"/> + <source>Value</source> + <translation>Wert</translation> + </message> +</context> +<context> + <name>QScriptDebuggerStackModel</name> + <message> + <location filename="../src/scripttools/debugging/qscriptdebuggerstackmodel.cpp" line="+161"/> + <source>Level</source> + <translation>Ebene</translation> + </message> + <message> + <location line="+2"/> + <source>Name</source> + <translation>Name</translation> + </message> + <message> + <location line="+2"/> + <source>Location</source> + <translation>Stelle</translation> + </message> +</context> +<context> + <name>QScriptEdit</name> + <message> + <location filename="../src/scripttools/debugging/qscriptedit.cpp" line="+411"/> + <source>Toggle Breakpoint</source> + <translation>Haltepunkt umschalten</translation> + </message> + <message> + <location line="+2"/> + <source>Disable Breakpoint</source> + <translation>Haltepunkt deaktivieren</translation> + </message> + <message> + <location line="+1"/> + <source>Enable Breakpoint</source> + <translation>Haltepunkt aktivieren</translation> + </message> + <message> + <location line="+4"/> + <source>Breakpoint Condition:</source> + <translation>Bedingung:</translation> + </message> +</context> +<context> + <name>QScriptEngineDebugger</name> + <message> + <location filename="../src/scripttools/debugging/qscriptenginedebugger.cpp" line="+523"/> + <source>Loaded Scripts</source> + <translation>Geladene Skripte</translation> + </message> + <message> + <location line="+6"/> + <source>Breakpoints</source> + <translation>Haltepunkte</translation> + </message> + <message> + <location line="+6"/> + <source>Stack</source> + <translation>Stapel</translation> + </message> + <message> + <location line="+6"/> + <source>Locals</source> + <translation>Lokale Variablen</translation> + </message> + <message> + <location line="+6"/> + <source>Console</source> + <translation>Konsole</translation> + </message> + <message> + <location line="+6"/> + <source>Debug Output</source> + <translation>Debug-Ausgabe</translation> + </message> + <message> + <location line="+6"/> + <source>Error Log</source> + <translation>Fehlerausgabe</translation> + </message> + <message> + <location line="+12"/> + <source>Search</source> + <translation>Suche</translation> + </message> + <message> + <location line="+7"/> + <source>View</source> + <translation>Ansicht</translation> + </message> + <message> + <location line="+18"/> + <source>Qt Script Debugger</source> + <translation>Qt Script Debugger</translation> + </message> +</context> +<context> + <name>QScriptNewBreakpointWidget</name> + <message> + <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="-223"/> + <source>Close</source> + <translation>SchlieĆen</translation> + </message> +</context> +<context> <name>QScrollBar</name> <message> - <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/> + <location filename="../src/gui/widgets/qscrollbar.cpp" line="+454"/> <source>Scroll here</source> <translation>Hierher scrollen</translation> </message> @@ -4640,13 +5129,13 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QSharedMemory</name> <message> - <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+288"/> + <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+304"/> <source>%1: create size is less then 0</source> <translation>%1: Die GrƶĆenangabe fĆ¼r die Erzeugung ist kleiner als Null</translation> </message> <message> <location line="+168"/> - <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/> + <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+155"/> <source>%1: unable to lock</source> <translation>%1: Sperrung fehlgeschlagen</translation> </message> @@ -4656,58 +5145,68 @@ 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="+78"/> + <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="+83"/> + <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+80"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/> <source>%1: permission denied</source> <translation>%1: Zugriff verweigert</translation> </message> <message> - <location line="+4"/> + <location line="-16"/> + <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+4"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-22"/> <source>%1: already exists</source> <translation>%1: existiert bereits</translation> </message> <message> <location line="+4"/> - <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+9"/> <source>%1: doesn't exists</source> <translation>%1: existiert nicht</translation> </message> <message> - <location line="+6"/> - <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+9"/> + <location line="+8"/> + <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+10"/> + <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+18"/> <source>%1: out of resources</source> <translation>%1: Keine Ressourcen mehr verfĆ¼gbar</translation> </message> <message> - <location line="+4"/> + <location line="+7"/> + <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+4"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+7"/> <source>%1: unknown error %2</source> <translation>%1: Unbekannter Fehler %2</translation> </message> <message> - <location line="+21"/> + <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+21"/> <source>%1: key is empty</source> <translation>%1: UngĆ¼ltige SchlĆ¼sselangabe (leer)</translation> </message> <message> - <location line="+8"/> - <source>%1: unix key file doesn't exists</source> - <translation>%1: Die Unix-SchlĆ¼sseldatei existiert nicht</translation> - </message> - <message> - <location line="+7"/> + <location line="+15"/> <source>%1: ftok failed</source> <translation>%1: ftok-Aufruf schlug fehl</translation> </message> <message> - <location line="+51"/> + <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="+56"/> + <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+51"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+15"/> <source>%1: unable to make key</source> <translation>%1: Es kann kein SchlĆ¼ssel erzeugt werden</translation> </message> <message> - <location line="+20"/> + <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="-97"/> + <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-31"/> + <source>%1: doesn't exist</source> + <translation>%1: existiert nicht</translation> + </message> + <message> + <location line="+39"/> + <source>%1: UNIX key file doesn't exist</source> + <translation>%1: Die Unix-SchlĆ¼sseldatei existiert nicht</translation> + </message> + <message> + <location line="+78"/> <source>%1: system-imposed size restrictions</source> <translation>%1: Ein systembedingtes Limit der GrƶĆe wurde erreicht</translation> </message> @@ -4717,17 +5216,19 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>%1: nicht verbunden</translation> </message> <message> - <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-27"/> + <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="-67"/> + <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+4"/> <source>%1: invalid size</source> <translation>%1: UngĆ¼ltige GrƶĆe</translation> </message> <message> - <location line="+68"/> + <location line="+40"/> + <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+63"/> <source>%1: key error</source> <translation>%1: Fehlerhafter SchlĆ¼ssel</translation> </message> <message> - <location line="+38"/> + <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+32"/> <source>%1: size query failed</source> <translation>%1: Die Abfrage der GrƶĆe schlug fehl</translation> </message> @@ -4740,7 +5241,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QShortcut</name> <message> - <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/> + <location filename="../src/gui/kernel/qkeysequence.cpp" line="+393"/> <source>Space</source> <translation>Leertaste</translation> </message> @@ -5165,41 +5666,41 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Umdrehen</translation> </message> <message> - <location line="+527"/> - <location line="+122"/> + <location line="+561"/> + <location line="+135"/> <source>Ctrl</source> <translation>Strg</translation> </message> <message> - <location line="-121"/> - <location line="+125"/> + <location line="-134"/> + <location line="+138"/> <source>Shift</source> <translation>Umschalt</translation> </message> <message> - <location line="-124"/> - <location line="+122"/> + <location line="-137"/> + <location line="+135"/> <source>Alt</source> <translation>Alt</translation> </message> <message> - <location line="-121"/> - <location line="+117"/> + <location line="-134"/> + <location line="+130"/> <source>Meta</source> <translation>Meta</translation> </message> <message> - <location line="-25"/> + <location line="-40"/> <source>+</source> <translation>+</translation> </message> <message> - <location line="+46"/> + <location line="+61"/> <source>F%1</source> <translation>F%1</translation> </message> <message> - <location line="-720"/> + <location line="-767"/> <source>Home Page</source> <translation>Startseite</translation> </message> @@ -5306,6 +5807,39 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> </message> </context> <context> + <name>QSoftKeyManager</name> + <message> + <location filename="../src/gui/kernel/qsoftkeymanager.cpp" line="+78"/> + <source>Ok</source> + <translation>Ok</translation> + </message> + <message> + <location line="+3"/> + <source>Select</source> + <translation>AuswƤhlen</translation> + </message> + <message> + <location line="+3"/> + <source>Done</source> + <translation>Fertig</translation> + </message> + <message> + <location line="+3"/> + <source>Options</source> + <translation>Optionen</translation> + </message> + <message> + <location line="+3"/> + <source>Cancel</source> + <translation>Abbrechen</translation> + </message> + <message> + <location line="+152"/> + <source>Exit</source> + <translation>Beenden</translation> + </message> +</context> +<context> <name>QSpinBox</name> <message> <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-574"/> @@ -5378,7 +5912,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QSslSocket</name> <message> - <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+569"/> + <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+546"/> <source>Unable to write data: %1</source> <translation>Die Daten konnten nicht geschrieben werden: %1</translation> </message> @@ -5393,7 +5927,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Im Ablauf des SSL-Protokolls ist ein Fehler aufgetreten: %1</translation> </message> <message> - <location line="-524"/> + <location line="-501"/> <source>Error creating SSL context (%1)</source> <translation>Es konnte keine SSL-Kontextstruktur erzeugt werden (%1)</translation> </message> @@ -5434,6 +5968,29 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> </message> </context> <context> + <name>QStateMachine</name> + <message> + <location filename="../src/corelib/statemachine/qstatemachine.cpp" line="+998"/> + <source>Missing initial state in compound state '%1'</source> + <translation>Der Anfangszustand des zusammengesetzten Zustands '%1' fehlt</translation> + </message> + <message> + <location line="+7"/> + <source>Missing default state in history state '%1'</source> + <translation>Der Anfangszustand im Verlauf bei Zustand '%1' fehlt</translation> + </message> + <message> + <location line="+7"/> + <source>No common ancestor for targets and source of transition from state '%1'</source> + <translation>Die Ziele und die Quelle des Ćbergangs vom Zustand '%1' haben keinen gemeinsamen Ursprung</translation> + </message> + <message> + <location line="+4"/> + <source>Unknown error</source> + <translation>Unbekannter Fehler</translation> + </message> +</context> +<context> <name>QSystemSemaphore</name> <message> <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-46"/> @@ -5501,7 +6058,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QTextControl</name> <message> - <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/> + <location filename="../src/gui/text/qtextcontrol.cpp" line="+2001"/> <source>&Undo</source> <translation>&RĆ¼ckgƤngig</translation> </message> @@ -5559,7 +6116,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QUdpSocket</name> <message> - <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/> + <location filename="../src/network/socket/qudpsocket.cpp" line="+179"/> <source>This platform does not support IPv6</source> <translation>Diese Plattform unterstĆ¼tzt kein IPv6</translation> </message> @@ -5567,7 +6124,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QUndoGroup</name> <message> - <location filename="../src/gui/util/qundogroup.cpp" line="+386"/> + <location filename="../src/gui/util/qundogroup.cpp" line="+385"/> <source>Undo</source> <translation>RĆ¼ckgƤngig</translation> </message> @@ -5588,7 +6145,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QUndoStack</name> <message> - <location filename="../src/gui/util/qundostack.cpp" line="+834"/> + <location filename="../src/gui/util/qundostack.cpp" line="+832"/> <source>Undo</source> <translation>RĆ¼ckgƤngig</translation> </message> @@ -5659,12 +6216,12 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QWebFrame</name> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+706"/> <source>Request cancelled</source> <translation>Anfrage wurde abgebrochen</translation> </message> <message> - <location line="+17"/> + <location line="+19"/> <source>Request blocked</source> <translation>Anfrage wurde abgewiesen</translation> </message> @@ -5675,7 +6232,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> </message> <message> <location line="+6"/> - <source>Frame load interruped by policy change</source> + <source>Frame load interrupted by policy change</source> <translation>Das Laden des Rahmens wurde durch eine Ćnderung der Richtlinien unterbrochen</translation> </message> <message> @@ -5692,7 +6249,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QWebPage</name> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+42"/> + <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+41"/> <source>Submit</source> <comment>default label for Submit buttons in forms on web pages</comment> <translation>Senden</translation> @@ -5933,18 +6490,252 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> </message> <message> <location line="+5"/> - <source>LTR</source> + <source>Left to Right</source> <comment>Left to Right context menu item</comment> <translation>Von links nach rechts</translation> </message> <message> <location line="+5"/> - <source>RTL</source> + <source>Right to Left</source> <comment>Right to Left context menu item</comment> <translation>Von rechts nach links</translation> </message> <message> + <location line="+105"/> + <source>Loading...</source> + <comment>Media controller status message when the media is loading</comment> + <translation>LƤdt...</translation> + </message> + <message> <location line="+5"/> + <source>Live Broadcast</source> + <comment>Media controller status message when watching a live broadcast</comment> + <translation>Live-Ćbertragung</translation> + </message> + <message> + <location line="+8"/> + <source>Audio Element</source> + <comment>Media controller element</comment> + <translation>Audio-Element</translation> + </message> + <message> + <location line="+2"/> + <source>Video Element</source> + <comment>Media controller element</comment> + <translation>Video-Element</translation> + </message> + <message> + <location line="+2"/> + <source>Mute Button</source> + <comment>Media controller element</comment> + <translation>Stummschalttaste</translation> + </message> + <message> + <location line="+2"/> + <source>Unmute Button</source> + <comment>Media controller element</comment> + <translation>Abstelltaste fĆ¼r Stummschaltung</translation> + </message> + <message> + <location line="+2"/> + <source>Play Button</source> + <comment>Media controller element</comment> + <translation>Abspielknopf</translation> + </message> + <message> + <location line="+2"/> + <source>Pause Button</source> + <comment>Media controller element</comment> + <translation>Pause-Knopf</translation> + </message> + <message> + <location line="+2"/> + <source>Slider</source> + <comment>Media controller element</comment> + <translation>Schieberegler</translation> + </message> + <message> + <location line="+2"/> + <source>Slider Thumb</source> + <comment>Media controller element</comment> + <translation>Schieberegler-Griff</translation> + </message> + <message> + <location line="+2"/> + <source>Rewind Button</source> + <comment>Media controller element</comment> + <translation>RĆ¼ckspultaste</translation> + </message> + <message> + <location line="+2"/> + <source>Return to Real-time Button</source> + <comment>Media controller element</comment> + <translation>Kehre zu Echtzeit zurĆ¼ck</translation> + </message> + <message> + <location line="+2"/> + <source>Elapsed Time</source> + <comment>Media controller element</comment> + <translation>Spielzeit</translation> + </message> + <message> + <location line="+2"/> + <source>Remaining Time</source> + <comment>Media controller element</comment> + <translation>Verbleibende Zeit</translation> + </message> + <message> + <location line="+2"/> + <source>Status Display</source> + <comment>Media controller element</comment> + <translation>Statusanzeige</translation> + </message> + <message> + <location line="+2"/> + <source>Fullscreen Button</source> + <comment>Media controller element</comment> + <translation>Vollbild-Taste</translation> + </message> + <message> + <location line="+2"/> + <source>Seek Forward Button</source> + <comment>Media controller element</comment> + <translation>Vorlauftaste</translation> + </message> + <message> + <location line="+2"/> + <source>Seek Back Button</source> + <comment>Media controller element</comment> + <translation>RĆ¼cklauftaste</translation> + </message> + <message> + <location line="+8"/> + <source>Audio element playback controls and status display</source> + <comment>Media controller element</comment> + <translation>Audio-Steuerung und Statusanzeige</translation> + </message> + <message> + <location line="+2"/> + <source>Video element playback controls and status display</source> + <comment>Media controller element</comment> + <translation>Video-Steuerung und Statusanzeige</translation> + </message> + <message> + <location line="+2"/> + <source>Mute audio tracks</source> + <comment>Media controller element</comment> + <translation>Schalte Tonspuren stumm</translation> + </message> + <message> + <location line="+2"/> + <source>Unmute audio tracks</source> + <comment>Media controller element</comment> + <translation>Stummschaltung der Tonspuren aufheben</translation> + </message> + <message> + <location line="+2"/> + <source>Begin playback</source> + <comment>Media controller element</comment> + <translation>Abspielen</translation> + </message> + <message> + <location line="+2"/> + <source>Pause playback</source> + <comment>Media controller element</comment> + <translation>Pause</translation> + </message> + <message> + <location line="+2"/> + <source>Movie time scrubber</source> + <comment>Media controller element</comment> + <translation>Abspielzeit</translation> + </message> + <message> + <location line="+2"/> + <source>Movie time scrubber thumb</source> + <comment>Media controller element</comment> + <translation>Griff zur Einstellung der Abspielzeit</translation> + </message> + <message> + <location line="+2"/> + <source>Rewind movie</source> + <comment>Media controller element</comment> + <translation>Film zurĆ¼ckspulen</translation> + </message> + <message> + <location line="+2"/> + <source>Return streaming movie to real-time</source> + <comment>Media controller element</comment> + <translation>Setze Film auf Echtzeit zurĆ¼ck</translation> + </message> + <message> + <location line="+2"/> + <source>Current movie time</source> + <comment>Media controller element</comment> + <translation>Abspielzeit des Films</translation> + </message> + <message> + <location line="+2"/> + <source>Remaining movie time</source> + <comment>Media controller element</comment> + <translation>Verbleibende Zeit des Films</translation> + </message> + <message> + <location line="+2"/> + <source>Current movie status</source> + <comment>Media controller element</comment> + <translation>Status des Films</translation> + </message> + <message> + <location line="+2"/> + <source>Play movie in full-screen mode</source> + <comment>Media controller element</comment> + <translation>FIlm im Vollbildmodus abspielen</translation> + </message> + <message> + <location line="+2"/> + <source>Seek quickly back</source> + <comment>Media controller element</comment> + <translation>Schnelles RĆ¼ckwƤrtssuchen</translation> + </message> + <message> + <location line="+2"/> + <source>Seek quickly forward</source> + <comment>Media controller element</comment> + <translation>Schnelles VorwƤrtssuchen</translation> + </message> + <message> + <location line="+9"/> + <source>Indefinite time</source> + <comment>Media time description</comment> + <translation>Unbegrenzte Zeit</translation> + </message> + <message> + <location line="+9"/> + <source>%1 days %2 hours %3 minutes %4 seconds</source> + <comment>Media time description</comment> + <translation>%1 Tage %2 Stunden %3 Minuten %4 Sekunden</translation> + </message> + <message> + <location line="+4"/> + <source>%1 hours %2 minutes %3 seconds</source> + <comment>Media time description</comment> + <translation>%1 Stunden %2 Minuten %3 Sekunden</translation> + </message> + <message> + <location line="+4"/> + <source>%1 minutes %2 seconds</source> + <comment>Media time description</comment> + <translation>%1 Minuten %2 Sekunden</translation> + </message> + <message> + <location line="+3"/> + <source>%1 seconds</source> + <comment>Media time description</comment> + <translation>%1 Sekunden</translation> + </message> + <message> + <location line="-210"/> <source>Inspect</source> <comment>Inspect Element context menu item</comment> <translation>PrĆ¼fen</translation> @@ -5974,7 +6765,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Unbekannt</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="+170"/> <source>Web Inspector - %2</source> <translation>Web Inspector - %2</translation> </message> @@ -5985,7 +6776,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>%1 (%2x%3 Pixel)</translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+384"/> + <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+416"/> <source>Bad HTTP request</source> <translation>UngĆ¼ltige HTTP-Anforderung</translation> </message> @@ -6070,7 +6861,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> </translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1726"/> <source>JavaScript Alert - %1</source> <translation>JavaScript-Hinweis - %1</translation> </message> @@ -6085,7 +6876,17 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>JavaScript-Eingabeaufforderung - %1</translation> </message> <message> - <location line="+340"/> + <location line="+25"/> + <source>JavaScript Problem - %1</source> + <translation>JavaScript-Problem - %1</translation> + </message> + <message> + <location line="+0"/> + <source>The script on this page appears to have a problem. Do you want to stop the script?</source> + <translation>Das Skript dieser Webseite ist fehlerhaft. Mƶchten Sie es anhalten?</translation> + </message> + <message> + <location line="+382"/> <source>Move the cursor to the next character</source> <translation>Positionsmarke auf folgendes Zeichen setzen</translation> </message> @@ -6229,11 +7030,76 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <source>Insert a new line</source> <translation>Neue Zeile einfĆ¼gen</translation> </message> + <message> + <location line="+4"/> + <source>Paste and Match Style</source> + <translation>EinfĆ¼gen und dem Stil anpassen</translation> + </message> + <message> + <location line="+3"/> + <source>Remove formatting</source> + <translation>Formatierung entfernen</translation> + </message> + <message> + <location line="+4"/> + <source>Strikethrough</source> + <translation>Durchgestrichen</translation> + </message> + <message> + <location line="+4"/> + <source>Subscript</source> + <translation>Tiefstellung</translation> + </message> + <message> + <location line="+4"/> + <source>Superscript</source> + <translation>Hochstellung</translation> + </message> + <message> + <location line="+4"/> + <source>Insert Bulleted List</source> + <translation>Liste mit Punkten einfĆ¼gen</translation> + </message> + <message> + <location line="+4"/> + <source>Insert Numbered List</source> + <translation>Nummerierte Liste einfĆ¼gen</translation> + </message> + <message> + <location line="+4"/> + <source>Indent</source> + <translation>EinrĆ¼cken</translation> + </message> + <message> + <location line="+3"/> + <source>Outdent</source> + <translation>EinrĆ¼ckung aufheben</translation> + </message> + <message> + <location line="+3"/> + <source>Center</source> + <translation>Zentrieren</translation> + </message> + <message> + <location line="+3"/> + <source>Justify</source> + <translation>Ausrichten</translation> + </message> + <message> + <location line="+3"/> + <source>Align Left</source> + <translation>LinksbĆ¼ndig ausrichten</translation> + </message> + <message> + <location line="+3"/> + <source>Align Right</source> + <translation>RechtsbĆ¼ndig ausrichten</translation> + </message> </context> <context> <name>QWhatsThisAction</name> <message> - <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/> + <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+527"/> <source>What's This?</source> <translation>Direkthilfe</translation> </message> @@ -6241,7 +7107,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QWidget</name> <message> - <location filename="../src/gui/kernel/qwidget.cpp" line="+5340"/> + <location filename="../src/gui/kernel/qwidget.cpp" line="+5651"/> <source>*</source> <translation>*</translation> </message> @@ -6249,7 +7115,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QWizard</name> <message> - <location filename="../src/gui/dialogs/qwizard.cpp" line="+649"/> + <location filename="../src/gui/dialogs/qwizard.cpp" line="+661"/> <source>Cancel</source> <translation>Abbrechen</translation> </message> @@ -6307,7 +7173,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QWorkspace</name> <message> - <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/> + <location filename="../src/gui/widgets/qworkspace.cpp" line="+1089"/> <source>&Restore</source> <translation>Wieder&herstellen</translation> </message> @@ -6342,7 +7208,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Im &Vordergrund bleiben</translation> </message> <message> - <location line="-993"/> + <location line="-988"/> <source>Minimize</source> <translation>Minimieren</translation> </message> @@ -6357,7 +7223,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>SchlieĆen</translation> </message> <message> - <location line="+998"/> + <location line="+993"/> <location line="+1059"/> <source>Sh&ade</source> <translation>&Aufrollen</translation> @@ -6495,18 +7361,18 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <context> <name>QXmlStream</name> <message> - <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/> - <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/> + <location filename="../src/corelib/xml/qxmlstream.cpp" line="+611"/> + <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1770"/> <source>Extra content at end of document.</source> <translation>ĆberzƤhliger Inhalt nach Ende des Dokumentes.</translation> </message> <message> - <location line="+222"/> + <location line="+271"/> <source>Invalid entity value.</source> <translation>UngĆ¼ltiger Entity-Wert.</translation> </message> <message> - <location line="+107"/> + <location line="+109"/> <source>Invalid XML character.</source> <translation>UngĆ¼ltiges XML-Zeichen.</translation> </message> @@ -6586,7 +7452,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>UngĆ¼ltig an dieser Stelle ' </translation> </message> <message> - <location line="+210"/> + <location line="+225"/> <source>Expected character data.</source> <translation>Es wurden Zeichendaten erwartet.</translation> </message> @@ -6621,7 +7487,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Der Name der Prozessing-Instruktion ist ungĆ¼ltig.</translation> </message> <message> - <location filename="../src/corelib/xml/qxmlstream.cpp" line="-521"/> + <location filename="../src/corelib/xml/qxmlstream.cpp" line="-536"/> <location line="+12"/> <location filename="../src/corelib/xml/qxmlstream_p.h" line="+164"/> <location line="+53"/> @@ -6686,11 +7552,6 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Es muss mindestens eine Komponente vorhanden sein.</translation> </message> <message> - <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/> - <source>No operand in an integer division, %1, can be %2.</source> - <translation>Bei der Ganzzahldivision %1 darf kein Operand %2 sein.</translation> - </message> - <message> <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/> <source>%1 is not a valid value of type %2.</source> <translation>%1 ist kein gĆ¼ltiger Wert des Typs %2.</translation> @@ -6706,36 +7567,6 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <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="+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="+149"/> - <source>It is not possible to cast from %1 to %2.</source> - <translation>Es kann keine "cast"-Operation von %1 zu %2 durchgefĆ¼hrt werden.</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>Es kƶnnen keine "cast"-Operationen zu dem Typ %1 durchgefĆ¼hrt werden, da es ein abstrakter Typ ist und nicht instanziiert werden kann.</translation> - </message> - <message> - <location line="+23"/> - <source>It's not possible to cast the value %1 of type %2 to %3</source> - <translation>Es kann keine "cast"-Operation vom Wert %1 des Typs %2 zu %3 durchgefĆ¼hrt werden</translation> - </message> - <message> - <location line="+8"/> - <source>Failure when casting from %1 to %2: %3</source> - <translation>Die "cast"-Operation von %1 zu %2 schlug fehl: %3</translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="-14"/> - <source>No comparisons can be done involving the type %1.</source> - <translation>Mit dem Typ %1 kƶnnen keine Vergleichsoperationen durchgefĆ¼hrt werden.</translation> - </message> - <message> <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/> <source>The data of a processing instruction cannot contain the string %1</source> <translation>Die Daten einer Processing-Anweisung dĆ¼rfen nicht die Zeichenkette %1 enthalten</translation> @@ -6752,11 +7583,6 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>%1 ist kein gĆ¼ltiges XML 1.0 Zeichen.</translation> </message> <message> - <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/> - <source>The first argument to %1 cannot be of type %2.</source> - <translation>Das erste Argument von %1 kann nicht vom Typ %2 sein.</translation> - </message> - <message> <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/> <source>%1 was called.</source> <translation>%1 wurde gerufen.</translation> @@ -6782,7 +7608,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>GroĆ/Kleinschreibung wird nicht beachtet</translation> </message> <message> - <location line="+103"/> + <location line="+104"/> <source>%1 is an invalid regular expression pattern: %2</source> <translation>%1 ist kein gĆ¼ltiger regulƤrer Ausdruck: %2</translation> </message> @@ -6792,7 +7618,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>%1 kann nicht bestimmt werden.</translation> </message> <message> - <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/> + <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+266"/> <source>The default collection is undefined</source> <translation>FĆ¼r eine Kollektion ist keine Vorgabe definiert</translation> </message> @@ -6807,13 +7633,13 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Das Element %1 entspricht nicht dem erforderlichen Typ %2.</translation> </message> <message> - <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/> - <location line="+7253"/> + <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+352"/> + <location line="+7323"/> <source>%1 is an unknown schema type.</source> <translation>%1 ist ein unbekannter Schema-Typ.</translation> </message> <message> - <location line="-6971"/> + <location line="-7041"/> <source>Only one %1 declaration can occur in the query prolog.</source> <translation>Der Anfrage-Prolog darf nur eine %1-Deklaration enthalten.</translation> </message> @@ -6893,17 +7719,17 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Es existiert bereits ein Argument mit dem Namen %1. Die Namen der Argumente mĆ¼ssen eindeutig sein.</translation> </message> <message> - <location line="+1649"/> + <location line="+1672"/> <source>The %1-axis is unsupported in XQuery</source> <translation>Die %1-Achse wird in XQuery nicht unterstĆ¼tzt</translation> </message> <message> - <location line="-5441"/> + <location line="-5464"/> <source>No variable by name %1 exists</source> <translation>Es existiert keine Variable mit dem Namen %1</translation> </message> <message> - <location line="+5727"/> + <location line="+5797"/> <source>No function by name %1 is available.</source> <translation>Es existiert keine Funktion mit dem Namen %1.</translation> </message> @@ -7120,7 +7946,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <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="+169"/> + <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+162"/> <source>A library module cannot be evaluated directly. It must be imported from a main module.</source> <translation>Ein Bibliotheksmodul kann nicht direkt ausgewertet werden, er muss von einem Hauptmodul importiert werden.</translation> </message> @@ -7185,7 +8011,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Auf %1 muss %2 oder %3 folgen; es kann nicht am Ende der Ersetzung erscheinen.</translation> </message> <message> - <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="-109"/> + <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="-110"/> <source>%1 and %2 match the start and end of a line.</source> <translation>Die AusdrĆ¼cke %1 und %2 passen jeweils auf den Anfang oder das Ende einer beliebigen Zeile.</translation> </message> @@ -7195,7 +8021,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Leerzeichen werden entfernt, sofern sie nicht in Zeichenklassen erscheinen</translation> </message> <message> - <location line="+129"/> + <location line="+130"/> <source>%1 is an invalid flag for regular expressions. Valid flags are:</source> <translation>%1 ist kein gĆ¼ltiger Modifizierer fĆ¼r regulƤre AusdrĆ¼cke. GĆ¼ltige Modifizierer sind:</translation> </message> @@ -7220,7 +8046,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Die erforderliche KardinalitƤt ist %1 (gegenwƤrtig %2).</translation> </message> <message> - <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-3874"/> + <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-3944"/> <source>The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2.</source> <translation>Die Kodierung %1 ist ungĆ¼ltig; sie darf nur aus lateinischen Buchstaben bestehen und muss dem regulƤren Ausdruck %2 entsprechen.</translation> </message> @@ -7290,32 +8116,47 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Der Name der gebundenen Variablen eines for-Ausdrucks muss sich von dem der Positionsvariable unterscheiden. Die zwei Variablen mit dem Namen %1 stehen im Konflikt.</translation> </message> <message> - <location line="+758"/> + <location line="+778"/> <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source> <translation>%1-AusdrĆ¼cke kƶnnen nicht verwendet werden, da Schemavalidierung nicht unterstĆ¼tzt wird. </translation> </message> <message> - <location line="+39"/> + <location line="+40"/> <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source> <translation>Es muss ein fallback-Ausdruck vorhanden sein, da keine pragma-AusdrĆ¼cke unterstĆ¼tzt werden</translation> </message> <message> - <location line="+267"/> + <location line="+269"/> <source>Each name of a template parameter must be unique; %1 is duplicated.</source> <translation>Die Namen von Vorlagenparametern mĆ¼ssen eindeutig sein, %1 existiert bereits.</translation> </message> <message> - <location line="-5750"/> + <location line="-5773"/> <source>%1 is not a valid numeric literal.</source> <translation>%1 ist kein gĆ¼ltiger numerischer Literal.</translation> </message> <message> - <location line="+3659"/> + <location line="-152"/> + <source>W3C XML Schema identity constraint selector</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>W3C XML Schema identity constraint field</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>A construct was encountered which is disallowed in the current language(%1).</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3804"/> <source>The prefix %1 can not be bound. By default, it is already bound to the namespace %2.</source> <translation>Der PrƤfix %1 kann nicht gebunden werden. Er ist bereits durch Vorgabe an den Namensraum %2 gebunden.</translation> </message> <message> - <location line="+2628"/> + <location line="+2698"/> <source>Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).</source> <translation>Der Namensraum %1 kann nur an %2 gebunden werden. Dies ist bereits vordeklariert.</translation> </message> @@ -7375,26 +8216,6 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <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="+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> - <message> - <location line="+13"/> - <source>An %1-attribute must have a valid %2 as value, which %3 isn't.</source> - <translation>Ein Attribut mit dem Namen %1 muss einen gĆ¼ltigen %2-Wert haben. %3 ist kein gĆ¼ltiger Wert.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+7"/> - <source>The first operand in an integer division, %1, cannot be infinity (%2).</source> - <translation>Der erste Operand der Ganzzahldivision %1 darf nicht unendlich (%2) sein .</translation> - </message> - <message> - <location line="+6"/> - <source>The second operand in a division, %1, cannot be zero (%2).</source> - <translation>Der zweite Operand der Division %1 darf nicht 0 (%2) sein.</translation> - </message> - <message> <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="-180"/> <source>Integer division (%1) by zero (%2) is undefined.</source> <translation>Die Ganzzahldivision (%1) durch Null (%2) ist nicht definiert.</translation> @@ -7410,11 +8231,6 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Die Modulo-Division (%1) durch Null (%2) ist nicht definiert.</translation> </message> <message> - <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="-73"/> - <source>No casting is possible with %1 as the target type.</source> - <translation>Es kƶnnen keine "cast"-Operationen zu dem Typ %1 durchgefĆ¼hrt werden.</translation> - </message> - <message> <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="-24"/> <source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source> <translation>%2 ist kein gĆ¼ltiger Zielname einer Processing-Anweisung, da dieser nicht %1 sein darf (ungeachtet der GroĆ/Kleinschreibung).</translation> @@ -7441,7 +8257,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Der Ć¼bergeordnete Knoten des zweiten Arguments der Funktion %1 muss ein Dokumentknoten sein, was bei %2 nicht der Fall ist.</translation> </message> <message> - <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-3102"/> + <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-3172"/> <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source> <translation>Der Namensraum einer benutzerdefinierten Funktion darf nicht leer sein (fĆ¼r diesen Zweck gibt es den vordefinierten PrƤfix %1)</translation> </message> @@ -7452,12 +8268,7 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Die Deklaration des Default-Namensraums muss vor Funktions-, Variablen- oder Optionsdeklaration erfolgen.</translation> </message> <message> - <location line="-3576"/> - <source>A construct was encountered which only is allowed in XQuery.</source> - <translation>Dieses Konstrukt ist nur in XQuery zulƤssig.</translation> - </message> - <message> - <location line="+118"/> + <location line="-3458"/> <source>A template by name %1 has already been declared.</source> <translation>Es existiert bereits eine Vorlage des Namens %1.</translation> </message> @@ -7482,7 +8293,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="+314"/> + <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+344"/> <source>%1 is an unsupported encoding.</source> <translation>Das Encoding %1 wird nicht unterstĆ¼tzt.</translation> </message> @@ -7502,10 +8313,6 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <translation>Mehrdeutige Regel.</translation> </message> <message> - <source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source> - <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>Im Konstruktor eines Namensraums darf der Wert des Namensraumes keine leere Zeichenkette sein.</translation> @@ -7526,11 +8333,6 @@ 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="+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="+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> @@ -7601,42 +8403,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="+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> - <message> - <location line="+6"/> - <source>Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes.</source> - <translation>Das Element %2 kann nur %3 oder die Standardattribute haben, nicht jedoch %1.</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>Das Element %2 kann nur %3, %4 oder die Standardattribute haben, nicht jedoch %1.</translation> - </message> - <message> - <location line="+9"/> - <source>Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes.</source> - <translation>Das Element %2 kann nur %3 oder die Standardattribute haben, nicht jedoch %1.</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>Die XSL-T-Attribute eines XSL-T-Elements mĆ¼ssen im Null-Namensraum sein, nicht im XSL-T-Namensraum, wie %1.</translation> - </message> - <message> - <location line="+12"/> - <source>The attribute %1 must appear on element %2.</source> - <translation>Das Element %2 muss das Attribut %1 haben.</translation> - </message> - <message> - <location line="+8"/> - <source>The element with local name %1 does not exist in XSL-T.</source> - <translation>In XSL-T existiert kein Element mit dem lokalen Namen %1.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+123"/> + <location line="+123"/> <source>Element %1 must come last.</source> <translation>Das Element %1 muss zuletzt stehen.</translation> </message> @@ -7721,19 +8488,1426 @@ Bitte wƤhlen Sie einen anderen Dateinamen.</translation> <source>At least one %1 element must appear as child of %2.</source> <translation>%2 muss mindestens ein %1-Kindelement haben.</translation> </message> -</context> -<context> - <name>VolumeSlider</name> <message> - <location filename="../src/3rdparty/phonon/phonon/volumeslider.cpp" line="+67"/> - <source>Muted</source> - <translation>Stummschaltung</translation> + <location filename="../src/xmlpatterns/schema/qxsdschemachecker.cpp" line="+227"/> + <source>%1 has inheritance loop in its base type %2.</source> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> + <location line="+24"/> + <source>Circular inheritance of base type %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Circular inheritance of union %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+25"/> + <source>%1 is not allowed to derive from %2 by restriction as the latter defines it as final.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>%1 is not allowed to derive from %2 by extension as the latter defines it as final.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+31"/> + <source>Base type of simple type %1 cannot be complex type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Simple type %1 cannot have direct base type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+33"/> + <location line="+9"/> + <source>Simple type %1 is not allowed to have base type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>Simple type %1 can only have simple atomic type as base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Simple type %1 cannot derive from %2 as the latter defines restriction as final.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <location line="+484"/> + <source>Variety of item type of %1 must be either atomic or union.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-474"/> + <location line="+483"/> + <source>Variety of member types of %1 must be atomic.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-470"/> + <location line="+451"/> + <source>%1 is not allowed to derive from %2 by list as the latter defines it as final.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-431"/> + <source>Simple type %1 is only allowed to have %2 facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Base type of simple type %1 must have variety of type list.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Base type of simple type %1 has defined derivation by restriction as final.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Item type of base type does not match item type of %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+26"/> + <location line="+93"/> + <source>Simple type %1 contains not allowed facet type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-72"/> + <location line="+413"/> + <source>%1 is not allowed to derive from %2 by union as the latter defines it as final.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-404"/> + <source>%1 is not allowed to have any facets.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Base type %1 of simple type %2 must have variety of union.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Member type %1 cannot be derived from member type %2 of %3's base type %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+65"/> + <source>Derivation method of %1 must be extension because the base type %2 is a simple type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+30"/> + <source>Complex type %1 has duplicated element %2 in its content model.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Complex type %1 has non-deterministic content.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+21"/> + <source>Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+37"/> + <source>Content model of complex type %1 is not a valid extension of content model of %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Complex type %1 must have simple content.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Complex type %1 must have the same simple type as its base class %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+67"/> + <source>Complex type %1 cannot be derived from base type %2%3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+14"/> + <source>Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+14"/> + <source>Complex type %1 with simple content cannot be derived from complex base type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+35"/> + <source>Item type of simple type %1 cannot be a complex type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+44"/> + <source>Member type of simple type %1 cannot be a complex type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>%1 is not allowed to have a member type with the same name as itself.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+83"/> + <location line="+29"/> + <location line="+34"/> + <source>%1 facet collides with %2 facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-20"/> + <source>%1 facet must have the same value as %2 facet of base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+37"/> + <source>%1 facet must be equal or greater than %2 facet of base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+19"/> + <location line="+125"/> + <location line="+55"/> + <location line="+12"/> + <location line="+91"/> + <location line="+58"/> + <location line="+34"/> + <location line="+35"/> + <source>%1 facet must be less than or equal to %2 facet of base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-389"/> + <source>%1 facet contains invalid regular expression</source> + <translation type="unfinished"></translation> + </message> + <message> <location line="+15"/> - <source>Volume: %1%</source> - <translation>LautstƤrke: %1%</translation> + <source>Unknown notation %1 used in %2 facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+20"/> + <source>%1 facet contains invalid value %2: %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+22"/> + <source>%1 facet cannot be %2 or %3 if %4 facet of base type is %5.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>%1 facet cannot be %2 if %3 facet of base type is %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+20"/> + <location line="+55"/> + <location line="+230"/> + <source>%1 facet must be less than or equal to %2 facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-257"/> + <location line="+134"/> + <location line="+82"/> + <source>%1 facet must be less than %2 facet of base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-201"/> + <location line="+79"/> + <source>%1 facet and %2 facet cannot appear together.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-27"/> + <location line="+12"/> + <location line="+113"/> + <source>%1 facet must be greater than %2 facet of base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-86"/> + <location line="+58"/> + <source>%1 facet must be less than %2 facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-42"/> + <location line="+58"/> + <source>%1 facet must be greater than or equal to %2 facet of base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+113"/> + <source>Simple type contains not allowed facet %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>%1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source>Only %1 and %2 facets are allowed when derived by union.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> + <location line="+16"/> + <source>%1 contains %2 facet with invalid data: %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+24"/> + <source>Attribute group %1 contains attribute %2 twice.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Attribute group %1 contains two different attributes that both have types derived from %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> + <source>Complex type %1 contains attribute %2 twice.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Complex type %1 contains two different attributes that both have types derived from %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+43"/> + <source>Element %1 is not allowed to have a value constraint if its base type is complex.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Element %1 is not allowed to have a value constraint if its type is derived from %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <location line="+11"/> + <source>Value constraint of element %1 is not of elements type: %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>Element %1 is not allowed to have substitution group affiliation as it is no global element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+28"/> + <source>Type of element %1 cannot be derived from type of substitution group affiliation.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+41"/> + <source>Value constraint of attribute %1 is not of attributes type: %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Attribute %1 has value constraint but has type derived from %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+56"/> + <source>%1 attribute in derived complex type must be %2 like in base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Attribute %1 in derived complex type must have %2 value constraint like in base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Attribute %1 in derived complex type must have the same %2 value constraint like in base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Attribute %1 in derived complex type must have %2 value constraint.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>processContent of base wildcard must be weaker than derived wildcard.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+39"/> + <location line="+15"/> + <source>Element %1 exists twice with different types.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+28"/> + <source>Particle contains non-deterministic wildcards.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/xmlpatterns/schema/qxsdschemahelper.cpp" line="+691"/> + <location line="+63"/> + <source>Base attribute %1 is required but derived attribute is not.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-57"/> + <source>Type of derived attribute %1 cannot be validly derived from type of base attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+28"/> + <source>Value constraint of derived attribute %1 does not match value constraint of base attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Derived attribute %1 does not exists in the base definition.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Derived attribute %1 does not match the wildcard in the base definition.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>Base attribute %1 is required but missing in derived definition.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Derived definition contains an %1 element that does not exists in the base definition</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Derived wildcard is not a subset of the base wildcard.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>%1 of derived wildcard is not a valid restriction of %2 of base wildcard</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> + <source>Attribute %1 from base type is missing in derived type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Type of derived attribute %1 differs from type of base attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Base definition contains an %1 element that is missing in the derived definition</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/xmlpatterns/schema/qxsdschemaresolver.cpp" line="+354"/> + <source>%1 references unknown %2 or %3 element %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>%1 references identity constraint %2 that is no %3 or %4 element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>%1 has a different number of fields from the identity constraint %2 that it references.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> + <source>Base type %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+84"/> + <source>Item type %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+31"/> + <source>Member type %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+28"/> + <location line="+408"/> + <location line="+30"/> + <source>Type %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-416"/> + <source>Base type %1 of complex type cannot be resolved.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>%1 cannot have complex base type that has a %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+279"/> + <source>Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+101"/> + <source>Type of %1 element must be a simple type, %2 is not.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+62"/> + <source>Substitution group %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Substitution group %1 has circular definition.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+120"/> + <location line="+7"/> + <source>Duplicated element names %1 in %2 element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+29"/> + <location line="+52"/> + <location line="+71"/> + <location line="+28"/> + <source>Reference %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-138"/> + <source>Circular group reference for %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source>%1 element is not allowed in this scope</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>%1 element cannot have %2 attribute with value other than %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>%1 element cannot have %2 attribute with value other than %3 or %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+91"/> + <source>%1 or %2 attribute of reference %3 does not match with the attribute declaration %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+25"/> + <source>Attribute group %1 has circular reference.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+131"/> + <source>%1 attribute in %2 must have %3 use like in base type %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+52"/> + <source>Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>%1 has attribute wildcard but its base type %2 has not.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+26"/> + <source>Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+48"/> + <source>Enumeration facet contains invalid content: {%1} is not a value of type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Namespace prefix of qualified name %1 is not defined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+51"/> + <location line="+18"/> + <source>%1 element %2 is not a valid restriction of the %3 element it redefines: %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/xmlpatterns/schema/qxsdparticlechecker.cpp" line="+165"/> + <source>Empty particle cannot be derived from non-empty particle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>Derived particle is missing element %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Derived element %1 is missing value constraint as defined in base particle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Derived element %1 has weaker value constraint than base particle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Fixed value constraint of element %1 differs from value constraint in base particle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Derived element %1 cannot be nillable as base element is not nillable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Block constraints of derived element %1 must not be more weaker than in the base element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Simple type of derived element %1 cannot be validly derived from base element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Complex type of derived element %1 cannot be validly derived from base element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+24"/> + <source>Element %1 is missing in derived particle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Element %1 does not match namespace constraint of wildcard in base particle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Wildcard in derived particle is not a valid subset of wildcard in base particle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>processContent of wildcard in derived particle is weaker than wildcard in base particle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+240"/> + <source>Derived particle allows content that is not allowed in the base particle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/xmlpatterns/schema/qxsdschemaparser.cpp" line="+169"/> + <source>Can not process unknown element %1, expected elements are: %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>Element %1 is not allowed in this scope, possible elements are: %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source>Child element is missing in that scope, possible child elements are: %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+127"/> + <source>Document is not a XML schema.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+22"/> + <source>%1 attribute of %2 element contains invalid content: {%3} is not a value of type %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>%1 attribute of %2 element contains invalid content: {%3}.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+26"/> + <source>Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+14"/> + <location line="+11"/> + <source>Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+237"/> + <source>%1 element is not allowed to have the same %2 attribute value as the target namespace %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>%1 element without %2 attribute is not allowed inside schema without target namespace.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+833"/> + <location line="+158"/> + <source>%1 element is not allowed inside %2 element if %3 attribute is present.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-97"/> + <location line="+119"/> + <location line="+92"/> + <source>%1 element has neither %2 attribute nor %3 child element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+835"/> + <location line="+1474"/> + <location line="+232"/> + <location line="+7"/> + <location line="+260"/> + <location line="+17"/> + <location line="+258"/> + <location line="+6"/> + <location line="+17"/> + <location line="+6"/> + <location line="+17"/> + <location line="+11"/> + <location line="+11"/> + <location line="+11"/> + <source>%1 element with %2 child element must not have a %3 attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-1325"/> + <source>%1 attribute of %2 element must be %3 or %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+36"/> + <source>%1 attribute of %2 element must have a value of %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <location line="+34"/> + <source>%1 attribute of %2 element must have a value of %3 or %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+319"/> + <location line="+129"/> + <location line="+9"/> + <location line="+7"/> + <location line="+7"/> + <location line="+327"/> + <location line="+203"/> + <location line="+6"/> + <location line="+6"/> + <location line="+6"/> + <location line="+6"/> + <location line="+6"/> + <location line="+6"/> + <location line="+77"/> + <source>%1 element must not have %2 and %3 attribute together.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-768"/> + <location line="+222"/> + <source>Content of %1 attribute of %2 element must not be from namespace %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-215"/> + <location line="+222"/> + <source>%1 attribute of %2 element must not be %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-64"/> + <source>%1 attribute of %2 element must have the value %3 because the %4 attribute is set.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+187"/> + <source>Specifying use='prohibited' inside an attribute group has no effect.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+353"/> + <source>%1 element must have either %2 or %3 attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+554"/> + <source>%1 element must have either %2 attribute or %3 or %4 as child element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+55"/> + <source>%1 element requires either %2 or %3 attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+19"/> + <source>Text or entity references not allowed inside %1 element</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+41"/> + <location line="+112"/> + <source>%1 attribute of %2 element must contain %3, %4 or a list of URIs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+126"/> + <source>%1 element is not allowed in this context.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+53"/> + <source>%1 attribute of %2 element has larger value than %3 attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+25"/> + <source>Prefix of qualified name %1 is not defined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+65"/> + <location line="+61"/> + <source>%1 attribute of %2 element must either contain %3 or the other values.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+131"/> + <source>Component with id %1 has been defined previously.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>Element %1 already defined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Attribute %1 already defined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>Type %1 already defined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> + <source>Attribute group %1 already defined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Element group %1 already defined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Notation %1 already defined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Identity constraint %1 already defined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Duplicated facets in simple type %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/xmlpatterns/schema/qxsdtypechecker.cpp" line="+233"/> + <location line="+7"/> + <location line="+21"/> + <source>%1 is not valid according to %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+167"/> + <source>String content does not match the length facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>String content does not match the minLength facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>String content does not match the maxLength facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>String content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>String content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>Signed integer content does not match the maxInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Signed integer content does not match the maxExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Signed integer content does not match the minInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Signed integer content does not match the minExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Signed integer content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Signed integer content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Signed integer content does not match in the totalDigits facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>Unsigned integer content does not match the maxInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Unsigned integer content does not match the maxExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Unsigned integer content does not match the minInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Unsigned integer content does not match the minExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Unsigned integer content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Unsigned integer content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Unsigned integer content does not match in the totalDigits facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>Double content does not match the maxInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Double content does not match the maxExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Double content does not match the minInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Double content does not match the minExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Double content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Double content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Decimal content does not match in the fractionDigits facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Decimal content does not match in the totalDigits facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+14"/> + <source>Date time content does not match the maxInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Date time content does not match the maxExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Date time content does not match the minInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Date time content does not match the minExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Date time content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Date time content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>Duration content does not match the maxInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Duration content does not match the maxExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Duration content does not match the minInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Duration content does not match the minExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Duration content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Duration content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+27"/> + <source>Boolean content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>Binary content does not match the length facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Binary content does not match the minLength facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Binary content does not match the maxLength facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Binary content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+27"/> + <source>Invalid QName content: %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>QName content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>QName content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+36"/> + <source>Notation content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+19"/> + <source>List content does not match length facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>List content does not match minLength facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>List content does not match maxLength facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+90"/> + <source>List content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>List content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+39"/> + <source>Union content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Union content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>Data of type %1 are not allowed to be empty.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp" line="+160"/> + <source>Element %1 is missing child element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source>There is one IDREF value with no corresponding ID: %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+27"/> + <source>Loaded schema file is invalid.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source>%1 contains invalid data.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>xsi:schemaLocation namespace %1 has already appeared earlier in the instance document.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+22"/> + <source>xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>No schema defined for validation.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>No definition for element %1 available.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <location line="+49"/> + <location line="+142"/> + <source>Specified type %1 is not known to the schema.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-176"/> + <source>Element %1 is not defined in this scope.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+43"/> + <source>Declaration for element %1 does not exist.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>Element %1 contains invalid content.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+73"/> + <source>Element %1 is declared as abstract.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Element %1 is not nillable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Attribute %1 contains invalid data: %2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Element contains content although it is nillable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Fixed value constrained not allowed if element is nillable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+32"/> + <source>Specified type %1 is not validly substitutable with element type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> + <source>Complex type %1 is not allowed to be abstract.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+21"/> + <source>Element %1 contains not allowed attributes.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <location line="+97"/> + <source>Element %1 contains not allowed child element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-76"/> + <location line="+93"/> + <source>Content of element %1 does not match its type definition: %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-85"/> + <location line="+92"/> + <location line="+41"/> + <source>Content of element %1 does not match defined value constraint.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-73"/> + <source>Element %1 contains not allowed child content.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+41"/> + <source>Element %1 contains not allowed text content.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Element %1 can not contain other elements, as it has a fixed content.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+43"/> + <source>Element %1 is missing required attribute %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+29"/> + <source>Attribute %1 does not match the attribute wildcard.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Declaration for attribute %1 does not exist.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Element %1 contains two attributes of type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Attribute %1 contains invalid content.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Element %1 contains unknown attribute %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+40"/> + <location line="+46"/> + <source>Content of attribute %1 does not match its type definition: %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-38"/> + <location line="+46"/> + <source>Content of attribute %1 does not match defined value constraint.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+88"/> + <source>Non-unique value found for constraint %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+20"/> + <source>Key constraint %1 contains absent fields.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Key constraint %1 contains references nillable element %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+40"/> + <source>No referenced value found for key reference %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+64"/> + <source>More than one value found for field %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+20"/> + <source>Field %1 has no simple type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+73"/> + <source>ID value '%1' is not unique.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>'%1' attribute contains invalid QName content: %2.</source> + <translation type="unfinished"></translation> </message> </context> </TS> diff --git a/translations/qt_help_de.ts b/translations/qt_help_de.ts index 8e6cb85..b1b7c76 100644 --- a/translations/qt_help_de.ts +++ b/translations/qt_help_de.ts @@ -120,7 +120,7 @@ <context> <name>QHelpEngineCore</name> <message> - <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+516"/> + <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+524"/> <source>The specified namespace does not exist!</source> <translation>Der angegebene Namensraum existiert nicht.</translation> </message> @@ -128,7 +128,7 @@ <context> <name>QHelpEngineCorePrivate</name> <message> - <location line="-394"/> + <location line="-402"/> <source>Cannot open documentation file %1: %2!</source> <translation>Die Dokumentationsdatei %1 kann nicht geƶffnet werden: %2.</translation> </message> |