diff options
author | Olivier Goffart <olivier.goffart@nokia.com> | 2010-06-08 18:47:57 (GMT) |
---|---|---|
committer | Olivier Goffart <olivier.goffart@nokia.com> | 2010-06-08 18:47:57 (GMT) |
commit | d7d55ab51381f5805d52523d98623e63a99db2cf (patch) | |
tree | 5b760b92f84bdb2137fe7d53e16d78c0693fd2f4 | |
parent | c5de4176dac960d8f7c6d2d77b0d8bf3c7311da9 (diff) | |
parent | 2ae808a23ce05bf9768ad9df107c16bb0c555ee7 (diff) | |
download | Qt-d7d55ab51381f5805d52523d98623e63a99db2cf.zip Qt-d7d55ab51381f5805d52523d98623e63a99db2cf.tar.gz Qt-d7d55ab51381f5805d52523d98623e63a99db2cf.tar.bz2 |
Merge remote branch 'origin/4.7' into qt-master-from-4.7
Conflicts:
tools/qdoc3/test/qt-html-templates.qdocconf
371 files changed, 25517 insertions, 9101 deletions
@@ -205,7 +205,7 @@ bld.inf *.loc !s60main.rss *.pkg -plugin_commonU.def +plugin_commonu.def *.qtplugin *.sis *.sisx @@ -2201,9 +2201,11 @@ minimal|small|medium|large|full) ;; *) # not known to be sufficient for anything - if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ]; then + if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then echo >&2 "Error: configuration file not found:" echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" + echo >&2 " or" + echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`" OPT_HELP=yes fi esac @@ -3201,15 +3203,25 @@ fi #prefix if [ -z "$QT_INSTALL_PREFIX" ]; then - if [ "$CFG_DEV" = "yes" ]; then - QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default - elif [ "$PLATFORM_QWS" = "yes" ]; then - QT_INSTALL_PREFIX="/usr/local/Trolltech/QtEmbedded-${QT_VERSION}" - if [ "$PLATFORM" != "$XPLATFORM" ]; then - QT_INSTALL_PREFIX="${QT_INSTALL_PREFIX}-${CFG_ARCH}" + if [ -d "$EPOCROOT" ]; then + case "$XPLATFORM" in *symbian*) + QT_INSTALL_PREFIX="$EPOCROOT/epoc32/" + QT_INSTALL_LIBS="$EPOCROOT/epoc32/release/armv5/lib/" + ;; + esac + fi + + if [ -z "$QT_INSTALL_PREFIX" ]; then # still empty + if [ "$CFG_DEV" = "yes" ]; then + QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default + elif [ "$PLATFORM_QWS" = "yes" ]; then + QT_INSTALL_PREFIX="/usr/local/Trolltech/QtEmbedded-${QT_VERSION}" + if [ "$PLATFORM" != "$XPLATFORM" ]; then + QT_INSTALL_PREFIX="${QT_INSTALL_PREFIX}-${CFG_ARCH}" + fi + else + QT_INSTALL_PREFIX="/usr/local/Trolltech/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Trolltech/Qt-$QT_VERSION fi - else - QT_INSTALL_PREFIX="/usr/local/Trolltech/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Trolltech/Qt-$QT_VERSION fi fi QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"` @@ -7229,7 +7241,11 @@ full) *) tmpconfig="$outpath/src/corelib/global/qconfig.h.new" echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig" - cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig" + if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then + cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig" + elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then + cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig" + fi echo "#endif" >>"$tmpconfig" ;; esac @@ -7509,6 +7525,10 @@ then fi if [ -n "$QCONFIG_FLAGS" ]; then +cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF +#ifndef QT_BOOTSTRAPPED + +EOF for cfg in $QCONFIG_FLAGS; do cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space @@ -7541,6 +7561,10 @@ cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF EOF fi done +cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF +#endif // QT_BOOTSTRAPPED + +EOF fi if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then @@ -8025,7 +8049,7 @@ if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then echo "NOTE: When linking against OpenSSL, you can override the default" echo "library names through OPENSSL_LIBS." echo "For example:" - echo " ./configure -openssl-linked OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto'" + echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked" echo fi if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then diff --git a/demos/embedded/embedded.pro b/demos/embedded/embedded.pro index da764d1..a3fc72b 100644 --- a/demos/embedded/embedded.pro +++ b/demos/embedded/embedded.pro @@ -19,6 +19,11 @@ contains(QT_CONFIG, webkit) { SUBDIRS += anomaly } +contains(QT_CONFIG, declarative) { + # Qml demos require DEPLOYMENT support. Therefore, only symbian. + symbian:SUBDIRS += qmlcalculator qmlclocks qmldialcontrol qmleasing qmlflickr qmlphotoviewer qmltwitter +} + # install sources.files = README *.pro sources.path = $$[QT_INSTALL_DEMOS]/embedded diff --git a/demos/embedded/fluidlauncher/config_s60/config.xml b/demos/embedded/fluidlauncher/config_s60/config.xml index d926a4b..4f10488 100644 --- a/demos/embedded/fluidlauncher/config_s60/config.xml +++ b/demos/embedded/fluidlauncher/config_s60/config.xml @@ -21,6 +21,13 @@ <example filename="digiflip" name="Flipping Clock" image="screenshots/digiflip.png"/> <example filename="qmediaplayer" name="Media Player" image="screenshots/mediaplayer.png" args="-small-screen"/> <example filename="spectrum" name="Spectrum Analyzer" image="screenshots/spectrum.png" args="-small-screen"/> + <example filename="qmlcalculator" name="Qml Calculator" image="screenshots/qmlcalculator.png"/> + <example filename="qmlclocks" name="Qml Clocks" image="screenshots/qmlclocks.png"/> + <example filename="qmldialcontrol" name="Qml Dial Control" image="screenshots/qmldialcontrol.png"/> + <example filename="qmleasing" name="Qml Easing Curves" image="screenshots/qmleasing.png"/> + <example filename="qmlflickr" name="Qml flickr" image="screenshots/qmlflickr.jpg"/> + <example filename="qmlphotoviewer" name="Qml Photo Viewer" image="screenshots/qmlphotoviewer.jpg"/> + <example filename="qmltwitter" name="Qml twitter" image="screenshots/qmltwitter.jpg"/> </demos> <slideshow timeout="60000" interval="10000"> <imagedir dir="slides"/> diff --git a/demos/embedded/fluidlauncher/fluidlauncher.pro b/demos/embedded/fluidlauncher/fluidlauncher.pro index bb512d9..416e58b 100644 --- a/demos/embedded/fluidlauncher/fluidlauncher.pro +++ b/demos/embedded/fluidlauncher/fluidlauncher.pro @@ -2,6 +2,7 @@ TEMPLATE = app TARGET = DEPENDPATH += . INCLUDEPATH += . +VERSION = $$QT_VERSION # Input HEADERS += \ @@ -215,6 +216,16 @@ symbian { $$appResourceDir(examples/script/context2d/context2d.mif) } + qmldemos = qmlcalculator qmlclocks qmldialcontrol qmleasing qmlflickr qmlphotoviewer qmltwitter + contains(QT_CONFIG, declarative) { + for(qmldemo, qmldemos) { + executables.sources += $$QT_BUILD_TREE/demos/embedded/$${qmldemo}/$${qmldemo}.exe + reg_resource.sources += $$regResourceDir(demos/embedded/$${qmldemo}/$${qmldemo}_reg.rsc) + resource.sources += $$appResourceDir(demos/embedded/$${qmldemo}/$${qmldemo}.rsc) + mifs.sources += $$appResourceDir(demos/embedded/$${qmldemo}/$${qmldemo}.mif) + } + } + files.sources = $$PWD/screenshots $$PWD/slides files.path = . @@ -243,6 +254,8 @@ symbian { DEPLOYMENT += config files executables viewerimages saxbookmarks reg_resource resource \ mifs desktopservices_music desktopservices_images fluidbackup + contains(QT_CONFIG, declarative):for(qmldemo, qmldemos):include($$QT_BUILD_TREE/demos/embedded/$${qmldemo}/deployment.pri) + DEPLOYMENT.installer_header = 0xA000D7CD TARGET.EPOCHEAPSIZE = 100000 20000000 diff --git a/demos/embedded/fluidlauncher/screenshots/qmlcalculator.png b/demos/embedded/fluidlauncher/screenshots/qmlcalculator.png Binary files differnew file mode 100644 index 0000000..f4218f5 --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/qmlcalculator.png diff --git a/demos/embedded/fluidlauncher/screenshots/qmlclocks.png b/demos/embedded/fluidlauncher/screenshots/qmlclocks.png Binary files differnew file mode 100644 index 0000000..ba25a18 --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/qmlclocks.png diff --git a/demos/embedded/fluidlauncher/screenshots/qmldialcontrol.png b/demos/embedded/fluidlauncher/screenshots/qmldialcontrol.png Binary files differnew file mode 100644 index 0000000..b8def8c --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/qmldialcontrol.png diff --git a/demos/embedded/fluidlauncher/screenshots/qmleasing.png b/demos/embedded/fluidlauncher/screenshots/qmleasing.png Binary files differnew file mode 100644 index 0000000..d34c2ac --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/qmleasing.png diff --git a/demos/embedded/fluidlauncher/screenshots/qmlflickr.jpg b/demos/embedded/fluidlauncher/screenshots/qmlflickr.jpg Binary files differnew file mode 100644 index 0000000..d7faabf --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/qmlflickr.jpg diff --git a/demos/embedded/fluidlauncher/screenshots/qmlphotoviewer.jpg b/demos/embedded/fluidlauncher/screenshots/qmlphotoviewer.jpg Binary files differnew file mode 100644 index 0000000..673ffc6 --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/qmlphotoviewer.jpg diff --git a/demos/embedded/fluidlauncher/screenshots/qmltwitter.jpg b/demos/embedded/fluidlauncher/screenshots/qmltwitter.jpg Binary files differnew file mode 100644 index 0000000..4399eea --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/qmltwitter.jpg diff --git a/demos/embedded/qmlcalculator/deployment.pri b/demos/embedded/qmlcalculator/deployment.pri new file mode 100644 index 0000000..d5078f6 --- /dev/null +++ b/demos/embedded/qmlcalculator/deployment.pri @@ -0,0 +1,7 @@ +qmlcalculator_src = $$PWD/../../declarative/calculator +symbian { + qmlcalculator_uid3 = EA8EBD98 + qmlcalculator_files.path = ../$$qmlcalculator_uid3 +} +qmlcalculator_files.sources = $$qmlcalculator_src/calculator.qml $$qmlcalculator_src/Core +DEPLOYMENT += qmlcalculator_files diff --git a/demos/embedded/qmlcalculator/qmlcalculator.cpp b/demos/embedded/qmlcalculator/qmlcalculator.cpp new file mode 100644 index 0000000..3030e81 --- /dev/null +++ b/demos/embedded/qmlcalculator/qmlcalculator.cpp @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore/QFileInfo> +#include <QtGui/QApplication> +#include <QtDeclarative/QDeclarativeView> + +#if defined(Q_OS_SYMBIAN) +#include <eikenv.h> +#include <eikappui.h> +#include <aknenv.h> +#include <aknappui.h> +#endif // Q_OS_SYMBIAN + +int main(int argc, char *argv[]) +{ + QApplication application(argc, argv); + + const QString mainQmlApp = QLatin1String("calculator.qml"); + QDeclarativeView view; + view.setSource(QUrl(mainQmlApp)); + view.setResizeMode(QDeclarativeView::SizeRootObjectToView); + +#if defined(QT_KEYPAD_NAVIGATION) + QApplication::setNavigationMode(Qt::NavigationModeCursorAuto); +#endif // QT_KEYPAD_NAVIGATION + +#if defined(Q_OS_SYMBIAN) + CAknAppUi* appUi = dynamic_cast<CAknAppUi*> (CEikonEnv::Static()->AppUi()); + TRAPD(error, + if (appUi) + appUi->SetOrientationL(CAknAppUi::EAppUiOrientationPortrait) + ) + view.showFullScreen(); +#else // Q_OS_SYMBIAN + view.show(); +#endif // Q_OS_SYMBIAN + + return application.exec(); +} diff --git a/demos/embedded/qmlcalculator/qmlcalculator.pro b/demos/embedded/qmlcalculator/qmlcalculator.pro new file mode 100644 index 0000000..1e71eed --- /dev/null +++ b/demos/embedded/qmlcalculator/qmlcalculator.pro @@ -0,0 +1,12 @@ +!symbian:!wince*:warning("DEPLOYMENT support required. This project only works on Symbian and WinCE.") + +QT += declarative +SOURCES += $$PWD/qmlcalculator.cpp +include($$PWD/deployment.pri) + +symbian { + TARGET.UID3 = 0x$$qmlcalculator_uid3 # defined in deployment.pri + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 + LIBS += -lcone -leikcore -lavkon # Screen orientation +} diff --git a/demos/embedded/qmlclocks/deployment.pri b/demos/embedded/qmlclocks/deployment.pri new file mode 100644 index 0000000..84803ec --- /dev/null +++ b/demos/embedded/qmlclocks/deployment.pri @@ -0,0 +1,7 @@ +qmlclocks_src = $$PWD/../../../examples/declarative/toys/clocks +symbian { + qmlclocks_uid3 = E19225B9 + qmlclocks_files.path = ../$$qmlclocks_uid3 +} +qmlclocks_files.sources = $$qmlclocks_src/clocks.qml $$qmlclocks_src/content +DEPLOYMENT += qmlclocks_files diff --git a/demos/embedded/qmlclocks/qmlclocks.cpp b/demos/embedded/qmlclocks/qmlclocks.cpp new file mode 100644 index 0000000..d94cbdd --- /dev/null +++ b/demos/embedded/qmlclocks/qmlclocks.cpp @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore/QFileInfo> +#include <QtGui/QApplication> +#include <QtDeclarative/QDeclarativeView> + +#if defined(Q_OS_SYMBIAN) +#include <eikenv.h> +#include <eikappui.h> +#include <aknenv.h> +#include <aknappui.h> +#endif // Q_OS_SYMBIAN + +int main(int argc, char *argv[]) +{ + QApplication application(argc, argv); + + const QString mainQmlApp = QLatin1String("clocks.qml"); + QDeclarativeView view; + view.setSource(QUrl(mainQmlApp)); + view.setResizeMode(QDeclarativeView::SizeRootObjectToView); + +#if defined(QT_KEYPAD_NAVIGATION) + QApplication::setNavigationMode(Qt::NavigationModeCursorAuto); +#endif // QT_KEYPAD_NAVIGATION + +#if defined(Q_OS_SYMBIAN) + CAknAppUi* appUi = dynamic_cast<CAknAppUi*> (CEikonEnv::Static()->AppUi()); + TRAPD(error, + if (appUi) + appUi->SetOrientationL(CAknAppUi::EAppUiOrientationLandscape) + ) + view.showFullScreen(); +#else // Q_OS_SYMBIAN + view.show(); +#endif // Q_OS_SYMBIAN + + return application.exec(); +} diff --git a/demos/embedded/qmlclocks/qmlclocks.pro b/demos/embedded/qmlclocks/qmlclocks.pro new file mode 100644 index 0000000..5edfe14 --- /dev/null +++ b/demos/embedded/qmlclocks/qmlclocks.pro @@ -0,0 +1,12 @@ +!symbian:!wince*:warning("DEPLOYMENT support required. This project only works on Symbian and WinCE.") + +QT += declarative +SOURCES += $$PWD/qmlclocks.cpp +include($$PWD/deployment.pri) + +symbian { + TARGET.UID3 = 0x$$qmlclocks_uid3 # defined in deployment.pri + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 + LIBS += -lcone -leikcore -lavkon # Screen orientation +} diff --git a/demos/embedded/qmldialcontrol/deployment.pri b/demos/embedded/qmldialcontrol/deployment.pri new file mode 100644 index 0000000..8eb39b2 --- /dev/null +++ b/demos/embedded/qmldialcontrol/deployment.pri @@ -0,0 +1,7 @@ +qmldialcontrol_src = $$PWD/../../../examples/declarative/ui-components/dialcontrol +symbian { + qmldialcontrol_uid3 = E59A9283 + qmldialcontrol_files.path = ../$$qmldialcontrol_uid3 +} +qmldialcontrol_files.sources = $$qmldialcontrol_src/dialcontrol.qml $$qmldialcontrol_src/content +DEPLOYMENT += qmldialcontrol_files diff --git a/demos/embedded/qmldialcontrol/qmldialcontrol.cpp b/demos/embedded/qmldialcontrol/qmldialcontrol.cpp new file mode 100644 index 0000000..311cee0 --- /dev/null +++ b/demos/embedded/qmldialcontrol/qmldialcontrol.cpp @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore/QFileInfo> +#include <QtGui/QApplication> +#include <QtDeclarative/QDeclarativeView> + +int main(int argc, char *argv[]) +{ + QApplication application(argc, argv); + + const QString mainQmlApp = QLatin1String("dialcontrol.qml"); + QDeclarativeView view; + view.setSource(QUrl(mainQmlApp)); + view.setResizeMode(QDeclarativeView::SizeRootObjectToView); + +#if defined(QT_KEYPAD_NAVIGATION) + QApplication::setNavigationMode(Qt::NavigationModeCursorAuto); +#endif // QT_KEYPAD_NAVIGATION + +#if defined(Q_OS_SYMBIAN) + view.showFullScreen(); +#else // Q_OS_SYMBIAN + view.show(); +#endif // Q_OS_SYMBIAN + + return application.exec(); +} diff --git a/demos/embedded/qmldialcontrol/qmldialcontrol.pro b/demos/embedded/qmldialcontrol/qmldialcontrol.pro new file mode 100644 index 0000000..193cf55 --- /dev/null +++ b/demos/embedded/qmldialcontrol/qmldialcontrol.pro @@ -0,0 +1,11 @@ +!symbian:!wince*:warning("DEPLOYMENT support required. This project only works on Symbian and WinCE.") + +QT += declarative +SOURCES += $$PWD/qmldialcontrol.cpp +include($$PWD/deployment.pri) + +symbian { + TARGET.UID3 = 0x$$qmldialcontrol_uid3 # defined in deployment.pri + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 +} diff --git a/demos/embedded/qmleasing/deployment.pri b/demos/embedded/qmleasing/deployment.pri new file mode 100644 index 0000000..ddab1ba --- /dev/null +++ b/demos/embedded/qmleasing/deployment.pri @@ -0,0 +1,7 @@ +qmleasing_src = $$PWD/../../../examples/declarative/animation/easing +symbian { + qmleasing_uid3 = E8E8E725 + qmleasing_files.path = ../$$qmleasing_uid3 +} +qmleasing_files.sources = $$qmleasing_src/easing.qml +DEPLOYMENT += qmleasing_files diff --git a/demos/embedded/qmleasing/qmleasing.cpp b/demos/embedded/qmleasing/qmleasing.cpp new file mode 100644 index 0000000..d326468 --- /dev/null +++ b/demos/embedded/qmleasing/qmleasing.cpp @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore/QFileInfo> +#include <QtGui/QApplication> +#include <QtDeclarative/QDeclarativeView> + +int main(int argc, char *argv[]) +{ + QApplication application(argc, argv); + + const QString mainQmlApp = QLatin1String("easing.qml"); + QDeclarativeView view; + view.setSource(QUrl(mainQmlApp)); + view.setResizeMode(QDeclarativeView::SizeRootObjectToView); + +#if defined(QT_KEYPAD_NAVIGATION) + QApplication::setNavigationMode(Qt::NavigationModeCursorAuto); +#endif // QT_KEYPAD_NAVIGATION + +#if defined(Q_OS_SYMBIAN) + view.showFullScreen(); +#else // Q_OS_SYMBIAN + view.show(); +#endif // Q_OS_SYMBIAN + + return application.exec(); +} diff --git a/demos/embedded/qmleasing/qmleasing.pro b/demos/embedded/qmleasing/qmleasing.pro new file mode 100644 index 0000000..084a880 --- /dev/null +++ b/demos/embedded/qmleasing/qmleasing.pro @@ -0,0 +1,11 @@ +!symbian:!wince*:warning("DEPLOYMENT support required. This project only works on Symbian and WinCE.") + +QT += declarative +SOURCES += $$PWD/qmleasing.cpp +include($$PWD/deployment.pri) + +symbian { + TARGET.UID3 = 0x$$qmleasing_uid3 # defined in deployment.pri + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 +} diff --git a/demos/embedded/qmlflickr/deployment.pri b/demos/embedded/qmlflickr/deployment.pri new file mode 100644 index 0000000..aef3198 --- /dev/null +++ b/demos/embedded/qmlflickr/deployment.pri @@ -0,0 +1,7 @@ +qmlflickr_src = $$PWD/../../declarative/flickr +symbian { + qmlflickr_uid3 = E56D5A92 + qmlflickr_files.path = ../$$qmlflickr_uid3 +} +qmlflickr_files.sources = $$qmlflickr_src/flickr.qml $$qmlflickr_src/common $$qmlflickr_src/mobile +DEPLOYMENT += qmlflickr_files diff --git a/demos/embedded/qmlflickr/qmlflickr.cpp b/demos/embedded/qmlflickr/qmlflickr.cpp new file mode 100644 index 0000000..6f0c528 --- /dev/null +++ b/demos/embedded/qmlflickr/qmlflickr.cpp @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore/QFileInfo> +#include <QtGui/QApplication> +#include <QtDeclarative/QDeclarativeView> +#include <QtDeclarative/QDeclarativeEngine> + +#if defined(Q_OS_SYMBIAN) +#include <QtCore/QTextCodec> +#include <QtCore/QTimer> +#include "sym_iap_util.h" + +class QmlAppView : public QDeclarativeView +{ +Q_OBJECT +public: + QmlAppView(QWidget *parent = 0) + : QDeclarativeView(parent) + { + QTimer::singleShot(0, this, SLOT(setDefaultIap())); + } + +private slots: + void setDefaultIap() + { + qt_SetDefaultIap(); + } +}; +#else // Q_OS_SYMBIAN +typedef QDeclarativeView QmlAppView; +#endif // Q_OS_SYMBIAN + +int main(int argc, char *argv[]) +{ + QApplication application(argc, argv); + + const QString mainQmlApp = QLatin1String("flickr.qml"); + QmlAppView view; + view.setSource(QUrl(mainQmlApp)); + view.setResizeMode(QDeclarativeView::SizeRootObjectToView); + +#if defined(Q_OS_SYMBIAN) + view.showFullScreen(); +#else // Q_OS_SYMBIAN + view.setGeometry(QRect(100, 100, 360, 640)); + view.show(); +#endif // Q_OS_SYMBIAN + return application.exec(); +} + +#if defined(Q_OS_SYMBIAN) +#include "qmlflickr.moc" +#endif // Q_OS_SYMBIAN diff --git a/demos/embedded/qmlflickr/qmlflickr.pro b/demos/embedded/qmlflickr/qmlflickr.pro new file mode 100644 index 0000000..e706134 --- /dev/null +++ b/demos/embedded/qmlflickr/qmlflickr.pro @@ -0,0 +1,14 @@ +!symbian:!wince*:warning("DEPLOYMENT support required. This project only works on Symbian and WinCE.") + +QT += declarative network +SOURCES += $$PWD/qmlflickr.cpp +include($$PWD/deployment.pri) + +symbian { + TARGET.UID3 = 0x$$qmlflickr_uid3 # defined in deployment.pri + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + INCLUDEPATH += $$QT_SOURCE_TREE/examples/network/qftp/ + LIBS += -lesock -lcommdb -linsock # For IAP selection + TARGET.CAPABILITY = NetworkServices + TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 +} diff --git a/demos/embedded/qmlphotoviewer/deployment.pri b/demos/embedded/qmlphotoviewer/deployment.pri new file mode 100644 index 0000000..99475cc --- /dev/null +++ b/demos/embedded/qmlphotoviewer/deployment.pri @@ -0,0 +1,7 @@ +qmlphotoviewer_src = $$PWD/../../declarative/photoviewer +symbian { + qmlphotoviewer_uid3 = E8567E72 + qmlphotoviewer_files.path = ../$$qmlphotoviewer_uid3 +} +qmlphotoviewer_files.sources = $$qmlphotoviewer_src/photoviewer.qml $$qmlphotoviewer_src/PhotoViewerCore +DEPLOYMENT += qmlphotoviewer_files diff --git a/demos/embedded/qmlphotoviewer/qmlphotoviewer.cpp b/demos/embedded/qmlphotoviewer/qmlphotoviewer.cpp new file mode 100644 index 0000000..7889842 --- /dev/null +++ b/demos/embedded/qmlphotoviewer/qmlphotoviewer.cpp @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore/QFileInfo> +#include <QtGui/QApplication> +#include <QtDeclarative/QDeclarativeView> +#include <QtDeclarative/QDeclarativeEngine> + +#if defined(Q_OS_SYMBIAN) +#include <QtCore/QTextCodec> +#include <QtCore/QTimer> +#include "sym_iap_util.h" + +class QmlAppView : public QDeclarativeView +{ +Q_OBJECT +public: + QmlAppView(QWidget *parent = 0) + : QDeclarativeView(parent) + { + QTimer::singleShot(0, this, SLOT(setDefaultIap())); + } + +private slots: + void setDefaultIap() + { + qt_SetDefaultIap(); + } +}; +#else // Q_OS_SYMBIAN +typedef QDeclarativeView QmlAppView; +#endif // Q_OS_SYMBIAN + +int main(int argc, char *argv[]) +{ + QApplication application(argc, argv); + + const QString mainQmlApp = QLatin1String("photoviewer.qml"); + QmlAppView view; + view.setSource(QUrl(mainQmlApp)); + view.setResizeMode(QDeclarativeView::SizeRootObjectToView); + +#if defined(Q_OS_SYMBIAN) + view.showFullScreen(); +#else // Q_OS_SYMBIAN + view.setGeometry(QRect(100, 100, 360, 640)); + view.show(); +#endif // Q_OS_SYMBIAN + return application.exec(); +} + +#if defined(Q_OS_SYMBIAN) +#include "qmlphotoviewer.moc" +#endif // Q_OS_SYMBIAN diff --git a/demos/embedded/qmlphotoviewer/qmlphotoviewer.pro b/demos/embedded/qmlphotoviewer/qmlphotoviewer.pro new file mode 100644 index 0000000..ead5e67 --- /dev/null +++ b/demos/embedded/qmlphotoviewer/qmlphotoviewer.pro @@ -0,0 +1,14 @@ +!symbian:!wince*:warning("DEPLOYMENT support required. This project only works on Symbian and WinCE.") + +QT += declarative network +SOURCES += $$PWD/qmlphotoviewer.cpp +include($$PWD/deployment.pri) + +symbian { + TARGET.UID3 = 0x$$qmlphotoviewer_uid3 # defined in deployment.pri + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + INCLUDEPATH += $$QT_SOURCE_TREE/examples/network/qftp/ + LIBS += -lesock -lcommdb -linsock # For IAP selection + TARGET.CAPABILITY = NetworkServices + TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 +} diff --git a/demos/embedded/qmltwitter/deployment.pri b/demos/embedded/qmltwitter/deployment.pri new file mode 100644 index 0000000..e5bd884 --- /dev/null +++ b/demos/embedded/qmltwitter/deployment.pri @@ -0,0 +1,7 @@ +qmltwitter_src = $$PWD/../../declarative/twitter +symbian { + qmltwitter_uid3 = EEF6D468 + qmltwitter_files.path = ../$$qmltwitter_uid3 +} +qmltwitter_files.sources = $$qmltwitter_src/twitter.qml $$qmltwitter_src/TwitterCore +DEPLOYMENT += qmltwitter_files diff --git a/demos/embedded/qmltwitter/qmltwitter.cpp b/demos/embedded/qmltwitter/qmltwitter.cpp new file mode 100644 index 0000000..e30ab24 --- /dev/null +++ b/demos/embedded/qmltwitter/qmltwitter.cpp @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore/QFileInfo> +#include <QtGui/QApplication> +#include <QtDeclarative/QDeclarativeView> +#include <QtDeclarative/QDeclarativeEngine> + +#if defined(Q_OS_SYMBIAN) +#include <QtCore/QTextCodec> +#include <QtCore/QTimer> +#include "sym_iap_util.h" + +class QmlAppView : public QDeclarativeView +{ +Q_OBJECT +public: + QmlAppView(QWidget *parent = 0) + : QDeclarativeView(parent) + { + QTimer::singleShot(0, this, SLOT(setDefaultIap())); + } + +private slots: + void setDefaultIap() + { + qt_SetDefaultIap(); + } +}; +#else // Q_OS_SYMBIAN +typedef QDeclarativeView QmlAppView; +#endif // Q_OS_SYMBIAN + +int main(int argc, char *argv[]) +{ + QApplication application(argc, argv); + + const QString mainQmlApp = QLatin1String("twitter.qml"); + QmlAppView view; + view.setSource(QUrl(mainQmlApp)); + view.setResizeMode(QDeclarativeView::SizeRootObjectToView); + +#if defined(Q_OS_SYMBIAN) + view.showFullScreen(); +#else // Q_OS_SYMBIAN + view.setGeometry(QRect(100, 100, 360, 640)); + view.show(); +#endif // Q_OS_SYMBIAN + return application.exec(); +} + +#if defined(Q_OS_SYMBIAN) +#include "qmltwitter.moc" +#endif // Q_OS_SYMBIAN diff --git a/demos/embedded/qmltwitter/qmltwitter.pro b/demos/embedded/qmltwitter/qmltwitter.pro new file mode 100644 index 0000000..7f9be57 --- /dev/null +++ b/demos/embedded/qmltwitter/qmltwitter.pro @@ -0,0 +1,14 @@ +!symbian:!wince*:warning("DEPLOYMENT support required. This project only works on Symbian and WinCE.") + +QT += declarative network +SOURCES += $$PWD/qmltwitter.cpp +include($$PWD/deployment.pri) + +symbian { + TARGET.UID3 = 0x$$qmltwitter_uid3 # defined in deployment.pri + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + INCLUDEPATH += $$QT_SOURCE_TREE/examples/network/qftp/ + LIBS += -lesock -lcommdb -linsock # For IAP selection + TARGET.CAPABILITY = NetworkServices + TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 +} diff --git a/demos/qmediaplayer/qmediaplayer.pro b/demos/qmediaplayer/qmediaplayer.pro index cfe3905..9407a81 100644 --- a/demos/qmediaplayer/qmediaplayer.pro +++ b/demos/qmediaplayer/qmediaplayer.pro @@ -17,7 +17,7 @@ HEADERS += mediaplayer.h target.path = $$[QT_INSTALL_DEMOS]/qmediaplayer sources.files = $$SOURCES $$HEADERS $$FORMS $$RESOURCES *.pro *.html *.doc images -sources.path = $$[QT_INSTALL_DEMOS]/qmediaplayer qmediaplayer.pro +sources.path = $$[QT_INSTALL_DEMOS]/qmediaplayer INSTALLS += target sources wince*{ diff --git a/demos/spectrum/app/spectrum.sh b/demos/spectrum/app/spectrum.sh index 75ad6c2..2a230ed 100644 --- a/demos/spectrum/app/spectrum.sh +++ b/demos/spectrum/app/spectrum.sh @@ -1,4 +1,45 @@ #!/bin/sh +############################################################################# +## +## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +## All rights reserved. +## Contact: Nokia Corporation (qt-info@nokia.com) +## +## This file is part of the examples of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL$ +## No Commercial Usage +## This file contains pre-release code and may not be distributed. +## You may use this file in accordance with the terms and conditions +## contained in the Technology Preview License Agreement accompanying +## this package. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 2.1 requirements +## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## In addition, as a special exception, Nokia gives you certain additional +## rights. These rights are described in the Nokia Qt LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## If you have questions regarding the use of this file, please contact +## Nokia at qt-info@nokia.com. +## +## +## +## +## +## +## +## +## $QT_END_LICENSE$ +## +############################################################################# + # Shell script for launching spectrum application on Unix systems other than Mac OSX diff --git a/demos/spectrum/spectrum.pro b/demos/spectrum/spectrum.pro index 8736ba7..a8f09de 100644 --- a/demos/spectrum/spectrum.pro +++ b/demos/spectrum/spectrum.pro @@ -1,4 +1,3 @@ -load(data_caging_paths) include(spectrum.pri) TEMPLATE = subdirs @@ -15,6 +14,8 @@ SUBDIRS += app TARGET = spectrum symbian { + load(data_caging_paths) + # Create a 'make sis' rule which can be run from the top-level include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) diff --git a/dist/changes-4.7.0 b/dist/changes-4.7.0 index e7b1e84..95cff56 100644 --- a/dist/changes-4.7.0 +++ b/dist/changes-4.7.0 @@ -50,14 +50,27 @@ Third party components QtCore ------ + - QString + * Added QString(const QChar *) constructor. + NOTE: This is source-incompatible for the bogus QString(0) case. + * Removed internal but exported qt_winQString2MB() and qt_winMB2QString() + * Added setRawData() function (also revived the one in QByteArray) + * Various performance improvements + - QList + * Added reserve() function + * Various performance improvements - QMetaType * Significantly improved performance of the type() function + * [QTBUG-8235] Support QEasingCurve as a built in metatype. - QState * [QTBUG-7741] Added a function to get the out-going transitions - QXmlStreamReader * [QTBUG-9196] fixed crash when parsing - QTimer * singleShot with 0 timeout will now avoid allocating objects + - QAbstractAnimation + * [QTBUG-10654] Avoids animation with loopCount == 0 to change state + to running and stopped. QtGui ----- @@ -95,6 +108,8 @@ QtGui - QGraphicsTextItem * [QTBUG-7333] Fixed keyboard shortcuts not being triggered when the the item has focus and something else has the same shortcut sequence. + * [QTBUG-10574] Fixed crash when flag "QGraphicsItem::ItemIgnoresTransformations" + is set. - QGraphicsView * [QTBUG-7438] Fixed viewport cursor getting reset when releasing @@ -289,12 +304,7 @@ Qt for Windows CE - [QTBUG-5492] Made widgetbox-filter match on class names, too. - Linguist - - Linguist GUI - - - lupdate - - - lrelease - + * The GNU gettext PO format support has been improved - rcc @@ -310,6 +320,29 @@ Qt for Windows CE compatibility option -limit-xpm-linelength. - qmake + * Removed remainder of tmake compatibility + * Removed remainder of mac9 mode + * Removed MSVC6 generator + * Removed makespecs for MSVC.NET and MSVC2002 + * Deprecated -win32/-unix/-macx options, following various cleanups + relating to platform support. Cross-building makespecs should now + specify a TARGET_PLATFORM. + * Started to warn about use of various constructs: + - non-lowercased replace $$function() calls + - deprecated variables + - unescaped backslashes. + NOTE: You should use UNIX path separators where possible. qmake + will warn about unnecessary Windows path separators in the future. + * Removed expansion of qmake- & environment variables in some unexpected + cases (double expansions, command line options, etc.) + * Removed splitting at semicolons of literal values which were assigned + directly to INCLUDEPATH and DEPENDPATH + * Removed UNIX-specific exporting of all qmake variables to the environment + of subprocesses invoked via system(). You should put specific assignments + into the invoked shell command instead. + * Started to short-cut evaluation inside if() tests, consistently with + evaluation outside if(). + * Added possibility to request project recursion from within a PRO file - configure diff --git a/doc/src/declarative/basictypes.qdoc b/doc/src/declarative/basictypes.qdoc index 43ae214..87dab81 100644 --- a/doc/src/declarative/basictypes.qdoc +++ b/doc/src/declarative/basictypes.qdoc @@ -40,363 +40,377 @@ ****************************************************************************/ /*! - \page qdeclarativebasictypes.html - \title QML Basic Types + \page qdeclarativebasictypes.html + \title QML Basic Types - QML has a set of primitive types, as listed below, that are used throughout - the \l {QML Elements}. + QML has a set of primitive types, as listed below, that are used throughout + the \l {QML Elements}. - Some of these types can also be used for defining - \c property values in QML. See \l{Extending types from QML} for the - list of types that can be used for \c property values. + Some of these types can also be used for defining + \c property values in QML. See \l{Extending types from QML} for the + list of types that can be used for \c property values. - \annotatedlist qmlbasictypes + \annotatedlist qmlbasictypes */ /*! - \qmlbasictype int - \ingroup qmlbasictypes + \qmlbasictype int + \ingroup qmlbasictypes - \brief An integer is a whole number, e.g. 0, 10, or -20. + \brief An integer is a whole number, e.g. 0, 10, or -20. - An integer is a whole number, e.g. 0, 10, or -20. The possible \c - int values range from around -2000000000 to around 2000000000, - although most elements will only accept a reduced range (which they - mention in their documentation). + An integer is a whole number, e.g. 0, 10, or -20. The possible \c + int values range from around -2000000000 to around 2000000000, + although most elements will only accept a reduced range (which they + mention in their documentation). - Example: - \qml - Item { width: 100; height: 200 } - \endqml + Example: + \qml + Item { width: 100; height: 200 } + \endqml - \sa {QML Basic Types} + \sa {QML Basic Types} */ /*! - \qmlbasictype bool - \ingroup qmlbasictypes + \qmlbasictype bool + \ingroup qmlbasictypes - \brief A boolean is a binary true/false value. + \brief A boolean is a binary true/false value. - A boolean is a binary true/false value. + A boolean is a binary true/false value. - Example: - \qml - Item { focus: true; clip: false } - \endqml + Example: + \qml + Item { focus: true; clip: false } + \endqml - \sa {QML Basic Types} + \sa {QML Basic Types} */ /*! - \qmlbasictype real - \ingroup qmlbasictypes + \qmlbasictype real + \ingroup qmlbasictypes - \brief A real number has a decimal point, e.g. 1.2 or -29.8. + \brief A real number has a decimal point, e.g. 1.2 or -29.8. - A real number has a decimal point, e.g. 1.2 or -29.8. + A real number has a decimal point, e.g. 1.2 or -29.8. - Example: - \qml - Item { width: 100.45; height: 150.82 } - \endqml + Example: + \qml + Item { width: 100.45; height: 150.82 } + \endqml - \note In QML all reals are stored in single precision, \l - {http://en.wikipedia.org/wiki/IEEE_754} {IEEE floating point} - format. + \note In QML all reals are stored in single precision, \l + {http://en.wikipedia.org/wiki/IEEE_754} {IEEE floating point} + format. - \sa {QML Basic Types} + \sa {QML Basic Types} */ /*! - \qmlbasictype string - \ingroup qmlbasictypes + \qmlbasictype string + \ingroup qmlbasictypes - \brief A string is a free form text in quotes, e.g. "Hello world!". + \brief A string is a free form text in quotes, e.g. "Hello world!". - A string is a free form text in quotes, e.g. "Hello world!". + A string is a free form text in quotes, e.g. "Hello world!". - Example: - \qml - Text { text: "Hello world!" } - \endqml + Example: + \qml + Text { text: "Hello world!" } + \endqml - \sa {QML Basic Types} + \sa {QML Basic Types} */ /*! - \qmlbasictype url - \ingroup qmlbasictypes + \qmlbasictype url + \ingroup qmlbasictypes - \brief A URL is a resource locator, like a file name. + \brief A URL is a resource locator, like a file name. - A URL is a resource locator, like a file name. It can be either - absolute, e.g. "http://qt.nokia.com", or relative, e.g. - "pics/logo.png". A relative URL is resolved relative to the URL of - the component where the URL is converted from a JavaScript string - expression to a url property value. + A URL is a resource locator, like a file name. It can be either + absolute, e.g. "http://qt.nokia.com", or relative, e.g. + "pics/logo.png". A relative URL is resolved relative to the URL of + the component where the URL is converted from a JavaScript string + expression to a url property value. - Example: - \qml - Image { source: "pics/logo.png" } - \endqml + Example: + \qml + Image { source: "pics/logo.png" } + \endqml - \raw HTML - \endraw + \raw HTML + \endraw - \sa {QML Basic Types} + \sa {QML Basic Types} */ /*! - \qmlbasictype color - \ingroup qmlbasictypes + \qmlbasictype color + \ingroup qmlbasictypes - \brief A color is a standard color name in quotes. + \brief A color is a standard color name in quotes. - A color is a standard color name in quotes. It is normally specified - as an \l {http://www.w3.org/TR/SVG/types.html#ColorKeywords} {SVG - color name}. These names include colors like "red", "green" and - "lightsteelblue". + A color is a standard color name in quotes. It is normally specified + as an \l {http://www.w3.org/TR/SVG/types.html#ColorKeywords} {SVG + color name}. These names include colors like "red", "green" and + "lightsteelblue". - If the color you want isn't part of this list, colors can also be - specified in hexidecimal triplets or quads that take the form \c - "#RRGGBB" and \c "#AARRGGBB" respectively. For example, the color - red corresponds to a triplet of \c "#FF0000" and a slightly - transparent blue to a quad of \c "#800000FF". + If the color you want isn't part of this list, colors can also be + specified in hexidecimal triplets or quads that take the form \c + "#RRGGBB" and \c "#AARRGGBB" respectively. For example, the color + red corresponds to a triplet of \c "#FF0000" and a slightly + transparent blue to a quad of \c "#800000FF". - Example: - \qml - Rectangle { color: "steelblue" } - Rectangle { color: "#FF0000" } - Rectangle { color: "#800000FF" } - \endqml + Example: + \qml + Rectangle { color: "steelblue" } + Rectangle { color: "#FF0000" } + Rectangle { color: "#800000FF" } + \endqml - Or with the \l{Qt::rgba()}{Qt.rgba()}, \l{Qt::hsla()}{Qt.hsla()}, \l{Qt::darker()}{Qt.darker()}, - \l{Qt::lighter()}{Qt.lighter()} or \l{Qt::tint()}{Qt.tint()} functions: + Or with the \l{Qt::rgba()}{Qt.rgba()}, \l{Qt::hsla()}{Qt.hsla()}, \l{Qt::darker()}{Qt.darker()}, + \l{Qt::lighter()}{Qt.lighter()} or \l{Qt::tint()}{Qt.tint()} functions: - \qml - Rectangle { color: Qt.rgba(255, 0, 0, 1) } - \endqml + \qml + Rectangle { color: Qt.rgba(255, 0, 0, 1) } + \endqml - \sa {QML Basic Types} + \sa {QML Basic Types} */ /*! - \qmlbasictype point - \ingroup qmlbasictypes + \qmlbasictype point + \ingroup qmlbasictypes - \brief A point is specified as "x,y". + \brief A point type has x and y attributes. - A point is specified as "x,y". + A \c point type has \c x and \c y attributes. - Example: - \qml - MyItem { position: "0,20" } - \endqml + To create a \c point value, specify it as a "x,y" string: - Or with the \l{Qt::point()}{Qt.point()} function: + \qml + CustomObject { myPointProperty: "0,20" } + \endqml - \qml - MyItem { position: Qt.point(0, 20) } - \endqml + Or use the \l{Qt::point()}{Qt.point()} function: - A point object has \c x and \c y attributes that contain the \c x and \c y values. + \qml + CustomObject { myPointProperty: Qt.point(0, 20) } + \endqml - \sa {QML Basic Types} + \sa {QML Basic Types} */ /*! - \qmlbasictype size - \ingroup qmlbasictypes + \qmlbasictype size + \ingroup qmlbasictypes + + \brief A size type has width and height attributes - \brief A size is specified as "width x height". + A \c size type has \c width and \c height attributes. - A size is specified as "width x height". + For example, to read the \l {Image::sourceSize} \c size property: - Example: - \qml - LayoutItem { preferredSize: "150x50" } - \endqml + \qml + Column { + Image { id: image; source: "logo.png" } + Text { text: image.sourceSize.width + "," + image.sourceSize.height } + } + \endqml - Or with the \l{Qt::size()}{Qt.size()} function: + To create a \c size value, specify it as a "width x height" string: - \qml - MyItem { position: Qt.size(150, 50) } - \endqml + \qml + LayoutItem { preferredSize: "150x50" } + \endqml - A size object has \c width and \c height attributes that contain the \c width and \c height values. + Or use the \l{Qt::size()}{Qt.size()} function: - \sa {QML Basic Types} + \qml + LayoutItem { preferredSize: Qt.size(150, 50) } + \endqml + + \sa {QML Basic Types} */ /*! - \qmlbasictype rect - \ingroup qmlbasictypes + \qmlbasictype rect + \ingroup qmlbasictypes + + \brief A rect type has x, y, width and height attributes. + + A \c rect type has \c x, \c y, \c width and \c height attributes. - \brief A rect is specified as "x, y, width x height". + For example, to read the \l {Item::childrenRect.x}{Item::childrenRect} \c rect property: + \qml + Rectangle { + width: childrenRect.width + height: childrenRect.height - A rect is specified as "x, y, width x height". + Rectangle { width: 100; height: 100 } + } + \endqml - Example: - \qml - MyItem { geometry: "50,50,100x100" } - \endqml + To create a \c rect value, specify it as a "x, y, width x height" string: - Or with the \l{Qt::rect()}{Qt.rect()} function: + \qml + CustomObject { myRectProperty: "50,50,100x100" } + \endqml - \qml - MyItem { position: Qt.rect(50, 50, 100, 100) } - \endqml + Or use the \l{Qt::rect()}{Qt.rect()} function: - A rect object has \c x, \c, y, \c width and \c height attributes that contain the - \c x, \c y, \c width and \c height values. + \qml + CustomObject { myRectProperty: Qt.rect(50, 50, 100, 100) } + \endqml - \sa {QML Basic Types} + \sa {QML Basic Types} */ /*! - \qmlbasictype date - \ingroup qmlbasictypes + \qmlbasictype date + \ingroup qmlbasictypes - \brief A date is specified as "YYYY-MM-DD". + \brief A date is specified as "YYYY-MM-DD". - A date is specified as "YYYY-MM-DD". + To create a \c date value, specify it as a "YYYY-MM-DD" string: - Example: - \qml - MyDatePicker { minDate: "2000-01-01"; maxDate: "2020-12-31" } - \endqml + Example: + \qml + MyDatePicker { minDate: "2000-01-01"; maxDate: "2020-12-31" } + \endqml - To read a date value returned from a C++ extension class, use - \l{Qt::formatDate()}{Qt.formatDate()} and \l{Qt::formatDateTime()}{Qt.formatDateTime()}. + To read a date value returned from a C++ extension class, use + \l{Qt::formatDate()}{Qt.formatDate()} and \l{Qt::formatDateTime()}{Qt.formatDateTime()}. - \sa {QML Basic Types} + \sa {QML Basic Types} */ /*! - \qmlbasictype time - \ingroup qmlbasictypes + \qmlbasictype time + \ingroup qmlbasictypes - \brief A time is specified as "hh:mm:ss". + \brief A time is specified as "hh:mm:ss". - A time is specified as "hh:mm:ss". + A time is specified as "hh:mm:ss". - Example: - \qml - MyTimePicker { time: "14:22:15" } - \endqml + Example: + \qml + MyTimePicker { time: "14:22:15" } + \endqml - To read a time value returned from a C++ extension class, use - \l{Qt::formatTime()}{Qt.formatTime()} and \l{Qt::formatDateTime()}{Qt.formatDateTime()}. + To read a time value returned from a C++ extension class, use + \l{Qt::formatTime()}{Qt.formatTime()} and \l{Qt::formatDateTime()}{Qt.formatDateTime()}. - \sa {QML Basic Types} + \sa {QML Basic Types} */ /*! - \qmlbasictype font - \ingroup qmlbasictypes + \qmlbasictype font + \ingroup qmlbasictypes - \brief A font type has the properties of a QFont. + \brief A font type has the properties of a QFont. - A font type has the properties of a QFont. The properties are: + A font type has the properties of a QFont. The properties are: - \list - \o \c string font.family - \o \c bool font.bold - \o \c bool font.italic - \o \c bool font.underline - \o \c real font.pointSize - \o \c int font.pixelSize - \endlist + \list + \o \c string font.family + \o \c bool font.bold + \o \c bool font.italic + \o \c bool font.underline + \o \c real font.pointSize + \o \c int font.pixelSize + \endlist - Example: - \qml - Text { font.family: "Helvetica"; font.pointSize: 13; font.bold: true } - \endqml + Example: + \qml + Text { font.family: "Helvetica"; font.pointSize: 13; font.bold: true } + \endqml - \sa {QML Basic Types} + \sa {QML Basic Types} */ /*! - \qmlbasictype action - \ingroup qmlbasictypes + \qmlbasictype action + \ingroup qmlbasictypes - \brief The action type has all the properties of QAction. + \brief The action type has all the properties of QAction. - The action type has all the properties of QAction. The properties - are: + The action type has all the properties of QAction. The properties + are: - \list - \o \c slot action.trigger - invoke the action - \o \c bool action.enabled - true if the action is enabled - \o \c string action.text - the text associated with the action - \endlist + \list + \o \c slot action.trigger - invoke the action + \o \c bool action.enabled - true if the action is enabled + \o \c string action.text - the text associated with the action + \endlist - Actions are used like this: + Actions are used like this: - \qml - MouseArea { onClicked: myaction.trigger() } - State { name: "enabled"; when: myaction.enabled == true } - Text { text: someaction.text } - \endqml + \qml + MouseArea { onClicked: myaction.trigger() } + State { name: "enabled"; when: myaction.enabled == true } + Text { text: someaction.text } + \endqml - \sa {QML Basic Types} + \sa {QML Basic Types} */ /*! - \qmlbasictype list - \ingroup qmlbasictypes - - \brief A list of objects. - - A list of objects. While not technically a basic type, QML also - supports lists of object types. When used from QML, the engine - automatically appends each value to the list. - - For example, the \l Item class contains a list property named - children that can be used like this: - - \qml - Item { - children: [ - Item { id: child1 }, - Rectangle { id: child2 }, - Text { id: child3 } - ] - } - \endqml - \c child1, \c child2 and \c child3 will all be added to the children list - in the order in which they appear. - - \sa {QML Basic Types} + \qmlbasictype list + \ingroup qmlbasictypes + + \brief A list of objects. + + A list of objects. While not technically a basic type, QML also + supports lists of object types. When used from QML, the engine + automatically appends each value to the list. + + For example, the \l Item class contains a list property named + children that can be used like this: + + \qml + Item { + children: [ + Item { id: child1 }, + Rectangle { id: child2 }, + Text { id: child3 } + ] + } + \endqml + \c child1, \c child2 and \c child3 will all be added to the children list + in the order in which they appear. + + \sa {QML Basic Types} */ /*! - \qmlbasictype vector3d - \ingroup qmlbasictypes + \qmlbasictype vector3d + \ingroup qmlbasictypes - \brief A vector3d is specified as "x,y,z". + \brief A vector3d type has x, y, and z attributes. - A vector3d is specified as "x,y,z". + A \c vector3d type has \c x, \c y, and \c z attributes. - \qml - Rotation { angle: 60; axis: "0,1,0" } - \endqml + To create a \c vector3d value, specify it as a "x,y,z" string: - or with the \c{Qt.vector3d()} function: + \qml + Rotation { angle: 60; axis: "0,1,0" } + \endqml - \qml - Rotation { angle: 60; axis: Qt.vector3d(0, 1, 0) } - \endqml + or with the \l{Qt::vector3d()}{Qt.vector3d()} function: - or as separate \c x, \c y, and \c z components: + \qml + Rotation { angle: 60; axis: Qt.vector3d(0, 1, 0) } + \endqml - \qml - Rotation { angle: 60; axis.x: 0; axis.y: 1; axis.z: 0 } - \endqml + or as separate \c x, \c y, and \c z components: - A vector3d object has \c x, \c, y, and \c z attributes that contain the - \c x, \c y, \c z values. + \qml + Rotation { angle: 60; axis.x: 0; axis.y: 1; axis.z: 0 } + \endqml - \sa {QML Basic Types} + \sa {QML Basic Types} */ diff --git a/doc/src/declarative/elements.qdoc b/doc/src/declarative/elements.qdoc index 574a187..aa48bcb 100644 --- a/doc/src/declarative/elements.qdoc +++ b/doc/src/declarative/elements.qdoc @@ -59,8 +59,8 @@ The following table lists the QML elements provided by the \l {QtDeclarative}{Qt \o \l State \o \l PropertyChanges \o \l StateGroup +\o \l StateChangeScript \o \l ParentChange (Item-specific) -\o \l StateChangeScript (Item-specific) \o \l AnchorChanges (Item-specific) \endlist @@ -76,6 +76,7 @@ The following table lists the QML elements provided by the \l {QtDeclarative}{Qt \o \l ParentAnimation \o \l AnchorAnimation \o \l SmoothedAnimation +\o \l Vector3dAnimation \o \l PropertyAction \o \l ScriptAction \o \l Transition @@ -167,8 +168,8 @@ The following table lists the QML elements provided by the \l {QtDeclarative}{Qt \header \o \bold {Views} \o \bold {Positioners} -\o \bold {Media} \o \bold {Effects} +\o \row \o @@ -201,13 +202,6 @@ The following table lists the QML elements provided by the \l {QtDeclarative}{Qt \o \list -\o \l SoundEffect -\o \l Audio -\o \l Video -\endlist - -\o -\list \o \l Particles (experimental) \list \o \l ParticleMotionLinear @@ -217,4 +211,6 @@ The following table lists the QML elements provided by the \l {QtDeclarative}{Qt \endlist \endtable +\o + */ diff --git a/doc/src/declarative/pics/gridview-highlight.png b/doc/src/declarative/pics/gridview-highlight.png Binary files differnew file mode 100644 index 0000000..b54af37 --- /dev/null +++ b/doc/src/declarative/pics/gridview-highlight.png diff --git a/doc/src/declarative/pics/gridview-simple.png b/doc/src/declarative/pics/gridview-simple.png Binary files differnew file mode 100644 index 0000000..a102939 --- /dev/null +++ b/doc/src/declarative/pics/gridview-simple.png diff --git a/doc/src/declarative/pics/gridview.png b/doc/src/declarative/pics/gridview.png Binary files differdeleted file mode 100644 index 3726893..0000000 --- a/doc/src/declarative/pics/gridview.png +++ /dev/null diff --git a/doc/src/declarative/pics/translate.png b/doc/src/declarative/pics/translate.png Binary files differnew file mode 100644 index 0000000..baf58b0 --- /dev/null +++ b/doc/src/declarative/pics/translate.png diff --git a/doc/src/declarative/pics/visualitemmodel.png b/doc/src/declarative/pics/visualitemmodel.png Binary files differnew file mode 100644 index 0000000..5e6d132 --- /dev/null +++ b/doc/src/declarative/pics/visualitemmodel.png diff --git a/doc/src/howtos/openvg.qdoc b/doc/src/howtos/openvg.qdoc index e448d9c..f4a34cd 100644 --- a/doc/src/howtos/openvg.qdoc +++ b/doc/src/howtos/openvg.qdoc @@ -262,7 +262,10 @@ The QVG_SCISSOR_CLIP define will disable clipping with vgMask() or vgRenderToMask() and instead use the scissor rectangle list to perform - clipping. Clipping with an arbitrary QPainterPath will not be supported. + clipping. Clipping with an arbitrary QPainterPath will need to convert + the path into a series of rectangles. If the number of rectangles + exceeds VG_MAX_SCISSOR_RECTS, then the results will not be exact. + The QVG_SCISSOR_CLIP define should only be used if the OpenVG engine does not support vgMask() or vgRenderToMask(). diff --git a/doc/src/internationalization/linguist-manual.qdoc b/doc/src/internationalization/linguist-manual.qdoc index 424dec2..4493deb 100644 --- a/doc/src/internationalization/linguist-manual.qdoc +++ b/doc/src/internationalization/linguist-manual.qdoc @@ -252,6 +252,9 @@ can also process Localization Interchange File Format (XLIFF) format files; files in this format typically have file names that end with the \c .xlf suffix. + + \note The minimum supported version for XLIFF format files is + 1.1. XLIFF 1.0 version files are not supported. Pass the \c -help option to \c lupdate to obtain the list of supported options: @@ -962,8 +965,10 @@ application. \o \c .xlf \e {XLIFF files} \BR are human-readable XML files that adhere to the international XML Localization Interchange File Format. \QL - can be used to edit XLIFF files generated by other programs. For standard - Qt projects, however, only the TS file format is used. + can be used to edit XLIFF files generated by other programs. However, for + standard Qt projects, only the TS file format is used. \note The minimum + supported version for XLIFF format files is 1.1. XLIFF 1.0 version files + are not supported. \o QM \e {Qt message files} \BR are binary files that contain translations used by an application at run-time. These files are generated by \l lrelease, but can also be generated by \QL. diff --git a/doc/src/platforms/emb-openvg.qdocinc b/doc/src/platforms/emb-openvg.qdocinc index 579af67..877d70c 100644 --- a/doc/src/platforms/emb-openvg.qdocinc +++ b/doc/src/platforms/emb-openvg.qdocinc @@ -225,7 +225,9 @@ The QVG_NO_RENDER_TO_MASK define will disable the use of vgRenderToMask(). The QVG_SCISSOR_CLIP define will disable clipping with vgMask() or vgRenderToMask() and instead use the scissor rectangle list to perform -clipping. Clipping with an arbitrary QPainterPath will not be supported. +clipping. Clipping with an arbitrary QPainterPath will need to convert +the path into a series of rectangles. If the number of rectangles +exceeds VG_MAX_SCISSOR_RECTS, then the results will not be exact. The QVG_SCISSOR_CLIP define should only be used if the OpenVG engine does not support vgMask() or vgRenderToMask(). diff --git a/doc/src/snippets/declarative/gridview/dummydata/ContactModel.qml b/doc/src/snippets/declarative/gridview/ContactModel.qml index 1e79030..2da4660 100644 --- a/doc/src/snippets/declarative/gridview/dummydata/ContactModel.qml +++ b/doc/src/snippets/declarative/gridview/ContactModel.qml @@ -39,28 +39,26 @@ ** ****************************************************************************/ +//![0] import Qt 4.7 ListModel { - id: contactModel + ListElement { - name: "Bill Smith" - number: "555 3264" + name: "Jim Williams" portrait: "pics/portrait.png" } ListElement { - name: "Jim Williams" - number: "555 5673" + name: "John Brown" portrait: "pics/portrait.png" } ListElement { - name: "John Brown" - number: "555 8426" + name: "Bill Smyth" portrait: "pics/portrait.png" } ListElement { name: "Sam Wise" - number: "555 0473" portrait: "pics/portrait.png" } } +//![0] diff --git a/doc/src/snippets/declarative/gridview/gridview.qml b/doc/src/snippets/declarative/gridview/gridview.qml index 3c205bc..0b3bbf3 100644 --- a/doc/src/snippets/declarative/gridview/gridview.qml +++ b/doc/src/snippets/declarative/gridview/gridview.qml @@ -39,50 +39,98 @@ ** ****************************************************************************/ +//![import] import Qt 4.7 +//![import] -//! [3] Rectangle { - width: 240; height: 180; color: "white" - // ContactModel model is defined in dummydata/ContactModel.qml - // The viewer automatically loads files in dummydata/* to assist - // development without a real data source. - - // Define a delegate component. A component will be - // instantiated for each visible item in the list. -//! [0] + width: childrenRect.width; height: childrenRect.height + +Row { + +//![classdocs simple] +GridView { + width: 300; height: 200 + + model: ContactModel {} + delegate: Column { + Image { source: portrait; anchors.horizontalCenter: parent.horizontalCenter } + Text { text: name; anchors.horizontalCenter: parent.horizontalCenter } + } +} +//![classdocs simple] + + +//![classdocs advanced] +Rectangle { + width: 300; height: 200 + Component { - id: delegate + id: contactDelegate Item { - id: wrapper - width: 80; height: 78 + width: grid.cellWidth; height: grid.cellHeight Column { + anchors.fill: parent Image { source: portrait; anchors.horizontalCenter: parent.horizontalCenter } Text { text: name; anchors.horizontalCenter: parent.horizontalCenter } } } } -//! [0] - // Define a highlight component. Just one of these will be instantiated - // by each ListView and placed behind the current item. -//! [1] - Component { - id: highlight - Rectangle { - color: "lightsteelblue" - radius: 5 - } - } -//! [1] - // The actual grid -//! [2] + GridView { - width: parent.width; height: parent.height - model: ContactModel; delegate: delegate + id: grid + anchors.fill: parent cellWidth: 80; cellHeight: 80 - highlight: highlight + + model: ContactModel {} + delegate: contactDelegate + highlight: Rectangle { color: "lightsteelblue"; radius: 5 } focus: true } -//! [2] } -//! [3] +//![classdocs advanced] + +//![delayRemove] +Component { + id: delegate + Item { + GridView.onRemove: SequentialAnimation { + PropertyAction { target: wrapper; property: "GridView.delayRemove"; value: true } + NumberAnimation { target: wrapper; property: "scale"; to: 0; duration: 250; easing.type: Easing.InOutQuad } + PropertyAction { target: wrapper; property: "GridView.delayRemove"; value: false } + } + } +} +//![delayRemove] + +//![highlightFollowsCurrentItem] +Component { + id: highlight + Rectangle { + width: view.cellWidth; height: view.cellHeight + color: "lightsteelblue"; radius: 5 + SpringFollow on x { to: view.currentItem.x; spring: 3; damping: 0.2 } + SpringFollow on y { to: view.currentItem.y; spring: 3; damping: 0.2 } + } +} + +GridView { + id: view + width: 300; height: 200 + cellWidth: 80; cellHeight: 80 + + model: ContactModel {} + delegate: Column { + Image { source: portrait; anchors.horizontalCenter: parent.horizontalCenter } + Text { text: name; anchors.horizontalCenter: parent.horizontalCenter } + } + + highlight: highlight + highlightFollowsCurrentItem: false + focus: true +} +//![highlightFollowsCurrentItem] + +} + +} diff --git a/doc/src/snippets/declarative/listview/highlight.qml b/doc/src/snippets/declarative/listview/highlight.qml deleted file mode 100644 index af9e95f..0000000 --- a/doc/src/snippets/declarative/listview/highlight.qml +++ /dev/null @@ -1,104 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import Qt 4.7 - -Rectangle { - width: 180; height: 200; color: "white" - - // ContactModel model is defined in dummydata/ContactModel.qml - // The viewer automatically loads files in dummydata/* to assist - // development without a real data source. - - // Define a delegate component. A component will be - // instantiated for each visible item in the list. -//! [0] - Component { - id: delegate - Item { - id: wrapper - width: 180; height: 40 - Column { - x: 5; y: 5 - Text { text: '<b>Name:</b> ' + name } - Text { text: '<b>Number:</b> ' + number } - } - // Use the ListView.isCurrentItem attached property to - // indent the item if it is the current item. - states: [ - State { - name: "Current" - when: wrapper.ListView.isCurrentItem - PropertyChanges { target: wrapper; x: 10 } - } - ] - transitions: [ - Transition { NumberAnimation { properties: "x"; duration: 200 } } - ] - } - } -//! [0] - // Specify a highlight with custom movement. Note that autoHighlight - // is set to false in the ListView so that we can control how the - // highlight moves to the current item. -//! [1] - Component { - id: highlight - Rectangle { - width: 180; height: 40 - color: "lightsteelblue"; radius: 5 - SpringFollow on y { - to: list.currentItem.y - spring: 3 - damping: 0.2 - } - } - } - ListView { - id: list - width: parent.height; height: parent.height - model: ContactModel; delegate: delegate - highlight: highlight - highlightFollowsCurrentItem: false - focus: true - } -//! [1] -} diff --git a/doc/src/snippets/declarative/mouseregion.qml b/doc/src/snippets/declarative/mousearea.qml index a162854..c6071c7 100644 --- a/doc/src/snippets/declarative/mouseregion.qml +++ b/doc/src/snippets/declarative/mousearea.qml @@ -39,11 +39,17 @@ ** ****************************************************************************/ +//! [import] import Qt 4.7 +//! [import] + +Rectangle { + width: childrenRect.width + height: childrenRect.height -Rectangle { width: 200; height: 100 Row { -//! [0] + +//! [intro] Rectangle { width: 100; height: 100 color: "green" @@ -53,8 +59,9 @@ Rectangle { onClicked: { parent.color = 'red' } } } -//! [0] -//! [1] +//! [intro] + +//! [intro-extended] Rectangle { width: 100; height: 100 color: "green" @@ -70,6 +77,43 @@ Rectangle { } } } -//! [1] +//! [intro-extended] + +//! [drag] +Rectangle { + id: container + width: 600; height: 200 + + Image { + id: pic + source: "pics/qt.png" + opacity: (600.0 - pic.x) / 600 + + MouseArea { + anchors.fill: parent + drag.target: pic + drag.axis: Drag.XAxis + drag.minimumX: 0 + drag.maximumX: container.width - pic.width + } + } +} +//! [drag] + +//! [mousebuttons] +Text { + text: mouseArea.pressedButtons & Qt.RightButton ? "right" : "" + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + + MouseArea { + id: mouseArea + anchors.fill: parent + acceptedButtons: Qt.LeftButton | Qt.RightButton + } +} +//! [mousebuttons] + } + } diff --git a/doc/src/snippets/declarative/pathview/dummydata/MenuModel.qml b/doc/src/snippets/declarative/pathview/ContactModel.qml index a52b60a..1a042a3 100644 --- a/doc/src/snippets/declarative/pathview/dummydata/MenuModel.qml +++ b/doc/src/snippets/declarative/pathview/ContactModel.qml @@ -39,20 +39,21 @@ ** ****************************************************************************/ +//![0] import Qt 4.7 ListModel { - id: menuModel ListElement { name: "Bill Jones" - icon: "pics/qtlogo-64.png" + icon: "pics/qtlogo.png" } ListElement { name: "Jane Doe" - icon: "pics/qtlogo-64.png" + icon: "pics/qtlogo.png" } ListElement { name: "John Smith" - icon: "pics/qtlogo-64.png" + icon: "pics/qtlogo.png" } } +//![0] diff --git a/doc/src/snippets/declarative/pathview/pathattributes.qml b/doc/src/snippets/declarative/pathview/pathattributes.qml index e8d2509..3ba3b95 100644 --- a/doc/src/snippets/declarative/pathview/pathattributes.qml +++ b/doc/src/snippets/declarative/pathview/pathattributes.qml @@ -39,16 +39,16 @@ ** ****************************************************************************/ +//! [0] import Qt 4.7 Rectangle { - width: 240; height: 200; color: 'white' -//! [0] + width: 240; height: 200 + //! [1] Component { id: delegate Item { - id: wrapper width: 80; height: 80 scale: PathView.scale opacity: PathView.opacity @@ -59,9 +59,12 @@ Rectangle { } } //! [1] + //! [2] PathView { - anchors.fill: parent; model: MenuModel; delegate: delegate + anchors.fill: parent + model: ContactModel {} + delegate: delegate path: Path { startX: 120; startY: 100 PathAttribute { name: "scale"; value: 1.0 } @@ -73,5 +76,5 @@ Rectangle { } } //! [2] -//! [0] } +//! [0] diff --git a/doc/src/snippets/declarative/pathview/pathview.qml b/doc/src/snippets/declarative/pathview/pathview.qml index 31b793d..1669847 100644 --- a/doc/src/snippets/declarative/pathview/pathview.qml +++ b/doc/src/snippets/declarative/pathview/pathview.qml @@ -39,27 +39,27 @@ ** ****************************************************************************/ +//! [0] import Qt 4.7 Rectangle { - width: 240; height: 200; color: 'white' -//! [0] + width: 240; height: 200 + //! [1] Component { id: delegate - Item { - id: wrapper - width: 80; height: 80 - Column { - Image { anchors.horizontalCenter: name.horizontalCenter; width: 64; height: 64; source: icon } - Text { text: name; font.pointSize: 16} - } + Column { + Image { anchors.horizontalCenter: name.horizontalCenter; width: 64; height: 64; source: icon } + Text { text: name; font.pointSize: 16 } } } //! [1] + //! [2] PathView { - anchors.fill: parent; model: MenuModel; delegate: delegate + anchors.fill: parent + model: ContactModel {} + delegate: delegate path: Path { startX: 120; startY: 100 PathQuad { x: 120; y: 25; controlX: 260; controlY: 75 } @@ -67,5 +67,5 @@ Rectangle { } } //! [2] -//! [0] } +//! [0] diff --git a/doc/src/snippets/declarative/pathview/pics/qtlogo-64.png b/doc/src/snippets/declarative/pathview/pics/qtlogo.png Binary files differindex 4f68e16..4f68e16 100644 --- a/doc/src/snippets/declarative/pathview/pics/qtlogo-64.png +++ b/doc/src/snippets/declarative/pathview/pics/qtlogo.png diff --git a/doc/src/snippets/qxmlschema/main.cpp b/doc/src/snippets/qxmlschema/main.cpp index 83fb245..26a8741 100644 --- a/doc/src/snippets/qxmlschema/main.cpp +++ b/doc/src/snippets/qxmlschema/main.cpp @@ -91,11 +91,8 @@ void Schema::loadFromData() const " elementFormDefault=\"qualified\">" "</xsd:schema>" ); - QBuffer buffer(&data); - buffer.open(QIODevice::ReadOnly); - QXmlSchema schema; - schema.load(&buffer); + schema.load(data); if (schema.isValid()) qDebug() << "schema is valid"; diff --git a/doc/src/template/images/arrow_down.png b/doc/src/template/images/arrow_down.png Binary files differnew file mode 100644 index 0000000..9d01e97 --- /dev/null +++ b/doc/src/template/images/arrow_down.png diff --git a/doc/src/template/images/bg_ll_blank.png b/doc/src/template/images/bg_ll_blank.png Binary files differnew file mode 100644 index 0000000..95a1c45 --- /dev/null +++ b/doc/src/template/images/bg_ll_blank.png diff --git a/doc/src/template/images/bg_ul_blank.png b/doc/src/template/images/bg_ul_blank.png Binary files differnew file mode 100644 index 0000000..7051261 --- /dev/null +++ b/doc/src/template/images/bg_ul_blank.png diff --git a/doc/src/template/images/header_bg.png b/doc/src/template/images/header_bg.png Binary files differnew file mode 100644 index 0000000..a436aa6 --- /dev/null +++ b/doc/src/template/images/header_bg.png diff --git a/doc/src/template/scripts/narrow.js b/doc/src/template/scripts/narrow.js new file mode 100644 index 0000000..12d0ce8 --- /dev/null +++ b/doc/src/template/scripts/narrow.js @@ -0,0 +1,78 @@ +var narrowInit = function() { + /* TODO: + Could probably be more efficient, not hardcoding each element to be created + */ + // 1: Create search form + var narrowSearch = $('<div id="narrowsearch"></div>'); + var searchform = $("#qtdocsearch"); + narrowSearch.append(searchform); + $("#qtdocheader .content .qtref").after(narrowSearch); + + // 2: Create dropdowns + var narrowmenu = $('<ul id="narrowmenu" class="sf-menu"></ul>'); + + // Lookup + var lookuptext = $("#lookup h2").attr("title"); + $("#lookup ul").removeAttr("id"); + $("#lookup ul li").removeAttr("class"); + $("#lookup ul li").removeAttr("style"); + var lookupul = $("#lookup ul"); + var lookuplist = $('<li></li>'); + var lookuplink = $('<a href="#"></a>'); + lookuplink.append(lookuptext); + lookuplist.append(lookuplink); + lookuplist.append(lookupul); + narrowmenu.append(lookuplist); + + // Topics + var topicstext = $("#topics h2").attr("title"); + $("#topics ul").removeAttr("id"); + $("#topics ul li").removeAttr("class"); + $("#topics ul li").removeAttr("style"); + var topicsul = $("#topics ul"); + var topicslist = $('<li></li>'); + var topicslink = $('<a href="#"></a>'); + topicslink.append(topicstext); + topicslist.append(topicslink); + topicslist.append(topicsul); + narrowmenu.append(topicslist); + + // Examples + var examplestext = $("#examples h2").attr("title"); + $("#examples ul").removeAttr("id"); + $("#examples ul li").removeAttr("class"); + $("#examples ul li").removeAttr("style"); + var examplesul = $("#examples ul"); + var exampleslist = $('<li></li>'); + var exampleslink = $('<a href="#"></a>'); + exampleslink.append(examplestext); + exampleslist.append(exampleslink); + exampleslist.append(examplesul); + narrowmenu.append(exampleslist); + + $("#shortCut").after(narrowmenu); + $('ul#narrowmenu').superfish({ + delay: 100, + autoArrows: false, + disableHI: true + }); +} + +$(document).ready(function(){ + if ($('body').hasClass('narrow')) { + narrowInit(); + } +}); + +$(window).bind('resize', function () { + if($(window).width()<600) { + $('body').addClass('narrow'); + + if ($("#narrowsearch").length == 0) { + narrowInit(); + } + } + else { + $('body').removeClass('narrow'); + } +});
\ No newline at end of file diff --git a/doc/src/template/scripts/superfish.js b/doc/src/template/scripts/superfish.js new file mode 100644 index 0000000..c6a9c7d --- /dev/null +++ b/doc/src/template/scripts/superfish.js @@ -0,0 +1,121 @@ + +/* + * Superfish v1.4.8 - jQuery menu widget + * Copyright (c) 2008 Joel Birch + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt + */ + +;(function($){ + $.fn.superfish = function(op){ + + var sf = $.fn.superfish, + c = sf.c, + $arrow = $(['<span class="',c.arrowClass,'"> »</span>'].join('')), + over = function(){ + var $$ = $(this), menu = getMenu($$); + clearTimeout(menu.sfTimer); + $$.showSuperfishUl().siblings().hideSuperfishUl(); + }, + out = function(){ + var $$ = $(this), menu = getMenu($$), o = sf.op; + clearTimeout(menu.sfTimer); + menu.sfTimer=setTimeout(function(){ + o.retainPath=($.inArray($$[0],o.$path)>-1); + $$.hideSuperfishUl(); + if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);} + },o.delay); + }, + getMenu = function($menu){ + var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0]; + sf.op = sf.o[menu.serial]; + return menu; + }, + addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); }; + + return this.each(function() { + var s = this.serial = sf.o.length; + var o = $.extend({},sf.defaults,op); + o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){ + $(this).addClass([o.hoverClass,c.bcClass].join(' ')) + .filter('li:has(ul)').removeClass(o.pathClass); + }); + sf.o[s] = sf.op = o; + + $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() { + if (o.autoArrows) addArrow( $('>a:first-child',this) ); + }) + .not('.'+c.bcClass) + .hideSuperfishUl(); + + var $a = $('a',this); + $a.each(function(i){ + var $li = $a.eq(i).parents('li'); + $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);}); + }); + o.onInit.call(this); + + }).each(function() { + var menuClasses = [c.menuClass]; + if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass); + $(this).addClass(menuClasses.join(' ')); + }); + }; + + var sf = $.fn.superfish; + sf.o = []; + sf.op = {}; + sf.IE7fix = function(){ + var o = sf.op; + if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined) + this.toggleClass(sf.c.shadowClass+'-off'); + }; + sf.c = { + bcClass : 'sf-breadcrumb', + menuClass : 'sf-js-enabled', + anchorClass : 'sf-with-ul', + arrowClass : 'sf-sub-indicator', + shadowClass : 'sf-shadow' + }; + sf.defaults = { + hoverClass : 'sfHover', + pathClass : 'overideThisToUse', + pathLevels : 1, + delay : 800, + animation : {opacity:'show'}, + speed : 'normal', + autoArrows : true, + dropShadows : true, + disableHI : false, // true disables hoverIntent detection + onInit : function(){}, // callback functions + onBeforeShow: function(){}, + onShow : function(){}, + onHide : function(){} + }; + $.fn.extend({ + hideSuperfishUl : function(){ + var o = sf.op, + not = (o.retainPath===true) ? o.$path : ''; + o.retainPath = false; + var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass) + .find('>ul').hide().css('visibility','hidden'); + o.onHide.call($ul); + return this; + }, + showSuperfishUl : function(){ + var o = sf.op, + sh = sf.c.shadowClass+'-off', + $ul = this.addClass(o.hoverClass) + .find('>ul:hidden').css('visibility','visible'); + sf.IE7fix.call($ul); + o.onBeforeShow.call($ul); + $ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); }); + return this; + } + }); + +})(jQuery); diff --git a/doc/src/template/style/OfflineStyle.css b/doc/src/template/style/OfflineStyle.css new file mode 100644 index 0000000..ddd580a --- /dev/null +++ b/doc/src/template/style/OfflineStyle.css @@ -0,0 +1,819 @@ +@media screen +{ + html + { + color: #000000; + background: #FFFFFF; + } + body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td + { + margin: 0; + padding: 0; + } + table + { + border-collapse: collapse; + border-spacing: 0; + } + fieldset, img + { + border: 0; + } + address, caption, cite, code, dfn, em, strong, th, var, optgroup + { + font-style: inherit; + font-weight: inherit; + } + del, ins + { + text-decoration: none; + } + li + { + list-style: none; + } + caption, th + { + text-align: left; + } + h1, h2, h3, h4, h5, h6 + { + font-size: 100%; + } + q:before, q:after + { + content: ''; + } + abbr, acronym + { + border: 0; + font-variant: normal; + } + sup + { + vertical-align: baseline; + } + sub + { + vertical-align: baseline; + } + tt, .qmlreadonly span, .qmldefault span + { + word-spacing:5px; + } + .heading + { + font: normal 600 16px/1.0 Arial; + } + .subtitle + { + font-size: 13px; + } + .small-subtitle + { + font-size: 13px; + } + legend + { + color: #000000; + } + input, button, textarea, select, optgroup, option + { + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; + } + input, button, textarea, select + { + font-size: 100%; + } + body + { + font: normal 13px/1.2 Verdana; + color: #363534; + } + strong + { + font-weight: bold; + } + em + { + font-style: italic; + } + a + { + color: #00732f; + text-decoration: none; + } + .header, .footer, .wrapper + { + /*min-width: 600px;*/ + max-width: 1500px; + margin: 0 5px; + } + .wrapper + { + position:relative; + top:50px; + } + .wrapper .bd + { + position: relative; + } + + .header, .footer + { + display: block; + clear: both; + overflow: hidden; + } + .header + { + height: 115px; + position: relative; + } + + + .header .qtref + { + position: absolute; + top: 28px; + left: 88px; + width: 302px; + height: 22px; + } + .header .qtref span + { + display: block; + height: 22px; + } + .wrap .content h1 + { + font: 600 18px/1.2 Arial; + } + .wrap .content h2 + { + font: 600 16px/1.2 Arial; + } + .wrap .content h3 + { + font: 600 14px/1.2 Arial; + } + .wrap .content h4 + { + font: 600 12px/1.2 Arial; + } + + .wrap .content p + { + line-height: 20px; + padding: 5px; + } + .wrap .content table p + { + line-height: 20px; + padding: 0px; + } + .wrap .content ul + { + padding-left: 25px; + padding-top: 10px; + } + a:hover + { + color: #4c0033; + text-decoration: underline; + } + .content a:visited + { + color: #4c0033; + text-decoration: none; + } + .content a:visited:hover + { + color: #4c0033; + text-decoration: underline; + } + + pre + { + border: 1px solid #DDDDDD; + margin: 0 20px 10px 10px; + padding: 20px 15px 20px 20px; + overflow-x: auto; + } + table, pre + { + -moz-border-radius: 7px 7px 7px 7px; + background-color: #F6F6F6; + border: 1px solid #E6E6E6; + border-collapse: separate; + font-size: 11px; + /*min-width: 395px;*/ + margin-bottom: 25px; + display: inline-block; + } + thead + { + margin-top: 5px; + font:600 12px/1.2 Arial; + } + th + { + padding: 5px 15px 5px 15px; + background-color: #E1E1E1; + /* border-bottom: 1px solid #E6E6E6;*/ + border-left: 1px solid #E6E6E6; + /* border-right: 1px solid #E6E6E6;*/ + } + td + { + padding: 3px 15px 3px 20px; + /* border-left: 1px solid #E6E6E6; + border-right: 1px solid #E6E6E6;*/ + } + tr.odd td:hover, tr.even td:hover + { + /* border-right: 1px solid #C3C3C3; + border-left: 1px solid #C3C3C3;*/ + } + + td.rightAlign + { + padding: 3px 15px 3px 10px; + } + table tr.odd + { + border-left: 1px solid #E6E6E6; + background-color: #F6F6F6; + color: #66666E; + } + table tr.even + { + border-left: 1px solid #E6E6E6; + background-color: #ffffff; + color: #66666E; + } + table tr.odd td:hover, table tr.even td:hover + { + background-color: #E6E6E6; + } + + span.comment + { + color: #8B0000; + font-style: italic; + } + span.string, span.char + { + color: #254117; + } + + .qmltype + { + text-align: center; + font-size: 160%; + } + .qmlreadonly + { + float: right; + color: #254117; + } + + .qmldefault + { + float: right; + color: red; + } + + .footer + { + border-top:1px solid #E5E5E5; + min-height: 100px; + color: #797775; + font: normal 9px/1 Verdana; + text-align: center; + padding-top: 40px; + margin: 0; + } + + + .wrap + { + margin: 0 5px 0 5px; + } + .wrap .toolbar + { + display:block; + } + + .wrap .breadcrumb ul li + { + float: left; + background: url(../images/breadcrumb.png) no-repeat 0 5px; + padding-left: 15px; + margin-left: 15px; + font-weight: bold; + } + .wrap .breadcrumb ul li.last + { + font-weight: normal; + } + .wrap .breadcrumb ul li a + { + /* color: #363534;*/ + color: #00732F; + } + .wrap .breadcrumb ul li.first + { + background-image: none; + padding-left: 0; + margin-left: 0; + } + .wrap .content + { + word-wrap:break-word; + } + .wrap .content li + { + padding-left: 12px; + background: url(../images/bullet_sq.png) no-repeat 0 5px; + font: normal 400 10pt/1 Verdana; + margin-bottom: 10px; + } + + .offline .wrap .content + { + padding-top: 15px; + } + + .header:after, .footer:after, .breadcrumb:after, .wrap .content:after, .group:after + { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; + } + + hr + { + background-color: #E6E6E6; + border: 1px solid #E6E6E6; + height: 1px; + width: 100%; + text-align: left; + margin: 5px 0px 5px 0px; + } + + .content .alignedsummary + { + margin: 5px; + width:100%; + } + + + .toc + { + float: right; + -moz-border-radius: 7px 7px 7px 7px; + background-color: #F6F6F6; + border: 1px solid #DDDDDD; + margin: 0 20px 10px 10px; + padding: 20px 15px 20px 20px; + height: auto; + width: 200px; + } + + .toc h3, .generic a + { + font: 600 12px/1.2 Arial; + } + + .wrap .content .toc ul + { + padding-left: 0px; + } + + + .wrap .content .toc .level2 + { + margin-left: 15px; + } + + .wrap .content .toc .level3 + { + margin-left: 30px; + } + + .content .toc li + { + font: normal 10px/1.2 Verdana; + background: url(../images/bullet_dn.png) no-repeat 0 5px; + } + + + .generic{ + max-width:75%; + } + .generic td{ + padding:0; + } + + .generic .odd .alphaChar{ + background-color: #F6F6F6; + } + + .generic .even .alphaChar{ + background-color: #FFFFFF; + } + + .highlightedCode + { + margin:10px; + } + + .flowList{ + vertical-align:top; + } + .alphaChar{ + width:100%; + background-color:#F6F6F6; + border:1px solid #E6E6E6; + font-size:12pt; + padding-left:10px; + margin-top:10px; + margin-bottom:10px; + } + + .flowList dl{ + } + .flowList dd{ + display:inline-block; + margin-left:10px; + width:250px; + } + .wrap .content .flowList p{ + padding:0px; + } + + .relpage + { + -moz-border-radius: 7px 7px 7px 7px; + border: 1px solid #DDDDDD; + padding: 25px 25px; + clear: both; + } + .relpage ul + { + float: none; + padding: 15px; + } + .content .relpage li + { + font: normal 11px/1.2 Verdana; + } + h3.fn, span.fn + { + background-color: #F6F6F6; + border-width: 1px; + border-style: solid; + border-color: #E6E6E6; + font-weight: bold; + word-spacing:3px; + } + + .functionIndex { + font-size:12pt; + word-spacing:10px; + margin-bottom:10px; + background-color: #F6F6F6; + border-width: 1px; + border-style: solid; + border-color: #E6E6E6; + width:100%; + } + + .centerAlign { text-align:center;} + .rightAlign {text-align:right;} + .leftAlign {text-align:left;} + .topAlign{vertical-align:top } + .functionIndex a{display:inline-block;} + + /* start index box */ + .indexbox + { + width: 100%; + display:inline-block; + } + + .indexboxcont { display: block; } + + .indexboxbar + { + border-bottom:1px solid #E5E5E5; + margin-bottom: 25px; + } + + .indexboxcont .section + { + display: inline-block; + padding:0 2% 0 1%; + vertical-align:top; + } + + .indexboxcont .section { + float: left; + } + + .indexboxcont .section p + { + padding-top: 20px; + padding-bottom: 20px; + } + .indexboxcont .sectionlist + { + display: inline-block; + vertical-align:top; + padding: 0; + } + .indexboxcont .sectionlist ul + { + margin-bottom: 20px; + } + + .indexboxcont .sectionlist ul li + { + line-height: 12px; + } + + .content .indexboxcont li + { + font: normal 600 13px/1 Verdana; + } + + .indexbox a:hover, .indexbox a:visited:hover + { + color: #4c0033; + text-decoration: underline; + } + + .indexbox a:visited + { + color: #00732f; + text-decoration: none; + } + + .indexbox .indexIcon { + width: 11%; + } + + + .indexboxcont:after + { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; + } + + body.offline + { + background-image: none; + } + + .offline .footer { + margin: 0; + } + .offline .header + { + width: 100%; + margin: 0; + height: auto; + background-color: #ffffff; + padding: 10px 0 5px 0; + overflow: visible; + border-bottom: solid #E5E5E5 1px; + z-index:1; + position:fixed; + } + + .offline .header .content + { + } + .offline .header .qtref + { + color: #00732F; + position: static; + float: left; + margin-left: 5px; + font: bold 18px/1 Arial; + } + + .offline .header .qtref:visited + { + color: #00732F; + } + .offline .header .qtref:hover + { + color: #00732F; + text-decoration:none; + } + .offline .header .qtref span + { + background-image: none; + text-indent: 0; + text-decoration:none; + } + + .offline .wrap + { + margin: 0 5px 0 5px; + } + + .offline .wrap .toolbar + { + display:block; + padding-top:5px; + } + + .offline .wrap .breadcrumb ul li { + font-weight: normal; + } + + .offline .wrap .breadcrumb ul li a { + /*color: #44a51c;*/ + } + + .offline .wrap .breadcrumb ul li.last a { + /*color: #363534;*/ + } + + + + .narrow .indexboxcont .section { + width: 64%; + padding-left: 0; + } + + .narrow .indexboxcont .sectionlist { + width: 32.5%; + } + + .header .icon, + .sidebar, + .feedback, + .t_button, + .feedback, + #feedbackBox, + #feedback, + #blurpage, + .indexbox .indexIcon span, + .wrapper .hd, + .offline .indexbox .indexIcon, + .offline .header #nav-logo, + #offlinemenu, + #offlinesearch, + .offline .header #nav-topright, + .offline .header #shortCut , + .offline .wrapper .hd, + .offline .wrapper .ft, + .offline .sidebar, + .offline .wrap .feedback + { + display:none; + } + + /* end offline mode */ +#narrowmenu { + display: none; + float: right; + margin: 15px 40px 0 0; + font-size: 11px; + } + + .narrow #narrowmenu { + display: block; + } + + #narrowsearch{ + display:none; + } + + #narrowmenu ul + { + border-bottom:solid 1px #E5E5E5; + border-left:solid 1px #E5E5E5; + border-right:solid 1px #E5E5E5; + } + + #narrowmenu a { + line-height: 1.1; + background: url(../images/arrow_down.png) no-repeat 100% 50%; + white-space: nowrap; + padding: 0 16px 0 5px; + } + + #narrowmenu li { + margin-left: 20px; + } + + #narrowmenu li li { + margin: 0 0 5px 0; + } + + #narrowmenu li li a { + padding: 0; + background-image: none; + } + + #narrowmenu li, + #narrowmenu li ul { + background-color: #fff; + } + + #narrowmenu li ul { + width: auto; + padding: 5px; + margin-top:-15px; + } + + .sf-menu li:hover ul, .sf-menu li.sfHover ul { + top: 1.2em; + } +.sf-menu, .sf-menu * { + margin: 0; + padding: 0; + list-style: none; +} +.sf-menu { + line-height: 1.0; +} +.sf-menu ul { + position: absolute; + top: -999em; + width: 10em; /* left offset of submenus need to match (see below) */ +} +.sf-menu ul li { + width: 100%; +} +.sf-menu li:hover { + visibility: inherit; /* fixes IE7 'sticky bug' */ +} +.sf-menu li { + float: left; + position: relative; +} +.sf-menu a { + display: block; + position: relative; +} +.sf-menu li:hover ul, +.sf-menu li.sfHover ul { + left: 0; + top: 2.5em; /* match top ul list item height */ + z-index: 99; +} +ul.sf-menu li:hover li ul, +ul.sf-menu li.sfHover li ul { + top: -999em; +} +ul.sf-menu li li:hover ul, +ul.sf-menu li li.sfHover ul { + left: 10em; /* match ul width */ + top: 0; +} +ul.sf-menu li li:hover li ul, +ul.sf-menu li li.sfHover li ul { + top: -999em; +} +ul.sf-menu li li li:hover ul, +ul.sf-menu li li li.sfHover ul { + left: 10em; /* match ul width */ + top: 0; +} + +} +/* end of screen media */ + +/* start of print media */ + +@media print +{ + input, textarea, .header, .footer, .toolbar, .feedback, .wrapper .hd, .wrapper .bd .sidebar, .wrapper .ft + { + display: none; + background: none; + } + .content + { + position: absolute; + top: 0px; + left: 0px; + background: none; + display: block; + } +} +/* end of print media */ diff --git a/doc/src/template/style/narrow.css b/doc/src/template/style/narrow.css new file mode 100644 index 0000000..05159aa --- /dev/null +++ b/doc/src/template/style/narrow.css @@ -0,0 +1,250 @@ + /* start narrow mode */ + + body.narrow + { + background-image: none; + } + + .narrow a { + color: #44a51c; + } + + .narrow .header, .narrow .header .content, .narrow .footer, .narrow .wrapper { + margin: 0 7px; + min-width: 300px; + } + + .narrow .footer { + margin: 0; + } + .narrow .header + { + width: 100%; + margin: 0; + height: auto; + background: #fff url(../images/header_bg.png) repeat-x 0 100%; + padding: 10px 0 5px 0; + overflow: visible; + } + + .narrow .header .content + { + } + + .narrow .header #nav-logo + { + display: none; + } + + .narrow .header .qtref + { + width: auto; + height: auto; + color: #363534; + position: static; + float: left; + margin-left: 25px; + font: bold 18px/1 Arial; + } + + .narrow .header .qtref a + { + color: #363534; + } + + .narrow .header .qtref span + { + background-image: none; + text-indent: 0; + } + + .narrow .header #nav-topright + { + display: none; + } + + .narrow .header #shortCut + { + clear: both; + font-weight: normal; + position: static; + float: left; + margin: 15px 0 0 25px; + overflow: hidden; + padding: 0; + height: auto; + } + + .narrow .header #shortCut ul + { + float: none; + margin: 0; + width: auto; + font-size: 11px; + } + + .narrow .header #shortCut ul li + { + background-image: none; + } + + .narrow .header #shortCut ul .shortCut-topleft-active, + .narrow .header #shortCut ul .shortCut-topleft-inactive + { + background-image: none; + height: auto; + padding: 0; + width: auto; + } + .narrow .header #shortCut ul li a + { + color: #44a51c; + } + + .narrow .wrapper .hd + { + background: url(../images/bg_ul_blank.png) no-repeat 0 0; + } + + .narrow .wrapper .bd + { + background: url(../images/bg_l_blank.png) repeat-y 0 0; + } + + .narrow .wrapper .ft + { + background: url(../images/bg_ll_blank.png) no-repeat 0 0; + } + + .narrow .sidebar + { + display: none; + } + + .narrow .wrap + { + margin: 0 5px 0 5px; + } + + .narrow .wrap .toolbar + { + border-bottom: none; + } + + .narrow .wrap .content + { + padding-top: 15px; + } + + .narrow .wrap .feedback + { + display: none; + } + + .narrow .wrap .breadcrumb ul li { + font-weight: normal; + } + + .narrow .wrap .breadcrumb ul li a { + color: #44a51c; + } + + .narrow .wrap .breadcrumb ul li.last a { + color: #363534; + } + + #narrowsearch { + display: none; + } + + .narrow #narrowsearch { + display: block; + float: right; + margin-right: 25px; + _position: relative; + } + + .narrow #narrowsearch fieldset { + _position: absolute; + _margin-top: -1px; + } + + .narrow #narrowsearch { + background: url("http://doc.qt.nokia.com/prototype/html/images/sprites-combined.png") no-repeat scroll -6px -348px transparent; + height: 21px; + padding: 2px 0 0 5px; + width: 167px; + } + + .narrow #narrowsearch input { + border: none; + font: 13px/1.2 Verdana; + height: 19px; + outline: none; + padding: 0; + width: 158px; + *border: 1px solid #fff; + *height: 17px; + _height: 18px; + } + + .narrow .indexbox .indexIcon { + display: none; + } + + .narrow .indexboxcont .section { + width: 64%; + padding-left: 0; + } + + .narrow .indexboxcont .sectionlist { + width: 32.5%; + } + + #narrowmenu { + display: none; + float: right; + margin: 15px 40px 0 0; + font-size: 11px; + } + + .narrow #narrowmenu { + display: block; + } + + #narrowmenu a { + line-height: 1.1; + background: url(../images/arrow_down.png) no-repeat 100% 50%; + white-space: nowrap; + padding: 0 16px 0 5px; + } + + #narrowmenu li { + margin-left: 20px; + } + + #narrowmenu li li { + margin: 0 0 5px 0; + } + + #narrowmenu li li a { + padding: 0; + background-image: none; + } + + #narrowmenu li, + #narrowmenu li ul { + background-color: #fff; + margin-top:-1px; + } + + #narrowmenu li ul { + width: auto; + padding: 5px; + } + + .sf-menu li:hover ul, .sf-menu li.sfHover ul { + top: 1.2em; + } + + /* end narrow mode */ diff --git a/doc/src/template/style/superfish.css b/doc/src/template/style/superfish.css new file mode 100644 index 0000000..0cf0f7d --- /dev/null +++ b/doc/src/template/style/superfish.css @@ -0,0 +1,51 @@ +.sf-menu, .sf-menu * { + margin: 0; + padding: 0; + list-style: none; +} +.sf-menu { + line-height: 1.0; +} +.sf-menu ul { + position: absolute; + top: -999em; + width: 10em; /* left offset of submenus need to match (see below) */ +} +.sf-menu ul li { + width: 100%; +} +.sf-menu li:hover { + visibility: inherit; /* fixes IE7 'sticky bug' */ +} +.sf-menu li { + float: left; + position: relative; +} +.sf-menu a { + display: block; + position: relative; +} +.sf-menu li:hover ul, +.sf-menu li.sfHover ul { + left: 0; + top: 2.5em; /* match top ul list item height */ + z-index: 99; +} +ul.sf-menu li:hover li ul, +ul.sf-menu li.sfHover li ul { + top: -999em; +} +ul.sf-menu li li:hover ul, +ul.sf-menu li li.sfHover ul { + left: 10em; /* match ul width */ + top: 0; +} +ul.sf-menu li li:hover li ul, +ul.sf-menu li li.sfHover li ul { + top: -999em; +} +ul.sf-menu li li li:hover ul, +ul.sf-menu li li li.sfHover ul { + left: 10em; /* match ul width */ + top: 0; +} diff --git a/doc/src/template/style/superfish_skin.css b/doc/src/template/style/superfish_skin.css new file mode 100644 index 0000000..8d84827 --- /dev/null +++ b/doc/src/template/style/superfish_skin.css @@ -0,0 +1,83 @@ + +/*** DEMO SKIN ***/ +.sf-menu { + float: left; + margin-bottom: 1em; +} +.sf-menu a { + border-left: 1px solid #fff; + border-top: 1px solid #CFDEFF; + padding: .75em 1em; + text-decoration:none; +} +.sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6 applies text colour*/ + color: #13a; +} +.sf-menu li { + background: #BDD2FF; +} +.sf-menu li li { + background: #AABDE6; +} +.sf-menu li li li { + background: #9AAEDB; +} +.sf-menu li:hover, .sf-menu li.sfHover, +.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active { + background: #CFDEFF; + outline: 0; +} + +/*** arrows **/ +.sf-menu a.sf-with-ul { + padding-right: 2.25em; + min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */ +} +.sf-sub-indicator { + position: absolute; + display: block; + right: .75em; + top: 1.05em; /* IE6 only */ + width: 10px; + height: 10px; + text-indent: -999em; + overflow: hidden; + background: url('../images/arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */ +} +a > .sf-sub-indicator { /* give all except IE6 the correct values */ + top: .8em; + background-position: 0 -100px; /* use translucent arrow for modern browsers*/ +} +/* apply hovers to modern browsers */ +a:focus > .sf-sub-indicator, +a:hover > .sf-sub-indicator, +a:active > .sf-sub-indicator, +li:hover > a > .sf-sub-indicator, +li.sfHover > a > .sf-sub-indicator { + background-position: -10px -100px; /* arrow hovers for modern browsers*/ +} + +/* point right for anchors in subs */ +.sf-menu ul .sf-sub-indicator { background-position: -10px 0; } +.sf-menu ul a > .sf-sub-indicator { background-position: 0 0; } +/* apply hovers to modern browsers */ +.sf-menu ul a:focus > .sf-sub-indicator, +.sf-menu ul a:hover > .sf-sub-indicator, +.sf-menu ul a:active > .sf-sub-indicator, +.sf-menu ul li:hover > a > .sf-sub-indicator, +.sf-menu ul li.sfHover > a > .sf-sub-indicator { + background-position: -10px 0; /* arrow hovers for modern browsers*/ +} + +/*** shadows for all but IE6 ***/ +.sf-shadow ul { + background: url('../images/shadow.png') no-repeat bottom right; + padding: 0 8px 9px 0; + -moz-border-radius-bottomleft: 17px; + -moz-border-radius-topright: 17px; + -webkit-border-top-right-radius: 17px; + -webkit-border-bottom-left-radius: 17px; +} +.sf-shadow ul.sf-shadow-off { + background: transparent; +} diff --git a/mkspecs/common/symbian/symbian-mmp.conf b/mkspecs/common/symbian/symbian-mmp.conf index 1ab228f..5a7b2d2 100644 --- a/mkspecs/common/symbian/symbian-mmp.conf +++ b/mkspecs/common/symbian/symbian-mmp.conf @@ -38,14 +38,22 @@ INCLUDEPATH = \ # RVCT seems to do this automatically, but WINSCW compiler does not, so add it here. MMP_RULES += "USERINCLUDE ." -exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.0.sis )|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.0.sis) { - S60_VERSION = 5.0 +exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.2.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.2.sis) { + S60_VERSION = 5.2 symbian3 } else { - exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v3.2.sis )|exists($${EPOCROOT}epoc32/data/z/system/install/series60v3.2.sis) { - S60_VERSION = 3.2 + exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.1.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.1.sis) { + S60_VERSION = 5.1 symbian2 } else { - S60_VERSION = 3.1 - MMP_RULES -= PAGED BYTEPAIRCOMPRESSTARGET + exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.0.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.0.sis) { + S60_VERSION = 5.0 + } else { + exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v3.2.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v3.2.sis) { + S60_VERSION = 3.2 + } else { + S60_VERSION = 3.1 + MMP_RULES -= PAGED BYTEPAIRCOMPRESSTARGET + } + } } } diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf index 89034ca..b8bfd7c 100644 --- a/mkspecs/common/symbian/symbian.conf +++ b/mkspecs/common/symbian/symbian.conf @@ -119,13 +119,14 @@ load(symbian/platform_paths) default_deployment.pkg_prerules += pkg_depends_webkit pkg_depends_qt pkg_platform_dependencies -# Supports S60 3.0, 3.1, 3.2 and 5.0 by default +# Supports S60 3.0, 3.1, 3.2, 5.0 and Symbian^3 by default pkg_platform_dependencies = \ "; Default HW/platform dependencies" \ "[0x101F7961],0,0,0,{\"S60ProductID\"}" \ "[0x102032BE],0,0,0,{\"S60ProductID\"}" \ "[0x102752AE],0,0,0,{\"S60ProductID\"}" \ "[0x1028315F],0,0,0,{\"S60ProductID\"}" \ + "[0x20022e6d],0,0,0,{\"S60ProductID\"}" \ " " DEPLOYMENT += default_deployment diff --git a/mkspecs/features/qttest_p4.prf b/mkspecs/features/qttest_p4.prf index d2011d0..d1c7c2b 100644 --- a/mkspecs/features/qttest_p4.prf +++ b/mkspecs/features/qttest_p4.prf @@ -1,5 +1,5 @@ isEmpty(TEMPLATE):TEMPLATE=app -CONFIG += qt warn_on console depend_includepath +CONFIG += qt warn_on console depend_includepath testcase qtAddLibrary(QtTest) @@ -13,39 +13,5 @@ symbian:{ # prefix test binary with tst_ !contains(TARGET, ^tst_.*):TARGET = $$join(TARGET,,"tst_") - -check.files = -check.path = . -!isEmpty(DESTDIR): check.commands = cd ./$(DESTDIR) && -macx: check.commands += ./$(QMAKE_TARGET).app/Contents/MacOS/$(QMAKE_TARGET) -else:unix: check.commands += ./$(QMAKE_TARGET) -else:win32: { - CONFIG(debug, debug|release):check.commands += $(DESTDIR_TARGET) - else:check.commands += $(DESTDIR_TARGET) -} -embedded: check.commands += -qws -QMAKE_EXTRA_TARGETS += check - -!debug_and_release|build_pass { - check.depends = first -} else { - check.CONFIG = recursive - # In debug and release mode, only run the test once. - # Run debug if available, release otherwise. - debug_and_release { - check.target = dummy_check - check.recurse_target = check - debug { - real_check.depends = debug-check - real_check.target = check - QMAKE_EXTRA_TARGETS += real_check - } else { - real_check.depends = release-check - real_check.target = check - QMAKE_EXTRA_TARGETS += real_check - } - } -} - target.path += $$[QT_INSTALL_PREFIX]/tests/qt4 INSTALLS += target diff --git a/mkspecs/features/symbian/def_files.prf b/mkspecs/features/symbian/def_files.prf index eb17402..6a95763 100644 --- a/mkspecs/features/symbian/def_files.prf +++ b/mkspecs/features/symbian/def_files.prf @@ -41,7 +41,7 @@ symbian-abld|symbian-sbsv2 { } } -} else:contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib) { +} else:contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib):!contains(CONFIG, plugin) { !isEmpty(DEF_FILE) { defFile = $$DEF_FILE } else { diff --git a/mkspecs/features/symbian/symbian_building.prf b/mkspecs/features/symbian/symbian_building.prf index c230272..92988aa 100644 --- a/mkspecs/features/symbian/symbian_building.prf +++ b/mkspecs/features/symbian/symbian_building.prf @@ -96,6 +96,9 @@ contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib) { QMAKE_POST_LINK = $$replace(QMAKE_POST_LINK, "^@", "") QMAKE_POST_LINK = && $$QMAKE_POST_LINK } + + contains(CONFIG, plugin):QMAKE_ELF2E32_FLAGS += --definput=plugin_commonu.def + # The tee and grep at the end work around the issue that elf2e32 doesn't return non-null on error. # The comparison of dso files is to avoid extra building of modules that depend on this dso, in # case it has not changed. diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf new file mode 100644 index 0000000..7a7c9e3 --- /dev/null +++ b/mkspecs/features/testcase.prf @@ -0,0 +1,65 @@ +!contains(TEMPLATE,subdirs) { + +check.files = +check.path = . + +# If the test ends up in a different directory, we should cd to that directory. +# Note that qmake modifies DESTDIR after this file is processed, +# therefore, testing DESTDIR for emptiness is not sufficient. +# Also note that in debug-and-release mode we don't want to cd into the debug/release +# directory (e.g. if the test goes to foo/release/tst_thing.exe, we want to do +# cd foo && release/tst_thing.exe ). +MUNGED_DESTDIR=$$DESTDIR +MUNGED_TARGET=$$TARGET +win32:debug_and_release { + contains(DESTDIR,^release$)|contains(DESTDIR,^debug$):MUNGED_DESTDIR= + + # In debug-and-release mode, the first ../ in TARGET breaks out of the debug/release + # subdirectory. However, since make's working directory is already outside of the + # debug/release subdirectory, this first ../ should be ignored when deciding if + # we have to change directory before running the test. + MUNGED_TARGET=$$replace(MUNGED_TARGET,^\\.\\./,) +} +!isEmpty(MUNGED_DESTDIR):!contains(MUNGED_DESTDIR,^\\./?):check.commands = cd $(DESTDIR) && +contains(MUNGED_TARGET,.*/.*):check.commands = cd $(DESTDIR) && + +# Allow for a custom test runner script +check.commands += $(TESTRUNNER) + +macx { + app_bundle: check.commands += ./$(QMAKE_TARGET).app/Contents/MacOS/$(QMAKE_TARGET) + else: check.commands += ./$(QMAKE_TARGET) +} +else:unix: check.commands += ./$(QMAKE_TARGET) +else: check.commands += $(DESTDIR_TARGET) + +# For Qt/Embedded, run every test app as a QWS server +embedded: check.commands += -qws + +# Allow for custom arguments to tests +check.commands += $(TESTARGS) +QMAKE_EXTRA_TARGETS *= check + +!debug_and_release|build_pass { + check.depends = first +} else { + check.CONFIG = recursive + # In debug and release mode, only run the test once. + # Run debug if available, release otherwise. + debug_and_release { + check.target = dummy_check + check.recurse_target = check + debug { + real_check.depends = debug-check + real_check.target = check + QMAKE_EXTRA_TARGETS += real_check + } else { + real_check.depends = release-check + real_check.target = check + QMAKE_EXTRA_TARGETS += real_check + } + } +} + +} + diff --git a/mkspecs/linux-g++-maemo/qmake.conf b/mkspecs/linux-g++-maemo/qmake.conf index ca201bc..cced090 100644 --- a/mkspecs/linux-g++-maemo/qmake.conf +++ b/mkspecs/linux-g++-maemo/qmake.conf @@ -13,9 +13,6 @@ QMAKE_INCREMENTAL_STYLE = sublib include(../common/g++.conf) include(../common/linux.conf) -# Work round scratchbox not having standard paths in it's default search path -QMAKE_LFLAGS += -Wl,-rpath-link=/lib -QMAKE_LFLAGS += -Wl,-rpath-link=/usr/lib # Override the default lib/include directories for scratchbox: QMAKE_INCDIR_X11 = /usr/include/X11 diff --git a/mkspecs/modules/qt_webkit_version.pri b/mkspecs/modules/qt_webkit_version.pri new file mode 100644 index 0000000..0370720 --- /dev/null +++ b/mkspecs/modules/qt_webkit_version.pri @@ -0,0 +1,2 @@ +# The version information comes from our copy of +include($$PWD/../../src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri) diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp index 1a7391b..aa55f51 100644 --- a/qmake/generators/mac/pbuilder_pbx.cpp +++ b/qmake/generators/mac/pbuilder_pbx.cpp @@ -540,7 +540,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) << "\t\t\t" << writeSettings("name", "Qt Qmake") << ";" << "\n" << "\t\t\t" << writeSettings("neededFileNames", QStringList(), SettingsAsList, 4) << ";" << "\n" << "\t\t\t" << writeSettings("shellPath", "/bin/sh") << ";" << "\n" - << "\t\t\t" << writeSettings("shellScript", fixForOutput("make -C " + escapeFilePath(qmake_getpwd()) + " -f " + escapeFilePath(mkfile))) << ";" << "\n" + << "\t\t\t" << writeSettings("shellScript", fixForOutput("make -C " + escapeFilePath(qmake_getpwd()) + " -f '" + escapeFilePath(mkfile) + "'")) << ";" << "\n" << "\t\t" << "};" << "\n"; } @@ -789,7 +789,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) << "\t\t\t" << writeSettings("name", "Qt Preprocessors") << ";" << "\n" << "\t\t\t" << writeSettings("neededFileNames", fixListForOutput("QMAKE_PBX_OBJ"), SettingsAsList, 4) << ";" << "\n" << "\t\t\t" << writeSettings("shellPath", "/bin/sh") << ";" << "\n" - << "\t\t\t" << writeSettings("shellScript", fixForOutput("make -C " + escapeFilePath(qmake_getpwd()) + " -f " + escapeFilePath(mkfile))) << ";" << "\n" + << "\t\t\t" << writeSettings("shellScript", fixForOutput("make -C " + escapeFilePath(qmake_getpwd()) + " -f '" + escapeFilePath(mkfile) + "'")) << ";" << "\n" << "\t\t" << "};" << "\n"; } @@ -968,7 +968,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) << "\t\t\t" << writeSettings("name", "Qt Sublibs") << ";" << "\n" << "\t\t\t" << writeSettings("neededFileNames", QStringList(), SettingsAsList, 4) << ";" << "\n" << "\t\t\t" << writeSettings("shellPath", "/bin/sh") << "\n" - << "\t\t\t" << writeSettings("shellScript", fixForOutput("make -C " + escapeFilePath(qmake_getpwd()) + " -f " + escapeFilePath(mkfile))) << ";" << "\n" + << "\t\t\t" << writeSettings("shellScript", fixForOutput("make -C " + escapeFilePath(qmake_getpwd()) + " -f '" + escapeFilePath(mkfile) + "'")) << ";" << "\n" << "\t\t" << "};" << "\n"; } //LIBRARY BUILDPHASE diff --git a/qmake/generators/symbian/symbian_makefile.h b/qmake/generators/symbian/symbian_makefile.h index 061866a..94f0145 100644 --- a/qmake/generators/symbian/symbian_makefile.h +++ b/qmake/generators/symbian/symbian_makefile.h @@ -94,6 +94,8 @@ public: } } + writeCustomDefFile(); + return T::writeMakefile(t); } }; diff --git a/qmake/generators/symbian/symbiancommon.cpp b/qmake/generators/symbian/symbiancommon.cpp index aa44afc..58729d2 100644 --- a/qmake/generators/symbian/symbiancommon.cpp +++ b/qmake/generators/symbian/symbiancommon.cpp @@ -58,6 +58,8 @@ #define RSS_TAG_FOOTER "footer" #define RSS_TAG_DEFAULT "default_rules" // Same as just giving rules without tag +#define PLUGIN_COMMON_DEF_FILE_ACTUAL "plugin_commonu.def" + #define MANUFACTURER_NOTE_FILE "manufacturer_note.txt" #define DEFAULT_MANUFACTURER_NOTE \ "The package is not supported for devices from this manufacturer. Please try the selfsigned " \ @@ -501,7 +503,7 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocB // Wrapped files deployment QString currentPath = qmake_getpwd(); QString sisName = QString("%1.sis").arg(pkgTarget); - twf << "\"" << currentPath << "/" << sisName << "\" - \"c:\\adm\\" << sisName << "\"" << endl; + twf << "\"" << currentPath << "/" << sisName << "\" - \"c:\\private\\2002CCCE\\import\\" << sisName << "\"" << endl; QString bootStrapPath = QLibraryInfo::location(QLibraryInfo::PrefixPath); bootStrapPath.append("/smartinstaller.sis"); @@ -775,6 +777,40 @@ void SymbianCommonGenerator::readRssRules(QString &numberOfIcons, } } +void SymbianCommonGenerator::writeCustomDefFile() +{ + if (targetType == TypePlugin && !generator->project->isActiveConfig("stdbinary")) { + // Create custom def file for plugin + QFile ft(Option::output_dir + QLatin1Char('/') + QLatin1String(PLUGIN_COMMON_DEF_FILE_ACTUAL)); + + if (ft.open(QIODevice::WriteOnly)) { + generatedFiles << ft.fileName(); + QTextStream t(&ft); + + t << "; ==============================================================================" << endl; + t << "; Generated by qmake (" << qmake_version() << ") (Qt " QT_VERSION_STR ") on: "; + t << QDateTime::currentDateTime().toString(Qt::ISODate) << endl; + t << "; This file is generated by qmake and should not be modified by the" << endl; + t << "; user." << endl; + t << "; Name : " PLUGIN_COMMON_DEF_FILE_ACTUAL << endl; + t << "; Part of : " << generator->project->values("TARGET").join(" ") << endl; + t << "; Description : Fixes common plugin symbols to known ordinals" << endl; + t << "; Version : " << endl; + t << ";" << endl; + t << "; ==============================================================================" << "\n" << endl; + + t << endl; + + t << "EXPORTS" << endl; + t << "\tqt_plugin_query_verification_data @ 1 NONAME" << endl; + t << "\tqt_plugin_instance @ 2 NONAME" << endl; + t << endl; + } else { + PRINT_FILE_CREATE_ERROR(QString(PLUGIN_COMMON_DEF_FILE_ACTUAL)) + } + } +} + QStringList SymbianCommonGenerator::symbianLangCodesFromTsFiles() { QStringList tsfiles; diff --git a/qmake/generators/symbian/symbiancommon.h b/qmake/generators/symbian/symbiancommon.h index 3efe5a4..dae1e4a 100644 --- a/qmake/generators/symbian/symbiancommon.h +++ b/qmake/generators/symbian/symbiancommon.h @@ -81,6 +81,8 @@ protected: QString &iconFile, QMap<QString, QStringList> &userRssRules); + void writeCustomDefFile(); + QStringList symbianLangCodesFromTsFiles(); void fillQt2S60LangMapTable(); diff --git a/qmake/generators/symbian/symmake.cpp b/qmake/generators/symbian/symmake.cpp index 1006e39..6082aeb 100644 --- a/qmake/generators/symbian/symmake.cpp +++ b/qmake/generators/symbian/symmake.cpp @@ -55,7 +55,6 @@ #define RESOURCE_DIRECTORY_MMP "/resource/apps" #define REGISTRATION_RESOURCE_DIRECTORY_HW "/private/10003a3f/import/apps" #define PLUGIN_COMMON_DEF_FILE_FOR_MMP "./plugin_common.def" -#define PLUGIN_COMMON_DEF_FILE_ACTUAL "plugin_commonu.def" #define BLD_INF_FILENAME_LEN (sizeof(BLD_INF_FILENAME) - 1) #define BLD_INF_RULES_BASE "BLD_INF_RULES." @@ -264,40 +263,6 @@ bool SymbianMakefileGenerator::writeMakefile(QTextStream &t) return true; } -void SymbianMakefileGenerator::writeCustomDefFile() -{ - if (targetType == TypePlugin && !project->isActiveConfig("stdbinary")) { - // Create custom def file for plugin - QFile ft(Option::output_dir + QLatin1Char('/') + QLatin1String(PLUGIN_COMMON_DEF_FILE_ACTUAL)); - - if (ft.open(QIODevice::WriteOnly)) { - generatedFiles << ft.fileName(); - QTextStream t(&ft); - - t << "; ==============================================================================" << endl; - t << "; Generated by qmake (" << qmake_version() << ") (Qt " QT_VERSION_STR ") on: "; - t << QDateTime::currentDateTime().toString(Qt::ISODate) << endl; - t << "; This file is generated by qmake and should not be modified by the" << endl; - t << "; user." << endl; - t << "; Name : " PLUGIN_COMMON_DEF_FILE_ACTUAL << endl; - t << "; Part of : " << project->values("TARGET").join(" ") << endl; - t << "; Description : Fixes common plugin symbols to known ordinals" << endl; - t << "; Version : " << endl; - t << ";" << endl; - t << "; ==============================================================================" << "\n" << endl; - - t << endl; - - t << "EXPORTS" << endl; - t << "\tqt_plugin_query_verification_data @ 1 NONAME" << endl; - t << "\tqt_plugin_instance @ 2 NONAME" << endl; - t << endl; - } else { - PRINT_FILE_CREATE_ERROR(QString(PLUGIN_COMMON_DEF_FILE_ACTUAL)) - } - } -} - void SymbianMakefileGenerator::init() { MakefileGenerator::init(); diff --git a/qmake/generators/symbian/symmake.h b/qmake/generators/symbian/symmake.h index a584a9a..c5b6907 100644 --- a/qmake/generators/symbian/symmake.h +++ b/qmake/generators/symbian/symmake.h @@ -117,8 +117,6 @@ protected: void writeMmpFileBinaryVersionPart(QTextStream& t); void writeMmpFileRulesPart(QTextStream& t); - void writeCustomDefFile(); - void appendIfnotExist(QStringList &list, QString value); void appendIfnotExist(QStringList &list, QStringList values); diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp index 604aa8a..1e060a0 100644 --- a/qmake/generators/win32/msvc_objectmodel.cpp +++ b/qmake/generators/win32/msvc_objectmodel.cpp @@ -674,6 +674,12 @@ bool VCCLCompilerTool::parseOption(const char* option) if(third == 'd') RuntimeLibrary = rtMultiThreadedDebug; break; + } else if (second == 'P') { + if (config->CompilerVersion >= NET2005) + AdditionalOptions += option; + else + warn_msg(WarnLogic, "/MP option is not supported in Visual C++ < 2005, ignoring."); + break; } found = false; break; case 'O': diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp index 022689b..b3c229e 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp +++ b/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp @@ -1094,6 +1094,10 @@ RVCT() #define DEFINE_STUB_FUNCTION(rtype, op) rtype JIT_STUB cti_##op(STUB_ARGS_DECLARATION) #endif +#if COMPILER(GCC) +#pragma GCC visibility push(hidden) +#endif + DEFINE_STUB_FUNCTION(EncodedJSValue, op_convert_this) { STUB_INIT_STACK_FRAME(stackFrame); @@ -3205,6 +3209,10 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, to_object) return JSValue::encode(stackFrame.args[0].jsValue().toObject(callFrame)); } +#if COMPILER(GCC) +#pragma GCC visibility pop +#endif + } // namespace JSC #endif // ENABLE(JIT) diff --git a/src/3rdparty/phonon/mmf/abstractaudioeffect.cpp b/src/3rdparty/phonon/mmf/abstractaudioeffect.cpp index 6cfeb76..9b64ab3 100644 --- a/src/3rdparty/phonon/mmf/abstractaudioeffect.cpp +++ b/src/3rdparty/phonon/mmf/abstractaudioeffect.cpp @@ -184,6 +184,8 @@ int AbstractAudioEffect::effectParameterChanged( const EffectParameter ¶m, const QVariant &value) { // Default implementation + Q_UNUSED(param) + Q_UNUSED(value) Q_ASSERT_X(false, Q_FUNC_INFO, "Effect has no parameters"); return 0; } diff --git a/src/3rdparty/phonon/mmf/abstractaudioeffect.h b/src/3rdparty/phonon/mmf/abstractaudioeffect.h index d71993b..70adcf6 100644 --- a/src/3rdparty/phonon/mmf/abstractaudioeffect.h +++ b/src/3rdparty/phonon/mmf/abstractaudioeffect.h @@ -118,6 +118,10 @@ private: // for each of the effects. Using this reduces repetition of boilerplate // in the implementations of the backend effect nodes. +#ifdef Q_CC_NOKIAX86 +# pragma warn_illtokenpasting off +#endif + #define PHONON_MMF_DEFINE_EFFECT_FUNCTIONS(Effect) \ \ void Effect##::createEffect(AudioPlayer::NativePlayer *player) \ diff --git a/src/3rdparty/phonon/mmf/audiooutput.cpp b/src/3rdparty/phonon/mmf/audiooutput.cpp index c6be20b..3588683 100644 --- a/src/3rdparty/phonon/mmf/audiooutput.cpp +++ b/src/3rdparty/phonon/mmf/audiooutput.cpp @@ -78,6 +78,9 @@ bool MMF::AudioOutput::setOutputDevice(int index) { Q_ASSERT_X(index == AudioOutputDeviceID, Q_FUNC_INFO, "We only support one output device, with id 0"); +#ifdef QT_NO_DEBUG + Q_UNUSED(index) +#endif return true; } diff --git a/src/3rdparty/phonon/mmf/bassboost.cpp b/src/3rdparty/phonon/mmf/bassboost.cpp index c7af939..67076f6 100644 --- a/src/3rdparty/phonon/mmf/bassboost.cpp +++ b/src/3rdparty/phonon/mmf/bassboost.cpp @@ -49,6 +49,7 @@ const char* BassBoost::description() bool BassBoost::getParameters(CMdaAudioOutputStream *stream, QList<EffectParameter> ¶meters) { + Q_UNUSED(parameters) QScopedPointer<CBassBoost> effect; TRAPD(err, effect.reset(CBassBoost::NewL(*stream))); return (KErrNone == err); diff --git a/src/3rdparty/phonon/mmf/effectfactory.cpp b/src/3rdparty/phonon/mmf/effectfactory.cpp index c5e33d5..4643978 100644 --- a/src/3rdparty/phonon/mmf/effectfactory.cpp +++ b/src/3rdparty/phonon/mmf/effectfactory.cpp @@ -183,8 +183,9 @@ EffectFactory::EffectData EffectFactory::getData() /* defaultValue */ QVariant(bool(true))); data.m_parameters.append(param); - if (data.m_supported = BackendNode::getParameters - (stream.data(), data.m_parameters)) { + data.m_supported = BackendNode::getParameters(stream.data(), + data.m_parameters); + if (data.m_supported) { const QString description = QCoreApplication::translate ("Phonon::MMF::EffectFactory", BackendNode::description()); data.m_descriptions.insert("name", description); diff --git a/src/3rdparty/phonon/mmf/loudness.cpp b/src/3rdparty/phonon/mmf/loudness.cpp index 1079a35..ca05ab0 100644 --- a/src/3rdparty/phonon/mmf/loudness.cpp +++ b/src/3rdparty/phonon/mmf/loudness.cpp @@ -49,6 +49,7 @@ const char* Loudness::description() bool Loudness::getParameters(CMdaAudioOutputStream *stream, QList<EffectParameter> ¶meters) { + Q_UNUSED(parameters) QScopedPointer<CLoudness> effect; TRAPD(err, effect.reset(CLoudness::NewL(*stream))); return (KErrNone == err); diff --git a/src/3rdparty/webkit/.tag b/src/3rdparty/webkit/.tag index 8cb0e53..09a4fe2 100644 --- a/src/3rdparty/webkit/.tag +++ b/src/3rdparty/webkit/.tag @@ -1 +1 @@ -f59a934694947496cedecc5256a71bff60c43c4c +f943ead2759537527faa7f3cb057d995291663b9 diff --git a/src/3rdparty/webkit/JavaScriptCore/ChangeLog b/src/3rdparty/webkit/JavaScriptCore/ChangeLog index 016e0dd..d9b2987 100644 --- a/src/3rdparty/webkit/JavaScriptCore/ChangeLog +++ b/src/3rdparty/webkit/JavaScriptCore/ChangeLog @@ -1,3 +1,18 @@ +2010-06-07 Benjamin Poulain <benjamin.poulain@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Crash when compiling on Snow Leopard and running on Leopard + https://bugs.webkit.org/show_bug.cgi?id=31403 + + Disable the use of pthread_setname_np and other symbols + when targetting Leopard. + + Use the defines TARGETING_XX instead of BUILDING_ON_XX + for features that cannot be used before Snow Leopard. + + * wtf/Platform.h: + 2010-04-20 Csaba Osztrogonác <ossy@webkit.org> [Qt] Unreviewed speculative buildfix for WinCE after r57882 diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h b/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h index fac477e..876e60e 100644 --- a/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h +++ b/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h @@ -700,11 +700,11 @@ #define HAVE_SYS_TIME_H 1 #define HAVE_SYS_TIMEB_H 1 -#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) +#if !defined(TARGETING_TIGER) && !defined(TARGETING_LEOPARD) #define HAVE_DISPATCH_H 1 -#if !PLATFORM(IPHONE) && !PLATFORM(QT) +#if !PLATFORM(IPHONE) #define HAVE_MADV_FREE_REUSE 1 #define HAVE_MADV_FREE 1 #define HAVE_PTHREAD_SETNAME_NP 1 diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION index fb78e36..a19b85a 100644 --- a/src/3rdparty/webkit/VERSION +++ b/src/3rdparty/webkit/VERSION @@ -4,4 +4,4 @@ This is a snapshot of the Qt port of WebKit from and has the sha1 checksum - c58dc2f491a824ac56e31c440fcf7fe16dab09c4 + 6db5de6d18c3ab8b74809303e4d79abacfc570a8 diff --git a/src/3rdparty/webkit/WebCore/ChangeLog b/src/3rdparty/webkit/WebCore/ChangeLog index ff7d214..1d9d739 100644 --- a/src/3rdparty/webkit/WebCore/ChangeLog +++ b/src/3rdparty/webkit/WebCore/ChangeLog @@ -1,3 +1,235 @@ +2010-06-07 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Fix text selection drawing. + https://bugs.webkit.org/show_bug.cgi?id=40221 + + The regression was introduced in r60169. + + * platform/graphics/qt/FontQt.cpp: + (WebCore::drawTextCommon): + +2010-06-04 No'am Rosenthal <noam.rosenthal@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Fix compilation with QT_NO_FEATURE + https://bugs.webkit.org/show_bug.cgi?id=38324 + + The #ifdef QT_NO_GRAPHICSEFFECT was in the wrong place, would have + made AC not work at all. + + No new tests. + + * platform/graphics/qt/GraphicsLayerQt.cpp: + (WebCore::GraphicsLayerQtImpl::flushChanges): + +2010-05-24 Tasuku Suzuki <tasuku.suzuki@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Fix compilation with QT_NO_TEMPORARYFILE + https://bugs.webkit.org/show_bug.cgi?id=38324 + + * platform/qt/FileSystemQt.cpp: + (WebCore::openTemporaryFile): + +2010-05-21 Tasuku Suzuki <tasuku.suzuki@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Fix compilation with QT_NO_GRAPHICSEFFECT + https://bugs.webkit.org/show_bug.cgi?id=38324 + + * platform/graphics/qt/GraphicsLayerQt.cpp: + (WebCore::GraphicsLayerQtImpl::flushChanges): + +2010-05-02 Tasuku Suzuki <tasuku.suzuki@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Fix compilation with QT_NO_BEARERMANAGEMENT + https://bugs.webkit.org/show_bug.cgi?id=38324 + + * platform/network/NetworkStateNotifier.h: + * platform/network/qt/NetworkStateNotifierQt.cpp: + +2010-05-02 Tasuku Suzuki <tasuku.suzuki@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Fix compilation with QT_NO_LINEEDIT + https://bugs.webkit.org/show_bug.cgi?id=38324 + + * platform/qt/RenderThemeQt.cpp: + (WebCore::RenderThemeQt::~RenderThemeQt): + (WebCore::RenderThemeQt::findFrameLineWidth): + +2010-06-04 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Tor Arne Vestbø. + + [Qt] Compilation fails when compiling against Qt 4.7 and Qt Mobility is installed + https://bugs.webkit.org/show_bug.cgi?id=40116 + + CONFIG += mobility has the side-effect of pulling in mobility includes, which conflict + with Qt 4.7's bearer managenent includes and break the build. + + * WebCore.pro: + +2010-06-03 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Fix NPAPI support on Mac OS X/Cocoa-32 + + qt_mac_window_for() returns a NSWindow on Cocoa, so we were + passing in a NSWindow instead of a WindowRef as part of the + NP_CGContext. + + https://bugs.webkit.org/show_bug.cgi?id=38762 + + * WebCore.gypi: Reflect rename + * WebCore.pro: Reflect rename + * plugins/mac/PluginViewMac.cpp: Renamed to PluginViewMac.mm + and fix bug by getting the Carbon windowRef from the NSWindow. + * wscript: Reflect rename + +2010-06-02 Nico Weber <thakis@chromium.org> + + Reviewed by Simon Fraser. + + Scroll events are sent twice per keypress for ports that don't have a platformWidget scrollbar + https://bugs.webkit.org/show_bug.cgi?id=39918 + + This was regressed by http://trac.webkit.org/changeset/58615 . Fix this by slightly tweaking + that patch. + + Test: editing/input/page-up-down-scrolls.html + + * page/FrameView.cpp: + (WebCore::FrameView::scrollPositionChanged): + * page/FrameView.h: + * platform/ScrollView.cpp: + (WebCore::ScrollView::valueChanged): + * platform/ScrollView.h: + (WebCore::ScrollView::repaintFixedElementsAfterScrolling): + +2010-06-02 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Fix make install on Symbian for headers in package builds when INSTALL_HEADERS is not defined + + First we wrote inst_headers.output with $$[QT_INSTALL_HEADERS] and then + overwrote it with the $$INSTALL_HEADERS variant without checking if the + variable was set. + + Fixed and cleaned up the logic of falling back to $$[QT_INSTALL_HEADERS]. + + * WebCore.pro: + +2010-06-01 No'am Rosenthal <noam.rosenthal@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] GraphicsLayer: warnings when reloading page + https://bugs.webkit.org/show_bug.cgi?id=39694 + + Made sure recaching and masks aren't attempted on zero-size layers. + + No new tests. Old tests (e.g. LayoutTests/compositing/masks) show the problem. + + * platform/graphics/qt/GraphicsLayerQt.cpp: + (WebCore::MaskEffectQt::draw): + (WebCore::GraphicsLayerQtImpl::recache): + +2010-05-10 Rodrigo Belem <rodrigo.belem@openbossa.org> + + Reviewed by Kenneth Christiansen , Simon Hausmann and Gustavo Noronha. + + [Qt, Gtk] Allows build-webkit script to receive an install prefix as parameter + https://bugs.webkit.org/show_bug.cgi?id=26224 + + This patch adds the ability, in the QtWebkit build system, to change + the installation path. + + * WebCore.pro: + +2010-06-01 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Laszlo Gombos. + + [Qt] Fix installation of the QtWebKit module .pri file when building inside of Qt + + * WebCore.pro: + +2010-06-01 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Fix a QtWebKit.pc corruption problem. + https://bugs.webkit.org/show_bug.cgi?id=36826 + + The problem occurs while installing QtWebKit from trunk + or a source package. + + * WebCore.pro: + +2010-06-01 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Laszlo Gombos. + + [Qt] Fix Symbian package dependencies of apps against QtWebKit when installing into Qt + + Install the versioning qt_webkit_version.pri into $$[QMAKE_MKSPECS]/modules, which is + where mkspecs/features/qt.prf expects it. + + * WebCore.pro: + +2010-05-17 Andreas Kling <andreas.kling@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + Bring CanvasRenderingContext2D's createImageData() in line with HTML5 spec + Added createImageData(ImageData) which returns a new ImageData with the same size as the one passed. + Changed createImageData(width, height) to use the absolute values of width and height. + + https://bugs.webkit.org/show_bug.cgi?id=39189 + + Spec link: + http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-createimagedata + + Test: fast/canvas/canvas-createImageData.html + + * bindings/js/JSCanvasRenderingContext2DCustom.cpp: + (WebCore::JSCanvasRenderingContext2D::createImageData): + * html/canvas/CanvasRenderingContext2D.cpp: + (WebCore::CanvasRenderingContext2D::createImageData): + * html/canvas/CanvasRenderingContext2D.h: + * html/canvas/CanvasRenderingContext2D.idl: + +2010-05-16 Andreas Kling <andreas.kling@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + Properly handle invalid arguments to CanvasRenderingContext2D's getImageData() and putImageData(). + Both should throw NOT_SUPPORTED_ERR when called with nonfinite arguments. + getImageData() should throw INDEX_SIZE_ERR if either width or height is 0. + + https://bugs.webkit.org/show_bug.cgi?id=39175 + + Spec link: + http://www.whatwg.org/specs/web-apps/current-work/#pixel-manipulation + + Test: fast/canvas/canvas-getImageData-invalid.html + + * html/canvas/CanvasRenderingContext2D.cpp: + (WebCore::CanvasRenderingContext2D::createImageData): + (WebCore::CanvasRenderingContext2D::getImageData): + (WebCore::CanvasRenderingContext2D::putImageData): + 2010-05-31 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed by Simon Hausmann. diff --git a/src/3rdparty/webkit/WebCore/WebCore.gypi b/src/3rdparty/webkit/WebCore/WebCore.gypi index 1e92f1f..94a6052 100644 --- a/src/3rdparty/webkit/WebCore/WebCore.gypi +++ b/src/3rdparty/webkit/WebCore/WebCore.gypi @@ -2920,7 +2920,7 @@ 'plugins/gtk/xembed.h', 'plugins/mac/PluginDataMac.mm', 'plugins/mac/PluginPackageMac.cpp', - 'plugins/mac/PluginViewMac.cpp', + 'plugins/mac/PluginViewMac.mm', 'plugins/qt/PluginDataQt.cpp', 'plugins/qt/PluginPackageQt.cpp', 'plugins/qt/PluginViewQt.cpp', diff --git a/src/3rdparty/webkit/WebCore/WebCore.pro b/src/3rdparty/webkit/WebCore/WebCore.pro index 63e78a7..048fc93 100644 --- a/src/3rdparty/webkit/WebCore/WebCore.pro +++ b/src/3rdparty/webkit/WebCore/WebCore.pro @@ -74,7 +74,8 @@ CONFIG(QTDIR_build) { !static: DEFINES += QT_MAKEDLL symbian: TARGET =$$TARGET$${QT_LIBINFIX} } -include($$PWD/../WebKit/qt/qtwebkit_version.pri) +moduleFile=$$PWD/../WebKit/qt/qt_webkit_version.pri +include($$moduleFile) VERSION = $${QT_WEBKIT_MAJOR_VERSION}.$${QT_WEBKIT_MINOR_VERSION}.$${QT_WEBKIT_PATCH_VERSION} unix { @@ -2165,7 +2166,7 @@ contains(DEFINES, ENABLE_NETSCAPE_PLUGIN_API=1) { mac { SOURCES += \ plugins/mac/PluginPackageMac.cpp \ - plugins/mac/PluginViewMac.cpp + plugins/mac/PluginViewMac.mm OBJECTIVE_SOURCES += \ platform/text/mac/StringImplMac.mm \ platform/mac/WebCoreNSStringExtras.mm @@ -2495,8 +2496,12 @@ contains(DEFINES, ENABLE_QT_BEARER=1) { SOURCES += \ platform/network/qt/NetworkStateNotifierQt.cpp - CONFIG += mobility - MOBILITY += bearer + # Bearer management is part of Qt 4.7, so don't accidentially + # pull in Qt Mobility when building against >= 4.7 + !greaterThan(QT_MINOR_VERSION, 6) { + CONFIG += mobility + MOBILITY += bearer + } } contains(DEFINES, ENABLE_SVG=1) { @@ -2840,24 +2845,45 @@ contains(DEFINES, ENABLE_SYMBIAN_DIALOG_PROVIDERS) { include($$PWD/../WebKit/qt/Api/headers.pri) HEADERS += $$WEBKIT_API_HEADERS -!CONFIG(QTDIR_build) { +CONFIG(QTDIR_build) { + modfile.files = $$moduleFile + modfile.path = $$[QMAKE_MKSPECS]/modules + + INSTALLS += modfile +} else { exists($$OUTPUT_DIR/include/QtWebKit/classheaders.pri): include($$OUTPUT_DIR/include/QtWebKit/classheaders.pri) WEBKIT_INSTALL_HEADERS = $$WEBKIT_API_HEADERS $$WEBKIT_CLASS_HEADERS !symbian { headers.files = $$WEBKIT_INSTALL_HEADERS - headers.path = $$[QT_INSTALL_HEADERS]/QtWebKit - target.path = $$[QT_INSTALL_LIBS] - INSTALLS += target headers + !isEmpty(INSTALL_HEADERS): headers.path = $$INSTALL_HEADERS/QtWebKit + else: headers.path = $$[QT_INSTALL_HEADERS]/QtWebKit + + !isEmpty(INSTALL_LIBS): target.path = $$INSTALL_LIBS + else: target.path = $$[QT_INSTALL_LIBS] + + modfile.files = $$moduleFile + modfile.path = $$[QMAKE_MKSPECS]/modules + + INSTALLS += target headers modfile } else { # INSTALLS is not implemented in qmake's s60 generators, copy headers manually inst_headers.commands = $$QMAKE_COPY ${QMAKE_FILE_NAME} ${QMAKE_FILE_OUT} inst_headers.input = WEBKIT_INSTALL_HEADERS - inst_headers.output = $$[QT_INSTALL_HEADERS]/QtWebKit/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT} + + !isEmpty(INSTALL_HEADERS): inst_headers.output = $$INSTALL_HEADERS/QtWebKit/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT} + else: inst_headers.output = $$[QT_INSTALL_HEADERS]/QtWebKit/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT} + QMAKE_EXTRA_COMPILERS += inst_headers - install.depends += compiler_inst_headers_make_all + inst_modfile.commands = $$inst_headers.commands + inst_modfile.input = moduleFile + inst_modfile.output = $$[QMAKE_MKSPECS]/modules + + QMAKE_EXTRA_COMPILERS += inst_modfile + + install.depends += compiler_inst_headers_make_all compiler_inst_modfile_make_all QMAKE_EXTRA_TARGETS += install } @@ -2875,7 +2901,7 @@ HEADERS += $$WEBKIT_API_HEADERS QMAKE_PKGCONFIG_LIBDIR = $$target.path QMAKE_PKGCONFIG_INCDIR = $$headers.path QMAKE_PKGCONFIG_DESTDIR = pkgconfig - lib_replace.match = $$DESTDIR + lib_replace.match = $$re_escape($$DESTDIR) lib_replace.replace = $$[QT_INSTALL_LIBS] QMAKE_PKGCONFIG_INSTALL_REPLACE += lib_replace } diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp index a271923..0254d0f 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp @@ -361,6 +361,24 @@ JSValue JSCanvasRenderingContext2D::createPattern(ExecState* exec, const ArgList return jsUndefined(); } +JSValue JSCanvasRenderingContext2D::createImageData(ExecState* exec, const ArgList& args) +{ + // createImageData has two variants + // createImageData(ImageData) + // createImageData(width, height) + CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl()); + RefPtr<ImageData> imageData = 0; + + ExceptionCode ec = 0; + if (args.size() == 1) + imageData = context->createImageData(toImageData(args.at(0)), ec); + else if (args.size() == 2) + imageData = context->createImageData(args.at(0).toFloat(exec), args.at(1).toFloat(exec), ec); + + setDOMException(exec, ec); + return toJS(exec, globalObject(), WTF::getPtr(imageData)); +} + JSValue JSCanvasRenderingContext2D::putImageData(ExecState* exec, const ArgList& args) { // putImageData has two variants diff --git a/src/3rdparty/webkit/WebCore/generated/JSCanvasRenderingContext2D.cpp b/src/3rdparty/webkit/WebCore/generated/JSCanvasRenderingContext2D.cpp index a991e8d..d97b54a 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCanvasRenderingContext2D.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCanvasRenderingContext2D.cpp @@ -165,7 +165,7 @@ static const HashTableValue JSCanvasRenderingContext2DPrototypeTableValues[45] = { "drawImageFromRect", DontDelete|Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionDrawImageFromRect), (intptr_t)0 }, { "setShadow", DontDelete|Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionSetShadow), (intptr_t)0 }, { "createPattern", DontDelete|Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionCreatePattern), (intptr_t)0 }, - { "createImageData", DontDelete|Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionCreateImageData), (intptr_t)2 }, + { "createImageData", DontDelete|Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionCreateImageData), (intptr_t)0 }, { "getImageData", DontDelete|Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionGetImageData), (intptr_t)4 }, { "putImageData", DontDelete|Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionPutImageData), (intptr_t)0 }, { 0, 0, 0, 0 } @@ -1018,15 +1018,7 @@ JSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionCreateImageData if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info)) return throwError(exec, TypeError); JSCanvasRenderingContext2D* castedThisObj = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue)); - CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThisObj->impl()); - ExceptionCode ec = 0; - float sw = args.at(0).toFloat(exec); - float sh = args.at(1).toFloat(exec); - - - JSC::JSValue result = toJS(exec, castedThisObj->globalObject(), WTF::getPtr(imp->createImageData(sw, sh, ec))); - setDOMException(exec, ec); - return result; + return castedThisObj->createImageData(exec, args); } JSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionGetImageData(ExecState* exec, JSObject*, JSValue thisValue, const ArgList& args) diff --git a/src/3rdparty/webkit/WebCore/generated/JSCanvasRenderingContext2D.h b/src/3rdparty/webkit/WebCore/generated/JSCanvasRenderingContext2D.h index 218e455..92fabb7 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCanvasRenderingContext2D.h +++ b/src/3rdparty/webkit/WebCore/generated/JSCanvasRenderingContext2D.h @@ -61,6 +61,7 @@ public: JSC::JSValue drawImageFromRect(JSC::ExecState*, const JSC::ArgList&); JSC::JSValue setShadow(JSC::ExecState*, const JSC::ArgList&); JSC::JSValue createPattern(JSC::ExecState*, const JSC::ArgList&); + JSC::JSValue createImageData(JSC::ExecState*, const JSC::ArgList&); JSC::JSValue putImageData(JSC::ExecState*, const JSC::ArgList&); protected: static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | Base::StructureFlags; diff --git a/src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.cpp b/src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.cpp index 398e4d8..9cec7a9 100644 --- a/src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.cpp +++ b/src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.cpp @@ -1278,14 +1278,30 @@ static PassRefPtr<ImageData> createEmptyImageData(const IntSize& size) return data.get(); } +PassRefPtr<ImageData> CanvasRenderingContext2D::createImageData(PassRefPtr<ImageData> imageData, ExceptionCode& ec) const +{ + if (!imageData) { + ec = NOT_SUPPORTED_ERR; + return 0; + } + + IntSize size(imageData->width(), imageData->height()); + return createEmptyImageData(size); +} + PassRefPtr<ImageData> CanvasRenderingContext2D::createImageData(float sw, float sh, ExceptionCode& ec) const { ec = 0; + if (!sw || !sh) { + ec = INDEX_SIZE_ERR; + return 0; + } if (!isfinite(sw) || !isfinite(sh)) { ec = NOT_SUPPORTED_ERR; return 0; } - FloatSize unscaledSize(sw, sh); + + FloatSize unscaledSize(fabs(sw), fabs(sh)); IntSize scaledSize = canvas()->convertLogicalToDevice(unscaledSize); if (scaledSize.width() < 1) scaledSize.setWidth(1); @@ -1301,7 +1317,15 @@ PassRefPtr<ImageData> CanvasRenderingContext2D::getImageData(float sx, float sy, ec = SECURITY_ERR; return 0; } - + if (!sw || !sh) { + ec = INDEX_SIZE_ERR; + return 0; + } + if (!isfinite(sx) || !isfinite(sy) || !isfinite(sw) || !isfinite(sh)) { + ec = NOT_SUPPORTED_ERR; + return 0; + } + FloatRect unscaledRect(sx, sy, sw, sh); IntRect scaledRect = canvas()->convertLogicalToDevice(unscaledRect); if (scaledRect.width() < 1) @@ -1332,7 +1356,7 @@ void CanvasRenderingContext2D::putImageData(ImageData* data, float dx, float dy, } if (!isfinite(dx) || !isfinite(dy) || !isfinite(dirtyX) || !isfinite(dirtyY) || !isfinite(dirtyWidth) || !isfinite(dirtyHeight)) { - ec = INDEX_SIZE_ERR; + ec = NOT_SUPPORTED_ERR; return; } diff --git a/src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.h b/src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.h index 553ffd2..2220f7e 100644 --- a/src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.h +++ b/src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.h @@ -178,6 +178,7 @@ namespace WebCore { PassRefPtr<CanvasPattern> createPattern(HTMLImageElement*, const String& repetitionType, ExceptionCode&); PassRefPtr<CanvasPattern> createPattern(HTMLCanvasElement*, const String& repetitionType, ExceptionCode&); + PassRefPtr<ImageData> createImageData(PassRefPtr<ImageData> imageData, ExceptionCode&) const; PassRefPtr<ImageData> createImageData(float width, float height, ExceptionCode&) const; PassRefPtr<ImageData> getImageData(float sx, float sy, float sw, float sh, ExceptionCode&) const; void putImageData(ImageData*, float dx, float dy, ExceptionCode&); diff --git a/src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.idl b/src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.idl index f93a752..3f7ead7 100644 --- a/src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.idl +++ b/src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.idl @@ -105,13 +105,12 @@ module html { [Custom] void drawImageFromRect(/* 10 */); [Custom] void setShadow(/* 3 */); [Custom] void createPattern(/* 2 */); + [Custom] ImageData createImageData(/* 3 */); attribute [Custom] custom strokeStyle; attribute [Custom] custom fillStyle; // pixel manipulation - ImageData createImageData(in float sw, in float sh) - raises (DOMException); ImageData getImageData(in float sx, in float sy, in float sw, in float sh) raises(DOMException); [Custom] void putImageData(/* in ImageData imagedata, in float dx, in float dy [, in float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight] */); diff --git a/src/3rdparty/webkit/WebCore/page/FrameView.cpp b/src/3rdparty/webkit/WebCore/page/FrameView.cpp index 39c92de..bc0519f 100644 --- a/src/3rdparty/webkit/WebCore/page/FrameView.cpp +++ b/src/3rdparty/webkit/WebCore/page/FrameView.cpp @@ -1060,7 +1060,11 @@ void FrameView::setScrollPosition(const IntPoint& scrollPoint) void FrameView::scrollPositionChanged() { frame()->eventHandler()->sendScrollEvent(); + repaintFixedElementsAfterScrolling(); +} +void FrameView::repaintFixedElementsAfterScrolling() +{ // For fixed position elements, update widget positions and compositing layers after scrolling, // but only if we're not inside of layout. // FIXME: we could skip this if we knew the page had no fixed position elements. diff --git a/src/3rdparty/webkit/WebCore/page/FrameView.h b/src/3rdparty/webkit/WebCore/page/FrameView.h index 7119975..71e2966 100644 --- a/src/3rdparty/webkit/WebCore/page/FrameView.h +++ b/src/3rdparty/webkit/WebCore/page/FrameView.h @@ -139,7 +139,8 @@ public: virtual void scrollRectIntoViewRecursively(const IntRect&); virtual void setScrollPosition(const IntPoint&); - virtual void scrollPositionChanged(); + void scrollPositionChanged(); + virtual void repaintFixedElementsAfterScrolling(); String mediaType() const; void setMediaType(const String&); diff --git a/src/3rdparty/webkit/WebCore/platform/ScrollView.cpp b/src/3rdparty/webkit/WebCore/platform/ScrollView.cpp index e50ab55..5753e1d 100644 --- a/src/3rdparty/webkit/WebCore/platform/ScrollView.cpp +++ b/src/3rdparty/webkit/WebCore/platform/ScrollView.cpp @@ -292,7 +292,7 @@ void ScrollView::valueChanged(Scrollbar* scrollbar) if (scrollbarsSuppressed()) return; - scrollPositionChanged(); + repaintFixedElementsAfterScrolling(); scrollContents(scrollDelta); } diff --git a/src/3rdparty/webkit/WebCore/platform/ScrollView.h b/src/3rdparty/webkit/WebCore/platform/ScrollView.h index 118a310..0f79fa8 100644 --- a/src/3rdparty/webkit/WebCore/platform/ScrollView.h +++ b/src/3rdparty/webkit/WebCore/platform/ScrollView.h @@ -303,7 +303,7 @@ private: void updateScrollbars(const IntSize& desiredOffset); // Called when the scroll position within this view changes. FrameView overrides this to generate repaint invalidations. - virtual void scrollPositionChanged() {} + virtual void repaintFixedElementsAfterScrolling() {} void platformInit(); void platformDestroy(); diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp index b707f9d..ae1033e 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp @@ -146,6 +146,7 @@ void Font::drawComplexText(GraphicsContext* ctx, const TextRun& run, const Float line.draw(p, pt); p->restore(); } + p->setPen(textFillPen); line.draw(p, pt); p->restore(); return; diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp index 02bf25e..be44fca 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp @@ -43,6 +43,7 @@ namespace WebCore { +#ifndef QT_NO_GRAPHICSEFFECT class MaskEffectQt : public QGraphicsEffect { public: MaskEffectQt(QObject* parent, QGraphicsItem* maskLayer) @@ -57,7 +58,12 @@ public: // It's more efficient to do it this way because // (a) we don't need the QBrush abstraction - we always end up using QGraphicsItem::paint from the mask layer // (b) QGraphicsOpacityEffect detaches the pixmap, which is inefficient on OpenGL. - QPixmap maskPixmap(sourceBoundingRect().toAlignedRect().size()); + const QSize maskSize = sourceBoundingRect().toAlignedRect().size(); + if (!maskSize.isValid() || maskSize.isEmpty()) { + drawSource(painter); + return; + } + QPixmap maskPixmap(maskSize); // we need to do this so the pixmap would have hasAlpha() maskPixmap.fill(Qt::transparent); @@ -91,6 +97,7 @@ public: QGraphicsItem* m_maskLayer; }; +#endif // QT_NO_GRAPHICSEFFECT class GraphicsLayerQtImpl : public QGraphicsObject { Q_OBJECT @@ -179,7 +186,9 @@ public: TransformationMatrix m_transformRelativeToRootLayer; bool m_transformAnimationRunning; bool m_opacityAnimationRunning; +#ifndef QT_NO_GRAPHICSEFFECT QWeakPointer<MaskEffectQt> m_maskEffect; +#endif struct ContentData { QPixmap pixmap; @@ -294,7 +303,7 @@ const GraphicsLayerQtImpl* GraphicsLayerQtImpl::rootLayer() const QPixmap GraphicsLayerQtImpl::recache(const QRegion& regionToUpdate) { - if (!m_layer->drawsContent()) + if (!m_layer->drawsContent() || m_size.isEmpty() ||!m_size.isValid()) return QPixmap(); QRegion region = regionToUpdate; @@ -515,6 +524,7 @@ void GraphicsLayerQtImpl::flushChanges(bool recursive, bool forceUpdateTransform // we can't paint here, because we don't know if the mask layer // itself is ready... we'll have to wait till this layer tries to paint setFlag(ItemClipsChildrenToShape, m_layer->maskLayer() || m_layer->masksToBounds()); +#ifndef QT_NO_GRAPHICSEFFECT setGraphicsEffect(0); if (m_layer->maskLayer()) { if (GraphicsLayerQtImpl* mask = qobject_cast<GraphicsLayerQtImpl*>(m_layer->maskLayer()->platformLayer()->toGraphicsObject())) { @@ -522,6 +532,7 @@ void GraphicsLayerQtImpl::flushChanges(bool recursive, bool forceUpdateTransform setGraphicsEffect(mask->m_maskEffect.data()); } } +#endif } if (m_changeMask & SizeChange) { @@ -596,11 +607,15 @@ void GraphicsLayerQtImpl::flushChanges(bool recursive, bool forceUpdateTransform if ((m_changeMask & ContentsOpaqueChange) && m_state.contentsOpaque != m_layer->contentsOpaque()) prepareGeometryChange(); +#ifndef QT_NO_GRAPHICSEFFECT if (m_maskEffect) m_maskEffect.data()->update(); - else if (m_changeMask & DisplayChange) { - // Recache now: all the content is ready and we don't want to wait until the paint event. We only need to do this for HTML content, - // there's no point in caching directly composited content like images or solid rectangles. + else +#endif + if (m_changeMask & DisplayChange) { + // Recache now: all the content is ready and we don't want to wait until the paint event. + // We only need to do this for HTML content, there's no point in caching directly composited + // content like images or solid rectangles. if (m_pendingContent.contentType == HTMLContentType) recache(m_pendingContent.regionToUpdate); update(m_pendingContent.regionToUpdate.boundingRect()); diff --git a/src/3rdparty/webkit/WebCore/platform/network/NetworkStateNotifier.h b/src/3rdparty/webkit/WebCore/platform/network/NetworkStateNotifier.h index 781259c..d1f2db4 100644 --- a/src/3rdparty/webkit/WebCore/platform/network/NetworkStateNotifier.h +++ b/src/3rdparty/webkit/WebCore/platform/network/NetworkStateNotifier.h @@ -44,6 +44,15 @@ typedef const struct __SCDynamicStore * SCDynamicStoreRef; #include <windows.h> +#elif PLATFORM(QT) + +#include <QtCore/qglobal.h> + +#ifdef QT_NO_BEARERMANAGEMENT +#undef ENABLE_QT_BEARER +#define ENABLE_QT_BEARER 0 +#endif + #endif namespace WebCore { diff --git a/src/3rdparty/webkit/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp b/src/3rdparty/webkit/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp index 52512aa..3aae92a 100644 --- a/src/3rdparty/webkit/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp @@ -20,6 +20,8 @@ #include "config.h" #include "NetworkStateNotifier.h" +#if PLATFORM(QT) && ENABLE(QT_BEARER) + #include "NetworkStateNotifierPrivate.h" #include "qnetworkconfigmanager.h" @@ -89,4 +91,6 @@ void NetworkStateNotifier::setNetworkAccessAllowed(bool isAllowed) } // namespace WebCore +#endif + #include "moc_NetworkStateNotifierPrivate.cpp" diff --git a/src/3rdparty/webkit/WebCore/platform/qt/FileSystemQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/FileSystemQt.cpp index f9ced98..54ecbf1 100644 --- a/src/3rdparty/webkit/WebCore/platform/qt/FileSystemQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/qt/FileSystemQt.cpp @@ -117,6 +117,7 @@ Vector<String> listDirectory(const String& path, const String& filter) CString openTemporaryFile(const char* prefix, PlatformFileHandle& handle) { +#ifndef QT_NO_TEMPORARYFILE QTemporaryFile* tempFile = new QTemporaryFile(QLatin1String(prefix)); tempFile->setAutoRemove(false); QFile* temp = tempFile; @@ -124,6 +125,7 @@ CString openTemporaryFile(const char* prefix, PlatformFileHandle& handle) handle = temp; return String(temp->fileName()).utf8(); } +#endif handle = invalidPlatformFileHandle; return CString(); } diff --git a/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp index 577903b..08b7aca 100644 --- a/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp @@ -163,7 +163,9 @@ RenderThemeQt::RenderThemeQt(Page* page) RenderThemeQt::~RenderThemeQt() { delete m_fallbackStyle; +#ifndef QT_NO_LINEEDIT delete m_lineEdit; +#endif } #if USE(QT_MOBILE_THEME) @@ -264,11 +266,17 @@ bool RenderThemeQt::supportsControlTints() const int RenderThemeQt::findFrameLineWidth(QStyle* style) const { +#ifndef QT_NO_LINEEDIT if (!m_lineEdit) m_lineEdit = new QLineEdit(); +#endif QStyleOptionFrameV2 opt; - return style->pixelMetric(QStyle::PM_DefaultFrameWidth, &opt, m_lineEdit); + QWidget* widget = 0; +#ifndef QT_NO_LINEEDIT + widget = m_lineEdit; +#endif + return style->pixelMetric(QStyle::PM_DefaultFrameWidth, &opt, widget); } static QRect inflateButtonRect(const QRect& originalRect, QStyle* style) diff --git a/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.cpp b/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.mm index 1fd4676..57d74ab 100644 --- a/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.cpp +++ b/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.mm @@ -103,9 +103,12 @@ static inline WindowRef nativeWindowFor(PlatformWidget widget) { #if PLATFORM(QT) if (widget) +#if QT_MAC_USE_COCOA + return static_cast<WindowRef>([qt_mac_window_for(widget) windowRef]); +#else return static_cast<WindowRef>(qt_mac_window_for(widget)); #endif -#if PLATFORM(WX) +#elif PLATFORM(WX) if (widget) return (WindowRef)widget->MacGetTopLevelWindowRef(); #endif diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp index 564c6fe..2788085 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp @@ -1370,6 +1370,7 @@ void QWebPagePrivate::inputMethodEvent(QInputMethodEvent *ev) ev->accept(); } +#ifndef QT_NO_PROPERTIES void QWebPagePrivate::dynamicPropertyChangeEvent(QDynamicPropertyChangeEvent* event) { if (event->propertyName() == "_q_viewMode") { @@ -1424,6 +1425,7 @@ void QWebPagePrivate::dynamicPropertyChangeEvent(QDynamicPropertyChangeEvent* ev } #endif } +#endif void QWebPagePrivate::shortcutOverrideEvent(QKeyEvent* event) { @@ -2808,9 +2810,11 @@ bool QWebPage::event(QEvent *ev) d->touchEvent(static_cast<QTouchEvent*>(ev)); break; #endif +#ifndef QT_NO_PROPERTIES case QEvent::DynamicPropertyChange: d->dynamicPropertyChangeEvent(static_cast<QDynamicPropertyChangeEvent*>(ev)); break; +#endif default: return QObject::event(ev); } diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage_p.h b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage_p.h index 5350cd9..1b90a66 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage_p.h +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage_p.h @@ -112,7 +112,9 @@ public: void inputMethodEvent(QInputMethodEvent*); +#ifndef QT_NO_PROPERTIES void dynamicPropertyChangeEvent(QDynamicPropertyChangeEvent*); +#endif void shortcutOverrideEvent(QKeyEvent*); void leaveEvent(QEvent*); diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.cpp index 81823f6..a5fc794 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.cpp +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.cpp @@ -48,9 +48,7 @@ #include <QUrl> #include <QFileInfo> -#if ENABLE(QT_BEARER) #include "NetworkStateNotifier.h" -#endif void QWEBKIT_EXPORT qt_networkAccessAllowed(bool isAllowed) { diff --git a/src/3rdparty/webkit/WebKit/qt/ChangeLog b/src/3rdparty/webkit/WebKit/qt/ChangeLog index b6cbf92..3deb9ac 100644 --- a/src/3rdparty/webkit/WebKit/qt/ChangeLog +++ b/src/3rdparty/webkit/WebKit/qt/ChangeLog @@ -1,3 +1,69 @@ +2010-06-02 Tasuku Suzuki <tasuku.suzuki@nokia.com> + + Reviewed by Shinichiro Hamaji. + + [Qt] Fix compilation with QT_NO_PROPERTIES + https://bugs.webkit.org/show_bug.cgi?id=38324 + + * Api/qwebpage.cpp: + (QWebPage::event): + * Api/qwebpage_p.h: + * WebCoreSupport/InspectorClientQt.cpp: + (WebCore::InspectorClientQt::openInspectorFrontend): + +2010-05-17 Tasuku Suzuki <tasuku.suzuki@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Fix compilation with QT_NO_COMBOBOX + https://bugs.webkit.org/show_bug.cgi?id=38324 + + * WebCoreSupport/ChromeClientQt.cpp: + (WebCore::ChromeClientQt::createSelectPopup): + * WebCoreSupport/QtFallbackWebPopup.cpp: + * WebCoreSupport/QtFallbackWebPopup.h: + +2010-05-02 Tasuku Suzuki <tasuku.suzuki@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Fix compilation with QT_NO_BEARERMANAGEMENT + https://bugs.webkit.org/show_bug.cgi?id=38324 + + * Api/qwebsettings.cpp: + +2010-03-24 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com> + + Reviewed by Laszlo Gombos. + + Auto-uppercase and predictive text need to be disabled for S60 (as for maemo) + https://bugs.webkit.org/show_bug.cgi?id=33176 + + * WebCoreSupport/EditorClientQt.cpp: + +2010-06-01 Noam Rosenthal <noam.rosenthal@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Add documentation to the QtWebkit bridge + https://bugs.webkit.org/show_bug.cgi?id=35861 + + This patch includes comprehensive qdoc documentation for the QtWebkit bridge. + + * docs/qtwebkit-bridge.qdoc: Added. + * docs/qtwebkit.qdoc: + * docs/webkitsnippets/doc_src_qtscript.qdoc: Added. + * docs/webkitsnippets/qtwebkit_bridge_snippets.cpp: Added. + (wrapInFunction): + +2010-06-01 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Laszlo Gombos. + + [Qt] Rename versioning .pri file to what Qt's mkspecs/features/qt.pri expects. + + * qt_webkit_version.pri: Renamed from WebKit/qt/qtwebkit_version.pri. + 2010-05-31 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed by Simon Hausmann. diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp index 4e742fc..7d1c794 100644 --- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp +++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp @@ -573,8 +573,10 @@ QtAbstractWebPopup* ChromeClientQt::createSelectPopup() { #if defined(Q_WS_MAEMO_5) return new QtMaemoWebPopup; -#else +#elif !defined(QT_NO_COMBOBOX) return new QtFallbackWebPopup; +#else + return result; #endif } diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp index 7b7f610..0ce6383 100644 --- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp +++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp @@ -613,11 +613,11 @@ void EditorClientQt::setInputMethodState(bool active) } } webPageClient->setInputMethodHint(Qt::ImhHiddenText, isPasswordField); -#ifdef Q_WS_MAEMO_5 - // Maemo 5 MicroB Browser disables auto-uppercase and predictive text, thus, so do we. +#if defined(Q_WS_MAEMO_5) || defined(Q_OS_SYMBIAN) + // disables auto-uppercase and predictive text for mobile devices webPageClient->setInputMethodHint(Qt::ImhNoAutoUppercase, true); webPageClient->setInputMethodHint(Qt::ImhNoPredictiveText, true); -#endif // Q_WS_MAEMO_5 +#endif // Q_WS_MAEMO_5 || Q_OS_SYMBIAN #endif // QT_VERSION check webPageClient->setInputMethodEnabled(active); } diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp index 725c5fb..2d11700 100644 --- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp +++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp @@ -93,7 +93,10 @@ void InspectorClientQt::openInspectorFrontend(WebCore::InspectorController*) // Web inspector. This is used for SDK purposes. Please keep this hook // around and don't remove it. // https://bugs.webkit.org/show_bug.cgi?id=35340 - QUrl inspectorUrl = inspector->property("_q_inspectorUrl").toUrl(); + QUrl inspectorUrl; +#ifndef QT_NO_PROPERTIES + inspectorUrl = inspector->property("_q_inspectorUrl").toUrl(); +#endif if (!inspectorUrl.isValid()) inspectorUrl = QUrl("qrc:/webkit/inspector/inspector.html"); inspectorView->page()->mainFrame()->load(inspectorUrl); diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp index 7514077..26420e5 100644 --- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp +++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp @@ -21,6 +21,8 @@ #include "config.h" #include "QtFallbackWebPopup.h" +#ifndef QT_NO_COMBOBOX + #include "HostWindow.h" #include "PopupMenuClient.h" #include "QWebPageClient.h" @@ -225,3 +227,5 @@ void QtFallbackWebPopup::activeChanged(int index) } } + +#endif // QT_NO_COMBOBOX diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h index 62b8aea..6d2e1ff 100644 --- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h +++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h @@ -23,6 +23,8 @@ #include "QtAbstractWebPopup.h" #include <QComboBox> +#ifndef QT_NO_COMBOBOX + QT_BEGIN_NAMESPACE class QGraphicsProxyWidget; QT_END_NAMESPACE @@ -67,4 +69,6 @@ private: } +#endif // QT_NO_COMBOBOX + #endif // QtFallbackWebPopup_h diff --git a/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit-bridge.qdoc b/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit-bridge.qdoc new file mode 100644 index 0000000..4f41d29 --- /dev/null +++ b/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit-bridge.qdoc @@ -0,0 +1,425 @@ +/*! + \inmodule QtWebKit + \page qtwebkit-bridge.html + \title The QtWebKit Bridge + \contentspage QtWebKit + \section1 Overview + \section2 The technology + + The QtWebKit bridge is a mechanism that extends WebKit's JavaScript environment to access native + objects that are represented as QObjects. It takes advantage of the inherent introspection of the + \l{Qt Object Model}, which has a natural alignment to the way JavaScript worked. + + For example, both JavaScript and QObjects have properties: a construct that represent a getter/setter + pair under one name. + + \section2 Use Cases + + There are two main use cases for the QtWebKit bridge. Web content in a native application, and Thin Client. + + \section3 Web Content in a Native Application + + This is a common use case in classic Qt application, and a design pattern used by several modern + applications. For example, an application that contains both a media-player, playlist manager, and + a music store. The playlist manager is usually best authored as a classic desktop application, + with the native-looking robust \l{QWidget}s helping with producing that application. + The media-player control, which usually looks custom, can be written using \l{The Graphics View framework} + or with in a declarative way with \l{QtDeclarative}. The music store, which shows dynamic content + from the internet, and gets modified rapidly, is best authored in HTML and maintained on the server. + + With the QtWebKit bridge, that music store component can interact with native parts of the application, + for example, if a file needs to be saved to a specific location. + + \section3 Thin Client + + Another use case is using Qt as a native backend to a full web application, + referred to here as a thin client. In this use-case, the entire UI is driven by + HTML, JavaScript and CSS, and native Qt-based components are used to allow that application + access to native features not usually exposed to the web, or to enable helper components that + are best written with C++. + + An example for such client is a UI for a video-on-demand service on a TV. The entire content and + UI can be kept on the server, served dynamically through HTTP and rendered with WebKit, with additional + native components for accessing hardware-specific features like extracting the list of images + out of the video. + + \section2 Difference from Other Bridge Technologies + + Of course QtWebKit is not the only bridge technology out there. NPAPI, for example, + is a long-time standard or web-native bridging. Due to Qt's meta-object system, full applications + built partially with web-technologies are much easier to develop. NPAPI, however, is more geared + towards cross-browser plugins, due to it being an accepted standard. + + When developing a plugin for a browser, NPAPI is recommended. When developing a full application + that utilizes HTML-rendering, the QtWebKit bridge is recommended. + + \section2 Relationship with QtScript + + The QtWebKit bridge is similar to \l{QtScript}, especially to some of the features described in the + \l{Making Applications Scriptable} page. However, as of Qt 4.7, full QtScript API is not supported for web applications. + That is planned as an enhancement for future versions. You might notice that some of the features + described here are an exact copy of the ones described in the \l{Making Applications Scriptable} page. That is because + the QtWebKit bridge is a subset of that functionality, and this page tries to capture the full + capabilities available through the QtWebKit bridge specifically. + + \section1 Accessing QObjects + + \section2 Creating the link via QWebFrame + + By default, no QObjects are accessible through the web environment, for security reasons. + To enable web content access to a native QObject, the application has to explicitly grant it access, + using the following call: + + \snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 0 + + See \l{QWebFrame::addToJavaScriptWindowObject()} for more information. + + \section2 Using Signals and Slots + + Qt Script adapts Qt's central \l{Signals and Slots} feature for + scripting. There are three principal ways to use signals and slots + with Qt Script: + + \list + \i \bold{Hybrid C++/script}: C++ application code connects a + signal to a script function. The script function can, for example, be + a function that the user has typed in, or one that you have read from a + file. This approach is useful if you have a QObject but don't want + to expose the object itself to the scripting environment; you just + want a script to be able to define how a signal should be reacted + to, and leave it up to the C++ side of your application to establish + the connection. + + \i \bold{Hybrid script/C++}: A script can connect signals and slots + to establish connections between pre-defined objects that the + application exposes to the scripting environment. In this scenario, + the slots themselves are still written in C++, but the definition of + the connections is fully dynamic (script-defined). + + \i \bold{Purely script-defined}: A script can both define signal + handler functions (effectively "slots written in Qt Script"), + \e{and} set up the connections that utilize those handlers. For + example, a script can define a function that will handle the + QLineEdit::returnPressed() signal, and then connect that signal to the + script function. + \endlist + + Note that QtScript functions such as qScriptConnect are unavilable in the web environment. + + \section3 Signal to Function Connections + + \c{connect(function)} + + In this form of connection, the argument to \c{connect()} is the + function to connect to the signal. + + \snippet webkitsnippets/doc_src_qtscript.qdoc 2 + + The argument can be a Qt Script function, as in the above + example, or it can be a QObject slot, as in + the following example: + + \snippet webkitsnippets/doc_src_qtscript.qdoc 3 + + When the argument is a QObject slot, the argument types of the + signal and slot do not necessarily have to be compatible; + the QtWebKit bridge will, if necessary, perform conversion of the signal + arguments to match the argument types of the slot. + + To disconnect from a signal, you invoke the signal's + \c{disconnect()} function, passing the function to disconnect + as argument: + + \snippet webkitsnippets/doc_src_qtscript.qdoc 4 + + When a script function is invoked in response to a signal, the + \c this object will be the Global Object. + + \section3 Signal to Member Function Connections + + \c{connect(thisObject, function)} + + In this form of the \c{connect()} function, the first argument + is the object that will be bound to the variable, \c this, when + the function specified using the second argument is invoked. + + If you have a push button in a form, you typically want to do + something involving the form in response to the button's + \c{clicked} signal; passing the form as the \c this object + makes sense in such a case. + + \snippet webkitsnippets/doc_src_qtscript.qdoc 5 + + To disconnect from the signal, pass the same arguments to \c{disconnect()}: + + \snippet webkitsnippets/doc_src_qtscript.qdoc 6 + + \section3 Signal to Named Member Function Connections + + \c{connect(thisObject, functionName)} + + In this form of the \c{connect()} function, the first argument is + the object that will be bound to the variable, \c this, when + a function is invoked in response to the signal. The second argument + specifies the name of a function that is connected to the signal, + and this refers to a member function of the object passed as the + first argument (\c thisObject in the above scheme). + + Note that the function is resolved when the connection is made, not + when the signal is emitted. + + \snippet webkitsnippets/doc_src_qtscript.qdoc 7 + + To disconnect from the signal, pass the same arguments to \c{disconnect()}: + + \snippet webkitsnippets/doc_src_qtscript.qdoc 8 + + \section3 Error Handling + + When \c{connect()} or \c{disconnect()} succeeds, the function will + return \c{undefined}; otherwise, it will throw a script exception. + You can obtain an error message from the resulting \c{Error} object. + Example: + + \snippet webkitsnippets/doc_src_qtscript.qdoc 9 + + \section3 Emitting Signals from Scripts + + To emit a signal from script code, you simply invoke the signal + function, passing the relevant arguments: + + \snippet webkitsnippets/doc_src_qtscript.qdoc 10 + + It is currently not possible to define a new signal in a script; + i.e., all signals must be defined by C++ classes. + + \section3 Overloaded Signals and Slots + + When a signal or slot is overloaded, the QtWebKit bridge will attempt to + pick the right overload based on the actual types of the QScriptValue arguments + involved in the function invocation. For example, if your class has slots + \c{myOverloadedSlot(int)} and \c{myOverloadedSlot(QString)}, the following + script code will behave reasonably: + + \snippet webkitsnippets/doc_src_qtscript.qdoc 11 + + You can specify a particular overload by using array-style property access + with the \l{QMetaObject::normalizedSignature()}{normalized signature} of + the C++ function as the property name: + + \snippet webkitsnippets/doc_src_qtscript.qdoc 12 + + If the overloads have different number of arguments, the QtWebKit bridge will + pick the overload with the argument count that best matches the + actual number of arguments passed to the slot. + + For overloaded signals, JavaScript will throw an error if you try to connect + to the signal by name; you have to refer to the signal with the full + normalized signature of the particular overload you want to connect to. + + \section3 Invokable Methods + + Both slots and signals are invokable from script by default. In addition, it's also + possible to define a method that's invokable from script without it being a signal or a slot. + This is especially useful for functions with return types, as slots normally do not return anything + (it would be meaningless to return values from a slot, as the connected signals don't handle the returned data). + To make a non-slot method invokable, simply add the Q_INVOKABLE macro before its definition: + + \snippet webkitsnippets/doc_src_qtscript.qdoc 20 + + \section2 Accessing Properties + + The properties of the QObject are available as properties + of the corresponding JavaScript object. When you manipulate + a property in script code, the C++ get/set method for that + property will automatically be invoked. For example, if your + C++ class has a property declared as follows: + + \snippet webkitsnippets/doc_src_qtscript.qdoc 13 + + then script code can do things like the following: + + \snippet webkitsnippets/doc_src_qtscript.qdoc 14 + + \section2 Accessing Child QObjects + + Every named child of the QObject (that is, for which + QObject::objectName() is not an empty string) is by default available as + a property of the JavaScript wrapper object. For example, + if you have a QDialog with a child widget whose \c{objectName} property is + \c{"okButton"}, you can access this object in script code through + the expression + + \snippet webkitsnippets/doc_src_qtscript.qdoc 15 + + Since \c{objectName} is itself a Q_PROPERTY, you can manipulate + the name in script code to, for example, rename an object: + + \snippet webkitsnippets/doc_src_qtscript.qdoc 16 + + \section2 Data types + + When calling slots, receiving signals or accessing properties, usually some payload is involved. + For example, a property "text" might return a \l{QString} parameter. + The QtWebKit bridge does the job of converting between a given JavaScript data-type, and the + expected or given Qt type. Each Qt type has a coresponding set of rules of how JavaScript treats it. + + The data type conversions are also applicable for the data returned from non-void invokable methods. + + \section3 Numbers + + All Qt numeric data types are converted to or from a JavaScript number. These include int, short, float, + double, and the porable Qt types (qreal, qint etc). A special case is \l{QChar}; + If a slot expects a QChar, the QtWebKit bridge would use the unicode value in case of a number, + or the first character in a string. + + Note that non-standard (typedefed) number types are not automatically converted to + or from a JavaScript number - it's advised to use standard number types for signal, slots + and properties. + + When a non-number is passed as an argument to a method or property that expects a number, + the appropriate JavaScript conversion function (parseInt / parseFloat) would be used. + + \section3 Strings + + When JavaScript accesses methods or properties that expect a \l{QString}, the QtWebKit bridge + will automatically convert the value to a string (if it's not already a string), using the + built-in JavaScript toString method. + + When a QString is passed to JavaScript from a signal or a property, The QtWebKit bridge will + convert it into a JavaScript string. + + \section3 Date & Time + + Both \l{QDate}, \l{QTime} and \l{QDateTime} are automatically translated to or from the JavaScript + Date object. If a number is passed as an argument to a method that expects one of the date/time + types, the QtWebKit bridge would treat it as a timestamp. If a sting is passed, QtWebKit would + try different Qt date parsing functions to find the right one. + + \section3 Regular Expressions + + The QtWebKit bridge would automatically convert JavaScript RegEx object to a \l{QRegExp}. + If a string is passed to a method expecting a \l{QRegExp}, the string would be converted + to that \l{QRegExp}. + + \section3 Lists + + The QtWebKit bridge treats several types of lists in a special way: \l{QVariantList}, \l{QStringList}, + \l{QObjectList} and \l{QList}<int>. When a slot or property expects one of those list types, + the QtWebKit bridge would try to convert a JavaScript array into that type, converting each of + the array's elements to the single-element type of the list. + + The most useful type of list is perhaps \l{QVariantList}, which can be converted to from any + JavaScript array. + + \section3 Compound (JSON) objects + + JavaScript compound objects, also known as JSON objects, are variables which hold a list + of key-value pairs, where all the keys are strings and the values can have any type. + This translates very well to \l{QVariantMap}, which is nothing more than a \l{QMap} of \l{QString} + to \l{QVariant}. + + The seamless conversion between JSON objects and \l{QVariantMap} allows for a very convenient + way of passing arbitrary structured data between C++ and the JavaScript environment. The native \l{QObject} has + to make sure that compound values are converted to \l{QVariantMap}s and \l{QVariantList}s, and JavaScript is + guaranteed to receive them in a meaningful way. + + Note that types that are not supported by JSON, such as JavaScript functions and getters/setters, + are not converted. + + \section3 QVariants + + When a slot or property accepts a \l{QVariant}, the QtWebKit bridge would create a \l{QVariant} that best + matches the argument passed by JavaScript. A string, for example, would become a \l{QVariant} holding a \l{QString}, + a normal JSON object would become a \l{QVariantMap}, and a JavaScript array would become a \l{QVariantList}. + + Using \l{QVariant}s generously in C++ in that way makes C++ programming feel a bit more like JavaScript programming, + as it adds another level of indirection - passing \l{QVariant}s around is very flexible, as the program can figure out + the type of argument in runtime just like JavaScript would do, but it also takes away from the type-safety and robust + nature of C++. It's recommended to use \l{QVariant}s only for convenience high-level functions, and to keep most of your + \l{QObject}s somewhat type-safe. + + \section3 QObjects + + A pointer to a \l{QObject} or a \l{QWidget} can be passed as payload in signals, slots and properties. That object + can then be used like an object that's exposed directly; i.e. its slots can be invoked, its signals connected to etc. + However, this functionality is fairly limited - the type used has to be \l{QObject}* or \l{QWidget}*. If the type + specified is a pointer to a non-\l{QWidget} subclass of \l{QObject}, the QtWebKit bridge would not recognize it to be + a \l{QObject}. + + In general its advised to use care when passing \l{QObject}s as arguments, as those objects don't become owned by + the Javascipt engine; That means that the application developer has to be extra careful not to try to access + \l{QObject}s that have already been deleted by the native environment. + + \section3 Pixmaps and Images + + \since 4.7 + + The QtWebKit bridge handles \l{QPixmap}s and \l{QImage}s in a special way. Since QtWebKit stores \l{QPixmap}s to + represent HTML images, \l{QPixmap}s coming from the native environment can be used directly inside WebKit. + A \l{QImage} or a \l{QPixmap} coming from the Qt environment would convert to an intermediate JavaScript object, + that can be represented like this: + + \snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 1 + + The JavaScript environment can then use the pixmap it gets from Qt and display it inside the HTML environment, + by assigning it to an existing <img /> element using assignToHTMLImageElement. It can also use the toDataURL() function, + which allows using the pixmap as the src attribute of an image or as a background-image url. Note that the toDataURL() + function is costly and should be used with caution. + + Example code: + + C++: + \snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 2 + + HTML: + \snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 3 + + When a Qt object expects a \l{QImage} or a \l{QPixmap} as input, and the argument passed is an HTML image element, + the QtWebKit bridge would convert the pixmap assigned to that image element into a \l{QPixmap} or a \l{QImage}. + + \since 4.7 + + \section3 QWebElement + + A signal, slot or property that expects or returns a \l{QWebElement} can work seamlessly with JavaScript references + to DOM elements. The JavaScript environment can select DOM elements, keep them in variables, then pass them to Qt as + a \l{QWebElement}, and receive them back. Example: + + C++: + \snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 4 + + HTML: + \snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 5 + + This is specifically useful to create custom renderers or extensions to the web environment. Instead of forcing Qt + to select the element, the web environment already selects the element and then send the selected element directly to Qt. + + Note that \l{QWebElement}s are not thread safe - an object handling them has to live in the UI thread. + + \section1 Architecture issues + + \section2 Limiting the Scope of the Hybrid Layer + + When using QtWebKit's hybrid features, it's a common pitfall to make the API exposed to JavaScript very rich and + use all its features. This, however, leads to complexity and can create bugs that are hard to trace. + Instead, it's advisable to keep the hybrid layer small and manageable: create a gate only when + there's an actual need for it, i.e. there's a new native enabler that requires a direct interface + to the application layer. Sometimes new functionality is better handled internally in the native layer + or in the web layer; simplicity is your friend. + + This usually becomes more apparent when the hybrid layer can create or destroy objects, or uses + signals slots or properties with a \l{QObject}* argument. It's advised to be very careful and to treat + an exposed \l{QObject} as a system - with careful attention to memory management and object ownership. + + \section2 Internet Security + + When exposing native object to an open web environment, it's important to understand the security + implications. Think whether the exposed object enables the web environment access to things that + shouldn't be open, and whether the web content loaded by that web page comes from a trusted. In general, when + exposing native QObjects that give the web environment access to private information or to functionality + that's potentially harmful to the client, such exposure should be balanced by limiting the web page's + access to trusted URLs only with HTTPS and other security measures. + + +*/ diff --git a/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc b/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc index c6dd550..d3f5502 100644 --- a/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc +++ b/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc @@ -20,8 +20,9 @@ scripted with JavaScript. A bridge between the JavaScript execution environment and the Qt object - model makes it possible for custom QObjects to be scripted. Integration - with the Qt networking module enables Web pages to be transparently loaded + model makes it possible for custom QObjects to be scripted. For detailed + documentation see \l{The QtWebkit Bridge}. + Integration with the Qt networking module enables Web pages to be transparently loaded from Web servers, the local file system or even the Qt resource system. In addition to providing pure rendering features, HTML documents can be diff --git a/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/qtwebkit_bridge_snippets.cpp b/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/qtwebkit_bridge_snippets.cpp new file mode 100644 index 0000000..d83ab3f --- /dev/null +++ b/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/qtwebkit_bridge_snippets.cpp @@ -0,0 +1,83 @@ + +void wrapInFunction() +{ + +//! [0] + // ... + QWebFrame *frame = myWebPage->mainFrame(); + frame->addToJavaScriptWindowObject("someNameForMyObject", myObject); + // ... +//! [0] +#if 0 + //! [1] + { + width: ..., + height: ..., + toDataURL: function() { ... }, + assignToHTMLImageElement: function(element) { ... } + } + //! [1] +#endif + //! [2] + class MyObject : QObject { + Q_OBJECT + Q_PROPERTY(QPixmap myPixmap READ getPixmap) + + public: + QPixmap getPixmap() const; + }; + + /* ... */ + + MyObject myObject; + myWebPage.mainFrame()->addToJavaScriptWindowObject("myObject", &myObject); + + //! [2] + #if 0 + //! [3] + <html> + <head> + <script> + function loadImage() { + myObject.myPixmap.assignToHTMLImageElement(document.getElementById("imageElement")); + } + </script> + </head> + <body onload="loadImage()"> + <img id="imageElement" width="300" height="200" /> + </body> + </html> + //! [3] + #endif + //! [4] + class MyObject : QObject { + Q_OBJECT + + public slots: + void doSomethingWithWebElement(const QWebElement&); + }; + + /* ... */ + + MyObject myObject; + myWebPage.mainFrame()->addToJavaScriptWindowObject("myObject", &myObject); + + //! [4] + #if 0 + //! [5] + <html> + <head> + <script> + function runExample() { + myObject.doSomethingWithWebElement(document.getElementById("someElement")); + } + </script> + </head> + <body onload="runExample()"> + <span id="someElement">Text</span> + </body> + </html> + //! [5] + #endif +} + diff --git a/src/3rdparty/webkit/WebKit/qt/qtwebkit_version.pri b/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri index ffd192c..ffd192c 100644 --- a/src/3rdparty/webkit/WebKit/qt/qtwebkit_version.pri +++ b/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri diff --git a/src/corelib/global/qconfig-medium.h b/src/corelib/global/qconfig-medium.h index ccd6759..6cb6c2c 100644 --- a/src/corelib/global/qconfig-medium.h +++ b/src/corelib/global/qconfig-medium.h @@ -213,6 +213,9 @@ #ifndef QT_NO_UNDOVIEW # define QT_NO_UNDOVIEW #endif +#ifndef QT_NO_GESTURES +# define QT_NO_GESTURES +#endif /* Widgets */ #ifndef QT_NO_LCDNUMBER diff --git a/src/corelib/global/qconfig-minimal.h b/src/corelib/global/qconfig-minimal.h index 99b16e8..c285e99 100644 --- a/src/corelib/global/qconfig-minimal.h +++ b/src/corelib/global/qconfig-minimal.h @@ -447,6 +447,9 @@ #ifndef QT_NO_UNDOVIEW # define QT_NO_UNDOVIEW #endif +#ifndef QT_NO_GESTURES +# define QT_NO_GESTURES +#endif /* Widgets */ #ifndef QT_NO_GROUPBOX diff --git a/src/corelib/global/qconfig-small.h b/src/corelib/global/qconfig-small.h index 1716b8d..dd74dcf 100644 --- a/src/corelib/global/qconfig-small.h +++ b/src/corelib/global/qconfig-small.h @@ -250,6 +250,9 @@ #ifndef QT_NO_SYSTEMTRAYICON # define QT_NO_SYSTEMTRAYICON #endif +#ifndef QT_NO_GESTURES +# define QT_NO_GESTURES +#endif /* Widgets */ #ifndef QT_NO_LCDNUMBER diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h index a333153..b606843 100644 --- a/src/corelib/global/qfeatures.h +++ b/src/corelib/global/qfeatures.h @@ -85,6 +85,9 @@ // Freetype Font Engine //#define QT_NO_FREETYPE +// Gesture +//#define QT_NO_GESTURES + // QGroupBox //#define QT_NO_GROUPBOX diff --git a/src/corelib/global/qfeatures.txt b/src/corelib/global/qfeatures.txt index 3e6af24..4d938a9 100644 --- a/src/corelib/global/qfeatures.txt +++ b/src/corelib/global/qfeatures.txt @@ -1185,6 +1185,12 @@ Requires: PROPERTIES Name: State machine SeeAlso: ??? +Feature: GESTURES +Description: Provides a framework for gestures. +Section: Utilities +Requires: +Name: Gesture +SeeAlso: ??? # SVG diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h index 08674d2..a9c56f6 100644 --- a/src/corelib/global/qnamespace.h +++ b/src/corelib/global/qnamespace.h @@ -236,7 +236,8 @@ public: TextJustificationForced = 0x10000, TextForceLeftToRight = 0x20000, TextForceRightToLeft = 0x40000, - TextLongestVariant = 0x80000 + TextLongestVariant = 0x80000, + TextBypassShaping = 0x100000 #if defined(QT3_SUPPORT) && !defined(Q_MOC_RUN) ,SingleLine = TextSingleLine, @@ -947,6 +948,8 @@ public: #endif Key_MediaNext = 0x01000083, Key_MediaRecord = 0x01000084, + Key_MediaPause = 0x1000085, + Key_MediaTogglePlayPause = 0x1000086, Key_HomePage = 0x01000090, Key_Favorites = 0x01000091, Key_Search = 0x01000092, @@ -1089,11 +1092,15 @@ public: Key_Context2 = 0x01100001, Key_Context3 = 0x01100002, Key_Context4 = 0x01100003, - Key_Call = 0x01100004, - Key_Hangup = 0x01100005, + Key_Call = 0x01100004, // set absolute state to in a call (do not toggle state) + Key_Hangup = 0x01100005, // set absolute state to hang up (do not toggle state) Key_Flip = 0x01100006, - Key_Camera = 0x01100007, - Key_CameraFocus = 0x01100008, + Key_ToggleCallHangup = 0x01100007, // a toggle key for answering, or hanging up, based on current call state + Key_VoiceDial = 0x01100008, + Key_LastNumberRedial = 0x01100009, + + Key_Camera = 0x01100020, + Key_CameraFocus = 0x01100021, Key_unknown = 0x01ffffff }; @@ -1719,6 +1726,7 @@ public: }; Q_DECLARE_FLAGS(TouchPointStates, TouchPointState) +#ifndef QT_NO_GESTURES enum GestureState { NoGesture, @@ -1748,6 +1756,7 @@ public: IgnoredGesturesPropagateToParent = 0x04 }; Q_DECLARE_FLAGS(GestureFlags, GestureFlag) +#endif // QT_NO_GESTURES enum NavigationMode { @@ -1777,7 +1786,9 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(Qt::MatchFlags) Q_DECLARE_OPERATORS_FOR_FLAGS(Qt::TextInteractionFlags) Q_DECLARE_OPERATORS_FOR_FLAGS(Qt::InputMethodHints) Q_DECLARE_OPERATORS_FOR_FLAGS(Qt::TouchPointStates) +#ifndef QT_NO_GESTURES Q_DECLARE_OPERATORS_FOR_FLAGS(Qt::GestureFlags) +#endif typedef bool (*qInternalCallback)(void **); diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc index f71ba9d..7eae3a5 100644 --- a/src/corelib/global/qnamespace.qdoc +++ b/src/corelib/global/qnamespace.qdoc @@ -1317,7 +1317,7 @@ \value Key_Enter Typically located on the keypad. \value Key_Insert \value Key_Delete - \value Key_Pause + \value Key_Pause The Pause/Break key (\note Not anything to do with pausing media) \value Key_Print \value Key_SysReq \value Key_Clear @@ -1615,12 +1615,14 @@ \value Key_BassDown \value Key_TrebleUp \value Key_TrebleDown - \value Key_MediaPlay - \value Key_MediaStop + \value Key_MediaPlay A key setting the state of the media player to play + \value Key_MediaStop A key setting the state of the media player to stop \value Key_MediaPrevious \omitvalue Key_MediaPrev \value Key_MediaNext \value Key_MediaRecord + \value Key_MediaPause A key setting the state of the media player to pause (\note not the pause/break key) + \value Key_MediaTogglePlayPause A key to toggle the play/pause state in the media player (rather than setting an absolute state) \value Key_HomePage \value Key_Favorites \value Key_Search @@ -1741,18 +1743,21 @@ \value Key_MediaLast \value Key_unknown - \value Key_Call - \value Key_Camera - \value Key_CameraFocus + \value Key_Call A key to answer or initiate a call (\see Key_ToggleCallHangup for a key to toggle current call state) + \value Key_Camera A key to activate the camera shutter + \value Key_CameraFocus A key to focus the camera \value Key_Context1 \value Key_Context2 \value Key_Context3 \value Key_Context4 \value Key_Flip - \value Key_Hangup + \value Key_Hangup A key to end an ongoing call (\see Key_ToggleCallHangup for a key to toggle current call state) \value Key_No \value Key_Select \value Key_Yes + \value Key_ToggleCallHangup A key to toggle the current call state (ie. either answer, or hangup) depending on current call state + \value Key_VoiceDial + \value Key_LastNumberRedial \value Key_Execute \value Key_Printer diff --git a/src/corelib/io/qresource.cpp b/src/corelib/io/qresource.cpp index 8e76e9e..ce9c57e 100644 --- a/src/corelib/io/qresource.cpp +++ b/src/corelib/io/qresource.cpp @@ -928,7 +928,7 @@ public: } }; -#if defined(Q_OS_UNIX) +#if defined(Q_OS_UNIX) && !defined(Q_OS_SYMBIAN) #define QT_USE_MMAP #endif diff --git a/src/corelib/kernel/qcoreevent.h b/src/corelib/kernel/qcoreevent.h index a20d171..9d3513a 100644 --- a/src/corelib/kernel/qcoreevent.h +++ b/src/corelib/kernel/qcoreevent.h @@ -275,17 +275,19 @@ public: TouchUpdate = 195, TouchEnd = 196, +#ifndef QT_NO_GESTURES NativeGesture = 197, // Internal for platform gesture support - +#endif RequestSoftwareInputPanel = 199, CloseSoftwareInputPanel = 200, UpdateSoftKeys = 201, // Internal for compressing soft key updates WinIdChange = 203, +#ifndef QT_NO_GESTURES Gesture = 198, GestureOverride = 202, - +#endif // 512 reserved for Qt Jambi's MetaCall event // 513 reserved for Qt Jambi's DeleteOnMainThread event @@ -327,7 +329,9 @@ private: friend class QGraphicsView; friend class QGraphicsViewPrivate; friend class QGraphicsScenePrivate; +#ifndef QT_NO_GESTURES friend class QGestureManager; +#endif }; class Q_CORE_EXPORT QTimerEvent : public QEvent diff --git a/src/corelib/kernel/qeventdispatcher_symbian.cpp b/src/corelib/kernel/qeventdispatcher_symbian.cpp index 1cb8455..9d8ee5a 100644 --- a/src/corelib/kernel/qeventdispatcher_symbian.cpp +++ b/src/corelib/kernel/qeventdispatcher_symbian.cpp @@ -484,9 +484,9 @@ void QSelectThread::run() } // end for // traversed all, so update + updateActivatedNotifiers(QSocketNotifier::Exception, &exceptionfds); updateActivatedNotifiers(QSocketNotifier::Read, &readfds); updateActivatedNotifiers(QSocketNotifier::Write, &writefds); - updateActivatedNotifiers(QSocketNotifier::Exception, &exceptionfds); break; case EINTR: // Should never occur on Symbian, but this is future proof! @@ -496,9 +496,9 @@ void QSelectThread::run() break; } } else { + updateActivatedNotifiers(QSocketNotifier::Exception, &exceptionfds); updateActivatedNotifiers(QSocketNotifier::Read, &readfds); updateActivatedNotifiers(QSocketNotifier::Write, &writefds); - updateActivatedNotifiers(QSocketNotifier::Exception, &exceptionfds); } m_waitCond.wait(&m_mutex); diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp index 135ec303..cede810 100644 --- a/src/corelib/kernel/qeventdispatcher_win.cpp +++ b/src/corelib/kernel/qeventdispatcher_win.cpp @@ -71,10 +71,12 @@ extern uint qGlobalPostedEventsCount(); #ifndef WM_TOUCH # define WM_TOUCH 0x0240 #endif +#ifndef QT_NO_GESTURES #ifndef WM_GESTURE # define WM_GESTURE 0x0119 # define WM_GESTURENOTIFY 0x011A #endif +#endif // QT_NO_GESTURES enum { WM_QT_SOCKETNOTIFIER = WM_USER, @@ -738,8 +740,10 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) || msg.message == WM_MOUSEWHEEL || msg.message == WM_MOUSEHWHEEL || msg.message == WM_TOUCH +#ifndef QT_NO_GESTURES || msg.message == WM_GESTURE || msg.message == WM_GESTURENOTIFY +#endif || msg.message == WM_CLOSE)) { // queue user input events for later processing haveMessage = false; diff --git a/src/corelib/kernel/qtranslator.cpp b/src/corelib/kernel/qtranslator.cpp index ca54c6c..1321b14 100644 --- a/src/corelib/kernel/qtranslator.cpp +++ b/src/corelib/kernel/qtranslator.cpp @@ -56,7 +56,7 @@ #include "qhash.h" #include "qtranslator_p.h" -#if defined(Q_OS_UNIX) +#if defined(Q_OS_UNIX) && !defined(Q_OS_SYMBIAN) #define QT_USE_MMAP #include "private/qcore_unix_p.h" #endif diff --git a/src/corelib/tools/qelapsedtimer.cpp b/src/corelib/tools/qelapsedtimer.cpp index 28dfc23..cb5e701 100644 --- a/src/corelib/tools/qelapsedtimer.cpp +++ b/src/corelib/tools/qelapsedtimer.cpp @@ -137,7 +137,7 @@ QT_BEGIN_NAMESPACE used. \value SystemTime The human-readable system time. This clock is not monotonic. - \value MonotonicClock The system's monotonic clock, usually found in Unix systems. This clock is not monotonic and does not overflow. + \value MonotonicClock The system's monotonic clock, usually found in Unix systems. This clock is monotonic and does not overflow. \value TickCounter The system's tick counter, used on Windows and Symbian systems. This clock may overflow. \value MachAbsoluteTime The Mach kernel's absolute time (Mac OS X). This clock is monotonic and does not overflow. diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h index 3374c80..0777f06 100644 --- a/src/corelib/tools/qhash.h +++ b/src/corelib/tools/qhash.h @@ -931,7 +931,7 @@ public: { return QHash<Key, T>::insertMulti(key, value); } inline QMultiHash &operator+=(const QMultiHash &other) - { unite(other); return *this; } + { this->unite(other); return *this; } inline QMultiHash operator+(const QMultiHash &other) const { QMultiHash result = *this; result += other; return result; } @@ -1006,12 +1006,7 @@ Q_INLINE_TEMPLATE int QMultiHash<Key, T>::remove(const Key &key, const T &value) typename QHash<Key, T>::iterator end(QHash<Key, T>::end()); while (i != end && i.key() == key) { if (i.value() == value) { -#if defined(Q_CC_RVCT) - // RVCT has problems with scoping, apparently. - i = QHash<Key, T>::erase(i); -#else - i = erase(i); -#endif + i = this->erase(i); ++n; } else { ++i; diff --git a/src/corelib/tools/qmap.h b/src/corelib/tools/qmap.h index 5696ba6..e4b73a1 100644 --- a/src/corelib/tools/qmap.h +++ b/src/corelib/tools/qmap.h @@ -977,7 +977,7 @@ public: { return QMap<Key, T>::insertMulti(key, value); } inline QMultiMap &operator+=(const QMultiMap &other) - { unite(other); return *this; } + { this->unite(other); return *this; } inline QMultiMap operator+(const QMultiMap &other) const { QMultiMap result = *this; result += other; return result; } @@ -1052,12 +1052,7 @@ Q_INLINE_TEMPLATE int QMultiMap<Key, T>::remove(const Key &key, const T &value) typename QMap<Key, T>::iterator end(QMap<Key, T>::end()); while (i != end && !qMapLessThanKey<Key>(key, i.key())) { if (i.value() == value) { -#if defined(Q_CC_RVCT) - // RVCT has problems with scoping, apparently. - i = QMap<Key, T>::erase(i); -#else - i = erase(i); -#endif + i = this->erase(i); ++n; } else { ++i; diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index e1167fa..c8d641a 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -129,7 +129,7 @@ static inline bool qt_ends_with(const QChar *haystack, int haystackLen, static int ucstricmp(const ushort *a, const ushort *ae, const ushort *b, const ushort *be) { if (a == b) - return 0; + return (ae - be); if (a == 0) return 1; if (b == 0) @@ -141,7 +141,7 @@ static int ucstricmp(const ushort *a, const ushort *ae, const ushort *b, const u uint alast = 0; uint blast = 0; - while (a != e) { + while (a < e) { // qDebug() << hex << alast << blast; // qDebug() << hex << "*a=" << *a << "alast=" << alast << "folded=" << foldCase (*a, alast); // qDebug() << hex << "*b=" << *b << "blast=" << blast << "folded=" << foldCase (*b, blast); @@ -170,7 +170,7 @@ static int ucstricmp(const ushort *a, const ushort *ae, const uchar *b) if (b == 0) return -1; - while (a != ae && *b) { + while (a < ae && *b) { int diff = foldCase(*a) - foldCase(*b); if ((diff)) return diff; @@ -4665,9 +4665,12 @@ int QString::compare_helper(const QChar *data1, int length1, QLatin1String s2, return length1; if (cs == Qt::CaseSensitive) { - while (uc != e && *c && *uc == *c) + while (uc < e && *c && *uc == *c) uc++, c++; + if (uc == e) + return -*c; + return *uc - *c; } else { return ucstricmp(uc, e, c); @@ -7118,7 +7121,7 @@ QString QString::fromRawData(const QChar *unicode, int size) */ QString &QString::setRawData(const QChar *unicode, int size) { - if (d->ref != 1 || d->alloc) { + if (d->ref != 1 || (d->data == d->array && d->alloc)) { *this = fromRawData(unicode, size); } else { #ifdef QT3_SUPPORT diff --git a/src/declarative/QmlChanges.txt b/src/declarative/QmlChanges.txt index 0df5f10..5735b1e 100644 --- a/src/declarative/QmlChanges.txt +++ b/src/declarative/QmlChanges.txt @@ -2,7 +2,6 @@ The changes below are pre Qt 4.7.0 RC TextInput and TextEdit: - - showInputPanelOnFocus property added - openSoftwareInputPanel() and closeSoftwareInputPanel() functions added Flickable: - overShoot is replaced by boundsBehavior enumeration diff --git a/src/declarative/debugger/qdeclarativedebugtrace_p.h b/src/declarative/debugger/qdeclarativedebugtrace_p.h index 5ba49a8..704c49a 100644 --- a/src/declarative/debugger/qdeclarativedebugtrace_p.h +++ b/src/declarative/debugger/qdeclarativedebugtrace_p.h @@ -50,7 +50,7 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE class QUrl; -class QDeclarativeDebugTrace : public QDeclarativeDebugService +class Q_AUTOTEST_EXPORT QDeclarativeDebugTrace : public QDeclarativeDebugService { public: enum EventType { diff --git a/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp b/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp index a05e426..261cc5c 100644 --- a/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp +++ b/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp @@ -72,13 +72,22 @@ QT_BEGIN_NAMESPACE \o \image animatedimageitem.gif \o \qml -Item { - width: anim.width; height: anim.height+8 - AnimatedImage { id: anim; source: "pics/games-anim.gif" } - Rectangle { color: "red"; width: 4; height: 8; y: anim.height - x: (anim.width-width)*anim.currentFrame/(anim.frameCount-1) + import Qt 4.7 + + Rectangle { + width: animation.width; height: animation.height + 8 + + AnimatedImage { id: animation; source: "animation.gif" } + + Rectangle { + property int frames: animation.frameCount + + width: 4; height: 8 + x: (animation.width - width) * animation.currentFrame / frames + y: animation.height + color: "red" + } } -} \endqml \endtable */ @@ -96,7 +105,7 @@ QDeclarativeAnimatedImage::~QDeclarativeAnimatedImage() /*! \qmlproperty bool AnimatedImage::paused - This property holds whether the animated image is paused or not + This property holds whether the animated image is paused. Defaults to false, and can be set to true when you want to pause. */ @@ -120,7 +129,7 @@ void QDeclarativeAnimatedImage::setPaused(bool pause) } /*! \qmlproperty bool AnimatedImage::playing - This property holds whether the animated image is playing or not + This property holds whether the animated image is playing. Defaults to true, so as to start playing immediately. */ diff --git a/src/declarative/graphicsitems/qdeclarativeflipable.cpp b/src/declarative/graphicsitems/qdeclarativeflipable.cpp index d926119..8c9d2dd 100644 --- a/src/declarative/graphicsitems/qdeclarativeflipable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflipable.cpp @@ -74,7 +74,7 @@ public: \inherits Item Flipable is an item that can be visibly "flipped" between its front and - back sides. It is used together with Rotation and State/Transition to + back sides. It is used together with \l Rotation and \l {State}/\l {Transition} to produce a flipping effect. Here is a Flipable that flips whenever it is clicked: @@ -83,10 +83,12 @@ public: \image flipable.gif - The Rotation element is used to specify the angle and axis of the flip, - and the State defines the changes in angle which produce the flipping - effect. Finally, the Transition creates the animation that changes the + The \l Rotation element is used to specify the angle and axis of the flip, + and the \l State defines the changes in angle which produce the flipping + effect. Finally, the \l Transition creates the animation that changes the angle over one second. + + \sa {declarative/ui-components/flipable}{Flipable example} */ /*! diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp index 906f1fc..ffffc2f 100644 --- a/src/declarative/graphicsitems/qdeclarativegridview.cpp +++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp @@ -904,28 +904,43 @@ void QDeclarativeGridViewPrivate::flick(AxisData &data, qreal minExtent, qreal m \inherits Flickable \brief The GridView item provides a grid view of items provided by a model. - The model is typically provided by a QAbstractListModel "C++ model object", - but can also be created directly in QML. + A GridView displays data from models created from built-in QML elements like ListModel + and XmlListModel, or custom model classes defined in C++ that inherit from + QAbstractListModel. - The items are laid out top to bottom (vertically) or left to right (horizontally) - and may be flicked to scroll. + A GridView has a \l model, which defines the data to be displayed, and + a \l delegate, which defines how the data should be displayed. Items in a + GridView are laid out horizontally or vertically. Grid views are inherently flickable + as GridView inherits from \l Flickable. - The below example creates a very simple grid, using a QML model. + For example, if there is a simple list model defined in a file \c ContactModel.qml like this: - \image gridview.png + \snippet doc/src/snippets/declarative/gridview/ContactModel.qml 0 - \snippet doc/src/snippets/declarative/gridview/gridview.qml 3 + Another component can display this model data in a GridView, like this: - The model is defined as a ListModel using QML: - \quotefile doc/src/snippets/declarative/gridview/dummydata/ContactModel.qml + \snippet doc/src/snippets/declarative/gridview/gridview.qml import + \codeline + \snippet doc/src/snippets/declarative/gridview/gridview.qml classdocs simple + \image gridview-simple.png - In this case ListModel is a handy way for us to test our UI. In practice - the model would be implemented in C++, or perhaps via a SQL data source. + Here, the GridView creates a \c ContactModel component for its model, and a \l Column element + (containing \l Image and \ Text elements) for its delegate. The view will create a new delegate + for each item in the model. Notice the delegate is able to access the model's \c name and + \c portrait data directly. + + An improved grid view is shown below. The delegate is visually improved and is moved + into a separate \c contactDelegate component. Also, the currently selected item is highlighted + with a blue \l Rectangle using the \l highlight property, and \c focus is set to \c true + to enable keyboard navigation for the grid view. + + \snippet doc/src/snippets/declarative/gridview/gridview.qml classdocs advanced + \image gridview-highlight.png Delegates are instantiated as needed and may be destroyed at any time. State should \e never be stored in a delegate. - \bold Note that views do not enable \e clip automatically. If the view + \note Views do not enable \e clip automatically. If the view is not clipped by another item or the screen, it will be necessary to set \e {clip: true} in order to have the out of view items clipped nicely. @@ -971,19 +986,7 @@ QDeclarativeGridView::~QDeclarativeGridView() The example below ensures that the animation completes before the item is removed from the grid. - \code - Component { - id: myDelegate - Item { - id: wrapper - GridView.onRemove: SequentialAnimation { - PropertyAction { target: wrapper; property: "GridView.delayRemove"; value: true } - NumberAnimation { target: wrapper; property: "scale"; to: 0; duration: 250; easing.type: Easing.InOutQuad } - PropertyAction { target: wrapper; property: "GridView.delayRemove"; value: false } - } - } - } - \endcode + \snippet doc/src/snippets/declarative/gridview/gridview.qml delayRemove */ /*! @@ -1001,10 +1004,10 @@ QDeclarativeGridView::~QDeclarativeGridView() \qmlproperty model GridView::model This property holds the model providing data for the grid. - The model provides a set of data that is used to create the items - for the view. For large or dynamic datasets the model is usually - provided by a C++ model object. The C++ model object must be a \l - {QAbstractItemModel} subclass, a VisualModel, or a simple list. + The model provides the set of data that is used to create the items + in the view. Models can be created directly in QML using \l ListModel, \l XmlListModel + or \l VisualItemModel, or provided by C++ model classes. If a C++ model class is + used, it must be a subclass of \l QAbstractItemModel or a simple list. \sa {qmlmodels}{Data Models} */ @@ -1079,11 +1082,11 @@ void QDeclarativeGridView::setModel(const QVariant &model) that is not needed for the normal display of the delegate in a \l Loader which can load additional elements when needed. - Note that the GridView will layout the items based on the size of the root item + The GridView will layout the items based on the size of the root item in the delegate. - Here is an example delegate: - \snippet doc/src/snippets/declarative/gridview/gridview.qml 0 + \note Delegates are instantiated as needed and may be destroyed at any time. + State should \e never be stored in a delegate. */ QDeclarativeComponent *QDeclarativeGridView::delegate() const { @@ -1157,8 +1160,7 @@ QDeclarativeItem *QDeclarativeGridView::currentItem() /*! \qmlproperty Item GridView::highlightItem - \c highlightItem holds the highlight item, which was created - from the \l highlight component. + This holds the highlight item created from the \l highlight component. The highlightItem is managed by the view unless \l highlightFollowsCurrentItem is set to false. @@ -1189,13 +1191,10 @@ int QDeclarativeGridView::count() const \qmlproperty Component GridView::highlight This property holds the component to use as the highlight. - An instance of the highlight component will be created for each view. - The geometry of the resultant component instance will be managed by the view + An instance of the highlight component is created for each view. + The geometry of the resulting component instance will be managed by the view so as to stay with the current item, unless the highlightFollowsCurrentItem property is false. - The below example demonstrates how to make a simple highlight: - \snippet doc/src/snippets/declarative/gridview/gridview.qml 1 - \sa highlightItem, highlightFollowsCurrentItem */ QDeclarativeComponent *QDeclarativeGridView::highlight() const @@ -1218,21 +1217,14 @@ void QDeclarativeGridView::setHighlight(QDeclarativeComponent *highlight) \qmlproperty bool GridView::highlightFollowsCurrentItem This property sets whether the highlight is managed by the view. - If highlightFollowsCurrentItem is true, the highlight will be moved smoothly - to follow the current item. If highlightFollowsCurrentItem is false, the - highlight will not be moved by the view, and must be implemented - by the highlight component, for example: - - \code - Component { - id: myHighlight - Rectangle { - id: wrapper; color: "lightsteelblue"; radius: 4; width: 320; height: 60 - SpringFollow on y { source: wrapper.GridView.view.currentItem.y; spring: 3; damping: 0.2 } - SpringFollow on x { source: wrapper.GridView.view.currentItem.x; spring: 3; damping: 0.2 } - } - } - \endcode + If this property is true, the highlight is moved smoothly + to follow the current item. Otherwise, the + highlight is not moved by the view, and any movement must be implemented + by the highlight. + + Here is a highlight with its motion defined by a \l {SpringFollow} item: + + \snippet doc/src/snippets/declarative/gridview/gridview.qml highlightFollowsCurrentItem */ bool QDeclarativeGridView::highlightFollowsCurrentItem() const { @@ -1290,32 +1282,30 @@ void QDeclarativeGridView::setHighlightMoveDuration(int duration) \qmlproperty real GridView::preferredHighlightEnd \qmlproperty enumeration GridView::highlightRangeMode - These properties set the preferred range of the highlight (current item) - within the view. + These properties define the preferred range of the highlight (for the current item) + within the view. The \c preferredHighlightBegin value must be less than the + \c preferredHighlightEnd value. - Note that this is the correct way to influence where the - current item ends up when the view scrolls. For example, if you want the - currently selected item to be in the middle of the list, then set the - highlight range to be where the middle item would go. Then, when the view scrolls, - the currently selected item will be the item at that spot. This also applies to - when the currently selected item changes - it will scroll to within the preferred - highlight range. Furthermore, the behaviour of the current item index will occur - whether or not a highlight exists. + These properties affect the position of the current item when the view is scrolled. + For example, if the currently selected item should stay in the middle of the + view when it is scrolled, set the \c preferredHighlightBegin and + \c preferredHighlightEnd values to the top and bottom coordinates of where the middle + item would be. If the \c currentItem is changed programmatically, the view will + automatically scroll so that the current item is in the middle of the view. + Furthermore, the behavior of the current item index will occur whether or not a + highlight exists. - If highlightRangeMode is set to \e GridView.ApplyRange the view will - attempt to maintain the highlight within the range, however - the highlight can move outside of the range at the ends of the list - or due to a mouse interaction. + Valid values for \c highlightRangeMode are: - If highlightRangeMode is set to \e GridView.StrictlyEnforceRange the highlight will never - move outside of the range. This means that the current item will change - if a keyboard or mouse action would cause the highlight to move - outside of the range. - - The default value is \e GridView.NoHighlightRange. - - Note that a valid range requires preferredHighlightEnd to be greater - than or equal to preferredHighlightBegin. + \list + \o GridView.ApplyRange - the view attempts to maintain the highlight within the range. + However, the highlight can move outside of the range at the ends of the view or due + to mouse interaction. + \o GridView.StrictlyEnforceRange - the highlight never moves outside of the range. + The current item changes if a keyboard or mouse action would cause the highlight to move + outside of the range. + \o GridView.NoHighlightRange - this is the default value. + \endlist */ qreal QDeclarativeGridView::preferredHighlightBegin() const { @@ -1370,10 +1360,12 @@ void QDeclarativeGridView::setHighlightRangeMode(HighlightRangeMode mode) \qmlproperty enumeration GridView::flow This property holds the flow of the grid. - Possible values are \c GridView.LeftToRight (default) and \c GridView.TopToBottom. + Possible values: - If \a flow is \c GridView.LeftToRight, the view will scroll vertically. - If \a flow is \c GridView.TopToBottom, the view will scroll horizontally. + \list + \o GridView.LeftToRight (default) - Items are laid out from left to right, and the view scrolls vertically + \o GridView.TopToBottom - Items are laid out from top to bottom, and the view scrolls horizontally + \endlist */ QDeclarativeGridView::Flow QDeclarativeGridView::flow() const { @@ -1405,8 +1397,9 @@ void QDeclarativeGridView::setFlow(Flow flow) \qmlproperty bool GridView::keyNavigationWraps This property holds whether the grid wraps key navigation - If this property is true then key presses to move off of one end of the grid will cause the - selection to jump to the other side. + If this is true, key navigation that would move the current item selection + past one end of the view instead wraps around and moves the selection to + the other end of the view. */ bool QDeclarativeGridView::isWrapEnabled() const { @@ -1463,7 +1456,7 @@ void QDeclarativeGridView::setCacheBuffer(int buffer) \qmlproperty int GridView::cellWidth \qmlproperty int GridView::cellHeight - These properties holds the width and height of each cell in the grid + These properties holds the width and height of each cell in the grid. The default cell size is 100x100. */ @@ -1503,14 +1496,14 @@ void QDeclarativeGridView::setCellHeight(int cellHeight) /*! \qmlproperty enumeration GridView::snapMode - This property determines where the view will settle following a drag or flick. - The allowed values are: + This property determines how the view scrolling will settle following a drag or flick. + The possible values are: \list - \o GridView.NoSnap (default) - the view will stop anywhere within the visible area. - \o GridView.SnapToRow - the view will settle with a row (or column for TopToBottom flow) + \o GridView.NoSnap (default) - the view stops anywhere within the visible area. + \o GridView.SnapToRow - the view settles with a row (or column for \c GridView.TopToBottom flow) aligned with the start of the view. - \o GridView.SnapOneRow - the view will settle no more than one row (or column for TopToBottom flow) + \o GridView.SnapOneRow - the view will settle no more than one row (or column for \c GridView.TopToBottom flow) away from the first visible row at the time the mouse button is released. This mode is particularly useful for moving one page at a time. \endlist @@ -1789,22 +1782,22 @@ void QDeclarativeGridView::moveCurrentIndexRight() \a mode: \list - \o Beginning - position item at the top (or left for TopToBottom flow) of the view. - \o Center- position item in the center of the view. - \o End - position item at bottom (or right for horizontal orientation) of the view. - \o Visible - if any part of the item is visible then take no action, otherwise + \o GridView.Beginning - position item at the top (or left for \c GridView.TopToBottom flow) of the view. + \o GridView.Center - position item in the center of the view. + \o GridView.End - position item at bottom (or right for horizontal orientation) of the view. + \o GridView.Visible - if any part of the item is visible then take no action, otherwise bring the item into view. - \o Contain - ensure the entire item is visible. If the item is larger than - the view the item is positioned at the top (or left for TopToBottom flow) of the view. + \o GridView.Contain - ensure the entire item is visible. If the item is larger than + the view the item is positioned at the top (or left for \c GridView.TopToBottom flow) of the view. \endlist If positioning the view at the index would cause empty space to be displayed at the beginning or end of the view, the view will be positioned at the boundary. - It is not recommended to use contentX or contentY to position the view + It is not recommended to use \l {Flickable::}{contentX} or \l {Flickable::}{contentY} to position the view at a particular index. This is unreliable since removing items from the start of the view does not cause all other items to be repositioned. - The correct way to bring an item into view is with positionViewAtIndex. + The correct way to bring an item into view is with \c positionViewAtIndex. */ void QDeclarativeGridView::positionViewAtIndex(int index, int mode) { diff --git a/src/declarative/graphicsitems/qdeclarativeimage.cpp b/src/declarative/graphicsitems/qdeclarativeimage.cpp index 4593cf8..94240c2 100644 --- a/src/declarative/graphicsitems/qdeclarativeimage.cpp +++ b/src/declarative/graphicsitems/qdeclarativeimage.cpp @@ -275,11 +275,6 @@ qreal QDeclarativeImage::paintedHeight() const \o Image.Error - an error occurred while loading the image \endlist - Note that a change in the status property does not cause anything to happen - (although it reflects what has happened with the image internally). If you wish - to react to the change in status you need to do it yourself, for example in one - of the following ways: - Use this status to provide an update or respond to the status change in some way. For example, you could: diff --git a/src/declarative/graphicsitems/qdeclarativeimage_p.h b/src/declarative/graphicsitems/qdeclarativeimage_p.h index 5ea700d..fa5b2a9 100644 --- a/src/declarative/graphicsitems/qdeclarativeimage_p.h +++ b/src/declarative/graphicsitems/qdeclarativeimage_p.h @@ -87,8 +87,6 @@ protected: QDeclarativeImage(QDeclarativeImagePrivate &dd, QDeclarativeItem *parent); void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry); void pixmapChange(); - -protected Q_SLOTS: void updatePaintedGeometry(); private: diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index 134bd6d..9949e65 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -97,9 +97,11 @@ QT_BEGIN_NAMESPACE The Translate object provides independent control over position in addition to the Item's x and y properties. - The following example moves the Y axis of the Rectangles while still allowing the Row element + The following example moves the Y axis of the \l Rectangle elements while still allowing the \l Row element to lay the items out as if they had not been transformed: \qml + import Qt 4.7 + Row { Rectangle { width: 100; height: 100 @@ -113,6 +115,8 @@ QT_BEGIN_NAMESPACE } } \endqml + + \image translate.png */ /*! diff --git a/src/declarative/graphicsitems/qdeclarativelayoutitem.cpp b/src/declarative/graphicsitems/qdeclarativelayoutitem.cpp index 4add66d..38d5f59 100644 --- a/src/declarative/graphicsitems/qdeclarativelayoutitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativelayoutitem.cpp @@ -58,7 +58,10 @@ QT_BEGIN_NAMESPACE taking its size hints into account, and you can propagate this to the other elements in your UI via anchors and bindings. This is a QGraphicsLayoutItem subclass, and its properties merely expose the QGraphicsLayoutItem functionality to QML. - See the QGraphicsLayoutItem documentation for further details. + + The \l{declarative/cppextensions/qgraphicslayouts/layoutitem}{LayoutItem example} + demonstrates how a LayoutItem can be used within a \l{Graphics View Framework}{Graphics View} + scene. */ /*! diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp index 01928a1..dbd1976 100644 --- a/src/declarative/graphicsitems/qdeclarativelistview.cpp +++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp @@ -427,6 +427,8 @@ public: scheduleLayout(); } } + if (currentItem && currentItem->item == item) + updateHighlight(); if (trackedItem && trackedItem->item == item) q->trackedPositionChanged(); } @@ -1103,7 +1105,9 @@ void QDeclarativeListViewPrivate::updateHeader() void QDeclarativeListViewPrivate::fixupPosition() { - moveReason = Other; + if ((haveHighlightRange && highlightRange == QDeclarativeListView::StrictlyEnforceRange) + || snapMode != QDeclarativeListView::NoSnap) + moveReason = Other; if (orient == QDeclarativeListView::Vertical) fixupY(); else @@ -1325,13 +1329,11 @@ void QDeclarativeListViewPrivate::flick(AxisData &data, qreal minExtent, qreal m Another component can display this model data in a ListView, like this: - \table - \row - \o \snippet doc/src/snippets/declarative/listview/listview.qml import + \snippet doc/src/snippets/declarative/listview/listview.qml import \codeline \snippet doc/src/snippets/declarative/listview/listview.qml classdocs simple - \o \image listview-simple.png - \endtable + + \image listview-simple.png Here, the ListView creates a \c ContactModel component for its model, and a \l Text element for its delegate. The view will create a new \l Text component for each item in the model. Notice @@ -1342,13 +1344,10 @@ void QDeclarativeListViewPrivate::flick(AxisData &data, qreal minExtent, qreal m with a blue \l Rectangle using the \l highlight property, and \c focus is set to \c true to enable keyboard navigation for the list view. - \table - \row - \o \snippet doc/src/snippets/declarative/listview/listview.qml classdocs advanced - \o \image listview-highlight.png - \endtable + \snippet doc/src/snippets/declarative/listview/listview.qml classdocs advanced + \image listview-highlight.png - In a ListView, delegates are instantiated as needed and may be destroyed at any time. + In a GridView, delegates are instantiated as needed and may be destroyed at any time. State should \e never be stored in a delegate. \note Views do not enable \e clip automatically. If the view @@ -1634,7 +1633,7 @@ int QDeclarativeListView::count() const This property holds the component to use as the highlight. An instance of the highlight component is created for each list. - The geometry of the resultant component instance is managed by the list + The geometry of the resulting component instance is managed by the list so as to stay with the current item, unless the highlightFollowsCurrentItem property is false. @@ -1667,7 +1666,7 @@ void QDeclarativeListView::setHighlight(QDeclarativeComponent *highlight) highlight is not moved by the view, and any movement must be implemented by the highlight. - Here is a highlight with its motion defined by the a \l {SpringFollow} item: + Here is a highlight with its motion defined by a \l {SpringFollow} item: \snippet doc/src/snippets/declarative/listview/listview.qml highlightFollowsCurrentItem @@ -2042,8 +2041,8 @@ void QDeclarativeListView::setHighlightResizeDuration(int duration) /*! \qmlproperty enumeration ListView::snapMode - This property determines where the view's scrolling behavior stops following a drag or flick. - The allowed values are: + This property determines how the view scrolling will settle following a drag or flick. + The possible values are: \list \o ListView.NoSnap (default) - the view stops anywhere within the visible area. diff --git a/src/declarative/graphicsitems/qdeclarativeloader.cpp b/src/declarative/graphicsitems/qdeclarativeloader.cpp index 4995baf..898c5a5 100644 --- a/src/declarative/graphicsitems/qdeclarativeloader.cpp +++ b/src/declarative/graphicsitems/qdeclarativeloader.cpp @@ -115,27 +115,37 @@ void QDeclarativeLoaderPrivate::initResize() subtree from a QML URL or Component. Loader instantiates an item from a component. The component to - instantiate may be specified directly by the \c sourceComponent - property, or loaded from a URL via the \c source property. + instantiate may be specified directly by the \l sourceComponent + property, or loaded from a URL via the \l source property. It is also an effective means of delaying the creation of a component until it is required: \code + import Qt 4.7 + Loader { id: pageLoader } + Rectangle { - MouseArea { anchors.fill: parent; onClicked: pageLoader.source = "Page1.qml" } + MouseArea { + anchors.fill: parent + onClicked: pageLoader.source = "Page1.qml" + } } \endcode If the Loader source is changed, any previous items instantiated - will be destroyed. Setting \c source to an empty string, or setting + will be destroyed. Setting \l source to an empty string, or setting sourceComponent to \e undefined will destroy the currently instantiated items, freeing resources and leaving the Loader empty. For example: \code pageLoader.source = "" + \endcode + or + + \code pageLoader.sourceComponent = undefined \endcode @@ -340,19 +350,31 @@ void QDeclarativeLoaderPrivate::_q_sourceLoaded() \o Loader.Error - an error occurred while loading the QML source \endlist - Note that a change in the status property does not cause anything to happen - (although it reflects what has happened to the loader internally). If you wish - to react to the change in status you need to do it yourself, for example in one - of the following ways: - \list - \o Create a state, so that a state change occurs, e.g. State{name: 'loaded'; when: loader.status = Loader.Ready;} - \o Do something inside the onLoaded signal handler, e.g. Loader{id: loader; onLoaded: console.log('Loaded');} - \o Bind to the status variable somewhere, e.g. Text{text: if(loader.status!=Loader.Ready){'Not Loaded';}else{'Loaded';}} - \endlist - \sa progress + Use this status to provide an update or respond to the status change in some way. + For example, you could: + + \e {Trigger a state change:} + \qml + State { name: 'loaded'; when: loader.status = Loader.Ready } + \endqml + + \e {Implement an \c onStatusChanged signal handler:} + \qml + Loader { + id: loader + onStatusChanged: if (loader.status == Loader.Ready) console.log('Loaded') + } + \endqml + + \e {Bind to the status value:} + \qml + Text { text: loader.status != Loader.Ready ? 'Not Loaded' : 'Loaded' } + \endqml Note that if the source is a local file, the status will initially be Ready (or Error). While there will be no onStatusChanged signal in that case, the onLoaded will still be invoked. + + \sa progress */ QDeclarativeLoader::Status QDeclarativeLoader::status() const diff --git a/src/declarative/graphicsitems/qdeclarativemousearea.cpp b/src/declarative/graphicsitems/qdeclarativemousearea.cpp index 1947c00..6fca283 100644 --- a/src/declarative/graphicsitems/qdeclarativemousearea.cpp +++ b/src/declarative/graphicsitems/qdeclarativemousearea.cpp @@ -172,17 +172,21 @@ QDeclarativeMouseAreaPrivate::~QDeclarativeMouseAreaPrivate() A MouseArea is typically used in conjunction with a visible item, where the MouseArea effectively 'proxies' mouse handling for that - item. For example, we can put a MouseArea in a Rectangle that changes - the Rectangle color to red when clicked: - \snippet doc/src/snippets/declarative/mouseregion.qml 0 + item. For example, we can put a MouseArea in a \l Rectangle that changes + the \l Rectangle color to red when clicked: + + \snippet doc/src/snippets/declarative/mousearea.qml import + \codeline + \snippet doc/src/snippets/declarative/mousearea.qml intro Many MouseArea signals pass a \l {MouseEvent}{mouse} parameter that contains additional information about the mouse event, such as the position, button, and any key modifiers. - Below we have the previous - example extended so as to give a different color when you right click. - \snippet doc/src/snippets/declarative/mouseregion.qml 1 + Here is an extension of the previous example that produces a different + color when the area is right clicked: + + \snippet doc/src/snippets/declarative/mousearea.qml intro-extended For basic key handling, see the \l {Keys}{Keys attached property}. @@ -238,7 +242,7 @@ QDeclarativeMouseAreaPrivate::~QDeclarativeMouseAreaPrivate() releasing is also considered a click). The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y - position of the release of the click, and whether the click wasHeld. + position of the release of the click, and whether the click was held. The \e accepted property of the MouseEvent parameter is ignored in this handler. */ @@ -262,7 +266,7 @@ QDeclarativeMouseAreaPrivate::~QDeclarativeMouseAreaPrivate() This handler is called when there is a release. The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y - position of the release of the click, and whether the click wasHeld. + position of the release of the click, and whether the click was held. The \e accepted property of the MouseEvent parameter is ignored in this handler. */ @@ -282,7 +286,7 @@ QDeclarativeMouseAreaPrivate::~QDeclarativeMouseAreaPrivate() This handler is called when there is a double-click (a press followed by a release followed by a press). The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y - position of the release of the click, and whether the click wasHeld. + position of the release of the click, and whether the click was held. The \e accepted property of the MouseEvent parameter is ignored in this handler. */ @@ -328,10 +332,10 @@ QDeclarativeMouseArea::~QDeclarativeMouseArea() while a button is pressed, and will remain valid as long as the button is held even if the mouse is moved outside the area. - If hoverEnabled is true then these properties will be valid: + If hoverEnabled is true then these properties will be valid when: \list - \i when no button is pressed, but the mouse is within the MouseArea (containsMouse is true). - \i if a button is pressed and held, even if it has since moved out of the area. + \i no button is pressed, but the mouse is within the MouseArea (containsMouse is true). + \i a button is pressed and held, even if it has since moved out of the area. \endlist The coordinates are relative to the MouseArea. @@ -378,18 +382,7 @@ void QDeclarativeMouseArea::setEnabled(bool a) \endlist The code below displays "right" when the right mouse buttons is pressed: - \code - Text { - text: mr.pressedButtons & Qt.RightButton ? "right" : "" - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - MouseArea { - id: mr - acceptedButtons: Qt.LeftButton | Qt.RightButton - anchors.fill: parent - } - } - \endcode + \snippet doc/src/snippets/declarative/mousearea.qml mousebuttons \sa acceptedButtons */ @@ -705,7 +698,7 @@ void QDeclarativeMouseArea::setHovered(bool h) MouseArea { acceptedButtons: Qt.LeftButton | Qt.RightButton } \endcode - The default is to accept the Left button. + The default value is \c Qt.LeftButton. */ Qt::MouseButtons QDeclarativeMouseArea::acceptedButtons() const { @@ -765,17 +758,19 @@ QDeclarativeDrag *QDeclarativeMouseArea::drag() \qmlproperty real MouseArea::drag.minimumY \qmlproperty real MouseArea::drag.maximumY - drag provides a convenient way to make an item draggable. + \c drag provides a convenient way to make an item draggable. \list - \i \c target specifies the item to drag. - \i \c active specifies if the target item is being currently dragged. - \i \c axis specifies whether dragging can be done horizontally (Drag.XAxis), vertically (Drag.YAxis), or both (Drag.XandYAxis) - \i the minimum and maximum properties limit how far the target can be dragged along the corresponding axes. + \i \c drag.target specifies the item to drag. + \i \c drag.active specifies if the target item is currently being dragged. + \i \c drag.axis specifies whether dragging can be done horizontally (\c Drag.XAxis), vertically (\c Drag.YAxis), or both (\c Drag.XandYAxis) + \i \c drag.minimum and \c drag.maximum limit how far the target can be dragged along the corresponding axes. \endlist - The following example uses drag to reduce the opacity of an image as it moves to the right: - \snippet doc/src/snippets/declarative/drag.qml 0 + The following example displays an image that can be dragged along the X-axis. The opacity + of the image is reduced when it is dragged to the right. + + \snippet doc/src/snippets/declarative/mousearea.qml drag */ QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qdeclarativepath.cpp b/src/declarative/graphicsitems/qdeclarativepath.cpp index 141a938..a904869 100644 --- a/src/declarative/graphicsitems/qdeclarativepath.cpp +++ b/src/declarative/graphicsitems/qdeclarativepath.cpp @@ -628,7 +628,7 @@ void QDeclarativePathLine::addToPath(QPainterPath &path) \qml Path { startX: 0; startY: 0 - PathQuad x: 200; y: 0; controlX: 100; controlY: 150 } + PathQuad { x: 200; y: 0; controlX: 100; controlY: 150 } } \endqml \endtable @@ -713,8 +713,9 @@ void QDeclarativePathQuad::addToPath(QPainterPath &path) Path { startX: 20; startY: 0 PathCubic { - x: 180; y: 0; control1X: -10; control1Y: 90 - control2X: 210; control2Y: 90 + x: 180; y: 0 + control1X: -10; control1Y: 90 + control2X: 210; control2Y: 90 } } \endqml diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp index 448ec06..f58b054 100644 --- a/src/declarative/graphicsitems/qdeclarativepathview.cpp +++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp @@ -310,11 +310,21 @@ void QDeclarativePathViewPrivate::regenerate() \brief The PathView element lays out model-provided items on a path. \inherits Item - The model is typically provided by a QAbstractListModel "C++ model object", but can also be created directly in QML. + A PathView displays data from models created from built-in QML elements like ListModel + and XmlListModel, or custom model classes defined in C++ that inherit from + QAbstractListModel. + A ListView has a \l model, which defines the data to be displayed, and + a \l delegate, which defines how the data should be displayed. The \l delegate is instantiated for each item on the \l path. The items may be flicked to move them along the path. + For example, if there is a simple list model defined in a file \c ContactModel.qml like this: + + \snippet doc/src/snippets/declarative/pathview/ContactModel.qml 0 + + This data can be represented as a PathView, like this: + \snippet doc/src/snippets/declarative/pathview/pathview.qml 0 \image pathview.gif @@ -885,6 +895,7 @@ void QDeclarativePathView::setPathItemCount(int i) if (i < 1) i = 1; d->pathItems = i; + d->updateMappedRange(); if (d->isValid() && isComponentComplete()) { d->regenerate(); } diff --git a/src/declarative/graphicsitems/qdeclarativepositioners.cpp b/src/declarative/graphicsitems/qdeclarativepositioners.cpp index 8796e63..20cc46b 100644 --- a/src/declarative/graphicsitems/qdeclarativepositioners.cpp +++ b/src/declarative/graphicsitems/qdeclarativepositioners.cpp @@ -302,7 +302,7 @@ void QDeclarativeBasePositioner::finishApplyTransitions() /*! \qmlclass Column QDeclarativeColumn \since 4.7 - \brief The Column item lines up its children vertically. + \brief The Column item arranges its children vertically. \inherits Item The Column item positions its child items so that they are vertically @@ -346,7 +346,8 @@ Column { will not change. If you manually change the x or y properties in script, bind the x or y properties, use anchors on a child of a positioner, or have the height of a child depend on the position of a child, then the - positioner may exhibit strange behaviour. + positioner may exhibit strange behaviour. If you need to perform any of these + actions, consider positioning the items without the use of a Column. */ /*! @@ -396,7 +397,7 @@ Column { spacing is the amount in pixels left empty between each adjacent item, and defaults to 0. - The below example places a Grid containing a red, a blue and a + The below example places a \l Grid containing a red, a blue and a green rectangle on a gray background. The area the grid positioner occupies is colored white. The top positioner has the default of no spacing, and the bottom positioner has its spacing set to 2. @@ -468,17 +469,15 @@ void QDeclarativeColumn::reportConflictingAnchors() /*! \qmlclass Row QDeclarativeRow \since 4.7 - \brief The Row item lines up its children horizontally. + \brief The Row item arranges its children horizontally. \inherits Item The Row item positions its child items so that they are - horizontally aligned and not overlapping. Spacing can be added between the - items, and a margin around all items can also be added. It also provides for - transitions to be set when items are added, moved, or removed in the - positioner. Adding and removing apply both to items which are deleted or have - their position in the document changed so as to no longer be children of the - positioner, as well as to items which have their opacity set to or from zero - so as to appear or disappear. + horizontally aligned and not overlapping. + + Use \l spacing to set the spacing between items in a Row, and use the + \l add and \l move properties to set the transitions that should be applied + when items are added to, removed from, or re-positioned within the Row. The below example lays out differently shaped rectangles using a Row. \qml @@ -495,8 +494,8 @@ Row { will not change. If you manually change the x or y properties in script, bind the x or y properties, use anchors on a child of a positioner, or have the width of a child depend on the position of a child, then the - positioner may exhibit strange behaviour. - + positioner may exhibit strange behaviour. If you need to perform any of these + actions, consider positioning the items without the use of a Row. */ /*! \qmlproperty Transition Row::add @@ -504,12 +503,10 @@ Row { The transition will only be applied to the added item(s). Positioner transitions will only affect the position (x,y) of items. - Added can mean that either the object has been created or - reparented, and thus is now a child or the positioner, or that the + An object is considered to be added to the positioner if it has been + created or reparented and thus is now a child or the positioner, or if the object has had its opacity increased from zero, and thus is now visible. - - */ /*! \qmlproperty Transition Row::move @@ -540,7 +537,7 @@ Row { spacing is the amount in pixels left empty between each adjacent item, and defaults to 0. - The below example places a Grid containing a red, a blue and a + The below example places a \l Grid containing a red, a blue and a green rectangle on a gray background. The area the grid positioner occupies is colored white. The top positioner has the default of no spacing, and the bottom positioner has its spacing set to 2. @@ -610,18 +607,20 @@ void QDeclarativeRow::reportConflictingAnchors() \inherits Item The Grid item positions its child items so that they are - aligned in a grid and are not overlapping. Spacing can be added - between the items. It also provides for transitions to be set when items are + aligned in a grid and are not overlapping. + + Spacing can be added + between child items. It also provides for transitions to be set when items are added, moved, or removed in the positioner. Adding and removing apply both to items which are deleted or have their position in the document changed so as to no longer be children of the positioner, as well as to items which have their opacity set to or from zero so as to appear or disappear. - The Grid defaults to using four columns, and as many rows as - are necessary to fit all the child items. The number of rows - and/or the number of columns can be constrained by setting the rows - or columns properties. The grid positioner calculates a grid with + A Grid defaults to four columns, and as many rows as + are necessary to fit all child items. The number of rows + and/or the number of columns can be constrained by setting the \l rows + or \l columns properties. The grid positioner calculates a grid with rectangular cells of sufficient size to hold all items, and then places the items in the cells, going across then down, and positioning each item at the (0,0) corner of the cell. The below @@ -648,7 +647,8 @@ Grid { will not change. If you manually change the x or y properties in script, bind the x or y properties, use anchors on a child of a positioner, or have the width or height of a child depend on the position of a child, then the - positioner may exhibit strange behaviour. + positioner may exhibit strange behaviour. If you need to perform any of these + actions, consider positioning the items without the use of a Grid. */ /*! \qmlproperty Transition Grid::add @@ -658,12 +658,10 @@ Grid { as that is all the positioners affect. To animate other property change you will have to do so based on how you have changed those properties. - Added can mean that either the object has been created or - reparented, and thus is now a child or the positioner, or that the + An object is considered to be added to the positioner if it has been + created or reparented and thus is now a child or the positioner, or if the object has had its opacity increased from zero, and thus is now visible. - - */ /*! \qmlproperty Transition Grid::move @@ -714,18 +712,16 @@ QDeclarativeGrid::QDeclarativeGrid(QDeclarativeItem *parent) : \qmlproperty int Grid::columns This property holds the number of columns in the grid. - When the columns property is set the Grid will always have - that many columns. Note that if you do not have enough items to - fill this many columns some columns will be of zero width. + If the grid does not have enough items to fill the specified + number of columns, some columns will be of zero width. */ /*! \qmlproperty int Grid::rows This property holds the number of rows in the grid. - When the rows property is set the Grid will always have that - many rows. Note that if you do not have enough items to fill this - many rows some rows will be of zero width. + If the grid does not have enough items to fill the specified + number of rows, some rows will be of zero width. */ void QDeclarativeGrid::setColumns(const int columns) @@ -750,12 +746,14 @@ void QDeclarativeGrid::setRows(const int rows) \qmlproperty enumeration Grid::flow This property holds the flow of the layout. - Possible values are \c Grid.LeftToRight (default) and \c Grid.TopToBottom. + Possible values are: - If \a flow is \c Grid.LeftToRight, the items are positioned next to - to each other from left to right, then wrapped to the next line. - If \a flow is \c Grid.TopToBottom, the items are positioned next to each - other from top to bottom, then wrapped to the next column. + \list + \o Grid.LeftToRight (default) - Items are positioned next to + to each other from left to right, then wrapped to the next line. + \o Grid.TopToBottom - Items are positioned next to each + other from top to bottom, then wrapped to the next column. + \endlist */ QDeclarativeGrid::Flow QDeclarativeGrid::flow() const { @@ -893,14 +891,18 @@ void QDeclarativeGrid::reportConflictingAnchors() /*! \qmlclass Flow QDeclarativeFlow \since 4.7 - \brief The Flow item lines up its children side by side, wrapping as necessary. + \brief The Flow item arranges its children side by side, wrapping as necessary. \inherits Item + The Flow item positions its child items so that they are side by side and are + not overlapping. + Note that the positioner assumes that the x and y positions of its children will not change. If you manually change the x or y properties in script, bind the x or y properties, use anchors on a child of a positioner, or have the width or height of a child depend on the position of a child, then the - positioner may exhibit strange behaviour. + positioner may exhibit strange behaviour. If you need to perform any of these + actions, consider positioning the items without the use of a Flow. */ /*! @@ -909,9 +911,10 @@ void QDeclarativeGrid::reportConflictingAnchors() The transition will only be applied to the added item(s). Positioner transitions will only affect the position (x,y) of items. - Added can mean that either the object has been created or reparented, and thus is now a child or the positioner, or that the object has had its opacity increased from zero, and thus is now visible. - - + An object is considered to be added to the positioner if it has been + created or reparented and thus is now a child or the positioner, or if the + object has had its opacity increased from zero, and thus is now + visible. */ /*! \qmlproperty Transition Flow::move @@ -965,14 +968,16 @@ QDeclarativeFlow::QDeclarativeFlow(QDeclarativeItem *parent) \qmlproperty enumeration Flow::flow This property holds the flow of the layout. - Possible values are \c Flow.LeftToRight (default) and \c Flow.TopToBottom. + Possible values are: - If \a flow is \c Flow.LeftToRight, the items are positioned next to + \list + \o Flow.LeftToRight (default) - Items are positioned next to to each other from left to right until the width of the Flow is exceeded, then wrapped to the next line. - If \a flow is \c Flow.TopToBottom, the items are positioned next to each + \o Flow.TopToBottom - Items are positioned next to each other from top to bottom until the height of the Flow is exceeded, then wrapped to the next column. + \endlist */ QDeclarativeFlow::Flow QDeclarativeFlow::flow() const { diff --git a/src/declarative/graphicsitems/qdeclarativerectangle.cpp b/src/declarative/graphicsitems/qdeclarativerectangle.cpp index de3dbcd..2756877 100644 --- a/src/declarative/graphicsitems/qdeclarativerectangle.cpp +++ b/src/declarative/graphicsitems/qdeclarativerectangle.cpp @@ -160,6 +160,8 @@ void QDeclarativeGradient::doUpdate() You can also create rounded rectangles using the \l radius property. \qml + import Qt 4.7 + Rectangle { width: 100 height: 100 @@ -206,7 +208,7 @@ void QDeclarativeRectangle::doUpdate() border smoothness. Also, the border is rendered evenly on either side of the rectangle's boundaries, and the spare pixel is rendered to the right and below the rectangle (as documented for QRect rendering). This can cause unintended effects if - \c border.width is 1 and the rectangle is \l{clip}{clipped} by a parent item: + \c border.width is 1 and the rectangle is \l{Item::clip}{clipped} by a parent item: \table \row diff --git a/src/declarative/graphicsitems/qdeclarativetext.cpp b/src/declarative/graphicsitems/qdeclarativetext.cpp index 55cef8b..f4722c3 100644 --- a/src/declarative/graphicsitems/qdeclarativetext.cpp +++ b/src/declarative/graphicsitems/qdeclarativetext.cpp @@ -119,6 +119,8 @@ QSet<QUrl> QTextDocumentWithImageResources::errors; A Text item can display both plain and rich text. For example: \qml + import Qt 4.7 + Text { text: "Hello World!"; font.family: "Helvetica"; font.pointSize: 24; color: "red" } Text { text: "<b>Hello</b> <i>World!</i>" } \endqml @@ -477,6 +479,7 @@ void QDeclarativeText::setHAlign(HAlignment align) return; d->hAlign = align; + update(); emit horizontalAlignmentChanged(align); } @@ -493,6 +496,7 @@ void QDeclarativeText::setVAlign(VAlignment align) return; d->vAlign = align; + update(); emit verticalAlignmentChanged(align); } diff --git a/src/declarative/graphicsitems/qdeclarativetextedit.cpp b/src/declarative/graphicsitems/qdeclarativetextedit.cpp index ffb7dfe..94973f2 100644 --- a/src/declarative/graphicsitems/qdeclarativetextedit.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextedit.cpp @@ -1056,6 +1056,7 @@ void QDeclarativeTextEdit::select(int start, int end) updateSelectionMarkers(); } +#ifndef QT_NO_CLIPBOARD /*! \qmlmethod TextEdit::cut() @@ -1088,7 +1089,7 @@ void QDeclarativeTextEdit::paste() Q_D(QDeclarativeTextEdit); d->control->paste(); } - +#endif // QT_NO_CLIPBOARD /*! \overload @@ -1106,9 +1107,15 @@ void QDeclarativeTextEdit::mousePressEvent(QGraphicsSceneMouseEvent *event) p = p->parentItem(); } setFocus(true); - if (hasFocus() == hadFocus && d->showInputPanelOnFocus && !isReadOnly()) { - // re-open input panel on press if already focused - openSoftwareInputPanel(); + if (d->showInputPanelOnFocus) { + if (hasFocus() && hadFocus && !isReadOnly()) { + // re-open input panel on press if already focused + openSoftwareInputPanel(); + } + } else { // show input panel on click + if (hasFocus() && !hadFocus) { + d->clickCausedFocus = true; + } } } if (event->type() != QEvent::GraphicsSceneMouseDoubleClick || d->selectByMouse) @@ -1125,6 +1132,17 @@ void QDeclarativeTextEdit::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { Q_D(QDeclarativeTextEdit); d->control->processEvent(event, QPointF(0, -d->yoff)); + if (!d->showInputPanelOnFocus) { // input panel on click + if (d->focusOnPress && !isReadOnly() && boundingRect().contains(event->pos())) { + if (QGraphicsView * view = qobject_cast<QGraphicsView*>(qApp->focusWidget())) { + if (view->scene() && view->scene() == scene()) { + qt_widget_private(view)->handleSoftwareInputPanel(event->button(), d->clickCausedFocus); + } + } + } + } + d->clickCausedFocus = false; + if (!event->isAccepted()) QDeclarativePaintedItem::mouseReleaseEvent(event); } @@ -1372,10 +1390,14 @@ void QDeclarativeTextEditPrivate::updateDefaultTextOption() customizing when you want the input keyboard to be shown and hidden in your application. - By default input panels are shown when TextEdit element gains focus and hidden - when the focus is lost. You can disable the automatic behavior by setting the - property showInputPanelOnFocus to false and use functions openSoftwareInputPanel() - and closeSoftwareInputPanel() to implement the behavior you want. + By default the opening of input panels follows the platform style. On Symbian^1 and + Symbian^3 -based devices the panels are opened by clicking TextEdit and need to be + manually closed by the user. On other platforms the panels are automatically opened + when TextEdit element gains focus and closed when the focus is lost. + + . You can disable the automatic behavior by setting the property \c focusOnPress to false + and use functions openSoftwareInputPanel() and closeSoftwareInputPanel() to implement + the behavior you want. Only relevant on platforms, which provide virtual keyboards. @@ -1384,12 +1406,19 @@ void QDeclarativeTextEditPrivate::updateDefaultTextOption() TextEdit { id: textEdit text: "Hello world!" - showInputPanelOnFocus: false + focusOnPress: false MouseArea { anchors.fill: parent - onClicked: textEdit.openSoftwareInputPanel() + onClicked: { + if (!textEdit.focus) { + textEdit.focus = true; + textEdit.openSoftwareInputPanel(); + } else { + textEdit.focus = false; + textEdit.closeSoftwareInputPanel(); + } + } } - onFocusChanged: if (!focus) closeSoftwareInputpanel() } \endcode */ @@ -1412,10 +1441,14 @@ void QDeclarativeTextEdit::openSoftwareInputPanel() for customizing when you want the input keyboard to be shown and hidden in your application. - By default input panels are shown when TextEdit element gains focus and hidden - when the focus is lost. You can disable the automatic behavior by setting the - property showInputPanelOnFocus to false and use functions openSoftwareInputPanel() - and closeSoftwareInputPanel() to implement the behavior you want. + By default the opening of input panels follows the platform style. On Symbian^1 and + Symbian^3 -based devices the panels are opened by clicking TextEdit and need to be + manually closed by the user. On other platforms the panels are automatically opened + when TextEdit element gains focus and closed when the focus is lost. + + . You can disable the automatic behavior by setting the property \c focusOnPress to false + and use functions openSoftwareInputPanel() and closeSoftwareInputPanel() to implement + the behavior you want. Only relevant on platforms, which provide virtual keyboards. @@ -1424,12 +1457,19 @@ void QDeclarativeTextEdit::openSoftwareInputPanel() TextEdit { id: textEdit text: "Hello world!" - showInputPanelOnFocus: false + focusOnPress: false MouseArea { anchors.fill: parent - onClicked: textEdit.openSoftwareInputPanel() + onClicked: { + if (!textEdit.focus) { + textEdit.focus = true; + textEdit.openSoftwareInputPanel(); + } else { + textEdit.focus = false; + textEdit.closeSoftwareInputPanel(); + } + } } - onFocusChanged: if (!focus) closeSoftwareInputpanel() } \endcode */ @@ -1445,35 +1485,13 @@ void QDeclarativeTextEdit::closeSoftwareInputPanel() } } -/*! - \qmlproperty bool TextEdit::showInputPanelOnFocus - Whether input panels are automatically shown when TextEdit element gains - focus and hidden when focus is lost. By default this is set to true. - - Only relevant on platforms, which provide virtual keyboards. -*/ -bool QDeclarativeTextEdit::showInputPanelOnFocus() const -{ - Q_D(const QDeclarativeTextEdit); - return d->showInputPanelOnFocus; -} - -void QDeclarativeTextEdit::setShowInputPanelOnFocus(bool showOnFocus) -{ - Q_D(QDeclarativeTextEdit); - if (d->showInputPanelOnFocus == showOnFocus) - return; - - d->showInputPanelOnFocus = showOnFocus; - - emit showInputPanelOnFocusChanged(d->showInputPanelOnFocus); -} - void QDeclarativeTextEdit::focusInEvent(QFocusEvent *event) { Q_D(const QDeclarativeTextEdit); - if (d->showInputPanelOnFocus && !isReadOnly() && event->reason() != Qt::ActiveWindowFocusReason) { - openSoftwareInputPanel(); + if (d->showInputPanelOnFocus) { + if (d->focusOnPress && !isReadOnly() && event->reason() != Qt::ActiveWindowFocusReason) { + openSoftwareInputPanel(); + } } QDeclarativePaintedItem::focusInEvent(event); } @@ -1481,8 +1499,10 @@ void QDeclarativeTextEdit::focusInEvent(QFocusEvent *event) void QDeclarativeTextEdit::focusOutEvent(QFocusEvent *event) { Q_D(const QDeclarativeTextEdit); - if (d->showInputPanelOnFocus && !isReadOnly()) { - closeSoftwareInputPanel(); + if (d->showInputPanelOnFocus) { + if (d->focusOnPress && !isReadOnly()) { + closeSoftwareInputPanel(); + } } QDeclarativePaintedItem::focusOutEvent(event); } diff --git a/src/declarative/graphicsitems/qdeclarativetextedit_p.h b/src/declarative/graphicsitems/qdeclarativetextedit_p.h index 3abfc35..0ecb2f3 100644 --- a/src/declarative/graphicsitems/qdeclarativetextedit_p.h +++ b/src/declarative/graphicsitems/qdeclarativetextedit_p.h @@ -86,7 +86,6 @@ class Q_DECLARATIVE_EXPORT QDeclarativeTextEdit : public QDeclarativePaintedItem Q_PROPERTY(int selectionEnd READ selectionEnd NOTIFY selectionEndChanged) Q_PROPERTY(QString selectedText READ selectedText NOTIFY selectionChanged) Q_PROPERTY(bool focusOnPress READ focusOnPress WRITE setFocusOnPress NOTIFY focusOnPressChanged) - Q_PROPERTY(bool showInputPanelOnFocus READ showInputPanelOnFocus WRITE setShowInputPanelOnFocus NOTIFY showInputPanelOnFocusChanged) Q_PROPERTY(bool persistentSelection READ persistentSelection WRITE setPersistentSelection NOTIFY persistentSelectionChanged) Q_PROPERTY(qreal textMargin READ textMargin WRITE setTextMargin NOTIFY textMarginChanged) Q_PROPERTY(Qt::InputMethodHints inputMethodHints READ inputMethodHints WRITE setInputMethodHints) @@ -167,9 +166,6 @@ public: bool focusOnPress() const; void setFocusOnPress(bool on); - bool showInputPanelOnFocus() const; - void setShowInputPanelOnFocus(bool showOnFocus); - bool persistentSelection() const; void setPersistentSelection(bool on); @@ -222,15 +218,16 @@ Q_SIGNALS: void persistentSelectionChanged(bool isPersistentSelection); void textMarginChanged(qreal textMargin); void selectByMouseChanged(bool selectByMouse); - void showInputPanelOnFocusChanged(bool showOnFocus); public Q_SLOTS: void selectAll(); void selectWord(); void select(int start, int end); +#ifndef QT_NO_CLIPBOARD void cut(); void copy(); void paste(); +#endif private Q_SLOTS: void updateImgCache(const QRectF &rect); diff --git a/src/declarative/graphicsitems/qdeclarativetextedit_p_p.h b/src/declarative/graphicsitems/qdeclarativetextedit_p_p.h index 8e1d630..4092e65 100644 --- a/src/declarative/graphicsitems/qdeclarativetextedit_p_p.h +++ b/src/declarative/graphicsitems/qdeclarativetextedit_p_p.h @@ -70,12 +70,17 @@ public: QDeclarativeTextEditPrivate() : color("black"), hAlign(QDeclarativeTextEdit::AlignLeft), vAlign(QDeclarativeTextEdit::AlignTop), imgDirty(true), dirty(false), richText(false), cursorVisible(false), focusOnPress(true), - showInputPanelOnFocus(true), persistentSelection(true), textMargin(0.0), lastSelectionStart(0), - lastSelectionEnd(0), cursorComponent(0), cursor(0), format(QDeclarativeTextEdit::AutoText), - document(0), wrapMode(QDeclarativeTextEdit::NoWrap), + showInputPanelOnFocus(true), clickCausedFocus(false), persistentSelection(true), textMargin(0.0), + lastSelectionStart(0), lastSelectionEnd(0), cursorComponent(0), cursor(0), + format(QDeclarativeTextEdit::AutoText), document(0), wrapMode(QDeclarativeTextEdit::NoWrap), selectByMouse(false), yoff(0) { +#ifdef Q_OS_SYMBIAN + if (QSysInfo::symbianVersion() == QSysInfo::SV_SF_1 || QSysInfo::symbianVersion() == QSysInfo::SV_SF_3) { + showInputPanelOnFocus = false; + } +#endif } void init(); @@ -102,6 +107,7 @@ public: bool cursorVisible : 1; bool focusOnPress : 1; bool showInputPanelOnFocus : 1; + bool clickCausedFocus : 1; bool persistentSelection : 1; qreal textMargin; int lastSelectionStart; diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp index 7b96c0c..1202101 100644 --- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp @@ -891,6 +891,22 @@ void QDeclarativeTextInput::keyPressEvent(QKeyEvent* ev) QDeclarativePaintedItem::keyPressEvent(ev); } +/*! +\overload +Handles the given mouse \a event. +*/ +void QDeclarativeTextInput::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +{ + Q_D(QDeclarativeTextInput); + if (d->selectByMouse) { + int cursor = d->xToPos(event->pos().x()); + d->control->selectWordAtPos(cursor); + event->setAccepted(true); + } else { + QDeclarativePaintedItem::mouseDoubleClickEvent(event); + } +} + void QDeclarativeTextInput::mousePressEvent(QGraphicsSceneMouseEvent *event) { Q_D(QDeclarativeTextInput); @@ -903,12 +919,17 @@ void QDeclarativeTextInput::mousePressEvent(QGraphicsSceneMouseEvent *event) p = p->parentItem(); } setFocus(true); - if (hasFocus() == hadFocus && d->showInputPanelOnFocus && !isReadOnly()) { - // re-open input panel on press w already focused - openSoftwareInputPanel(); + if (d->showInputPanelOnFocus) { + if (hasFocus() && hadFocus && !isReadOnly()) { + // re-open input panel on press if already focused + openSoftwareInputPanel(); + } + } else { // show input panel on click + if (hasFocus() && !hadFocus) { + d->clickCausedFocus = true; + } } } - bool mark = event->modifiers() & Qt::ShiftModifier; int cursor = d->xToPos(event->pos().x()); d->control->moveCursor(cursor, mark); @@ -933,6 +954,16 @@ Handles the given mouse \a event. void QDeclarativeTextInput::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { Q_D(QDeclarativeTextInput); + if (!d->showInputPanelOnFocus) { // input panel on click + if (d->focusOnPress && !isReadOnly() && boundingRect().contains(event->pos())) { + if (QGraphicsView * view = qobject_cast<QGraphicsView*>(qApp->focusWidget())) { + if (view->scene() && view->scene() == scene()) { + qt_widget_private(view)->handleSoftwareInputPanel(event->button(), d->clickCausedFocus); + } + } + } + } + d->clickCausedFocus = false; d->control->processEvent(event); if (!event->isAccepted()) QDeclarativePaintedItem::mouseReleaseEvent(event); @@ -949,10 +980,9 @@ bool QDeclarativeTextInput::event(QEvent* ev) case QEvent::GraphicsSceneMousePress: case QEvent::GraphicsSceneMouseMove: case QEvent::GraphicsSceneMouseRelease: + case QEvent::GraphicsSceneMouseDoubleClick: break; default: - if (ev->type() == QEvent::GraphicsSceneMouseDoubleClick && !d->selectByMouse) - break; handled = d->control->processEvent(ev); if (ev->type() == QEvent::InputMethod) updateSize(); @@ -1203,26 +1233,37 @@ void QDeclarativeTextInput::moveCursorSelection(int position) customizing when you want the input keyboard to be shown and hidden in your application. - By default input panels are shown when TextInput element gains focus and hidden - when the focus is lost. You can disable the automatic behavior by setting the - property showInputPanelOnFocus to false and use functions openSoftwareInputPanel() - and closeSoftwareInputPanel() to implement the behavior you want. + By default the opening of input panels follows the platform style. On Symbian^1 and + Symbian^3 -based devices the panels are opened by clicking TextInput and need to be + manually closed by the user. On other platforms the panels are automatically opened + when TextInput element gains focus and closed when the focus is lost. + + . You can disable the automatic behavior by setting the property \c focusOnPress to false + and use functions openSoftwareInputPanel() and closeSoftwareInputPanel() to implement + the behavior you want. Only relevant on platforms, which provide virtual keyboards. - \code + \qml import Qt 4.7 TextInput { id: textInput text: "Hello world!" - showInputPanelOnFocus: false + focusOnPress: false MouseArea { anchors.fill: parent - onClicked: textInput.openSoftwareInputPanel() + onClicked: { + if (!textInput.focus) { + textInput.focus = true; + textInput.openSoftwareInputPanel(); + } else { + textInput.focus = false; + textInput.closeSoftwareInputPanel(); + } + } } - onFocusChanged: if (!focus) closeSoftwareInputPanel() } - \endcode + \endqml */ void QDeclarativeTextInput::openSoftwareInputPanel() { @@ -1243,26 +1284,37 @@ void QDeclarativeTextInput::openSoftwareInputPanel() for customizing when you want the input keyboard to be shown and hidden in your application. - By default input panels are shown when TextInput element gains focus and hidden - when the focus is lost. You can disable the automatic behavior by setting the - property showInputPanelOnFocus to false and use functions openSoftwareInputPanel() - and closeSoftwareInputPanel() to implement the behavior you want. + By default the opening of input panels follows the platform style. On Symbian^1 and + Symbian^3 -based devices the panels are opened by clicking TextInput and need to be + manually closed by the user. On other platforms the panels are automatically opened + when TextInput element gains focus and closed when the focus is lost. + + . You can disable the automatic behavior by setting the property \c focusOnPress to false + and use functions openSoftwareInputPanel() and closeSoftwareInputPanel() to implement + the behavior you want. Only relevant on platforms, which provide virtual keyboards. - \code + \qml import Qt 4.7 TextInput { id: textInput text: "Hello world!" - showInputPanelOnFocus: false + focusOnPress: false MouseArea { anchors.fill: parent - onClicked: textInput.openSoftwareInputPanel() + onClicked: { + if (!textInput.focus) { + textInput.focus = true; + textInput.openSoftwareInputPanel(); + } else { + textInput.focus = false; + textInput.closeSoftwareInputPanel(); + } + } } - onFocusChanged: if (!focus) closeSoftwareInputPanel() } - \endcode + \endqml */ void QDeclarativeTextInput::closeSoftwareInputPanel() { @@ -1277,35 +1329,13 @@ void QDeclarativeTextInput::closeSoftwareInputPanel() } } -/*! - \qmlproperty bool TextInput::showInputPanelOnFocus - Whether input panels are automatically shown when TextInput element gains - focus and hidden when focus is lost. By default this is set to true. - - Only relevant on platforms, which provide virtual keyboards. -*/ -bool QDeclarativeTextInput::showInputPanelOnFocus() const -{ - Q_D(const QDeclarativeTextInput); - return d->showInputPanelOnFocus; -} - -void QDeclarativeTextInput::setShowInputPanelOnFocus(bool showOnFocus) -{ - Q_D(QDeclarativeTextInput); - if (d->showInputPanelOnFocus == showOnFocus) - return; - - d->showInputPanelOnFocus = showOnFocus; - - emit showInputPanelOnFocusChanged(d->showInputPanelOnFocus); -} - void QDeclarativeTextInput::focusInEvent(QFocusEvent *event) { Q_D(const QDeclarativeTextInput); - if (d->showInputPanelOnFocus && !isReadOnly() && event->reason() != Qt::ActiveWindowFocusReason) { - openSoftwareInputPanel(); + if (d->showInputPanelOnFocus) { + if (d->focusOnPress && !isReadOnly() && event->reason() != Qt::ActiveWindowFocusReason) { + openSoftwareInputPanel(); + } } QDeclarativePaintedItem::focusInEvent(event); } @@ -1313,8 +1343,10 @@ void QDeclarativeTextInput::focusInEvent(QFocusEvent *event) void QDeclarativeTextInput::focusOutEvent(QFocusEvent *event) { Q_D(const QDeclarativeTextInput); - if (d->showInputPanelOnFocus && !isReadOnly()) { - closeSoftwareInputPanel(); + if (d->showInputPanelOnFocus) { + if (d->focusOnPress && !isReadOnly()) { + closeSoftwareInputPanel(); + } } QDeclarativePaintedItem::focusOutEvent(event); } diff --git a/src/declarative/graphicsitems/qdeclarativetextinput_p.h b/src/declarative/graphicsitems/qdeclarativetextinput_p.h index 6bc6fc4..e34634a 100644 --- a/src/declarative/graphicsitems/qdeclarativetextinput_p.h +++ b/src/declarative/graphicsitems/qdeclarativetextinput_p.h @@ -88,7 +88,6 @@ class Q_DECLARATIVE_EXPORT QDeclarativeTextInput : public QDeclarativePaintedIte Q_PROPERTY(bool acceptableInput READ hasAcceptableInput NOTIFY acceptableInputChanged) Q_PROPERTY(EchoMode echoMode READ echoMode WRITE setEchoMode NOTIFY echoModeChanged) Q_PROPERTY(bool focusOnPress READ focusOnPress WRITE setFocusOnPress NOTIFY focusOnPressChanged) - Q_PROPERTY(bool showInputPanelOnFocus READ showInputPanelOnFocus WRITE setShowInputPanelOnFocus NOTIFY showInputPanelOnFocusChanged) Q_PROPERTY(QString passwordCharacter READ passwordCharacter WRITE setPasswordCharacter NOTIFY passwordCharacterChanged) Q_PROPERTY(QString displayText READ displayText NOTIFY displayTextChanged) Q_PROPERTY(bool autoScroll READ autoScroll WRITE setAutoScroll NOTIFY autoScrollChanged) @@ -177,9 +176,6 @@ public: bool focusOnPress() const; void setFocusOnPress(bool); - bool showInputPanelOnFocus() const; - void setShowInputPanelOnFocus(bool showOnFocus); - bool autoScroll() const; void setAutoScroll(bool); @@ -216,7 +212,6 @@ Q_SIGNALS: void focusOnPressChanged(bool focusOnPress); void autoScrollChanged(bool autoScroll); void selectByMouseChanged(bool selectByMouse); - void showInputPanelOnFocusChanged(bool showOnFocus); protected: virtual void geometryChanged(const QRectF &newGeometry, @@ -225,6 +220,7 @@ protected: void mousePressEvent(QGraphicsSceneMouseEvent *event); void mouseMoveEvent(QGraphicsSceneMouseEvent *event); void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); void keyPressEvent(QKeyEvent* ev); bool event(QEvent *e); void focusInEvent(QFocusEvent *event); diff --git a/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h b/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h index f44d014..6865147 100644 --- a/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h +++ b/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h @@ -72,9 +72,15 @@ public: color((QRgb)0), style(QDeclarativeText::Normal), styleColor((QRgb)0), hAlign(QDeclarativeTextInput::AlignLeft), hscroll(0), oldScroll(0), focused(false), focusOnPress(true), - showInputPanelOnFocus(true), cursorVisible(false), autoScroll(true), - selectByMouse(false) + showInputPanelOnFocus(true), clickCausedFocus(false), cursorVisible(false), + autoScroll(true), selectByMouse(false) { +#ifdef Q_OS_SYMBIAN + if (QSysInfo::symbianVersion() == QSysInfo::SV_SF_1 || QSysInfo::symbianVersion() == QSysInfo::SV_SF_3) { + showInputPanelOnFocus = false; + } +#endif + } ~QDeclarativeTextInputPrivate() @@ -116,6 +122,7 @@ public: bool focused; bool focusOnPress; bool showInputPanelOnFocus; + bool clickCausedFocus; bool cursorVisible; bool autoScroll; bool selectByMouse; diff --git a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp index c6ee46f..2a88a80 100644 --- a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp +++ b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp @@ -119,11 +119,11 @@ public: visual delegate (items). An item can determine its index within the - model via the VisualItemModel.index attached property. + model via the \c VisualItemModel.index attached property. The example below places three colored rectangles in a ListView. \code - Item { + Rectangle { VisualItemModel { id: itemModel Rectangle { height: 30; width: 80; color: "red" } @@ -137,6 +137,8 @@ public: } } \endcode + + \image visualitemmodel.png */ QDeclarativeVisualItemModel::QDeclarativeVisualItemModel(QObject *parent) : QDeclarativeVisualModel(*(new QDeclarativeVisualItemModelPrivate), parent) diff --git a/src/declarative/qml/qdeclarative.h b/src/declarative/qml/qdeclarative.h index d75f0a8..53ff51c 100644 --- a/src/declarative/qml/qdeclarative.h +++ b/src/declarative/qml/qdeclarative.h @@ -67,7 +67,7 @@ QT_BEGIN_HEADER QML_DECLARE_TYPE_HASMETATYPE(INTERFACE) enum { /* TYPEINFO flags */ - QML_HAS_ATTACHED_PROPERTIES = 0x01, + QML_HAS_ATTACHED_PROPERTIES = 0x01 }; #define QML_DECLARE_TYPEINFO(TYPE, FLAGS) \ diff --git a/src/declarative/qml/qdeclarativecontext_p.h b/src/declarative/qml/qdeclarativecontext_p.h index 6b6cd0a..1f5aaf1 100644 --- a/src/declarative/qml/qdeclarativecontext_p.h +++ b/src/declarative/qml/qdeclarativecontext_p.h @@ -108,7 +108,7 @@ public: class QDeclarativeComponentAttached; class QDeclarativeGuardedContextData; -class QDeclarativeContextData +class Q_AUTOTEST_EXPORT QDeclarativeContextData { public: QDeclarativeContextData(); diff --git a/src/declarative/qml/qdeclarativeinstruction_p.h b/src/declarative/qml/qdeclarativeinstruction_p.h index dc5f2f8..4627eb3 100644 --- a/src/declarative/qml/qdeclarativeinstruction_p.h +++ b/src/declarative/qml/qdeclarativeinstruction_p.h @@ -158,7 +158,7 @@ public: // // Deferred creation // - Defer, /* defer */ + Defer /* defer */ }; QDeclarativeInstruction() : line(0) {} diff --git a/src/declarative/qml/qdeclarativepropertycache_p.h b/src/declarative/qml/qdeclarativepropertycache_p.h index b01e5cc..72cfeba 100644 --- a/src/declarative/qml/qdeclarativepropertycache_p.h +++ b/src/declarative/qml/qdeclarativepropertycache_p.h @@ -65,7 +65,7 @@ QT_BEGIN_NAMESPACE class QDeclarativeEngine; class QMetaProperty; -class QDeclarativePropertyCache : public QDeclarativeRefCount, public QDeclarativeCleanup +class Q_AUTOTEST_EXPORT QDeclarativePropertyCache : public QDeclarativeRefCount, public QDeclarativeCleanup { public: QDeclarativePropertyCache(QDeclarativeEngine *); diff --git a/src/declarative/qml/qdeclarativevaluetype_p.h b/src/declarative/qml/qdeclarativevaluetype_p.h index 476c73d..3eaecc1 100644 --- a/src/declarative/qml/qdeclarativevaluetype_p.h +++ b/src/declarative/qml/qdeclarativevaluetype_p.h @@ -446,7 +446,7 @@ public: InBounce = QEasingCurve::InBounce, OutBounce = QEasingCurve::OutBounce, InOutBounce = QEasingCurve::InOutBounce, OutInBounce = QEasingCurve::OutInBounce, InCurve = QEasingCurve::InCurve, OutCurve = QEasingCurve::OutCurve, - SineCurve = QEasingCurve::SineCurve, CosineCurve = QEasingCurve::CosineCurve, + SineCurve = QEasingCurve::SineCurve, CosineCurve = QEasingCurve::CosineCurve }; QDeclarativeEasingValueType(QObject *parent = 0); diff --git a/src/declarative/qml/qdeclarativeworkerscript.cpp b/src/declarative/qml/qdeclarativeworkerscript.cpp index 2ca030e..e0ee84f 100644 --- a/src/declarative/qml/qdeclarativeworkerscript.cpp +++ b/src/declarative/qml/qdeclarativeworkerscript.cpp @@ -521,7 +521,7 @@ void QDeclarativeWorkerScriptEngine::run() that the main GUI thread is not blocked. Messages can be passed between the new thread and the parent thread - using sendMessage() and the onMessage() handler. + using \l sendMessage() and the \l {WorkerScript::onMessage}{onMessage()} handler. Here is an example: @@ -555,7 +555,7 @@ QDeclarativeWorkerScript::~QDeclarativeWorkerScript() /*! \qmlproperty url WorkerScript::source - This holds the url of the javascript file that implements the + This holds the url of the JavaScript file that implements the \tt WorkerScript.onMessage() handler for threaded operations. */ QUrl QDeclarativeWorkerScript::source() const @@ -576,7 +576,7 @@ void QDeclarativeWorkerScript::setSource(const QUrl &source) emit sourceChanged(); } -/* +/*! \qmlmethod WorkerScript::sendMessage(jsobject message) Sends the given \a message to a worker script handler in another diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp index de1c0cb..0eae136 100644 --- a/src/declarative/util/qdeclarativeanimation.cpp +++ b/src/declarative/util/qdeclarativeanimation.cpp @@ -557,6 +557,8 @@ void QDeclarativeAbstractAnimation::timelineComplete() NumberAnimation { ... duration: 200 } } \endcode + + \sa {QML Animation}, {declarative/animation/basics}{Animation basics example} */ /*! \internal @@ -627,6 +629,8 @@ QAbstractAnimation *QDeclarativePauseAnimation::qtAnimation() When used in a transition, ColorAnimation will by default animate all properties of type color that are changing. If a property or properties are explicitly set for the animation, then those will be used instead. + + \sa {QML Animation}, {declarative/animation/basics}{Animation basics example} */ /*! \internal @@ -1082,11 +1086,13 @@ void QDeclarativePropertyAction::transition(QDeclarativeStateActions &actions, \inherits PropertyAnimation \brief The NumberAnimation element allows you to animate changes in properties of type qreal. - Animate a set of properties over 200ms, from their values in the start state to + For example, to animate a set of properties over 200ms, from their values in the start state to their values in the end state of the transition: \code NumberAnimation { properties: "x,y,scale"; duration: 200 } \endcode + + \sa {QML Animation}, {declarative/animation/basics}{Animation basics example} */ /*! @@ -1156,6 +1162,8 @@ void QDeclarativeNumberAnimation::setTo(qreal t) \since 4.7 \inherits PropertyAnimation \brief The Vector3dAnimation element allows you to animate changes in properties of type QVector3d. + + \sa {QML Animation}, {declarative/animation/basics}{Animation basics example} */ /*! @@ -1224,7 +1232,8 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t) When used in a transition RotationAnimation will rotate all properties named "rotation" or "angle". You can override this by providing - your own properties via \c properties or \c property. + your own properties via \l {PropertyAnimation::properties}{properties} or + \l {PropertyAnimation::property}{property}. In the following example we use RotationAnimation to animate the rotation between states via the shortest path. @@ -1238,6 +1247,8 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t) RotationAnimation { direction: RotationAnimation.Shortest } } \endqml + + \sa {QML Animation}, {declarative/animation/basics}{Animation basics example} */ /*! @@ -1446,7 +1457,7 @@ QDeclarativeListProperty<QDeclarativeAbstractAnimation> QDeclarativeAnimationGro } \endcode - \sa ParallelAnimation + \sa ParallelAnimation, {QML Animation}, {declarative/animation/basics}{Animation basics example} */ QDeclarativeSequentialAnimation::QDeclarativeSequentialAnimation(QObject *parent) : @@ -1508,7 +1519,7 @@ void QDeclarativeSequentialAnimation::transition(QDeclarativeStateActions &actio } \endcode - \sa SequentialAnimation + \sa SequentialAnimation, {QML Animation}, {declarative/animation/basics}{Animation basics example} */ /*! \internal @@ -1657,6 +1668,8 @@ void QDeclarativePropertyAnimationPrivate::convertVariant(QVariant &variant, int Depending on how the animation is used, the set of properties normally used will be different. For more information see the individual property documentation, as well as the \l{QML Animation} introduction. + + \sa {QML Animation}, {declarative/animation/basics}{Animation basics example} */ QDeclarativePropertyAnimation::QDeclarativePropertyAnimation(QObject *parent) @@ -2319,6 +2332,8 @@ void QDeclarativePropertyAnimation::transition(QDeclarativeStateActions &actions When used in a transition, ParentAnimation will by default animate all ParentChanges. + + \sa {QML Animation}, {declarative/animation/basics}{Animation basics example} */ /*! diff --git a/src/declarative/util/qdeclarativefontloader.cpp b/src/declarative/util/qdeclarativefontloader.cpp index c73f827..3c2e239 100644 --- a/src/declarative/util/qdeclarativefontloader.cpp +++ b/src/declarative/util/qdeclarativefontloader.cpp @@ -83,6 +83,8 @@ public: Example: \qml + import Qt 4.7 + FontLoader { id: fixedFont; name: "Courier" } FontLoader { id: webFont; source: "http://www.mysite.com/myfont.ttf" } @@ -183,15 +185,26 @@ void QDeclarativeFontLoader::setName(const QString &name) \o FontLoader.Error - an error occurred while loading the font \endlist - Note that a change in the status property does not cause anything to happen - (although it reflects what has happened to the font loader internally). If you wish - to react to the change in status you need to do it yourself, for example in one - of the following ways: - \list - \o Create a state, so that a state change occurs, e.g. State{name: 'loaded'; when: loader.status = FontLoader.Ready;} - \o Do something inside the onStatusChanged signal handler, e.g. FontLoader{id: loader; onStatusChanged: if(loader.status == FontLoader.Ready) console.log('Loaded');} - \o Bind to the status variable somewhere, e.g. Text{text: if(loader.status!=FontLoader.Ready){'Not Loaded';}else{'Loaded';}} - \endlist + Use this status to provide an update or respond to the status change in some way. + For example, you could: + + \e {Trigger a state change:} + \qml + State { name: 'loaded'; when: loader.status = FontLoader.Ready } + \endqml + + \e {Implement an \c onStatusChanged signal handler:} + \qml + FontLoader { + id: loader + onStatusChanged: if (loader.status == FontLoader.Ready) console.log('Loaded') + } + \endqml + + \e {Bind to the status value:} + \qml + Text { text: loader.status != FontLoader.Ready ? 'Not Loaded' : 'Loaded' } + \endqml */ QDeclarativeFontLoader::Status QDeclarativeFontLoader::status() const { diff --git a/src/declarative/util/qdeclarativepackage_p.h b/src/declarative/util/qdeclarativepackage_p.h index 87d9b80..57d9c22 100644 --- a/src/declarative/util/qdeclarativepackage_p.h +++ b/src/declarative/util/qdeclarativepackage_p.h @@ -58,7 +58,7 @@ QT_MODULE(Declarative) class QDeclarativePackagePrivate; class QDeclarativePackageAttached; -class QDeclarativePackage : public QObject +class Q_AUTOTEST_EXPORT QDeclarativePackage : public QObject { Q_OBJECT Q_DECLARE_PRIVATE(QDeclarativePackage) diff --git a/src/declarative/util/qdeclarativepropertychanges.cpp b/src/declarative/util/qdeclarativepropertychanges.cpp index 08f4750..e98afeb 100644 --- a/src/declarative/util/qdeclarativepropertychanges.cpp +++ b/src/declarative/util/qdeclarativepropertychanges.cpp @@ -66,7 +66,7 @@ QT_BEGIN_NAMESPACE PropertyChanges provides a state change that modifies the properties of an item. - Here is a property change that modifies the text and color of a Text element + Here is a property change that modifies the text and color of a \l Text element when it is clicked: \qml diff --git a/src/declarative/util/qdeclarativesmoothedanimation.cpp b/src/declarative/util/qdeclarativesmoothedanimation.cpp index bd48ef0..6b6df4d 100644 --- a/src/declarative/util/qdeclarativesmoothedanimation.cpp +++ b/src/declarative/util/qdeclarativesmoothedanimation.cpp @@ -307,7 +307,7 @@ Rectangle { set to a value such as 0.5 units/second. Animating from 0 to 1.0 with a velocity of 0.5 will take 2000 ms to complete. - \sa SpringFollow + \sa SpringFollow, {QML Animation}, {declarative/animation/basics}{Animation basics example} */ QDeclarativeSmoothedAnimation::QDeclarativeSmoothedAnimation(QObject *parent) diff --git a/src/declarative/util/qdeclarativesmoothedanimation_p_p.h b/src/declarative/util/qdeclarativesmoothedanimation_p_p.h index 81cd229..8cdbea2 100644 --- a/src/declarative/util/qdeclarativesmoothedanimation_p_p.h +++ b/src/declarative/util/qdeclarativesmoothedanimation_p_p.h @@ -65,7 +65,7 @@ QT_BEGIN_NAMESPACE -class QSmoothedAnimation : public QAbstractAnimation +class Q_AUTOTEST_EXPORT QSmoothedAnimation : public QAbstractAnimation { public: QSmoothedAnimation(QObject *parent=0); diff --git a/src/declarative/util/qdeclarativestate_p.h b/src/declarative/util/qdeclarativestate_p.h index 25715c6..37b24cb 100644 --- a/src/declarative/util/qdeclarativestate_p.h +++ b/src/declarative/util/qdeclarativestate_p.h @@ -84,7 +84,7 @@ public: void deleteFromBinding(); }; -class QDeclarativeActionEvent +class Q_AUTOTEST_EXPORT QDeclarativeActionEvent { public: virtual ~QDeclarativeActionEvent(); diff --git a/src/declarative/util/qdeclarativetimeline_p_p.h b/src/declarative/util/qdeclarativetimeline_p_p.h index 598c897..61f6bcd 100644 --- a/src/declarative/util/qdeclarativetimeline_p_p.h +++ b/src/declarative/util/qdeclarativetimeline_p_p.h @@ -63,7 +63,7 @@ class QDeclarativeTimeLineValue; class QDeclarativeTimeLineCallback; struct QDeclarativeTimeLinePrivate; class QDeclarativeTimeLineObject; -class QDeclarativeTimeLine : public QAbstractAnimation +class Q_AUTOTEST_EXPORT QDeclarativeTimeLine : public QAbstractAnimation { Q_OBJECT public: @@ -117,7 +117,7 @@ private: QDeclarativeTimeLinePrivate *d; }; -class QDeclarativeTimeLineObject +class Q_AUTOTEST_EXPORT QDeclarativeTimeLineObject { public: QDeclarativeTimeLineObject(); @@ -129,7 +129,7 @@ protected: QDeclarativeTimeLine *_t; }; -class QDeclarativeTimeLineValue : public QDeclarativeTimeLineObject +class Q_AUTOTEST_EXPORT QDeclarativeTimeLineValue : public QDeclarativeTimeLineObject { public: QDeclarativeTimeLineValue(qreal v = 0.) : _v(v) {} @@ -147,7 +147,7 @@ private: qreal _v; }; -class QDeclarativeTimeLineCallback +class Q_AUTOTEST_EXPORT QDeclarativeTimeLineCallback { public: typedef void (*Callback)(void *); diff --git a/src/declarative/util/qdeclarativetimer.cpp b/src/declarative/util/qdeclarativetimer.cpp index 53a9d83..9e18eb5 100644 --- a/src/declarative/util/qdeclarativetimer.cpp +++ b/src/declarative/util/qdeclarativetimer.cpp @@ -80,17 +80,22 @@ public: the text every 500 milliseconds: \qml - Timer { - interval: 500; running: true; repeat: true - onTriggered: time.text = Date().toString() - } - Text { - id: time + import Qt 4.7 + + Item { + Timer { + interval: 500; running: true; repeat: true + onTriggered: time.text = Date().toString() + } + + Text { + id: time + } } \endqml - QDeclarativeTimer is synchronized with the animation timer. Since the animation - timer is usually set to 60fps, the resolution of QDeclarativeTimer will be + The Timer element is synchronized with the animation timer. Since the animation + timer is usually set to 60fps, the resolution of Timer will be at best 16ms. If the Timer is running and one of its properties is changed, the @@ -98,8 +103,6 @@ public: 1000ms has its \e repeat property changed 500ms after starting, the elapsed time will be reset to 0, and the Timer will be triggered 1000ms later. - - \sa {QtDeclarative} */ QDeclarativeTimer::QDeclarativeTimer(QObject *parent) diff --git a/src/declarative/util/qdeclarativetransitionmanager_p_p.h b/src/declarative/util/qdeclarativetransitionmanager_p_p.h index 2e23898..75d11a9 100644 --- a/src/declarative/util/qdeclarativetransitionmanager_p_p.h +++ b/src/declarative/util/qdeclarativetransitionmanager_p_p.h @@ -59,7 +59,7 @@ QT_BEGIN_NAMESPACE class QDeclarativeStatePrivate; class QDeclarativeTransitionManagerPrivate; -class QDeclarativeTransitionManager +class Q_AUTOTEST_EXPORT QDeclarativeTransitionManager { public: QDeclarativeTransitionManager(); diff --git a/src/gui/embedded/qwsmanager_qws.cpp b/src/gui/embedded/qwsmanager_qws.cpp index 79076c5..b0259b9 100644 --- a/src/gui/embedded/qwsmanager_qws.cpp +++ b/src/gui/embedded/qwsmanager_qws.cpp @@ -394,7 +394,7 @@ void QWSManagerPrivate::dirtyRegion(int decorationRegion, const QRegion &clip) { QTLWExtra *topextra = managed->d_func()->extra->topextra; - QWidgetBackingStore *bs = topextra->backingStore; + QWidgetBackingStore *bs = topextra->backingStore.data(); const bool pendingUpdateRequest = bs->isDirty(); if (decorationRegion == QDecoration::All) { diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index b867345..74e5e73 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -1427,12 +1427,14 @@ QGraphicsItem::~QGraphicsItem() d_ptr->inDestructor = 1; d_ptr->removeExtraItemCache(); +#ifndef QT_NO_GESTURES if (d_ptr->isObject && !d_ptr->gestureContext.isEmpty()) { QGraphicsObject *o = static_cast<QGraphicsObject *>(this); QGestureManager *manager = QGestureManager::instance(); foreach (Qt::GestureType type, d_ptr->gestureContext.keys()) manager->cleanupCachedGestures(o, type); } +#endif clearFocus(); @@ -5687,18 +5689,20 @@ void QGraphicsItem::scroll(qreal dx, qreal dy, const QRectF &rect) return; } - // Find pixmap in cache, then remove to avoid deep copy when modifying.s + // Find pixmap in cache. QPixmap cachedPixmap; if (!QPixmapCache::find(cache->key, &cachedPixmap)) { update(rect); return; } - QPixmapCache::remove(cache->key); QRect scrollRect = (rect.isNull() ? boundingRect() : rect).toAlignedRect(); if (!scrollRect.intersects(cache->boundingRect)) return; // Nothing to scroll. + // Remove from cache to avoid deep copy when modifying. + QPixmapCache::remove(cache->key); + QRegion exposed; cachedPixmap.scroll(dx, dy, scrollRect.translated(-cache->boundingRect.topLeft()), &exposed); @@ -7569,6 +7573,7 @@ QGraphicsObject::QGraphicsObject(QGraphicsItemPrivate &dd, QGraphicsItem *parent QGraphicsItem::d_ptr->isObject = true; } +#ifndef QT_NO_GESTURES /*! Subscribes the graphics object to the given \a gesture with specific \a flags. @@ -7592,6 +7597,8 @@ void QGraphicsObject::ungrabGesture(Qt::GestureType gesture) if (QGraphicsItem::d_ptr->gestureContext.remove(gesture) && QGraphicsItem::d_ptr->scene) QGraphicsItem::d_ptr->scene->d_func()->ungrabGesture(this, gesture); } +#endif // QT_NO_GESTURES + /*! Updates the item's micro focus. This is slot for convenience. diff --git a/src/gui/graphicsview/qgraphicsitem.h b/src/gui/graphicsview/qgraphicsitem.h index 9891af3..d7d5332 100644 --- a/src/gui/graphicsview/qgraphicsitem.h +++ b/src/gui/graphicsview/qgraphicsitem.h @@ -485,7 +485,9 @@ private: friend class QGraphicsSceneBspTreeIndexPrivate; friend class QGraphicsItemEffectSourcePrivate; friend class QGraphicsTransformPrivate; +#ifndef QT_NO_GESTURES friend class QGestureManager; +#endif friend class ::tst_QGraphicsItem; friend bool qt_closestLeaf(const QGraphicsItem *, const QGraphicsItem *); friend bool qt_closestItemFirst(const QGraphicsItem *, const QGraphicsItem *); @@ -572,8 +574,10 @@ public: using QObject::children; #endif +#ifndef QT_NO_GESTURES void grabGesture(Qt::GestureType type, Qt::GestureFlags flags = Qt::GestureFlags()); void ungrabGesture(Qt::GestureType type); +#endif protected Q_SLOTS: void updateMicroFocus(); diff --git a/src/gui/graphicsview/qgraphicsitem_p.h b/src/gui/graphicsview/qgraphicsitem_p.h index e812f29..bde6e7d 100644 --- a/src/gui/graphicsview/qgraphicsitem_p.h +++ b/src/gui/graphicsview/qgraphicsitem_p.h @@ -525,7 +525,9 @@ public: QGraphicsItem *focusScopeItem; Qt::InputMethodHints imHints; QGraphicsItem::PanelModality panelModality; +#ifndef QT_NO_GESTURES QMap<Qt::GestureType, Qt::GestureFlags> gestureContext; +#endif // Packed 32 bits quint32 acceptedMouseButtons : 5; diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp index 22c3f92..7b0722e 100644 --- a/src/gui/graphicsview/qgraphicsscene.cpp +++ b/src/gui/graphicsview/qgraphicsscene.cpp @@ -699,6 +699,7 @@ void QGraphicsScenePrivate::removeItemHelper(QGraphicsItem *item) if (!selectionChanging && selectedItems.size() != oldSelectedItemsSize) emit q->selectionChanged(); +#ifndef QT_NO_GESTURES QHash<QGesture *, QGraphicsObject *>::iterator it; for (it = gestureTargets.begin(); it != gestureTargets.end();) { if (it.value() == item) @@ -706,6 +707,7 @@ void QGraphicsScenePrivate::removeItemHelper(QGraphicsItem *item) else ++it; } + QGraphicsObject *dummy = static_cast<QGraphicsObject *>(item); cachedTargetItems.removeOne(dummy); cachedItemGestures.remove(dummy); @@ -713,6 +715,7 @@ void QGraphicsScenePrivate::removeItemHelper(QGraphicsItem *item) foreach (Qt::GestureType gesture, item->d_ptr->gestureContext.keys()) ungrabGesture(item, gesture); +#endif // QT_NO_GESTURES } /*! @@ -1180,11 +1183,13 @@ bool QGraphicsScenePrivate::filterEvent(QGraphicsItem *item, QEvent *event) bool QGraphicsScenePrivate::sendEvent(QGraphicsItem *item, QEvent *event) { if (QGraphicsObject *object = item->toGraphicsObject()) { +#ifndef QT_NO_GESTURES QGestureManager *gestureManager = QApplicationPrivate::instance()->gestureManager; if (gestureManager) { if (gestureManager->filterEvent(object, event)) return true; } +#endif // QT_NO_GESTURES } if (filterEvent(item, event)) @@ -2602,8 +2607,10 @@ void QGraphicsScene::addItem(QGraphicsItem *item) d->enableTouchEventsOnViews(); } +#ifndef QT_NO_GESTURES foreach (Qt::GestureType gesture, item->d_ptr->gestureContext.keys()) d->grabGesture(item, gesture); +#endif // Update selection lists if (item->isSelected()) @@ -3525,10 +3532,12 @@ bool QGraphicsScene::event(QEvent *event) case QEvent::TouchEnd: d->touchEventHandler(static_cast<QTouchEvent *>(event)); break; +#ifndef QT_NO_GESTURES case QEvent::Gesture: case QEvent::GestureOverride: d->gestureEventHandler(static_cast<QGestureEvent *>(event)); break; +#endif // QT_NO_GESTURES default: return QObject::event(event); } @@ -5637,8 +5646,10 @@ bool QGraphicsScene::sendEvent(QGraphicsItem *item, QEvent *event) void QGraphicsScenePrivate::addView(QGraphicsView *view) { views << view; +#ifndef QT_NO_GESTURES foreach (Qt::GestureType gesture, grabbedGestures.keys()) view->viewport()->grabGesture(gesture); +#endif } void QGraphicsScenePrivate::removeView(QGraphicsView *view) @@ -5968,6 +5979,7 @@ void QGraphicsScenePrivate::leaveModal(QGraphicsItem *panel) dispatchHoverEvent(&hoverEvent); } +#ifndef QT_NO_GESTURES void QGraphicsScenePrivate::gestureTargetsAtHotSpots(const QSet<QGesture *> &gestures, Qt::GestureFlag flag, QHash<QGraphicsObject *, QSet<QGesture *> > *targets, @@ -6356,6 +6368,7 @@ void QGraphicsScenePrivate::ungrabGesture(QGraphicsItem *item, Qt::GestureType g view->viewport()->ungrabGesture(gesture); } } +#endif // QT_NO_GESTURES QT_END_NAMESPACE diff --git a/src/gui/graphicsview/qgraphicsscene.h b/src/gui/graphicsview/qgraphicsscene.h index c34a303..f8615f4 100644 --- a/src/gui/graphicsview/qgraphicsscene.h +++ b/src/gui/graphicsview/qgraphicsscene.h @@ -313,7 +313,9 @@ private: friend class QGraphicsSceneBspTreeIndex; friend class QGraphicsSceneBspTreeIndexPrivate; friend class QGraphicsItemEffectSourcePrivate; +#ifndef QT_NO_GESTURES friend class QGesture; +#endif }; Q_DECLARE_OPERATORS_FOR_FLAGS(QGraphicsScene::SceneLayers) diff --git a/src/gui/graphicsview/qgraphicsscene_p.h b/src/gui/graphicsview/qgraphicsscene_p.h index 8ad2a0a..f28dfe9 100644 --- a/src/gui/graphicsview/qgraphicsscene_p.h +++ b/src/gui/graphicsview/qgraphicsscene_p.h @@ -299,6 +299,7 @@ public: void enableTouchEventsOnViews(); QList<QGraphicsObject *> cachedTargetItems; +#ifndef QT_NO_GESTURES QHash<QGraphicsObject *, QSet<QGesture *> > cachedItemGestures; QHash<QGraphicsObject *, QSet<QGesture *> > cachedAlreadyDeliveredGestures; QHash<QGesture *, QGraphicsObject *> gestureTargets; @@ -313,6 +314,7 @@ public: void cancelGesturesForChildren(QGesture *original); void grabGesture(QGraphicsItem *, Qt::GestureType gesture); void ungrabGesture(QGraphicsItem *, Qt::GestureType gesture); +#endif // QT_NO_GESTURES void updateInputMethodSensitivityInViews(); diff --git a/src/gui/graphicsview/qgraphicsview.cpp b/src/gui/graphicsview/qgraphicsview.cpp index a83b528..0674610 100644 --- a/src/gui/graphicsview/qgraphicsview.cpp +++ b/src/gui/graphicsview/qgraphicsview.cpp @@ -2688,10 +2688,12 @@ void QGraphicsView::setupViewport(QWidget *widget) if (d->scene && !d->scene->d_func()->allItemsIgnoreTouchEvents) widget->setAttribute(Qt::WA_AcceptTouchEvents); +#ifndef QT_NO_GESTURES if (d->scene) { foreach (Qt::GestureType gesture, d->scene->d_func()->grabbedGestures.keys()) widget->grabGesture(gesture); } +#endif widget->setAcceptDrops(acceptDrops()); } @@ -2838,6 +2840,7 @@ bool QGraphicsView::viewportEvent(QEvent *event) return true; } +#ifndef QT_NO_GESTURES case QEvent::Gesture: case QEvent::GestureOverride: { @@ -2851,6 +2854,7 @@ bool QGraphicsView::viewportEvent(QEvent *event) } return true; } +#endif // QT_NO_GESTURES default: break; } diff --git a/src/gui/image/qiconloader.cpp b/src/gui/image/qiconloader.cpp index a515ef8..34f40a9 100644 --- a/src/gui/image/qiconloader.cpp +++ b/src/gui/image/qiconloader.cpp @@ -63,6 +63,8 @@ #include <private/qt_x11_p.h> #endif +#include <private/qstylehelper_p.h> + QT_BEGIN_NAMESPACE Q_GLOBAL_STATIC(QIconLoader, iconLoaderInstance) @@ -488,14 +490,12 @@ QPixmap PixmapEntry::pixmap(const QSize &size, QIcon::Mode mode, QIcon::State st basePixmap.load(filename); int actualSize = qMin(size.width(), size.height()); - QString key = QLatin1String("$qt_theme_") - + QString::number(basePixmap.cacheKey(), 16) - + QLatin1Char('_') - + QString::number(mode) - + QLatin1Char('_') - + QString::number(qApp->palette().cacheKey(), 16) - + QLatin1Char('_') - + QString::number(actualSize); + + QString key = QLatin1Literal("$qt_theme_") + % HexString<qint64>(basePixmap.cacheKey()) + % HexString<int>(mode) + % HexString<qint64>(qApp->palette().cacheKey()) + % HexString<int>(actualSize); QPixmap cachedPixmap; if (QPixmapCache::find(key, &cachedPixmap)) { diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index 98f235e..d89ffe6 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -272,6 +272,8 @@ bool QImageData::checkForAlphaPixels() const switch (format) { + case QImage::Format_Mono: + case QImage::Format_MonoLSB: case QImage::Format_Indexed8: has_alpha_pixels = has_alpha_clut; break; diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp index 3013726..20e4b50 100644 --- a/src/gui/image/qpixmap.cpp +++ b/src/gui/image/qpixmap.cpp @@ -82,6 +82,7 @@ #endif #include "qpixmap_raster_p.h" +#include "private/qstylehelper_p.h" QT_BEGIN_NAMESPACE @@ -829,8 +830,14 @@ bool QPixmap::load(const QString &fileName, const char *format, Qt::ImageConvers return false; QFileInfo info(fileName); - QString key = QLatin1String("qt_pixmap_") + info.absoluteFilePath() + QLatin1Char('_') + QString::number(info.lastModified().toTime_t()) + QLatin1Char('_') + - QString::number(info.size()) + QLatin1Char('_') + QString::number(data ? data->pixelType() : QPixmapData::PixmapType); + if (!info.exists()) + return false; + + QString key = QLatin1Literal("qt_pixmap") + % info.absoluteFilePath() + % HexString<uint>(info.lastModified().toTime_t()) + % HexString<quint64>(info.size()) + % HexString<uint>(data ? data->pixelType() : QPixmapData::PixmapType); if (QPixmapCache::find(key, *this)) return true; diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp index 6caa7ee..72e5c58 100644 --- a/src/gui/kernel/qapplication.cpp +++ b/src/gui/kernel/qapplication.cpp @@ -185,8 +185,10 @@ QApplicationPrivate::QApplicationPrivate(int &argc, char **argv, QApplication::T directPainters = 0; #endif +#ifndef QT_NO_GESTURES gestureManager = 0; gestureWidget = 0; +#endif // QT_NO_GESTURES #if defined(Q_WS_X11) || defined(Q_WS_WIN) move_cursor = 0; @@ -3711,6 +3713,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e) #endif // !QT_NO_WHEELEVENT || !QT_NO_TABLETEVENT } +#ifndef QT_NO_GESTURES // walk through parents and check for gestures if (d->gestureManager) { switch (e->type()) { @@ -3755,7 +3758,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e) } } } - +#endif // QT_NO_GESTURES // User input and window activation makes tooltips sleep switch (e->type()) { @@ -4260,6 +4263,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e) res = d->notify_helper(receiver, e); break; +#ifndef QT_NO_GESTURES case QEvent::NativeGesture: { // only propagate the first gesture event (after the GID_BEGIN) @@ -4338,6 +4342,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e) } break; } +#endif // QT_NO_GESTURES default: res = d->notify_helper(receiver, e); break; @@ -5770,6 +5775,7 @@ Q_GUI_EXPORT void qt_translateRawTouchEvent(QWidget *window, QApplicationPrivate::translateRawTouchEvent(window, deviceType, touchPoints); } +#ifndef QT_NO_GESTURES QGestureManager* QGestureManager::instance() { QApplicationPrivate *qAppPriv = QApplicationPrivate::instance(); @@ -5777,6 +5783,7 @@ QGestureManager* QGestureManager::instance() qAppPriv->gestureManager = new QGestureManager(qApp); return qAppPriv->gestureManager; } +#endif // QT_NO_GESTURES // These pixmaps approximate the images in the Windows User Interface Guidelines. diff --git a/src/gui/kernel/qapplication.h b/src/gui/kernel/qapplication.h index f93f24a..3613f95 100644 --- a/src/gui/kernel/qapplication.h +++ b/src/gui/kernel/qapplication.h @@ -399,7 +399,9 @@ private: friend class QDirectPainter; friend class QDirectPainterPrivate; #endif +#ifndef QT_NO_GESTURES friend class QGestureManager; +#endif #if defined(Q_WS_MAC) || defined(Q_WS_X11) Q_PRIVATE_SLOT(d_func(), void _q_alertTimeOut()) diff --git a/src/gui/kernel/qapplication_p.h b/src/gui/kernel/qapplication_p.h index 9a5714b..97ceea9 100644 --- a/src/gui/kernel/qapplication_p.h +++ b/src/gui/kernel/qapplication_p.h @@ -84,7 +84,9 @@ class QInputContext; class QObject; class QWidget; class QSocketNotifier; +#ifndef QT_NO_GESTURES class QGestureManager; +#endif extern bool qt_is_gui_used; #ifndef QT_NO_CLIPBOARD @@ -200,6 +202,7 @@ typedef BOOL (WINAPI *PtrRegisterTouchWindow)(HWND, ULONG); typedef BOOL (WINAPI *PtrGetTouchInputInfo)(HANDLE, UINT, PVOID, int); typedef BOOL (WINAPI *PtrCloseTouchInputHandle)(HANDLE); +#ifndef QT_NO_GESTURES typedef BOOL (WINAPI *PtrGetGestureInfo)(HANDLE, PVOID); typedef BOOL (WINAPI *PtrGetGestureExtraArgs)(HANDLE, UINT, PBYTE); typedef BOOL (WINAPI *PtrCloseGestureInfoHandle)(HANDLE); @@ -263,6 +266,8 @@ typedef struct tagGESTURECONFIG #define GID_ROLLOVER 0xf003 #endif +#endif // QT_NO_GESTURES + #endif // Q_WS_WIN class QScopedLoopLevelCounter @@ -517,6 +522,7 @@ public: void sendSyntheticEnterLeave(QWidget *widget); #endif +#ifndef QT_NO_GESTURES QGestureManager *gestureManager; QWidget *gestureWidget; #if defined(Q_WS_X11) || defined(Q_WS_WIN) @@ -524,6 +530,7 @@ public: QPixmap *copy_cursor; QPixmap *link_cursor; #endif +#endif #if defined(Q_WS_WIN) QPixmap *ignore_cursor; #endif @@ -552,6 +559,7 @@ public: QHash<DWORD, int> touchInputIDToTouchPointID; bool translateTouchEvent(const MSG &msg); +#ifndef QT_NO_GESTURES PtrGetGestureInfo GetGestureInfo; PtrGetGestureExtraArgs GetGestureExtraArgs; PtrCloseGestureInfoHandle CloseGestureInfoHandle; @@ -560,6 +568,7 @@ public: PtrBeginPanningFeedback BeginPanningFeedback; PtrUpdatePanningFeedback UpdatePanningFeedback; PtrEndPanningFeedback EndPanningFeedback; +#endif // QT_NO_GESTURES #endif #ifdef QT_RX71_MULTITOUCH diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 82c3545..9f47112 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -1032,6 +1032,9 @@ void QSymbianControl::SizeChanged() qwidget->d_func()->syncBackingStore(); if (!slowResize && tlwExtra) tlwExtra->inTopLevelResize = false; + } else { + QResizeEvent *e = new QResizeEvent(newSize, oldSize); + QApplication::postEvent(qwidget, e); } } @@ -1800,19 +1803,27 @@ int QApplicationPrivate::symbianProcessWsEvent(const QSymbianEvent *symbianEvent return 1; const TWsVisibilityChangedEvent *visChangedEvent = event->VisibilityChanged(); QWidget *w = QWidgetPrivate::mapper->value(control); - if (!w->d_func()->maybeTopData()) + QWidget *const window = w->window(); + if (!window->d_func()->maybeTopData()) break; + QRefCountedWidgetBackingStore &backingStore = window->d_func()->maybeTopData()->backingStore; if (visChangedEvent->iFlags & TWsVisibilityChangedEvent::ENotVisible) { - delete w->d_func()->topData()->backingStore; - w->d_func()->topData()->backingStore = 0; + // Decrement backing store reference count + backingStore.deref(); // In order to ensure that any resources used by the window surface // are immediately freed, we flush the WSERV command buffer. S60->wsSession().Flush(); - } else if ((visChangedEvent->iFlags & TWsVisibilityChangedEvent::EPartiallyVisible) - && !w->d_func()->maybeBackingStore()) { - w->d_func()->topData()->backingStore = new QWidgetBackingStore(w); - w->d_func()->invalidateBuffer(w->rect()); - w->repaint(); + } else if (visChangedEvent->iFlags & TWsVisibilityChangedEvent::EPartiallyVisible) { + if (backingStore.data()) { + // Increment backing store reference count + backingStore.ref(); + } else { + // Create backing store with an initial reference count of 1 + backingStore.create(window); + backingStore.ref(); + w->d_func()->invalidateBuffer(w->rect()); + w->repaint(); + } } return 1; } diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp index 60fc5e1..09535fa 100644 --- a/src/gui/kernel/qapplication_win.cpp +++ b/src/gui/kernel/qapplication_win.cpp @@ -52,9 +52,11 @@ extern void qt_wince_hide_taskbar(HWND hwnd); //defined in qguifunctions_wince.c #include <windowsm.h> #include <tpcshell.h> #ifdef QT_WINCE_GESTURES +#ifndef QT_NO_GESTURES #include <gesture.h> #endif #endif +#endif #include "qapplication.h" #include "qdesktopwidget.h" @@ -198,6 +200,7 @@ struct SHRGINFO { #define SPI_SETSIPINFO 224 #endif +#ifndef QT_NO_GESTURES typedef DWORD (API *AygRecognizeGesture)(SHRGINFO*); static AygRecognizeGesture ptrRecognizeGesture = 0; static bool aygResolved = false; @@ -211,6 +214,7 @@ static void resolveAygLibs() ptrRecognizeGesture = (AygRecognizeGesture) ayglib.resolve("SHRecognizeGesture"); } } +#endif // QT_NO_GESTURES #endif @@ -463,7 +467,9 @@ public: bool translateConfigEvent(const MSG &msg); bool translateCloseEvent(const MSG &msg); bool translateTabletEvent(const MSG &msg, PACKET *localPacketBuf, int numPackets); +#ifndef QT_NO_GESTURES bool translateGestureEvent(const MSG &msg, const GESTUREINFO &gi); +#endif void repolishStyle(QStyle &style); inline void showChildren(bool spontaneous) { d_func()->showChildren(spontaneous); } inline void hideChildren(bool spontaneous) { d_func()->hideChildren(spontaneous); } @@ -843,6 +849,7 @@ void qt_init(QApplicationPrivate *priv, int) ptrSetProcessDPIAware(); #endif +#ifndef QT_NO_GESTURES priv->GetGestureInfo = 0; priv->GetGestureExtraArgs = 0; priv->CloseGestureInfoHandle = 0; @@ -883,6 +890,7 @@ void qt_init(QApplicationPrivate *priv, int) (PtrEndPanningFeedback)QLibrary::resolve(QLatin1String("uxtheme"), "EndPanningFeedback"); #endif +#endif // QT_NO_GESTURES } /***************************************************************************** @@ -1542,7 +1550,7 @@ extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wPa case WM_SETTINGCHANGE: #ifdef Q_WS_WINCE // CE SIP hide/show - if (wParam == SPI_SETSIPINFO) { + if (qt_desktopWidget && wParam == SPI_SETSIPINFO) { QResizeEvent re(QSize(0, 0), QSize(0, 0)); // Calculated by QDesktopWidget QApplication::sendEvent(qt_desktopWidget, &re); break; @@ -1667,12 +1675,14 @@ extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wPa shrg.ptDown.y = GET_Y_LPARAM(lParam); shrg.dwFlags = SHRG_RETURNCMD | SHRG_NOANIMATION; resolveAygLibs(); +#ifndef QT_NO_GESTURES if (ptrRecognizeGesture && (ptrRecognizeGesture(&shrg) == GN_CONTEXTMENU)) { if (QApplication::activePopupWidget()) QApplication::activePopupWidget()->close(); QContextMenuEvent e(QContextMenuEvent::Mouse, pos, globalPos); result = qt_sendSpontaneousEvent(alienWidget, &e); } +#endif // QT_NO_GESTURES } } } @@ -2556,6 +2566,7 @@ extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wPa } result = false; break; +#ifndef QT_NO_GESTURES #if !defined(Q_WS_WINCE) || defined(QT_WINCE_GESTURES) case WM_GESTURE: { GESTUREINFO gi; @@ -2590,6 +2601,7 @@ extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wPa break; } #endif // !defined(Q_WS_WINCE) || defined(QT_WINCE_GESTURES) +#endif // QT_NO_GESTURES #ifndef QT_NO_CURSOR case WM_SETCURSOR: { QCursor *ovr = QApplication::overrideCursor(); @@ -3825,6 +3837,7 @@ bool QETWidget::translateCloseEvent(const MSG &) return d_func()->close_helper(QWidgetPrivate::CloseWithSpontaneousEvent); } +#ifndef QT_NO_GESTURES bool QETWidget::translateGestureEvent(const MSG &, const GESTUREINFO &gi) { const QPoint widgetPos = QPoint(gi.ptsLocation.x, gi.ptsLocation.y); @@ -3863,7 +3876,7 @@ bool QETWidget::translateGestureEvent(const MSG &, const GESTUREINFO &gi) qt_sendSpontaneousEvent(widget, &event); return true; } - +#endif // QT_NO_GESTURES void QApplication::setCursorFlashTime(int msecs) { diff --git a/src/gui/kernel/qapplication_x11.cpp b/src/gui/kernel/qapplication_x11.cpp index 78fc704..3664743 100644 --- a/src/gui/kernel/qapplication_x11.cpp +++ b/src/gui/kernel/qapplication_x11.cpp @@ -5268,7 +5268,7 @@ bool QETWidget::translateConfigEvent(const XEvent *event) if (isVisible() && data->crect.size() != oldSize) { Q_ASSERT(d->extra->topextra); - QWidgetBackingStore *bs = d->extra->topextra->backingStore; + QWidgetBackingStore *bs = d->extra->topextra->backingStore.data(); const bool hasStaticContents = bs && bs->hasStaticContents(); // If we have a backing store with static contents, we have to disable the top-level // resize optimization in order to get invalidated regions for resized widgets. diff --git a/src/gui/kernel/qcocoaview_mac.mm b/src/gui/kernel/qcocoaview_mac.mm index 86c4025..772016a 100644 --- a/src/gui/kernel/qcocoaview_mac.mm +++ b/src/gui/kernel/qcocoaview_mac.mm @@ -952,12 +952,14 @@ static int qCocoaViewCount = 0; if (!QApplicationPrivate::tryModalHelper(qwidget, 0)) return; +#ifndef QT_NO_GESTURES QNativeGestureEvent qNGEvent; qNGEvent.gestureType = QNativeGestureEvent::Zoom; NSPoint p = [[event window] convertBaseToScreen:[event locationInWindow]]; qNGEvent.position = flipPoint(p).toPoint(); qNGEvent.percentage = [event magnification]; qt_sendSpontaneousEvent(qwidget, &qNGEvent); +#endif // QT_NO_GESTURES } - (void)rotateWithEvent:(NSEvent *)event; @@ -965,12 +967,14 @@ static int qCocoaViewCount = 0; if (!QApplicationPrivate::tryModalHelper(qwidget, 0)) return; +#ifndef QT_NO_GESTURES QNativeGestureEvent qNGEvent; qNGEvent.gestureType = QNativeGestureEvent::Rotate; NSPoint p = [[event window] convertBaseToScreen:[event locationInWindow]]; qNGEvent.position = flipPoint(p).toPoint(); qNGEvent.percentage = -[event rotation]; qt_sendSpontaneousEvent(qwidget, &qNGEvent); +#endif // QT_NO_GESTURES } - (void)swipeWithEvent:(NSEvent *)event; @@ -978,6 +982,7 @@ static int qCocoaViewCount = 0; if (!QApplicationPrivate::tryModalHelper(qwidget, 0)) return; +#ifndef QT_NO_GESTURES QNativeGestureEvent qNGEvent; qNGEvent.gestureType = QNativeGestureEvent::Swipe; NSPoint p = [[event window] convertBaseToScreen:[event locationInWindow]]; @@ -991,6 +996,7 @@ static int qCocoaViewCount = 0; else if ([event deltaY] == -1) qNGEvent.angle = 270.0f; qt_sendSpontaneousEvent(qwidget, &qNGEvent); +#endif // QT_NO_GESTURES } - (void)beginGestureWithEvent:(NSEvent *)event; @@ -998,11 +1004,13 @@ static int qCocoaViewCount = 0; if (!QApplicationPrivate::tryModalHelper(qwidget, 0)) return; +#ifndef QT_NO_GESTURES QNativeGestureEvent qNGEvent; qNGEvent.gestureType = QNativeGestureEvent::GestureBegin; NSPoint p = [[event window] convertBaseToScreen:[event locationInWindow]]; qNGEvent.position = flipPoint(p).toPoint(); qt_sendSpontaneousEvent(qwidget, &qNGEvent); +#endif // QT_NO_GESTURES } - (void)endGestureWithEvent:(NSEvent *)event; @@ -1010,11 +1018,13 @@ static int qCocoaViewCount = 0; if (!QApplicationPrivate::tryModalHelper(qwidget, 0)) return; +#ifndef QT_NO_GESTURES QNativeGestureEvent qNGEvent; qNGEvent.gestureType = QNativeGestureEvent::GestureEnd; NSPoint p = [[event window] convertBaseToScreen:[event locationInWindow]]; qNGEvent.position = flipPoint(p).toPoint(); qt_sendSpontaneousEvent(qwidget, &qNGEvent); +#endif // QT_NO_GESTURES } - (void)frameDidChange:(NSNotification *)note diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index 055c127..f75495a 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -3421,9 +3421,11 @@ QDebug operator<<(QDebug dbg, const QEvent *e) { case QEvent::ChildRemoved: n = n ? n : "ChildRemoved"; dbg.nospace() << "QChildEvent(" << n << ", " << (static_cast<const QChildEvent*>(e))->child(); return dbg.space(); +#ifndef QT_NO_GESTURES case QEvent::Gesture: n = "Gesture"; break; +#endif default: dbg.nospace() << "QEvent(" << (const void *)e << ", type = " << e->type() << ')'; return dbg.space(); @@ -4254,6 +4256,7 @@ QTouchEvent::TouchPoint &QTouchEvent::TouchPoint::operator=(const QTouchEvent::T return *this; } +#ifndef QT_NO_GESTURES /*! \class QGestureEvent \since 4.6 @@ -4558,4 +4561,6 @@ const QGestureEventPrivate *QGestureEvent::d_func() const */ #endif +#endif // QT_NO_GESTURES + QT_END_NAMESPACE diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h index 90242fe..9c70c02 100644 --- a/src/gui/kernel/qevent.h +++ b/src/gui/kernel/qevent.h @@ -62,7 +62,9 @@ QT_BEGIN_NAMESPACE QT_MODULE(Gui) class QAction; +#ifndef QT_NO_GESTURES class QGesture; +#endif class Q_GUI_EXPORT QInputEvent : public QEvent { @@ -824,6 +826,7 @@ protected: friend class QApplicationPrivate; }; +#ifndef QT_NO_GESTURES class QGesture; class QGestureEventPrivate; class Q_GUI_EXPORT QGestureEvent : public QEvent @@ -875,6 +878,7 @@ private: friend class QApplication; friend class QGestureManager; }; +#endif // QT_NO_GESTURES QT_END_NAMESPACE diff --git a/src/gui/kernel/qevent_p.h b/src/gui/kernel/qevent_p.h index 5c94a23..e323aa9 100644 --- a/src/gui/kernel/qevent_p.h +++ b/src/gui/kernel/qevent_p.h @@ -120,6 +120,7 @@ public: qreal pressure; }; +#ifndef QT_NO_GESTURES class QNativeGestureEvent : public QEvent { public: @@ -164,7 +165,7 @@ public: QMap<Qt::GestureType, bool> accepted; QMap<Qt::GestureType, QWidget *> targetWidgets; }; - +#endif // QT_NO_GESTURES class QFileOpenEventPrivate { diff --git a/src/gui/kernel/qeventdispatcher_mac.mm b/src/gui/kernel/qeventdispatcher_mac.mm index 0d93b9f..e26fbde 100644 --- a/src/gui/kernel/qeventdispatcher_mac.mm +++ b/src/gui/kernel/qeventdispatcher_mac.mm @@ -492,6 +492,7 @@ static bool IsMouseOrKeyEvent( NSEvent* event ) case NSOtherMouseDown: case NSOtherMouseUp: case NSOtherMouseDragged: +#ifndef QT_NO_GESTURES #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 case NSEventTypeGesture: // touch events case NSEventTypeMagnify: @@ -500,6 +501,7 @@ static bool IsMouseOrKeyEvent( NSEvent* event ) case NSEventTypeBeginGesture: case NSEventTypeEndGesture: #endif +#endif // QT_NO_GESTURES result = true; break; diff --git a/src/gui/kernel/qgesture.cpp b/src/gui/kernel/qgesture.cpp index 49bdea7..f5688f4 100644 --- a/src/gui/kernel/qgesture.cpp +++ b/src/gui/kernel/qgesture.cpp @@ -42,6 +42,8 @@ #include "qgesture.h" #include "private/qgesture_p.h" +#ifndef QT_NO_GESTURES + QT_BEGIN_NAMESPACE /*! @@ -725,3 +727,5 @@ void QTapAndHoldGesture::setPosition(const QPointF &value) } QT_END_NAMESPACE + +#endif // QT_NO_GESTURES diff --git a/src/gui/kernel/qgesture.h b/src/gui/kernel/qgesture.h index c9bdce6..8c10895 100644 --- a/src/gui/kernel/qgesture.h +++ b/src/gui/kernel/qgesture.h @@ -49,6 +49,8 @@ #include <QtCore/qrect.h> #include <QtCore/qmetatype.h> +#ifndef QT_NO_GESTURES + QT_BEGIN_HEADER Q_DECLARE_METATYPE(Qt::GestureState) @@ -258,4 +260,6 @@ QT_END_NAMESPACE Q_DECLARE_METATYPE(QGesture::GestureCancelPolicy) QT_END_HEADER +#endif // QT_NO_GESTURES + #endif // QGESTURE_H diff --git a/src/gui/kernel/qgesture_p.h b/src/gui/kernel/qgesture_p.h index bf60f97..f5474c1 100644 --- a/src/gui/kernel/qgesture_p.h +++ b/src/gui/kernel/qgesture_p.h @@ -59,6 +59,8 @@ #include "qelapsedtimer.h" #include "private/qobject_p.h" +#ifndef QT_NO_GESTURES + QT_BEGIN_NAMESPACE class QGesturePrivate : public QObjectPrivate @@ -179,4 +181,6 @@ public: QT_END_NAMESPACE +#endif // QT_NO_GESTURES + #endif // QGESTURE_P_H diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp index 43facef..2af031b 100644 --- a/src/gui/kernel/qgesturemanager.cpp +++ b/src/gui/kernel/qgesturemanager.cpp @@ -66,6 +66,8 @@ # define DEBUG qDebug #endif +#ifndef QT_NO_GESTURES + QT_BEGIN_NAMESPACE QGestureManager::QGestureManager(QObject *parent) @@ -684,6 +686,7 @@ void QGestureManager::recycle(QGesture *gesture) if (recognizer) { gesture->setGestureCancelPolicy(QGesture::CancelNone); recognizer->reset(gesture); + m_activeGestures.remove(gesture); } else { cleanupGesturesForRemovedRecognizer(gesture); } @@ -691,4 +694,6 @@ void QGestureManager::recycle(QGesture *gesture) QT_END_NAMESPACE +#endif // QT_NO_GESTURES + #include "moc_qgesturemanager_p.cpp" diff --git a/src/gui/kernel/qgesturemanager_p.h b/src/gui/kernel/qgesturemanager_p.h index c452f49..747cb1a 100644 --- a/src/gui/kernel/qgesturemanager_p.h +++ b/src/gui/kernel/qgesturemanager_p.h @@ -58,6 +58,8 @@ #include "private/qwidget_p.h" #include "qgesturerecognizer.h" +#ifndef QT_NO_GESTURES + QT_BEGIN_NAMESPACE class QBasicTimer; @@ -143,4 +145,6 @@ private: QT_END_NAMESPACE +#endif // QT_NO_GESTURES + #endif // QGESTUREMANAGER_P_H diff --git a/src/gui/kernel/qgesturerecognizer.cpp b/src/gui/kernel/qgesturerecognizer.cpp index 9dcca17..3e23bbf 100644 --- a/src/gui/kernel/qgesturerecognizer.cpp +++ b/src/gui/kernel/qgesturerecognizer.cpp @@ -44,6 +44,8 @@ #include "private/qgesture_p.h" #include "private/qgesturemanager_p.h" +#ifndef QT_NO_GESTURES + QT_BEGIN_NAMESPACE /*! @@ -231,3 +233,5 @@ void QGestureRecognizer::unregisterRecognizer(Qt::GestureType type) } QT_END_NAMESPACE + +#endif // QT_NO_GESTURES diff --git a/src/gui/kernel/qgesturerecognizer.h b/src/gui/kernel/qgesturerecognizer.h index 3e17c99..5afb43f 100644 --- a/src/gui/kernel/qgesturerecognizer.h +++ b/src/gui/kernel/qgesturerecognizer.h @@ -45,6 +45,8 @@ #include <QtCore/qglobal.h> #include <QtCore/qnamespace.h> +#ifndef QT_NO_GESTURES + QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -95,4 +97,6 @@ QT_END_NAMESPACE QT_END_HEADER +#endif // QT_NO_GESTURES + #endif // QGESTURERECOGNIZER_H diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp index b038fde..562227a 100644 --- a/src/gui/kernel/qkeysequence.cpp +++ b/src/gui/kernel/qkeysequence.cpp @@ -439,6 +439,10 @@ static const struct { { Qt::Key_MediaPrevious, QT_TRANSLATE_NOOP("QShortcut", "Media Previous") }, { Qt::Key_MediaNext, QT_TRANSLATE_NOOP("QShortcut", "Media Next") }, { Qt::Key_MediaRecord, QT_TRANSLATE_NOOP("QShortcut", "Media Record") }, + //: Media player pause button + { Qt::Key_MediaPause, QT_TRANSLATE_NOOP("QShortcut", "Media Pause") }, + //: Media player button to toggle between playing and paused + { Qt::Key_MediaTogglePlayPause, QT_TRANSLATE_NOOP("QShortcut", "Toggle Media Play/Pause") }, { Qt::Key_HomePage, QT_TRANSLATE_NOOP("QShortcut", "Home Page") }, { Qt::Key_Favorites, QT_TRANSLATE_NOOP("QShortcut", "Favorites") }, { Qt::Key_Search, QT_TRANSLATE_NOOP("QShortcut", "Search") }, @@ -575,13 +579,25 @@ static const struct { // -------------------------------------------------------------- // Device keys - { Qt::Key_Context1, QT_TRANSLATE_NOOP("QShortcut", "Context1") }, - { Qt::Key_Context2, QT_TRANSLATE_NOOP("QShortcut", "Context2") }, - { Qt::Key_Context3, QT_TRANSLATE_NOOP("QShortcut", "Context3") }, - { Qt::Key_Context4, QT_TRANSLATE_NOOP("QShortcut", "Context4") }, - { Qt::Key_Call, QT_TRANSLATE_NOOP("QShortcut", "Call") }, - { Qt::Key_Hangup, QT_TRANSLATE_NOOP("QShortcut", "Hangup") }, - { Qt::Key_Flip, QT_TRANSLATE_NOOP("QShortcut", "Flip") }, + { Qt::Key_Context1, QT_TRANSLATE_NOOP("QShortcut", "Context1") }, + { Qt::Key_Context2, QT_TRANSLATE_NOOP("QShortcut", "Context2") }, + { Qt::Key_Context3, QT_TRANSLATE_NOOP("QShortcut", "Context3") }, + { Qt::Key_Context4, QT_TRANSLATE_NOOP("QShortcut", "Context4") }, + //: Button to start a call (note: a separate button is used to end the call) + { Qt::Key_Call, QT_TRANSLATE_NOOP("QShortcut", "Call") }, + //: Button to end a call (note: a separate button is used to start the call) + { Qt::Key_Hangup, QT_TRANSLATE_NOOP("QShortcut", "Hangup") }, + //: Button that will hang up if we're in call, or make a call if we're not. + { Qt::Key_ToggleCallHangup, QT_TRANSLATE_NOOP("QShortcut", "Toggle Call/Hangup") }, + { Qt::Key_Flip, QT_TRANSLATE_NOOP("QShortcut", "Flip") }, + //: Button to trigger voice dialling + { Qt::Key_VoiceDial, QT_TRANSLATE_NOOP("QShortcut", "Voice Dial") }, + //: Button to redial the last number called + { Qt::Key_LastNumberRedial, QT_TRANSLATE_NOOP("QShortcut", "Last Number Redial") }, + //: Button to trigger the camera shutter (take a picture) + { Qt::Key_Camera, QT_TRANSLATE_NOOP("QShortcut", "Camera Shutter") }, + //: Button to focus the camera + { Qt::Key_CameraFocus, QT_TRANSLATE_NOOP("QShortcut", "Camera Focus") }, // -------------------------------------------------------------- // Japanese keyboard support diff --git a/src/gui/kernel/qmacgesturerecognizer_mac.mm b/src/gui/kernel/qmacgesturerecognizer_mac.mm index fba839b..0ccbb52 100644 --- a/src/gui/kernel/qmacgesturerecognizer_mac.mm +++ b/src/gui/kernel/qmacgesturerecognizer_mac.mm @@ -47,6 +47,8 @@ #include "qwidget.h" #include "qdebug.h" +#ifndef QT_NO_GESTURES + QT_BEGIN_NAMESPACE QMacSwipeGestureRecognizer::QMacSwipeGestureRecognizer() @@ -260,3 +262,5 @@ void QMacPanGestureRecognizer::reset(QGesture *gesture) #endif // QT_MAC_USE_COCOA QT_END_NAMESPACE + +#endif // QT_NO_GESTURES diff --git a/src/gui/kernel/qmacgesturerecognizer_mac_p.h b/src/gui/kernel/qmacgesturerecognizer_mac_p.h index dd8a150..f48c160 100644 --- a/src/gui/kernel/qmacgesturerecognizer_mac_p.h +++ b/src/gui/kernel/qmacgesturerecognizer_mac_p.h @@ -57,6 +57,8 @@ #include "qpoint.h" #include "qgesturerecognizer.h" +#ifndef QT_NO_GESTURES + QT_BEGIN_NAMESPACE class QMacSwipeGestureRecognizer : public QGestureRecognizer @@ -99,4 +101,6 @@ private: QT_END_NAMESPACE +#endif // QT_NO_GESTURES + #endif // QMACSWIPEGESTURERECOGNIZER_MAC_P_H diff --git a/src/gui/kernel/qstandardgestures.cpp b/src/gui/kernel/qstandardgestures.cpp index a575717..6960838 100644 --- a/src/gui/kernel/qstandardgestures.cpp +++ b/src/gui/kernel/qstandardgestures.cpp @@ -47,6 +47,8 @@ #include "qabstractscrollarea.h" #include "qdebug.h" +#ifndef QT_NO_GESTURES + QT_BEGIN_NAMESPACE QPanGestureRecognizer::QPanGestureRecognizer() @@ -563,3 +565,5 @@ void QTapAndHoldGestureRecognizer::reset(QGesture *state) } QT_END_NAMESPACE + +#endif // QT_NO_GESTURES diff --git a/src/gui/kernel/qstandardgestures_p.h b/src/gui/kernel/qstandardgestures_p.h index 64505d8..da73b85 100644 --- a/src/gui/kernel/qstandardgestures_p.h +++ b/src/gui/kernel/qstandardgestures_p.h @@ -56,6 +56,8 @@ #include "qgesturerecognizer.h" #include "private/qgesture_p.h" +#ifndef QT_NO_GESTURES + QT_BEGIN_NAMESPACE class QPanGestureRecognizer : public QGestureRecognizer @@ -110,4 +112,6 @@ public: QT_END_NAMESPACE +#endif // QT_NO_GESTURES + #endif // QSTANDARDGESTURES_P_H diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index a891be0..77d416b 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -161,6 +161,51 @@ static inline bool hasBackingStoreSupport() extern bool qt_sendSpontaneousEvent(QObject*, QEvent*); // qapplication.cpp extern QDesktopWidget *qt_desktopWidget; // qapplication.cpp + +QRefCountedWidgetBackingStore::QRefCountedWidgetBackingStore() + : m_ptr(0) + , m_count(0) +{ + +} + +QRefCountedWidgetBackingStore::~QRefCountedWidgetBackingStore() +{ + delete m_ptr; +} + +void QRefCountedWidgetBackingStore::create(QWidget *widget) +{ + destroy(); + m_ptr = new QWidgetBackingStore(widget); + m_count = 0; +} + +void QRefCountedWidgetBackingStore::destroy() +{ + delete m_ptr; + m_ptr = 0; + m_count = 0; +} + +void QRefCountedWidgetBackingStore::ref() +{ + Q_ASSERT(m_ptr); + ++m_count; +} + +void QRefCountedWidgetBackingStore::deref() +{ + if (m_count) { + Q_ASSERT(m_ptr); + if (0 == --m_count) { + delete m_ptr; + m_ptr = 0; + } + } +} + + QWidgetPrivate::QWidgetPrivate(int version) : QObjectPrivate(version) , extra(0) @@ -202,7 +247,9 @@ QWidgetPrivate::QWidgetPrivate(int version) , picture(0) #elif defined(Q_WS_WIN) , noPaintOnScreen(0) + #ifndef QT_NO_GESTURES , nativeGesturePanEnabled(0) + #endif #elif defined(Q_WS_MAC) , needWindowChange(0) , hasAlienChildren(0) @@ -1348,11 +1395,9 @@ void QWidget::create(WId window, bool initializeWindow, bool destroyOldWindow) // a real toplevel window needs a backing store if (isWindow() && windowType() != Qt::Desktop) { - delete d->topData()->backingStore; - // QWidgetBackingStore will check this variable, hence it must be 0 - d->topData()->backingStore = 0; + d->topData()->backingStore.destroy(); if (hasBackingStoreSupport()) - d->topData()->backingStore = new QWidgetBackingStore(this); + d->topData()->backingStore.create(this); } d->setModal_sys(); @@ -1397,8 +1442,10 @@ QWidget::~QWidget() qWarning("QWidget: %s (%s) deleted while being painted", className(), name()); #endif +#ifndef QT_NO_GESTURES foreach (Qt::GestureType type, d->gestureContext.keys()) ungrabGesture(type); +#endif // force acceptDrops false before winId is destroyed. d->registerDropSite(false); @@ -1478,8 +1525,7 @@ QWidget::~QWidget() // the backing store will delete its window surface, which may or may // not have a reference to this widget that will be used later to // notify the window it no longer has a surface. - delete d->extra->topextra->backingStore; - d->extra->topextra->backingStore = 0; + d->extra->topextra->backingStore.destroy(); } #endif if (QWidgetBackingStore *bs = d->maybeBackingStore()) { @@ -1577,7 +1623,6 @@ void QWidgetPrivate::createTLExtra() QTLWExtra* x = extra->topextra = new QTLWExtra; x->icon = 0; x->iconPixmap = 0; - x->backingStore = 0; x->windowSurface = 0; x->sharedPainter = 0; x->incw = x->inch = 0; @@ -1661,7 +1706,7 @@ void QWidgetPrivate::deleteExtra() #endif if (extra->topextra) { deleteTLSysExtra(); - delete extra->topextra->backingStore; + extra->topextra->backingStore.destroy(); delete extra->topextra->icon; delete extra->topextra->iconPixmap; #if defined(Q_WS_QWS) && !defined(QT_NO_QWS_MANAGER) @@ -8540,9 +8585,11 @@ bool QWidget::event(QEvent *event) #endif // Q_WS_MAC break; } +#ifndef QT_NO_GESTURES case QEvent::Gesture: event->ignore(); break; +#endif #ifndef QT_NO_PROPERTIES case QEvent::DynamicPropertyChange: { const QByteArray &propName = static_cast<QDynamicPropertyChangeEvent *>(event)->propertyName(); @@ -11975,6 +12022,7 @@ QGraphicsProxyWidget *QWidget::graphicsProxyWidget() const Synonym for QList<QWidget *>. */ +#ifndef QT_NO_GESTURES /*! Subscribes the widget to a given \a gesture with specific \a flags. @@ -12002,7 +12050,7 @@ void QWidget::ungrabGesture(Qt::GestureType gesture) manager->cleanupCachedGestures(this, gesture); } } - +#endif // QT_NO_GESTURES /*! \typedef WId diff --git a/src/gui/kernel/qwidget.h b/src/gui/kernel/qwidget.h index e12148b..941bd68 100644 --- a/src/gui/kernel/qwidget.h +++ b/src/gui/kernel/qwidget.h @@ -360,8 +360,10 @@ public: void setGraphicsEffect(QGraphicsEffect *effect); #endif //QT_NO_GRAPHICSEFFECT +#ifndef QT_NO_GESTURES void grabGesture(Qt::GestureType type, Qt::GestureFlags flags = Qt::GestureFlags()); void ungrabGesture(Qt::GestureType type); +#endif public Q_SLOTS: void setWindowTitle(const QString &); @@ -742,8 +744,10 @@ private: friend class QGraphicsProxyWidgetPrivate; friend class QStyleSheetStyle; friend struct QWidgetExceptionCleaner; +#ifndef QT_NO_GESTURES friend class QGestureManager; friend class QWinNativePanGestureRecognizer; +#endif // QT_NO_GESTURES friend class QWidgetEffectSourcePrivate; #ifdef Q_WS_MAC diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm index 6df9c3b..56e72af 100644 --- a/src/gui/kernel/qwidget_mac.mm +++ b/src/gui/kernel/qwidget_mac.mm @@ -757,6 +757,7 @@ static OSWindowRef qt_mac_create_window(QWidget *, WindowClass wclass, WindowAtt return window; } +#ifndef QT_NO_GESTURES #if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6 /* We build the release package against the 10.4 SDK. So, to enable gestures for applications running on @@ -773,6 +774,7 @@ enum { kEventParamMagnificationAmount = 'magn' }; #endif +#endif // QT_NO_GESTURES // window events static EventTypeSpec window_events[] = { @@ -1081,6 +1083,7 @@ OSStatus QWidgetPrivate::qt_window_event(EventHandlerCallRef er, EventRef event, handled_event = false; break; } +#ifndef QT_NO_GESTURES case kEventClassGesture: { // First, find the widget that was under // the mouse when the gesture happened: @@ -1147,6 +1150,7 @@ OSStatus QWidgetPrivate::qt_window_event(EventHandlerCallRef er, EventRef event, QApplication::sendSpontaneousEvent(widget, &qNGEvent); break; } +#endif // QT_NO_GESTURES default: handled_event = false; diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h index 412705a..d432263 100644 --- a/src/gui/kernel/qwidget_p.h +++ b/src/gui/kernel/qwidget_p.h @@ -110,13 +110,53 @@ class QWidgetItemV2; class QStyle; +class Q_AUTOTEST_EXPORT QRefCountedWidgetBackingStore +{ +public: + QRefCountedWidgetBackingStore(); + ~QRefCountedWidgetBackingStore(); + + void create(QWidget *tlw); + void destroy(); + + void ref(); + void deref(); + + inline QWidgetBackingStore* data() + { + return m_ptr; + } + + inline QWidgetBackingStore* operator->() + { + return m_ptr; + } + + inline QWidgetBackingStore& operator*() + { + return *m_ptr; + } + + inline operator bool() const + { + return (0 != m_ptr); + } + +private: + Q_DISABLE_COPY(QRefCountedWidgetBackingStore) + +private: + QWidgetBackingStore* m_ptr; + int m_count; +}; + struct QTLWExtra { // *************************** Cross-platform variables ***************************** // Regular pointers (keep them together to avoid gaps on 64 bits architectures). QIcon *icon; // widget icon QPixmap *iconPixmap; - QWidgetBackingStore *backingStore; + QRefCountedWidgetBackingStore backingStore; QWindowSurface *windowSurface; QPainter *sharedPainter; @@ -686,7 +726,9 @@ public: #ifndef QT_NO_ACTION QList<QAction*> actions; #endif +#ifndef QT_NO_GESTURES QMap<Qt::GestureType, Qt::GestureFlags> gestureContext; +#endif // Bit fields. uint high_attributes[4]; // the low ones are in QWidget::widget_attributes @@ -715,8 +757,9 @@ public: void updateX11AcceptFocus(); #elif defined(Q_WS_WIN) // <--------------------------------------------------------- WIN uint noPaintOnScreen : 1; // see qwidget_win.cpp ::paintEngine() +#ifndef QT_NO_GESTURES uint nativeGesturePanEnabled : 1; - +#endif bool shouldShowMaximizeButton(); void winUpdateIsOpaque(); void reparentChildren(); @@ -930,7 +973,7 @@ inline QWidgetBackingStore *QWidgetPrivate::maybeBackingStore() const { Q_Q(const QWidget); QTLWExtra *x = q->window()->d_func()->maybeTopData(); - return x ? x->backingStore : 0; + return x ? x->backingStore.data() : 0; } QT_END_NAMESPACE diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index 02e7cb8..86b858d 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -433,6 +433,7 @@ void QWidgetPrivate::create_sys(WId window, bool /* initializeWindow */, bool de // Request mouse move events. drawableWindow->PointerFilter(EPointerFilterEnterExit | EPointerFilterMove | EPointerFilterDrag, 0); + drawableWindow->EnableVisibilityChangeEvents(); if (q->isVisible() && q->testAttribute(Qt::WA_Mapped)) { activateSymbianWindow(control.data()); @@ -487,11 +488,8 @@ void QWidgetPrivate::show_sys() && !S60->buttonGroupContainer() && !S60->statusPane()) { bool isFullscreen = q->windowState() & Qt::WindowFullScreen; - bool cbaRequested = q->windowFlags() & Qt::WindowSoftkeysVisibleHint; - // If the window is fullscreen and has not explicitly requested that the CBA be visible - // we delay the creation even more. - if ((!isFullscreen || cbaRequested) && !q->testAttribute(Qt::WA_DontShowOnScreen)) { + if (!q->testAttribute(Qt::WA_DontShowOnScreen)) { // Create the status pane and CBA here CEikAppUi *ui = static_cast<CEikAppUi *>(S60->appUi()); @@ -911,14 +909,12 @@ void QWidgetPrivate::registerDropSite(bool /* on */) void QWidgetPrivate::createTLSysExtra() { - extra->topextra->backingStore = 0; extra->topextra->inExpose = 0; } void QWidgetPrivate::deleteTLSysExtra() { - delete extra->topextra->backingStore; - extra->topextra->backingStore = 0; + extra->topextra->backingStore.destroy(); } void QWidgetPrivate::createSysExtra() diff --git a/src/gui/kernel/qwidget_win.cpp b/src/gui/kernel/qwidget_win.cpp index 5482da3..a7e66bf 100644 --- a/src/gui/kernel/qwidget_win.cpp +++ b/src/gui/kernel/qwidget_win.cpp @@ -2075,7 +2075,7 @@ void QWidgetPrivate::registerTouchWindow() void QWidgetPrivate::winSetupGestures() { -#if !defined(QT_NO_NATIVE_GESTURES) +#if !defined(QT_NO_GESTURES) && !defined(QT_NO_NATIVE_GESTURES) Q_Q(QWidget); if (!q || !q->isVisible() || !nativeGesturePanEnabled) return; diff --git a/src/gui/kernel/qwinnativepangesturerecognizer_win.cpp b/src/gui/kernel/qwinnativepangesturerecognizer_win.cpp index 0bddbf6..780de5d 100644 --- a/src/gui/kernel/qwinnativepangesturerecognizer_win.cpp +++ b/src/gui/kernel/qwinnativepangesturerecognizer_win.cpp @@ -50,6 +50,8 @@ #include "private/qapplication_p.h" #include "private/qwidget_p.h" +#ifndef QT_NO_GESTURES + QT_BEGIN_NAMESPACE #if !defined(QT_NO_NATIVE_GESTURES) @@ -127,3 +129,5 @@ void QWinNativePanGestureRecognizer::reset(QGesture *state) #endif // QT_NO_NATIVE_GESTURES QT_END_NAMESPACE + +#endif // QT_NO_GESTURES diff --git a/src/gui/kernel/qwinnativepangesturerecognizer_win_p.h b/src/gui/kernel/qwinnativepangesturerecognizer_win_p.h index 146b067..64addeb 100644 --- a/src/gui/kernel/qwinnativepangesturerecognizer_win_p.h +++ b/src/gui/kernel/qwinnativepangesturerecognizer_win_p.h @@ -54,6 +54,7 @@ // #include <QGestureRecognizer> + #include <objbase.h> class IInkRectangle; @@ -87,6 +88,8 @@ DECLARE_INTERFACE_(IInkTablets, IDispatch) STDMETHOD(IsPacketPropertySupported)(THIS_ BSTR packetPropertyName, VARIANT_BOOL *Supported) PURE; }; +#ifndef QT_NO_GESTURES + QT_BEGIN_NAMESPACE #if !defined(QT_NO_NATIVE_GESTURES) @@ -105,4 +108,6 @@ public: QT_END_NAMESPACE +#endif // QT_NO_GESTURES + #endif // QWINNATIVEPANGESTURERECOGNIZER_WIN_P_H diff --git a/src/gui/painting/qbackingstore.cpp b/src/gui/painting/qbackingstore.cpp index f9cd59b..83751ed 100644 --- a/src/gui/painting/qbackingstore.cpp +++ b/src/gui/painting/qbackingstore.cpp @@ -909,7 +909,7 @@ void QWidgetPrivate::moveRect(const QRect &rect, int dx, int dy) QWidgetPrivate *pd = pw->d_func(); QRect clipR(pd->clipRect()); #ifdef Q_WS_QWS - QWidgetBackingStore *wbs = x->backingStore; + QWidgetBackingStore *wbs = x->backingStore.data(); QWSWindowSurface *surface = static_cast<QWSWindowSurface*>(wbs->windowSurface); clipR = clipR.intersected(surface->clipRegion().translated(-toplevelOffset).boundingRect()); #endif @@ -939,7 +939,7 @@ void QWidgetPrivate::moveRect(const QRect &rect, int dx, int dy) invalidateBuffer((newRect & clipR).translated(-data.crect.topLeft())); } else { - QWidgetBackingStore *wbs = x->backingStore; + QWidgetBackingStore *wbs = x->backingStore.data(); QRegion childExpose(newRect & clipR); if (sourceRect.isValid() && wbs->bltRect(sourceRect, dx, dy, pw)) @@ -982,7 +982,7 @@ void QWidgetPrivate::scrollRect(const QRect &rect, int dx, int dy) if (x->inTopLevelResize) return; - QWidgetBackingStore *wbs = x->backingStore; + QWidgetBackingStore *wbs = x->backingStore.data(); if (!wbs) return; diff --git a/src/gui/painting/qbrush.cpp b/src/gui/painting/qbrush.cpp index b468b11..d3061d8 100644 --- a/src/gui/painting/qbrush.cpp +++ b/src/gui/painting/qbrush.cpp @@ -48,6 +48,7 @@ #include "qline.h" #include "qdebug.h" #include <QtCore/qcoreapplication.h> +#include "private/qstylehelper_p.h" QT_BEGIN_NAMESPACE @@ -96,9 +97,11 @@ const uchar *qt_patternForBrush(int brushStyle, bool invert) QPixmap qt_pixmapForBrush(int brushStyle, bool invert) { + QPixmap pm; - QString key = QLatin1String("$qt-brush$") + QString::number(brushStyle) - + QString::number((int)invert); + QString key = QLatin1Literal("$qt-brush$") + % HexString<uint>(brushStyle) + % QLatin1Char(invert ? '1' : '0'); if (!QPixmapCache::find(key, pm)) { pm = QBitmap::fromData(QSize(8, 8), qt_patternForBrush(brushStyle, invert), QImage::Format_MonoLSB); diff --git a/src/gui/painting/qdrawutil.cpp b/src/gui/painting/qdrawutil.cpp index 3ce95ef..11ea6d5 100644 --- a/src/gui/painting/qdrawutil.cpp +++ b/src/gui/painting/qdrawutil.cpp @@ -48,6 +48,7 @@ #include <private/qpaintengineex_p.h> #include <qvarlengtharray.h> #include <qmath.h> +#include <private/qstylehelper_p.h> QT_BEGIN_NAMESPACE @@ -1018,7 +1019,9 @@ void qDrawItem(QPainter *p, Qt::GUIStyle gs, ; #ifndef QT_NO_IMAGE_HEURISTIC_MASK } else { // color pixmap, no mask - QString k = QString::fromLatin1("$qt-drawitem-%1").arg(pm.cacheKey()); + QString k = QLatin1Literal("$qt-drawitem") + % HexString<qint64>(pm.cacheKey()); + if (!QPixmapCache::find(k, pm)) { pm = pm.createHeuristicMask(); pm.setMask((QBitmap&)pm); diff --git a/src/gui/painting/qpaintengine_x11.cpp b/src/gui/painting/qpaintengine_x11.cpp index aef8b80..b8ad9b3 100644 --- a/src/gui/painting/qpaintengine_x11.cpp +++ b/src/gui/painting/qpaintengine_x11.cpp @@ -79,6 +79,8 @@ #include <private/qtessellator_p.h> #endif +#include <private/qstylehelper_p.h> + QT_BEGIN_NAMESPACE extern Drawable qt_x11Handle(const QPaintDevice *pd); @@ -224,7 +226,10 @@ static const uchar base_dither_matrix[DITHER_SIZE][DITHER_SIZE] = { static QPixmap qt_patternForAlpha(uchar alpha, int screen) { QPixmap pm; - QString key = QLatin1String("$qt-alpha-brush$") + QString::number(alpha) + QString::number(screen); + QString key = QLatin1Literal("$qt-alpha-brush$") + % HexString<uchar>(alpha) + % HexString<int>(screen); + if (!QPixmapCache::find(key, pm)) { // #### why not use a mono image here???? QImage pattern(DITHER_SIZE, DITHER_SIZE, QImage::Format_ARGB32); diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp index dd3584a..98db917 100644 --- a/src/gui/painting/qpainter.cpp +++ b/src/gui/painting/qpainter.cpp @@ -72,6 +72,7 @@ #include <private/qmath_p.h> #include <qstatictext.h> #include <private/qstatictext_p.h> +#include <private/qstylehelper_p.h> QT_BEGIN_NAMESPACE @@ -5855,14 +5856,24 @@ void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText return; } + if (d->extended->type() == QPaintEngine::OpenGL2 && !staticText_d->untransformedCoordinates) { + staticText_d->untransformedCoordinates = true; + staticText_d->needsRelayout = true; + } else if (d->extended->type() != QPaintEngine::OpenGL2 && staticText_d->untransformedCoordinates) { + staticText_d->untransformedCoordinates = false; + staticText_d->needsRelayout = true; + } + // Don't recalculate entire layout because of translation, rather add the dx and dy // into the position to move each text item the correct distance. - QPointF transformedPosition = topLeftPosition * d->state->matrix; - QTransform matrix = d->state->matrix; + QPointF transformedPosition = topLeftPosition; + if (!staticText_d->untransformedCoordinates) + transformedPosition = transformedPosition * d->state->matrix; + QTransform oldMatrix; // The translation has been applied to transformedPosition. Remove translation // component from matrix. - if (d->state->matrix.isTranslating()) { + if (d->state->matrix.isTranslating() && !staticText_d->untransformedCoordinates) { qreal m11 = d->state->matrix.m11(); qreal m12 = d->state->matrix.m12(); qreal m13 = d->state->matrix.m13(); @@ -5871,6 +5882,7 @@ void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText qreal m23 = d->state->matrix.m23(); qreal m33 = d->state->matrix.m33(); + oldMatrix = d->state->matrix; d->state->matrix.setMatrix(m11, m12, m13, m21, m22, m23, 0.0, 0.0, m33); @@ -5879,7 +5891,7 @@ void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText // If the transform is not identical to the text transform, // we have to relayout the text (for other transformations than plain translation) bool staticTextNeedsReinit = staticText_d->needsRelayout; - if (staticText_d->matrix != d->state->matrix) { + if (!staticText_d->untransformedCoordinates && staticText_d->matrix != d->state->matrix) { staticText_d->matrix = d->state->matrix; staticTextNeedsReinit = true; } @@ -5918,8 +5930,8 @@ void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText if (currentColor != oldPen.color()) setPen(oldPen); - if (matrix.isTranslating()) - d->state->matrix = matrix; + if (!staticText_d->untransformedCoordinates && oldMatrix.isTranslating()) + d->state->matrix = oldMatrix; } /*! @@ -5937,6 +5949,23 @@ void QPainter::drawText(const QPointF &p, const QString &str, int tf, int justif if (!d->engine || str.isEmpty() || pen().style() == Qt::NoPen) return; + if (tf & Qt::TextBypassShaping) { + // Skip harfbuzz complex shaping, shape using glyph advances only + int len = str.length(); + int numGlyphs = len; + QVarLengthGlyphLayoutArray glyphs(len); + QFontEngine *fontEngine = d->state->font.d->engineForScript(QUnicodeTables::Common); + if (!fontEngine->stringToCMap(str.data(), len, &glyphs, &numGlyphs, 0)) { + glyphs.resize(numGlyphs); + if (!fontEngine->stringToCMap(str.data(), len, &glyphs, &numGlyphs, 0)) + Q_ASSERT_X(false, Q_FUNC_INFO, "stringToCMap shouldn't fail twice"); + } + + QTextItemInt gf(glyphs, &d->state->font, fontEngine); + drawTextItem(p, gf); + return; + } + QStackTextEngine engine(str, d->state->font); engine.option.setTextDirection(d->state->layoutDirection); if (tf & (Qt::TextForceLeftToRight|Qt::TextForceRightToLeft)) { @@ -6217,10 +6246,9 @@ static QPixmap generateWavyPixmap(qreal maxRadius, const QPen &pen) { const qreal radiusBase = qMax(qreal(1), maxRadius); - QString key = QLatin1String("WaveUnderline-"); - key += pen.color().name(); - key += QLatin1Char('-'); - key += QString::number(radiusBase); + QString key = QLatin1Literal("WaveUnderline-") + % pen.color().name() + % HexString<qreal>(radiusBase); QPixmap pixmap; if (QPixmapCache::find(key, pixmap)) diff --git a/src/gui/statemachine/qguistatemachine.cpp b/src/gui/statemachine/qguistatemachine.cpp index 63ad94e..2b4c9c2 100644 --- a/src/gui/statemachine/qguistatemachine.cpp +++ b/src/gui/statemachine/qguistatemachine.cpp @@ -474,9 +474,11 @@ static QEvent *cloneEvent(QEvent *e) case QEvent::TouchEnd: return new QTouchEvent(*static_cast<QTouchEvent*>(e)); +#ifndef QT_NO_GESTURES case QEvent::NativeGesture: Q_ASSERT_X(false, "cloneEvent()", "not implemented"); break; +#endif case QEvent::RequestSoftwareInputPanel: case QEvent::CloseSoftwareInputPanel: diff --git a/src/gui/styles/qgtkpainter.cpp b/src/gui/styles/qgtkpainter.cpp index 79c53e9..0217a39 100644 --- a/src/gui/styles/qgtkpainter.cpp +++ b/src/gui/styles/qgtkpainter.cpp @@ -241,8 +241,10 @@ void QGtkPainter::paintBoxGap(GtkWidget *gtkWidget, const gchar* part, if (rect.height() > maxHeight && (gap_side == GTK_POS_TOP || gap_side == GTK_POS_BOTTOM)) rect.setHeight(2 * border + 1); - QString gapExtras = QString(QLS("s %0 w %1 g %2")).arg(gap_side).arg(width).arg(x); - QString pixmapName = uniqueName(QLS(part), state, shadow, rect.size(), gtkWidget) + gapExtras; + QString pixmapName = uniqueName(QLS(part), state, shadow, rect.size(), gtkWidget) + % HexString<uchar>(gap_side) + % HexString<gint>(width) + % HexString<gint>(x); if (!m_usePixmapCache || !QPixmapCache::find(pixmapName, cache)) { DRAW_TO_CACHE(QGtkStylePrivate::gtk_paint_box_gap (style, @@ -307,7 +309,7 @@ void QGtkPainter::paintBox(GtkWidget *gtkWidget, const gchar* part, rect.setHeight(2 * border + 1); QString pixmapName = uniqueName(QLS(part), state, shadow, - rect.size(), gtkWidget) + pmKey; + rect.size(), gtkWidget) % pmKey; if (!m_usePixmapCache || !QPixmapCache::find(pixmapName, cache)) { DRAW_TO_CACHE(QGtkStylePrivate::gtk_paint_box (style, @@ -357,9 +359,11 @@ void QGtkPainter::paintHline(GtkWidget *gtkWidget, const gchar* part, return; QPixmap cache; - QString hLineExtras = QString(QLS("%0 %1 %2")).arg(x1).arg(x2).arg(y); QString pixmapName = uniqueName(QLS(part), state, GTK_SHADOW_NONE, rect.size(), gtkWidget) - + hLineExtras + pmKey; + % HexString<int>(x1) + % HexString<int>(x2) + % HexString<int>(y) + % pmKey; if (!m_usePixmapCache || !QPixmapCache::find(pixmapName, cache)) { DRAW_TO_CACHE(QGtkStylePrivate::gtk_paint_hline (style, pixmap, @@ -384,9 +388,12 @@ void QGtkPainter::paintVline(GtkWidget *gtkWidget, const gchar* part, return; QPixmap cache; - QString vLineExtras = QString(QLS("%0 %1 %2")).arg(y1).arg(y2).arg(x); - QString pixmapName = uniqueName(QLS(part), state, GTK_SHADOW_NONE, rect.size(), - gtkWidget) + vLineExtras +pmKey; + QString pixmapName = uniqueName(QLS(part), state, GTK_SHADOW_NONE, rect.size(), gtkWidget) + % HexString<int>(y1) + % HexString<int>(y2) + % HexString<int>(x) + % pmKey; + if (!m_usePixmapCache || !QPixmapCache::find(pixmapName, cache)) { DRAW_TO_CACHE(QGtkStylePrivate::gtk_paint_vline (style, pixmap, @@ -412,8 +419,10 @@ void QGtkPainter::paintExpander(GtkWidget *gtkWidget, return; QPixmap cache; - QString pixmapName = uniqueName(QLS(part), state, GTK_SHADOW_NONE, rect.size(), - gtkWidget) + QString::number(expander_state) + pmKey; + QString pixmapName = uniqueName(QLS(part), state, GTK_SHADOW_NONE, rect.size(), gtkWidget) + % HexString<uchar>(expander_state) + % pmKey; + if (!m_usePixmapCache || !QPixmapCache::find(pixmapName, cache)) { DRAW_TO_CACHE(QGtkStylePrivate::gtk_paint_expander (style, pixmap, state, NULL, @@ -436,7 +445,7 @@ void QGtkPainter::paintFocus(GtkWidget *gtkWidget, const gchar* part, return; QPixmap cache; - QString pixmapName = uniqueName(QLS(part), state, GTK_SHADOW_NONE, rect.size(), gtkWidget) + pmKey; + QString pixmapName = uniqueName(QLS(part), state, GTK_SHADOW_NONE, rect.size(), gtkWidget) % pmKey; if (!m_usePixmapCache || !QPixmapCache::find(pixmapName, cache)) { DRAW_TO_CACHE(QGtkStylePrivate::gtk_paint_focus (style, pixmap, state, NULL, gtkWidget, @@ -461,7 +470,7 @@ void QGtkPainter::paintResizeGrip(GtkWidget *gtkWidget, const gchar* part, return; QPixmap cache; - QString pixmapName = uniqueName(QLS(part), state, shadow, rect.size(), gtkWidget) + pmKey; + QString pixmapName = uniqueName(QLS(part), state, shadow, rect.size(), gtkWidget) % pmKey; if (!m_usePixmapCache || !QPixmapCache::find(pixmapName, cache)) { DRAW_TO_CACHE(QGtkStylePrivate::gtk_paint_resize_grip (style, pixmap, state, NULL, gtkWidget, @@ -486,8 +495,9 @@ void QGtkPainter::paintArrow(GtkWidget *gtkWidget, const gchar* part, return; QPixmap cache; - QString pixmapName = uniqueName(QLS(part), state, shadow, rect.size()) + - QString::number((int)arrow_type) + pmKey; + QString pixmapName = uniqueName(QLS(part), state, shadow, rect.size()) + % HexString<uchar>(arrow_type) + % pmKey; GdkRectangle gtkCliprect = {0, 0, rect.width(), rect.height()}; int xOffset = m_cliprect.isValid() ? arrowrect.x() - m_cliprect.x() : 0; @@ -518,7 +528,8 @@ void QGtkPainter::paintHandle(GtkWidget *gtkWidget, const gchar* part, const QRe QPixmap cache; QString pixmapName = uniqueName(QLS(part), state, shadow, rect.size()) - + QString::number(orientation); + % HexString<uchar>(orientation); + if (!m_usePixmapCache || !QPixmapCache::find(pixmapName, cache)) { DRAW_TO_CACHE(QGtkStylePrivate::gtk_paint_handle (style, pixmap, @@ -546,7 +557,7 @@ void QGtkPainter::paintSlider(GtkWidget *gtkWidget, const gchar* part, const QRe return; QPixmap cache; - QString pixmapName = uniqueName(QLS(part), state, shadow, rect.size(), gtkWidget) + pmKey; + QString pixmapName = uniqueName(QLS(part), state, shadow, rect.size(), gtkWidget) % pmKey; if (!m_usePixmapCache || !QPixmapCache::find(pixmapName, cache)) { DRAW_TO_CACHE(QGtkStylePrivate::gtk_paint_slider (style, pixmap, @@ -577,7 +588,7 @@ void QGtkPainter::paintShadow(GtkWidget *gtkWidget, const gchar* part, QRect r = rect; QPixmap cache; - QString pixmapName = uniqueName(QLS(part), state, shadow, rect.size()) + pmKey; + QString pixmapName = uniqueName(QLS(part), state, shadow, rect.size()) % pmKey; if (!m_usePixmapCache || !QPixmapCache::find(pixmapName, cache)) { DRAW_TO_CACHE(QGtkStylePrivate::gtk_paint_shadow(style, pixmap, state, shadow, NULL, gtkWidget, part, 0, 0, rect.width(), rect.height())); @@ -596,7 +607,7 @@ void QGtkPainter::paintFlatBox(GtkWidget *gtkWidget, const gchar* part, return; QRect r = rect; QPixmap cache; - QString pixmapName = uniqueName(QLS(part), state, shadow, rect.size()) + pmKey; + QString pixmapName = uniqueName(QLS(part), state, shadow, rect.size()) % pmKey; if (!m_usePixmapCache || !QPixmapCache::find(pixmapName, cache)) { DRAW_TO_CACHE(QGtkStylePrivate::gtk_paint_flat_box (style, pixmap, @@ -623,8 +634,8 @@ void QGtkPainter::paintExtention(GtkWidget *gtkWidget, QRect r = rect; QPixmap cache; - QString pixmapName = uniqueName(QLS(part), state, shadow, rect.size(), gtkWidget); - pixmapName += QString::number(gap_pos); + QString pixmapName = uniqueName(QLS(part), state, shadow, rect.size(), gtkWidget) + % HexString<uchar>(gap_pos); if (!m_usePixmapCache || !QPixmapCache::find(pixmapName, cache)) { DRAW_TO_CACHE(QGtkStylePrivate::gtk_paint_extension (style, pixmap, state, shadow, diff --git a/src/gui/styles/qgtkstyle.cpp b/src/gui/styles/qgtkstyle.cpp index 9d6dc9a..b59a033 100644 --- a/src/gui/styles/qgtkstyle.cpp +++ b/src/gui/styles/qgtkstyle.cpp @@ -67,6 +67,7 @@ #include <QtGui/QRadioButton> #include <QtGui/QCheckBox> #include <QtGui/QTreeView> +#include <QtGui/QStyledItemDelegate> #include <qpixmapcache.h> #undef signals // Collides with GTK stymbols #include <private/qgtkpainter_p.h> @@ -692,7 +693,7 @@ void QGtkStyle::drawPrimitive(PrimitiveElement element, // thin rectangular images const int pmSize = 64; const int border = proxy()->pixelMetric(PM_DefaultFrameWidth, option, widget); - const QString pmKey = QString(QLS("windowframe %0")).arg(option->state); + const QString pmKey = QLatin1Literal("windowframe") % HexString<uint>(option->state); QPixmap pixmap; QRect pmRect(QPoint(0,0), QSize(pmSize, pmSize)); @@ -817,24 +818,49 @@ void QGtkStyle::drawPrimitive(PrimitiveElement element, option->state & State_Open ? openState : closedState , gtkTreeView->style); } break; + + case PE_PanelItemViewRow: + // This primitive is only used to draw selection behind selected expander arrows. + // We try not to decorate the tree branch background unless you inherit from StyledItemDelegate + // The reason for this is that a lot of code that relies on custom item delegates will look odd having + // a gradient on the branch but a flat shaded color on the item itself. + QCommonStyle::drawPrimitive(element, option, painter, widget); + if (!option->state & State_Selected) { + break; + } else { + if (const QAbstractItemView *view = qobject_cast<const QAbstractItemView*>(widget)) { + if (!qobject_cast<QStyledItemDelegate*>(view->itemDelegate())) + break; + } + } // fall through + case PE_PanelItemViewItem: if (const QStyleOptionViewItemV4 *vopt = qstyleoption_cast<const QStyleOptionViewItemV4 *>(option)) { - if (vopt->state & State_Selected) { - QLinearGradient gradient; - gradient.setStart(option->rect.left(), option->rect.top()); - gradient.setFinalStop(option->rect.left(), option->rect.bottom()); - gradient.setColorAt(0, option->palette.highlight().color().lighter(105)); - gradient.setColorAt(0.5, option->palette.highlight().color().lighter(101)); - gradient.setColorAt(0.51, option->palette.highlight().color().darker(101)); - gradient.setColorAt(1, option->palette.highlight().color().darker(105)); - painter->fillRect(option->rect, gradient); - } else { - if (vopt->backgroundBrush.style() != Qt::NoBrush) { - QPointF oldBO = painter->brushOrigin(); - painter->setBrushOrigin(vopt->rect.topLeft()); - painter->fillRect(vopt->rect, vopt->backgroundBrush); - painter->setBrushOrigin(oldBO); + if (vopt->backgroundBrush.style() != Qt::NoBrush) { + QPointF oldBO = painter->brushOrigin(); + painter->setBrushOrigin(vopt->rect.topLeft()); + painter->fillRect(vopt->rect, vopt->backgroundBrush); + painter->setBrushOrigin(oldBO); + if (!(option->state & State_Selected)) + break; + } + if (GtkWidget *gtkTreeView = d->gtkWidget("GtkTreeView")) { + const char *detail = "cell_even_ruled"; + if (vopt && vopt->features & QStyleOptionViewItemV2::Alternate) + detail = "cell_odd_ruled"; + bool isActive = option->state & State_Active; + QString key; + if (isActive ) { + // Required for active/non-active window appearance + key = QLS("a"); + GTK_WIDGET_SET_FLAGS(gtkTreeView, GTK_HAS_FOCUS); } + gtkPainter.paintFlatBox(gtkTreeView, detail, option->rect, + option->state & State_Selected ? GTK_STATE_SELECTED : + option->state & State_Enabled ? GTK_STATE_NORMAL : GTK_STATE_INSENSITIVE, + GTK_SHADOW_OUT, gtkTreeView->style, key); + if (isActive ) + GTK_WIDGET_UNSET_FLAGS(gtkTreeView, GTK_HAS_FOCUS); } } break; diff --git a/src/gui/styles/qplastiquestyle.cpp b/src/gui/styles/qplastiquestyle.cpp index c8711f6..20d9bd9 100644 --- a/src/gui/styles/qplastiquestyle.cpp +++ b/src/gui/styles/qplastiquestyle.cpp @@ -488,7 +488,9 @@ static void qBrushSetAlphaF(QBrush *brush, qreal alpha) // Modify the texture - ridiculously expensive. QPixmap texture = brush->texture(); QPixmap pixmap; - QString name = QString::fromLatin1("qbrushtexture-alpha-%1-%2").arg(alpha).arg(texture.cacheKey()); + QString name = QLatin1Literal("qbrushtexture-alpha") + % HexString<qreal>(alpha) + % HexString<qint64>(texture.cacheKey()); if (!QPixmapCache::find(name, pixmap)) { QImage image = texture.toImage(); QRgb *rgb = reinterpret_cast<QRgb *>(image.bits()); @@ -549,7 +551,10 @@ static QBrush qBrushLight(QBrush brush, int light) // Modify the texture - ridiculously expensive. QPixmap texture = brush.texture(); QPixmap pixmap; - QString name = QString::fromLatin1("qbrushtexture-light-%1-%2").arg(light).arg(texture.cacheKey()); + QString name = QLatin1Literal("qbrushtexture-light") + % HexString<int>(light) + % HexString<qint64>(texture.cacheKey()); + if (!QPixmapCache::find(name, pixmap)) { QImage image = texture.toImage(); QRgb *rgb = reinterpret_cast<QRgb *>(image.bits()); @@ -608,7 +613,10 @@ static QBrush qBrushDark(QBrush brush, int dark) // Modify the texture - ridiculously expensive. QPixmap texture = brush.texture(); QPixmap pixmap; - QString name = QString::fromLatin1("qbrushtexture-dark-%1-%2").arg(dark).arg(brush.texture().cacheKey()); + QString name = QLatin1Literal("qbrushtexture-dark") + % HexString<int>(dark) + % HexString<qint64>(texture.cacheKey()); + if (!QPixmapCache::find(name, pixmap)) { QImage image = texture.toImage(); QRgb *rgb = reinterpret_cast<QRgb *>(image.bits()); @@ -732,8 +740,12 @@ static QColor mergedColors(const QColor &colorA, const QColor &colorB, int facto static void qt_plastique_draw_gradient(QPainter *painter, const QRect &rect, const QColor &gradientStart, const QColor &gradientStop) { - QString gradientName; - gradientName.sprintf("%dx%d-%x-%x", rect.width(), rect.height(), gradientStart.rgba(), gradientStop.rgba()); + QString gradientName = QLatin1Literal("qplastique-g") + % HexString<int>(rect.width()) + % HexString<int>(rect.height()) + % HexString<QRgb>(gradientStart.rgba()) + % HexString<QRgb>(gradientStop.rgba()); + QPixmap cache; QPainter *p = painter; QRect r = rect; @@ -1092,14 +1104,6 @@ void QPlastiqueStyle::drawPrimitive(PrimitiveElement element, const QStyleOption Q_ASSERT(option); QColor borderColor = option->palette.background().color().darker(178); - QColor gradientStartColor = option->palette.button().color().lighter(104); - QColor gradientStopColor = option->palette.button().color().darker(105); - QColor highlightedGradientStartColor = option->palette.button().color().lighter(101); - QColor highlightedGradientStopColor = mergedColors(option->palette.button().color(), option->palette.highlight().color(), 85); - QColor highlightedBaseGradientStartColor = option->palette.base().color(); - QColor highlightedBaseGradientStopColor = mergedColors(option->palette.base().color().darker(105), option->palette.highlight().color(), 70); - QColor highlightedDarkInnerBorderColor = mergedColors(option->palette.button().color(), option->palette.highlight().color(), 35); - QColor highlightedLightInnerBorderColor = mergedColors(option->palette.button().color(), option->palette.highlight().color(), 58); QColor alphaCornerColor; if (widget) { // ### backgroundrole/foregroundrole should be part of the style option @@ -1107,13 +1111,7 @@ void QPlastiqueStyle::drawPrimitive(PrimitiveElement element, const QStyleOption } else { alphaCornerColor = mergedColors(option->palette.background().color(), borderColor); } - QColor alphaInnerColor = mergedColors(highlightedLightInnerBorderColor, gradientStartColor); - QColor alphaInnerColorNoHover = mergedColors(borderColor, gradientStartColor); QColor alphaTextColor = mergedColors(option->palette.background().color(), option->palette.text().color()); - QColor alphaLightTextColor = mergedColors(option->palette.background().color().lighter(250), option->palette.text().color().lighter(250)); - QColor lightShadow = option->palette.button().color().lighter(105); - QColor shadowGradientStartColor = option->palette.button().color().darker(115); - QColor shadow = shadowGradientStartColor; switch (element) { case PE_IndicatorButtonDropDown: @@ -2057,7 +2055,6 @@ void QPlastiqueStyle::drawControl(ControlElement element, const QStyleOption *op bool reverse = (tab->direction == Qt::RightToLeft); int lowerTop = selected ? 0 : 3; // to make the selected tab bigger than the rest - QRect adjustedRect; bool atEnd = (tab->position == QStyleOptionTab::End) || onlyTab; bool atBeginning = ((tab->position == QStyleOptionTab::Beginning) || onlyTab) && !leftCornerWidget; diff --git a/src/gui/styles/qstylesheetstyle.cpp b/src/gui/styles/qstylesheetstyle.cpp index 515b6c7..43fa4b9 100644 --- a/src/gui/styles/qstylesheetstyle.cpp +++ b/src/gui/styles/qstylesheetstyle.cpp @@ -3190,7 +3190,7 @@ void QStyleSheetStyle::drawComplexControl(ComplexControl cc, const QStyleOptionC subRule2.drawRule(p, r); } - handleSubRule.drawRule(p, grooveSubRule.boxRect(hr, Margin)); + handleSubRule.drawRule(p, handleSubRule.boxRect(hr, Margin)); } if (slider->subControls & SC_SliderTickmarks) { diff --git a/src/gui/styles/qwindowsstyle.cpp b/src/gui/styles/qwindowsstyle.cpp index 0314c6f..579dd0b 100644 --- a/src/gui/styles/qwindowsstyle.cpp +++ b/src/gui/styles/qwindowsstyle.cpp @@ -1388,8 +1388,9 @@ void QWindowsStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QRect r = opt->rect; int size = qMin(r.height(), r.width()); QPixmap pixmap; - QString pixmapName = QStyleHelper::uniqueName(QLatin1String("$qt_ia-") + QLatin1String(metaObject()->className()), opt, QSize(size, size)) - + QLatin1Char('-') + QString::number(pe); + QString pixmapName = QStyleHelper::uniqueName(QLatin1String("$qt_ia-") + % QLatin1String(metaObject()->className()), opt, QSize(size, size)) + % HexString<uint>(pe); if (!QPixmapCache::find(pixmapName, pixmap)) { int border = size/5; int sqsize = 2*(size/2); diff --git a/src/gui/text/qfontdatabase_s60.cpp b/src/gui/text/qfontdatabase_s60.cpp index 489b70b..943df7f 100644 --- a/src/gui/text/qfontdatabase_s60.cpp +++ b/src/gui/text/qfontdatabase_s60.cpp @@ -49,12 +49,12 @@ #include <private/qt_s60_p.h> #include "qendian.h" #include <private/qcore_symbian_p.h> -#if defined(QT_NO_FREETYPE) +#ifdef QT_NO_FREETYPE #include <openfont.h> #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include <graphics/openfontrasterizer.h> // COpenFontRasterizer has moved to a new header file #endif // SYMBIAN_ENABLE_SPLIT_HEADERS -#endif +#endif // QT_NO_FREETYPE QT_BEGIN_NAMESPACE @@ -91,7 +91,7 @@ QFileInfoList alternativeFilePaths(const QString &path, const QStringList &nameF return result; } -#if defined(QT_NO_FREETYPE) +#ifdef QT_NO_FREETYPE class QSymbianFontDatabaseExtrasImplementation : public QSymbianFontDatabaseExtras { public: @@ -100,16 +100,41 @@ public: const QSymbianTypeFaceExtras *extras(const QString &typeface, bool bold, bool italic) const; +#ifndef Q_SYMBIAN_HAS_FONTTABLE_API + struct CFontFromFontStoreReleaser { + static inline void cleanup(CFont *font) + { + if (!font) + return; + const QSymbianFontDatabaseExtrasImplementation *dbExtras = + static_cast<const QSymbianFontDatabaseExtrasImplementation*>(privateDb()->symbianExtras); + dbExtras->m_store->ReleaseFont(font); + } + }; +#endif // !Q_SYMBIAN_HAS_FONTTABLE_API + + struct CFontFromScreenDeviceReleaser { + static inline void cleanup(CFont *font) + { + if (!font) + return; + QS60Data::screenDevice()->ReleaseFont(font); + } + }; + private: +#ifndef Q_SYMBIAN_HAS_FONTTABLE_API RHeap* m_heap; CFontStore *m_store; COpenFontRasterizer *m_rasterizer; mutable QList<const QSymbianTypeFaceExtras *> m_extras; +#endif // !Q_SYMBIAN_HAS_FONTTABLE_API mutable QHash<QString, const QSymbianTypeFaceExtras *> m_extrasHash; }; QSymbianFontDatabaseExtrasImplementation::QSymbianFontDatabaseExtrasImplementation() { +#ifndef Q_SYMBIAN_HAS_FONTTABLE_API QStringList filters; filters.append(QLatin1String("*.ttf")); filters.append(QLatin1String("*.ccc")); @@ -131,10 +156,14 @@ QSymbianFontDatabaseExtrasImplementation::QSymbianFontDatabaseExtrasImplementati TPtrC fontFilePtr(qt_QString2TPtrC(fontFile)); QT_TRAP_THROWING(m_store->AddFileL(fontFilePtr)); } +#endif // !Q_SYMBIAN_HAS_FONTTABLE_API } QSymbianFontDatabaseExtrasImplementation::~QSymbianFontDatabaseExtrasImplementation() { +#ifdef Q_SYMBIAN_HAS_FONTTABLE_API + qDeleteAll(m_extrasHash); +#else // Q_SYMBIAN_HAS_FONTTABLE_API typedef QList<const QSymbianTypeFaceExtras *>::iterator iterator; for (iterator p = m_extras.begin(); p != m_extras.end(); ++p) { m_store->ReleaseFont((*p)->fontOwner()); @@ -143,6 +172,7 @@ QSymbianFontDatabaseExtrasImplementation::~QSymbianFontDatabaseExtrasImplementat delete m_store; m_heap->Close(); +#endif // Q_SYMBIAN_HAS_FONTTABLE_API } #ifndef FNTSTORE_H_INLINES_SUPPORT_FMM @@ -167,26 +197,37 @@ const QSymbianTypeFaceExtras *QSymbianFontDatabaseExtrasImplementation::extras(c { const QString searchKey = typeface + QString::number(int(bold)) + QString::number(int(italic)); if (!m_extrasHash.contains(searchKey)) { - CFont* font = NULL; TFontSpec searchSpec(qt_QString2TPtrC(typeface), 1); if (bold) searchSpec.iFontStyle.SetStrokeWeight(EStrokeWeightBold); if (italic) searchSpec.iFontStyle.SetPosture(EPostureItalic); + + CFont* font = NULL; +#ifdef Q_SYMBIAN_HAS_FONTTABLE_API + const TInt err = QS60Data::screenDevice()->GetNearestFontToDesignHeightInPixels(font, searchSpec); + Q_ASSERT(err == KErrNone && font); + QScopedPointer<CFont, CFontFromScreenDeviceReleaser> sFont(font); + QSymbianTypeFaceExtras *extras = new QSymbianTypeFaceExtras(font); + sFont.take(); + m_extrasHash.insert(searchKey, extras); +#else // Q_SYMBIAN_HAS_FONTTABLE_API const TInt err = m_store->GetNearestFontToDesignHeightInPixels(font, searchSpec); Q_ASSERT(err == KErrNone && font); const CBitmapFont *bitmapFont = static_cast<CBitmapFont*>(font); COpenFont *openFont = #ifdef FNTSTORE_H_INLINES_SUPPORT_FMM - bitmapFont->openFont(); -#else + bitmapFont->OpenFont(); +#else // FNTSTORE_H_INLINES_SUPPORT_FMM OpenFontFromBitmapFont(bitmapFont); #endif // FNTSTORE_H_INLINES_SUPPORT_FMM const TOpenFontFaceAttrib* const attrib = openFont->FaceAttrib(); const QString foundKey = QString((const QChar*)attrib->FullName().Ptr(), attrib->FullName().Length()); if (!m_extrasHash.contains(foundKey)) { + QScopedPointer<CFont, CFontFromFontStoreReleaser> sFont(font); QSymbianTypeFaceExtras *extras = new QSymbianTypeFaceExtras(font, openFont); + sFont.take(); m_extras.append(extras); m_extrasHash.insert(searchKey, extras); m_extrasHash.insert(foundKey, extras); @@ -194,10 +235,11 @@ const QSymbianTypeFaceExtras *QSymbianFontDatabaseExtrasImplementation::extras(c m_store->ReleaseFont(font); m_extrasHash.insert(searchKey, m_extrasHash.value(foundKey)); } +#endif // Q_SYMBIAN_HAS_FONTTABLE_API } return m_extrasHash.value(searchKey); } -#else +#else // QT_NO_FREETYPE class QFontEngineFTS60 : public QFontEngineFT { public: @@ -209,7 +251,7 @@ QFontEngineFTS60::QFontEngineFTS60(const QFontDef &fd) { default_hint_style = HintFull; } -#endif // defined(QT_NO_FREETYPE) +#endif // QT_NO_FREETYPE /* QFontEngineS60::pixelsToPoints, QFontEngineS60::pointsToPixels, QFontEngineMultiS60::QFontEngineMultiS60 @@ -261,12 +303,12 @@ static void initializeDb() if(!db || db->count) return; -#if defined(QT_NO_FREETYPE) +#ifdef QT_NO_FREETYPE if (!db->symbianExtras) db->symbianExtras = new QSymbianFontDatabaseExtrasImplementation; QSymbianFbsHeapLock lock(QSymbianFbsHeapLock::Unlock); - + const int numTypeFaces = QS60Data::screenDevice()->NumTypefaces(); const QSymbianFontDatabaseExtrasImplementation *dbExtras = static_cast<const QSymbianFontDatabaseExtrasImplementation*>(db->symbianExtras); @@ -278,6 +320,7 @@ static void initializeDb() TFontSpec fontSpec(typefaceSupport.iTypeface.iName, 11); if (QS60Data::screenDevice()->GetNearestFontInPixels(font, fontSpec) != KErrNone) continue; + QScopedPointer<CFont, QSymbianFontDatabaseExtrasImplementation::CFontFromScreenDeviceReleaser> sFont(font); if (font->TypeUid() == KCFbsFontUid) { TOpenFontFaceAttrib faceAttrib; const CFbsFont *cfbsFont = static_cast<const CFbsFont *>(font); @@ -318,14 +361,13 @@ static void initializeDb() fontAdded = true; } - QS60Data::screenDevice()->ReleaseFont(font); } Q_ASSERT(fontAdded); - lock.relock(); + lock.relock(); -#else // defined(QT_NO_FREETYPE) +#else // QT_NO_FREETYPE QDir dir(QDesktopServices::storageLocation(QDesktopServices::FontsLocation)); dir.setNameFilters(QStringList() << QLatin1String("*.ttf") << QLatin1String("*.ttc") << QLatin1String("*.pfa") @@ -334,7 +376,7 @@ static void initializeDb() const QByteArray file = QFile::encodeName(dir.absoluteFilePath(dir[i])); db->addTTFile(file); } -#endif // defined(QT_NO_FREETYPE) +#endif // QT_NO_FREETYPE } static inline void load(const QString &family = QString(), int script = -1) @@ -416,13 +458,13 @@ QFontEngine *QFontDatabase::findFont(int script, const QFontPrivate *, const QFo const QString fontFamily = desc.family->name; QFontDef request = req; request.family = fontFamily; -#if defined(QT_NO_FREETYPE) +#ifdef QT_NO_FREETYPE const QSymbianFontDatabaseExtrasImplementation *dbExtras = static_cast<const QSymbianFontDatabaseExtrasImplementation*>(db->symbianExtras); const QSymbianTypeFaceExtras *typeFaceExtras = dbExtras->extras(fontFamily, request.weight > QFont::Normal, request.style != QFont::StyleNormal); fe = new QFontEngineS60(request, typeFaceExtras); -#else +#else // QT_NO_FREETYPE QFontEngine::FaceId faceId; const QtFontFamily * const reqQtFontFamily = db->family(fontFamily); faceId.filename = reqQtFontFamily->fontFilename; @@ -433,7 +475,7 @@ QFontEngine *QFontDatabase::findFont(int script, const QFontPrivate *, const QFo fe = fte; else delete fte; -#endif +#endif // QT_NO_FREETYPE Q_ASSERT(fe); if (script == QUnicodeTables::Common diff --git a/src/gui/text/qfontengine_s60.cpp b/src/gui/text/qfontengine_s60.cpp index 93f02ff..925b3bf 100644 --- a/src/gui/text/qfontengine_s60.cpp +++ b/src/gui/text/qfontengine_s60.cpp @@ -50,21 +50,73 @@ #include <e32std.h> #include <eikenv.h> #include <gdi.h> +#if defined(Q_SYMBIAN_HAS_FONTTABLE_API) || defined(Q_SYMBIAN_HAS_GLYPHOUTLINE_API) +#include <graphics/gdi/gdiplatapi.h> +#endif // Q_SYMBIAN_HAS_FONTTABLE_API || Q_SYMBIAN_HAS_GLYPHOUTLINE_API QT_BEGIN_NAMESPACE -QSymbianTypeFaceExtras::QSymbianTypeFaceExtras(CFont* fontOwner, COpenFont *font) - : m_font(font) - , m_cmap(0) +#ifdef Q_SYMBIAN_HAS_FONTTABLE_API +QSymbianTypeFaceExtras::QSymbianTypeFaceExtras(CFont* cFont, COpenFont *openFont) + : m_cFont(cFont) , m_symbolCMap(false) - , m_fontOwner(fontOwner) +{ + Q_UNUSED(openFont) +} + +QSymbianTypeFaceExtras::~QSymbianTypeFaceExtras() +{ + QS60Data::screenDevice()->ReleaseFont(m_cFont); +} + +QByteArray QSymbianTypeFaceExtras::getSfntTable(uint tag) const +{ + RFontTable fontTable; + if (fontTable.Open(*m_cFont, tag) != KErrNone) + return QByteArray(); + const QByteArray byteArray(reinterpret_cast<const char *> + (fontTable.TableContent()),fontTable.TableLength()); + fontTable.Close(); + return byteArray; +} + +bool QSymbianTypeFaceExtras::getSfntTableData(uint tag, uchar *buffer, uint *length) const +{ + RFontTable fontTable; + if (fontTable.Open(*m_cFont, tag) != KErrNone) + return false; + + bool result = true; + const TInt tableByteLength = fontTable.TableLength(); + + if (*length > 0 && *length < tableByteLength) { + result = false; // Caller did not allocate enough memory + } else { + *length = tableByteLength; + if (buffer) + qMemCopy(buffer, fontTable.TableContent(), tableByteLength); + } + + fontTable.Close(); + return result; +} + +#else // Q_SYMBIAN_HAS_FONTTABLE_API +QSymbianTypeFaceExtras::QSymbianTypeFaceExtras(CFont* cFont, COpenFont *openFont) + : m_cFont(cFont) + , m_symbolCMap(false) + , m_openFont(openFont) { TAny *trueTypeExtension = NULL; - m_font->ExtendedInterface(KUidOpenFontTrueTypeExtension, trueTypeExtension); + m_openFont->ExtendedInterface(KUidOpenFontTrueTypeExtension, trueTypeExtension); m_trueTypeExtension = static_cast<MOpenFontTrueTypeExtension*>(trueTypeExtension); Q_ASSERT(m_trueTypeExtension); } +QSymbianTypeFaceExtras::~QSymbianTypeFaceExtras() +{ +} + QByteArray QSymbianTypeFaceExtras::getSfntTable(uint tag) const { Q_ASSERT(m_trueTypeExtension->HasTrueTypeTable(tag)); @@ -100,23 +152,25 @@ bool QSymbianTypeFaceExtras::getSfntTableData(uint tag, uchar *buffer, uint *len m_trueTypeExtension->ReleaseTrueTypeTable(table); return result; } +#endif // Q_SYMBIAN_HAS_FONTTABLE_API -const unsigned char *QSymbianTypeFaceExtras::cmap() const +const uchar *QSymbianTypeFaceExtras::cmap() const { - if (!m_cmap) { - m_cmapTable = getSfntTable(MAKE_TAG('c', 'm', 'a', 'p')); + if (m_cmapTable.isNull()) { + const QByteArray cmapTable = getSfntTable(MAKE_TAG('c', 'm', 'a', 'p')); int size = 0; - m_cmap = QFontEngineS60::getCMap(reinterpret_cast<const uchar *>(m_cmapTable.constData()), m_cmapTable.size(), &m_symbolCMap, &size); + const uchar *cmap = QFontEngine::getCMap(reinterpret_cast<const uchar *> + (cmapTable.constData()), cmapTable.size(), &m_symbolCMap, &size); + m_cmapTable = QByteArray(reinterpret_cast<const char *>(cmap), size); } - return m_cmap; + return reinterpret_cast<const uchar *>(m_cmapTable.constData()); } CFont *QSymbianTypeFaceExtras::fontOwner() const { - return m_fontOwner; + return m_cFont; } - // duplicated from qfontengine_xyz.cpp static inline unsigned int getChar(const QChar *str, int &i, const int len) { @@ -225,6 +279,35 @@ void QFontEngineS60::recalcAdvances(QGlyphLayout *glyphs, QTextEngine::ShaperFla } } +#ifdef Q_SYMBIAN_HAS_GLYPHOUTLINE_API +static bool parseGlyphPathData(const char *dataStr, const char *dataEnd, QPainterPath &path, + qreal fontPixelSize, const QPointF &offset, bool hinted); +#endif //Q_SYMBIAN_HAS_GLYPHOUTLINE_API + +void QFontEngineS60::addGlyphsToPath(glyph_t *glyphs, QFixedPoint *positions, + int nglyphs, QPainterPath *path, + QTextItem::RenderFlags flags) +{ +#ifdef Q_SYMBIAN_HAS_GLYPHOUTLINE_API + Q_UNUSED(flags) + RGlyphOutlineIterator iterator; + const TInt error = iterator.Open(*m_activeFont, glyphs, nglyphs); + if (KErrNone != error) + return; + const qreal fontSizeInPixels = qreal(m_activeFont->HeightInPixels()); + int count = 0; + do { + const TUint8* outlineUint8 = iterator.Outline(); + const char* const outlineChar = reinterpret_cast<const char*>(outlineUint8); + const char* const outlineEnd = outlineChar + iterator.OutlineLength(); + parseGlyphPathData(outlineChar, outlineEnd, *path, fontSizeInPixels, + positions[count++].toPointF(), false); + } while(KErrNone == iterator.Next() && count <= nglyphs); +#else // Q_SYMBIAN_HAS_GLYPHOUTLINE_API + QFontEngine::addGlyphsToPath(glyphs, positions, nglyphs, path, flags); +#endif //Q_SYMBIAN_HAS_GLYPHOUTLINE_API +} + QImage QFontEngineS60::alphaMapForGlyph(glyph_t glyph) { TOpenFontCharMetrics metrics; @@ -356,4 +439,69 @@ void QFontEngineS60::getCharacterData(glyph_t glyph, TOpenFontCharMetrics& metri } } +#ifdef Q_SYMBIAN_HAS_GLYPHOUTLINE_API +static inline void skipSpacesAndComma(const char* &str, const char* const strEnd) +{ + while (str <= strEnd && (*str == ' ' || *str == ',')) + ++str; +} + +static bool parseGlyphPathData(const char *svgPath, const char *svgPathEnd, QPainterPath &path, + qreal fontPixelSize, const QPointF &offset, bool hinted) +{ + Q_UNUSED(hinted) + QPointF p1, p2, firstSubPathPoint; + qreal *elementValues[] = + {&p1.rx(), &p1.ry(), &p2.rx(), &p2.ry()}; + const int unitsPerEm = 2048; // See: http://en.wikipedia.org/wiki/Em_%28typography%29 + const qreal resizeFactor = fontPixelSize / unitsPerEm; + + while (svgPath < svgPathEnd) { + skipSpacesAndComma(svgPath, svgPathEnd); + const char pathElem = *svgPath++; + skipSpacesAndComma(svgPath, svgPathEnd); + + if (pathElem != 'Z') { + char *endStr = 0; + int elementValuesCount = 0; + for (int i = 0; i < 4; ++i) { // 4 = size of elementValues[] + qreal coordinateValue = strtod(svgPath, &endStr); + if (svgPath == endStr) + break; + if (i % 2) // Flip vertically + coordinateValue = -coordinateValue; + *elementValues[i] = coordinateValue * resizeFactor; + elementValuesCount++; + svgPath = endStr; + skipSpacesAndComma(svgPath, svgPathEnd); + } + p1 += offset; + if (elementValuesCount == 2) + p2 = firstSubPathPoint; + else + p2 += offset; + } + + switch (pathElem) { + case 'M': + firstSubPathPoint = p1; + path.moveTo(p1); + break; + case 'Z': + path.closeSubpath(); + break; + case 'L': + path.lineTo(p1); + break; + case 'Q': + path.quadTo(p1, p2); + break; + default: + return false; + } + } + return true; +} +#endif // Q_SYMBIAN_HAS_GLYPHOUTLINE_API + QT_END_NAMESPACE diff --git a/src/gui/text/qfontengine_s60_p.h b/src/gui/text/qfontengine_s60_p.h index 6883730..beeb4cc 100644 --- a/src/gui/text/qfontengine_s60_p.h +++ b/src/gui/text/qfontengine_s60_p.h @@ -58,6 +58,14 @@ #include "qsize.h" #include <openfont.h> +#ifdef SYMBIAN_GDI_GLYPHDATA +#define Q_SYMBIAN_HAS_FONTTABLE_API +#endif + +#ifdef Q_SYMBIAN_HAS_FONTTABLE_API +#define Q_SYMBIAN_HAS_GLYPHOUTLINE_API +#endif // Q_SYMBIAN_HAS_FONTTABLE_API + class CFont; QT_BEGIN_NAMESPACE @@ -66,20 +74,22 @@ QT_BEGIN_NAMESPACE class QSymbianTypeFaceExtras { public: - QSymbianTypeFaceExtras(CFont* fontOwner, COpenFont *font); + QSymbianTypeFaceExtras(CFont* cFont, COpenFont *openFont = 0); + ~QSymbianTypeFaceExtras(); QByteArray getSfntTable(uint tag) const; bool getSfntTableData(uint tag, uchar *buffer, uint *length) const; - const unsigned char *cmap() const; + const uchar *cmap() const; CFont *fontOwner() const; private: - COpenFont *m_font; - mutable MOpenFontTrueTypeExtension *m_trueTypeExtension; - mutable const unsigned char *m_cmap; + CFont* m_cFont; mutable bool m_symbolCMap; mutable QByteArray m_cmapTable; - CFont* m_fontOwner; +#ifndef Q_SYMBIAN_HAS_FONTTABLE_API + COpenFont *m_openFont; + mutable MOpenFontTrueTypeExtension *m_trueTypeExtension; +#endif // Q_SYMBIAN_HAS_FONTTABLE_API }; class QFontEngineS60 : public QFontEngine @@ -91,6 +101,9 @@ public: bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, QTextEngine::ShaperFlags flags) const; void recalcAdvances(QGlyphLayout *glyphs, QTextEngine::ShaperFlags flags) const; + void addGlyphsToPath(glyph_t *glyphs, QFixedPoint *positions, int nglyphs, + QPainterPath *path, QTextItem::RenderFlags flags); + QImage alphaMapForGlyph(glyph_t glyph); glyph_metrics_t boundingBox(const QGlyphLayout &glyphs); diff --git a/src/gui/text/qfontmetrics.cpp b/src/gui/text/qfontmetrics.cpp index 5163c94..d02e841 100644 --- a/src/gui/text/qfontmetrics.cpp +++ b/src/gui/text/qfontmetrics.cpp @@ -526,6 +526,14 @@ int QFontMetrics::rightBearing(QChar ch) const */ int QFontMetrics::width(const QString &text, int len) const { + return width(text, len, 0); +} + +/*! + \internal +*/ +int QFontMetrics::width(const QString &text, int len, int flags) const +{ int pos = text.indexOf(QLatin1Char('\x9c')); if (pos != -1) { len = (len < 0) ? pos : qMin(pos, len); @@ -535,6 +543,23 @@ int QFontMetrics::width(const QString &text, int len) const if (len == 0) return 0; + if (flags & Qt::TextBypassShaping) { + // Skip harfbuzz complex shaping, only use advances + int numGlyphs = len; + QVarLengthGlyphLayoutArray glyphs(numGlyphs); + QFontEngine *engine = d->engineForScript(QUnicodeTables::Common); + if (!engine->stringToCMap(text.data(), len, &glyphs, &numGlyphs, 0)) { + glyphs.resize(numGlyphs); + if (!engine->stringToCMap(text.data(), len, &glyphs, &numGlyphs, 0)) + Q_ASSERT_X(false, Q_FUNC_INFO, "stringToCMap shouldn't fail twice"); + } + + QFixed width; + for (int i = 0; i < numGlyphs; ++i) + width += glyphs.advances_x[i]; + return qRound(width); + } + QStackTextEngine layout(text, d.data()); layout.ignoreBidi = true; return qRound(layout.width(0, len)); diff --git a/src/gui/text/qfontmetrics.h b/src/gui/text/qfontmetrics.h index dca4b93..2518b54 100644 --- a/src/gui/text/qfontmetrics.h +++ b/src/gui/text/qfontmetrics.h @@ -89,6 +89,7 @@ public: int leftBearing(QChar) const; int rightBearing(QChar) const; int width(const QString &, int len = -1) const; + int width(const QString &, int len, int flags) const; int width(QChar) const; int charWidth(const QString &str, int pos) const; diff --git a/src/gui/text/qstatictext.cpp b/src/gui/text/qstatictext.cpp index 84c1d96..10870aa 100644 --- a/src/gui/text/qstatictext.cpp +++ b/src/gui/text/qstatictext.cpp @@ -115,10 +115,12 @@ QT_BEGIN_NAMESPACE Qt::RichText. If it's the first time the static text is drawn, or if the static text, or the painter's font - or matrix have been altered since the last time it was drawn, the text's layout has to be - recalculated. This will impose an overhead on the QPainter::drawStaticText() call where the - relayout occurs. To avoid this overhead in the paint event, you can call prepare() ahead of - time to ensure that the layout is calculated. + has been altered since the last time it was drawn, the text's layout has to be + recalculated. On some paint engines, changing the matrix of the painter will also cause the + layout to be recalculated. In particular, this will happen for any engine except for the + OpenGL2 paint engine. Recalculating the layout will impose an overhead on the + QPainter::drawStaticText() call where it occurs. To avoid this overhead in the paint event, you + can call prepare() ahead of time to ensure that the layout is calculated. \sa QPainter::drawText(), QPainter::drawStaticText(), QTextLayout, QTextDocument */ @@ -188,8 +190,9 @@ void QStaticText::detach() When drawStaticText() is called, the layout of the QStaticText will be recalculated if any part of the QStaticText object has changed since the last time it was drawn. It will also be - recalculated if the painter's font or matrix are not the same as when the QStaticText was last - drawn. + recalculated if the painter's font is not the same as when the QStaticText was last drawn, or, + on any other paint engine than the OpenGL2 engine, if the painter's matrix has been altered + since the static text was last drawn. To avoid the overhead of creating the layout the first time you draw the QStaticText after making changes, you can use the prepare() function and pass in the \a matrix and \a font you @@ -364,14 +367,16 @@ QSizeF QStaticText::size() const QStaticTextPrivate::QStaticTextPrivate() : textWidth(-1.0), items(0), itemCount(0), glyphPool(0), positionPool(0), charPool(0), - needsRelayout(true), useBackendOptimizations(false), textFormat(Qt::AutoText) + needsRelayout(true), useBackendOptimizations(false), textFormat(Qt::AutoText), + untransformedCoordinates(false) { } QStaticTextPrivate::QStaticTextPrivate(const QStaticTextPrivate &other) : text(other.text), font(other.font), textWidth(other.textWidth), matrix(other.matrix), items(0), itemCount(0), glyphPool(0), positionPool(0), charPool(0), needsRelayout(true), - useBackendOptimizations(other.useBackendOptimizations), textFormat(other.textFormat) + useBackendOptimizations(other.useBackendOptimizations), textFormat(other.textFormat), + untransformedCoordinates(other.untransformedCoordinates) { } @@ -396,8 +401,9 @@ namespace { class DrawTextItemRecorder: public QPaintEngine { public: - DrawTextItemRecorder(bool useBackendOptimizations, int numChars) - : m_dirtyPen(false), m_useBackendOptimizations(useBackendOptimizations) + DrawTextItemRecorder(bool untransformedCoordinates, bool useBackendOptimizations, int numChars) + : m_dirtyPen(false), m_useBackendOptimizations(useBackendOptimizations), + m_untransformedCoordinates(untransformedCoordinates) { } @@ -423,7 +429,7 @@ namespace { if (m_dirtyPen) currentItem.color = state->pen().color(); - QTransform matrix = state->transform(); + QTransform matrix = m_untransformedCoordinates ? QTransform() : state->transform(); matrix.translate(position.x(), position.y()); QVarLengthArray<glyph_t> glyphs; @@ -486,14 +492,17 @@ namespace { bool m_dirtyPen; bool m_useBackendOptimizations; + bool m_untransformedCoordinates; }; class DrawTextItemDevice: public QPaintDevice { public: - DrawTextItemDevice(bool useBackendOptimizations, int numChars) + DrawTextItemDevice(bool untransformedCoordinates, bool useBackendOptimizations, + int numChars) { - m_paintEngine = new DrawTextItemRecorder(useBackendOptimizations, numChars); + m_paintEngine = new DrawTextItemRecorder(untransformedCoordinates, + useBackendOptimizations, numChars); } ~DrawTextItemDevice() @@ -629,7 +638,7 @@ void QStaticTextPrivate::init() position = QPointF(0, 0); - DrawTextItemDevice device(useBackendOptimizations, text.size()); + DrawTextItemDevice device(untransformedCoordinates, useBackendOptimizations, text.size()); { QPainter painter(&device); painter.setFont(font); diff --git a/src/gui/text/qstatictext_p.h b/src/gui/text/qstatictext_p.h index 2ab5579..1a96291 100644 --- a/src/gui/text/qstatictext_p.h +++ b/src/gui/text/qstatictext_p.h @@ -148,9 +148,10 @@ public: QFixedPoint *positionPool; // 4 bytes per text QChar *charPool; // 4 bytes per text - unsigned char needsRelayout : 1; - unsigned char useBackendOptimizations : 1; // 1 byte per text - unsigned char textFormat : 2; + unsigned char needsRelayout : 1; // 1 byte per text + unsigned char useBackendOptimizations : 1; + unsigned char textFormat : 2; + unsigned char untransformedCoordinates : 1; // ================ // 167 bytes per text diff --git a/src/gui/text/qtextcursor.cpp b/src/gui/text/qtextcursor.cpp index c91df3c..d6ac3aa 100644 --- a/src/gui/text/qtextcursor.cpp +++ b/src/gui/text/qtextcursor.cpp @@ -64,7 +64,7 @@ enum { QTextCursorPrivate::QTextCursorPrivate(QTextDocumentPrivate *p) : priv(p), x(0), position(0), anchor(0), adjusted_anchor(0), - currentCharFormat(-1), visualNavigation(false) + currentCharFormat(-1), visualNavigation(false), keepPositionOnInsert(false) { priv->addCursor(this); } @@ -79,6 +79,7 @@ QTextCursorPrivate::QTextCursorPrivate(const QTextCursorPrivate &rhs) x = rhs.x; currentCharFormat = rhs.currentCharFormat; visualNavigation = rhs.visualNavigation; + keepPositionOnInsert = rhs.keepPositionOnInsert; priv->addCursor(this); } @@ -95,7 +96,7 @@ QTextCursorPrivate::AdjustResult QTextCursorPrivate::adjustPosition(int position if (position < positionOfChange || (position == positionOfChange && (op == QTextUndoCommand::KeepCursor - || anchor < position) + || keepPositionOnInsert) ) ) { result = CursorUnchanged; @@ -1276,6 +1277,80 @@ void QTextCursor::setVisualNavigation(bool b) d->visualNavigation = b; } + +/*! + \since 4.7 + + Sets the visual x position for vertical cursor movements. + + The vertical movement x position is cleared automatically when the cursor moves horizontally, and kept + unchanged when the cursor moves vertically. The mechanism allows the cursor to move up and down on a + visually straight line with proportional fonts, and to gently "jump" over short lines. + + A value of -1 indicates no predefined x position. It will then be set automatically the next time the + cursor moves up or down. + + \sa verticalMovementX() + */ +void QTextCursor::setVerticalMovementX(int x) +{ + if (d) + d->x = x; +} + +/*! \since 4.7 + + Returns the visual x position for vertical cursor movements. + + A value of -1 indicates no predefined x position. It will then be set automatically the next time the + cursor moves up or down. + + \sa setVerticalMovementX() + */ +int QTextCursor::verticalMovementX() const +{ + return d ? d->x : -1; +} + +/*! + \since 4.7 + + Returns whether the cursor should keep its current position when text gets inserted at the position of the + cursor. + + The default is false; + + \sa setKeepPositionOnInsert() + */ +bool QTextCursor::keepPositionOnInsert() const +{ + return d ? d->keepPositionOnInsert : false; +} + +/*! + \since 4.7 + + Defines whether the cursor should keep its current position when text gets inserted at the current position of the + cursor. + + If \b is true, the cursor keeps its current position when text gets inserted at the positing of the cursor. + If \b is false, the cursor moves along with the inserted text. + + The default is false. + + Note that a cursor always moves when text is inserted before the current position of the cursor, and it + always keeps its position when text is inserted after the current position of the cursor. + + \sa keepPositionOnInsert() + */ +void QTextCursor::setKeepPositionOnInsert(bool b) +{ + if (d) + d->keepPositionOnInsert = b; +} + + + /*! Inserts \a text at the current position, using the current character format. @@ -1408,16 +1483,16 @@ void QTextCursor::deletePreviousChar() { if (!d || !d->priv) return; - + if (d->position != d->anchor) { removeSelectedText(); return; } - + if (d->anchor < 1 || !d->canDelete(d->anchor-1)) return; d->anchor--; - + QTextDocumentPrivate::FragmentIterator fragIt = d->priv->find(d->anchor); const QTextFragmentData * const frag = fragIt.value(); int fpos = fragIt.position(); @@ -1429,7 +1504,7 @@ void QTextCursor::deletePreviousChar() if (uc.unicode() >= 0xd800 && uc.unicode() < 0xdc00) --d->anchor; } - + d->adjusted_anchor = d->anchor; d->remove(); d->setX(); diff --git a/src/gui/text/qtextcursor.h b/src/gui/text/qtextcursor.h index 3e968a3..251cb33 100644 --- a/src/gui/text/qtextcursor.h +++ b/src/gui/text/qtextcursor.h @@ -132,6 +132,12 @@ public: bool visualNavigation() const; void setVisualNavigation(bool b); + void setVerticalMovementX(int x); + int verticalMovementX() const; + + void setKeepPositionOnInsert(bool b); + bool keepPositionOnInsert() const; + void deleteChar(); void deletePreviousChar(); diff --git a/src/gui/text/qtextcursor_p.h b/src/gui/text/qtextcursor_p.h index 1bdfa78..4e36b95 100644 --- a/src/gui/text/qtextcursor_p.h +++ b/src/gui/text/qtextcursor_p.h @@ -112,7 +112,8 @@ public: int anchor; int adjusted_anchor; int currentCharFormat; - bool visualNavigation; + uint visualNavigation : 1; + uint keepPositionOnInsert : 1; }; QT_END_NAMESPACE diff --git a/src/gui/text/qtextdocumentlayout.cpp b/src/gui/text/qtextdocumentlayout.cpp index f12bf0b..eeb66ce 100644 --- a/src/gui/text/qtextdocumentlayout.cpp +++ b/src/gui/text/qtextdocumentlayout.cpp @@ -79,7 +79,7 @@ Q_GUI_EXPORT extern int qt_defaultDpi(); // ################ should probably add frameFormatChange notification! -struct QLayoutStruct; +struct QTextLayoutStruct; class QTextFrameData : public QTextFrameLayoutData { @@ -109,7 +109,7 @@ public: QFixed minimumWidth; QFixed maximumWidth; - QLayoutStruct *currentLayoutStruct; + QTextLayoutStruct *currentLayoutStruct; bool sizeDirty; bool layoutDirty; @@ -123,8 +123,8 @@ QTextFrameData::QTextFrameData() { } -struct QLayoutStruct { - QLayoutStruct() : maximumWidth(QFIXED_MAX), fullLayout(false) +struct QTextLayoutStruct { + QTextLayoutStruct() : maximumWidth(QFIXED_MAX), fullLayout(false) {} QTextFrame *frame; QFixed x_left; @@ -477,9 +477,9 @@ public: HitPoint hitTest(QTextTable *table, const QFixedPoint &point, int *position, QTextLayout **l, Qt::HitTestAccuracy accuracy) const; HitPoint hitTest(QTextBlock bl, const QFixedPoint &point, int *position, QTextLayout **l, Qt::HitTestAccuracy accuracy) const; - QLayoutStruct layoutCell(QTextTable *t, const QTextTableCell &cell, QFixed width, - int layoutFrom, int layoutTo, QTextTableData *tableData, QFixed absoluteTableY, - bool withPageBreaks); + QTextLayoutStruct layoutCell(QTextTable *t, const QTextTableCell &cell, QFixed width, + int layoutFrom, int layoutTo, QTextTableData *tableData, QFixed absoluteTableY, + bool withPageBreaks); void setCellPosition(QTextTable *t, const QTextTableCell &cell, const QPointF &pos); QRectF layoutTable(QTextTable *t, int layoutFrom, int layoutTo, QFixed parentY); @@ -490,13 +490,13 @@ public: QRectF layoutFrame(QTextFrame *f, int layoutFrom, int layoutTo, QFixed frameWidth, QFixed frameHeight, QFixed parentY = 0); void layoutBlock(const QTextBlock &bl, int blockPosition, const QTextBlockFormat &blockFormat, - QLayoutStruct *layoutStruct, int layoutFrom, int layoutTo, const QTextBlockFormat *previousBlockFormat); - void layoutFlow(QTextFrame::Iterator it, QLayoutStruct *layoutStruct, int layoutFrom, int layoutTo, QFixed width = 0); - void pageBreakInsideTable(QTextTable *table, QLayoutStruct *layoutStruct); + QTextLayoutStruct *layoutStruct, int layoutFrom, int layoutTo, const QTextBlockFormat *previousBlockFormat); + void layoutFlow(QTextFrame::Iterator it, QTextLayoutStruct *layoutStruct, int layoutFrom, int layoutTo, QFixed width = 0); + void pageBreakInsideTable(QTextTable *table, QTextLayoutStruct *layoutStruct); - void floatMargins(const QFixed &y, const QLayoutStruct *layoutStruct, QFixed *left, QFixed *right) const; - QFixed findY(QFixed yFrom, const QLayoutStruct *layoutStruct, QFixed requiredWidth) const; + void floatMargins(const QFixed &y, const QTextLayoutStruct *layoutStruct, QFixed *left, QFixed *right) const; + QFixed findY(QFixed yFrom, const QTextLayoutStruct *layoutStruct, QFixed requiredWidth) const; QVector<QCheckPoint> checkPoints; @@ -1487,12 +1487,12 @@ static QFixed firstChildPos(const QTextFrame *f) return flowPosition(f->begin()); } -QLayoutStruct QTextDocumentLayoutPrivate::layoutCell(QTextTable *t, const QTextTableCell &cell, QFixed width, - int layoutFrom, int layoutTo, QTextTableData *td, - QFixed absoluteTableY, bool withPageBreaks) +QTextLayoutStruct QTextDocumentLayoutPrivate::layoutCell(QTextTable *t, const QTextTableCell &cell, QFixed width, + int layoutFrom, int layoutTo, QTextTableData *td, + QFixed absoluteTableY, bool withPageBreaks) { LDEBUG << "layoutCell"; - QLayoutStruct layoutStruct; + QTextLayoutStruct layoutStruct; layoutStruct.frame = t; layoutStruct.minimumWidth = 0; layoutStruct.maximumWidth = QFIXED_MAX; @@ -1641,9 +1641,9 @@ recalc_minmax_widths: // to figure out the min and the max width lay out the cell at // maximum width. otherwise the maxwidth calculation sometimes // returns wrong values - QLayoutStruct layoutStruct = layoutCell(table, cell, QFIXED_MAX, layoutFrom, - layoutTo, td, absoluteTableY, - /*withPageBreaks =*/false); + QTextLayoutStruct layoutStruct = layoutCell(table, cell, QFIXED_MAX, layoutFrom, + layoutTo, td, absoluteTableY, + /*withPageBreaks =*/false); // distribute the minimum width over all columns the cell spans QFixed widthToDistribute = layoutStruct.minimumWidth + widthPadding; @@ -1868,10 +1868,10 @@ relayout: ++rowCellCount; const QFixed width = td->cellWidth(c, cspan) - widthPadding; - QLayoutStruct layoutStruct = layoutCell(table, cell, width, - layoutFrom, layoutTo, - td, absoluteTableY, - /*withPageBreaks =*/true); + QTextLayoutStruct layoutStruct = layoutCell(table, cell, width, + layoutFrom, layoutTo, + td, absoluteTableY, + /*withPageBreaks =*/true); const QFixed height = layoutStruct.y + bottomPadding + topPadding; @@ -1976,7 +1976,7 @@ void QTextDocumentLayoutPrivate::positionFloat(QTextFrame *frame, QTextLine *cur QTextFrameData *pd = data(parent); Q_ASSERT(pd && pd->currentLayoutStruct); - QLayoutStruct *layoutStruct = pd->currentLayoutStruct; + QTextLayoutStruct *layoutStruct = pd->currentLayoutStruct; if (!pd->floats.contains(frame)) pd->floats.append(frame); @@ -2116,7 +2116,7 @@ QRectF QTextDocumentLayoutPrivate::layoutFrame(QTextFrame *f, int layoutFrom, in // function. fd->contentsWidth = newContentsWidth; - QLayoutStruct layoutStruct; + QTextLayoutStruct layoutStruct; layoutStruct.frame = f; layoutStruct.x_left = fd->leftMargin + fd->border + fd->padding; layoutStruct.x_right = layoutStruct.x_left + newContentsWidth; @@ -2179,7 +2179,7 @@ QRectF QTextDocumentLayoutPrivate::layoutFrame(QTextFrame *f, int layoutFrom, in return layoutStruct.updateRect; } -void QTextDocumentLayoutPrivate::layoutFlow(QTextFrame::Iterator it, QLayoutStruct *layoutStruct, +void QTextDocumentLayoutPrivate::layoutFlow(QTextFrame::Iterator it, QTextLayoutStruct *layoutStruct, int layoutFrom, int layoutTo, QFixed width) { LDEBUG << "layoutFlow from=" << layoutFrom << "to=" << layoutTo; @@ -2509,7 +2509,7 @@ void QTextDocumentLayoutPrivate::layoutFlow(QTextFrame::Iterator it, QLayoutStru } void QTextDocumentLayoutPrivate::layoutBlock(const QTextBlock &bl, int blockPosition, const QTextBlockFormat &blockFormat, - QLayoutStruct *layoutStruct, int layoutFrom, int layoutTo, const QTextBlockFormat *previousBlockFormat) + QTextLayoutStruct *layoutStruct, int layoutFrom, int layoutTo, const QTextBlockFormat *previousBlockFormat) { Q_Q(QTextDocumentLayout); @@ -2718,7 +2718,7 @@ void QTextDocumentLayoutPrivate::layoutBlock(const QTextBlock &bl, int blockPosi } } -void QTextDocumentLayoutPrivate::floatMargins(const QFixed &y, const QLayoutStruct *layoutStruct, +void QTextDocumentLayoutPrivate::floatMargins(const QFixed &y, const QTextLayoutStruct *layoutStruct, QFixed *left, QFixed *right) const { // qDebug() << "floatMargins y=" << y; @@ -2740,7 +2740,7 @@ void QTextDocumentLayoutPrivate::floatMargins(const QFixed &y, const QLayoutStru // qDebug() << "floatMargins: left="<<*left<<"right="<<*right<<"y="<<y; } -QFixed QTextDocumentLayoutPrivate::findY(QFixed yFrom, const QLayoutStruct *layoutStruct, QFixed requiredWidth) const +QFixed QTextDocumentLayoutPrivate::findY(QFixed yFrom, const QTextLayoutStruct *layoutStruct, QFixed requiredWidth) const { QFixed right, left; requiredWidth = qMin(requiredWidth, layoutStruct->x_right - layoutStruct->x_left); diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index dc099fc..b25795e 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -885,7 +885,7 @@ void QTextEngine::shapeText(int item) const QFixed letterSpacing = font.d->letterSpacing; QFixed wordSpacing = font.d->wordSpacing; - if (letterSpacingIsAbsolute) + if (letterSpacingIsAbsolute && letterSpacing.value()) letterSpacing *= font.d->dpi / qt_defaultDpiY(); if (letterSpacing != 0) { @@ -2653,6 +2653,12 @@ QTextItemInt::QTextItemInt(const QScriptItem &si, QFont *font, const QTextCharFo flags |= QTextItem::StrikeOut; } +QTextItemInt::QTextItemInt(const QGlyphLayout &g, QFont *font, QFontEngine *fe) + : flags(0), justified(false), underlineStyle(QTextCharFormat::NoUnderline), + num_chars(0), chars(0), logClusters(0), f(font), fontEngine(fe), glyphs(g) +{ +} + QTextItemInt QTextItemInt::midItem(QFontEngine *fontEngine, int firstGlyphIndex, int numGlyphs) const { QTextItemInt ti = *this; diff --git a/src/gui/text/qtextengine_p.h b/src/gui/text/qtextengine_p.h index d92148f..00b1392 100644 --- a/src/gui/text/qtextengine_p.h +++ b/src/gui/text/qtextengine_p.h @@ -311,6 +311,7 @@ public: logClusters(0), f(0), fontEngine(0) {} QTextItemInt(const QScriptItem &si, QFont *font, const QTextCharFormat &format = QTextCharFormat()); + QTextItemInt(const QGlyphLayout &g, QFont *font, QFontEngine *fe); /// copy the structure items, adjusting the glyphs arrays to the right subarrays. /// the width of the returned QTextItemInt is not adjusted, for speed reasons diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp index 412c909..f3aabc1 100644 --- a/src/gui/text/qtextlayout.cpp +++ b/src/gui/text/qtextlayout.cpp @@ -89,9 +89,9 @@ static QFixed alignLine(QTextEngine *eng, const QScriptLine &line) if (align & Qt::AlignJustify && eng->option.textDirection() == Qt::RightToLeft) align = Qt::AlignRight; if (align & Qt::AlignRight) - x = line.width - (line.textWidth + leadingSpaceWidth(eng, line)); + x = line.width - (line.textAdvance + leadingSpaceWidth(eng, line)); else if (align & Qt::AlignHCenter) - x = (line.width - line.textWidth)/2; + x = (line.width - line.textAdvance)/2; } return x; } diff --git a/src/gui/widgets/qabstractscrollarea.cpp b/src/gui/widgets/qabstractscrollarea.cpp index 8cffebd..30ce23b 100644 --- a/src/gui/widgets/qabstractscrollarea.cpp +++ b/src/gui/widgets/qabstractscrollarea.cpp @@ -295,8 +295,10 @@ void QAbstractScrollAreaPrivate::init() q->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); layoutChildren(); #ifndef Q_WS_MAC +#ifndef QT_NO_GESTURES viewport->grabGesture(Qt::PanGesture); #endif +#endif } #ifdef Q_WS_WIN @@ -546,8 +548,10 @@ void QAbstractScrollArea::setViewport(QWidget *widget) d->viewport->setFocusProxy(this); d->viewport->installEventFilter(d->viewportFilter.data()); #ifndef Q_WS_MAC +#ifndef QT_NO_GESTURES d->viewport->grabGesture(Qt::PanGesture); #endif +#endif d->layoutChildren(); if (isVisible()) d->viewport->show(); @@ -960,6 +964,7 @@ bool QAbstractScrollArea::event(QEvent *e) case QEvent::TouchUpdate: case QEvent::TouchEnd: return false; +#ifndef QT_NO_GESTURES case QEvent::Gesture: { QGestureEvent *ge = static_cast<QGestureEvent *>(e); @@ -980,6 +985,7 @@ bool QAbstractScrollArea::event(QEvent *e) } return false; } +#endif // QT_NO_GESTURES case QEvent::StyleChange: case QEvent::LayoutDirectionChange: case QEvent::ApplicationLayoutDirectionChange: @@ -1036,9 +1042,11 @@ bool QAbstractScrollArea::viewportEvent(QEvent *e) #endif return QFrame::event(e); case QEvent::LayoutRequest: +#ifndef QT_NO_GESTURES case QEvent::Gesture: case QEvent::GestureOverride: return event(e); +#endif default: break; } diff --git a/src/gui/widgets/qplaintextedit.cpp b/src/gui/widgets/qplaintextedit.cpp index 2734fba..21c2635 100644 --- a/src/gui/widgets/qplaintextedit.cpp +++ b/src/gui/widgets/qplaintextedit.cpp @@ -1476,6 +1476,7 @@ bool QPlainTextEdit::event(QEvent *e) d->sendControlEvent(e); } #endif +#ifndef QT_NO_GESTURES else if (e->type() == QEvent::Gesture) { QGestureEvent *ge = static_cast<QGestureEvent *>(e); QPanGesture *g = static_cast<QPanGesture *>(ge->gesture(Qt::PanGesture)); @@ -1499,6 +1500,7 @@ bool QPlainTextEdit::event(QEvent *e) } return true; } +#endif // QT_NO_GESTURES return QAbstractScrollArea::event(e); } diff --git a/src/gui/widgets/qprogressbar.h b/src/gui/widgets/qprogressbar.h index b461a21..58bc8b2 100644 --- a/src/gui/widgets/qprogressbar.h +++ b/src/gui/widgets/qprogressbar.h @@ -93,9 +93,11 @@ public: Qt::Orientation orientation() const; void setInvertedAppearance(bool invert); - bool invertedAppearance(); + bool invertedAppearance(); //### Qt5 make const + bool invertedAppearance() const { return const_cast<QProgressBar *>(this)->invertedAppearance(); } void setTextDirection(QProgressBar::Direction textDirection); - QProgressBar::Direction textDirection(); + QProgressBar::Direction textDirection(); //### Qt5 make const + QProgressBar::Direction textDirection() const { return const_cast<QProgressBar *>(this)->textDirection(); } void setFormat(const QString &format); QString format() const; diff --git a/src/gui/widgets/qstackedwidget.cpp b/src/gui/widgets/qstackedwidget.cpp index 6c4061c..57b43b5 100644 --- a/src/gui/widgets/qstackedwidget.cpp +++ b/src/gui/widgets/qstackedwidget.cpp @@ -228,11 +228,11 @@ int QStackedWidget::insertWidget(int index, QWidget *widget) } /*! - Removes the given \a widget from the QStackedWidget. + Removes \a widget from the QStackedWidget. i.e., \a widget is \e + not deleted but simply removed from the stacked layout, causing it + to be hidden. - \bold{Note:} The ownership of \a widget remains the same. - The widget is \e not deleted, but simply removed from the widget's - stacked layout, causing it to be hidden. + \bold{Note:} Ownership of \a widget reverts to the application. \sa addWidget(), insertWidget(), currentWidget() */ diff --git a/src/imports/gestures/plugin.cpp b/src/imports/gestures/plugin.cpp index 11f2392..1fc23ca 100644 --- a/src/imports/gestures/plugin.cpp +++ b/src/imports/gestures/plugin.cpp @@ -53,7 +53,9 @@ public: virtual void registerTypes(const char *uri) { Q_ASSERT(QLatin1String(uri) == QLatin1String("Qt.labs.gestures")); +#ifndef QT_NO_GESTURES qmlRegisterCustomType<QDeclarativeGestureArea>(uri,1,0, "GestureArea", new QDeclarativeGestureAreaParser); +#endif } }; @@ -62,4 +64,3 @@ QT_END_NAMESPACE #include "plugin.moc" Q_EXPORT_PLUGIN2(qmlgesturesplugin, QT_PREPEND_NAMESPACE(GestureAreaQmlPlugin)); - diff --git a/src/imports/gestures/qdeclarativegesturearea.cpp b/src/imports/gestures/qdeclarativegesturearea.cpp index 1b0aeeb..22be2f1 100644 --- a/src/imports/gestures/qdeclarativegesturearea.cpp +++ b/src/imports/gestures/qdeclarativegesturearea.cpp @@ -55,6 +55,8 @@ #include <private/qobject_p.h> +#ifndef QT_NO_GESTURES + QT_BEGIN_NAMESPACE class QDeclarativeGestureAreaPrivate : public QDeclarativeItemPrivate @@ -267,3 +269,5 @@ bool QDeclarativeGestureAreaPrivate::gestureEvent(QGestureEvent *event) } QT_END_NAMESPACE + +#endif // QT_NO_GESTURES diff --git a/src/imports/gestures/qdeclarativegesturearea_p.h b/src/imports/gestures/qdeclarativegesturearea_p.h index 0195511..ff89166 100644 --- a/src/imports/gestures/qdeclarativegesturearea_p.h +++ b/src/imports/gestures/qdeclarativegesturearea_p.h @@ -50,6 +50,8 @@ #include <QtCore/qstring.h> #include <QtGui/qgesture.h> +#ifndef QT_NO_GESTURES + QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -97,4 +99,6 @@ QML_DECLARE_TYPE(QDeclarativeGestureArea) QT_END_HEADER +#endif // QT_NO_GESTURES + #endif diff --git a/src/imports/webkit/qdeclarativewebview.cpp b/src/imports/webkit/qdeclarativewebview.cpp index 050e2b7..9e5647f 100644 --- a/src/imports/webkit/qdeclarativewebview.cpp +++ b/src/imports/webkit/qdeclarativewebview.cpp @@ -711,7 +711,7 @@ bool QDeclarativeWebView::sceneEvent(QEvent *event) return QDeclarativeItem::sceneEvent(event); } - +#ifndef QT_NO_ACTION /*! \qmlproperty action WebView::back This property holds the action for causing the previous URL in the history to be displayed. @@ -747,6 +747,7 @@ QAction *QDeclarativeWebView::stopAction() const { return page()->action(QWebPage::Stop); } +#endif // QT_NO_ACTION /*! \qmlproperty real WebView::title diff --git a/src/imports/webkit/qdeclarativewebview_p.h b/src/imports/webkit/qdeclarativewebview_p.h index 87bd938..042237e 100644 --- a/src/imports/webkit/qdeclarativewebview_p.h +++ b/src/imports/webkit/qdeclarativewebview_p.h @@ -108,10 +108,12 @@ class QDeclarativeWebView : public QDeclarativeItem Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) Q_PROPERTY(Status status READ status NOTIFY statusChanged) +#ifndef QT_NO_ACTION Q_PROPERTY(QAction* reload READ reloadAction CONSTANT) Q_PROPERTY(QAction* back READ backAction CONSTANT) Q_PROPERTY(QAction* forward READ forwardAction CONSTANT) Q_PROPERTY(QAction* stop READ stopAction CONSTANT) +#endif Q_PROPERTY(QDeclarativeWebSettings* settings READ settingsObject CONSTANT) @@ -154,10 +156,12 @@ public: qreal progress() const; QString statusText() const; +#ifndef QT_NO_ACTION QAction *reloadAction() const; QAction *backAction() const; QAction *forwardAction() const; QAction *stopAction() const; +#endif QWebPage *page() const; void setPage(QWebPage *page); diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp index f7ada8c..80b74c7 100644 --- a/src/network/access/qnetworkaccessmanager.cpp +++ b/src/network/access/qnetworkaccessmanager.cpp @@ -464,6 +464,15 @@ QNetworkAccessManager::~QNetworkAccessManager() #ifndef QT_NO_NETWORKPROXY delete d_func()->proxyFactory; #endif + + // Delete the QNetworkReply children first. + // Else a QAbstractNetworkCache might get deleted in ~QObject + // before a QNetworkReply that accesses the QAbstractNetworkCache + // object in its destructor. + qDeleteAll(findChildren<QNetworkReply *>()); + // The other children will be deleted in this ~QObject + // FIXME instead of this "hack" make the QNetworkReplyImpl + // properly watch the cache deletion, e.g. via a QWeakPointer. } #ifndef QT_NO_NETWORKPROXY diff --git a/src/network/access/qnetworkcookie.cpp b/src/network/access/qnetworkcookie.cpp index 865d338..d1bdd57 100644 --- a/src/network/access/qnetworkcookie.cpp +++ b/src/network/access/qnetworkcookie.cpp @@ -991,6 +991,8 @@ QList<QNetworkCookie> QNetworkCookiePrivate::parseSetCookieHeaderLine(const QByt } QString normalizedDomain = QUrl::fromAce(QUrl::toAce(QString::fromUtf8(rawDomain))); + if (normalizedDomain.isEmpty() && !rawDomain.isEmpty()) + return result; cookie.setDomain(maybeLeadingDot + normalizedDomain); } else if (field.first == "max-age") { bool ok = false; diff --git a/src/network/bearer/qnetworkconfigmanager_p.cpp b/src/network/bearer/qnetworkconfigmanager_p.cpp index 471927a..5d4274f 100644 --- a/src/network/bearer/qnetworkconfigmanager_p.cpp +++ b/src/network/bearer/qnetworkconfigmanager_p.cpp @@ -483,8 +483,10 @@ void QNetworkConfigurationManagerPrivate::pollEngines() QMutexLocker locker(&mutex); for (int i = 0; i < sessionEngines.count(); ++i) { - if ((forcedPolling && sessionEngines.at(i)->requiresPolling()) || - sessionEngines.at(i)->configurationsInUse()) { + if (!sessionEngines.at(i)->requiresPolling()) + continue; + + if (forcedPolling || sessionEngines.at(i)->configurationsInUse()) { pollingEngines.insert(i); QMetaObject::invokeMethod(sessionEngines.at(i), "requestUpdate"); } diff --git a/src/network/ssl/qsslcertificate.cpp b/src/network/ssl/qsslcertificate.cpp index fd647e2..31c5ed1 100644 --- a/src/network/ssl/qsslcertificate.cpp +++ b/src/network/ssl/qsslcertificate.cpp @@ -259,13 +259,28 @@ QByteArray QSslCertificate::version() const /*! Returns the certificate's serial number string in decimal format. + In case the serial number cannot be converted to decimal format + (i.e. if it is bigger than 4294967295, which means it does not fit into 4 bytes), + its hexadecimal version is returned. */ QByteArray QSslCertificate::serialNumber() const { - if (d->serialNumberString.isEmpty() && d->x509) - d->serialNumberString = - QByteArray::number(qlonglong(q_ASN1_INTEGER_get(d->x509->cert_info->serialNumber))); - + if (d->serialNumberString.isEmpty() && d->x509) { + ASN1_INTEGER *serialNumber = d->x509->cert_info->serialNumber; + // if we cannot convert to a long, just output the hexadecimal number + if (serialNumber->length > 4) { + QByteArray hexString; + hexString.reserve(serialNumber->length * 3); + for (int a = 0; a < serialNumber->length; ++a) { + hexString += QByteArray::number(serialNumber->data[a], 16).rightJustified(2, '0'); + hexString += ':'; + } + hexString.chop(1); + d->serialNumberString = hexString; + } else { + d->serialNumberString = QByteArray::number(qlonglong(q_ASN1_INTEGER_get(serialNumber))); + } + } return d->serialNumberString; } diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 5758b25..ee49a3d 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -1333,8 +1333,16 @@ void QGL2PaintEngineEx::drawStaticTextItem(QStaticTextItem *textItem) QFontEngineGlyphCache::Type glyphType = textItem->fontEngine->glyphFormat >= 0 ? QFontEngineGlyphCache::Type(textItem->fontEngine->glyphFormat) : d->glyphCacheType; + if (glyphType == QFontEngineGlyphCache::Raster_RGBMask) { + if (d->device->alphaRequested() || state()->matrix.type() > QTransform::TxTranslate + || (state()->composition_mode != QPainter::CompositionMode_Source + && state()->composition_mode != QPainter::CompositionMode_SourceOver)) + { + glyphType = QFontEngineGlyphCache::Raster_A8; + } + } - d->drawCachedGlyphs(glyphType, textItem, true); + d->drawCachedGlyphs(glyphType, textItem); } bool QGL2PaintEngineEx::drawTexture(const QRectF &dest, GLuint textureId, const QSize &size, const QRectF &src) @@ -1408,7 +1416,7 @@ void QGL2PaintEngineEx::drawTextItem(const QPointF &p, const QTextItem &textItem staticTextItem.numGlyphs = glyphs.size(); staticTextItem.glyphPositions = positions.data(); - d->drawCachedGlyphs(glyphType, &staticTextItem, false); + d->drawCachedGlyphs(glyphType, &staticTextItem); } return; } @@ -1439,21 +1447,16 @@ namespace { // #define QT_OPENGL_DRAWCACHEDGLYPHS_INDEX_ARRAY_VBO void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyphType, - QStaticTextItem *staticTextItem, - bool includeMatrixInCache) + QStaticTextItem *staticTextItem) { Q_Q(QGL2PaintEngineEx); QOpenGL2PaintEngineState *s = q->state(); QGLTextureGlyphCache *cache = - (QGLTextureGlyphCache *) staticTextItem->fontEngine->glyphCache(ctx, glyphType, - includeMatrixInCache - ? s->matrix - : QTransform()); + (QGLTextureGlyphCache *) staticTextItem->fontEngine->glyphCache(ctx, glyphType, QTransform()); if (!cache || cache->cacheType() != glyphType) { - cache = new QGLTextureGlyphCache(ctx, glyphType, - includeMatrixInCache ? s->matrix : QTransform()); + cache = new QGLTextureGlyphCache(ctx, glyphType, QTransform()); staticTextItem->fontEngine->setGlyphCache(ctx, cache); } @@ -1561,13 +1564,6 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp QBrush pensBrush = q->state()->pen.brush(); setBrush(pensBrush); - // When painting a QStaticTextItem, the glyph positions are already in device coordinates, - // therefore we temporarily set an identity matrix on the painter for the draw call to - // avoid transforming the positions twice. - QTransform old = s->matrix; - if (includeMatrixInCache) - s->matrix = QTransform(); - if (glyphType == QFontEngineGlyphCache::Raster_RGBMask) { // Subpixel antialiasing without gamma correction @@ -1664,9 +1660,6 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp #else glDrawElements(GL_TRIANGLE_STRIP, 6 * staticTextItem->numGlyphs, GL_UNSIGNED_SHORT, elementIndices.data()); #endif - - if (includeMatrixInCache) - s->matrix = old; } void QGL2PaintEngineEx::drawPixmapFragments(const QPainter::PixmapFragment *fragments, int fragmentCount, const QPixmap &pixmap, diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h index 0a046dc..59b90d8 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h @@ -202,8 +202,7 @@ public: void drawTexture(const QGLRect& dest, const QGLRect& src, const QSize &textureSize, bool opaque, bool pattern = false); void drawPixmapFragments(const QPainter::PixmapFragment *fragments, int fragmentCount, const QPixmap &pixmap, QPainter::PixmapFragmentHints hints); - void drawCachedGlyphs(QFontEngineGlyphCache::Type glyphType, QStaticTextItem *staticTextItem, - bool includeMatrixInCache); + void drawCachedGlyphs(QFontEngineGlyphCache::Type glyphType, QStaticTextItem *staticTextItem); // Calls glVertexAttributePointer if the pointer has changed inline void setVertexAttributePointer(unsigned int arrayIndex, const GLfloat *pointer); diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp index 410cf21..5371c5e 100644 --- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp +++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp @@ -276,6 +276,11 @@ void QGLTextureGlyphCache::fillTexture(const Coord &c, glyph_t glyph) } } +int QGLTextureGlyphCache::glyphMargin() const +{ + return 1; +} + int QGLTextureGlyphCache::glyphPadding() const { return 1; diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h b/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h index 6bcd655..84e9021 100644 --- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h +++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h @@ -72,6 +72,7 @@ public: virtual void createTextureData(int width, int height); virtual void resizeTextureData(int width, int height); virtual void fillTexture(const Coord &c, glyph_t glyph); + virtual int glyphMargin() const; virtual int glyphPadding() const; inline GLuint texture() const { return m_texture; } diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp index c8502c2..5c5d3d1 100644 --- a/src/opengl/qgl.cpp +++ b/src/opengl/qgl.cpp @@ -1256,6 +1256,8 @@ QGLFormat::OpenGLVersionFlags Q_AUTOTEST_EXPORT qOpenGLVersionFlagsFromString(co QGLFormat::OpenGL_Version_2_1 | QGLFormat::OpenGL_Version_3_0; switch (versionString[2].toAscii()) { + case '3': + versionFlags |= QGLFormat::OpenGL_Version_3_3; case '2': versionFlags |= QGLFormat::OpenGL_Version_3_2; case '1': @@ -1264,9 +1266,23 @@ QGLFormat::OpenGLVersionFlags Q_AUTOTEST_EXPORT qOpenGLVersionFlagsFromString(co break; default: versionFlags |= QGLFormat::OpenGL_Version_3_1 | - QGLFormat::OpenGL_Version_3_2; + QGLFormat::OpenGL_Version_3_2 | + QGLFormat::OpenGL_Version_3_3; break; } + } else if (versionString.startsWith(QLatin1String("4."))) { + versionFlags |= QGLFormat::OpenGL_Version_1_1 | + QGLFormat::OpenGL_Version_1_2 | + QGLFormat::OpenGL_Version_1_3 | + QGLFormat::OpenGL_Version_1_4 | + QGLFormat::OpenGL_Version_1_5 | + QGLFormat::OpenGL_Version_2_0 | + QGLFormat::OpenGL_Version_2_1 | + QGLFormat::OpenGL_Version_3_0 | + QGLFormat::OpenGL_Version_3_1 | + QGLFormat::OpenGL_Version_3_2 | + QGLFormat::OpenGL_Version_3_3 | + QGLFormat::OpenGL_Version_4_0; } else { versionFlags |= QGLFormat::OpenGL_Version_1_1 | QGLFormat::OpenGL_Version_1_2 | @@ -1277,7 +1293,9 @@ QGLFormat::OpenGLVersionFlags Q_AUTOTEST_EXPORT qOpenGLVersionFlagsFromString(co QGLFormat::OpenGL_Version_2_1 | QGLFormat::OpenGL_Version_3_0 | QGLFormat::OpenGL_Version_3_1 | - QGLFormat::OpenGL_Version_3_2; + QGLFormat::OpenGL_Version_3_2 | + QGLFormat::OpenGL_Version_3_3 | + QGLFormat::OpenGL_Version_4_0; } } return versionFlags; diff --git a/src/opengl/qgl.h b/src/opengl/qgl.h index f297009..f0b36f7 100644 --- a/src/opengl/qgl.h +++ b/src/opengl/qgl.h @@ -266,7 +266,9 @@ public: OpenGL_ES_Version_2_0 = 0x00000800, OpenGL_Version_3_0 = 0x00001000, OpenGL_Version_3_1 = 0x00002000, - OpenGL_Version_3_2 = 0x00004000 + OpenGL_Version_3_2 = 0x00004000, + OpenGL_Version_3_3 = 0x00008000, + OpenGL_Version_4_0 = 0x00010000 }; Q_DECLARE_FLAGS(OpenGLVersionFlags, OpenGLVersionFlag) diff --git a/src/opengl/qgl_x11.cpp b/src/opengl/qgl_x11.cpp index d203646..9491f14 100644 --- a/src/opengl/qgl_x11.cpp +++ b/src/opengl/qgl_x11.cpp @@ -1773,6 +1773,9 @@ QGLTexture *QGLContextPrivate::bindTextureFromNativePixmap(QPixmap *pixmap, cons glXBindTexImageEXT(x11Info.display(), (GLXPixmap)pixmapData->gl_surface, GLX_FRONT_LEFT_EXT, 0); glBindTexture(GL_TEXTURE_2D, textureId); + GLuint filtering = (options & QGLContext::LinearFilteringBindOption) ? GL_LINEAR : GL_NEAREST; + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filtering); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filtering); if (!((hasAlpha && RGBAConfigInverted) || (!hasAlpha && RGBConfigInverted))) options &= ~QGLContext::InvertedYBindOption; diff --git a/src/opengl/qglframebufferobject.cpp b/src/opengl/qglframebufferobject.cpp index 890b029..deffc20 100644 --- a/src/opengl/qglframebufferobject.cpp +++ b/src/opengl/qglframebufferobject.cpp @@ -1024,6 +1024,36 @@ QPaintEngine *QGLFramebufferObject::paintEngine() const } /*! + \fn bool QGLFramebufferObject::bindDefault() + \internal + + Switches rendering back to the default, windowing system provided + framebuffer. + Returns true upon success, false otherwise. + + \sa bind(), release() +*/ +bool QGLFramebufferObject::bindDefault() +{ + QGLContext *ctx = const_cast<QGLContext *>(QGLContext::currentContext()); + + if (ctx) { + bool ext_detected = (QGLExtensions::glExtensions() & QGLExtensions::FramebufferObject); + if (!ext_detected || (ext_detected && !qt_resolve_framebufferobject_extensions(ctx))) + return false; + + ctx->d_ptr->current_fbo = ctx->d_ptr->default_fbo; + glBindFramebuffer(GL_FRAMEBUFFER_EXT, ctx->d_ptr->default_fbo); +#ifdef QT_DEBUG + } else { + qWarning("QGLFramebufferObject::bindDefault() called without current context."); +#endif + } + + return ctx != 0; +} + +/*! \fn bool QGLFramebufferObject::hasOpenGLFramebufferObjects() Returns true if the OpenGL \c{GL_EXT_framebuffer_object} extension diff --git a/src/opengl/qglframebufferobject.h b/src/opengl/qglframebufferobject.h index 306b6ff..6ff6645 100644 --- a/src/opengl/qglframebufferobject.h +++ b/src/opengl/qglframebufferobject.h @@ -108,6 +108,8 @@ public: QPaintEngine *paintEngine() const; GLuint handle() const; + static bool bindDefault(); + static bool hasOpenGLFramebufferObjects(); void drawTexture(const QRectF &target, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D); diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp index 76a605a..4b22d5e 100644 --- a/src/openvg/qpaintengine_vg.cpp +++ b/src/openvg/qpaintengine_vg.cpp @@ -1622,11 +1622,48 @@ void QVGPaintEngine::clip(const QVectorPath &path, Qt::ClipOperation op) QRectF rect(points[0], points[1], points[2] - points[0], points[5] - points[1]); clip(rect.toRect(), op); - } else { - // The best we can do is clip to the bounding rectangle - // of all control points. - clip(path.controlPointRect().toRect(), op); + return; + } + + // Try converting the path into a QRegion that tightly follows + // the outline of the path we want to clip with. + QRegion region(path.convertToPainterPath().toFillPolygon(QTransform()).toPolygon()); + switch (op) { + case Qt::NoClip: + { + region = defaultClipRegion(); + } + break; + + case Qt::ReplaceClip: + { + region = d->transform.map(region); + } + break; + + case Qt::IntersectClip: + { + region = s->clipRegion.intersect(d->transform.map(region)); + } + break; + + case Qt::UniteClip: + { + region = s->clipRegion.unite(d->transform.map(region)); + } + break; } + if (region.numRects() <= d->maxScissorRects) { + // We haven't reached the maximum scissor count yet, so we can + // still make use of this region. + s->clipRegion = region; + updateScissor(); + return; + } + + // The best we can do is clip to the bounding rectangle + // of all control points. + clip(path.controlPointRect().toRect(), op); } void QVGPaintEngine::clip(const QRect &rect, Qt::ClipOperation op) diff --git a/src/plugins/bearer/symbian/symbianengine.cpp b/src/plugins/bearer/symbian/symbianengine.cpp index 8c26cf0..ab1ba28 100644 --- a/src/plugins/bearer/symbian/symbianengine.cpp +++ b/src/plugins/bearer/symbian/symbianengine.cpp @@ -389,9 +389,9 @@ void SymbianEngine::updateConfigurationsL() QNetworkConfigurationPrivatePointer ptr(cpPriv); accessPointConfigurations.insert(ident, ptr); - locker.unlock(); + mutex.unlock(); emit configurationAdded(ptr); - locker.relock(); + mutex.lock(); } else { delete cpPriv; } diff --git a/src/plugins/s60/s60pluginbase.pri b/src/plugins/s60/s60pluginbase.pri index 1a6f4a2..4e15102 100644 --- a/src/plugins/s60/s60pluginbase.pri +++ b/src/plugins/s60/s60pluginbase.pri @@ -8,11 +8,16 @@ QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/s60 MMP_RULES += NOEXPORTLIBRARY -defBlock = \ - "$${LITERAL_HASH}ifdef WINSCW" \ - "DEFFILE ../bwins/qts60plugin.def" \ - "$${LITERAL_HASH}else" \ - "DEFFILE ../eabi/qts60plugin.def" \ - "$${LITERAL_HASH}endif" +symbian-abld|symbian-sbsv2 { + defBlock = \ + "$${LITERAL_HASH}ifdef WINSCW" \ + "DEFFILE ../bwins/qts60plugin.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../eabi/qts60plugin.def" \ + "$${LITERAL_HASH}endif" +} else { + CONFIG *= def_files + DEF_FILE = ../eabi/qts60pluginu.def +} MMP_RULES += defBlock
\ No newline at end of file diff --git a/src/qbase.pri b/src/qbase.pri index 9c4732e..d2137d0 100644 --- a/src/qbase.pri +++ b/src/qbase.pri @@ -1,4 +1,4 @@ -isEmpty(TARGET):error(You must set TARGET before include()'ing $${_FILE_}) +isEmpty(TARGET):error("You must set TARGET before include()'ing $${_FILE_}") INCLUDEPATH *= $$QMAKE_INCDIR_QT/$$TARGET #just for today to have some compat !isEmpty(RCC_DIR): INCLUDEPATH += $$RCC_DIR isEmpty(QT_ARCH):!isEmpty(ARCH):QT_ARCH=$$ARCH #another compat that will rot for change #215700 diff --git a/src/s60installs/qt.iby b/src/s60installs/qt.iby index ec019e2..f43f344 100644 --- a/src/s60installs/qt.iby +++ b/src/s60installs/qt.iby @@ -74,6 +74,21 @@ data=\epoc32\data\z\resource\qt\plugins\codecs\qtwcodecs.qtplugin resou // iconengines stubs data=\epoc32\data\z\resource\qt\plugins\iconengines\qsvgicon.qtplugin resource\qt\plugins\iconengines\qsvgicon.qtplugin +// qml import plugins +file=ABI_DIR\BUILD_DIR\qmlwebkitplugin.dll SHARED_LIB_DIR\qmlwebkitplugin.dll +file=ABI_DIR\BUILD_DIR\qmlfolderlistmodelplugin.dll SHARED_LIB_DIR\qmlfolderlistmodelplugin.dll +file=ABI_DIR\BUILD_DIR\qmlgesturesplugin.dll SHARED_LIB_DIR\qmlgesturesplugin.dll +file=ABI_DIR\BUILD_DIR\qmlparticlesplugin.dll SHARED_LIB_DIR\qmlparticlesplugin.dll + +data=\epoc32\data\z\resource\qt\imports\org\webkit\qmlwebkitplugin.qtplugin resource\qt\imports\org\webkit\qmlwebkitplugin.qtplugin +data=\epoc32\data\z\resource\qt\imports\Qt\labs\folderlistmodel\qmlfolderlistmodelplugin.qtplugin resource\qt\imports\Qt\labs\folderlistmodel\qmlfolderlistmodelplugin.qtplugin +data=\epoc32\data\z\resource\qt\imports\Qt\labs\gestures\qmlgesturesplugin.qtplugin resource\qt\imports\Qt\labs\gestures\qmlgesturesplugin.qtplugin +data=\epoc32\data\z\resource\qt\imports\Qt\labs\particles\qmlparticlesplugin.qtplugin resource\qt\imports\Qt\labs\particles\qmlparticlesplugin.qtplugin + +data=\epoc32\data\z\resource\qt\imports\org\webkit\qmldir resource\qt\imports\org\webkit\qmldir +data=\epoc32\data\z\resource\qt\imports\Qt\labs\folderlistmodel\qmldir resource\qt\imports\Qt\labs\folderlistmodel\qmldir +data=\epoc32\data\z\resource\qt\imports\Qt\labs\gestures\qmldir resource\qt\imports\Qt\labs\gestures\qmldir +data=\epoc32\data\z\resource\qt\imports\Qt\labs\particles\qmldir resource\qt\imports\Qt\labs\particles\qmldir // QtMultimedia audio backend data=\epoc32\data\qt\qtlibspluginstubs\qaudio.qtplugin resource\qt\plugins\audio\qaudio.qtplugin diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro index 90c362b..d3d9eed 100644 --- a/src/s60installs/s60installs.pro +++ b/src/s60installs/s60installs.pro @@ -11,21 +11,24 @@ symbian: { isEmpty(QT_LIBINFIX) { TARGET.UID3 = 0x2001E61C - - # sqlite3 is expected to be already found on phone if infixed configuration is built. - BLD_INF_RULES.prj_exports += \ - "sqlite3.sis $${EPOCROOT}epoc32/data/qt/sis/sqlite3.sis" \ - "sqlite3_selfsigned.sis $${EPOCROOT}epoc32/data/qt/sis/sqlite3_selfsigned.sis" - symbian-abld|symbian-sbsv2 { - sqlitedeployment = \ - "; Deploy sqlite onto phone that does not have it already" \ - "@\"$${EPOCROOT}epoc32/data/qt/sis/sqlite3.sis\", (0x2002af5f)" - } else { - sqlitedeployment = \ - "; Deploy sqlite onto phone that does not have it already" \ - "@\"$${PWD}/sqlite3.sis\", (0x2002af5f)" + + # Sqlite3 is expected to be already found on phone if infixed configuration is built. + # It is also expected that devices newer than those based on S60 5.0 all have sqlite3.dll. + contains(S60_VERSION, 3.1)|contains(S60_VERSION, 3.2)|contains(S60_VERSION, 5.0) { + BLD_INF_RULES.prj_exports += \ + "sqlite3.sis $${EPOCROOT}epoc32/data/qt/sis/sqlite3.sis" \ + "sqlite3_selfsigned.sis $${EPOCROOT}epoc32/data/qt/sis/sqlite3_selfsigned.sis" + symbian-abld|symbian-sbsv2 { + sqlitedeployment = \ + "; Deploy sqlite onto phone that does not have it already" \ + "@\"$${EPOCROOT}epoc32/data/qt/sis/sqlite3.sis\", (0x2002af5f)" + } else { + sqlitedeployment = \ + "; Deploy sqlite onto phone that does not have it already" \ + "@\"$${PWD}/sqlite3.sis\", (0x2002af5f)" + } + qtlibraries.pkg_postrules += sqlitedeployment } - qtlibraries.pkg_postrules += sqlitedeployment } else { # Always use experimental UID for infixed configuration to avoid UID clash TARGET.UID3 = 0xE001E61C @@ -81,12 +84,16 @@ symbian: { qtlibraries.pkg_prerules = vendorinfo qtlibraries.pkg_prerules += "; Dependencies of Qt libraries" - qtlibraries.pkg_prerules += "(0x20013851), 1, 5, 1, {\"PIPS Installer\"}" - contains(QT_CONFIG, openssl) | contains(QT_CONFIG, openssl-linked) { - qtlibraries.pkg_prerules += "(0x200110CB), 1, 5, 1, {\"Open C LIBSSL Common\"}" - } - contains(CONFIG, stl) { - qtlibraries.pkg_prerules += "(0x2000F866), 1, 0, 0, {\"Standard C++ Library Common\"}" + + # It is expected that Symbian^3 and newer phones will have sufficiently new OpenC already installed + contains(S60_VERSION, 3.1)|contains(S60_VERSION, 3.2)|contains(S60_VERSION, 5.0) { + qtlibraries.pkg_prerules += "(0x20013851), 1, 5, 1, {\"PIPS Installer\"}" + contains(QT_CONFIG, openssl) | contains(QT_CONFIG, openssl-linked) { + qtlibraries.pkg_prerules += "(0x200110CB), 1, 5, 1, {\"Open C LIBSSL Common\"}" + } + contains(CONFIG, stl) { + qtlibraries.pkg_prerules += "(0x2000F866), 1, 0, 0, {\"Standard C++ Library Common\"}" + } } qtlibraries.pkg_prerules += "(0x2002af5f), 0, 5, 0, {\"sqlite3\"}" @@ -143,12 +150,39 @@ symbian: { contains(QT_CONFIG, declarative): { qtlibraries.sources += $$QMAKE_LIBDIR_QT/QtDeclarative$${QT_LIBINFIX}.dll + + folderlistmodelImport.sources = $$QT_BUILD_TREE/imports/Qt/labs/folderlistmodel/qmlfolderlistmodelplugin$${QT_LIBINFIX}.dll + gesturesImport.sources = $$QT_BUILD_TREE/imports/Qt/labs/gestures/qmlgesturesplugin$${QT_LIBINFIX}.dll + particlesImport.sources = $$QT_BUILD_TREE/imports/Qt/labs/particles/qmlparticlesplugin$${QT_LIBINFIX}.dll + + folderlistmodelImport.sources += $$QT_SOURCE_TREE/src/imports/folderlistmodel/qmldir + gesturesImport.sources += $$QT_SOURCE_TREE/src/imports/gestures/qmldir + particlesImport.sources += $$QT_SOURCE_TREE/src/imports/particles/qmldir + + folderlistmodelImport.path = $$QT_IMPORTS_BASE_DIR/Qt/labs/folderlistmodel + gesturesImport.path = $$QT_IMPORTS_BASE_DIR/Qt/labs/gestures + particlesImport.path = $$QT_IMPORTS_BASE_DIR/Qt/labs/particles + + DEPLOYMENT += folderlistmodelImport gesturesImport particlesImport + + contains(QT_CONFIG, webkit): { + webkitImport.sources = $$QT_BUILD_TREE/imports/org/webkit/qmlwebkitplugin$${QT_LIBINFIX}.dll + webkitImport.sources += $$QT_SOURCE_TREE/src/imports/webkit/qmldir + webkitImport.path = $$QT_IMPORTS_BASE_DIR/org/webkit + DEPLOYMENT += webkitImport + } } graphicssystems_plugins.path = c:$$QT_PLUGINS_BASE_DIR/graphicssystems contains(QT_CONFIG, openvg) { qtlibraries.sources += $$QMAKE_LIBDIR_QT/QtOpenVG$${QT_LIBINFIX}.dll graphicssystems_plugins.sources += $$QT_BUILD_TREE/plugins/graphicssystems/qvggraphicssystem$${QT_LIBINFIX}.dll + # OpenVG requires Symbian^3 or later + pkg_platform_dependencies -= \ + "[0x101F7961],0,0,0,{\"S60ProductID\"}" \ + "[0x102032BE],0,0,0,{\"S60ProductID\"}" \ + "[0x102752AE],0,0,0,{\"S60ProductID\"}" \ + "[0x1028315F],0,0,0,{\"S60ProductID\"}" } contains(QT_CONFIG, multimedia){ diff --git a/src/sql/drivers/odbc/qsql_odbc.cpp b/src/sql/drivers/odbc/qsql_odbc.cpp index 6fd1725..9a35ac5 100644 --- a/src/sql/drivers/odbc/qsql_odbc.cpp +++ b/src/sql/drivers/odbc/qsql_odbc.cpp @@ -259,14 +259,14 @@ static QString qWarnODBCHandle(int handleType, SQLHANDLE handle, int *nativeCode static QString qODBCWarn(const QODBCPrivate* odbc, int *nativeCode = 0) { - return (qWarnODBCHandle(SQL_HANDLE_ENV, odbc->dpEnv()) + QLatin1Char(' ') + return QString(qWarnODBCHandle(SQL_HANDLE_ENV, odbc->dpEnv()) + QLatin1Char(' ') + qWarnODBCHandle(SQL_HANDLE_DBC, odbc->dpDbc()) + QLatin1Char(' ') + qWarnODBCHandle(SQL_HANDLE_STMT, odbc->hStmt, nativeCode)).simplified(); } static QString qODBCWarn(const QODBCDriverPrivate* odbc, int *nativeCode = 0) { - return (qWarnODBCHandle(SQL_HANDLE_ENV, odbc->hEnv) + QLatin1Char(' ') + return QString(qWarnODBCHandle(SQL_HANDLE_ENV, odbc->hEnv) + QLatin1Char(' ') + qWarnODBCHandle(SQL_HANDLE_DBC, odbc->hDbc, nativeCode)).simplified(); } diff --git a/src/svg/qgraphicssvgitem.cpp b/src/svg/qgraphicssvgitem.cpp index 69ff7a3..e035e1d 100644 --- a/src/svg/qgraphicssvgitem.cpp +++ b/src/svg/qgraphicssvgitem.cpp @@ -124,8 +124,10 @@ public: \snippet doc/src/snippets/code/src_svg_qgraphicssvgitem.cpp 0 - Size of the item can be set via the setSize() method or via - direct manipulation of the items transformation matrix. + Size of the item can be set via the \l{QRectF::setSize()} + {setSize()} method of the \l{QGraphicsSvgItem::boundingRect()} + {bounding rectangle} or via direct manipulation of the items + transformation matrix. By default the SVG rendering is cached using QGraphicsItem::DeviceCoordinateCache mode to speedup the display of items. Caching can be disabled by passing diff --git a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp index 47c5b63..fbab30e 100644 --- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp +++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp @@ -50,6 +50,7 @@ #include <QtDeclarative/qdeclarativeexpression.h> #include <QtDeclarative/qdeclarativecomponent.h> #include <private/qdeclarativetextedit_p.h> +#include <private/qdeclarativetextedit_p_p.h> #include <QFontMetrics> #include <QDeclarativeView> #include <QStyle> @@ -86,7 +87,8 @@ private slots: void delegateLoading(); void navigation(); void readOnly(); - void sendRequestSoftwareInputPanelEvent(); + void openInputPanelOnClick(); + void openInputPanelOnFocus(); void geometrySignals(); private: void simulateKey(QDeclarativeView *, int key); @@ -817,14 +819,14 @@ public: bool closeInputPanelReceived; }; -void tst_qdeclarativetextedit::sendRequestSoftwareInputPanelEvent() +void tst_qdeclarativetextedit::openInputPanelOnClick() { QGraphicsScene scene; QGraphicsView view(&scene); MyInputContext ic; view.setInputContext(&ic); QDeclarativeTextEdit edit; - QSignalSpy inputPanelonFocusSpy(&edit, SIGNAL(showInputPanelOnFocusChanged(bool))); + QSignalSpy focusOnPressSpy(&edit, SIGNAL(focusOnPressChanged(bool))); edit.setText("Hello world"); edit.setPos(0, 0); scene.addItem(&edit); @@ -834,7 +836,58 @@ void tst_qdeclarativetextedit::sendRequestSoftwareInputPanelEvent() QTest::qWaitForWindowShown(&view); QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view)); - QVERIFY(edit.showInputPanelOnFocus()); + QDeclarativeItemPrivate* pri = QDeclarativeItemPrivate::get(&edit); + QDeclarativeTextEditPrivate *editPrivate = static_cast<QDeclarativeTextEditPrivate*>(pri); + + // input panel on click + editPrivate->showInputPanelOnFocus = false; + + QStyle::RequestSoftwareInputPanel behavior = QStyle::RequestSoftwareInputPanel( + view.style()->styleHint(QStyle::SH_RequestSoftwareInputPanel)); + QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(edit.scenePos())); + QApplication::processEvents(); + if (behavior == QStyle::RSIP_OnMouseClickAndAlreadyFocused) { + QCOMPARE(ic.openInputPanelReceived, false); + QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(edit.scenePos())); + QApplication::processEvents(); + QCOMPARE(ic.openInputPanelReceived, true); + } else if (behavior == QStyle::RSIP_OnMouseClick) { + QCOMPARE(ic.openInputPanelReceived, true); + } + ic.openInputPanelReceived = false; + + // focus should not cause input panels to open or close + edit.setFocus(false); + edit.setFocus(true); + edit.setFocus(false); + edit.setFocus(true); + edit.setFocus(false); + QCOMPARE(ic.openInputPanelReceived, false); + QCOMPARE(ic.closeInputPanelReceived, false); +} + +void tst_qdeclarativetextedit::openInputPanelOnFocus() +{ + QGraphicsScene scene; + QGraphicsView view(&scene); + MyInputContext ic; + view.setInputContext(&ic); + QDeclarativeTextEdit edit; + QSignalSpy focusOnPressSpy(&edit, SIGNAL(focusOnPressChanged(bool))); + edit.setText("Hello world"); + edit.setPos(0, 0); + scene.addItem(&edit); + view.show(); + qApp->setAutoSipEnabled(true); + QApplication::setActiveWindow(&view); + QTest::qWaitForWindowShown(&view); + QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view)); + + QDeclarativeItemPrivate* pri = QDeclarativeItemPrivate::get(&edit); + QDeclarativeTextEditPrivate *editPrivate = static_cast<QDeclarativeTextEditPrivate*>(pri); + editPrivate->showInputPanelOnFocus = true; + + QVERIFY(edit.focusOnPress()); QCOMPARE(ic.openInputPanelReceived, false); QCOMPARE(ic.closeInputPanelReceived, false); @@ -867,9 +920,9 @@ void tst_qdeclarativetextedit::sendRequestSoftwareInputPanelEvent() QCOMPARE(ic.closeInputPanelReceived, true); ic.closeInputPanelReceived = false; - // no input panel events if showInputPanelOnFocus is false - edit.setShowInputPanelOnFocus(false); - QCOMPARE(inputPanelonFocusSpy.count(),1); + // no automatic input panel events if focusOnPress is false + edit.setFocusOnPress(false); + QCOMPARE(focusOnPressSpy.count(),1); QTest::mousePress(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(edit.scenePos())); QTest::mouseRelease(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(edit.scenePos())); edit.setFocus(false); @@ -877,8 +930,8 @@ void tst_qdeclarativetextedit::sendRequestSoftwareInputPanelEvent() QCOMPARE(ic.openInputPanelReceived, false); QCOMPARE(ic.closeInputPanelReceived, false); - edit.setShowInputPanelOnFocus(false); - QCOMPARE(inputPanelonFocusSpy.count(),1); + edit.setFocusOnPress(false); + QCOMPARE(focusOnPressSpy.count(),1); // one show input panel event when openSoftwareInputPanel is called edit.openSoftwareInputPanel(); @@ -892,14 +945,17 @@ void tst_qdeclarativetextedit::sendRequestSoftwareInputPanelEvent() QCOMPARE(ic.closeInputPanelReceived, true); ic.openInputPanelReceived = false; - // set showInputPanelOnFocus back to true - edit.setShowInputPanelOnFocus(true); - QCOMPARE(inputPanelonFocusSpy.count(),2); + // set focusOnPress back to true + edit.setFocusOnPress(true); + QCOMPARE(focusOnPressSpy.count(),2); edit.setFocus(false); QCOMPARE(ic.openInputPanelReceived, false); QCOMPARE(ic.closeInputPanelReceived, true); ic.closeInputPanelReceived = false; + edit.setFocusOnPress(true); + QCOMPARE(focusOnPressSpy.count(),2); + // active window focus reason should not cause input panel to open QGraphicsObject * editObject = qobject_cast<QGraphicsObject*>(&edit); editObject->setFocus(Qt::ActiveWindowFocusReason); @@ -910,9 +966,6 @@ void tst_qdeclarativetextedit::sendRequestSoftwareInputPanelEvent() edit.setFocus(true); QCOMPARE(ic.openInputPanelReceived, false); QCOMPARE(ic.closeInputPanelReceived, false); - - edit.setShowInputPanelOnFocus(true); - QCOMPARE(inputPanelonFocusSpy.count(),2); } void tst_qdeclarativetextedit::geometrySignals() diff --git a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp index c943c89..3cb4da0 100644 --- a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp +++ b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp @@ -45,6 +45,7 @@ #include <QFile> #include <QtDeclarative/qdeclarativeview.h> #include <private/qdeclarativetextinput_p.h> +#include <private/qdeclarativetextinput_p_p.h> #include <QDebug> #include <QStyle> #include <QInputContext> @@ -74,7 +75,8 @@ private slots: void navigation(); void readOnly(); - void sendRequestSoftwareInputPanelEvent(); + void openInputPanelOnClick(); + void openInputPanelOnFocus(); void setHAlignClearCache(); void focusOutClearSelection(); @@ -763,14 +765,14 @@ public: bool closeInputPanelReceived; }; -void tst_qdeclarativetextinput::sendRequestSoftwareInputPanelEvent() +void tst_qdeclarativetextinput::openInputPanelOnClick() { QGraphicsScene scene; QGraphicsView view(&scene); MyInputContext ic; view.setInputContext(&ic); QDeclarativeTextInput input; - QSignalSpy inputPanelonFocusSpy(&input, SIGNAL(showInputPanelOnFocusChanged(bool))); + QSignalSpy focusOnPressSpy(&input, SIGNAL(focusOnPressChanged(bool))); input.setText("Hello world"); input.setPos(0, 0); scene.addItem(&input); @@ -780,7 +782,58 @@ void tst_qdeclarativetextinput::sendRequestSoftwareInputPanelEvent() QTest::qWaitForWindowShown(&view); QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view)); - QVERIFY(input.showInputPanelOnFocus()); + QDeclarativeItemPrivate* pri = QDeclarativeItemPrivate::get(&input); + QDeclarativeTextInputPrivate *inputPrivate = static_cast<QDeclarativeTextInputPrivate*>(pri); + + // input panel on click + inputPrivate->showInputPanelOnFocus = false; + + QStyle::RequestSoftwareInputPanel behavior = QStyle::RequestSoftwareInputPanel( + view.style()->styleHint(QStyle::SH_RequestSoftwareInputPanel)); + QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(input.scenePos())); + QApplication::processEvents(); + if (behavior == QStyle::RSIP_OnMouseClickAndAlreadyFocused) { + QCOMPARE(ic.openInputPanelReceived, false); + QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(input.scenePos())); + QApplication::processEvents(); + QCOMPARE(ic.openInputPanelReceived, true); + } else if (behavior == QStyle::RSIP_OnMouseClick) { + QCOMPARE(ic.openInputPanelReceived, true); + } + ic.openInputPanelReceived = false; + + // focus should not cause input panels to open or close + input.setFocus(false); + input.setFocus(true); + input.setFocus(false); + input.setFocus(true); + input.setFocus(false); + QCOMPARE(ic.openInputPanelReceived, false); + QCOMPARE(ic.closeInputPanelReceived, false); +} + +void tst_qdeclarativetextinput::openInputPanelOnFocus() +{ + QGraphicsScene scene; + QGraphicsView view(&scene); + MyInputContext ic; + view.setInputContext(&ic); + QDeclarativeTextInput input; + QSignalSpy focusOnPressSpy(&input, SIGNAL(focusOnPressChanged(bool))); + input.setText("Hello world"); + input.setPos(0, 0); + scene.addItem(&input); + view.show(); + qApp->setAutoSipEnabled(true); + QApplication::setActiveWindow(&view); + QTest::qWaitForWindowShown(&view); + QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view)); + + QDeclarativeItemPrivate* pri = QDeclarativeItemPrivate::get(&input); + QDeclarativeTextInputPrivate *inputPrivate = static_cast<QDeclarativeTextInputPrivate*>(pri); + inputPrivate->showInputPanelOnFocus = true; + + QVERIFY(input.focusOnPress()); QCOMPARE(ic.openInputPanelReceived, false); QCOMPARE(ic.closeInputPanelReceived, false); @@ -813,9 +866,9 @@ void tst_qdeclarativetextinput::sendRequestSoftwareInputPanelEvent() QCOMPARE(ic.closeInputPanelReceived, true); ic.closeInputPanelReceived = false; - // no input panel events if showInputPanelOnFocus is false - input.setShowInputPanelOnFocus(false); - QCOMPARE(inputPanelonFocusSpy.count(),1); + // no automatic input panel events if focusOnPress is false + input.setFocusOnPress(false); + QCOMPARE(focusOnPressSpy.count(),1); QTest::mousePress(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(input.scenePos())); QTest::mouseRelease(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(input.scenePos())); input.setFocus(false); @@ -823,8 +876,8 @@ void tst_qdeclarativetextinput::sendRequestSoftwareInputPanelEvent() QCOMPARE(ic.openInputPanelReceived, false); QCOMPARE(ic.closeInputPanelReceived, false); - input.setShowInputPanelOnFocus(false); - QCOMPARE(inputPanelonFocusSpy.count(),1); + input.setFocusOnPress(false); + QCOMPARE(focusOnPressSpy.count(),1); // one show input panel event when openSoftwareInputPanel is called input.openSoftwareInputPanel(); @@ -838,14 +891,17 @@ void tst_qdeclarativetextinput::sendRequestSoftwareInputPanelEvent() QCOMPARE(ic.closeInputPanelReceived, true); ic.openInputPanelReceived = false; - // set showInputPanelOnFocus back to true - input.setShowInputPanelOnFocus(true); - QCOMPARE(inputPanelonFocusSpy.count(),2); + // set focusOnPress back to true + input.setFocusOnPress(true); + QCOMPARE(focusOnPressSpy.count(),2); input.setFocus(false); QCOMPARE(ic.openInputPanelReceived, false); QCOMPARE(ic.closeInputPanelReceived, true); ic.closeInputPanelReceived = false; + input.setFocusOnPress(true); + QCOMPARE(focusOnPressSpy.count(),2); + // active window focus reason should not cause input panel to open QGraphicsObject * inputObject = qobject_cast<QGraphicsObject*>(&input); inputObject->setFocus(Qt::ActiveWindowFocusReason); @@ -856,9 +912,6 @@ void tst_qdeclarativetextinput::sendRequestSoftwareInputPanelEvent() input.setFocus(true); QCOMPARE(ic.openInputPanelReceived, false); QCOMPARE(ic.closeInputPanelReceived, false); - - input.setShowInputPanelOnFocus(true); - QCOMPARE(inputPanelonFocusSpy.count(),2); } class MyTextInput : public QDeclarativeTextInput diff --git a/tests/auto/declarative/qdeclarativeviewer/data/orientation.qml b/tests/auto/declarative/qdeclarativeviewer/data/orientation.qml index 687fac6..be911a3 100644 --- a/tests/auto/declarative/qdeclarativeviewer/data/orientation.qml +++ b/tests/auto/declarative/qdeclarativeviewer/data/orientation.qml @@ -1,10 +1,19 @@ import Qt 4.7 Rectangle { color: "black" - width: (runtime.orientation == Orientation.Landscape) ? 300 : 200 - height: (runtime.orientation == Orientation.Landscape) ? 200 : 300 + width: (runtime.orientation == Orientation.RightUp || runtime.orientation == Orientation.LeftUp) ? 300 : 200 + height: (runtime.orientation == Orientation.RightUp || runtime.orientation == Orientation.LeftUp) ? 200 : 300 Text { - text: runtime.orientation == Orientation.Landscape ? "Landscape" : "Portrait" + text: { + if (runtime.orientation == Orientation.TopUp) + return "TopUp" + if (runtime.orientation == Orientation.TopDown) + return "TopDown" + if (runtime.orientation == Orientation.LeftUp) + return "LeftUp" + if (runtime.orientation == Orientation.RightUp) + return "RightUp" + } color: "white" } -}
\ No newline at end of file +} diff --git a/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp b/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp index 9429dc9..f296d9e 100644 --- a/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp +++ b/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp @@ -82,7 +82,7 @@ void tst_QDeclarativeViewer::orientation() QCOMPARE(viewer->size(), QSize(200, 300+viewer->menuBar()->height())); QCOMPARE(viewer->size(), viewer->sizeHint()); - viewer->toggleOrientation(); + viewer->rotateOrientation(); qApp->processEvents(); QCOMPARE(rootItem->width(), 300.0); @@ -92,7 +92,7 @@ void tst_QDeclarativeViewer::orientation() QCOMPARE(viewer->size(), QSize(300, 200+viewer->menuBar()->height())); QCOMPARE(viewer->size(), viewer->sizeHint()); - viewer->toggleOrientation(); + viewer->rotateOrientation(); qApp->processEvents(); QCOMPARE(rootItem->width(), 200.0); diff --git a/tests/auto/gestures/tst_gestures.cpp b/tests/auto/gestures/tst_gestures.cpp index 4a9f1d1..7c1170c 100644 --- a/tests/auto/gestures/tst_gestures.cpp +++ b/tests/auto/gestures/tst_gestures.cpp @@ -49,6 +49,7 @@ #include <qgesture.h> #include <qgesturerecognizer.h> #include <qgraphicsitem.h> +#include <qgraphicswidget.h> #include <qgraphicsview.h> #include <qmainwindow.h> @@ -358,6 +359,7 @@ private slots: void viewportCoordinates(); void partialGesturePropagation(); void testQGestureRecognizerCleanup(); + void testReuseCanceledGestures(); }; tst_Gestures::tst_Gestures() @@ -2069,5 +2071,169 @@ void tst_Gestures::testQGestureRecognizerCleanup() delete w; } +class ReuseCanceledGesturesRecognizer : public QGestureRecognizer +{ +public: + enum Type { + RmbAndCancelAllType, + LmbType + }; + + ReuseCanceledGesturesRecognizer(Type type) : m_type(type) {} + + QGesture *create(QObject *) { + QGesture *g = new QGesture; + return g; + } + + Result recognize(QGesture *gesture, QObject *, QEvent *event) { + QMouseEvent *me = static_cast<QMouseEvent *>(event); + Qt::MouseButton mouseButton(m_type == LmbType ? Qt::LeftButton : Qt::RightButton); + + switch(event->type()) { + case QEvent::MouseButtonPress: + if (me->button() == mouseButton && gesture->state() == Qt::NoGesture) { + gesture->setHotSpot(QPointF(me->globalPos())); + if (m_type == RmbAndCancelAllType) + gesture->setGestureCancelPolicy(QGesture::CancelAllInContext); + return QGestureRecognizer::TriggerGesture; + } + break; + case QEvent::MouseButtonRelease: + if (me->button() == mouseButton && gesture->state() > Qt::NoGesture) + return QGestureRecognizer::FinishGesture; + default: + break; + } + return QGestureRecognizer::Ignore; + } +private: + Type m_type; +}; + +class ReuseCanceledGesturesWidget : public QGraphicsWidget +{ + public: + ReuseCanceledGesturesWidget(Qt::GestureType gestureType = Qt::TapGesture, QGraphicsItem *parent = 0) + : QGraphicsWidget(parent), + m_gestureType(gestureType), + m_started(0), m_updated(0), m_canceled(0), m_finished(0) + { + } + + bool event(QEvent *event) { + if (event->type() == QEvent::Gesture) { + QGesture *gesture = static_cast<QGestureEvent*>(event)->gesture(m_gestureType); + if (gesture) { + switch(gesture->state()) { + case Qt::GestureStarted: m_started++; break; + case Qt::GestureUpdated: m_updated++; break; + case Qt::GestureFinished: m_finished++; break; + case Qt::GestureCanceled: m_canceled++; break; + default: break; + } + } + return true; + } + if (event->type() == QEvent::GraphicsSceneMousePress) { + return true; + } + return QGraphicsWidget::event(event); + } + + int started() { return m_started; } + int updated() { return m_updated; } + int finished() { return m_finished; } + int canceled() { return m_canceled; } + + private: + Qt::GestureType m_gestureType; + int m_started; + int m_updated; + int m_canceled; + int m_finished; +}; + +void tst_Gestures::testReuseCanceledGestures() +{ + Qt::GestureType cancellingGestureTypeId = QGestureRecognizer::registerRecognizer( + new ReuseCanceledGesturesRecognizer(ReuseCanceledGesturesRecognizer::RmbAndCancelAllType)); + Qt::GestureType tapGestureTypeId = QGestureRecognizer::registerRecognizer( + new ReuseCanceledGesturesRecognizer(ReuseCanceledGesturesRecognizer::LmbType)); + + QMainWindow mw; + mw.setWindowFlags(Qt::X11BypassWindowManagerHint); + QGraphicsView *gv = new QGraphicsView(&mw); + QGraphicsScene *scene = new QGraphicsScene; + + gv->setScene(scene); + scene->setSceneRect(0,0,100,100); + + // Create container and add to the scene + ReuseCanceledGesturesWidget *container = new ReuseCanceledGesturesWidget; + container->grabGesture(cancellingGestureTypeId); // << container grabs canceling gesture + + // Create widget and add to the scene + ReuseCanceledGesturesWidget *target = new ReuseCanceledGesturesWidget(tapGestureTypeId, container); + target->grabGesture(tapGestureTypeId); + + container->setGeometry(scene->sceneRect()); + + scene->addItem(container); + + mw.setCentralWidget(gv); + + // Viewport needs to grab all gestures that widgets in scene grab + gv->viewport()->grabGesture(cancellingGestureTypeId); + gv->viewport()->grabGesture(tapGestureTypeId); + + mw.show(); + QTest::qWaitForWindowShown(&mw); + + QPoint targetPos(gv->mapFromScene(target->mapToScene(target->rect().center()))); + targetPos = gv->viewport()->mapFromParent(targetPos); + + // "Tap" starts on child widget + QTest::mousePress(gv->viewport(), Qt::LeftButton, 0, targetPos); + QCOMPARE(target->started(), 1); + QCOMPARE(target->updated(), 0); + QCOMPARE(target->finished(), 0); + QCOMPARE(target->canceled(), 0); + + // Canceling gesture starts on parent + QTest::mousePress(gv->viewport(), Qt::RightButton, 0, targetPos); + QCOMPARE(target->started(), 1); + QCOMPARE(target->updated(), 0); + QCOMPARE(target->finished(), 0); + QCOMPARE(target->canceled(), 1); // <- child canceled + + // Canceling gesture ends + QTest::mouseRelease(gv->viewport(), Qt::RightButton, 0, targetPos); + QCOMPARE(target->started(), 1); + QCOMPARE(target->updated(), 0); + QCOMPARE(target->finished(), 0); + QCOMPARE(target->canceled(), 1); + + // Tap would end if not canceled + QTest::mouseRelease(gv->viewport(), Qt::LeftButton, 0, targetPos); + QCOMPARE(target->started(), 1); + QCOMPARE(target->updated(), 0); + QCOMPARE(target->finished(), 0); + QCOMPARE(target->canceled(), 1); + + // New "Tap" starts + QTest::mousePress(gv->viewport(), Qt::LeftButton, 0, targetPos); + QCOMPARE(target->started(), 2); + QCOMPARE(target->updated(), 0); + QCOMPARE(target->finished(), 0); + QCOMPARE(target->canceled(), 1); + + QTest::mouseRelease(gv->viewport(), Qt::LeftButton, 0, targetPos); + QCOMPARE(target->started(), 2); + QCOMPARE(target->updated(), 0); + QCOMPARE(target->finished(), 1); + QCOMPARE(target->canceled(), 1); +} + QTEST_MAIN(tst_Gestures) #include "tst_gestures.moc" diff --git a/tests/auto/linguist/lconvert/data/test20.ts b/tests/auto/linguist/lconvert/data/test20.ts index 542cdee..f042edf 100644 --- a/tests/auto/linguist/lconvert/data/test20.ts +++ b/tests/auto/linguist/lconvert/data/test20.ts @@ -147,4 +147,16 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>Bizarre ~ and | context~</name> + <message> + <source>just something</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>something else</source> + <comment>comment with | and ~ and so~</comment> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/tests/auto/linguist/lupdate/testdata/good/cmdline_order/a.h b/tests/auto/linguist/lupdate/testdata/good/cmdline_order/a.h new file mode 100644 index 0000000..7059132 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/cmdline_order/a.h @@ -0,0 +1,42 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#define XX QT_TRANSLATE_NOOP("aaa", "some text") diff --git a/doc/src/snippets/declarative/drag.qml b/tests/auto/linguist/lupdate/testdata/good/cmdline_order/b.h index 0a69574..ce3e1a2 100644 --- a/doc/src/snippets/declarative/drag.qml +++ b/tests/auto/linguist/lupdate/testdata/good/cmdline_order/b.h @@ -4,7 +4,7 @@ ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtDeclarative module of the Qt Toolkit. +** This file is part of the test suite of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage @@ -39,21 +39,6 @@ ** ****************************************************************************/ -import Qt 4.7 +#include "a.h" -//! [0] -Rectangle { - id: blurtest; width: 600; height: 200; color: "white" - Image { - id: pic; source: "qtlogo-64.png"; anchors.verticalCenter: parent.verticalCenter - opacity: (600.0-pic.x) / 600; - MouseArea { - anchors.fill: parent - drag.target: pic - drag.axis: Drag.XAxis - drag.minimumX: 0 - drag.maximumX: blurtest.width-pic.width - } - } -} -//! [0] +#define YY QT_TRANSLATE_NOOP("bbb", "some text") diff --git a/tests/auto/linguist/lupdate/testdata/good/cmdline_order/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/cmdline_order/lupdatecmd new file mode 100644 index 0000000..edd91f7 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/cmdline_order/lupdatecmd @@ -0,0 +1 @@ +lupdate b.h a.h -ts project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/cmdline_order/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/cmdline_order/project.ts.result new file mode 100644 index 0000000..6028cbb --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/cmdline_order/project.ts.result @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>aaa</name> + <message> + <location filename="a.h" line="42"/> + <source>some text</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>bbb</name> + <message> + <location filename="b.h" line="44"/> + <source>some text</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/tests/auto/linguist/lupdate/testdata/good/lacksqobject/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/expectedoutput.txt index 72ec3c5..f6fc400 100644 --- a/tests/auto/linguist/lupdate/testdata/good/lacksqobject/expectedoutput.txt +++ b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/expectedoutput.txt @@ -1,8 +1,4 @@ .*/lupdate/testdata/good/lacksqobject/main.cpp:58: Class 'B' lacks Q_OBJECT macro - .*/lupdate/testdata/good/lacksqobject/main.cpp:65: Class 'C' lacks Q_OBJECT macro - .*/lupdate/testdata/good/lacksqobject/main.cpp:78: Class 'nsB::B' lacks Q_OBJECT macro - .*/lupdate/testdata/good/lacksqobject/main.cpp:84: Class 'nsB::C' lacks Q_OBJECT macro - diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt index e3543c9..195c0e6 100644 --- a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt @@ -1,8 +1,4 @@ .*/lupdate/testdata/good/parsecpp2/main.cpp:51: Excess closing brace .* - .*/lupdate/testdata/good/parsecpp2/main.cpp:55: Excess closing brace .* - .*/lupdate/testdata/good/parsecpp2/main.cpp:61: Excess closing brace .* - .*/lupdate/testdata/good/parsecpp2/main.cpp:65: Excess closing brace .* - diff --git a/tests/auto/maketestselftest/checktest/checktest.pro b/tests/auto/maketestselftest/checktest/checktest.pro new file mode 100644 index 0000000..79c5ca5 --- /dev/null +++ b/tests/auto/maketestselftest/checktest/checktest.pro @@ -0,0 +1,7 @@ +TEMPLATE = app +TARGET = checktest +CONFIG += console +CONFIG -= app_bundle +DESTDIR = ./ +QT = core +SOURCES += main.cpp diff --git a/tests/auto/maketestselftest/checktest/main.cpp b/tests/auto/maketestselftest/checktest/main.cpp new file mode 100644 index 0000000..af98953 --- /dev/null +++ b/tests/auto/maketestselftest/checktest/main.cpp @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QCoreApplication> +#include <QDir> +#include <QFile> +#include <QFileInfo> +#include <QStringList> + +#include <stdio.h> +#include <stdlib.h> + +void fail(QString const& message) +{ + printf("CHECKTEST FAIL: %s\n", qPrintable(message)); + exit(0); +} + +void pass(QString const& message) +{ + printf("CHECKTEST PASS: %s\n", qPrintable(message)); + exit(0); +} + +int main(int argc, char** argv) +{ + QCoreApplication app(argc, argv); + + QStringList args = app.arguments(); + args.removeFirst(); // ourself + + QString args_quoted = QString("'%1'").arg(args.join("','")); + +#ifdef Q_WS_QWS + { + // for QWS we expect tests to be run as the QWS server + QString qws = args.takeLast(); + if (qws != "-qws") { + fail(QString("Expected test to be run with `-qws', but it wasn't; args: %1").arg(args_quoted)); + } + } +#endif + + if (args.count() != 1) { + fail(QString("These arguments are not what I expected: %1").arg(args_quoted)); + } + + QString test = args.at(0); + + QFileInfo testfile(test); + if (!testfile.exists()) { + fail(QString("File %1 does not exist (my working directory is: %2, my args are: %3)") + .arg(test) + .arg(QDir::currentPath()) + .arg(args_quoted) + ); + } + + pass(args_quoted); +} + diff --git a/tests/auto/maketestselftest/maketestselftest.pro b/tests/auto/maketestselftest/maketestselftest.pro index 6cc1744..a27d5d7 100644 --- a/tests/auto/maketestselftest/maketestselftest.pro +++ b/tests/auto/maketestselftest/maketestselftest.pro @@ -1,9 +1,6 @@ -load(qttest_p4) - -SOURCES += tst_maketestselftest.cpp -QT = core - -DEFINES += SRCDIR=\\\"$$PWD/\\\" +TEMPLATE = subdirs +SUBDIRS = checktest test +test.depends = checktest requires(!cross_compile) diff --git a/tests/auto/maketestselftest/test/test.pro b/tests/auto/maketestselftest/test/test.pro new file mode 100644 index 0000000..d9de51e --- /dev/null +++ b/tests/auto/maketestselftest/test/test.pro @@ -0,0 +1,18 @@ +load(qttest_p4) + +TARGET = ../tst_maketestselftest +SOURCES += ../tst_maketestselftest.cpp +QT = core + +DEFINES += SRCDIR=\\\"$$PWD/..\\\" + +requires(!cross_compile) + +win32 { + CONFIG(debug, debug|release) { + TARGET = ../../debug/tst_maketestselftest +} else { + TARGET = ../../release/tst_maketestselftest + } +} + diff --git a/tests/auto/maketestselftest/tst_maketestselftest.cpp b/tests/auto/maketestselftest/tst_maketestselftest.cpp index 437e143..a9077e3 100644 --- a/tests/auto/maketestselftest/tst_maketestselftest.cpp +++ b/tests/auto/maketestselftest/tst_maketestselftest.cpp @@ -66,6 +66,8 @@ private slots: void naming_convention(); void naming_convention_data(); + void make_check(); + private: QStringList find_subdirs(QString const&, FindSubdirsMode, QString const& = QString()); @@ -446,6 +448,83 @@ QStringList tst_MakeTestSelfTest::find_subdirs(QString const& pro_file, FindSubd return out; } +void tst_MakeTestSelfTest::make_check() +{ + /* + Run `make check' over the whole tests tree with a custom TESTRUNNER, + to verify that the TESTRUNNER mechanism works right. + */ + QString testsDir(SRCDIR "/.."); + QString checktest(SRCDIR "/checktest/checktest"); + +#if defined(Q_OS_WIN32) || defined(Q_OS_MAC) + if (qgetenv("RUN_SLOW_TESTS").isEmpty()) { + QSKIP("This test is too slow to run by default on this OS. Set RUN_SLOW_TESTS=1 to run it.", SkipAll); + } +#endif + +#ifdef Q_OS_WIN32 + checktest.replace("/", "\\"); + checktest += ".exe"; +#endif + + QProcess make; + make.setWorkingDirectory(testsDir); + + QStringList arguments; + arguments << "-k"; + arguments << "check"; + arguments << QString("TESTRUNNER=%1").arg(checktest); + + // find the right make; from externaltests.cpp + static const char makes[] = + "nmake.exe\0" + "mingw32-make.exe\0" + "gmake\0" + "make\0" + ; + + bool ok = false; + for (const char *p = makes; *p; p += strlen(p) + 1) { + make.start(p, arguments); + if (make.waitForStarted()) { + ok = true; + break; + } + } + + if (!ok) { + QFAIL("Could not find the right make tool in PATH"); + } + + QVERIFY(make.waitForFinished(1000 * 60 * 10)); + QCOMPARE(make.exitStatus(), QProcess::NormalExit); + + int pass = 0; + QList<QByteArray> out = make.readAllStandardOutput().split('\n'); + QStringList fails; + foreach (QByteArray line, out) { + while (line.endsWith("\r")) { + line.chop(1); + } + if (line.startsWith("CHECKTEST FAIL")) { + fails << QString::fromLocal8Bit(line); + } + if (line.startsWith("CHECKTEST PASS")) { + ++pass; + } + } + + // We can't check that the exit code of make is 0, because some tests + // may have failed to compile, but that doesn't mean `make check' is broken. + // We do assume there are at least this many unbroken tests, though. + QVERIFY2(fails.count() == 0, + qPrintable(QString("`make check' doesn't work for %1 tests:\n%2") + .arg(fails.count()).arg(fails.join("\n"))) + ); + QVERIFY(pass > 50); +} + QStringList find_test_class(QString const& filename) { QStringList out; diff --git a/tests/auto/qfontmetrics/tst_qfontmetrics.cpp b/tests/auto/qfontmetrics/tst_qfontmetrics.cpp index 5d73764..a22d624 100644 --- a/tests/auto/qfontmetrics/tst_qfontmetrics.cpp +++ b/tests/auto/qfontmetrics/tst_qfontmetrics.cpp @@ -71,9 +71,9 @@ private slots: void elidedText(); void veryNarrowElidedText(); void averageCharWidth(); + void bypassShaping(); void elidedMultiLength(); void elidedMultiLengthF(); - void bearingIncludedInBoundingRect(); }; tst_QFontMetrics::tst_QFontMetrics() @@ -219,6 +219,21 @@ void tst_QFontMetrics::averageCharWidth() QVERIFY(fmf.averageCharWidth() != 0); } +void tst_QFontMetrics::bypassShaping() +{ + QFont f; + f.setStyleStrategy(QFont::ForceIntegerMetrics); + QFontMetrics fm(f); + QString text = " A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z"; + int textWidth = fm.width(text, -1, Qt::TextBypassShaping); + QVERIFY(textWidth != 0); + int charsWidth = 0; + for (int i = 0; i < text.size(); ++i) + charsWidth += fm.width(text[i]); + // This assertion is needed in QtWebKit's WebCore::Font::offsetForPositionForSimpleText + QCOMPARE(textWidth, charsWidth); +} + template<class FontMetrics> void elidedMultiLength_helper() { QString text1 = "Long Text 1\x9cShorter\x9csmall"; @@ -251,16 +266,5 @@ void tst_QFontMetrics::elidedMultiLengthF() elidedMultiLength_helper<QFontMetricsF>(); } -void tst_QFontMetrics::bearingIncludedInBoundingRect() -{ - QFont font; - font.setItalic(true); - QRect brectItalic = QFontMetrics(font).boundingRect("ITALIC"); - font.setItalic(false); - QRect brectNormal = QFontMetrics(font).boundingRect("ITALIC"); - - QVERIFY(brectItalic.width() >= brectNormal.width()); -} - QTEST_MAIN(tst_QFontMetrics) #include "tst_qfontmetrics.moc" diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp index 5547b02..fe68c8e 100644 --- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp @@ -7584,6 +7584,7 @@ void tst_QGraphicsItem::itemUsesExtendedStyleOption() scene.addItem(rect); rect->setPos(200, 200); QGraphicsView view(&scene); + view.setWindowFlags(Qt::X11BypassWindowManagerHint); rect->startTrack = false; view.show(); QTest::qWaitForWindowShown(&view); diff --git a/tests/auto/qhash/tst_qhash.cpp b/tests/auto/qhash/tst_qhash.cpp index 59576d9..3a7b54a 100644 --- a/tests/auto/qhash/tst_qhash.cpp +++ b/tests/auto/qhash/tst_qhash.cpp @@ -1154,6 +1154,26 @@ void tst_QHash::qmultihash_specific() QVERIFY(i.key() == 9); QVERIFY(i.value() == 98); } + + { + QMultiHash<int, int> map1; + map1.insert(42, 1); + map1.insert(10, 2); + map1.insert(48, 3); + QMultiHash<int, int> map2; + map2.insert(8, 4); + map2.insert(42, 5); + map2.insert(95, 12); + + map1+=map2; + map2.insert(42, 1); + map2.insert(10, 2); + map2.insert(48, 3); + QCOMPARE(map1.count(), map2.count()); + QVERIFY(map1.remove(42,5)); + QVERIFY(map2.remove(42,5)); + QVERIFY(map1 == map2); + } } template <typename T> diff --git a/tests/auto/qmap/tst_qmap.cpp b/tests/auto/qmap/tst_qmap.cpp index d3ed76d..a1b8de7 100644 --- a/tests/auto/qmap/tst_qmap.cpp +++ b/tests/auto/qmap/tst_qmap.cpp @@ -837,6 +837,26 @@ void tst_QMap::qmultimap_specific() QVERIFY(i.key() == 9); QVERIFY(i.value() == 98); } + + { + QMultiMap<int, int> map1; + map1.insert(42, 1); + map1.insert(10, 2); + map1.insert(48, 3); + QMultiMap<int, int> map2; + map2.insert(8, 4); + map2.insert(42, 5); + map2.insert(95, 12); + + map1+=map2; + map2.insert(42, 1); + map2.insert(10, 2); + map2.insert(48, 3); + QCOMPARE(map1.count(), map2.count()); + QVERIFY(map1.remove(42,5)); + QVERIFY(map2.remove(42,5)); + QVERIFY(map1 == map2); + } } QTEST_APPLESS_MAIN(tst_QMap) diff --git a/tests/auto/qnetworkcookie/tst_qnetworkcookie.cpp b/tests/auto/qnetworkcookie/tst_qnetworkcookie.cpp index 5854ae1..72d8eda 100644 --- a/tests/auto/qnetworkcookie/tst_qnetworkcookie.cpp +++ b/tests/auto/qnetworkcookie/tst_qnetworkcookie.cpp @@ -693,6 +693,12 @@ void tst_QNetworkCookie::parseMultipleCookies_data() cookieA.setPath("/foo"); list = QList<QNetworkCookie>() << cookieA << cookieB; QTest::newRow("real-3") << "a=b; expires=Mar 10 07:00:00 2009 GMT, Tue; path=/foo\nc=d; expires=Fri Mar 20 07:00:00 2009 GMT" << list; + + // do not accept cookies with non-alphanumeric characters in domain field (QTBUG-11029) + cookie = QNetworkCookie("NonAlphNumDomName", "NonAlphNumDomValue"); + cookie.setDomain("!@#$%^&*();:."); // the ';' is actually problematic, because it is a separator + list = QList<QNetworkCookie>(); + QTest::newRow("domain-non-alpha-numeric") << "NonAlphNumDomName=NonAlphNumDomValue; domain=!@#$%^&*()" << list; } void tst_QNetworkCookie::parseMultipleCookies() diff --git a/tests/auto/qnetworkdiskcache/tst_qnetworkdiskcache.cpp b/tests/auto/qnetworkdiskcache/tst_qnetworkdiskcache.cpp index 8ce10fb..5bbe8f6 100644 --- a/tests/auto/qnetworkdiskcache/tst_qnetworkdiskcache.cpp +++ b/tests/auto/qnetworkdiskcache/tst_qnetworkdiskcache.cpp @@ -78,6 +78,56 @@ private slots: void oldCacheVersionFile(); void sync(); + + void crashWhenParentingCache(); +}; + +// FIXME same as in tst_qnetworkreply.cpp .. could be unified +// Does not work for POST/PUT! +class MiniHttpServer: public QTcpServer +{ + Q_OBJECT +public: + QTcpSocket *client; // always the last one that was received + QByteArray dataToTransmit; + QByteArray receivedData; + bool doClose; + bool multiple; + int totalConnections; + + MiniHttpServer(const QByteArray &data) : client(0), dataToTransmit(data), doClose(true), multiple(false), totalConnections(0) + { + listen(); + connect(this, SIGNAL(newConnection()), this, SLOT(doAccept())); + } + +public slots: + void doAccept() + { + client = nextPendingConnection(); + client->setParent(this); + ++totalConnections; + connect(client, SIGNAL(readyRead()), this, SLOT(readyReadSlot())); + } + + void readyReadSlot() + { + receivedData += client->readAll(); + int doubleEndlPos = receivedData.indexOf("\r\n\r\n"); + + if (doubleEndlPos != -1) { + // multiple requests incoming. remove the bytes of the current one + if (multiple) + receivedData.remove(0, doubleEndlPos+4); + + client->write(dataToTransmit); + if (doClose) { + client->disconnectFromHost(); + disconnect(client, 0, this, 0); + client = 0; + } + } + } }; // Subclass that exposes the protected functions. @@ -581,6 +631,33 @@ public: Runner *other; }; +void tst_QNetworkDiskCache::crashWhenParentingCache() +{ + // the trick here is to not send the complete response + // but some data. So we get a readyRead() and it gets tried + // to be saved to the cache + QByteArray data("HTTP/1.0 200 OK\r\nCache-Control: max-age=300\r\nAge: 1\r\nContent-Length: 5\r\n\r\n123"); + MiniHttpServer server(data); + + QNetworkAccessManager *manager = new QNetworkAccessManager(); + QNetworkDiskCache *diskCache = new QNetworkDiskCache(manager); // parent to qnam! + // we expect the temp dir to be cleaned at some point anyway + diskCache->setCacheDirectory(QDir::tempPath() + "/cacheDir_" + QCoreApplication::applicationPid()); + manager->setCache(diskCache); + + QUrl url("http://127.0.0.1:" + QString::number(server.serverPort())); + QNetworkRequest request(url); + // request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork); + QNetworkReply *reply = manager->get(request); // new reply is parented to qnam + + // wait for readyRead of reply! + connect(reply, SIGNAL(readyRead()), &QTestEventLoop::instance(), SLOT(exitLoop())); + QTestEventLoop::instance().enterLoop(5); + QVERIFY(!QTestEventLoop::instance().timeout()); + + delete manager; // crashed before.. +} + void tst_QNetworkDiskCache::sync() { // This tests would be a nice to have, but is currently not supported. diff --git a/tests/auto/qsslcertificate/more-certificates/cert-large-serial-number.pem b/tests/auto/qsslcertificate/more-certificates/cert-large-serial-number.pem new file mode 100644 index 0000000..ecb6c35 --- /dev/null +++ b/tests/auto/qsslcertificate/more-certificates/cert-large-serial-number.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGjCCAYMCFAECAwQFBgcICRCqu8zd7v8XGBkgMA0GCSqGSIb3DQEBBQUAMEwx +CzAJBgNVBAYTAkdCMRIwEAYDVQQIEwlCZXJrc2hpcmUxEDAOBgNVBAcTB05ld2J1 +cnkxFzAVBgNVBAoTDk15IENvbXBhbnkgTHRkMB4XDTEwMDYwMTE1MDI0MVoXDTEx +MDYwMTE1MDI0MVowTDELMAkGA1UEBhMCR0IxEjAQBgNVBAgTCUJlcmtzaGlyZTEQ +MA4GA1UEBxMHTmV3YnVyeTEXMBUGA1UEChMOTXkgQ29tcGFueSBMdGQwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAM2q22/WNMmn8cC+5EEYGeICySLmp9W6Ay6e +KHr0Xxp3X3epETuPfvAuxp7rOtkS18EMUegkUj8jw0IMEcbyHKFC/rTCaYOt93Cx +GBXMIChiMPAsFeYzGa/D6xzAkfcRaJRQ+Ek3CDLXPnXfo7xpABXezYcPXAJrgsgB +fWrwHdxzAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtlScqSn4IHFLRiQYQdfOgsPi +wdqD1MPZEniQE0Xp8McZ7kuYbGgdEqzeVgMHqitlzkNNtTz+2u37CbFNXDGCTy5D +2JCgZxaAWNkh1w+4VB91HfMwEU0MqvAO7SB31FwbKNaB3gVnua++NL1cAkujyRny +yR3PatYZCfESQ7oZgds= +-----END CERTIFICATE----- diff --git a/tests/auto/qsslcertificate/tst_qsslcertificate.cpp b/tests/auto/qsslcertificate/tst_qsslcertificate.cpp index c76c11f..505b867 100644 --- a/tests/auto/qsslcertificate/tst_qsslcertificate.cpp +++ b/tests/auto/qsslcertificate/tst_qsslcertificate.cpp @@ -109,6 +109,7 @@ private slots: void task256066toPem(); void nulInCN(); void nulInSan(); + void largeSerialNumber(); // ### add tests for certificate bundles (multiple certificates concatenated into a single // structure); both PEM and DER formatted #endif @@ -786,6 +787,18 @@ void tst_QSslCertificate::nulInSan() QCOMPARE(dnssan, QString::fromLatin1(realSAN, sizeof realSAN - 1)); } +void tst_QSslCertificate::largeSerialNumber() +{ + QList<QSslCertificate> certList = + QSslCertificate::fromPath(SRCDIR "more-certificates/cert-large-serial-number.pem"); + + QCOMPARE(certList.size(), 1); + + const QSslCertificate &cert = certList.at(0); + QVERIFY(!cert.isNull()); + QCOMPARE(cert.serialNumber(), QByteArray("01:02:03:04:05:06:07:08:09:10:aa:bb:cc:dd:ee:ff:17:18:19:20")); +} + #endif // QT_NO_OPENSSL QTEST_MAIN(tst_QSslCertificate) diff --git a/tests/auto/qstatictext/tst_qstatictext.cpp b/tests/auto/qstatictext/tst_qstatictext.cpp index c7801ac..1d166f4 100644 --- a/tests/auto/qstatictext/tst_qstatictext.cpp +++ b/tests/auto/qstatictext/tst_qstatictext.cpp @@ -324,8 +324,7 @@ bool tst_QStaticText::supportsTransformations() const QPaintEngine::Type type = engine->type(); - if (type == QPaintEngine::OpenGL2 - || type == QPaintEngine::OpenGL + if (type == QPaintEngine::OpenGL #if !defined Q_WS_WIN || type == QPaintEngine::Raster #endif @@ -471,7 +470,7 @@ void tst_QStaticText::transformationChanged() p.drawText(QRectF(0, 0, 1000, 1000), 0, "Lorem ipsum dolor sit amet, consectetur adipiscing elit."); - p.scale(7.0, 5.0); + p.scale(2.0, 2.5); p.drawText(QRectF(0, 0, 1000, 1000), 0, "Lorem ipsum dolor sit amet, consectetur adipiscing elit."); } @@ -487,7 +486,7 @@ void tst_QStaticText::transformationChanged() p.drawStaticText(QPointF(0, 0), text); - p.scale(7.0, 5.0); + p.scale(2.0, 2.5); p.drawStaticText(QPointF(0, 0), text); } diff --git a/tests/auto/qstring/tst_qstring.cpp b/tests/auto/qstring/tst_qstring.cpp index eb2d5f1..9d8c0b2 100644 --- a/tests/auto/qstring/tst_qstring.cpp +++ b/tests/auto/qstring/tst_qstring.cpp @@ -212,6 +212,7 @@ private slots: void repeated() const; void repeated_data() const; void task262677remove(); + void QTBUG10404_compareRef(); }; typedef QList<int> IntList; @@ -4900,6 +4901,38 @@ void tst_QString::task262677remove() QVERIFY(driveName == QLatin1String("V:")); } +void tst_QString::QTBUG10404_compareRef() +{ + QString a = "ABCDEFGH"; + + QCOMPARE(QStringRef(&a, 1, 2).compare(QLatin1String("BC")), 0); + QVERIFY(QStringRef(&a, 1, 2).compare(QLatin1String("BCD")) < 0); + QCOMPARE(QStringRef(&a, 1, 2).compare(QLatin1String("Bc"), Qt::CaseInsensitive), 0); + QVERIFY(QStringRef(&a, 1, 2).compare(QLatin1String("bCD"), Qt::CaseInsensitive) < 0); + + QCOMPARE(QStringRef(&a, 1, 2).compare(QString::fromLatin1("BC")), 0); + QVERIFY(QStringRef(&a, 1, 2).compare(QString::fromLatin1("BCD")) < 0); + QCOMPARE(QStringRef(&a, 1, 2).compare(QString::fromLatin1("Bc"), Qt::CaseInsensitive), 0); + QVERIFY(QStringRef(&a, 1, 2).compare(QString::fromLatin1("bCD"), Qt::CaseInsensitive) < 0); + + QCOMPARE(QString::fromLatin1("BC").compare(QStringRef(&a, 1, 2)), 0); + QVERIFY(QString::fromLatin1("BCD").compare(QStringRef(&a, 1, 2)) > 0); + QCOMPARE(QString::fromLatin1("Bc").compare(QStringRef(&a, 1, 2), Qt::CaseInsensitive), 0); + QVERIFY(QString::fromLatin1("bCD").compare(QStringRef(&a, 1, 2), Qt::CaseInsensitive) > 0); + + QCOMPARE(QStringRef(&a, 1, 2).compare(QStringRef(&a, 1, 2)), 0); + QVERIFY(QStringRef(&a, 1, 2).compare(QStringRef(&a, 1, 3)) < 0); + QCOMPARE(QStringRef(&a, 1, 2).compare(QStringRef(&a, 1, 2), Qt::CaseInsensitive), 0); + QVERIFY(QStringRef(&a, 1, 2).compare(QStringRef(&a, 1, 3), Qt::CaseInsensitive) < 0); + + QString a2 = "ABCDEFGh"; + QCOMPARE(QStringRef(&a2, 1, 2).compare(QStringRef(&a, 1, 2)), 0); + QVERIFY(QStringRef(&a2, 1, 2).compare(QStringRef(&a, 1, 3)) < 0); + QCOMPARE(QStringRef(&a2, 1, 2).compare(QStringRef(&a, 1, 2), Qt::CaseInsensitive), 0); + QVERIFY(QStringRef(&a2, 1, 2).compare(QStringRef(&a, 1, 3), Qt::CaseInsensitive) < 0); +} + + QTEST_APPLESS_MAIN(tst_QString) diff --git a/tests/auto/qtextcursor/tst_qtextcursor.cpp b/tests/auto/qtextcursor/tst_qtextcursor.cpp index d44ce72..99babac 100644 --- a/tests/auto/qtextcursor/tst_qtextcursor.cpp +++ b/tests/auto/qtextcursor/tst_qtextcursor.cpp @@ -226,9 +226,9 @@ void tst_QTextCursor::navigation1() cursor.movePosition(QTextCursor::End); cursor.insertBlock(); { - int oldPos = cursor.position(); - cursor.movePosition(QTextCursor::End); - QVERIFY(cursor.position() == oldPos); + int oldPos = cursor.position(); + cursor.movePosition(QTextCursor::End); + QVERIFY(cursor.position() == oldPos); } QVERIFY(cursor.atBlockStart()); QVERIFY(cursor.position() == 9); @@ -1699,8 +1699,10 @@ void tst_QTextCursor::adjustCursorsOnInsert() QCOMPARE(selection.position(), posAfter+1); doc->undo(); + selection.setKeepPositionOnInsert(true); cursor.setPosition(posAfter); cursor.insertText(QLatin1String("x")); + selection.setKeepPositionOnInsert(false); QCOMPARE(selection.anchor(), posBefore); QCOMPARE(selection.position(), posAfter); doc->undo(); diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp index 5d47aed..a1fc607 100644 --- a/tests/auto/qwidget/tst_qwidget.cpp +++ b/tests/auto/qwidget/tst_qwidget.cpp @@ -385,6 +385,7 @@ private slots: void setGraphicsEffect(); void destroyBackingStore(); + void destroyBackingStoreWhenHidden(); void activateWindow(); @@ -9499,9 +9500,7 @@ void tst_QWidget::destroyBackingStore() QTRY_VERIFY(w.numPaintEvents > 0); w.reset(); w.update(); - delete qt_widget_private(&w)->topData()->backingStore; - qt_widget_private(&w)->topData()->backingStore = 0; - qt_widget_private(&w)->topData()->backingStore = new QWidgetBackingStore(&w); + qt_widget_private(&w)->topData()->backingStore.create(&w); w.update(); QApplication::processEvents(); @@ -9519,6 +9518,252 @@ void tst_QWidget::destroyBackingStore() #endif } +// Helper function +QWidgetBackingStore* backingStore(QWidget &widget) +{ + QWidgetBackingStore *backingStore = 0; +#ifdef QT_BUILD_INTERNAL + if (QTLWExtra *topExtra = qt_widget_private(&widget)->maybeTopData()) + backingStore = topExtra->backingStore.data(); +#endif + return backingStore; +} + +// Wait for a condition to be true, timing out after 1 second +// This is used following calls to QWidget::show() and QWidget::hide(), which are +// expected to asynchronously trigger native window visibility events. +#define WAIT_AND_VERIFY(condition) \ + do { \ + QTime start = QTime::currentTime(); \ + while (!(condition) && (start.elapsed() < 1000)) { \ + qApp->processEvents(); \ + QTest::qWait(50); \ + } \ + if (!QTest::qVerify((condition), #condition, "", __FILE__, __LINE__)) \ + return; \ + } while (0) + +void tst_QWidget::destroyBackingStoreWhenHidden() +{ +#ifndef QT_BUILD_INTERNAL + QSKIP("Test step requires access to Q_AUTOTEST_EXPORT", SkipAll); +#endif + +#ifndef Q_OS_SYMBIAN + QSKIP("Only Symbian destroys backing store when native window becomes invisible", SkipAll); +#endif + + testWidget->hide(); + QTest::qWait(1000); + + // 1. Single top-level QWidget + { + QWidget w; + w.setAutoFillBackground(true); + w.setPalette(Qt::yellow); + w.setGeometry(0, 0, 100, 100); + w.show(); + QTest::qWaitForWindowShown(&w); + QVERIFY(0 != backingStore(w)); + + w.hide(); + WAIT_AND_VERIFY(0 == backingStore(w)); + + w.show(); + QTest::qWaitForWindowShown(&w); + QVERIFY(0 != backingStore(w)); + } + + // 2. Two top-level widgets + { + QWidget w1; + w1.setGeometry(0, 0, 100, 100); + w1.setAutoFillBackground(true); + w1.setPalette(Qt::red); + w1.show(); + QTest::qWaitForWindowShown(&w1); + QVERIFY(0 != backingStore(w1)); + + QWidget w2; + w2.setGeometry(w1.geometry()); + w1.setAutoFillBackground(true); + w1.setPalette(Qt::blue); + w2.show(); + QTest::qWaitForWindowShown(&w2); + QVERIFY(0 != backingStore(w2)); + + // Check that w1 deleted its backing store when obscured by w2 + QVERIFY(0 == backingStore(w1)); + + w2.move(w2.pos() + QPoint(10, 10)); + + // Check that w1 recreates its backing store when partially revealed + WAIT_AND_VERIFY(0 != backingStore(w1)); + } + + // 3. Native child widget + { + QWidget parent; + parent.setGeometry(0, 0, 100, 100); + parent.setAutoFillBackground(true); + parent.setPalette(Qt::yellow); + + QWidget child(&parent); + child.setAutoFillBackground(true); + child.setPalette(Qt::green); + + QVBoxLayout layout(&parent); + layout.setContentsMargins(10, 10, 10, 10); + layout.addWidget(&child); + parent.setLayout(&layout); + + child.winId(); + + parent.show(); + QTest::qWaitForWindowShown(&parent); + + // Check that child window does not obscure parent window + QVERIFY(!parent.visibleRegion().subtracted(child.visibleRegion()).isEmpty()); + + // Native child widget should share parent's backing store + QWidgetBackingStore *const parentBs = backingStore(parent); + QVERIFY(0 != parentBs); + QVERIFY(0 == backingStore(child)); + + // Set margins to zero so that child widget totally obscures parent + layout.setContentsMargins(0, 0, 0, 0); + + WAIT_AND_VERIFY(parent.visibleRegion().subtracted(child.visibleRegion()).isEmpty()); + + // Backing store should remain unchanged despite child window obscuring + // parent window + QVERIFY(parentBs == backingStore(parent)); + QVERIFY(0 == backingStore(child)); + } + + // 4. Alien child widget which is made full-screen + { + QWidget parent; + parent.setGeometry(0, 0, 100, 100); + parent.setAutoFillBackground(true); + parent.setPalette(Qt::red); + + QWidget child(&parent); + child.setAutoFillBackground(true); + child.setPalette(Qt::blue); + + QVBoxLayout layout(&parent); + layout.setContentsMargins(10, 10, 10, 10); + layout.addWidget(&child); + parent.setLayout(&layout); + + parent.show(); + QTest::qWaitForWindowShown(&parent); + + // Check that child window does not obscure parent window + QVERIFY(!parent.visibleRegion().subtracted(child.visibleRegion()).isEmpty()); + + // Native child widget should share parent's backing store + QVERIFY(0 != backingStore(parent)); + QVERIFY(0 == backingStore(child)); + + // Make child widget full screen + child.setWindowFlags((child.windowFlags() | Qt::Window) ^ Qt::SubWindow); + child.setWindowState(child.windowState() | Qt::WindowFullScreen); + child.show(); + QTest::qWaitForWindowShown(&child); + + // Check that child window obscures parent window + QVERIFY(parent.visibleRegion().subtracted(child.visibleRegion()).isEmpty()); + + // Now that extent of child widget goes beyond parent's extent, + // a new backing store should be created for the child widget. + QVERIFY(0 != backingStore(child)); + + // Parent is obscured, therefore its backing store should be destroyed + QVERIFY(0 == backingStore(parent)); + + // Disable full screen + child.setWindowFlags(child.windowFlags() ^ (Qt::Window | Qt::SubWindow)); + child.setWindowState(child.windowState() ^ Qt::WindowFullScreen); + child.show(); + QTest::qWaitForWindowShown(&child); + + // Check that parent is now visible again + QVERIFY(!parent.visibleRegion().subtracted(child.visibleRegion()).isEmpty()); + + // Native child widget should once again share parent's backing store + QVERIFY(0 != backingStore(parent)); + QEXPECT_FAIL("", "QTBUG-10643", Continue); + QVERIFY(0 == backingStore(child)); + } + + // 5. Native child widget which is made full-screen + { + QWidget parent; + parent.setGeometry(0, 0, 100, 100); + parent.setAutoFillBackground(true); + parent.setPalette(Qt::red); + + QWidget child(&parent); + child.setAutoFillBackground(true); + child.setPalette(Qt::blue); + + QVBoxLayout layout(&parent); + layout.setContentsMargins(10, 10, 10, 10); + layout.addWidget(&child); + parent.setLayout(&layout); + + child.winId(); + + parent.show(); + QTest::qWaitForWindowShown(&parent); + + // Check that child window does not obscure parent window + QVERIFY(!parent.visibleRegion().subtracted(child.visibleRegion()).isEmpty()); + + // Native child widget should share parent's backing store + QVERIFY(0 != backingStore(parent)); + QVERIFY(0 == backingStore(child)); + + // Make child widget full screen + child.setWindowFlags((child.windowFlags() | Qt::Window) ^ Qt::SubWindow); + child.setWindowState(child.windowState() | Qt::WindowFullScreen); + child.show(); + QTest::qWaitForWindowShown(&child); + + // Ensure that 'window hidden' event is received by parent + qApp->processEvents(); + + // Check that child window obscures parent window + QVERIFY(parent.visibleRegion().subtracted(child.visibleRegion()).isEmpty()); + + // Now that extent of child widget goes beyond parent's extent, + // a new backing store should be created for the child widget. + QVERIFY(0 != backingStore(child)); + + // Parent is obscured, therefore its backing store should be destroyed + QEXPECT_FAIL("", "QTBUG-10643", Continue); + QVERIFY(0 == backingStore(parent)); + + // Disable full screen + child.setWindowFlags(child.windowFlags() ^ (Qt::Window | Qt::SubWindow)); + child.setWindowState(child.windowState() ^ Qt::WindowFullScreen); + child.show(); + QTest::qWaitForWindowShown(&child); + + // Check that parent is now visible again + QVERIFY(!parent.visibleRegion().subtracted(child.visibleRegion()).isEmpty()); + + // Native child widget should once again share parent's backing store + QVERIFY(0 != backingStore(parent)); + QEXPECT_FAIL("", "QTBUG-10643", Continue); + QVERIFY(0 == backingStore(child)); + } +} + +#undef WAIT_AND_VERIFY + void tst_QWidget::rectOutsideCoordinatesLimit_task144779() { #ifdef Q_OS_WINCE_WM @@ -10000,15 +10245,12 @@ class scrollWidgetWBS : public QWidget public: void deleteBackingStore() { - if (static_cast<QWidgetPrivate*>(d_ptr.data())->maybeBackingStore()) { - delete static_cast<QWidgetPrivate*>(d_ptr.data())->topData()->backingStore; - static_cast<QWidgetPrivate*>(d_ptr.data())->topData()->backingStore = 0; - } + static_cast<QWidgetPrivate*>(d_ptr.data())->topData()->backingStore.destroy(); } void enableBackingStore() { if (!static_cast<QWidgetPrivate*>(d_ptr.data())->maybeBackingStore()) { - static_cast<QWidgetPrivate*>(d_ptr.data())->topData()->backingStore = new QWidgetBackingStore(this); + static_cast<QWidgetPrivate*>(d_ptr.data())->topData()->backingStore.create(this); static_cast<QWidgetPrivate*>(d_ptr.data())->invalidateBuffer(this->rect()); repaint(); } diff --git a/tools/linguist/lconvert/main.cpp b/tools/linguist/lconvert/main.cpp index 543c405..094406c 100644 --- a/tools/linguist/lconvert/main.cpp +++ b/tools/linguist/lconvert/main.cpp @@ -240,7 +240,7 @@ int main(int argc, char *argv[]) tr.setLanguageCode(Translator::guessLanguageCodeFromFileName(inFiles[0].name)); if (!tr.load(inFiles[0].name, cd, inFiles[0].format)) { - qWarning() << qPrintable(cd.error()); + std::cerr << qPrintable(cd.error()); return 2; } tr.reportDuplicates(tr.resolveDuplicates(), inFiles[0].name, verbose); @@ -248,7 +248,7 @@ int main(int argc, char *argv[]) for (int i = 1; i < inFiles.size(); ++i) { Translator tr2; if (!tr2.load(inFiles[i].name, cd, inFiles[i].format)) { - qWarning() << qPrintable(cd.error()); + std::cerr << qPrintable(cd.error()); return 2; } tr2.reportDuplicates(tr2.resolveDuplicates(), inFiles[i].name, verbose); @@ -273,11 +273,11 @@ int main(int argc, char *argv[]) tr.normalizeTranslations(cd); if (!cd.errors().isEmpty()) { - qWarning("%s", qPrintable(cd.error())); + std::cerr << qPrintable(cd.error()); cd.clearErrors(); } if (!tr.save(outFileName, cd, outFormat)) { - qWarning("%s", qPrintable(cd.error())); + std::cerr << qPrintable(cd.error()); return 3; } return 0; diff --git a/tools/linguist/lrelease/main.cpp b/tools/linguist/lrelease/main.cpp index 266474e..b5cff90 100644 --- a/tools/linguist/lrelease/main.cpp +++ b/tools/linguist/lrelease/main.cpp @@ -55,6 +55,8 @@ #include <QtCore/QStringList> #include <QtCore/QTextStream> +#include <iostream> + QT_USE_NAMESPACE #ifdef QT_BOOTSTRAPPED @@ -106,7 +108,7 @@ static bool loadTsFile(Translator &tor, const QString &tsFileName, bool /* verbo ConversionData cd; bool ok = tor.load(tsFileName, cd, QLatin1String("auto")); if (!ok) { - qWarning("lrelease error: %s\n", qPrintable(cd.error())); + std::cerr << "lrelease error: " << qPrintable(cd.error()); } else { if (!cd.errors().isEmpty()) printOut(cd.error()); @@ -130,8 +132,8 @@ static bool releaseTranslator(Translator &tor, const QString &qmFileName, QFile file(qmFileName); if (!file.open(QIODevice::WriteOnly)) { - qWarning("lrelease error: cannot create '%s': %s\n", - qPrintable(qmFileName), qPrintable(file.errorString())); + std::cerr << "lrelease error: cannot create '" << qPrintable(qmFileName) + << "': " << qPrintable(file.errorString()) << std::endl; return false; } @@ -140,8 +142,8 @@ static bool releaseTranslator(Translator &tor, const QString &qmFileName, file.close(); if (!ok) { - qWarning("lrelease error: cannot save '%s': %s\n", - qPrintable(qmFileName), qPrintable(cd.error())); + std::cerr << "lrelease error: cannot save '" << qPrintable(qmFileName) + << "': " << qPrintable(cd.error()); } else if (!cd.errors().isEmpty()) { printOut(cd.error()); } @@ -253,19 +255,20 @@ int main(int argc, char **argv) visitor.setVerbose(cd.isVerbose()); if (!visitor.queryProFile(&pro)) { - qWarning("lrelease error: cannot read project file '%s'.", qPrintable(inputFile)); + std::cerr << "lrelease error: cannot read project file '" + << qPrintable(inputFile) << "'.\n"; continue; } if (!visitor.accept(&pro)) { - qWarning("lrelease error: cannot process project file '%s'.", qPrintable(inputFile)); + std::cerr << "lrelease error: cannot process project file '" + << qPrintable(inputFile) << "'.\n"; continue; } QStringList translations = visitor.values(QLatin1String("TRANSLATIONS")); if (translations.isEmpty()) { - qWarning("lrelease warning: Met no 'TRANSLATIONS' entry in" - " project file '%s'\n", - qPrintable(inputFile)); + std::cerr << "lrelease warning: Met no 'TRANSLATIONS' entry in project file '" + << qPrintable(inputFile) << "'\n"; } else { QDir proDir(fi.absolutePath()); foreach (const QString &trans, translations) diff --git a/tools/linguist/lupdate/cpp.cpp b/tools/linguist/lupdate/cpp.cpp index db4bbca..b3e7e84 100644 --- a/tools/linguist/lupdate/cpp.cpp +++ b/tools/linguist/lupdate/cpp.cpp @@ -51,6 +51,8 @@ #include <QtCore/QTextCodec> #include <QtCore/QTextStream> +#include <iostream> + #include <ctype.h> // for isXXX() QT_BEGIN_NAMESPACE @@ -226,6 +228,8 @@ private: int elseLine; }; + std::ostream &yyMsg(int line = 0); + uint getChar(); uint getToken(); bool getMacroArgs(); @@ -352,6 +356,12 @@ CppParser::CppParser(ParseResults *_results) inDefine = false; } + +std::ostream &CppParser::yyMsg(int line) +{ + return std::cerr << qPrintable(yyFileName) << ':' << (line ? line : yyLineNo) << ": "; +} + void CppParser::setInput(const QString &in) { yyInStr = in; @@ -613,9 +623,9 @@ uint CppParser::getToken() if (yyBracketDepth != is.bracketDepth1st || yyBraceDepth != is.braceDepth1st || yyParenDepth != is.parenDepth1st) - qWarning("%s:%d: Parenthesis/bracket/brace mismatch between " - "#if and #else branches; using #if branch\n", - qPrintable(yyFileName), is.elseLine); + yyMsg(is.elseLine) + << "Parenthesis/bracket/brace mismatch between " + "#if and #else branches; using #if branch\n"; } else { is.bracketDepth1st = yyBracketDepth; is.braceDepth1st = yyBraceDepth; @@ -636,9 +646,9 @@ uint CppParser::getToken() if (yyBracketDepth != is.bracketDepth1st || yyBraceDepth != is.braceDepth1st || yyParenDepth != is.parenDepth1st) - qWarning("%s:%d: Parenthesis/brace mismatch between " - "#if and #else branches; using #if branch\n", - qPrintable(yyFileName), is.elseLine); + yyMsg(is.elseLine) + << "Parenthesis/brace mismatch between " + "#if and #else branches; using #if branch\n"; yyBracketDepth = is.bracketDepth1st; yyBraceDepth = is.braceDepth1st; yyParenDepth = is.parenDepth1st; @@ -664,8 +674,7 @@ uint CppParser::getToken() forever { yyCh = getChar(); if (yyCh == EOF) { - qWarning("%s:%d: Unterminated C++ comment\n", - qPrintable(yyFileName), yyLineNo); + yyMsg() << "Unterminated C++ comment\n"; break; } @@ -795,8 +804,7 @@ uint CppParser::getToken() forever { yyCh = getChar(); if (yyCh == EOF) { - qWarning("%s:%d: Unterminated C++ comment\n", - qPrintable(yyFileName), yyLineNo); + yyMsg() << "Unterminated C++ comment\n"; break; } *ptr++ = yyCh; @@ -829,8 +837,7 @@ uint CppParser::getToken() yyWord.resize(ptr - (ushort *)yyWord.unicode()); if (yyCh != '"') - qWarning("%s:%d: Unterminated C++ string\n", - qPrintable(yyFileName), yyLineNo); + yyMsg() << "Unterminated C++ string\n"; else yyCh = getChar(); return Tok_String; @@ -867,8 +874,7 @@ uint CppParser::getToken() forever { if (yyCh == EOF || yyCh == '\n') { - qWarning("%s:%d: Unterminated C++ character\n", - qPrintable(yyFileName), yyLineNo); + yyMsg() << "Unterminated C++ character\n"; break; } yyCh = getChar(); @@ -887,9 +893,9 @@ uint CppParser::getToken() case '}': if (yyBraceDepth == yyMinBraceDepth) { if (!inDefine) - qWarning("%s:%d: Excess closing brace in C++ code" - " (or abuse of the C++ preprocessor)\n", - qPrintable(yyFileName), yyCurLineNo); + yyMsg(yyCurLineNo) + << "Excess closing brace in C++ code" + " (or abuse of the C++ preprocessor)\n"; // Avoid things getting messed up even more yyCh = getChar(); return Tok_Semicolon; @@ -905,9 +911,9 @@ uint CppParser::getToken() return Tok_LeftParen; case ')': if (yyParenDepth == 0) - qWarning("%s:%d: Excess closing parenthesis in C++ code" - " (or abuse of the C++ preprocessor)\n", - qPrintable(yyFileName), yyCurLineNo); + yyMsg(yyCurLineNo) + << "Excess closing parenthesis in C++ code" + " (or abuse of the C++ preprocessor)\n"; else yyParenDepth--; yyCh = getChar(); @@ -920,9 +926,9 @@ uint CppParser::getToken() return Tok_LeftBracket; case ']': if (yyBracketDepth == 0) - qWarning("%s:%d: Excess closing bracket in C++ code" - " (or abuse of the C++ preprocessor)\n", - qPrintable(yyFileName), yyCurLineNo); + yyMsg(yyCurLineNo) + << "Excess closing bracket in C++ code" + " (or abuse of the C++ preprocessor)\n"; else yyBracketDepth--; yyCh = getChar(); @@ -1290,8 +1296,7 @@ void CppParser::processInclude(const QString &file, ConversionData &cd, QString cleanFile = QDir::cleanPath(file); if (inclusions.contains(cleanFile)) { - qWarning("%s:%d: circular inclusion of %s\n", - qPrintable(yyFileName), yyLineNo, qPrintable(cleanFile)); + yyMsg() << "circular inclusion of " << qPrintable(cleanFile) << std::endl; return; } @@ -1315,9 +1320,9 @@ void CppParser::processInclude(const QString &file, ConversionData &cd, QFile f(cleanFile); if (!f.open(QIODevice::ReadOnly)) { - qWarning("%s:%d: Cannot open %s: %s\n", - qPrintable(yyFileName), yyLineNo, - qPrintable(cleanFile), qPrintable(f.errorString())); + yyMsg() + << "Cannot open " << qPrintable(cleanFile) << ": " + << qPrintable(f.errorString()) << std::endl; return; } @@ -1656,8 +1661,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) // Forward-declared class definitions can be namespaced. NamespaceList nsl; if (!fullyQualify(namespaces, quali, true, &nsl, 0)) { - qWarning("%s:%d: Ignoring definition of undeclared qualified class\n", - qPrintable(yyFileName), yyLineNo); + yyMsg() << "Ignoring definition of undeclared qualified class\n"; break; } namespaceDepths.push(namespaces.count()); @@ -1757,8 +1761,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) if (!tor) goto case_default; if (!sourcetext.isEmpty()) - qWarning("%s:%d: //%% cannot be used with tr() / QT_TR_NOOP(). Ignoring\n", - qPrintable(yyFileName), yyLineNo); + yyMsg() << "//%% cannot be used with tr() / QT_TR_NOOP(). Ignoring\n"; utf8 = (yyTok == Tok_trUtf8); line = yyLineNo; yyTok = getToken(); @@ -1779,10 +1782,9 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) QStringList unresolved; if (!fullyQualify(namespaces, pendingContext, true, &functionContext, &unresolved)) { functionContextUnresolved = unresolved.join(strColons); - qWarning("%s:%d: Qualifying with unknown namespace/class %s::%s\n", - qPrintable(yyFileName), yyLineNo, - qPrintable(stringifyNamespace(functionContext)), - qPrintable(unresolved.first())); + yyMsg() << "Qualifying with unknown namespace/class " + << qPrintable(stringifyNamespace(functionContext)) << "::" + << qPrintable(unresolved.first()) << std::endl; } pendingContext.clear(); } @@ -1790,8 +1792,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) if (functionContextUnresolved.isEmpty()) { int idx = functionContext.length(); if (idx < 2) { - qWarning("%s:%d: tr() cannot be called without context\n", - qPrintable(yyFileName), yyLineNo); + yyMsg() << "tr() cannot be called without context\n"; break; } Namespace *fctx; @@ -1800,9 +1801,8 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) context = stringifyNamespace(functionContext); fctx = findNamespace(functionContext)->classDef; if (!fctx->complained) { - qWarning("%s:%d: Class '%s' lacks Q_OBJECT macro\n", - qPrintable(yyFileName), yyLineNo, - qPrintable(context)); + yyMsg() << "Class '" << qPrintable(context) + << "' lacks Q_OBJECT macro\n"; fctx->complained = true; } goto gotctx; @@ -1830,9 +1830,8 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) int last = prefix.lastIndexOf(strColons); QString className = prefix.mid(last == -1 ? 0 : last + 2); if (!className.isEmpty() && className == functionName) { - qWarning("%s::%d: It is not recommended to call tr() from within a constructor '%s::%s' ", - qPrintable(yyFileName), yyLineNo, - className.constData(), functionName.constData()); + yyMsg() << "It is not recommended to call tr() from within a constructor '" + << qPrintable(className) << "::" << qPrintable(functionName) << "'\n"; } #endif prefix.chop(2); @@ -1847,9 +1846,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) context = fctx->trQualification; } if (!fctx->hasTrFunctions && !fctx->complained) { - qWarning("%s:%d: Class '%s' lacks Q_OBJECT macro\n", - qPrintable(yyFileName), yyLineNo, - qPrintable(context)); + yyMsg() << "Class '" << qPrintable(context) << "' lacks Q_OBJECT macro\n"; fctx->complained = true; } } else { @@ -1870,8 +1867,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) if (!tor) goto case_default; if (!sourcetext.isEmpty()) - qWarning("%s:%d: //%% cannot be used with translate() / QT_TRANSLATE_NOOP(). Ignoring\n", - qPrintable(yyFileName), yyLineNo); + yyMsg() << "//%% cannot be used with translate() / QT_TRANSLATE_NOOP(). Ignoring\n"; utf8 = (yyTok == Tok_translateUtf8); line = yyLineNo; yyTok = getToken(); @@ -1925,8 +1921,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) if (!tor) goto case_default; if (!msgid.isEmpty()) - qWarning("%s:%d: //= cannot be used with qtTrId() / QT_TRID_NOOP(). Ignoring\n", - qPrintable(yyFileName), yyLineNo); + yyMsg() << "//= cannot be used with qtTrId() / QT_TRID_NOOP(). Ignoring\n"; //utf8 = false; // Maybe use //%% or something like that line = yyLineNo; yyTok = getToken(); @@ -1993,15 +1988,13 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) if (isspace(c)) continue; if (c != '"') { - qWarning("%s:%d: Unexpected character in meta string\n", - qPrintable(yyFileName), yyLineNo); + yyMsg() << "Unexpected character in meta string\n"; break; } forever { if (p >= yyWord.length()) { whoops: - qWarning("%s:%d: Unterminated meta string\n", - qPrintable(yyFileName), yyLineNo); + yyMsg() << "Unterminated meta string\n"; break; } c = yyWord.unicode()[p++].unicode(); @@ -2054,8 +2047,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) case Tok_Arrow: yyTok = getToken(); if (yyTok == Tok_tr || yyTok == Tok_trUtf8) - qWarning("%s:%d: Cannot invoke tr() like this\n", - qPrintable(yyFileName), yyLineNo); + yyMsg() << "Cannot invoke tr() like this\n"; break; case Tok_ColonColon: if (yyBraceDepth == namespaceDepths.count() && yyParenDepth == 0 && !yyTokColonSeen) @@ -2123,17 +2115,17 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) } if (yyBraceDepth != 0) - qWarning("%s:%d: Unbalanced opening brace in C++ code" - " (or abuse of the C++ preprocessor)\n", - qPrintable(yyFileName), yyBraceLineNo); + yyMsg(yyBraceLineNo) + << "Unbalanced opening brace in C++ code" + " (or abuse of the C++ preprocessor)\n"; else if (yyParenDepth != 0) - qWarning("%s:%d: Unbalanced opening parenthesis in C++ code" - " (or abuse of the C++ preprocessor)\n", - qPrintable(yyFileName), yyParenLineNo); + yyMsg(yyParenLineNo) + << "Unbalanced opening parenthesis in C++ code" + " (or abuse of the C++ preprocessor)\n"; else if (yyBracketDepth != 0) - qWarning("%s:%d: Unbalanced opening bracket in C++ code" - " (or abuse of the C++ preprocessor)\n", - qPrintable(yyFileName), yyBracketLineNo); + yyMsg(yyBracketLineNo) + << "Unbalanced opening bracket in C++ code" + " (or abuse of the C++ preprocessor)\n"; } const ParseResults *CppParser::recordResults(bool isHeader) diff --git a/tools/linguist/lupdate/java.cpp b/tools/linguist/lupdate/java.cpp index 27988b04..dc66e2b 100644 --- a/tools/linguist/lupdate/java.cpp +++ b/tools/linguist/lupdate/java.cpp @@ -51,6 +51,8 @@ #include <QtCore/QString> #include <QtCore/QTextCodec> +#include <iostream> + #include <ctype.h> QT_BEGIN_NAMESPACE @@ -107,6 +109,11 @@ static QString yyPackage; static QStack<Scope*> yyScope; static QString yyDefaultContext; +std::ostream &yyMsg(int line = 0) +{ + return std::cerr << qPrintable(yyFileName) << ':' << (line ? line : yyLineNo) << ": "; +} + static QChar getChar() { if (yyInPos >= yyInStr.size()) @@ -189,10 +196,7 @@ static int getToken() while ( !metAsterSlash ) { yyCh = getChar(); if ( yyCh == EOF ) { - qFatal( "%s: Unterminated Java comment starting at" - " line %d\n", - qPrintable(yyFileName), yyLineNo ); - + yyMsg() << "Unterminated Java comment.\n"; return Tok_Comment; } @@ -228,8 +232,8 @@ static int getToken() else { int sub(yyCh.toLower().toAscii() - 87); if( sub > 15 || sub < 10) { - qFatal( "%s:%d: Invalid Unicode", - qPrintable(yyFileName), yyLineNo ); + yyMsg() << "Invalid Unicode value.\n"; + break; } unicode += sub; } @@ -251,8 +255,7 @@ static int getToken() } if ( yyCh != QLatin1Char('"') ) - qFatal( "%s:%d: Unterminated string", - qPrintable(yyFileName), yyLineNo ); + yyMsg() << "Unterminated string.\n"; yyCh = getChar(); @@ -365,9 +368,8 @@ static bool matchString( QString &s ) if (yyTok == Tok_String) s += yyString; else { - qWarning( "%s:%d: String used in translation can only contain strings" - " concatenated with other strings, not expressions or numbers.", - qPrintable(yyFileName), yyLineNo ); + yyMsg() << "String used in translation can contain only literals" + " concatenated with other literals, not expressions or numbers.\n"; return false; } yyTok = getToken(); @@ -475,8 +477,8 @@ static void parse( Translator *tor ) yyScope.push(new Scope(yyIdent, Scope::Clazz, yyLineNo)); } else { - qFatal( "%s:%d: Class must be followed by a classname", - qPrintable(yyFileName), yyLineNo ); + yyMsg() << "'class' must be followed by a class name.\n"; + break; } while (!match(Tok_LeftBrace)) { yyTok = getToken(); @@ -547,8 +549,7 @@ static void parse( Translator *tor ) case Tok_RightBrace: if ( yyScope.isEmpty() ) { - qFatal( "%s:%d: Unbalanced right brace in Java code\n", - qPrintable(yyFileName), yyLineNo ); + yyMsg() << "Excess closing brace.\n"; } else delete (yyScope.pop()); @@ -577,8 +578,7 @@ static void parse( Translator *tor ) yyPackage.append(QLatin1String(".")); break; default: - qFatal( "%s:%d: Package keyword should be followed by com.package.name;", - qPrintable(yyFileName), yyLineNo ); + yyMsg() << "'package' must be followed by package name.\n"; break; } yyTok = getToken(); @@ -591,11 +591,9 @@ static void parse( Translator *tor ) } if ( !yyScope.isEmpty() ) - qFatal( "%s:%d: Unbalanced braces in Java code\n", - qPrintable(yyFileName), yyScope.top()->line ); + yyMsg(yyScope.top()->line) << "Unbalanced opening brace.\n"; else if ( yyParenDepth != 0 ) - qFatal( "%s:%d: Unbalanced parentheses in Java code\n", - qPrintable(yyFileName), yyParenLineNo ); + yyMsg(yyParenLineNo) << "Unbalanced opening parenthesis.\n"; } diff --git a/tools/linguist/lupdate/main.cpp b/tools/linguist/lupdate/main.cpp index 6c9157a..6e3ab5c 100644 --- a/tools/linguist/lupdate/main.cpp +++ b/tools/linguist/lupdate/main.cpp @@ -57,16 +57,15 @@ static QString m_defaultExtensions; -static void printErr(const QString & out) -{ - qWarning("%s", qPrintable(out)); -} - static void printOut(const QString & out) { std::cerr << qPrintable(out); } +class LU { + Q_DECLARE_TR_FUNCTIONS(LUpdate); +}; + static void recursiveFileInfoList(const QDir &dir, const QSet<QString> &nameFilters, QDir::Filters filter, QFileInfoList *fileinfolist) @@ -150,24 +149,25 @@ static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFil cd.m_sortContexts = !(options & NoSort); if (QFile(fileName).exists()) { if (!tor.load(fileName, cd, QLatin1String("auto"))) { - printErr(cd.error()); + printOut(cd.error()); *fail = true; continue; } tor.resolveDuplicates(); cd.clearErrors(); if (setCodec && fetchedTor.codec() != tor.codec()) - qWarning("lupdate warning: Codec for tr() '%s' disagrees with " - "existing file's codec '%s'. Expect trouble.", - fetchedTor.codecName().constData(), tor.codecName().constData()); + printOut(LU::tr("lupdate warning: Codec for tr() '%1' disagrees with" + " existing file's codec '%2'. Expect trouble.\n") + .arg(QString::fromLatin1(fetchedTor.codecName()), + QString::fromLatin1(tor.codecName()))); if (!targetLanguage.isEmpty() && targetLanguage != tor.languageCode()) - qWarning("lupdate warning: Specified target language '%s' disagrees with " - "existing file's language '%s'. Ignoring.", - qPrintable(targetLanguage), qPrintable(tor.languageCode())); + printOut(LU::tr("lupdate warning: Specified target language '%1' disagrees with" + " existing file's language '%2'. Ignoring.\n") + .arg(targetLanguage, tor.languageCode())); if (!sourceLanguage.isEmpty() && sourceLanguage != tor.sourceLanguageCode()) - qWarning("lupdate warning: Specified source language '%s' disagrees with " - "existing file's language '%s'. Ignoring.", - qPrintable(sourceLanguage), qPrintable(tor.sourceLanguageCode())); + printOut(LU::tr("lupdate warning: Specified source language '%1' disagrees with" + " existing file's language '%2'. Ignoring.\n") + .arg(sourceLanguage, tor.sourceLanguageCode())); } else { if (setCodec) tor.setCodec(fetchedTor.codec()); @@ -210,11 +210,11 @@ static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFil out.normalizeTranslations(cd); if (!cd.errors().isEmpty()) { - printErr(cd.error()); + printOut(cd.error()); cd.clearErrors(); } if (!out.save(fileName, cd, QLatin1String("auto"))) { - printErr(cd.error()); + printOut(cd.error()); *fail = true; } } @@ -296,8 +296,9 @@ static void processProject( if (!tmp.isEmpty()) { codecForSource = tmp.last().toLatin1(); if (!QTextCodec::codecForName(codecForSource)) { - qWarning("lupdate warning: Codec for source '%s' is invalid. " - "Falling back to codec for tr().", codecForSource.constData()); + printOut(LU::tr("lupdate warning: Codec for source '%1' is invalid." + " Falling back to codec for tr().\n") + .arg(QString::fromLatin1(codecForSource))); codecForSource.clear(); } } @@ -452,7 +453,7 @@ int main(int argc, char **argv) } else if (arg == QLatin1String("-target-language")) { ++i; if (i == argc) { - qWarning("The option -target-language requires a parameter."); + printOut(LU::tr("The option -target-language requires a parameter.\n")); return 1; } targetLanguage = args[i]; @@ -460,7 +461,7 @@ int main(int argc, char **argv) } else if (arg == QLatin1String("-source-language")) { ++i; if (i == argc) { - qWarning("The option -source-language requires a parameter."); + printOut(LU::tr("The option -source-language requires a parameter.\n")); return 1; } sourceLanguage = args[i]; @@ -468,7 +469,7 @@ int main(int argc, char **argv) } else if (arg == QLatin1String("-disable-heuristic")) { ++i; if (i == argc) { - qWarning("The option -disable-heuristic requires a parameter."); + printOut(LU::tr("The option -disable-heuristic requires a parameter.\n")); return 1; } arg = args[i]; @@ -479,14 +480,14 @@ int main(int argc, char **argv) } else if (arg == QLatin1String("number")) { options &= ~HeuristicNumber; } else { - qWarning("Invalid heuristic name passed to -disable-heuristic."); + printOut(LU::tr("Invalid heuristic name passed to -disable-heuristic.\n")); return 1; } continue; } else if (arg == QLatin1String("-locations")) { ++i; if (i == argc) { - qWarning("The option -locations requires a parameter."); + printOut(LU::tr("The option -locations requires a parameter.\n")); return 1; } if (args[i] == QLatin1String("none")) { @@ -496,7 +497,7 @@ int main(int argc, char **argv) } else if (args[i] == QLatin1String("absolute")) { options |= AbsoluteLocations; } else { - qWarning("Invalid parameter passed to -locations."); + printOut(LU::tr("Invalid parameter passed to -locations.\n")); return 1; } continue; @@ -522,7 +523,7 @@ int main(int argc, char **argv) } else if (arg == QLatin1String("-codecfortr")) { ++i; if (i == argc) { - qWarning("The -codecfortr option should be followed by a codec name."); + printOut(LU::tr("The -codecfortr option should be followed by a codec name.\n")); return 1; } codecForTr = args[i].toLatin1(); @@ -533,7 +534,7 @@ int main(int argc, char **argv) } else if (arg == QLatin1String("-extensions")) { ++i; if (i == argc) { - qWarning("The -extensions option should be followed by an extension list."); + printOut(LU::tr("The -extensions option should be followed by an extension list.\n")); return 1; } extensions = args[i]; @@ -541,7 +542,7 @@ int main(int argc, char **argv) } else if (arg == QLatin1String("-pro")) { ++i; if (i == argc) { - qWarning("The -pro option should be followed by a filename of .pro file."); + printOut(LU::tr("The -pro option should be followed by a filename of .pro file.\n")); return 1; } proFiles += args[i]; @@ -551,7 +552,7 @@ int main(int argc, char **argv) if (arg.length() == 2) { ++i; if (i == argc) { - qWarning("The -I option should be followed by a path."); + printOut(LU::tr("The -I option should be followed by a path.\n")); return 1; } includePath += args[i]; @@ -560,7 +561,7 @@ int main(int argc, char **argv) } continue; } else if (arg.startsWith(QLatin1String("-")) && arg != QLatin1String("-")) { - qWarning("Unrecognized option '%s'", qPrintable(arg)); + printOut(LU::tr("Unrecognized option '%1'.\n").arg(arg)); return 1; } @@ -568,8 +569,8 @@ int main(int argc, char **argv) if (arg.startsWith(QLatin1String("@"))) { QFile lstFile(arg.mid(1)); if (!lstFile.open(QIODevice::ReadOnly)) { - qWarning("lupdate error: List file '%s' is not readable", - qPrintable(lstFile.fileName())); + printOut(LU::tr("lupdate error: List file '%1' is not readable.\n") + .arg(lstFile.fileName())); return 1; } while (!lstFile.atEnd()) @@ -586,16 +587,16 @@ int main(int argc, char **argv) if (!fi.exists() || fi.isWritable()) { tsFileNames.append(QFileInfo(file).absoluteFilePath()); } else { - qWarning("lupdate warning: For some reason, '%s' is not writable.\n", - qPrintable(file)); + printOut(LU::tr("lupdate warning: For some reason, '%1' is not writable.\n") + .arg(file)); } found = true; break; } } if (!found) { - qWarning("lupdate error: File '%s' has no recognized extension\n", - qPrintable(file)); + printOut(LU::tr("lupdate error: File '%1' has no recognized extension.\n") + .arg(file)); return 1; } } @@ -604,7 +605,7 @@ int main(int argc, char **argv) foreach (const QString &file, files) { QFileInfo fi(file); if (!fi.exists()) { - qWarning("lupdate error: File '%s' does not exists\n", qPrintable(file)); + printOut(LU::tr("lupdate error: File '%1' does not exist.\n").arg(file)); return 1; } if (file.endsWith(QLatin1String(".pro"), Qt::CaseInsensitive) @@ -612,7 +613,7 @@ int main(int argc, char **argv) proFiles << file; } else if (fi.isDir()) { if (options & Verbose) - printOut(QObject::tr("Scanning directory '%1'...").arg(file)); + printOut(QObject::tr("Scanning directory '%1'...\n").arg(file)); QDir dir = QDir(fi.filePath()); projectRoots.insert(dir.absolutePath() + QLatin1Char('/')); if (extensionsNameFilters.isEmpty()) { @@ -650,6 +651,7 @@ int main(int argc, char **argv) } } else { sourceFiles << QDir::cleanPath(fi.absoluteFilePath());; + projectRoots.insert(fi.absolutePath() + QLatin1Char('/')); } } numFiles++; @@ -662,16 +664,16 @@ int main(int argc, char **argv) } if (!targetLanguage.isEmpty() && tsFileNames.count() != 1) - std::cerr << "lupdate warning: -target-language usually only " - "makes sense with exactly one TS file.\n"; + printOut(LU::tr("lupdate warning: -target-language usually only" + " makes sense with exactly one TS file.\n")); if (!codecForTr.isEmpty() && tsFileNames.isEmpty()) - std::cerr << "lupdate warning: -codecfortr has no effect without -ts.\n"; + printOut(LU::tr("lupdate warning: -codecfortr has no effect without -ts.\n")); bool fail = false; if (proFiles.isEmpty()) { if (tsFileNames.isEmpty()) - std::cerr << "lupdate warning: no TS files specified. " - "Only diagnostics will be produced.\n"; + printOut(LU::tr("lupdate warning:" + " no TS files specified. Only diagnostics will be produced.\n")); Translator fetchedTor; ConversionData cd; @@ -685,7 +687,8 @@ int main(int argc, char **argv) sourceLanguage, targetLanguage, options, &fail); } else { if (!sourceFiles.isEmpty() || !includePath.isEmpty()) { - qWarning("lupdate error: Both project and source files / include paths specified.\n"); + printOut(LU::tr("lupdate error:" + " Both project and source files / include paths specified.\n")); return 1; } if (!tsFileNames.isEmpty()) { diff --git a/tools/linguist/lupdate/qscript.cpp b/tools/linguist/lupdate/qscript.cpp index 33276e6..188ac36 100644 --- a/tools/linguist/lupdate/qscript.cpp +++ b/tools/linguist/lupdate/qscript.cpp @@ -53,6 +53,8 @@ #include <QtCore/qtextcodec.h> #include <QtCore/qvariant.h> +#include <iostream> + #include <ctype.h> #include <stdlib.h> #include <stdio.h> @@ -2214,13 +2216,13 @@ case 66: { if ((name == QLatin1String("qsTranslate")) || (name == QLatin1String("QT_TRANSLATE_NOOP"))) { QVariantList args = sym(2).toList(); if (args.size() < 2) { - qWarning("%s:%d: %s() requires at least two arguments", - qPrintable(fileName), identLineNo, qPrintable(name)); + std::cerr << qPrintable(fileName) << ':' << identLineNo << ": " + << qPrintable(name) << "() requires at least two arguments.\n"; } else { if ((args.at(0).type() != QVariant::String) || (args.at(1).type() != QVariant::String)) { - qWarning("%s:%d: %s(): both arguments must be literal strings", - qPrintable(fileName), identLineNo, qPrintable(name)); + std::cerr << qPrintable(fileName) << ':' << identLineNo << ": " + << qPrintable(name) << "(): both arguments must be literal strings.\n"; } else { QString context = args.at(0).toString(); QString text = args.at(1).toString(); @@ -2234,12 +2236,12 @@ case 66: { } else if ((name == QLatin1String("qsTr")) || (name == QLatin1String("QT_TR_NOOP"))) { QVariantList args = sym(2).toList(); if (args.size() < 1) { - qWarning("%s:%d: %s() requires at least one argument", - qPrintable(fileName), identLineNo, qPrintable(name)); + std::cerr << qPrintable(fileName) << ':' << identLineNo << ": " + << qPrintable(name) << "() requires at least one argument.\n"; } else { if (args.at(0).type() != QVariant::String) { - qWarning("%s:%d: %s(): text to translate must be a literal string", - qPrintable(fileName), identLineNo, qPrintable(name)); + std::cerr << qPrintable(fileName) << ':' << identLineNo << ": " + << qPrintable(name) << "(): text to translate must be a literal string.\n"; } else { QString context = QFileInfo(fileName).baseName(); QString text = args.at(0).toString(); @@ -2377,8 +2379,8 @@ bool loadQScript(Translator &translator, const QString &filename, ConversionData lexer.setCode(code, /*lineNumber=*/1); QScriptParser parser; if (!parser.parse(&lexer, filename, &translator)) { - qWarning("%s:%d: %s", qPrintable(filename), parser.errorLineNumber(), - qPrintable(parser.errorMessage())); + std::cerr << qPrintable(filename) << ':' << parser.errorLineNumber() << ": " + << qPrintable(parser.errorMessage()) << std::endl; return false; } diff --git a/tools/linguist/lupdate/qscript.g b/tools/linguist/lupdate/qscript.g index a473500..857c58a 100644 --- a/tools/linguist/lupdate/qscript.g +++ b/tools/linguist/lupdate/qscript.g @@ -90,6 +90,8 @@ #include <QtCore/qtextcodec.h> #include <QtCore/qvariant.h> +#include <iostream> + #include <ctype.h> #include <stdlib.h> #include <stdio.h> @@ -106,7 +108,7 @@ static void recordMessage( fileName, lineNo, QStringList(), TranslatorMessage::Unfinished, plural); msg.setExtraComment(extracomment.simplified()); - tor->replace(msg); + tor->extend(msg); } @@ -1630,13 +1632,13 @@ case $rule_number: { if ((name == QLatin1String("qsTranslate")) || (name == QLatin1String("QT_TRANSLATE_NOOP"))) { QVariantList args = sym(2).toList(); if (args.size() < 2) { - qWarning("%s:%d: %s() requires at least two arguments", - qPrintable(fileName), identLineNo, qPrintable(name)); + std::cerr << qPrintable(fileName) << ':' << identLineNo << ": " + << qPrintable(name) << "() requires at least two arguments.\n"; } else { if ((args.at(0).type() != QVariant::String) || (args.at(1).type() != QVariant::String)) { - qWarning("%s:%d: %s(): both arguments must be literal strings", - qPrintable(fileName), identLineNo, qPrintable(name)); + std::cerr << qPrintable(fileName) << ':' << identLineNo << ": " + << qPrintable(name) << "(): both arguments must be literal strings.\n"; } else { QString context = args.at(0).toString(); QString text = args.at(1).toString(); @@ -1650,12 +1652,12 @@ case $rule_number: { } else if ((name == QLatin1String("qsTr")) || (name == QLatin1String("QT_TR_NOOP"))) { QVariantList args = sym(2).toList(); if (args.size() < 1) { - qWarning("%s:%d: %s() requires at least one argument", - qPrintable(fileName), identLineNo, qPrintable(name)); + std::cerr << qPrintable(fileName) << ':' << identLineNo << ": " + << qPrintable(name) << "() requires at least one argument.\n"; } else { if (args.at(0).type() != QVariant::String) { - qWarning("%s:%d: %s(): text to translate must be a literal string", - qPrintable(fileName), identLineNo, qPrintable(name)); + std::cerr << qPrintable(fileName) << ':' << identLineNo << ": " + << qPrintable(name) << "(): text to translate must be a literal string.\n"; } else { QString context = QFileInfo(fileName).baseName(); QString text = args.at(0).toString(); @@ -2009,8 +2011,8 @@ bool loadQScript(Translator &translator, const QString &filename, ConversionData lexer.setCode(code, /*lineNumber=*/1); QScriptParser parser; if (!parser.parse(&lexer, filename, &translator)) { - qWarning("%s:%d: %s", qPrintable(filename), parser.errorLineNumber(), - qPrintable(parser.errorMessage())); + std::cerr << qPrintable(filename) << ':' << parser.errorLineNumber() << ": " + << qPrintable(parser.errorMessage()) << std::endl; return false; } diff --git a/tools/linguist/phrasebooks/hungarian.qph b/tools/linguist/phrasebooks/hungarian.qph new file mode 100644 index 0000000..0e1dd12 --- /dev/null +++ b/tools/linguist/phrasebooks/hungarian.qph @@ -0,0 +1,752 @@ +<!DOCTYPE QPH> +<QPH language="hu_HU"> +<phrase> + <source>OK</source> + <target>OK</target> +</phrase> +<phrase> + <source>Bookmarks</source> + <target>Könyvjelzők</target> +</phrase> +<phrase> + <source>Remove</source> + <target>Törlés</target> +</phrase> +<phrase> + <source>New Folder</source> + <target>Új könyvtár</target> +</phrase> +<phrase> + <source>Add</source> + <target>Hozzáadás</target> +</phrase> +<phrase> + <source>Previous</source> + <target>Előző</target> +</phrase> +<phrase> + <source>Font</source> + <target>Betűtípus</target> +</phrase> +<phrase> + <source>Help</source> + <target>Segítség</target> +</phrase> +<phrase> + <source>Done</source> + <target>Kész</target> +</phrase> +<phrase> + <source>Install</source> + <target>Telepítés</target> +</phrase> +<phrase> + <source>Cancel</source> + <target>Mégsem</target> +</phrase> +<phrase> + <source>Installation Path:</source> + <target>Telepítési útvonal:</target> +</phrase> +<phrase> + <source>Index</source> + <target>Index</target> +</phrase> +<phrase> + <source>Contents</source> + <target>Tartalom</target> +</phrase> +<phrase> + <source>Search</source> + <target>Keresés</target> +</phrase> +<phrase> + <source>Print Preview...</source> + <target>Nyomtatási kép...</target> +</phrase> +<phrase> + <source>About...</source> + <target>Névjegy...</target> +</phrase> +<phrase> + <source>Toolbars</source> + <target>Eszköztárak</target> +</phrase> +<phrase> + <source>Address:</source> + <target>Cím:</target> +</phrase> +<phrase> + <source>Open Source Edition</source> + <target>Nyíltforrású kiadás</target> +</phrase> +<phrase> + <source>Yes</source> + <target>Igen</target> +</phrase> +<phrase> + <source>No</source> + <target>Nem</target> +</phrase> +<phrase> + <source>Apply</source> + <target>Alkalmaz</target> +</phrase> +<phrase> + <source>Ignore</source> + <target>Kihagyás</target> +</phrase> +<phrase> + <source>Abort</source> + <target>Megszakítás</target> +</phrase> +<phrase> + <source>Play</source> + <target>Lejátszás</target> +</phrase> +<phrase> + <source>Pause</source> + <target>Szünet</target> +</phrase> +<phrase> + <source>File</source> + <target>Fájl</target> + <definition>menu</definition> +</phrase> +<phrase> + <source>file</source> + <target>fájl</target> +</phrase> +<phrase> + <source>directory</source> + <target>könyvtár</target> +</phrase> +<phrase> + <source>Symlink</source> + <target>Szimbolikus link</target> +</phrase> +<phrase> + <source>Delete</source> + <target>Törlés</target> +</phrase> +<phrase> + <source>Rename</source> + <target>Átnevezés</target> +</phrase> +<phrase> + <source>Back</source> + <target>Vissza</target> +</phrase> +<phrase> + <source>Forward</source> + <target>Előre</target> +</phrase> +<phrase> + <source>Finish</source> + <target>Befejezés</target> +</phrase> +<phrase> + <source>Quit</source> + <target>Kilépés</target> +</phrase> +<phrase> + <source>Exit</source> + <target>Kilépés</target> +</phrase> +<phrase> + <source>Close</source> + <target>Bezárás</target> +</phrase> +<phrase> + <source>Close All</source> + <target>Mindent bezár</target> +</phrase> +<phrase> + <source>Error</source> + <target>Hiba</target> +</phrase> +<phrase> + <source>Warning</source> + <target>Figyelmeztetés</target> +</phrase> +<phrase> + <source>Information</source> + <target>Információ</target> +</phrase> +<phrase> + <source>Question</source> + <target>Kérdés</target> +</phrase> +<phrase> + <source>document</source> + <target>dokumentum</target> +</phrase> +<phrase> + <source>author</source> + <target>szerző</target> +</phrase> +<phrase> + <source>subsidiary(-ies)</source> + <target>leányvállalata(i)</target> +</phrase> +<phrase> + <source>Help</source> + <target>Súgó</target> +</phrase> +<phrase> + <source>Undo</source> + <target>Visszavonás</target> +</phrase> +<phrase> + <source>Redo</source> + <target>Újra</target> +</phrase> +<phrase> + <source>Open</source> + <target>Megnyitás</target> +</phrase> +<phrase> + <source>Save</source> + <target>Mentés</target> +</phrase> +<phrase> + <source>Save all</source> + <target>Mindet menti</target> +</phrase> +<phrase> + <source>click</source> + <target>kattintás</target> + <definition>noun</definition> +</phrase> +<phrase> + <source>click</source> + <target>kattintson</target> + <definition>ask</definition> +</phrase> +<phrase> + <source>Recent</source> + <target>Előző</target> + <definition>Recent files/Előző fájlok</definition> +</phrase> +<phrase> + <source>Window</source> + <target>Ablak</target> +</phrase> +<phrase> + <source>Cascade</source> + <target>Lépcsőzetes</target> +</phrase> +<phrase> + <source>Tile</source> + <target>Mozaikszerű</target> +</phrase> +<phrase> + <source>Game</source> + <target>Játék</target> +</phrase> +<phrase> + <source>New Game</source> + <target>Új játék</target> +</phrase> +<phrase> + <source>Untitled</source> + <target>Névtelen</target> +</phrase> +<phrase> + <source>Unknown error</source> + <target>Ismeretlen hiba</target> +</phrase> +<phrase> + <source>New Folder</source> + <target>Új mappa</target> +</phrase> +<phrase> + <source>folder</source> + <target>mappa</target> +</phrase> +<phrase> + <source>New Directory</source> + <target>Új könyvtár</target> +</phrase> +<phrase> + <source>unknown</source> + <target>ismeretlen</target> +</phrase> +<phrase> + <source>Copy</source> + <target>Másolás</target> +</phrase> +<phrase> + <source>Cut</source> + <target>Kivágás</target> +</phrase> +<phrase> + <source>Paste</source> + <target>Beillesztés</target> +</phrase> +<phrase> + <source>Paste special</source> + <target>Speciális beillesztés</target> +</phrase> +<phrase> + <source>Insert</source> + <target>Beszúrás</target> +</phrase> +<phrase> + <source>Copy here</source> + <target>Másolás ide</target> +</phrase> +<phrase> + <source>Minimize</source> + <target>Minimalizálás</target> +</phrase> +<phrase> + <source>Zoom</source> + <target>Nagyítás</target> +</phrase> +<phrase> + <source>&Edit</source> + <target>S&zerkesztés</target> +</phrase> +<phrase> + <source>&View</source> + <target>&Nézet</target> +</phrase> +<phrase> + <source>Application</source> + <target>Alkalmazás</target> +</phrase> +<phrase> + <source>Documentation</source> + <target>Dokumentáció</target> +</phrase> +<phrase> + <source>Network</source> + <target>Hálózat</target> +</phrase> +<phrase> + <source>Current Page</source> + <target>Aktuális oldal</target> +</phrase> +<phrase> + <source>Find</source> + <target>Keresés</target> +</phrase> +<phrase> + <source>Locale</source> + <target>Nyelv</target> +</phrase> +<phrase> + <source>Cannot open '%1'.</source> + <target>'%1' nem nyitható meg.</target> +</phrase> +<phrase> + <source>Cannot find the string '%1'.</source> + <target>A szöveg nem található: '%1'.</target> +</phrase> +<phrase> + <source>A file called '%1' already exists. Please choose another name.</source> + <target>'%1' nevű fájl már létezik. Válasszon egy másik nevet.</target> +</phrase> +<phrase> + <source>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.</source> + <target>Ez a program abban a reményben került közreadásra, hogy hasznos lesz, de minden egyéb GARANCIA NÉLKÜL, az ELADHATÓSÁGRA vagy VALAMELY CÉLRA VALÓ ALKALMAZHATÓSÁGRA való származtatott garanciát is beleértve.</target> + <definition>License text in most Qt programs</definition> +</phrase> +<phrase> + <source>Open Link</source> + <target>Link megnyitása</target> +</phrase> +<phrase> + <source>Next</source> + <target>Következő</target> +</phrase> +<phrase> + <source>Case Sensitive</source> + <target>Kis/nagybetű érzékeny</target> +</phrase> +<phrase> + <source>Whole words</source> + <target>Teljes szó</target> +</phrase> +<phrase> + <source>Open Link in New Tab</source> + <target>Link megnyitása új lapon</target> +</phrase> +<phrase> + <source>Download canceled.</source> + <target>Letöltés megszakítva.</target> +</phrase> +<phrase> + <source>The file %1 already exists. Do you want to overwrite it?</source> + <target>A(z) '%1' nevű fájl már létezik. Felülírja?</target> +</phrase> +<phrase> + <source>Qt Assistant</source> + <target>Qt Asszisztens</target> +</phrase> +<phrase> + <source>Preferences...</source> + <target>Beállítások...</target> +</phrase> +<phrase> + <source>&File</source> + <target>&Fájl</target> +</phrase> +<phrase> + <source>Browser</source> + <target>Böngésző</target> +</phrase> +<phrase> + <source>Filters</source> + <target>Szűrők</target> +</phrase> +<phrase> + <source>Delete Folder</source> + <target>Mappa törlése</target> +</phrase> +<phrase> + <source>Rename Folder</source> + <target>Mappa átnevezése</target> +</phrase> +<phrase> + <source>You need a commercial Qt license for development of proprietary (closed source) applications. Please see <a href="http://www.trolltech.com/company/model.html">www.trolltech.com/company/model.html</a> for an overview of Qt licensing.</source> + <target>Amennyiben zárt forrású alkalmazás fejlesztéséhez kívánja a Qt-t felhasználni, szüksége lesz a Qt kereskedelmi verziójára. Kérem tekintse meg az <tt>http://www.trolltech.com/company/model.html</tt> oldalt a Qt licenszelésének áttekintéséhez.</target> +</phrase> +<phrase> + <source>New Tab</source> + <target>Új fül</target> +</phrase> +<phrase> + <source>Close Tab</source> + <target>Fül bezárása</target> +</phrase> +<phrase> + <source>Close Other Tabs</source> + <target>A többi fül bezárása</target> +</phrase> +<phrase> + <source>True</source> + <target>Igaz</target> +</phrase> +<phrase> + <source>False</source> + <target>Hamis</target> +</phrase> +<phrase> + <source>Update</source> + <target>Frissítés</target> +</phrase> +<phrase> + <source>Normal</source> + <target>Normál</target> +</phrase> +<phrase> + <source>Bold</source> + <target>Félkövér</target> +</phrase> +<phrase> + <source>Italic</source> + <target>Dőlt</target> +</phrase> +<phrase> + <source>Greek</source> + <target>Görög</target> +</phrase> +<phrase> + <source>Cyrillic</source> + <target>Cirill</target> +</phrase> +<phrase> + <source>Armenian</source> + <target>Örmény</target> +</phrase> +<phrase> + <source>Hebrew</source> + <target>Héber</target> +</phrase> +<phrase> + <source>Arabic</source> + <target>Arab</target> +</phrase> +<phrase> + <source>Syriac</source> + <target>Szír</target> +</phrase> +<phrase> + <source>Permission denied</source> + <target>Hozzáférés megtagadva</target> +</phrase> +<phrase> + <source>Too many open files</source> + <target>Túl sok fájl van nyitva</target> +</phrase> +<phrase> + <source>No such file or directory</source> + <target>Nincs ilyen fájl vagy könyvtár</target> +</phrase> +<phrase> + <source>No space left on device</source> + <target>Nincs több hely az eszközön</target> +</phrase> +<phrase> + <source>Width:</source> + <target>Szélesség:</target> +</phrase> +<phrase> + <source>Height:</source> + <target>Magasság:</target> +</phrase> +<phrase> + <source>Margins</source> + <target>Margók</target> +</phrase> +<phrase> + <source>top margin</source> + <target>felső margó</target> +</phrase> +<phrase> + <source>left margin</source> + <target>bal margó</target> +</phrase> +<phrase> + <source>right margin</source> + <target>jobb margó</target> +</phrase> +<phrase> + <source>bottom margin</source> + <target>alsó margó</target> +</phrase> +<phrase> + <source>Next page</source> + <target>Következő oldal</target> +</phrase> +<phrase> + <source>Previous page</source> + <target>Előző oldal</target> +</phrase> +<phrase> + <source>First page</source> + <target>Első oldal</target> +</phrase> +<phrase> + <source>Last page</source> + <target>Utolsó oldal</target> +</phrase> +<phrase> + <source>Fit width</source> + <target>Szélesség igazítása</target> +</phrase> +<phrase> + <source>Fit page</source> + <target>Oldal igazítása</target> +</phrase> +<phrase> + <source>Zoom in</source> + <target>Nagyítás</target> +</phrase> +<phrase> + <source>Zoom out</source> + <target>Kicsinyítés</target> +</phrase> +<phrase> + <source>Portrait</source> + <target>Álló</target> +</phrase> +<phrase> + <source>Landscape</source> + <target>Fekvő</target> +</phrase> +<phrase> + <source>Print</source> + <target>Nyomtatás</target> +</phrase> +<phrase> + <source>Page setup</source> + <target>Oldalbeállítás</target> +</phrase> +<phrase> + <source>Color</source> + <target>Szín</target> +</phrase> +<phrase> + <source>Grayscale</source> + <target>Szürkeárnyalatos</target> +</phrase> +<phrase> + <source>None</source> + <target>Nincs</target> +</phrase> +<phrase> + <source>...</source> + <target>...</target> +</phrase> +<phrase> + <source>Menu</source> + <target>Menü</target> +</phrase> +<phrase> + <source>Keep</source> + <target>Meghagy</target> +</phrase> +<phrase> + <source>Pause</source> + <target>Megállít</target> +</phrase> +<phrase> + <source>Log</source> + <target>Napló</target> +</phrase> +<phrase> + <source>Mi&nimize</source> + <target>&Kis méret</target> +</phrase> +<phrase> + <source>Press</source> + <target>Nyomja meg</target> +</phrase> +<phrase> + <source>Submit</source> + <target>Küldés</target> +</phrase> +<phrase> + <source>Underline</source> + <target>Aláhúzott</target> +</phrase> +<phrase> + <source>Outline</source> + <target>Áthúzott</target> +</phrase> +<phrase> + <source>Direction</source> + <target>Irány</target> +</phrase> +<phrase> + <source>Configuration</source> + <target>Konfiguráció</target> +</phrase> +<phrase> + <source>None</source> + <target>Semmi</target> +</phrase> +<phrase> + <source>Save As...</source> + <target>Mentés másként...</target> +</phrase> +<phrase> + <source>Context</source> + <target>Környezet</target> +</phrase> +<phrase> + <source>Edit</source> + <target>Szerkesztés</target> +</phrase> +<phrase> + <source>Toolbar</source> + <target>Eszköztár</target> +</phrase> +<phrase> + <source>&Print...</source> + <target>&Nyomtatás...</target> +</phrase> +<phrase> + <source>E&xit</source> + <target>&Kilépés</target> +</phrase> +<phrase> + <source>Sidebar</source> + <target>Oldalsáv</target> +</phrase> +<phrase> + <source>Bookmark</source> + <target>Könyvjelző</target> +</phrase> +<phrase> + <source>Save As</source> + <target>Mentés másként</target> +</phrase> +<phrase> + <source>Select All</source> + <target>Összes kijelölése</target> +</phrase> +<phrase> + <source>Name</source> + <target>Név</target> +</phrase> +<phrase> + <source>Type</source> + <target>Típus</target> +</phrase> +<phrase> + <source>Date</source> + <target>Dátum</target> +</phrase> +<phrase> + <source>Name</source> + <target>Név</target> +</phrase> +<phrase> + <source>Unknown</source> + <target>Ismeretlen</target> +</phrase> +<phrase> + <source>Value</source> + <target>Érték</target> +</phrase> +<phrase> + <source>Default</source> + <target>Alapértelmezett</target> +</phrase> +<phrase> + <source>New</source> + <target>Új</target> +</phrase> +<phrase> + <source>Level</source> + <target>Szint</target> +</phrase> +<phrase> + <source>Location</source> + <target>Hely</target> +</phrase> +<phrase> + <source>Reload</source> + <target>Újratöltés</target> +</phrase> +<phrase> + <source>Pictures</source> + <target>Képek</target> +</phrase> +<phrase> + <source>Battery</source> + <target>Elem</target> +</phrase> +<phrase> + <source>No error</source> + <target>Nincs hiba</target> +</phrase> +<phrase> + <source>Whole words</source> + <target>Teljes szó</target> +</phrase> +<phrase> + <source>(Új bejegyzés)</source> + <target></target> +</phrase> +<phrase> + <source>Horizontal</source> + <target>Vízszintes</target> +</phrase> +<phrase> + <source>Enabled</source> + <target>Engedélyezve</target> +</phrase> +<phrase> + <source>Up</source> + <target>Fel</target> +</phrase> +<phrase> + <source>Down</source> + <target>Le</target> +</phrase> +</QPH> diff --git a/tools/linguist/phrasebooks/russian.qph b/tools/linguist/phrasebooks/russian.qph index ae1a9b9..750fda0 100644 --- a/tools/linguist/phrasebooks/russian.qph +++ b/tools/linguist/phrasebooks/russian.qph @@ -826,7 +826,7 @@ </phrase> <phrase> <source>slider</source> - <target>ползунок</target> + <target>регулятор</target> </phrase> <phrase> <source>spin box</source> diff --git a/tools/linguist/shared/po.cpp b/tools/linguist/shared/po.cpp index 99a8751..a692332 100644 --- a/tools/linguist/shared/po.cpp +++ b/tools/linguist/shared/po.cpp @@ -353,6 +353,29 @@ static void slurpComment(QByteArray &msg, const QList<QByteArray> &lines, int & --l; } +static void splitContext(QByteArray *comment, QByteArray *context) +{ + char *data = comment->data(); + int len = comment->size(); + int sep = -1, j = 0; + + for (int i = 0; i < len; i++, j++) { + if (data[i] == '~' && i + 1 < len) + i++; + else if (data[i] == '|') + sep = j; + data[j] = data[i]; + } + if (sep >= 0) { + QByteArray tmp = comment->mid(sep + 1, j - sep - 1); + comment->truncate(sep); + *context = *comment; + *comment = tmp; + } else { + comment->truncate(j); + } +} + static QString makePoHeader(const QString &str) { return QLatin1String("po-header-") + str.toLower().replace(QLatin1Char('-'), QLatin1Char('_')); @@ -411,6 +434,7 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) lines.append(QByteArray()); int l = 0, lastCmtLine = -1; + bool qtContexts = false; PoItem item; for (; l != lines.size(); ++l) { QByteArray line = lines.at(l); @@ -437,7 +461,7 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) continue; int idx = hdr.indexOf(':'); if (idx < 0) { - cd.appendError(QString::fromLatin1("Unexpected PO header format '%1'\n") + cd.appendError(QString::fromLatin1("Unexpected PO header format '%1'") .arg(QString::fromLatin1(hdr))); error = true; break; @@ -449,6 +473,8 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) translator.setLanguageCode(QString::fromLatin1(hdrValue)); } else if (hdrName == "X-Source-Language") { translator.setSourceLanguageCode(QString::fromLatin1(hdrValue)); + } else if (hdrName == "X-Qt-Contexts") { + qtContexts = (hdrValue == "true"); } else if (hdrName == "Plural-Forms") { pluralForms = hdrValue; } else if (hdrName == "MIME-Version") { @@ -456,7 +482,7 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) } else if (hdrName == "Content-Type") { if (cd.m_codecForSource.isEmpty()) { if (!hdrValue.startsWith("text/plain; charset=")) { - cd.appendError(QString::fromLatin1("Unexpected Content-Type header '%1'\n") + cd.appendError(QString::fromLatin1("Unexpected Content-Type header '%1'") .arg(QString::fromLatin1(hdrValue))); error = true; // This will avoid a flood of conversion errors. @@ -465,7 +491,7 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) QByteArray cod = hdrValue.mid(20); QTextCodec *cdc = QTextCodec::codecForName(cod); if (!cdc) { - cd.appendError(QString::fromLatin1("Unsupported codec '%1'\n") + cd.appendError(QString::fromLatin1("Unsupported codec '%1'") .arg(QString::fromLatin1(cod))); error = true; // This will avoid a flood of conversion errors. @@ -477,7 +503,7 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) } } else if (hdrName == "Content-Transfer-Encoding") { if (hdrValue != "8bit") { - cd.appendError(QString::fromLatin1("Unexpected Content-Transfer-Encoding '%1'\n") + cd.appendError(QString::fromLatin1("Unexpected Content-Transfer-Encoding '%1'") .arg(QString::fromLatin1(hdrValue))); return false; } @@ -498,7 +524,7 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) // Keep in sync with savePO static const char * const dfltHdrs[] = { "MIME-Version", "Content-Type", "Content-Transfer-Encoding", - "Plural-Forms", "X-Language", "X-Source-Language" + "Plural-Forms", "X-Language", "X-Source-Language", "X-Qt-Contexts" }; uint cdh = 0; for (int cho = 0; cho < hdrOrder.length(); cho++) { @@ -596,7 +622,7 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) slurpComment(item.translatorComments, lines, l); break; case '.': - if (line.startsWith("#. ts-context ")) { + if (line.startsWith("#. ts-context ")) { // legacy item.context = line.mid(14); } else if (line.startsWith("#. ts-id ")) { item.id = line.mid(9); @@ -615,8 +641,10 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) codec->toUnicode(extra); } else if (line.startsWith("#| msgctxt ")) { item.oldTscomment = slurpEscapedString(lines, l, 11, "#| ", cd); + if (qtContexts) + splitContext(&item.oldTscomment, &item.context); } else { - cd.appendError(QString(QLatin1String("PO-format parse error in line %1: '%2'\n")) + cd.appendError(QString(QLatin1String("PO-format parse error in line %1: '%2'")) .arg(l + 1).arg(codec->toUnicode(lines[l]))); error = true; } @@ -633,13 +661,13 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) } else if (line.startsWith("#~ msgctxt ")) { item.tscomment = slurpEscapedString(lines, l, 11, "#~ ", cd); } else { - cd.appendError(QString(QLatin1String("PO-format parse error in line %1: '%2'\n")) + cd.appendError(QString(QLatin1String("PO-format parse error in line %1: '%2'")) .arg(l + 1).arg(codec->toUnicode(lines[l]))); error = true; } break; default: - cd.appendError(QString(QLatin1String("PO-format parse error in line %1: '%2'\n")) + cd.appendError(QString(QLatin1String("PO-format parse error in line %1: '%2'")) .arg(l + 1).arg(codec->toUnicode(lines[l]))); error = true; break; @@ -647,6 +675,8 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) lastCmtLine = l; } else if (line.startsWith("msgctxt ")) { item.tscomment = slurpEscapedString(lines, l, 8, QByteArray(), cd); + if (qtContexts) + splitContext(&item.tscomment, &item.context); } else if (line.startsWith("msgid ")) { item.msgId = slurpEscapedString(lines, l, 6, QByteArray(), cd); } else if (line.startsWith("msgid_plural ")) { @@ -655,7 +685,7 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) item.extra[QLatin1String("po-msgid_plural")] = codec->toUnicode(extra); item.isPlural = true; } else { - cd.appendError(QString(QLatin1String("PO-format error in line %1: '%2'\n")) + cd.appendError(QString(QLatin1String("PO-format error in line %1: '%2'")) .arg(l + 1).arg(codec->toUnicode(lines[l]))); error = true; } @@ -672,6 +702,16 @@ static void addPoHeader(Translator::ExtraData &headers, QStringList &hdrOrder, headers[makePoHeader(qName)] = value; } +static QString escapeComment(const QString &in, bool escape) +{ + QString out = in; + if (escape) { + out.replace(QLatin1Char('~'), QLatin1String("~~")); + out.replace(QLatin1Char('|'), QLatin1String("~|")); + } + return out; +} + bool savePO(const Translator &translator, QIODevice &dev, ConversionData &cd) { QString str_format = QLatin1String("-format"); @@ -680,6 +720,13 @@ bool savePO(const Translator &translator, QIODevice &dev, ConversionData &cd) QTextStream out(&dev); out.setCodec(cd.m_outputCodec.isEmpty() ? QByteArray("UTF-8") : cd.m_outputCodec); + bool qtContexts = false; + foreach (const TranslatorMessage &msg, translator.messages()) + if (!msg.context().isEmpty()) { + qtContexts = true; + break; + } + QString cmt = translator.extra(QLatin1String("po-header_comment")); if (!cmt.isEmpty()) out << cmt << '\n'; @@ -703,6 +750,8 @@ bool savePO(const Translator &translator, QIODevice &dev, ConversionData &cd) } if (!translator.sourceLanguageCode().isEmpty()) addPoHeader(headers, hdrOrder, "X-Source-Language", translator.sourceLanguageCode()); + if (qtContexts) + addPoHeader(headers, hdrOrder, "X-Qt-Contexts", QLatin1String("true")); QString hdrStr; foreach (const QString &hdr, hdrOrder) { hdrStr += hdr; @@ -721,8 +770,6 @@ bool savePO(const Translator &translator, QIODevice &dev, ConversionData &cd) if (!msg.extraComment().isEmpty()) out << poEscapedLines(QLatin1String("#."), true, msg.extraComment()); - if (!msg.context().isEmpty()) - out << QLatin1String("#. ts-context ") << msg.context() << '\n'; if (!msg.id().isEmpty()) out << QLatin1String("#. ts-id ") << msg.id() << '\n'; @@ -770,15 +817,21 @@ bool savePO(const Translator &translator, QIODevice &dev, ConversionData &cd) QString prefix = QLatin1String("#| "); if (!msg.oldComment().isEmpty()) - out << poEscapedString(prefix, QLatin1String("msgctxt"), noWrap, msg.oldComment()); + out << poEscapedString(prefix, QLatin1String("msgctxt"), noWrap, + escapeComment(msg.oldComment(), qtContexts)); if (!msg.oldSourceText().isEmpty()) out << poEscapedString(prefix, QLatin1String("msgid"), noWrap, msg.oldSourceText()); QString plural = msg.extra(QLatin1String("po-old_msgid_plural")); if (!plural.isEmpty()) out << poEscapedString(prefix, QLatin1String("msgid_plural"), noWrap, plural); prefix = QLatin1String((msg.type() == TranslatorMessage::Obsolete) ? "#~ " : ""); - if (!msg.comment().isEmpty()) - out << poEscapedString(prefix, QLatin1String("msgctxt"), noWrap, msg.comment()); + if (!msg.context().isEmpty()) + out << poEscapedString(prefix, QLatin1String("msgctxt"), noWrap, + escapeComment(msg.context(), true) + QLatin1Char('|') + + escapeComment(msg.comment(), true)); + else if (!msg.comment().isEmpty()) + out << poEscapedString(prefix, QLatin1String("msgctxt"), noWrap, + escapeComment(msg.comment(), qtContexts)); out << poEscapedString(prefix, QLatin1String("msgid"), noWrap, msg.sourceText()); if (!msg.isPlural()) { QString transl = msg.translation(); diff --git a/tools/linguist/shared/profileevaluator.cpp b/tools/linguist/shared/profileevaluator.cpp index 5e1ee1f..a21408c 100644 --- a/tools/linguist/shared/profileevaluator.cpp +++ b/tools/linguist/shared/profileevaluator.cpp @@ -2594,19 +2594,19 @@ void ProFileEvaluator::addProperties(const QHash<QString, QString> &properties) void ProFileEvaluator::logMessage(const QString &message) { if (d->m_verbose && !d->m_skipLevel) - qWarning("%s", qPrintable(message)); + fprintf(stderr, "%s\n", qPrintable(message)); } void ProFileEvaluator::fileMessage(const QString &message) { if (!d->m_skipLevel) - qWarning("%s", qPrintable(message)); + fprintf(stderr, "%s\n", qPrintable(message)); } void ProFileEvaluator::errorMessage(const QString &message) { if (!d->m_skipLevel) - qWarning("%s", qPrintable(message)); + fprintf(stderr, "%s\n", qPrintable(message)); } void ProFileEvaluator::setVerbose(bool on) diff --git a/tools/linguist/shared/qm.cpp b/tools/linguist/shared/qm.cpp index e2c4f4a..6678943 100644 --- a/tools/linguist/shared/qm.cpp +++ b/tools/linguist/shared/qm.cpp @@ -773,11 +773,11 @@ static bool saveQM(const Translator &translator, QIODevice &dev, ConversionData if (saved && cd.isVerbose()) { int generatedCount = finished + unfinished; cd.appendError(QCoreApplication::translate("LRelease", - " Generated %n translation(s) (%1 finished and %2 unfinished)\n", 0, + " Generated %n translation(s) (%1 finished and %2 unfinished)", 0, QCoreApplication::CodecForTr, generatedCount).arg(finished).arg(unfinished)); if (untranslated) cd.appendError(QCoreApplication::translate("LRelease", - " Ignored %n untranslated source text(s)\n", 0, + " Ignored %n untranslated source text(s)", 0, QCoreApplication::CodecForTr, untranslated)); } return saved; diff --git a/tools/linguist/shared/translator.cpp b/tools/linguist/shared/translator.cpp index c86a9dd..36af8da 100644 --- a/tools/linguist/shared/translator.cpp +++ b/tools/linguist/shared/translator.cpp @@ -43,6 +43,8 @@ #include "simtexth.h" +#include <iostream> + #include <stdio.h> #ifdef Q_OS_WIN // required for _setmode, to avoid _O_TEXT streams... @@ -586,22 +588,21 @@ void Translator::reportDuplicates(const Duplicates &dupes, const QString &fileName, bool verbose) { if (!dupes.byId.isEmpty() || !dupes.byContents.isEmpty()) { + std::cerr << "Warning: dropping duplicate messages in '" << qPrintable(fileName); if (!verbose) { - qWarning("Warning: dropping duplicate messages in '%s'\n(try -verbose for more info).", - qPrintable(fileName)); + std::cerr << "'\n(try -verbose for more info).\n"; } else { - qWarning("Warning: dropping duplicate messages in '%s':", qPrintable(fileName)); + std::cerr << "':\n"; foreach (int i, dupes.byId) - qWarning("\n* ID: %s", qPrintable(message(i).id())); + std::cerr << "\n* ID: " << qPrintable(message(i).id()) << std::endl; foreach (int j, dupes.byContents) { const TranslatorMessage &msg = message(j); - qWarning("\n* Context: %s\n* Source: %s", - qPrintable(msg.context()), - qPrintable(msg.sourceText())); + std::cerr << "\n* Context: " << qPrintable(msg.context()) + << "\n* Source: " << qPrintable(msg.sourceText()) << std::endl; if (!msg.comment().isEmpty()) - qWarning("* Comment: %s", qPrintable(msg.comment())); + std::cerr << "* Comment: " << qPrintable(msg.comment()) << std::endl; } - qWarning(); + std::cerr << std::endl; } } } @@ -688,7 +689,7 @@ void Translator::normalizeTranslations(ConversionData &cd) cd.appendError(QLatin1String( "Removed plural forms as the target language has less " "forms.\nIf this sounds wrong, possibly the target language is " - "not set or recognized.\n")); + "not set or recognized.")); } QString Translator::guessLanguageCodeFromFileName(const QString &filename) @@ -737,7 +738,7 @@ void Translator::setCodecName(const QByteArray &name) QTextCodec *codec = QTextCodec::codecForName(name); if (!codec) { if (!name.isEmpty()) - qWarning("No QTextCodec for %s available. Using Latin1\n", name.constData()); + std::cerr << "No QTextCodec for " << name.constData() << " available. Using Latin1.\n"; m_codec = QTextCodec::codecForName("ISO-8859-1"); } else { m_codec = codec; diff --git a/tools/linguist/shared/translator.h b/tools/linguist/shared/translator.h index bb199f0..cfb2178 100644 --- a/tools/linguist/shared/translator.h +++ b/tools/linguist/shared/translator.h @@ -92,7 +92,7 @@ public: bool sortContexts() const { return m_sortContexts; } void appendError(const QString &error) { m_errors.append(error); } - QString error() const { return m_errors.join(QLatin1String("\n")); } + QString error() const { return m_errors.isEmpty() ? QString() : m_errors.join(QLatin1String("\n")) + QLatin1Char('\n'); } QStringList errors() const { return m_errors; } void clearErrors() { m_errors.clear(); } diff --git a/tools/qdoc3/ditaxmlgenerator.cpp b/tools/qdoc3/ditaxmlgenerator.cpp new file mode 100644 index 0000000..a64e8e7 --- /dev/null +++ b/tools/qdoc3/ditaxmlgenerator.cpp @@ -0,0 +1,4773 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the tools applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/* + ditaxmlgenerator.cpp +*/ + +#include "codemarker.h" +#include "codeparser.h" +#include "helpprojectwriter.h" +#include "ditaxmlgenerator.h" +#include "node.h" +#include "separator.h" +#include "tree.h" +#include <ctype.h> + +#include <qdebug.h> +#include <qlist.h> +#include <qiterator.h> +#include <qtextcodec.h> + +QT_BEGIN_NAMESPACE + +#define COMMAND_VERSION Doc::alias("version") +int DitaXmlGenerator::id = 0; + +QString DitaXmlGenerator::sinceTitles[] = + { + " New Namespaces", + " New Classes", + " New Member Functions", + " New Functions in Namespaces", + " New Global Functions", + " New Macros", + " New Enum Types", + " New Typedefs", + " New Properties", + " New Variables", + " New QML Elements", + " New Qml Properties", + " New Qml Signals", + " New Qml Methods", + "" + }; + +static bool showBrokenLinks = false; + +static void addLink(const QString &linkTarget, + const QStringRef &nestedStuff, + QString *res) +{ + if (!linkTarget.isEmpty()) { + *res += "<a href=\""; + *res += linkTarget; + *res += "\">"; + *res += nestedStuff; + *res += "</a>"; + } + else { + *res += nestedStuff; + } +} + + +DitaXmlGenerator::DitaXmlGenerator() + : helpProjectWriter(0), + inLink(false), + inContents(false), + inSectionHeading(false), + inTableHeader(false), + numTableRows(0), + threeColumnEnumValueTable(true), + offlineDocs(true), + funcLeftParen("\\S(\\()"), + myTree(0), + slow(false), + obsoleteLinks(false) +{ +} + +DitaXmlGenerator::~DitaXmlGenerator() +{ + if (helpProjectWriter) + delete helpProjectWriter; +} + +void DitaXmlGenerator::initializeGenerator(const Config &config) +{ + static const struct { + const char *key; + const char *left; + const char *right; + } defaults[] = { + { ATOM_FORMATTING_BOLD, "<b>", "</b>" }, + { ATOM_FORMATTING_INDEX, "<!--", "-->" }, + { ATOM_FORMATTING_ITALIC, "<i>", "</i>" }, + { ATOM_FORMATTING_PARAMETER, "<i>", "</i>" }, + { ATOM_FORMATTING_SUBSCRIPT, "<sub>", "</sub>" }, + { ATOM_FORMATTING_SUPERSCRIPT, "<sup>", "</sup>" }, + { ATOM_FORMATTING_TELETYPE, "<tt>", "</tt>" }, + { ATOM_FORMATTING_UNDERLINE, "<u>", "</u>" }, + { 0, 0, 0 } + }; + + Generator::initializeGenerator(config); + obsoleteLinks = config.getBool(QLatin1String(CONFIG_OBSOLETELINKS)); + setImageFileExtensions(QStringList() << "png" << "jpg" << "jpeg" << "gif"); + int i = 0; + while (defaults[i].key) { + formattingLeftMap().insert(defaults[i].key, defaults[i].left); + formattingRightMap().insert(defaults[i].key, defaults[i].right); + i++; + } + + style = config.getString(DitaXmlGenerator::format() + + Config::dot + + DITAXMLGENERATOR_STYLE); + postHeader = config.getString(DitaXmlGenerator::format() + + Config::dot + + DITAXMLGENERATOR_POSTHEADER); + postPostHeader = config.getString(DitaXmlGenerator::format() + + Config::dot + + DITAXMLGENERATOR_POSTPOSTHEADER); + footer = config.getString(DitaXmlGenerator::format() + + Config::dot + + DITAXMLGENERATOR_FOOTER); + address = config.getString(DitaXmlGenerator::format() + + Config::dot + + DITAXMLGENERATOR_ADDRESS); + pleaseGenerateMacRef = config.getBool(DitaXmlGenerator::format() + + Config::dot + + DITAXMLGENERATOR_GENERATEMACREFS); + + project = config.getString(CONFIG_PROJECT); + offlineDocs = !config.getBool(CONFIG_ONLINE); + projectDescription = config.getString(CONFIG_DESCRIPTION); + if (projectDescription.isEmpty() && !project.isEmpty()) + projectDescription = project + " Reference Documentation"; + + projectUrl = config.getString(CONFIG_URL); + + outputEncoding = config.getString(CONFIG_OUTPUTENCODING); + if (outputEncoding.isEmpty()) + outputEncoding = QLatin1String("ISO-8859-1"); + outputCodec = QTextCodec::codecForName(outputEncoding.toLocal8Bit()); + + naturalLanguage = config.getString(CONFIG_NATURALLANGUAGE); + if (naturalLanguage.isEmpty()) + naturalLanguage = QLatin1String("en"); + + QSet<QString> editionNames = config.subVars(CONFIG_EDITION); + QSet<QString>::ConstIterator edition = editionNames.begin(); + while (edition != editionNames.end()) { + QString editionName = *edition; + QStringList editionModules = config.getStringList(CONFIG_EDITION + + Config::dot + + editionName + + Config::dot + + "modules"); + QStringList editionGroups = config.getStringList(CONFIG_EDITION + + Config::dot + + editionName + + Config::dot + + "groups"); + + if (!editionModules.isEmpty()) + editionModuleMap[editionName] = editionModules; + if (!editionGroups.isEmpty()) + editionGroupMap[editionName] = editionGroups; + + ++edition; + } + + slow = config.getBool(CONFIG_SLOW); + + stylesheets = config.getStringList(DitaXmlGenerator::format() + + Config::dot + + DITAXMLGENERATOR_STYLESHEETS); + customHeadElements = config.getStringList(DitaXmlGenerator::format() + + Config::dot + + DITAXMLGENERATOR_CUSTOMHEADELEMENTS); + codeIndent = config.getInt(CONFIG_CODEINDENT); + + helpProjectWriter = new HelpProjectWriter(config, + project.toLower() + + ".qhp"); +} + +void DitaXmlGenerator::terminateGenerator() +{ + Generator::terminateGenerator(); +} + +QString DitaXmlGenerator::format() +{ + return "DITAXML"; +} + +/*! + This is where the html files and dcf files are written. + \note The html file generation is done in the base class, + PageGenerator::generateTree(). + */ +void DitaXmlGenerator::generateTree(const Tree *tree, CodeMarker *marker) +{ +#if 0 + // Copy the stylesheets from the directory containing the qdocconf file. + // ### This should be changed to use a special directory in doc/src. + QStringList::ConstIterator styleIter = stylesheets.begin(); + QDir configPath = QDir::current(); + while (styleIter != stylesheets.end()) { + QString filePath = configPath.absoluteFilePath(*styleIter); + Config::copyFile(Location(), filePath, filePath, outputDir()); + ++styleIter; + } +#endif + myTree = tree; + nonCompatClasses.clear(); + mainClasses.clear(); + compatClasses.clear(); + obsoleteClasses.clear(); + moduleClassMap.clear(); + moduleNamespaceMap.clear(); + funcIndex.clear(); + legaleseTexts.clear(); + serviceClasses.clear(); + findAllClasses(tree->root()); + findAllFunctions(tree->root()); + findAllLegaleseTexts(tree->root()); + findAllNamespaces(tree->root()); +#ifdef ZZZ_QDOC_QML + findAllQmlClasses(tree->root()); +#endif + findAllSince(tree->root()); + + PageGenerator::generateTree(tree, marker); + + dcfClassesRoot.ref = "classes.html"; + dcfClassesRoot.title = "Classes"; + qSort(dcfClassesRoot.subsections); + + dcfOverviewsRoot.ref = "overviews.html"; + dcfOverviewsRoot.title = "Overviews"; + qSort(dcfOverviewsRoot.subsections); + + dcfExamplesRoot.ref = "examples.html"; + dcfExamplesRoot.title = "Tutorial & Examples"; + qSort(dcfExamplesRoot.subsections); + + DcfSection qtRoot; + appendDcfSubSection(&qtRoot, dcfClassesRoot); + appendDcfSubSection(&qtRoot, dcfOverviewsRoot); + appendDcfSubSection(&qtRoot, dcfExamplesRoot); + + generateDcf(project.toLower().simplified().replace(" ", "-"), + "index.html", + projectDescription, qtRoot); + generateDcf("designer", + "designer-manual.html", + "Qt Designer Manual", + dcfDesignerRoot); + generateDcf("linguist", + "linguist-manual.html", + "Qt Linguist Manual", + dcfLinguistRoot); + generateDcf("assistant", + "assistant-manual.html", + "Qt Assistant Manual", + dcfAssistantRoot); + generateDcf("qmake", + "qmake-manual.html", + "qmake Manual", + dcfQmakeRoot); + + QString fileBase = project.toLower().simplified().replace(" ", "-"); + generateIndex(fileBase, projectUrl, projectDescription); + generatePageIndex(outputDir() + "/" + fileBase + ".pageindex", marker); + + helpProjectWriter->generate(myTree); +} + +void DitaXmlGenerator::startText(const Node * /* relative */, + CodeMarker * /* marker */) +{ + inLink = false; + inContents = false; + inSectionHeading = false; + inTableHeader = false; + numTableRows = 0; + threeColumnEnumValueTable = true; + link.clear(); + sectionNumber.clear(); +} + +/*! + Generate html from an instance of Atom. + */ +int DitaXmlGenerator::generateAtom(const Atom *atom, + const Node *relative, + CodeMarker *marker) +{ + int skipAhead = 0; + static bool in_para = false; + + switch (atom->type()) { + case Atom::AbstractLeft: + break; + case Atom::AbstractRight: + break; + case Atom::AutoLink: + if (!inLink && !inContents && !inSectionHeading) { + const Node *node = 0; + QString link = getLink(atom, relative, marker, &node); + if (!link.isEmpty()) { + beginLink(link, node, relative, marker); + generateLink(atom, relative, marker); + endLink(); + } + else { + out() << protectEnc(atom->string()); + } + } + else { + out() << protectEnc(atom->string()); + } + break; + case Atom::BaseName: + break; + case Atom::BriefLeft: + if (relative->type() == Node::Fake) { + skipAhead = skipAtoms(atom, Atom::BriefRight); + break; + } + + out() << "<p>"; + if (relative->type() == Node::Property || + relative->type() == Node::Variable) { + QString str; + atom = atom->next(); + while (atom != 0 && atom->type() != Atom::BriefRight) { + if (atom->type() == Atom::String || + atom->type() == Atom::AutoLink) + str += atom->string(); + skipAhead++; + atom = atom->next(); + } + str[0] = str[0].toLower(); + if (str.right(1) == ".") + str.truncate(str.length() - 1); + out() << "This "; + if (relative->type() == Node::Property) + out() << "property"; + else + out() << "variable"; + QStringList words = str.split(" "); + if (!(words.first() == "contains" || words.first() == "specifies" + || words.first() == "describes" || words.first() == "defines" + || words.first() == "holds" || words.first() == "determines")) + out() << " holds "; + else + out() << " "; + out() << str << "."; + } + break; + case Atom::BriefRight: + if (relative->type() != Node::Fake) + out() << "</p>\n"; + break; + case Atom::C: + out() << formattingLeftMap()[ATOM_FORMATTING_TELETYPE]; + if (inLink) { + out() << protectEnc(plainCode(atom->string())); + } + else { + out() << highlightedCode(atom->string(), marker, relative); + } + out() << formattingRightMap()[ATOM_FORMATTING_TELETYPE]; + break; + case Atom::Code: + out() << "<pre class=\"highlightedCode\">" + << trimmedTrailing(highlightedCode(indent(codeIndent,atom->string()), + marker,relative)) + << "</pre>\n"; + break; +#ifdef QDOC_QML + case Atom::Qml: + out() << "<pre class=\"highlightedCode\">" + << trimmedTrailing(highlightedCode(indent(codeIndent,atom->string()), + marker,relative)) + << "</pre>\n"; + break; +#endif + case Atom::CodeNew: + out() << "<p>you can rewrite it as</p>\n" + << "<pre class=\"highlightedCode\">" + << trimmedTrailing(highlightedCode(indent(codeIndent,atom->string()), + marker,relative)) + << "</pre>\n"; + break; + case Atom::CodeOld: + out() << "<p>For example, if you have code like</p>\n"; + // fallthrough + case Atom::CodeBad: + out() << "<pre class=\"highlightedCode\">" + << trimmedTrailing(protectEnc(plainCode(indent(codeIndent,atom->string())))) + << "</pre>\n"; + break; + case Atom::FootnoteLeft: + // ### For now + if (in_para) { + out() << "</p>\n"; + in_para = false; + } + out() << "<!-- "; + break; + case Atom::FootnoteRight: + // ### For now + out() << "-->"; + break; + case Atom::FormatElse: + case Atom::FormatEndif: + case Atom::FormatIf: + break; + case Atom::FormattingLeft: + out() << formattingLeftMap()[atom->string()]; + if (atom->string() == ATOM_FORMATTING_PARAMETER) { + if (atom->next() != 0 && atom->next()->type() == Atom::String) { + QRegExp subscriptRegExp("([a-z]+)_([0-9n])"); + if (subscriptRegExp.exactMatch(atom->next()->string())) { + out() << subscriptRegExp.cap(1) << "<sub>" + << subscriptRegExp.cap(2) << "</sub>"; + skipAhead = 1; + } + } + } + break; + case Atom::FormattingRight: + if (atom->string() == ATOM_FORMATTING_LINK) { + endLink(); + } + else { + out() << formattingRightMap()[atom->string()]; + } + break; + case Atom::AnnotatedList: + { + QList<Node*> values = myTree->groups().values(atom->string()); + NodeMap nodeMap; + for (int i = 0; i < values.size(); ++i) { + const Node* n = values.at(i); + if ((n->status() != Node::Internal) && (n->access() != Node::Private)) { + nodeMap.insert(n->nameForLists(),n); + } + } + generateAnnotatedList(relative, marker, nodeMap); + } + break; + case Atom::GeneratedList: + if (atom->string() == "annotatedclasses") { + generateAnnotatedList(relative, marker, nonCompatClasses); + } + else if (atom->string() == "classes") { + generateCompactList(relative, marker, nonCompatClasses, true); + } + else if (atom->string().contains("classesbymodule")) { + QString arg = atom->string().trimmed(); + QString moduleName = atom->string().mid(atom->string().indexOf( + "classesbymodule") + 15).trimmed(); + if (moduleClassMap.contains(moduleName)) + generateAnnotatedList(relative, marker, moduleClassMap[moduleName]); + } + else if (atom->string().contains("classesbyedition")) { + + QString arg = atom->string().trimmed(); + QString editionName = atom->string().mid(atom->string().indexOf( + "classesbyedition") + 16).trimmed(); + + if (editionModuleMap.contains(editionName)) { + + // Add all classes in the modules listed for that edition. + NodeMap editionClasses; + foreach (const QString &moduleName, editionModuleMap[editionName]) { + if (moduleClassMap.contains(moduleName)) + editionClasses.unite(moduleClassMap[moduleName]); + } + + // Add additional groups and remove groups of classes that + // should be excluded from the edition. + + QMultiMap <QString, Node *> groups = myTree->groups(); + foreach (const QString &groupName, editionGroupMap[editionName]) { + QList<Node *> groupClasses; + if (groupName.startsWith("-")) { + groupClasses = groups.values(groupName.mid(1)); + foreach (const Node *node, groupClasses) + editionClasses.remove(node->name()); + } + else { + groupClasses = groups.values(groupName); + foreach (const Node *node, groupClasses) + editionClasses.insert(node->name(), node); + } + } + generateAnnotatedList(relative, marker, editionClasses); + } + } + else if (atom->string() == "classhierarchy") { + generateClassHierarchy(relative, marker, nonCompatClasses); + } + else if (atom->string() == "compatclasses") { + generateCompactList(relative, marker, compatClasses, false); + } + else if (atom->string() == "obsoleteclasses") { + generateCompactList(relative, marker, obsoleteClasses, false); + } + else if (atom->string() == "functionindex") { + generateFunctionIndex(relative, marker); + } + else if (atom->string() == "legalese") { + generateLegaleseList(relative, marker); + } + else if (atom->string() == "mainclasses") { + generateCompactList(relative, marker, mainClasses, true); + } + else if (atom->string() == "services") { + generateCompactList(relative, marker, serviceClasses, false); + } + else if (atom->string() == "overviews") { + generateOverviewList(relative, marker); + } + else if (atom->string() == "namespaces") { + generateAnnotatedList(relative, marker, namespaceIndex); + } + else if (atom->string() == "related") { + const FakeNode *fake = static_cast<const FakeNode *>(relative); + if (fake && !fake->groupMembers().isEmpty()) { + NodeMap groupMembersMap; + foreach (const Node *node, fake->groupMembers()) { + if (node->type() == Node::Fake) + groupMembersMap[fullName(node, relative, marker)] = node; + } + generateAnnotatedList(fake, marker, groupMembersMap); + } + } + else if (atom->string() == "relatedinline") { + const FakeNode *fake = static_cast<const FakeNode *>(relative); + if (fake && !fake->groupMembers().isEmpty()) { + // Reverse the list into the original scan order. + // Should be sorted. But on what? It may not be a + // regular class or page definition. + QList<const Node *> list; + foreach (const Node *node, fake->groupMembers()) + list.prepend(node); + foreach (const Node *node, list) + generateBody(node, marker); + } + } + break; + case Atom::SinceList: + { + NewSinceMaps::const_iterator nsmap; + nsmap = newSinceMaps.find(atom->string()); + NewClassMaps::const_iterator ncmap; + ncmap = newClassMaps.find(atom->string()); + NewClassMaps::const_iterator nqcmap; + nqcmap = newQmlClassMaps.find(atom->string()); + if ((nsmap != newSinceMaps.constEnd()) && !nsmap.value().isEmpty()) { + QList<Section> sections; + QList<Section>::ConstIterator s; + for (int i=0; i<LastSinceType; ++i) + sections.append(Section(sinceTitle(i),QString(),QString(),QString())); + + NodeMultiMap::const_iterator n = nsmap.value().constBegin(); + while (n != nsmap.value().constEnd()) { + const Node* node = n.value(); + switch (node->type()) { + case Node::Fake: + if (node->subType() == Node::QmlClass) { + sections[QmlClass].appendMember((Node*)node); + } + break; + case Node::Namespace: + sections[Namespace].appendMember((Node*)node); + break; + case Node::Class: + sections[Class].appendMember((Node*)node); + break; + case Node::Enum: + sections[Enum].appendMember((Node*)node); + break; + case Node::Typedef: + sections[Typedef].appendMember((Node*)node); + break; + case Node::Function: { + const FunctionNode* fn = static_cast<const FunctionNode*>(node); + if (fn->isMacro()) + sections[Macro].appendMember((Node*)node); + else { + Node* p = fn->parent(); + if (p) { + if (p->type() == Node::Class) + sections[MemberFunction].appendMember((Node*)node); + else if (p->type() == Node::Namespace) { + if (p->name().isEmpty()) + sections[GlobalFunction].appendMember((Node*)node); + else + sections[NamespaceFunction].appendMember((Node*)node); + } + else + sections[GlobalFunction].appendMember((Node*)node); + } + else + sections[GlobalFunction].appendMember((Node*)node); + } + break; + } + case Node::Property: + sections[Property].appendMember((Node*)node); + break; + case Node::Variable: + sections[Variable].appendMember((Node*)node); + break; + case Node::QmlProperty: + sections[QmlProperty].appendMember((Node*)node); + break; + case Node::QmlSignal: + sections[QmlSignal].appendMember((Node*)node); + break; + case Node::QmlMethod: + sections[QmlMethod].appendMember((Node*)node); + break; + default: + break; + } + ++n; + } + + /* + First generate the table of contents. + */ + out() << "<ul>\n"; + s = sections.constBegin(); + while (s != sections.constEnd()) { + if (!(*s).members.isEmpty()) { + + out() << "<li>" + << "<a href=\"#" + << Doc::canonicalTitle((*s).name) + << "\">" + << (*s).name + << "</a></li>\n"; + } + ++s; + } + out() << "</ul>\n"; + + int idx = 0; + s = sections.constBegin(); + while (s != sections.constEnd()) { + if (!(*s).members.isEmpty()) { + out() << "<a name=\"" + << Doc::canonicalTitle((*s).name) + << "\"></a>\n"; + out() << "<h3>" << protectEnc((*s).name) << "</h3>\n"; + if (idx == Class) + generateCompactList(0, marker, ncmap.value(), false, QString("Q")); + else if (idx == QmlClass) + generateCompactList(0, marker, nqcmap.value(), false, QString("Q")); + else if (idx == MemberFunction) { + ParentMaps parentmaps; + ParentMaps::iterator pmap; + NodeList::const_iterator i = s->members.constBegin(); + while (i != s->members.constEnd()) { + Node* p = (*i)->parent(); + pmap = parentmaps.find(p); + if (pmap == parentmaps.end()) + pmap = parentmaps.insert(p,NodeMultiMap()); + pmap->insert((*i)->name(),(*i)); + ++i; + } + pmap = parentmaps.begin(); + while (pmap != parentmaps.end()) { + NodeList nlist = pmap->values(); + out() << "<p>Class "; + + out() << "<a href=\"" + << linkForNode(pmap.key(), 0) + << "\">"; + QStringList pieces = fullName(pmap.key(), 0, marker).split("::"); + out() << protectEnc(pieces.last()); + out() << "</a>" << ":</p>\n"; + + generateSection(nlist, 0, marker, CodeMarker::Summary); + out() << "<br/>"; + ++pmap; + } + } + else + generateSection(s->members, 0, marker, CodeMarker::Summary); + } + ++idx; + ++s; + } + } + } + break; + case Atom::Image: + case Atom::InlineImage: + { + QString fileName = imageFileName(relative, atom->string()); + QString text; + if (atom->next() != 0) + text = atom->next()->string(); + if (atom->type() == Atom::Image) + out() << "<p class=\"centerAlign\">"; + if (fileName.isEmpty()) { + out() << "<font color=\"red\">[Missing image " + << protectEnc(atom->string()) << "]</font>"; + } + else { + out() << "<img src=\"" << protectEnc(fileName) << "\""; + if (!text.isEmpty()) + out() << " alt=\"" << protectEnc(text) << "\""; + out() << " />"; + helpProjectWriter->addExtraFile(fileName); + } + if (atom->type() == Atom::Image) + out() << "</p>"; + } + break; + case Atom::ImageText: + break; + case Atom::LegaleseLeft: + out() << "<div class=\"LegaleseLeft\">"; + break; + case Atom::LegaleseRight: + out() << "</div>"; + break; + case Atom::LineBreak: + out() << "<br/>"; + break; + case Atom::Link: + { + const Node *node = 0; + QString myLink = getLink(atom, relative, marker, &node); + if (myLink.isEmpty()) { + relative->doc().location().warning(tr("Cannot link to '%1' in %2") + .arg(atom->string()) + .arg(marker->plainFullName(relative))); + } + beginLink(myLink, node, relative, marker); + skipAhead = 1; + } + break; + case Atom::LinkNode: + { + const Node *node = CodeMarker::nodeForString(atom->string()); + beginLink(linkForNode(node, relative), node, relative, marker); + skipAhead = 1; + } + break; + case Atom::ListLeft: + if (in_para) { + out() << "</p>\n"; + in_para = false; + } + if (atom->string() == ATOM_LIST_BULLET) { + out() << "<ul>\n"; + } + else if (atom->string() == ATOM_LIST_TAG) { + out() << "<dl>\n"; + } + else if (atom->string() == ATOM_LIST_VALUE) { + threeColumnEnumValueTable = isThreeColumnEnumValueTable(atom); + if (threeColumnEnumValueTable) { + out() << "<table class=\"valuelist\">"; + // << "<tr>" + if (++numTableRows % 2 == 1) + out() << "<tr class=\"odd\">"; + else + out() << "<tr class=\"even\">"; + + out() << "<tr><th>Constant</th>" + << "<th>Value</th>" + << "<th>Description</th></tr>\n"; + } + else { + out() << "<table class=\"valuelist\">" + << "<tr><th>Constant</th><th>Value</th></tr>\n"; + } + } + else { + out() << "<ol type="; + if (atom->string() == ATOM_LIST_UPPERALPHA) { + out() << "\"A\""; + } /* why type? */ + else if (atom->string() == ATOM_LIST_LOWERALPHA) { + out() << "\"a\""; + } + else if (atom->string() == ATOM_LIST_UPPERROMAN) { + out() << "\"I\""; + } + else if (atom->string() == ATOM_LIST_LOWERROMAN) { + out() << "\"i\""; + } + else { // (atom->string() == ATOM_LIST_NUMERIC) + out() << "\"1\""; + } + if (atom->next() != 0 && atom->next()->string().toInt() != 1) + out() << " start=\"" << atom->next()->string() << "\""; + out() << ">\n"; + } + break; + case Atom::ListItemNumber: + break; + case Atom::ListTagLeft: + if (atom->string() == ATOM_LIST_TAG) { + out() << "<dt>"; + } + else { // (atom->string() == ATOM_LIST_VALUE) + // ### Trenton + + out() << "<tr><td class=\"topAlign\"><tt>" + << protectEnc(plainCode(marker->markedUpEnumValue(atom->next()->string(), + relative))) + << "</tt></td><td class=\" topAlign\">"; + + QString itemValue; + if (relative->type() == Node::Enum) { + const EnumNode *enume = static_cast<const EnumNode *>(relative); + itemValue = enume->itemValue(atom->next()->string()); + } + + if (itemValue.isEmpty()) + out() << "?"; + else + out() << "<tt>" << protectEnc(itemValue) << "</tt>"; + + skipAhead = 1; + } + break; + case Atom::ListTagRight: + if (atom->string() == ATOM_LIST_TAG) + out() << "</dt>\n"; + break; + case Atom::ListItemLeft: + if (atom->string() == ATOM_LIST_TAG) { + out() << "<dd>"; + } + else if (atom->string() == ATOM_LIST_VALUE) { + if (threeColumnEnumValueTable) { + out() << "</td><td class=\"topAlign\">"; + if (matchAhead(atom, Atom::ListItemRight)) + out() << " "; + } + } + else { + out() << "<li>"; + } + if (matchAhead(atom, Atom::ParaLeft)) + skipAhead = 1; + break; + case Atom::ListItemRight: + if (atom->string() == ATOM_LIST_TAG) { + out() << "</dd>\n"; + } + else if (atom->string() == ATOM_LIST_VALUE) { + out() << "</td></tr>\n"; + } + else { + out() << "</li>\n"; + } + break; + case Atom::ListRight: + if (atom->string() == ATOM_LIST_BULLET) { + out() << "</ul>\n"; + } + else if (atom->string() == ATOM_LIST_TAG) { + out() << "</dl>\n"; + } + else if (atom->string() == ATOM_LIST_VALUE) { + out() << "</table>\n"; + } + else { + out() << "</ol>\n"; + } + break; + case Atom::Nop: + break; + case Atom::ParaLeft: + out() << "<p>"; + in_para = true; + break; + case Atom::ParaRight: + endLink(); + if (in_para) { + out() << "</p>\n"; + in_para = false; + } + //if (!matchAhead(atom, Atom::ListItemRight) && !matchAhead(atom, Atom::TableItemRight)) + // out() << "</p>\n"; + break; + case Atom::QuotationLeft: + out() << "<blockquote>"; + break; + case Atom::QuotationRight: + out() << "</blockquote>\n"; + break; + case Atom::RawString: + out() << atom->string(); + break; + case Atom::SectionLeft: +#if 0 + { + int nextLevel = atom->string().toInt(); + if (sectionNumber.size() < nextLevel) { + do { + sectionNumber.append("1"); + } while (sectionNumber.size() < nextLevel); + } + else { + while (sectionNumber.size() > nextLevel) { + sectionNumber.removeLast(); + } + sectionNumber.last() = QString::number(sectionNumber.last().toInt() + 1); + } + out() << "<a name=\"sec-" << sectionNumber.join("-") << "\"></a>\n"; + } +#else + out() << "<a name=\"" << Doc::canonicalTitle(Text::sectionHeading(atom).toString()) + << "\"></a>\n"; +#endif + break; + case Atom::SectionRight: + break; + case Atom::SectionHeadingLeft: + out() << "<h" + QString::number(atom->string().toInt() + hOffset(relative)) + ">"; + inSectionHeading = true; + break; + case Atom::SectionHeadingRight: + out() << "</h" + QString::number(atom->string().toInt() + hOffset(relative)) + ">\n"; + inSectionHeading = false; + break; + case Atom::SidebarLeft: + break; + case Atom::SidebarRight: + break; + case Atom::String: + if (inLink && !inContents && !inSectionHeading) { + generateLink(atom, relative, marker); + } + else { + out() << protectEnc(atom->string()); + } + break; + case Atom::TableLeft: + if (in_para) { + out() << "</p>\n"; + in_para = false; + } + if (!atom->string().isEmpty()) { + if (atom->string().contains("%")) + out() << "<table class=\"generic\">\n "; // width=\"" << atom->string() << "\">\n "; + else { + out() << "<table class=\"generic\">\n"; + } + } + else { + out() << "<table class=\"generic\">\n"; + } + numTableRows = 0; + break; + case Atom::TableRight: + out() << "</table>\n"; + break; + case Atom::TableHeaderLeft: + out() << "<thead><tr class=\"qt-style topAlign\">"; + inTableHeader = true; + break; + case Atom::TableHeaderRight: + out() << "</tr>"; + if (matchAhead(atom, Atom::TableHeaderLeft)) { + skipAhead = 1; + out() << "\n<tr class=\"qt-style topAlign\">"; + } + else { + out() << "</thead>\n"; + inTableHeader = false; + } + break; + case Atom::TableRowLeft: + if (++numTableRows % 2 == 1) + out() << "<tr class=\"odd topAlign\">"; + else + out() << "<tr class=\"even topAlign\">"; + break; + case Atom::TableRowRight: + out() << "</tr>\n"; + break; + case Atom::TableItemLeft: + { + if (inTableHeader) + out() << "<th"; + else + out() << "<td"; + + QStringList spans = atom->string().split(","); + if (spans.size() == 2) { + if (spans.at(0) != "1") + out() << " colspan=\"" << spans.at(0) << "\""; + if (spans.at(1) != "1") + out() << " rowspan=\"" << spans.at(1) << "\""; + if (inTableHeader) + out() << ">"; + else + out() << "><p>"; + } + if (matchAhead(atom, Atom::ParaLeft)) + skipAhead = 1; + } + break; + case Atom::TableItemRight: + if (inTableHeader) + out() << "</th>"; + else + out() << "</p></td>"; + if (matchAhead(atom, Atom::ParaLeft)) + skipAhead = 1; + break; + case Atom::TableOfContents: + { + int numColumns = 1; + const Node *node = relative; + + Doc::SectioningUnit sectioningUnit = Doc::Section4; + QStringList params = atom->string().split(","); + QString columnText = params.at(0); + QStringList pieces = columnText.split(" ", QString::SkipEmptyParts); + if (pieces.size() >= 2) { + columnText = pieces.at(0); + pieces.pop_front(); + QString path = pieces.join(" ").trimmed(); + node = findNodeForTarget(path, relative, marker, atom); + } + + if (params.size() == 2) { + numColumns = qMax(columnText.toInt(), numColumns); + sectioningUnit = (Doc::SectioningUnit)params.at(1).toInt(); + } + + if (node) + generateTableOfContents(node, + marker, + sectioningUnit, + numColumns, + relative); + } + break; + case Atom::Target: + out() << "<a name=\"" << Doc::canonicalTitle(atom->string()) << "\"></a>"; + break; + case Atom::UnhandledFormat: + out() << "<b class=\"redFont\"><Missing DITAXML></b>"; + break; + case Atom::UnknownCommand: + out() << "<b class=\"redFont\"><code>\\" << protectEnc(atom->string()) + << "</code></b>"; + break; +#ifdef QDOC_QML + case Atom::QmlText: + case Atom::EndQmlText: + // don't do anything with these. They are just tags. + break; +#endif + default: + unknownAtom(atom); + } + return skipAhead; +} + +/*! + Generate a reference page for a C++ class. + */ +void DitaXmlGenerator::generateClassLikeNode(const InnerNode *inner, + CodeMarker *marker) +{ + QList<Section> sections; + QList<Section>::ConstIterator s; + + const ClassNode *classe = 0; + const NamespaceNode *namespasse = 0; + + QString title; + QString rawTitle; + QString fullTitle; + if (inner->type() == Node::Namespace) { + namespasse = static_cast<const NamespaceNode *>(inner); + rawTitle = marker->plainName(inner); + fullTitle = marker->plainFullName(inner); + title = rawTitle + " Namespace"; + } + else if (inner->type() == Node::Class) { + classe = static_cast<const ClassNode *>(inner); + rawTitle = marker->plainName(inner); + fullTitle = marker->plainFullName(inner); + title = rawTitle + " Class Reference"; + } + + DcfSection classSection; + classSection.title = title; + classSection.ref = linkForNode(inner, 0); + classSection.keywords += qMakePair(inner->name(), classSection.ref); + + Text subtitleText; + if (rawTitle != fullTitle) + subtitleText << "(" << Atom(Atom::AutoLink, fullTitle) << ")" + << Atom(Atom::LineBreak); + +#if 0 + // No longer used because the modeule name is a breadcrumb. + QString fixedModule = inner->moduleName(); + if (fixedModule == "Qt3SupportLight") + fixedModule = "Qt3Support"; + if (!fixedModule.isEmpty()) + subtitleText << "[" << Atom(Atom::AutoLink, fixedModule) << " module]"; + + if (fixedModule.isEmpty()) { + QMultiMap<QString, QString> publicGroups = myTree->publicGroups(); + QList<QString> groupNames = publicGroups.values(inner->name()); + if (!groupNames.isEmpty()) { + qSort(groupNames.begin(), groupNames.end()); + subtitleText << "["; + for (int j=0; j<groupNames.count(); j++) { + subtitleText << Atom(Atom::AutoLink, groupNames[j]); + if (j<groupNames.count()-1) + subtitleText <<", "; + } + subtitleText << "]"; + } + } +#endif + + generateHeader(title, inner, marker); + sections = marker->sections(inner, CodeMarker::Summary, CodeMarker::Okay); + generateTableOfContents(inner,marker,§ions); + generateTitle(title, subtitleText, SmallSubTitle, inner, marker); + +#ifdef QDOC_QML + if (classe && !classe->qmlElement().isEmpty()) { + generateInstantiatedBy(classe,marker); + } +#endif + + generateBrief(inner, marker); + generateIncludes(inner, marker); + generateStatus(inner, marker); + if (classe) { + generateInherits(classe, marker); + generateInheritedBy(classe, marker); + } + generateThreadSafeness(inner, marker); + generateSince(inner, marker); + + out() << "<ul>\n"; + + QString membersLink = generateListOfAllMemberFile(inner, marker); + if (!membersLink.isEmpty()) + out() << "<li><a href=\"" << membersLink << "\">" + << "List of all members, including inherited members</a></li>\n"; + + QString obsoleteLink = generateLowStatusMemberFile(inner, + marker, + CodeMarker::Obsolete); + if (!obsoleteLink.isEmpty()) + out() << "<li><a href=\"" << obsoleteLink << "\">" + << "Obsolete members</a></li>\n"; + + QString compatLink = generateLowStatusMemberFile(inner, + marker, + CodeMarker::Compat); + if (!compatLink.isEmpty()) + out() << "<li><a href=\"" << compatLink << "\">" + << "Qt 3 support members</a></li>\n"; + + out() << "</ul>\n"; + + bool needOtherSection = false; + + /* + sections is built above for the call to generateTableOfContents(). + */ + s = sections.begin(); + while (s != sections.end()) { + if (s->members.isEmpty() && s->reimpMembers.isEmpty()) { + if (!s->inherited.isEmpty()) + needOtherSection = true; + } + else { + if (!s->members.isEmpty()) { + out() << "<hr />\n"; + out() << "<a name=\"" + << registerRef((*s).name.toLower()) + << "\"></a>\n"; + out() << "<h2>" << protectEnc((*s).name) << "</h2>\n"; + generateSection(s->members, inner, marker, CodeMarker::Summary); + } + if (!s->reimpMembers.isEmpty()) { + QString name = QString("Reimplemented ") + (*s).name; + out() << "<hr />\n"; + out() << "<a name=\"" + << registerRef(name.toLower()) + << "\"></a>\n"; + out() << "<h2>" << protectEnc(name) << "</h2>\n"; + generateSection(s->reimpMembers, inner, marker, CodeMarker::Summary); + } + + if (!s->inherited.isEmpty()) { + out() << "<ul>\n"; + generateSectionInheritedList(*s, inner, marker, true); + out() << "</ul>\n"; + } + } + ++s; + } + + if (needOtherSection) { + out() << "<h3>Additional Inherited Members</h3>\n" + "<ul>\n"; + + s = sections.begin(); + while (s != sections.end()) { + if (s->members.isEmpty() && !s->inherited.isEmpty()) + generateSectionInheritedList(*s, inner, marker); + ++s; + } + out() << "</ul>\n"; + } + + out() << "<a name=\"" << registerRef("details") << "\"></a>\n"; + + if (!inner->doc().isEmpty()) { + out() << "<hr />\n" + << "<div class=\"descr\"/>\n" // QTBUG-9504 + << "<h2>" << "Detailed Description" << "</h2>\n"; + generateBody(inner, marker); + out() << "</div>\n"; // QTBUG-9504 + generateAlsoList(inner, marker); + } + + sections = marker->sections(inner, CodeMarker::Detailed, CodeMarker::Okay); + s = sections.begin(); + while (s != sections.end()) { + out() << "<hr />\n"; + if (!(*s).divClass.isEmpty()) + out() << "<div class=\"" << (*s).divClass << "\"/>\n"; // QTBUG-9504 + out() << "<h2>" << protectEnc((*s).name) << "</h2>\n"; + + NodeList::ConstIterator m = (*s).members.begin(); + while (m != (*s).members.end()) { + if ((*m)->access() != Node::Private) { // ### check necessary? + if ((*m)->type() != Node::Class) + generateDetailedMember(*m, inner, marker); + else { + out() << "<h3> class "; + generateFullName(*m, inner, marker); + out() << "</h3>"; + generateBrief(*m, marker, inner); + } + + QStringList names; + names << (*m)->name(); + if ((*m)->type() == Node::Function) { + const FunctionNode *func = reinterpret_cast<const FunctionNode *>(*m); + if (func->metaness() == FunctionNode::Ctor || + func->metaness() == FunctionNode::Dtor || + func->overloadNumber() != 1) + names.clear(); + } + else if ((*m)->type() == Node::Property) { + const PropertyNode *prop = reinterpret_cast<const PropertyNode *>(*m); + if (!prop->getters().isEmpty() && + !names.contains(prop->getters().first()->name())) + names << prop->getters().first()->name(); + if (!prop->setters().isEmpty()) + names << prop->setters().first()->name(); + if (!prop->resetters().isEmpty()) + names << prop->resetters().first()->name(); + } + else if ((*m)->type() == Node::Enum) { + const EnumNode *enume = reinterpret_cast<const EnumNode*>(*m); + if (enume->flagsType()) + names << enume->flagsType()->name(); + + foreach (const QString &enumName, + enume->doc().enumItemNames().toSet() - + enume->doc().omitEnumItemNames().toSet()) + names << plainCode(marker->markedUpEnumValue(enumName, + enume)); + } + foreach (const QString &name, names) + classSection.keywords += qMakePair(name,linkForNode(*m,0)); + } + ++m; + } + if (!(*s).divClass.isEmpty()) + out() << "</div>\n"; // QTBUG-9504 + ++s; + } + generateFooter(inner); + + if (!membersLink.isEmpty()) { + DcfSection membersSection; + membersSection.title = "List of all members"; + membersSection.ref = membersLink; + appendDcfSubSection(&classSection, membersSection); + } + if (!obsoleteLink.isEmpty()) { + DcfSection obsoleteSection; + obsoleteSection.title = "Obsolete members"; + obsoleteSection.ref = obsoleteLink; + appendDcfSubSection(&classSection, obsoleteSection); + } + if (!compatLink.isEmpty()) { + DcfSection compatSection; + compatSection.title = "Qt 3 support members"; + compatSection.ref = compatLink; + appendDcfSubSection(&classSection, compatSection); + } + + appendDcfSubSection(&dcfClassesRoot, classSection); +} + +/*! + Generate the html page for a qdoc file that doesn't map + to an underlying c++ file. + */ +void DitaXmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker) +{ + SubTitleSize subTitleSize = LargeSubTitle; + DcfSection fakeSection; + fakeSection.title = fake->fullTitle(); + fakeSection.ref = linkForNode(fake, 0); + + QList<Section> sections; + QList<Section>::const_iterator s; + + QString fullTitle = fake->fullTitle(); + QString htmlTitle = fullTitle; + if (fake->subType() == Node::File && !fake->subTitle().isEmpty()) { + subTitleSize = SmallSubTitle; + htmlTitle += " (" + fake->subTitle() + ")"; + } + else if (fake->subType() == Node::QmlBasicType) { + fullTitle = "QML Basic Type: " + fullTitle; + htmlTitle = fullTitle; + } + + generateHeader(htmlTitle, fake, marker); + + /* + Generate the TOC for the new doc format. + Don't generate a TOC for the home page. + */ + if (fake->name() != QString("index.html")) + generateTableOfContents(fake,marker,0); + + generateTitle(fullTitle, + Text() << fake->subTitle(), + subTitleSize, + fake, + marker); + + if (fake->subType() == Node::Module) { + // Generate brief text and status for modules. + generateBrief(fake, marker); + generateStatus(fake, marker); + + if (moduleNamespaceMap.contains(fake->name())) { + out() << "<a name=\"" << registerRef("namespaces") << "\"></a>\n"; + out() << "<h2>Namespaces</h2>\n"; + generateAnnotatedList(fake, marker, moduleNamespaceMap[fake->name()]); + } + if (moduleClassMap.contains(fake->name())) { + out() << "<a name=\"" << registerRef("classes") << "\"></a>\n"; + out() << "<h2>Classes</h2>\n"; + generateAnnotatedList(fake, marker, moduleClassMap[fake->name()]); + } + } + else if (fake->subType() == Node::HeaderFile) { + // Generate brief text and status for modules. + generateBrief(fake, marker); + generateStatus(fake, marker); + + out() << "<ul>\n"; + + QString membersLink = generateListOfAllMemberFile(fake, marker); + if (!membersLink.isEmpty()) + out() << "<li><a href=\"" << membersLink << "\">" + << "List of all members, including inherited members</a></li>\n"; + + QString obsoleteLink = generateLowStatusMemberFile(fake, + marker, + CodeMarker::Obsolete); + if (!obsoleteLink.isEmpty()) + out() << "<li><a href=\"" << obsoleteLink << "\">" + << "Obsolete members</a></li>\n"; + + QString compatLink = generateLowStatusMemberFile(fake, + marker, + CodeMarker::Compat); + if (!compatLink.isEmpty()) + out() << "<li><a href=\"" << compatLink << "\">" + << "Qt 3 support members</a></li>\n"; + + out() << "</ul>\n"; + + if (!membersLink.isEmpty()) { + DcfSection membersSection; + membersSection.title = "List of all members"; + membersSection.ref = membersLink; + appendDcfSubSection(&fakeSection, membersSection); + } + if (!obsoleteLink.isEmpty()) { + DcfSection obsoleteSection; + obsoleteSection.title = "Obsolete members"; + obsoleteSection.ref = obsoleteLink; + appendDcfSubSection(&fakeSection, obsoleteSection); + } + if (!compatLink.isEmpty()) { + DcfSection compatSection; + compatSection.title = "Qt 3 support members"; + compatSection.ref = compatLink; + appendDcfSubSection(&fakeSection, compatSection); + } + } +#ifdef QDOC_QML + else if (fake->subType() == Node::QmlClass) { + const QmlClassNode* qml_cn = static_cast<const QmlClassNode*>(fake); + const ClassNode* cn = qml_cn->classNode(); + generateQmlInherits(qml_cn, marker); + generateQmlInstantiates(qml_cn, marker); + generateBrief(qml_cn, marker); + generateQmlInheritedBy(qml_cn, marker); + sections = marker->qmlSections(qml_cn,CodeMarker::Summary); + s = sections.begin(); + while (s != sections.end()) { + out() << "<a name=\"" << registerRef((*s).name) << "\"></a>\n"; + out() << "<h2>" << protectEnc((*s).name) << "</h2>\n"; + generateQmlSummary(*s,fake,marker); + ++s; + } + + out() << "<a name=\"" << registerRef("details") << "\"></a>\n"; + out() << "<h2>" << "Detailed Description" << "</h2>\n"; + generateBody(fake, marker); + if (cn) + generateQmlText(cn->doc().body(), cn, marker, fake->name()); + generateAlsoList(fake, marker); + out() << "<hr />\n"; + + sections = marker->qmlSections(qml_cn,CodeMarker::Detailed); + s = sections.begin(); + while (s != sections.end()) { + out() << "<h2>" << protectEnc((*s).name) << "</h2>\n"; + NodeList::ConstIterator m = (*s).members.begin(); + while (m != (*s).members.end()) { + generateDetailedQmlMember(*m, fake, marker); + out() << "<br/>\n"; + fakeSection.keywords += qMakePair((*m)->name(), + linkForNode(*m,0)); + ++m; + } + ++s; + } + generateFooter(fake); + return; + } +#endif + + sections = marker->sections(fake, CodeMarker::Summary, CodeMarker::Okay); + s = sections.begin(); + while (s != sections.end()) { + out() << "<a name=\"" << registerRef((*s).name) << "\"></a>\n"; + out() << "<h2>" << protectEnc((*s).name) << "</h2>\n"; + generateSectionList(*s, fake, marker, CodeMarker::Summary); + ++s; + } + + Text brief = fake->doc().briefText(); + if (fake->subType() == Node::Module && !brief.isEmpty()) { + out() << "<a name=\"" << registerRef("details") << "\"></a>\n"; + out() << "<div class=\"descr\"/>\n"; // QTBUG-9504 + out() << "<h2>" << "Detailed Description" << "</h2>\n"; + } + else + out() << "<div class=\"descr\"/>\n"; // QTBUG-9504 + + generateBody(fake, marker); + out() << "</div>\n"; // QTBUG-9504 + generateAlsoList(fake, marker); + + if (!fake->groupMembers().isEmpty()) { + NodeMap groupMembersMap; + foreach (const Node *node, fake->groupMembers()) { + if (node->type() == Node::Class || node->type() == Node::Namespace) + groupMembersMap[node->name()] = node; + } + generateAnnotatedList(fake, marker, groupMembersMap); + } + + fakeSection.keywords += qMakePair(fakeSection.title, fakeSection.ref); + + sections = marker->sections(fake, CodeMarker::Detailed, CodeMarker::Okay); + s = sections.begin(); + while (s != sections.end()) { + out() << "<hr />\n"; + out() << "<h2>" << protectEnc((*s).name) << "</h2>\n"; + + NodeList::ConstIterator m = (*s).members.begin(); + while (m != (*s).members.end()) { + generateDetailedMember(*m, fake, marker); + fakeSection.keywords += qMakePair((*m)->name(), linkForNode(*m, 0)); + ++m; + } + ++s; + } + generateFooter(fake); + + if (fake->subType() == Node::Example) { + appendDcfSubSection(&dcfExamplesRoot, fakeSection); + } + else if (fake->subType() != Node::File) { + QString contentsPage = fake->links().value(Node::ContentsLink).first; + + if (contentsPage == "Qt Designer Manual") { + appendDcfSubSection(&dcfDesignerRoot, fakeSection); + } + else if (contentsPage == "Qt Linguist Manual") { + appendDcfSubSection(&dcfLinguistRoot, fakeSection); + } + else if (contentsPage == "Qt Assistant Manual") { + appendDcfSubSection(&dcfAssistantRoot, fakeSection); + } + else if (contentsPage == "qmake Manual") { + appendDcfSubSection(&dcfQmakeRoot, fakeSection); + } + else { + appendDcfSubSection(&dcfOverviewsRoot, fakeSection); + } + } +} + +/*! + Returns "html" for this subclass of Generator. + */ +QString DitaXmlGenerator::fileExtension(const Node * /* node */) const +{ + return "html"; +} + +/*! + Output breadcrumb list in the html file. + */ +void DitaXmlGenerator::generateBreadCrumbs(const QString& title, + const Node *node, + CodeMarker *marker) +{ + Text breadcrumb; + if (node->type() == Node::Class) { + const ClassNode* cn = static_cast<const ClassNode*>(node); + QString name = node->moduleName(); + out() << " <li><a href=\"modules.html\">All Modules</a></li>"; + if (!name.isEmpty()) { + out() << " <li>"; + breadcrumb << Atom(Atom::AutoLink,name); + generateText(breadcrumb, node, marker); + out() << "</li>\n"; + } + breadcrumb.clear(); + if (!cn->name().isEmpty()) { + out() << " <li>"; + breadcrumb << Atom(Atom::AutoLink,cn->name()); + generateText(breadcrumb, 0, marker); + out() << "</li>\n"; + } + } + else if (node->type() == Node::Fake) { + const FakeNode* fn = static_cast<const FakeNode*>(node); + if (node->subType() == Node::Module) { + out() << " <li><a href=\"modules.html\">All Modules</a></li>"; + QString name = node->name(); + if (!name.isEmpty()) { + out() << " <li>"; + breadcrumb << Atom(Atom::AutoLink,name); + generateText(breadcrumb, 0, marker); + out() << "</li>\n"; + } + } + else if (node->subType() == Node::Group) { + if (fn->name() == QString("modules")) + out() << " <li><a href=\"modules.html\">All Modules</a></li>"; + else { + out() << " <li><a href=\"" << fn->name() << "\">" << title + << "</a></li>"; + } + } + else if (node->subType() == Node::Page) { + if (fn->name() == QString("examples.html")) { + out() << " <li><a href=\"all-examples.html\">Examples</a></li>"; + } + else if (fn->name().startsWith("examples-")) { + out() << " <li><a href=\"all-examples.html\">Examples</a></li>"; + out() << " <li><a href=\"" << fn->name() << "\">" << title + << "</a></li>"; + } + else if (fn->name() == QString("namespaces.html")) { + out() << " <li><a href=\"namespaces.html\">All Namespaces</a></li>"; + } + else { + out() << " <li><a href=\"" << fn->name() << "\">" << title + << "</a></li>"; + } + } + else if (node->subType() == Node::QmlClass) { + out() << " <li><a href=\"qdeclarativeelements.html\">QML Elements</a></li>"; + out() << " <li><a href=\"" << fn->name() << "\">" << title + << "</a></li>"; + } + else if (node->subType() == Node::Example) { + out() << " <li><a href=\"all-examples.html\">Examples</a></li>"; + QStringList sl = fn->name().split('/'); + QString name = "examples-" + sl.at(0) + ".html"; + QString t = CodeParser::titleFromName(name); + out() << " <li><a href=\"" << name << "\">" + << t << "</a></li>"; + out() << " <li><a href=\"" << sl.at(0) + << "-" << sl.at(sl.size()-1) << ".html\">" + << title << "</a></li>"; + } + } + else if (node->type() == Node::Namespace) { + const NamespaceNode* nsn = static_cast<const NamespaceNode*>(node); + out() << " <li><a href=\"namespaces.html\">All Namespaces</a></li>"; + out() << " <li><a href=\"" << fileName(nsn) << "\">" << title + << "</a></li>"; + } +} + +void DitaXmlGenerator::generateHeader(const QString& title, + const Node *node, + CodeMarker *marker) +{ + out() << QString("<?xml version=\"1.0\" encoding=\"%1\"?>\n").arg(outputEncoding); + out() << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"; + out() << QString("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"%1\" lang=\"%1\">\n").arg(naturalLanguage); + out() << "<head>\n"; + out() << " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n"; + QString shortVersion; + shortVersion = project + " " + shortVersion + ": "; + if (node && !node->doc().location().isEmpty()) + out() << "<!-- " << node->doc().location().fileName() << " -->\n"; + + shortVersion = myTree->version(); + if (shortVersion.count(QChar('.')) == 2) + shortVersion.truncate(shortVersion.lastIndexOf(QChar('.'))); + if (!shortVersion.isEmpty()) { + if (project == "QSA") + shortVersion = "QSA " + shortVersion + ": "; + else + shortVersion = "Qt " + shortVersion + ": "; + } + + out() << " <title>" << shortVersion << protectEnc(title) << "</title>\n"; + + out() << " <!--[if IE]>"; + out() << "<meta name=\"MSSmartTagsPreventParsing\" content=\"true\">"; + out() << "<meta http-equiv=\"imagetoolbar\" content=\"no\">"; + out() << "<![endif]-->"; + out() << "<!--[if lt IE 7]>"; + out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie6.css\">"; + out() << "<![endif]-->"; + out() << "<!--[if IE 7]>"; + out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie7.css\">"; + out() << "<![endif]-->"; + out() << "<!--[if IE 8]>"; + out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie8.css\">"; + out() << "<![endif]-->"; + + + //out() << " <title>Qt Reference Documentation</title>"; + out() << " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/style.css\" />\n"; + out() << " <script src=\"scripts/jquery.js\" type=\"text/javascript\"></script>\n"; + out() << " <script src=\"scripts/functions.js\" type=\"text/javascript\"></script>\n"; + out() << "</head>\n"; + + if (offlineDocs) + out() << "<body class=\"offline\" onload=\"CheckEmptyAndLoadList();\">\n"; + else + out() << "<body class=\"\" onload=\"CheckEmptyAndLoadList();\">\n"; + +#ifdef GENERATE_MAC_REFS + if (mainPage) + generateMacRef(node, marker); +#endif + out() << QString(postHeader).replace("\\" + COMMAND_VERSION, myTree->version()); + generateBreadCrumbs(title,node,marker); + out() << QString(postPostHeader).replace("\\" + COMMAND_VERSION, myTree->version()); + +#if 0 // Removed for new docf format. MWS + if (node && !node->links().empty()) + out() << "<p>\n" << navigationLinks << "</p>\n"; +#endif +} + +void DitaXmlGenerator::generateTitle(const QString& title, + const Text &subTitle, + SubTitleSize subTitleSize, + const Node *relative, + CodeMarker *marker) +{ + if (!title.isEmpty()) + out() << "<h1 class=\"title\">" << protectEnc(title) << "</h1>\n"; + if (!subTitle.isEmpty()) { + out() << "<span"; + if (subTitleSize == SmallSubTitle) + out() << " class=\"small-subtitle\">"; + else + out() << " class=\"subtitle\">"; + generateText(subTitle, relative, marker); + out() << "</span>\n"; + } +} + +void DitaXmlGenerator::generateFooter(const Node *node) +{ + if (node && !node->links().empty()) + out() << "<p>\n" << navigationLinks << "</p>\n"; + + out() << QString(footer).replace("\\" + COMMAND_VERSION, myTree->version()) + << QString(address).replace("\\" + COMMAND_VERSION, myTree->version()); + out() << " <script src=\"scripts/functions.js\" type=\"text/javascript\"></script>\n"; + out() << "</body>\n"; + out() << "</html>\n"; +} + +void DitaXmlGenerator::generateBrief(const Node *node, CodeMarker *marker, + const Node *relative) +{ + Text brief = node->doc().briefText(); + if (!brief.isEmpty()) { + out() << "<p>"; + generateText(brief, node, marker); + if (!relative || node == relative) + out() << " <a href=\"#"; + else + out() << " <a href=\"" << linkForNode(node, relative) << "#"; + out() << registerRef("details") << "\">More...</a></p>\n"; + } +} + +void DitaXmlGenerator::generateIncludes(const InnerNode *inner, CodeMarker *marker) +{ + if (!inner->includes().isEmpty()) { + out() << "<pre class=\"highlightedCode\">" + << trimmedTrailing(highlightedCode(indent(codeIndent, + marker->markedUpIncludes(inner->includes())), + marker,inner)) + << "</pre>"; + } +} + +/*! + Generates a table of contents begining at \a node. + */ +void DitaXmlGenerator::generateTableOfContents(const Node *node, + CodeMarker *marker, + Doc::SectioningUnit sectioningUnit, + int numColumns, + const Node *relative) + +{ + return; + if (!node->doc().hasTableOfContents()) + return; + QList<Atom *> toc = node->doc().tableOfContents(); + if (toc.isEmpty()) + return; + + QString nodeName = ""; + if (node != relative) + nodeName = node->name(); + + QStringList sectionNumber; + int columnSize = 0; + + QString tdTag; + if (numColumns > 1) { + tdTag = "<td>"; /* width=\"" + QString::number((100 + numColumns - 1) / numColumns) + "%\">";*/ + out() << "<table class=\"toc\">\n<tr class=\"topAlign\">" + << tdTag << "\n"; + } + + // disable nested links in table of contents + inContents = true; + inLink = true; + + for (int i = 0; i < toc.size(); ++i) { + Atom *atom = toc.at(i); + + int nextLevel = atom->string().toInt(); + if (nextLevel > (int)sectioningUnit) + continue; + + if (sectionNumber.size() < nextLevel) { + do { + out() << "<ul>"; + sectionNumber.append("1"); + } while (sectionNumber.size() < nextLevel); + } + else { + while (sectionNumber.size() > nextLevel) { + out() << "</ul>\n"; + sectionNumber.removeLast(); + } + sectionNumber.last() = QString::number(sectionNumber.last().toInt() + 1); + } + int numAtoms; + Text headingText = Text::sectionHeading(atom); + + if (sectionNumber.size() == 1 && columnSize > toc.size() / numColumns) { + out() << "</ul></td>" << tdTag << "<ul>\n"; + columnSize = 0; + } + out() << "<li>"; + out() << "<a href=\"" + << nodeName + << "#" + << Doc::canonicalTitle(headingText.toString()) + << "\">"; + generateAtomList(headingText.firstAtom(), node, marker, true, numAtoms); + out() << "</a></li>\n"; + + ++columnSize; + } + while (!sectionNumber.isEmpty()) { + out() << "</ul>\n"; + sectionNumber.removeLast(); + } + + if (numColumns > 1) + out() << "</td></tr></table>\n"; + + inContents = false; + inLink = false; +} + +/*! + Revised for the new doc format. + Generates a table of contents begining at \a node. + */ +void DitaXmlGenerator::generateTableOfContents(const Node *node, + CodeMarker *marker, + QList<Section>* sections) +{ + QList<Atom*> toc; + if (node->doc().hasTableOfContents()) + toc = node->doc().tableOfContents(); + if (toc.isEmpty() && !sections && (node->subType() != Node::Module)) + return; + + QStringList sectionNumber; + int detailsBase = 0; + + // disable nested links in table of contents + inContents = true; + inLink = true; + + out() << "<div class=\"toc\">\n"; + out() << "<h3>Contents</h3>\n"; + sectionNumber.append("1"); + out() << "<ul>\n"; + + if (node->subType() == Node::Module) { + if (moduleNamespaceMap.contains(node->name())) { + out() << "<li class=\"level" + << sectionNumber.size() + << "\"><a href=\"#" + << registerRef("namespaces") + << "\">Namespaces</a></li>\n"; + } + if (moduleClassMap.contains(node->name())) { + out() << "<li class=\"level" + << sectionNumber.size() + << "\"><a href=\"#" + << registerRef("classes") + << "\">Classes</a></li>\n"; + } + out() << "<li class=\"level" + << sectionNumber.size() + << "\"><a href=\"#" + << registerRef("details") + << "\">Detailed Description</a></li>\n"; + for (int i = 0; i < toc.size(); ++i) { + if (toc.at(i)->string().toInt() == 1) { + detailsBase = 1; + break; + } + } + } + else if (sections && (node->type() == Node::Class)) { + QList<Section>::ConstIterator s = sections->begin(); + while (s != sections->end()) { + if (!s->members.isEmpty() || !s->reimpMembers.isEmpty()) { + out() << "<li class=\"level" + << sectionNumber.size() + << "\"><a href=\"#" + << registerRef((*s).pluralMember) + << "\">" << (*s).name + << "</a></li>\n"; + } + ++s; + } + out() << "<li class=\"level" + << sectionNumber.size() + << "\"><a href=\"#" + << registerRef("details") + << "\">Detailed Description</a></li>\n"; + for (int i = 0; i < toc.size(); ++i) { + if (toc.at(i)->string().toInt() == 1) { + detailsBase = 1; + break; + } + } + } + + for (int i = 0; i < toc.size(); ++i) { + Atom *atom = toc.at(i); + int nextLevel = atom->string().toInt() + detailsBase; + if (sectionNumber.size() < nextLevel) { + do { + sectionNumber.append("1"); + } while (sectionNumber.size() < nextLevel); + } + else { + while (sectionNumber.size() > nextLevel) { + sectionNumber.removeLast(); + } + sectionNumber.last() = QString::number(sectionNumber.last().toInt() + 1); + } + int numAtoms; + Text headingText = Text::sectionHeading(atom); + QString s = headingText.toString(); + out() << "<li class=\"level" + << sectionNumber.size() + << "\">"; + out() << "<a href=\"" + << "#" + << Doc::canonicalTitle(s) + << "\">"; + generateAtomList(headingText.firstAtom(), node, marker, true, numAtoms); + out() << "</a></li>\n"; + } + while (!sectionNumber.isEmpty()) { + sectionNumber.removeLast(); + } + out() << "</ul>\n"; + out() << "</div>\n"; + inContents = false; + inLink = false; +} + +#if 0 +void DitaXmlGenerator::generateNavigationBar(const NavigationBar& bar, + const Node *node, + CodeMarker *marker) +{ + if (bar.prev.begin() != 0 || bar.current.begin() != 0 || + bar.next.begin() != 0) { + out() << "<p class=\"rightAlign\">"; + if (bar.prev.begin() != 0) { +#if 0 + out() << "[<a href=\"" << section.previousBaseName() + << ".html\">Prev: "; + generateText(section.previousHeading(), node, marker); + out() << "</a>]\n"; +#endif + } + if (bar.current.begin() != 0) { + out() << "[<a href=\"" << "home" + << ".html\">Home</a>]\n"; + } + if (bar.next.begin() != 0) { + out() << "[<a href=\"" << fileBase(node, bar.next) + << ".html\">Next: "; + generateText(Text::sectionHeading(bar.next.begin()), node, marker); + out() << "</a>]\n"; + } + out() << "</p>\n"; + } +} +#endif + +QString DitaXmlGenerator::generateListOfAllMemberFile(const InnerNode *inner, + CodeMarker *marker) +{ + QList<Section> sections; + QList<Section>::ConstIterator s; + + sections = marker->sections(inner, + CodeMarker::SeparateList, + CodeMarker::Okay); + if (sections.isEmpty()) + return QString(); + + QString fileName = fileBase(inner) + "-members." + fileExtension(inner); + beginSubPage(inner->location(), fileName); + QString title = "List of All Members for " + inner->name(); + generateHeader(title, inner, marker); + generateTitle(title, Text(), SmallSubTitle, inner, marker); + out() << "<p>This is the complete list of members for "; + generateFullName(inner, 0, marker); + out() << ", including inherited members.</p>\n"; + + Section section = sections.first(); + generateSectionList(section, 0, marker, CodeMarker::SeparateList); + + generateFooter(); + endSubPage(); + return fileName; +} + +QString DitaXmlGenerator::generateLowStatusMemberFile(const InnerNode *inner, + CodeMarker *marker, + CodeMarker::Status status) +{ + QList<Section> sections = marker->sections(inner, + CodeMarker::Summary, + status); + QMutableListIterator<Section> j(sections); + while (j.hasNext()) { + if (j.next().members.size() == 0) + j.remove(); + } + if (sections.isEmpty()) + return QString(); + + int i; + + QString title; + QString fileName; + + if (status == CodeMarker::Compat) { + title = "Qt 3 Support Members for " + inner->name(); + fileName = fileBase(inner) + "-qt3." + fileExtension(inner); + } + else { + title = "Obsolete Members for " + inner->name(); + fileName = fileBase(inner) + "-obsolete." + fileExtension(inner); + } + + beginSubPage(inner->location(), fileName); + generateHeader(title, inner, marker); + generateTitle(title, Text(), SmallSubTitle, inner, marker); + + if (status == CodeMarker::Compat) { + out() << "<p><b>The following class members are part of the " + "<a href=\"qt3support.html\">Qt 3 support layer</a>.</b> " + "They are provided to help you port old code to Qt 4. We advise against " + "using them in new code.</p>\n"; + } + else { + out() << "<p><b>The following class members are obsolete.</b> " + << "They are provided to keep old source code working. " + << "We strongly advise against using them in new code.</p>\n"; + } + + out() << "<p><ul><li><a href=\"" + << linkForNode(inner, 0) << "\">" + << protectEnc(inner->name()) + << " class reference</a></li></ul></p>\n"; + + for (i = 0; i < sections.size(); ++i) { + out() << "<h2>" << protectEnc(sections.at(i).name) << "</h2>\n"; + generateSectionList(sections.at(i), inner, marker, CodeMarker::Summary); + } + + sections = marker->sections(inner, CodeMarker::Detailed, status); + for (i = 0; i < sections.size(); ++i) { + out() << "<hr />\n"; + out() << "<h2>" << protectEnc(sections.at(i).name) << "</h2>\n"; + + NodeList::ConstIterator m = sections.at(i).members.begin(); + while (m != sections.at(i).members.end()) { + if ((*m)->access() != Node::Private) + generateDetailedMember(*m, inner, marker); + ++m; + } + } + + generateFooter(); + endSubPage(); + return fileName; +} + +void DitaXmlGenerator::generateClassHierarchy(const Node *relative, + CodeMarker *marker, + const QMap<QString,const Node*> &classMap) +{ + if (classMap.isEmpty()) + return; + + NodeMap topLevel; + NodeMap::ConstIterator c = classMap.begin(); + while (c != classMap.end()) { + const ClassNode *classe = static_cast<const ClassNode *>(*c); + if (classe->baseClasses().isEmpty()) + topLevel.insert(classe->name(), classe); + ++c; + } + + QStack<NodeMap > stack; + stack.push(topLevel); + + out() << "<ul>\n"; + while (!stack.isEmpty()) { + if (stack.top().isEmpty()) { + stack.pop(); + out() << "</ul>\n"; + } + else { + const ClassNode *child = + static_cast<const ClassNode *>(*stack.top().begin()); + out() << "<li>"; + generateFullName(child, relative, marker); + out() << "</li>\n"; + stack.top().erase(stack.top().begin()); + + NodeMap newTop; + foreach (const RelatedClass &d, child->derivedClasses()) { + if (d.access != Node::Private) + newTop.insert(d.node->name(), d.node); + } + if (!newTop.isEmpty()) { + stack.push(newTop); + out() << "<ul>\n"; + } + } + } +} + +void DitaXmlGenerator::generateAnnotatedList(const Node *relative, + CodeMarker *marker, + const NodeMap &nodeMap) +{ + out() << "<table class=\"annotated\">\n"; + + int row = 0; + foreach (const QString &name, nodeMap.keys()) { + const Node *node = nodeMap[name]; + + if (node->status() == Node::Obsolete) + continue; + + if (++row % 2 == 1) + out() << "<tr class=\"odd topAlign\">"; + else + out() << "<tr class=\"even topAlign\">"; + out() << "<td><p>"; + generateFullName(node, relative, marker); + out() << "</p></td>"; + + if (!(node->type() == Node::Fake)) { + Text brief = node->doc().trimmedBriefText(name); + if (!brief.isEmpty()) { + out() << "<td><p>"; + generateText(brief, node, marker); + out() << "</p></td>"; + } + } + else { + out() << "<td><p>"; + out() << protectEnc(node->doc().briefText().toString()); + out() << "</p></td>"; + } + out() << "</tr>\n"; + } + out() << "</table>\n"; +} + +/*! + This function finds the common prefix of the names of all + the classes in \a classMap and then generates a compact + list of the class names alphabetized on the part of the + name not including the common prefix. You can tell the + function to use \a comonPrefix as the common prefix, but + normally you let it figure it out itself by looking at + the name of the first and last classes in \a classMap. + */ +void DitaXmlGenerator::generateCompactList(const Node *relative, + CodeMarker *marker, + const NodeMap &classMap, + bool includeAlphabet, + QString commonPrefix) +{ + const int NumParagraphs = 37; // '0' to '9', 'A' to 'Z', '_' + + if (classMap.isEmpty()) + return; + + /* + If commonPrefix is not empty, then the caller knows what + the common prefix is and has passed it in, so just use that + one. + */ + int commonPrefixLen = commonPrefix.length(); + if (commonPrefixLen == 0) { + QString first; + QString last; + + /* + The caller didn't pass in a common prefix, so get the common + prefix by looking at the class names of the first and last + classes in the class map. Discard any namespace names and + just use the bare class names. For Qt, the prefix is "Q". + + Note that the algorithm used here to derive the common prefix + from the first and last classes in alphabetical order (QAccel + and QXtWidget in Qt 2.1), fails if either class name does not + begin with Q. + */ + + NodeMap::const_iterator iter = classMap.begin(); + while (iter != classMap.end()) { + if (!iter.key().contains("::")) { + first = iter.key(); + break; + } + ++iter; + } + + if (first.isEmpty()) + first = classMap.begin().key(); + + iter = classMap.end(); + while (iter != classMap.begin()) { + --iter; + if (!iter.key().contains("::")) { + last = iter.key(); + break; + } + } + + if (last.isEmpty()) + last = classMap.begin().key(); + + if (classMap.size() > 1) { + while (commonPrefixLen < first.length() + 1 && + commonPrefixLen < last.length() + 1 && + first[commonPrefixLen] == last[commonPrefixLen]) + ++commonPrefixLen; + } + + commonPrefix = first.left(commonPrefixLen); + } + + /* + Divide the data into 37 paragraphs: 0, ..., 9, A, ..., Z, + underscore (_). QAccel will fall in paragraph 10 (A) and + QXtWidget in paragraph 33 (X). This is the only place where we + assume that NumParagraphs is 37. Each paragraph is a NodeMap. + */ + NodeMap paragraph[NumParagraphs+1]; + QString paragraphName[NumParagraphs+1]; + QSet<char> usedParagraphNames; + + NodeMap::ConstIterator c = classMap.begin(); + while (c != classMap.end()) { + QStringList pieces = c.key().split("::"); + QString key; + int idx = commonPrefixLen; + if (!pieces.last().startsWith(commonPrefix)) + idx = 0; + if (pieces.size() == 1) + key = pieces.last().mid(idx).toLower(); + else + key = pieces.last().toLower(); + + int paragraphNr = NumParagraphs - 1; + + if (key[0].digitValue() != -1) { + paragraphNr = key[0].digitValue(); + } + else if (key[0] >= QLatin1Char('a') && key[0] <= QLatin1Char('z')) { + paragraphNr = 10 + key[0].unicode() - 'a'; + } + + paragraphName[paragraphNr] = key[0].toUpper(); + usedParagraphNames.insert(key[0].toLower().cell()); + paragraph[paragraphNr].insert(key, c.value()); + ++c; + } + + /* + Each paragraph j has a size: paragraph[j].count(). In the + discussion, we will assume paragraphs 0 to 5 will have sizes + 3, 1, 4, 1, 5, 9. + + We now want to compute the paragraph offset. Paragraphs 0 to 6 + start at offsets 0, 3, 4, 8, 9, 14, 23. + */ + int paragraphOffset[NumParagraphs + 1]; // 37 + 1 + paragraphOffset[0] = 0; + for (int i=0; i<NumParagraphs; i++) // i = 0..36 + paragraphOffset[i+1] = paragraphOffset[i] + paragraph[i].count(); + + int curParNr = 0; + int curParOffset = 0; + + /* + Output the alphabet as a row of links. + */ + if (includeAlphabet) { + out() << "<p class=\"centerAlign functionIndex\"><b>"; + for (int i = 0; i < 26; i++) { + QChar ch('a' + i); + if (usedParagraphNames.contains(char('a' + i))) + out() << QString("<a href=\"#%1\">%2</a> ").arg(ch).arg(ch.toUpper()); + } + out() << "</b></p>\n"; + } + + /* + Output a <div> element to contain all the <dl> elements. + */ + out() << "<div class=\"flowListDiv\">\n"; + + for (int i=0; i<classMap.count()-1; i++) { + while ((curParNr < NumParagraphs) && + (curParOffset == paragraph[curParNr].count())) { + ++curParNr; + curParOffset = 0; + } + + /* + Starting a new paragraph means starting a new <dl>. + */ + if (curParOffset == 0) { + if (i > 0) + out() << "</dl>\n"; + if (++numTableRows % 2 == 1) + out() << "<dl class=\"flowList odd\">"; + else + out() << "<dl class=\"flowList even\">"; + out() << "<dt class=\"alphaChar\">"; + if (includeAlphabet) { + QChar c = paragraphName[curParNr][0].toLower(); + out() << QString("<a name=\"%1\"></a>").arg(c); + } + out() << "<b>" + << paragraphName[curParNr] + << "</b>"; + out() << "</dt>\n"; + } + + /* + Output a <dd> for the current offset in the current paragraph. + */ + out() << "<dd>"; + if ((curParNr < NumParagraphs) && + !paragraphName[curParNr].isEmpty()) { + NodeMap::Iterator it; + it = paragraph[curParNr].begin(); + for (int i=0; i<curParOffset; i++) + ++it; + + /* + Previously, we used generateFullName() for this, but we + require some special formatting. + */ + out() << "<a href=\"" << linkForNode(it.value(), relative) << "\">"; + + QStringList pieces; + if (it.value()->subType() == Node::QmlClass) + pieces << it.value()->name(); + else + pieces = fullName(it.value(), relative, marker).split("::"); + out() << protectEnc(pieces.last()); + out() << "</a>"; + if (pieces.size() > 1) { + out() << " ("; + generateFullName(it.value()->parent(), relative, marker); + out() << ")"; + } + } + out() << "</dd>\n"; + curParOffset++; + } + out() << "</dl>\n"; + out() << "</div>\n"; +} + +void DitaXmlGenerator::generateFunctionIndex(const Node *relative, + CodeMarker *marker) +{ + out() << "<p class=\"centerAlign functionIndex\"><b>"; + for (int i = 0; i < 26; i++) { + QChar ch('a' + i); + out() << QString("<a href=\"#%1\">%2</a> ").arg(ch).arg(ch.toUpper()); + } + out() << "</b></p>\n"; + + char nextLetter = 'a'; + char currentLetter; + +#if 1 + out() << "<ul>\n"; +#endif + QMap<QString, NodeMap >::ConstIterator f = funcIndex.begin(); + while (f != funcIndex.end()) { +#if 1 + out() << "<li>"; +#else + out() << "<p>"; +#endif + out() << protectEnc(f.key()) << ":"; + + currentLetter = f.key()[0].unicode(); + while (islower(currentLetter) && currentLetter >= nextLetter) { + out() << QString("<a name=\"%1\"></a>").arg(nextLetter); + nextLetter++; + } + + NodeMap::ConstIterator s = (*f).begin(); + while (s != (*f).end()) { + out() << " "; + generateFullName((*s)->parent(), relative, marker, *s); + ++s; + } +#if 1 + out() << "</li>"; +#else + out() << "</p>"; +#endif + out() << "\n"; + ++f; + } +#if 1 + out() << "</ul>\n"; +#endif +} + +void DitaXmlGenerator::generateLegaleseList(const Node *relative, + CodeMarker *marker) +{ + QMap<Text, const Node *>::ConstIterator it = legaleseTexts.begin(); + while (it != legaleseTexts.end()) { + Text text = it.key(); + out() << "<hr />\n"; + generateText(text, relative, marker); + out() << "<ul>\n"; + do { + out() << "<li>"; + generateFullName(it.value(), relative, marker); + out() << "</li>\n"; + ++it; + } while (it != legaleseTexts.end() && it.key() == text); + out() << "</ul>\n"; + } +} + +/*void DitaXmlGenerator::generateSynopsis(const Node *node, + const Node *relative, + CodeMarker *marker, + CodeMarker::SynopsisStyle style) +{ + QString marked = marker->markedUpSynopsis(node, relative, style); + QRegExp templateTag("(<[^@>]*>)"); + if (marked.indexOf(templateTag) != -1) { + QString contents = protectEnc(marked.mid(templateTag.pos(1), + templateTag.cap(1).length())); + marked.replace(templateTag.pos(1), templateTag.cap(1).length(), + contents); + } + marked.replace(QRegExp("<@param>([a-z]+)_([1-9n])</@param>"), + "<i>\\1<sub>\\2</sub></i>"); + marked.replace("<@param>", "<i>"); + marked.replace("</@param>", "</i>"); + + if (style == CodeMarker::Summary) + marked.replace("@name>", "b>"); + + if (style == CodeMarker::SeparateList) { + QRegExp extraRegExp("<@extra>.*</@extra>"); + extraRegExp.setMinimal(true); + marked.replace(extraRegExp, ""); + } + else { + marked.replace("<@extra>", " <tt>"); + marked.replace("</@extra>", "</tt>"); + } + + if (style != CodeMarker::Detailed) { + marked.replace("<@type>", ""); + marked.replace("</@type>", ""); + } + out() << highlightedCode(marked, marker, relative); +}*/ + +#ifdef QDOC_QML +void DitaXmlGenerator::generateQmlItem(const Node *node, + const Node *relative, + CodeMarker *marker, + bool summary) +{ + QString marked = marker->markedUpQmlItem(node,summary); + QRegExp templateTag("(<[^@>]*>)"); + if (marked.indexOf(templateTag) != -1) { + QString contents = protectEnc(marked.mid(templateTag.pos(1), + templateTag.cap(1).length())); + marked.replace(templateTag.pos(1), templateTag.cap(1).length(), + contents); + } + marked.replace(QRegExp("<@param>([a-z]+)_([1-9n])</@param>"), + "<i>\\1<sub>\\2</sub></i>"); + marked.replace("<@param>", "<i>"); + marked.replace("</@param>", "</i>"); + + if (summary) + marked.replace("@name>", "b>"); + + marked.replace("<@extra>", "<tt>"); + marked.replace("</@extra>", "</tt>"); + + if (summary) { + marked.replace("<@type>", ""); + marked.replace("</@type>", ""); + } + out() << highlightedCode(marked, marker, relative); +} +#endif + +void DitaXmlGenerator::generateOverviewList(const Node *relative, CodeMarker * /* marker */) +{ + QMap<const FakeNode *, QMap<QString, FakeNode *> > fakeNodeMap; + QMap<QString, const FakeNode *> groupTitlesMap; + QMap<QString, FakeNode *> uncategorizedNodeMap; + QRegExp singleDigit("\\b([0-9])\\b"); + + const NodeList children = myTree->root()->childNodes(); + foreach (Node *child, children) { + if (child->type() == Node::Fake && child != relative) { + FakeNode *fakeNode = static_cast<FakeNode *>(child); + + // Check whether the page is part of a group or is the group + // definition page. + QString group; + bool isGroupPage = false; + if (fakeNode->doc().metaCommandsUsed().contains("group")) { + group = fakeNode->doc().metaCommandArgs("group")[0]; + isGroupPage = true; + } + + // there are too many examples; they would clutter the list + if (fakeNode->subType() == Node::Example) + continue; + + // not interested either in individual (Qt Designer etc.) manual chapters + if (fakeNode->links().contains(Node::ContentsLink)) + continue; + + // Discard external nodes. + if (fakeNode->subType() == Node::ExternalPage) + continue; + + QString sortKey = fakeNode->fullTitle().toLower(); + if (sortKey.startsWith("the ")) + sortKey.remove(0, 4); + sortKey.replace(singleDigit, "0\\1"); + + if (!group.isEmpty()) { + if (isGroupPage) { + // If we encounter a group definition page, we add all + // the pages in that group to the list for that group. + foreach (Node *member, fakeNode->groupMembers()) { + if (member->type() != Node::Fake) + continue; + FakeNode *page = static_cast<FakeNode *>(member); + if (page) { + QString sortKey = page->fullTitle().toLower(); + if (sortKey.startsWith("the ")) + sortKey.remove(0, 4); + sortKey.replace(singleDigit, "0\\1"); + fakeNodeMap[const_cast<const FakeNode *>(fakeNode)].insert(sortKey, page); + groupTitlesMap[fakeNode->fullTitle()] = const_cast<const FakeNode *>(fakeNode); + } + } + } + else if (!isGroupPage) { + // If we encounter a page that belongs to a group then + // we add that page to the list for that group. + const FakeNode *groupNode = static_cast<const FakeNode *>(myTree->root()->findNode(group, Node::Fake)); + if (groupNode) + fakeNodeMap[groupNode].insert(sortKey, fakeNode); + //else + // uncategorizedNodeMap.insert(sortKey, fakeNode); + }// else + // uncategorizedNodeMap.insert(sortKey, fakeNode); + }// else + // uncategorizedNodeMap.insert(sortKey, fakeNode); + } + } + + // We now list all the pages found that belong to groups. + // If only certain pages were found for a group, but the definition page + // for that group wasn't listed, the list of pages will be intentionally + // incomplete. However, if the group definition page was listed, all the + // pages in that group are listed for completeness. + + if (!fakeNodeMap.isEmpty()) { + foreach (const QString &groupTitle, groupTitlesMap.keys()) { + const FakeNode *groupNode = groupTitlesMap[groupTitle]; + out() << QString("<h3><a href=\"%1\">%2</a></h3>\n").arg( + linkForNode(groupNode, relative)).arg( + protectEnc(groupNode->fullTitle())); + + if (fakeNodeMap[groupNode].count() == 0) + continue; + + out() << "<ul>\n"; + + foreach (const FakeNode *fakeNode, fakeNodeMap[groupNode]) { + QString title = fakeNode->fullTitle(); + if (title.startsWith("The ")) + title.remove(0, 4); + out() << "<li><a href=\"" << linkForNode(fakeNode, relative) << "\">" + << protectEnc(title) << "</a></li>\n"; + } + out() << "</ul>\n"; + } + } + + if (!uncategorizedNodeMap.isEmpty()) { + out() << QString("<h3>Miscellaneous</h3>\n"); + out() << "<ul>\n"; + foreach (const FakeNode *fakeNode, uncategorizedNodeMap) { + QString title = fakeNode->fullTitle(); + if (title.startsWith("The ")) + title.remove(0, 4); + out() << "<li><a href=\"" << linkForNode(fakeNode, relative) << "\">" + << protectEnc(title) << "</a></li>\n"; + } + out() << "</ul>\n"; + } +} + +#ifdef QDOC_NAME_ALIGNMENT +void DitaXmlGenerator::generateSection(const NodeList& nl, + const Node *relative, + CodeMarker *marker, + CodeMarker::SynopsisStyle style) +{ + bool name_alignment = true; + if (!nl.isEmpty()) { + bool twoColumn = false; + if (style == CodeMarker::SeparateList) { + name_alignment = false; + twoColumn = (nl.count() >= 16); + } + else if (nl.first()->type() == Node::Property) { + twoColumn = (nl.count() >= 5); + name_alignment = false; + } + if (name_alignment) { + out() << "<table class=\"alignedsummary\">\n"; + } + else { + if (twoColumn) + out() << "<table class=\"propsummary\">\n" + << "<tr><td class=\"topAlign\">"; + out() << "<ul>\n"; + } + + int i = 0; + NodeList::ConstIterator m = nl.begin(); + while (m != nl.end()) { + if ((*m)->access() == Node::Private) { + ++m; + continue; + } + + if (name_alignment) { + out() << "<tr><td class=\"memItemLeft rightAlign topAlign\"> "; + } + else { + if (twoColumn && i == (int) (nl.count() + 1) / 2) + out() << "</ul></td><td class=\"topAlign\"><ul>\n"; + out() << "<li class=\"fn\">"; + } + + generateSynopsis(*m, relative, marker, style, name_alignment); + if (name_alignment) + out() << "</td></tr>\n"; + else + out() << "</li>\n"; + i++; + ++m; + } + if (name_alignment) + out() << "</table>\n"; + else { + out() << "</ul>\n"; + if (twoColumn) + out() << "</td></tr>\n</table>\n"; + } + } +} + +void DitaXmlGenerator::generateSectionList(const Section& section, + const Node *relative, + CodeMarker *marker, + CodeMarker::SynopsisStyle style) +{ + bool name_alignment = true; + if (!section.members.isEmpty()) { + bool twoColumn = false; + if (style == CodeMarker::SeparateList) { + name_alignment = false; + twoColumn = (section.members.count() >= 16); + } + else if (section.members.first()->type() == Node::Property) { + twoColumn = (section.members.count() >= 5); + name_alignment = false; + } + if (name_alignment) { + out() << "<table class=\"alignedsummary\">\n"; + } + else { + if (twoColumn) + out() << "<table class=\"propsummary\">\n" + << "<tr><td class=\"topAlign\">"; + out() << "<ul>\n"; + } + + int i = 0; + NodeList::ConstIterator m = section.members.begin(); + while (m != section.members.end()) { + if ((*m)->access() == Node::Private) { + ++m; + continue; + } + + if (name_alignment) { + out() << "<tr><td class=\"memItemLeft topAlign rightAlign\"> "; + } + else { + if (twoColumn && i == (int) (section.members.count() + 1) / 2) + out() << "</ul></td><td class=\"topAlign\"><ul>\n"; + out() << "<li class=\"fn\">"; + } + + generateSynopsis(*m, relative, marker, style, name_alignment); + if (name_alignment) + out() << "</td></tr>\n"; + else + out() << "</li>\n"; + i++; + ++m; + } + if (name_alignment) + out() << "</table>\n"; + else { + out() << "</ul>\n"; + if (twoColumn) + out() << "</td></tr>\n</table>\n"; + } + } + + if (style == CodeMarker::Summary && !section.inherited.isEmpty()) { + out() << "<ul>\n"; + generateSectionInheritedList(section, relative, marker, name_alignment); + out() << "</ul>\n"; + } +} + +void DitaXmlGenerator::generateSectionInheritedList(const Section& section, + const Node *relative, + CodeMarker *marker, + bool nameAlignment) +{ + QList<QPair<ClassNode *, int> >::ConstIterator p = section.inherited.begin(); + while (p != section.inherited.end()) { + if (nameAlignment) + out() << "<li class=\"fn\">"; + else + out() << "<li class=\"fn\">"; + out() << (*p).second << " "; + if ((*p).second == 1) { + out() << section.singularMember; + } + else { + out() << section.pluralMember; + } + out() << " inherited from <a href=\"" << fileName((*p).first) + << "#" << DitaXmlGenerator::cleanRef(section.name.toLower()) << "\">" + << protectEnc(marker->plainFullName((*p).first, relative)) + << "</a></li>\n"; + ++p; + } +} + +void DitaXmlGenerator::generateSynopsis(const Node *node, + const Node *relative, + CodeMarker *marker, + CodeMarker::SynopsisStyle style, + bool nameAlignment) +{ + QString marked = marker->markedUpSynopsis(node, relative, style); + QRegExp templateTag("(<[^@>]*>)"); + if (marked.indexOf(templateTag) != -1) { + QString contents = protectEnc(marked.mid(templateTag.pos(1), + templateTag.cap(1).length())); + marked.replace(templateTag.pos(1), templateTag.cap(1).length(), + contents); + } + marked.replace(QRegExp("<@param>([a-z]+)_([1-9n])</@param>"), + "<i>\\1<sub>\\2</sub></i>"); + marked.replace("<@param>", "<i>"); + marked.replace("</@param>", "</i>"); + + if (style == CodeMarker::Summary) { + marked.replace("<@name>", ""); // was "<b>" + marked.replace("</@name>", ""); // was "</b>" + } + + if (style == CodeMarker::SeparateList) { + QRegExp extraRegExp("<@extra>.*</@extra>"); + extraRegExp.setMinimal(true); + marked.replace(extraRegExp, ""); + } else { + marked.replace("<@extra>", "<tt>"); + marked.replace("</@extra>", "</tt>"); + } + + if (style != CodeMarker::Detailed) { + marked.replace("<@type>", ""); + marked.replace("</@type>", ""); + } + out() << highlightedCode(marked, marker, relative, style, nameAlignment); +} + +QString DitaXmlGenerator::highlightedCode(const QString& markedCode, + CodeMarker *marker, + const Node *relative, + CodeMarker::SynopsisStyle , + bool nameAlignment) +{ + QString src = markedCode; + QString html; + QStringRef arg; + QStringRef par1; + + const QChar charLangle = '<'; + const QChar charAt = '@'; + + // replace all <@link> tags: "(<@link node=\"([^\"]+)\">).*(</@link>)" + static const QString linkTag("link"); + bool done = false; + for (int i = 0, n = src.size(); i < n;) { + if (src.at(i) == charLangle && src.at(i + 1).unicode() == '@') { + if (nameAlignment && !done) {// && (i != 0)) Why was this here? + html += "</td><td class=\"memItemRight bottomAlign\">"; + done = true; + } + i += 2; + if (parseArg(src, linkTag, &i, n, &arg, &par1)) { + html += "<b>"; + QString link = linkForNode( + CodeMarker::nodeForString(par1.toString()), relative); + addLink(link, arg, &html); + html += "</b>"; + } + else { + html += charLangle; + html += charAt; + } + } + else { + html += src.at(i++); + } + } + + + if (slow) { + // is this block ever used at all? + // replace all <@func> tags: "(<@func target=\"([^\"]*)\">)(.*)(</@func>)" + src = html; + html = QString(); + static const QString funcTag("func"); + for (int i = 0, n = src.size(); i < n;) { + if (src.at(i) == charLangle && src.at(i + 1) == charAt) { + i += 2; + if (parseArg(src, funcTag, &i, n, &arg, &par1)) { + QString link = linkForNode( + marker->resolveTarget(par1.toString(), + myTree, + relative), + relative); + addLink(link, arg, &html); + par1 = QStringRef(); + } + else { + html += charLangle; + html += charAt; + } + } + else { + html += src.at(i++); + } + } + } + + // replace all "(<@(type|headerfile|func)(?: +[^>]*)?>)(.*)(</@\\2>)" tags + src = html; + html = QString(); + static const QString typeTags[] = { "type", "headerfile", "func" }; + for (int i = 0, n = src.size(); i < n;) { + if (src.at(i) == charLangle && src.at(i + 1) == charAt) { + i += 2; + bool handled = false; + for (int k = 0; k != 3; ++k) { + if (parseArg(src, typeTags[k], &i, n, &arg, &par1)) { + par1 = QStringRef(); + QString link = linkForNode( + marker->resolveTarget(arg.toString(), myTree, relative), + relative); + addLink(link, arg, &html); + handled = true; + break; + } + } + if (!handled) { + html += charLangle; + html += charAt; + } + } + else { + html += src.at(i++); + } + } + + // replace all + // "<@comment>" -> "<span class=\"comment\">"; + // "<@preprocessor>" -> "<span class=\"preprocessor\">"; + // "<@string>" -> "<span class=\"string\">"; + // "<@char>" -> "<span class=\"char\">"; + // "</@(?:comment|preprocessor|string|char)>" -> "</span>" + src = html; + html = QString(); + static const QString spanTags[] = { + "<@comment>", "<span class=\"comment\">", + "<@preprocessor>", "<span class=\"preprocessor\">", + "<@string>", "<span class=\"string\">", + "<@char>", "<span class=\"char\">", + "</@comment>", "</span>", + "</@preprocessor>","</span>", + "</@string>", "</span>", + "</@char>", "</span>" + // "<@char>", "<font color=blue>", + // "</@char>", "</font>", + // "<@func>", "<font color=green>", + // "</@func>", "</font>", + // "<@id>", "<i>", + // "</@id>", "</i>", + // "<@keyword>", "<b>", + // "</@keyword>", "</b>", + // "<@number>", "<font color=yellow>", + // "</@number>", "</font>", + // "<@op>", "<b>", + // "</@op>", "</b>", + // "<@param>", "<i>", + // "</@param>", "</i>", + // "<@string>", "<font color=green>", + // "</@string>", "</font>", + }; + for (int i = 0, n = src.size(); i < n;) { + if (src.at(i) == charLangle) { + bool handled = false; + for (int k = 0; k != 8; ++k) { + const QString & tag = spanTags[2 * k]; + if (tag == QStringRef(&src, i, tag.length())) { + html += spanTags[2 * k + 1]; + i += tag.length(); + handled = true; + break; + } + } + if (!handled) { + ++i; + if (src.at(i) == charAt || + (src.at(i) == QLatin1Char('/') && src.at(i + 1) == charAt)) { + // drop 'our' unknown tags (the ones still containing '@') + while (i < n && src.at(i) != QLatin1Char('>')) + ++i; + ++i; + } + else { + // retain all others + html += charLangle; + } + } + } + else { + html += src.at(i); + ++i; + } + } + + return html; +} + +#else +void DitaXmlGenerator::generateSectionList(const Section& section, + const Node *relative, + CodeMarker *marker, + CodeMarker::SynopsisStyle style) +{ + if (!section.members.isEmpty()) { + bool twoColumn = false; + if (style == CodeMarker::SeparateList) { + twoColumn = (section.members.count() >= 16); + } + else if (section.members.first()->type() == Node::Property) { + twoColumn = (section.members.count() >= 5); + } + if (twoColumn) + out() << "<table class=\"generic\">\n"; + if (++numTableRows % 2 == 1) + out() << "<tr class=\"odd topAlign\">"; + else + out() << "<tr class=\"even topAlign\">"; + +// << "<tr><td class=\"topAlign\">"; + out() << "<ul>\n"; + + int i = 0; + NodeList::ConstIterator m = section.members.begin(); + while (m != section.members.end()) { + if ((*m)->access() == Node::Private) { + ++m; + continue; + } + + if (twoColumn && i == (int) (section.members.count() + 1) / 2) + out() << "</ul></td><td class=\"topAlign\"><ul>\n"; + + out() << "<li class=\"fn\">"; + if (style == CodeMarker::Accessors) + out() << "<b>"; + generateSynopsis(*m, relative, marker, style); + if (style == CodeMarker::Accessors) + out() << "</b>"; + out() << "</li>\n"; + i++; + ++m; + } + out() << "</ul>\n"; + if (twoColumn) + out() << "</td></tr>\n</table>\n"; + } + + if (style == CodeMarker::Summary && !section.inherited.isEmpty()) { + out() << "<ul>\n"; + generateSectionInheritedList(section, relative, marker); + out() << "</ul>\n"; + } +} + +void DitaXmlGenerator::generateSectionInheritedList(const Section& section, + const Node *relative, + CodeMarker *marker) +{ + QList<QPair<ClassNode *, int> >::ConstIterator p = section.inherited.begin(); + while (p != section.inherited.end()) { + out() << "<li class=\"fn\">"; + out() << (*p).second << " "; + if ((*p).second == 1) { + out() << section.singularMember; + } else { + out() << section.pluralMember; + } + out() << " inherited from <a href=\"" << fileName((*p).first) + << "#" << DitaXmlGenerator::cleanRef(section.name.toLower()) << "\">" + << protectEnc(marker->plainFullName((*p).first, relative)) + << "</a></li>\n"; + ++p; + } +} + +void DitaXmlGenerator::generateSynopsis(const Node *node, + const Node *relative, + CodeMarker *marker, + CodeMarker::SynopsisStyle style) +{ + QString marked = marker->markedUpSynopsis(node, relative, style); + QRegExp templateTag("(<[^@>]*>)"); + if (marked.indexOf(templateTag) != -1) { + QString contents = protectEnc(marked.mid(templateTag.pos(1), + templateTag.cap(1).length())); + marked.replace(templateTag.pos(1), templateTag.cap(1).length(), + contents); + } + marked.replace(QRegExp("<@param>([a-z]+)_([1-9n])</@param>"), "<i>\\1<sub>\\2</sub></i>"); + marked.replace("<@param>", "<i>"); + marked.replace("</@param>", "</i>"); + + if (style == CodeMarker::Summary) + marked.replace("@name>", "b>"); + + if (style == CodeMarker::SeparateList) { + QRegExp extraRegExp("<@extra>.*</@extra>"); + extraRegExp.setMinimal(true); + marked.replace(extraRegExp, ""); + } else { + marked.replace("<@extra>", "<tt>"); + marked.replace("</@extra>", "</tt>"); + } + + if (style != CodeMarker::Detailed) { + marked.replace("<@type>", ""); + marked.replace("</@type>", ""); + } + out() << highlightedCode(marked, marker, relative); +} + +QString DitaXmlGenerator::highlightedCode(const QString& markedCode, + CodeMarker *marker, + const Node *relative) +{ + QString src = markedCode; + QString html; + QStringRef arg; + QStringRef par1; + + const QChar charLangle = '<'; + const QChar charAt = '@'; + + // replace all <@link> tags: "(<@link node=\"([^\"]+)\">).*(</@link>)" + static const QString linkTag("link"); + for (int i = 0, n = src.size(); i < n;) { + if (src.at(i) == charLangle && src.at(i + 1) == charAt) { + i += 2; + if (parseArg(src, linkTag, &i, n, &arg, &par1)) { + const Node* node = CodeMarker::nodeForString(par1.toString()); + QString link = linkForNode(node, relative); + addLink(link, arg, &html); + } + else { + html += charLangle; + html += charAt; + } + } + else { + html += src.at(i++); + } + } + + if (slow) { + // is this block ever used at all? + // replace all <@func> tags: "(<@func target=\"([^\"]*)\">)(.*)(</@func>)" + src = html; + html = QString(); + static const QString funcTag("func"); + for (int i = 0, n = src.size(); i < n;) { + if (src.at(i) == charLangle && src.at(i + 1) == charAt) { + i += 2; + if (parseArg(src, funcTag, &i, n, &arg, &par1)) { + QString link = linkForNode( + marker->resolveTarget(par1.toString(), + myTree, + relative), + relative); + addLink(link, arg, &html); + par1 = QStringRef(); + } + else { + html += charLangle; + html += charAt; + } + } + else { + html += src.at(i++); + } + } + } + + // replace all "(<@(type|headerfile|func)(?: +[^>]*)?>)(.*)(</@\\2>)" tags + src = html; + html = QString(); + static const QString typeTags[] = { "type", "headerfile", "func" }; + for (int i = 0, n = src.size(); i < n;) { + if (src.at(i) == charLangle && src.at(i + 1) == charAt) { + i += 2; + bool handled = false; + for (int k = 0; k != 3; ++k) { + if (parseArg(src, typeTags[k], &i, n, &arg, &par1)) { + par1 = QStringRef(); + QString link = linkForNode( + marker->resolveTarget(arg.toString(), myTree, relative), + relative); + addLink(link, arg, &html); + handled = true; + break; + } + } + if (!handled) { + html += charLangle; + html += charAt; + } + } + else { + html += src.at(i++); + } + } + + // replace all + // "<@comment>" -> "<span class=\"comment\">"; + // "<@preprocessor>" -> "<span class=\"preprocessor\">"; + // "<@string>" -> "<span class=\"string\">"; + // "<@char>" -> "<span class=\"char\">"; + // "</@(?:comment|preprocessor|string|char)>" -> "</span>" + src = html; + html = QString(); + static const QString spanTags[] = { + "<@comment>", "<span class=\"comment\">", + "<@preprocessor>", "<span class=\"preprocessor\">", + "<@string>", "<span class=\"string\">", + "<@char>", "<span class=\"char\">", + "</@comment>", "</span>", + "</@preprocessor>","</span>", + "</@string>", "</span>", + "</@char>", "</span>" + // "<@char>", "<font color=blue>", + // "</@char>", "</font>", + // "<@func>", "<font color=green>", + // "</@func>", "</font>", + // "<@id>", "<i>", + // "</@id>", "</i>", + // "<@keyword>", "<b>", + // "</@keyword>", "</b>", + // "<@number>", "<font color=yellow>", + // "</@number>", "</font>", + // "<@op>", "<b>", + // "</@op>", "</b>", + // "<@param>", "<i>", + // "</@param>", "</i>", + // "<@string>", "<font color=green>", + // "</@string>", "</font>", + }; + for (int i = 0, n = src.size(); i < n;) { + if (src.at(i) == charLangle) { + bool handled = false; + for (int k = 0; k != 8; ++k) { + const QString & tag = spanTags[2 * k]; + if (tag == QStringRef(&src, i, tag.length())) { + html += spanTags[2 * k + 1]; + i += tag.length(); + handled = true; + break; + } + } + if (!handled) { + ++i; + if (src.at(i) == charAt || + (src.at(i) == QLatin1Char('/') && src.at(i + 1) == charAt)) { + // drop 'our' unknown tags (the ones still containing '@') + while (i < n && src.at(i) != QLatin1Char('>')) + ++i; + ++i; + } + else { + // retain all others + html += charLangle; + } + } + } + else { + html += src.at(i); + ++i; + } + } + + return html; +} +#endif + +void DitaXmlGenerator::generateLink(const Atom* atom, + const Node* /* relative */, + CodeMarker* marker) +{ + static QRegExp camelCase("[A-Z][A-Z][a-z]|[a-z][A-Z0-9]|_"); + + if (funcLeftParen.indexIn(atom->string()) != -1 && marker->recognizeLanguage("Cpp")) { + // hack for C++: move () outside of link + int k = funcLeftParen.pos(1); + out() << protectEnc(atom->string().left(k)); + if (link.isEmpty()) { + if (showBrokenLinks) + out() << "</i>"; + } else { + out() << "</a>"; + } + inLink = false; + out() << protectEnc(atom->string().mid(k)); + } else if (marker->recognizeLanguage("Java")) { + // hack for Java: remove () and use <tt> when appropriate + bool func = atom->string().endsWith("()"); + bool tt = (func || atom->string().contains(camelCase)); + if (tt) + out() << "<tt>"; + if (func) { + out() << protectEnc(atom->string().left(atom->string().length() - 2)); + } else { + out() << protectEnc(atom->string()); + } + out() << "</tt>"; + } else { + out() << protectEnc(atom->string()); + } +} + +QString DitaXmlGenerator::cleanRef(const QString& ref) +{ + QString clean; + + if (ref.isEmpty()) + return clean; + + clean.reserve(ref.size() + 20); + const QChar c = ref[0]; + const uint u = c.unicode(); + + if ((u >= 'a' && u <= 'z') || + (u >= 'A' && u <= 'Z') || + (u >= '0' && u <= '9')) { + clean += c; + } else if (u == '~') { + clean += "dtor."; + } else if (u == '_') { + clean += "underscore."; + } else { + clean += "A"; + } + + for (int i = 1; i < (int) ref.length(); i++) { + const QChar c = ref[i]; + const uint u = c.unicode(); + if ((u >= 'a' && u <= 'z') || + (u >= 'A' && u <= 'Z') || + (u >= '0' && u <= '9') || u == '-' || + u == '_' || u == ':' || u == '.') { + clean += c; + } else if (c.isSpace()) { + clean += "-"; + } else if (u == '!') { + clean += "-not"; + } else if (u == '&') { + clean += "-and"; + } else if (u == '<') { + clean += "-lt"; + } else if (u == '=') { + clean += "-eq"; + } else if (u == '>') { + clean += "-gt"; + } else if (u == '#') { + clean += "#"; + } else { + clean += "-"; + clean += QString::number((int)u, 16); + } + } + return clean; +} + +QString DitaXmlGenerator::registerRef(const QString& ref) +{ + QString clean = DitaXmlGenerator::cleanRef(ref); + + for (;;) { + QString& prevRef = refMap[clean.toLower()]; + if (prevRef.isEmpty()) { + prevRef = ref; + break; + } else if (prevRef == ref) { + break; + } + clean += "x"; + } + return clean; +} + +QString DitaXmlGenerator::protectEnc(const QString &string) +{ + return protect(string, outputEncoding); +} + +QString DitaXmlGenerator::protect(const QString &string, const QString &outputEncoding) +{ +#define APPEND(x) \ + if (html.isEmpty()) { \ + html = string; \ + html.truncate(i); \ + } \ + html += (x); + + QString html; + int n = string.length(); + + for (int i = 0; i < n; ++i) { + QChar ch = string.at(i); + + if (ch == QLatin1Char('&')) { + APPEND("&"); + } else if (ch == QLatin1Char('<')) { + APPEND("<"); + } else if (ch == QLatin1Char('>')) { + APPEND(">"); + } else if (ch == QLatin1Char('"')) { + APPEND("""); + } else if ((outputEncoding == "ISO-8859-1" && ch.unicode() > 0x007F) + || (ch == QLatin1Char('*') && i + 1 < n && string.at(i) == QLatin1Char('/')) + || (ch == QLatin1Char('.') && i > 2 && string.at(i - 2) == QLatin1Char('.'))) { + // we escape '*/' and the last dot in 'e.g.' and 'i.e.' for the Javadoc generator + APPEND("&#x"); + html += QString::number(ch.unicode(), 16); + html += QLatin1Char(';'); + } else { + if (!html.isEmpty()) + html += ch; + } + } + + if (!html.isEmpty()) + return html; + return string; + +#undef APPEND +} + +QString DitaXmlGenerator::fileBase(const Node *node) +{ + QString result; + + result = PageGenerator::fileBase(node); + + if (!node->isInnerNode()) { + switch (node->status()) { + case Node::Compat: + result += "-qt3"; + break; + case Node::Obsolete: + result += "-obsolete"; + break; + default: + ; + } + } + return result; +} + +#if 0 +QString DitaXmlGenerator::fileBase(const Node *node, + const SectionIterator& section) +{ + QStringList::ConstIterator s = section.sectionNumber().end(); + QStringList::ConstIterator b = section.baseNameStack().end(); + + QString suffix; + QString base = fileBase(node); + + while (s != section.sectionNumber().begin()) { + --s; + --b; + if (!(*b).isEmpty()) { + base = *b; + break; + } + suffix.prepend("-" + *s); + } + return base + suffix; +} +#endif + +QString DitaXmlGenerator::fileName(const Node *node) +{ + if (node->type() == Node::Fake) { + if (static_cast<const FakeNode *>(node)->subType() == Node::ExternalPage) + return node->name(); + if (static_cast<const FakeNode *>(node)->subType() == Node::Image) + return node->name(); + } + return PageGenerator::fileName(node); +} + +QString DitaXmlGenerator::refForNode(const Node *node) +{ + const FunctionNode *func; + const TypedefNode *typedeffe; + QString ref; + + switch (node->type()) { + case Node::Namespace: + case Node::Class: + default: + break; + case Node::Enum: + ref = node->name() + "-enum"; + break; + case Node::Typedef: + typedeffe = static_cast<const TypedefNode *>(node); + if (typedeffe->associatedEnum()) { + return refForNode(typedeffe->associatedEnum()); + } + else { + ref = node->name() + "-typedef"; + } + break; + case Node::Function: + func = static_cast<const FunctionNode *>(node); + if (func->associatedProperty()) { + return refForNode(func->associatedProperty()); + } + else { + ref = func->name(); + if (func->overloadNumber() != 1) + ref += "-" + QString::number(func->overloadNumber()); + } + break; +#ifdef QDOC_QML + case Node::Fake: + if (node->subType() != Node::QmlPropertyGroup) + break; + case Node::QmlProperty: +#endif + case Node::Property: + ref = node->name() + "-prop"; + break; +#ifdef QDOC_QML + case Node::QmlSignal: + ref = node->name() + "-signal"; + break; + case Node::QmlMethod: + ref = node->name() + "-method"; + break; +#endif + case Node::Variable: + ref = node->name() + "-var"; + break; + case Node::Target: + return protectEnc(node->name()); + } + return registerRef(ref); +} + +QString DitaXmlGenerator::linkForNode(const Node *node, const Node *relative) +{ + QString link; + QString fn; + QString ref; + + if (node == 0 || node == relative) + return QString(); + if (!node->url().isEmpty()) + return node->url(); + if (fileBase(node).isEmpty()) + return QString(); + if (node->access() == Node::Private) + return QString(); + + fn = fileName(node); +/* if (!node->url().isEmpty()) + return fn;*/ +#if 0 + // ### reintroduce this test, without breaking .dcf files + if (fn != outFileName()) +#endif + link += fn; + + if (!node->isInnerNode() || node->subType() == Node::QmlPropertyGroup) { + ref = refForNode(node); + if (relative && fn == fileName(relative) && ref == refForNode(relative)) + return QString(); + + link += "#"; + link += ref; + } + return link; +} + +QString DitaXmlGenerator::refForAtom(Atom *atom, const Node * /* node */) +{ + if (atom->type() == Atom::SectionLeft) { + return Doc::canonicalTitle(Text::sectionHeading(atom).toString()); + } + else if (atom->type() == Atom::Target) { + return Doc::canonicalTitle(atom->string()); + } + else { + return QString(); + } +} + +void DitaXmlGenerator::generateFullName(const Node *apparentNode, + const Node *relative, + CodeMarker *marker, + const Node *actualNode) +{ + if (actualNode == 0) + actualNode = apparentNode; + out() << "<a href=\"" << linkForNode(actualNode, relative); + if (true || relative == 0 || relative->status() != actualNode->status()) { + switch (actualNode->status()) { + case Node::Obsolete: + out() << "\" class=\"obsolete"; + break; + case Node::Compat: + out() << "\" class=\"compat"; + break; + default: + ; + } + } + out() << "\">"; + out() << protectEnc(fullName(apparentNode, relative, marker)); + out() << "</a>"; +} + +void DitaXmlGenerator::generateDetailedMember(const Node *node, + const InnerNode *relative, + CodeMarker *marker) +{ + const EnumNode *enume; + +#ifdef GENERATE_MAC_REFS + generateMacRef(node, marker); +#endif + if (node->type() == Node::Enum + && (enume = static_cast<const EnumNode *>(node))->flagsType()) { +#ifdef GENERATE_MAC_REFS + generateMacRef(enume->flagsType(), marker); +#endif + out() << "<h3 class=\"flags\">"; + out() << "<a name=\"" + refForNode(node) + "\"></a>"; + generateSynopsis(enume, relative, marker, CodeMarker::Detailed); + out() << "<br/>"; + generateSynopsis(enume->flagsType(), + relative, + marker, + CodeMarker::Detailed); + out() << "</h3>\n"; + } + else { + out() << "<h3 class=\"fn\">"; + out() << "<a name=\"" + refForNode(node) + "\"></a>"; + generateSynopsis(node, relative, marker, CodeMarker::Detailed); + out() << "</h3>\n"; + } + + generateStatus(node, marker); + generateBody(node, marker); + generateThreadSafeness(node, marker); + generateSince(node, marker); + + if (node->type() == Node::Property) { + const PropertyNode *property = static_cast<const PropertyNode *>(node); + Section section; + + section.members += property->getters(); + section.members += property->setters(); + section.members += property->resetters(); + + if (!section.members.isEmpty()) { + out() << "<p><b>Access functions:</b></p>\n"; + generateSectionList(section, node, marker, CodeMarker::Accessors); + } + + Section notifiers; + notifiers.members += property->notifiers(); + + if (!notifiers.members.isEmpty()) { + out() << "<p><b>Notifier signal:</b></p>\n"; + //out() << "<p>This signal is emitted when the property value is changed.</p>\n"; + generateSectionList(notifiers, node, marker, CodeMarker::Accessors); + } + } + else if (node->type() == Node::Enum) { + const EnumNode *enume = static_cast<const EnumNode *>(node); + if (enume->flagsType()) { + out() << "<p>The " << protectEnc(enume->flagsType()->name()) + << " type is a typedef for " + << "<a href=\"qflags.html\">QFlags</a><" + << protectEnc(enume->name()) + << ">. It stores an OR combination of " + << protectEnc(enume->name()) + << " values.</p>\n"; + } + } + generateAlsoList(node, marker); +} + +void DitaXmlGenerator::findAllClasses(const InnerNode *node) +{ + NodeList::const_iterator c = node->childNodes().constBegin(); + while (c != node->childNodes().constEnd()) { + if ((*c)->access() != Node::Private && (*c)->url().isEmpty()) { + if ((*c)->type() == Node::Class && !(*c)->doc().isEmpty()) { + QString className = (*c)->name(); + if ((*c)->parent() && + (*c)->parent()->type() == Node::Namespace && + !(*c)->parent()->name().isEmpty()) + className = (*c)->parent()->name()+"::"+className; + + if (!(static_cast<const ClassNode *>(*c))->hideFromMainList()) { + if ((*c)->status() == Node::Compat) { + compatClasses.insert(className, *c); + } + else if ((*c)->status() == Node::Obsolete) { + obsoleteClasses.insert(className, *c); + } + else { + nonCompatClasses.insert(className, *c); + if ((*c)->status() == Node::Main) + mainClasses.insert(className, *c); + } + } + + QString moduleName = (*c)->moduleName(); + if (moduleName == "Qt3SupportLight") { + moduleClassMap[moduleName].insert((*c)->name(), *c); + moduleName = "Qt3Support"; + } + if (!moduleName.isEmpty()) + moduleClassMap[moduleName].insert((*c)->name(), *c); + + QString serviceName = + (static_cast<const ClassNode *>(*c))->serviceName(); + if (!serviceName.isEmpty()) + serviceClasses.insert(serviceName, *c); + } + else if ((*c)->isInnerNode()) { + findAllClasses(static_cast<InnerNode *>(*c)); + } + } + ++c; + } +} + +/*! + For generating the "New Classes... in 4.6" section on the + What's New in 4.6" page. + */ +void DitaXmlGenerator::findAllSince(const InnerNode *node) +{ + NodeList::const_iterator child = node->childNodes().constBegin(); + while (child != node->childNodes().constEnd()) { + QString sinceVersion = (*child)->since(); + if (((*child)->access() != Node::Private) && !sinceVersion.isEmpty()) { + NewSinceMaps::iterator nsmap = newSinceMaps.find(sinceVersion); + if (nsmap == newSinceMaps.end()) + nsmap = newSinceMaps.insert(sinceVersion,NodeMultiMap()); + NewClassMaps::iterator ncmap = newClassMaps.find(sinceVersion); + if (ncmap == newClassMaps.end()) + ncmap = newClassMaps.insert(sinceVersion,NodeMap()); + NewClassMaps::iterator nqcmap = newQmlClassMaps.find(sinceVersion); + if (nqcmap == newQmlClassMaps.end()) + nqcmap = newQmlClassMaps.insert(sinceVersion,NodeMap()); + + if ((*child)->type() == Node::Function) { + FunctionNode *func = static_cast<FunctionNode *>(*child); + if ((func->status() > Node::Obsolete) && + (func->metaness() != FunctionNode::Ctor) && + (func->metaness() != FunctionNode::Dtor)) { + nsmap.value().insert(func->name(),(*child)); + } + } + else if ((*child)->url().isEmpty()) { + if ((*child)->type() == Node::Class && !(*child)->doc().isEmpty()) { + QString className = (*child)->name(); + if ((*child)->parent() && + (*child)->parent()->type() == Node::Namespace && + !(*child)->parent()->name().isEmpty()) + className = (*child)->parent()->name()+"::"+className; + nsmap.value().insert(className,(*child)); + ncmap.value().insert(className,(*child)); + } + else if ((*child)->subType() == Node::QmlClass) { + QString className = (*child)->name(); + if ((*child)->parent() && + (*child)->parent()->type() == Node::Namespace && + !(*child)->parent()->name().isEmpty()) + className = (*child)->parent()->name()+"::"+className; + nsmap.value().insert(className,(*child)); + nqcmap.value().insert(className,(*child)); + } + } + else { + QString name = (*child)->name(); + if ((*child)->parent() && + (*child)->parent()->type() == Node::Namespace && + !(*child)->parent()->name().isEmpty()) + name = (*child)->parent()->name()+"::"+name; + nsmap.value().insert(name,(*child)); + } + if ((*child)->isInnerNode()) { + findAllSince(static_cast<InnerNode *>(*child)); + } + } + ++child; + } +} + +#if 0 + const QRegExp versionSeparator("[\\-\\.]"); + const int minorIndex = version.indexOf(versionSeparator); + const int patchIndex = version.indexOf(versionSeparator, minorIndex+1); + version = version.left(patchIndex); +#endif + +void DitaXmlGenerator::findAllFunctions(const InnerNode *node) +{ + NodeList::ConstIterator c = node->childNodes().begin(); + while (c != node->childNodes().end()) { + if ((*c)->access() != Node::Private) { + if ((*c)->isInnerNode() && (*c)->url().isEmpty()) { + findAllFunctions(static_cast<const InnerNode *>(*c)); + } + else if ((*c)->type() == Node::Function) { + const FunctionNode *func = static_cast<const FunctionNode *>(*c); + if ((func->status() > Node::Obsolete) && + (func->metaness() != FunctionNode::Ctor) && + (func->metaness() != FunctionNode::Dtor)) { + funcIndex[(*c)->name()].insert(myTree->fullDocumentName((*c)->parent()), *c); + } + } + } + ++c; + } +} + +void DitaXmlGenerator::findAllLegaleseTexts(const InnerNode *node) +{ + NodeList::ConstIterator c = node->childNodes().begin(); + while (c != node->childNodes().end()) { + if ((*c)->access() != Node::Private) { + if (!(*c)->doc().legaleseText().isEmpty()) + legaleseTexts.insertMulti((*c)->doc().legaleseText(), *c); + if ((*c)->isInnerNode()) + findAllLegaleseTexts(static_cast<const InnerNode *>(*c)); + } + ++c; + } +} + +void DitaXmlGenerator::findAllNamespaces(const InnerNode *node) +{ + NodeList::ConstIterator c = node->childNodes().begin(); + while (c != node->childNodes().end()) { + if ((*c)->access() != Node::Private) { + if ((*c)->isInnerNode() && (*c)->url().isEmpty()) { + findAllNamespaces(static_cast<const InnerNode *>(*c)); + if ((*c)->type() == Node::Namespace) { + const NamespaceNode *nspace = static_cast<const NamespaceNode *>(*c); + // Ensure that the namespace's name is not empty (the root + // namespace has no name). + if (!nspace->name().isEmpty()) { + namespaceIndex.insert(nspace->name(), *c); + QString moduleName = (*c)->moduleName(); + if (moduleName == "Qt3SupportLight") { + moduleNamespaceMap[moduleName].insert((*c)->name(), *c); + moduleName = "Qt3Support"; + } + if (!moduleName.isEmpty()) + moduleNamespaceMap[moduleName].insert((*c)->name(), *c); + } + } + } + } + ++c; + } +} + +#ifdef ZZZ_QDOC_QML +/*! + This function finds all the qml element nodes and + stores them in a map for later use. + */ +void DitaXmlGenerator::findAllQmlClasses(const InnerNode *node) +{ + NodeList::const_iterator c = node->childNodes().constBegin(); + while (c != node->childNodes().constEnd()) { + if ((*c)->type() == Node::Fake) { + const FakeNode* fakeNode = static_cast<const FakeNode *>(*c); + if (fakeNode->subType() == Node::QmlClass) { + const QmlClassNode* qmlNode = + static_cast<const QmlClassNode*>(fakeNode); + const Node* n = qmlNode->classNode(); + } + qmlClasses.insert(fakeNode->name(),*c); + } + ++c; + } +} +#endif + +int DitaXmlGenerator::hOffset(const Node *node) +{ + switch (node->type()) { + case Node::Namespace: + case Node::Class: + return 2; + case Node::Fake: + return 1; +#if 0 + if (node->doc().briefText().isEmpty()) + return 1; + else + return 2; +#endif + case Node::Enum: + case Node::Typedef: + case Node::Function: + case Node::Property: + default: + return 3; + } +} + +bool DitaXmlGenerator::isThreeColumnEnumValueTable(const Atom *atom) +{ + while (atom != 0 && !(atom->type() == Atom::ListRight && atom->string() == ATOM_LIST_VALUE)) { + if (atom->type() == Atom::ListItemLeft && !matchAhead(atom, Atom::ListItemRight)) + return true; + atom = atom->next(); + } + return false; +} + +const Node *DitaXmlGenerator::findNodeForTarget(const QString &target, + const Node *relative, + CodeMarker *marker, + const Atom *atom) +{ + const Node *node = 0; + + if (target.isEmpty()) { + node = relative; + } + else if (target.endsWith(".html")) { + node = myTree->root()->findNode(target, Node::Fake); + } + else if (marker) { + node = marker->resolveTarget(target, myTree, relative); + if (!node) + node = myTree->findFakeNodeByTitle(target); + if (!node && atom) { + node = myTree->findUnambiguousTarget(target, + *const_cast<Atom**>(&atom)); + } + } + + if (!node) + relative->doc().location().warning(tr("Cannot link to '%1'").arg(target)); + + return node; +} + +const QPair<QString,QString> DitaXmlGenerator::anchorForNode(const Node *node) +{ + QPair<QString,QString> anchorPair; + + anchorPair.first = PageGenerator::fileName(node); + if (node->type() == Node::Fake) { + const FakeNode *fakeNode = static_cast<const FakeNode*>(node); + anchorPair.second = fakeNode->title(); + } + + return anchorPair; +} + +QString DitaXmlGenerator::getLink(const Atom *atom, + const Node *relative, + CodeMarker *marker, + const Node** node) +{ + QString link; + *node = 0; + inObsoleteLink = false; + + if (atom->string().contains(":") && + (atom->string().startsWith("file:") + || atom->string().startsWith("http:") + || atom->string().startsWith("https:") + || atom->string().startsWith("ftp:") + || atom->string().startsWith("mailto:"))) { + + link = atom->string(); + } + else { + QStringList path; + if (atom->string().contains('#')) { + path = atom->string().split('#'); + } + else { + path.append(atom->string()); + } + + Atom *targetAtom = 0; + + QString first = path.first().trimmed(); + if (first.isEmpty()) { + *node = relative; + } + else if (first.endsWith(".html")) { + *node = myTree->root()->findNode(first, Node::Fake); + } + else { + *node = marker->resolveTarget(first, myTree, relative); + if (!*node) { + *node = myTree->findFakeNodeByTitle(first); + } + if (!*node) { + *node = myTree->findUnambiguousTarget(first, targetAtom); + } + } + + if (*node) { + if (!(*node)->url().isEmpty()) + return (*node)->url(); + else + path.removeFirst(); + } + else { + *node = relative; + } + + if (*node) { + if ((*node)->status() == Node::Obsolete) { + if (relative) { + if (relative->parent() != *node) { + if (relative->status() != Node::Obsolete) { + bool porting = false; + if (relative->type() == Node::Fake) { + const FakeNode* fake = static_cast<const FakeNode*>(relative); + if (fake->title().startsWith("Porting")) + porting = true; + } + QString name = marker->plainFullName(relative); + if (!porting && !name.startsWith("Q3")) { + if (obsoleteLinks) { + relative->doc().location().warning(tr("Link to obsolete item '%1' in %2") + .arg(atom->string()) + .arg(name)); + } + inObsoleteLink = true; + } + } + } + } + else { + qDebug() << "Link to Obsolete entity" + << (*node)->name() << "no relative"; + } + } +#if 0 + else if ((*node)->status() == Node::Deprecated) { + qDebug() << "Link to Deprecated entity"; + } + else if ((*node)->status() == Node::Internal) { + qDebug() << "Link to Internal entity"; + } +#endif + } + + while (!path.isEmpty()) { + targetAtom = myTree->findTarget(path.first(), *node); + if (targetAtom == 0) + break; + path.removeFirst(); + } + + if (path.isEmpty()) { + link = linkForNode(*node, relative); + if (*node && (*node)->subType() == Node::Image) + link = "images/used-in-examples/" + link; + if (targetAtom) + link += "#" + refForAtom(targetAtom, *node); + } + } + return link; +} + +void DitaXmlGenerator::generateDcf(const QString &fileBase, + const QString &startPage, + const QString &title, + DcfSection &dcfRoot) +{ + dcfRoot.ref = startPage; + dcfRoot.title = title; + generateDcfSections(dcfRoot, outputDir() + "/" + fileBase + ".dcf", fileBase + "/reference"); +} + +void DitaXmlGenerator::generateIndex(const QString &fileBase, + const QString &url, + const QString &title) +{ + myTree->generateIndex(outputDir() + "/" + fileBase + ".index", url, title); +} + +void DitaXmlGenerator::generateStatus(const Node *node, CodeMarker *marker) +{ + Text text; + + switch (node->status()) { + case Node::Obsolete: + if (node->isInnerNode()) + Generator::generateStatus(node, marker); + break; + case Node::Compat: + if (node->isInnerNode()) { + text << Atom::ParaLeft + << Atom(Atom::FormattingLeft,ATOM_FORMATTING_BOLD) + << "This " + << typeString(node) + << " is part of the Qt 3 support library." + << Atom(Atom::FormattingRight, ATOM_FORMATTING_BOLD) + << " It is provided to keep old source code working. " + << "We strongly advise against " + << "using it in new code. See "; + + const FakeNode *fakeNode = myTree->findFakeNodeByTitle("Porting To Qt 4"); + Atom *targetAtom = 0; + if (fakeNode && node->type() == Node::Class) { + QString oldName(node->name()); + targetAtom = myTree->findTarget(oldName.replace("3", ""), + fakeNode); + } + + if (targetAtom) { + text << Atom(Atom::Link, linkForNode(fakeNode, node) + "#" + + refForAtom(targetAtom, fakeNode)); + } + else + text << Atom(Atom::Link, "Porting to Qt 4"); + + text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) + << Atom(Atom::String, "Porting to Qt 4") + << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK) + << " for more information." + << Atom::ParaRight; + } + generateText(text, node, marker); + break; + default: + Generator::generateStatus(node, marker); + } +} + +#ifdef GENERATE_MAC_REFS +/* + No longer valid. + */ +void DitaXmlGenerator::generateMacRef(const Node *node, CodeMarker *marker) +{ + if (!pleaseGenerateMacRef || marker == 0) + return; + + QStringList macRefs = marker->macRefsForNode(node); + foreach (const QString &macRef, macRefs) + out() << "<a name=\"" << "//apple_ref/" << macRef << "\"></a>\n"; +} +#endif + +void DitaXmlGenerator::beginLink(const QString &link, + const Node *node, + const Node *relative, + CodeMarker *marker) +{ + Q_UNUSED(marker) + Q_UNUSED(relative) + + this->link = link; + if (link.isEmpty()) { + if (showBrokenLinks) + out() << "<i>"; + } + else if (node == 0 || (relative != 0 && + node->status() == relative->status())) { + out() << "<a href=\"" << link << "\">"; + } + else { + switch (node->status()) { + case Node::Obsolete: + out() << "<a href=\"" << link << "\" class=\"obsolete\">"; + break; + case Node::Compat: + out() << "<a href=\"" << link << "\" class=\"compat\">"; + break; + default: + out() << "<a href=\"" << link << "\">"; + } + } + inLink = true; +} + +void DitaXmlGenerator::endLink() +{ + if (inLink) { + if (link.isEmpty()) { + if (showBrokenLinks) + out() << "</i>"; + } + else { + if (inObsoleteLink) { + out() << "<sup>(obsolete)</sup>"; + } + out() << "</a>"; + } + } + inLink = false; + inObsoleteLink = false; +} + +#ifdef QDOC_QML + +/*! + Generates the summary for the \a section. Only used for + sections of QML element documentation. + + Currently handles only the QML property group. + */ +void DitaXmlGenerator::generateQmlSummary(const Section& section, + const Node *relative, + CodeMarker *marker) +{ + if (!section.members.isEmpty()) { + NodeList::ConstIterator m; + int count = section.members.size(); + bool twoColumn = false; + if (section.members.first()->type() == Node::QmlProperty) { + twoColumn = (count >= 5); + } + if (twoColumn) + out() << "<table class=\"qmlsummary\">\n"; + if (++numTableRows % 2 == 1) + out() << "<tr class=\"odd topAlign\">"; + else + out() << "<tr class=\"even topAlign\">"; + // << "<tr><td class=\"topAlign\">"; + out() << "<ul>\n"; + + int row = 0; + m = section.members.begin(); + while (m != section.members.end()) { + if (twoColumn && row == (int) (count + 1) / 2) + out() << "</ul></td><td class=\"topAlign\"><ul>\n"; + out() << "<li class=\"fn\">"; + generateQmlItem(*m,relative,marker,true); + out() << "</li>\n"; + row++; + ++m; + } + out() << "</ul>\n"; + if (twoColumn) + out() << "</td></tr>\n</table>\n"; + } +} + +/*! + Outputs the html detailed documentation for a section + on a QML element reference page. + */ +void DitaXmlGenerator::generateDetailedQmlMember(const Node *node, + const InnerNode *relative, + CodeMarker *marker) +{ + const QmlPropertyNode* qpn = 0; +#ifdef GENERATE_MAC_REFS + generateMacRef(node, marker); +#endif + out() << "<div class=\"qmlitem\">"; + if (node->subType() == Node::QmlPropertyGroup) { + const QmlPropGroupNode* qpgn = static_cast<const QmlPropGroupNode*>(node); + NodeList::ConstIterator p = qpgn->childNodes().begin(); + out() << "<div class=\"qmlproto\">"; + out() << "<table class=\"qmlname\">"; + + while (p != qpgn->childNodes().end()) { + if ((*p)->type() == Node::QmlProperty) { + qpn = static_cast<const QmlPropertyNode*>(*p); + + if (++numTableRows % 2 == 1) + out() << "<tr class=\"odd\">"; + else + out() << "<tr class=\"even\">"; + + out() << "<td><p>"; + //out() << "<tr><td>"; // old + out() << "<a name=\"" + refForNode(qpn) + "\"></a>"; + if (!qpn->isWritable()) + out() << "<span class=\"qmlreadonly\">read-only</span>"; + if (qpgn->isDefault()) + out() << "<span class=\"qmldefault\">default</span>"; + generateQmlItem(qpn, relative, marker, false); + out() << "</td></tr>"; + } + ++p; + } + out() << "</table>"; + out() << "</div>"; + } + else if (node->type() == Node::QmlSignal) { + const FunctionNode* qsn = static_cast<const FunctionNode*>(node); + out() << "<div class=\"qmlproto\">"; + out() << "<table class=\"qmlname\">"; + //out() << "<tr>"; + if (++numTableRows % 2 == 1) + out() << "<tr class=\"odd\">"; + else + out() << "<tr class=\"even\">"; + out() << "<td><p>"; + out() << "<a name=\"" + refForNode(qsn) + "\"></a>"; + generateSynopsis(qsn,relative,marker,CodeMarker::Detailed,false); + //generateQmlItem(qsn,relative,marker,false); + out() << "</p></td></tr>"; + out() << "</table>"; + out() << "</div>"; + } + else if (node->type() == Node::QmlMethod) { + const FunctionNode* qmn = static_cast<const FunctionNode*>(node); + out() << "<div class=\"qmlproto\">"; + out() << "<table class=\"qmlname\">"; + //out() << "<tr>"; + if (++numTableRows % 2 == 1) + out() << "<tr class=\"odd\">"; + else + out() << "<tr class=\"even\">"; + out() << "<td><p>"; + out() << "<a name=\"" + refForNode(qmn) + "\"></a>"; + generateSynopsis(qmn,relative,marker,CodeMarker::Detailed,false); + out() << "</p></td></tr>"; + out() << "</table>"; + out() << "</div>"; + } + out() << "<div class=\"qmldoc\">"; + generateStatus(node, marker); + generateBody(node, marker); + generateThreadSafeness(node, marker); + generateSince(node, marker); + generateAlsoList(node, marker); + out() << "</div>"; + out() << "</div>"; +} + +/*! + Output the "Inherits" line for the QML element, + if there should be one. + */ +void DitaXmlGenerator::generateQmlInherits(const QmlClassNode* cn, + CodeMarker* marker) +{ + if (cn && !cn->links().empty()) { + if (cn->links().contains(Node::InheritsLink)) { + QPair<QString,QString> linkPair; + linkPair = cn->links()[Node::InheritsLink]; + QStringList strList(linkPair.first); + const Node* n = myTree->findNode(strList,Node::Fake); + if (n && n->subType() == Node::QmlClass) { + const QmlClassNode* qcn = static_cast<const QmlClassNode*>(n); + out() << "<p class=\"centerAlign\">"; + Text text; + text << "[Inherits "; + text << Atom(Atom::LinkNode,CodeMarker::stringForNode(qcn)); + text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK); + text << Atom(Atom::String, linkPair.second); + text << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); + text << "]"; + generateText(text, cn, marker); + out() << "</p>"; + } + } + } +} + +/*! + Output the "Inherit by" list for the QML element, + if it is inherited by any other elements. + */ +void DitaXmlGenerator::generateQmlInheritedBy(const QmlClassNode* cn, + CodeMarker* marker) +{ + if (cn) { + NodeList subs; + QmlClassNode::subclasses(cn->name(),subs); + if (!subs.isEmpty()) { + Text text; + text << Atom::ParaLeft << "Inherited by "; + appendSortedQmlNames(text,cn,subs,marker); + text << Atom::ParaRight; + generateText(text, cn, marker); + } + } +} + +/*! + Output the "[Xxx instantiates the C++ class QmlGraphicsXxx]" + line for the QML element, if there should be one. + + If there is no class node, or if the class node status + is set to Node::Internal, do nothing. + */ +void DitaXmlGenerator::generateQmlInstantiates(const QmlClassNode* qcn, + CodeMarker* marker) +{ + const ClassNode* cn = qcn->classNode(); + if (cn && (cn->status() != Node::Internal)) { + out() << "<p class=\"centerAlign\">"; + Text text; + text << "["; + text << Atom(Atom::LinkNode,CodeMarker::stringForNode(qcn)); + text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK); + text << Atom(Atom::String, qcn->name()); + text << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); + text << " instantiates the C++ class "; + text << Atom(Atom::LinkNode,CodeMarker::stringForNode(cn)); + text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK); + text << Atom(Atom::String, cn->name()); + text << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); + text << "]"; + generateText(text, qcn, marker); + out() << "</p>"; + } +} + +/*! + Output the "[QmlGraphicsXxx is instantiated by QML element Xxx]" + line for the class, if there should be one. + + If there is no QML element, or if the class node status + is set to Node::Internal, do nothing. + */ +void DitaXmlGenerator::generateInstantiatedBy(const ClassNode* cn, + CodeMarker* marker) +{ + if (cn && cn->status() != Node::Internal && !cn->qmlElement().isEmpty()) { + const Node* n = myTree->root()->findNode(cn->qmlElement(),Node::Fake); + if (n && n->subType() == Node::QmlClass) { + out() << "<p class=\"centerAlign\">"; + Text text; + text << "["; + text << Atom(Atom::LinkNode,CodeMarker::stringForNode(cn)); + text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK); + text << Atom(Atom::String, cn->name()); + text << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); + text << " is instantiated by QML element "; + text << Atom(Atom::LinkNode,CodeMarker::stringForNode(n)); + text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK); + text << Atom(Atom::String, n->name()); + text << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); + text << "]"; + generateText(text, cn, marker); + out() << "</p>"; + } + } +} + +/*! + Generate the <page> element for the given \a node using the \a writer. + Return true if a <page> element was written; otherwise return false. + */ +bool DitaXmlGenerator::generatePageElement(QXmlStreamWriter& writer, + const Node* node, + CodeMarker* marker) const +{ + if (node->pageType() == Node::NoPageType) + return false; + if (node->name().isEmpty()) + return true; + if (node->access() == Node::Private) + return false; + if (!node->isInnerNode()) + return false; + + QString title; + QString rawTitle; + QString fullTitle; + const InnerNode* inner = static_cast<const InnerNode*>(node); + + writer.writeStartElement("page"); + QXmlStreamAttributes attributes; + QString t; + t.setNum(id++); + switch (node->type()) { + case Node::Fake: + { + const FakeNode* fake = static_cast<const FakeNode*>(node); + title = fake->fullTitle(); + break; + } + case Node::Class: + { + title = node->name() + " Class Reference"; + break; + } + case Node::Namespace: + { + rawTitle = marker->plainName(inner); + fullTitle = marker->plainFullName(inner); + title = rawTitle + " Namespace Reference"; + break; + } + default: + title = node->name(); + break; + } + writer.writeAttribute("id",t); + writer.writeStartElement("pageWords"); + writer.writeCharacters(title); + if (!inner->pageKeywords().isEmpty()) { + const QStringList& w = inner->pageKeywords(); + for (int i = 0; i < w.size(); ++i) { + writer.writeCharacters(" "); + writer.writeCharacters(w.at(i).toLocal8Bit().constData()); + } + } + writer.writeEndElement(); + writer.writeStartElement("pageTitle"); + writer.writeCharacters(title); + writer.writeEndElement(); + writer.writeStartElement("pageUrl"); + writer.writeCharacters(PageGenerator::fileName(node)); + writer.writeEndElement(); + writer.writeStartElement("pageType"); + switch (node->pageType()) { + case Node::ApiPage: + writer.writeCharacters("APIPage"); + break; + case Node::ArticlePage: + writer.writeCharacters("Article"); + break; + case Node::ExamplePage: + writer.writeCharacters("Example"); + break; + default: + break; + } + writer.writeEndElement(); + writer.writeEndElement(); + return true; +} + +/*! + Traverse the tree recursively and generate the <keyword> + elements. + */ +void DitaXmlGenerator::generatePageElements(QXmlStreamWriter& writer, const Node* node, CodeMarker* marker) const +{ + if (generatePageElement(writer, node, marker)) { + + if (node->isInnerNode()) { + const InnerNode *inner = static_cast<const InnerNode *>(node); + + // Recurse to write an element for this child node and all its children. + foreach (const Node *child, inner->childNodes()) + generatePageElements(writer, child, marker); + } + } +} + +/*! + Outputs the file containing the index used for searching the html docs. + */ +void DitaXmlGenerator::generatePageIndex(const QString& fileName, CodeMarker* marker) const +{ + QFile file(fileName); + if (!file.open(QFile::WriteOnly | QFile::Text)) + return ; + + QXmlStreamWriter writer(&file); + writer.setAutoFormatting(true); + writer.writeStartDocument(); + writer.writeStartElement("qtPageIndex"); + + generatePageElements(writer, myTree->root(), marker); + + writer.writeEndElement(); // qtPageIndex + writer.writeEndDocument(); + file.close(); +} + +#endif + +#if 0 // fossil removed for new doc format MWS 19/04/2010 + out() << "<!DOCTYPE html\n" + " PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"DTD/xhtml1-strict.dtd\">\n"; + out() << QString("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"%1\" lang=\"%1\">\n").arg(naturalLanguage); + + QString shortVersion; + if ((project != "Qtopia") && (project != "Qt Extended")) { + shortVersion = project + " " + shortVersion + ": "; + if (node && !node->doc().location().isEmpty()) + out() << "<!-- " << node->doc().location().fileName() << " -->\n"; + + shortVersion = myTree->version(); + if (shortVersion.count(QChar('.')) == 2) + shortVersion.truncate(shortVersion.lastIndexOf(QChar('.'))); + if (!shortVersion.isEmpty()) { + if (project == "QSA") + shortVersion = "QSA " + shortVersion + ": "; + else + shortVersion = "Qt " + shortVersion + ": "; + } + } + + out() << "<head>\n" + " <title>" << shortVersion << protectEnc(title) << "</title>\n"; + out() << QString("<meta http-equiv=\"Content-type\" content=\"text/html; charset=%1\" />").arg(outputEncoding); + + if (!style.isEmpty()) + out() << " <style type=\"text/css\">" << style << "</style>\n"; + + const QMap<QString, QString> &metaMap = node->doc().metaTagMap(); + if (!metaMap.isEmpty()) { + QMapIterator<QString, QString> i(metaMap); + while (i.hasNext()) { + i.next(); + out() << " <meta name=\"" << protectEnc(i.key()) << "\" contents=\"" + << protectEnc(i.value()) << "\" />\n"; + } + } + + navigationLinks.clear(); + + if (node && !node->links().empty()) { + QPair<QString,QString> linkPair; + QPair<QString,QString> anchorPair; + const Node *linkNode; + + if (node->links().contains(Node::PreviousLink)) { + linkPair = node->links()[Node::PreviousLink]; + linkNode = findNodeForTarget(linkPair.first, node, marker); + if (!linkNode || linkNode == node) + anchorPair = linkPair; + else + anchorPair = anchorForNode(linkNode); + + out() << " <link rel=\"prev\" href=\"" + << anchorPair.first << "\" />\n"; + + navigationLinks += "[Previous: <a href=\"" + anchorPair.first + "\">"; + if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) + navigationLinks += protectEnc(anchorPair.second); + else + navigationLinks += protectEnc(linkPair.second); + navigationLinks += "</a>]\n"; + } + if (node->links().contains(Node::ContentsLink)) { + linkPair = node->links()[Node::ContentsLink]; + linkNode = findNodeForTarget(linkPair.first, node, marker); + if (!linkNode || linkNode == node) + anchorPair = linkPair; + else + anchorPair = anchorForNode(linkNode); + + out() << " <link rel=\"contents\" href=\"" + << anchorPair.first << "\" />\n"; + + navigationLinks += "[<a href=\"" + anchorPair.first + "\">"; + if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) + navigationLinks += protectEnc(anchorPair.second); + else + navigationLinks += protectEnc(linkPair.second); + navigationLinks += "</a>]\n"; + } + if (node->links().contains(Node::NextLink)) { + linkPair = node->links()[Node::NextLink]; + linkNode = findNodeForTarget(linkPair.first, node, marker); + if (!linkNode || linkNode == node) + anchorPair = linkPair; + else + anchorPair = anchorForNode(linkNode); + + out() << " <link rel=\"next\" href=\"" + << anchorPair.first << "\" />\n"; + + navigationLinks += "[Next: <a href=\"" + anchorPair.first + "\">"; + if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) + navigationLinks += protectEnc(anchorPair.second); + else + navigationLinks += protectEnc(linkPair.second); + navigationLinks += "</a>]\n"; + } + if (node->links().contains(Node::IndexLink)) { + linkPair = node->links()[Node::IndexLink]; + linkNode = findNodeForTarget(linkPair.first, node, marker); + if (!linkNode || linkNode == node) + anchorPair = linkPair; + else + anchorPair = anchorForNode(linkNode); + out() << " <link rel=\"index\" href=\"" + << anchorPair.first << "\" />\n"; + } + if (node->links().contains(Node::StartLink)) { + linkPair = node->links()[Node::StartLink]; + linkNode = findNodeForTarget(linkPair.first, node, marker); + if (!linkNode || linkNode == node) + anchorPair = linkPair; + else + anchorPair = anchorForNode(linkNode); + out() << " <link rel=\"start\" href=\"" + << anchorPair.first << "\" />\n"; + } + } + + foreach (const QString &stylesheet, stylesheets) { + out() << " <link href=\"" << stylesheet << "\" rel=\"stylesheet\" " + << "type=\"text/css\" />\n"; + } + + foreach (const QString &customHeadElement, customHeadElements) { + out() << " " << customHeadElement << "\n"; + } + + out() << "</head>\n" + #endif + + QT_END_NAMESPACE diff --git a/tools/qdoc3/ditaxmlgenerator.h b/tools/qdoc3/ditaxmlgenerator.h new file mode 100644 index 0000000..4de578d --- /dev/null +++ b/tools/qdoc3/ditaxmlgenerator.h @@ -0,0 +1,358 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the tools applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/* + ditaxmlgenerator.h +*/ + +#ifndef DITAXMLGENERATOR_H +#define DITAXMLGENERATOR_H + +#define QDOC_NAME_ALIGNMENT + +#include <qmap.h> +#include <qregexp.h> +#include <QXmlStreamWriter> + +#include "codemarker.h" +#include "config.h" +#include "dcfsection.h" +#include "pagegenerator.h" + +QT_BEGIN_NAMESPACE + +#if 0 +struct NavigationBar +{ + SectionIterator prev; + SectionIterator current; + SectionIterator next; +}; +#endif + +typedef QMultiMap<QString, Node*> NodeMultiMap; +typedef QMap<QString, NodeMultiMap> NewSinceMaps; +typedef QMap<Node*, NodeMultiMap> ParentMaps; +typedef QMap<QString, const Node*> NodeMap; +typedef QMap<QString, NodeMap> NewClassMaps; + +class HelpProjectWriter; + +class DitaXmlGenerator : public PageGenerator +{ + public: + enum SinceType { + Namespace, + Class, + MemberFunction, + NamespaceFunction, + GlobalFunction, + Macro, + Enum, + Typedef, + Property, + Variable, + QmlClass, + QmlProperty, + QmlSignal, + QmlMethod, + LastSinceType + }; + + public: + DitaXmlGenerator(); + ~DitaXmlGenerator(); + + virtual void initializeGenerator(const Config& config); + virtual void terminateGenerator(); + virtual QString format(); + virtual void generateTree(const Tree *tree, CodeMarker *marker); + + QString protectEnc(const QString &string); + static QString protect(const QString &string, const QString &encoding = "ISO-8859-1"); + static QString cleanRef(const QString& ref); + static QString sinceTitle(int i) { return sinceTitles[i]; } + + protected: + virtual void startText(const Node *relative, CodeMarker *marker); + virtual int generateAtom(const Atom *atom, + const Node *relative, + CodeMarker *marker); + virtual void generateClassLikeNode(const InnerNode *inner, CodeMarker *marker); + virtual void generateFakeNode(const FakeNode *fake, CodeMarker *marker); + virtual QString fileExtension(const Node *node) const; + virtual QString refForNode(const Node *node); + virtual QString linkForNode(const Node *node, const Node *relative); + virtual QString refForAtom(Atom *atom, const Node *node); + + private: + enum SubTitleSize { SmallSubTitle, LargeSubTitle }; + + const QPair<QString,QString> anchorForNode(const Node *node); + const Node *findNodeForTarget(const QString &target, + const Node *relative, + CodeMarker *marker, + const Atom *atom = 0); + void generateBreadCrumbs(const QString& title, + const Node *node, + CodeMarker *marker); + void generateHeader(const QString& title, + const Node *node = 0, + CodeMarker *marker = 0); + void generateTitle(const QString& title, + const Text &subTitle, + SubTitleSize subTitleSize, + const Node *relative, + CodeMarker *marker); + void generateFooter(const Node *node = 0); + void generateBrief(const Node *node, + CodeMarker *marker, + const Node *relative = 0); + void generateIncludes(const InnerNode *inner, CodeMarker *marker); +#if 0 + void generateNavigationBar(const NavigationBar& bar, + const Node *node, + CodeMarker *marker); +#endif + void generateTableOfContents(const Node *node, + CodeMarker *marker, + Doc::SectioningUnit sectioningUnit, + int numColumns, + const Node *relative = 0); + void generateTableOfContents(const Node *node, + CodeMarker *marker, + QList<Section>* sections = 0); + QString generateListOfAllMemberFile(const InnerNode *inner, CodeMarker *marker); + QString generateLowStatusMemberFile(const InnerNode *inner, + CodeMarker *marker, + CodeMarker::Status status); + void generateClassHierarchy(const Node *relative, + CodeMarker *marker, + const NodeMap &classMap); + void generateAnnotatedList(const Node *relative, + CodeMarker *marker, + const NodeMap &nodeMap); + void generateCompactList(const Node *relative, + CodeMarker *marker, + const NodeMap &classMap, + bool includeAlphabet, + QString commonPrefix = QString()); + void generateFunctionIndex(const Node *relative, CodeMarker *marker); + void generateLegaleseList(const Node *relative, CodeMarker *marker); + void generateOverviewList(const Node *relative, CodeMarker *marker); + void generateSectionList(const Section& section, + const Node *relative, + CodeMarker *marker, + CodeMarker::SynopsisStyle style); +#ifdef QDOC_QML + void generateQmlSummary(const Section& section, + const Node *relative, + CodeMarker *marker); + void generateQmlItem(const Node *node, + const Node *relative, + CodeMarker *marker, + bool summary); + void generateDetailedQmlMember(const Node *node, + const InnerNode *relative, + CodeMarker *marker); + void generateQmlInherits(const QmlClassNode* cn, CodeMarker* marker); + void generateQmlInheritedBy(const QmlClassNode* cn, CodeMarker* marker); + void generateQmlInstantiates(const QmlClassNode* qcn, CodeMarker* marker); + void generateInstantiatedBy(const ClassNode* cn, CodeMarker* marker); +#endif +#ifdef QDOC_NAME_ALIGNMENT + void generateSection(const NodeList& nl, + const Node *relative, + CodeMarker *marker, + CodeMarker::SynopsisStyle style); + void generateSynopsis(const Node *node, + const Node *relative, + CodeMarker *marker, + CodeMarker::SynopsisStyle style, + bool nameAlignment = false); + void generateSectionInheritedList(const Section& section, + const Node *relative, + CodeMarker *marker, + bool nameAlignment = false); + QString highlightedCode(const QString& markedCode, + CodeMarker *marker, + const Node *relative, + CodeMarker::SynopsisStyle style = CodeMarker::Accessors, + bool nameAlignment = false); +#else + void generateSynopsis(const Node *node, + const Node *relative, + CodeMarker *marker, + CodeMarker::SynopsisStyle style); + void generateSectionInheritedList(const Section& section, + const Node *relative, + CodeMarker *marker); + QString highlightedCode(const QString& markedCode, + CodeMarker *marker, + const Node *relative); +#endif + void generateFullName(const Node *apparentNode, + const Node *relative, + CodeMarker *marker, + const Node *actualNode = 0); + void generateDetailedMember(const Node *node, + const InnerNode *relative, + CodeMarker *marker); + void generateLink(const Atom *atom, + const Node *relative, + CodeMarker *marker); + void generateStatus(const Node *node, CodeMarker *marker); + + QString registerRef(const QString& ref); + QString fileBase(const Node *node); +#if 0 + QString fileBase(const Node *node, const SectionIterator& section); +#endif + QString fileName(const Node *node); + void findAllClasses(const InnerNode *node); + void findAllFunctions(const InnerNode *node); + void findAllLegaleseTexts(const InnerNode *node); + void findAllNamespaces(const InnerNode *node); +#ifdef ZZZ_QDOC_QML + void findAllQmlClasses(const InnerNode *node); +#endif + void findAllSince(const InnerNode *node); + static int hOffset(const Node *node); + static bool isThreeColumnEnumValueTable(const Atom *atom); + virtual QString getLink(const Atom *atom, + const Node *relative, + CodeMarker *marker, + const Node** node); + virtual void generateDcf(const QString &fileBase, + const QString &startPage, + const QString &title, DcfSection &dcfRoot); + virtual void generateIndex(const QString &fileBase, + const QString &url, + const QString &title); +#ifdef GENERATE_MAC_REFS + void generateMacRef(const Node *node, CodeMarker *marker); +#endif + void beginLink(const QString &link, + const Node *node, + const Node *relative, + CodeMarker *marker); + void endLink(); + bool generatePageElement(QXmlStreamWriter& writer, + const Node* node, + CodeMarker* marker) const; + void generatePageElements(QXmlStreamWriter& writer, + const Node* node, + CodeMarker* marker) const; + void generatePageIndex(const QString& fileName, + CodeMarker* marker) const; + +#if 0 + NavigationBar currentNavigationBar; +#endif + QMap<QString, QString> refMap; + int codeIndent; + DcfSection dcfClassesRoot; + DcfSection dcfOverviewsRoot; + DcfSection dcfExamplesRoot; + DcfSection dcfDesignerRoot; + DcfSection dcfLinguistRoot; + DcfSection dcfAssistantRoot; + DcfSection dcfQmakeRoot; + HelpProjectWriter *helpProjectWriter; + bool inLink; + bool inObsoleteLink; + bool inContents; + bool inSectionHeading; + bool inTableHeader; + int numTableRows; + bool threeColumnEnumValueTable; + bool offlineDocs; + QString link; + QStringList sectionNumber; + QRegExp funcLeftParen; + QString style; + QString postHeader; + QString postPostHeader; + QString footer; + QString address; + bool pleaseGenerateMacRef; + QString project; + QString projectDescription; + QString projectUrl; + QString navigationLinks; + QStringList stylesheets; + QStringList customHeadElements; + const Tree *myTree; + bool slow; + bool obsoleteLinks; + QMap<QString, NodeMap > moduleClassMap; + QMap<QString, NodeMap > moduleNamespaceMap; + NodeMap nonCompatClasses; + NodeMap mainClasses; + NodeMap compatClasses; + NodeMap obsoleteClasses; + NodeMap namespaceIndex; + NodeMap serviceClasses; +#ifdef QDOC_QML + NodeMap qmlClasses; +#endif + QMap<QString, NodeMap > funcIndex; + QMap<Text, const Node *> legaleseTexts; + NewSinceMaps newSinceMaps; + static QString sinceTitles[]; + NewClassMaps newClassMaps; + NewClassMaps newQmlClassMaps; + static int id; +}; + +#define DITAXMLGENERATOR_ADDRESS "address" +#define DITAXMLGENERATOR_FOOTER "footer" +#define DITAXMLGENERATOR_GENERATEMACREFS "generatemacrefs" // ### document me +#define DITAXMLGENERATOR_POSTHEADER "postheader" +#define DITAXMLGENERATOR_POSTPOSTHEADER "postpostheader" +#define DITAXMLGENERATOR_STYLE "style" +#define DITAXMLGENERATOR_STYLESHEETS "stylesheets" +#define DITAXMLGENERATOR_CUSTOMHEADELEMENTS "customheadelements" + +QT_END_NAMESPACE + +#endif + diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index b103981..f6b8c06 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -519,14 +519,14 @@ int HtmlGenerator::generateAtom(const Atom *atom, out() << formattingRightMap()[ATOM_FORMATTING_TELETYPE]; break; case Atom::Code: - out() << "<pre class=\"highlightedCode\">" + out() << "<pre class=\"highlightedCode brush: cpp\">" << trimmedTrailing(highlightedCode(indent(codeIndent,atom->string()), marker,relative)) << "</pre>\n"; break; #ifdef QDOC_QML case Atom::Qml: - out() << "<pre class=\"highlightedCode\">" + out() << "<pre class=\"highlightedCode brush: cpp\">" << trimmedTrailing(highlightedCode(indent(codeIndent,atom->string()), marker,relative)) << "</pre>\n"; @@ -534,7 +534,7 @@ int HtmlGenerator::generateAtom(const Atom *atom, #endif case Atom::CodeNew: out() << "<p>you can rewrite it as</p>\n" - << "<pre class=\"highlightedCode\">" + << "<pre class=\"highlightedCode brush: cpp\">" << trimmedTrailing(highlightedCode(indent(codeIndent,atom->string()), marker,relative)) << "</pre>\n"; @@ -543,7 +543,7 @@ int HtmlGenerator::generateAtom(const Atom *atom, out() << "<p>For example, if you have code like</p>\n"; // fallthrough case Atom::CodeBad: - out() << "<pre class=\"highlightedCode\">" + out() << "<pre class=\"highlightedCode brush: cpp\">" << trimmedTrailing(protectEnc(plainCode(indent(codeIndent,atom->string())))) << "</pre>\n"; break; @@ -1711,62 +1711,49 @@ void HtmlGenerator::generateBreadCrumbs(const QString& title, if (node->type() == Node::Class) { const ClassNode* cn = static_cast<const ClassNode*>(node); QString name = node->moduleName(); - out() << " <li><a href=\"modules.html\">All Modules</a></li>"; + out() << " <li><a href=\"modules.html\">Modules</a></li>"; if (!name.isEmpty()) { out() << " <li>"; breadcrumb << Atom(Atom::AutoLink,name); generateText(breadcrumb, node, marker); out() << "</li>\n"; } - breadcrumb.clear(); - if (!cn->name().isEmpty()) { - out() << " <li>"; - breadcrumb << Atom(Atom::AutoLink,cn->name()); - generateText(breadcrumb, 0, marker); - out() << "</li>\n"; - } + if (!cn->name().isEmpty()) + out() << " <li>" << cn->name() << "</li>\n"; } else if (node->type() == Node::Fake) { const FakeNode* fn = static_cast<const FakeNode*>(node); if (node->subType() == Node::Module) { - out() << " <li><a href=\"modules.html\">All Modules</a></li>"; + out() << " <li><a href=\"modules.html\">Modules</a></li>"; QString name = node->name(); - if (!name.isEmpty()) { - out() << " <li>"; - breadcrumb << Atom(Atom::AutoLink,name); - generateText(breadcrumb, 0, marker); - out() << "</li>\n"; - } + if (!name.isEmpty()) + out() << " <li>" << name << "</li>\n"; } else if (node->subType() == Node::Group) { if (fn->name() == QString("modules")) - out() << " <li><a href=\"modules.html\">All Modules</a></li>"; + out() << " <li>Modules</li>"; else { - out() << " <li><a href=\"" << fn->name() << "\">" << title - << "</a></li>"; + out() << " <li>" << title << "</li>"; } } else if (node->subType() == Node::Page) { if (fn->name() == QString("examples.html")) { - out() << " <li><a href=\"all-examples.html\">Examples</a></li>"; + out() << " <li>Examples</li>"; } else if (fn->name().startsWith("examples-")) { out() << " <li><a href=\"all-examples.html\">Examples</a></li>"; - out() << " <li><a href=\"" << fn->name() << "\">" << title - << "</a></li>"; + out() << " <li>" << title << "</li>"; } else if (fn->name() == QString("namespaces.html")) { - out() << " <li><a href=\"namespaces.html\">All Namespaces</a></li>"; + out() << " <li>Namespaces</li>"; } else { - out() << " <li><a href=\"" << fn->name() << "\">" << title - << "</a></li>"; + out() << " <li>" << title << "</li>"; } } else if (node->subType() == Node::QmlClass) { out() << " <li><a href=\"qdeclarativeelements.html\">QML Elements</a></li>"; - out() << " <li><a href=\"" << fn->name() << "\">" << title - << "</a></li>"; + out() << " <li>" << title << "</li>"; } else if (node->subType() == Node::Example) { out() << " <li><a href=\"all-examples.html\">Examples</a></li>"; @@ -1775,16 +1762,12 @@ void HtmlGenerator::generateBreadCrumbs(const QString& title, QString t = CodeParser::titleFromName(name); out() << " <li><a href=\"" << name << "\">" << t << "</a></li>"; - out() << " <li><a href=\"" << sl.at(0) - << "-" << sl.at(sl.size()-1) << ".html\">" - << title << "</a></li>"; + out() << " <li>" << title << "</li>"; } } else if (node->type() == Node::Namespace) { - const NamespaceNode* nsn = static_cast<const NamespaceNode*>(node); - out() << " <li><a href=\"namespaces.html\">All Namespaces</a></li>"; - out() << " <li><a href=\"" << fileName(nsn) << "\">" << title - << "</a></li>"; + out() << " <li><a href=\"namespaces.html\">Namespaces</a></li>"; + out() << " <li>" << title << "</li>"; } } @@ -1814,31 +1797,51 @@ void HtmlGenerator::generateHeader(const QString& title, out() << " <title>" << shortVersion << protectEnc(title) << "</title>\n"; - out() << " <!--[if IE]>"; - out() << "<meta name=\"MSSmartTagsPreventParsing\" content=\"true\">"; - out() << "<meta http-equiv=\"imagetoolbar\" content=\"no\">"; - out() << "<![endif]-->"; - out() << "<!--[if lt IE 7]>"; - out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie6.css\">"; - out() << "<![endif]-->"; - out() << "<!--[if IE 7]>"; - out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie7.css\">"; - out() << "<![endif]-->"; - out() << "<!--[if IE 8]>"; - out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie8.css\">"; - out() << "<![endif]-->"; - - //out() << " <title>Qt Reference Documentation</title>"; - out() << " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/style.css\" />\n"; - out() << " <script src=\"scripts/jquery.js\" type=\"text/javascript\"></script>\n"; - out() << " <script src=\"scripts/functions.js\" type=\"text/javascript\"></script>\n"; - out() << "</head>\n"; if (offlineDocs) - out() << "<body class=\"offline\" onload=\"CheckEmptyAndLoadList();\">\n"; + { + out() << " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/OfflineStyle.css\" />"; + out() << "</head>\n"; + out() << "<body class=\"offline narrow\" >\n"; // narrow mainly for Creator + } else - out() << "<body class=\"\" onload=\"CheckEmptyAndLoadList();\">\n"; + { + out() << " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/style.css\"\n />"; + out() << " <!--[if IE]>\n"; + out() << "<meta name=\"MSSmartTagsPreventParsing\" content=\"true\">\n"; + out() << "<meta http-equiv=\"imagetoolbar\" content=\"no\">\n"; + out() << "<![endif]-->\n"; + out() << "<!--[if lt IE 7]>\n"; + out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie6.css\">\n"; + out() << "<![endif]-->\n"; + out() << "<!--[if IE 7]>\n"; + out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie7.css\">\n"; + out() << "<![endif]-->\n"; + out() << "<!--[if IE 8]>\n"; + out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie8.css\">\n"; + out() << "<![endif]-->\n"; + // jquery functions + out() << " <script src=\"scripts/jquery.js\" type=\"text/javascript\"></script>\n"; + out() << " <script src=\"scripts/functions.js\" type=\"text/javascript\"></script>\n"; + // menus and small docs js and css + out() << " <script src=\"./scripts/superfish.js\" type=\"text/javascript\"></script>\n"; + out() << " <script src=\"./scripts/narrow.js\" type=\"text/javascript\"></script>\n"; + out() << " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/superfish.css\" />"; + out() << " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/narrow.css\" />"; + + // syntax highlighter js and css + // out() << " <link type=\"text/css\" rel=\"stylesheet\" href=\"style/shCore.css\"/>\n"; + // out() << " <link type=\"text/css\" rel=\"stylesheet\" href=\"style/shThemeDefault.css\"/>\n"; + // out() << " <script type=\"text/javascript\" src=\"scripts/shCore.js\"></script>\n"; + // out() << " <script type=\"text/javascript\" src=\"scripts/shBrushCpp.js\"></script>\n"; + // out() << " <script type=\"text/javascript\">\n"; + // out() << " SyntaxHighlighter.all();\n"; + // out() << " </script>\n"; + + out() << "</head>\n"; + out() << "<body class=\"\" onload=\"CheckEmptyAndLoadList();\">\n"; + } #ifdef GENERATE_MAC_REFS if (mainPage) @@ -1880,8 +1883,16 @@ void HtmlGenerator::generateFooter(const Node *node) out() << QString(footer).replace("\\" + COMMAND_VERSION, myTree->version()) << QString(address).replace("\\" + COMMAND_VERSION, myTree->version()); - out() << " <script src=\"scripts/functions.js\" type=\"text/javascript\"></script>\n"; + + if (offlineDocs) + { out() << "</body>\n"; + } + else + { + out() << " <script src=\"scripts/functions.js\" type=\"text/javascript\"></script>\n"; + out() << "</body>\n"; + } out() << "</html>\n"; } @@ -1903,7 +1914,7 @@ void HtmlGenerator::generateBrief(const Node *node, CodeMarker *marker, void HtmlGenerator::generateIncludes(const InnerNode *inner, CodeMarker *marker) { if (!inner->includes().isEmpty()) { - out() << "<pre class=\"highlightedCode\">" + out() << "<pre class=\"highlightedCode brush: cpp\">" << trimmedTrailing(highlightedCode(indent(codeIndent, marker->markedUpIncludes(inner->includes())), marker,inner)) @@ -2127,6 +2138,8 @@ void HtmlGenerator::generateNavigationBar(const NavigationBar& bar, out() << "</a>]\n"; #endif } + if (fake->name() != QString("index.html")) + { if (bar.current.begin() != 0) { out() << "[<a href=\"" << "home" << ".html\">Home</a>]\n"; @@ -2138,6 +2151,7 @@ void HtmlGenerator::generateNavigationBar(const NavigationBar& bar, out() << "</a>]\n"; } out() << "</p>\n"; + } } } #endif diff --git a/tools/qdoc3/pagegenerator.cpp b/tools/qdoc3/pagegenerator.cpp index f0f14fe..13c83a8 100644 --- a/tools/qdoc3/pagegenerator.cpp +++ b/tools/qdoc3/pagegenerator.cpp @@ -45,7 +45,7 @@ #include <qfile.h> #include <qfileinfo.h> - +#include <qdebug.h> #include "pagegenerator.h" #include "tree.h" @@ -68,6 +68,110 @@ PageGenerator::~PageGenerator() endSubPage(); } +static QRegExp linkTag("(<@link node=\"([^\"]+)\">).*(</@link>)"); +static QRegExp funcTag("(<@func target=\"([^\"]*)\">)(.*)(</@func>)"); +static QRegExp typeTag("(<@(type|headerfile|func)(?: +[^>]*)?>)(.*)(</@\\2>)"); +static QRegExp spanTag("</@(?:comment|preprocessor|string|char)>"); +static QRegExp unknownTag("</?@[^>]*>"); + +bool PageGenerator::parseArg(const QString& src, + const QString& tag, + int* pos, + int n, + QStringRef* contents, + QStringRef* par1, + bool debug) +{ +#define SKIP_CHAR(c) \ + if (debug) \ + qDebug() << "looking for " << c << " at " << QString(src.data() + i, n - i); \ + if (i >= n || src[i] != c) { \ + if (debug) \ + qDebug() << " char '" << c << "' not found"; \ + return false; \ + } \ + ++i; + + +#define SKIP_SPACE \ + while (i < n && src[i] == ' ') \ + ++i; + + int i = *pos; + int j = i; + + // assume "<@" has been parsed outside + //SKIP_CHAR('<'); + //SKIP_CHAR('@'); + + if (tag != QStringRef(&src, i, tag.length())) { + if (0 && debug) + qDebug() << "tag " << tag << " not found at " << i; + return false; + } + + if (debug) + qDebug() << "haystack:" << src << "needle:" << tag << "i:" <<i; + + // skip tag + i += tag.length(); + + // parse stuff like: linkTag("(<@link node=\"([^\"]+)\">).*(</@link>)"); + if (par1) { + SKIP_SPACE; + // read parameter name + j = i; + while (i < n && src[i].isLetter()) + ++i; + if (src[i] == '=') { + if (debug) + qDebug() << "read parameter" << QString(src.data() + j, i - j); + SKIP_CHAR('='); + SKIP_CHAR('"'); + // skip parameter name + j = i; + while (i < n && src[i] != '"') + ++i; + *par1 = QStringRef(&src, j, i - j); + SKIP_CHAR('"'); + SKIP_SPACE; + } else { + if (debug) + qDebug() << "no optional parameter found"; + } + } + SKIP_SPACE; + SKIP_CHAR('>'); + + // find contents up to closing "</@tag> + j = i; + for (; true; ++i) { + if (i + 4 + tag.length() > n) + return false; + if (src[i] != '<') + continue; + if (src[i + 1] != '/') + continue; + if (src[i + 2] != '@') + continue; + if (tag != QStringRef(&src, i + 3, tag.length())) + continue; + if (src[i + 3 + tag.length()] != '>') + continue; + break; + } + + *contents = QStringRef(&src, j, i - j); + + i += tag.length() + 4; + + *pos = i; + if (debug) + qDebug() << " tag " << tag << " found: pos now: " << i; + return true; +#undef SKIP_CHAR +} + /*! This function is recursive. */ diff --git a/tools/qdoc3/pagegenerator.h b/tools/qdoc3/pagegenerator.h index 7ab7e5e..1aa24a1 100644 --- a/tools/qdoc3/pagegenerator.h +++ b/tools/qdoc3/pagegenerator.h @@ -80,10 +80,17 @@ class PageGenerator : public Generator QString naturalLanguage; QString outputEncoding; - QTextCodec *outputCodec; + QTextCodec* outputCodec; + bool parseArg(const QString& src, + const QString& tag, + int* pos, + int n, + QStringRef* contents, + QStringRef* par1 = 0, + bool debug = false); private: - QStack<QTextStream *> outStreamStack; + QStack<QTextStream*> outStreamStack; }; QT_END_NAMESPACE diff --git a/tools/qdoc3/qdoc3.pro b/tools/qdoc3/qdoc3.pro index 81ff93a..5bedc29 100644 --- a/tools/qdoc3/qdoc3.pro +++ b/tools/qdoc3/qdoc3.pro @@ -37,6 +37,7 @@ HEADERS += apigenerator.h \ cppcodeparser.h \ cpptoqsconverter.h \ dcfsection.h \ + ditaxmlgenerator.h \ doc.h \ editdistance.h \ generator.h \ @@ -81,6 +82,7 @@ SOURCES += apigenerator.cpp \ cppcodeparser.cpp \ cpptoqsconverter.cpp \ dcfsection.cpp \ + ditaxmlgenerator.cpp \ doc.cpp \ editdistance.cpp \ generator.cpp \ diff --git a/tools/qdoc3/test/assistant.qdocconf b/tools/qdoc3/test/assistant.qdocconf index 4bb0441..c4ea140 100644 --- a/tools/qdoc3/test/assistant.qdocconf +++ b/tools/qdoc3/test/assistant.qdocconf @@ -30,6 +30,7 @@ qhp.Assistant.extraFiles = images/bg_l.png \ images/page.png \ images/page_bg.png \ images/sprites-combined.png \ + images/arrow-down.png \ images/spinner.gif \ images/stylesheet-coffee-plastique.png \ images/taskmenuextension-example.png \ @@ -37,6 +38,7 @@ qhp.Assistant.extraFiles = images/bg_l.png \ images/dynamiclayouts-example.png \ scripts/functions.js \ scripts/jquery.js \ + style/OfflineStyle.css \ style/style_ie6.css \ style/style_ie7.css \ style/style_ie8.css \ diff --git a/tools/qdoc3/test/designer.qdocconf b/tools/qdoc3/test/designer.qdocconf index f2c6a14..1bb366d 100644 --- a/tools/qdoc3/test/designer.qdocconf +++ b/tools/qdoc3/test/designer.qdocconf @@ -30,6 +30,7 @@ qhp.Designer.extraFiles = images/bg_l.png \ images/page.png \ images/page_bg.png \ images/sprites-combined.png \ + images/arrow-down.png \ images/spinner.gif \ images/stylesheet-coffee-plastique.png \ images/taskmenuextension-example.png \ @@ -37,6 +38,7 @@ qhp.Designer.extraFiles = images/bg_l.png \ images/dynamiclayouts-example.png \ scripts/functions.js \ scripts/jquery.js \ + style/OfflineStyle.css \ style/style_ie6.css \ style/style_ie7.css \ style/style_ie8.css \ diff --git a/tools/qdoc3/test/images/bg_l.png b/tools/qdoc3/test/images/bg_l.png Binary files differnew file mode 100644 index 0000000..90b1da1 --- /dev/null +++ b/tools/qdoc3/test/images/bg_l.png diff --git a/tools/qdoc3/test/images/bg_l_blank.png b/tools/qdoc3/test/images/bg_l_blank.png Binary files differnew file mode 100644 index 0000000..5a9673d --- /dev/null +++ b/tools/qdoc3/test/images/bg_l_blank.png diff --git a/tools/qdoc3/test/images/bg_r.png b/tools/qdoc3/test/images/bg_r.png Binary files differnew file mode 100644 index 0000000..f0fb121 --- /dev/null +++ b/tools/qdoc3/test/images/bg_r.png diff --git a/tools/qdoc3/test/images/box_bg.png b/tools/qdoc3/test/images/box_bg.png Binary files differnew file mode 100644 index 0000000..3322f92 --- /dev/null +++ b/tools/qdoc3/test/images/box_bg.png diff --git a/tools/qdoc3/test/images/breadcrumb.png b/tools/qdoc3/test/images/breadcrumb.png Binary files differnew file mode 100644 index 0000000..0ded551 --- /dev/null +++ b/tools/qdoc3/test/images/breadcrumb.png diff --git a/tools/qdoc3/test/images/bullet_dn.png b/tools/qdoc3/test/images/bullet_dn.png Binary files differnew file mode 100644 index 0000000..f776247 --- /dev/null +++ b/tools/qdoc3/test/images/bullet_dn.png diff --git a/tools/qdoc3/test/images/bullet_gt.png b/tools/qdoc3/test/images/bullet_gt.png Binary files differnew file mode 100644 index 0000000..7561b4e --- /dev/null +++ b/tools/qdoc3/test/images/bullet_gt.png diff --git a/tools/qdoc3/test/images/bullet_sq.png b/tools/qdoc3/test/images/bullet_sq.png Binary files differnew file mode 100644 index 0000000..a84845e --- /dev/null +++ b/tools/qdoc3/test/images/bullet_sq.png diff --git a/tools/qdoc3/test/images/bullet_up.png b/tools/qdoc3/test/images/bullet_up.png Binary files differnew file mode 100644 index 0000000..285e741 --- /dev/null +++ b/tools/qdoc3/test/images/bullet_up.png diff --git a/tools/qdoc3/test/images/feedbackground.png b/tools/qdoc3/test/images/feedbackground.png Binary files differnew file mode 100644 index 0000000..3a38d99 --- /dev/null +++ b/tools/qdoc3/test/images/feedbackground.png diff --git a/tools/qdoc3/test/images/horBar.png b/tools/qdoc3/test/images/horBar.png Binary files differnew file mode 100644 index 0000000..100fe91 --- /dev/null +++ b/tools/qdoc3/test/images/horBar.png diff --git a/tools/qdoc3/test/images/page.png b/tools/qdoc3/test/images/page.png Binary files differnew file mode 100644 index 0000000..1db151b --- /dev/null +++ b/tools/qdoc3/test/images/page.png diff --git a/tools/qdoc3/test/images/page_bg.png b/tools/qdoc3/test/images/page_bg.png Binary files differnew file mode 100644 index 0000000..9b3bd99 --- /dev/null +++ b/tools/qdoc3/test/images/page_bg.png diff --git a/tools/qdoc3/test/images/sprites-combined.png b/tools/qdoc3/test/images/sprites-combined.png Binary files differnew file mode 100644 index 0000000..3a48b21 --- /dev/null +++ b/tools/qdoc3/test/images/sprites-combined.png diff --git a/tools/qdoc3/test/linguist.qdocconf b/tools/qdoc3/test/linguist.qdocconf index c02e009..4cb4cc7 100644 --- a/tools/qdoc3/test/linguist.qdocconf +++ b/tools/qdoc3/test/linguist.qdocconf @@ -30,13 +30,15 @@ qhp.Linguist.extraFiles = images/bg_l.png \ images/page.png \ images/page_bg.png \ images/sprites-combined.png \ - images/spinner.gif \ + images/arrow-down.png \ +s images/spinner.gif \ images/stylesheet-coffee-plastique.png \ images/taskmenuextension-example.png \ images/coloreditorfactoryimage.png \ images/dynamiclayouts-example.png \ scripts/functions.js \ scripts/jquery.js \ + style/OfflineStyle.css \ style/style_ie6.css \ style/style_ie7.css \ style/style_ie8.css \ diff --git a/tools/qdoc3/test/qdeclarative.qdocconf b/tools/qdoc3/test/qdeclarative.qdocconf index 0f2e381..74fd802 100644 --- a/tools/qdoc3/test/qdeclarative.qdocconf +++ b/tools/qdoc3/test/qdeclarative.qdocconf @@ -41,6 +41,7 @@ qhp.Qml.extraFiles = images/bg_l.png \ images/page.png \ images/page_bg.png \ images/sprites-combined.png \ + images/arrow-down.png \ images/spinner.png \ images/stylesheet-coffee-plastique.png \ images/taskmenuextension-example.png \ @@ -48,6 +49,7 @@ qhp.Qml.extraFiles = images/bg_l.png \ images/dynamiclayouts-example.png \ scripts/functions.js \ scripts/jquery.js \ + style/OfflineStyle.css \ style/style_ie6.css \ style/style_ie7.css \ style/style_ie8.css \ diff --git a/tools/qdoc3/test/qmake.qdocconf b/tools/qdoc3/test/qmake.qdocconf index 75a3c05..04fe6f8 100644 --- a/tools/qdoc3/test/qmake.qdocconf +++ b/tools/qdoc3/test/qmake.qdocconf @@ -30,6 +30,7 @@ qhp.qmake.extraFiles = images/bg_l.png \ images/page.png \ images/page_bg.png \ images/sprites-combined.png \ + images/arrow-down.png \ images/spinner.gif \ images/stylesheet-coffee-plastique.png \ images/taskmenuextension-example.png \ @@ -37,6 +38,7 @@ qhp.qmake.extraFiles = images/bg_l.png \ images/dynamiclayouts-example.png \ scripts/functions.js \ scripts/jquery.js \ + style/OfflineStyle.css \ style/style_ie6.css \ style/style_ie7.css \ style/style_ie8.css \ diff --git a/tools/qdoc3/test/qt-build-docs.qdocconf b/tools/qdoc3/test/qt-build-docs.qdocconf index 868e992..169900e 100644 --- a/tools/qdoc3/test/qt-build-docs.qdocconf +++ b/tools/qdoc3/test/qt-build-docs.qdocconf @@ -36,6 +36,7 @@ qhp.Qt.extraFiles = index.html \ images/page.png \ images/page_bg.png \ images/sprites-combined.png \ + images/arrow-down.png \ images/spinner.gif \ images/stylesheet-coffee-plastique.png \ images/taskmenuextension-example.png \ @@ -43,6 +44,7 @@ qhp.Qt.extraFiles = index.html \ images/dynamiclayouts-example.png \ scripts/functions.js \ scripts/jquery.js \ + style/OfflineStyle.css \ style/style_ie6.css \ style/style_ie7.css \ style/style_ie8.css \ diff --git a/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf b/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf index 90a2f18..586fb29 100644 --- a/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf +++ b/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf @@ -44,6 +44,7 @@ qhp.Qt.extraFiles = index.html \ images/page.png \ images/page_bg.png \ images/sprites-combined.png \ + images/arrow-down.png \ images/spinner.gif \ images/stylesheet-coffee-plastique.png \ images/taskmenuextension-example.png \ diff --git a/tools/qdoc3/test/qt-defines.qdocconf b/tools/qdoc3/test/qt-defines.qdocconf index 3e71d07..9e41d93 100644 --- a/tools/qdoc3/test/qt-defines.qdocconf +++ b/tools/qdoc3/test/qt-defines.qdocconf @@ -20,34 +20,49 @@ codeindent = 1 # See also qhp.Qt.extraFiles extraimages.HTML = qt-logo \ trolltech-logo \ - bg_l.png \ - bg_l_blank.png \ - bg_r.png \ - box_bg.png \ - breadcrumb.png \ - bullet_gt.png \ - bullet_dn.png \ - bullet_sq.png \ - bullet_up.png \ - feedbackground.png \ - horBar.png \ - page.png \ - page_bg.png \ - sprites-combined.png \ - spinner.gif \ - taskmenuextension-example.png \ - coloreditorfactoryimage.png \ - dynamiclayouts-example.png \ - stylesheet-coffee-plastique.png + bg_l.png \ + bg_l_blank.png \ + bg_ll_blank.png \ + bg_ul_blank.png \ + header_bg.png \ + bg_r.png \ + box_bg.png \ + breadcrumb.png \ + bullet_gt.png \ + bullet_dn.png \ + bullet_sq.png \ + bullet_up.png \ + arrow_down.png \ + feedbackground.png \ + horBar.png \ + page.png \ + page_bg.png \ + sprites-combined.png \ + spinner.gif \ + stylesheet-coffee-plastique.png \ + taskmenuextension-example.png \ + coloreditorfactoryimage.png \ + dynamiclayouts-example.png \ # This stuff is used by the new doc format. scriptdirs = $QT_SOURCE_TREE/doc/src/template/scripts styledirs = $QT_SOURCE_TREE/doc/src/template/style scripts.HTML = functions.js \ + shBrushCpp.js \ + shCore.js \ + shLegacy.js \ + narrow.js \ + superfish.js \ jquery.js styles.HTML = style.css \ + shCore.css \ + shThemeDefault.css \ + narrow.css \ + superfish.css \ + superfish_skin.css \ + OfflineStyle.css \ style_ie6.css \ style_ie7.css \ style_ie8.css diff --git a/tools/qdoc3/test/qt-html-templates.qdocconf b/tools/qdoc3/test/qt-html-templates.qdocconf index 3de9222..372a1e3 100644 --- a/tools/qdoc3/test/qt-html-templates.qdocconf +++ b/tools/qdoc3/test/qt-html-templates.qdocconf @@ -1,12 +1,19 @@ -HTML.stylesheets = style/style_ie6.css \ +HTML.stylesheets = style/style.css \ + style/OfflineStyle.css \ style/style_ie7.css \ style/style_ie8.css \ - style/style.css + style/style_ie6.css HTML.postheader = " <div class=\"header\" id=\"qtdocheader\">\n" \ + " <div class=\"content\"> \n" \ " <div id=\"nav-logo\">\n" \ " <a href=\"index.html\">Home</a></div>\n" \ " <a href=\"index.html\" class=\"qtref\"><span>Qt Reference Documentation</span></a>\n" \ + " <div id=\"narrowsearch\"><form onsubmit=\"return false;\" action=\"\" id=\"qtdocsearch\">\n" \ + " <fieldset>\n" \ + " <input type=\"text\" value=\"\" id=\"pageType\" name=\"searchstring\">\n" \ + " </fieldset>\n" \ + " </form></div>\n" \ " <div id=\"nav-topright\">\n" \ " <ul>\n" \ " <li class=\"nav-topright-home\"><a href=\"http://qt.nokia.com/\">Qt HOME</a></li>\n" \ @@ -21,9 +28,39 @@ HTML.postheader = " <div class=\"header\" id=\"qtdocheader\">\n" \ " <div id=\"shortCut\">\n" \ " <ul>\n" \ " <li class=\"shortCut-topleft-inactive\"><span><a href=\"index.html\">Qt 4.8</a></span></li>\n" \ - " <li class=\"shortCut-topleft-active\"><a href=\"http://qt.nokia.com/doc/\">ALL Qt VERSIONS" \ + " <li class=\"shortCut-topleft-active\"><a href=\"http://qt.nokia.com/doc/\">ALL VERSIONS" \ " </a></li>\n" \ " </ul>\n" \ + " </div>\n" \ + " <ul class=\"sf-menu sf-js-enabled sf-shadow\" id=\"narrowmenu\"> \n" \ + " <li><a href=\"#\">API Lookup</a> \n" \ + " <ul id=\"topmenuLook\"> \n" \ + " <li><a href=\"classes.html\">Class index</a></li> \n" \ + " <li><a href=\"functions.html\">Function index</a></li> \n" \ + " <li><a href=\"modules.html\">Modules</a></li> \n" \ + " <li><a href=\"namespaces.html\">Namespaces</a></li> \n" \ + " <li><a href=\"qtglobal.html\">Global stuff</a></li> \n" \ + " <li><a href=\"qdeclarativeelements.html\">QML elements</a></li> \n" \ + " </ul> \n" \ + " </li> \n" \ + " <li><a href=\"#\">Qt Topics</a> \n" \ + " <ul id=\"topmenuTopic\"> \n" \ + " <li><a href=\"qt-basic-concepts.html\">Basic Qt architecture</a></li> \n" \ + " <li><a href=\"declarativeui.html\">Device UI's & Qt Quick</a></li> \n" \ + " <li><a href=\"qt-gui-concepts.html\">Desktop UI components</a></li> \n" \ + " <li><a href=\"platform-specific.html\">Platform-specific info</a></li> \n" \ + " </ul> \n" \ + " </li> \n" \ + " <li><a href=\"#\">Examples</a> \n" \ + " <ul id=\"topmenuexample\"> \n" \ + " <li><a href=\"all-examples.html\">Examples</a></li> \n" \ + " <li><a href=\"tutorials.html\">Tutorials</a></li> \n" \ + " <li><a href=\"demos.html\">Demos</a></li> \n" \ + " <li><a href=\"qdeclarativeexamples.html\">QML Examples</a></li> \n" \ + " <li><a href=\"qdeclarativeexamples.html#Demos\">QML Demos</a></li> \n" \ + " </ul> \n" \ + " </li> \n" \ + " </ul> \n" \ " </div>\n" \ " </div>\n" \ " <div class=\"wrapper\">\n" \ @@ -35,14 +72,14 @@ HTML.postheader = " <div class=\"header\" id=\"qtdocheader\">\n" \ " <div class=\"searchlabel\">\n" \ " Search index:</div>\n" \ " <div class=\"search\">\n" \ - " <form id=\"qtdocsearch\" action=\"\">\n" \ + " <form id=\"qtdocsearch\" action=\"\" onsubmit=\"return false;\">\n" \ " <fieldset>\n" \ " <input type=\"text\" name=\"searchstring\" id=\"pageType\" value=\"\" />\n" \ " </fieldset>\n" \ " </form>\n" \ " </div>\n" \ " <div class=\"box first bottombar\" id=\"lookup\">\n" \ - " <h2><span></span>\n" \ + " <h2 title=\"API Lookup\"><span></span>\n" \ " API Lookup</h2>\n" \ " <div id=\"list001\" class=\"list\">\n" \ " <ul id=\"ul001\" >\n" \ @@ -56,7 +93,7 @@ HTML.postheader = " <div class=\"header\" id=\"qtdocheader\">\n" \ " </div>\n" \ " </div>\n" \ " <div class=\"box bottombar\" id=\"topics\">\n" \ - " <h2><span></span>\n" \ + " <h2 title=\"Qt Topics\"><span></span>\n" \ " Qt Topics</h2>\n" \ " <div id=\"list002\" class=\"list\">\n" \ " <ul id=\"ul002\" >\n" \ @@ -68,7 +105,7 @@ HTML.postheader = " <div class=\"header\" id=\"qtdocheader\">\n" \ " </div>\n" \ " </div>\n" \ " <div class=\"box\" id=\"examples\">\n" \ - " <h2><span></span>\n" \ + " <h2 title=\"Examples\"><span></span>\n" \ " Examples</h2>\n" \ " <div id=\"list003\" class=\"list\">\n" \ " <ul id=\"ul003\">\n" \ @@ -129,7 +166,7 @@ HTML.footer = " <!-- /div -->\n" \ " </div>\n" \ " <div id=\"blurpage\">\n" \ " </div>\n" \ - "<!-- <script type=\"text/javascript\">\n" \ + "<script type=\"text/javascript\">\n" \ " var _gaq = _gaq || [];\n" \ " _gaq.push([\'_setAccount\', \'UA-4457116-5\']);\n" \ " _gaq.push([\'_trackPageview\']);\n" \ @@ -138,4 +175,4 @@ HTML.footer = " <!-- /div -->\n" \ " ga.src = (\'https:\' == document.location.protocol ? \'https://ssl\' : \'http://www\') + \'.google-analytics.com/ga.js\';\n" \ " var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(ga, s);\n" \ " })();\n" \ - "</script> -->\n" + "</script>\n" diff --git a/tools/qdoc3/test/qt.qdocconf b/tools/qdoc3/test/qt.qdocconf index 3c70c8b..c59bdb4 100644 --- a/tools/qdoc3/test/qt.qdocconf +++ b/tools/qdoc3/test/qt.qdocconf @@ -28,13 +28,17 @@ qhp.Qt.indexRoot = qhp.Qt.extraFiles = index.html \ images/bg_l.png \ images/bg_l_blank.png \ - images/bg_r.png \ + images/bg_ll_blank.png \ + images/bg_ul_blank.png \ + images/header_bg.png \ + images/bg_r.png \ images/box_bg.png \ images/breadcrumb.png \ images/bullet_gt.png \ images/bullet_dn.png \ images/bullet_sq.png \ images/bullet_up.png \ + images/arrow_down.png \ images/feedbackground.png \ images/horBar.png \ images/page.png \ @@ -47,6 +51,17 @@ qhp.Qt.extraFiles = index.html \ images/dynamiclayouts-example.png \ scripts/functions.js \ scripts/jquery.js \ + scripts/shBrushCpp.js \ + scripts/shCore.js \ + scripts/shLegacy.js \ + scripts/narrow.js \ + scripts/superfish.js \ + style/shCore.css \ + style/shThemeDefault.css \ + style/narrow.css \ + style/superfish.css \ + style/superfish_skin.css \ + style/OfflineStyle.css \ style/style_ie6.css \ style/style_ie7.css \ style/style_ie8.css \ diff --git a/tools/qml/deviceorientation.cpp b/tools/qml/deviceorientation.cpp index e7c70d5..a13b912 100644 --- a/tools/qml/deviceorientation.cpp +++ b/tools/qml/deviceorientation.cpp @@ -47,7 +47,7 @@ class DefaultDeviceOrientation : public DeviceOrientation { Q_OBJECT public: - DefaultDeviceOrientation() : DeviceOrientation(), m_orientation(DeviceOrientation::Portrait) {} + DefaultDeviceOrientation() : DeviceOrientation(), m_orientation(DeviceOrientation::TopUp) {} Orientation orientation() const { return m_orientation; diff --git a/tools/qml/deviceorientation.h b/tools/qml/deviceorientation.h index d209005..fe73868 100644 --- a/tools/qml/deviceorientation.h +++ b/tools/qml/deviceorientation.h @@ -52,7 +52,14 @@ class DeviceOrientation : public QObject Q_OBJECT Q_ENUMS(Orientation) public: - enum Orientation { UnknownOrientation, Portrait, Landscape }; + enum Orientation { + UnknownOrientation, + TopUp, + TopDown, + LeftUp, + RightUp + }; + virtual Orientation orientation() const = 0; virtual void setOrientation(Orientation) = 0; diff --git a/tools/qml/deviceorientation_maemo.cpp b/tools/qml/deviceorientation_maemo.cpp index 9f12f3d..501ff79 100644 --- a/tools/qml/deviceorientation_maemo.cpp +++ b/tools/qml/deviceorientation_maemo.cpp @@ -48,11 +48,11 @@ class MaemoOrientation : public DeviceOrientation Q_OBJECT public: MaemoOrientation() - : DeviceOrientation(),m_current(Portrait), m_lastSeen(Portrait), m_lastSeenCount(0) + : DeviceOrientation(),m_current(TopUp), m_lastSeen(TopUp), m_lastSeenCount(0) { m_current = get(); if (m_current == UnknownOrientation) - m_current = Portrait; + m_current = TopUp; startTimer(100); } @@ -101,9 +101,13 @@ private: if (abs(az) > 850) { o = UnknownOrientation; } else if (ax < -750) { - o = Portrait; + o = LeftUp; + } else if (ax > 750) { + o = RightUp; } else if (ay < -750) { - o = Landscape; + o = TopUp; + } else if (ay > 750) { + o = TopDown; } return o; diff --git a/tools/qml/qmlruntime.cpp b/tools/qml/qmlruntime.cpp index fe323c1..f681303 100644 --- a/tools/qml/qmlruntime.cpp +++ b/tools/qml/qmlruntime.cpp @@ -367,7 +367,7 @@ QDeclarativeViewer::QDeclarativeViewer(QWidget *parent, Qt::WindowFlags flags) #endif , loggerWindow(new LoggerWidget()) , frame_stream(0), mb(0) - , portraitOrientation(0), landscapeOrientation(0) + , orientation(0) , showWarningsWindow(0) , m_scriptOptions(0) , tester(0) @@ -418,7 +418,7 @@ QDeclarativeViewer::QDeclarativeViewer(QWidget *parent, Qt::WindowFlags flags) if (!(flags & Qt::FramelessWindowHint)) { createMenu(menuBar(),0); - setPortrait(); + changeOrientation(orientation->actions().value(0)); } #if !defined(Q_OS_SYMBIAN) @@ -571,26 +571,25 @@ void QDeclarativeViewer::createMenu(QMenuBar *menu, QMenu *flatmenu) QMenu *propertiesMenu = settingsMenu->addMenu(tr("Properties")); - QActionGroup *orientation = new QActionGroup(parent); + orientation = new QActionGroup(parent); - QAction *toggleOrientation = new QAction(tr("&Toggle Orientation"), parent); - toggleOrientation->setCheckable(true); - toggleOrientation->setShortcut(QKeySequence("Ctrl+T")); - settingsMenu->addAction(toggleOrientation); - connect(toggleOrientation, SIGNAL(triggered()), this, SLOT(toggleOrientation())); + QAction *rotateOrientation = new QAction(tr("Rotate orientation"), parent); + rotateOrientation->setShortcut(QKeySequence("Ctrl+T")); + settingsMenu->addAction(rotateOrientation); + connect(rotateOrientation, SIGNAL(triggered()), this, SLOT(rotateOrientation())); orientation->setExclusive(true); - portraitOrientation = new QAction(tr("orientation: Portrait"), parent); - portraitOrientation->setCheckable(true); - connect(portraitOrientation, SIGNAL(triggered()), this, SLOT(setPortrait())); - orientation->addAction(portraitOrientation); - propertiesMenu->addAction(portraitOrientation); - - landscapeOrientation = new QAction(tr("orientation: Landscape"), parent); - landscapeOrientation->setCheckable(true); - connect(landscapeOrientation, SIGNAL(triggered()), this, SLOT(setLandscape())); - orientation->addAction(landscapeOrientation); - propertiesMenu->addAction(landscapeOrientation); + connect(orientation, SIGNAL(triggered(QAction*)), this, SLOT(changeOrientation(QAction*))); + + orientation->addAction(tr("orientation: TopUp")); + orientation->addAction(tr("orientation: LeftUp")); + orientation->addAction(tr("orientation: TopDown")); + orientation->addAction(tr("orientation: RightUp")); + QList<QAction *> actions = orientation->actions(); + for (int i=0; i<actions.count(); i++) { + propertiesMenu->addAction(actions[i]); + actions[i]->setCheckable(true); + } if (flatmenu) flatmenu->addSeparator(); @@ -624,21 +623,16 @@ void QDeclarativeViewer::proxySettingsChanged() reload (); } -void QDeclarativeViewer::setPortrait() -{ - DeviceOrientation::instance()->setOrientation(DeviceOrientation::Portrait); - portraitOrientation->setChecked(true); -} - -void QDeclarativeViewer::setLandscape() +void QDeclarativeViewer::rotateOrientation() { - DeviceOrientation::instance()->setOrientation(DeviceOrientation::Landscape); - landscapeOrientation->setChecked(true); -} + QAction *current = orientation->checkedAction(); + QList<QAction *> actions = orientation->actions(); + int index = actions.indexOf(current); + if (index < 0) + return; -void QDeclarativeViewer::toggleOrientation() -{ - DeviceOrientation::instance()->setOrientation(DeviceOrientation::instance()->orientation()==DeviceOrientation::Portrait?DeviceOrientation::Landscape:DeviceOrientation::Portrait); + QAction *newOrientation = actions[(index + 1) % actions.count()]; + changeOrientation(newOrientation); } void QDeclarativeViewer::toggleFullScreen() @@ -971,12 +965,7 @@ void QDeclarativeViewer::keyPressEvent(QKeyEvent *event) } else if (event->key() == Qt::Key_F9 || (event->key() == Qt::Key_9 && devicemode)) { toggleRecording(); } else if (event->key() == Qt::Key_F10) { - if (portraitOrientation) { - if (portraitOrientation->isChecked()) - setLandscape(); - else - setPortrait(); - } + rotateOrientation(); } QWidget::keyPressEvent(event); @@ -1181,6 +1170,23 @@ void QDeclarativeViewer::recordFrame() } } +void QDeclarativeViewer::changeOrientation(QAction *action) +{ + if (!action) + return; + action->setChecked(true); + + QString o = action->text().split(QLatin1Char(':')).value(1).trimmed(); + if (o == QLatin1String("TopUp")) + DeviceOrientation::instance()->setOrientation(DeviceOrientation::TopUp); + else if (o == QLatin1String("TopDown")) + DeviceOrientation::instance()->setOrientation(DeviceOrientation::TopDown); + else if (o == QLatin1String("LeftUp")) + DeviceOrientation::instance()->setOrientation(DeviceOrientation::LeftUp); + else if (o == QLatin1String("RightUp")) + DeviceOrientation::instance()->setOrientation(DeviceOrientation::RightUp); +} + void QDeclarativeViewer::orientationChanged() { if (canvas->resizeMode() == QDeclarativeView::SizeRootObjectToView) { diff --git a/tools/qml/qmlruntime.h b/tools/qml/qmlruntime.h index 5086e02..27bd217 100644 --- a/tools/qml/qmlruntime.h +++ b/tools/qml/qmlruntime.h @@ -124,7 +124,7 @@ public slots: void ffmpegFinished(int code); void showProxySettings (); void proxySettingsChanged (); - void toggleOrientation(); + void rotateOrientation(); void statusChanged(); void setSlowMode(bool); void launch(const QString &); @@ -140,9 +140,8 @@ private slots: void recordFrame(); void chooseRecordingOptions(); void pickRecordingFile(); - void setPortrait(); - void setLandscape(); void toggleFullScreen(); + void changeOrientation(QAction*); void orientationChanged(); void showWarnings(bool show); @@ -183,9 +182,7 @@ private: bool ffmpegAvailable; bool convertAvailable; - QAction *portraitOrientation; - QAction *landscapeOrientation; - + QActionGroup *orientation; QAction *showWarningsWindow; QString m_script; diff --git a/translations/assistant_hu.ts b/translations/assistant_hu.ts index e43070c..50e30d7 100644 --- a/translations/assistant_hu.ts +++ b/translations/assistant_hu.ts @@ -1,18 +1,18 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> -<TS version="2.0" language="hu"> +<TS version="2.0" language="hu_HU"> <context> <name>AboutDialog</name> <message> - <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+110"/> + <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+117"/> <source>&Close</source> - <translation>&Bezárás</translation> + <translation>Be&zárás</translation> </message> </context> <context> <name>AboutLabel</name> <message> - <location line="-14"/> + <location line="-15"/> <source>Warning</source> <translation>Figyelmeztetés</translation> </message> @@ -20,17 +20,91 @@ <location line="+1"/> <source>Unable to launch external application. </source> - <translation>Nem lehet külső alkalmazást elindítani.</translation> + <translation>A külső alkalmazás elindítása sikertelen. +</translation> </message> <message> - <location line="+1"/> + <location line="+0"/> <source>OK</source> <translation>OK</translation> </message> </context> <context> + <name>Assistant</name> + <message> + <location filename="../tools/assistant/tools/assistant/main.cpp" line="+177"/> + <source>Error registering documentation file '%1': %2</source> + <translation>Hiba a(z) '%1' dokumentáció fájl regisztrálásakor: %2</translation> + </message> + <message> + <location line="+39"/> + <source>Error: %1</source> + <translation>Hiba: %1</translation> + </message> + <message> + <location line="+42"/> + <source>Could not register documentation file +%1 + +Reason: +%2</source> + <translation>A dokumentációs fájl regisztrálása sikertelen +%1 + +Oka: +%2</translation> + </message> + <message> + <location line="+6"/> + <source>Documentation successfully registered.</source> + <translation>A dokumentáció regisztrálása sikerült.</translation> + </message> + <message> + <location line="+12"/> + <source>Could not unregister documentation file +%1 + +Reason: +%2</source> + <translation>A dokumentációs fájl eltávolítása sikertelen +%1 + +Oka: +%2</translation> + </message> + <message> + <location line="+8"/> + <source>Documentation successfully unregistered.</source> + <translation>A dokumentáció eltávolítása sikerült.</translation> + </message> + <message> + <location line="+55"/> + <source>Error reading collection file '%1': %2.</source> + <translation>Hiba a(z) '%1' gyűjteményfájl olvasásakor: %2.</translation> + </message> + <message> + <location line="+11"/> + <source>Error creating collection file '%1': %2.</source> + <translation>Hiba a(z) '%1' gyűjteményfájl létrehozásakor: %2.</translation> + </message> + <message> + <location line="+7"/> + <source>Error reading collection file '%1': %2</source> + <translation>Hiba a(z) '%1' gyűjteményfájl olvasásakor: %2</translation> + </message> + <message> + <location line="+53"/> + <source>Cannot load sqlite database driver!</source> + <translation>Az sqlite adatbázisdriver nem tölthető be!</translation> + </message> +</context> +<context> <name>BookmarkDialog</name> <message> + <source>Bookmarks</source> + <translation type="obsolete">Könyvjelzők</translation> + </message> + <message> <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui"/> <source>Add Bookmark</source> <translation>Könyvjelző hozzáadása</translation> @@ -43,96 +117,85 @@ <message> <location/> <source>Add in Folder:</source> - <translation>Hozzáadás dossziéban:</translation> + <translation>Hozzáadás ide:</translation> </message> <message> <location/> - <source>New Folder</source> - <translation>Új dosszié</translation> - </message> - <message> - <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+184"/> - <location line="+18"/> - <location line="+39"/> - <location line="+18"/> - <location line="+30"/> - <source>Bookmarks</source> - <translation>Könyvjelzők</translation> - </message> - <message> - <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui"/> <source>+</source> <translation>+</translation> </message> <message> - <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="-61"/> + <location/> + <source>New Folder</source> + <translation>Új mappa</translation> + </message> + <message> <source>Delete Folder</source> - <translation>Dosszié törlése</translation> + <translation type="obsolete">Mappa törlése</translation> </message> <message> - <location line="+1"/> <source>Rename Folder</source> - <translation>Dosszié átnevezése</translation> + <translation type="obsolete">Mappa átnevezése</translation> </message> </context> <context> <name>BookmarkManager</name> <message> - <location line="+435"/> <source>Bookmarks</source> - <translation>Könyvjelzők</translation> + <translation type="obsolete">Könyvjelzők</translation> </message> <message> - <location line="+37"/> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+151"/> + <source>Untitled</source> + <translation>Névtelen</translation> + </message> + <message> + <location line="+65"/> <source>Remove</source> - <translation>Áthelyezés</translation> + <translation>Törlés</translation> </message> <message> <location line="+1"/> <source>You are going to delete a Folder, this will also<br>remove it's content. Are you sure to continue?</source> - <translation>Egy olyan dossziét fog törölni, ami <br> törli annak tartalmát is. Biztos benne, hogy folytatja?</translation> + <translation>A mappa törlésekor a tartalma is megsemmisül.<br>Biztosan folytatja?</translation> </message> <message> - <location line="+143"/> - <location line="+9"/> - <source>New Folder</source> - <translation>Új Dosszié</translation> + <location line="+147"/> + <source>Manage Bookmarks...</source> + <translation>Könyvjelzők kezelése...</translation> </message> -</context> -<context> - <name>BookmarkWidget</name> <message> - <location line="-417"/> - <source>Filter:</source> - <translation>Szűrő:</translation> + <location line="+3"/> + <source>Add Bookmark...</source> + <translation>Könyvjelző hozzáadása...</translation> </message> <message> - <location line="+33"/> - <source>Remove</source> - <translation>Eltávolítás</translation> + <location line="+1"/> + <source>Ctrl+D</source> + <translation></translation> </message> <message> - <location line="-79"/> + <location line="+68"/> <source>Delete Folder</source> - <translation>Dosszié törlése</translation> + <translation>Mappa törlése</translation> </message> <message> <location line="+1"/> <source>Rename Folder</source> - <translation>Dosszié átnevezése</translation> + <translation>Mappa átnevezése</translation> </message> <message> <location line="+2"/> <source>Show Bookmark</source> - <translation>Könyvjelző megjelenítése</translation> + <translation>Könyvjelző megnyitása</translation> </message> <message> <location line="+1"/> <source>Show Bookmark in New Tab</source> - <translation>Könyvjelző megjelenítése új lapon</translation> + <translation>Könyvjelző megnyitása új fülön</translation> </message> <message> - <location line="+3"/> + <location line="+2"/> <source>Delete Bookmark</source> <translation>Könyvjelző törlése</translation> </message> @@ -142,64 +205,165 @@ <translation>Könyvjelző átnevezése</translation> </message> <message> - <location line="+62"/> + <source>New Folder</source> + <translation type="obsolete">Új mappa</translation> + </message> +</context> +<context> + <name>BookmarkWidget</name> + <message> + <source>Filter:</source> + <translation type="obsolete">Szűrő:</translation> + </message> + <message> + <source>Remove</source> + <translation type="obsolete">Törlés</translation> + </message> + <message> + <source>Delete Folder</source> + <translation type="obsolete">Mappa törlése</translation> + </message> + <message> + <source>Rename Folder</source> + <translation type="obsolete">Mappa átnevezése</translation> + </message> + <message> + <source>Show Bookmark</source> + <translation type="obsolete">Könyvjelző megnyitása</translation> + </message> + <message> + <source>Show Bookmark in New Tab</source> + <translation type="obsolete">Könyvjelző megnyitása új fülön</translation> + </message> + <message> + <source>Delete Bookmark</source> + <translation type="obsolete">Könyvjelző törlése</translation> + </message> + <message> + <source>Rename Bookmark</source> + <translation type="obsolete">Könyvjelző átnevezése</translation> + </message> + <message> <source>Add</source> - <translation>Hozzáadás</translation> + <translation type="obsolete">Hozzáadás</translation> </message> </context> <context> <name>CentralWidget</name> <message> - <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+239"/> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+121"/> <source>Add new page</source> - <translation>Új lap hozzáadása</translation> + <translation>Új fül hozzáadása</translation> </message> <message> <location line="+9"/> <source>Close current page</source> - <translation>Aktuális lap bezárása</translation> + <translation>Az aktuális fül bezárása</translation> </message> <message> - <location line="+312"/> + <location line="+287"/> <source>Print Document</source> <translation>Dokumentum nyomtatása</translation> </message> <message> - <location line="+130"/> + <location line="+126"/> <location line="+2"/> <source>unknown</source> <translation>ismeretlen</translation> </message> <message> - <location line="+93"/> + <location line="+101"/> <source>Add New Page</source> - <translation>Új lap hozzáadása</translation> + <translation>Új fül hozzáadása</translation> </message> <message> <location line="+3"/> <source>Close This Page</source> - <translation>Lap bezárása</translation> + <translation>Az aktuális fül bezárása</translation> </message> <message> <location line="+3"/> <source>Close Other Pages</source> - <translation>Többi lap bezárása</translation> + <translation>A többi fül bezárása</translation> </message> <message> <location line="+5"/> <source>Add Bookmark for this Page...</source> - <translation>Könyvjelző hozzáadása ehhez a laphoz...</translation> + <translation>A lap mentése könyvjelzőként...</translation> </message> <message> - <location line="+235"/> + <location line="+264"/> <source>Search</source> <translation>Keresés</translation> </message> </context> <context> + <name>CmdLineParser</name> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+137"/> + <source>Unknown option: %1</source> + <translation>Ismeretlen opció: %1</translation> + </message> + <message> + <location line="+33"/> + <source>The collection file '%1' does not exist.</source> + <translation>A(z) '%1' gyűjteményfájl nem található.</translation> + </message> + <message> + <location line="+3"/> + <source>Missing collection file.</source> + <translation>Hiányzó gyűjteményfájl.</translation> + </message> + <message> + <location line="+13"/> + <source>Invalid URL '%1'.</source> + <translation>Érvénytelen URL: '%1'.</translation> + </message> + <message> + <location line="+2"/> + <source>Missing URL.</source> + <translation>Hiányzó URL.</translation> + </message> + <message> + <location line="+36"/> + <source>Unknown widget: %1</source> + <translation>Ismeretlen elem: %1</translation> + </message> + <message> + <location line="+2"/> + <source>Missing widget.</source> + <translation>Hiányzó elem.</translation> + </message> + <message> + <location line="+23"/> + <source>The Qt help file '%1' does not exist.</source> + <translation>A(z) '%1' Qt súgófájl nem létezik.</translation> + </message> + <message> + <location line="+4"/> + <source>Missing help file.</source> + <translation>Hiányzó súgófájl.</translation> + </message> + <message> + <location line="+10"/> + <source>Missing filter argument.</source> + <translation>Hiányzó szűrőparaméter.</translation> + </message> + <message> + <location line="+20"/> + <source>Error</source> + <translation>Hiba</translation> + </message> + <message> + <location line="+2"/> + <source>Notice</source> + <translation>Információ</translation> + </message> +</context> +<context> <name>ContentWindow</name> <message> - <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+158"/> + <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+173"/> <source>Open Link</source> <translation>Link megnyitása</translation> </message> @@ -214,40 +378,35 @@ <message> <location filename="../tools/assistant/tools/assistant/filternamedialog.ui"/> <source>Add Filter Name</source> - <translation>Szűrő név hozzáadása</translation> + <translation>Szűrőnév hozzáadása</translation> </message> <message> <location/> <source>Filter Name:</source> - <translation>Szűrő név:</translation> + <translation>Szűrő neve:</translation> </message> </context> <context> <name>FindWidget</name> <message> - <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-918"/> <source>Previous</source> - <translation>Előző</translation> + <translation type="obsolete">Előző</translation> </message> <message> - <location line="+4"/> <source>Next</source> - <translation>Következő</translation> + <translation type="obsolete">Következő</translation> </message> <message> - <location line="+4"/> <source>Case Sensitive</source> - <translation>Kis és nagybetű érzékeny</translation> + <translation type="obsolete">Kis/nagybetű érzékeny</translation> </message> <message> - <location line="+3"/> <source>Whole words</source> - <translation>Egész szavakat</translation> + <translation type="obsolete">Teljes szó</translation> </message> <message> - <location line="+12"/> <source><img src=":/trolltech/assistant/images/wrap.png">&nbsp;Search wrapped</source> - <translation><img src=":/trolltech/assistant/images/wrap.png">&nbsp;Keresés tördelése</translation> + <translation type="obsolete"><img src=":/trolltech/assistant/images/wrap.png">&nbsp;A keresés megszakítva</translation> </message> </context> <context> @@ -255,77 +414,77 @@ <message> <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/> <source>Font</source> - <translation>Betű</translation> + <translation>Betűtípus</translation> </message> <message> <location line="+11"/> <source>&Writing system</source> - <translation>Rendszer &írása</translation> + <translation>Írás&rendszer</translation> </message> <message> <location line="+3"/> <source>&Family</source> - <translation>&Család</translation> + <translation>Betű&típus</translation> </message> <message> <location line="+4"/> <source>&Style</source> - <translation>&Stílus</translation> + <translation>Betű&stílus</translation> </message> <message> <location line="+4"/> <source>&Point size</source> - <translation>&Pont méret</translation> + <translation>Betű&méret</translation> </message> </context> <context> <name>HelpViewer</name> <message> - <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+489"/> <source>Help</source> - <translation>Segítség</translation> + <translation type="obsolete">Súgó</translation> </message> <message> - <location line="+1"/> <source>OK</source> - <translation>OK</translation> + <translation type="obsolete">OK</translation> </message> <message> - <location line="-62"/> + <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+58"/> + <source><title>about:blank</title></source> + <translation></translation> + </message> + <message> + <location line="+6"/> <source><title>Error 404...</title><div align="center"><br><br><h1>The page could not be found</h1><br><h3>'%1'</h3></div></source> - <translation><title>404-es hiba...</title><div align="center"><br><br><h1>A lap nem található </h1><br><h3>'%1'</h3></div></translation> + <translation><title>404-es hiba...</title><div align="center"><br><br><h1>A lap nem található</h1><br><h3>'%1'</h3></div></translation> </message> <message> - <location line="+125"/> <source>Copy &Link Location</source> - <translation>&Link címének másolása</translation> + <translation type="obsolete">&Link címének másolása</translation> </message> <message> - <location line="+3"/> <source>Open Link in New Tab Ctrl+LMB</source> - <translation>Link megnyitása új lapon Ctrl+LMB</translation> + <translation type="obsolete">Link megnyitása új lapon Ctrl+LMB</translation> </message> <message> - <location line="-275"/> <source>Open Link in New Tab</source> - <translation>Link megnyitása új lapon</translation> + <translation type="obsolete">Link megnyitása új lapon</translation> </message> <message> - <location line="+209"/> <source>Unable to launch external application. </source> - <translation>Nem lehet külső alkalmazást indítani.</translation> + <translation type="obsolete">A külső alkalmazás elindítása sikertelen. +</translation> </message> </context> <context> <name>IndexWindow</name> <message> - <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+66"/> + <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+68"/> <source>&Look for:</source> - <translation>&Keresés:</translation> + <translation>&Amit keres:</translation> </message> <message> - <location line="+68"/> + <location line="+74"/> <source>Open Link</source> <translation>Link megnyitása</translation> </message> @@ -339,36 +498,36 @@ <name>InstallDialog</name> <message> <location filename="../tools/assistant/tools/assistant/installdialog.ui"/> - <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+76"/> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+78"/> <source>Install Documentation</source> - <translation></translation> + <translation>Dokumentáció telepítése</translation> </message> <message> - <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+30"/> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+33"/> <source>Downloading documentation info...</source> - <translation>Dokumentum információ letöltése...</translation> + <translation>A dokumentáció információinak letöltése...</translation> </message> <message> - <location line="+48"/> + <location line="+51"/> <source>Download canceled.</source> - <translation>Letöltés vmegszakítva.</translation> + <translation>Letöltés megszakítva.</translation> </message> <message> - <location line="+26"/> - <location line="+78"/> + <location line="+28"/> + <location line="+79"/> <location line="+27"/> <source>Done.</source> <translation>Kész.</translation> </message> <message> - <location line="-90"/> + <location line="-91"/> <source>The file %1 already exists. Do you want to overwrite it?</source> - <translation>A(z) %1 fájl már létezik. Felül szeretné írni?</translation> + <translation>A(z) '%1' nevű fájl már létezik. Felülírja?</translation> </message> <message> <location line="+11"/> <source>Unable to save the file %1: %2.</source> - <translation>Nem lehet elmenteni a(z) %1 fájlt: %2.</translation> + <translation>A(z) %1 mentése sikertelen: %2.</translation> </message> <message> <location line="+8"/> @@ -376,37 +535,38 @@ <translation>%1 letöltése...</translation> </message> <message> - <location line="+19"/> + <location line="+20"/> <location line="+42"/> - <location line="+38"/> + <location line="+40"/> <source>Download failed: %1.</source> - <translation>Nem sikerült a letöltés: %1.</translation> + <translation>A letöltés sikertelen: %1.</translation> </message> <message> - <location line="-70"/> + <location line="-72"/> <source>Documentation info file is corrupt!</source> - <translation>Dokumentum információ sérült!</translation> + <translation>A dokumentáció információs fájlja sérült!</translation> </message> <message> <location line="+37"/> <source>Download failed: Downloaded file is corrupted.</source> - <translation>Nem sikerült letölteni: A letöltött fájl sérült.</translation> + <translation>A letöltés sikertelen: a letöltött fájl sérült.</translation> </message> <message> <location line="+2"/> <source>Installing documentation %1...</source> - <translation>%1 dokumentáció telepítése...</translation> + <translation>Dokumentáció telepítése %1...</translation> </message> <message> - <location line="+22"/> + <location line="+23"/> <source>Error while installing documentation: %1</source> - <translation>Hiba történt a dokumentáció telepítése közben: %1</translation> + <translation>Hiba a dokumentáció telepítésekor: +%1</translation> </message> <message> <location filename="../tools/assistant/tools/assistant/installdialog.ui"/> <source>Available Documentation:</source> - <translation>Elérhető dokumentáció:</translation> + <translation>Elérhető dokumentációk:</translation> </message> <message> <location/> @@ -416,7 +576,7 @@ <message> <location/> <source>Cancel</source> - <translation>Mégse</translation> + <translation>Mégsem</translation> </message> <message> <location/> @@ -437,20 +597,20 @@ <context> <name>MainWindow</name> <message> - <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+110"/> - <location line="+383"/> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+123"/> + <location line="+369"/> <source>Index</source> <translation>Index</translation> </message> <message> - <location line="-377"/> - <location line="+375"/> + <location line="-363"/> + <location line="+361"/> <source>Contents</source> <translation>Tartalom</translation> </message> <message> - <location line="-370"/> - <location line="+374"/> + <location line="-354"/> + <location line="+358"/> <source>Bookmarks</source> <translation>Könyvjelzők</translation> </message> @@ -460,27 +620,25 @@ <translation>Keresés</translation> </message> <message> - <location line="-364"/> - <location line="+207"/> - <location line="+514"/> + <location line="-338"/> + <location line="+680"/> + <location line="+284"/> <source>Qt Assistant</source> - <translation>Qt Assistant</translation> + <translation>Qt Asszisztens</translation> </message> <message> - <location line="-546"/> - <location line="+5"/> <source>Unfiltered</source> - <translation>Szűrés nélküli</translation> + <translation type="obsolete">Szűrő kikapcsolása</translation> </message> <message> - <location line="+107"/> + <location line="-705"/> <source>Page Set&up...</source> - <translation>Lap Beállí&tás...</translation> + <translation>&Oldalbeállítás...</translation> </message> <message> <location line="+2"/> <source>Print Preview...</source> - <translation>Nyomtatási előnézet...</translation> + <translation>Nyomtatási kép...</translation> </message> <message> <location line="+3"/> @@ -488,29 +646,34 @@ <translation>&Nyomtatás...</translation> </message> <message> - <location line="+7"/> + <location line="-10"/> <source>New &Tab</source> - <translation>Új &Lap</translation> + <translation>Új &fül</translation> </message> <message> - <location line="+3"/> + <location line="+17"/> <source>&Close Tab</source> - <translation>Lap &bezárása</translation> + <translation>Fül be&zárása</translation> </message> <message> - <location line="+4"/> + <location line="+5"/> <source>&Quit</source> <translation>&Kilépés</translation> </message> <message> - <location line="+5"/> + <location line="+3"/> + <source>CTRL+Q</source> + <translation></translation> + </message> + <message> + <location line="+6"/> <source>&Copy selected Text</source> - <translation>Kiválasztott szöveg &másolása</translation> + <translation>A kijelölés &másolása</translation> </message> <message> <location line="+8"/> <source>&Find in Text...</source> - <translation>&Keresés szövegben...</translation> + <translation>Ke&resés a szövegben...</translation> </message> <message> <location line="+2"/> @@ -520,12 +683,12 @@ <message> <location line="+4"/> <source>Find &Next</source> - <translation>&Következő keresés</translation> + <translation>Követke&ző keresése</translation> </message> <message> <location line="+4"/> <source>Find &Previous</source> - <translation>&Előző keresés</translation> + <translation>&Előző keresése</translation> </message> <message> <location line="+5"/> @@ -535,42 +698,42 @@ <message> <location line="+4"/> <source>Zoom &in</source> - <translation>&Nagyítás</translation> + <translation>Na&gyítás</translation> </message> <message> <location line="+6"/> <source>Zoom &out</source> - <translation>&Kicsinyítés</translation> + <translation>Ki&csinyítés</translation> </message> <message> <location line="+6"/> <source>Normal &Size</source> - <translation>Normál &méret</translation> + <translation>Normá&l méret</translation> </message> <message> <location line="+4"/> <source>Ctrl+0</source> - <translation>Ctrl + 0</translation> + <translation></translation> </message> <message> <location line="+5"/> <source>ALT+C</source> - <translation>ALT + C</translation> + <translation></translation> </message> <message> <location line="+2"/> <source>ALT+I</source> - <translation>ALT + l</translation> + <translation></translation> </message> <message> <location line="+4"/> <source>ALT+S</source> - <translation>ALT + S</translation> + <translation></translation> </message> <message> <location line="+3"/> <source>&Home</source> - <translation>&Otthon</translation> + <translation>Kezdőla&p</translation> </message> <message> <location line="+4"/> @@ -585,7 +748,7 @@ <message> <location line="+6"/> <source>Sync with Table of Contents</source> - <translation>Tartalomjegyzékkel való szinkronizálás</translation> + <translation>Szinkronizálás a tartalomjegyzékkel</translation> </message> <message> <location line="+2"/> @@ -595,57 +758,61 @@ <message> <location line="+5"/> <source>Next Page</source> - <translation>Következő lap</translation> + <translation>Következő oldal</translation> </message> <message> <location line="+1"/> <source>Ctrl+Alt+Right</source> - <translation>Ctrl+Alt+Right</translation> + <translation></translation> </message> <message> <location line="+3"/> <source>Previous Page</source> - <translation>Előző lap</translation> + <translation>Előző oldal</translation> </message> <message> <location line="+1"/> <source>Ctrl+Alt+Left</source> - <translation>Ctrl+Alt+Left</translation> + <translation></translation> + </message> + <message> + <location line="+596"/> + <source>Could not register file '%1': %2</source> + <translation>A(z) '%1' fájl regisztrálása sikertelen: %2</translation> </message> <message> - <location line="+4"/> <source>Add Bookmark...</source> - <translation>Könyvjelző hozzáadása...</translation> + <translation type="obsolete">Könyvjelző hozzáadása...</translation> </message> <message> - <location line="+5"/> + <location line="-589"/> <source>About...</source> <translation>Névjegy...</translation> </message> <message> - <location line="+16"/> + <location line="+21"/> <source>Navigation Toolbar</source> <translation>Navigációs eszköztár</translation> </message> <message> - <location line="+76"/> + <location line="+69"/> <source>Toolbars</source> - <translation>Eszköztár</translation> + <translation>Eszköztárak</translation> </message> <message> - <location line="+15"/> + <location line="+16"/> <source>Filter Toolbar</source> - <translation>Eszköztár szűrő</translation> + <translation>Szűrő eszköztár</translation> </message> <message> <location line="+2"/> <source>Filtered by:</source> - <translation>Szűrési feltétel:</translation> + <translation>Szűrés alapja: </translation> </message> <message> - <location line="+25"/> + <location line="+26"/> <source>Address Toolbar</source> - <translation>Eszköztár cím</translation> + <translation>Cím eszköztár</translation> </message> <message> <location line="+4"/> @@ -653,27 +820,27 @@ <translation>Cím:</translation> </message> <message> - <location line="+114"/> + <location line="+112"/> <source>Could not find the associated content item.</source> - <translation>Nem sikerült az összekapcsolt tartalom elemet megtalálni.</translation> + <translation>A hozzárendelt tartalom nem található.</translation> </message> <message> - <location line="+71"/> + <location line="+60"/> <source>About %1</source> - <translation>%1-ről</translation> + <translation>%1 névjegye</translation> </message> <message> - <location line="+114"/> + <location line="+175"/> <source>Updating search index</source> <translation>Keresési index frissítése</translation> </message> <message> - <location line="-640"/> + <location line="-669"/> <source>Looking for Qt Documentation...</source> <translation>Qt dokumentáció keresése...</translation> </message> <message> - <location line="+241"/> + <location line="+227"/> <source>&Window</source> <translation>&Ablak</translation> </message> @@ -685,22 +852,22 @@ <message> <location line="+1"/> <source>Ctrl+M</source> - <translation>Ctrl + M</translation> + <translation></translation> </message> <message> <location line="-2"/> <source>Zoom</source> - <translation>Zoomolás</translation> + <translation>Nagyítás</translation> </message> <message> - <location line="-159"/> + <location line="-169"/> <source>&File</source> <translation>&Fájl</translation> </message> <message> - <location line="+25"/> + <location line="+32"/> <source>&Edit</source> - <translation>&Szerkesztés</translation> + <translation>S&zerkesztés</translation> </message> <message> <location line="+27"/> @@ -710,51 +877,46 @@ <message> <location line="+30"/> <source>&Go</source> - <translation>&Gyerünk</translation> + <translation>&Előre</translation> </message> <message> <location line="+2"/> <source>ALT+Home</source> - <translation>ALT+Home</translation> + <translation></translation> </message> <message> - <location line="+29"/> + <location line="+30"/> <source>&Bookmarks</source> - <translation>&Könyvjelzők</translation> + <translation>Könyv&jelzők</translation> </message> <message> - <location line="+5"/> + <location line="+2"/> <source>&Help</source> - <translation>&Segítség</translation> + <translation>&Súgó</translation> </message> <message> - <location line="-40"/> + <location line="-38"/> <source>ALT+O</source> - <translation>ALT + 0</translation> - </message> - <message> - <location line="+38"/> - <source>CTRL+D</source> - <translation>CTRL+D</translation> + <translation></translation> </message> </context> <context> <name>PreferencesDialog</name> <message> - <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+259"/> - <location line="+43"/> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+252"/> + <location line="+44"/> <source>Add Documentation</source> <translation>Dokumentáció hozzáadása</translation> </message> <message> - <location line="-43"/> + <location line="-44"/> <source>Qt Compressed Help Files (*.qch)</source> - <translation>Qt tömörített súgó fájlok (*.qch)</translation> + <translation>Qt tömörített súgófájlok (*.qch)</translation> </message> <message> - <location line="+37"/> + <location line="+38"/> <source>The specified file is not a valid Qt Help File!</source> - <translation>A meghatározott fájl egy érvénytelen Qt Súgó fájl!</translation> + <translation>A megadott fájl nem Qt súgófájl!</translation> </message> <message> <location line="-8"/> @@ -762,19 +924,19 @@ <translation>A(z) %1 névtér már regisztrálva van!</translation> </message> <message> - <location line="+31"/> + <location line="+32"/> <source>Remove Documentation</source> <translation>Dokumentáció eltávolítása</translation> </message> <message> <location line="+1"/> <source>Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents.</source> - <translation>Néhány dokumentum jelenleg az Assistant hivatkozásban lett megnyitva, amely az a dokumentum, amit megpróbál eltávolítani. A dokumentum eltávolítása be fogja zárni azokat a dokumentumokat.</translation> + <translation>Az eltávolítani kívánt dokumentációból néhány dokumentum jelenleg meg van nyitva az Asszisztensben. A dokumentáció eltávolításával ezen dokumentumok automatikusan bezárulnak.</translation> </message> <message> <location line="+2"/> <source>Cancel</source> - <translation>Mégse</translation> + <translation>Mégsem</translation> </message> <message> <location line="+1"/> @@ -782,9 +944,9 @@ <translation>OK</translation> </message> <message> - <location line="+88"/> + <location line="+83"/> <source>Use custom settings</source> - <translation>Szokásos beállítások használata</translation> + <translation>Egyéni beállítások használata</translation> </message> </context> <context> @@ -797,12 +959,12 @@ <message> <location/> <source>Fonts</source> - <translation>Betűk</translation> + <translation>Betűtípus</translation> </message> <message> <location/> <source>Font settings:</source> - <translation>Betű beállítások:</translation> + <translation>Betűtípus beállítása:</translation> </message> <message> <location/> @@ -822,17 +984,17 @@ <message> <location/> <source>Filter:</source> - <translation>Szűrők:</translation> + <translation>Szűrő:</translation> </message> <message> <location/> <source>Attributes:</source> - <translation>Attrubútumok:</translation> + <translation>Attribútumok:</translation> </message> <message> <location/> <source>1</source> - <translation>1</translation> + <translation></translation> </message> <message> <location/> @@ -842,7 +1004,7 @@ <message> <location/> <source>Remove</source> - <translation>Eltávolítás</translation> + <translation>Törlés</translation> </message> <message> <location/> @@ -867,37 +1029,38 @@ <message> <location/> <source>Current Page</source> - <translation>Aktuális lap</translation> + <translation>Aktuális oldal</translation> </message> <message> <location/> <source>Restore to default</source> - <translation>Alapértelmezett beállítások visszaállítása</translation> + <translation>Alapértelmezés</translation> </message> <message> <location/> <source>Homepage</source> - <translation>Honlap</translation> + <translation>Kezdőlap</translation> </message> <message> <location/> <source>On help start:</source> - <translation>Súgó indításra:</translation> + <translation>A súgó indításakor:</translation> </message> <message> <location/> <source>Show my home page</source> - <translation>Honlapom megjelenítése</translation> + <translation>Mutassa a kezdőlapomat</translation> </message> <message> <location/> <source>Show a blank page</source> - <translation>Egy üres lap megjelenítése</translation> + <translation>Mutasson egy üres lapot</translation> </message> <message> <location/> <source>Show my tabs from last session</source> - <translation>A lapjaim megjelenításe a legutolsó szakaszból</translation> + <translatorcomment>Too long...</translatorcomment> + <translation>Mutassa az előzőleg megnyitott füleket</translation> </message> <message> <location/> @@ -908,131 +1071,111 @@ <context> <name>QObject</name> <message> - <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+112"/> <source>The specified collection file does not exist!</source> - <translation>A meghatározott gyűjtemény fájl nem létezik!</translation> + <translation type="obsolete">A megadott gyűjtemény nem található!</translation> </message> <message> - <location line="+4"/> <source>Missing collection file!</source> - <translation>Hiányzó gyűjtemény fájl!</translation> + <translation type="obsolete">A gyűjtemény fájl hiányzik!</translation> </message> <message> - <location line="+9"/> <source>Invalid URL!</source> - <translation>Érvénytelen URL!</translation> + <translation type="obsolete">Az URL érvénytelen!</translation> </message> <message> - <location line="+4"/> <source>Missing URL!</source> - <translation>Hiányzó URL!</translation> + <translation type="obsolete">Az URL hiányzik!</translation> </message> <message> - <location line="+17"/> - <location line="+19"/> - <location line="+19"/> <source>Unknown widget: %1</source> - <translation>Ismeretlen widget: %1</translation> + <translation type="obsolete">Ismeretlen elem: %1</translation> </message> <message> - <location line="-34"/> - <location line="+19"/> - <location line="+19"/> <source>Missing widget!</source> - <translation>Hiányzó widget!</translation> + <translation type="obsolete">Az elem hiányzik!</translation> </message> <message> - <location line="+7"/> - <location line="+12"/> <source>The specified Qt help file does not exist!</source> - <translation>A meghatározott Qt súgó fájl nem létezik!</translation> + <translation type="obsolete">A megadott Qt súgófájl nem található!</translation> </message> <message> - <location line="-7"/> - <location line="+12"/> <source>Missing help file!</source> - <translation>Hiányzó súgó fájl!</translation> + <translation type="obsolete">A súgófájl hiányzik!</translation> </message> <message> - <location line="+7"/> <source>Missing filter argument!</source> - <translation>Hiányzó szűrő argumentum!</translation> + <translation type="obsolete">A szűrőparaméter hiányzik!</translation> </message> <message> - <location line="+12"/> <source>Unknown option: %1</source> - <translation>Ismeretlen opció: %1</translation> + <translation type="obsolete">Ismeretlen opció: %1</translation> </message> <message> - <location line="+30"/> - <location line="+2"/> <source>Qt Assistant</source> - <translation>Qt Assistant</translation> + <translation type="obsolete">Qt Asszisztens</translation> </message> <message> - <location filename="../tools/assistant/tools/assistant/main.cpp" line="+225"/> <source>Could not register documentation file %1 Reason: %2</source> - <translation>Nem sikerült a dokumentációs fájl regisztrálása + <translation type="obsolete">A dokumentációs fájl regisztrálása sikertelen %1 -Ok: +Oka: %2</translation> </message> <message> - <location line="+4"/> <source>Documentation successfully registered.</source> - <translation>A dokumentáció regisztrálása sikeresen megtörtént.</translation> + <translation type="obsolete">A dokumentáció regisztrálása sikerült.</translation> </message> <message> - <location line="+11"/> <source>Could not unregister documentation file %1 Reason: %2</source> - <translation>Nem sikerült regisztrálni a dokumentációs fájlt + <translation type="obsolete">A dokumentációs fájl eltávolítása sikertelen %1 -Ok: +Oka: %2</translation> </message> <message> - <location line="-3"/> <source>Documentation successfully unregistered.</source> - <translation>Dokumentáció regisztrációjának megszűntetése sikeresen megtörtént.</translation> + <translation type="obsolete">A dokumentáció eltávolítása sikerült.</translation> </message> <message> - <location line="+40"/> <source>Cannot load sqlite database driver!</source> - <translation>Nem lehet betölteni az sqlite adatbázis vezérlőt!</translation> + <translation type="obsolete">Az sqlite adatbázisdriver nem tölthető be!</translation> </message> <message> - <location line="+9"/> <source>The specified collection file could not be read!</source> - <translation>A meghatározott gyűjtemény fájlt nem lehet olvasni!</translation> + <translation type="obsolete">A megadott gyűjtemény nem olvasható!</translation> + </message> + <message> + <source>Bookmark</source> + <translation type="obsolete">Könyvjelző</translation> </message> </context> <context> <name>RemoteControl</name> <message> - <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+163"/> + <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+165"/> <source>Debugging Remote Control</source> - <translation>Debuggolás Távoli Vezérlő</translation> + <translation>Hibakövetés távoli vezérlése</translation> </message> <message> <location line="+1"/> <source>Received Command: %1 %2</source> - <translation>Elfogadott parancs: %1 %2</translation> + <translation>A kapott parancs: %1 %2</translation> </message> </context> <context> <name>SearchWidget</name> <message> - <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+196"/> + <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+210"/> <source>&Copy</source> <translation>&Másolás</translation> </message> @@ -1044,40 +1187,44 @@ Ok: <message> <location line="+4"/> <source>Open Link in New Tab</source> - <translation>Link megnyitása új lapon</translation> + <translation>Link megnyitása új fülön</translation> </message> <message> <location line="+8"/> <source>Select All</source> - <translation>Az összes kiválasztása</translation> + <translation>Mindent kijelöl</translation> + </message> + <message> + <source>Open Link</source> + <translation type="obsolete">Link megnyitása</translation> </message> </context> <context> <name>TopicChooser</name> <message> - <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+54"/> + <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+53"/> <source>Choose a topic for <b>%1</b>:</source> - <translation>Topik választása a következőhöz: <b>%1</b>:</translation> + <translation>Téma választása ehhez: <b>%1</b>:</translation> </message> <message> <location filename="../tools/assistant/tools/assistant/topicchooser.ui"/> <source>Choose Topic</source> - <translation>Topik választása</translation> + <translation>Téma választása </translation> </message> <message> <location/> <source>&Topics</source> - <translation>&Topikok</translation> + <translation>&Témák</translation> </message> <message> <location/> <source>&Display</source> - <translation>&Kijelzés</translation> + <translation>Meg&jelenítés</translation> </message> <message> <location/> <source>&Close</source> - <translation>&Bezárás</translation> + <translation>Be&zárás</translation> </message> </context> </TS> diff --git a/translations/assistant_ru.ts b/translations/assistant_ru.ts index ade4c85..5244483 100644 --- a/translations/assistant_ru.ts +++ b/translations/assistant_ru.ts @@ -4,7 +4,7 @@ <context> <name>AboutDialog</name> <message> - <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+110"/> + <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+117"/> <source>&Close</source> <translation>&Закрыть</translation> </message> @@ -12,7 +12,7 @@ <context> <name>AboutLabel</name> <message> - <location line="-14"/> + <location line="-15"/> <source>Warning</source> <translation>Предупреждение</translation> </message> @@ -24,12 +24,81 @@ </translation> </message> <message> - <location line="+1"/> + <location line="+0"/> <source>OK</source> <translation>Закрыть</translation> </message> </context> <context> + <name>Assistant</name> + <message> + <location filename="../tools/assistant/tools/assistant/main.cpp" line="+177"/> + <source>Error registering documentation file '%1': %2</source> + <translation>Ошибка регистрации файла документации '%1': %2</translation> + </message> + <message> + <location line="+39"/> + <source>Error: %1</source> + <translation>Ошибка: %1</translation> + </message> + <message> + <location line="+42"/> + <source>Could not register documentation file +%1 + +Reason: +%2</source> + <translation>Не удалось зарегистрировать файл документации +%1 + +Причина: +%2</translation> + </message> + <message> + <location line="+6"/> + <source>Documentation successfully registered.</source> + <translation>Документация успешно зарегистрирована.</translation> + </message> + <message> + <location line="+12"/> + <source>Could not unregister documentation file +%1 + +Reason: +%2</source> + <translation>Не удалось дерегистрировать файл документации +%1 + +Причина: +%2</translation> + </message> + <message> + <location line="+8"/> + <source>Documentation successfully unregistered.</source> + <translation>Документация успешно дерегистрирована.</translation> + </message> + <message> + <location line="+55"/> + <source>Error reading collection file '%1': %2.</source> + <translation type="unfinished">Ошибка чтения файла коллекции справки '%1': %2.</translation> + </message> + <message> + <location line="+11"/> + <source>Error creating collection file '%1': %2.</source> + <translation type="unfinished">Ошибка создания файла коллекции справки '%1': %2.</translation> + </message> + <message> + <location line="+7"/> + <source>Error reading collection file '%1': %2</source> + <translation type="unfinished">Ошибка чтения файла коллекции справки '%1': %2</translation> + </message> + <message> + <location line="+53"/> + <source>Cannot load sqlite database driver!</source> + <translation>Не удалось загрузить драйвер баз данных sqlite!</translation> + </message> +</context> +<context> <name>BookmarkDialog</name> <message> <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui"/> @@ -56,35 +125,11 @@ <source>New Folder</source> <translation>Новая папка</translation> </message> - <message> - <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+187"/> - <location line="+18"/> - <location line="+39"/> - <location line="+18"/> - <location line="+33"/> - <source>Bookmarks</source> - <translation>Закладки</translation> - </message> - <message> - <location line="-64"/> - <source>Delete Folder</source> - <translation>Удалить папку</translation> - </message> - <message> - <location line="+1"/> - <source>Rename Folder</source> - <translation>Переименовать папку</translation> - </message> </context> <context> <name>BookmarkManager</name> <message> - <location line="+452"/> - <source>Bookmarks</source> - <translation>Закладки</translation> - </message> - <message> - <location line="+37"/> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+216"/> <source>Remove</source> <translation>Удалить</translation> </message> @@ -94,16 +139,27 @@ <translation>Удаление папки приведёт к удалению её содержимого.<br>Желаете продолжить?</translation> </message> <message> - <location line="+143"/> - <location line="+9"/> - <source>New Folder</source> - <translation>Новая папка</translation> + <location line="+150"/> + <source>Add Bookmark...</source> + <translation>Добавить закладку...</translation> + </message> + <message> + <location line="+1"/> + <source>Ctrl+D</source> + <translation></translation> + </message> + <message> + <location line="-217"/> + <source>Untitled</source> + <translation>Неозаглавлено</translation> </message> -</context> -<context> - <name>BookmarkWidget</name> <message> - <location line="-474"/> + <location line="+213"/> + <source>Manage Bookmarks...</source> + <translation>Управление закладками...</translation> + </message> + <message> + <location line="+72"/> <source>Delete Folder</source> <translation>Удалить папку</translation> </message> @@ -123,7 +179,7 @@ <translation>Открыть закладку в новой вкладке</translation> </message> <message> - <location line="+3"/> + <location line="+2"/> <source>Delete Bookmark</source> <translation>Удалить закладку</translation> </message> @@ -132,26 +188,11 @@ <source>Rename Bookmark</source> <translation>Переименовать закладку</translation> </message> - <message> - <location line="+38"/> - <source>Filter:</source> - <translation>Фильтр:</translation> - </message> - <message> - <location line="+24"/> - <source>Add</source> - <translation>Добавить</translation> - </message> - <message> - <location line="+9"/> - <source>Remove</source> - <translation>Удалить</translation> - </message> </context> <context> <name>CentralWidget</name> <message> - <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+239"/> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+121"/> <source>Add new page</source> <translation>Открыть новую страницу</translation> </message> @@ -161,18 +202,18 @@ <translation>Закрыть текущую страницу</translation> </message> <message> - <location line="+312"/> + <location line="+287"/> <source>Print Document</source> <translation>Печать документа</translation> </message> <message> - <location line="+130"/> + <location line="+126"/> <location line="+2"/> <source>unknown</source> <translation>безымянная вкладка</translation> </message> <message> - <location line="+93"/> + <location line="+101"/> <source>Add New Page</source> <translation>Открыть новую страницу</translation> </message> @@ -192,15 +233,78 @@ <translation>Добавить закладку для этой страницы...</translation> </message> <message> - <location line="+248"/> + <location line="+264"/> <source>Search</source> <translation>Поиск</translation> </message> </context> <context> + <name>CmdLineParser</name> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+137"/> + <source>Unknown option: %1</source> + <translation>Неизвестный параметр: %1</translation> + </message> + <message> + <location line="+87"/> + <source>Unknown widget: %1</source> + <translation>Неизвестный виджет: %1</translation> + </message> + <message> + <location line="-54"/> + <source>The collection file '%1' does not exist.</source> + <translation type="unfinished">Файл коллекции справки '%1' не существует.</translation> + </message> + <message> + <location line="+3"/> + <source>Missing collection file.</source> + <translation type="unfinished">Отсутствует файл коллекции справки.</translation> + </message> + <message> + <location line="+13"/> + <source>Invalid URL '%1'.</source> + <translation>Некорректный URL '%1'.</translation> + </message> + <message> + <location line="+2"/> + <source>Missing URL.</source> + <translation>Отсутствует URL.</translation> + </message> + <message> + <location line="+38"/> + <source>Missing widget.</source> + <translation>Отсутствует виджет.</translation> + </message> + <message> + <location line="+23"/> + <source>The Qt help file '%1' does not exist.</source> + <translation>Файл справки Qt '%1' не существует.</translation> + </message> + <message> + <location line="+4"/> + <source>Missing help file.</source> + <translation>Отсутствует файл справки.</translation> + </message> + <message> + <location line="+10"/> + <source>Missing filter argument.</source> + <translation>Отсутствует параметр фильтра.</translation> + </message> + <message> + <location line="+20"/> + <source>Error</source> + <translation>Ошибка</translation> + </message> + <message> + <location line="+2"/> + <source>Notice</source> + <translation>Замечание</translation> + </message> +</context> +<context> <name>ContentWindow</name> <message> - <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+158"/> + <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+173"/> <source>Open Link</source> <translation>Открыть ссылку</translation> </message> @@ -224,34 +328,6 @@ </message> </context> <context> - <name>FindWidget</name> - <message> - <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-931"/> - <source>Previous</source> - <translation>Предыдущее</translation> - </message> - <message> - <location line="+4"/> - <source>Next</source> - <translation>Следующее</translation> - </message> - <message> - <location line="+4"/> - <source>Case Sensitive</source> - <translation>Учитывать регистр</translation> - </message> - <message> - <location line="+3"/> - <source>Whole words</source> - <translation>Слова целиком</translation> - </message> - <message> - <location line="+12"/> - <source><img src=":/trolltech/assistant/images/wrap.png">&nbsp;Search wrapped</source> - <translation><img src=":/trolltech/assistant/images/wrap.png">&nbsp;Поиск с начала</translation> - </message> -</context> -<context> <name>FontPanel</name> <message> <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/> @@ -282,52 +358,25 @@ <context> <name>HelpViewer</name> <message> - <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+283"/> - <source>Open Link in New Tab</source> - <translation>Открыть ссылку в новой вкладке</translation> + <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+58"/> + <source><title>about:blank</title></source> + <translation></translation> </message> <message> - <location line="+147"/> + <location line="+6"/> <source><title>Error 404...</title><div align="center"><br><br><h1>The page could not be found</h1><br><h3>'%1'</h3></div></source> <translation><title>Ошибка 404...</title><div align="center"><br><br><h1>Страница не найдена</h1><br><h3>'%1'</h3></div></translation> </message> - <message> - <location line="+61"/> - <source>Help</source> - <translation>Справка</translation> - </message> - <message> - <location line="+1"/> - <source>Unable to launch external application. -</source> - <translation>Невозможно запустить внешнее приложение. -</translation> - </message> - <message> - <location line="+0"/> - <source>OK</source> - <translation>Закрыть</translation> - </message> - <message> - <location line="+63"/> - <source>Copy &Link Location</source> - <translation>Копировать &адрес ссылки</translation> - </message> - <message> - <location line="+3"/> - <source>Open Link in New Tab Ctrl+LMB</source> - <translation>Открыть ссылку в новой вкладке Ctrl+LMB</translation> - </message> </context> <context> <name>IndexWindow</name> <message> - <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+66"/> + <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+68"/> <source>&Look for:</source> <translation>&Искать:</translation> </message> <message> - <location line="+72"/> + <location line="+74"/> <source>Open Link</source> <translation>Открыть ссылку</translation> </message> @@ -341,29 +390,29 @@ <name>InstallDialog</name> <message> <location filename="../tools/assistant/tools/assistant/installdialog.ui"/> - <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+76"/> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+78"/> <source>Install Documentation</source> <translation>Установка документации</translation> </message> <message> - <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+30"/> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+33"/> <source>Downloading documentation info...</source> <translation>Загрузка информации о документации...</translation> </message> <message> - <location line="+48"/> + <location line="+51"/> <source>Download canceled.</source> <translation>Загрузка отменена.</translation> </message> <message> - <location line="+26"/> - <location line="+78"/> + <location line="+28"/> + <location line="+79"/> <location line="+27"/> <source>Done.</source> <translation>Готово.</translation> </message> <message> - <location line="-90"/> + <location line="-91"/> <source>The file %1 already exists. Do you want to overwrite it?</source> <translation>Файл %1 уже существует. Желаете перезаписать его?</translation> </message> @@ -378,14 +427,14 @@ <translation>Загрузка %1...</translation> </message> <message> - <location line="+19"/> + <location line="+20"/> <location line="+42"/> - <location line="+38"/> + <location line="+40"/> <source>Download failed: %1.</source> <translation>Загрузка не удалась: %1.</translation> </message> <message> - <location line="-70"/> + <location line="-72"/> <source>Documentation info file is corrupt!</source> <translation>Файл информации о документации повреждён!</translation> </message> @@ -400,7 +449,7 @@ <translation>Установка документации %1...</translation> </message> <message> - <location line="+22"/> + <location line="+23"/> <source>Error while installing documentation: %1</source> <translation>При установке документации возникла ошибка: @@ -440,48 +489,42 @@ <context> <name>MainWindow</name> <message> - <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+110"/> - <location line="+383"/> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+123"/> + <location line="+369"/> <source>Index</source> <translation>Указатель</translation> </message> <message> - <location line="-377"/> - <location line="+375"/> + <location line="-363"/> + <location line="+361"/> <source>Contents</source> <translation>Содержание</translation> </message> <message> - <location line="-370"/> - <location line="+374"/> + <location line="-354"/> + <location line="+358"/> <source>Bookmarks</source> <translation>Закладки</translation> </message> <message> - <location line="-362"/> - <location line="+207"/> - <location line="+514"/> + <location line="-336"/> + <location line="+680"/> + <location line="+284"/> <source>Qt Assistant</source> <translation>Qt Assistant</translation> </message> <message> - <location line="-546"/> - <location line="+5"/> - <source>Unfiltered</source> - <translation>Без фильтрации</translation> - </message> - <message> - <location line="+21"/> + <location line="-772"/> <source>Looking for Qt Documentation...</source> <translation>Поиск документации Qt...</translation> </message> <message> - <location line="+84"/> + <location line="+60"/> <source>&File</source> <translation>&Файл</translation> </message> <message> - <location line="+2"/> + <location line="+7"/> <source>Page Set&up...</source> <translation>Параметры &страницы...</translation> </message> @@ -496,22 +539,27 @@ <translation>&Печать...</translation> </message> <message> - <location line="+7"/> + <location line="-10"/> <source>New &Tab</source> <translation>Новая &вкладка</translation> </message> <message> - <location line="+3"/> + <location line="+17"/> <source>&Close Tab</source> <translation>&Закрыть вкладку</translation> </message> <message> - <location line="+4"/> + <location line="+5"/> <source>&Quit</source> <translation>В&ыход</translation> </message> <message> - <location line="+4"/> + <location line="+3"/> + <source>CTRL+Q</source> + <translation></translation> + </message> + <message> + <location line="+5"/> <source>&Edit</source> <translation>&Правка</translation> </message> @@ -568,22 +616,22 @@ <message> <location line="+4"/> <source>Ctrl+0</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+5"/> <source>ALT+C</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+2"/> <source>ALT+I</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+2"/> <source>ALT+O</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+1"/> @@ -593,7 +641,7 @@ <message> <location line="+1"/> <source>ALT+S</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+2"/> @@ -608,7 +656,7 @@ <message> <location line="+1"/> <source>ALT+Home</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+3"/> @@ -638,7 +686,7 @@ <message> <location line="+1"/> <source>Ctrl+Alt+Right</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+3"/> @@ -648,25 +696,20 @@ <message> <location line="+1"/> <source>Ctrl+Alt+Left</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location line="+3"/> + <location line="+4"/> <source>&Bookmarks</source> <translation>&Закладки</translation> </message> <message> - <location line="+1"/> - <source>Add Bookmark...</source> - <translation>Добавить закладку...</translation> - </message> - <message> - <location line="+2"/> - <source>CTRL+D</source> - <translation type="unfinished"></translation> + <location line="+592"/> + <source>Could not register file '%1': %2</source> + <translation>Не удалось зарегистрировать файл '%1': %2</translation> </message> <message> - <location line="+2"/> + <location line="-590"/> <source>&Help</source> <translation>&Справка</translation> </message> @@ -676,7 +719,7 @@ <translation>О программе...</translation> </message> <message> - <location line="+16"/> + <location line="+21"/> <source>Navigation Toolbar</source> <translation>Панель навигации</translation> </message> @@ -698,15 +741,15 @@ <message> <location line="+1"/> <source>Ctrl+M</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location line="+50"/> + <location line="+43"/> <source>Toolbars</source> <translation>Панели инструментов</translation> </message> <message> - <location line="+15"/> + <location line="+16"/> <source>Filter Toolbar</source> <translation>Панель фильтров</translation> </message> @@ -716,7 +759,7 @@ <translation>Отфильтровано по:</translation> </message> <message> - <location line="+25"/> + <location line="+26"/> <source>Address Toolbar</source> <translation>Панель адреса</translation> </message> @@ -726,17 +769,17 @@ <translation>Адрес:</translation> </message> <message> - <location line="+114"/> + <location line="+112"/> <source>Could not find the associated content item.</source> <translation>Не удалось найти элемент, связанный с содержанием.</translation> </message> <message> - <location line="+71"/> + <location line="+60"/> <source>About %1</source> <translation>О %1</translation> </message> <message> - <location line="+114"/> + <location line="+175"/> <source>Updating search index</source> <translation>Обновление поискового индекса</translation> </message> @@ -744,18 +787,18 @@ <context> <name>PreferencesDialog</name> <message> - <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+259"/> - <location line="+43"/> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+252"/> + <location line="+44"/> <source>Add Documentation</source> <translation>Добавить документацию</translation> </message> <message> - <location line="-43"/> + <location line="-44"/> <source>Qt Compressed Help Files (*.qch)</source> <translation>Сжатые файлы справки Qt (*.qch)</translation> </message> <message> - <location line="+29"/> + <location line="+30"/> <source>The namespace %1 is already registered!</source> <translation>Пространство имён %1 уже зарегистрировано!</translation> </message> @@ -765,7 +808,7 @@ <translation>Указанный файл не является корректным файлом справки Qt!</translation> </message> <message> - <location line="+23"/> + <location line="+24"/> <source>Remove Documentation</source> <translation>Удалить документацию</translation> </message> @@ -785,7 +828,7 @@ <translation>Удалить</translation> </message> <message> - <location line="+88"/> + <location line="+83"/> <source>Use custom settings</source> <translation>Использовать индивидуальные настройки</translation> </message> @@ -909,120 +952,9 @@ </message> </context> <context> - <name>QObject</name> - <message> - <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+112"/> - <source>The specified collection file does not exist!</source> - <translation type="unfinished">Указанный файл набора отсутствует!</translation> - </message> - <message> - <location line="+4"/> - <source>Missing collection file!</source> - <translation type="unfinished">Отсутствует файл набора!</translation> - </message> - <message> - <location line="+9"/> - <source>Invalid URL!</source> - <translation>Некорректный URL!</translation> - </message> - <message> - <location line="+4"/> - <source>Missing URL!</source> - <translation>Отсутствует URL!</translation> - </message> - <message> - <location line="+17"/> - <location line="+19"/> - <location line="+19"/> - <source>Unknown widget: %1</source> - <translation>Неизвестный виджет: %1</translation> - </message> - <message> - <location line="-34"/> - <location line="+19"/> - <location line="+19"/> - <source>Missing widget!</source> - <translation>Отсутствует виджет!</translation> - </message> - <message> - <location line="+7"/> - <location line="+12"/> - <source>The specified Qt help file does not exist!</source> - <translation>Указанный файл справки Qt отсутствует!</translation> - </message> - <message> - <location line="-7"/> - <location line="+12"/> - <source>Missing help file!</source> - <translation>Отсутствует файл справки!</translation> - </message> - <message> - <location line="+7"/> - <source>Missing filter argument!</source> - <translation>Отсутствует параметр фильтра!</translation> - </message> - <message> - <location line="+12"/> - <source>Unknown option: %1</source> - <translation>Неизвестный параметр: %1</translation> - </message> - <message> - <location line="+30"/> - <location line="+2"/> - <source>Qt Assistant</source> - <translation>Qt Assistant</translation> - </message> - <message> - <location filename="../tools/assistant/tools/assistant/main.cpp" line="+228"/> - <source>Could not register documentation file -%1 - -Reason: -%2</source> - <translation>Не удалось зарегистрировать файл документации -%1 - -Причина: -%2</translation> - </message> - <message> - <location line="+4"/> - <source>Documentation successfully registered.</source> - <translation>Документация успешно зарегистрирована.</translation> - </message> - <message> - <location line="+8"/> - <source>Documentation successfully unregistered.</source> - <translation>Документация успешно дерегистрирована.</translation> - </message> - <message> - <location line="+3"/> - <source>Could not unregister documentation file -%1 - -Reason: -%2</source> - <translation>Не удалось дерегистрировать файл документации -%1 - -Причина: -%2</translation> - </message> - <message> - <location line="+37"/> - <source>Cannot load sqlite database driver!</source> - <translation>Не удалось загрузить драйвер базы данных sqlite!</translation> - </message> - <message> - <location line="+9"/> - <source>The specified collection file could not be read!</source> - <translation type="unfinished">Не удалось прочитать указанный файл набора!</translation> - </message> -</context> -<context> <name>RemoteControl</name> <message> - <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+163"/> + <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+165"/> <source>Debugging Remote Control</source> <translation>Отладочное удалённое управление</translation> </message> @@ -1035,7 +967,7 @@ Reason: <context> <name>SearchWidget</name> <message> - <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+196"/> + <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+210"/> <source>&Copy</source> <translation>&Копировать</translation> </message> @@ -1058,7 +990,7 @@ Reason: <context> <name>TopicChooser</name> <message> - <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+54"/> + <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+53"/> <source>Choose a topic for <b>%1</b>:</source> <translation>Выберите раздел для <b>%1</b>:</translation> </message> diff --git a/translations/designer_hu.ts b/translations/designer_hu.ts index c2960bc..6375cde 100644 --- a/translations/designer_hu.ts +++ b/translations/designer_hu.ts @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> -<TS version="2.0" language="hu"> +<TS version="2.0" language="hu_HU"> <context> <name>AbstractFindWidget</name> <message> @@ -16,33 +16,33 @@ <message> <location line="+24"/> <source>&Case sensitive</source> - <translation>&Kis ér nagybetű érzékeny</translation> + <translation>Kis/&nagybetű érzékeny</translation> </message> <message> <location line="+8"/> <source>Whole &words</source> - <translation>Egész &szavakat</translation> + <translation>&Teljes szó</translation> </message> <message> <location line="+12"/> <source><img src=":/trolltech/shared/images/wrap.png">&nbsp;Search wrapped</source> - <translation><img src=":/trolltech/shared/images/wrap.png">&nbsp;Keresés tördelve</translation> + <translation><img src=":/trolltech/shared/images/wrap.png">&nbsp;A keresés befejeződött</translation> </message> </context> <context> <name>AddLinkDialog</name> <message> - <location filename="../tools/designer/src/lib/shared/addlinkdialog.ui" line="+5"/> + <location filename="../tools/designer/src/lib/shared/addlinkdialog.ui"/> <source>Insert Link</source> <translation>Link beszúrása</translation> </message> <message> - <location line="+14"/> + <location/> <source>Title:</source> <translation>Cím:</translation> </message> <message> - <location line="+17"/> + <location/> <source>URL:</source> <translation>URL:</translation> </message> @@ -52,7 +52,7 @@ <message> <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+418"/> <source>Additional Fonts</source> - <translation>További betűl</translation> + <translation>További betűtípusok</translation> </message> </context> <context> @@ -60,37 +60,37 @@ <message> <location line="-267"/> <source>'%1' is not a file.</source> - <translation>%1 nem egy fájl.</translation> + <translation>'%1' nem egy fájl.</translation> </message> <message> <location line="+4"/> <source>The font file '%1' does not have read permissions.</source> - <translation>'%1' betű fájlnak nincsen olvasási engedélye.</translation> + <translation>A(z) '%1' font fájlon nincs olvasási jog.</translation> </message> <message> <location line="+8"/> <source>The font file '%1' is already loaded.</source> - <translation>'%1' font fájl már be van töltve.</translation> + <translation>A(z) '%1' betűtípus már be van töltve.</translation> </message> <message> <location line="+7"/> <source>The font file '%1' could not be loaded.</source> - <translation>'%1' font fájlt nem sikerült betölteni.</translation> + <translation>A(z) '%1' betűtípus nem tölthető be.</translation> </message> <message> <location line="+17"/> <source>'%1' is not a valid font id.</source> - <translation>'%1' nem egy érvényes betű azonosító.</translation> + <translation>'%1' nem egy érvényes betűtípus azonosító.</translation> </message> <message> <location line="+11"/> <source>There is no loaded font matching the id '%1'.</source> - <translation>Nincsen '%1' azonosítóval megegyező betöltött betű.</translation> + <translation>Nincs '%1' azonosítójú betűtípus betöltve.</translation> </message> <message> <location line="+15"/> <source>The font '%1' (%2) could not be unloaded.</source> - <translation>'%1' betűt (%2) nem lehetett kirakni.</translation> + <translation>A(z) '%1' (%2) betűtípus nem távolítható el.</translation> </message> </context> <context> @@ -98,65 +98,65 @@ <message> <location line="+26"/> <source>Fonts</source> - <translation>Betűk</translation> + <translation>Betűtípusok</translation> </message> <message> <location line="+58"/> <source>Add font files</source> - <translation>Betű fájlok hozzáadása</translation> + <translation>Betűtípus fájl hozzáadása</translation> </message> <message> <location line="+5"/> <source>Remove current font file</source> - <translation>Aktuális betű fájl eltávolítása</translation> + <translation>A jelenlegi betűtípus fájl eltávolítása</translation> </message> <message> <location line="+4"/> <source>Remove all font files</source> - <translation>Az összes betű fájl eltávolítása</translation> + <translation>Minden betűtłpus fájl eltávolítása</translation> </message> <message> <location line="+19"/> <source>Add Font Files</source> - <translation>Betű fájlok hozzáadása</translation> + <translation>Betűtípus fájl hozzáadása</translation> </message> <message> <location line="+1"/> <source>Font files (*.ttf)</source> - <translation>Betű fájlok (*.ttf)</translation> + <translation>Betűtípus fájlok (*.ttf)</translation> </message> <message> <location line="+13"/> <source>Error Adding Fonts</source> - <translation>Hiba történt a betűk hozzáadásakor</translation> + <translation>Hiba a betűtípus fájlok hozzáadásakor</translation> </message> <message> <location line="+24"/> <source>Error Removing Fonts</source> - <translation>Hiba történt a betűk eltávolításakor</translation> + <translation>Hiba a betűtípus fájlok eltávolításakor</translation> </message> <message> <location line="+22"/> <source>Remove Fonts</source> - <translation>Betűk eltávolítása</translation> + <translation>Betűtípus fájl eltávolítása</translation> </message> <message> <location line="+0"/> <source>Would you like to remove all fonts?</source> - <translation>El szeretné távolítani az összes betűt?</translation> + <translation>Minden betűtípust eltávolít?</translation> </message> </context> <context> <name>AppearanceOptionsWidget</name> <message> - <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.ui" line="+14"/> + <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.ui"/> <source>Form</source> <translation></translation> </message> <message> - <location line="+6"/> + <location/> <source>User Interface Mode</source> - <translation>Felhasználói interfész mód</translation> + <translation>Felhasználói felület mód</translation> </message> </context> <context> @@ -164,17 +164,17 @@ <message> <location filename="../tools/designer/src/designer/assistantclient.cpp" line="+100"/> <source>Unable to send request: Assistant is not responding.</source> - <translation>Nem lehet elküldeni a kérést, az Assistant nem válaszol.</translation> + <translation>A kérés elküldése nem sikerült: az Assistant nem válaszol.</translation> </message> <message> <location line="+39"/> <source>The binary '%1' does not exist.</source> - <translation>'%1' bináris nem létezik.</translation> + <translation>A(z) '%1' bináris nem létezik.</translation> </message> <message> <location line="+9"/> <source>Unable to launch assistant (%1).</source> - <translation>Nem lehet elindítani a(z) %1 assistant.</translation> + <translation>Az Assistant (%1) elindítása sikertelen.</translation> </message> </context> <context> @@ -182,12 +182,12 @@ <message> <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+52"/> <source>No brush</source> - <translation>Nincs kefe</translation> + <translation>Nincs ecset</translation> </message> <message> <location line="+1"/> <source>Solid</source> - <translation>Szolid</translation> + <translation>Lágy</translation> </message> <message> <location line="+1"/> @@ -227,12 +227,12 @@ <message> <location line="+1"/> <source>Horizontal</source> - <translation>Horizontális</translation> + <translation>Vízszintes</translation> </message> <message> <location line="+1"/> <source>Vertical</source> - <translation>Vertikális</translation> + <translation>Függőleges</translation> </message> <message> <location line="+1"/> @@ -242,20 +242,20 @@ <message> <location line="+1"/> <source>Backward diagonal</source> - <translation>Visszafele átlós</translation> + <translation>Fordított átlós</translation> </message> <message> <location line="+1"/> <source>Forward diagonal</source> - <translation>Előre átlós</translation> + <translation>Átlós</translation> </message> <message> <location line="+1"/> <source>Crossing diagonal</source> - <translation>Kereszt átlós</translation> + <translation>Keresztátlós</translation> </message> <message> - <location line="+83"/> + <location line="+93"/> <source>Style</source> <translation>Stílus</translation> </message> @@ -267,7 +267,7 @@ <message> <location line="+105"/> <source>[%1, %2]</source> - <translation>[%1, %2]</translation> + <translation></translation> </message> </context> <context> @@ -276,66 +276,66 @@ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+208"/> <location line="+258"/> <source>Change signal</source> - <translation>Jel változtatás</translation> + <translation>Jelzés megváltoztatása</translation> </message> <message> <location line="-256"/> <location line="+268"/> <source>Change slot</source> - <translation>Szlot változtatás</translation> + <translation>Slot megváltoztatása</translation> </message> <message> <location line="-220"/> <source>Change signal-slot connection</source> - <translation>Jel szlot kapcsolat változtatása</translation> + <translation>Jelzés-slot kapcsolat megváltoztatása</translation> </message> <message> <location line="+234"/> <source>Change sender</source> - <translation>Küldő változtatás</translation> + <translation>Küldő megváltoztatása</translation> </message> <message> <location line="+18"/> <source>Change receiver</source> - <translation>Fogadó változtatás</translation> + <translation>Fogadó megváltoztatása</translation> </message> <message> <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+221"/> <source>Create button group</source> - <translation>Gomb csoport létrehozása</translation> + <translation>Gombcsoport létrehozása</translation> </message> <message> <location line="+27"/> <source>Break button group</source> - <translation>Gomb csoport törése</translation> + <translation>Gombcsoport széttörése</translation> </message> <message> <location line="+9"/> <source>Break button group '%1'</source> - <translation>'%1' gomb csoport törése</translation> + <translation>A(z) '%1' gombcsoport széttörése</translation> </message> <message> <location line="+17"/> <source>Add buttons to group</source> - <translation>Gomb hozzáadása a csoporthoz</translation> + <translation>Gomb(ok) hozzáadása a csoporthoz</translation> </message> <message> <location line="+8"/> <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+458"/> <source>Add '%1' to '%2'</source> <extracomment>Command description for adding buttons to a QButtonGroup</extracomment> - <translation>'%1' hozzáadása '%2'-höz</translation> + <translation>'%1' hozzáadása ehhez: '%2'</translation> </message> <message> <location line="+14"/> <source>Remove buttons from group</source> - <translation>Gomb eltávolítása a csoportból</translation> + <translation>Gomb(ok) eltávolítása a csoportból</translation> </message> <message> <location line="+15"/> <source>Remove '%1' from '%2'</source> <extracomment>Command description for removing buttons from a QButtonGroup</extracomment> - <translation>'%1' eltávolítása '%2'-ból</translation> + <translation>'%1' eltávolítása innen: '%2'</translation> </message> <message> <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+143"/> @@ -345,7 +345,7 @@ <message> <location line="+54"/> <source>Adjust connection</source> - <translation>Kapcsolat beállítása</translation> + <translation>Kapcsolat módosítása</translation> </message> <message> <location line="+19"/> @@ -355,18 +355,18 @@ <message> <location line="+58"/> <source>Change source</source> - <translation>Forrás változtatása</translation> + <translation>Forrás megváltoztatása</translation> </message> <message> <location line="+2"/> <source>Change target</source> - <translation>Cél változtatása</translation> + <translation>Cél megváltoztatása</translation> </message> <message> <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+349"/> <source>Morph %1/'%2' into %3</source> <extracomment>MorphWidgetCommand description</extracomment> - <translation>%1/'%2' alakváltoztatása %3-re</translation> + <translation>%1/'%2' átalakítása erre: %3</translation> </message> <message> <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="+149"/> @@ -381,12 +381,12 @@ <message> <location line="+34"/> <source>Raise '%1'</source> - <translation>'%1' növelése</translation> + <translation>'%1' előrehozása</translation> </message> <message> <location line="+33"/> <source>Lower '%1'</source> - <translation>Alsó '%1'</translation> + <translation>'%1' hátrébbküldése</translation> </message> <message> <location line="+113"/> @@ -396,49 +396,49 @@ <message> <location line="+119"/> <source>Reparent '%1'</source> - <translation>'%1' újra szülősítése</translation> + <translation type="unfinished">'%1' szülőjének megváltoztatása</translation> </message> <message> <location line="+53"/> <source>Promote to custom widget</source> - <translation>Egyéni widget elősegítése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+42"/> <source>Demote from custom widget</source> - <translation>Egyéni widget lefokozása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+79"/> <source>Lay out using grid</source> - <translation>Tervraj rácsok használatával</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Lay out vertically</source> - <translation>Tervrajz vertikálisan</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Lay out horizontally</source> - <translation>Tervrajz horizontálisan</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+41"/> <source>Break layout</source> - <translation>Tervrajz törése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+105"/> <source>Simplify Grid Layout</source> - <translation>Egyszerűsített rács tervrajz</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+135"/> <location line="+235"/> <location line="+78"/> <source>Move Page</source> - <translation>Lap mozgatása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-279"/> @@ -446,18 +446,18 @@ <location line="+188"/> <location line="+666"/> <source>Delete Page</source> - <translation>Lap törlése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-939"/> <location line="+123"/> <source>Page</source> - <translation>Lap</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+860"/> <source>page</source> - <translation>lap</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-978"/> @@ -465,251 +465,249 @@ <location line="+186"/> <location line="+667"/> <source>Insert Page</source> - <translation>Lap beszúrása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-647"/> <source>Change Tab order</source> - <translation>Tab sorrend változtatása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+28"/> <source>Create Menu Bar</source> - <translation>Menü sáv</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+44"/> <source>Delete Menu Bar</source> - <translation>Menü sáv törlése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+47"/> <source>Create Status Bar</source> - <translation>Státusz sáv létrehozása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+42"/> <source>Delete Status Bar</source> - <translation>Státusz sáv törlése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+45"/> <source>Add Tool Bar</source> - <translation>Eszköz sáv hozzáadása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+59"/> <source>Add Dock Window</source> - <translation>Dokk ablak hozzáadása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+53"/> <source>Adjust Size of '%1'</source> - <translation>'%1' méretének igazítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+57"/> <source>Change Form Layout Item Geometry</source> - <translation>Űrlap tervrajz elem geometriájának megváltoztatása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+95"/> <source>Change Layout Item Geometry</source> - <translation>Tervrajz elem geometriájának megváltoztatása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+138"/> <source>Delete Subwindow</source> - <translation>Alablak törlése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+44"/> <source>Insert Subwindow</source> - <translation>Alablak beszúrása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>subwindow</source> - <translation>alablak</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Subwindow</source> - <translation>Alablak</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+391"/> <source>Change Table Contents</source> - <translation>Táblázat tartalom megváltoztatása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+107"/> <source>Change Tree Contents</source> - <translation>Fa tartalom megváltoztatása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+74"/> <location line="+146"/> <source>Add action</source> - <translation>Tevékenység hozzáadása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-120"/> <location line="+126"/> <source>Remove action</source> - <translation>Tevékenység eltávolítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+53"/> <source>Add menu</source> - <translation>Menü hozzáadása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>Remove menu</source> - <translation>Menü eltávolítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>Create submenu</source> - <translation>Almenü létrehozása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+31"/> <source>Delete Tool Bar</source> - <translation>Eszköz sáv törlése</translation> + <translation type="unfinished"></translation> </message> <message> <location filename="../tools/designer/src/lib/shared/qdesigner_command2.cpp" line="+154"/> <source>Change layout of '%1' from %2 to %3</source> - <translation>'%1' tervrajz megváltoztatása %2-ről %3-ra</translation> + <translation type="unfinished"></translation> </message> <message> - <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1195"/> + <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1194"/> <source>Set action text</source> - <translation>Tevékenység szöveg beállítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Insert action</source> - <translation>Tevékenység beszúrása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+89"/> - <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+907"/> + <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+915"/> <source>Move action</source> - <translation>Tevékenység mozgatása</translation> + <translation type="unfinished"></translation> </message> <message> - <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-424"/> + <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-432"/> <source>Change Title</source> - <translation>Cím megváltoztatása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Insert Menu</source> - <translation>Menü beszúrása</translation> + <translation type="unfinished"></translation> </message> <message> - <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1213"/> + <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1225"/> <source>Changed '%1' of '%2'</source> - <translation>'%2' '%1'-ének megváltoztatása</translation> + <translation type="unfinished"></translation> </message> <message numerus="yes"> <location line="+3"/> <source>Changed '%1' of %n objects</source> - <translation> - <numerusform>%n objektum %1-ének megváltoztatása</numerusform> + <translation type="unfinished"> + <numerusform></numerusform> </translation> </message> <message> - <location line="+76"/> + <location line="+84"/> <source>Reset '%1' of '%2'</source> - <translation>'%2' '%1'-ének megváltoztatása</translation> + <translation type="unfinished"></translation> </message> <message numerus="yes"> <location line="+3"/> <source>Reset '%1' of %n objects</source> - <translation> - <numerusform>%n objektum '%1'-ének újraindítása</numerusform> + <translation type="unfinished"> + <numerusform></numerusform> </translation> </message> <message> <location line="+89"/> <source>Add dynamic property '%1' to '%2'</source> - <translation>'%2' '%1' dinamikus tulajdonságának hozzáadása</translation> + <translation type="unfinished"></translation> </message> <message numerus="yes"> <location line="+3"/> <source>Add dynamic property '%1' to %n objects</source> - <translation> - <numerusform>%n objektum' '%1' dinamikus tulajdonságának hozzáadása</numerusform> + <translation type="unfinished"> + <numerusform></numerusform> </translation> </message> <message> <location line="+86"/> <source>Remove dynamic property '%1' from '%2'</source> - <translation>'%1' dinamikus tulajdonság eltávolítáas '%2'-ből</translation> + <translation type="unfinished"></translation> </message> <message numerus="yes"> <location line="+3"/> <source>Remove dynamic property '%1' from %n objects</source> - <translation> - <numerusform>'%1' dinamikus tulajdonság eltávolítása %n objektumból</numerusform> + <translation type="unfinished"> + <numerusform></numerusform> </translation> </message> <message> <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+55"/> <source>Change script</source> - <translation>Szkript megváltoztatása</translation> + <translation type="unfinished"></translation> </message> <message> <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+202"/> <source>Change signals/slots</source> - <translation>Jelek/Szlotok megváltoztatása</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>ConnectDialog</name> <message> - <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui" line="+13"/> + <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui"/> <source>Configure Connection</source> - <translation>Kapcsolat konfigurálása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> - <location line="+40"/> + <location/> <source>GroupBox</source> - <translation>CsoportDoboz</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="-25"/> - <location line="+40"/> + <location/> <source>Edit...</source> - <translation>Szerkesztés...</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+25"/> + <location/> <source>Show signals and slots inherited from QWidget</source> - <translation>QWidget-ből örökölt jelek és szlotok megjelenítése</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>ConnectionDelegate</name> <message> - <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+643"/> + <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+644"/> <source><object></source> - <translation><objekttum></translation> + <translation type="unfinished"></translation> </message> <message> <location line="+18"/> <source><signal></source> - <translation><jel></translation> + <translation type="unfinished"></translation> </message> <message> <location line="+0"/> <source><slot></source> - <translation><szlot></translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -718,109 +716,108 @@ <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+69"/> <source>Standard (96 x 96)</source> <extracomment>Embedded device standard screen resolution</extracomment> - <translation>Szabványos (96 x 96)</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Greenphone (179 x 185)</source> <extracomment>Embedded device screen resolution</extracomment> - <translation>Greenphone (179 x 185)</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>High (192 x 192)</source> <extracomment>Embedded device high definition screen resolution</extracomment> - <translation>Magasság (192 x 192)</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>Designer</name> <message> - <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+449"/> + <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+446"/> <source>Qt Designer</source> - <translation>Qt Designer</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+10"/> <source>This file contains top level spacers.<br>They have <b>NOT</b> been saved into the form.</source> - <translation>Ez a fájl felső szintű távtartókat tartalmaz.<br> Nem tartalmaznak <b>SEMMIT</b>, ami el lenne mentve az űrlapba.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Perhaps you forgot to create a layout?</source> - <translation>Talán elfelejtette létrehozni a tervrajzot?</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+173"/> <source>Invalid UI file: The root element <ui> is missing.</source> - <translation>Érvénytelen UI fájl. A rendszergazda elem <ui> hiányzik.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>An error has occurred while reading the UI file at line %1, column %2: %3</source> - <translation>Hiba történt az UI fájl olvasás közben %1 sorban, %2 oszlopban: %3</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+26"/> <source>This file cannot be read because it was created using %1.</source> - <translation>A fájl nem olvasható, mert %1 használatával hozták létre.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+14"/> <source>This file was created using Designer from Qt-%1 and cannot be read.</source> - <translation>A fájlt a(z) %1 Qt Designer-rel hozták létre és nem olvasható.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+30"/> <source>The converted file could not be read.</source> - <translation>A konvertált fájlt nem sikerült olvasni.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer.</source> - <translation>A fájlt a(z) %1 Qt Designer-rel hozták létre és a Qt Designer egy új űrlapra fogja konvertálni.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>The old form has not been touched, but you will have to save the form under a new name.</source> - <translation>A régi űrlap nem lett érintve, de az űrlapot új néven kell majd elmentenie.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+11"/> <source>This file was created using Designer from Qt-%1 and could not be read: %2</source> - <translation>A fájl a(z) %1 Qt Designer-rel lett létrehozva és nem olvasható: -%2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Please run it through <b>uic3&nbsp;-convert</b> to convert it to Qt-4's ui format.</source> - <translation>Kérem futtassa a <br>uic3&nbsp;-convert</b> Qt 4-s ui formára konvertáláshoz.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+31"/> <source>This file cannot be read because the extra info extension failed to load.</source> - <translation>Ez a fájl nem olvasható, mert az extra információ kiterjesztést nem sikerült betölteni.</translation> + <translation type="unfinished"></translation> </message> <message> <location filename="../tools/designer/src/lib/shared/qsimpleresource.cpp" line="+339"/> <source>Custom Widgets</source> - <translation>Egyéni Widgetek</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+12"/> <source>Promoted Widgets</source> - <translation>Támogatott Widgetek</translation> + <translation type="unfinished"></translation> </message> <message> <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+682"/> <source>Unable to launch %1.</source> - <translation>Nem lehet elindítani %1-t.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>%1 timed out.</source> - <translation>%1 időtúllépés.</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -828,12 +825,12 @@ <message> <location line="-513"/> <source>%1 is not a valid enumeration value of '%2'.</source> - <translation>%1 nem egy érvényes '%2' felsorolási érték.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>'%1' could not be converted to an enumeration value of type '%2'.</source> - <translation>'%1' nem konvertálható egy '%2' típusú felsorolási értékre.</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -841,7 +838,7 @@ <message> <location line="+78"/> <source>'%1' could not be converted to a flag value of type '%2'.</source> - <translation>'%1' nem konvertálható egy '%2' típusú jelző értékre.</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -850,40 +847,40 @@ <location filename="../tools/designer/src/lib/shared/deviceprofile.cpp" line="+397"/> <source>'%1' is not a number.</source> <extracomment>Reading a number for an embedded device profile</extracomment> - <translation>'%1' nem egy szám.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+23"/> <source>An invalid tag <%1> was encountered.</source> - <translation>Egy érvénytelen címkét <%1> talált.</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>DeviceProfileDialog</name> <message> - <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui" line="+20"/> + <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui"/> <source>&Family</source> - <translation>&Család</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+13"/> + <location/> <source>&Point Size</source> - <translation>&Pont méret</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+13"/> + <location/> <source>Style</source> - <translation>Stílus</translation> + <translation type="unfinished">Stílus</translation> </message> <message> - <location line="+13"/> + <location/> <source>Device DPI</source> - <translation>Eszköz DPI</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location/> <source>Name</source> - <translation>Név</translation> + <translation type="unfinished">Név</translation> </message> </context> <context> @@ -891,57 +888,57 @@ <message> <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/> <source>The image file '%1' could not be loaded.</source> - <translation>Nem sikerült betölteni a(z) '%1' kép fájlt.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+64"/> <source>The skin directory '%1' does not contain a configuration file.</source> - <translation>A(z) '%1' szkin könyvtár nem tartalmaz egy konfigurációs fájlt sem.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>The skin configuration file '%1' could not be opened.</source> - <translation>A(z) '%1' szkin konfigurációs fájlt nem sikerült megnyitni.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>The skin configuration file '%1' could not be read: %2</source> - <translation>A(z) '%1' szkin konfigurációs fájlt nem sikerült olvasni: %2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+70"/> <source>Syntax error: %1</source> - <translation>Szintakszis hiba: %1</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+21"/> <source>The skin "up" image file '%1' does not exist.</source> - <translation>A(z) '%1' szkin 'fel' kép fájl nem létezik.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+10"/> <source>The skin "down" image file '%1' does not exist.</source> - <translation>A(z) '%1' szkin 'le' kép fájl nem létezik.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+11"/> <source>The skin "closed" image file '%1' does not exist.</source> - <translation>A(z) '%1' szkin 'zárt' kép fájl nem létezik.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+12"/> <source>The skin cursor image file '%1' does not exist.</source> - <translation>A(z) '%1' szkin kurzor kép fájl nem létezik.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+25"/> <source>Syntax error in area definition: %1</source> - <translation>Szintakszis hiba a terület definícióban: %1</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+38"/> <source>Mismatch in number of areas, expected %1, got %2.</source> - <translation>Rossz párosítás a területek számában, várt %1, kapot %2.</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -950,7 +947,7 @@ <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="+307"/> <source><html><table><tr><td><b>Font</b></td><td>%1, %2</td></tr><tr><td><b>Style</b></td><td>%3</td></tr><tr><td><b>Resolution</b></td><td>%4 x %5</td></tr></table></html></source> <extracomment>Format embedded device profile description</extracomment> - <translation><html><table><tr><td><b>Betű</b></td><td>%1, %2</td></tr><tr><td><b>Stílus</b></td><td>%3</td></tr><tr><td><b>Felbontás</b></td><td>%4 x %5</td></tr></table></html></translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -959,13 +956,13 @@ <location line="+103"/> <source>Embedded Design</source> <extracomment>Tab in preferences dialog</extracomment> - <translation>Tab a beállítások párbeszéd ablakban</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+10"/> <source>Device Profiles</source> <extracomment>EmbeddedOptionsControl group box"</extracomment> - <translation>BeágyazottOpciókVezérlő csoport doboz"</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -973,27 +970,27 @@ <message> <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/> <source>Font</source> - <translation>Betű</translation> + <translation type="unfinished">Betűtípus</translation> </message> <message> <location line="+11"/> <source>&Writing system</source> - <translation>Rendszer &írása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>&Family</source> - <translation>&Család</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>&Style</source> - <translation>&Stílus</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>&Point size</source> - <translation>&Pont méret</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1001,37 +998,37 @@ <message> <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+62"/> <source>PreferDefault</source> - <translation>AlapértelmezettPreferálása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>NoAntialias</source> - <translation>NincsÁtlapolás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>PreferAntialias</source> - <translation>ÁtlapolásPreferálása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+61"/> <source>Antialiasing</source> - <translation>Átlapolás</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>FormBuilder</name> <message> - <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+359"/> + <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+375"/> <source>Invalid stretch value for '%1': '%2'</source> <extracomment>Parsing layout stretch values</extracomment> - <translation>Érvénytelen érték kiterjesztés '%1'-re: '%2'</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+62"/> <source>Invalid minimum size for '%1': '%2'</source> <extracomment>Parsing grid layout minimum size values</extracomment> - <translation>Érvénytelen minimum méret '%1'-re: '%2'</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1039,144 +1036,142 @@ <message> <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="+91"/> <source>%1 %</source> - <translation>%1 %</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>Preview Zoom</source> - <translation>Zoom előnézet</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Default Zoom</source> - <translation>Alapértelmezett zoom</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+29"/> <source>Forms</source> <extracomment>Tab in preferences dialog</extracomment> - <translation>Űrlapok</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+13"/> <source>Default Grid</source> - <translation>Alapértelmezett rács</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>FormLayoutRowDialog</name> <message> - <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui" line="+6"/> + <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui"/> <source>Add Form Layout Row</source> - <translatorcomment>нелепица какая-то</translatorcomment> - <translation>Űrlap szerkezet sor hozzaadása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+11"/> + <location/> <source>&Label text:</source> - <translation>&Címke szöveg:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+23"/> + <location/> <source>Field &type:</source> - <translation>Mező &típus:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+20"/> + <location/> <source>&Field name:</source> - <translation>&Mező név:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location/> <source>&Buddy:</source> - <translation>&Haver:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+17"/> + <location/> <source>&Row:</source> - <translation>&Sor:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+16"/> + <location/> <source>Label &name:</source> - <translation>Címke &név:</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>FormWindow</name> <message> - <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1701"/> + <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1754"/> <source>Unexpected element <%1></source> - <translation>Váratlan elem <%1></translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>Error while pasting clipboard contents at line %1, column %2: %3</source> - <translation>Hiba történt a vágólap tartalom beillesztése közben a(z) %1 sorban, %2 oszlopban: %3</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>FormWindowSettings</name> <message> - <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui" line="+54"/> + <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui"/> <source>Form Settings</source> - <translation>Űrlap beállítások</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+14"/> + <location/> <source>Layout &Default</source> - <translation>&Alapértelmezett elrendezés</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+15"/> + <location/> <source>&Spacing:</source> - <translation>&Ritkítás:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location/> <source>&Margin:</source> - <translation>&Margó:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+19"/> + <location/> <source>&Layout Function</source> - <translation>&Elrendezés függvény -</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+21"/> + <location/> <source>Ma&rgin:</source> - <translation>Ma&rgó:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location/> <source>Spa&cing:</source> - <translation>Rit&kítás:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+117"/> - <source>&Author</source> - <translation>&Szerző</translation> + <location/> + <source>&Pixmap Function</source> + <translation type="unfinished"></translation> </message> <message> - <location line="-41"/> + <location/> <source>&Include Hints</source> - <translation>Célzások &beleértése</translation> - </message> - <message> - <location line="-53"/> - <source>&Pixmap Function</source> - <translation>&Pixmap függvény</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+71"/> + <location/> <source>Grid</source> - <translation>Rács</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>Embedded Design</source> - <translation>Beágyazott terv</translation> + <translation type="unfinished"></translation> + </message> + <message> + <location/> + <source>&Author</source> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1184,7 +1179,7 @@ <message> <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+352"/> <source>All Pixmaps (</source> - <translation>Az összes Pixmap (</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1193,94 +1188,94 @@ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+66"/> <source>XX Icon Selected off</source> <extracomment>Sample string to determinate the width for the first column of the list item property browser</extracomment> - <translation>XX ikon kiválasztásának kikapcsolása</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>MainWindowBase</name> <message> - <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+119"/> + <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+121"/> <source>Main</source> <extracomment>Not currently used (main tool bar)</extracomment> - <translation>Fő</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>File</source> - <translation>Fájl</translation> + <translation type="unfinished">Fájl</translation> </message> <message> <location line="+1"/> <source>Edit</source> - <translation>Szerkesztés</translation> + <translation type="unfinished">Szerkesztés</translation> </message> <message> <location line="+1"/> <source>Tools</source> - <translation>Eszközök</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Form</source> - <translation>Űrlap</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>Qt Designer</source> - <translation>Qt Designer</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>NewForm</name> <message> - <location filename="../tools/designer/src/designer/newform.cpp" line="+79"/> + <location filename="../tools/designer/src/designer/newform.cpp" line="+78"/> + <source>Show this Dialog on Startup</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> <source>C&reate</source> - <translation>&Létrehozás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Recent</source> - <translation>Utóbbi</translation> + <translation type="unfinished">Előző</translation> </message> <message> - <location line="+32"/> + <location line="+3"/> + <source>New Form</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+29"/> <source>&Close</source> - <translation>&Bezárás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>&Open...</source> - <translation>&Megnyitás...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>&Recent Forms</source> - <translation>&Utóbbi űrlapok</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+64"/> <source>Read error</source> - <translation>Olvasási hiba</translation> - </message> - <message> - <location line="-100"/> - <source>New Form</source> - <translation>Űj űrlap</translation> - </message> - <message> - <location line="-5"/> - <source>Show this Dialog on Startup</source> - <translation>Párbeszédablak megjelenítése betöltéskor</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+128"/> + <location line="+23"/> <source>A temporary form file could not be created in %1.</source> - <translation>Egy átmeneti űrlap fájlt nem sikerült létrehozni %1-ben.</translation> + <translation type="unfinished">Az ideiglenes űrlap fájl nem hozható létre a(z) %1 helyen.</translation> </message> <message> <location line="+6"/> <source>The temporary form file %1 could not be written.</source> - <translation>A(z) %1 átmeneti űrlap fájlt nem sikerült írni.</translation> + <translation type="unfinished">A(z) %1 ideiglenes űrlap fájl nem írható.</translation> </message> </context> <context> @@ -1288,22 +1283,22 @@ <message> <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+360"/> <source>Object</source> - <translation>Objektum</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Class</source> - <translation>Osztály</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+35"/> <source>separator</source> - <translation>Elválasztó</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+98"/> <source><noname></source> - <translation><noname></translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1311,68 +1306,66 @@ <message> <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+158"/> <source>Change Object Name</source> - <translation>Objektum nevének megváltoztatása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>Object Name</source> - <translation>Objektum név</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>PluginDialog</name> <message> - <location filename="../tools/designer/src/lib/shared/plugindialog.ui" line="+54"/> + <location filename="../tools/designer/src/lib/shared/plugindialog.ui"/> <source>Plugin Information</source> - <translation>Beépülő modul információ</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+26"/> + <location/> <source>1</source> - <translation>1</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>PreferencesDialog</name> <message> - <location filename="../tools/designer/src/designer/preferencesdialog.ui" line="+20"/> + <location filename="../tools/designer/src/designer/preferencesdialog.ui"/> <source>Preferences</source> - <translation>Beállítások</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>PreviewConfigurationWidget</name> <message> - <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui" line="+5"/> + <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui"/> <source>Form</source> - <translation>Űrlap</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>Print/Preview Configuration</source> - <translation>Nyomtatás/Előnézet konfiguráció</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+9"/> + <location/> <source>Style</source> - <translation>Stílus</translation> + <translation type="unfinished">Stílus</translation> </message> <message> - <location line="+10"/> + <location/> <source>Style sheet</source> - <translation>Stíluslap</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+19"/> - <location line="+7"/> - <location line="+21"/> + <location/> <source>...</source> - <translation>...</translation> + <translation type="unfinished">...</translation> </message> <message> - <location line="-12"/> + <location/> <source>Device skin</source> - <translation>Eszköz szkin</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1381,7 +1374,7 @@ <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+112"/> <source>Not used</source> <extracomment>Usage of promoted widgets</extracomment> - <translation>Nincs használva</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1390,7 +1383,7 @@ <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="+172"/> <location line="+5"/> <source>Page</source> - <translation>Lap</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1398,59 +1391,58 @@ <message> <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+206"/> <source>Unexpected element <%1></source> - <translation>Váratlan elem <%1></translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>An error has occurred while reading the UI file at line %1, column %2: %3</source> - <translation>Hiba történt az UI fájl olvasása közben a(z) %1 sorban, %2 oszlopban: %3</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>Invalid UI file: The root element <ui> is missing.</source> - <translation>Érvénytelen UI fájl. A rendszergazda elem <ui> hiányzik.</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+119"/> + <location line="+104"/> <source>The creation of a widget of the class '%1' failed.</source> - <translation>A(z) '%1' osztály egy widget-ének létrehozása nem sikerült.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+296"/> <source>Attempt to add child that is not of class QWizardPage to QWizard.</source> - <translation>Gyermek hozzáadásának megkísérelése QWizard-hoz, amely nem egy QWizardPage osztály.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+86"/> <source>Attempt to add a layout to a widget '%1' (%2) which already has a layout of non-box type %3. This indicates an inconsistency in the ui-file.</source> - <translation>Egy elrendezés hozzáadásának megprónálás egy "%1' widgethez (%2), melynek már egy %3 típusú nem doboz elrendezése van. -Ez ellentmondást mutat az ui fájlban.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+144"/> <source>Empty widget item in %1 '%2'.</source> - <translation>Üres widget elem %1-ben '%2'.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+680"/> <source>Flags property are not supported yet.</source> - <translation>Jelző tulajdonság még nem támogatott.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+81"/> <source>While applying tab stops: The widget '%1' could not be found.</source> - <translation>Tab stops alkalmazásakor: A(z) '%1' widget nem található.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+908"/> <source>Invalid QButtonGroup reference '%1' referenced by '%2'.</source> - <translation>Érvénytelen '%1' QButtonGroup hivatkozásra hivatkozik a(z) '%2'.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+511"/> <source>This version of the uitools library is linked without script support.</source> - <translation>Az uitools könyvtár ezen verziója szkript támogatás nélkül linkelt.</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1458,12 +1450,12 @@ Ez ellentmondást mutat az ui fájlban.</translation> <message> <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+75"/> <source>ActiveX control</source> - <translation>ActiveX vezérlő</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>ActiveX control widget</source> - <translation>ActiveX vezérlő widget</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1471,22 +1463,22 @@ Ez ellentmondást mutat az ui fájlban.</translation> <message> <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+119"/> <source>Set Control</source> - <translation>Vezérlő beállítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Reset Control</source> - <translation>Vezérlő újraindítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+41"/> <source>Licensed Control</source> - <translation>Felhatalmazott vezérlő</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>The control requires a design-time license</source> - <translation>A vezérlő egy tervezés idejű felhatalmazást igényel</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1494,70 +1486,68 @@ Ez ellentmondást mutat az ui fájlban.</translation> <message> <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="+83"/> <source>%1 is not a promoted class.</source> - <translation>%1 nem egy támogatott osztály.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+65"/> <source>The base class %1 is invalid.</source> - <translation>A(z) %1 alap osztály érvénytelen.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>The class %1 already exists.</source> - <translation>A(z) %1 osztály már létezik.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+9"/> <source>Promoted Widgets</source> - <translation>Támogatott Widget-ek</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+126"/> <source>The class %1 cannot be removed</source> - <translation>A(z) %1 osztályt nem lehet eltávolítani</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+9"/> <source>The class %1 cannot be removed because it is still referenced.</source> - <translation>A(z) %1 osztályt nem lehet eltávolítani, mert még mindig hivatkozott.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+10"/> <source>The class %1 cannot be renamed</source> - <translation>A(z) %1 osztályt nem lehet átnevezni</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>The class %1 cannot be renamed to an empty name.</source> - <translation>A(z) %1 osztályt nem lehet átnevezni egy üres névűre.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>There is already a class named %1.</source> - <translation>Már van egy %1 nevű osztály.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+29"/> <source>Cannot set an empty include file.</source> - <translatorcomment>перевод близко к тексту - буквальный совсем глаз режет</translatorcomment> - <translation>Nem lehet beállítani egy üres bennefoglalt fájlt.</translation> + <translation type="unfinished"></translation> </message> <message> <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+88"/> <source>Exception at line %1: %2</source> - <translation>Kivétel a(z) %1 sorban: %2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+36"/> <source>Unknown error</source> - <translation>Ismeretlen hiba</translation> + <translation type="unfinished">Ismeretlen hiba</translation> </message> <message> <location line="+50"/> <source>An error occurred while running the script for %1: %2 Script: %3</source> - <translation>Hiba történt a szkript futtása közben %1-re: %2 -Szkript: %3</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1565,332 +1555,326 @@ Szkript: %3</translation> <message> <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+141"/> <source>%1 - warning</source> - <translation>%1 -figyelmeztetés</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+96"/> <source>Qt Designer</source> - <translation>Qt Designer</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>This application cannot be used for the Console edition of Qt</source> - <translation>Ezt alkalmazást nem lehet a Qt konzol szerkesztésére használni</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>QDesignerActions</name> <message> - <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+128"/> + <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+130"/> <source>Saved %1.</source> - <translation>Mentve: %1.</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+50"/> + <location line="+26"/> + <source>%1 already exists. +Do you want to replace it?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+24"/> <source>Edit Widgets</source> - <translation>Widget-ek szerkesztése</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location line="+1"/> + <source>&New...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>&Open...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>&Save</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Save &As...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Save A&ll</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Save As &Template...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <location line="+925"/> + <source>&Close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-924"/> + <source>Save &Image...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>&Print...</source> + <translation type="unfinished">&Nyomtatás...</translation> + </message> + <message> + <location line="+1"/> <source>&Quit</source> - <translation>&Bezárás</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location line="+2"/> + <source>View &Code...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> <source>&Minimize</source> - <translation>&Minimalizálás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Bring All to Front</source> - <translation>Az összes előre hozása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Preferences...</source> - <translation>Beállítások...</translation> + <translation type="unfinished">Beállítások...</translation> </message> <message> - <location line="+298"/> - <source>Clear &Menu</source> - <translation>&Menü tisztítása</translation> + <location line="+1"/> + <source>Additional Fonts...</source> + <translation type="unfinished"></translation> </message> <message> - <location line="-233"/> + <location line="+72"/> + <source>ALT+CTRL+S</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> <source>CTRL+SHIFT+S</source> - <translation>CTRL+SHIFT+S</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+113"/> + <location line="+127"/> <source>CTRL+R</source> - <translation>CTRL+R</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+18"/> <source>CTRL+M</source> - <translation>CTRL+M</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+31"/> <source>Qt Designer &Help</source> - <translation>Qt Designer &Súgó</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>Current Widget Help</source> - <translation>Aktuális Widget Súgó</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>What's New in Qt Designer?</source> - <translation>Mi az újdonság a Qt Designer-ben?</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>About Plugins</source> - <translation>Beépülő modulokról</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <location line="+601"/> <source>About Qt Designer</source> - <translation>Qt Designer-ről</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-595"/> <source>About Qt</source> - <translation>Qt-ról</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+121"/> + <location line="+38"/> + <source>Clear &Menu</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>&Recent Forms</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+77"/> <location line="+197"/> <source>Open Form</source> - <translation>Űrlap megnyitása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-196"/> <location line="+37"/> <location line="+160"/> <source>Designer UI files (*.%1);;All Files (*)</source> - <translation>Designer UI fájlok (*.%1);;Az összes fájl (*)</translation> - </message> - <message> - <location line="-620"/> - <source>%1 already exists. -Do you want to replace it?</source> - <translation>%1 már létezik. -Le szeretné cserélni?</translation> - </message> - <message> - <location line="+42"/> - <source>Additional Fonts...</source> - <translation>További betűk...</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+303"/> - <source>&Recent Forms</source> - <translation>&Utóbbi űrlapok</translation> + <location line="-160"/> + <location line="+248"/> + <source>Save Form As</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+202"/> + <location line="-161"/> <source>Designer</source> - <translation>Designer</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+0"/> <source>Feature not implemented yet!</source> - <translation>A tulajdonság még nincs implementálva!</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+59"/> + <location line="+15"/> + <source>Code generation failed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+44"/> <source>Read error</source> - <translation>Olvasási hiba</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>%1 Do you want to update the file location or generate a new form?</source> - <translation>%1 -Szeretné frissíteni a fájl helyét vagy generálni egy új űrlapot?</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>&Update</source> - <translation>&Frissítés</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>&New Form</source> - <translation>&Új űrlap</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+77"/> <location line="+40"/> <source>Save Form?</source> - <translation>Menti az űrlapot?</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-39"/> <source>Could not open file</source> - <translation>Nem sikerült megnyitni a fájlt</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location line="+4"/> + <source>The file %1 could not be opened. +Reason: %2 +Would you like to retry or select a different file?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> <source>Select New File</source> - <translation>Új fájl kiválasztása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+30"/> <source>Could not write file</source> - <translation>Nem sikerült írni a fájlt</translation> - </message> - <message> - <location line="+201"/> - <source>&Close Preview</source> - <translation>Előnézet &bezárása</translation> - </message> - <message> - <location line="-905"/> - <source>&New...</source> - <translation>&Új...</translation> - </message> - <message> - <location line="+1"/> - <source>&Open...</source> - <translation>&Megnyitás...</translation> - </message> - <message> - <location line="+1"/> - <source>&Save</source> - <translation>&Mentés</translation> - </message> - <message> - <location line="+1"/> - <source>Save &As...</source> - <translation>Mentés &másként...</translation> - </message> - <message> - <location line="+1"/> - <source>Save A&ll</source> - <translation>Az ö&sszes mentése</translation> - </message> - <message> - <location line="+1"/> - <source>Save As &Template...</source> - <translation>Mentés &sablonként...</translation> - </message> - <message> - <location line="+1"/> - <location line="+901"/> - <source>&Close</source> - <translation>&Bezárás</translation> - </message> - <message> - <location line="-900"/> - <source>Save &Image...</source> - <translation>&Kép mentése...</translation> - </message> - <message> - <location line="+1"/> - <source>&Print...</source> - <translation>&Nyomtatás...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> - <source>View &Code...</source> - <translation>&Kód nézet...</translation> - </message> - <message> - <location line="+68"/> - <source>ALT+CTRL+S</source> - <translation>ALT+CTRL+S</translation> - </message> - <message> - <location line="+356"/> - <location line="+248"/> - <source>Save Form As</source> - <translation>Mentés űrlapként</translation> - </message> - <message> - <location line="+429"/> - <source>Preview failed</source> - <translation>Előnézet hiba</translation> - </message> - <message> - <location line="-575"/> - <source>Code generation failed</source> - <translation>Kód generálási hiba</translation> - </message> - <message> - <location line="+131"/> - <source>The file %1 could not be opened. -Reason: %2 -Would you like to retry or select a different file?</source> - <translation>Nem sikerült megnyitni a(z) %1 fájlt. -Ok: %2 -Meg szeretné újra próbálni vagy kiválasztani egy különböző fájlt?</translation> - </message> - <message> - <location line="+39"/> <source>It was not possible to write the entire file %1 to disk. Reason:%2 Would you like to retry?</source> - <translation>Nem lehetett az egész %1 fájlt a lemezre írni. -Ok: %2 -Meg szeretné próbálni újra?</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+158"/> <location line="+34"/> <source>Assistant</source> - <translation>Assistant</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+47"/> + <location line="+6"/> + <source>&Close Preview</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+41"/> <location line="+23"/> <source>The backup file %1 could not be written.</source> - <translation>Nem sikerült írni az archivált %1 fájlt.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+107"/> <source>The backup directory %1 could not be created.</source> - <translation>Nem sikerült létrehozni a(z) %1 archivált könyvtárat.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>The temporary backup directory %1 could not be created.</source> - <translation>Nem sikerült létrehozni az átmeneti archivált %1 könyvtárat.</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+54"/> + <location line="+30"/> + <source>Preview failed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+24"/> <source>Image files (*.%1)</source> - <translation>Kép fájlok (*.%1)</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+9"/> <location line="+17"/> <source>Save Image</source> - <translation>Kép mentése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-4"/> <source>Saved image %1.</source> - <translation>Mentett kép: %1.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>The file %1 could not be written.</source> - <translation>Nem sikerült írni a(z) %1 fájlt.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+13"/> <source>Please close all forms to enable the loading of additional fonts.</source> - <translation>Kérem zárja be az összes űrlapot további betűk betöltéséhez.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+52"/> <source>Printed %1.</source> - <translation>Kinyomtatva: %1.</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1899,7 +1883,7 @@ Meg szeretné próbálni újra?</translation> <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="+138"/> <source>Appearance</source> <extracomment>Tab in preferences dialog</extracomment> - <translation>Megjelenés</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1907,17 +1891,17 @@ Meg szeretné próbálni újra?</translation> <message> <location line="-53"/> <source>Docked Window</source> - <translation>Dokkolt ablak</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Multiple Top-Level Windows</source> - <translation>Összes felső szintű ablakok</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>Toolwindow Font</source> - <translation>Eszköz ablak betű</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1925,22 +1909,22 @@ Meg szeretné próbálni újra?</translation> <message> <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="-71"/> <source>Reset control</source> - <translation>Vezérlés újraindítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Set control</source> - <translation>Vezérlés beállítása</translation> + <translation type="unfinished"></translation> </message> <message> <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+179"/> <source>Control loaded</source> - <translation>Vezérlés betöltve</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+40"/> <source>A COM exception occurred when executing a meta call of type %1, index %2 of "%3".</source> - <translation>Egy COM kivétel történt a(z) %1 típusú meta hívás végrehajtása közben, '%3' %2 indexe.</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1948,17 +1932,17 @@ Meg szeretné próbálni újra?</translation> <message> <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+89"/> <source>Script errors occurred:</source> - <translation>Szkript hiba történt:</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+307"/> <source>The preview failed to build.</source> - <translation>Nem sikerült az előnézetet felépíteni.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+65"/> <source>Designer</source> - <translation>Designer</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1966,61 +1950,61 @@ Meg szeretné próbálni újra?</translation> <message> <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="+217"/> <source>%1 - %2[*]</source> - <translation>%1 - %2[*]</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+10"/> <source>Save Form?</source> - <translation>Űrlap mentése?</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Do you want to save the changes to this document before closing?</source> - <translation>El szeretné menteni a változtatásokat ebbe a dokumentumba a bezárás előtt?</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>If you don't save, your changes will be lost.</source> - <translation>Ha nem menti el, a változtatásai el fognak veszni.</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>QDesignerMenu</name> <message> - <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1181"/> + <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1179"/> <source>Type Here</source> - <translation>Gépelje be ide</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Add Separator</source> - <translation>Elválasztó hozzáadása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+371"/> <source>Insert separator</source> - <translation>Elválasztó beszúrása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>Remove separator</source> - <translation>Elválasztó eltávolítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Remove action '%1'</source> - <translation>'%1' tevékenység eltávolítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+25"/> - <location line="+650"/> + <location line="+648"/> <source>Add separator</source> - <translation>Elválasztó hozzáadása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-348"/> <source>Insert action</source> - <translation>Tevékenység beszúrása</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -2028,22 +2012,22 @@ Meg szeretné próbálni újra?</translation> <message> <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-375"/> <source>Type Here</source> - <translation>Gépelje be ide</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+298"/> <source>Remove Menu '%1'</source> - <translation>'%1' menü eltávolítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+12"/> <source>Remove Menu Bar</source> - <translation>Menü sáv eltávolítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+70"/> <source>Menu</source> - <translation>Menü</translation> + <translation type="unfinished">Menü</translation> </message> </context> <context> @@ -2051,45 +2035,45 @@ Meg szeretné próbálni újra?</translation> <message> <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="+271"/> <source>An XML error was encountered when parsing the XML of the custom widget %1: %2</source> - <translation>Egy XML hiba történt az egyéni %1 widget XML-ének elemzése közben: %2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>A required attribute ('%1') is missing.</source> - <translation>Egy szükséges attribútum ('%1') hiányzik.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+38"/> <source>An invalid property specification ('%1') was encountered. Supported types: %2</source> - <translation>Egy érvénytelen tulajdonság specifikációt ('%1') talált. Támogatott típusok: %2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+20"/> <source>'%1' is not a valid string property specification.</source> - <translation>'%1' nem egy érvényes sztring tulajdonság specifikáció.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+40"/> <source>The XML of the custom widget %1 does not contain any of the elements <widget> or <ui>.</source> - <translation>Az egyéni %1 widget XML-je nem tartalmaz semmilyen elemet <widget> vagy <ui>.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+12"/> <source>The class attribute for the class %1 is missing.</source> - <translation>Az osztály attribútum %1 osztályra hiányzik.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>The class attribute for the class %1 does not match the class name %2.</source> - <translation>Az osztály attribútum %1 osztályra nem egyezik meg a(z) %2 osztály nevével.</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>QDesignerPropertySheet</name> <message> - <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+754"/> + <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+758"/> <source>Dynamic Properties</source> - <translation>Dinamikus tulajdonságok</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -2097,32 +2081,31 @@ Meg szeretné próbálni újra?</translation> <message> <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+461"/> <source>The layout type '%1' is not supported, defaulting to grid.</source> - <translation>A(z) '%1' elrendezés típus nem támogatott, alapértelmezett rács.</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+243"/> + <location line="+239"/> <source>The container extension of the widget '%1' (%2) returned a widget not managed by Designer '%3' (%4) when queried for page #%5. Container pages should only be added by specifying them in XML returned by the domXml() method of the custom widget.</source> - <translation>A(z) '%1' (%2) widget konténer kiterjesztése egy olyan widget-et adott vissza, amelyet a(z) '%3' (%4) Designer nem kezel, %5 lap lekéréskor. -Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az egyéni widget domXML() eljárása által.</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+599"/> + <location line="+545"/> <source>Unexpected element <%1></source> <extracomment>Parsing clipboard contents</extracomment> - <translation>Váratlan elem <%1></translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>Error while pasting clipboard contents at line %1, column %2: %3</source> <extracomment>Parsing clipboard contents</extracomment> - <translation>Hiba történt a vágólap tartalmának beillesztése közben a(z) %1 sorban, %2 oszlopban: %3</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>Error while pasting clipboard contents: The root element <ui> is missing.</source> <extracomment>Parsing clipboard contents</extracomment> - <translation>Hiba történt a vágólap tartalmának beillesztése közben. A rendszergazda elem <ui> hiányzik.</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -2130,12 +2113,12 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location filename="../tools/designer/src/lib/shared/shared_settings.cpp" line="+83"/> <source>The template path %1 could not be created.</source> - <translation>Nem sikerült létrehozni a(z) %1 sablon útvonalat.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+184"/> <source>An error has been encountered while parsing device profile XML: %1</source> - <translation>Hiba történt az eszköz profil %1 XML elemzése közben</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -2143,32 +2126,32 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="+190"/> <source>Property Editor</source> - <translation>Tulajdonság szerkesztő</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+54"/> <source>Action Editor</source> - <translation>Tevékenység szerkesztő</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+42"/> <source>Object Inspector</source> - <translation>Objektum felügyelő</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+35"/> <source>Resource Browser</source> - <translation>Erőforrás böngésző</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+34"/> <source>Signal/Slot Editor</source> - <translation>Jel/Szlot szerkesztő</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+41"/> <source>Widget Box</source> - <translation>Widget doboz</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -2176,143 +2159,153 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="+199"/> <source>&File</source> - <translation>&Fájl</translation> + <translation type="unfinished">&Fájl</translation> </message> <message> - <location line="+6"/> + <location line="+2"/> + <source>Edit</source> + <translation type="unfinished">Szerkesztés</translation> + </message> + <message> + <location line="+4"/> <source>F&orm</source> - <translation>&Űrlap</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Preview in</source> - <translation>Előnézetben</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+8"/> + <location line="+4"/> + <source>&View</source> + <translation type="unfinished">&Nézet</translation> + </message> + <message> + <location line="+2"/> + <source>&Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> <source>&Window</source> - <translation>&Ablak</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>&Help</source> - <translation>&Súgó</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="-15"/> - <source>Edit</source> - <translation>Szerkesztés</translation> + <location line="+23"/> + <source>Toolbars</source> + <translation type="unfinished">Eszköztárak</translation> </message> <message> - <location line="+38"/> - <source>Toolbars</source> - <translation>Eszközsávok</translation> + <location line="+177"/> + <source>Widget Box</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+465"/> + <location line="+289"/> <source>Save Forms?</source> - <translation>Űrlap mentése?</translation> + <translation type="unfinished"></translation> </message> <message numerus="yes"> <location line="+1"/> <source>There are %n forms with unsaved changes. Do you want to review these changes before quitting?</source> - <translation> - <numerusform>%n űrlapban vannak el nem mentett változtatások. Át szeretné tekintei ezeket a változtatásokat a kilépés előtt?</numerusform> + <translation type="unfinished"> + <numerusform></numerusform> </translation> </message> <message> - <location line="-495"/> - <source>&View</source> - <translation>&Nézet</translation> - </message> - <message> - <location line="+2"/> - <source>&Settings</source> - <translation>&Beállítások</translation> - </message> - <message> - <location line="+204"/> - <source>Widget Box</source> - <translation>Widget doboz</translation> - </message> - <message> - <location line="+292"/> + <location line="+3"/> <source>If you do not review your documents, all your changes will be lost.</source> - <translation>Ha nem tekinti át újra a dokumentumokat, az összes változtatása el fog veszni.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Discard Changes</source> - <translation>Változtatások eldobása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Review Changes</source> - <translation>Változtatások áttekintése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+95"/> <source>Backup Information</source> - <translation>Archiválási információ</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>The last session of Designer was not terminated correctly. Backup files were left behind. Do you want to load them?</source> - <translation>A Designer utolsó szakasza nem megfelelően állt le. Archivált fájlok hagyott maga után. Be szeretné tölteni őket?</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+111"/> <source>The file <b>%1</b> could not be opened.</source> - <translation>A(z) <b>%1</b> fájlt nem sikerült megnyitni.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+46"/> <source>The file <b>%1</b> is not a valid Designer UI file.</source> - <translation>A(z) <b>%1</b> fájl nem egy érvényes Designer UI fájl.</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>QFormBuilder</name> <message> - <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="+163"/> + <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="+168"/> <source>An empty class name was passed on to %1 (object name: '%2').</source> <extracomment>Empty class name passed to widget factory method</extracomment> - <translation>Egy üres osztály név volt %1-ra (objektum név: '%2').</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+56"/> <source>QFormBuilder was unable to create a custom widget of the class '%1'; defaulting to base class '%2'.</source> - <translation>QFormBuilder-nek nem sikerült létrehozni egy '%1' osztály egyéni widget-et, alapértelmezés a(z) '%2' alap osztályra.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>QFormBuilder was unable to create a widget of the class '%1'.</source> - <translation>QFormBuilder-nak nem sikerült létrehoznia egy '%1' osztály widget-et.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+61"/> <source>The layout type `%1' is not supported.</source> - <translation>A(z) '%1' elrendezés terv nem támogatott.</translation> + <translation type="unfinished"></translation> </message> <message> <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="+106"/> <source>The set-type property %1 could not be read.</source> - <translation>Nem sikerült olvasni a(z) %1 beállított típusú tulajdonságot.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+23"/> <source>The enumeration-type property %1 could not be read.</source> - <translation>A(z) %1 felsorolási típus tulajdonságot nem sikerült olvasni.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+190"/> <source>Reading properties of the type %1 is not supported yet.</source> - <translation>'%1' típus tulajdonságok olvasása még nem támogatott.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+266"/> <source>The property %1 could not be written. The type %2 is not supported yet.</source> - <translation>A(z) %1 tulajdonságot nem sikerült írni. A(z) %2 típus nem támogatott még.</translation> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../tools/designer/src/lib/uilib/properties_p.h" line="+132"/> + <source>The enumeration-value '%1' is invalid. The default value '%2' will be used instead.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+14"/> + <source>The flag-value '%1' is invalid. Zero will be used instead.</source> + <translation type="unfinished"></translation> </message> </context> <context> @@ -2320,48 +2313,48 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="+194"/> <source>Previous Page</source> - <translation>Előző lap</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Next Page</source> - <translation>Következő lap</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Delete</source> - <translation>Törlés</translation> + <translation type="unfinished">Törlés</translation> </message> <message> <location line="+1"/> <source>Before Current Page</source> - <translation>Aktuális lap előtt</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>After Current Page</source> - <translation>Aktuális lap után</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Change Page Order...</source> - <translation>Lap sorrend megváltoztatása...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+72"/> <source>Change Page Order</source> - <translation>Lap sorrend megváltoztatása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+49"/> <source>Page %1 of %2</source> - <translation>%2 %1 lapja</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+10"/> <location line="+4"/> <source>Insert Page</source> - <translation>Lap beszúrása</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -2369,12 +2362,12 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location line="-153"/> <source>Go to previous page of %1 '%2' (%3/%4).</source> - <translation>Ugrás a(z) %1 '%2' (%3/%4) előző lapjára.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>Go to next page of %1 '%2' (%3/%4).</source> - <translation>Ugrás a(z) %1 '%2' (%3/%4) következő lapjára.</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -2382,28 +2375,28 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="+89"/> <source>Delete</source> - <translation>Törlés</translation> + <translation type="unfinished">Törlés</translation> </message> <message> <location line="+1"/> <source>Before Current Page</source> - <translation>Aktuális lap előtt</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>After Current Page</source> - <translation>Aktuális lap után</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+283"/> <source>Page %1 of %2</source> - <translation>%2 %1 lapja</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+10"/> <location line="+4"/> <source>Insert Page</source> - <translation>Lap beszúrása</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -2411,74 +2404,74 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="+64"/> <source>Delete Page</source> - <translation>Lap törlése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Before Current Page</source> - <translation>Aktuális lap előtt</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>After Current Page</source> - <translation>Aktuális lap után</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Change Page Order...</source> - <translation>Lap sorrend megváltoztatása...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+116"/> <source>Change Page Order</source> - <translation>Lap sorrend megváltoztatása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+44"/> <source>Page %1 of %2</source> - <translation>%2 %1 lapja</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+12"/> <source>Insert Page</source> - <translation>Lap beszúrása</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>QtBoolEdit</name> <message> - <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+226"/> + <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+255"/> <location line="+10"/> <location line="+25"/> <source>True</source> - <translation>Igaz</translation> + <translation type="unfinished">Igaz</translation> </message> <message> <location line="-25"/> <location line="+25"/> <source>False</source> - <translation>Hamis</translation> + <translation type="unfinished">Hamis</translation> </message> </context> <context> <name>QtBoolPropertyManager</name> <message> - <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1469"/> + <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1507"/> <source>True</source> - <translation>Igaz</translation> + <translation type="unfinished">Igaz</translation> </message> <message> <location line="+1"/> <source>False</source> - <translation>Hamis</translation> + <translation type="unfinished">Hamis</translation> </message> </context> <context> <name>QtCharEdit</name> <message> - <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1581"/> + <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1584"/> <source>Clear Char</source> - <translation>Karakter ürítése</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -2486,128 +2479,128 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location line="+605"/> <source>...</source> - <translation>...</translation> + <translation type="unfinished">...</translation> </message> </context> <context> <name>QtColorPropertyManager</name> <message> - <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4743"/> + <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4718"/> <source>Red</source> - <translation>Piros</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+8"/> <source>Green</source> - <translation>Zöld</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+8"/> <source>Blue</source> - <translation>Kék</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+8"/> <source>Alpha</source> - <translation>Alfa</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>QtCursorDatabase</name> <message> - <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-206"/> + <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-234"/> <source>Arrow</source> - <translation>Nyíl</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Up Arrow</source> - <translation>Felfele nyíl</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Cross</source> - <translation>Kereszt</translation> + <translation type="unfinished">Kereszt</translation> </message> <message> <location line="+2"/> <source>Wait</source> - <translation>Várakozás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>IBeam</source> - <translation>IBeam</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Size Vertical</source> - <translation>Vertikális méret</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Size Horizontal</source> - <translation>Horizontális méret</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Size Backslash</source> - <translation>Visszaper méret</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Size Slash</source> - <translation>Per méret</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Size All</source> - <translation>Az összes méret</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Blank</source> - <translation>Üres</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Split Vertical</source> - <translation>Vertikális feldarabolás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Split Horizontal</source> - <translation>Horizontális feldarabolás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Pointing Hand</source> - <translation>Mutató kéz</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Forbidden</source> - <translation>Tiltott</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Open Hand</source> - <translation>Nyitott kéz</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Closed Hand</source> - <translation>Zárt kéz</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>What's This</source> - <translation>Mi ez</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Busy</source> - <translation>Elfoglalt</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -2615,12 +2608,12 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+198"/> <source>...</source> - <translation>...</translation> + <translation type="unfinished">...</translation> </message> <message> <location line="+20"/> <source>Select Font</source> - <translation>Betű kiválasztása</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -2628,45 +2621,45 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-351"/> <source>Family</source> - <translation>Család</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+13"/> <source>Point Size</source> - <translation>Pont méret</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+8"/> <source>Bold</source> - <translation>Félkövér</translation> + <translation type="unfinished">Félkövér</translation> </message> <message> <location line="+7"/> <source>Italic</source> - <translation>Dőlt</translation> + <translation type="unfinished">Dőlt</translation> </message> <message> <location line="+7"/> <source>Underline</source> - <translation>Aláhúzás</translation> + <translation type="unfinished">Aláhúzott</translation> </message> <message> <location line="+7"/> <source>Strikeout</source> - <translation>Kitalálás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>Kerning</source> - <translation>Szóközökkel feltöltés</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>QtGradientDialog</name> <message> - <location filename="../tools/shared/qtgradienteditor/qtgradientdialog.ui" line="+53"/> + <location filename="../tools/shared/qtgradienteditor/qtgradientdialog.ui"/> <source>Edit Gradient</source> - <translation>Meredekség szerkesztése</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -2674,316 +2667,304 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+431"/> <source>Start X</source> - <translation>X indítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>Start Y</source> - <translation>Y indítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>Final X</source> - <translation>Végső X</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>Final Y</source> - <translation>Végső Y</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <location line="+24"/> <source>Central X</source> - <translation>X középpont</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-20"/> <location line="+24"/> <source>Central Y</source> - <translation>Y középpont</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-20"/> <source>Focal X</source> - <translation>X gyújtópont</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>Focal Y</source> - <translation>Y gyújtópont</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>Radius</source> - <translation>Sugár</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+16"/> <source>Angle</source> - <translation>Szög</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+288"/> <source>Linear</source> - <translation>Lineáris</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Radial</source> - <translation>Sugárirányú</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Conical</source> - <translation>Kúp alakú</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+20"/> <source>Pad</source> - <translation>Lyuk</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Repeat</source> - <translation>Megismétlés</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Reflect</source> - <translation>Prizma</translation> + <translation type="unfinished"></translation> </message> <message> - <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="+53"/> + <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui"/> <source>Form</source> - <translation>Űrlap</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+48"/> + <location/> <source>Gradient Editor</source> - <translation>Meredekség szerkesztő</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>This area shows a preview of the gradient being edited. It also allows you to edit parameters specific to the gradient's type such as start and final point, radius, etc. by drag & drop.</source> - <translation>Ez a mező jeleníti meg a meredekség egy előzetének szerkesztését. Ez engedélyezi a meredekség típusához tartozó paraméter specifikus dolgok szerkesztését, mint a kezdő és végpont, sugár, stb. a fogd & vidd módszerrel.</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+16"/> + <location/> <source>1</source> - <translation>1</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+35"/> + <location/> <source>2</source> - <translation>2</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+35"/> + <location/> <source>3</source> - <translation>3</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+35"/> + <location/> <source>4</source> - <translation>4</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+35"/> + <location/> <source>5</source> - <translation>5</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+35"/> + <location/> <source>Gradient Stops Editor</source> - <translation>Meredekség leállítás szerkesztő</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>This area allows you to edit gradient stops. Double click on the existing stop handle to duplicate it. Double click outside of the existing stop handles to create a new stop. Drag & drop the handle to reposition it. Use right mouse button to popup context menu with extra actions.</source> - <translation>Ez a mező engedélyezi a meredekség leállításának szerkesztését.Dupla kattintás a létező leállítás kezelőn duplikálja ezt. Dupla kattintás a létező leállítás kezelőn kívül létrehoz egy új leállítást. Fogd & vidd az újrapozíciónálo kezelőt. Használja a jobb egér gombot a felugró menü összefüggéshez extra tevékenységekkel.</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+13"/> + <location/> <source>Zoom</source> - <translation>Zoom</translation> + <translation type="unfinished">Nagyítás</translation> </message> <message> - <location line="+19"/> - <location line="+3"/> + <location/> <source>Reset Zoom</source> - <translation>Újraindítás zoom</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+13"/> + <location/> <source>Position</source> - <translation>Pozíció</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+19"/> - <location line="+49"/> - <location line="+22"/> + <location/> <source>Hue</source> - <translation>Színárnyalat</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="-68"/> + <location/> <source>H</source> - <translation>H</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+87"/> - <location line="+49"/> + <location/> <source>Saturation</source> - <translation>Telítettség</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="-46"/> + <location/> <source>S</source> - <translation>S</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+68"/> + <location/> <source>Sat</source> - <translation>Sat</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+19"/> - <location line="+49"/> + <location/> <source>Value</source> - <translation>Érték</translation> + <translation type="unfinished">Érték</translation> </message> <message> - <location line="-46"/> + <location/> <source>V</source> - <translation>V</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+68"/> + <location/> <source>Val</source> - <translation>Val</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+19"/> - <location line="+49"/> - <location line="+22"/> + <location/> <source>Alpha</source> - <translation>Alfa</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="-68"/> + <location/> <source>A</source> - <translation>A</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+81"/> + <location/> <source>Type</source> - <translation>Típus</translation> + <translation type="unfinished">Típus</translation> </message> <message> - <location line="+13"/> + <location/> <source>Spread</source> - <translation>Kiterjedés</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+19"/> + <location/> <source>Color</source> - <translation>Szín</translation> + <translation type="unfinished">Szín</translation> </message> <message> - <location line="+13"/> + <location/> <source>Current stop's color</source> - <translation>Aktuális leállítás színe</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+22"/> + <location/> <source>Show HSV specification</source> - <translation>HSV specifikáció megjelenítése</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>HSV</source> - <translation>HSV</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+22"/> + <location/> <source>Show RGB specification</source> - <translation>RGB specifikáció megjelenítése</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>RGB</source> - <translation>RGB</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+28"/> + <location/> <source>Current stop's position</source> - <translation>Aktuális leállítás pozíciója</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+188"/> + <location/> <source>%</source> - <translation>%</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+111"/> + <location/> <source>Zoom In</source> - <translation>Nagyítás</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>Zoom Out</source> - <translation>Kicsinyítés</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+35"/> + <location/> <source>Toggle details extension</source> - <translation>Részlet kiterjesztések kapcsolgatása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>></source> - <translation>></translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+19"/> + <location/> <source>Linear Type</source> - <translation>Lineáris típus</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> - <location line="+22"/> - <location line="+22"/> - <location line="+22"/> - <location line="+22"/> - <location line="+22"/> + <location/> <source>...</source> - <translation>...</translation> + <translation type="unfinished">...</translation> </message> <message> - <location line="-91"/> + <location/> <source>Radial Type</source> - <translation>Sugárirányú típus</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+22"/> + <location/> <source>Conical Type</source> - <translation>Kúp alakú típus</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+22"/> + <location/> <source>Pad Spread</source> - <translation>Lyuk kiterjedés</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+22"/> + <location/> <source>Repeat Spread</source> - <translation>Ismétlési kiterjedés</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+22"/> + <location/> <source>Reflect Spread</source> - <translation>Prizma kiterjedés</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -2991,37 +2972,37 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+947"/> <source>New Stop</source> - <translation>Új leállítás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Delete</source> - <translation>Törlés</translation> + <translation type="unfinished">Törlés</translation> </message> <message> <location line="+1"/> <source>Flip All</source> - <translation>Az összes feldobása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Select All</source> - <translation>Az összes kiválasztása</translation> + <translation type="unfinished">Összes kijelölése</translation> </message> <message> <location line="+1"/> <source>Zoom In</source> - <translation>Nagyítás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Zoom Out</source> - <translation>Kicsinyítés</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Reset Zoom</source> - <translation>Zoom újraindítása</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3029,62 +3010,63 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+107"/> <source>Grad</source> - <translation>Diplomás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+26"/> <source>Remove Gradient</source> - <translation>Meredekség eltávolítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Are you sure you want to remove the selected gradient?</source> - <translation>El szeretné távolítani a kiválasztott meredekséget?</translation> + <translation type="unfinished"></translation> </message> <message> - <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui" line="+39"/> + <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui"/> <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+74"/> <source>New...</source> - <translation>Új...</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+19"/> + <location/> <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/> <source>Edit...</source> - <translation>Szerkesztés...</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+19"/> + <location/> <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/> <source>Rename</source> - <translation>Átnevezés</translation> + <translation type="unfinished">Átnevezés</translation> </message> <message> - <location line="+19"/> + <location/> <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/> <source>Remove</source> - <translation>Eltávolítás</translation> + <translation type="unfinished">Törlés</translation> </message> <message> - <location line="-83"/> + <location/> <source>Gradient View</source> - <translation>Meredekség nézet</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>QtGradientViewDialog</name> <message> - <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui" line="+53"/> + <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui"/> + <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.h" line="+62"/> <source>Select Gradient</source> - <translation>Meredekség kiválasztása</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>QtKeySequenceEdit</name> <message> - <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+221"/> + <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+249"/> <source>Clear Shortcut</source> - <translation>Gyorsbillentyű kitisztítása</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3092,17 +3074,17 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-3541"/> <source>%1, %2</source> - <translation>%1, %2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+53"/> <source>Language</source> - <translation>Nyelv</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+8"/> <source>Country</source> - <translation>Ország</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3110,17 +3092,17 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location line="+411"/> <source>(%1, %2)</source> - <translation>(%1, %2)</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+71"/> <source>X</source> - <translation>X</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+8"/> <source>Y</source> - <translation>Y</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3128,30 +3110,30 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location line="-320"/> <source>(%1, %2)</source> - <translation>(%1, %2)</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+37"/> <source>X</source> - <translation>X</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>Y</source> - <translation>Y</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>QtPropertyBrowserUtils</name> <message> - <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-136"/> + <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-156"/> <source>[%1, %2, %3] (%4)</source> - <translation>[%1, %2, %3] (%4)</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+30"/> <source>[%1, %2]</source> - <translation>[%1, %2]</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3159,27 +3141,27 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1706"/> <source>[(%1, %2), %3 x %4]</source> - <translation>[(%1, %2), %3 x %4]</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+156"/> <source>X</source> - <translation>X</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+8"/> <source>Y</source> - <translation>Y</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+8"/> <source>Width</source> - <translation>Szélesség</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+9"/> <source>Height</source> - <translation>Magasság</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3187,27 +3169,27 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <message> <location line="-612"/> <source>[(%1, %2), %3 x %4]</source> - <translation>[(%1, %2), %3 x %4]</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+120"/> <source>X</source> - <translation>X</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>Y</source> - <translation>Y</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>Width</source> - <translation>Szélesség</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+8"/> <source>Height</source> - <translation>Magasság</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3216,71 +3198,70 @@ Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="+76"/> <source>%1 already exists. Do you want to replace it?</source> - <translation>%1 már létezik. -Le szeretné cserélni?</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>The file does not appear to be a resource file; element '%1' was found where '%2' was expected.</source> - <translation>A fájl nem egy erőforrás fájl, '%1' elem található, ahol '%2' a várt.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+902"/> <source>%1 [read-only]</source> - <translation>%1 [csak olvasható]</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <location line="+198"/> <source>%1 [missing]</source> - <translation>%1 [hiányzik]</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-72"/> <source><no prefix></source> - <translation><nincs előtag></translation> + <translation type="unfinished"></translation> </message> <message> <location line="+320"/> <location line="+566"/> <source>New Resource File</source> - <translation>Új erőforrás fájl</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-564"/> <location line="+25"/> <source>Resource files (*.qrc)</source> - <translation>Erőforrás fájlok (*.qrc)</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-2"/> <source>Import Resource File</source> - <translation>Erőforrás fájl importálása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+112"/> <source>newPrefix</source> - <translation>újElőtag</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+16"/> <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>Figyelmeztetés:</b> A(z)</p><p>%1</p><p>fájl az aktuális erőforrás fájl szülő könyvtárán kívül helyezkedik el.</p></translation> + <translation type="unfinished"></translation> </message> <message> <location line="+8"/> <source><p>To resolve the issue, press:</p><table><tr><th align="left">Copy</th><td>to copy the file to the resource file's parent directory.</td></tr><tr><th align="left">Copy As...</th><td>to copy the file into a subdirectory of the resource file's parent directory.</td></tr><tr><th align="left">Keep</th><td>to use its current location.</td></tr></table></source> - <translation><p>A hiba megoldásához, nyomja le a következőt:</p><table><tr><th align="left">Másolás</th><td>a fájl erőforrás fájljának szülőkönyvtárába másoláshoz.</td></tr><tr><th align="left">Másolás másként...</th><td>a fájl erőforrás fájljának szülőkönyvtárának egy alkönyvtárába másoláshoz.</td></tr><tr><th align="left">Megtartás</th><td>az aktuális helyének használatához. </td></tr></table></translation> + <translation type="unfinished"></translation> </message> <message> <location line="+25"/> <source>Add Files</source> - <translation>Fájlok hozzáadása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+21"/> <source>Incorrect Path</source> - <translation>Helytelen útvonal</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> @@ -3288,50 +3269,49 @@ Le szeretné cserélni?</translation> <location line="+212"/> <location line="+7"/> <source>Copy</source> - <translation>Másolás</translation> + <translation type="unfinished">Másolás</translation> </message> <message> <location line="-236"/> <source>Copy As...</source> - <translation>Másolás, mint...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Keep</source> - <translation>Megtartás</translation> + <translation type="unfinished">Meghagy</translation> </message> <message> <location line="+2"/> <source>Skip</source> - <translation>Kihagyás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+87"/> <source>Clone Prefix</source> - <translation>Előtag klónozása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Enter the suffix which you want to add to the names of the cloned files. This could for example be a language extension like "_de".</source> - <translation>Gépelje be az utótagot, melyet hozzá akar adni a klónozott fájl nevekhez. -Ez például egy nyelv kiterjesztés lenne, úgy mint "_de".</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+113"/> <location line="+4"/> <source>Copy As</source> - <translation>Másolás, mint</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source><p>The selected file:</p><p>%1</p><p>is outside of the current resource file's directory:</p><p>%2</p><p>Please select another path within this directory.<p></source> - <translation><p>A kiválaszott fájl:</p><p>%1</p><p>az aktuális erőforrás fájl könytárán kívül helyezkedik el:</p><p>%2</p><p>Kérem válasszon másik útvonalat ezen a könyvtáron belül.<p></translation> + <translation type="unfinished"></translation> </message> <message> <location line="+20"/> <source>Could not overwrite %1.</source> - <translation>Nem sikerült felülírni %1.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> @@ -3339,196 +3319,189 @@ Ez például egy nyelv kiterjesztés lenne, úgy mint "_de".</translat %1 to %2</source> - <translation>Nem sikerült másolni -%1 -ide -%2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+35"/> <source>A parse error occurred at line %1, column %2 of %3: %4</source> - <translation>Egy elemzési hiba történt %3 %1 sorában, %2 oszlopában: -%4</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+12"/> <source>Save Resource File</source> - <translation>Erőforrás fájl mentése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Could not write %1: %2</source> - <translation>Nem sikerült írni %1: %2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+33"/> <source>Edit Resources</source> - <translation>Erőforrások szerkesztése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+35"/> <source>New...</source> - <translation>Új...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Open...</source> - <translation>Megnyitás...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Open Resource File</source> - <translation>Erőforrás fájl megnyitása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <location line="+11"/> <source>Remove</source> - <translation>Eltávolítás</translation> + <translation type="unfinished">Törlés</translation> </message> <message> <location line="-10"/> <location line="+11"/> <source>Move Up</source> - <translation>Mozgatás felfelé</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-10"/> <location line="+11"/> <source>Move Down</source> - <translation>Mozgatás lefelé</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-9"/> <location line="+1"/> <source>Add Prefix</source> - <translation>Előtag hozzáadása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Add Files...</source> - <translation>Fájlok hozzáadása...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Change Prefix</source> - <translation>Előtag megváltoztatása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Change Language</source> - <translation>Nyelv megváltoztatása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Change Alias</source> - <translation>Álnév megváltoztatása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Clone Prefix...</source> - <translation>Előtag klónozása...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+37"/> <source>Prefix / Path</source> - <translation>Előtag / Útvonal</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Language / Alias</source> - <translation>Nyelv / Álnév</translation> + <translation type="unfinished"></translation> </message> <message> <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>Figyelmeztetés:</b> Hibák történtek az erőforrások újra töltése közben:</p><pre>%1</pre></html></translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Resource Warning</source> - <translation>Erőforrás figyelmeztetés</translation> + <translation type="unfinished"></translation> </message> <message> - <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui" line="+13"/> + <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui"/> <source>Dialog</source> - <translation>Párbeszéd ablak</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+26"/> + <location/> <source>New File</source> - <translation>Új fájl</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> - <location line="+50"/> + <location/> <source>N</source> - <translation>N</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="-43"/> + <location/> <source>Remove File</source> - <translation>Fájl eltávolítása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> - <location line="+57"/> + <location/> <source>R</source> - <translation>R</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="-34"/> + <location/> <source>I</source> - <translation>I</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+14"/> + <location/> <source>New Resource</source> - <translation>Új erőforrás</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location/> <source>A</source> - <translation>A</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>Remove Resource or File</source> - <translation>Erőforrás vagy fájl eltávolítása</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>QtResourceView</name> <message> - <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+566"/> + <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+567"/> <source>Size: %1 x %2 %3</source> - <translation>Méret: %1 x %2 -%3</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+20"/> <source>Edit Resources...</source> - <translation>Erőforrások szerkesztése...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>Reload</source> - <translation>Újratöltés</translation> + <translation type="unfinished">Újratöltés</translation> </message> <message> <location line="+7"/> <source>Copy Path</source> - <translation>Útvonal másolása</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>QtResourceViewDialog</name> <message> - <location line="+250"/> + <location line="+252"/> <source>Select Resource</source> - <translation>Erőforrás kiválasztása</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3536,17 +3509,17 @@ ide <message> <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-535"/> <source>%1 x %2</source> - <translation>%1 x %2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+130"/> <source>Width</source> - <translation>Szélesség</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+9"/> <source>Height</source> - <translation>Magasság</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3555,32 +3528,32 @@ ide <location line="+1709"/> <location line="+1"/> <source><Invalid></source> - <translation><Érvénytelen></translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>[%1, %2, %3, %4]</source> - <translation>[%1, %2, %3, %4]</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+45"/> <source>Horizontal Policy</source> - <translation>Horizontális irányvonal</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+9"/> <source>Vertical Policy</source> - <translation>Vertikális irányelv</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+9"/> <source>Horizontal Stretch</source> - <translation>Horizontális terjedelem</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+8"/> <source>Vertical Stretch</source> - <translation>Vertikális terjedelem</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3588,17 +3561,17 @@ ide <message> <location line="-2286"/> <source>%1 x %2</source> - <translation>%1 x %2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+96"/> <source>Width</source> - <translation>Szélesség</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+8"/> <source>Height</source> - <translation>Magasság</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3606,107 +3579,107 @@ ide <message> <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1240"/> <source>Custom Toolbar</source> - <translation>Egyéni eszköz sáv</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+544"/> <source>< S E P A R A T O R ></source> - <translation>< E L V Á L A S Z T Ó ></translation> + <translation type="unfinished"></translation> </message> <message> - <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="+13"/> + <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui"/> <source>Customize Toolbars</source> - <translation>Eszköz sávok testreszabása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+13"/> + <location/> <source>1</source> - <translation>1</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+8"/> + <location/> <source>Actions</source> - <translation>Tevékenységek</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+15"/> + <location/> <source>Toolbars</source> - <translation>Eszköz sávok</translation> + <translation type="unfinished">Eszköztárak</translation> </message> <message> - <location line="+7"/> + <location/> <source>Add new toolbar</source> - <translation>Új eszköz sáv hozzáadása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>New</source> - <translation>Új</translation> + <translation type="unfinished">Új</translation> </message> <message> - <location line="+7"/> + <location/> <source>Remove selected toolbar</source> - <translation>Kiválaszott eszköz sáv eltávolítás</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>Remove</source> - <translation>Eltávolítás</translation> + <translation type="unfinished">Törlés</translation> </message> <message> - <location line="+7"/> + <location/> <source>Rename toolbar</source> - <translation>Eszköz sáv átnevezése</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>Rename</source> - <translation>Átnevezés</translation> + <translation type="unfinished">Átnevezés</translation> </message> <message> - <location line="+23"/> + <location/> <source>Move action up</source> - <translation>Tevékenység mozgatása felfelé</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>Up</source> - <translation>Fel</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+13"/> + <location/> <source>Remove action from toolbar</source> - <translation>Tevékenység eltávolítása az eszköz sávról</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source><-</source> - <translation><-</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+13"/> + <location/> <source>Add action to toolbar</source> - <translation>Tevékenység hozzáadása az eszközsávhoz</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>-></source> - <translation>-></translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+13"/> + <location/> <source>Move action down</source> - <translation>Tevékenység mozgatása felfele</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>Down</source> - <translation>Le</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+25"/> + <location/> <source>Current Toolbar Actions</source> - <translation>Aktuális eszköz sáv tevékenységek</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3714,12 +3687,12 @@ ide <message> <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+442"/> <source>Property</source> - <translation>Tulajdonság</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Value</source> - <translation>Érték</translation> + <translation type="unfinished">Érték</translation> </message> </context> <context> @@ -3727,64 +3700,63 @@ ide <message> <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+72"/> <source>Add path...</source> - <translation>Útvonal hozzáadása...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+23"/> <source>Template Exists</source> - <translation>A sablon létezik</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>A template with the name %1 already exists. Do you want overwrite the template?</source> - <translation>Egy %1 nevű sablon már létezik. -Felül szeretné írni a sablont?</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Overwrite Template</source> - <translation>Sablom felülírása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>Open Error</source> - <translation>Megnyitási hiba</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>There was an error opening template %1 for writing. Reason: %2</source> - <translation>Hiba történt a(z) %1 sablon írásra megnyitása közben. Ok: %2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+13"/> <source>Write Error</source> - <translation>Írása hiba</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>There was an error writing the template %1 to disk. Reason: %2</source> - <translation>Hiba történt a(z) %1 sablon lemezre írása közben. Ok: %2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+27"/> <source>Pick a directory to save templates in</source> - <translation>Egy könyvtár gondos kiválasztása, melybe a könytárak lesznek elmentve</translation> + <translation type="unfinished"></translation> </message> <message> - <location filename="../tools/designer/src/designer/saveformastemplate.ui" line="+45"/> + <location filename="../tools/designer/src/designer/saveformastemplate.ui"/> <source>Save Form As Template</source> - <translation>Az űrlap sablonként mentése</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+49"/> - <source>&Category:</source> - <translation>&Kategória:</translation> + <location/> + <source>&Name:</source> + <translation type="unfinished"></translation> </message> <message> - <location line="-35"/> - <source>&Name:</source> - <translation>&Név:</translation> + <location/> + <source>&Category:</source> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3793,30 +3765,30 @@ Felül szeretné írni a sablont?</translation> <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+59"/> <source>An error occurred while running the scripts for "%1": </source> - <translation>Hiba történt a szkriptek futtatása közben '%1'-re:</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>SelectSignalDialog</name> <message> - <location filename="../tools/designer/src/lib/shared/selectsignaldialog.ui" line="+14"/> + <location filename="../tools/designer/src/lib/shared/selectsignaldialog.ui"/> <source>Go to slot</source> - <translation>Szlotra ugrás</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> + <location/> <source>Select signal</source> - <translation>Jel kiválasztása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+13"/> + <location/> <source>signal</source> - <translation>jel</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+5"/> + <location/> <source>class</source> - <translation>osztály</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3824,45 +3796,40 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="-358"/> <source>SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4)</source> - <translation>KÜLDŐ(%1), JEL(%2), FOGADÓ(%3), SZLOT(%4)</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>SignalSlotDialogClass</name> <message> - <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui" line="+13"/> + <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui"/> <source>Signals and slots</source> - <translation>Jelek és szlotok</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> + <location/> <source>Slots</source> - <translation>Szlotok</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+11"/> - <location line="+49"/> + <location/> <source>Add</source> - <translation>Hozzáadás</translation> + <translation type="unfinished">Hozzáadás</translation> </message> <message> - <location line="-46"/> - <location line="+10"/> - <location line="+39"/> - <location line="+10"/> + <location/> <source>...</source> - <translation>...</translation> + <translation type="unfinished">...</translation> </message> <message> - <location line="-52"/> - <location line="+49"/> + <location/> <source>Delete</source> - <translation>Törlés</translation> + <translation type="unfinished">Törlés</translation> </message> <message> - <location line="-21"/> + <location/> <source>Signals</source> - <translation>Jelek</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3870,12 +3837,12 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="+275"/> <source>Horizontal Spacer '%1', %2 x %3</source> - <translation>Horizontális távtartók '%1', %2 x %3</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+0"/> <source>Vertical Spacer '%1', %2 x %3</source> - <translation>Vertikális távtartók '%1', %2 x %3</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3884,8 +3851,7 @@ Felül szeretné írni a sablont?</translation> <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="+156"/> <source>Template Paths</source> <extracomment>Tab in preferences dialog</extracomment> - <translatorcomment>Слово "пути" опустил, т.к. с другими вкладками не перепутать, а длинная вкладка не смотрится.</translatorcomment> - <translation>Sablon útvonalak</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3893,55 +3859,75 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+89"/> <source>Configure Toolbars...</source> - <translation>Eszköz sávok konfigurálása...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+15"/> <source>Window</source> - <translation>Ablak</translation> + <translation type="unfinished">Ablak</translation> </message> <message> <location line="+1"/> <source>Help</source> - <translation>Súgó</translation> + <translation type="unfinished">Segítség</translation> </message> <message> <location line="+7"/> <source>Style</source> - <translation>Stílus</translation> + <translation type="unfinished">Stílus</translation> </message> <message> <location line="+2"/> <source>Dock views</source> - <translation>Dokk nézetek</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> + <source>File</source> + <translation type="unfinished">Fájl</translation> + </message> + <message> + <location line="+4"/> + <source>Edit</source> + <translation type="unfinished">Szerkesztés</translation> + </message> + <message> + <location line="+4"/> + <source>Tools</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Form</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> <source>Toolbars</source> - <translation>Eszköz sávok</translation> + <translation type="unfinished">Eszköztárak</translation> </message> </context> <context> <name>VersionDialog</name> <message> - <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+171"/> + <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+170"/> <source><h3>%1</h3><br/><br/>Version %2</source> - <translation><h3>%1</h3><br/><br/>Verzió %2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Qt Designer</source> - <translation>Qt Designer</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source><br/>Qt Designer is a graphical user interface designer for Qt applications.<br/></source> - <translation><br/>Qt Designer egy grafikus felhasználói felület tervező Qt alkalmazásokhoz.<br/></translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>%1<br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</source> - <translation>%1<br/>Szerzői jog (C) 2010 Nokia vállalat és/vagy leányvállalata(i).</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3949,7 +3935,7 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="+814"/> <source>The file contains a custom widget '%1' whose base class (%2) differs from the current entry in the widget database (%3). The widget database is left unchanged.</source> - <translation>A fájl egy egyéni '%1' widget-t tartalmaz, aminek az alap osztálya (%2) különbözik az aktuális beviteltől a widget adatbázisban (%3). A widget adatbázis változatlanul lett hagyva.</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -3957,120 +3943,120 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+123"/> <source>New...</source> - <translation>Új...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Edit...</source> - <translation>Szerkesztés...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Go to slot...</source> - <translation>Ugrás a szlotra...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Copy</source> - <translation>Másolás</translation> + <translation type="unfinished">Másolás</translation> </message> <message> <location line="+1"/> <source>Cut</source> - <translation>Kivágás</translation> + <translation type="unfinished">Kivágás</translation> </message> <message> <location line="+1"/> <source>Paste</source> - <translation>Beillesztés</translation> + <translation type="unfinished">Beillesztés</translation> </message> <message> <location line="+1"/> <source>Select all</source> - <translation>Az összes kiválasztása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Delete</source> - <translation>Törlés</translation> + <translation type="unfinished">Törlés</translation> </message> <message> <location line="+9"/> <source>Actions</source> - <translation>Tevékenységek</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+49"/> <source>Configure Action Editor</source> - <translation>Tevékenység szerkesztő konfigurálása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Icon View</source> - <translation>Ikon nézet</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>Detailed View</source> - <translation>Részletezett nézet</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+246"/> <source>New action</source> - <translation>Új tevékenység</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+98"/> <source>Edit action</source> - <translation>Tevékenység szerkesztése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+69"/> <source>Remove action '%1'</source> - <translation>'%1' tevékenység eltávolítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+0"/> <source>Remove actions</source> - <translation>Tevékenységek eltávolítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+186"/> <source>Used In</source> - <translation>Használva ebben</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>qdesigner_internal::ActionModel</name> <message> - <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+95"/> + <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+89"/> <source>Name</source> - <translation>Név</translation> + <translation type="unfinished">Név</translation> </message> <message> <location line="+1"/> <source>Used</source> - <translation>Használt</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Text</source> - <translation>Szöveg</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Shortcut</source> - <translation>Rövidebb út</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Checkable</source> - <translation>Leellenőrizhető</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>ToolTip</source> - <translation>Eszköz tipp</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -4078,27 +4064,27 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+219"/> <source>The element '%1' is missing the required attribute '%2'.</source> - <translation>A(z) '%1' elem hiányzik, a szükséges attribútum '%2'.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+11"/> <source>Empty brush name encountered.</source> - <translation>Üres kefe nevet talált.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+10"/> <source>An unexpected element '%1' was encountered.</source> - <translation>Egy '%1' váratlan elemet talált.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>An error occurred when reading the brush definition file '%1' at line line %2, column %3: %4</source> - <translation>Hiba történt a(z) '%1' ecset definíciós fájl olvasása közben %2 sorban, %3 oszlopban: %4</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+43"/> <source>An error occurred when reading the resource file '%1' at line %2, column %3: %4</source> - <translation>Hiba történt a(z) '%1' erőforrás fájl olvasása közben, %2 sorban, %3 oszlopban: %4</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -4106,31 +4092,31 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+261"/> <source>Add buddy</source> - <translation>Haver hozzáadása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+52"/> <source>Remove buddies</source> - <translation>Haverok eltávolítása</translation> + <translation type="unfinished"></translation> </message> <message numerus="yes"> <location line="+24"/> <source>Remove %n buddies</source> - <translation> - <numerusform>%n haverok eltávolítása</numerusform> + <translation type="unfinished"> + <numerusform></numerusform> </translation> </message> <message numerus="yes"> <location line="+51"/> <source>Add %n buddies</source> - <translation> - <numerusform>%n haver hozzáadása</numerusform> + <translation type="unfinished"> + <numerusform></numerusform> </translation> </message> <message> <location line="+47"/> <source>Set automatically</source> - <translation>Automatikus beállítás</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -4138,7 +4124,7 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+73"/> <source>Edit Buddies</source> - <translation>Haverok szerkesztése</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -4146,7 +4132,7 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+56"/> <source>Edit Buddies</source> - <translation>Haverok szerkesztése</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -4154,12 +4140,12 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+7"/> <source>Select members</source> - <translation>Tagok kiválasztása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Break</source> - <translation>Törés</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -4167,32 +4153,32 @@ Felül szeretné írni a sablont?</translation> <message> <location line="+121"/> <source>Assign to button group</source> - <translation>Gomb csoporthoz rendelés</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Button group</source> - <translation>Gomb csoport</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>New button group</source> - <translation>Új gomb csoport</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Change text...</source> - <translation>Szöveg megváltoztatása...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>None</source> - <translation>Semmi</translation> + <translation type="unfinished">Nincs</translation> </message> <message> <location line="+101"/> <source>Button group '%1'</source> - <translation>'%1' gomb csoport</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -4205,22 +4191,22 @@ Felül szeretné írni a sablont?</translation> <message> <location line="+4"/> <source>Copy All</source> - <translation>Az összes másolása</translation> + <translation>Mindent másol</translation> </message> <message> <location line="+5"/> <source>&Find in Text...</source> - <translation>&Keresés szövegben...</translation> + <translation>&Keresés a szövegben...</translation> </message> <message> <location line="+75"/> <source>A temporary form file could not be created in %1.</source> - <translation>Egy átmeneti űrlap fájlt nem sikerült létrehozni %1-ben.</translation> + <translation>Az ideiglenes űrlap fájl nem hozható létre a(z) %1 helyen.</translation> </message> <message> <location line="+6"/> <source>The temporary form file %1 could not be written.</source> - <translation>A(z) %1 átmeneti űrlap fájlt nem sikerült írni.</translation> + <translation>A(z) %1 ideiglenes űrlap fájl nem írható.</translation> </message> <message> <location line="+21"/> @@ -4235,17 +4221,17 @@ Felül szeretné írni a sablont?</translation> <message> <location line="+0"/> <source>Header Files (*.%1)</source> - <translation>Fejállományok (*.%1)</translation> + <translation>Fejléc fájlok (*.%1)</translation> </message> <message> <location line="+6"/> <source>The file %1 could not be opened: %2</source> - <translation>A(z) %1 fájlt nem sikerült megnyitni: %2</translation> + <translation>A(z) %1 fájl nem nyitható meg: %2</translation> </message> <message> <location line="+5"/> <source>The file %1 could not be written: %2</source> - <translation>A(z) %1 fájlt nem sikerült írni: %2</translation> + <translation>A(z) %1 fájl nem írható: %2</translation> </message> <message> <location line="+11"/> @@ -4258,7 +4244,7 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+246"/> <source>Text Color</source> - <translation>Szöveg szín</translation> + <translation>Szövegszín</translation> </message> </context> <context> @@ -4266,12 +4252,13 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+68"/> <source>Edit Items...</source> - <translation>Elemek szerkesztése...</translation> + <translation>Elem szerkesztése...</translation> </message> <message> <location line="+38"/> <source>Change Combobox Contents</source> - <translation>Combobox tartalmának megváltoztatása</translation> + <translatorcomment>CHECKIT: too long...</translatorcomment> + <translation type="unfinished">Legördülő doboz tartalmának megváltoztatása</translation> </message> </context> <context> @@ -4279,7 +4266,7 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+156"/> <source>Change description...</source> - <translation>Leírás megváltoztatása...</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -4287,17 +4274,17 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+1313"/> <source>Select All</source> - <translation>Az összes kiválasztása</translation> + <translation type="unfinished">Összes kijelölése</translation> </message> <message> <location line="+3"/> <source>Deselect All</source> - <translation>Az összes kijelölés eltűntetése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>Delete</source> - <translation>Törlés</translation> + <translation type="unfinished">Törlés</translation> </message> </context> <context> @@ -4305,52 +4292,52 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="-465"/> <source>Sender</source> - <translation>Küldő</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Signal</source> - <translation>Jel</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Receiver</source> - <translation>Fogadó</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Slot</source> - <translation>Szlot</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+90"/> <source><sender></source> - <translation><küldő></translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source><signal></source> - <translation><jel></translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source><receiver></source> - <translation><fogadó></translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source><slot></source> - <translation><szlot></translation> + <translation type="unfinished"></translation> </message> <message> <location line="+108"/> <source>The connection already exists!<br>%1</source> - <translation>A kapcsolat már létezik!<br>%1</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Signal and Slot Editor</source> - <translation>Jel és Szlot szerkesztő</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -4358,42 +4345,42 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+79"/> <source>Delete</source> - <translation>Törlés</translation> + <translation type="unfinished">Törlés</translation> </message> <message> <location line="+25"/> <source>Insert</source> - <translation>Beszúrás</translation> + <translation type="unfinished">Beszúrás</translation> </message> <message> <location line="+3"/> <source>Insert Page Before Current Page</source> - <translation>Lap beszúrása az aktuális lap elé</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>Insert Page After Current Page</source> - <translation>Lap beszúrása az aktuális lap után</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+8"/> <source>Add Subwindow</source> - <translation>Alablak hozzáadása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+38"/> <source>Subwindow</source> - <translation>Al ablak</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Page</source> - <translation>Lap</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Page %1 of %2</source> - <translation>%2 %1 lapja</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -4402,18 +4389,18 @@ Felül szeretné írni a sablont?</translation> <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+27"/> <source>System (%1 x %2)</source> <extracomment>System resolution</extracomment> - <translation>Rendszer (%1 x %2)</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>User defined</source> - <translation>Felhasználó által definiált</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+18"/> <source> x </source> <extracomment>DPI X/Y separator</extracomment> - <translation> x </translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -4422,123 +4409,123 @@ Felül szeretné írni a sablont?</translation> <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+647"/> <location line="+6"/> <source>AlignLeft</source> - <translation>IgazításBalra</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-5"/> <source>AlignHCenter</source> - <translation>IgazításHKözépre</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>AlignRight</source> - <translation>IgazításJobbra</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>AlignJustify</source> - <translation>IgazításFeloldása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+9"/> <source>AlignTop</source> - <translation>IgazításTetejére</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <location line="+4"/> <source>AlignVCenter</source> - <translation>IgazításVKözépre</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-3"/> <source>AlignBottom</source> - <translation>IgazításAlulra</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+565"/> <source>%1, %2</source> - <translation>%1, %2</translation> + <translation type="unfinished"></translation> </message> <message numerus="yes"> <location line="+6"/> <source>Customized (%n roles)</source> - <translation> - <numerusform>Testreszabva (%n szabály)</numerusform> + <translation type="unfinished"> + <numerusform></numerusform> </translation> </message> <message> <location line="+1"/> <source>Inherited</source> - <translation>Örökölt</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+566"/> <source>Horizontal</source> - <translation>Horizontális</translation> + <translation type="unfinished">Vízszintes</translation> </message> <message> <location line="+9"/> <source>Vertical</source> - <translation>Vertikális</translation> + <translation type="unfinished">Függőleges</translation> </message> <message> <location line="+15"/> <source>Normal Off</source> - <translation>Normál ki</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Normal On</source> - <translation>Normál be</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Disabled Off</source> - <translation>Tiltás ki</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Disabled On</source> - <translation>Tiltás be</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Active Off</source> - <translation>Aktív ki</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Active On</source> - <translation>Aktív be</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Selected Off</source> - <translation>Kiválasztás ki</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Selected On</source> - <translation>Kiválasztás be</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <location line="+21"/> <source>translatable</source> - <translation>fordítható</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-15"/> <location line="+21"/> <source>disambiguation</source> - <translation>Nem félreérthető</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-15"/> <location line="+21"/> <source>comment</source> - <translation>megjegyzés</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -4546,106 +4533,106 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+63"/> <source>Device Profiles (*.%1)</source> - <translation>Eszköz profilok (*.%1)</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+31"/> <source>Default</source> - <translation>Alapértelmezett</translation> + <translation type="unfinished">Alapértelmezett</translation> </message> <message> <location line="+67"/> <source>Save Profile</source> - <translation>Profil mentése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+10"/> <source>Save Profile - Error</source> - <translation>Profil mentése - Hiba</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+0"/> <source>Unable to open the file '%1' for writing: %2</source> - <translation>Nem lehet megnyitni a(z) '%1' fájlt írásra: %2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+8"/> <source>Open profile</source> - <translation>Profil megnyitása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <location line="+6"/> <source>Open Profile - Error</source> - <translation>Profil megnyitása - Hiba</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-6"/> <source>Unable to open the file '%1' for reading: %2</source> - <translation>Nem lehet megnyitni a(z) '%1' fájlt olvasásra: %2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>'%1' is not a valid profile: %2</source> - <translation>'%1' nem egy érvényes profil: %2</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>qdesigner_internal::Dialog</name> <message> - <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui" line="+53"/> + <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui"/> <source>Dialog</source> - <translation>Párbeszéd ablak</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+12"/> + <location/> <source>StringList</source> - <translation>Sztring lista</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+28"/> + <location/> <source>New String</source> - <translation>Új Sztring</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>&New</source> - <translation>&Új</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location/> <source>Delete String</source> - <translation>Sztring törlése</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>&Delete</source> - <translation>&Törlés</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+33"/> + <location/> <source>&Value:</source> - <translation>&Érték:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+38"/> + <location/> <source>Move String Up</source> - <translation>Sztring felfelé mozgatása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>Up</source> - <translation>Fel</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>Move String Down</source> - <translation>Sztring lefelé mozgatása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>Down</source> - <translation>Le</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -4653,60 +4640,65 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="-260"/> <source>None</source> - <translation>Semmi</translation> + <translation type="unfinished">Nincs</translation> </message> <message> <location line="+4"/> <source>Add a profile</source> - <translation>Egy profil hozzáadása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>Edit the selected profile</source> - <translation>A kiválasztott profil szerkesztése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>Delete the selected profile</source> - <translation>A kiválasztott profil törlése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+22"/> <source>Add Profile</source> - <translation>Profil hozzáadása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>New profile</source> - <translation>Új profil</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+35"/> <source>Edit Profile</source> - <translation>Profil szerkesztése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+26"/> <source>Delete Profile</source> - <translation>Profil törlése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Would you like to delete the profile '%1'?</source> - <translation>Törölni szeretné a(z) '%1' profilet?</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+55"/> <source>Default</source> - <translation>Alapértelmezett</translation> + <translation type="unfinished">Alapértelmezett</translation> </message> </context> <context> <name>qdesigner_internal::FilterWidget</name> <message> - <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+185"/> - <source><Filter></source> - <translation><Szűrő></translation> + <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+163"/> + <source>Filter</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+36"/> + <source>Clear text</source> + <translation type="unfinished"></translation> </message> </context> <context> @@ -4714,12 +4706,12 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+190"/> <source>Resource File Changed</source> - <translation>Erőforrás fájl megváltoztatva</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>The file "%1" has changed outside Designer. Do you want to reload it?</source> - <translation>A(z) '%1' fájl megváltoztatták a Designer-en kívül. Újra szeretné tölteni?</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -4727,315 +4719,319 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+24"/> <source>Add form layout row...</source> - <translation>Űrlap elrendezési sor hozzáadása...</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>qdesigner_internal::FormWindow</name> <message> - <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1267"/> + <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1322"/> <source>Edit contents</source> - <translation>Tartalom szerkesztése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>F2</source> - <translation>F2</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+774"/> + <location line="+775"/> <source>Insert widget '%1'</source> - <translation>'%1' widget beszúrása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+67"/> + <location line="+65"/> <source>Resize</source> - <translation>Átméretezés</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+218"/> - <location line="+15"/> + <location line="+248"/> <source>Key Move</source> - <translation>Kulcs mozgatás</translation> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>Key Resize</source> + <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location line="+211"/> + <location line="+252"/> <source>Paste %n action(s)</source> - <translation> - <numerusform>%n tevékenység beillesztése</numerusform> + <translation type="unfinished"> + <numerusform></numerusform> </translation> </message> <message numerus="yes"> <location line="+2"/> <source>Paste %n widget(s)</source> - <translation> - <numerusform>%n widget beillesztése</numerusform> + <translation type="unfinished"> + <numerusform></numerusform> </translation> </message> <message> <location line="+1"/> <source>Paste (%1 widgets, %2 actions)</source> - <translation>Beillesztés (%1 widget-ek, %2 tevékenységek)</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+56"/> <source>Cannot paste widgets. Designer could not find a container without a layout to paste into.</source> - <translation>Nem lehet beilleszteni a widget-eket. A Designer nem talált egy tárolót sem elrendezés nélküli beillesztéshez.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Break the layout of the container you want to paste into, select this container and then paste again.</source> - <translation>A tároló elrendezésének megtörése, ahová be akarja illeszteni, válassza ki ezt a tárolót és aztán illessze e újra.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>Paste error</source> - <translation>Beillesztési hiba</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+183"/> + <location line="+181"/> <source>Raise widgets</source> - <translation>Widget-ek növelése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+17"/> <source>Lower widgets</source> - <translation>Alsó widget-ek</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+204"/> <source>Select Ancestor</source> - <translation>Ős kiválasztása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+41"/> + <location line="+46"/> <source>Lay out</source> - <translation>Elrendezés</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+493"/> + <location line="+485"/> <location line="+55"/> <source>Drop widget</source> - <translation>Widget ejtése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="-13"/> <source>A QMainWindow-based form does not contain a central widget.</source> - <translation>Egy QMainWindow alapú űrlap nem tartalmaz egy központi widget-et.</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>qdesigner_internal::FormWindowBase</name> <message> - <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+393"/> + <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+404"/> <source>Delete '%1'</source> - <translation>'%1' törlése</translation> + <translation type="unfinished">'%1' törlése</translation> </message> <message> <location line="+0"/> <source>Delete</source> - <translation>Törlés</translation> + <translation type="unfinished">Törlés</translation> </message> </context> <context> <name>qdesigner_internal::FormWindowManager</name> <message> - <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+364"/> + <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+365"/> <source>Cu&t</source> - <translation>&Kivágás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Cuts the selected widgets and puts them on the clipboard</source> - <translation>A kiválaszott widget-ek kivágása és vágólapra helyezése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>&Copy</source> - <translation>&Másolás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Copies the selected widgets to the clipboard</source> - <translation>A kiválasztott widget-ek vágólapra másolása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>&Paste</source> - <translation>&Beillesztés</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Pastes the clipboard's contents</source> - <translation>A vágólap tartalmának beillesztése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>&Delete</source> - <translation>&Törlés</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Deletes the selected widgets</source> - <translation>A kiválasztott widget-ek törlése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>Select &All</source> - <translation>Az &összes kiválasztása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Selects all widgets</source> - <translation>Az összes widget kiválasztása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>Bring to &Front</source> - <translation>&Előre hozás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <location line="+1"/> <source>Raises the selected widgets</source> - <translation>A kiválaszott widget-ek növelése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>Send to &Back</source> - <translation>&Visszaküldés</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <location line="+1"/> <source>Lowers the selected widgets</source> - <translation>Alsó kiválasztott widget-ek</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>Adjust &Size</source> - <translation>&Méret igazítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Adjusts the size of the selected widget</source> - <translation>A kiválasztott widget méretének igazítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>Lay Out &Horizontally</source> - <translation>Elrendezés &Horizontálisan</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Lays out the selected widgets horizontally</source> - <translation>A kiválaszott widget-ek horizontális elrendezése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>Lay Out &Vertically</source> - <translation>Elrendezés &vertikálisan</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Lays out the selected widgets vertically</source> - <translation>A kiválaszott widget-ek vertikális elrendezése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>Lay Out in a &Form Layout</source> - <translation>Elrendezés egy &Űrlap elrendezésben</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Lays out the selected widgets in a form layout</source> - <translation>A kiválaszott widget-ek elrendezése egy űrlap elrendezésben</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>Lay Out in a &Grid</source> - <translation>Elrendezés egy &rácsban</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Lays out the selected widgets in a grid</source> - <translation>A kiválasztott widget-ek elrendezése egy rácsban</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>Lay Out Horizontally in S&plitter</source> - <translation>Elrendezés Horizontálisan a &csúszkában</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Lays out the selected widgets horizontally in a splitter</source> - <translation>A kiválasztott widget-ek horizontális elrendezése egy csúszkában</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>Lay Out Vertically in Sp&litter</source> - <translation>Elrendezés vertikálisan egy &csúszkában</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Lays out the selected widgets vertically in a splitter</source> - <translation>A kiválaszott widget-ek vertikális elrendezése egy csúszkában</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>&Break Layout</source> - <translation>Elrendezés &törése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Breaks the selected layout</source> - <translation>A kiválaszott elrendezés törése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>Si&mplify Grid Layout</source> - <translation>Egy&szerűsített rács elrendezés</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Removes empty columns and rows</source> - <translation>Üres oszlopok és sorok eltávolítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>&Preview...</source> - <translation>&Előnézet...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Preview current form</source> - <translation>Aktuális űrlap előnézet</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+15"/> <source>Form &Settings...</source> - <translation>Űrlap &beállítások...</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+92"/> + <location line="+94"/> <source>Break Layout</source> - <translation>Elrendezés törése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+26"/> <source>Adjust Size</source> - <translation>Méret igazítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+43"/> <source>Could not create form preview</source> <comment>Title of warning message box</comment> - <translation>Nem sikerült létrehozni az űrlap előnézetet</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+341"/> <source>Form Settings - %1</source> - <translation>Űrlap beállítások - %1</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5043,51 +5039,50 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+193"/> <source>None</source> - <translation>Semmi</translation> + <translation type="unfinished">Nincs</translation> </message> <message> <location line="+1"/> <source>Device Profile: %1</source> - <translation>Eszköz profil: %1</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>qdesigner_internal::GridPanel</name> <message> - <location filename="../tools/designer/src/lib/shared/gridpanel.ui" line="+13"/> + <location filename="../tools/designer/src/lib/shared/gridpanel.ui"/> <source>Form</source> - <translation>Űrlap</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+18"/> + <location/> <source>Grid</source> - <translation>Rács</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+12"/> + <location/> <source>Visible</source> - <translation>Látható</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>Grid &X</source> - <translation>Rács &X</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+26"/> - <location line="+57"/> + <location/> <source>Snap</source> - <translation>Bepattintás</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="-48"/> + <location/> <source>Reset</source> - <translation>Újraindítás</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+22"/> + <location/> <source>Grid &Y</source> - <translation>Rács &Y</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5095,7 +5090,7 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+82"/> <source>Change title...</source> - <translation>Cím változtatása...</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5103,7 +5098,7 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="-58"/> <source>Insert HTML entity</source> - <translation>HTML entitás beszúrása</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5111,92 +5106,92 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-24"/> <source>The pixmap file '%1' cannot be read.</source> - <translation>A(z) '%1' pixmap fájlt nem lehet olvasni.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <source>The file '%1' does not appear to be a valid pixmap file: %2</source> - <translation>A(z) '%1' fájlt nem egy érvényes pixmap fájl: %2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+9"/> <source>The file '%1' could not be read: %2</source> - <translation>A(z) '%1' fájlt nem sikerült olvasni: %2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+33"/> <source>Choose a Pixmap</source> - <translation>Egy pixmap kiválasztása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+7"/> <source>Pixmap Read Error</source> - <translation>Pixmap olvasási hiba</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+54"/> <source>...</source> - <translation>...</translation> + <translation type="unfinished">...</translation> </message> <message> <location line="+6"/> <source>Normal Off</source> - <translation>Normál ki</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Normal On</source> - <translation>Normál be</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Disabled Off</source> - <translation>Tiltás ki</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Disabled On</source> - <translation>Tiltás be</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Active Off</source> - <translation>Aktív ki</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Active On</source> - <translation>Aktív be</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Selected Off</source> - <translation>Kiválaszott ki</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Selected On</source> - <translation>Kiválaszott be</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+8"/> <source>Choose Resource...</source> - <translation>Erőforrás kiválasztása...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Choose File...</source> - <translation>Fájl kiválasztása...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Reset</source> - <translation>Újraindítás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Reset All</source> - <translation>Az összes újraindítása</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5204,58 +5199,58 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+358"/> <source>Properties &<<</source> - <translation>Tulajdonságok &<<</translation> + <translation type="unfinished"></translation> </message> <message> - <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui" line="+143"/> + <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui"/> <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+2"/> <source>Properties &>></source> - <translation>Tulajdonságok &>></translation> + <translation type="unfinished"></translation> </message> <message> - <location line="-75"/> + <location/> <source>Items List</source> - <translation>Elem lista</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+9"/> + <location/> <source>New Item</source> - <translation>Új elem</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>&New</source> - <translation>&Új</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>Delete Item</source> - <translation>Elem törlése</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>&Delete</source> - <translation>&Törlés</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+20"/> + <location/> <source>Move Item Up</source> - <translation>Elem mozgatása felfelé</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>U</source> - <translation>U</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>Move Item Down</source> - <translation>Elem mozgatása lefelé</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>D</source> - <translation>D</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5263,12 +5258,12 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="+85"/> <source>Change rich text...</source> - <translation>Gazdag szöveg választása...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Change plain text...</source> - <translation>Egyszerű szöveg választása...</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5276,7 +5271,7 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-343"/> <source>Choose Resource</source> - <translation>Erőforrás kiválasztása</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5284,7 +5279,7 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+80"/> <source>Change text...</source> - <translation>Szöveg kiválasztása...</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5292,17 +5287,17 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+69"/> <source>New Item</source> - <translation>Új elem</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+32"/> <source>Edit List Widget</source> - <translation>Widget szerkesztési lista</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+19"/> <source>Edit Combobox</source> - <translation>Combobox szerkesztése</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5310,12 +5305,12 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+67"/> <source>Edit Items...</source> - <translation>Elemek szerkesztése...</translation> + <translation type="unfinished">Elem szerkesztése...</translation> </message> <message> <location line="+38"/> <source>Change List Contents</source> - <translation>Tartalom változtatási lista</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5323,22 +5318,22 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+118"/> <source>Next Subwindow</source> - <translation>Új alablak</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Previous Subwindow</source> - <translation>Előző alablak</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Tile</source> - <translation>Cserép</translation> + <translation type="unfinished">Mozaikszerű</translation> </message> <message> <location line="+1"/> <source>Cascade</source> - <translation>Kaszkád</translation> + <translation type="unfinished">Lépcsőzetes</translation> </message> </context> <context> @@ -5346,7 +5341,7 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+56"/> <source>Remove</source> - <translation>Eltávolítás</translation> + <translation type="unfinished">Törlés</translation> </message> </context> <context> @@ -5354,51 +5349,50 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+264"/> <source>Morph into</source> - <translation>Morph into</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>qdesigner_internal::NewActionDialog</name> <message> - <location filename="../tools/designer/src/lib/shared/newactiondialog.ui" line="+46"/> + <location filename="../tools/designer/src/lib/shared/newactiondialog.ui"/> <source>New Action...</source> - <translation>Új tevékenység...</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+8"/> + <location/> <source>&Text:</source> - <translation>&Szöveg:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+20"/> + <location/> <source>Object &name:</source> - <translation>Objektum &név:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+13"/> + <location/> <source>&Icon:</source> - <translation>&Ikon:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+30"/> + <location/> <source>Shortcut:</source> - <translation>Rövidebb út:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+14"/> + <location/> <source>Checkable:</source> - <translation>Ellenőrizhető:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>ToolTip:</source> - <translation>Eszköz tipp:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+19"/> - <location line="+21"/> + <location/> <source>...</source> - <translation>...</translation> + <translation type="unfinished">...</translation> </message> </context> <context> @@ -5406,41 +5400,39 @@ Felül szeretné írni a sablont?</translation> <message> <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+134"/> <source>Set Property Name</source> - <translation>Tulajdonság nevének beállítása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+11"/> <source>The current object already has a property named '%1'. Please select another, unique one.</source> - <translation>Az aktuális objektumnak már van egy '%1' nevű tulajdonsága. -Kérem válasszon másikat, egy egyedülállót.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>The '_q_' prefix is reserved for the Qt library. Please select another name.</source> - <translation>Az '_q_' előtag foglalt a Qt könyvtárhoz. -Kérem válasszon másikat.</translation> + <translation type="unfinished"></translation> </message> <message> - <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui" line="+13"/> + <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui"/> <source>Create Dynamic Property</source> - <translation>Dinamikus tulajdonság létrehozása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+24"/> + <location/> <source>Property Name</source> - <translation>Tulajdonság Neve</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+12"/> + <location/> <source>horizontalSpacer</source> - <translation>horizontálisTávtartó</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+24"/> + <location/> <source>Property Type</source> - <translation>Tulajdonság Típusa</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5448,83 +5440,83 @@ Kérem válasszon másikat.</translation> <message> <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+104"/> <source>Default size</source> - <translation>Alapértelmezett méret</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>QVGA portrait (240x320)</source> - <translation>QVGA portré (240x320)</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>QVGA landscape (320x240)</source> - <translation>QVGA tájkép (320x240)</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>VGA portrait (480x640)</source> - <translation>VGA portré (480x640)</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>VGA landscape (640x480)</source> - <translation>VGA tájkép: (640x480)</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+66"/> <source>Widgets</source> <extracomment>New Form Dialog Categories</extracomment> - <translation>Widget-ek</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Custom Widgets</source> - <translation>Egyéni Widget-ek</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+18"/> <source>None</source> - <translation>Semmi</translation> + <translation type="unfinished">Nincs</translation> </message> <message> <location line="+57"/> <source>Error loading form</source> - <translation>Hiba történt az űrlap betöltése közben</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+244"/> <source>Unable to open the form template file '%1': %2</source> - <translation>Nem lehet megnyitni a(z) '%1' űrlap sablon fájlt: %2</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+67"/> <source>Internal error: No template selected.</source> - <translation>Belső hiba: Nincsen sablon kiválasztva.</translation> + <translation type="unfinished"></translation> </message> <message> - <location filename="../tools/designer/src/lib/shared/newformwidget.ui" line="+82"/> + <location filename="../tools/designer/src/lib/shared/newformwidget.ui"/> <source>0</source> - <translation>0</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+19"/> + <location/> <source>Choose a template for a preview</source> - <translation>Válasszon egy sablont egy előnézetre</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+44"/> + <location/> <source>Embedded Design</source> - <translation>Beágyazott tervezés</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+12"/> + <location/> <source>Device:</source> - <translation>Eszköz:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>Screen Size:</source> - <translation>Képernyő méret:</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5532,53 +5524,50 @@ Kérem válasszon másikat.</translation> <message> <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+92"/> <source>Add</source> - <translation>Hozzáadás</translation> + <translation type="unfinished">Hozzáadás</translation> </message> <message> <location line="+2"/> <source>New Promoted Class</source> - <translation>Új támogatott osztály</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+15"/> <source>Base class name:</source> - <translation>Alap osztály név:</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Promoted class name:</source> - <translation>Támogatott osztály neve:</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Header file:</source> - <translation>Fejállomány:</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Global include</source> - <translation>Globális include</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+11"/> <source>Reset</source> - <translation>Újraindítás</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>qdesigner_internal::ObjectInspector</name> <message> - <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+754"/> - <source>&Find in Text...</source> - <translation>&Keresés a szövegben...</translation> + <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+316"/> + <source>Change Current Page</source> + <translation type="unfinished"></translation> </message> -</context> -<context> - <name>qdesigner_internal::ObjectInspector::ObjectInspectorPrivate</name> <message> - <location line="-438"/> - <source>Change Current Page</source> - <translation>Aktuális lap megváltoztatása</translation> + <location line="+438"/> + <source>&Find in Text...</source> + <translation type="unfinished">&Keresés a szövegben...</translation> </message> </context> <context> @@ -5586,80 +5575,80 @@ Kérem válasszon másikat.</translation> <message> <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+109"/> <source>Index %1 (%2)</source> - <translation>Index %1 (%2)</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>%1 %2</source> - <translation>%1 %2</translation> + <translation type="unfinished"></translation> </message> <message> - <location filename="../tools/designer/src/lib/shared/orderdialog.ui" line="+53"/> + <location filename="../tools/designer/src/lib/shared/orderdialog.ui"/> <source>Change Page Order</source> - <translation>Lap sorrend megváltoztatása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> + <location/> <source>Page Order</source> - <translation>Lap sorrend</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+57"/> + <location/> <source>Move page up</source> - <translation>Lap mozgatása felfelé</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>Move page down</source> - <translation>Lap mozgatása lefelé</translation> + <translation type="unfinished"></translation> </message> </context> <context> <name>qdesigner_internal::PaletteEditor</name> <message> - <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui" line="+61"/> + <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui"/> <source>Edit Palette</source> - <translation>Paletta szerkesztése</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+24"/> + <location/> <source>Tune Palette</source> - <translation>Paletta finomhangolása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+37"/> + <location/> <source>Show Details</source> - <translation>Részletek megjelenítése</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>Compute Details</source> - <translation>Számítási részletek</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location/> <source>Quick</source> - <translation>Gyors</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+18"/> + <location/> <source>Preview</source> - <translation>Előnézet</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+12"/> + <location/> <source>Disabled</source> - <translation>Tiltott</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>Inactive</source> - <translation>Inaktív</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>Active</source> - <translation>Aktív</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5667,7 +5656,7 @@ Kérem válasszon másikat.</translation> <message> <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+57"/> <source>Change Palette</source> - <translation>Paletta megváltoztatása</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5675,22 +5664,22 @@ Kérem válasszon másikat.</translation> <message> <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+374"/> <source>Color Role</source> - <translation>Szín szabály</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Active</source> - <translation>Aktív</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Inactive</source> - <translation>Inaktív</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>Disabled</source> - <translation>Tiltott</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5698,28 +5687,28 @@ Kérem válasszon másikat.</translation> <message> <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-1541"/> <source>Choose Resource...</source> - <translation>Erőforrás kiválasztása...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Choose File...</source> - <translation>Fájl kiválasztása...</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Copy Path</source> - <translation>Útvonal kiválasztása</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Paste Path</source> - <translation>Útvonal beillesztése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+6"/> <location line="+16"/> <source>...</source> - <translation>...</translation> + <translation type="unfinished">...</translation> </message> </context> <context> @@ -5727,7 +5716,7 @@ Kérem válasszon másikat.</translation> <message> <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+65"/> <source>Edit text</source> - <translation>Szöveg szerkesztése</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5735,37 +5724,37 @@ Kérem válasszon másikat.</translation> <message> <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="+72"/> <source>Components</source> - <translation>Komponensek</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+13"/> <source>Plugin Information</source> - <translation>Beépülő modul információ</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>Refresh</source> - <translation>Felfrissítés</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Scan for newly installed custom widget plugins.</source> - <translation>Újonnan telepített egyéni widget beépülő modulok letapogatása.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+48"/> <source>Qt Designer couldn't find any plugins</source> - <translation>Qt Designer nem talált egyetlen beépülő modult sem</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> <source>Qt Designer found the following plugins</source> - <translation>Qt Designer a következő beépülő modulokat találta</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+55"/> <source>New custom widget plugins have been found.</source> - <translation>Új egyéni widget betöltő modul talált.</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5773,7 +5762,7 @@ Kérem válasszon másikat.</translation> <message> <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+95"/> <source>%1 Style</source> - <translation>%1 Stílus</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5781,52 +5770,48 @@ Kérem válasszon másikat.</translation> <message> <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+139"/> <source>Default</source> - <translation>Alapértelmezett</translation> + <translation type="unfinished">Alapértelmezett</translation> </message> <message> <location line="+22"/> <source>None</source> - <translation>Semmi</translation> + <translation type="unfinished">Nincs</translation> </message> <message> <location line="+6"/> <source>Browse...</source> - <translation>Böngészés...</translation> + <translation type="unfinished"></translation> </message> -</context> -<context> - <name>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate</name> <message> <location line="+118"/> <source>Load Custom Device Skin</source> - <translation>Egyéni eszköz szkin betöltése</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+2"/> <source>All QVFB Skins (*.%1)</source> - <translation>Az összes QVFB szkin (*.%1)</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+16"/> <source>%1 - Duplicate Skin</source> - <translation>%1 - Duplikált szkin</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>The skin '%1' already exists.</source> - <translation>A(z) '%1' szkin már létezik.</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+14"/> <source>%1 - Error</source> - <translation>%1 - Hiba</translation> + <translation type="unfinished">%1 - Hiba</translation> </message> <message> <location line="+1"/> <source>%1 is not a valid skin directory: %2</source> - <translation>%1 nem egy érvényes szkin könyvtár: -%2</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5851,7 +5836,7 @@ Kérem válasszon másikat.</translation> <message> <location line="+1"/> <source>&Close</source> - <translation>&Bezárás</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -5875,57 +5860,57 @@ ate the goose who was loose.</source> <context> <name>qdesigner_internal::PreviewWidget</name> <message> - <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui" line="+61"/> + <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui"/> <source>Preview Window</source> <translation type="unfinished"></translation> </message> <message> - <location line="+20"/> + <location/> <source>LineEdit</source> <translation type="unfinished"></translation> </message> <message> - <location line="+8"/> + <location/> <source>ComboBox</source> <translation type="unfinished"></translation> </message> <message> - <location line="+19"/> + <location/> <source>PushButton</source> <translation type="unfinished"></translation> </message> <message> - <location line="+58"/> + <location/> <source>ButtonGroup2</source> <translation type="unfinished"></translation> </message> <message> - <location line="+12"/> + <location/> <source>CheckBox1</source> <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location/> <source>CheckBox2</source> <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location/> <source>ButtonGroup</source> <translation type="unfinished"></translation> </message> <message> - <location line="+12"/> + <location/> <source>RadioButton1</source> <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location/> <source>RadioButton2</source> <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>RadioButton3</source> <translation type="unfinished"></translation> </message> @@ -5935,7 +5920,7 @@ ate the goose who was loose.</source> <message> <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+17"/> <source>Name</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Név</translation> </message> <message> <location line="+1"/> @@ -5984,7 +5969,7 @@ ate the goose who was loose.</source> <context> <name>qdesigner_internal::PropertyEditor</name> <message> - <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+183"/> + <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+231"/> <source>Add Dynamic Property...</source> <translation type="unfinished"></translation> </message> @@ -6014,7 +5999,7 @@ ate the goose who was loose.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+50"/> + <location line="+45"/> <source>String...</source> <translation type="unfinished"></translation> </message> @@ -6034,7 +6019,7 @@ ate the goose who was loose.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+533"/> + <location line="+539"/> <source>Object: %1 Class: %2</source> <translation type="unfinished"></translation> @@ -6073,7 +6058,7 @@ Class: %2</source> <message> <location line="+17"/> <source>%1 - Error</source> - <translation type="unfinished"></translation> + <translation type="unfinished">%1 - Hiba</translation> </message> </context> <context> @@ -6296,7 +6281,7 @@ Class: %2</source> <message> <location line="+1"/> <source>Value</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Érték</translation> </message> <message> <location line="+22"/> @@ -6362,7 +6347,7 @@ Class: %2</source> <message> <location line="-302"/> <source>Bold</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Félkövér</translation> </message> <message> <location line="+1"/> @@ -6372,7 +6357,7 @@ Class: %2</source> <message> <location line="+5"/> <source>Italic</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Dőlt</translation> </message> <message> <location line="+1"/> @@ -6382,7 +6367,7 @@ Class: %2</source> <message> <location line="+5"/> <source>Underline</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Aláhúzott</translation> </message> <message> <location line="+1"/> @@ -6506,7 +6491,7 @@ Class: %2</source> <message> <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+81"/> <source>Remove</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Törlés</translation> </message> </context> <context> @@ -6603,49 +6588,49 @@ Class: %2</source> <context> <name>qdesigner_internal::TableWidgetEditor</name> <message> - <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.ui" line="+97"/> - <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+218"/> - <source>Properties &>></source> + <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+67"/> + <source>New Column</source> <translation type="unfinished"></translation> </message> <message> - <location line="-44"/> - <source>Edit Table Widget</source> + <location line="+3"/> + <source>New Row</source> <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> - <source>&Items</source> + <location line="+8"/> + <source>&Columns</source> <translation type="unfinished"></translation> </message> <message> - <location line="+12"/> - <source>Table Items</source> + <location line="+1"/> + <source>&Rows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="-151"/> - <source>New Column</source> + <location line="+137"/> + <source>Properties &<<</source> <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> - <source>New Row</source> + <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.ui"/> + <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+2"/> + <source>Properties &>></source> <translation type="unfinished"></translation> </message> <message> - <location line="+8"/> - <source>&Columns</source> + <location/> + <source>Edit Table Widget</source> <translation type="unfinished"></translation> </message> <message> - <location line="+1"/> - <source>&Rows</source> + <location/> + <source>&Items</source> <translation type="unfinished"></translation> </message> <message> - <location line="+137"/> - <source>Properties &<<</source> + <location/> + <source>Table Items</source> <translation type="unfinished"></translation> </message> </context> @@ -6654,7 +6639,7 @@ Class: %2</source> <message> <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+64"/> <source>Edit Items...</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Elem szerkesztése...</translation> </message> </context> <context> @@ -6665,20 +6650,19 @@ Class: %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../tools/designer/src/components/formeditor/templateoptionspage.ui" line="+13"/> + <location filename="../tools/designer/src/components/formeditor/templateoptionspage.ui"/> <source>Form</source> <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> + <location/> <source>Additional Template Paths</source> <translation type="unfinished"></translation> </message> <message> - <location line="+9"/> - <location line="+7"/> + <location/> <source>...</source> - <translation type="unfinished"></translation> + <translation type="unfinished">...</translation> </message> </context> <context> @@ -6719,7 +6703,7 @@ Class: %2</source> <message> <location line="+5"/> <source>...</source> - <translation type="unfinished"></translation> + <translation type="unfinished">...</translation> </message> <message> <location line="+118"/> @@ -6778,13 +6762,13 @@ Class: %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="+101"/> + <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/> <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+53"/> <source>New Item</source> <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location/> <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+19"/> <source>New Subitem</source> <translation type="unfinished"></translation> @@ -6795,88 +6779,88 @@ Class: %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="+86"/> + <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/> <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+2"/> <source>Properties &>></source> <translation type="unfinished"></translation> </message> <message> - <location line="-144"/> + <location/> <source>Edit Tree Widget</source> <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location/> <source>&Items</source> <translation type="unfinished"></translation> </message> <message> - <location line="+24"/> + <location/> <source>Tree Items</source> <translation type="unfinished"></translation> </message> <message> - <location line="+4"/> + <location/> <source>1</source> <translation type="unfinished"></translation> </message> <message> - <location line="+13"/> + <location/> <source>&New</source> <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location/> <source>New &Subitem</source> <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>Delete Item</source> <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>&Delete</source> <translation type="unfinished"></translation> </message> <message> - <location line="+20"/> + <location/> <source>Move Item Left (before Parent Item)</source> <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>L</source> <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>Move Item Right (as a First Subitem of the Next Sibling Item)</source> <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>R</source> <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>Move Item Up</source> <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>U</source> <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location/> <source>Move Item Down</source> <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>D</source> <translation type="unfinished"></translation> </message> @@ -6886,7 +6870,7 @@ Class: %2</source> <message> <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+63"/> <source>Edit Items...</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Elem szerkesztése...</translation> </message> </context> <context> @@ -6932,7 +6916,7 @@ Class: %2</source> <message> <location line="+15"/> <source>Remove</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Törlés</translation> </message> <message> <location line="+2"/> @@ -6995,12 +6979,12 @@ This indicates an inconsistency in the ui-file.</source> <message> <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="-49"/> <source>Next</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Következő</translation> </message> <message> <location line="+1"/> <source>Back</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Vissza</translation> </message> </context> <context> diff --git a/translations/designer_ru.ts b/translations/designer_ru.ts index 412be47..72f3532 100644 --- a/translations/designer_ru.ts +++ b/translations/designer_ru.ts @@ -255,7 +255,7 @@ <translation>Пересекающиеся диагонали</translation> </message> <message> - <location line="+83"/> + <location line="+93"/> <source>Style</source> <translation>Стиль</translation> </message> @@ -611,28 +611,28 @@ <translation>Вставить меню</translation> </message> <message> - <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1213"/> + <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1225"/> <source>Changed '%1' of '%2'</source> - <translation type="unfinished">Изменено '%1' у '%2'</translation> + <translation>Изменено '%1' у '%2'</translation> </message> <message numerus="yes"> <location line="+3"/> <source>Changed '%1' of %n objects</source> - <translation type="unfinished"> + <translation> <numerusform>Изменено '%1' у %n объекта</numerusform> <numerusform>Изменено '%1' у %n объектов</numerusform> <numerusform>Изменено '%1' у %n объектов</numerusform> </translation> </message> <message> - <location line="+76"/> + <location line="+84"/> <source>Reset '%1' of '%2'</source> - <translation type="unfinished">Восстановлено '%1' у '%2'</translation> + <translation>Восстановлено '%1' у '%2'</translation> </message> <message numerus="yes"> <location line="+3"/> <source>Reset '%1' of %n objects</source> - <translation type="unfinished"> + <translation> <numerusform>Восстановлено '%1' у %n объекта</numerusform> <numerusform>Восстановлено '%1' у %n объектов</numerusform> <numerusform>Восстановлено '%1' у %n объектов</numerusform> @@ -641,12 +641,12 @@ <message> <location line="+89"/> <source>Add dynamic property '%1' to '%2'</source> - <translation type="unfinished">Добавлено динамическое свойство '%1' '%2'</translation> + <translation>Добавлено динамическое свойство '%1' '%2'</translation> </message> <message numerus="yes"> <location line="+3"/> <source>Add dynamic property '%1' to %n objects</source> - <translation type="unfinished"> + <translation> <numerusform>Добавлено динамическое свойство '%1' %n объекту</numerusform> <numerusform>Добавлено динамическое свойство '%1' %n объектам</numerusform> <numerusform>Добавлено динамическое свойство '%1' %n объектам</numerusform> @@ -655,12 +655,12 @@ <message> <location line="+86"/> <source>Remove dynamic property '%1' from '%2'</source> - <translation type="unfinished">Удалено динамическое свойство '%1' у '%2'</translation> + <translation>Удалено динамическое свойство '%1' у '%2'</translation> </message> <message numerus="yes"> <location line="+3"/> <source>Remove dynamic property '%1' from %n objects</source> - <translation type="unfinished"> + <translation> <numerusform>Удалено динамическое свойство '%1' у %n объекта</numerusform> <numerusform>Удалено динамическое свойство '%1' у %n объектов</numerusform> <numerusform>Удалено динамическое свойство '%1' у %n объектов</numerusform> @@ -742,7 +742,7 @@ <context> <name>Designer</name> <message> - <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+449"/> + <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+446"/> <source>Qt Designer</source> <translation>Qt Designer</translation> </message> @@ -1074,8 +1074,7 @@ <message> <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui"/> <source>Add Form Layout Row</source> - <translatorcomment>нелепица какая-то</translatorcomment> - <translation type="unfinished">Добавление строки компоновки компоновщика формы</translation> + <translation type="unfinished">Добавление строки компоновщика формы</translation> </message> <message> <location/> @@ -1111,7 +1110,7 @@ <context> <name>FormWindow</name> <message> - <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1701"/> + <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1754"/> <source>Unexpected element <%1></source> <translation>Неожиданный элемент <%1></translation> </message> @@ -1204,7 +1203,7 @@ <context> <name>MainWindowBase</name> <message> - <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+119"/> + <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+121"/> <source>Main</source> <extracomment>Not currently used (main tool bar)</extracomment> <translation>Главное</translation> @@ -1584,7 +1583,7 @@ Script: %3</source> <context> <name>QDesignerActions</name> <message> - <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+128"/> + <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+130"/> <source>Saved %1.</source> <translation>Сохранено %1.</translation> </message> @@ -1614,24 +1613,24 @@ Script: %3</source> <translation>Настройки...</translation> </message> <message> - <location line="+298"/> + <location line="+322"/> <source>Clear &Menu</source> <translation>Очистить &меню</translation> </message> <message> - <location line="-233"/> + <location line="-247"/> <source>CTRL+SHIFT+S</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location line="+113"/> + <location line="+127"/> <source>CTRL+R</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+18"/> <source>CTRL+M</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+31"/> @@ -1678,7 +1677,7 @@ Script: %3</source> <translation>UI файлы Qt Designer (*.%1);;Все файлы (*)</translation> </message> <message> - <location line="-620"/> + <location line="-644"/> <source>%1 already exists. Do you want to replace it?</source> <translation>%1 уже существует. @@ -1690,7 +1689,7 @@ Do you want to replace it?</source> <translation>Дополнительные шрифты...</translation> </message> <message> - <location line="+303"/> + <location line="+327"/> <source>&Recent Forms</source> <translation>&Последние формы</translation> </message> @@ -1753,7 +1752,7 @@ Do you want to update the file location or generate a new form?</source> <translation>&Закрыть предпросмотр</translation> </message> <message> - <location line="-905"/> + <location line="-929"/> <source>&New...</source> <translation>&Новый...</translation> </message> @@ -1784,12 +1783,12 @@ Do you want to update the file location or generate a new form?</source> </message> <message> <location line="+1"/> - <location line="+901"/> + <location line="+925"/> <source>&Close</source> <translation>&Закрыть</translation> </message> <message> - <location line="-900"/> + <location line="-924"/> <source>Save &Image...</source> <translation>Сохранить &Изображение...</translation> </message> @@ -1804,12 +1803,12 @@ Do you want to update the file location or generate a new form?</source> <translation>Показать &код...</translation> </message> <message> - <location line="+68"/> + <location line="+78"/> <source>ALT+CTRL+S</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location line="+356"/> + <location line="+370"/> <location line="+248"/> <source>Save Form As</source> <translation>Сохранить форму как</translation> @@ -2059,17 +2058,17 @@ Would you like to retry?</source> <message> <location line="+5"/> <source>A required attribute ('%1') is missing.</source> - <translation type="unfinished">Отсутствует необходимый атрибут ('%1').</translation> + <translation>Отсутствует необходимый атрибут ('%1').</translation> </message> <message> <location line="+38"/> <source>An invalid property specification ('%1') was encountered. Supported types: %2</source> - <translation type="unfinished">Обнаружена неверная спецификация ('%1') свойства. Поддерживаются типы: %2</translation> + <translation>Обнаружена неверная спецификация ('%1') свойства. Поддерживаются типы: %2</translation> </message> <message> <location line="+20"/> <source>'%1' is not a valid string property specification.</source> - <translation type="unfinished">'%1' не является корректной спецификацией строкового свойства.</translation> + <translation>'%1' не является корректной спецификацией строкового свойства.</translation> </message> <message> <location line="+40"/> @@ -2090,7 +2089,7 @@ Would you like to retry?</source> <context> <name>QDesignerPropertySheet</name> <message> - <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+754"/> + <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+758"/> <source>Dynamic Properties</source> <translation>Динамические свойства</translation> </message> @@ -2103,14 +2102,14 @@ Would you like to retry?</source> <translation>Компоновка типа '%1' не поддерживается, заменена на компоновку сеткой.</translation> </message> <message> - <location line="+243"/> + <location line="+239"/> <source>The container extension of the widget '%1' (%2) returned a widget not managed by Designer '%3' (%4) when queried for page #%5. Container pages should only be added by specifying them in XML returned by the domXml() method of the custom widget.</source> <translation>Контейнерное расширение виджета '%1' (%2) возвратило виджет, который не управляется Qt Designer '%3' (%4), при запросе страницы №%5. Страницы контейнера должны быть добавлены указанием их в XML, который возвращается методом domXml() пользовательского виджета.</translation> </message> <message> - <location line="+599"/> + <location line="+545"/> <source>Unexpected element <%1></source> <extracomment>Parsing clipboard contents</extracomment> <translation>Неожиданный элемент <%1></translation> @@ -2212,21 +2211,21 @@ Container pages should only be added by specifying them in XML returned by the d <translation>Панель инструментов</translation> </message> <message> - <location line="+465"/> + <location line="+466"/> <source>Save Forms?</source> <translation>Сохранить форму?</translation> </message> <message numerus="yes"> <location line="+1"/> <source>There are %n forms with unsaved changes. Do you want to review these changes before quitting?</source> - <translation type="unfinished"> - <numerusform>Есть %n форма с несохранёнными изменениями. Показать изменения перед выходом?</numerusform> - <numerusform>Есть %n формы с несохранёнными изменениями. Показать изменения перед выходом?</numerusform> - <numerusform>Есть %n форм с несохранёнными изменениями. Показать изменения перед выходом?</numerusform> + <translation> + <numerusform>Имеется %n форма с несохранёнными изменениями. Желаете просмотреть изменения перед выходом?</numerusform> + <numerusform>Имеется %n формы с несохранёнными изменениями. Желаете просмотреть изменения перед выходом?</numerusform> + <numerusform>Имеется %n форм с несохранёнными изменениями. Желаете просмотреть изменения перед выходом?</numerusform> </translation> </message> <message> - <location line="-495"/> + <location line="-496"/> <source>&View</source> <translation>&Вид</translation> </message> @@ -2241,9 +2240,9 @@ Container pages should only be added by specifying them in XML returned by the d <translation>Панель виджетов</translation> </message> <message> - <location line="+292"/> + <location line="+293"/> <source>If you do not review your documents, all your changes will be lost.</source> - <translation type="unfinished">Если вы не пересмотрите документы, то все ваши изменения будут потеряны.</translation> + <translation type="unfinished">Если не просматривать изменения, все изменения будут потеряны.</translation> </message> <message> <location line="+1"/> @@ -2258,7 +2257,7 @@ Container pages should only be added by specifying them in XML returned by the d <message> <location line="+95"/> <source>Backup Information</source> - <translation type="unfinished">Информация о резервировании</translation> + <translation type="unfinished">Информация о резервированых копиях</translation> </message> <message> <location line="+1"/> @@ -2273,7 +2272,7 @@ Container pages should only be added by specifying them in XML returned by the d <message> <location line="+46"/> <source>The file <b>%1</b> is not a valid Designer UI file.</source> - <translation type="unfinished">Файл <b>%1</b> не является корректным UI файлом Qt Designer.</translation> + <translation>Файл <b>%1</b> не является корректным UI файлом Qt Designer.</translation> </message> </context> <context> @@ -2322,7 +2321,7 @@ Container pages should only be added by specifying them in XML returned by the d <message> <location filename="../tools/designer/src/lib/uilib/properties_p.h" line="+132"/> <source>The enumeration-value '%1' is invalid. The default value '%2' will be used instead.</source> - <translation>Значение '%1' перечисляемого типа некорректно. Будет использовано значение '%2'.</translation> + <translation>Значение '%1' перечисляемого типа некорректно. Будет использовано значение по умолчанию '%2'.</translation> </message> <message> <location line="+14"/> @@ -2466,13 +2465,13 @@ Container pages should only be added by specifying them in XML returned by the d <location line="+10"/> <location line="+25"/> <source>True</source> - <translation type="unfinished">Вкл.</translation> + <translation>Вкл.</translation> </message> <message> <location line="-25"/> <location line="+25"/> <source>False</source> - <translation type="unfinished">Выкл.</translation> + <translation>Выкл.</translation> </message> </context> <context> @@ -2480,12 +2479,12 @@ Container pages should only be added by specifying them in XML returned by the d <message> <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1507"/> <source>True</source> - <translation type="unfinished">Вкл.</translation> + <translation>Вкл.</translation> </message> <message> <location line="+1"/> <source>False</source> - <translation type="unfinished">Выкл.</translation> + <translation>Выкл.</translation> </message> </context> <context> @@ -3503,7 +3502,7 @@ to <context> <name>QtResourceView</name> <message> - <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+566"/> + <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+567"/> <source>Size: %1 x %2 %3</source> <translation>Размер: %1 x %2 @@ -3528,7 +3527,7 @@ to <context> <name>QtResourceViewDialog</name> <message> - <location line="+250"/> + <location line="+252"/> <source>Select Resource</source> <translation>Выбрать ресурс</translation> </message> @@ -3915,6 +3914,26 @@ Do you want overwrite the template?</source> </message> <message> <location line="+6"/> + <source>File</source> + <translation type="unfinished">Файл</translation> + </message> + <message> + <location line="+4"/> + <source>Edit</source> + <translation type="unfinished">Правка</translation> + </message> + <message> + <location line="+4"/> + <source>Tools</source> + <translation type="unfinished">Инструменты</translation> + </message> + <message> + <location line="+4"/> + <source>Form</source> + <translation type="unfinished">Форма</translation> + </message> + <message> + <location line="+4"/> <source>Toolbars</source> <translation>Панели инструментов</translation> </message> @@ -3939,7 +3958,7 @@ Do you want overwrite the template?</source> <message> <location line="+2"/> <source>%1<br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</source> - <translation type="unfinished">%1<br/>Copyright (C) 2010 Корпорация Nokia и/или её дочерние подразделения.</translation> + <translation>%1<br/>Copyright (C) 2010 Корпорация Nokia и/или её дочерние подразделения.</translation> </message> </context> <context> @@ -4424,38 +4443,38 @@ Do you want overwrite the template?</source> <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+647"/> <location line="+6"/> <source>AlignLeft</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="-5"/> <source>AlignHCenter</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+1"/> <source>AlignRight</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+1"/> <source>AlignJustify</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+9"/> <source>AlignTop</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+1"/> <location line="+4"/> <source>AlignVCenter</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="-3"/> <source>AlignBottom</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+565"/> @@ -4708,9 +4727,14 @@ Do you want overwrite the template?</source> <context> <name>qdesigner_internal::FilterWidget</name> <message> - <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+185"/> - <source><Filter></source> - <translation><Фильтр></translation> + <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+163"/> + <source>Filter</source> + <translation>Фильтр</translation> + </message> + <message> + <location line="+36"/> + <source>Clear text</source> + <translation>Очистить текст</translation> </message> </context> <context> @@ -4737,33 +4761,37 @@ Do you want overwrite the template?</source> <context> <name>qdesigner_internal::FormWindow</name> <message> - <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1267"/> + <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1322"/> <source>Edit contents</source> <translation>Изменить содержимое</translation> </message> <message> <location line="+1"/> <source>F2</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location line="+774"/> + <location line="+775"/> <source>Insert widget '%1'</source> <translation>Вставить виджет '%1'</translation> </message> <message> - <location line="+67"/> + <location line="+65"/> <source>Resize</source> <translation>Изменение размера</translation> </message> <message> - <location line="+218"/> - <location line="+15"/> + <location line="+248"/> <source>Key Move</source> <translation type="unfinished">Перемещение клавишей</translation> </message> + <message> + <location line="+0"/> + <source>Key Resize</source> + <translation type="unfinished">Изменение размера клавишей</translation> + </message> <message numerus="yes"> - <location line="+211"/> + <location line="+252"/> <source>Paste %n action(s)</source> <translation type="unfinished"> <numerusform>Вставлено %n действие</numerusform> @@ -4801,7 +4829,7 @@ Do you want overwrite the template?</source> <translation>Ошибка вставки</translation> </message> <message> - <location line="+183"/> + <location line="+181"/> <source>Raise widgets</source> <translation>Поднятие виджетов</translation> </message> @@ -4821,7 +4849,7 @@ Do you want overwrite the template?</source> <translation>Компоновка</translation> </message> <message> - <location line="+493"/> + <location line="+485"/> <location line="+55"/> <source>Drop widget</source> <translation type="unfinished">Вставка виджета</translation> @@ -4835,7 +4863,7 @@ Do you want overwrite the template?</source> <context> <name>qdesigner_internal::FormWindowBase</name> <message> - <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+393"/> + <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+404"/> <source>Delete '%1'</source> <translation>Удалить '%1'</translation> </message> @@ -4932,7 +4960,7 @@ Do you want overwrite the template?</source> <message> <location line="+6"/> <source>Lay Out &Horizontally</source> - <translation>Скомпоновать по &горизонтальная</translation> + <translation>Скомпоновать по &горизонтали</translation> </message> <message> <location line="+3"/> @@ -5025,7 +5053,7 @@ Do you want overwrite the template?</source> <translation>&Настройки формы...</translation> </message> <message> - <location line="+92"/> + <location line="+94"/> <source>Break Layout</source> <translation>Удалить компоновщик</translation> </message> @@ -5441,7 +5469,7 @@ Please select another name.</source> <message> <location/> <source>horizontalSpacer</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -5500,7 +5528,7 @@ Please select another name.</source> <message> <location line="+244"/> <source>Unable to open the form template file '%1': %2</source> - <translation type="unfinished">Невозможно открыть файл шаблона формы '%1': %2</translation> + <translation>Невозможно открыть файл шаблона формы '%1': %2</translation> </message> <message> <location line="+67"/> @@ -5869,7 +5897,7 @@ Please select another name.</source> <source>The moose in the noose ate the goose who was loose.</source> <extracomment>Palette editor background</extracomment> - <translation type="unfinished"></translation> + <translation></translation> </message> </context> <context> @@ -5945,12 +5973,12 @@ ate the goose who was loose.</source> <message> <location line="+1"/> <source>Global include</source> - <translation type="unfinished">Глобальное включение</translation> + <translation>Глобальное включение</translation> </message> <message> <location line="+1"/> <source>Usage</source> - <translation type="unfinished">Использование</translation> + <translation>Использование</translation> </message> </context> <context> @@ -5984,7 +6012,7 @@ ate the goose who was loose.</source> <context> <name>qdesigner_internal::PropertyEditor</name> <message> - <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+183"/> + <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+231"/> <source>Add Dynamic Property...</source> <translation>Добавить динамическое свойство...</translation> </message> @@ -6014,7 +6042,7 @@ ate the goose who was loose.</source> <translation type="unfinished">Вид выпадающего списка</translation> </message> <message> - <location line="+50"/> + <location line="+45"/> <source>String...</source> <translation>Строка...</translation> </message> @@ -6034,7 +6062,7 @@ ate the goose who was loose.</source> <translation>Настроить радактор свойств</translation> </message> <message> - <location line="+533"/> + <location line="+539"/> <source>Object: %1 Class: %2</source> <translation>Объект: %1 @@ -6372,7 +6400,7 @@ Class: %2</source> <message> <location line="+1"/> <source>CTRL+B</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+5"/> @@ -6382,7 +6410,7 @@ Class: %2</source> <message> <location line="+1"/> <source>CTRL+I</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+5"/> @@ -6392,7 +6420,7 @@ Class: %2</source> <message> <location line="+1"/> <source>CTRL+U</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+13"/> @@ -6495,7 +6523,7 @@ Class: %2</source> <message> <location line="+2"/> <source>F4</source> - <translation type="unfinished"></translation> + <translation></translation> </message> </context> <context> diff --git a/translations/linguist_hu.ts b/translations/linguist_hu.ts index aaff893..44c1e4a 100644 --- a/translations/linguist_hu.ts +++ b/translations/linguist_hu.ts @@ -1,10 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> -<TS version="2.0" language="hu_HU" sourcelanguage="hu"> +<TS version="2.0" language="hu_HU"> +<context> + <name></name> + <message> + <source>(New Entry)</source> + <translation type="obsolete">(Új bejegyzés)</translation> + </message> +</context> <context> <name>AboutDialog</name> <message> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1358"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1366"/> <source>Qt Linguist</source> <translation>Qt Linguist</translation> </message> @@ -14,7 +21,7 @@ <message> <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+79"/> <source>Batch Translation of '%1' - Qt Linguist</source> - <translation>'%1' Qt Linguist egy adat fordítása</translation> + <translation>'%1' kötegelt fordítása - Qt Linguist</translation> </message> <message> <location line="+37"/> @@ -24,24 +31,24 @@ <message> <location line="+0"/> <source>&Cancel</source> - <translation>&Mégse</translation> + <translation>&Mégsem</translation> </message> <message> <location line="+42"/> <source>Linguist batch translator</source> - <translation>Linguist köteg fordító</translation> + <translation>Linguist kötegelt fordító</translation> </message> <message numerus="yes"> <location line="+1"/> <source>Batch translated %n entries</source> <translation> - <numerusform>%n adat belépés lefordítva</numerusform> + <numerusform>%n üzenet sikeresen lefordítva</numerusform> </translation> </message> <message> <location filename="../tools/linguist/linguist/batchtranslation.ui"/> <source>Qt Linguist - Batch Translation</source> - <translation>Qt Linguist adat fordítás</translation> + <translation>Qt Linguist - Kötegelt fordítás</translation> </message> <message> <location/> @@ -51,32 +58,40 @@ <message> <location/> <source>Set translated entries to finished</source> - <translation>Lefordított bevitelek befejezettre állítása</translation> + <translation>A lefordított szövegek véglegesítése</translation> </message> <message> <location/> <source>Retranslate entries with existing translation</source> - <translation>Bevitelek újrafordítása létező fordításokkal</translation> + <translation>A módosított bejegyzések fordítása</translation> + </message> + <message> + <source>Note that the modified entries will be reset to unfinished if 'Set translated entries to finished' above is unchecked.</source> + <translation type="obsolete">A módosított bejegyzések fordítatlanra lesznek állítva, ha az "A lefordított szövegek véglegesítése" nincs bejelölve.</translation> </message> <message> <location/> <source>Translate also finished entries</source> - <translation>Befejezett belépéseknek is a lefordítása</translation> + <translation>A véglegesített bejegyzéseket is fordítsa</translation> </message> <message> <location/> <source>Phrase book preference</source> - <translation>Fázis könyv beállítások</translation> + <translation>Kifejezéstár sorrend</translation> </message> <message> <location/> <source>Move up</source> - <translation>Felfelé mozgatás</translation> + <translation>Fel</translation> </message> <message> <location/> <source>Move down</source> - <translation>Lefelé mozgatás</translation> + <translation>Le</translation> + </message> + <message> + <source>The batch translator will search through the selected phrase books in the order given above.</source> + <translation type="obsolete">A kötegelt fordító ebben a sorrendben keresi végig a kifejezéskönyveket.</translation> </message> <message> <location/> @@ -86,17 +101,17 @@ <message> <location/> <source>Cancel</source> - <translation>Mégse</translation> + <translation>Mégsem</translation> </message> <message> <location/> <source>Note that the modified entries will be reset to unfinished if 'Set translated entries to finished' above is unchecked</source> - <translation>Ne felejtse el, hogy a módosított belépések újra lesznek indítva befejezetlenre, ha a 'lefordított bevitelek befejezettre állítása' felül meg van jelölve</translation> + <translation>A módosított bejegyzések fordítatlanra lesznek állítva, ha az "A lefordított szövegek véglegesítése" nincs bejelölve</translation> </message> <message> <location/> <source>The batch translator will search through the selected phrase books in the order given above</source> - <translation>A köteg fordító a kiválasztott fázis könyvek között fog keresni, a fent megadott sorrendben</translation> + <translation>A kötegelt fordító ebben a sorrendben keresi végig a kifejezéskönyveket</translation> </message> </context> <context> @@ -104,23 +119,23 @@ <message> <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+214"/> <source><qt>Duplicate messages found in '%1':</source> - <translation><qt>Dupliált üzenetek találhatóak a(z) '%1'-ben:</translation> + <translation><qt>Duplikált üzenetek a(z) '%1' fájlban:</translation> </message> <message> <location line="+4"/> <location line="+8"/> <source><p>[more duplicates omitted]</source> - <translation><p>[többi duplikáció kihagyása]</translation> + <translation><p>[a többi duplikátum kihagyva]</translation> </message> <message> <location line="-5"/> <source><p>* ID: %1</source> - <translation><p>* Azonosító: %1</translation> + <translation><p>* ID: %1</translation> </message> <message> <location line="+8"/> <source><p>* Context: %1<br>* Source: %2</source> - <translation><p>* Szövegösszefüggés: %1<br>* Forrás: %2</translation> + <translation><p>* Környezet: %1<br>* Forrás: %2</translation> </message> <message> <location line="+3"/> @@ -131,17 +146,18 @@ <location line="+71"/> <source>Linguist does not know the plural rules for '%1'. Will assume a single universal form.</source> - <translation>A Linguist nem ismeri a többes számú szabályokat a '%1'-re. Egy egyszerű univerzális formát fog feltételezni.</translation> + <translation>A Linguist nem ismer többesszámképzést a(z) '%1'-hez. +Az egyes számú általános forma lesz alkalmazva.</translation> </message> <message> <location line="+56"/> <source>Cannot create '%2': %1</source> - <translation>Nem lehet létrehozni '%2': %1</translation> + <translation>'%2' létrehozása sikertelen: %1</translation> </message> <message> <location line="+56"/> <source>Universal Form</source> - <translation>Univerzális forma</translation> + <translation>Általános forma</translation> </message> </context> <context> @@ -149,32 +165,32 @@ Will assume a single universal form.</source> <message> <location filename="../tools/linguist/linguist/errorsview.cpp" line="+76"/> <source>Accelerator possibly superfluous in translation.</source> - <translation>A gyorsítás valószínűleg nélkülözhető a fordításban.</translation> + <translation>Felesleges gyorsbillentyű van a fordításban.</translation> </message> <message> <location line="+3"/> <source>Accelerator possibly missing in translation.</source> - <translation>A gyorsítás valószínűleg hiányzik a fordításban.</translation> + <translation>Egy gyorsbillentyű valószínűleg hiányzik a fordításból.</translation> </message> <message> <location line="+3"/> <source>Translation does not end with the same punctuation as the source text.</source> - <translation>A fordítás nem ugyanazzal az írásjellel végződik, mint a forrás szöveg.</translation> + <translation>A lefordított mondat nem ugyanazzal az írásjellel végződik, mint a forrás.</translation> </message> <message> <location line="+3"/> <source>A phrase book suggestion for '%1' was ignored.</source> - <translation>A(z) '%1'-re tett fáziskönyv ajánlat mellőzve lett.</translation> + <translation>A '%1' kifejezéskönyvi ajánlás figyelmen kívül lett hagyva.</translation> </message> <message> <location line="+3"/> <source>Translation does not refer to the same place markers as in the source text.</source> - <translation>Nem ugyanazok a hely megjelölők találhatóak a fordításban, mint a forrás szövegben.</translation> + <translation>A fordítás nem tartalmazza az összes %n helyfoglalót a szövegből.</translation> </message> <message> <location line="+3"/> <source>Translation does not contain the necessary %n place marker.</source> - <translation>A fordítás nem tartalmazza a szükséges %n hely megjelölőket.</translation> + <translation>A fordításból kimaradt egy szükséges %n helyfoglaló.</translation> </message> <message> <location line="+3"/> @@ -187,12 +203,12 @@ Will assume a single universal form.</source> <message> <location filename="../tools/linguist/linguist/finddialog.ui"/> <source>This window allows you to search for some text in the translation source file.</source> - <translation>Ez az ablak engedélyezi, hogy szöveget keresses a fordítás forrás fájlban.</translation> + <translation>Itt lehet keresni egy szöveget a fordítás alatt álló fájlban.</translation> </message> <message> <location/> <source>Type in the text to search for.</source> - <translation>Gépelje be szövegbe, amit keres..</translation> + <translation>A keresendő szöveg helye.</translation> </message> <message> <location/> @@ -202,68 +218,67 @@ Will assume a single universal form.</source> <message> <location/> <source>Source texts are searched when checked.</source> - <translation>Forrás szövegek keresési ellenőrzéskor.</translation> + <translation>A forrásszövegek is keresve lesznek.</translation> </message> <message> <location/> <source>Translations are searched when checked.</source> - <translation>Fordítások keresése ellenőrzéskor.</translation> + <translation>A fordítások is keresve lesznek.</translation> </message> <message> <location/> <source>Texts such as 'TeX' and 'tex' are considered as different when checked.</source> - <translation>'TeX' és 'tex' szövegek különbözőként kezelése bejelöléskor.</translation> + <translation>A kis/nagybetű különbseg figyelembe lesz véve.</translation> </message> <message> <location/> <source>Comments and contexts are searched when checked.</source> - <translation>Megjegyzések és tartalmak keresése bejelöléskor.</translation> + <translation>A megjegyzések és környezetek is keresve lesznek.</translation> </message> <message> <location/> <source>Find</source> - <translation>Keresés -</translation> + <translation>Keresés</translation> </message> <message> <location/> <source>&Find what:</source> - <translation>Ennek &keresése:</translation> + <translation>Amit &keres:</translation> </message> <message> <location/> <source>&Source texts</source> - <translation>&Forrás szövegek</translation> + <translation>Fo&rrásszöveg</translation> </message> <message> <location/> <source>&Translations</source> - <translation>&Fordítások</translation> + <translation>For&dítások</translation> </message> <message> <location/> <source>&Match case</source> - <translation>&Egyezés</translation> + <translation>K&is/nagybetű</translation> </message> <message> <location/> <source>&Comments</source> - <translation>&Kommentek</translation> + <translation>&Megjegyzések</translation> </message> <message> <location/> <source>Ignore &accelerators</source> - <translation>&Gyorsítások mellőzése</translation> + <translation>&Gyorsbillentyűk kihagyása</translation> </message> <message> <location/> <source>Click here to find the next occurrence of the text you typed in.</source> - <translation>Kattintson ide a begépelt szöveg következő előfordulásának megkereséséhez.</translation> + <translation>A következő találat megjelenítéséhez kattintson ide.</translation> </message> <message> <location/> <source>Find Next</source> - <translation>Következő keresése</translation> + <translation>Következő</translation> </message> <message> <location/> @@ -273,37 +288,34 @@ Will assume a single universal form.</source> <message> <location/> <source>Cancel</source> - <translation>Mégse</translation> + <translation>Mégsem</translation> </message> <message> - <location filename="../tools/linguist/linguist/finddialog.cpp" line="+12"/> + <location filename="../tools/linguist/linguist/finddialog.cpp" line="+14"/> <source></source> <comment>Choose Edit|Find from the menu bar or press Ctrl+F to pop up the Find dialog</comment> - <translatorcomment>Válassza ki a Szerkesztés/Keresés opciót a menüből vagy nyomja le a Ctrl+F billentyűket a keresési párbeszédablak felugrásához</translatorcomment> <translation></translation> </message> </context> <context> <name>FormMultiWidget</name> <message> - <location filename="../tools/linguist/linguist/messageeditorwidgets.cpp" line="+296"/> + <location filename="../tools/linguist/linguist/messageeditorwidgets.cpp" line="+302"/> <source>Alt+Delete</source> <extracomment>translate, but don't change</extracomment> - <translatorcomment>fordítsd, de ne változtasd</translatorcomment> - <translation>ALT+Delete</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Shift+Alt+Insert</source> <extracomment>translate, but don't change</extracomment> - <translatorcomment>Fordítsd, de ne változtasd.</translatorcomment> - <translation>Shift+Alt+Insert</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Alt+Insert</source> <extracomment>translate, but don't change</extracomment> - <translation>Alt+Insert</translation> + <translation></translation> </message> <message> <location line="+131"/> @@ -313,23 +325,23 @@ Will assume a single universal form.</source> <message> <location line="+1"/> <source>Delete non-empty length variant?</source> - <translation>Törölje az 0 hosszúságú változatok?</translation> + <translation>Biztosan törli ezt a hosszú változatot?</translation> </message> </context> <context> <name>LRelease</name> <message numerus="yes"> - <location filename="../tools/linguist/shared/qm.cpp" line="+761"/> + <location filename="../tools/linguist/shared/qm.cpp" line="+763"/> <source>Dropped %n message(s) which had no ID.</source> <translation> - <numerusform>%n üzenez eldobva, melyek nem rendelkeztek azonosítóval.</numerusform> + <numerusform>%n azonosító nélküli üzenet eldobva.</numerusform> </translation> </message> <message numerus="yes"> <location line="+4"/> <source>Excess context/disambiguation dropped from %n message(s).</source> <translation> - <numerusform>Fölösleges szövegösszefüggés/egyértelműsítés törlése %n üzenetből.</numerusform> + <numerusform>A többlet kontextus/egyértelmüsítés eltávolítva %n üzenetből.</numerusform> </translation> </message> <message numerus="yes"> @@ -337,7 +349,8 @@ Will assume a single universal form.</source> <source> Generated %n translation(s) (%1 finished and %2 unfinished) </source> <translation> - <numerusform>%n fordítás legenerálása (%1 befejezett és %2 befejezetlen)</numerusform> + <numerusform> %n fordítás legenerálva (%1 végleges és %2 nem végleges) +</numerusform> </translation> </message> <message numerus="yes"> @@ -345,7 +358,8 @@ Will assume a single universal form.</source> <source> Ignored %n untranslated source text(s) </source> <translation> - <numerusform>%n lefordítatlan forrás szöveg mellőzése</numerusform> + <numerusform> %n lefordítatlan szöveg kihagyva +</numerusform> </translation> </message> </context> @@ -354,32 +368,32 @@ Will assume a single universal form.</source> <message> <location filename="../tools/linguist/linguist/mainwindow.ui"/> <source>MainWindow</source> - <translation>FőAblak</translation> + <translation>MainWindow</translation> </message> <message> <location/> <source>&Phrases</source> - <translation>&Fázisok</translation> + <translation>&Kifejezések</translation> </message> <message> <location/> <source>&Close Phrase Book</source> - <translation>&Fázis könyvek bezárása</translation> + <translation>Kifejezéstár &bezárása</translation> </message> <message> <location/> <source>&Edit Phrase Book</source> - <translation>Fázis könyvek &szerkesztése</translation> + <translation>Kifejezéstár sz&erkesztése</translation> </message> <message> <location/> <source>&Print Phrase Book</source> - <translation>&Fázis könyvek nyomtatása</translation> + <translation>Kifejezéstár &nyomtatása</translation> </message> <message> <location/> <source>V&alidation</source> - <translation>&Érvényesítés</translation> + <translation>&Ellenőrzés</translation> </message> <message> <location/> @@ -394,7 +408,7 @@ Will assume a single universal form.</source> <message> <location/> <source>&Toolbars</source> - <translation>&Eszköztár</translation> + <translation>&Eszköztárak</translation> </message> <message> <location/> @@ -404,7 +418,7 @@ Will assume a single universal form.</source> <message> <location/> <source>&Translation</source> - <translation>&Fordítások</translation> + <translation>F&ordítás</translation> </message> <message> <location/> @@ -413,23 +427,23 @@ Will assume a single universal form.</source> </message> <message> <location/> - <source>&Edit</source> - <translation>&Szerkesztés</translation> + <source>Recently Opened &Files</source> + <translation>Előzőleg megnyitott &fájlok</translation> </message> <message> <location/> - <source>&Open...</source> - <translation>&Megnyitás...</translation> + <source>&Edit</source> + <translation>Sz&erkesztés</translation> </message> <message> <location/> <source>Open a Qt translation source file (TS file) for editing</source> - <translation>Egy Qt fordítási forrás fájl (TS fájl) megnyitása szerkesztésre</translation> + <translation>Qt fordytási forrás (TS fájl) megnyitása szerkesztésre</translation> </message> <message> <location/> <source>Ctrl+O</source> - <translation>Ctrl+O</translation> + <translation></translation> </message> <message> <location/> @@ -439,170 +453,95 @@ Will assume a single universal form.</source> <message> <location/> <source>Close this window and exit.</source> - <translation>Ablak bezárása és kilépés.</translation> + <translation>Kilépés, és az ablak bezárása.</translation> </message> <message> <location/> <source>Ctrl+Q</source> - <translation>Ctrl+Q</translation> + <translation></translation> </message> <message> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+646"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+668"/> <location line="+15"/> <source>&Save</source> - <translation>&Mentés</translation> + <translation>Menté&s</translation> </message> <message> <location filename="../tools/linguist/linguist/mainwindow.ui"/> <source>Save changes made to this Qt translation source file</source> - <translation>Változtatások elmentése a Qt fordítási forrás fájlban</translation> - </message> - <message> - <location/> - <source>Move to the previous unfinished item.</source> - <translation>Az előző befejezetlen elemre mozgatás.</translation> - </message> - <message> - <location/> - <source>Move to the next unfinished item.</source> - <translation>A következő befejezetlen elemre mozgatás.</translation> - </message> - <message> - <location/> - <source>Move to the previous item.</source> - <translation>Az előző elemre mozgatás.</translation> - </message> - <message> - <location/> - <source>Move to the next item.</source> - <translation>A következő elemre mozgatás.</translation> - </message> - <message> - <location/> - <source>Mark this item as done and move to the next unfinished item.</source> - <translation>Az elem készre jelölése és a következő befejezetlen elemre mozgás.</translation> - </message> - <message> - <location/> - <source>Copy from source text</source> - <translation>Másolás forrás szövegből</translation> - </message> - <message> - <location/> - <source>Toggle the validity check of accelerators, i.e. whether the number of ampersands in the source and translation text is the same. If the check fails, a message is shown in the warnings window.</source> - <translation>Gyorsítások érvényesség ellenőrzésének kapcsolgatása, lásd vajon az et jelek száma megegyezik-e a a forrás és lefordított szövegben. Ha ez az ellenőrzés hibásan zárul le, a figyelmeztető ablakban egy üzenet tűnik fel.</translation> - </message> - <message> - <location/> - <source>Toggle the validity check of ending punctuation. If the check fails, a message is shown in the warnings window.</source> - <translation>A végződő írásjelek érvényesség ellenőrzésének kapcsolgatása. Ha ez az ellenőrzés nem sikerült, akkor egy üzenet bukkan fel a figyelmeztető ablakban.</translation> - </message> - <message> - <location/> - <source>Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window.</source> - <translation>Fázis ajánlások ellenőrzésének kapcsolgatása. Ha az ellenőrzés sikertelen, akkor egy üzenet bukkan fel a figyelmeztető ablakban.</translation> - </message> - <message> - <location/> - <source>Toggle the validity check of place markers, i.e. whether %1, %2, ... are used consistently in the source text and translation text. If the check fails, a message is shown in the warnings window.</source> - <translation>A hely megjelelölők érvényesség ellenőrzésének kapcsolgatása, lásd vajon a(z) %1, %2.. következetesen vannak-e használva a forrás és lefordított szövegben. Ha az ellenőrzés sikertelen, egy üzenet bukkan fel a figyelmeztető ablakban.</translation> + <translation>A fordításon végzett változtatások elmentése</translation> </message> <message> <location/> <source>Open Read-O&nly...</source> - <translation>&Csak olvasható megnyitása...</translation> + <translation>Megnyitás csak &olvasásra...</translation> </message> <message> <location/> <source>&Save All</source> - <translation>Az összes &mentése</translation> + <translation>Mind&et menti</translation> </message> <message> <location/> <source>Ctrl+S</source> - <translation>Ctrl+S</translation> + <translation></translation> </message> <message> <location/> <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-14"/> <location line="+11"/> <source>Save &As...</source> - <translation>&Másként mentés...</translation> + <translation>Mentés má&sként...</translation> </message> <message> <location/> <source>Save As...</source> - <translation>Másként mentés...</translation> + <translation>Mentés másként...</translation> </message> <message> <location/> <source>Save changes made to this Qt translation source file into a new file.</source> - <translation>A változtatások egy új fájlba mentése, amik ebben a Qt fordítási forrás fájlban keletkeztek.</translation> + <translation>A fordításon végzett változtatások elmentése egy új fájlba.</translation> </message> <message> <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+4"/> <source>&Release</source> - <translation>&Kiadás</translation> + <translation>Kia&dás</translation> </message> <message> <location filename="../tools/linguist/linguist/mainwindow.ui"/> <source>Create a Qt message file suitable for released applications from the current message file.</source> - <translation>Qt üzenez fájl létrehozása az aktuális üzenet fájlból, ami alkalmas a kiadásra.</translation> - </message> - <message> - <location/> - <source>&Print...</source> - <translation>&Nyomtatás...</translation> + <translation>Az alkalmazások számára használható Qt üzenetfájl létrehozása a jelenlegi fájlból.</translation> </message> <message> <location/> <source>Ctrl+P</source> - <translation>Ctrl+P</translation> + <translation></translation> </message> <message> <location/> <source>&Undo</source> - <translation>&Visszacsinálás</translation> - </message> - <message> - <location/> - <source>Recently Opened &Files</source> - <translation>&Utoljára megnyitott &fájlok</translation> - </message> - <message> - <location/> - <source>Save</source> - <translation>Mentés</translation> - </message> - <message> - <location/> - <source>Print a list of all the translation units in the current translation source file.</source> - <translation>Az összes fordítási egység kinyomtatása az aktuális fordítási forrás fájlban.</translation> - </message> - <message> - <location/> - <source>Undo the last editing operation performed on the current translation.</source> - <translation>Az utoljára szerkesztett művelet visszavonása az aktuális fordításon.</translation> + <translation>&Visszavonás</translation> </message> <message> <location/> <source>Ctrl+Z</source> - <translation>Ctrl+Z</translation> + <translation></translation> </message> <message> <location/> <source>&Redo</source> - <translation>&Helyreállítás</translation> + <translation>Új&ra</translation> </message> <message> <location/> <source>Redo an undone editing operation performed on the translation.</source> - <translation>Szerkesztő művelet helyreállítása és visszavonása, ami az aktuális fordításon lett végrehajtva.</translation> + <translation>Egy visszavont szerkesztési művelet újra végrehajtása a fordításon.</translation> </message> <message> <location/> <source>Ctrl+Y</source> - <translation>Ctrl+Y</translation> + <translation></translation> </message> <message> <location/> @@ -612,12 +551,12 @@ Will assume a single universal form.</source> <message> <location/> <source>Copy the selected translation text to the clipboard and deletes it.</source> - <translation>A kiválasztott fordítási szöveg vágólapra másolása és törlése.</translation> + <translation>A kijelölt szöveg vágólapra másolása és törlése.</translation> </message> <message> <location/> <source>Ctrl+X</source> - <translation>Ctrl+X</translation> + <translation></translation> </message> <message> <location/> @@ -627,12 +566,12 @@ Will assume a single universal form.</source> <message> <location/> <source>Copy the selected translation text to the clipboard.</source> - <translation>A kiválaszott fordítási szöveg vágólapra másolása.</translation> + <translation>A kijelölt szöveg vágólapra másolása.</translation> </message> <message> <location/> <source>Ctrl+C</source> - <translation>Ctrl+C</translation> + <translation></translation> </message> <message> <location/> @@ -642,42 +581,37 @@ Will assume a single universal form.</source> <message> <location/> <source>Paste the clipboard text into the translation.</source> - <translation>A vágólapon levő szöveg fordításba illesztése.</translation> + <translation>A vágólap tartalmának beillesztése a fordításba.</translation> </message> <message> <location/> <source>Ctrl+V</source> - <translation>Ctrl+V</translation> + <translation></translation> </message> <message> <location/> <source>Select &All</source> - <translation>Az &összes kiválasztása</translation> + <translation>Ö&sszes kijelölése</translation> </message> <message> <location/> <source>Select the whole translation text.</source> - <translation>Az egész fordítási szöveg kiválasztása.</translation> + <translation>A fordítás teljes szövegét kijelöli.</translation> </message> <message> <location/> <source>Ctrl+A</source> - <translation>Ctrl+A</translation> - </message> - <message> - <location/> - <source>&Find...</source> - <translation>&Keresés...</translation> + <translation></translation> </message> <message> <location/> <source>Search for some text in the translation source file.</source> - <translation>Néhány szövegre keresés a fordítási forrás fájlban.</translation> + <translation>Szöveg keresése a fordítás alatt levő fájlban.</translation> </message> <message> <location/> <source>Ctrl+F</source> - <translation>Ctrl+F</translation> + <translation></translation> </message> <message> <location/> @@ -687,182 +621,150 @@ Will assume a single universal form.</source> <message> <location/> <source>Continue the search where it was left.</source> - <translation>A keresés folytatása ott, ahol abba lett hagyva.</translation> + <translation>Az előző keresés folytatása.</translation> </message> <message> <location/> <source>F3</source> - <translation>F3</translation> + <translation></translation> </message> <message> <location/> <source>&Prev Unfinished</source> - <translation>Az &előző befejezetlen</translation> - </message> - <message> - <location/> - <source>Close</source> - <translation>Bezárás</translation> - </message> - <message> - <location/> - <source>&Close All</source> - <translation>Az összes &bezárása</translation> - </message> - <message> - <location/> - <source>Ctrl+W</source> - <translation>Ctrl+W</translation> + <translation>&Előző befejezetlen</translation> </message> <message> <location/> <source>Ctrl+K</source> - <translation>Ctrl+K</translation> + <translation></translation> </message> <message> <location/> <source>&Next Unfinished</source> - <translation>&Következő befejezetlen</translation> + <translation>Következő befejezetle&n</translation> </message> <message> <location/> <source>P&rev</source> - <translation>&Előző</translation> + <translation>E&lőző</translation> </message> <message> <location/> <source>Ctrl+Shift+K</source> - <translation>Ctrl+Shift+K</translation> + <translation></translation> </message> <message> <location/> <source>Ne&xt</source> - <translation>&Következő</translation> + <translation>Kö&vetkező</translation> </message> <message> <location/> <source>&Done and Next</source> - <translation>&Kész és Következő</translation> + <translation>Vé&glegesítés és ugrás</translation> </message> <message> <location/> <source>Copies the source text into the translation field.</source> - <translation>Forrás szövegek fordítási mezőbe másolása.</translation> + <translation>A forrás szöveg bemásolása a fordításba.</translation> </message> <message> <location/> <source>Ctrl+B</source> - <translation>Ctrl+B</translation> + <translation></translation> </message> <message> <location/> <source>&Accelerators</source> - <translation>&Gyorsítások</translation> + <translation>&Gyorsbillentyűk</translation> </message> <message> <location/> <source>&Ending Punctuation</source> - <translation>&Vég írásjelek</translation> + <translation>&Záró írásjelek</translation> </message> <message> <location/> <source>&Phrase matches</source> - <translation>&Fázis egyezés</translation> + <translation>&Kifejezés egyezések</translation> </message> <message> - <location/> - <source>Place &Marker Matches</source> - <translation>Hely &megjelölők egyezései</translation> + <source>Toggle checking that phrase suggestions are used.</source> + <translation type="obsolete">A kifejezéstár ajánlásainak használatának engedélyezése.</translation> </message> <message> <location/> - <source>&New Phrase Book...</source> - <translation>&Új fázis könyv...</translation> + <source>Place &Marker Matches</source> + <translation>&Helyfoglalók egyezése</translation> </message> <message> <location/> <source>Create a new phrase book.</source> - <translation>Egy új fázis könyv létrehozása.</translation> + <translation>Kifejezéstár létrehozása.</translation> </message> <message> <location/> <source>Ctrl+N</source> - <translation>Ctrl+N</translation> - </message> - <message> - <location/> - <source>&Open Phrase Book...</source> - <translation>Fázis könyv &megnyitása...</translation> + <translation></translation> </message> <message> <location/> <source>Open a phrase book to assist translation.</source> - <translation>Fáris könyv megnyitása a fordítás támogatásával.</translation> + <translation>Kifejezéstár megnyitása a fordításhoz.</translation> </message> <message> <location/> <source>Ctrl+H</source> - <translation>Ctrl+H</translation> - </message> - <message> - <location/> - <source>&Reset Sorting</source> - <translation>&Rendezés helyreállítása</translation> + <translation></translation> </message> <message> <location/> <source>Sort the items back in the same order as in the message file.</source> - <translation>Az elemek visszarendezése ugyanabba a sorrendben, ahogy az üzenet fájlban található.</translation> + <translation>Az üzenetfájlbeli sorrend visszaállítása.</translation> </message> <message> <location/> <source>&Display guesses</source> - <translation>Feltételezések &kijelzése</translation> + <translation>&Tippek megjelenítése</translation> </message> <message> <location/> <source>Set whether or not to display translation guesses.</source> - <translation>Annak beállítása, hogy vajon kijelezze a fordítási feltételezéseket vagy sem.</translation> + <translation>Fordítási tippek megjelenítése vagy elrejtése.</translation> </message> <message> <location/> <source>&Statistics</source> - <translation>&Statisztikák</translation> - </message> - <message> - <location/> - <source>Display translation statistics.</source> - <translation>Fordítási statisztikák kijelzése.</translation> + <translation>&Statisztika</translation> </message> <message> <location/> <source>&Manual</source> - <translation>&Kézi</translation> + <translation>&Kézikönyv</translation> </message> <message> <location/> <source>F1</source> - <translation>F1</translation> + <translation></translation> </message> <message> <location/> <source>About Qt Linguist</source> - <translation>Qt Linguist-ról</translation> + <translation>A Qt Linguist névjegye</translation> </message> <message> <location/> <source>About Qt</source> - <translation>Qt-ról</translation> + <translation>A Qt névjegye</translation> </message> <message> - <location/> <source>Display information about the Qt toolkit by Trolltech.</source> - <translation>Információ megjelenítése a Trolltech Qt eszközrendszeréről.</translation> + <translation type="obsolete">Információk a Trolltech Qt eszközkészletéről.</translation> </message> <message> <location/> <source>&What's This?</source> - <translation>&Mi ez?</translation> + <translation>Mi e&z?</translation> </message> <message> <location/> @@ -872,52 +774,44 @@ Will assume a single universal form.</source> <message> <location/> <source>Enter What's This? mode.</source> - <translation>Mi ez? beviteli mód.</translation> + <translation>Átlépés "Mi ez?" módba.</translation> </message> <message> <location/> <source>Shift+F1</source> - <translation>Shift+F1</translation> - </message> - <message> - <location/> - <source>&Search And Translate...</source> - <translation>&Keresés és fordítás...</translation> + <translation></translation> </message> <message> <location/> <source>Replace the translation on all entries that matches the search source text.</source> - <translation>A fordítások kicserélése az összes olyan helyen, ahol az megegyezik a keresett forrás szöveggel.</translation> - </message> - <message> - <location/> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+21"/> - <source>&Batch Translation...</source> - <translation>&Köteg fordítás...</translation> + <translation>A fordítás cseréje minden olyan előfordulásnál, ahol a forrásszöveg illeszkedik a keresett szóra.</translation> </message> <message> <location/> <source>Batch translate all entries using the information in the phrase books.</source> - <translation>Köteg fordítás mindenhol, ahol az információ a fázis könyvekben van haszálva.</translation> + <translation>Az összes bejegyzés automatikus fordítása a kifejezéstárak alapján.</translation> </message> <message> <location/> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-34"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-13"/> <location line="+10"/> <source>Release As...</source> - <translation>Kiadás, mint...</translation> + <translation>Kiadás másként...</translation> + </message> + <message> + <source>Create a Qt message file suitable for released applications from the current message file. The filename will automatically be determined from the name of the .ts file.</source> + <translation type="obsolete">Az alkalmazások számára használható Qt üzenetfájl létrehozása a jelenlegi fájlból. A fájlnév a jelenlegi ts fájl nevéből lesz megállapítva.</translation> </message> <message> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2005"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2035"/> <source></source> <comment>This is the application's main window.</comment> - <translatorcomment>Ez az alkalmazás fő ablaka.</translatorcomment> <translation></translation> </message> <message> - <location line="+188"/> + <location line="+190"/> <source>Source text</source> - <translation>Forrás szöveg</translation> + <translation>Forrás</translation> </message> <message> <location line="+1"/> @@ -929,7 +823,7 @@ Will assume a single universal form.</source> <location line="-2"/> <location line="+63"/> <source>Context</source> - <translation>Összefüggés</translation> + <translation>Környezet</translation> </message> <message> <location line="-62"/> @@ -939,22 +833,22 @@ Will assume a single universal form.</source> <message> <location line="+79"/> <source>This panel lists the source contexts.</source> - <translation>Ez a panel kilistázza a forrás összefüggéseket.</translation> + <translation>Ez a panel a környezeteket listázza.</translation> </message> <message> - <location line="+15"/> + <location line="+13"/> <source>Strings</source> - <translation>Sztringek</translation> + <translation>Szövegek</translation> </message> <message> - <location line="+39"/> + <location line="+37"/> <source>Phrases and guesses</source> - <translation>Kommunikációk és feltételezések</translation> + <translation>Kifejezések és tippek</translation> </message> <message> <location line="+10"/> <source>Sources and Forms</source> - <translation>Források és formák</translation> + <translation>Források és űrlapok</translation> </message> <message> <location line="+15"/> @@ -965,10 +859,10 @@ Will assume a single universal form.</source> <location line="+59"/> <source> MOD </source> <comment>status bar: file(s) modified</comment> - <translation>MOD</translation> + <translation> MOD </translation> </message> <message> - <location line="+130"/> + <location line="+139"/> <source>Loading...</source> <translation>Betöltés...</translation> </message> @@ -983,30 +877,30 @@ Will assume a single universal form.</source> <source>The file '%1' does not seem to be related to the currently open file(s) '%2'. Close the open file(s) first?</source> - <translation>A(z) '%1' fájl nem tartozik hozzá egyetlen aktuálisan megnyitott '%2' fájlhoz sem. + <translation>A(z) '%1' fájl nem kapcsolható a jelenleg megnyitott fájlokhoz (%2). -Bezárja először a megnyitott fájl(oka)t?</translation> +Bezárja a nyitott fájlokat?</translation> </message> <message> <location line="+22"/> <source>The file '%1' does not seem to be related to the file '%2' which is being loaded as well. Skip loading the first named file?</source> - <translation>A(z) '%1' fájl nem tartozik egyetlen '%2' fájlhoz sem, amelyik ugyanúgy be lett töltve. + <translation>A(z) '%1' fájl nem a '%2' fájlhoz tartozónak tűnik. -Azt első megnevezett fájl betöltésének kihagyása?</translation> +Kihagyja ennek a fájlnak a betöltését?</translation> </message> <message numerus="yes"> <location line="+61"/> <source>%n translation unit(s) loaded.</source> <translation> - <numerusform>%n fordítási egység betöltése.</numerusform> + <numerusform>%n fordítási egység betöltve.</numerusform> </translation> </message> <message> - <location line="+93"/> + <location line="+94"/> <source>Related files (%1);;</source> - <translation>Hozzákapcsolodó fájlok (%1);;</translation> + <translation>Hozzátartozó fájlok (%1);;</translation> </message> <message> <location line="+4"/> @@ -1017,27 +911,27 @@ Azt első megnevezett fájl betöltésének kihagyása?</translation> <location line="+10"/> <location line="+31"/> <source>File saved.</source> - <translation>Fájl elmentve.</translation> + <translation>A fájl elmentve.</translation> </message> <message> <location filename="../tools/linguist/linguist/mainwindow.ui"/> <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+15"/> - <location line="+1165"/> + <location line="+1187"/> <source>Release</source> <translation>Kiadás</translation> </message> <message> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1164"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1186"/> <source>Qt message files for released applications (*.qm) All files (*)</source> - <translation>Qt üzenet fájlok a kiadott alkalmazásra (*.qm) -Az összes fájl(*)</translation> + <translation>Qt üzenetfájlok a kiadott alkalmazásokhoz (*.qm) +Minden fájl (*)</translation> </message> <message> <location line="+3"/> <location line="+12"/> <source>File created.</source> - <translation>Fál létrehozva.</translation> + <translation>A fájl létrehozva.</translation> </message> <message> <location line="+34"/> @@ -1048,34 +942,34 @@ Az összes fájl(*)</translation> <message> <location line="-347"/> <source>Context: %1</source> - <translation>Összefüggés: %1</translation> + <translation>Környezet: %1</translation> </message> <message> <location line="+32"/> <source>finished</source> - <translation>Befejezve</translation> + <translation>végleges</translation> </message> <message> <location line="+3"/> <source>unresolved</source> - <translation>Nincs megoldva</translation> + <translation>hibás</translation> </message> <message> <location line="+3"/> <source>obsolete</source> - <translation>Elavulás</translation> + <translation>elavult</translation> </message> <message> <location line="+15"/> <location line="+307"/> <source>Printing... (page %1)</source> - <translation>Nyomtatás... (%1 lap)</translation> + <translation>Nyomtatás... (oldal %1)</translation> </message> <message> <location line="-300"/> <location line="+307"/> <source>Printing completed</source> - <translation>Nyomtatás teljesítve</translation> + <translation>Nyomtatás befejezve</translation> </message> <message> <location line="-305"/> @@ -1086,7 +980,7 @@ Az összes fájl(*)</translation> <message> <location line="-232"/> <source>Search wrapped.</source> - <translation>Keresés elrejtése.</translation> + <translation>A keresés befejeződött.</translation> </message> <message> <location line="+17"/> @@ -1094,7 +988,7 @@ Az összes fájl(*)</translation> <location line="+34"/> <location line="+24"/> <location line="+22"/> - <location line="+516"/> + <location line="+538"/> <location line="+1"/> <location line="+274"/> <location line="+40"/> @@ -1103,67 +997,67 @@ Az összes fájl(*)</translation> <translation>Qt Linguist</translation> </message> <message> - <location line="-1198"/> + <location line="-1220"/> <location line="+102"/> <source>Cannot find the string '%1'.</source> - <translation>A(z) '%1' sztring nem található.</translation> + <translation>A szöveg nem található: '%1'.</translation> </message> <message> <location line="-82"/> <source>Search And Translate in '%1' - Qt Linguist</source> - <translation>Keresés és fordítás a(z) '%1'-ben - Qt Linguist</translation> + <translation>Keresés és fordítás itt: '%1' - Qt Linguist</translation> </message> <message> <location line="+34"/> <location line="+23"/> <location line="+24"/> <source>Translate - Qt Linguist</source> - <translation>Qt Linguist fordítása</translation> + <translation>Fordítás - Qt Linguist</translation> </message> <message numerus="yes"> <location line="-46"/> <source>Translated %n entry(s)</source> <translation> - <numerusform>%n bevitel lefordítva</numerusform> + <numerusform>%n bejegyzés lefordítva</numerusform> </translation> </message> <message> <location line="+23"/> <source>No more occurrences of '%1'. Start over?</source> - <translation>Nem található '%1' több előfordulása. Előlről kezdi?</translation> + <translation>Nincs több találat erre: '%1'. Kezdjük elölről?</translation> </message> <message> <location line="+30"/> <source>Create New Phrase Book</source> - <translation>Új kommunikációs könyv létrehozása</translation> + <translation>Kifejezéstár létrehozása</translation> </message> <message> <location line="+1"/> <source>Qt phrase books (*.qph) All files (*)</source> - <translation>Qt kommunikációs könyv (*.qph) -Az összes fájl (*)</translation> + <translation>Qt kifejezéstárak (*.qph) +Minden fájl (*)</translation> </message> <message> <location line="+11"/> <source>Phrase book created.</source> - <translation>Kommunikációs könyv létrehozva.</translation> + <translation>A kifejezéstár létrehozva.</translation> </message> <message> <location line="+17"/> <source>Open Phrase Book</source> - <translation>Kommunikációs könyv megnyitása</translation> + <translation>Kifejezéstár megnyitása</translation> </message> <message> <location line="+1"/> <source>Qt phrase books (*.qph);;All files (*)</source> - <translation>Qt kommunikációs könyvek (*.qpm);;Az összes fájl (*)</translation> + <translation>Qt kifejezéstárak (*.qph);;Minden fájl (*)</translation> </message> <message numerus="yes"> <location line="+7"/> <source>%n phrase(s) loaded.</source> <translation> - <numerusform>%n kommunikáció betöltése.</numerusform> + <numerusform>%n kifejezés betöltve.</numerusform> </translation> </message> <message> @@ -1171,47 +1065,56 @@ Az összes fájl (*)</translation> <location line="+3"/> <location line="+7"/> <source>Add to phrase book</source> - <translation>Kommunikációs könyv hozzáadása</translation> + <translation>Hozzáadás a kifejezéstárhoz</translation> </message> <message> <location line="-9"/> <source>No appropriate phrasebook found.</source> - <translation>Nem található megfelelő kommunikációs könyv.</translation> + <translation>Nincs megfelelő kifejezéstár.</translation> </message> <message> <location line="+3"/> <source>Adding entry to phrasebook %1</source> - <translation>Új elem hozzáadása a(z) %1 fázis fáziskönyvhöz</translation> + <translation>Hozzáadás ehhez kifejezéstárhoz: '%1'</translation> </message> <message> <location line="+7"/> <source>Select phrase book to add to</source> - <translation>Kommunikációs könyv kiválasztása hozzáadásra</translation> + <translation>Válassza ki a bővítendő kifejezéstárat</translation> </message> <message> <location line="+29"/> <source>Unable to launch Qt Assistant (%1)</source> - <translation>Nem lehet elindítani a Qt Assistant (%1)</translation> + <translation>A Qt Asszisztens elindítása sikertelen (%1)</translation> </message> <message> <location line="+17"/> <source>Version %1</source> - <translation>%1 Verzió</translation> + <translation>Verzió %1</translation> </message> <message> <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) 2010 Nokia Corporation and/or its subsidiary(-ies).</source> - <translation><center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist egy olyan eszköz, amelyekkel fordítások adhat hozzá a Qt alkalmazásokhoz.</p><p>Szerzői jog(C) 2010 Nokia Vállalat és/vagy leányvállalatai.</translation> + <translation><center><img src=":/images/splash.png"/></img><p>%1</p></center><p>A Qt Linguist a Qt alkalmazások fordítását segítő eszköz.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</translation> + </message> + <message> + <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> + <translatorcomment></p></translatorcomment> + <translation type="obsolete"><center><img src=":/images/splash.png"/></img><p>%1</p></center><p>A Qt Linguist a Qt alkalmazások fordítását segítő eszköz.</p><p>Copyright (C) 2009 Nokia Corporation és leányvállalata(i).</translation> + </message> + <message> + <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>%2</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="obsolete"><center><img src=":/images/splash.png"/></img><p>%1</p></center><p>A Qt Linguist a Qt alkalmazások fordítását segítő eszköz.</p><p>%2</p><p>Copyright (C) 2000-2007 Trolltech ASA. Minden jog fenntartva.</p><p>Ez a program abban a reményben került közreadásra, hogy hasznos lesz, de minden egyéb GARANCIA NÉLKÜL, az ELADHATÓSÁGRA vagy VALAMELY CÉLRA VALÓ ALKALMAZHATÓSÁGRA való származtatott garanciát is beleértve.</p></translation> </message> <message> <location line="+38"/> <source>Do you want to save the modified files?</source> - <translation>El szeretné menteni a módosított fájlokat?</translation> + <translation>Menti a módosított fájlokat?</translation> </message> <message> <location line="+22"/> <source>Do you want to save '%1'?</source> - <translation>El szeretné menteni a(z) %1-t ?</translation> + <translation>Menti ezt a fájlt '%1'?</translation> </message> <message> <location line="+43"/> @@ -1227,10 +1130,10 @@ Az összes fájl (*)</translation> <location line="+267"/> <location line="+12"/> <source>No untranslated translation units left.</source> - <translation>Nem maradtak lefordítatlan fordítások.</translation> + <translation>Nincs több lefordítandó kifejezés.</translation> </message> <message> - <location line="+176"/> + <location line="+198"/> <source>&Window</source> <translation>&Ablak</translation> </message> @@ -1242,27 +1145,27 @@ Az összes fájl (*)</translation> <message> <location line="+1"/> <source>Ctrl+M</source> - <translation>Ctrl+M</translation> + <translation></translation> </message> <message> <location line="+12"/> <source>Display the manual for %1.</source> - <translation>A manuál megjelenítése %1-re vonatkozóan.</translation> + <translation>%1 kézikönyvének megtekintése.</translation> </message> <message> <location line="+1"/> <source>Display information about %1.</source> - <translation>Információ megjelenítése a(z) %1-ről.</translation> + <translation>Információk megjelenítése erről: %1.</translation> </message> <message> <location line="+70"/> <source>&Save '%1'</source> - <translation>'%1' &mentése</translation> + <translation>'%1' menté&se</translation> </message> <message> <location line="+1"/> <source>Save '%1' &As...</source> - <translation>'%1' &másként mentése...</translation> + <translation>'%1' mentése máské&nt...</translation> </message> <message> <location line="+1"/> @@ -1272,12 +1175,12 @@ Az összes fájl (*)</translation> <message> <location line="+1"/> <source>Release '%1' As...</source> - <translation>'%1' másként kiadása...</translation> + <translation>'%1' kiadása mint...</translation> </message> <message> <location line="+1"/> <source>&Close '%1'</source> - <translation>'%1' &bezárása</translation> + <translation>'%1' be&zárása</translation> </message> <message> <location line="+6"/> @@ -1288,33 +1191,33 @@ Az összes fájl (*)</translation> <message> <location line="-10"/> <source>Save All</source> - <translation>Az összes mentése</translation> + <translation>Mindet menti</translation> </message> <message> <location filename="../tools/linguist/linguist/mainwindow.ui"/> <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1"/> <source>&Release All</source> - <translation>Az összes &kiadása</translation> + <translation>Összes k&iadása</translation> </message> <message> <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1"/> <source>Close All</source> - <translation>Az összes bezárása</translation> + <translation>Mindet bezár</translation> </message> <message> <location line="+23"/> <source>Translation File &Settings for '%1'...</source> - <translation>Fordítási fájlok &beállítása erre '%1'...</translation> + <translation>Fordításfájl beállítá&sok ehhez: '%1'...</translation> </message> <message> <location line="+1"/> <source>&Batch Translation of '%1'...</source> - <translation>A(z) '%1' &köteg fordítása...</translation> + <translation>'%1' köte&gelt fordítása...</translation> </message> <message> <location line="+1"/> <source>Search And &Translate in '%1'...</source> - <translation>Keresés és &fordítás '%1'-ben...</translation> + <translation>Keresés és fordí&tás itt: '%1'...</translation> </message> <message> <location line="+4"/> @@ -1343,7 +1246,7 @@ Az összes fájl (*)</translation> <location/> <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+6"/> <source>Validation</source> - <translation>Érvényesítés</translation> + <translation>Ellenőrzés</translation> </message> <message> <location/> @@ -1354,151 +1257,313 @@ Az összes fájl (*)</translation> <message> <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+84"/> <source>Cannot read from phrase book '%1'.</source> - <translation>Nem lehet a(z) '%1' kommunikációs könyvből olvasni.</translation> + <translation>Nem lehet a(z) '%1' kifejezéstárból olvasni.</translation> </message> <message> <location line="+15"/> <source>Close this phrase book.</source> - <translation>A kommunikációs könyv bezárása.</translation> + <translation>Kifejezéstár bezárása.</translation> </message> <message> <location line="+4"/> <source>Enables you to add, modify, or delete entries in this phrase book.</source> - <translation>Hozzáadás, módosítás, vagy törlés engedélyezése ebben a kommunikációs könyvben.</translation> + <translation>Lehetővé teszi a bejegyzések szerkesztését a kifejezéskönyvben.</translation> </message> <message> <location line="+5"/> <source>Print the entries in this phrase book.</source> - <translation>Az összes bevitel kinyomtatása ebben a társalgási szótárban.</translation> + <translation>A kifejezéskönyv tartalmának nyomtatása.</translation> </message> <message> <location line="+16"/> <source>Cannot create phrase book '%1'.</source> - <translation>Nem lehet a '%1' társalgási szótárat létrehozni.</translation> + <translation>A(z) '%1' kifejezéstár létrehozása sikertelen.</translation> </message> <message> <location line="+10"/> <source>Do you want to save phrase book '%1'?</source> - <translation>El szeretné menteni a '%1' társalgási szótárat?</translation> + <translation>Biztosan menti a(z) '%1' kifejezéskönyvet?</translation> </message> <message> - <location line="+323"/> + <location line="+349"/> <source>All</source> - <translation>Mind</translation> + <translation>Minden</translation> </message> <message> <location filename="../tools/linguist/linguist/mainwindow.ui"/> <source>Open/Refresh Form &Preview</source> - <translation>Forma megnyitása/felfrissítése &nézet</translation> + <translation>Form &előnézet megnyitása/frissítése</translation> </message> <message> <location/> <source>Form Preview Tool</source> - <translation>Forma előnézeti eszköz</translation> + <translation>Form előnézeti eszköz</translation> </message> <message> <location/> <source>F5</source> - <translation>F5</translation> + <translation></translation> </message> <message> <location/> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-536"/> + <source>&Open...</source> + <translation>Meg&nyitás...</translation> + </message> + <message> + <location/> + <source>Save</source> + <translation>Mentés</translation> + </message> + <message> + <location/> + <source>&Print...</source> + <translation>&Nyomtatás...</translation> + </message> + <message> + <location/> + <source>Print a list of all the translation units in the current translation source file.</source> + <translation>A fordítási egységeket listázza a jelenlegi fordításfájlban.</translation> + </message> + <message> + <location/> + <source>Undo the last editing operation performed on the current translation.</source> + <translation>A legutolsó szerkesztő művelet visszavonása a fordításon.</translation> + </message> + <message> + <location/> + <source>&Find...</source> + <translation>K&eresés...</translation> + </message> + <message> + <source>Previous unfinished item.</source> + <translation type="obsolete">Előző lefordítatlan bejegyzés.</translation> + </message> + <message> + <location/> + <source>Move to the previous unfinished item.</source> + <translation>Ugrás a előző lefordítatlan bejegyzésre.</translation> + </message> + <message> + <source>Next unfinished item.</source> + <translation type="obsolete">Következő lefordítatlan bejegyzés.</translation> + </message> + <message> + <location/> + <source>Move to the next unfinished item.</source> + <translation>Ugrás a következő lefordítatlan bejegyzésre.</translation> + </message> + <message> + <source>Move to previous item.</source> + <translation type="obsolete">Ugrás az előző bejegyzésre.</translation> + </message> + <message> + <location/> + <source>Move to the previous item.</source> + <translation>Ugrás az előző bejegyzésre.</translation> + </message> + <message> + <source>Next item.</source> + <translation type="obsolete">Következő bejegyzés.</translation> + </message> + <message> + <location/> + <source>Move to the next item.</source> + <translation>Ugrás a következő bejegyzésre.</translation> + </message> + <message> + <source>Mark item as done and move to the next unfinished item.</source> + <translation type="obsolete">Az aktuális bejegyzés késznek jelölése és ugrás a következő lefordítatlanra.</translation> + </message> + <message> + <location/> + <source>Mark this item as done and move to the next unfinished item.</source> + <translation>Ezt a bejegyzést késznek jelöli és a következő lefordítatlanra ugrik.</translation> + </message> + <message> + <location/> + <source>Copy from source text</source> + <translation>Forrásszöveg másolása</translation> + </message> + <message> + <source>Toggle the validity check of accelerators.</source> + <translation type="obsolete">A gyorsbillentyűk meglétének ellenőrzése.</translation> + </message> + <message> + <location/> + <source>Toggle the validity check of accelerators, i.e. whether the number of ampersands in the source and translation text is the same. If the check fails, a message is shown in the warnings window.</source> + <translation>A gyorsbillentyűk meglétének ellenőrzése, vagyis hogy a forrás és célszövegben található && jelek száma megegyezik-e. Ha nem, akkor a figyelmeztetések közt jelezve lesz.</translation> + </message> + <message> + <source>Toggle the validity check of ending punctuation.</source> + <translation type="obsolete">A mondatvégi írásjelek ellenőrzése.</translation> + </message> + <message> + <location/> + <source>Toggle the validity check of ending punctuation. If the check fails, a message is shown in the warnings window.</source> + <translation>A mondatvégi írásjelek ellenőrzése. Ha nem, akkor a figyelmeztetések közt jelezve lesz.</translation> + </message> + <message> + <location/> + <source>Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window.</source> + <translation>Az ajánlásokhoz való igazodás ellenőrzése. Ha van ajánlás, mégsincs felhasználva a fordításban, akkor a figyelmeztetések közt jelezve lesz.</translation> + </message> + <message> + <source>Toggle the validity check of place markers.</source> + <translation type="obsolete">A helyfoglalók ellenőrzése.</translation> + </message> + <message> + <location/> + <source>Toggle the validity check of place markers, i.e. whether %1, %2, ... are used consistently in the source text and translation text. If the check fails, a message is shown in the warnings window.</source> + <translation>A helyfoglalók ellenőrzése, vagyis a %1, %2, ... helyfoglalók konzisztensen vannak-e használva a fordításban. Ha nem, akkor a figyelmeztetések közt jelezve lesz.</translation> + </message> + <message> + <location/> + <source>&New Phrase Book...</source> + <translation>Ú&j kifejezéstár...</translation> + </message> + <message> + <location/> + <source>&Open Phrase Book...</source> + <translation>Kifejezéstár meg&nyitása...</translation> + </message> + <message> + <location/> + <source>&Reset Sorting</source> + <translation>Rendezés &visszaállítása</translation> + </message> + <message> + <location/> + <source>Display translation statistics.</source> + <translation>Fordítási statisztikák megjelenítése.</translation> + </message> + <message> + <location/> + <source>&Search And Translate...</source> + <translation>Keresés és &fordítás...</translation> + </message> + <message> + <location/> + <source>Close</source> + <translation>Bezárás</translation> + </message> + <message> + <location/> + <source>&Close All</source> + <translation>Mind&et bezár</translation> + </message> + <message> + <location/> + <source>Ctrl+W</source> + <translation></translation> + </message> + <message> + <location/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-561"/> + <source>&Batch Translation...</source> + <translation>&Kötegelt fordítás...</translation> + </message> + <message> + <location/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1"/> <source>Translation File &Settings...</source> - <translation>Fordítási fájl &beállítások...</translation> + <translation>Fordítási fájl beállítá&sai...</translation> </message> <message> <location/> <source>&Add to Phrase Book</source> - <translation>Társalgási szótárhoz &hozzáadás</translation> + <translation>Hozzá&adás a kifejezéstárhoz</translation> </message> <message> <location/> <source>Ctrl+T</source> - <translation>Ctrl+T</translation> + <translation></translation> </message> <message> <location/> <source>Ctrl+J</source> - <translation>Ctrl+J</translation> + <translation></translation> </message> <message> <location/> <source>Ctrl+Shift+J</source> - <translation>Ctrl+Shift+J</translation> + <translation></translation> </message> <message> <location/> <source>Previous unfinished item</source> - <translation>Előző befejezetlen elem</translation> + <translation>Előző lefordítatlan bejegyzés</translation> </message> <message> <location/> <source>Next unfinished item</source> - <translation>Következő befejezetlen elem</translation> + <translation>Következő lefordítatlan bejegyzés</translation> </message> <message> <location/> <source>Move to previous item</source> - <translation>Az előző befejezetlen elemre mozgás</translation> + <translation>Ugrás az előző bejegyzésre</translation> </message> <message> <location/> <source>Next item</source> - <translation>Következő elem</translation> + <translation>Következő bejegyzés</translation> </message> <message> <location/> <source>Mark item as done and move to the next unfinished item</source> - <translation>Az elem készként jelölése és a következő befejezetlen elemre mozgatás</translation> + <translation>Az aktuális bejegyzés késznek jelölése és ugrás a következő lefordítatlanra</translation> </message> <message> <location/> <source>Copies the source text into the translation field</source> - <translation>A forrás szöveg fordítási szövegbe másolása</translation> + <translation>A forrás szöveg bemásolása a fordításba</translation> </message> <message> <location/> <source>Toggle the validity check of accelerators</source> - <translation>Gyorsítások érvényesség ellenőrzésének kapcsolgatása</translation> + <translation>A gyorsbillentyűk meglétének ellenőrzése</translation> </message> <message> <location/> <source>Toggle the validity check of ending punctuation</source> - <translation>Vég írásjelek érvényesség ellenőrzésének kapcsolgatása</translation> + <translation>A mondatvégi írásjelek ellenőrzése</translation> </message> <message> <location/> <source>Toggle checking that phrase suggestions are used</source> - <translation>A használt társalgási ajánlások ellenőrzésének kapcsolgatása</translation> + <translation>A kifejezéstár ajánlásainak használatának engedélyezése</translation> </message> <message> <location/> <source>Toggle the validity check of place markers</source> - <translation>Hely megjelölők érvényesség vizsgálatának kapcsolgatása</translation> + <translation>A helyfoglalók ellenőrzése</translation> </message> <message> <location/> <source>Create a Qt message file suitable for released applications from the current message file. The filename will automatically be determined from the name of the TS file.</source> - <translation>Egy Qt üzenet fájl létrehozása az aktuális üzenet fájlból, amely megfelelő az alkalmazás kiadásaira. A fájlnév TS fájl nevéből lesz automatikusan meghatározva.</translation> + <translation>Az alkalmazások számára használható Qt üzenetfájl létrehozása a jelenlegi fájlból. A fájlnév a jelenlegi ts fájl nevéből lesz megállapítva.</translation> </message> <message> <location/> <source>Length Variants</source> - <translation>Hossz változatok</translation> + <translation>Hosszú változat</translation> + </message> + <message> + <location/> + <source>Display information about the Qt toolkit by Nokia.</source> + <translation>Információk a Nokia Qt eszközkészletéről.</translation> </message> </context> <context> <name>MessageEditor</name> <message> - <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+42"/> + <location filename="../../../../../home/hron/Projects/localize/qt-l10n-hu/tools/linguist/linguist/messageeditor.cpp" line="+42"/> <source></source> <comment>This is the right panel of the main window.</comment> - <translatorcomment>Ez a fő ablak jobb panelja.</translatorcomment> <translation></translation> </message> <message> - <location line="+30"/> + <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+72"/> <source>Russian</source> <translation>Orosz</translation> </message> @@ -1528,14 +1593,14 @@ Az összes fájl (*)</translation> <translation>Kínai</translation> </message> <message> - <location line="+53"/> + <location line="+47"/> <source>This whole panel allows you to view and edit the translation of some source text.</source> - <translation>Ez az egész pabel engedélyezi néhány forrás szöveg fordításának megtekintését és szerkesztését.</translation> + <translation>Ezen a panelen tekinthetőek meg és szerkeszthetők a fordítások.</translation> </message> <message> - <location line="+18"/> + <location line="+10"/> <source>Source text</source> - <translation>Forrás szöveg</translation> + <translation>Forrásszöveg</translation> </message> <message> <location line="+2"/> @@ -1545,12 +1610,12 @@ Az összes fájl (*)</translation> <message> <location line="+4"/> <source>Source text (Plural)</source> - <translation>Forrás szöveg (Többesszám)</translation> + <translation>Forrásszöveg (többes szám)</translation> </message> <message> <location line="+2"/> <source>This area shows the plural form of the source text.</source> - <translation>Ez a terület mutatja a forrás szöveg többesszámú formáját.</translation> + <translation>Ez a terület mutatja a forrás szöveg többesszámát.</translation> </message> <message> <location line="+4"/> @@ -1560,22 +1625,22 @@ Az összes fájl (*)</translation> <message> <location line="+3"/> <source>This area shows a comment that may guide you, and the context in which the text occurs.</source> - <translation>Ez a terület mutatja a megjegyzéseket, ami segítheti Önt, és az összefüggéseket, hogy melyik szövegben fordul elő.</translation> + <translation>Ez a rész mutatja meg a fejlesztő segítő megjegyzéseit, és a szövegkörnyezet részleteit.</translation> </message> <message> <location line="+59"/> <source>Here you can enter comments for your own use. They have no effect on the translated applications.</source> - <translation>Itt hozzáadhatja a saját megjegyzését saját használatra. Nincsen hatásuk a lefordított alkalmazásokon.</translation> + <translation>Ide lehet beírni a fordításhoz tartozó megjegyzéseket. Ez nincs hatással a lefordított alkalmazásokra.</translation> </message> <message> - <location line="+232"/> + <location line="+234"/> <source>%1 translation (%2)</source> <translation>%1 fordítás (%2)</translation> </message> <message> <location line="+9"/> <source>This is where you can enter or modify the translation of the above source text.</source> - <translation>Ez az a hely, ahol beviheti és módosíthatja a fentebb található forrás szöveg fordítását.</translation> + <translation>Itt írható be, vagy módosítható a forrás szöveg fordítása.</translation> </message> <message> <location line="+5"/> @@ -1585,62 +1650,54 @@ Az összes fájl (*)</translation> <message> <location line="+1"/> <source>%1 translator comments</source> - <translation>%1 fordító megjegyzések</translation> + <translation>%1 fordítói megjegyzés</translation> </message> <message> <location line="+157"/> <source>'%1' Line: %2</source> - <translation>'%1' + <translation>'%1' Sor: %2</translation> </message> </context> <context> <name>MessageModel</name> <message> - <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+832"/> + <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+839"/> <source>Completion status for %1</source> - <translation>%1 elkészítési státusza</translation> + <translation>Készültségi állapot %1 nyelvhez</translation> </message> <message> <location line="+15"/> <source><file header></source> - <translation><file header></translation> + <translation><fájl fejléc></translation> </message> <message> <location line="+2"/> <source><context comment></source> - <translation><context comment></translation> + <translation><környezet megjegyzés></translation> </message> <message> <location line="+71"/> <source><unnamed context></source> - <translation><unnamed context></translation> + <translation><névtelen környezet></translation> </message> </context> <context> <name>MsgEdit</name> <message> - <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-614"/> + <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-600"/> <source></source> <comment>This is the right panel of the main window.</comment> - <translatorcomment>Ez a fő ablak jobb panelja.</translatorcomment> <translation></translation> </message> </context> <context> <name>PhraseBookBox</name> <message> - <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+12"/> - <source></source> - <comment>Go to Phrase > Edit Phrase Book... The dialog that pops up is a PhraseBookBox.</comment> - <translatorcomment>Társalgás -> Társalgási szótár szerkesztése... A felbukkanó ablak egy TársalgásiSzótárDoboz.</translatorcomment> - <translation></translation> - </message> - <message> - <location line="+54"/> + <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+66"/> <source>(New Entry)</source> - <translation>(Új bevitel)</translation> + <translation>(Új bejegyzés)</translation> </message> <message> <location line="+3"/> @@ -1655,17 +1712,12 @@ Sor: %2</translation> <message> <location line="+1"/> <source>Cannot save phrase book '%1'.</source> - <translation>Nem lehet elmenteni a(z) '%1' társalgási szótárat.</translation> + <translation>Nem lehet ezt a kifejezéstárat elmenteni: '%1'.</translation> </message> <message> <location filename="../tools/linguist/linguist/phrasebookbox.ui"/> <source>Edit Phrase Book</source> - <translation>Társalgási szótár szerkesztése</translation> - </message> - <message> - <location/> - <source>This window allows you to add, modify, or delete entries in a phrase book.</source> - <translation>Ez az ablak engedélyezi új bevitelek hozzáadását, módosítását, vagy törlését egy társalgási szótárban.</translation> + <translation>Kifejezéstár szerkesztése</translation> </message> <message> <location/> @@ -1675,22 +1727,22 @@ Sor: %2</translation> <message> <location/> <source>This is the phrase in the target language corresponding to the source phrase.</source> - <translation>Ez a forrás társalgás megfelelője a cél nyelvben.</translation> + <translation>A forrás nyelvi kifejezés célnyelvi megfelelője.</translation> </message> <message> <location/> <source>S&ource phrase:</source> - <translation>&Forrás társalgás:</translation> + <translation>F&orrás kifejezés:</translation> </message> <message> <location/> <source>This is a definition for the source phrase.</source> - <translation>Ez egy forrás fordítás definíció.</translation> + <translation>Ez a forráskifejezés meghatározása.</translation> </message> <message> <location/> <source>This is the phrase in the source language.</source> - <translation>Ez egy társalgás a forrás nyelvben.</translation> + <translation>Ez a forrás nyelvi kifejezés.</translation> </message> <message> <location/> @@ -1700,22 +1752,37 @@ Sor: %2</translation> <message> <location/> <source>Click here to add the phrase to the phrase book.</source> - <translation>Kattintson ide a társalgás hozzáadásához a társalgási könyvben.</translation> + <translation>Kattintson ide a kifejezés kifejezéstárba vételéhez.</translation> + </message> + <message> + <location/> + <source>&Save</source> + <translation>Menté&s</translation> + </message> + <message> + <location/> + <source>Click here to save the changes made.</source> + <translation>Kattintson ide a változások mentéséhez.</translation> + </message> + <message> + <location/> + <source>This window allows you to add, modify, or delete entries in a phrase book.</source> + <translation>Ebben az ablakban nyílik lehetőség a kifejezéstár bővítésére, szűkítésére és módosítására.</translation> </message> <message> <location/> <source>&New Entry</source> - <translation>&Új bevitel</translation> + <translation>Ú&j bejegyzés</translation> </message> <message> <location/> <source>Click here to remove the entry from the phrase book.</source> - <translation>Kattintson ide a bevitel társalgási könyvből való eltávolításához.</translation> + <translation>Kattintson ide a kifejezés törléséhez a kifejezéstárból.</translation> </message> <message> <location/> <source>&Remove Entry</source> - <translation>Bevitel &eltávolítása</translation> + <translation>Bejegyzés tö&rlése</translation> </message> <message> <location/> @@ -1724,13 +1791,8 @@ Sor: %2</translation> </message> <message> <location/> - <source>Click here to save the changes made.</source> - <translation>Kattintson ide a változtatások elmentéséhez.</translation> - </message> - <message> - <location/> - <source>&Save</source> - <translation>&Mentés</translation> + <source>Close</source> + <translation>Bezárás</translation> </message> <message> <location/> @@ -1738,9 +1800,10 @@ Sor: %2</translation> <translation>Kattintson ide az ablak bezárásához.</translation> </message> <message> - <location/> - <source>Close</source> - <translation>Bezárás</translation> + <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-146"/> + <source></source> + <comment>Go to Phrase > Edit Phrase Book... The dialog that pops up is a PhraseBookBox.</comment> + <translation></translation> </message> </context> <context> @@ -1748,7 +1811,7 @@ Sor: %2</translation> <message> <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+117"/> <source>Source phrase</source> - <translation>Forrás társalgás</translation> + <translation>Forrás kifejezés</translation> </message> <message> <location line="+2"/> @@ -1776,12 +1839,12 @@ Sor: %2</translation> <message> <location line="+113"/> <source>Guess (%1)</source> - <translation>Feltételezés (%1)</translation> + <translation>Tipp (%1)</translation> </message> <message> <location line="+2"/> <source>Guess</source> - <translation>Feltételezés</translation> + <translation>Tipp</translation> </message> </context> <context> @@ -1789,20 +1852,21 @@ Sor: %2</translation> <message> <location filename="../tools/linguist/shared/qm.cpp" line="+12"/> <source>Compiled Qt translations</source> + <translatorcomment>Released files (*.qm)</translatorcomment> <translation>Lefordított Qt fordítások</translation> </message> <message> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1280"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1302"/> <source>Translation files (%1);;</source> <translation>Fordítási fájlok (%1);;</translation> </message> <message> <location line="+5"/> <source>All files (*)</source> - <translation>Fájlok hozzáadása ( *)</translation> + <translation>Minden fájl (*)</translation> </message> <message> - <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1127"/> + <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1134"/> <location line="+27"/> <location line="+67"/> <location line="+39"/> @@ -1813,34 +1877,59 @@ Sor: %2</translation> <translation>Qt Linguist</translation> </message> <message> - <location filename="../tools/linguist/shared/po.cpp" line="+658"/> + <source>C++ source files</source> + <translation type="obsolete">C++ forrásfájlok</translation> + </message> + <message> + <source>Java source files</source> + <translation type="obsolete">Java forrásfájlok</translation> + </message> + <message> + <location filename="../tools/linguist/shared/po.cpp" line="+817"/> <source>GNU Gettext localization files</source> <translation>GNU Gettext lokalizációs fájlok</translation> </message> <message> + <location line="+7"/> + <source>GNU Gettext localization template files</source> + <translation>GNU Gettext lokalizációs sablonfájlok</translation> + </message> + <message> + <source>Qt Script source files</source> + <translation type="obsolete">Qt szkript fájlok</translation> + </message> + <message> <location filename="../tools/linguist/shared/ts.cpp" line="+752"/> <source>Qt translation sources (format 1.1)</source> - <translation>Qt fordítási forrása (1.1 formátum)</translation> + <translation>Qt fordítási fájlok (1.1-es formátum)</translation> </message> <message> <location line="+8"/> <source>Qt translation sources (format 2.0)</source> - <translation>Qt fordítás források (2.0 formátum)</translation> + <translation>Qt fordítási fájlok (2.0-ás formátum)</translation> </message> <message> <location line="+9"/> <source>Qt translation sources (latest format)</source> - <translation>Qt fordítási források (legutolsó formátum)</translation> + <translation>Qt fordítási fájlok (legújabb formátum)</translation> </message> <message> - <location filename="../tools/linguist/shared/xliff.cpp" line="+827"/> + <source>Qt Designer form files</source> + <translation type="obsolete">Qt Designer űrlapfájlok</translation> + </message> + <message> + <source>Qt Jambi form files</source> + <translation type="obsolete">Qt Jambi űrlapfájlok</translation> + </message> + <message> + <location filename="../tools/linguist/shared/xliff.cpp" line="+829"/> <source>XLIFF localization files</source> <translation>XLIFF lokalizációs fájlok</translation> </message> <message> - <location filename="../tools/linguist/shared/qph.cpp" line="+183"/> + <location filename="../tools/linguist/shared/qph.cpp" line="+195"/> <source>Qt Linguist 'Phrase Book'</source> - <translation>Qt Linguist 'Társalgási Könyv'</translation> + <translation>Qt Linguist 'Kifejezéstár'</translation> </message> </context> <context> @@ -1848,17 +1937,17 @@ Sor: %2</translation> <message> <location filename="../tools/linguist/linguist/sourcecodeview.cpp" line="+70"/> <source><i>Source code not available</i></source> - <translation><i>A forrás kód nem elérhető</i></translation> + <translation><i>A forráskód nem elérhető</i></translation> </message> <message> <location line="+33"/> <source><i>File %1 not available</i></source> - <translation><i>A(z) %1 fájl nem elérhető</i></translation> + <translation><i>A fájl (%1) nem elérhető</i></translation> </message> <message> <location line="+5"/> <source><i>File %1 not readable</i></source> - <translation><i>A(z) %1 fájl nem olvasható</i></translation> + <translation><i>A fájl (%1) nem olvasható</i></translation> </message> </context> <context> @@ -1886,17 +1975,17 @@ Sor: %2</translation> <message> <location/> <source>Words:</source> - <translation>Szavak:</translation> + <translation>Szavak száma:</translation> </message> <message> <location/> <source>Characters:</source> - <translation>Karakterek:</translation> + <translation>Karakterek száma:</translation> </message> <message> <location/> <source>Characters (with spaces):</source> - <translation>Karakterek (szóközökkel):</translation> + <translation>Karakterek száma (szóközökkel):</translation> </message> <message> <location/> @@ -1905,16 +1994,25 @@ Sor: %2</translation> </message> </context> <context> + <name>TrWindow</name> + <message> + <location filename="../tools/linguist/linguist/trwindow.cpp" line="+14"/> + <source></source> + <comment>This is the application's main window.</comment> + <translation></translation> + </message> +</context> +<context> <name>TranslateDialog</name> <message> <location filename="../tools/linguist/linguist/translatedialog.ui"/> <source>This window allows you to search for some text in the translation source file.</source> - <translation>Ez az ablak engedélyezi, hogy rákeressen néhány szövegre a fordítási forrás fájlban.</translation> + <translation>Ebben az ablakban kereshetsz a fordítás forrásfájljában.</translation> </message> <message> <location/> <source>Type in the text to search for.</source> - <translation>Gépelje be a keresni kívánt szöveget.</translation> + <translation>Írd be a keresett szöveget.</translation> </message> <message> <location/> @@ -1924,32 +2022,32 @@ Sor: %2</translation> <message> <location/> <source>&Translate to:</source> - <translation>&Fordítás erre:</translation> + <translation>Fordí&tása:</translation> </message> <message> <location/> <source>Search options</source> - <translation>Keresés opciók</translation> + <translation>Keresési opciók</translation> </message> <message> <location/> <source>Texts such as 'TeX' and 'tex' are considered as different when checked.</source> - <translation>'TeX' és 'text' szövegek különbözően kezelése bejelöléskor.</translation> + <translation>Kis- és nagybetű érzékeny keresés.</translation> </message> <message> <location/> <source>Match &case</source> - <translation>Megegyező &eset</translation> + <translation>Kis/nagy&betű</translation> </message> <message> <location/> <source>Mark new translation as &finished</source> - <translation>Új fordítások &befejezettként jelölése</translation> + <translation>Új fordítás megjelölése be&fejezettként</translation> </message> <message> <location/> <source>Click here to find the next occurrence of the text you typed in.</source> - <translation>Kattintson ide a begépelt szöveg következő előfordulásának megkereséséhez.</translation> + <translation>Kattints ide a megadott szöveg következő előfordulásának megkereséséhez.</translation> </message> <message> <location/> @@ -1964,31 +2062,31 @@ Sor: %2</translation> <message> <location/> <source>Translate All</source> - <translation>Az összes fordítása</translation> + <translation>Összes fordítása</translation> </message> <message> <location/> <source>Click here to close this window.</source> - <translation>Kattintson ide az ablak bezárásához.</translation> + <translation>Kattints ide az ablak bezárásához.</translation> </message> <message> <location/> <source>Cancel</source> - <translation>Mégse</translation> + <translation>Mégsem</translation> </message> </context> <context> <name>TranslationSettingsDialog</name> <message> - <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+68"/> + <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+93"/> <source>Any Country</source> - <translation>Bármeny ország</translation> + <translation>Bármely ország</translation> </message> <message> - <location line="+11"/> + <location line="-22"/> <location line="+8"/> <source>Settings for '%1' - Qt Linguist</source> - <translation>'%1'-re állítás - Qt Linguist</translation> + <translation>'%1' beállításai - Qt Linguist</translation> </message> <message> <location filename="../tools/linguist/linguist/translationsettings.ui"/> @@ -2003,7 +2101,7 @@ Sor: %2</translation> <message> <location/> <source>Country/Region</source> - <translation>OrszágRégió</translation> + <translation>Ország/Régió</translation> </message> <message> <location/> diff --git a/translations/linguist_ru.ts b/translations/linguist_ru.ts index 3f26c49..625a0f1 100644 --- a/translations/linguist_ru.ts +++ b/translations/linguist_ru.ts @@ -290,19 +290,19 @@ Will assume a single universal form.</source> <location filename="../tools/linguist/linguist/messageeditorwidgets.cpp" line="+302"/> <source>Alt+Delete</source> <extracomment>translate, but don't change</extracomment> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Shift+Alt+Insert</source> <extracomment>translate, but don't change</extracomment> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Alt+Insert</source> <extracomment>translate, but don't change</extracomment> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+131"/> @@ -312,7 +312,7 @@ Will assume a single universal form.</source> <message> <location line="+1"/> <source>Delete non-empty length variant?</source> - <translation>Удалить непустой вариант длины?</translation> + <translation>Удалить вариант перевода?</translation> </message> </context> <context> @@ -320,7 +320,7 @@ Will assume a single universal form.</source> <message numerus="yes"> <location filename="../tools/linguist/shared/qm.cpp" line="+763"/> <source>Dropped %n message(s) which had no ID.</source> - <translation type="unfinished"> + <translation> <numerusform>Удалено %n сообщение, у которого не было ID.</numerusform> <numerusform>Удалено %n сообщения, у которых не было ID.</numerusform> <numerusform>Удалено %n сообщений, у которых не было ID.</numerusform> @@ -329,7 +329,7 @@ Will assume a single universal form.</source> <message numerus="yes"> <location line="+4"/> <source>Excess context/disambiguation dropped from %n message(s).</source> - <translation type="unfinished"> + <translation> <numerusform>Удалён лишний контекст из %n сообщения.</numerusform> <numerusform>Удалён лишний контекст из %n сообщений.</numerusform> <numerusform>Удалён лишний контекст из %n сообщений.</numerusform> @@ -481,12 +481,12 @@ Skip loading the first named file?</source> <message> <location filename="../tools/linguist/linguist/mainwindow.ui"/> <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+15"/> - <location line="+1165"/> + <location line="+1187"/> <source>Release</source> <translation>Скомпилировать</translation> </message> <message> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1164"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1186"/> <source>Qt message files for released applications (*.qm) All files (*)</source> <translation>Скомпилированные файлы перевода для приложений Qt (*.qm) @@ -553,7 +553,7 @@ All files (*)</source> <location line="+34"/> <location line="+24"/> <location line="+22"/> - <location line="+516"/> + <location line="+538"/> <location line="+1"/> <location line="+274"/> <location line="+40"/> @@ -562,7 +562,7 @@ All files (*)</source> <translation>Qt Linguist</translation> </message> <message> - <location line="-1198"/> + <location line="-1220"/> <location line="+102"/> <source>Cannot find the string '%1'.</source> <translation>Не удалось найти строку '%1'.</translation> @@ -693,7 +693,7 @@ All files (*)</source> <translation>Непереведённых записей не осталось.</translation> </message> <message> - <location line="+176"/> + <location line="+198"/> <source>&Window</source> <translation>&Окно</translation> </message> @@ -705,7 +705,7 @@ All files (*)</source> <message> <location line="+1"/> <source>Ctrl+M</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+12"/> @@ -969,7 +969,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+O</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -984,7 +984,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+Q</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1024,7 +1024,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+P</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1039,7 +1039,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+Z</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1054,7 +1054,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+Y</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1069,7 +1069,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+X</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1084,7 +1084,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+C</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1099,7 +1099,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+V</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1114,7 +1114,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+A</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1129,7 +1129,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+F</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1144,7 +1144,7 @@ All files (*)</source> <message> <location/> <source>F3</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1159,7 +1159,7 @@ All files (*)</source> <message> <location/> <source>Length Variants</source> - <translation>Варианты длины</translation> + <translation>Варианты перевода</translation> </message> <message> <location/> @@ -1169,7 +1169,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+K</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1184,7 +1184,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+J</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1199,7 +1199,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+Shift+K</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1214,7 +1214,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+Shift+J</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1239,7 +1239,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+B</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1294,7 +1294,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+N</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1309,7 +1309,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+H</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1349,7 +1349,7 @@ All files (*)</source> <message> <location/> <source>F1</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1363,11 +1363,6 @@ All files (*)</source> </message> <message> <location/> - <source>Display information about the Qt toolkit by Trolltech.</source> - <translation>Показать информацию об инструментарии Qt от Nokia.</translation> - </message> - <message> - <location/> <source>&What's This?</source> <translation>&Что это?</translation> </message> @@ -1384,7 +1379,7 @@ All files (*)</source> <message> <location/> <source>Shift+F1</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1414,7 +1409,7 @@ All files (*)</source> <message> <location/> <source>F5</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1424,7 +1419,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+T</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1439,7 +1434,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+S</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1454,7 +1449,7 @@ All files (*)</source> <message> <location/> <source>Ctrl+W</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location/> @@ -1506,6 +1501,11 @@ All files (*)</source> <source>Toggle the validity check of place markers</source> <translation>Переключение проверки маркеров форматирования</translation> </message> + <message> + <location/> + <source>Display information about the Qt toolkit by Nokia.</source> + <translation>Показать информацию об инструментарии Qt от Nokia.</translation> + </message> </context> <context> <name>MessageEditor</name> @@ -1795,7 +1795,7 @@ Line: %2</source> <context> <name>QObject</name> <message> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1842"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1864"/> <source>Translation files (%1);;</source> <translation>Файлы перевода (%1);;</translation> </message> @@ -1816,11 +1816,16 @@ Line: %2</source> <translation>Qt Linguist</translation> </message> <message> - <location filename="../tools/linguist/shared/po.cpp" line="+658"/> + <location filename="../tools/linguist/shared/po.cpp" line="+817"/> <source>GNU Gettext localization files</source> <translation>Файлы локализации GNU Gettext</translation> </message> <message> + <location line="+7"/> + <source>GNU Gettext localization template files</source> + <translation>Файлы шаблонов локализации GNU Gettext</translation> + </message> + <message> <location filename="../tools/linguist/shared/qm.cpp" line="+12"/> <source>Compiled Qt translations</source> <translation>Скомпилированные переводы Qt</translation> @@ -1846,7 +1851,7 @@ Line: %2</source> <translation>Исходные файлы перевода Qt (последний формат)</translation> </message> <message> - <location filename="../tools/linguist/shared/xliff.cpp" line="+827"/> + <location filename="../tools/linguist/shared/xliff.cpp" line="+829"/> <source>XLIFF localization files</source> <translation>Файлы локализации XLIFF</translation> </message> diff --git a/translations/qt_help_hu.ts b/translations/qt_help_hu.ts index 3fbe0e9..4107a2e 100644 --- a/translations/qt_help_hu.ts +++ b/translations/qt_help_hu.ts @@ -4,85 +4,108 @@ <context> <name>QCLuceneResultWidget</name> <message> + <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+110"/> <source>Search Results</source> - <translation>Keresési eredmény</translation> + <translation>Keresési eredmények</translation> </message> <message> + <location line="+7"/> <source>Note:</source> + <translatorcomment>CHECKIT</translatorcomment> <translation>Megjegyzés:</translation> </message> <message> + <location line="+1"/> <source>The search results may not be complete since the documentation is still being indexed!</source> - <translation>A keresési eredmény lehet, hogy nem teljes, mivel a dokumentáció még mindig indexelvan van!</translation> + <translation>A keresés eredménye hiányos lehet, mert a dokumentáció indexelés alatt van!</translation> </message> <message> + <location line="+11"/> <source>Your search did not match any documents.</source> - <translation>A keresési feltételeknek megfelően nincs találat.</translation> + <translation>Nincs a keresési feltételeknek megfelelő dokumentum.</translation> </message> <message> + <location line="+4"/> <source>(The reason for this might be that the documentation is still being indexed.)</source> - <translation>(Ennek az oka az lehet, hogy a dokumentáció még mindig indexelve van.)</translation> + <translation>(Ez amiatt lehet, hogy a dokumentáció indexelése még nincs befejezve.)</translation> </message> </context> <context> <name>QHelpCollectionHandler</name> <message> + <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/> <source>The collection file '%1' is not set up yet!</source> - <translation>A(z) '%1'gyűjtemény fájl még nincs beállítva!</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation>A(z) '%1'gyűjteményfájl még nincs beállítva!</translation> </message> <message> + <location line="+23"/> <source>Cannot load sqlite database driver!</source> - <translation>Nem lehet betölteni az sqlite adatbázis vezérlőt!</translation> + <translation>Az sqlite adatbázisvezérlő nem tölthető be!</translation> </message> <message> + <location line="+11"/> + <location line="+52"/> <source>Cannot open collection file: %1</source> <translation>Nem lehet megnyitni a gyűjtemény fájlt: %1</translation> </message> <message> + <location line="-40"/> <source>Cannot create tables in file %1!</source> - <translation>Nem lehet lehet a(z) %1 fájlban táblákat létrehozni!</translation> + <translation>Nem sikerült táblákat létrehozni a(z) %1 fájlban!</translation> </message> <message> + <location line="+16"/> <source>The collection file '%1' already exists!</source> <translation>A(z) '%1' gyűjtemény fájl már létezik!</translation> </message> <message> + <location line="+151"/> <source>Unknown filter '%1'!</source> - <translation>Ismeretlen szűrő '%1'!</translation> + <translation>Ismeretlen szűrő: '%1'!</translation> </message> <message> + <location line="+103"/> <source>Invalid documentation file '%1'!</source> <translation>Érvénytelen dokumentációs fájl '%1'!</translation> </message> <message> + <location line="+167"/> <source>Cannot register namespace '%1'!</source> - <translation>Nem lehet regisztrálni a(z) '%1' névteret!</translation> + <translation>A(z) '%1' névtér regisztrálása nem sikerült!</translation> </message> <message> + <location line="+24"/> <source>Cannot open database '%1' to optimize!</source> <translation>Nem lehet optimalizálásra megnyitni a(z) '%1' adatbázist!</translation> </message> <message> + <location line="-439"/> <source>Cannot create directory: %1</source> - <translation>Nem lehet a könyvtárat létrehozni: %1</translation> + <translation>A könyvtár létrehozása sikertelen: %1</translation> </message> <message> + <location line="+26"/> <source>Cannot copy collection file: %1</source> - <translation>Nem lehet a gyűjtemény fájlt másolni: %1</translation> + <translation>A gyűjtemény fájl másolása sikertelen: %1</translation> </message> <message> + <location line="+172"/> <source>Cannot register filter %1!</source> - <translation>Nem lehet regisztrálni a(z) %1 szűrőt!</translation> + <translation>A(z) %1 szűrő regisztrálása sikertelen!</translation> </message> <message> + <location line="+44"/> <source>Cannot open documentation file %1!</source> - <translation>Nem lehet megnyitni a(z) %1 dokumentációs fájlt!</translation> + <translation>A(z) %1 dokumentációs fájl megnyitása sikertelen!</translation> </message> <message> + <location line="+40"/> <source>The namespace %1 was not registered!</source> <translation>A(z) %1 névteret nem regisztrálták!</translation> </message> <message> + <location line="+120"/> <source>Namespace %1 already exists!</source> <translation>A(z) %1 névtér már létezik!</translation> </message> @@ -90,209 +113,333 @@ <context> <name>QHelpDBReader</name> <message> + <location filename="../tools/assistant/lib/qhelpdbreader.cpp" line="+98"/> <source>Cannot open database '%1' '%2': %3</source> + <extracomment>The placeholders are: %1 - The name of the database which cannot be opened %2 - The unique id for the connection %3 - The actual error string</extracomment> <translation>Nem lehet megnyitni az adatbázist '%1' '%2': %3</translation> </message> </context> <context> <name>QHelpEngineCore</name> <message> + <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+122"/> + <source>Cannot open documentation file %1: %2!</source> + <translation>Nem lehet megnyitni a(z) %1 fájlt: %2!</translation> + </message> + <message> + <location line="+404"/> <source>The specified namespace does not exist!</source> - <translation>A meghatározott névtér nem létezik!</translation> + <translation>A megadott névtér nem létezik!</translation> </message> </context> <context> <name>QHelpEngineCorePrivate</name> <message> <source>Cannot open documentation file %1: %2!</source> - <translation>Nem lehet megnyitni a(z) %1 fájlt: %2!</translation> + <translation type="obsolete">Nem lehet megnyitni a(z) %1 fájlt: %2!</translation> </message> </context> <context> <name>QHelpGenerator</name> <message> + <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+158"/> <source>Invalid help data!</source> - <translation>Érvénytelen segítség adat!</translation> + <translation>Érvénytelen súgó adat!</translation> </message> <message> + <location line="+6"/> <source>No output file name specified!</source> - <translation>Nincsen kimeneti fájl meghatározva!</translation> + <translation>Nincsen kimeneti fájl megadva!</translation> </message> <message> + <location line="+14"/> <source>Building up file structure...</source> <translation>Fájl struktúra felépítése...</translation> </message> <message> + <location line="-7"/> <source>The file %1 cannot be overwritten!</source> - <translation>Nem lehet felülírni a(z) %1 fájlt!</translation> + <translation>A(z) %1 fájl felülírása sikertelen!</translation> </message> <message> + <location line="+18"/> <source>Cannot open data base file %1!</source> - <translation>Nem lehet megnyitni a(z) %1 adatbázis fájlt!</translation> + <translation>A(z) %1 adatbázis fájl megnyitása sikertelen!</translation> </message> <message> + <location line="+14"/> <source>Cannot register namespace %1!</source> <translation>Nem lehet regisztrálni a(z) %1 névteret!</translation> </message> <message> + <location line="+6"/> <source>Insert custom filters...</source> - <translation>Szokásos szűrő beszúrása...</translation> + <translation>Egyedi szűrő hozzáadása...</translation> </message> <message> + <location line="+12"/> <source>Insert help data for filter section (%1 of %2)...</source> - <translation>Segítség adatok beszúrása a szűrő szegmens számára (%1 %2-től)...</translation> + <translation type="unfinished"></translation> </message> <message> + <location line="+18"/> <source>Documentation successfully generated.</source> - <translation>A dokumentáció legenerálása sikeresen lezajlott.</translation> + <translation>A dokumentáció generálása sikerült.</translation> </message> <message> + <location line="+76"/> <source>Some tables already exist!</source> <translation>Néhány tábla már létezik!</translation> </message> <message> + <location line="+61"/> <source>Cannot create tables!</source> - <translation>Nem lehet a táblákat létrehozni!</translation> + <translation>Nem lehet táblákat létrehozni!</translation> </message> <message> + <location line="+86"/> <source>Cannot register virtual folder!</source> - <translation>Nem lehet registrálni a virtuális dossziét!</translation> + <translation>Nem lehet regisztrálni virtuális mappát!</translation> </message> <message> + <location line="+10"/> <source>Insert files...</source> <translation>Fájlok beszúrása...</translation> </message> <message> + <location line="+42"/> <source>The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it.</source> - <translation>A(z) %1 hivatkozott fájlnak a(z) (%2) alkönyvtárán belül kell elhelyezkednie. Ennek kihagyása.</translation> + <translation>A(z) %1 hivatkozott fájlnak a(z) (%2) alkönyvtárán belül kell elhelyezkednie. A fájl kihagyása.</translation> </message> <message> + <location line="+7"/> <source>The file %1 does not exist! Skipping it.</source> - <translation>A(z) %1 fájl nem létezik! Ennek kihagyása.</translation> + <translation>A(z) %1 fájl nem létezik! A fájl kihagyása.</translation> </message> <message> + <location line="+6"/> <source>Cannot open file %1! Skipping it.</source> - <translation>Nem lehet megnyitni a(z) %1 fájlt! Ennek kihagyása.</translation> + <translation>Nem lehet megnyitni a(z) %1 fájlt! A fájl kihagyása.</translation> </message> <message> + <location line="+133"/> <source>The filter %1 is already registered!</source> <translation>A(z) %1 szűrő már regisztrálva van!</translation> </message> <message> + <location line="+5"/> <source>Cannot register filter %1!</source> - <translation>Nem lehet regisztrálni a(z) %1 szűrőt!</translation> + <translation>Az) %1 szűrő regisztrálása sikertelen!</translation> </message> <message> + <location line="+24"/> <source>Insert indices...</source> <translation>Indexek beszúrása...</translation> </message> <message> + <location line="+91"/> <source>Insert contents...</source> <translation>Tartalom beszúrása...</translation> </message> <message> + <location line="+8"/> <source>Cannot insert contents!</source> - <translation>Nem lehet beszúrni a tartalmat!</translation> + <translation>A tartalom beszúrása sikertelen!</translation> </message> <message> + <location line="+12"/> <source>Cannot register contents!</source> - <translation>Nem lehet regisztrálni a tartalmat!</translation> + <translation>A tartalom regisztrálása sikertelen!</translation> + </message> + <message> + <location line="+56"/> + <source>File '%1' does not exist.</source> + <translation>A(z) '%1' fájl nem létezik.</translation> + </message> + <message> + <location line="+19"/> + <source>File '%1' cannot be opened.</source> + <translation>A(z) '%1' nem nyitható meg.</translation> + </message> + <message> + <location line="+19"/> + <source>File '%1' contains an invalid link to file '%2'</source> + <translation>A(z) '%1' érvénytelen hivatkozást tartalmaz a(z) '%2' fájlra</translation> + </message> + <message> + <location line="+9"/> + <source>Invalid links in HTML files.</source> + <translation>Érvénytelen hivatkozások a HTML fájlokban.</translation> + </message> +</context> +<context> + <name>QHelpProject</name> + <message> + <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+88"/> + <source>Unknown token.</source> + <translation>Ismeretlen token.</translation> + </message> + <message> + <location line="+13"/> + <source>Unknown token. Expected "QtHelpProject"!</source> + <translation>Ismeretlen token. A várt: "QtHelpProject"!</translation> + </message> + <message> + <location line="+6"/> + <source>Error in line %1: %2</source> + <translation>Hiba a(z) %1. sorban: %2</translation> + </message> + <message> + <source>A virtual folder must not contain a '/' character!</source> + <translation type="obsolete">A virtuális mappa neve nem tartalmazhat '/' karaktert!</translation> + </message> + <message> + <source>A namespace must not contain a '/' character!</source> + <translation type="obsolete">A névtér neve nem tartalmazhat '/' karaktert!</translation> + </message> + <message> + <location line="+14"/> + <source>Virtual folder has invalid syntax.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Namespace has invalid syntax.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+19"/> + <source>Missing namespace in QtHelpProject.</source> + <translation>Hiányzó névtér a QtHelpProject-ben.</translation> + </message> + <message> + <location line="+3"/> + <source>Missing virtual folder in QtHelpProject</source> + <translation>Hiányzó virtuális mappa a QtHelpProject-ben</translation> + </message> + <message> + <location line="+89"/> + <source>Missing attribute in keyword at line %1.</source> + <translation>Hiányzó attirbútum a kulcsszóban a(z) %1 sorban.</translation> + </message> + <message> + <location line="+141"/> + <source>The input file %1 could not be opened!</source> + <translation>A(z) %1 bemeneti fájl megnyitása sikertelen!</translation> </message> </context> <context> <name>QHelpSearchQueryWidget</name> <message> + <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+124"/> <source>Search for:</source> - <translation>Keresés erre:</translation> + <translation>Ezt keresi:</translation> </message> <message> + <location line="+1"/> <source>Previous search</source> - <translation>Előző keresése</translation> + <translation>Előző találat</translation> </message> <message> + <location line="+1"/> <source>Next search</source> - <translation>Következő keresése</translation> + <translation>Következő találat</translation> </message> <message> + <location line="+1"/> <source>Search</source> <translation>Keresés</translation> </message> <message> + <location line="+2"/> <source>Advanced search</source> <translation>Összetett keresés</translation> </message> <message> + <location line="+1"/> <source>words <B>similar</B> to:</source> - <translation>szavak <B>hasonlóak</B> ehhez:</translation> + <translation>szavak, melyek <B>hasonlóak</B> ehhez:</translation> </message> <message> + <location line="+1"/> <source><B>without</B> the words:</source> <translation>Ezen szavak <B>nélkül</B>:</translation> </message> <message> + <location line="+1"/> <source>with <B>exact phrase</B>:</source> <translation><B>Pontos kifejezés</B>:</translation> </message> <message> + <location line="+1"/> <source>with <B>all</B> of the words:</source> <translation>Ezen szavak<B>mindegyikével</B>:</translation> </message> <message> + <location line="+1"/> <source>with <B>at least one</B> of the words:</source> <translation><B>Legalább egy</B> a következő szavak közül:</translation> </message> </context> <context> <name>QHelpSearchResultWidget</name> + <message numerus="yes"> + <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+174"/> + <source>%1 - %2 of %n Hits</source> + <translation> + <numerusform>%1 - %2. a(z) %n találatból</numerusform> + </translation> + </message> <message> + <location line="+61"/> <source>0 - 0 of 0 Hits</source> - <translation>0 találat 0 - 0</translation> + <translation>0 - 0. a 0 találatból</translation> </message> </context> <context> <name>QHelpSearchResultWidgetPrivate</name> <message> <source>%1 - %2 of %3 Hits</source> - <translation>%3 Találat %1 - %2</translation> + <translation type="obsolete">%1 - %2. a(z) %3 találatból</translation> </message> </context> <context> <name>QObject</name> <message> <source>Unknown token.</source> - <translation>Ismeretlen jel.</translation> + <translation type="obsolete">Ismeretlen token.</translation> </message> <message> <source>Unknown token. Expected "QtHelpProject"!</source> - <translation>Ismeretlen hel. "QtSegítségProjekt" várt!</translation> + <translation type="obsolete">Ismeretlen token. "QtHelpProject" várt!</translation> </message> <message> <source>Error in line %1: %2</source> - <translation>Hiba a(z) %1 sorban: %2</translation> + <translation type="obsolete">Hiba a(z) %1. sorban: %2</translation> </message> <message> <source>A virtual folder must not contain a '/' character!</source> - <translation>A virtuális dosszié nem tartalmazhat '/' karaktert!</translation> + <translation type="obsolete">A virtuális mappa neve nem tartalmazhat '/' karaktert!</translation> </message> <message> <source>A namespace must not contain a '/' character!</source> - <translation>A névtér nem tartalmazhat '/' karaktert!</translation> + <translation type="obsolete">A névtér neve nem tartalmazhat '/' karaktert!</translation> </message> <message> <source>Missing namespace in QtHelpProject.</source> - <translation>Hiányzó névtér a QtSegítségProjektben.</translation> + <translation type="obsolete">Hiányzó névtér a QtHelpProject-ben.</translation> </message> <message> <source>Missing virtual folder in QtHelpProject</source> - <translation>Hiányzó virtuális dosszié a QtSegítségProjektben</translation> + <translation type="obsolete">Hiányzó virtuális mappa a QtHelpProject-ben.</translation> </message> <message> <source>Missing attribute in keyword at line %1.</source> - <translation>Hiányzó attirbútum a kulcsszóban a(z) %1 sorban.</translation> + <translation type="obsolete">Hiányzó attirbútum a kulcsszóban a(z) %1 sorban.</translation> </message> <message> <source>The input file %1 could not be opened!</source> - <translation>Nem sikerült megnyitni a(z) %1 bemeneti fájlt!</translation> + <translation type="obsolete">A(z) %1 bemeneti fájl megnyitása sikertelen!</translation> </message> </context> </TS> diff --git a/translations/qt_help_ru.ts b/translations/qt_help_ru.ts index 341cf19..f1aa0fa 100644 --- a/translations/qt_help_ru.ts +++ b/translations/qt_help_ru.ts @@ -34,7 +34,7 @@ <message> <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/> <source>The collection file '%1' is not set up yet!</source> - <translation type="unfinished">Файл набора '%1' ещё не установлен!</translation> + <translation>Файл коллекции справки '%1' ещё не установлен!</translation> </message> <message> <location line="+23"/> @@ -43,9 +43,9 @@ </message> <message> <location line="+11"/> - <location line="+49"/> + <location line="+52"/> <source>Cannot open collection file: %1</source> - <translation type="unfinished">Не удалось открыть файл набора: %1</translation> + <translation>Не удалось открыть файл коллекции справки: %1</translation> </message> <message> <location line="-40"/> @@ -55,15 +55,15 @@ <message> <location line="+16"/> <source>The collection file '%1' already exists!</source> - <translation type="unfinished">Файл набора '%1' уже существует!</translation> + <translation>Файл коллекции справки '%1' уже существует!</translation> </message> <message> - <location line="+148"/> + <location line="+151"/> <source>Unknown filter '%1'!</source> <translation>Неизвестный фильтр '%1'!</translation> </message> <message> - <location line="+105"/> + <location line="+103"/> <source>Invalid documentation file '%1'!</source> <translation>Некорректный файл документации '%1'!</translation> </message> @@ -78,17 +78,17 @@ <translation>Не удалось открыть базу данных '%1' для оптимизации!</translation> </message> <message> - <location line="-438"/> + <location line="-439"/> <source>Cannot create directory: %1</source> <translation>Не удалось создать каталог: %1</translation> </message> <message> - <location line="+23"/> + <location line="+26"/> <source>Cannot copy collection file: %1</source> - <translation type="unfinished">Не удалось скопировать файл набора: %1</translation> + <translation>Не удалось скопировать файл коллекции справки: %1</translation> </message> <message> - <location line="+174"/> + <location line="+172"/> <source>Cannot register filter %1!</source> <translation>Не удалось зарегистрировать фильтр %1!</translation> </message> @@ -120,23 +120,20 @@ <context> <name>QHelpEngineCore</name> <message> - <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+525"/> - <source>The specified namespace does not exist!</source> - <translation>Указанное пространство имён не существует!</translation> - </message> -</context> -<context> - <name>QHelpEngineCorePrivate</name> - <message> - <location line="-403"/> + <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+122"/> <source>Cannot open documentation file %1: %2!</source> <translation>Не удалось открыть файл документации %1: %2!</translation> </message> + <message> + <location line="+404"/> + <source>The specified namespace does not exist!</source> + <translation>Указанное пространство имён не существует!</translation> + </message> </context> <context> <name>QHelpGenerator</name> <message> - <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+157"/> + <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+158"/> <source>Invalid help data!</source> <translation>Некорректные данные справки!</translation> </message> @@ -161,7 +158,7 @@ <translation>Не удалось открыть файл базы данных %1!</translation> </message> <message> - <location line="+11"/> + <location line="+14"/> <source>Cannot register namespace %1!</source> <translation>Не удалось зарегистрировать пространство имён %1!</translation> </message> @@ -216,7 +213,7 @@ <translation>Не удалось открыть файл %1! Пропускаем.</translation> </message> <message> - <location line="+131"/> + <location line="+133"/> <source>The filter %1 is already registered!</source> <translation>Фильтр %1 уже зарегистрирован!</translation> </message> @@ -231,7 +228,7 @@ <translation>Добавление указателей...</translation> </message> <message> - <location line="+80"/> + <location line="+91"/> <source>Insert contents...</source> <translation>Добавление оглавления...</translation> </message> @@ -245,11 +242,79 @@ <source>Cannot register contents!</source> <translation>Не удалось зарегистрировать оглавление!</translation> </message> + <message> + <location line="+56"/> + <source>File '%1' does not exist.</source> + <translation>Файл '%1' не существует.</translation> + </message> + <message> + <location line="+19"/> + <source>File '%1' cannot be opened.</source> + <translation>Невозможно открыть файл '%1'.</translation> + </message> + <message> + <location line="+19"/> + <source>File '%1' contains an invalid link to file '%2'</source> + <translation>Файл '%1' содержит некорректную ссылку на файл '%2'</translation> + </message> + <message> + <location line="+9"/> + <source>Invalid links in HTML files.</source> + <translation>В файлах HTML обнаружены некорректные ссылки.</translation> + </message> +</context> +<context> + <name>QHelpProject</name> + <message> + <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+88"/> + <source>Unknown token.</source> + <translation>Неизвестный идентификатор.</translation> + </message> + <message> + <location line="+13"/> + <source>Unknown token. Expected "QtHelpProject"!</source> + <translation>Неизвестный идентификатор. Ожидается "QtHelpProject"!</translation> + </message> + <message> + <location line="+6"/> + <source>Error in line %1: %2</source> + <translation>Ошибка в строке %1: %2</translation> + </message> + <message> + <location line="+14"/> + <source>Virtual folder has invalid syntax.</source> + <translation>Виртуальный каталог имеет некорректный синтаксис.</translation> + </message> + <message> + <location line="+5"/> + <source>Namespace has invalid syntax.</source> + <translation>Пространство имён имеет некорректный синтаксис.</translation> + </message> + <message> + <location line="+19"/> + <source>Missing namespace in QtHelpProject.</source> + <translation>В QtHelpProject отсутствует пространство имён.</translation> + </message> + <message> + <location line="+3"/> + <source>Missing virtual folder in QtHelpProject</source> + <translation>В QtHelpProject отсутствует виртуальный каталог</translation> + </message> + <message> + <location line="+89"/> + <source>Missing attribute in keyword at line %1.</source> + <translation>Отсутствует атрибут у ключевого слова в строке %1.</translation> + </message> + <message> + <location line="+141"/> + <source>The input file %1 could not be opened!</source> + <translation>Невозможно открыть исходный файл %1!</translation> + </message> </context> <context> <name>QHelpSearchQueryWidget</name> <message> - <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+125"/> + <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+124"/> <source>Search for:</source> <translation>Искать:</translation> </message> @@ -301,66 +366,19 @@ </context> <context> <name>QHelpSearchResultWidget</name> + <message numerus="yes"> + <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+174"/> + <source>%1 - %2 of %n Hits</source> + <translation> + <numerusform>%1 - %2 из %n совпадения</numerusform> + <numerusform>%1 - %2 из %n совпадений</numerusform> + <numerusform>%1 - %2 из %n совпадений</numerusform> + </translation> + </message> <message> - <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+235"/> + <location line="+61"/> <source>0 - 0 of 0 Hits</source> <translation>0 - 0 из 0 совпадений</translation> </message> </context> -<context> - <name>QHelpSearchResultWidgetPrivate</name> - <message> - <location line="-61"/> - <source>%1 - %2 of %3 Hits</source> - <translation>%1 - %2 из %3 совпадений</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+85"/> - <source>Unknown token.</source> - <translation>Неизвестный идентификатор.</translation> - </message> - <message> - <location line="+13"/> - <source>Unknown token. Expected "QtHelpProject"!</source> - <translation>Неизвестный идентификатор. Ожидается "QtHelpProject"!</translation> - </message> - <message> - <location line="+5"/> - <source>Error in line %1: %2</source> - <translation>Ошибка в строке %1: %2</translation> - </message> - <message> - <location line="+13"/> - <source>A virtual folder must not contain a '/' character!</source> - <translation>Виртуальный каталог не должен содержать символ '/'!</translation> - </message> - <message> - <location line="+4"/> - <source>A namespace must not contain a '/' character!</source> - <translation>Пространство имён не должно содержать символ '/'!</translation> - </message> - <message> - <location line="+16"/> - <source>Missing namespace in QtHelpProject.</source> - <translation>Отсутствует пространство имён в QtHelpProject.</translation> - </message> - <message> - <location line="+2"/> - <source>Missing virtual folder in QtHelpProject</source> - <translation>Отсутствует виртуальный каталог в QtHelpProject</translation> - </message> - <message> - <location line="+88"/> - <source>Missing attribute in keyword at line %1.</source> - <translation>Отсутствует атрибут у ключевого слова в строке %1.</translation> - </message> - <message> - <location line="+123"/> - <source>The input file %1 could not be opened!</source> - <translation>Невозможно открыть исходный файл %1!</translation> - </message> -</context> </TS> diff --git a/translations/qt_hu.ts b/translations/qt_hu.ts index ecc9826..9ee3b32 100644 --- a/translations/qt_hu.ts +++ b/translations/qt_hu.ts @@ -2,19 +2,30 @@ <!DOCTYPE TS> <TS version="2.0" language="hu"> <context> + <name>AudioOutput</name> + <message> + <source><html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html></source> + <translation type="obsolete"><html>A hangeszköz <b>%1</b> most nem használható.<br/>Visszaállás erre: <b>%2</b>.</html></translation> + </message> + <message> + <source>Revert back to device '%1'</source> + <translation type="obsolete">Visszaállás a(z) '%1' eszközre</translation> + </message> +</context> +<context> <name>CloseButton</name> <message> - <location filename="../src/gui/widgets/qtabbar.cpp" line="+2262"/> + <location filename="../src/gui/widgets/qtabbar.cpp" line="+2313"/> <source>Close Tab</source> - <translation>Lap bezárása</translation> + <translation>Fül bezárása</translation> </message> </context> <context> <name>FakeReply</name> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2198"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2278"/> <source>Fake error !</source> - <translation>Hamisítási hiba !</translation> + <translation>Teszt hiba !</translation> </message> <message> <location line="+3"/> @@ -23,11 +34,60 @@ </message> </context> <context> + <name>MAC_APPLICATION_MENU</name> + <message> + <location filename="../src/gui/kernel/qapplication.cpp" line="+2346"/> + <source>Services</source> + <translation>Szolgáltatások</translation> + </message> + <message> + <location line="+1"/> + <source>Hide %1</source> + <translation>%1 elrejtése</translation> + </message> + <message> + <location line="+1"/> + <source>Hide Others</source> + <translation>Minden más elrejtése</translation> + </message> + <message> + <location line="+1"/> + <source>Show All</source> + <translation>Mindet mutat</translation> + </message> + <message> + <location line="+1"/> + <source>Preferences...</source> + <translation>Beállítások...</translation> + </message> + <message> + <location line="+1"/> + <source>Quit %1</source> + <translation>Kilépés: %1</translation> + </message> + <message> + <location line="+1"/> + <source>About %1</source> + <translation>%1 névjegye</translation> + </message> +</context> +<context> + <name>PPDOptionsModel</name> + <message> + <source>Name</source> + <translation type="obsolete">Név</translation> + </message> + <message> + <source>Value</source> + <translation type="obsolete">Érték</translation> + </message> +</context> +<context> <name>Phonon::</name> <message> <location filename="../src/3rdparty/phonon/phonon/phononnamespace.cpp" line="+55"/> <source>Notifications</source> - <translation>Értesítések</translation> + <translation>Figyelmeztetések</translation> </message> <message> <location line="+2"/> @@ -42,7 +102,7 @@ <message> <location line="+2"/> <source>Communication</source> - <translation>Kommunikáció</translation> + <translation>Társalgás</translation> </message> <message> <location line="+2"/> @@ -52,160 +112,502 @@ <message> <location line="+2"/> <source>Accessibility</source> - <translation>Hozzáférhetőség</translation> + <translation>Kisegítő lehetőségek</translation> </message> </context> <context> <name>Phonon::AudioOutput</name> <message> - <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+385"/> + <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+444"/> + <location line="+34"/> <source><html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html></source> - <translation><html>Az audió visszajátszó eszköz <b>%1</b> nem működik.<br/>Visszavonul ide: <b>%2</b>.</html></translation> + <translation><html>A hangeszköz <b>%1</b> most nem használható.<br/>Visszaállítás erre: <b>%2</b>.</html></translation> </message> <message> - <location line="+13"/> + <location line="-21"/> <source><html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html></source> - <translation><html>Az audió visszajátszó eszközre kapcsolás <b>%1</b><br/>amely éppen elérhetővé vált és magasabb prioritása van.</html></translation> + <translation><html>Visszaállás a(z)<b>%1</b><br/>hangeszközre, mert az újra elérhető, és jobban preferált.</html></translation> </message> <message> <location line="+3"/> + <location line="+14"/> <source>Revert back to device '%1'</source> - <translation>Visszatérés a(z) '%1' eszközre</translation> + <translation>Visszaállás a(z) '%1' eszközre</translation> + </message> + <message> + <location line="-3"/> + <source><html>Switching to the audio playback device <b>%1</b><br/>which has higher preference or is specifically configured for this stream.</html></source> + <translation><html>Visszaállás a(z)<b>%1</b><br/>hangeszközre, mert az jobban preferált, vagy kimondottan ehhez a folyamhoz van konfigurálva.</html></translation> </message> </context> <context> <name>Phonon::Gstreamer::Backend</name> <message> - <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+182"/> + <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+188"/> <source>Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled.</source> - <translation>Figyelmeztetés: Úgy tűnik nem telepítette megfelelően a gstreamer0.10-plugins csomagot. - Néhány videó tulajdonság tiltva van.</translation> + <translation>Figyelmeztetés: Úgy tűnik, a gstreamer0.10-plugins-good nincs telepítve. + Néhány videóval kapcsolatos lehetőség le lesz tiltva.</translation> </message> <message> <location line="+5"/> <source>Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabled</source> - <translation>Figyelmeztetés: Úgy tűnik nem telepítette az alap GStreamer beépülő modulokat. - Az összes audió és videó támogatás tiltva van</translation> + <translation>Figyelmeztetés: Úgy tűnik nincs semmilyen GStreamer plugin telepítve. + Minden hang és videótámogatás le lesz tiltva</translation> </message> </context> <context> <name>Phonon::Gstreamer::MediaObject</name> <message> - <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/> + <source>Cannot start playback. + +Check your Gstreamer installation and make sure you +have libgstreamer-plugins-base installed.</source> + <translation type="obsolete">A lejátszás elindítása sikertelen. + +Kérem, ellenőrizze, hogy a libgstreamer-plugins-base +telepített-e, és a gstreamer beállításai megfelelők-e.</translation> + </message> + <message> + <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+93"/> <source>Cannot start playback. Check your GStreamer installation and make sure you have libgstreamer-plugins-base installed.</source> <translation>Nem lehet elindítani a visszajátszást. -Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy installálta a libgstreamer-plugins-base csomagot.</translation> +Ellenőrizze le a GStreamer-t és győzödjön meg róla, hogy telepłtette-e a libgstreamer-plugins-base csomagot.</translation> </message> <message> - <location line="+113"/> + <location line="+129"/> + <source>Missing codec helper script assistant.</source> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">Hiányzó kodek-súgó script.</translation> + </message> + <message> + <location line="+2"/> + <source>Plugin codec installation failed for codec: %0</source> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">Plugin kodek telepítése sikertelen ehhez a kodekhez: %0</translation> + </message> + <message> + <location line="+11"/> <source>A required codec is missing. You need to install the following codec(s) to play this content: %0</source> - <translation>Egy szükséges kódek hiányzik. A következő kódek(ek) telepítése szükséges ennek a tartalomnak a lejátszásához: %0</translation> + <translation>Hiányzik egy kodek a lejátszáshoz. Kérem telepítse a következő kodek(eket): %0</translation> </message> <message> - <location line="+702"/> - <location line="+8"/> - <location line="+15"/> - <location line="+26"/> + <location line="+730"/> <location line="+6"/> - <location line="+19"/> - <location line="+339"/> + <location line="+13"/> + <location line="+24"/> + <location line="+6"/> + <location line="+18"/> + <location line="+434"/> <location line="+24"/> <source>Could not open media source.</source> - <translation>Nem sikerült megnyitni a média forrást.</translation> + <translation>A médiaforrás megnyitása sikertelen.</translation> </message> <message> - <location line="-424"/> + <location line="-514"/> <source>Invalid source type.</source> - <translation>Érvénytelen forrás típus.</translation> + <translation>Érvénytelen forrás.</translation> </message> <message> - <location line="+398"/> + <location line="+488"/> <source>Could not locate media source.</source> - <translation>Nem sikerült telepíteni a média forrást.</translation> + <translation>A médiaforrás nem található.</translation> </message> <message> <location line="+10"/> <source>Could not open audio device. The device is already in use.</source> - <translation>Nem sikerült megnyitni az audió eszközt. Az eszköz már használatban van.</translation> + <translation>A hangeszköz megnyitása sikertelen, mert valami már használja.</translation> </message> <message> <location line="+13"/> <source>Could not decode media source.</source> - <translation>Nem sikerült dekódolni a forrást.</translation> + <translation>A médiaforrás dekódolása sikertelen.</translation> </message> </context> <context> <name>Phonon::MMF</name> <message> - <location filename="../src/3rdparty/phonon/mmf/audiooutput.cpp" line="+108"/> + <location filename="../src/3rdparty/phonon/mmf/audiooutput.cpp" line="+103"/> <source>Audio Output</source> <translation>Audio kimenet</translation> </message> <message> <location line="+1"/> <source>The audio output device</source> - <translation>A kimeneti audió eszköz</translation> + <translation>Audio kimenet</translation> </message> -</context> -<context> - <name>Phonon::MMF::AudioEqualizer</name> <message> - <location filename="../src/3rdparty/phonon/mmf/audioequalizer.cpp" line="+75"/> - <source>Frequency band, %1 Hz</source> - <translation>Frekvencia sáv, '%1' Hz</translation> + <location filename="../src/3rdparty/phonon/mmf/utils.cpp" line="+89"/> + <source>No error</source> + <translation>Nincs hiba</translation> </message> -</context> -<context> - <name>Phonon::MMF::EffectFactory</name> <message> - <location filename="../src/3rdparty/phonon/mmf/effectfactory.cpp" line="+65"/> - <source>Audio Equalizer</source> - <translation>Audió hangszínszabályozó</translation> + <location line="+2"/> + <source>Not found</source> + <translation>Nem található</translation> </message> <message> <location line="+2"/> - <source>Bass Boost</source> - <translation>Basszus erősítés</translation> + <source>Out of memory</source> + <translation>A memória elfogyott</translation> + </message> + <message> + <location line="+2"/> + <source>Not supported</source> + <translation>Nem támogatott</translation> + </message> + <message> + <location line="+2"/> + <source>Overflow</source> + <translation>Túlcsordulás</translation> + </message> + <message> + <location line="+2"/> + <source>Underflow</source> + <translation>Alulcsordulás</translation> + </message> + <message> + <location line="+2"/> + <source>Already exists</source> + <translation>Már létezik</translation> </message> <message> <location line="+2"/> - <source>Distance Attenuation</source> - <translation>Távcsillapítás</translation> + <source>Path not found</source> + <translation>Az útvonal nem található</translation> </message> <message> <location line="+2"/> + <source>In use</source> + <translation>Használatban van</translation> + </message> + <message> + <location line="+2"/> + <source>Not ready</source> + <translation>Nincs kész</translation> + </message> + <message> + <location line="+2"/> + <source>Access denied</source> + <translation>Hozzáférés megtagadva</translation> + </message> + <message> + <location line="+2"/> + <source>Could not connect</source> + <translation>Nem lehet kapcsolódni</translation> + </message> + <message> + <location line="+2"/> + <source>Disconnected</source> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">Szétkapcsolva</translation> + </message> + <message> <location line="+2"/> - <source>Environmental Reverb</source> - <translation>Környezeti visszhang</translation> + <source>Permission denied</source> + <translation>Hozzáférés megtagadva</translation> + </message> + <message> + <location line="+4"/> + <source>Insufficient bandwidth</source> + <translation>Elégtelen sávszélesség</translation> + </message> + <message> + <location line="+3"/> + <source>Network unavailable</source> + <translation>A hálózat nem érhető el</translation> + </message> + <message> + <location line="+4"/> + <source>Network communication error</source> + <translation>Hálózati kommunikációs hiba</translation> </message> <message> <location line="+2"/> - <source>Loudness</source> - <translation>Hangosság</translation> + <source>Streaming not supported</source> + <translation>A streaming nem támogatott</translation> </message> <message> <location line="+2"/> - <source>Source Orientation</source> - <translation>Forrás orientáció</translation> + <source>Server alert</source> + <translation>Szerver probléma</translation> </message> <message> <location line="+2"/> - <source>Stereo Widening</source> - <translation>Sztereó szélesség</translation> + <source>Invalid protocol</source> + <translation>Érvénytelen protokoll</translation> + </message> + <message> + <location line="+2"/> + <source>Invalid URL</source> + <translation>Érvénytelen URL</translation> + </message> + <message> + <location line="+2"/> + <source>Multicast error</source> + <translation>Multicast hiba</translation> + </message> + <message> + <location line="+3"/> + <source>Proxy server error</source> + <translation>Proxy szerver hiba</translation> + </message> + <message> + <location line="+2"/> + <source>Proxy server not supported</source> + <translation>A proxy szerver nem támogatott</translation> + </message> + <message> + <location line="+2"/> + <source>Audio output error</source> + <translation>Hang kimeneti hiba</translation> + </message> + <message> + <location line="+2"/> + <source>Video output error</source> + <translation>Video kimeneti hiba</translation> + </message> + <message> + <location line="+2"/> + <source>Decoder error</source> + <translation>Dekódolási hiba</translation> + </message> + <message> + <location line="+2"/> + <source>Audio or video components could not be played</source> + <translation>A hang vagy a video komponens nem játszható le</translation> + </message> + <message> + <location line="+2"/> + <source>DRM error</source> + <translation>DRM hiba</translation> + </message> + <message> + <location line="+15"/> + <source>Unknown error (%1)</source> + <translation>Ismeretlen hiba (%1)</translation> + </message> +</context> +<context> + <name>Phonon::MMF::AbstractMediaPlayer</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/abstractmediaplayer.cpp" line="+73"/> + <source>Not ready to play</source> + <translation>Nem tud még lejátszani</translation> + </message> + <message> + <location line="+161"/> + <location line="+10"/> + <source>Error opening file</source> + <translation>Hiba a fájl megnyitásakor</translation> + </message> + <message> + <location line="+4"/> + <source>Error opening URL</source> + <translation>Hiba az URL megnyitásakor</translation> + </message> + <message> + <location line="+83"/> + <source>Setting volume failed</source> + <translation>A hangerő beállítása sikertelen</translation> + </message> + <message> + <location line="+45"/> + <source>Loading clip failed</source> + <translation>A klip betöltése sikertelen</translation> + </message> + <message> + <location line="+24"/> + <source>Playback complete</source> + <translation>A lejátszás befejeződött</translation> + </message> +</context> +<context> + <name>Phonon::MMF::AbstractVideoPlayer</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/abstractvideoplayer.cpp" line="+108"/> + <source>Pause failed</source> + <translation>A megállítás sikertelen</translation> + </message> + <message> + <location line="+16"/> + <source>Seek failed</source> + <translation>A tekerés sikertelen</translation> + </message> + <message> + <location line="+54"/> + <source>Getting position failed</source> + <translation>A pozíció lekérése sikertelen</translation> + </message> + <message> + <location line="+66"/> + <source>Opening clip failed</source> + <translation>A klip megnyitása sikertelen</translation> + </message> +</context> +<context> + <name>Phonon::MMF::AudioEqualizer</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/audioequalizer.cpp" line="+92"/> + <source>%1 Hz</source> + <translation>%1 Hz</translation> + </message> +</context> +<context> + <name>Phonon::MMF::AudioPlayer</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/audioplayer.cpp" line="+173"/> + <source>Getting position failed</source> + <translation>A pozíció megállapítása sikertelen</translation> + </message> + <message> + <source>Opening clip failed</source> + <translation type="obsolete">A klip megnyitása sikertelen</translation> + </message> +</context> +<context> + <name>Phonon::MMF::DsaVideoPlayer</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/videoplayer_dsa.cpp" line="+238"/> + <location line="+15"/> + <location line="+8"/> + <location line="+22"/> + <location line="+22"/> + <source>Video display error</source> + <translation>Videó megjelenítési hiba</translation> + </message> +</context> +<context> + <name>Phonon::MMF::EffectFactory</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/effectfactory.cpp" line="+181"/> + <source>Enabled</source> + <translation>Engedélyezve</translation> + </message> +</context> +<context> + <name>Phonon::MMF::EnvironmentalReverb</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/environmentalreverb.cpp" line="+146"/> + <source>Decay HF ratio (%)</source> + <extracomment>DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime.</extracomment> + <translation>NF lecsengés arány (%)</translation> + </message> + <message> + <location line="+6"/> + <source>Decay time (ms)</source> + <extracomment>DecayTime: Time over which reverberation is diminished.</extracomment> + <translation>NF lecsengés idő (ms)</translation> + </message> + <message> + <location line="+7"/> + <source>Density (%)</source> + <extracomment>Density Delay between first and subsequent reflections. Note that the S60 platform documentation does not make clear the distinction between this value and the Diffusion value.</extracomment> + <translation>Visszaverődési sűrűség (%)</translation> + </message> + <message> + <location line="+6"/> + <source>Diffusion (%)</source> + <extracomment>Diffusion: Delay between first and subsequent reflections. Note that the S60 platform documentation does not make clear the distinction between this value and the Density value.</extracomment> + <translation>Visszaverődési diffúzió (%)</translation> + </message> + <message> + <location line="+5"/> + <source>Reflections delay (ms)</source> + <extracomment>ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection.</extracomment> + <translation>Visszaverődés késleltetése (ms)</translation> + </message> + <message> + <location line="+7"/> + <source>Reflections level (mB)</source> + <extracomment>ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude.</extracomment> + <translation>Visszaverődés szintje (mB)</translation> + </message> + <message> + <location line="+7"/> + <source>Reverb delay (ms)</source> + <extracomment>ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation.</extracomment> + <translation>Visszhang késleltetés (ms)</translation> + </message> + <message> + <location line="+8"/> + <source>Reverb level (mB)</source> + <extracomment>ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.</extracomment> + <translation>Visszhang szint (mB)</translation> + </message> + <message> + <location line="+7"/> + <source>Room HF level</source> + <extracomment>RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound.</extracomment> + <translation>Szoba NF elnyelés szint</translation> + </message> + <message> + <location line="+6"/> + <source>Room level (mB)</source> + <extracomment>RoomLevel: Master volume control for all reflected sound.</extracomment> + <translation>Szoba szint (mB)</translation> </message> </context> <context> <name>Phonon::MMF::MediaObject</name> <message> - <location filename="../src/3rdparty/phonon/mmf/mediaobject.cpp" line="+291"/> - <source>Media type could not be determined</source> - <translation>Nem lehetet meghatározni a média típust</translation> + <location filename="../src/3rdparty/phonon/mmf/mediaobject.cpp" line="+276"/> + <source>Error opening source: type not supported</source> + <translation>Hiba a forrás megnyitásakor: a típus nem támogatott</translation> + </message> + <message> + <location line="+18"/> + <source>Error opening source: media type could not be determined</source> + <translation>Hiba a forrás megnyitásakor: a média típusa nem állapítható meg</translation> + </message> +</context> +<context> + <name>Phonon::MMF::StereoWidening</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/stereowidening.cpp" line="+79"/> + <source>Level (%)</source> + <translation>Szint (%)</translation> + </message> +</context> +<context> + <name>Phonon::MMF::SurfaceVideoPlayer</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/videoplayer_surface.cpp" line="+126"/> + <location line="+16"/> + <source>Video display error</source> + <translation>Videó megjelenítési hiba</translation> + </message> +</context> +<context> + <name>Phonon::MMF::VideoPlayer</name> + <message> + <source>Pause failed</source> + <translation type="obsolete">A megállítás sikertelen</translation> + </message> + <message> + <source>Seek failed</source> + <translation type="obsolete">A tekerés sikertelen</translation> + </message> + <message> + <source>Getting position failed</source> + <translation type="obsolete">A pozíció megállapłtása sikertelen</translation> + </message> + <message> + <source>Opening clip failed</source> + <translation type="obsolete">A klip megnyitása sikertelen</translation> + </message> + <message> + <source>Buffering clip failed</source> + <translation type="obsolete">A klip pufferelése sikertelen</translation> + </message> + <message> + <source>Video display error</source> + <translation type="obsolete">Videó megjelenítési hiba</translation> </message> </context> <context> @@ -223,12 +625,12 @@ Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy inst <location line="+18"/> <location line="+54"/> <source>Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%</source> - <translation>Használja ezt a csúszkát a hangerő szabályozásához. A legbaloldalib pozíció: 0%, a legjobboldalibb %1%</translation> + <translation>A csúszka segítségével állíthatja be a hangerőt. A bal szélső pozíció 0%-ot, a jobb szélső %1%-ot jelent</translation> </message> <message> <location line="+67"/> <source>Muted</source> - <translation>Elnémított</translation> + <translation>Elnémítva</translation> </message> </context> <context> @@ -241,7 +643,7 @@ Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy inst <message> <location line="+36"/> <source>Ambiguous %1 not handled</source> - <translation>Félreérthető %1 nincs lekezelve</translation> + <translation>A nem egyértelmű %1 nem lesz kezelve</translation> </message> </context> <context> @@ -275,9 +677,9 @@ Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy inst <context> <name>Q3FileDialog</name> <message> - <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+829"/> + <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+835"/> <source>Copy or Move a File</source> - <translation>Egy fájl másolása vagy mozgatása</translation> + <translation>Fájl másolása vagy áthelyezése</translation> </message> <message> <location line="+8"/> @@ -294,15 +696,15 @@ Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy inst <location line="-22"/> <location line="+1579"/> <source>Cancel</source> - <translation>Mégse</translation> + <translation>Mégsem</translation> </message> <message> <location line="-157"/> <location line="+49"/> <location line="+2149"/> - <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+112"/> + <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+133"/> <source>All Files (*)</source> - <translation>Az összes fájl (*)</translation> + <translation>Minden fájl (*)</translation> </message> <message> <location line="-2085"/> @@ -338,19 +740,19 @@ Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy inst <message> <location line="-1987"/> <source>Look &in:</source> - <translation>&Benéz:</translation> + <translation>Keresés &itt:</translation> </message> <message> <location line="+1"/> <location line="+1977"/> <location line="+16"/> <source>File &name:</source> - <translation>Fájl &név:</translation> + <translation>Fájl &neve:</translation> </message> <message> <location line="-1992"/> <source>File &type:</source> - <translation>Fájl &típus:</translation> + <translation>Fájl &típusa:</translation> </message> <message> <location line="+7"/> @@ -360,12 +762,12 @@ Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy inst <message> <location line="+7"/> <source>One directory up</source> - <translation>Egy könyvtárral kintebb</translation> + <translation>Egy szinttel feljebb</translation> </message> <message> <location line="+9"/> <source>Create New Folder</source> - <translation>Új mappa létrehozása</translation> + <translation>Új könyvtár létrehozása</translation> </message> <message> <location line="+18"/> @@ -380,17 +782,17 @@ Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy inst <message> <location line="+9"/> <source>Preview File Info</source> - <translation>Fájl információ előnézet</translation> + <translation>Fájlinformációk előnézete</translation> </message> <message> <location line="+19"/> <source>Preview File Contents</source> - <translation>Fájl tartalom előnézet</translation> + <translation>Fájltartalom előnézete</translation> </message> <message> <location line="+88"/> <source>Read-write</source> - <translation>Írás olvasás</translation> + <translation>Írható-olvasható</translation> </message> <message> <location line="+1"/> @@ -405,22 +807,22 @@ Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy inst <message> <location line="+1"/> <source>Inaccessible</source> - <translation>Hozzáférhetetlen</translation> + <translation>Nem elérhető</translation> </message> <message> <location line="+2"/> <source>Symlink to File</source> - <translation>Szimlink a fájlra</translation> + <translation>Szimbolikus link a fájlra</translation> </message> <message> <location line="+1"/> <source>Symlink to Directory</source> - <translation>Szimlink a könyvtárra</translation> + <translation>Szimbolikus link a könyvtárra</translation> </message> <message> <location line="+1"/> <source>Symlink to Special</source> - <translation>Szimlink egy speciálisra</translation> + <translation>Szimbolikus link a speciális fájlra</translation> </message> <message> <location line="+1"/> @@ -435,7 +837,7 @@ Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy inst <message> <location line="+1"/> <source>Special</source> - <translation>Speciális</translation> + <translation>Speciális fájl</translation> </message> <message> <location line="+704"/> @@ -461,12 +863,12 @@ Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy inst <location line="-357"/> <location line="+341"/> <source>&Save</source> - <translation>&Mentés</translation> + <translation>Menté&s</translation> </message> <message> <location line="-334"/> <source>&Rename</source> - <translation>&Átnevezés</translation> + <translation>Át&nevezés</translation> </message> <message> <location line="+1"/> @@ -476,27 +878,27 @@ Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy inst <message> <location line="+20"/> <source>R&eload</source> - <translation>&Újratöltés</translation> + <translation>B&etöltés újra</translation> </message> <message> <location line="+4"/> <source>Sort by &Name</source> - <translation>Rendezés &Név alapján</translation> + <translation>Rendezés &név szerint</translation> </message> <message> <location line="+2"/> <source>Sort by &Size</source> - <translation>Rendezés &Méret alapján</translation> + <translation>Rendezés &méret szerint</translation> </message> <message> <location line="+1"/> <source>Sort by &Date</source> - <translation>Rendezés &Dátum alapján</translation> + <translation>Rendezés &dátum szerint</translation> </message> <message> <location line="+2"/> <source>&Unsorted</source> - <translation>&Rendezetlen</translation> + <translation>Nin&cs rendezés</translation> </message> <message> <location line="+15"/> @@ -521,7 +923,7 @@ Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy inst <message> <location line="+2"/> <source>the symlink</source> - <translation>a szimlink</translation> + <translation>a szimbolikus link</translation> </message> <message> <location line="+3"/> @@ -531,7 +933,7 @@ Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy inst <message> <location line="+1"/> <source><qt>Are you sure you wish to delete %1 "%2"?</qt></source> - <translation><qt>Biztos benne, hogy törölni kívánja a(z) %1 "%2"?</qt></translation> + <translation><qt>Biztosan törölni akarja ezt: %1 "%2"?</qt></translation> </message> <message> <location line="+2"/> @@ -546,22 +948,22 @@ Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy inst <message> <location line="+36"/> <source>New Folder 1</source> - <translation>Új mappa 1</translation> + <translation>Új könyvtár 1</translation> </message> <message> <location line="+5"/> <source>New Folder</source> - <translation>Új mappa</translation> + <translation>Új könyvtár</translation> </message> <message> <location line="+5"/> <source>New Folder %1</source> - <translation>Új mappa %1</translation> + <translation>Új könyvtár %1</translation> </message> <message> <location line="+98"/> <source>Find Directory</source> - <translation>Könyvtár keresése</translation> + <translation>Keresés a könyvtárban</translation> </message> <message> <location line="+5"/> @@ -586,23 +988,23 @@ Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy inst File not found. Check path and filename.</source> <translation>%1 -Fájl nem található -Útvonal és fájlnév ellenőrzése.</translation> +A fájl nem található. +Ellenőrizze a fájl nevét és elérési útját.</translation> </message> <message> <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="-191"/> <source>All Files (*.*)</source> - <translation>Az összes fájl (*.*)</translation> + <translation>Minden fájl (*.*)</translation> </message> <message> <location line="+264"/> <source>Open </source> - <translation>Megnyitás</translation> + <translation>Megnyitás </translation> </message> <message> <location line="+107"/> <source>Select a Directory</source> - <translation>Egy könyvtár kiválasztása</translation> + <translation>Könyvtár kiválasztása</translation> </message> </context> <context> @@ -612,21 +1014,21 @@ Fájl nem található <location line="+10"/> <source>Could not read directory %1</source> - <translation>Nem sikerült a könytárat olvasni + <translation>A könyvtár nem olvasható: %1</translation> </message> <message> <location line="+45"/> <source>Could not create directory %1</source> - <translation>Nem sikerült létrehozni a könyvtárat + <translation>A könyvtár nem hozható létre: %1</translation> </message> <message> <location line="+34"/> <source>Could not remove file or directory %1</source> - <translation>Nem sikerült eltávolítani egy fájlt vag könyvtárat + <translation>A fájl vagy könyvtár nem törölhető: %1</translation> </message> <message> @@ -635,23 +1037,23 @@ Fájl nem található %1 to %2</source> - <translation>Nem sikerült átnevezni ezt + <translation>Nem nevezhető át %1 -erre +erre: %2</translation> </message> <message> <location line="+25"/> <source>Could not open %1</source> - <translation>Nem sikerült megnyitni + <translation>Nem nyitható meg: %1</translation> </message> <message> <location line="+68"/> <source>Could not write %1</source> - <translation>Nem sikerült írni + <translation>Nem írható: %1</translation> </message> </context> @@ -660,12 +1062,12 @@ erre <message> <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/> <source>Line up</source> - <translation>Egy sorral feljebb</translation> + <translation>Igazítás</translation> </message> <message> <location line="+2"/> <source>Customize...</source> - <translation>Egyéni...</translation> + <translation>Testreszabás...</translation> </message> </context> <context> @@ -673,7 +1075,7 @@ erre <message> <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/> <source>Operation stopped by the user</source> - <translation>A felhasználó leállította a műveletet</translation> + <translation>A műveletet a felhasználó megszakította</translation> </message> </context> <context> @@ -682,7 +1084,7 @@ erre <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/> <location line="+61"/> <source>Cancel</source> - <translation>Mégse</translation> + <translation>Mégsem</translation> </message> </context> <context> @@ -696,7 +1098,7 @@ erre <message> <location line="-366"/> <source>Apply</source> - <translation>Alkalmazza</translation> + <translation>Alkalmaz</translation> </message> <message> <location line="+43"/> @@ -706,12 +1108,12 @@ erre <message> <location line="+45"/> <source>Defaults</source> - <translation>Alapértelemett</translation> + <translation>Alapértelmezések</translation> </message> <message> <location line="+50"/> <source>Cancel</source> - <translation>Mégse</translation> + <translation>Mégsem</translation> </message> </context> <context> @@ -724,7 +1126,7 @@ erre <message> <location line="+1"/> <source>&Redo</source> - <translation>&Helyreállítás</translation> + <translation>Új&ra</translation> </message> <message> <location line="+5"/> @@ -744,13 +1146,13 @@ erre <message> <location line="+3"/> <source>Clear</source> - <translation>Kiürítés</translation> + <translation>Törlés</translation> </message> <message> <location line="+4"/> <location line="+2"/> <source>Select All</source> - <translation>Az összes kiválasztása</translation> + <translation>Összes kijelölése</translation> </message> </context> <context> @@ -763,7 +1165,7 @@ erre <message> <location line="+3"/> <source>Restore up</source> - <translation>Felállítás</translation> + <translation>Visszaállítás</translation> </message> <message> <location line="+1"/> @@ -773,12 +1175,12 @@ erre <message> <location line="+3"/> <source>Restore down</source> - <translation>Leállítás</translation> + <translation>Előző méret</translation> </message> <message> <location line="+1"/> <source>Maximize</source> - <translation>Maximalizálás</translation> + <translation>Teljes méret</translation> </message> <message> <location line="+2"/> @@ -788,37 +1190,41 @@ erre <message> <location line="+18"/> <source>Contains commands to manipulate the window</source> - <translation>Tartalmazza az ablak manipulációs parancsokat</translation> + <translation>Parancsokat tartalmaz az ablak kezeléséhez</translation> </message> <message> <location line="+3"/> <source>Puts a minimized window back to normal</source> - <translation>Egy minimalizált ablak normálra visszatétele</translation> + <translation>Helyreállítja a kis méretre tett ablakot</translation> + </message> + <message> + <source>Puts a minimized back to normal</source> + <translation type="obsolete">A kis méretű ablakot normál méretűre állítja vissza</translation> </message> <message> <location line="+1"/> <source>Moves the window out of the way</source> - <translation>Az ablak félreeső helyre mozgatása</translation> + <translation>Elmozgatja az ablakot az útból</translation> </message> <message> <location line="+3"/> <source>Puts a maximized window back to normal</source> - <translation>Maximalizált ablak normálra visszatétele</translation> + <translation>A teljes méretű ablakot normál méretűre állítja vissza</translation> </message> <message> <location line="+1"/> <source>Makes the window full screen</source> - <translation>Az ablak maximális méretűvé tétele</translation> + <translation>Az ablakot teljes képernyő méretűre növeli</translation> </message> <message> <location line="+2"/> <source>Closes the window</source> - <translation>Az ablak bezárása</translation> + <translation>Bezárja az ablakot</translation> </message> <message> <location line="+2"/> <source>Displays the name of the window and contains controls to manipulate it</source> - <translation>Az ablak nevének megjelenítése és manipuláláshoz szükséges vezérlő elemek tartalmazása</translation> + <translation>Megjeleníti az ablak nevét, és kezelőket a megváltoztatásukhoz</translation> </message> </context> <context> @@ -826,7 +1232,7 @@ erre <message> <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/> <source>More...</source> - <translation>További...</translation> + <translation>Továbbiak...</translation> </message> </context> <context> @@ -836,43 +1242,43 @@ erre <location line="+260"/> <location line="+4"/> <source>The protocol `%1' is not supported</source> - <translation>A(z) '%1' protokoll nem támogatott</translation> + <translation>A(z) `%1' protokoll nem támogatott</translation> </message> <message> <location line="-260"/> <source>The protocol `%1' does not support listing directories</source> - <translation>A(z) '%1' protokoll nem támogatja a könyvtár listázást</translation> + <translation>A(z) `%1' protokoll nem támogatja a könyvtárak tartalmának listázását</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support creating new directories</source> - <translation>A(z) '%1' protokoll nem támogatja az új könyvtárak létrehozását</translation> + <translation>A(z) `%1' protokoll nem támogatja könyvtárak létrehozását</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support removing files or directories</source> - <translation>A(z) '%1' protokoll nem támogatja fájlok vagy könyvtárat áthelyezését</translation> + <translation>A(z) '%1' protokoll nem támogatja a fájlok vagy könyvtárak törlését</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support renaming files or directories</source> - <translation>A(z) '%1' protokoll nem támogatja fájlok vagy könyvtárat átnevezését</translation> + <translation>A(z) '%1' protokoll nem támogatja a fájlok vagy könyvtárak átnevezését</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support getting files</source> - <translation>A(z) '%1' protokoll nem támogatja fájlok szerzését</translation> + <translation>A(z) '%1' protokoll nem támogatja a fájlok letöltését</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support putting files</source> - <translation>A(z) '%1' protokoll nem támogatja fájlok betevését</translation> + <translation>A(z) '%1' protokoll nem támogatja a fájlok feltöltését</translation> </message> <message> <location line="+243"/> <location line="+4"/> <source>The protocol `%1' does not support copying or moving files or directories</source> - <translation>A(z) '%1' protokoll nem támogatja fájlok vagy könyvtárak mozgatását vagy másolását</translation> + <translation>A(z) '%1' protokoll nem támogatja a fájlok vagy könyvtárak másolását vagy áthelyezését</translation> </message> <message> <location line="+237"/> @@ -886,7 +1292,7 @@ erre <message> <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/> <source>&Cancel</source> - <translation>&Mégse</translation> + <translation>&Mégsem</translation> </message> <message> <location line="+1"/> @@ -912,64 +1318,65 @@ erre <context> <name>QAbstractSocket</name> <message> - <location filename="../src/network/socket/qabstractsocket.cpp" line="+899"/> - <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+643"/> + <location filename="../src/network/socket/qabstractsocket.cpp" line="+549"/> + <location line="+809"/> + <location line="+220"/> + <source>Operation on socket is not supported</source> + <translation>A művelet nem támogatott socketeken</translation> + </message> + <message> + <location line="-662"/> + <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+629"/> <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+661"/> <location line="+26"/> <source>Host not found</source> - <translation>A hoszt nem található</translation> + <translation>A kiszolgáló nem található</translation> </message> <message> <location line="+50"/> <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+3"/> <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+4"/> <source>Connection refused</source> - <translation>A kapcsolódás elutasítva</translation> + <translation>A kapcsolat elutasítva</translation> </message> <message> <location line="+142"/> <source>Connection timed out</source> - <translation>Kapcsolódási időtúllépés</translation> + <translation>A kapcsolat várakozási ideje lejárt</translation> </message> <message> - <location line="-555"/> - <location line="+805"/> - <location line="+208"/> - <source>Operation on socket is not supported</source> - <translation>A socket művelet nem támogatott</translation> - </message> - <message> - <location line="+200"/> + <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+625"/> + <location filename="../src/network/socket/qabstractsocket.cpp" line="+673"/> <source>Socket operation timed out</source> <translation>Socket művelet időtúllépés</translation> </message> <message> - <location line="+380"/> + <location filename="../src/network/socket/qabstractsocket.cpp" line="+380"/> <source>Socket is not connected</source> - <translation>Socket nincs csatlakoztatva</translation> + <translation>A socket nem kapcsolódott</translation> </message> <message> <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-8"/> <source>Network unreachable</source> - <translation>A hálózat nem elérhető</translation> + <translation>A hálózat nem érhető el</translation> </message> </context> <context> <name>QAbstractSpinBox</name> <message> - <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1217"/> + <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1263"/> <source>&Step up</source> - <translation>&Növelés</translation> + <translation>Lépés &felfelé</translation> </message> <message> <location line="+2"/> <source>Step &down</source> - <translation>&Csökkentés</translation> + <translation>Lépés &lefelé</translation> </message> <message> <location line="-8"/> <source>&Select All</source> - <translation>Az összes &kiválasztása</translation> + <translation>Ö&sszes kijelölése</translation> </message> </context> <context> @@ -977,36 +1384,75 @@ erre <message> <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+250"/> <source>Press</source> - <translation>Megnyomás</translation> + <translation>Nyomja meg</translation> + </message> +</context> +<context> + <name>QAction</name> + <message> + <source>Options</source> + <translation type="obsolete">Opciók</translation> + </message> + <message> + <source>Select</source> + <translation type="obsolete">Kiválasztás</translation> + </message> + <message> + <source>Back</source> + <translation type="obsolete">Vissza</translation> + </message> + <message> + <source>Next</source> + <translation type="obsolete">Előre</translation> + </message> + <message> + <source>Previous</source> + <translation type="obsolete">Előző</translation> + </message> + <message> + <source>Ok</source> + <translation type="obsolete">Ok</translation> + </message> + <message> + <source>Cancel</source> + <translation type="obsolete">Mégsem</translation> + </message> + <message> + <source>Edit</source> + <translation type="obsolete">Szerkesztés</translation> + </message> + <message> + <source>View</source> + <translation type="obsolete">Nézet</translation> </message> </context> <context> <name>QApplication</name> <message> - <location filename="../src/gui/kernel/qapplication.cpp" line="+2279"/> - <source>QT_LAYOUT_DIRECTION</source> - <comment>Translate this string to the string '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>QT_LAYOUT_DIRECTION</translation> + <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/> + <source>Activate</source> + <translation>Aktiválás</translation> </message> <message> <location filename="../src/gui/dialogs/qmessagebox.h" line="+354"/> <source>Executable '%1' requires Qt %2, found Qt %3.</source> - <translation>A(z) '%1' futtatható fájl igényli a Qt %2, de Qt %3.-t talált.</translation> + <translation>'%1' program Qt %2-t igényel (Qt %3 van telepítve).</translation> </message> <message> <location line="+2"/> <source>Incompatible Qt Library Error</source> - <translation>Inkompatibilis Qt könyvtár hiba</translation> + <translation>Hiba: inkompatíbilis Qt függvénykönyvtár</translation> </message> <message> - <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/> - <source>Activate</source> - <translation>Aktiválás</translation> + <location filename="../src/gui/kernel/qapplication.cpp" line="-13"/> + <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 line="+2"/> + <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+2"/> <source>Activates the program's main window</source> - <translation>A program fő ablakának aktiválása</translation> + <translation>Aktívvá teszi a program főablakát</translation> </message> </context> <context> @@ -1024,12 +1470,12 @@ erre <message> <location/> <source>&Cancel</source> - <translation>&Mégse</translation> + <translation>&Mégsem</translation> </message> <message> <location/> <source>COM &Object:</source> - <translation>COM &Objektum:</translation> + <translation>COM &objektum:</translation> </message> </context> <context> @@ -1037,40 +1483,40 @@ erre <message> <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-136"/> <source>Uncheck</source> - <translation>Nincs bejelölve</translation> + <translation>Kijelölés megszüntetése</translation> </message> <message> <location line="+3"/> <source>Check</source> - <translation>Bejelölve</translation> + <translation>Kijelölés</translation> </message> <message> <location line="+1"/> <source>Toggle</source> - <translation>Kapcsolgatás</translation> + <translation>Váltás</translation> </message> </context> <context> <name>QColorDialog</name> <message> - <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1349"/> + <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1378"/> <source>Hu&e:</source> - <translation>&Színárnyalat:</translation> + <translation>Á&rnyalat:</translation> </message> <message> <location line="+1"/> <source>&Sat:</source> - <translation>&Sat:</translation> + <translation>&Telítettség:</translation> </message> <message> <location line="+1"/> <source>&Val:</source> - <translation>&Érték:</translation> + <translation>&Fényerő:</translation> </message> <message> <location line="+1"/> <source>&Red:</source> - <translation>&Piros:</translation> + <translation>&Vörös:</translation> </message> <message> <location line="+1"/> @@ -1090,28 +1536,44 @@ erre <message> <location line="+101"/> <source>Select Color</source> - <translation>Szín kiválasztása</translation> + <translation>Szín választás</translation> </message> <message> - <location line="+180"/> + <location line="+183"/> <source>&Basic colors</source> - <translation>&Alap színek</translation> + <translation>Ala&p színek</translation> </message> <message> <location line="+1"/> <source>&Custom colors</source> - <translation>&Egyéni színek</translation> + <translation>&Saját színek</translation> + </message> + <message> + <source>&Define Custom Colors >></source> + <translation type="obsolete">Saját színek &megadása >></translation> + </message> + <message> + <source>OK</source> + <translation type="obsolete">OK</translation> + </message> + <message> + <source>Cancel</source> + <translation type="obsolete">Mégsem</translation> </message> <message> <location line="+1"/> <source>&Add to Custom Colors</source> - <translation>&Egyéni színek hozzáadása</translation> + <translation>Hozzá&adás a saját színekhez</translation> + </message> + <message> + <source>Select color</source> + <translation type="obsolete">Szín kiválasztása</translation> </message> </context> <context> <name>QComboBox</name> <message> - <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/> + <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1772"/> <location line="+65"/> <source>Open</source> <translation>Megnyitás</translation> @@ -1135,22 +1597,9 @@ erre <context> <name>QCoreApplication</name> <message> - <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/> - <source>%1: key is empty</source> - <comment>QSystemSemaphore</comment> - <translation>%1:kulcs üres</translation> - </message> - <message> - <location line="+12"/> - <source>%1: unable to make key</source> - <comment>QSystemSemaphore</comment> - <translation>%1: nem lehet kulcsot csinálni</translation> - </message> - <message> - <location line="+9"/> - <source>%1: ftok failed</source> + <source>%1: permission denied</source> <comment>QSystemSemaphore</comment> - <translation>%1: ftok hiba</translation> + <translation type="obsolete">%1: hozzáférés megtagadva</translation> </message> <message> <location filename="../src/corelib/kernel/qsystemsemaphore_symbian.cpp" line="+65"/> @@ -1159,16 +1608,21 @@ erre <translation>%1: már létezik</translation> </message> <message> + <source>%1: doesn't exists</source> + <comment>QSystemSemaphore</comment> + <translation type="obsolete">%1: nem található</translation> + </message> + <message> <location line="+4"/> <source>%1: does not exist</source> <comment>QSystemSemaphore</comment> - <translation>%1: nem létezik</translation> + <translation>%1: még nem létezik</translation> </message> <message> <location line="+5"/> <source>%1: out of resources</source> <comment>QSystemSemaphore</comment> - <translation>%1: elfogytak az erőforrások</translation> + <translation>%1: az erőforrások elfogytak</translation> </message> <message> <location line="+4"/> @@ -1176,62 +1630,80 @@ erre <comment>QSystemSemaphore</comment> <translation>%1: ismeretlen hiba %2</translation> </message> + <message> + <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/> + <source>%1: key is empty</source> + <comment>QSystemSemaphore</comment> + <translation>%1: a kulcs hiányzik</translation> + </message> + <message> + <location line="+12"/> + <source>%1: unable to make key</source> + <comment>QSystemSemaphore</comment> + <translation>%1: a kulcs elkészítése sikertelen</translation> + </message> + <message> + <location line="+9"/> + <source>%1: ftok failed</source> + <comment>QSystemSemaphore</comment> + <translation>%1: ftok hibát adott vissza</translation> + </message> </context> <context> <name>QDB2Driver</name> <message> - <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1254"/> + <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1253"/> <source>Unable to connect</source> - <translation>Nem lehet csatlakozni</translation> + <translation>Nem sikerült kapcsolódni</translation> </message> <message> <location line="+298"/> <source>Unable to commit transaction</source> - <translation>Nem lehet kommitolni a tranzakciót</translation> + <translation>A tranzakció nem véglegesíthető</translation> </message> <message> <location line="+17"/> <source>Unable to rollback transaction</source> - <translation>Nem lehet visszagörgetni a tranzakciót</translation> + <translation>A tranzakció nem görgethető vissza</translation> </message> <message> <location line="+15"/> <source>Unable to set autocommit</source> - <translation>Nem lehet beállítani az automatikus kommitolást</translation> + <translation>Az automatikus véglegesítés nem állítható be</translation> </message> </context> <context> <name>QDB2Result</name> <message> - <location line="-1031"/> + <location line="-1030"/> <location line="+240"/> <source>Unable to execute statement</source> - <translation>Nem lehet végrehajtani a műveletet</translation> + <translation>A művelet nem hajtható végre</translation> </message> <message> <location line="-203"/> <source>Unable to prepare statement</source> - <translation>Nem lehet felkészülni a műveletre</translation> + <translation>A művelet előkészítése nem lehetséges</translation> </message> <message> <location line="+193"/> <source>Unable to bind variable</source> - <translation>Nem lehet összekötni a változót</translation> + <translation>A változó nem rögzíthető</translation> </message> <message> <location line="+89"/> <source>Unable to fetch record %1</source> - <translation>Nem lehet letölteni a(z) %1 felvételt</translation> + <translation>A(z) %1. rekord nem olvasható ki</translation> </message> <message> <location line="+19"/> <source>Unable to fetch next</source> - <translation>Nem lehet letölteni a következőt</translation> + <translation>A következő rekord nem olvasható ki</translation> </message> <message> <location line="+21"/> <source>Unable to fetch first</source> - <translation>Nem lehet letölteni az elsőt</translation> + <translation>Az első rekord nem érhető el</translation> </message> </context> <context> @@ -1239,22 +1711,1196 @@ erre <message> <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2287"/> <source>AM</source> - <translation>AM</translation> + <translation>DE</translation> </message> <message> <location line="+0"/> <source>am</source> - <translation>am</translation> + <translation>de</translation> </message> <message> <location line="+2"/> <source>PM</source> - <translation>PM</translation> + <translation>DU</translation> </message> <message> <location line="+0"/> <source>pm</source> - <translation>pm</translation> + <translation>du</translation> + </message> +</context> +<context> + <name>QDeclarativeAbstractAnimation</name> + <message> + <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+166"/> + <source>Cannot animate non-existent property "%1"</source> + <translation>Nem lehet animálni a hiányzó "%1" tulajdonság nélkül</translation> + </message> + <message> + <location line="+3"/> + <source>Cannot animate read-only property "%1"</source> + <translation>Nem lehet animálni a csak olvasható "%1" tulajdonsággal</translation> + </message> + <message> + <location filename="../src/declarative/util/qdeclarativeutilmodule.cpp" line="+122"/> + <source>Animation is an abstract class</source> + <translation>Az Animation absztrakt osztály</translation> + </message> +</context> +<context> + <name>QDeclarativeAnchorAnimation</name> + <message> + <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+2553"/> + <source>Cannot set a duration of < 0</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativeAnchors</name> + <message> + <location filename="../src/declarative/graphicsitems/qdeclarativeanchors.cpp" line="+180"/> + <source>Possible anchor loop detected on fill.</source> + <translation>Lehetséges horgony hurok észlelhető egy festésen.</translation> + </message> + <message> + <location line="+29"/> + <source>Possible anchor loop detected on centerIn.</source> + <translation>Lehetséges horgony hurok észlelhető a középvonalon.</translation> + </message> + <message> + <location line="+201"/> + <location line="+34"/> + <location line="+610"/> + <location line="+37"/> + <source>Cannot anchor to an item that isn't a parent or sibling.</source> + <translation>Nem lehet egy olyan elemhez horgonyozni, mely nem szülő vagy gyermek.</translation> + </message> + <message> + <location line="-534"/> + <source>Possible anchor loop detected on vertical anchor.</source> + <translation>Lehetséges horgony hurok észlelhető egy függőleges horgonyon.</translation> + </message> + <message> + <location line="+59"/> + <source>Possible anchor loop detected on horizontal anchor.</source> + <translation>Lehetséges horgony hurok észlelhető egy vízszintes horgonyon.</translation> + </message> + <message> + <location line="+422"/> + <source>Cannot specify left, right, and hcenter anchors.</source> + <translation>Nem lehet egyszerre bal, jobb, és vízszintes közép horgonyokat megadni.</translation> + </message> + <message> + <location line="+10"/> + <location line="+37"/> + <source>Cannot anchor to a null item.</source> + <translation>Nem lehet egy null elemhez horgonyozni.</translation> + </message> + <message> + <location line="-34"/> + <source>Cannot anchor a horizontal edge to a vertical edge.</source> + <translation>Nem lehet a vízszintes vagy a függőleges szélekhez horgonyozni.</translation> + </message> + <message> + <location line="+6"/> + <location line="+37"/> + <source>Cannot anchor item to self.</source> + <translation>Nem lehet egy elemet önmagához horgonyozni.</translation> + </message> + <message> + <location line="-25"/> + <source>Cannot specify top, bottom, and vcenter anchors.</source> + <translation>Nem lehet egyszerre felső, alsó, és függőleges közép horgonyokat megadni.</translation> + </message> + <message> + <location line="+6"/> + <source>Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.</source> + <translation>Alapvonali horgonyt nem lehet összekapcsolni felső, alsó, vagy függőleges közép horgonyokkal.</translation> + </message> + <message> + <location line="+13"/> + <source>Cannot anchor a vertical edge to a horizontal edge.</source> + <translation>Nem lehet a vízszintes szélt a függőlegeshez horgonyozni.</translation> + </message> +</context> +<context> + <name>QDeclarativeAnimatedImage</name> + <message> + <location filename="../src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp" line="+86"/> + <source>Qt was built without support for QMovie</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativeBehavior</name> + <message> + <location filename="../src/declarative/util/qdeclarativebehavior.cpp" line="+127"/> + <source>Cannot change the animation assigned to a Behavior.</source> + <translation>Nem lehet egy Behavior elemhez rendelt animációt módosítani.</translation> + </message> +</context> +<context> + <name>QDeclarativeBinding</name> + <message> + <location filename="../src/declarative/qml/qdeclarativebinding.cpp" line="+238"/> + <source>Binding loop detected for property "%1"</source> + <translation>Kötési hurok észlelhető a(z) "%1" tulajdonságon</translation> + </message> +</context> +<context> + <name>QDeclarativeCompiledBindings</name> + <message> + <location filename="../src/declarative/qml/qdeclarativecompiledbindings.cpp" line="+372"/> + <source>Binding loop detected for property "%1"</source> + <translation type="unfinished">Kötési hurok észlelhető a(z) "%1" tulajdonságon</translation> + </message> +</context> +<context> + <name>QDeclarativeCompiler</name> + <message> + <location filename="../src/declarative/qml/qdeclarativecompiler.cpp" line="+186"/> + <location line="+1596"/> + <location line="+186"/> + <location line="+81"/> + <location line="+75"/> + <location line="+487"/> + <source>Invalid property assignment: "%1" is a read-only property</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: "%1" egy csak olvasható tulajdonság</translation> + </message> + <message> + <location line="-2416"/> + <source>Invalid property assignment: unknown enumeration</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: ismeretlen felsorolás</translation> + </message> + <message> + <location line="+8"/> + <source>Invalid property assignment: string expected</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: szöveges érték szükséges</translation> + </message> + <message> + <location line="+3"/> + <source>Invalid property assignment: url expected</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: URL szükséges</translation> + </message> + <message> + <location line="+10"/> + <source>Invalid property assignment: unsigned int expected</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: előjel nélküli egész érték szükséges</translation> + </message> + <message> + <location line="+11"/> + <source>Invalid property assignment: int expected</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: egész érték szükséges</translation> + </message> + <message> + <location line="+4"/> + <source>Invalid property assignment: float expected</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: lebegőpontos érték szükséges</translation> + </message> + <message> + <location line="+3"/> + <source>Invalid property assignment: double expected</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: duplapontos érték szükséges</translation> + </message> + <message> + <location line="+6"/> + <source>Invalid property assignment: color expected</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: szín szükséges</translation> + </message> + <message> + <location line="+8"/> + <source>Invalid property assignment: date expected</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: dátum szükséges</translation> + </message> + <message> + <location line="+7"/> + <source>Invalid property assignment: time expected</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: idő szükséges</translation> + </message> + <message> + <location line="+7"/> + <source>Invalid property assignment: datetime expected</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: datetime érték szükséges</translation> + </message> + <message> + <location line="+9"/> + <source>Invalid property assignment: point expected</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: pont szükséges</translation> + </message> + <message> + <location line="+8"/> + <source>Invalid property assignment: size expected</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: méret szükséges</translation> + </message> + <message> + <location line="+8"/> + <source>Invalid property assignment: rect expected</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: téglalap szükséges</translation> + </message> + <message> + <location line="+5"/> + <source>Invalid property assignment: boolean expected</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: boolean érték szükséges</translation> + </message> + <message> + <location line="+7"/> + <source>Invalid property assignment: 3D vector expected</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: 3D vektor szükséges</translation> + </message> + <message> + <location line="+9"/> + <source>Invalid property assignment: unsupported type "%1"</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: nem támogatott típus: "%1"</translation> + </message> + <message> + <location line="+277"/> + <source>Element is not creatable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+618"/> + <source>Component elements may not contain properties other than id</source> + <translation>A Component elemek nem tartalmazhatnak az id-n kívűl más tulajdonságot</translation> + </message> + <message> + <source>Component elements may not contain script blocks</source> + <translation type="obsolete">A Component elemek nem tartalmazhatnak parancsblokkokat</translation> + </message> + <message> + <location line="+7"/> + <source>Invalid component id specification</source> + <translation>Érvénytelen komponens azonosító megadás</translation> + </message> + <message> + <location line="+6"/> + <location line="+478"/> + <source>id is not unique</source> + <translation>Az azonosító nem egyedi</translation> + </message> + <message> + <location line="-468"/> + <source>Invalid component body specification</source> + <translation>Érvénytelen komponens-törzs megadás</translation> + </message> + <message> + <location line="+3"/> + <source>Component objects cannot declare new properties.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Component objects cannot declare new signals.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Component objects cannot declare new functions.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Cannot create empty component specification</source> + <translation>Nem lehet üres komponenst megadni</translation> + </message> + <message> + <source>Invalid Script block. Specify either the source property or inline script</source> + <translation type="obsolete">Érvénytelen Script blokk. Adja meg a source tulajdonságot vagy ágyazzon be parancsokat</translation> + </message> + <message> + <source>Invalid Script source value</source> + <translation type="obsolete">Érvénytelen Script source érték</translation> + </message> + <message> + <source>Properties cannot be set on Script block</source> + <translation type="obsolete">A tulajdonságok nem módosíthatók Script blokkból</translation> + </message> + <message> + <source>Invalid Script block</source> + <translation type="obsolete">Érvénytelen Script blokk</translation> + </message> + <message> + <source>Incorrectly specified signal</source> + <translation type="obsolete">Hibásan megadott jelzés (signal)</translation> + </message> + <message> + <location line="+105"/> + <source>Empty signal assignment</source> + <translation>Üres jelzés (signal) hozzárendelés</translation> + </message> + <message> + <location line="+38"/> + <source>Empty property assignment</source> + <translation>Üres tulajdonság hozzárendelés</translation> + </message> + <message> + <location line="+12"/> + <source>Attached properties cannot be used here</source> + <translation>A csatolt tulajdonságok nem használhatók</translation> + </message> + <message> + <location line="+15"/> + <location line="+102"/> + <source>Non-existent attached object</source> + <translation>Nem létező csatolt objektum</translation> + </message> + <message> + <location line="-98"/> + <location line="+101"/> + <source>Invalid attached object assignment</source> + <translation>Érvénytelen objektumcsatolás</translation> + </message> + <message> + <location line="-48"/> + <source>Cannot assign to non-existent default property</source> + <translation>Nem lehet hozzárendelni egy nem létező alapértelmezett tulajdonságot</translation> + </message> + <message> + <location line="+2"/> + <location line="+352"/> + <source>Cannot assign to non-existent property "%1"</source> + <translation>Nem lehet hozzárendelni a nem létező "%1" tulajdonságot</translation> + </message> + <message> + <location line="-322"/> + <source>Invalid use of namespace</source> + <translation>Érvénytelen névtérhasználat</translation> + </message> + <message> + <location line="+5"/> + <source>Not an attached property name</source> + <translation>Ez nem egy csatolt tulajdonságnév</translation> + </message> + <message> + <location line="+182"/> + <source>Invalid use of id property</source> + <translation>Az id tulajdonság érvénytelen használata</translation> + </message> + <message> + <source>"%1" is not a valid object id</source> + <translation type="obsolete">"%1" nem érvényes objektumazonosító</translation> + </message> + <message> + <source>id conflicts with type name</source> + <translation type="obsolete">Az id ütközik a típus nevével</translation> + </message> + <message> + <source>id conflicts with namespace prefix</source> + <translation type="obsolete">Az id ütközik a névtér előtaggal</translation> + </message> + <message> + <source>Invalid value in grouped property</source> + <translation type="obsolete">Érvénytelen érték a csoportos tulajdonságon</translation> + </message> + <message> + <location line="-357"/> + <source>Incorrectly specified signal assignment</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>Cannot assign a value to a signal (expecting a script to be run)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+434"/> + <location line="+2"/> + <source>Property has already been assigned a value</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <location line="+7"/> + <source>Invalid grouped property access</source> + <translation>Érvénytelen csoportos tulajdonság-hozzáférés</translation> + </message> + <message> + <location line="+3"/> + <source>Cannot assign a value directly to a grouped property</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source>Invalid property use</source> + <translation>Tulajdonság érvénytelen használata</translation> + </message> + <message> + <location line="+13"/> + <source>Property assignment expected</source> + <translation>Tulajdonság hozzárendelés szükséges</translation> + </message> + <message> + <location line="+3"/> + <source>Single property assignment expected</source> + <translation>Egyetlen tulajdonság hozzárendelése szükséges</translation> + </message> + <message> + <location line="+5"/> + <source>Unexpected object assignment</source> + <translation>Váratlan objektum-hozzárendelés</translation> + </message> + <message> + <location line="+57"/> + <source>Cannot assign object to list</source> + <translation>Nem lehet objektumot listához rendelni</translation> + </message> + <message> + <location line="+6"/> + <source>Can only assign one binding to lists</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Cannot assign primitives to lists</source> + <translation>Nem lehet primitiv típusokat listához rendelni</translation> + </message> + <message> + <location line="+13"/> + <source>Cannot assign multiple values to a script property</source> + <translation>Nem lehet több értéket rendelni script tulajdonsághoz</translation> + </message> + <message> + <location line="+3"/> + <source>Invalid property assignment: script expected</source> + <translation>Érvénytelen tulajdonság-hozzárendelés: script szükséges</translation> + </message> + <message> + <location line="+105"/> + <source>Cannot assign object to property</source> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">Nem lehet objektumot rendelni tulajdonsághoz</translation> + </message> + <message> + <location line="+50"/> + <source>"%1" cannot operate on "%2"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+117"/> + <source>Duplicate default property</source> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">Dupla alapértelmezett tulajdonság</translation> + </message> + <message> + <location line="+5"/> + <source>Duplicate property name</source> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">Dupla tulajdonságnév</translation> + </message> + <message> + <location line="+3"/> + <source>Property names cannot begin with an upper case letter</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Duplicate signal name</source> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">Dupla jelzés név</translation> + </message> + <message> + <location line="+2"/> + <source>Signal names cannot begin with an upper case letter</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Duplicate method name</source> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">Dupla metódus név</translation> + </message> + <message> + <location line="+2"/> + <source>Method names cannot begin with an upper case letter</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+21"/> + <source>Property value set multiple times</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Invalid property nesting</source> + <translation>Érvénytelen tulajdonság illesztés</translation> + </message> + <message> + <location line="+53"/> + <source>Cannot override FINAL property</source> + <translation>Nem lehet FINAL tulajdonságot felülbírálni</translation> + </message> + <message> + <location line="+24"/> + <source>Invalid property type</source> + <translation>Érvénytelen tulajdonság típus</translation> + </message> + <message> + <location line="+159"/> + <source>Invalid empty ID</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>IDs cannot start with an uppercase letter</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>IDs must start with a letter or underscore</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>IDs must contain only letters, numbers, and underscores</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>ID illegally masks global JavaScript property</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+31"/> + <location line="+9"/> + <source>No property alias location</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-4"/> + <location line="+25"/> + <source>Invalid alias location</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-16"/> + <source>Invalid alias reference. An alias reference must be specified as <id> or <id>.<property></source> + <translation>Érvénytelen álnév-referencia. Az álnév-referenciának <id> vagy <id>.<property> formátumúnak kell lennie</translation> + </message> + <message> + <location line="+3"/> + <source>Invalid alias reference. Unable to find id "%1"</source> + <translation>Érvénytelen álnév-referencia. A(z) "%1" azonosító nem létezik</translation> + </message> +</context> +<context> + <name>QDeclarativeComponent</name> + <message> + <location filename="../src/declarative/qml/qdeclarativecomponent.cpp" line="+459"/> + <source>Invalid empty URL</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativeCompositeTypeManager</name> + <message> + <location filename="../src/declarative/qml/qdeclarativecompositetypemanager.cpp" line="+475"/> + <location line="+266"/> + <source>Resource %1 unavailable</source> + <translation>A(z) %1 erőforrás nem érhető el</translation> + </message> + <message> + <location line="-120"/> + <source>%1 %2</source> + <translation type="unfinished">%1% {1 %2?}</translation> + </message> + <message> + <source>Import %1 unavailable</source> + <translation type="obsolete">A(z) %1 import nem érhető el</translation> + </message> + <message> + <location line="-2"/> + <source>Namespace %1 cannot be used as a type</source> + <translation>A(z) %1 névtér nem használható típusként</translation> + </message> + <message> + <source>%1 is not a type</source> + <translation type="obsolete">%1 nem típus</translation> + </message> + <message> + <location line="+49"/> + <source>Type %1 unavailable</source> + <translation>A(z) %1 típus nem érhető el</translation> + </message> +</context> +<context> + <name>QDeclarativeConnections</name> + <message> + <location filename="../src/declarative/util/qdeclarativeconnections.cpp" line="+209"/> + <location line="+60"/> + <source>Cannot assign to non-existent property "%1"</source> + <translation>Nem lehet hozzárendelni a nem létező "%1" tulajdonsághoz</translation> + </message> + <message> + <location line="-50"/> + <source>Connections: nested objects not allowed</source> + <translation>Kapcsolatok: az illesztett objektumok nem engedélyezettek</translation> + </message> + <message> + <location line="+3"/> + <source>Connections: syntax error</source> + <translation>Kapcsolatok: szintakszishiba</translation> + </message> + <message> + <location line="+8"/> + <source>Connections: script expected</source> + <translation>Kapcsolatok: script szükséges</translation> + </message> +</context> +<context> + <name>QDeclarativeEngine</name> + <message> + <location filename="../src/declarative/qml/qdeclarativesqldatabase.cpp" line="+204"/> + <source>executeSql called outside transaction()</source> + <translation>Az executeSql a transaction()-on kívülről lett meghívva</translation> + </message> + <message> + <location line="+58"/> + <source>Read-only Transaction</source> + <translation>Csak olvasható tranzakció</translation> + </message> + <message> + <location line="+20"/> + <source>Version mismatch: expected %1, found %2</source> + <translation>Verzió eltérés: várt: %1, kapott: %2</translation> + </message> + <message> + <location line="+14"/> + <source>SQL transaction failed</source> + <translation>Az SQL tranzakció sikertelen</translation> + </message> + <message> + <location line="+21"/> + <source>transaction: missing callback</source> + <translation>tranzakció: hiányzó callback</translation> + </message> + <message> + <location line="+57"/> + <location line="+16"/> + <source>SQL: database version mismatch</source> + <translation>SQL: adatbázis verzió eltérés</translation> + </message> +</context> +<context> + <name>QDeclarativeFlipable</name> + <message> + <location filename="../src/declarative/graphicsitems/qdeclarativeflipable.cpp" line="+127"/> + <source>front is a write-once property</source> + <translation>a front csak egyszer írható tulajdonság</translation> + </message> + <message> + <location line="+19"/> + <source>back is a write-once property</source> + <translation>a back csak egyszer írható tulajdonság</translation> + </message> +</context> +<context> + <name>QDeclarativeImportDatabase</name> + <message> + <location filename="../src/declarative/qml/qdeclarativeimport.cpp" line="+294"/> + <source>module "%1" definition "%2" not readable</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+20"/> + <source>plugin cannot be loaded for module "%1": %2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>module "%1" plugin "%2" not found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+79"/> + <location line="+55"/> + <source>module "%1" version %2.%3 is not installed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-53"/> + <source>module "%1" is not installed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+14"/> + <location line="+19"/> + <source>"%1": no such directory</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-2"/> + <source>import "%1" has no qmldir and no namespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+46"/> + <source>- %1 is not a namespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>- nested namespaces not allowed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+47"/> + <location line="+4"/> + <source>local directory</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>is ambiguous. Found in %1 and in %2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>is ambiguous. Found in %1 in version %2.%3 and %4.%5</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+14"/> + <source>is instantiated recursively</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>is not a type</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativeInfo</name> + <message> + <source>unknown location</source> + <translation type="obsolete">ismeretlen hely</translation> + </message> +</context> +<context> + <name>QDeclarativeKeyNavigationAttached</name> + <message> + <location filename="../src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp" line="+70"/> + <source>KeyNavigation is only available via attached properties</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativeKeysAttached</name> + <message> + <location line="+1"/> + <source>Keys is only available via attached properties</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativeListModel</name> + <message> + <location filename="../src/declarative/util/qdeclarativelistmodel.cpp" line="+399"/> + <source>remove: index %1 out of range</source> + <translation>remove: a(z) %1 index túl nagy</translation> + </message> + <message> + <location line="+33"/> + <source>insert: value is not an object</source> + <translation>insert: az érték nem objektum</translation> + </message> + <message> + <location line="+5"/> + <source>insert: index %1 out of range</source> + <translation>insert: a(z) %1 index túl nagy</translation> + </message> + <message> + <location line="+30"/> + <source>move: out of range</source> + <translation>move: határokon kívül</translation> + </message> + <message> + <location line="+40"/> + <source>append: value is not an object</source> + <translation>append: az érték nem objektum</translation> + </message> + <message> + <location line="+132"/> + <location line="+15"/> + <source>ListElement: cannot contain nested elements</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>get: index %1 out of range</source> + <translation type="obsolete">get: a(z) %1 index túl nagy</translation> + </message> + <message> + <location line="-92"/> + <source>set: value is not an object</source> + <translation>set: az érték nem objektum</translation> + </message> + <message> + <location line="+4"/> + <location line="+34"/> + <source>set: index %1 out of range</source> + <translation>set: a(z) %1 index túl nagy</translation> + </message> + <message> + <source>ListElement: cannot use default property</source> + <translation type="obsolete">ListElement: nem lehet az alapértelmezett tulajdonságot használni</translation> + </message> + <message> + <location line="+58"/> + <source>ListElement: cannot use reserved "id" property</source> + <translation>ListElement: nem lehet a lefoglalt "id" tulajdonságot használni</translation> + </message> + <message> + <location line="+49"/> + <source>ListElement: cannot use script for property value</source> + <translation>ListElement: nem lehet scriptet használni tulajdonság értéknek</translation> + </message> + <message> + <location line="+29"/> + <source>ListModel: undefined property '%1'</source> + <translation>ListModel: nem definiált tulajdonság: '%1'</translation> + </message> +</context> +<context> + <name>QDeclarativeLoader</name> + <message> + <location filename="../src/declarative/graphicsitems/qdeclarativeloader.cpp" line="+313"/> + <source>Loader does not support loading non-visual elements.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativeParentAnimation</name> + <message> + <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="-169"/> + <source>Unable to preserve appearance under complex transform</source> + <translation>Nem lehet a kinézetet megőrizni a komplex transzformáció alatt</translation> + </message> + <message> + <location line="+10"/> + <location line="+7"/> + <source>Unable to preserve appearance under non-uniform scale</source> + <translation>Nem lehet a kinézetet megőrizni a nem-uniform skálázás alatt</translation> + </message> + <message> + <location line="+7"/> + <source>Unable to preserve appearance under scale of 0</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativeParentChange</name> + <message> + <location filename="../src/declarative/util/qdeclarativestateoperations.cpp" line="+95"/> + <source>Unable to preserve appearance under complex transform</source> + <translation type="unfinished">Nem lehet a kinézetet megőrizni a komplex transzformáció alatt</translation> + </message> + <message> + <location line="+10"/> + <location line="+7"/> + <source>Unable to preserve appearance under non-uniform scale</source> + <translation type="unfinished">Nem lehet a kinézetet megőrizni a nem-uniform skálázás alatt</translation> + </message> + <message> + <location line="+7"/> + <source>Unable to preserve appearance under scale of 0</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativeParser</name> + <message> + <location filename="../src/declarative/qml/parser/qdeclarativejslexer.cpp" line="+579"/> + <source>Illegal character</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+14"/> + <source>Unclosed string at end of line</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+26"/> + <source>Illegal escape squence</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-77"/> + <location line="+123"/> + <location line="+54"/> + <source>Illegal unicode escape sequence</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-28"/> + <source>Unclosed comment at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+102"/> + <source>Illegal syntax for exponential number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+26"/> + <source>Identifier cannot start with numeric literal</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+338"/> + <source>Unterminated regular expression literal</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>Invalid regular expression flag '%0'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <location line="+22"/> + <source>Unterminated regular expression backslash sequence</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>Unterminated regular expression class</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/declarative/qml/parser/qdeclarativejsparser.cpp" line="+1828"/> + <location line="+67"/> + <source>Syntax error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-65"/> + <source>Unexpected token `%1'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+28"/> + <location line="+24"/> + <source>Expected token `%1'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/declarative/qml/qdeclarativescriptparser.cpp" line="+271"/> + <source>Expected type name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-11"/> + <location line="+431"/> + <location line="+59"/> + <source>Property value set multiple times</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-343"/> + <source>Invalid import qualifier ID</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Reserved name "Qt" cannot be used as an qualifier</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>Script import qualifiers must be unique.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Script import requires a qualifier</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Library import requires a version</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+59"/> + <source>Expected parameter type</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+42"/> + <source>Invalid property type modifier</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Unexpected property type modifier</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Expected property type</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Readonly not yet supported</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+215"/> + <source>JavaScript declaration outside Script element</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativePauseAnimation</name> + <message> + <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="-1977"/> + <source>Cannot set a duration of < 0</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativePixmapCache</name> + <message> + <location filename="../src/declarative/util/qdeclarativepixmapcache.cpp" line="+190"/> + <source>Error decoding: %1: %2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+70"/> + <source>Failed to get image from provider: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+19"/> + <location line="+345"/> + <source>Cannot open: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+37"/> + <source>Unknown Error loading %1</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativePropertyAnimation</name> + <message> + <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+1102"/> + <source>Cannot set a duration of < 0</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativePropertyChanges</name> + <message> + <location filename="../src/declarative/util/qdeclarativepropertychanges.cpp" line="+267"/> + <source>PropertyChanges does not support creating state-specific objects.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+157"/> + <source>Cannot assign to non-existent property "%1"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Cannot assign to read-only property "%1"</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativeTextInput</name> + <message> + <location filename="../src/declarative/graphicsitems/qdeclarativetextinput.cpp" line="+793"/> + <location line="+8"/> + <source>Could not load cursor delegate</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Could not instantiate cursor delegate</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativeVME</name> + <message> + <location filename="../src/declarative/qml/qdeclarativevme.cpp" line="+194"/> + <source>Unable to create object of type %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+390"/> + <source>Cannot assign value %1 to property %2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+22"/> + <source>Cannot assign object type %1 with no default method</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Cannot connect mismatched signal/slot %1 %vs. %2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Cannot assign an object to signal property %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+146"/> + <source>Cannot assign object to list</source> + <translation type="unfinished">Nem lehet objektumot listához rendelni</translation> + </message> + <message> + <location line="+41"/> + <source>Cannot assign object to interface property</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Unable to create attached object</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+32"/> + <source>Cannot set properties on %1 as it is null</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativeVisualDataModel</name> + <message> + <location filename="../src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp" line="+1088"/> + <source>Delegate component must be Item type.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativeXmlListModel</name> + <message> + <location filename="../src/declarative/util/qdeclarativeutilmodule.cpp" line="-12"/> + <location line="+2"/> + <source>Qt was built without support for xmlpatterns</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativeXmlListModelRole</name> + <message> + <location filename="../src/declarative/util/qdeclarativexmllistmodel_p.h" line="+174"/> + <source>An XmlRole query must not start with '/'</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QDeclarativeXmlRoleList</name> + <message> + <location filename="../src/declarative/util/qdeclarativexmllistmodel.cpp" line="+712"/> + <source>An XmlListModel query must start with '/' or "//"</source> + <translation type="unfinished"></translation> </message> </context> <context> @@ -1262,28 +2908,28 @@ erre <message> <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/> <source>QDial</source> - <translation>QDial</translation> + <translation></translation> </message> <message> <location line="+2"/> <source>SpeedoMeter</source> - <translation>Sebességmérő</translation> + <translation></translation> </message> <message> <location line="+2"/> <source>SliderHandle</source> - <translation>CsúszkaKezelő</translation> + <translation></translation> </message> </context> <context> <name>QDialog</name> <message> - <location filename="../src/gui/dialogs/qdialog.cpp" line="+636"/> + <location filename="../src/gui/dialogs/qdialog.cpp" line="+645"/> <source>What's This?</source> <translation>Mi ez?</translation> </message> <message> - <location line="-135"/> + <location line="-122"/> <source>Done</source> <translation>Kész</translation> </message> @@ -1291,9 +2937,9 @@ erre <context> <name>QDialogButtonBox</name> <message> - <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1872"/> + <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1920"/> <location line="+464"/> - <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+622"/> + <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+649"/> <source>OK</source> <translation>OK</translation> </message> @@ -1305,7 +2951,7 @@ erre <message> <location line="+0"/> <source>&Save</source> - <translation>&Mentés</translation> + <translation>Menté&s</translation> </message> <message> <location line="+3"/> @@ -1315,12 +2961,12 @@ erre <message> <location line="+3"/> <source>Cancel</source> - <translation>Mégse</translation> + <translation>Mégsem</translation> </message> <message> <location line="+0"/> <source>&Cancel</source> - <translation>&Mégse</translation> + <translation>&Mégsem</translation> </message> <message> <location line="+3"/> @@ -1335,12 +2981,12 @@ erre <message> <location line="+3"/> <source>Apply</source> - <translation>Alkalmazza</translation> + <translation>Alkalmaz</translation> </message> <message> <location line="+3"/> <source>Reset</source> - <translation>Visszaállítás</translation> + <translation>Törlés</translation> </message> <message> <location line="+3"/> @@ -1350,12 +2996,12 @@ erre <message> <location line="+4"/> <source>Don't Save</source> - <translation>Ne mentse</translation> + <translation>Nincs mentés</translation> </message> <message> <location line="+4"/> <source>Discard</source> - <translation>Eldob</translation> + <translation>Elvetés</translation> </message> <message> <location line="+3"/> @@ -1365,7 +3011,7 @@ erre <message> <location line="+3"/> <source>Yes to &All</source> - <translation>Igen az &összesre</translation> + <translation>&Mindent elfogad</translation> </message> <message> <location line="+3"/> @@ -1375,12 +3021,12 @@ erre <message> <location line="+3"/> <source>N&o to All</source> - <translation>&Nem az összesre</translation> + <translation>Mindent &kihagy</translation> </message> <message> <location line="+3"/> <source>Save All</source> - <translation>Az összes mentése</translation> + <translation>Mindet menti</translation> </message> <message> <location line="+3"/> @@ -1390,17 +3036,17 @@ erre <message> <location line="+3"/> <source>Retry</source> - <translation>Újra próbálkozás</translation> + <translation>Újra</translation> </message> <message> <location line="+3"/> <source>Ignore</source> - <translation>Mellőzés</translation> + <translation>Kihagyás</translation> </message> <message> <location line="+3"/> <source>Restore Defaults</source> - <translation>Alapértelemezett beállítások visszaállítása</translation> + <translation>Alapértelmezések visszaállítása</translation> </message> <message> <location line="-29"/> @@ -1429,7 +3075,7 @@ erre <location line="+3"/> <source>Kind</source> <comment>Match OS X Finder</comment> - <translation>Fajta</translation> + <translation>Kind</translation> </message> <message> <location line="+2"/> @@ -1440,7 +3086,7 @@ erre <message> <location line="+6"/> <source>Date Modified</source> - <translation>Dátum módosítva</translation> + <translation>Módosítás dátuma</translation> </message> </context> <context> @@ -1453,12 +3099,12 @@ erre <message> <location line="+2"/> <source>Dock</source> - <translation>Dokkolás</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Float</source> - <translation>Lebegtetés</translation> + <translation></translation> </message> </context> <context> @@ -1477,17 +3123,7 @@ erre <context> <name>QErrorMessage</name> <message> - <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+414"/> - <source>&Show this message again</source> - <translation>Az üzenet újbóli &megjelenítése</translation> - </message> - <message> - <location line="+1"/> - <source>&OK</source> - <translation>&OK</translation> - </message> - <message> - <location line="-207"/> + <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+208"/> <source>Debug Message:</source> <translation>Debug üzenet:</translation> </message> @@ -1501,110 +3137,112 @@ erre <source>Fatal Error:</source> <translation>Végzetes hiba:</translation> </message> + <message> + <location line="+200"/> + <source>&Show this message again</source> + <translation>Üzenet megjelenítése i&smét</translation> + </message> + <message> + <location line="+1"/> + <source>&OK</source> + <translation>&OK</translation> + </message> </context> <context> <name>QFile</name> <message> - <location filename="../src/corelib/io/qfile.cpp" line="+697"/> + <location filename="../src/corelib/io/qfile.cpp" line="+703"/> <location line="+155"/> <source>Destination file exists</source> - <translation>A cél fájl létezik</translation> + <translation>A célfájl már létezik</translation> </message> <message> <location line="-140"/> <source>Will not rename sequential file using block copy</source> - <translation>Blokkos másolásnál nem lesznek átnevezve az egymást követő fájlok</translation> + <translation>A szekvenciális fájlok nem nevezhetők át másolással</translation> </message> <message> <location line="+23"/> <source>Cannot remove source file</source> - <translation>Nem lehet a forrás fájlt eltávolítani</translation> + <translation>A forrás nem törölhető</translation> </message> <message> <location line="+130"/> <source>Cannot open %1 for input</source> - <translation>Nem lehet megnyitni %1-t bementre</translation> + <translation>A(z) %1 nem nyitható meg bemenetként</translation> </message> <message> <location line="+17"/> <source>Cannot open for output</source> - <translation>Nem lehet megnyitni a kimenetre</translation> + <translation>Nem nyitható meg kimenetként</translation> </message> <message> <location line="+10"/> <source>Failure to write block</source> - <translation>Hiba történt a blokk írás közben</translation> + <translation>Hiba a blokk írásakor</translation> </message> <message> <location line="+13"/> <source>Cannot create %1 for output</source> - <translation>Nem lehet létrehozni a(z) %1-t kimenetre</translation> + <translation>A(z) %1 nem hozható létre</translation> </message> </context> <context> <name>QFileDialog</name> <message> <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+558"/> - <location line="+450"/> + <location line="+481"/> <source>All Files (*)</source> - <translation>Az összes fájl (*)</translation> - </message> - <message> - <location filename="../src/gui/dialogs/qfiledialog.ui"/> - <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> - <source>Back</source> - <translation>Vissza</translation> + <translation>Minden fájl (*)</translation> </message> <message> - <location/> - <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> - <source>List View</source> - <translation>Lista nézet</translation> + <location line="+216"/> + <source>Directories</source> + <translation>Könyvtárak</translation> </message> <message> - <location/> - <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> - <source>Detail View</source> - <translation>Részletes nézet</translation> + <location line="-3"/> + <location line="+55"/> + <location line="+1532"/> + <source>&Open</source> + <translation>&Megnyitás</translation> </message> <message> - <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+464"/> - <location line="+1"/> - <source>File</source> - <translation>Fájl</translation> + <location line="-1587"/> + <location line="+55"/> + <source>&Save</source> + <translation>Menté&s</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-467"/> + <location line="-766"/> <source>Open</source> <translation>Megnyitás</translation> </message> <message> - <location line="+2"/> - <source>Save As</source> - <translation>Mentés másként</translation> - </message> - <message> - <location line="+689"/> - <location line="+50"/> - <location line="+1528"/> - <source>&Open</source> - <translation>&Megnyitás</translation> + <location line="+1537"/> + <source>%1 already exists. +Do you want to replace it?</source> + <translation>%1 már létezik. +Lecseréli?</translation> </message> <message> - <location line="-1578"/> - <location line="+50"/> - <source>&Save</source> - <translation>&Mentés</translation> + <location line="+20"/> + <source>%1 +File not found. +Please verify the correct file name was given.</source> + <translation>%1 +A fájl nem található. +Ellenőrizze, hogy jól adta-e meg a fájl nevét.</translation> </message> <message> - <location line="+1801"/> - <source>Recent Places</source> - <translation>Utolsó helyek</translation> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+402"/> + <source>My Computer</source> + <translation>Számítógép</translation> </message> <message> - <location line="-2511"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1526"/> <source>&Rename</source> - <translation>&Átnevezés</translation> + <translation>Át&nevezés</translation> </message> <message> <location line="+1"/> @@ -1617,101 +3255,107 @@ erre <translation>&Rejtett fájlok megjelenítése</translation> </message> <message> - <location line="+1957"/> - <source>New Folder</source> - <translation>Új mappa</translation> + <location filename="../src/gui/dialogs/qfiledialog.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> + <source>Back</source> + <translation>Vissza</translation> </message> <message> - <location line="-1992"/> - <source>Find Directory</source> - <translation>Könyvtár keresése</translation> + <location/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> + <source>Parent Directory</source> + <translation>Szülőkönyvtár</translation> </message> <message> - <location line="+696"/> - <source>Directories</source> - <translation>Könyvtárak</translation> + <location/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> + <source>List View</source> + <translation>Lista nézet</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+174"/> - <source>All Files (*.*)</source> - <translation>Az összes fájl (*.*)</translation> + <location/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> + <source>Detail View</source> + <translation>Részletes nézet</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-655"/> - <location line="+659"/> - <source>Directory:</source> - <translation>Könyvtár:</translation> + <location/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> + <source>Files of type:</source> + <translation>Fájlok típusa:</translation> </message> <message> - <location line="+810"/> - <source>%1 already exists. -Do you want to replace it?</source> - <translation>A(z) %1 már létezik. -Szeretné lecserélni?</translation> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+6"/> + <location line="+679"/> + <source>Directory:</source> + <translation>Könyvtár:</translation> </message> <message> - <location line="+20"/> - <source>%1 + <source> File not found. -Please verify the correct file name was given.</source> - <translation>%1 -Fájl nem található. -Kérem ellenőrizze, hogy helyes fájlnevet adott meg.</translation> - </message> - <message> - <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+402"/> - <source>My Computer</source> - <translation>Sajátgép</translation> - </message> - <message> - <location filename="../src/gui/dialogs/qfiledialog.ui"/> - <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> - <source>Parent Directory</source> - <translation>Szülő könyvtár</translation> - </message> - <message> - <location/> - <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> - <source>Files of type:</source> - <translation>Típusfájlok:</translation> +Please verify the correct file name was given</source> + <translation type="obsolete"> +A fájl nem található. +Ellenőrizze, hogy jól adta-e meg a fájl nevét</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-54"/> + <location line="+785"/> <location line="+862"/> <source>%1 Directory not found. Please verify the correct directory name was given.</source> <translation>%1 A könyvtár nem található. -Kérem ellenőrizze le, hogy helyes könyvtár nevet adott meg.</translation> +Ellenőrizze, hogy jól adta-e meg a könyvtár nevét.</translation> </message> <message> <location line="-218"/> <source>'%1' is write protected. Do you want to delete it anyway?</source> - <translation>A(z) '%1' írásvédett. -Mégis törölni szeretné?</translation> + <translation>'%1' írásvédett. +Biztosan törölni akarja?</translation> </message> <message> <location line="+5"/> <source>Are sure you want to delete '%1'?</source> - <translation>Törölni szeretné '%1'?</translation> + <translation>Biztosan törölni akarja '%1'-t?</translation> </message> <message> <location line="+15"/> <source>Could not delete directory.</source> - <translation>Nem sikerült törölni a könyvtárat.</translation> + <translation>A könyvtár nem törölhető.</translation> + </message> + <message> + <location line="+404"/> + <source>Recent Places</source> + <translation>Legutóbbi helyek</translation> + </message> + <message> + <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+148"/> + <source>All Files (*.*)</source> + <translation>Minden fájl (*.*)</translation> </message> <message> - <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="-4"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2569"/> + <source>Save As</source> + <translation>Mentés másként</translation> + </message> + <message> + <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+464"/> <source>Drive</source> - <translation>Vezérlő</translation> + <translation>Meghajtó</translation> </message> <message> - <location line="+9"/> + <location line="+3"/> + <location line="+1"/> + <source>File</source> + <translation>Fájl</translation> + </message> + <message> + <location line="+5"/> <source>File Folder</source> <comment>Match Windows Explorer</comment> - <translation>Fájl mappa</translation> + <translation>Mappa</translation> </message> <message> <location line="+2"/> @@ -1723,13 +3367,13 @@ Mégis törölni szeretné?</translation> <location line="+9"/> <source>Alias</source> <comment>Mac OS X Finder</comment> - <translation>Álnév</translation> + <translation>Link</translation> </message> <message> <location line="+2"/> <source>Shortcut</source> <comment>All other platforms</comment> - <translation>Gyorsbillentyű</translation> + <translation>Parancsikon</translation> </message> <message> <location line="+7"/> @@ -1737,9 +3381,14 @@ Mégis törölni szeretné?</translation> <translation>Ismeretlen</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2111"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-4"/> + <source>Find Directory</source> + <translation>Keresés a könyvtárban</translation> + </message> + <message> + <location line="+29"/> <source>Show </source> - <translation>Megjelenítés</translation> + <translation>Megjelenítés </translation> </message> <message> <location filename="../src/gui/dialogs/qfiledialog.ui"/> @@ -1748,80 +3397,86 @@ Mégis törölni szeretné?</translation> <translation>Előre</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+7"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1992"/> + <source>New Folder</source> + <translation>Új könyvtár</translation> + </message> + <message> + <location line="-1985"/> <source>&New Folder</source> - <translation>&Új mappa</translation> + <translation>Ú&j könyvtár</translation> </message> <message> - <location line="+667"/> - <location line="+38"/> + <location line="+687"/> + <location line="+43"/> <source>&Choose</source> <translation>&Kiválasztás</translation> </message> <message> <location filename="../src/gui/dialogs/qsidebar.cpp" line="+442"/> <source>Remove</source> - <translation>Eltávolítás</translation> + <translation>Törlés</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-698"/> - <location line="+663"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-723"/> + <location line="+683"/> <source>File &name:</source> - <translation>Fájl &név:</translation> + <translation>Fájl &neve:</translation> </message> <message> <location filename="../src/gui/dialogs/qfiledialog.ui"/> <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Look in:</source> - <translation>Benéz:</translation> + <translation>Keresés itt:</translation> </message> <message> <location/> <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Create New Folder</source> - <translation>Új mappa létrehozása</translation> + <translation>Új könyvtár létrehozása</translation> </message> -</context> -<context> - <name>QFileSystemModel</name> <message> - <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+744"/> - <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+476"/> - <source>%1 TB</source> - <translation>%1 TB</translation> + <location/> + <source>Go back</source> + <translation>Vissza</translation> </message> <message> - <location line="+2"/> - <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> - <source>%1 GB</source> - <translation>%1 GB</translation> + <location/> + <source>Go forward</source> + <translation>Előre</translation> </message> <message> - <location line="+2"/> - <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> - <source>%1 MB</source> - <translation>%1 MB</translation> + <location/> + <source>Go to the parent directory</source> + <translation>Szülő mappába</translation> </message> <message> - <location line="+2"/> - <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> - <source>%1 KB</source> - <translation>%1 KB</translation> + <location/> + <source>Create a New Folder</source> + <translation>Új mappa létrehozása</translation> </message> <message> - <location line="+1"/> - <source>%1 bytes</source> - <translation>%1 bájt</translation> + <location/> + <source>Change to list view mode</source> + <translation>Váltás lista nézetre</translation> </message> <message> - <location line="+77"/> + <location/> + <source>Change to detail view mode</source> + <translation>Váltás részletes lista nézetre</translation> + </message> +</context> +<context> + <name>QFileSystemModel</name> + <message> + <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+836"/> <source>Invalid filename</source> <translation>Érvénytelen fájlnév</translation> </message> <message> <location line="+1"/> <source><b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks.</source> - <translation><b>A(z) "%1" név nem használható.</b><p>Próbáljon meg más nevet használni, kevesebb karakterrel vagy írásjelekek nélkül.</translation> + <translation><b>A(z) "%1" név nem használható.</b><p>Próbálja meg másik névvel, kevesebb karakterrel vagy írásjelek nélkül.</translation> </message> <message> <location line="+64"/> @@ -1837,7 +3492,7 @@ Mégis törölni szeretné?</translation> <location line="+4"/> <source>Kind</source> <comment>Match OS X Finder</comment> - <translation>Fajta</translation> + <translation>Kind</translation> </message> <message> <location line="+2"/> @@ -1848,12 +3503,12 @@ Mégis törölni szeretné?</translation> <message> <location line="+7"/> <source>Date Modified</source> - <translation>Dátum módosítva</translation> + <translation>Módosítás dátuma</translation> </message> <message> - <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+258"/> + <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+261"/> <source>My Computer</source> - <translation>Sajátgép</translation> + <translation>Számítógép</translation> </message> <message> <location line="+2"/> @@ -1861,6 +3516,35 @@ Mégis törölni szeretné?</translation> <translation>Számítógép</translation> </message> <message> + <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="-176"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+482"/> + <source>%1 TB</source> + <translation>%1 TB</translation> + </message> + <message> + <location line="+2"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> + <source>%1 GB</source> + <translation>%1 GB</translation> + </message> + <message> + <location line="+2"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> + <source>%1 MB</source> + <translation>%1 MB</translation> + </message> + <message> + <location line="+2"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> + <source>%1 KB</source> + <translation>%1 KB</translation> + </message> + <message> + <location line="+1"/> + <source>%1 bytes</source> + <translation>%1 byte</translation> + </message> + <message> <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+1"/> <source>%1 byte(s)</source> <translation>%1 bájt</translation> @@ -1897,7 +3581,7 @@ Mégis törölni szeretné?</translation> <message> <location line="-1311"/> <source>Demi</source> - <translation>Fél</translation> + <translation>Félkövér</translation> </message> <message> <location line="+6"/> @@ -1915,12 +3599,12 @@ Mégis törölni szeretné?</translation> <location line="-1165"/> <location line="+1167"/> <source>Oblique</source> - <translation>Homályos</translation> + <translation>Ferde</translation> </message> <message> <location line="+704"/> <source>Any</source> - <translation>Bármilyen</translation> + <translation>Bármelyik</translation> </message> <message> <location line="+3"/> @@ -1935,7 +3619,7 @@ Mégis törölni szeretné?</translation> <message> <location line="+3"/> <source>Cyrillic</source> - <translation>Ciril</translation> + <translation>Cirill</translation> </message> <message> <location line="+3"/> @@ -1955,17 +3639,17 @@ Mégis törölni szeretné?</translation> <message> <location line="+3"/> <source>Syriac</source> - <translation>Szíriai</translation> + <translation>Szír</translation> </message> <message> <location line="+3"/> <source>Thaana</source> - <translation>Thana</translation> + <translation>Thaana</translation> </message> <message> <location line="+3"/> <source>Devanagari</source> - <translation>Dévanágari</translation> + <translation>Dévangári</translation> </message> <message> <location line="+3"/> @@ -2000,12 +3684,12 @@ Mégis törölni szeretné?</translation> <message> <location line="+3"/> <source>Kannada</source> - <translation>Kanadai</translation> + <translation>Kannada</translation> </message> <message> <location line="+3"/> <source>Malayalam</source> - <translation>Maláj</translation> + <translation>Malayalam</translation> </message> <message> <location line="+3"/> @@ -2015,7 +3699,7 @@ Mégis törölni szeretné?</translation> <message> <location line="+3"/> <source>Thai</source> - <translation>Tájföldi</translation> + <translation>Thai</translation> </message> <message> <location line="+3"/> @@ -2030,12 +3714,12 @@ Mégis törölni szeretné?</translation> <message> <location line="+3"/> <source>Myanmar</source> - <translation>Mianmari</translation> + <translation>Miannmari</translation> </message> <message> <location line="+3"/> <source>Georgian</source> - <translation>Grúz</translation> + <translation>Gergely</translation> </message> <message> <location line="+3"/> @@ -2065,12 +3749,12 @@ Mégis törölni szeretné?</translation> <message> <location line="+3"/> <source>Vietnamese</source> - <translation>Vietnámi</translation> + <translation>Vietnám</translation> </message> <message> <location line="+3"/> <source>Symbol</source> - <translation>Szimbólum</translation> + <translation>Szimbolum</translation> </message> <message> <location line="+3"/> @@ -2080,7 +3764,7 @@ Mégis törölni szeretné?</translation> <message> <location line="+3"/> <source>Runic</source> - <translation>Székely</translation> + <translation>Rúna</translation> </message> <message> <location line="+3"/> @@ -2091,14 +3775,14 @@ Mégis törölni szeretné?</translation> <context> <name>QFontDialog</name> <message> - <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+776"/> + <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+768"/> <source>&Font</source> - <translation>&Betű</translation> + <translation>&Betűtípus</translation> </message> <message> <location line="+1"/> <source>Font st&yle</source> - <translation>Betű st&ílus</translation> + <translation>Betűtípu&s stílusa</translation> </message> <message> <location line="+1"/> @@ -2113,97 +3797,81 @@ Mégis törölni szeretné?</translation> <message> <location line="+2"/> <source>Stri&keout</source> - <translation>Ki&talál</translation> + <translation>Á&thúzott</translation> </message> <message> <location line="+1"/> <source>&Underline</source> - <translation>&Aláhúzás</translation> + <translation>&Aláhúzott</translation> </message> <message> <location line="+1"/> <source>Sample</source> - <translation>Minta</translation> + <translation>Példa</translation> </message> <message> - <location line="-608"/> - <location line="+257"/> - <source>Select Font</source> - <translation>Betű kiválasztása</translation> + <location line="+1"/> + <source>Wr&iting System</source> + <translation>Í&rásmód</translation> </message> <message> - <location line="+352"/> - <source>Wr&iting System</source> - <translation>Rendszer &írása</translation> + <location line="-596"/> + <source>Select Font</source> + <translation>Betűtípus kiválasztása</translation> </message> </context> <context> <name>QFtp</name> <message> - <location filename="../src/qt3support/network/q3ftp.cpp" line="+2303"/> - <source>Host %1 found</source> - <translation>%1 host megtalálva</translation> - </message> - <message> - <location line="+7"/> - <source>Host found</source> - <translation>Hoszt megtalálva</translation> - </message> - <message> - <location filename="../src/network/access/qftp.cpp" line="+1008"/> - <location filename="../src/qt3support/network/q3ftp.cpp" line="-1456"/> - <location line="+1451"/> - <source>Connected to host %1</source> - <translation>%1 hosztra csatlkoztatva</translation> - </message> - <message> - <location filename="../src/qt3support/network/q3ftp.cpp" line="+7"/> - <source>Connected to host</source> - <translation>Hosztra csatlakoztatva</translation> - </message> - <message> - <location line="-5"/> - <source>Connection to %1 closed</source> - <translation>%1-re csatlakoztatása bezárva</translation> - </message> - <message> - <location filename="../src/network/access/qftp.cpp" line="+1377"/> - <location filename="../src/qt3support/network/q3ftp.cpp" line="-243"/> - <location line="+250"/> - <source>Connection closed</source> - <translation>Kapcsolat bezárva</translation> + <location filename="../src/network/access/qftp.cpp" line="+828"/> + <location filename="../src/qt3support/network/q3ftp.cpp" line="+683"/> + <source>Not connected</source> + <translation>Nincs kapcsolat</translation> </message> <message> - <location line="-1489"/> - <location filename="../src/qt3support/network/q3ftp.cpp" line="-1566"/> + <location line="+68"/> + <location filename="../src/qt3support/network/q3ftp.cpp" line="+65"/> <source>Host %1 not found</source> - <translation>%1 host nem található</translation> + <translation>%1 kiszolgáló nem található</translation> </message> <message> <location line="+4"/> <location filename="../src/qt3support/network/q3ftp.cpp" line="+4"/> <source>Connection refused to host %1</source> - <translation>Kapcsolat elutasítva a(z) %1 hoszttal</translation> + <translation>A kapcsolódás %1 kiszolgálóhoz elutasítva</translation> </message> <message> <location line="+4"/> <source>Connection timed out to host %1</source> - <translation>Kapcsolati időtúllépés a %1 hoszttal</translation> + <translation>A várakozási idő lejárt a(z) %1 kiszolgálóhoz</translation> </message> <message> - <location line="+501"/> + <location line="+104"/> + <location filename="../src/qt3support/network/q3ftp.cpp" line="+102"/> + <location line="+1451"/> + <source>Connected to host %1</source> + <translation>Kapcsolódva %1 kiszolgálóhoz</translation> + </message> + <message> + <location line="+219"/> + <location filename="../src/qt3support/network/q3ftp.cpp" line="-1290"/> + <source>Connection refused for data connection</source> + <translation>Az adatkapcsolat elutasítva</translation> + </message> + <message> + <location line="+178"/> <location line="+29"/> - <location filename="../src/qt3support/network/q3ftp.cpp" line="+458"/> + <location filename="../src/qt3support/network/q3ftp.cpp" line="+195"/> <location line="+728"/> <source>Unknown error</source> <translation>Ismeretlen hiba</translation> </message> <message> - <location line="+891"/> + <location line="+897"/> <location filename="../src/qt3support/network/q3ftp.cpp" line="+77"/> <source>Connecting to host failed: %1</source> - <translation>A hoszthoz kapcsolódás nem sikerült: + <translation>A kapcsolódás a kiszolgálóhoz nem sikerült: %1</translation> </message> <message> @@ -2211,7 +3879,7 @@ Mégis törölni szeretné?</translation> <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/> <source>Login failed: %1</source> - <translation>Bejelentkezési hiba: + <translation>A bejelentkezés nem sikerült: %1</translation> </message> <message> @@ -2219,7 +3887,7 @@ Mégis törölni szeretné?</translation> <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/> <source>Listing directory failed: %1</source> - <translation>Könyvtár listázási hiba: + <translation>A könyvtár listázása nem sikerült: %1</translation> </message> <message> @@ -2227,7 +3895,7 @@ Mégis törölni szeretné?</translation> <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/> <source>Changing directory failed: %1</source> - <translation>Könyvtár változtatási hiba: + <translation>A könyvtárváltás nem sikerült: %1</translation> </message> <message> @@ -2235,7 +3903,7 @@ Mégis törölni szeretné?</translation> <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/> <source>Downloading file failed: %1</source> - <translation>Fájl letöltési hiba: + <translation>A fájl letöltése nem sikerült: %1</translation> </message> <message> @@ -2243,7 +3911,7 @@ Mégis törölni szeretné?</translation> <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/> <source>Uploading file failed: %1</source> - <translation>Fájl feltöltési hiba: + <translation>A fájl feltöltése nem sikerült: %1</translation> </message> <message> @@ -2251,7 +3919,7 @@ Mégis törölni szeretné?</translation> <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/> <source>Removing file failed: %1</source> - <translation>Fájl eltávolítási hiba: + <translation>A fájl törlése nem sikerült: %1</translation> </message> <message> @@ -2259,7 +3927,7 @@ Mégis törölni szeretné?</translation> <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/> <source>Creating directory failed: %1</source> - <translation>Könyvtár létrehozási hiba: + <translation>A könyvtár létrehozása nem sikerült: %1</translation> </message> <message> @@ -2267,39 +3935,66 @@ Mégis törölni szeretné?</translation> <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/> <source>Removing directory failed: %1</source> - <translation>Könyvtár eltávolítása hiba: + <translation>A könyvtár törlése nem sikerült: %1</translation> </message> <message> - <location line="-1529"/> - <location filename="../src/qt3support/network/q3ftp.cpp" line="-1356"/> - <source>Not connected</source> - <translation>Nincs csatlakoztatva</translation> + <location line="+28"/> + <location filename="../src/qt3support/network/q3ftp.cpp" line="+25"/> + <location line="+250"/> + <source>Connection closed</source> + <translation>A kapcsolat bezárult</translation> </message> <message> - <location line="+399"/> - <location filename="../src/qt3support/network/q3ftp.cpp" line="+332"/> - <source>Connection refused for data connection</source> - <translation>Adat kapcsolat érdekében történő csatlakozás megtagadva</translation> + <location filename="../src/qt3support/network/q3ftp.cpp" line="-11"/> + <source>Host %1 found</source> + <translation>%1 kiszolgálót megtaláltam</translation> + </message> + <message> + <location line="+4"/> + <source>Connection to %1 closed</source> + <translation>A kapcsolat %1 kiszolgálóval bezárult</translation> + </message> + <message> + <location line="+3"/> + <source>Host found</source> + <translation>A kiszolgálót megtaláltam</translation> + </message> + <message> + <location line="+2"/> + <source>Connected to host</source> + <translation>Kapcsolódva a kiszolgálóhoz</translation> + </message> +</context> +<context> + <name>QGstreamerPlayerSession</name> + <message> + <source>Unable to play %1</source> + <translation type="obsolete">Nem lehet lejátszani: %1</translation> </message> </context> <context> <name>QHostInfo</name> <message> - <location filename="../src/network/kernel/qhostinfo_p.h" line="+185"/> + <location filename="../src/network/kernel/qhostinfo_p.h" line="+103"/> <source>Unknown error</source> <translation>Ismeretlen hiba</translation> </message> + <message> + <location filename="../src/network/kernel/qhostinfo.cpp" line="+171"/> + <source>No host name given</source> + <translation>Nem adott meg gépnevet</translation> + </message> </context> <context> <name>QHostInfoAgent</name> <message> - <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+257"/> + <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+260"/> <location line="+32"/> - <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+220"/> + <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+215"/> <location line="+27"/> <source>Host not found</source> - <translation>A hoszt nem található</translation> + <translation>A kiszolgáló nem található</translation> </message> <message> <location line="-45"/> @@ -2307,90 +4002,34 @@ Mégis törölni szeretné?</translation> <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-34"/> <location line="+29"/> <source>Unknown address type</source> - <translation>Ismeretlen cím típus</translation> - </message> - <message> - <location line="+10"/> - <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-19"/> - <location line="+27"/> - <source>Unknown error</source> - <translation>Ismeretlen hiba</translation> + <translation>Ismeretlen címtípus</translation> </message> <message> - <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-67"/> + <location line="-88"/> + <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-59"/> <source>No host name given</source> - <translation>Nincs hoszt név megadva</translation> + <translation>Nem adott meg gépnevet</translation> </message> <message> - <location line="+0"/> + <location line="+1"/> + <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+0"/> <source>Invalid hostname</source> - <translation>Érvénytelen hoszt név</translation> + <translation>Érvénytelen gépnév</translation> + </message> + <message> + <location line="+97"/> + <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+40"/> + <location line="+27"/> + <source>Unknown error</source> + <translation>Ismeretlen hiba</translation> </message> </context> <context> <name>QHttp</name> <message> - <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+578"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+1835"/> - <source>Connection refused</source> - <translation>Kapcsolat megtagadva</translation> - </message> - <message> - <location filename="../src/network/access/qhttp.cpp" line="+2639"/> - <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+3"/> - <source>Host %1 not found</source> - <translation>A(z) %1 hoszt nem található</translation> - </message> - <message> - <location line="-62"/> - <location filename="../src/qt3support/network/q3http.cpp" line="-45"/> - <source>Wrong content length</source> - <translation>Hibás tartalom hossz</translation> - </message> - <message> - <location line="+82"/> - <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+10"/> - <location line="+19"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+48"/> - <source>HTTP request failed</source> - <translation>HTTP kérési hiba</translation> - </message> - <message> - <location filename="../src/qt3support/network/q3http.cpp" line="+450"/> - <source>Host %1 found</source> - <translation>A(z) %1 hoszt nem található</translation> - </message> - <message> - <location line="+14"/> - <source>Host found</source> - <translation>Hoszt megtalálható</translation> - </message> - <message> - <location line="-11"/> - <source>Connected to host %1</source> - <translation>%1 hoszthoz csatlakozva van</translation> - </message> - <message> - <location line="+14"/> - <source>Connected to host</source> - <translation>Hosztra csatlakoztatva</translation> - </message> - <message> - <location line="-11"/> - <source>Connection to %1 closed</source> - <translation>%1-re csatlkozás bezárva</translation> - </message> - <message> - <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-22"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+14"/> - <source>Connection closed</source> - <translation>Kapcsolat bezárva</translation> - </message> - <message> - <location filename="../src/network/access/qhttp.cpp" line="-1077"/> + <location filename="../src/network/access/qhttp.cpp" line="+1582"/> <location line="+820"/> - <location filename="../src/qt3support/network/q3http.cpp" line="-1152"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+1159"/> <location line="+567"/> <source>Unknown error</source> <translation>Ismeretlen hiba</translation> @@ -2399,30 +4038,60 @@ Mégis törölni szeretné?</translation> <location line="-568"/> <location filename="../src/qt3support/network/q3http.cpp" line="-370"/> <source>Request aborted</source> - <translation>Kérés megszakítva</translation> + <translation>A kérés megszakítva</translation> </message> <message> <location line="+579"/> <location filename="../src/qt3support/network/q3http.cpp" line="+381"/> <source>No server set to connect to</source> - <translation>Nincsen szerver beállítva, amire csatlakozni lehetne</translation> + <translation>Nincs szerver megadva</translation> </message> <message> - <location line="+168"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+60"/> + <location line="+164"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+56"/> + <source>Wrong content length</source> + <translation>Rossz tartalomhossz</translation> + </message> + <message> + <location line="+4"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+4"/> <source>Server closed connection unexpectedly</source> <translation>A szerver váratlanul bezárta a kapcsolatot</translation> </message> <message> - <location line="+172"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+113"/> + <location line="+383"/> + <source>Error writing response to device</source> + <translation>Hiba a válasz eszközre írása során</translation> + </message> + <message> + <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-6"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+38"/> + <source>Connection refused</source> + <translation>A kapcsolat elutasítva</translation> + </message> + <message> + <location filename="../src/network/access/qhttp.cpp" line="-325"/> + <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+3"/> + <source>Host %1 not found</source> + <translation>%1 kiszolgáló nem található</translation> + </message> + <message> + <location line="+20"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+3"/> + <source>HTTP request failed</source> + <translation>A HTTP kérés nem sikerült</translation> + </message> + <message> + <location line="+94"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+69"/> <source>Invalid HTTP response header</source> - <translation>Érvénytelen HTTP válasz fejléc</translation> + <translation>Érvénytelen HTTP válasz-fejléc</translation> </message> <message> <location line="+28"/> <source>Unknown authentication method</source> - <translation>Ismeretlen hitelesítési eljárás</translation> + <translation>Ismeretlen azonosítási mód</translation> </message> <message> <location line="+97"/> @@ -2430,57 +4099,83 @@ Mégis törölni szeretné?</translation> <location filename="../src/qt3support/network/q3http.cpp" line="+40"/> <location line="+47"/> <source>Invalid HTTP chunked body</source> - <translation>Érvénytelen nagy HTTP törzs</translation> + <translation>Érvénytelen HTTP törzsrészlet</translation> </message> <message> - <location line="+38"/> - <source>Error writing response to device</source> - <translation>Hiba történt a válasz eszközre írása közben</translation> + <location filename="../src/qt3support/network/q3http.cpp" line="+294"/> + <source>Host %1 found</source> + <translation>%1 kiszolgálót megtaláltam</translation> + </message> + <message> + <location line="+3"/> + <source>Connected to host %1</source> + <translation>Kapcsolódva %1 kiszolgálóhoz</translation> </message> <message> - <location line="-173"/> + <location line="+3"/> + <source>Connection to %1 closed</source> + <translation>A kapcsolat %1 kiszolgálóval bezárult</translation> + </message> + <message> + <location line="+8"/> + <source>Host found</source> + <translation>A kiszolgálót megtaláltam</translation> + </message> + <message> + <location line="+3"/> + <source>Connected to host</source> + <translation>Kapcsolódva a kiszolgálóhoz</translation> + </message> + <message> + <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+7"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+3"/> + <source>Connection closed</source> + <translation>A kapcsolat bezárult</translation> + </message> + <message> + <location filename="../src/network/access/qhttp.cpp" line="-135"/> <source>Proxy authentication required</source> - <translation>Proxy hitelesítés szükséges</translation> + <translation>A proxy azonosítást követel</translation> </message> <message> <location line="+4"/> <source>Authentication required</source> - <translation>Hitelesítés szükséges</translation> + <translation>Azonosítás szükséges</translation> + </message> + <message> + <location line="-2425"/> + <source>HTTPS connection requested but SSL support not compiled in</source> + <translation>HTTPS kapcsolat kiépítése szükséges, de nincs SSL támogatás</translation> + </message> + <message> + <location line="+2266"/> + <source>Connection refused (or timed out)</source> + <translation>A kapcsolat elutasítva (vagy időtúllépés történt)</translation> </message> <message> <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+6"/> <source>Proxy requires authentication</source> - <translation>A proxy a hitelesítést kéri</translation> + <translation>A proxy azonosítást követel</translation> </message> <message> <location line="+3"/> <source>Host requires authentication</source> - <translation>A hoszt hitelesítést kér</translation> + <translation>A gép azonosítást követel</translation> </message> <message> <location line="+3"/> <source>Data corrupted</source> - <translation>Sérült adat</translation> + <translation>Az adatok megsérültek</translation> </message> <message> - <location line="+6"/> - <source>SSL handshake failed</source> - <translation>SSL kézfogási hiba</translation> - </message> - <message> - <location line="-3"/> + <location line="+3"/> <source>Unknown protocol specified</source> - <translation>Ismeretlen protokoll van megadva</translation> - </message> - <message> - <location filename="../src/network/access/qhttp.cpp" line="-159"/> - <source>Connection refused (or timed out)</source> - <translation>Kapcsolat megtagadva (vagy időtúllépés)</translation> + <translation>Ismeretlen protokoll</translation> </message> <message> - <location line="-2266"/> - <source>HTTPS connection requested but SSL support not compiled in</source> - <translation>HTTP kapcsolat lett kérve, de az SSL támogatás nincs beleforgatva</translation> + <location line="+3"/> + <source>SSL handshake failed</source> + <translation>Az SSL kézfogás sikertelen volt</translation> </message> </context> <context> @@ -2488,17 +4183,17 @@ Mégis törölni szeretné?</translation> <message> <location filename="../src/network/socket/qhttpsocketengine.cpp" line="-89"/> <source>Did not receive HTTP response from proxy</source> - <translation>Nem kapott HTTP választ a proxy-tól</translation> + <translation>A proxy nem küldött HTTP választ</translation> </message> <message> <location line="+25"/> <source>Error parsing authentication request from proxy</source> - <translation>Hiba történt a proxy hitelesítés kérésének elemzése közben</translation> + <translation>Hiba a proxy azonosítási kérelmének értelmezésekor</translation> </message> <message> <location line="+31"/> <source>Authentication required</source> - <translation>Hitelesítés szükséges</translation> + <translation>Azonosítás szükséges</translation> </message> <message> <location line="+27"/> @@ -2508,27 +4203,27 @@ Mégis törölni szeretné?</translation> <message> <location line="+10"/> <source>Error communicating with HTTP proxy</source> - <translation>Hiba történt a HTTP proxy-val történő kommunikáció közben</translation> + <translation>Hiba a HTTP proxyval való kommunikáció során</translation> </message> <message> <location line="+23"/> <source>Proxy server not found</source> - <translation>A proxy szerver nem található</translation> + <translation>A proxy nem található</translation> </message> <message> <location line="+2"/> <source>Proxy connection refused</source> - <translation>A proxy kapcsolat elutasítva</translation> + <translation>A proxy elutasította a kapcsolatot</translation> </message> <message> <location line="+2"/> <source>Proxy server connection timed out</source> - <translation>Proxy szerver kapcsolódási időtúllépés</translation> + <translation>A kapcslat időtúllépés miatt megszakadt a proxxyval</translation> </message> <message> <location line="+2"/> <source>Proxy connection closed prematurely</source> - <translation>Proxy kapcsolódás túl korán be lett zárva</translation> + <translation>A proxy váratlanul lezárta a kapcsolatot</translation> </message> </context> <context> @@ -2536,22 +4231,22 @@ Mégis törölni szeretné?</translation> <message> <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1491"/> <source>Error opening database</source> - <translation>Hiba történt az adatbázis megnyitása közben</translation> + <translation>Adatbázis megnyitási hiba</translation> </message> <message> <location line="+54"/> <source>Could not start transaction</source> - <translation>Nem sikerült elindítani a tranzakciót</translation> + <translation>A tranzakció nem indítható</translation> </message> <message> <location line="+13"/> <source>Unable to commit transaction</source> - <translation>Nem lehet kommitolni a tranzakciót</translation> + <translation>A tranzakció nem véglegesíthető</translation> </message> <message> <location line="+13"/> <source>Unable to rollback transaction</source> - <translation>Nem lehet visszagörgetni a tranzakciót</translation> + <translation>A tranzakció nem görgethető vissza</translation> </message> </context> <context> @@ -2559,102 +4254,102 @@ Mégis törölni szeretné?</translation> <message> <location line="-1149"/> <source>Unable to create BLOB</source> - <translation>Nem lehet BLOB-t létrehozni</translation> + <translation>A BLOB nem hozható létre </translation> </message> <message> <location line="+6"/> <source>Unable to write BLOB</source> - <translation>Nem lehet írni a BLOB-t</translation> + <translation>A BLOB nem írható</translation> </message> <message> <location line="+14"/> <source>Unable to open BLOB</source> - <translation>Nem lehet megnyitni a BLOB-t</translation> + <translation>A BLOB nem nyitható meg</translation> </message> <message> <location line="+16"/> <source>Unable to read BLOB</source> - <translation>Nem lehet olvasni a BLOB-t</translation> + <translation>A BLOB nem olvasható</translation> </message> <message> <location line="+125"/> <location line="+187"/> <source>Could not find array</source> - <translation>Nem sikerült megtalálni a tömböt</translation> + <translation>A tömb nem található</translation> </message> <message> <location line="-155"/> <source>Could not get array data</source> - <translation>Nem sikerüét megszerezni a tömb adatokat</translation> + <translation>A tömbbeli adatok nem érhetők el</translation> </message> <message> <location line="+210"/> <source>Could not get query info</source> - <translation>Nem sikerült megszerezni a lekérdezi információt</translation> + <translation>A lekérdezés-információ nem érhető el</translation> </message> <message> <location line="+20"/> <source>Could not start transaction</source> - <translation>Nem sikerült elindítani a tranzakciót</translation> + <translation>A tranzakció nem indítható</translation> </message> <message> <location line="+19"/> <source>Unable to commit transaction</source> - <translation>Nem lehet kommitolni a tranzakciót</translation> + <translation>A tranzakció nem véglegesíthető</translation> </message> <message> <location line="+42"/> <source>Could not allocate statement</source> - <translation>Nem sikerült lefoglalni a műveletet</translation> + <translation>A művelet helyfoglalása sikertelen</translation> </message> <message> <location line="+5"/> <source>Could not prepare statement</source> - <translation>Nem sikerült felkészülni a műveletre</translation> + <translation>A művelet előkészítése sikertelen</translation> </message> <message> <location line="+5"/> <location line="+11"/> <source>Could not describe input statement</source> - <translation>Nem sikerült leírni a bemeneti állítást</translation> + <translation>A bemeneti művelet leírása sikertelen</translation> </message> <message> <location line="+14"/> <source>Could not describe statement</source> - <translation>Nem sikerült leírni az állítást</translation> + <translation>A művelet leírása sikertelen</translation> </message> <message> <location line="+115"/> <source>Unable to close statement</source> - <translation>Nem lehet megnyitni az állítást</translation> + <translation>A művelet lezárása sikertelen</translation> </message> <message> <location line="+8"/> <source>Unable to execute query</source> - <translation>Nem lehet végrehajtani a lekérdezést</translation> + <translation>A művelet nem hajtható végre</translation> </message> <message> <location line="+46"/> <source>Could not fetch next item</source> - <translation>Nem lehet letölteni a következő elemet</translation> + <translation>A következő adat nem olvasható ki</translation> </message> <message> <location line="+197"/> <source>Could not get statement info</source> - <translation>Nem lehet az művelet információkat megszerezni</translation> + <translation>A következő művelet információi nem érhetők el</translation> </message> </context> <context> <name>QIODevice</name> <message> - <location filename="../src/corelib/global/qglobal.cpp" line="+2072"/> + <location filename="../src/corelib/global/qglobal.cpp" line="+2120"/> <source>Permission denied</source> - <translation>Beleegyezés megtagadva</translation> + <translation>Hozzáférés megtagadva</translation> </message> <message> <location line="+3"/> <source>Too many open files</source> - <translation>Túl sok fájl megnyitása</translation> + <translation>Túl sok fájl van nyitva</translation> </message> <message> <location line="+3"/> @@ -2664,10 +4359,10 @@ Mégis törölni szeretné?</translation> <message> <location line="+3"/> <source>No space left on device</source> - <translation>Nincs több hely a lemezen</translation> + <translation>Nincs több hely az eszközön</translation> </message> <message> - <location filename="../src/corelib/io/qiodevice.cpp" line="+1561"/> + <location filename="../src/corelib/io/qiodevice.cpp" line="+1598"/> <source>Unknown error</source> <translation>Ismeretlen hiba</translation> </message> @@ -2675,34 +4370,34 @@ Mégis törölni szeretné?</translation> <context> <name>QInputContext</name> <message> - <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+256"/> + <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+301"/> <source>XIM</source> <translation>XIM</translation> </message> <message> <location line="+4"/> <source>FEP</source> - <translation>FEP</translation> + <translation></translation> </message> <message> <location line="+23"/> <source>XIM input method</source> - <translation>XIM beviteli eljárás</translation> + <translation>XIM beviteli mód</translation> </message> <message> <location line="+4"/> <source>Windows input method</source> - <translation>Windows beviteli eljárás</translation> + <translation>Windows beviteli mód</translation> </message> <message> <location line="+4"/> <source>Mac OS X input method</source> - <translation>Mac OS X beviteli eljárás</translation> + <translation>Mac OS X beviteli mód</translation> </message> <message> <location line="+4"/> <source>S60 FEP input method</source> - <translation>S60 FEP beviteli eljárás</translation> + <translation>S60 FEP beviteli mód</translation> </message> </context> <context> @@ -2710,35 +4405,47 @@ Mégis törölni szeretné?</translation> <message> <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/> <source>Enter a value:</source> - <translation>Egy értél bevitele:</translation> + <translation>Írjon be egy értéket:</translation> </message> </context> <context> <name>QLibrary</name> <message> + <source>QLibrary::load_sys: Cannot load %1 (%2)</source> + <translation type="obsolete">QLibrary::load_sys: %1 nem tölthető be (%2)</translation> + </message> + <message> + <source>QLibrary::unload_sys: Cannot unload %1 (%2)</source> + <translation type="obsolete">QLibrary::load_sys: %1 nem távolítható el (%2)</translation> + </message> + <message> + <source>QLibrary::resolve_sys: Symbol "%1" undefined in %2 (%3)</source> + <translation type="obsolete">QLibrary::load_sys: "%1" szimbólum nem definiált ebben: %2 (%3)</translation> + </message> + <message> <location filename="../src/corelib/plugin/qlibrary.cpp" line="+383"/> <source>Could not mmap '%1': %2</source> - <translation>Nem sikerült az mmap '%1': %2</translation> + <translation>Nem sikerült mmap-olni a(z) '%1'-t: %2</translation> </message> <message> <location line="+22"/> <source>Plugin verification data mismatch in '%1'</source> - <translation>Beépülő modul igazoló adata nem megfelelő a(z) '%1'-ben</translation> + <translation>Plugin ellenőrző adat eltérés: '%1'</translation> </message> <message> <location line="+6"/> <source>Could not unmap '%1': %2</source> - <translation>Nem lehet eltávolítani a letérképezést '%1': %2</translation> + <translation>Nem sikerült unmap-olni a(z) '%1'-t: %2</translation> </message> <message> - <location line="+344"/> + <location line="+375"/> <source>The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]</source> - <translation>A(z) '%1' beépülő modul inkompatibilis Qt könyvtárat használ. (%2.%3.%4) [%5]</translation> + <translation>A(z) '%1' plugin inkompatíbilis Qt függvénykönyvtárat használ. (%2.%3.%4) [%5]</translation> </message> <message> <location line="+20"/> <source>The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"</source> - <translation>A(z) '%1' beépülő modul inkompatibilis Qt könyvtárat használ. A várt építési kulcs '%2', kapott '%3'</translation> + <translation>A(z) '%1' plugin inkompatíbilis Qt függvénykönyvtárat használ. A várt build kucs "%2", a kapott "%3"</translation> </message> <message> <location line="+365"/> @@ -2746,77 +4453,78 @@ Mégis törölni szeretné?</translation> <translation>Ismeretlen hiba</translation> </message> <message> - <location line="-402"/> + <location line="-540"/> + <location line="+138"/> <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+343"/> <source>The shared library was not found.</source> - <translation>A megosztott könyvtár nem található.</translation> + <translation>Az osztott függvénykönyvtár nem található.</translation> </message> <message> <location line="+2"/> <source>The file '%1' is not a valid Qt plugin.</source> - <translation>A(z) '%1' fájl nem egy érvényes Qt beépülő modul.</translation> + <translation>A(z) '%1' fájl nem érvényes Qt plugin.</translation> </message> <message> <location line="+43"/> <source>The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)</source> - <translation>A(z) '%1' beépülő modul inkompatibilis Qt könyvtárat használ. (Nem lehet a debug és kiadási könyvtárakat keverni.)</translation> + <translation>A(z) '%1' plugin inkompatíbilis Qt könyvtárat használ. (A debug és a release könyvtárak nem keverhetők.)</translation> </message> <message> <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+236"/> <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+87"/> <source>Cannot load library %1: %2</source> - <translation>Nem lehet betölteni a(z) %1 könyvtárat: %2</translation> + <translation>A(z) %1 könyvtár nem tölthető be: %2</translation> </message> <message> <location line="+17"/> <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+22"/> <source>Cannot unload library %1: %2</source> - <translation>Nem lehet kirakni a(z) %1 könyvtárat: %2</translation> + <translation>A(z) %1 könyvtár nem távolítható el: %2</translation> </message> <message> <location line="+34"/> <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+15"/> <source>Cannot resolve symbol "%1" in %2: %3</source> - <translation>Nem lehet megfejteni a(z) '%1' szimbólumot a(z) %2-ben: %3</translation> + <translation>A(z) "%1" szimbólum nem oldható fel a(z) %2 könyvtárban: %3</translation> </message> </context> <context> <name>QLineEdit</name> <message> - <location filename="../src/gui/widgets/qlineedit.cpp" line="+2035"/> - <source>Select All</source> - <translation>Az összes kiválasztása</translation> - </message> - <message> - <location line="-32"/> + <location filename="../src/gui/widgets/qlineedit.cpp" line="+2076"/> <source>&Undo</source> <translation>&Visszavonás</translation> </message> <message> <location line="+4"/> <source>&Redo</source> - <translation>&Helyreállítás</translation> + <translation>Új&ra</translation> </message> <message> - <location line="+7"/> + <location line="+9"/> <source>Cu&t</source> <translation>&Kivágás</translation> </message> <message> - <location line="+5"/> + <location line="+6"/> <source>&Copy</source> <translation>&Másolás</translation> </message> <message> - <location line="+5"/> + <location line="+6"/> <source>&Paste</source> <translation>&Beillesztés</translation> </message> <message> - <location line="+5"/> + <location line="+7"/> <source>Delete</source> <translation>Törlés</translation> </message> + <message> + <location line="+8"/> + <source>Select All</source> + <translation>Összes kijelölése</translation> + </message> </context> <context> <name>QLocalServer</name> @@ -2824,22 +4532,22 @@ Mégis törölni szeretné?</translation> <location filename="../src/network/socket/qlocalserver.cpp" line="+224"/> <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+246"/> <source>%1: Name error</source> - <translation>%1: Név hiba</translation> + <translation>%1: Hibás név</translation> </message> <message> <location filename="../src/network/socket/qlocalserver_unix.cpp" line="-8"/> <source>%1: Permission denied</source> - <translation>%1: Engedély megtagadva</translation> + <translation>%1: hozzáférés megtagadva</translation> </message> <message> <location line="+12"/> <source>%1: Address in use</source> - <translation>%1: Cím használatban</translation> + <translation>%1: A cím már használatban van</translation> </message> <message> <location line="+5"/> <source>%1: Unknown error %2</source> - <translation>%1: Ismeretlen hiba %2</translation> + <translation>%1: ismeretlen hiba %2</translation> </message> </context> <context> @@ -2848,19 +4556,19 @@ Mégis törölni szeretné?</translation> <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+139"/> <source>%1: Connection refused</source> - <translation>%1: Kapcsolat elutasítva</translation> + <translation>%1: A kapcsolat elutasítva</translation> </message> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> <source>%1: Remote closed</source> - <translation>%1: Távol bezárva</translation> + <translation>%1: A szerver lezárta a kapcsolatot</translation> </message> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> - <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/> - <location line="+45"/> + <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+79"/> + <location line="+59"/> <source>%1: Invalid name</source> <translation>%1: Érvénytelen név</translation> </message> @@ -2868,43 +4576,43 @@ Mégis törölni szeretné?</translation> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> <source>%1: Socket access error</source> - <translation>%1: Socket hozzáférési hiba</translation> + <translation>%1: Socket elérési hiba</translation> </message> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> <source>%1: Socket resource error</source> - <translation>%1: Socket erőforrás hiba</translation> + <translation>%1: Socket erőforrás probléma</translation> </message> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> <source>%1: Socket operation timed out</source> - <translation>%1: Socker művelet időtúllépés</translation> + <translation>%1: Időtúllépés a socketen</translation> </message> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> <source>%1: Datagram too large</source> - <translation>%1: Túl nagy datagram</translation> + <translation>%1: A csomag túl nagy</translation> </message> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> - <location filename="../src/network/socket/qlocalsocket_win.cpp" line="-50"/> + <location filename="../src/network/socket/qlocalsocket_win.cpp" line="-64"/> <source>%1: Connection error</source> - <translation>%1: Kapcsolat hiba</translation> + <translation>%1: Kapcsolódási hiba</translation> </message> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> <source>%1: The socket operation is not supported</source> - <translation>%1: A socket művelet nem támogatott</translation> + <translation>%1: A kívánt socket művelet nem támogatott</translation> </message> <message> <location line="+4"/> <source>%1: Unknown error</source> - <translation>%1: Ismeretlen hiba</translation> + <translation>%1: Ismeretlen hiba </translation> </message> <message> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+4"/> @@ -2916,89 +4624,90 @@ Mégis törölni szeretné?</translation> <context> <name>QMYSQLDriver</name> <message> - <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1261"/> + <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1287"/> <source>Unable to open database '</source> - <translation>Nem lehet megnyitni az adatbázist</translation> + <translation>Az adatbázis nem nyitható meg: '</translation> </message> <message> <location line="+11"/> <source>Unable to connect</source> - <translation>Nem lehet kapcsolódni</translation> + <translation>Nem sikerült kapcsolódni</translation> </message> <message> - <location line="+151"/> + <location line="+150"/> <source>Unable to begin transaction</source> - <translation>Nem lehet megkezdeni a tranzakciót</translation> + <translation>A tranzakció nem indítható</translation> </message> <message> <location line="+17"/> <source>Unable to commit transaction</source> - <translation>Nem lehet kommitolni a tranzakciót</translation> + <translation>A tranzakció nem véglegesíthető</translation> </message> <message> <location line="+17"/> <source>Unable to rollback transaction</source> - <translation>Nem lehet visszagörgetni a tranzakciót</translation> + <translation>A tranzakció nem görgethető vissza</translation> </message> </context> <context> <name>QMYSQLResult</name> <message> - <location line="-969"/> + <location line="-977"/> + <location line="+31"/> <source>Unable to fetch data</source> - <translation>Nem lehet letölteni az adatot</translation> + <translation>Az adat nem olvasható ki</translation> </message> <message> - <location line="+183"/> + <location line="+161"/> <source>Unable to execute query</source> - <translation>Nem lehet végrehajtani a lekérdezést</translation> + <translation>A lekérdezés nem hajtható végre</translation> </message> <message> <location line="+6"/> <source>Unable to store result</source> - <translation>Nem lehet tárolni az eredményt</translation> + <translation>Az eredmény nem tárolható</translation> </message> <message> <location line="+191"/> <location line="+8"/> <source>Unable to prepare statement</source> - <translation>Nem lehet felkészülni a műveletre</translation> + <translation>A művelet előkészítése nem lehetséges</translation> </message> <message> <location line="+37"/> <source>Unable to reset statement</source> - <translation>Nem lehet visszaállítani a műveleteket</translation> + <translation>A művelet visszaállítása nem lehetséges</translation> </message> <message> <location line="+86"/> <source>Unable to bind value</source> - <translation>Nem lehet összekötni az értéket</translation> + <translation>A változó kötése sikertelen</translation> </message> <message> <location line="+11"/> <source>Unable to execute statement</source> - <translation>Nem lehet végrehajtani az állítást</translation> + <translation>A művelet nem hajtható végre</translation> </message> <message> <location line="+14"/> <location line="+21"/> <source>Unable to bind outvalues</source> - <translation>Nem lehet összekötni a kiértékeléseket</translation> + <translation>A kimenő érték kötése sikertelen</translation> </message> <message> <location line="-12"/> <source>Unable to store statement results</source> - <translation>Nem lehet letárolni a művelet eredményeket</translation> + <translation>A művelet eredményének tárolása sikertelen</translation> </message> <message> <location line="-253"/> <source>Unable to execute next query</source> - <translation>Nem lehet végrehajtani a következő lekérdezést</translation> + <translation>A következő lekérdezés nem hajtható végre</translation> </message> <message> <location line="+10"/> <source>Unable to store next result</source> - <translation>Nem lehet letárolni a következő eredményt</translation> + <translation>A következő eredmény nem tárolható</translation> </message> </context> <context> @@ -3006,7 +4715,7 @@ Mégis törölni szeretné?</translation> <message> <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/> <source>(Untitled)</source> - <translation>(Címtelen)</translation> + <translation>(Névtelen)</translation> </message> </context> <context> @@ -3024,22 +4733,22 @@ Mégis törölni szeretné?</translation> <message> <location line="-18"/> <source>Minimize</source> - <translation>Minimalizálás</translation> + <translation>Kis méret</translation> </message> <message> <location line="+13"/> <source>Restore Down</source> - <translation>Leállítás</translation> + <translation>Előző méret</translation> </message> <message> <location line="+707"/> <source>&Restore</source> - <translation>&Letárolás</translation> + <translation>&Visszaállítás</translation> </message> <message> <location line="+3"/> <source>&Move</source> - <translation>&Mozgatás</translation> + <translation>Á&thelyezés</translation> </message> <message> <location line="+1"/> @@ -3049,17 +4758,17 @@ Mégis törölni szeretné?</translation> <message> <location line="+1"/> <source>Mi&nimize</source> - <translation>&Minimalizálás</translation> + <translation>&Kis méret</translation> </message> <message> <location line="+2"/> <source>Ma&ximize</source> - <translation>Ma&ximalizálás</translation> + <translation>Te&ljes méret</translation> </message> <message> <location line="+2"/> <source>Stay on &Top</source> - <translation>&Tetején maradni</translation> + <translation>Mindig leg&felül</translation> </message> <message> <location line="+3"/> @@ -3067,19 +4776,24 @@ Mégis törölni szeretné?</translation> <translation>&Bezárás</translation> </message> <message> - <location line="-729"/> + <location line="-787"/> + <source>- [%1]</source> + <translation>- [%1]</translation> + </message> + <message> + <location line="+58"/> <source>Maximize</source> - <translation>Maximalizálás</translation> + <translation>Teljes méret</translation> </message> <message> <location line="+3"/> <source>Unshade</source> - <translation>Árnyékolás megszüntetése</translation> + <translation>Legördítés</translation> </message> <message> <location line="+3"/> <source>Shade</source> - <translation>Árnyákolás</translation> + <translation>Felgördítés</translation> </message> <message> <location line="+6"/> @@ -3096,10 +4810,31 @@ Mégis törölni szeretné?</translation> <source>Menu</source> <translation>Menü</translation> </message> +</context> +<context> + <name>QMediaPlayer</name> + <message> + <source>The QMediaPlayer object does not have a valid service</source> + <translation type="obsolete">A QMediaPlayer objektumnak nincs érvényes szolgáltatása</translation> + </message> +</context> +<context> + <name>QMediaPlaylist</name> + <message> + <source>Could not add items to read only playlist.</source> + <translation type="obsolete">Csak olvasható lejátszólistához nem lehet elemeket hozzáadni.</translation> + </message> <message> - <location line="-79"/> - <source>- [%1]</source> - <translation>- [%1]</translation> + <source>Playlist format is not supported</source> + <translation type="obsolete">A lejátszólista formátuma nem támogatott</translation> + </message> + <message> + <source>The file could not be accessed.</source> + <translation type="obsolete">A fájl nem elérhető.</translation> + </message> + <message> + <source>Playlist format is not supported.</source> + <translation type="obsolete">A lejátszólista formátuma nem támogatott.</translation> </message> </context> <context> @@ -3127,15 +4862,68 @@ Mégis törölni szeretné?</translation> <context> <name>QMenuBar</name> <message> - <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+410"/> + <source>About</source> + <translation type="obsolete">Névjegy</translation> + </message> + <message> + <source>Config</source> + <translation type="obsolete">Konfiguráció</translation> + </message> + <message> + <source>Preference</source> + <translation type="obsolete">Beállítások</translation> + </message> + <message> + <source>Options</source> + <translation type="obsolete">Opciók</translation> + </message> + <message> + <source>Setting</source> + <translation type="obsolete">Beállítás</translation> + </message> + <message> + <source>Setup</source> + <translation type="obsolete">Beállítás</translation> + </message> + <message> + <source>Quit</source> + <translation type="obsolete">Kilépés</translation> + </message> + <message> + <source>Exit</source> + <translation type="obsolete">Kilépés</translation> + </message> + <message> + <source>About %1</source> + <translation type="obsolete">%1 névjegye</translation> + </message> + <message> + <source>About Qt</source> + <translation type="obsolete">A Qt névjegye</translation> + </message> + <message> + <source>Preferences</source> + <translation type="obsolete">Beállítások</translation> + </message> + <message> + <source>Quit %1</source> + <translation type="obsolete">Kilépés: %1</translation> + </message> + <message> + <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+456"/> <source>Actions</source> - <translation>Tevékenységek</translation> + <translation>Műveletek</translation> </message> </context> <context> <name>QMessageBox</name> <message> - <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1964"/> + <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1116"/> + <source>Help</source> + <translation>Súgó</translation> + </message> + <message> + <location line="-848"/> <location line="+847"/> <location filename="../src/gui/dialogs/qmessagebox.h" line="-52"/> <location line="+8"/> @@ -3143,42 +4931,83 @@ Mégis törölni szeretné?</translation> <translation>OK</translation> </message> <message> - <location line="+477"/> - <source><h3>About Qt</h3><p>This program uses Qt version %1.</p></source> - <translation><h3>Qt-ról</h3><p>Ez a program a(z) %1 Qt verziót használja.</p></translation> + <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="obsolete"><p>A Qt egy C++ eszközkészlet keresztplatformos alkalmazások fejlesztéséhez, mely egyetlen, MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, és minden főbb kereskedelmi Unix változat között hordozható forrást ad; valamint elérhető még beágyazott eszközökhöz is, mint Qt beágyazott Linuxhoz és Qt Windows CE-hez.</p> +<p>A Qt három különböző licensz alatt érhető el, hogy illeszkedjen a különbőző felhasználói igényekhez: +<p>A kereskedelmi licenszünk alkalmas saját/kereskedelmi szoftver fejlesztéséhez, ha nem akarja megosztani a forráskódot harmadik partnerrel vagy nem kívánja teljesíteni GNU LGPL v2.1 vagy GNU GPL v3.0 feltételeit.</p> +<p>A GNU LGPL v2.1 alá tartozó Qt licensz alkalmas Qt-n alapuló programok fejlesztéséhez (zárt vagy nyílt forrású), amennyiben betartja a GNU LGPL v2.1 kikötéseit és feltételeit.</p> +<p>A GNU General Public License v3.0 alá tartozó Qt licensz pedig alkalmas Qt-n alapuló programok fejlesztésére, ahol olyan programok kombinációját kívánja használni, melyek megfelelnek a GNU GPL version 3.0 feltételeinek vagy ahol hajlandó teljesíteni a GNU GPL v3.0 feltételeit.</p> +<p>Tekintse át a <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> oldalon a Qt licenszeit.</p> +<p>Copyright (C) 2009 Nokia Corporation és/vagy annak leányvállalat(-ai).</p> +<p>A Qt a Nokia terméke. További információért látogassa meg a <a href="http://qt.nokia.com/">qt.nokia.com</a> honlapot.</p></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) 2010 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></translation> + <location line="+513"/> + <source>About Qt</source> + <translation>A Qt névjegye</translation> </message> <message> - <location line="+31"/> - <source>About Qt</source> - <translation>Qt-ról</translation> + <source><p>This program uses Qt version %1.</p></source> + <translation type="obsolete"><p>A program a Qt %1 verzióját használja.</p></translation> </message> <message> - <location line="-512"/> - <source>Help</source> - <translation>Súgó</translation> + <source><h3>About Qt</h3>%1<p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qtopia Core.</p><p>Qt is a Trolltech product. See <a href="http://www.trolltech.com/qt/">www.trolltech.com/qt/</a> for more information.</p></source> + <translation type="obsolete"><h3>A Qt névjegye</h3>%1<p>A Qt egy C++ eszközkészlet a kereszt-platformos alkalmazásfejlesztéshez.</p><p>A Qt egy-forrású hordozhatóságot biztosít az MS&nbsp;Windows, a Mac&nbsp;OS&nbsp;X, a Linux, és az összes nagyobb kereskedelmi Unix változat között. A Qt mobileszközökhöz is elérhető, pl. Qtopia Core.</p><p>A Qt a Trolltech terméke. További információk: <a href="http://www.trolltech.com/qt/">www.trolltech.com/qt/</a> .</p></translation> </message> <message> - <location line="-1099"/> + <location line="-1641"/> <source>Show Details...</source> <translation>Részletek megjelenítése...</translation> </message> <message> - <location line="+1"/> + <location line="+0"/> <source>Hide Details...</source> <translation>Részletek elrejtése...</translation> </message> + <message> + <location line="+1605"/> + <source><h3>About Qt</h3><p>This program uses Qt version %1.</p></source> + <translation><h3>Qt névjegye</h3><p>Ez a program a Qt %1 verzióját használja.</p></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) 2010 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><p>A Qt egy C++ eszközkészlet keresztplatformos alkalmazások fejlesztéséhez, mely egyetlen, MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, és minden főbb kereskedelmi Unix változat között hordozható forrást ad; valamint elérhető még beágyazott eszközökhöz is, mint Qt beágyazott Linuxhoz és Qt Windows CE-hez.</p> +<p>A Qt három különböző licensz alatt érhető el, hogy illeszkedjen a különbőző felhasználói igényekhez: +<p>A kereskedelmi licenszünk alkalmas saját/kereskedelmi szoftver fejlesztéséhez, ha nem akarja megosztani a forráskódot harmadik partnerrel vagy nem kívánja teljesíteni GNU LGPL v2.1 vagy GNU GPL v3.0 feltételeit.</p> +<p>A GNU LGPL v2.1 alá tartozó Qt licensz alkalmas Qt-n alapuló programok fejlesztéséhez (zárt vagy nyílt forrású), amennyiben betartja a GNU LGPL v2.1 kikötéseit és feltételeit.</p> +<p>A GNU General Public License v3.0 alá tartozó Qt licensz pedig alkalmas Qt-n alapuló programok fejlesztésére, ahol olyan programok kombinációját kívánja használni, melyek megfelelnek a GNU GPL version 3.0 feltételeinek vagy ahol hajlandó teljesíteni a GNU GPL v3.0 feltételeit.</p> +<p>Tekintse át a <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> oldalon a Qt licenszeit.</p> +<p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</p> +<p>A Qt a Nokia terméke. További információért látogassa meg a <a href="http://qt.nokia.com/">qt.nokia.com</a> honlapot.</p></translation> + </message> + <message> + <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://www.qtsoftware.com/products/licensing">www.qtsoftware.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://www.qtsoftware.com/qt/">www.qtsoftware.com/qt</a> for more information.</p></source> + <translatorcomment>Needing review, but basically accepted string.</translatorcomment> + <translation type="obsolete"><p>A Qt egy C++ eszközkészlet keresztplatformos alkalmazások fejlesztéséhez, mely egyetlen, MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, és minden főbb kereskedelmi Unix változat között hordozható forrást ad; valamint elérhető még beágyazott eszközökhöz is, mint Qt beágyazott Linuxhoz és Qt Windows CE-hez.</p> +<p>A Qt három különböző licensz alatt érhető el, hogy illeszkedjen a különbőző felhasználói igényekhez: +<p>A kereskedelmi licenszünk alkalmas saját/kereskedelmi szoftver fejlesztéséhez, ha nem akarja megosztani a forráskódot harmadik partnerrel vagy nem kívánja teljesíteni GNU LGPL v2.1 vagy GNU GPL v3.0 feltételeit.</p> +<p>A GNU LGPL v2.1 alá tartozó Qt licensz alkalmas Qt-n alapuló programok fejlesztéséhez (zárt vagy nyílt forrású), amennyiben betartja a GNU LGPL v2.1 kikötéseit és feltételeit.</p> +<p>A GNU General Public License v3.0 alá tartozó Qt licensz pedig alkalmas Qt-n alapuló programok fejlesztésére, ahol olyan programok kombinációját kívánja használni, melyek megfelelnek a GNU GPL version 3.0 feltételeinek vagy ahol hajlandó teljesíteni a GNU GPL v3.0 feltételeit.</p> +<p>Tekintse át a <a href="http://www.qtsoftware.com/products/licensing">www.qtsoftware.com/products/licensing</a> oldalon a Qt licenszeit.</p> +<p>Copyright (C) 2009 Nokia Corporation és/vagy annak leányvállalat(-ai).</p> +<p>A Qt a Nokia terméke. További információért látogassa meg a <a href="http://www.qtsoftware.com/qt/">www.qtsoftware.com/qt</a> honlapot.</p></translation> + </message> + <message> + <source><p>This program uses Qt Open Source Edition version %1.</p><p>Qt Open Source Edition is intended for the development of Open Source applications. You need a commercial Qt license for development of proprietary (closed source) applications.</p><p>Please see <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> for an overview of Qt licensing.</p></source> + <translation type="obsolete"><p>A programa Qt Open Source Edition %1 verziót használja.</p><p>A Qt Open Source Edition az Open Source (nyílt forrású) alkalmazások fejlesztéséhez készült. Zárt forrású alkalmazások fejlesztéséhez a kereskedelmi Qt licenszre van szükség.</p><p>A Qt licenszeléséről további információ a <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> oldalon található.</p></translation> + </message> + <message> + <source><h3>About Qt</h3>%1<p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt Embedded.</p><p>Qt is a Trolltech product. See <a href="http://www.trolltech.com/qt/">www.trolltech.com/qt/</a> for more information.</p></source> + <translation type="obsolete"><h3>A Qt névjegye</h3>%1<p>A Qt egy átfogó C++ környezet keresztplatformos alkalmazások fejlesztéséhez.</p><p>A Qt kódhordozhatóságot biztosít MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, és a legtöbb kereskedelmi Unix-variáns között. A Qt Embedded lehetővá teszi a Qt-t beágyazott eszközön való használatát.</p><p>A Qt a Trolltech cég terméke. További információkért tekintse meg a <a href="http://www.trolltech.com/qt/">www.trolltech.com/qt/</a> oldalt.</p></translation> + </message> </context> <context> <name>QMultiInputContext</name> <message> <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/> <source>Select IM</source> - <translation>IM kiválasztása</translation> + <translation>Beviteli mód kiválasztása</translation> </message> </context> <context> @@ -3186,30 +5015,30 @@ Mégis törölni szeretné?</translation> <message> <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/> <source>Multiple input method switcher</source> - <translation>Összetett beviteli eljárás kapcsoló</translation> + <translation>Beviteli mód választó</translation> </message> <message> <location line="+7"/> <source>Multiple input method switcher that uses the context menu of the text widgets</source> - <translation>Összetett beviteli eljárás kapcsoló, ami a szöveg widgetek menü összefüggéseit használja</translation> + <translation>A szöveg elemeken megjelenítendő felbukkanó beviteli mód választó</translation> </message> </context> <context> <name>QNativeSocketEngine</name> <message> - <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/> + <location filename="../src/network/socket/qnativesocketengine.cpp" line="+209"/> <source>The remote host closed the connection</source> - <translation>A távoli hoszt bezárta a kapcsolatot</translation> + <translation>A távoli kiszolgáló bezárta a kapcsolatot</translation> </message> <message> <location line="+3"/> <source>Network operation timed out</source> - <translation>Hálózati művelet időtúllépése</translation> + <translation>Időtúllépés hálózati művelet során</translation> </message> <message> <location line="+3"/> <source>Out of resources</source> - <translation>Kifogytak az erőforrások</translation> + <translation>Az erőforrások elfogytak</translation> </message> <message> <location line="+3"/> @@ -3219,7 +5048,7 @@ Mégis törölni szeretné?</translation> <message> <location line="+3"/> <source>Protocol type not supported</source> - <translation>Nem támogatott protokoll típus</translation> + <translation>Nem támogatott protokoll</translation> </message> <message> <location line="+3"/> @@ -3229,27 +5058,27 @@ Mégis törölni szeretné?</translation> <message> <location line="+6"/> <source>Network unreachable</source> - <translation>A hálózat nem elérhető</translation> + <translation>A hálózat nem érhető el</translation> </message> <message> <location line="+3"/> <source>Permission denied</source> - <translation>Engedély megtagadva</translation> + <translation>Hozzáférés megtagadva</translation> </message> <message> <location line="+3"/> <source>Connection timed out</source> - <translation>Kapcsolat időtúllépés</translation> + <translation>A kapcsolat várakozási ideje lejárt</translation> </message> <message> <location line="+3"/> <source>Connection refused</source> - <translation>Kapcsolat elutasítva</translation> + <translation>A kapcsolat elutasítva</translation> </message> <message> <location line="+3"/> <source>The bound address is already in use</source> - <translation>A cím összeköttetés már használatban van</translation> + <translation>A lefoglalandó cím használatban van</translation> </message> <message> <location line="+3"/> @@ -3264,17 +5093,17 @@ Mégis törölni szeretné?</translation> <message> <location line="+6"/> <source>Unable to send a message</source> - <translation>Nem lehet üzenetet küldeni</translation> + <translation>Nem küldhető üzenet</translation> </message> <message> <location line="+3"/> <source>Unable to receive a message</source> - <translation>Nem lehet megkapni az üzeneteket</translation> + <translation>Nem fogadható üzenet</translation> </message> <message> <location line="+3"/> <source>Unable to write</source> - <translation>Nem lehet írni</translation> + <translation>Nem írható</translation> </message> <message> <location line="+3"/> @@ -3284,37 +5113,37 @@ Mégis törölni szeretné?</translation> <message> <location line="+3"/> <source>Another socket is already listening on the same port</source> - <translation>Egy másik socker már ugyanazon a porton figyel</translation> + <translation>Egy másik socket már figyel ezen a porton</translation> </message> <message> <location line="-66"/> <source>Unable to initialize non-blocking socket</source> - <translation>Nem lehet inicializálni egy nem blokkoló socketet</translation> + <translation>A nem-blokkolo socket előkészítése sikertelen</translation> </message> <message> <location line="+3"/> <source>Unable to initialize broadcast socket</source> - <translation>Nem lehet inicializálni a socket közvetítőt</translation> + <translation>A broadcast socket előkészítése sikertelen</translation> </message> <message> <location line="+3"/> <source>Attempt to use IPv6 socket on a platform with no IPv6 support</source> - <translation>IPv6 socket használatának kipróbálása olyan platformon, amelyik nem támogatja az IPv6-t</translation> + <translation>IPv6 socket használatának kísérlete IPv6 támogatás nélküli platformon</translation> </message> <message> <location line="+21"/> <source>Host unreachable</source> - <translation>A hoszt nem elérhető</translation> + <translation>A kiszolgáló nem érhető el</translation> </message> <message> <location line="+24"/> <source>Datagram was too large to send</source> - <translation>A datagram túl nagy volt elküldésre</translation> + <translation>A csomag mérete miatt nem küldhető el</translation> </message> <message> <location line="+18"/> <source>Operation on non-socket</source> - <translation>Nem socketen végzett művelet</translation> + <translation>Socket művelet érvénytelen eszközön</translation> </message> <message> <location line="+6"/> @@ -3324,7 +5153,7 @@ Mégis törölni szeretné?</translation> <message> <location line="-3"/> <source>The proxy type is invalid for this operation</source> - <translation>A proxy típusa ismeretlen erre a műveletre</translation> + <translation>A proxy típusa nem megfelelő a művelethez</translation> </message> </context> <context> @@ -3332,7 +5161,20 @@ Mégis törölni szeretné?</translation> <message> <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+66"/> <source>Error opening %1</source> - <translation>Hiba történt a(z) %1 megnyitása közben</translation> + <translation>Hiba %1 megnyitásakor</translation> + </message> +</context> +<context> + <name>QNetworkAccessDataBackend</name> + <message> + <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+76"/> + <source>Operation not supported on %1</source> + <translation>A művelett nem támogatott a(z) %1-n</translation> + </message> + <message> + <location line="+25"/> + <source>Invalid URI: %1</source> + <translation>Érvénytelen cím: %1</translation> </message> </context> <context> @@ -3340,38 +5182,48 @@ Mégis törölni szeretné?</translation> <message> <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+195"/> <source>Write error writing to %1: %2</source> - <translation>Írása hiba történt a(z) %1-be történő írás közben: %2</translation> + <translation>Hiba a(z) %1 kiírásakor: %2</translation> + </message> + <message> + <location line="+60"/> + <source>Socket error on %1: %2</source> + <translation>Socket hiba a(z) %1-n: %2</translation> + </message> + <message> + <location line="+15"/> + <source>Remote host closed the connection prematurely on %1</source> + <translation>A(z) %1 gép idő előtt megszakította a kapcsolatot</translation> </message> </context> <context> <name>QNetworkAccessFileBackend</name> <message> - <location filename="../src/network/access/qfilenetworkreply.cpp" line="+83"/> + <location filename="../src/network/access/qfilenetworkreply.cpp" line="+85"/> <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+100"/> <source>Request for opening non-local file %1</source> - <translation>Kérés a(z) %1 nem helyi fál megnyitására</translation> + <translation>Nem helyi fájl megnyitásának kísérlete: %1</translation> </message> <message> - <location line="+31"/> + <location line="+33"/> <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+45"/> <source>Error opening %1: %2</source> - <translation>Hiba történt a(z) %1 megnyitása közben: %2</translation> + <translation>Hiba a(z) %1 megnyitásakor: %2</translation> </message> <message> <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+38"/> <source>Write error writing to %1: %2</source> - <translation>Írási hiba történt a(z) %1-be írás közben: %2</translation> + <translation>Hiba a(z) %1 kiírásakor: %2</translation> </message> <message> - <location filename="../src/network/access/qfilenetworkreply.cpp" line="-11"/> + <location filename="../src/network/access/qfilenetworkreply.cpp" line="-13"/> <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+48"/> <source>Cannot open %1: Path is a directory</source> - <translation>Nem lehet megnyitni a(z) %1-t: az útvonal egy könyvtár</translation> + <translation>Sikertelen megnyitás: %1 egy könyvtár</translation> </message> <message> <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+21"/> <source>Read error reading from %1: %2</source> - <translation>Olvasási hiba történt a(z) %1-ból való olvasás közben: %2</translation> + <translation>Hiba a(z) %1 olvasása közben: %2</translation> </message> </context> <context> @@ -3379,86 +5231,161 @@ Mégis törölni szeretné?</translation> <message> <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+131"/> <source>No suitable proxy found</source> - <translation>Nem található megfelelő proxy</translation> + <translation>Nincs megfelelő proxy</translation> </message> <message> <location line="+14"/> <source>Cannot open %1: is a directory</source> - <translation>Nem lehet megnyitni a(z) %1 t, mert az egy könyvtár</translation> + <translation>Sikertelen megnyitás: %1 egy könyvtár</translation> </message> <message> <location line="+112"/> <source>Logging in to %1 failed: authentication required</source> - <translation>A(z) %1-be történő loggolás nem sikerült: hitelesítés szükséges</translation> + <translation>A bejelentkezés sikertelen ide: %1, hitelesítés szükséges</translation> </message> <message> <location line="+39"/> <source>Error while downloading %1: %2</source> - <translation>Hiba történt a(z) %1 letöltése közben: %2</translation> + <translation>Hiba a(z) %1 letöltésekor: %2</translation> </message> <message> <location line="+2"/> <source>Error while uploading %1: %2</source> - <translation>Hiba történt a(z) %1 feltöltése közben: %2</translation> + <translation>Hiba a(z) %1 feltöltésekor: %2</translation> </message> </context> <context> <name>QNetworkAccessHttpBackend</name> <message> - <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+585"/> + <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+652"/> <source>No suitable proxy found</source> - <translation>Nem található megfelelő proxy</translation> + <translation>Nincs megfelelő proxy</translation> + </message> +</context> +<context> + <name>QNetworkAccessManager</name> + <message> + <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+942"/> + <source>Network access is disabled.</source> + <translation>A hozzáférés a hálózathoz le van tiltva.</translation> </message> </context> <context> <name>QNetworkReply</name> <message> - <location line="+95"/> + <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+100"/> <source>Error downloading %1 - server replied: %2</source> - <translation>Hiba történt a(z) %1 letöltése közben - a szerver válasza: %2</translation> + <translation>Hiba %1 letöltésekor - a szerver válasza: %2</translation> </message> <message> - <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+77"/> + <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="-860"/> <source>Protocol "%1" is unknown</source> - <translation>A(z) '%1' protokoll ismeretlen</translation> + <translation>Ismeretlen protokoll: "%1"</translation> + </message> + <message> + <location line="+192"/> + <source>Network session error.</source> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">Hálozati munkamenet hiba.</translation> + </message> + <message> + <location line="+352"/> + <source>Temporary network failure.</source> + <translation>Ideiglenes hálózati hiba.</translation> </message> </context> <context> <name>QNetworkReplyImpl</name> <message> - <location line="+519"/> + <location line="+120"/> <location line="+28"/> <source>Operation canceled</source> - <translation>Művelet visszavonása</translation> + <translation>A művelet megszakítva</translation> </message> </context> <context> - <name>QOCIDriver</name> + <name>QNetworkSession</name> <message> - <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2083"/> - <source>Unable to logon</source> - <translation>Nem lehet bejelentkezni</translation> + <location filename="../src/network/bearer/qnetworksession.cpp" line="+449"/> + <source>Invalid configuration.</source> + <translation>Érvénytelen konfiguráció.</translation> + </message> +</context> +<context> + <name>QNetworkSessionPrivateImpl</name> + <message> + <location filename="../src/plugins/bearer/icd/qnetworksession_impl.cpp" line="+1005"/> + <source>Roaming error</source> + <translation>Roaming hiba</translation> + </message> + <message> + <location line="+3"/> + <source>Session aborted by user or system</source> + <translation>A munkamenetet a felhasználó vagy a rendszer megszakította</translation> + </message> + <message> + <location line="+4"/> + <source>Unidentified Error</source> + <translation>Azonosítatlan hiba</translation> + </message> + <message> + <location filename="../src/plugins/bearer/qnetworksession_impl.cpp" line="+272"/> + <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+271"/> + <source>Unknown session error.</source> + <translation>Ismeretlen hiba a munkamenetben.</translation> </message> <message> - <location line="-144"/> + <location line="+2"/> + <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/> + <source>The session was aborted by the user or system.</source> + <translation>A munkamenetet a felhasználó vagy a rendszer megszakította.</translation> + </message> + <message> + <location line="+2"/> + <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/> + <source>The requested operation is not supported by the system.</source> + <translation>A kért műveletet a rendszer nem támogatja.</translation> + </message> + <message> + <location line="+2"/> + <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/> + <source>The specified configuration cannot be used.</source> + <translation>A megadott konfiguráció nem használható.</translation> + </message> + <message> + <location line="+2"/> + <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/> + <source>Roaming was aborted or is not possible.</source> + <translation>A roaming megszakadt, vagy nem lehetséges.</translation> + </message> +</context> +<context> + <name>QOCIDriver</name> + <message> + <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+1944"/> <source>Unable to initialize</source> <comment>QOCIDriver</comment> - <translation>Nem lehet inicializálni</translation> + <translation>Az inicializálás nem lehetséges</translation> </message> <message> - <location line="+215"/> + <location line="+144"/> + <source>Unable to logon</source> + <translation>A bejelentkezés nem lehetséges</translation> + </message> + <message> + <location line="+71"/> <source>Unable to begin transaction</source> - <translation>Nem lehet megkezdeni a tranzakciót</translation> + <translation>A tranzakció nem indítható</translation> </message> <message> <location line="+19"/> <source>Unable to commit transaction</source> - <translation>Nem lehet kommitolni a tranzakciót</translation> + <translation>A tranzakció nem véglegesíthető</translation> </message> <message> <location line="+19"/> <source>Unable to rollback transaction</source> - <translation>Nem lehet visszagörgetni a tranzakciót</translation> + <translation>A tranzakció nem görgethető vissza</translation> </message> </context> <context> @@ -3468,167 +5395,198 @@ Mégis törölni szeretné?</translation> <location line="+168"/> <location line="+15"/> <source>Unable to bind column for batch execute</source> - <translation>Nem lehet összekötni az oszlopot köteg végrehajtásra</translation> + <translation>Az oszlop kötegelt végrehajtáshoz kötése sikertelen</translation> </message> <message> <location line="+15"/> <source>Unable to execute batch statement</source> - <translation>Nem lehet végrehajtani a köteg állítást</translation> - </message> - <message> - <location line="+304"/> - <source>Unable to goto next</source> - <translation>Nem lehet a következőre ugrani</translation> + <translation>A kötegelt utasítások végrehajtása sikertelen</translation> </message> <message> - <location line="+59"/> + <location line="+363"/> <source>Unable to alloc statement</source> - <translation>Nem lehet helyet lefoglalni az állításnak</translation> + <translation>Az utasítás lefoglalása sikertelen</translation> </message> <message> <location line="+15"/> <source>Unable to prepare statement</source> - <translation>Nem lehet felkészülni a műveletre</translation> + <translation>Az utasítás előkészítése sikertelen</translation> </message> <message> <location line="+26"/> <source>Unable to get statement type</source> - <translation>Nem lehet megszerezni az állítás típusát</translation> + <translation>Az utasítás típusa nem ismert</translation> </message> <message> <location line="+20"/> <source>Unable to bind value</source> - <translation>Nem lehet összekötni az értéket</translation> + <translation>A változó kötése sikertelen</translation> </message> <message> <location line="+19"/> <source>Unable to execute statement</source> - <translation>Nem lehet végrehajtani az állítást</translation> + <translation>Az utasítás nem végrehajtható</translation> + </message> + <message> + <location line="-139"/> + <source>Unable to goto next</source> + <translation>Nem lehet a következőre lépni</translation> </message> </context> <context> <name>QODBCDriver</name> <message> - <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1790"/> + <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1888"/> <source>Unable to connect</source> - <translation>Nem lehet kapcsolódni</translation> + <translation>Nem sikerült kapcsolódni</translation> </message> <message> - <location line="+238"/> + <location line="+269"/> <source>Unable to disable autocommit</source> - <translation>Nem lehet letiltani az automatikus kommitolást</translation> + <translation>Az automatikus véglegesítés nem tiltható le</translation> </message> <message> <location line="+17"/> <source>Unable to commit transaction</source> - <translation>Nem lehet kommitolni a tranzakciót</translation> + <translation>A tranzakció nem véglegesíthető</translation> </message> <message> <location line="+17"/> <source>Unable to rollback transaction</source> - <translation>Nem lehet visszagörgetni a tranzakciót</translation> + <translation>A tranzakció nem görgethető vissza</translation> </message> <message> <location line="+15"/> <source>Unable to enable autocommit</source> - <translation>Nem lehet engedélyezni az automatikus kommitolást</translation> + <translation>Az automatikus véglegesítés nem engedélyezhető</translation> </message> <message> - <location line="-281"/> + <location line="-312"/> <source>Unable to connect - Driver doesn't support all functionality required</source> - <translation>Nem lehet csatlakozni- A vezérlő nem támogatja az összes szükséges funkciót</translation> + <translation>Nem sikerült kapcsolódni - A driver nem támogat minden szükséges szolgáltatást</translation> </message> </context> <context> <name>QODBCResult</name> <message> - <location line="-932"/> - <location line="+346"/> + <location line="-941"/> + <location line="+351"/> <source>QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration</source> - <translation>QODBCEredmény::Visszaállítás: Nen lehet beállítani az 'SQL_CURSOR_STATIC' állítás attribútumra. Kérem ellenőrizze le az ODBC vezérlő konfigurációt</translation> + <translation>QODBCResult::reset: Nem lehet a 'SQL_CURSOR_STATIC' attribútumot beállítani a parancson. Ellenőrizze az ODBC driver beállítását</translation> </message> <message> - <location line="-329"/> - <location line="+623"/> + <location line="-334"/> + <location line="+627"/> <source>Unable to execute statement</source> - <translation>Nem lehet végrehajtani az állítást</translation> + <translation>A parancs nem hajtható végre</translation> </message> <message> - <location line="-547"/> + <location line="-546"/> <source>Unable to fetch next</source> - <translation>Nem lehet letölteni a következőt</translation> + <translation>A következő nem olvasható ki</translation> </message> <message> <location line="+271"/> <source>Unable to prepare statement</source> - <translation>Nem lehet felkészülni az állításra</translation> + <translation>A parancs előkészítése nem lehetséges</translation> </message> <message> - <location line="+268"/> + <location line="+267"/> <source>Unable to bind variable</source> - <translation>Nem lehet összekötni a változót</translation> + <translation>A változó nem rögzíthető</translation> </message> <message> - <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+190"/> - <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-467"/> - <location line="+576"/> - <source>Unable to fetch last</source> - <translation>Nem lehet letölteni az utolsót</translation> - </message> - <message> - <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-670"/> + <location line="-560"/> <source>Unable to fetch</source> - <translation>Nem lehet letölteni</translation> + <translation>Az eredmény nem elérhető</translation> </message> <message> <location line="+44"/> <source>Unable to fetch first</source> - <translation>Nem letölteni az elsőt</translation> + <translation>Az első eredmény nem érhető el</translation> </message> <message> <location line="+19"/> <source>Unable to fetch previous</source> - <translation>Nem lehet letölteni az előzőt</translation> + <translation>Az előző eredmény nem érhető el</translation> + </message> + <message> + <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+189"/> + <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+31"/> + <location line="+578"/> + <source>Unable to fetch last</source> + <translation>Az utolsó eredmény nem érhető el</translation> </message> </context> <context> <name>QObject</name> <message> - <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="-97"/> <source>Invalid hostname</source> - <translation>Érvénytelen hoszt név</translation> + <translation type="obsolete">Érvénytelen gépnév</translation> + </message> + <message> + <source>Home</source> + <translation type="obsolete">Saját könyvtár</translation> </message> <message> - <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/> <source>Operation not supported on %1</source> - <translation>A művelet nem támogatott a(z) %1-n</translation> + <translation type="obsolete">A művelett nem támogatott a(z) %1-n</translation> </message> <message> - <location line="+57"/> <source>Invalid URI: %1</source> - <translation>Érvénytelen URI: %1</translation> + <translation type="obsolete">Érvénytelen cím: %1</translation> + </message> + <message> + <source>Write error writing to %1: %2</source> + <translation type="obsolete">Hiba a(z) %1 kiírásakor: %2</translation> + </message> + <message> + <source>Read error reading from %1: %2</source> + <translation type="obsolete">Hiba a(z) %1 olvasása közben: %2</translation> </message> <message> - <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+60"/> <source>Socket error on %1: %2</source> - <translation>Socket hiba a(z) %1-n: %2</translation> + <translation type="obsolete">Socket hiba a(z) %1-n: %2</translation> </message> <message> - <location line="+15"/> <source>Remote host closed the connection prematurely on %1</source> - <translation>A távoli hoszt túl korán bezárta a kapcsolatot a(z) %1-n</translation> + <translation type="obsolete">A(z) %1 gép idő előtt megszakította a kapcsolatot</translation> + </message> + <message> + <source>Protocol error: packet of size 0 received</source> + <translation type="obsolete">Protokoll hiba: 0 méretű csomag érkezett</translation> </message> <message> - <location filename="../src/network/kernel/qhostinfo.cpp" line="+175"/> - <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+0"/> <source>No host name given</source> - <translation>Nincs hoszt név megadva</translation> + <translation type="obsolete">Nem adott meg gépnevet</translation> + </message> + <message> + <source>Exit</source> + <translation type="obsolete">Kilépés</translation> + </message> + <message> + <location filename="../src/declarative/util/qdeclarativexmllistmodel.cpp" line="-241"/> + <source>"%1" duplicates a previous role name and will be disabled.</source> + <translatorcomment>CHECKIT: role == ?</translatorcomment> + <translation>A(z) "%1" neve ütközik egy, már létező szabály nevével, így le lesz tiltva.</translation> + </message> + <message> + <location line="+515"/> + <location line="+4"/> + <source>invalid query: "%1"</source> + <translation>érvénytelen lekérdezés: "%1"</translation> + </message> + <message> + <location filename="../src/3rdparty/phonon/phonon/pulsesupport.cpp" line="+162"/> + <location line="+11"/> + <source>PulseAudio Sound Server</source> + <translation></translation> </message> </context> <context> <name>QPPDOptionsModel</name> <message> - <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1197"/> + <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1238"/> <source>Name</source> <translation>Név</translation> </message> @@ -3643,32 +5601,32 @@ Mégis törölni szeretné?</translation> <message> <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+782"/> <source>Unable to connect</source> - <translation>Nem lehet csatlakozni</translation> + <translation>Nem sikerült kapcsolódni</translation> </message> <message> <location line="+49"/> <source>Could not begin transaction</source> - <translation>Nem sikerült megkezdeni a tranzakciót</translation> + <translation>A tranzakció nem indítható</translation> </message> <message> <location line="+30"/> <source>Could not commit transaction</source> - <translation>Nem lehet kommitolni a tranzakciót</translation> + <translation>A tranzakció nem véglegesíthető</translation> </message> <message> <location line="+16"/> <source>Could not rollback transaction</source> - <translation>Nem lehet visszagörgetni a tranzakciót</translation> + <translation>A tranzakció nem görgethető vissza</translation> </message> <message> <location line="+374"/> <source>Unable to subscribe</source> - <translation>Nem lehet feliratkozni</translation> + <translation>A feliratkozás sikertelen</translation> </message> <message> <location line="+32"/> <source>Unable to unsubscribe</source> - <translation>Nem lehet leiratkozni</translation> + <translation>A leiratkozás sikertelen</translation> </message> </context> <context> @@ -3676,12 +5634,12 @@ Mégis törölni szeretné?</translation> <message> <location line="-1085"/> <source>Unable to create query</source> - <translation>Nem lehet létrehozni a lekérdezést</translation> + <translation>A lekérdezés nem készíthető el</translation> </message> <message> <location line="+372"/> <source>Unable to prepare statement</source> - <translation>Nem lehet felkészülni az állításra</translation> + <translation>A parancs előkészítése nem lehetséges</translation> </message> </context> <context> @@ -3699,7 +5657,7 @@ Mégis törölni szeretné?</translation> <message> <location line="+0"/> <source>Inches (in)</source> - <translation>Incs (in)</translation> + <translation>Inch (in)</translation> </message> <message> <location line="+0"/> @@ -3709,7 +5667,7 @@ Mégis törölni szeretné?</translation> <message> <location filename="../src/gui/dialogs/qpagesetupwidget.ui"/> <source>Form</source> - <translation></translation> + <translation>Formátum</translation> </message> <message> <location/> @@ -3719,7 +5677,7 @@ Mégis törölni szeretné?</translation> <message> <location/> <source>Page size:</source> - <translation>Lap méret:</translation> + <translation>Papírméret:</translation> </message> <message> <location/> @@ -3734,57 +5692,894 @@ Mégis törölni szeretné?</translation> <message> <location/> <source>Paper source:</source> - <translation>Papír forrás:</translation> + <translation>Papírforrás:</translation> </message> <message> <location/> <source>Orientation</source> - <translation>Elhelyezkedés</translation> + <translation>Orientáció</translation> </message> <message> <location/> <source>Portrait</source> - <translation>Portré</translation> + <translation>Álló</translation> </message> <message> <location/> <source>Landscape</source> - <translation>Tájkép</translation> + <translation>Fekvő</translation> </message> <message> <location/> <source>Reverse landscape</source> - <translation>Fordított tájkép</translation> + <translation>Fordított fekvő</translation> </message> <message> <location/> <source>Reverse portrait</source> - <translation>Fordított portré</translation> + <translation>Fordított álló</translation> </message> <message> <location/> <source>Margins</source> - <translation>Margó</translation> + <translation>Margók</translation> </message> <message> <location/> <source>top margin</source> - <translation>Felső margó</translation> + <translation>felső margó</translation> </message> <message> <location/> <source>left margin</source> - <translation>Bal margó</translation> + <translation>bal margó</translation> </message> <message> <location/> <source>right margin</source> - <translation>Jobb margó</translation> + <translation>jobb margó</translation> </message> <message> <location/> <source>bottom margin</source> - <translation>Alsó margó</translation> + <translation>alsó margó</translation> + </message> +</context> +<context> + <name>QPatternist::QtXmlPatterns</name> + <message> + <source>An %1-attribute with value %2 has already been declared.</source> + <translation type="obsolete">Egy %1-attribútum %2 értékkel már deklarálva van.</translation> + </message> + <message> + <source>An %1-attribute must have a valid %2 as value, which %3 isn't.</source> + <translation type="obsolete">Egy %1-attribútumnak érvényes %2 értékkel kell rendelkeznie, azonban %3 nem az.</translation> + </message> + <message> + <source>%1 is an unsupported encoding.</source> + <translation type="obsolete">%1 nem támogatott kódolás.</translation> + </message> + <message> + <source>%1 contains octets which are disallowed in the requested encoding %2.</source> + <translation type="obsolete">%1 olyan okteteket tartalmaz, amelyek nem megengedettek a kért %2 kódolásban.</translation> + </message> + <message> + <source>The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.</source> + <translation type="obsolete">%1 kódrészlet %2 helyen, %3 kódolással érvénytelen XML karakter.</translation> + </message> + <message> + <source>Network timeout.</source> + <translation type="obsolete">Időtúllépés.</translation> + </message> + <message> + <source>Element %1 can't be serialized because it appears outside the document element.</source> + <translation type="obsolete">%1 elem nem szerializálható, mert a document elemen kívül szerepel.</translation> + </message> + <message> + <source>Attribute %1 can't be serialized because it appears at the top level.</source> + <translation type="obsolete">%1 attribútum nem szerializálható, mert legfelső szinten szerepel.</translation> + </message> + <message> + <source>Year %1 is invalid because it begins with %2.</source> + <translation type="obsolete">%1 év érvénytelen, mert nem kezdődhet %2-val.</translation> + </message> + <message> + <source>Day %1 is outside the range %2..%3.</source> + <translation type="obsolete">A(z) %1. nap nem esik %2 és %3 közé.</translation> + </message> + <message> + <source>Month %1 is outside the range %2..%3.</source> + <translation type="obsolete">A(z) %1. hónap nem esik %2 és %3 közé.</translation> + </message> + <message> + <source>Overflow: Can't represent date %1.</source> + <translation type="obsolete">Túlcsordulás: A(z) %1 dátum nem reprezentálható.</translation> + </message> + <message> + <source>Day %1 is invalid for month %2.</source> + <translation type="obsolete">Nincs %1 nap %2 hónapban.</translation> + </message> + <message> + <source>Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; </source> + <translation type="obsolete">Az 24:%1:%2.%3 időpont érvénytelen, mert az óra értéke 24, de a többi érték nem 0; </translation> + </message> + <message> + <source>Time %1:%2:%3.%4 is invalid.</source> + <translation type="obsolete">Az %1:%2:%3.%4 időpont érvénytelen.</translation> + </message> + <message> + <source>Overflow: Date can't be represented.</source> + <translation type="obsolete">Túlcsordulás: A dátum nem reprezentálható.</translation> + </message> + <message> + <source>At least one component must be present.</source> + <translation type="obsolete">Legalább egy komponenst meg kell adni.</translation> + </message> + <message> + <source>At least one time component must appear after the %1-delimiter.</source> + <translation type="obsolete">Legalább egy időkomponenst meg kell adni a(z) %1 elválasztó után.</translation> + </message> + <message> + <source>No operand in an integer division, %1, can be %2.</source> + <translation type="obsolete">Nincs operandus az egészosztásnál (%1), akár %2 is lehet.</translation> + </message> + <message> + <source>The first operand in an integer division, %1, cannot be infinity (%2).</source> + <translation type="obsolete">Az egészosztás (%1) első operandusa nem lehet végtelen (%2).</translation> + </message> + <message> + <source>The second operand in a division, %1, cannot be zero (%2).</source> + <translation type="obsolete">Az osztás (%1) második operandusa nem lehet nulla (%2).</translation> + </message> + <message> + <source>%1 is not a valid value of type %2.</source> + <translation type="obsolete">%1 nem érvényes érték %2 típusnak.</translation> + </message> + <message> + <source>When casting to %1 from %2, the source value cannot be %3.</source> + <translation type="obsolete">Ha %2-t %1-re kényszerítünk, a kiinduló érték nem lehet %3.</translation> + </message> + <message> + <source>Integer division (%1) by zero (%2) is undefined.</source> + <translation type="obsolete">A nullával (%2) való egészosztás (%1) nincs értelmezve.</translation> + </message> + <message> + <source>Division (%1) by zero (%2) is undefined.</source> + <translation type="obsolete">A nullával (%2) való osztás (%1) nincs értelmezve.</translation> + </message> + <message> + <source>Modulus division (%1) by zero (%2) is undefined.</source> + <translation type="obsolete">A nullával (%2) való maradékos osztás (%1) nincs értelmezve.</translation> + </message> + <message> + <source>Dividing a value of type %1 by %2 (not-a-number) is not allowed.</source> + <translation type="obsolete">%1 %2-vel osztása nem engedélyezett, mert az nem szám.</translation> + </message> + <message> + <source>Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed.</source> + <translation type="obsolete">%1 típusú érték osztása %2 vagy %3 (pozitív vagy negatív nulla) értékkel nem megengedett.</translation> + </message> + <message> + <source>Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed.</source> + <translation type="obsolete">%1 típusú érték szorzása %2 vagy %3 (pozitív vagy negatív végtelen) típusú értékkel nem megengedett.</translation> + </message> + <message> + <source>A value of type %1 cannot have an Effective Boolean Value.</source> + <translation type="obsolete">%1 típusú érték nem kaphat effektív logikai értéket.</translation> + </message> + <message> + <source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source> + <translation type="obsolete">Effektív logikai érték nem számítható olyan sorozatra, melyben kettő vagy több atomi érték szerepel.</translation> + </message> + <message> + <source>Value %1 of type %2 exceeds maximum (%3).</source> + <translation type="obsolete">A(z) %2 típusú %1 érték meghaladja a maximumot (%3).</translation> + </message> + <message> + <source>Value %1 of type %2 is below minimum (%3).</source> + <translation type="obsolete">A(z) %2 típusú %1 érték kisebb, mint a minimum (%3).</translation> + </message> + <message> + <source>A value of type %1 must contain an even number of digits. The value %2 does not.</source> + <translation type="obsolete">%1 típusú értékben páros számú számjegynek kell szerepelnie. A %2 érték nem megfelelő.</translation> + </message> + <message> + <source>%1 is not valid as a value of type %2.</source> + <translation type="obsolete">%1 nem érvényes %2 típusú érték.</translation> + </message> + <message> + <source>Ambiguous rule match.</source> + <translation type="obsolete">Nem egyértelmű szabály illeszkedés.</translation> + </message> + <message> + <source>Operator %1 cannot be used on type %2.</source> + <translation type="obsolete">%1 operátor nem használható %2 típuson.</translation> + </message> + <message> + <source>Operator %1 cannot be used on atomic values of type %2 and %3.</source> + <translation type="obsolete">%1 operátor nem használható %2 és %3 típusok atomi értékein.</translation> + </message> + <message> + <source>The namespace URI in the name for a computed attribute cannot be %1.</source> + <translation type="obsolete">Egy számított attribútum nevében szereplő névtér URI-je nem lehet %1.</translation> + </message> + <message> + <source>The name for a computed attribute cannot have the namespace URI %1 with the local name %2.</source> + <translation type="obsolete">Számított attribútum névtér URI-je nem lehet %1 a(z) %2 lokális névvel.</translation> + </message> + <message> + <source>Type error in cast, expected %1, received %2.</source> + <translation type="obsolete">Típushiba a konverzió során, várt %1, kapott %2.</translation> + </message> + <message> + <source>When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed.</source> + <translation type="obsolete">%1 vagy belőle származó típusra való konverziókor a kiindulási értéknek azonos típusúnak vagy sztring literálnak kell lennie. %2 típus nem engedélyezett.</translation> + </message> + <message> + <source>No casting is possible with %1 as the target type.</source> + <translation type="obsolete">%1 típusra való konverzió nem lehetséges.</translation> + </message> + <message> + <source>It is not possible to cast from %1 to %2.</source> + <translation type="obsolete">Nem lehetséges %1 típusról %2 típusra konvertálni.</translation> + </message> + <message> + <source>Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated.</source> + <translation type="obsolete">%1 típusra való konverzió nem lehetséges, mivel absztrakt típus és emiatt nem példányosítható.</translation> + </message> + <message> + <source>It's not possible to cast the value %1 of type %2 to %3</source> + <translation type="obsolete">A(z) %2 típusú %1 érték konverziója %3 típusra nem lehetséges</translation> + </message> + <message> + <source>Failure when casting from %1 to %2: %3</source> + <translation type="obsolete">Hiba történt %1 típus %2 típusra történő konvertálásakor: %3</translation> + </message> + <message> + <source>A comment cannot contain %1</source> + <translation type="obsolete">Egy megjegyzés nem tartalmazhatja a következőt: %1</translation> + </message> + <message> + <source>A comment cannot end with a %1.</source> + <translation type="obsolete">Egy megjegyzés nem végződhet a következőre: %1.</translation> + </message> + <message> + <source>No comparisons can be done involving the type %1.</source> + <translation type="obsolete">%1 típus nem szerepelhet összehasonlításban.</translation> + </message> + <message> + <source>Operator %1 is not available between atomic values of type %2 and %3.</source> + <translation type="obsolete">%1 operátor nem használható %2 és %3 típusok atomi értékei között.</translation> + </message> + <message> + <source>In a namespace constructor, the value for a namespace cannot be an empty string.</source> + <translation type="obsolete">Egy névtér konstruktorában a névtér értéke nem lehet üres karaktersorozat.</translation> + </message> + <message> + <source>The prefix must be a valid %1, which %2 is not.</source> + <translation type="obsolete">A prefixum érvényes %1 kell legyen, aminek %2 nem tesz eleget.</translation> + </message> + <message> + <source>The prefix %1 cannot be bound.</source> + <translation type="obsolete">%1 prefixum nem köthető.</translation> + </message> + <message> + <source>Only the prefix %1 can be bound to %2 and vice versa.</source> + <translation type="obsolete">Csak %1 prefixum köthető %2 kifejezéshez és fordítva.</translation> + </message> + <message> + <source>An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place.</source> + <translation type="obsolete">Attribútum csomópont nem lehet egy document csomópont gyermeke. Emiatt a(z) %1 attribútum nem ide való.</translation> + </message> + <message> + <source>Circularity detected</source> + <translation type="obsolete">Körkörös hivatkozás</translation> + </message> + <message> + <source>A library module cannot be evaluated directly. It must be imported from a main module.</source> + <translation type="obsolete">Egy könyvtár modult nem lehet közvetlenül kiértékelni. Mindenképp egy fő modulból kell importálni.</translation> + </message> + <message> + <source>No template by name %1 exists.</source> + <translation type="obsolete">Nem létezik %1 nevű sablon.</translation> + </message> + <message> + <source>A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type.</source> + <translation type="obsolete">Egy %1 típusú érték nem lehet predikátum. Egy predikátumnak szám vagy effektív logikai érték típusúnak kell lennie.</translation> + </message> + <message> + <source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source> + <translation type="obsolete">A célnév egy feldolgozó utasításban nem lehet %1, kis és nagybetűk semmilyen kombinációjában. Ennek okán %2 érvénytelen.</translation> + </message> + <message> + <source>%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3.</source> + <translation type="obsolete">%1 érvénytelen célnév egy feldolgozó utasításban. Értéke %2 típusú kell legyen, mint pl. %3.</translation> + </message> + <message> + <source>The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two.</source> + <translation type="obsolete">Egy útvonal utolsó lépésének vagy csomópontokat vagy atomi értékeket kell tartalmaznia. A kettő nem keveredhet.</translation> + </message> + <message> + <source>The data of a processing instruction cannot contain the string %1</source> + <translation type="obsolete">Egy feldolgozó utasítás adata nem tartalmazhatja a következő sztringet: %1</translation> + </message> + <message> + <source>No namespace binding exists for the prefix %1</source> + <translation type="obsolete">Nincs névtér kötés a(z) %1 prefixumhoz</translation> + </message> + <message> + <source>No namespace binding exists for the prefix %1 in %2</source> + <translation type="obsolete">Nincs névtér kötés a(z) %1 prefixumhoz %2 helyen</translation> + </message> + <message> + <source>%1 is an invalid %2</source> + <translation type="obsolete">%1 egy érvénytelen %2</translation> + </message> + <message> + <source>The parameter %1 is passed, but no corresponding %2 exists.</source> + <translation type="obsolete">Az átadott érték %1, de nincs megfelelő %2.</translation> + </message> + <message> + <source>The parameter %1 is required, but no corresponding %2 is supplied.</source> + <translation type="obsolete">%1 paraméter kötelező, de nincs megadva megfelelő %2.</translation> + </message> + <message numerus="yes"> + <source>%1 takes at most %n argument(s). %2 is therefore invalid.</source> + <translation type="obsolete"> + <numerusform>%1 maximum %n argumentumot fogad, így %2 érvénytelen.</numerusform> + </translation> + </message> + <message numerus="yes"> + <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source> + <translation type="obsolete"> + <numerusform>%1 legalább %n argumentumot fogad, így %2 érvénytelen.</numerusform> + </translation> + </message> + <message> + <source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source> + <translation type="obsolete">%1 első paramétere nem lehet %2 típusú. Csak numerikus típus, xs:yearMonthDuration vagy dayTimeDuration lehet.</translation> + </message> + <message> + <source>The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source> + <translation type="obsolete">%1 első argumentuma nem lehet %2 típusú. Csak %3, %4 vagy %5 megengedett.</translation> + </message> + <message> + <source>The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source> + <translation type="obsolete">%1 második paramétere nem lehet %2 típusú. Csak %3, %4 vagy %5 megengedett.</translation> + </message> + <message> + <source>%1 is not a valid XML 1.0 character.</source> + <translation type="obsolete">%1 érvénytelen XML 1.0 karakter.</translation> + </message> + <message> + <source>The first argument to %1 cannot be of type %2.</source> + <translation type="obsolete">%1 első argumentuma nem lehet %2 típusú.</translation> + </message> + <message> + <source>The root node of the second argument to function %1 must be a document node. %2 is not a document node.</source> + <translation type="obsolete">%1 függvény második argumentumának gyökér csomópontja document típusú kell legyen. %2 nem document csomópont.</translation> + </message> + <message> + <source>If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same.</source> + <translation type="obsolete">Ha mindkét értékben zóna eltolás van, akkor annak azonosnak kell lennie. %1 és %2 nem egyezik.</translation> + </message> + <message> + <source>%1 was called.</source> + <translation type="obsolete">%1 meghívva.</translation> + </message> + <message> + <source>%1 must be followed by %2 or %3, not at the end of the replacement string.</source> + <translation type="obsolete">%1-t %2 vagy %3 kell kövesse, nem a helyettesítő végén.</translation> + </message> + <message> + <source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source> + <translation type="obsolete">A(z) %1 csereszöveget legalább egy számjegy kell kövesse, amennyiben az nincs escapelve.</translation> + </message> + <message> + <source>In the replacement string, %1 can only be used to escape itself or %2, not %3</source> + <translation type="obsolete">A csereszövegben %1 csak önmaga vagy %2 escapelésére használható, %3-ra nem</translation> + </message> + <message> + <source>%1 matches newline characters</source> + <translation type="obsolete">%1 illeszkedik az újsor karakterekre</translation> + </message> + <message> + <source>%1 and %2 match the start and end of a line.</source> + <translation type="obsolete">%1 és %2 a sor elejére és végére is illeszkedik.</translation> + </message> + <message> + <source>Matches are case insensitive</source> + <translation type="obsolete">Az illeszkedések nem nagybetű-érzékenyek</translation> + </message> + <message> + <source>Whitespace characters are removed, except when they appear in character classes</source> + <translation type="obsolete">A nem nyomtatható karakterek törlésre kerülnek, kivétel ha karakter osztályokban szerepelnek</translation> + </message> + <message> + <source>%1 is an invalid regular expression pattern: %2</source> + <translation type="obsolete">%1 érvénytelen reguláris kifejezés minta: %2</translation> + </message> + <message> + <source>%1 is an invalid flag for regular expressions. Valid flags are:</source> + <translation type="obsolete">%1 érvénytelen kapcsoló reguláris kifejezésekhez. Az érvényes kapcsolók:</translation> + </message> + <message> + <source>If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified.</source> + <translation type="obsolete">Ha az első argumentum az üres szekvencia vagy egy nulla hosszúságú sztring (névtér nélkül), akkor nem adható meg prefixum. %1 prefixum lett megadva.</translation> + </message> + <message> + <source>It will not be possible to retrieve %1.</source> + <translation type="obsolete">Nem lesz lehetséges %1 lekérése.</translation> + </message> + <message> + <source>The default collection is undefined</source> + <translation type="obsolete">Nincs meghatározva az alapértelmezett kollekció</translation> + </message> + <message> + <source>%1 cannot be retrieved</source> + <translation type="obsolete">%1-t nem lehet lekérni</translation> + </message> + <message> + <source>The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization).</source> + <translatorcomment>none ==? semmi, valamelyest félreérthető</translatorcomment> + <translation type="obsolete">%1 normalizált formája nem támogatott. A támogatott formák %2, %3, %4 és %5 vagy semmi, pl. az üres sztring (normalizálás nélkül).</translation> + </message> + <message> + <source>A zone offset must be in the range %1..%2 inclusive. %3 is out of range.</source> + <translation type="obsolete">Egy zónaeltolásnak a(z) %1..%2 nyílt intervallumba kell esnie. %3 az értékhatáron kívül van.</translation> + </message> + <message> + <source>%1 is not a whole number of minutes.</source> + <translation type="obsolete">%1 nem egész számú perc.</translation> + </message> + <message> + <source>The URI cannot have a fragment</source> + <translation type="obsolete">A URI nem tartalmazhat töredéket</translation> + </message> + <message> + <source>Required cardinality is %1; got cardinality %2.</source> + <translation type="obsolete">Az elvárt kardinalitás %1, azonban %2 lett megadva.</translation> + </message> + <message> + <source>The item %1 did not match the required type %2.</source> + <translation type="obsolete">%1 elem nem egyezik a várt %2 típussal.</translation> + </message> + <message> + <source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source> + <translation type="obsolete">A(z) %1 attribútum nem jelenhet meg %2 elemben. Csak szabványos attribútumok szerepelhetnek.</translation> + </message> + <message> + <source>Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes.</source> + <translation type="obsolete">A(z) %1 attribútum nem jelenhet meg %2 elemben. Csak %3 és a szabványos attribútumok szerepelhetnek.</translation> + </message> + <message> + <source>Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes.</source> + <translation type="obsolete">A(z) %1 attribútum nem jelenhet meg %2 elemben. Csak %3, %4 és a szabványos attribútumok szerepelhetnek.</translation> + </message> + <message> + <source>Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes.</source> + <translation type="obsolete">A(z) %1 attribútum nem jelenhet meg %2 elemben. Csak %3 és a szabványos attribútumok szerepelhetnek.</translation> + </message> + <message> + <source>XSL-T attributes on XSL-T elements must be in the null namespace, not in the XSL-T namespace which %1 is.</source> + <translation type="obsolete">Az XSL-T elemekhez tartozó XSL-T attribútumoknak a null névtérben kell szerepelniük, nem a(z) %1 XSL-T névtérben.</translation> + </message> + <message> + <source>The attribute %1 must appear on element %2.</source> + <translation type="obsolete">A(z) %1 attribútumnak %2 elemben kell megjelennie.</translation> + </message> + <message> + <source>The element with local name %1 does not exist in XSL-T.</source> + <translation type="obsolete">%1 lokális nevű elem nem létezik az XSL-T-ben.</translation> + </message> + <message> + <source>The variable %1 is unused</source> + <translation type="obsolete">A(z) %1 változó nincs használva</translation> + </message> + <message> + <source>A construct was encountered which only is allowed in XQuery.</source> + <translation type="obsolete">Olyan szerkezetet találtam, ami csak XQuery-ben engedélyezett.</translation> + </message> + <message> + <source>W3C XML Schema identity constraint selector</source> + <translation type="obsolete">W3C XML séma azonosító szabály kiválasztó</translation> + </message> + <message> + <source>W3C XML Schema identity constraint field</source> + <translation type="obsolete">W3C XML séma azonosító szabály mező</translation> + </message> + <message> + <source>%1 is an unknown schema type.</source> + <translation type="obsolete">%1 ismeretlen séma típus.</translation> + </message> + <message> + <source>A template by name %1 has already been declared.</source> + <translation type="obsolete">%1 néven már lett sablon deklarálva.</translation> + </message> + <message> + <source>%1 is not a valid numeric literal.</source> + <translation type="obsolete">%1 érvénytelen numerikus literál.</translation> + </message> + <message> + <source>Only one %1 declaration can occur in the query prolog.</source> + <translation type="obsolete">Csak egy %1 deklaráció szerepelhet a lekérdezés bevezetésben.</translation> + </message> + <message> + <source>The initialization of variable %1 depends on itself</source> + <translation type="obsolete">%1 változó inicializálása önmagától függ</translation> + </message> + <message> + <source>No variable by name %1 exists</source> + <translation type="obsolete">Nem létezik %1 nevű változó</translation> + </message> + <message> + <source>Version %1 is not supported. The supported XQuery version is 1.0.</source> + <translation type="obsolete">A(z) %1 verzió nem támogatott. A támogatott verzió XQuery 1.0.</translation> + </message> + <message> + <source>The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2.</source> + <translation type="obsolete">%1 kódolás érvénytelen. Csak Latin karaktereket tartalmazhat, nem nyomtatható karakterek nélkül és illeszkednie kell %2 reguláris kifejezésre.</translation> + </message> + <message> + <source>No function with signature %1 is available</source> + <translation type="obsolete">%1 nevű függvény nem található</translation> + </message> + <message> + <source>A default namespace declaration must occur before function, variable, and option declarations.</source> + <translation type="obsolete">Egy alapértelmezett névtér deklarációnak meg kell előznie a függvény-, változó- és opció deklarációkat.</translation> + </message> + <message> + <source>Namespace declarations must occur before function, variable, and option declarations.</source> + <translation type="obsolete">A névtér deklarációknak meg kell előzniük a függvény-, változó- és opció deklarációkat.</translation> + </message> + <message> + <source>Module imports must occur before function, variable, and option declarations.</source> + <translation type="obsolete">Modul importoknak meg kell előzniük a függvény-, változó- és opció deklarációkat.</translation> + </message> + <message> + <source>The keyword %1 cannot occur with any other mode name.</source> + <translation type="obsolete">%1 kulcsszó nem szerepelhet együtt semmilyen más mód névvel.</translation> + </message> + <message> + <source>The value of attribute %1 must of type %2, which %3 isn't.</source> + <translation type="obsolete">%1 attribútumának %2 típusúnak kell lennie, aminek %3 nem felel meg.</translation> + </message> + <message> + <source>It is not possible to redeclare prefix %1.</source> + <translation type="obsolete">%1 prefixum újradeklarálása nem lehetséges.</translation> + </message> + <message> + <source>The prefix %1 can not be bound. By default, it is already bound to the namespace %2.</source> + <translation type="obsolete">%1 prefixum nem köthető. Alapértelmezés szerint már kötve van %2 névtérhez.</translation> + </message> + <message> + <source>Prefix %1 is already declared in the prolog.</source> + <translation type="obsolete">%1 prefixum már deklarálva van a bevezetésben.</translation> + </message> + <message> + <source>The name of an option must have a prefix. There is no default namespace for options.</source> + <translation type="obsolete">Egy opció nevének kötelező prefixumot megadni. Nics alapértelmezett névetér az opciók számára.</translation> + </message> + <message> + <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source> + <translation type="obsolete">A Schema Import szolgáltatás nem támogatott, így %1 deklarációk nem fogadhatók el.</translation> + </message> + <message> + <source>The target namespace of a %1 cannot be empty.</source> + <translation type="obsolete">%1 cél névtere nem lehet üres.</translation> + </message> + <message> + <source>The module import feature is not supported</source> + <translation type="obsolete">A modul import szolgáltatás nem támogatott</translation> + </message> + <message> + <source>A variable by name %1 has already been declared.</source> + <translation type="obsolete">%1 nevű változó már deklarálva van.</translation> + </message> + <message> + <source>No value is available for the external variable by name %1.</source> + <translation type="obsolete">A(z) %1 nevű külső változóhoz nem érhető el érték.</translation> + </message> + <message> + <source>A stylesheet function must have a prefixed name.</source> + <translation type="obsolete">Egy stíluslap függvénynek prefixummal ellátott neve kell legyen.</translation> + </message> + <message> + <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source> + <translation type="obsolete">Egy felhasználói függvény névtere nem lehet üres (próbálja meg a(z) %1 prefixumot, ami ilyen esetekre van fenntartva)</translation> + </message> + <message> + <source>The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases.</source> + <translation type="obsolete">A(z) %1 névtér fenntartott, így felhasználói függvények nem használhatják. Próbálja meg a(z) %2 prefixumot, ami ilyen esetekre van.</translation> + </message> + <message> + <source>The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2</source> + <translation type="obsolete">Egy függvénytár modulban definiált felhasználói függvény névtere meg kell egyezzen a modul névterével. Más szóval %1 kellene legyen %2 helyett</translation> + </message> + <message> + <source>A function already exists with the signature %1.</source> + <translation type="obsolete">%1 szignatúrájú függvény már létezik.</translation> + </message> + <message> + <source>No external functions are supported. All supported functions can be used directly, without first declaring them as external</source> + <translation type="obsolete">Külső függvények nem támogatottak. Minden támogatott függvény használható, külső függvényként való deklarálás nélkül</translation> + </message> + <message> + <source>An argument by name %1 has already been declared. Every argument name must be unique.</source> + <translation type="obsolete">%1 nevű argumentum már deklarálva lett. Minden argumentumnak egyedinek kell lennie.</translation> + </message> + <message> + <source>When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal.</source> + <translation type="obsolete">%1 függvény minta belsejében történő illesztésekor, az argumentumnak változó referenciának vagy szöveges literálnak kell lennie.</translation> + </message> + <message> + <source>In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching.</source> + <translation type="obsolete">Egy XSL-T mintában %1 függvény első argumentumának szöveges literálnak kell lennie, ha illesztéshez használjuk.</translation> + </message> + <message> + <source>In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching.</source> + <translation type="obsolete">Egy XSL-T mintában %1 függvény első argumentumának szöveges literálnak vagy változó referenciának kell lennie, ha illesztéshez használjuk.</translation> + </message> + <message> + <source>In an XSL-T pattern, function %1 cannot have a third argument.</source> + <translation type="obsolete">Egy XSL-T mintában %1 függénynek nem lehet harmadik argumentuma.</translation> + </message> + <message> + <source>In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching.</source> + <translation type="obsolete">Egy XSL-T mintában csak %1 és %2 függvények használhatók illesztéshez, %3 nem.</translation> + </message> + <message> + <source>In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can.</source> + <translation type="obsolete">Egy XSL-T mintában %1 tengely nem, csak %2 vagy %3 tengely használható.</translation> + </message> + <message> + <source>%1 is an invalid template mode name.</source> + <translation type="obsolete">%1 érvénytelen sablon mód név.</translation> + </message> + <message> + <source>The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide.</source> + <translation type="obsolete">Egy for-kifejezésben kötött változó nevének különbözőnek kell lennie, mint a pozicionális változó neve. Így a két %1 nevű változó ütközik.</translation> + </message> + <message> + <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source> + <translation type="obsolete">A Schema Validation szolgáltatás nem támogatott. Ennélfogva %1-kifejezések nem használhatók.</translation> + </message> + <message> + <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source> + <translation type="obsolete">Pragma kifejezések egyike sem támogatott. Ennélfogva léteznie kell egy alapértelmezett kifejezésnek</translation> + </message> + <message> + <source>Each name of a template parameter must be unique; %1 is duplicated.</source> + <translation type="obsolete">Minden sablonparaméter neve egyedi kell legyen, %1 azonban duplán szerepel.</translation> + </message> + <message> + <source>The %1-axis is unsupported in XQuery</source> + <translation type="obsolete">A(z) %1-tengely nem támogatott XQuery-ben</translation> + </message> + <message> + <source>No function by name %1 is available.</source> + <translation type="obsolete">Nincs %1 nevű függvény.</translation> + </message> + <message> + <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source> + <translation type="obsolete">Prefixumhoz kötés esetén a névtér URI nem lehet az üres sztring, %1.</translation> + </message> + <message> + <source>%1 is an invalid namespace URI.</source> + <translation type="obsolete">%1 érvénytelen névtér URI.</translation> + </message> + <message> + <source>It is not possible to bind to the prefix %1</source> + <translation type="obsolete">Nem lehet kötni %1 prefixumhoz</translation> + </message> + <message> + <source>Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).</source> + <translation type="obsolete">%1 névtér csak %2-hoz köthető (és minden esetben előre deklarált).</translation> + </message> + <message> + <source>Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared).</source> + <translation type="obsolete">%1 prefixum csak %2-hoz köthető (és minden esetben előre deklarált).</translation> + </message> + <message> + <source>Two namespace declaration attributes have the same name: %1.</source> + <translation type="obsolete">Két névtér-deklaráció attribútum neve azonos: %1.</translation> + </message> + <message> + <source>The namespace URI must be a constant and cannot use enclosed expressions.</source> + <translation type="obsolete">Egy névtér URI-nek konstansnak kell lennie és nem használhat bennfoglalt kifejezéseket.</translation> + </message> + <message> + <source>An attribute by name %1 has already appeared on this element.</source> + <translation type="obsolete">%1 nevű attribútum már szerepel ezen az elemen.</translation> + </message> + <message> + <source>A direct element constructor is not well-formed. %1 is ended with %2.</source> + <translation type="obsolete">Egy közvetlen elem konstruktor nem jól formázott. %1-t %2 zárja le.</translation> + </message> + <message> + <source>The name %1 does not refer to any schema type.</source> + <translation type="obsolete">A(z) %1 név nem mutat semmilyen séma típusra.</translation> + </message> + <message> + <source>%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works.</source> + <translation type="obsolete">%1 komplex típus. Komplex típusra való konvertálás nem lehetséges. Azonban atomi típusokra, mint pl. %2 történő konvertálás igen.</translation> + </message> + <message> + <source>%1 is not an atomic type. Casting is only possible to atomic types.</source> + <translation type="obsolete">%1 nem atomi típus. Típuskonverzió csak atomi típusra történhet.</translation> + </message> + <message> + <source>%1 is not a valid name for a processing-instruction.</source> + <translation type="obsolete">%1 érvénytelen feldogozó-utasítás név.</translation> + </message> + <message> + <source>%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported.</source> + <translatorcomment>in-scope mint XML kulcsszó vagy ~láthatósági kör???</translatorcomment> + <translation type="obsolete">%1 nem a láthatóságon belüli attribútum deklarációk között van. A séma import szolgáltatás nem támogatott.</translation> + </message> + <message> + <source>The name of an extension expression must be in a namespace.</source> + <translation type="obsolete">Egy kiterjesztés kifejezés nevének névtérben kell lennie.</translation> + </message> + <message> + <source>Element %1 is not allowed at this location.</source> + <translation type="obsolete">%1 elem nem engedélyezett ezen a helyen.</translation> + </message> + <message> + <source>Text nodes are not allowed at this location.</source> + <translation type="obsolete">Szöveg csomópontok nem engedélyezettek ezen a helyen.</translation> + </message> + <message> + <source>Parse error: %1</source> + <translation type="obsolete">Értelmezési hiba: %1</translation> + </message> + <message> + <source>The value of the XSL-T version attribute must be a value of type %1, which %2 isn't.</source> + <translation type="obsolete">Az XSL-T verzió attribútum értékének %1 típusúnak kell lennie, %2 pedig nem az.</translation> + </message> + <message> + <source>Running an XSL-T 1.0 stylesheet with a 2.0 processor.</source> + <translation type="obsolete">XSL-T 1.0 stíluslap futtatása 2.0 verziójú feldolgozóval.</translation> + </message> + <message> + <source>Unknown XSL-T attribute %1.</source> + <translation type="obsolete">Ismeretlen XSLT attributum: %1.</translation> + </message> + <message> + <source>Attribute %1 and %2 are mutually exclusive.</source> + <translation type="obsolete">%1 és %2 attribútumok kölcsönösen kizáróak.</translation> + </message> + <message> + <source>In a simplified stylesheet module, attribute %1 must be present.</source> + <translation type="obsolete">Egy egyszerűsített stíluslap modulban a(z) %1 attribútumnak jelen kell lennie.</translation> + </message> + <message> + <source>If element %1 has no attribute %2, it cannot have attribute %3 or %4.</source> + <translation type="obsolete">Ha %1 elemnek nincs %2 attribútuma, akkor %3 vagy %4 attribútuma sem lehet.</translation> + </message> + <message> + <source>Element %1 must have at least one of the attributes %2 or %3.</source> + <translation type="obsolete">%1 elemnek valamelyik attribútumát meg kell adni %2 vagy %3 közül.</translation> + </message> + <message> + <source>At least one mode must be specified in the %1-attribute on element %2.</source> + <translation type="obsolete">%2 elem %1-attribútumában legalább egy módot meg kell adni.</translation> + </message> + <message> + <source>Element %1 must come last.</source> + <translation type="obsolete">%1 elemnek az utolsónak kell lennie.</translation> + </message> + <message> + <source>At least one %1-element must occur before %2.</source> + <translation type="obsolete">Legalább egy %1-elemnek szerepelnie kell %2 előtt.</translation> + </message> + <message> + <source>Only one %1-element can appear.</source> + <translation type="obsolete">Csak egy %1-elem jelenhet meg.</translation> + </message> + <message> + <source>At least one %1-element must occur inside %2.</source> + <translation type="obsolete">Legalább egy %1-elemnek meg kell jelennie %2-n belül.</translation> + </message> + <message> + <source>When attribute %1 is present on %2, a sequence constructor cannot be used.</source> + <translation type="obsolete">Ha %2-n meg van adva %1 attribútum, akkor nem használható szekvencia konstruktor.</translation> + </message> + <message> + <source>Element %1 must have either a %2-attribute or a sequence constructor.</source> + <translation type="obsolete">%1 elemnek vagy %2-attribútumának vagy szekvencia konstruktorának lennie kell.</translation> + </message> + <message> + <source>When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor.</source> + <translation type="obsolete">Ha paraméter az elvárt, akkor alapértelmezett értéket nem lehet %1-attribútumon vagy szekvencia konstruktoron keresztül átadni.</translation> + </message> + <message> + <source>Element %1 cannot have children.</source> + <translation type="obsolete">%1 elemnek nem lehetnek gyermekei.</translation> + </message> + <message> + <source>Element %1 cannot have a sequence constructor.</source> + <translation type="obsolete">%1 elemnek nem lehet szekvencia konstruktora.</translation> + </message> + <message> + <source>The attribute %1 cannot appear on %2, when it is a child of %3.</source> + <translation type="obsolete">%1 attribútum nem szerepelhet %2-n, ha az %3 gyermeke.</translation> + </message> + <message> + <source>A parameter in a function cannot be declared to be a tunnel.</source> + <translation type="obsolete">Egy függvényparaméter nem definiálható mint tunnel.</translation> + </message> + <message> + <source>This processor is not Schema-aware and therefore %1 cannot be used.</source> + <translation type="obsolete">Ez a feldolgozó nem séma függő, ezért %1 nem használható.</translation> + </message> + <message> + <source>Top level stylesheet elements must be in a non-null namespace, which %1 isn't.</source> + <translation type="obsolete">Felső szintű stíluslap elemeknek egy nem üres névtérben kell lenniük, ezért %1 nem jó.</translation> + </message> + <message> + <source>The value for attribute %1 on element %2 must either be %3 or %4, not %5.</source> + <translation type="obsolete">%2 elem %1 attribútumának értéke %3 vagy %4 kell legyen, de nem %5.</translation> + </message> + <message> + <source>Attribute %1 cannot have the value %2.</source> + <translation type="obsolete">%1 attribútum értéke nem lehet %2.</translation> + </message> + <message> + <source>The attribute %1 can only appear on the first %2 element.</source> + <translation type="obsolete">%1 attribútum csak az első %2 elem esetén jelenhet meg.</translation> + </message> + <message> + <source>At least one %1 element must appear as child of %2.</source> + <translation type="obsolete">Legalább egy %1 elemnek %2 gyermekének kell lennie.</translation> + </message> + <message> + <source>empty</source> + <translation type="obsolete">üres</translation> + </message> + <message> + <source>zero or one</source> + <translation type="obsolete">nulla vagy egy</translation> + </message> + <message> + <source>exactly one</source> + <translation type="obsolete">pontosan egy</translation> + </message> + <message> + <source>one or more</source> + <translation type="obsolete">egy vagy több</translation> + </message> + <message> + <source>zero or more</source> + <translation type="obsolete">nulla vagy több</translation> + </message> + <message> + <source>Required type is %1, but %2 was found.</source> + <translation type="obsolete">Az elvárt típus %1, de a kapott %2.</translation> + </message> + <message> + <source>Promoting %1 to %2 may cause loss of precision.</source> + <translation type="obsolete">%1 átalakítása %2 típusra a pontosság elvesztését okozhatja.</translation> + </message> + <message> + <source>The focus is undefined.</source> + <translation type="obsolete">A fókusz nincs definiálva.</translation> + </message> + <message> + <source>It's not possible to add attributes after any other kind of node.</source> + <translation type="obsolete">Semmilyen más csomópont után nem adható meg attribútum.</translation> + </message> + <message> + <source>An attribute by name %1 has already been created.</source> + <translation type="obsolete">%1 nevű attribútum már létre van hozva.</translation> + </message> + <message> + <source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source> + <translation type="obsolete">Csak a Unicode Codepoint Collation támogatott(%1). %2 nem támogatott.</translation> + </message> + <message> + <source>derived element %1 has weaker value constraint than base particle</source> + <translation type="obsolete">%1 leszármazott elem értékére vonatkozó megszorítás gyengébb, mint az ősre vonatkozó</translation> </message> </context> <context> @@ -3797,15 +6592,15 @@ Mégis törölni szeretné?</translation> <message> <location line="-113"/> <source>The plugin was not loaded.</source> - <translation>A beépülő modult nem sikerült betölteni.</translation> + <translation>A plugin nem lett betöltve.</translation> </message> </context> <context> <name>QPrintDialog</name> <message> - <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+108"/> + <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+110"/> <source>locally connected</source> - <translation>Helyileg csatlakoztatva</translation> + <translation>helyben csatlakoztatva</translation> </message> <message> <location line="+23"/> @@ -3820,22 +6615,15 @@ Mégis törölni szeretné?</translation> <translation>ismeretlen</translation> </message> <message> - <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+266"/> - <source>OK</source> - <translation>OK</translation> - </message> - <message> - <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+375"/> - <source>Print all</source> - <translation>Az összes kinyomtatása</translation> + <source>Portrait</source> + <translation type="obsolete">Álló</translation> </message> <message> - <location line="+2"/> - <source>Print range</source> - <translation>Egy tartomány kinyomtatása</translation> + <source>Landscape</source> + <translation type="obsolete">Fekvő</translation> </message> <message> - <location line="-48"/> + <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+333"/> <source>A0 (841 x 1189 mm)</source> <translation>A0 (841 x 1189 mm)</translation> </message> @@ -3855,7 +6643,12 @@ Mégis törölni szeretné?</translation> <translation>A3 (297 x 420 mm)</translation> </message> <message> - <location line="+2"/> + <location line="+1"/> + <source>A4 (210 x 297 mm, 8.26 x 11.7 inches)</source> + <translation>A4 (210 x 297 mm, 8.26 x 11.7 inch)</translation> + </message> + <message> + <location line="+1"/> <source>A5 (148 x 210 mm)</source> <translation>A5 (148 x 210 mm)</translation> </message> @@ -3905,7 +6698,12 @@ Mégis törölni szeretné?</translation> <translation>B4 (250 x 353 mm)</translation> </message> <message> - <location line="+2"/> + <location line="+1"/> + <source>B5 (176 x 250 mm, 6.93 x 9.84 inches)</source> + <translation>B5 (176 x 250 mm, 6.93 x 9.84 inch)</translation> + </message> + <message> + <location line="+1"/> <source>B6 (125 x 176 mm)</source> <translation>B6 (125 x 176 mm)</translation> </message> @@ -3940,222 +6738,324 @@ Mégis törölni szeretné?</translation> <translation>DLE (110 x 220 mm)</translation> </message> <message> - <location line="+2"/> + <location line="+1"/> + <source>Executive (7.5 x 10 inches, 191 x 254 mm)</source> + <translation>Executive (7.5 x 10 inch, 191 x 254 mm)</translation> + </message> + <message> + <location line="+1"/> <source>Folio (210 x 330 mm)</source> - <translation>Fólió (210 x 330 mm)</translation> + <translation>Folio (210 x 330 mm)</translation> </message> <message> <location line="+1"/> <source>Ledger (432 x 279 mm)</source> - <translation>Főkönyv (432 x 279 mm)</translation> + <translation>Ledger (432 x 279 mm)</translation> </message> <message> - <location line="+3"/> + <location line="+1"/> + <source>Legal (8.5 x 14 inches, 216 x 356 mm)</source> + <translation>Legal (8.5 x 14 inch, 216 x 356 mm)</translation> + </message> + <message> + <location line="+1"/> + <source>Letter (8.5 x 11 inches, 216 x 279 mm)</source> + <translation>Letter (8.5 x 11 inch, 216 x 279 mm)</translation> + </message> + <message> + <location line="+1"/> <source>Tabloid (279 x 432 mm)</source> - <translation>Tabletta (279 x 432 mm)</translation> + <translation>Tabloïd (279 x 432 mm)</translation> </message> <message> <location line="+1"/> <source>US Common #10 Envelope (105 x 241 mm)</source> - <translation>US közös #10 bélyeg (105 x 241 mm)</translation> + <translation>US Common #10 Envelope (105 x 241 mm)</translation> </message> <message> - <location line="-25"/> - <source>A4 (210 x 297 mm, 8.26 x 11.7 inches)</source> - <translation>A4 (210 x 297 mm, 8.26 x 11.7 inches)</translation> + <location line="+20"/> + <source>Print current page</source> + <translation>Jelenlegi oldal nyomtatása</translation> </message> <message> - <location line="+11"/> - <source>B5 (176 x 250 mm, 6.93 x 9.84 inches)</source> - <translation>B5 (176 x 250 mm, 6.93 x 9.84 inches)</translation> + <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+271"/> + <source>The 'From' value cannot be greater than the 'To' value.</source> + <translation>Az első oldal száma nem lehet nagyobb, mint az utolsó oldalé.</translation> </message> <message> - <location line="+8"/> - <source>Executive (7.5 x 10 inches, 191 x 254 mm)</source> - <translation>Vezető (7.5 x 10 inches, 191 x 254 mm)</translation> + <location line="+1"/> + <source>OK</source> + <translation>OK</translation> </message> <message> - <location line="+3"/> - <source>Legal (8.5 x 14 inches, 216 x 356 mm)</source> - <translation>Legális (8.5 x 14 inches, 216 x 356 mm)</translation> + <source>Cancel</source> + <translation type="obsolete">Mégsem</translation> </message> <message> - <location line="+1"/> - <source>Letter (8.5 x 11 inches, 216 x 279 mm)</source> - <translation>Levél (8.5 x 11 inches, 216 x 279 mm)</translation> + <source>Page size:</source> + <translation type="obsolete">Oldalméret:</translation> </message> <message> - <location line="+20"/> - <source>Print selection</source> - <translation>Nyomtatási kiválasztás</translation> + <source>Orientation:</source> + <translation type="obsolete">Tájolás:</translation> </message> <message> - <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+112"/> + <source>Paper source:</source> + <translation type="obsolete">Papírforrás:</translation> + </message> + <message> + <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+113"/> <location line="+13"/> <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/> <source>Print</source> <translation>Nyomtatás</translation> </message> <message> - <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-359"/> + <source>File</source> + <translation type="obsolete">Fájl</translation> + </message> + <message> + <source>Printer</source> + <translation type="obsolete">Nyomtató</translation> + </message> + <message> + <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-392"/> <source>Print To File ...</source> - <translation>Fájlba nyomtatás ...</translation> + <translation>Nyomtatás fájlba...</translation> </message> <message> - <location line="+82"/> + <source>Print dialog</source> + <translation type="obsolete">Nyomtatási ablak</translation> + </message> + <message> + <source>Paper format</source> + <translation type="obsolete">Papírformátum</translation> + </message> + <message> + <source>Size:</source> + <translation type="obsolete">Méret:</translation> + </message> + <message> + <source>Properties</source> + <translation type="obsolete">Tulajdonságok</translation> + </message> + <message> + <source>Printer info:</source> + <translation type="obsolete">Nyomtató információ:</translation> + </message> + <message> + <source>Browse</source> + <translation type="obsolete">Böngészés</translation> + </message> + <message> + <source>Print to file</source> + <translation type="obsolete">Nyomtatás fájlba</translation> + </message> + <message> + <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-1"/> + <source>Print range</source> + <translation>Nyomtatási tartomány</translation> + </message> + <message> + <location line="-2"/> + <source>Print all</source> + <translation>Összes nyomtatása</translation> + </message> + <message> + <source>Pages from</source> + <translation type="obsolete">Kezőoldal</translation> + </message> + <message> + <source>to</source> + <translation type="obsolete">utolsó oldal</translation> + </message> + <message> + <source>Selection</source> + <translation type="obsolete">Kijelölés</translation> + </message> + <message> + <source>Copies</source> + <translation type="obsolete">Másolatok</translation> + </message> + <message> + <source>Number of copies:</source> + <translation type="obsolete">Másolatok száma:</translation> + </message> + <message> + <source>Collate</source> + <translation type="obsolete">Egyeztetés</translation> + </message> + <message> + <source>Print last page first</source> + <translation type="obsolete">Először az utolsó oldal nyomtatása</translation> + </message> + <message> + <source>Other</source> + <translation type="obsolete">Egyéb</translation> + </message> + <message> + <source>Print in color if available</source> + <translation type="obsolete">Színes nyomtatás, ha lehetséges</translation> + </message> + <message> + <source>Double side printing</source> + <translation type="obsolete">Kétszeres méretű nyomtatás</translation> + </message> + <message> + <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+82"/> <source>File %1 is not writable. Please choose a different file name.</source> - <translation>A(z) %1 fájl nem írható. -Kérem válasszon különböző fájl nevet.</translation> + <translation>%1 fájl nem írható. +Válasszon másik fájlnevet.</translation> </message> <message> <location line="+4"/> <source>%1 already exists. Do you want to overwrite it?</source> - <translation>A(z) %1 már létezik. -Felül szeretné írni?</translation> + <translation>%1 már létezik. +Felülírja?</translation> </message> <message> - <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-228"/> + <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-231"/> <source>File exists</source> - <translation>Fájl létezik</translation> + <translation>A fájl létezik</translation> </message> <message> <location line="+1"/> <source><qt>Do you want to overwrite it?</qt></source> - <translation><qt>Felül szeretné írni?</qt></translation> + <translation><qt>Felülírja?</qt></translation> + </message> + <message> + <location line="+231"/> + <source>Print selection</source> + <translation>Kijelölés nyomtatása</translation> </message> <message> <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-8"/> <source>%1 is a directory. Please choose a different file name.</source> - <translation>A(z) %1 egy könyvtár. -Kérem válasszon egy különböző fájl nevet.</translation> - </message> - <message> - <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+1"/> - <source>The 'From' value cannot be greater than the 'To' value.</source> - <translation>A '-Tól' érték nem lehet nagyobb az '-Ig' értéknél.</translation> + <translation>%1 egy könyvtár. +Válasszon másik fájlnevet.</translation> </message> <message> <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="-232"/> <source>A0</source> - <translation>A0</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>A1</source> - <translation>A1</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>A2</source> - <translation>A2</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>A3</source> - <translation>A3</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>A4</source> - <translation>A4</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>A5</source> - <translation>A5</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>A6</source> - <translation>A6</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>A7</source> - <translation>A7</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>A8</source> - <translation>A8</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>A9</source> - <translation>A9</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>B0</source> - <translation>B0</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>B1</source> - <translation>B1</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>B2</source> - <translation>B2</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>B3</source> - <translation>B3</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>B4</source> - <translation>B4</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>B5</source> - <translation>B5</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>B6</source> - <translation>B6</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>B7</source> - <translation>B7</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>B8</source> - <translation>B8</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>B9</source> - <translation>B9</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>B10</source> - <translation>B10</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>C5E</source> - <translation>C5E</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>DLE</source> - <translation>DLE</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Executive</source> - <translation>Vezető</translation> + <translation></translation> </message> <message> <location line="+1"/> @@ -4165,12 +7065,12 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Ledger</source> - <translation>Főkönyv</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Legal</source> - <translation>Legális</translation> + <translation></translation> </message> <message> <location line="+1"/> @@ -4180,12 +7080,12 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Tabloid</source> - <translation>Tabletta</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>US Common #10 Envelope</source> - <translation>US közös #10 bélyeg</translation> + <translation>US általános #10-es boríték</translation> </message> <message> <location line="+1"/> @@ -4193,25 +7093,30 @@ Kérem válasszon egy különböző fájl nevet.</translation> <translation>Egyéni</translation> </message> <message> - <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-523"/> + <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-530"/> <location line="+68"/> <source>&Options >></source> <translation>&Opciók >></translation> </message> <message> - <location line="+4"/> + <location line="-63"/> + <source>&Print</source> + <translation>&Nyomtatás</translation> + </message> + <message> + <location line="+67"/> <source>&Options <<</source> <translation>&Opciók <<</translation> </message> <message> - <location line="+253"/> + <location line="+260"/> <source>Print to File (PDF)</source> - <translation>Fájlba nyomtatás (PDF)</translation> + <translation>Nyomtatás fájlba (PDF)</translation> </message> <message> <location line="+1"/> <source>Print to File (Postscript)</source> - <translation>Fájlba nyomtatás (Postscript)</translation> + <translation>Nyomtatás fájlba (PostScript)</translation> </message> <message> <location line="+47"/> @@ -4221,55 +7126,56 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Write %1 file</source> - <translation>%1 fájlba írás</translation> - </message> - <message> - <location line="-369"/> - <source>&Print</source> - <translation>&Nyomtatás</translation> + <translation>írás %1 fájlba</translation> </message> </context> <context> <name>QPrintPreviewDialog</name> <message> - <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+246"/> + <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/> + <location line="+12"/> + <source>Page Setup</source> + <translation>Oldalbeállítás</translation> + </message> + <message> + <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+249"/> <source>%1%</source> <translation>%1%</translation> </message> <message> - <location line="+68"/> + <location line="+84"/> <source>Print Preview</source> - <translation>Nyomtatási előnézet</translation> + <translation>Nyomtatási kép</translation> </message> <message> <location line="+30"/> <source>Next page</source> - <translation>Következő lap</translation> + <translation>Következő oldal</translation> </message> <message> <location line="+1"/> <source>Previous page</source> - <translation>Előző lap</translation> + <translation>Előző oldal</translation> </message> <message> <location line="+1"/> <source>First page</source> - <translation>Első lap</translation> + <translation>Első oldal</translation> </message> <message> <location line="+1"/> <source>Last page</source> - <translation>Utolsó lap</translation> + <translation>Utolsó oldal</translation> </message> <message> <location line="+9"/> <source>Fit width</source> - <translation>Megfelelő szélesség</translation> + <translation>Szélesség igazítása</translation> </message> <message> <location line="+1"/> <source>Fit page</source> - <translation>Megfelelő lap</translation> + <translation>Oldal igazítása</translation> </message> <message> <location line="+11"/> @@ -4284,27 +7190,27 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+6"/> <source>Portrait</source> - <translation>Portré</translation> + <translation>Álló</translation> </message> <message> <location line="+1"/> <source>Landscape</source> - <translation>Tájkép</translation> + <translation>Fekvő</translation> </message> <message> <location line="+10"/> <source>Show single page</source> - <translation>Egyetlen lap megjelenítése</translation> + <translation>Egy oldalas megjelenítés</translation> </message> <message> <location line="+1"/> <source>Show facing pages</source> - <translation>Lapok megjelenítése szemből</translation> + <translation>Kétoldalas megjelenítés</translation> </message> <message> <location line="+1"/> <source>Show overview of all pages</source> - <translation>Az összes lap áttekintésének megjelenítése</translation> + <translation>Az összes oldal megjelenítése</translation> </message> <message> <location line="+15"/> @@ -4314,23 +7220,37 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Page setup</source> - <translation>Lap beállítás</translation> + <translation>Oldalbeállítás</translation> </message> <message> - <location line="+150"/> + <location line="+6"/> + <source>Close</source> + <translation>Bezárás</translation> + </message> + <message> + <location line="+148"/> <source>Export to PDF</source> - <translation>PDF-be exportálás</translation> + <translation>Exportálás PDF-be</translation> </message> <message> <location line="+3"/> <source>Export to PostScript</source> - <translation>PostScript-be exportálás</translation> + <translation>Exportálás PostScript-be</translation> </message> +</context> +<context> + <name>QPrintPropertiesDialog</name> <message> - <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/> - <location line="+12"/> - <source>Page Setup</source> - <translation>Lap beállítás</translation> + <source>PPD Properties</source> + <translation type="obsolete">PPD beállítások</translation> + </message> + <message> + <source>Save</source> + <translation type="obsolete">Mentés</translation> + </message> + <message> + <source>OK</source> + <translation type="obsolete">OK</translation> </message> </context> <context> @@ -4338,17 +7258,17 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location filename="../src/gui/dialogs/qprintpropertieswidget.ui"/> <source>Form</source> - <translation>Forma</translation> + <translation>Formátum</translation> </message> <message> <location/> <source>Page</source> - <translation>Lap</translation> + <translation>Papír</translation> </message> <message> <location/> <source>Advanced</source> - <translation>Speciális</translation> + <translation>Egyebek</translation> </message> </context> <context> @@ -4356,57 +7276,57 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location filename="../src/gui/dialogs/qprintsettingsoutput.ui"/> <source>Form</source> - <translation>Forma</translation> + <translation>Formátum</translation> </message> <message> <location/> <source>Copies</source> - <translation>Másolás</translation> + <translation>Másolatok</translation> </message> <message> <location/> <source>Print range</source> - <translation>Tartomány nyomtatása</translation> + <translation>Nyomtatási tartomány</translation> </message> <message> <location/> <source>Print all</source> - <translation>Az összes nyomtatása</translation> + <translation>Összes nyomtatása</translation> </message> <message> <location/> <source>Pages from</source> - <translation>Lapok ettől</translation> + <translation>Kezőoldal</translation> </message> <message> <location/> <source>to</source> - <translation>eddig</translation> + <translation>utolsó oldal</translation> </message> <message> <location/> <source>Selection</source> - <translation>Kiválasztás</translation> + <translation>Kijelölés</translation> </message> <message> <location/> <source>Output Settings</source> - <translation>Kimeneti beállítások</translation> + <translation>Kimenet beállítása</translation> </message> <message> <location/> <source>Copies:</source> - <translation>Másolatok:</translation> + <translation>Másolat:</translation> </message> <message> <location/> <source>Collate</source> - <translation>Egyeztet</translation> + <translation>Egyeztetés</translation> </message> <message> <location/> <source>Reverse</source> - <translation>Fordítva</translation> + <translation>Fordított</translation> </message> <message> <location/> @@ -4416,7 +7336,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location/> <source>Color Mode</source> - <translation>Színes mód</translation> + <translation>Színmód</translation> </message> <message> <location/> @@ -4426,27 +7346,32 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location/> <source>Grayscale</source> - <translation>Szürkeárnyalat</translation> + <translation>Szürkeárnyalatos</translation> </message> <message> <location/> <source>Duplex Printing</source> - <translation>Dupla nyomtatás</translation> + <translation>Duplex nyomtatás</translation> </message> <message> <location/> <source>None</source> - <translation>Semmi</translation> + <translation>Nincs</translation> </message> <message> <location/> <source>Long side</source> - <translation>Hosszú oldal</translation> + <translation>Hosszabb oldal</translation> </message> <message> <location/> <source>Short side</source> - <translation>Rövid oldal</translation> + <translation>Rövidebb oldal</translation> + </message> + <message> + <location/> + <source>Current Page</source> + <translation>Jelenlegi oldal</translation> </message> </context> <context> @@ -4454,7 +7379,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location filename="../src/gui/dialogs/qprintwidget.ui"/> <source>Form</source> - <translation>Űrlap</translation> + <translation>Formátum</translation> </message> <message> <location/> @@ -4469,12 +7394,12 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location/> <source>P&roperties</source> - <translation>Tu&lajdonságok</translation> + <translation>Tula&jdonságok</translation> </message> <message> <location/> <source>Location:</source> - <translation>Elhelyezkedés:</translation> + <translation>Hely:</translation> </message> <message> <location/> @@ -4500,21 +7425,46 @@ Kérem válasszon egy különböző fájl nevet.</translation> <context> <name>QProcess</name> <message> + <location filename="../src/corelib/io/qprocess.cpp" line="+866"/> + <location line="+52"/> + <location filename="../src/corelib/io/qprocess_win.cpp" line="+573"/> + <location line="+50"/> + <source>Error reading from process</source> + <translation>Hiba a folyamat kimenetéről olvasáskor</translation> + </message> + <message> + <location line="+47"/> + <location line="+826"/> + <location filename="../src/corelib/io/qprocess_win.cpp" line="+140"/> + <source>Error writing to process</source> + <translation>Hiba a folyamat bemenetére íráskor</translation> + </message> + <message> + <location line="-756"/> + <source>Process crashed</source> + <translation>A folyamat összeomlott</translation> + </message> + <message> + <location line="+959"/> + <source>No program defined</source> + <translation>A programnév nincs megadva</translation> + </message> + <message> <location filename="../src/corelib/io/qprocess_unix.cpp" line="+406"/> - <location filename="../src/corelib/io/qprocess_win.cpp" line="+137"/> + <location filename="../src/corelib/io/qprocess_win.cpp" line="-626"/> <source>Could not open input redirection for reading</source> - <translation>Nem sikerült megnyitni a bevitel olvasásra irányítását</translation> + <translation>Az átirányított bemenet megnyitása olvasásra sikertelen</translation> </message> <message> <location line="+12"/> <location filename="../src/corelib/io/qprocess_win.cpp" line="+20"/> <source>Could not open output redirection for writing</source> - <translation>Nem sikerült megnyitni a kimenet írásra irányítását</translation> + <translation>Az átirányított kimenet megnyitása írásra sikertelen</translation> </message> <message> <location line="+239"/> <source>Resource error (fork failure): %1</source> - <translation>Erőforrás hiba (Szétágazás hiba): %1</translation> + <translation>A forkolás sikertelen: %1</translation> </message> <message> <location line="+258"/> @@ -4527,37 +7477,16 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location line="+42"/> <location line="+54"/> <source>Process operation timed out</source> - <translation>Folyamat művelet időtúllépés</translation> - </message> - <message> - <location filename="../src/corelib/io/qprocess.cpp" line="+855"/> - <location line="+52"/> - <location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/> - <location line="+50"/> - <source>Error reading from process</source> - <translation>Hiba történt a folyamat olvasása közben</translation> - </message> - <message> - <location line="+47"/> - <location line="+826"/> - <location filename="../src/corelib/io/qprocess_win.cpp" line="+140"/> - <source>Error writing to process</source> - <translation>Hiba történt a folyamat írása közben</translation> - </message> - <message> - <location line="-756"/> - <source>Process crashed</source> - <translation>A folyamat összeomlott</translation> + <translation>A művelet időtúllépés miatt megszakadt</translation> </message> <message> - <location line="+959"/> - <source>No program defined</source> - <translation>Nincs program definiálva</translation> + <source>Process failed to start</source> + <translation type="obsolete">A folyamat nem indult el</translation> </message> <message> - <location filename="../src/corelib/io/qprocess_win.cpp" line="-360"/> + <location filename="../src/corelib/io/qprocess_win.cpp" line="-381"/> <source>Process failed to start: %1</source> - <translation>Nem sikerült elindítani a folyamatot: %1</translation> + <translation>A művelet előkészítése nem lehetséges: %1</translation> </message> </context> <context> @@ -4565,7 +7494,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+196"/> <source>Cancel</source> - <translation>Mégse</translation> + <translation>Mégsem</translation> </message> </context> <context> @@ -4581,7 +7510,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+12"/> <source>Check</source> - <translation>Ellenőrzés</translation> + <translation>Kijelölés</translation> </message> </context> <context> @@ -4594,22 +7523,22 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>disabled feature used</source> - <translation>tiltás tulajdonság használva</translation> + <translation>letiltott lehetőség használata</translation> </message> <message> <location line="+1"/> <source>bad char class syntax</source> - <translation>rossz karakter osztály szintakszis</translation> + <translation>rossz karakterosztály-szintaxis</translation> </message> <message> <location line="+1"/> <source>bad lookahead syntax</source> - <translation>rossz előreolvasási szintakszis</translation> + <translation>rossz lookahead-szintaxis</translation> </message> <message> <location line="+1"/> <source>bad repetition syntax</source> - <translation>rossz ismétlési szintakszis</translation> + <translation>rossz ismétlés-szintaxis</translation> </message> <message> <location line="+1"/> @@ -4619,17 +7548,17 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>missing left delim</source> - <translation>hiányzó bal határolójel</translation> + <translation>hiányzó baloldali határoló</translation> </message> <message> <location line="+1"/> <source>unexpected end</source> - <translation>váratlan vég</translation> + <translation>váratlan befejezés</translation> </message> <message> <location line="+1"/> <source>met internal limit</source> - <translation>találkozott belső korlát</translation> + <translation>belső korlát elérve</translation> </message> <message> <location line="+1"/> @@ -4645,100 +7574,112 @@ Kérem válasszon egy különböző fájl nevet.</translation> <context> <name>QSQLite2Driver</name> <message> - <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+391"/> + <source>Error to open database</source> + <translation type="obsolete">Adatbázis megnyitási hiba</translation> + </message> + <message> + <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+399"/> <source>Error opening database</source> - <translation>Hiba történt az adatbázis megnyitása közben</translation> + <translation>Adatbázis megnyitási hiba</translation> </message> <message> <location line="+41"/> <source>Unable to begin transaction</source> - <translation>Nem lehet elkezdeni a tranzakciót</translation> + <translation>A tranzakció nem indítható</translation> </message> <message> <location line="+17"/> <source>Unable to commit transaction</source> - <translation>Nem lehet kommitolni a tranzakciót</translation> + <translation>A tranzakció nem véglegesíthető</translation> </message> <message> <location line="+17"/> <source>Unable to rollback transaction</source> - <translation>Nem lehet visszagörgetni a tranzakciót</translation> + <translation>A tranzakció nem görgethető vissza</translation> + </message> + <message> + <source>Unable to rollback Transaction</source> + <translation type="obsolete">A tranzakció nem görgethető vissza</translation> </message> </context> <context> <name>QSQLite2Result</name> <message> - <location line="-319"/> + <location line="-326"/> <source>Unable to fetch results</source> - <translation>Nem lehet letölteni az eredményeket</translation> + <translation>Az eredmények nem olvashatók ki</translation> </message> <message> - <location line="+143"/> + <location line="+150"/> <source>Unable to execute statement</source> - <translation>Nem lehet végrehajtani az állítást</translation> + <translation>A parancs nem hajtható végre</translation> </message> </context> <context> <name>QSQLiteDriver</name> <message> - <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+540"/> + <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+539"/> <source>Error opening database</source> - <translation>Hiba történt az adatbázis megnyitása közben</translation> + <translation>Adatbázis megnyitási hiba</translation> </message> <message> <location line="+11"/> <source>Error closing database</source> - <translation>Hiba történt az adatbázis bezárása közben</translation> + <translation>Adatbázis bezárási hiba</translation> </message> <message> <location line="+20"/> <source>Unable to begin transaction</source> - <translation>Nem lehet elkezdeni a tranzakciót</translation> + <translation>A tranzakció nem indítható</translation> </message> <message> <location line="+15"/> <source>Unable to commit transaction</source> - <translation>Nem lehet kommitolni a tranzakciót</translation> + <translation>A tranzakció nem véglegesíthető</translation> + </message> + <message> + <source>Unable to roll back transaction</source> + <translation type="obsolete">A tranzakció nem görgethető vissza</translation> </message> <message> <location line="+15"/> <source>Unable to rollback transaction</source> - <translation>Nem lehet visszagörgetni a tranzakciót</translation> + <translation>A tranzakció nem görgethető vissza</translation> </message> </context> <context> <name>QSQLiteResult</name> <message> - <location line="-404"/> - <location line="+62"/> + <location line="-396"/> + <location line="+63"/> <location line="+8"/> <source>Unable to fetch row</source> - <translation>Nem lehet leszedni a sort</translation> + <translation>A sor nem olvasható ki</translation> </message> <message> <location line="+59"/> <source>Unable to execute statement</source> - <translation>Nem lehet végrehajtani az állítást</translation> + <translation>A parancs nem hajtható végre</translation> </message> <message> <location line="+20"/> <source>Unable to reset statement</source> - <translation>Nem lehet visszaállítani az állítást</translation> + <translation>A parancs nem vonható vissza</translation> </message> <message> <location line="+45"/> <source>Unable to bind parameters</source> - <translation>Nem lehet összekötni a paramétereket</translation> + <translation>A paraméterek kötése sikertelen</translation> </message> <message> <location line="+7"/> <source>Parameter count mismatch</source> - <translation>A paraméter számláló nem megfelelő</translation> + <translation>A paraméterek száma nem megfelelő</translation> </message> <message> - <location line="-200"/> + <location line="-201"/> <source>No query</source> - <translation>Nincs lekérdezés</translation> + <translation>Üres lekérdezés</translation> </message> </context> <context> @@ -4746,12 +7687,12 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location filename="../src/scripttools/debugging/qscriptbreakpointsmodel.cpp" line="+455"/> <source>ID</source> - <translation>Azonosító</translation> + <translation>ID</translation> </message> <message> <location line="+2"/> <source>Location</source> - <translation>Elhelyezkedés</translation> + <translation>Hely</translation> </message> <message> <location line="+2"/> @@ -4761,17 +7702,18 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+2"/> <source>Ignore-count</source> - <translation>Számítás mellőzése</translation> + <translation>Kihagyások száma</translation> </message> <message> <location line="+2"/> <source>Single-shot</source> - <translation>Egylövetű</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation></translation> </message> <message> <location line="+2"/> <source>Hit-count</source> - <translation>Leütés számítás</translation> + <translation>Találatok száma</translation> </message> </context> <context> @@ -4793,7 +7735,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location filename="../src/scripttools/debugging/qscriptdebugger.cpp" line="+885"/> <location line="+1013"/> <source>Go to Line</source> - <translation>Ugrás erre a sorra</translation> + <translation>Sorra ugrás</translation> </message> <message> <location line="-1012"/> @@ -4808,7 +7750,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+2"/> <source>Shift+F5</source> - <translation>Shift+F5</translation> + <translation></translation> </message> <message> <location line="+15"/> @@ -4818,97 +7760,97 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+2"/> <source>F5</source> - <translation>F5</translation> + <translation></translation> </message> <message> <location line="+15"/> <source>Step Into</source> - <translation>Belelépés</translation> + <translation>Beleugrás</translation> </message> <message> <location line="+2"/> <source>F11</source> - <translation>F11</translation> + <translation></translation> </message> <message> <location line="+15"/> <source>Step Over</source> - <translation>Átlépés</translation> + <translation>Átugrás</translation> </message> <message> <location line="+2"/> <source>F10</source> - <translation>F10</translation> + <translation></translation> </message> <message> <location line="+15"/> <source>Step Out</source> - <translation>Kilép</translation> + <translation>Kiugrás</translation> </message> <message> <location line="+2"/> <source>Shift+F11</source> - <translation>Shift+F11</translation> + <translation></translation> </message> <message> <location line="+15"/> <source>Run to Cursor</source> - <translation>Kurzorra futás</translation> + <translation>Futtatás a kurzortól</translation> </message> <message> <location line="+2"/> <source>Ctrl+F10</source> - <translation>Ctrl+F10</translation> + <translation></translation> </message> <message> <location line="+16"/> <source>Run to New Script</source> - <translation>Az új Szkriptre futás</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+15"/> <source>Toggle Breakpoint</source> - <translation>Töréspont kapcsolgatása</translation> + <translation>Töréspont beállítása</translation> </message> <message> <location line="+1"/> <source>F9</source> - <translation>F9</translation> + <translation></translation> </message> <message> <location line="+14"/> <source>Clear Debug Output</source> - <translation>Debug kimenet kiürítése</translation> + <translation>Debug kimenet törlése</translation> </message> <message> <location line="+13"/> <source>Clear Error Log</source> - <translation>Error Log kiürítése</translation> + <translation>Hibanapló törlése</translation> </message> <message> <location line="+13"/> <source>Clear Console</source> - <translation>Konzol kiürítése</translation> + <translation>Konzol törlése</translation> </message> <message> <location line="+14"/> <source>&Find in Script...</source> - <translation>Szkriptben &keresés...</translation> + <translation>&Keresés a parancsfájlban...</translation> </message> <message> <location line="+1"/> <source>Ctrl+F</source> - <translation>Ctrl+F</translation> + <translation></translation> </message> <message> <location line="+17"/> <source>Find &Next</source> - <translation>&Következő keresése</translation> + <translation>Kö&vetkező keresése</translation> </message> <message> <location line="+2"/> <source>F3</source> - <translation>F3</translation> + <translation></translation> </message> <message> <location line="+13"/> @@ -4918,17 +7860,17 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+2"/> <source>Shift+F3</source> - <translation>Shift+F3</translation> + <translation></translation> </message> <message> <location line="+14"/> <source>Ctrl+G</source> - <translation>Ctrl+G</translation> + <translation></translation> </message> <message> <location line="+11"/> <source>Debug</source> - <translation>Debug</translation> + <translation>Hibakeresés</translation> </message> </context> <context> @@ -4951,23 +7893,23 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+5"/> <source>Case Sensitive</source> - <translation>Kis és nagybetű érzékeny</translation> + <translation>Kis/nagybetű érzékeny</translation> </message> <message> <location line="+3"/> <source>Whole words</source> - <translation>Egész szavakat</translation> + <translation>Teljes szó</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;Keresés tördelve</translation> + <translation><img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;A keresés befejeződött</translation> </message> </context> <context> <name>QScriptDebuggerLocalsModel</name> <message> - <location filename="../src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp" line="+872"/> + <location filename="../src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp" line="+897"/> <source>Name</source> <translation>Név</translation> </message> @@ -4992,7 +7934,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+2"/> <source>Location</source> - <translation>Elhelyezkedés</translation> + <translation>Hely</translation> </message> </context> <context> @@ -5000,12 +7942,12 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location filename="../src/scripttools/debugging/qscriptedit.cpp" line="+411"/> <source>Toggle Breakpoint</source> - <translation>Töréspont kapcsolgatása</translation> + <translation>Töréspont beállítása</translation> </message> <message> <location line="+2"/> <source>Disable Breakpoint</source> - <translation>Töréspont tiltása</translation> + <translation>Töréspont letiltása</translation> </message> <message> <location line="+1"/> @@ -5015,7 +7957,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+4"/> <source>Breakpoint Condition:</source> - <translation>Töréspont feltétel:</translation> + <translation>Töréspont állapota:</translation> </message> </context> <context> @@ -5023,7 +7965,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location filename="../src/scripttools/debugging/qscriptenginedebugger.cpp" line="+523"/> <source>Loaded Scripts</source> - <translation>Betöltött szkriptek</translation> + <translation>Betöltött parancsfájlok</translation> </message> <message> <location line="+6"/> @@ -5053,7 +7995,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+6"/> <source>Error Log</source> - <translation>Hiba Log</translation> + <translation>Hibanapló</translation> </message> <message> <location line="+12"/> @@ -5068,7 +8010,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+18"/> <source>Qt Script Debugger</source> - <translation>Qt szkript debugger</translation> + <translation>Qt parancsfájl-hibakereső</translation> </message> </context> <context> @@ -5089,44 +8031,44 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+2"/> <source>Left edge</source> - <translation>Bal szegély</translation> + <translation>Bal szélen</translation> </message> <message> <location line="+0"/> <source>Top</source> - <translation>Tető</translation> + <translation>Fent</translation> </message> <message> <location line="+1"/> <source>Right edge</source> - <translation>Jobb szegély</translation> + <translation>Jobb szélen</translation> </message> <message> <location line="+0"/> <source>Bottom</source> - <translation>Alja</translation> + <translation>Lent</translation> </message> <message> <location line="+2"/> <source>Page left</source> - <translation>Lapzoás balra</translation> + <translation>Oldal balra</translation> </message> <message> <location line="+0"/> <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+143"/> <source>Page up</source> - <translation>Lapozás felfele</translation> + <translation>Oldal felfelé</translation> </message> <message> <location line="+1"/> <source>Page right</source> - <translation>Lapozás jobbra</translation> + <translation>Oldal jobbra</translation> </message> <message> <location line="+0"/> <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+4"/> <source>Page down</source> - <translation>Lapozás lefele</translation> + <translation>Oldal lefelé</translation> </message> <message> <location line="+2"/> @@ -5136,7 +8078,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+0"/> <source>Scroll up</source> - <translation>Görgetés felfele</translation> + <translation>Görgetés felfelé</translation> </message> <message> <location line="+1"/> @@ -5146,48 +8088,53 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+0"/> <source>Scroll down</source> - <translation>Görgetés lefele</translation> + <translation>Görgetés lefelé</translation> </message> <message> <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-6"/> <source>Line up</source> - <translation>Egy sorral feljebb</translation> + <translation>Sor felfelé</translation> </message> <message> <location line="+4"/> <source>Position</source> - <translation>Pozíció</translation> + <translation>Helyzet</translation> </message> <message> <location line="+4"/> <source>Line down</source> - <translation>Egy sorral lejjebb</translation> + <translation>Sor lefelé</translation> </message> </context> <context> <name>QSharedMemory</name> <message> - <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+304"/> + <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+223"/> + <source>%1: unable to set key on lock</source> + <translation>%1:a kulcs beállítása sikertelen a zároláson</translation> + </message> + <message> + <location line="+81"/> <source>%1: create size is less then 0</source> - <translation>%1: 0-nál kisebb méret létrehozása</translation> + <translation>%1: a megadott méret kissebb mint 0</translation> </message> <message> <location line="+168"/> <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+155"/> <source>%1: unable to lock</source> - <translation>%1: Nem lehet zárolni</translation> + <translation>%1: a zárolás sikertelen</translation> </message> <message> <location line="+22"/> <source>%1: unable to unlock</source> - <translation>%1: Nem lehet kinyitni</translation> + <translation>%1: a feloldás sikertelen</translation> </message> <message> <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="+83"/> - <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+79"/> + <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+81"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/> <source>%1: permission denied</source> - <translation>%1: engedély megtagadva</translation> + <translation>%1: hozzáférés megtagadva</translation> </message> <message> <location line="-16"/> @@ -5199,14 +8146,14 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+4"/> <source>%1: doesn't exists</source> - <translation>%1: nem létezik</translation> + <translation>%1: nem tatlálható</translation> </message> <message> <location line="+8"/> <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+10"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+18"/> <source>%1: out of resources</source> - <translation>%1: Kifogyott az erőforrásból</translation> + <translation>%1: az erőforrások elfogytak</translation> </message> <message> <location line="+7"/> @@ -5218,19 +8165,23 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+21"/> <source>%1: key is empty</source> - <translation>%1: Üres kulcs</translation> + <translation>%1: a kulcs hiányzik</translation> + </message> + <message> + <source>%1: unix key file doesn't exists</source> + <translation type="obsolete">%1: az unix kulcsfájl hiányzik</translation> </message> <message> <location line="+15"/> <source>%1: ftok failed</source> - <translation>%1: ftok hiba</translation> + <translation>%1: ftok hibát adott vissza</translation> </message> <message> <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="+56"/> <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+51"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+15"/> <source>%1: unable to make key</source> - <translation>%1: Nem lehet kulcsot csinálni</translation> + <translation>%1: a kulcs elkészítése sikertelen</translation> </message> <message> <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="-97"/> @@ -5241,23 +8192,23 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+39"/> <source>%1: UNIX key file doesn't exist</source> - <translation>%1: UNIX kulcs fájl nem létezik</translation> + <translation>%1: az UNIX kulcsfájl nem létezik</translation> </message> <message> <location line="+78"/> <source>%1: system-imposed size restrictions</source> - <translation>%1: a rendszer rárakott méretének korlátozásai</translation> + <translation>%1: a rendszer méretkorlátokat állított fel</translation> </message> <message> <location line="+53"/> <source>%1: not attached</source> - <translation>%1: nincs hozzácsatolva</translation> + <translation>%1: nem lesz csatolva</translation> </message> <message> <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="-67"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+4"/> <source>%1: invalid size</source> - <translation>%1: érvénytelen méret</translation> + <translation>%1: hibás méret</translation> </message> <message> <location line="+40"/> @@ -5268,130 +8219,126 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+32"/> <source>%1: size query failed</source> - <translation>%1: méret lekérdezési hiba</translation> - </message> - <message> - <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="-271"/> - <source>%1: unable to set key on lock</source> - <translation>%1: nem lehet beállítani a kulcsot a záron</translation> + <translation>%1: hiba a méret lekérdezésekor</translation> </message> </context> <context> <name>QShortcut</name> <message> - <location filename="../src/gui/kernel/qkeysequence.cpp" line="+393"/> + <location filename="../src/gui/kernel/qkeysequence.cpp" line="+396"/> <source>Space</source> - <translation>Space</translation> + <extracomment>This and all following "incomprehensible" strings in QShortcut context are key names. Please use the localized names appearing on actual keyboards or whatever is commonly used.</extracomment> + <translation>Szóköz</translation> </message> <message> <location line="+1"/> <source>Esc</source> - <translation>Esc</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Tab</source> - <translation>Tab</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Backtab</source> - <translation>Backtab</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Backspace</source> - <translation>Backspace</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Return</source> - <translation>Return</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Enter</source> - <translation>Enter</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Ins</source> - <translation>Ins</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Del</source> - <translation>Del</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Pause</source> - <translation>Pause</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Print</source> - <translation>Print</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>SysReq</source> - <translation>SysReq</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Home</source> - <translation>Home</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>End</source> - <translation>End</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Left</source> - <translation>Left</translation> + <translation>Bal</translation> </message> <message> <location line="+1"/> <source>Up</source> - <translation>Up</translation> + <translation>Fel</translation> </message> <message> <location line="+1"/> <source>Right</source> - <translation>Right</translation> + <translation>Jobb</translation> </message> <message> <location line="+1"/> <source>Down</source> - <translation>Down</translation> + <translation>Le</translation> </message> <message> <location line="+1"/> <source>PgUp</source> - <translation>PgUp</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>PgDown</source> - <translation>PgDown</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>CapsLock</source> - <translation>CapsLock</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>NumLock</source> - <translation>NumLock</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>ScrollLock</source> - <translation>ScrollLock</translation> + <translation></translation> </message> <message> <location line="+1"/> @@ -5416,57 +8363,57 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Stop</source> - <translation>Leállítás</translation> + <translation>Stop</translation> </message> <message> <location line="+1"/> <source>Refresh</source> - <translation>Felfrissítés</translation> + <translation>Frissítés</translation> </message> <message> <location line="+1"/> <source>Volume Down</source> - <translation>Hangerő lehalkítása</translation> + <translation>Hangerő csökkentése</translation> </message> <message> <location line="+1"/> <source>Volume Mute</source> - <translation>Hangerő Elnémítás</translation> + <translation>Némítás</translation> </message> <message> <location line="+1"/> <source>Volume Up</source> - <translation>Hangerő hangosítása</translation> + <translation>Hangerő növelése</translation> </message> <message> <location line="+1"/> <source>Bass Boost</source> - <translation>Basszus erősítés</translation> + <translation>Mély hang kiemelése</translation> </message> <message> <location line="+1"/> <source>Bass Up</source> - <translation>Basszus növelése</translation> + <translation>Mély hang növelése</translation> </message> <message> <location line="+1"/> <source>Bass Down</source> - <translation>Basszus csökkentése</translation> + <translation>Mély hang csökkentése</translation> </message> <message> <location line="+1"/> <source>Treble Up</source> - <translation>Felháromszorozás</translation> + <translation>Magas hang növelése</translation> </message> <message> <location line="+1"/> <source>Treble Down</source> - <translation>Leharmadolás</translation> + <translation>Magas hang csökkentése</translation> </message> <message> <location line="+1"/> <source>Media Play</source> - <translation>Média elindítása</translation> + <translation>Média lejátszása</translation> </message> <message> <location line="+1"/> @@ -5491,7 +8438,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+2"/> <source>Favorites</source> - <translation>Kedvcencek</translation> + <translation>Kedvencek</translation> </message> <message> <location line="+1"/> @@ -5501,127 +8448,127 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Standby</source> - <translation>Készenlét</translation> + <translation>Standby</translation> </message> <message> <location line="+1"/> <source>Open URL</source> - <translation>URL megnyitása</translation> + <translation>URL megynyitása</translation> </message> <message> <location line="+1"/> <source>Launch Mail</source> - <translation>Mail indítása</translation> + <translation>Levelezőprogram indítása</translation> </message> <message> <location line="+1"/> <source>Launch Media</source> - <translation>Média indítása</translation> + <translation>Médialejátszó indítása</translation> </message> <message> <location line="+1"/> <source>Launch (0)</source> - <translation>Elindítás (0)</translation> + <translation>(0) indítása</translation> </message> <message> <location line="+1"/> <source>Launch (1)</source> - <translation>Elindítás (1)</translation> + <translation>(1) indítása</translation> </message> <message> <location line="+1"/> <source>Launch (2)</source> - <translation>Elindítás (2)</translation> + <translation>(2) indítása</translation> </message> <message> <location line="+1"/> <source>Launch (3)</source> - <translation>Elindítás (3)</translation> + <translation>(3) indítása</translation> </message> <message> <location line="+1"/> <source>Launch (4)</source> - <translation>Elindítás (4)</translation> + <translation>(4) indítása</translation> </message> <message> <location line="+1"/> <source>Launch (5)</source> - <translation>Elindítás (5)</translation> + <translation>(5) indítása</translation> </message> <message> <location line="+1"/> <source>Launch (6)</source> - <translation>Elindítás (6)</translation> + <translation>(6) indítása</translation> </message> <message> <location line="+1"/> <source>Launch (7)</source> - <translation>Elindítás (7)</translation> + <translation>(7) indítása</translation> </message> <message> <location line="+1"/> <source>Launch (8)</source> - <translation>Elindítás (8)</translation> + <translation>(8) indítása</translation> </message> <message> <location line="+1"/> <source>Launch (9)</source> - <translation>Elindítás (9)</translation> + <translation>(9) indítása</translation> </message> <message> <location line="+1"/> <source>Launch (A)</source> - <translation>Elindítás (A)</translation> + <translation>(A) indítása</translation> </message> <message> <location line="+1"/> <source>Launch (B)</source> - <translation>Elindítás (B)</translation> + <translation>(B) indítása</translation> </message> <message> <location line="+1"/> <source>Launch (C)</source> - <translation>Elindítás (C)</translation> + <translation>(C) indítása</translation> </message> <message> <location line="+1"/> <source>Launch (D)</source> - <translation>Elindítás (D)</translation> + <translation>(D) indítása</translation> </message> <message> <location line="+1"/> <source>Launch (E)</source> - <translation>Elindítás (E)</translation> + <translation>(E) indítása</translation> </message> <message> <location line="+1"/> <source>Launch (F)</source> - <translation>Elindítás (F)</translation> + <translation>(F) indítása</translation> </message> <message> <location line="+1"/> <source>Monitor Brightness Up</source> - <translation>Monitorfény növelése</translation> + <translation>Fényesség növelése</translation> </message> <message> <location line="+1"/> <source>Monitor Brightness Down</source> - <translation>Monitorfény csökkentése</translation> + <translation>Fényesség csökkentése</translation> </message> <message> <location line="+1"/> <source>Keyboard Light On/Off</source> - <translation>Billentyű világítás be/ki</translation> + <translation>Billentyűzet világítás be/ki</translation> </message> <message> <location line="+1"/> <source>Keyboard Brightness Up</source> - <translation>Billentyűfény növelése</translation> + <translation>Billentyűzet fényerő növelése</translation> </message> <message> <location line="+1"/> <source>Keyboard Brightness Down</source> - <translation>Billentyűfény csökkentése</translation> + <translation>Billentyűzet fényerő csökkentése</translation> </message> <message> <location line="+1"/> @@ -5631,27 +8578,27 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Wake Up</source> - <translation>Felébresztés</translation> + <translation>Ébresztés</translation> </message> <message> <location line="+1"/> <source>Eject</source> - <translation>Kidobás</translation> + <translation>Tálcanyitás</translation> </message> <message> <location line="+1"/> <source>Screensaver</source> - <translation>Képernyővédő</translation> + <translation>Képernyőkímélő</translation> </message> <message> <location line="+1"/> <source>WWW</source> - <translation>WWW</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Sleep</source> - <translation>Alvás</translation> + <translation>Altatás</translation> </message> <message> <location line="+1"/> @@ -5666,22 +8613,22 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>History</source> - <translation>Történelem</translation> + <translation>Előzmények</translation> </message> <message> <location line="+1"/> <source>Add Favorite</source> - <translation>Hozzáadás a kedvencekhez</translation> + <translation>Kedvenc hozzáadása</translation> </message> <message> <location line="+1"/> <source>Hot Links</source> - <translation>Hot linkek</translation> + <translation>Gyorslinkek</translation> </message> <message> <location line="+1"/> <source>Adjust Brightness</source> - <translation>Fényszabályozás</translation> + <translation>Fényerő beállítása</translation> </message> <message> <location line="+1"/> @@ -5696,22 +8643,25 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Audio Rewind</source> - <translation>Audió áttekercselés</translation> + <translation>Visszatekerés</translation> </message> <message> <location line="+1"/> <source>Back Forward</source> - <translation>Előre hátra</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation>Előre-hátra</translation> </message> <message> <location line="+1"/> <source>Application Left</source> - <translation>Alkalmazás balra</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation>Alkalmazás bal</translation> </message> <message> <location line="+1"/> <source>Application Right</source> - <translation>Alkalmazás jobbra</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation>Alkalmazás jobb</translation> </message> <message> <location line="+1"/> @@ -5731,12 +8681,12 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Clear</source> - <translation>Tiszta</translation> + <translation>Törlés</translation> </message> <message> <location line="+1"/> <source>Clear Grab</source> - <translation>Tiszta megmarkolás</translation> + <translation>Elfogás törlése</translation> </message> <message> <location line="+1"/> @@ -5756,6 +8706,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Display</source> + <translatorcomment>CHECKIT - Kijelző?</translatorcomment> <translation>Megjelenítés</translation> </message> <message> @@ -5771,7 +8722,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Spreadsheet</source> - <translation>Táblázatkezelő</translation> + <translation>Táblázat</translation> </message> <message> <location line="+1"/> @@ -5786,7 +8737,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Go</source> - <translation>Gyerünk</translation> + <translation>Ugrás</translation> </message> <message> <location line="+1"/> @@ -5801,7 +8752,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Market</source> - <translation>Piac</translation> + <translation>Piactér</translation> </message> <message> <location line="+1"/> @@ -5811,17 +8762,18 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Keyboard Menu</source> - <translation>Billlentyű menü</translation> + <translation>Billentyűzet menü</translation> </message> <message> <location line="+1"/> <source>Menu PB</source> - <translation>PB menü</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">PB menü</translation> </message> <message> <location line="+1"/> <source>My Sites</source> - <translation>Oldalam</translation> + <translation>Weboldalaim</translation> </message> <message> <location line="+1"/> @@ -5836,7 +8788,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Option</source> - <translation>Opció</translation> + <translation>Opciók</translation> </message> <message> <location line="+1"/> @@ -5866,12 +8818,14 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Rotation PB</source> - <translation>PB forgatás</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">PB forgatás</translation> </message> <message> <location line="+1"/> <source>Rotation KB</source> - <translation>KB forgatás</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">KB forgatás</translation> </message> <message> <location line="+1"/> @@ -5886,12 +8840,12 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Spellchecker</source> - <translation>Helyesírás ellenőrző</translation> + <translation>Nyelvi ellenörző</translation> </message> <message> <location line="+1"/> <source>Split Screen</source> - <translation>Képernyő felosztása</translation> + <translation>Képernyő kettéosztása</translation> </message> <message> <location line="+1"/> @@ -5901,7 +8855,8 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Task Panel</source> - <translation>Feladat panel</translation> + <translatorcomment>CHECKIT - WTF?</translatorcomment> + <translation>Taszk panel</translation> </message> <message> <location line="+1"/> @@ -5926,12 +8881,12 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Word Processor</source> - <translation>Szó feldolgozó</translation> + <translation>Szövegszerkesztő</translation> </message> <message> <location line="+1"/> <source>XFer</source> - <translation>XFer</translation> + <translation>Átvitel</translation> </message> <message> <location line="+1"/> @@ -5951,17 +8906,17 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Messenger</source> - <translation>Hírnök</translation> + <translation>Üzenetküldő</translation> </message> <message> <location line="+1"/> <source>WebCam</source> - <translation>WebCam</translation> + <translation>Webkamera</translation> </message> <message> <location line="+1"/> <source>Mail Forward</source> - <translation>Mail továbbítása</translation> + <translation>Levél továbbítás</translation> </message> <message> <location line="+1"/> @@ -5986,37 +8941,37 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Wireless</source> - <translation>Vezeték nélküli</translation> + <translation>Wireless</translation> </message> <message> <location line="+1"/> <source>Ultra Wide Band</source> - <translation>Ultra széles sáv</translation> + <translation>Szélessáv</translation> </message> <message> <location line="+1"/> <source>Audio Forward</source> - <translation>Audio továbbítás</translation> + <translation>Előretekerés</translation> </message> <message> <location line="+1"/> <source>Audio Repeat</source> - <translation>Audió ismétlés</translation> + <translation>Ismétlés</translation> </message> <message> <location line="+1"/> <source>Audio Random Play</source> - <translation>Audió véletlenszerű lejátszása</translation> + <translation>Random lejátszás</translation> </message> <message> <location line="+1"/> <source>Subtitle</source> - <translation>Alcím</translation> + <translation>Felirat</translation> </message> <message> <location line="+1"/> <source>Audio Cycle Track</source> - <translation>Audió ciklikus követése</translation> + <translation>Sávismétlés</translation> </message> <message> <location line="+1"/> @@ -6031,12 +8986,13 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Top Menu</source> - <translation>Felső menü</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation>Legfelső menü</translation> </message> <message> <location line="+1"/> <source>Suspend</source> - <translation>Felfüggesztés</translation> + <translation>Altatás</translation> </message> <message> <location line="+1"/> @@ -6046,63 +9002,63 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+4"/> <source>Print Screen</source> - <translation>Képernyő másolás</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Page Up</source> - <translation>Feljebb lapozás</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Page Down</source> - <translation>Lejjebb lapozás</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Caps Lock</source> - <translation>Caps Lock</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Num Lock</source> - <translation>Num Lock</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Number Lock</source> - <translation>Number Lock</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Scroll Lock</source> - <translation>Scroll Lock</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Insert</source> - <translation>Insert</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Delete</source> - <translation>Delete</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>Escape</source> - <translation>Escape</translation> + <translation></translation> </message> <message> <location line="+1"/> <source>System Request</source> - <translation>System Request</translation> + <translation></translation> </message> <message> <location line="-18"/> <location line="+22"/> <source>Select</source> - <translation>Kiválsztás</translation> + <translation>Kiválasztás</translation> </message> <message> <location line="+1"/> @@ -6117,22 +9073,22 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+4"/> <source>Context1</source> - <translation>Tartalom1</translation> + <translation>Kontextus1</translation> </message> <message> <location line="+1"/> <source>Context2</source> - <translation>Tartalom2</translation> + <translation>Kontextus2</translation> </message> <message> <location line="+1"/> <source>Context3</source> - <translation>Tartalom3</translation> + <translation>Kontextus3</translation> </message> <message> <location line="+1"/> <source>Context4</source> - <translation>Tartalom4</translation> + <translation>Kontextus4</translation> </message> <message> <location line="+1"/> @@ -6142,41 +9098,191 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Hangup</source> - <translation>Felfüggeszt</translation> + <translation>Hívás vége</translation> </message> <message> <location line="+1"/> <source>Flip</source> - <translation>Feldobás</translation> + <translation>Csere</translation> </message> <message> - <location line="+573"/> + <location line="+4"/> + <source>Kanji</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Muhenkan</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Henkan</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Romaji</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Hiragana</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Katakana</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Hiragana Katakana</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Zenkaku</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Hankaku</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Zenkaku Hankaku</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Touroku</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Massyo</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Kana Lock</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Kana Shift</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Eisu Shift</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Eisu toggle</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Code input</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Multiple Candidate</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Previous Candidate</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Hangul</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Start</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul End</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Hanja</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Jamo</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Romaja</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Jeonja</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Banja</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul PreHanja</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul PostHanja</source> + <translation></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Special</source> + <translation></translation> + </message> + <message> + <location line="+602"/> <location line="+135"/> <source>Ctrl</source> - <translation>Ctrl</translation> + <translation></translation> </message> <message> <location line="-134"/> <location line="+138"/> <source>Shift</source> - <translation>Shift</translation> + <translation></translation> </message> <message> <location line="-137"/> <location line="+135"/> <source>Alt</source> - <translation>Alt</translation> + <translation></translation> </message> <message> <location line="-134"/> <location line="+130"/> <source>Meta</source> - <translation>Meta</translation> + <translation></translation> </message> <message> <location line="-40"/> <source>+</source> - <translation>+</translation> + <translation></translation> </message> <message> <location line="+61"/> @@ -6184,9 +9290,9 @@ Kérem válasszon egy különböző fájl nevet.</translation> <translation>F%1</translation> </message> <message> - <location line="-869"/> + <location line="-934"/> <source>Home Page</source> - <translation>Honlap</translation> + <translation>Kezdőoldal</translation> </message> </context> <context> @@ -6194,106 +9300,110 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+151"/> <source>Page left</source> - <translation>Lapozás balra</translation> + <translation>Oldal balra</translation> </message> <message> <location line="+0"/> <source>Page up</source> - <translation>Lapozás felfele</translation> + <translation>Oldal felfelé</translation> </message> <message> <location line="+2"/> <source>Position</source> - <translation>Pozíció</translation> + <translation>Helyzet</translation> </message> <message> <location line="+3"/> <source>Page right</source> - <translation>Lapozás jobbra</translation> + <translation>Oldal jobbra</translation> </message> <message> <location line="+0"/> <source>Page down</source> - <translation>Lapozás lefele</translation> + <translation>Oldal lefelé</translation> </message> </context> <context> <name>QSocks5SocketEngine</name> <message> + <source>Socks5 timeout error connecting to socks server</source> + <translation type="obsolete">Időtúllépés a socks szerverhez kapcsolódáskor</translation> + </message> + <message> <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-67"/> <source>Connection to proxy refused</source> - <translation>Proxyhoz kapcsolódás elutasítva</translation> + <translation>A proxy elutasította a kapcsolatot</translation> </message> <message> <location line="+4"/> <source>Connection to proxy closed prematurely</source> - <translation>A proxyhoz való csatlakozás túl korán be lett zárva</translation> + <translation>A proxy váratlanul lezárta a kapcsolatot</translation> </message> <message> <location line="+4"/> <source>Proxy host not found</source> - <translation>Proxy hoszt nem található</translation> + <translation>A proxy nem található</translation> </message> <message> <location line="+5"/> <source>Connection to proxy timed out</source> - <translation>Proxyhoz való csatlakozásnál időtúllépés történt</translation> + <translation>A várakozási idő lejárt a proxyhoz</translation> </message> <message> <location line="+17"/> <source>Proxy authentication failed</source> - <translation>Proxy hitelesítési hiba</translation> + <translation>A proxy azonosítás sikertelen</translation> </message> <message> <location line="+1"/> <source>Proxy authentication failed: %1</source> - <translation>Proxy hitelesítési hiba: %1</translation> + <translation>A proxy azonosítás sikertelen: %1</translation> </message> <message> <location line="+9"/> <source>SOCKS version 5 protocol error</source> - <translation>SOCKS verzió 5-s protokoll hiba</translation> + <translation>SOCKS verzió 5-ös protokoll hiba</translation> </message> <message> <location line="+19"/> <source>General SOCKSv5 server failure</source> - <translation>Általános SOCKSv5 szerver hiba</translation> + <translation>Általános SOCKSv5 szerverhiba</translation> </message> <message> <location line="+4"/> <source>Connection not allowed by SOCKSv5 server</source> - <translation>A csatlakozást nem engedi a SOCKSv5 szerver</translation> + <translation>A kapcsolódást nem engedi a SOCKSv5 szerver</translation> </message> <message> <location line="+16"/> <source>TTL expired</source> - <translation>Lejárt a TTL</translation> + <translation>A TTL lejárt</translation> </message> <message> <location line="+4"/> <source>SOCKSv5 command not supported</source> - <translation>SOCKSv5 parancs nincs támogatva</translation> + <translation>A SOCKSv5 parancs nem támogatott</translation> </message> <message> <location line="+4"/> <source>Address type not supported</source> - <translation>Cím típus nincs támogatva</translation> + <translation>A címtípus nem támogatott</translation> </message> <message> <location line="+5"/> <source>Unknown SOCKSv5 proxy error code 0x%1</source> - <translation>Ismeretlen SOCKSv5 proxy hiba kód 0x%1</translation> + <translation>Ismeretlen SOCKSv5 proxy hibakód: 0x%1</translation> </message> <message> <location line="+689"/> <source>Network operation timed out</source> - <translation>Hálózat műveleti időtúllépés</translation> + <translation>Időtúllépés hálózati művelet során</translation> </message> </context> <context> <name>QSoftKeyManager</name> <message> - <location filename="../src/gui/kernel/qsoftkeymanager.cpp" line="+79"/> + <location filename="../src/gui/kernel/qsoftkeymanager.cpp" line="+63"/> <source>Ok</source> <translation>Ok</translation> </message> @@ -6315,10 +9425,10 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+3"/> <source>Cancel</source> - <translation>Mégse</translation> + <translation>Mégsem</translation> </message> <message> - <location line="+172"/> + <location filename="../src/gui/kernel/qsoftkeymanager_s60.cpp" line="+321"/> <source>Exit</source> <translation>Kilépés</translation> </message> @@ -6333,7 +9443,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+2"/> <source>Less</source> - <translation>Kevés</translation> + <translation>Kevesebb</translation> </message> </context> <context> @@ -6346,7 +9456,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Delete this record?</source> - <translation>Törölni szeretné ezt a felvételt?</translation> + <translation>Rekord törlése?</translation> </message> <message> <location line="+1"/> @@ -6375,12 +9485,12 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+4"/> <source>Save edits?</source> - <translation>Szerkesztések mentése?</translation> + <translation>Módosítások mentése?</translation> </message> <message> <location line="+3"/> <source>Cancel</source> - <translation>Mégse</translation> + <translation>Mégsem</translation> </message> <message> <location line="+32"/> @@ -6390,65 +9500,74 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>Cancel your edits?</source> - <translation>Szerkesztések visszavonása?</translation> + <translation>Módosítások elvetése?</translation> </message> </context> <context> <name>QSslSocket</name> <message> - <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+546"/> + <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+550"/> <source>Unable to write data: %1</source> - <translation>Nem lehet adatot írni: %1</translation> + <translation>Az adat nem írható: %1</translation> </message> <message> - <location line="+119"/> + <location line="+63"/> + <source>Unable to decrypt data: %1</source> + <translation>Az adat nem visszafejthető: %1</translation> + </message> + <message> + <location line="+76"/> <source>Error while reading: %1</source> - <translation>Hiba történt olvasás közben: %1</translation> + <translation>Olvasási hiba: %1</translation> </message> <message> <location line="+96"/> <source>Error during SSL handshake: %1</source> - <translation>Hiba történt az SSL kézfogás közben: %1</translation> + <translation>SSL kézfogás hiba: %1</translation> </message> <message> - <location line="-501"/> + <location line="-524"/> <source>Error creating SSL context (%1)</source> - <translation>Hiba történt az SSL összefüggés (%1) létrehozása közben</translation> + <translation>Az SSL kontextus létrehozása sikertelen (%1)</translation> </message> <message> <location line="+25"/> <source>Invalid or empty cipher list (%1)</source> - <translation>Érvénytelen vagy üres számjegy lista (%1)</translation> + <translation>Érvénytelen vagy üres a titkosítók listája (%1)</translation> </message> <message> - <location line="+42"/> + <location line="+45"/> <source>Private key does not certify public key, %1</source> - <translation>A privát kulcs nem igazolja a publikus kulcsot, %1</translation> + <translation>A privát és a publikus kulcs nem illik össze: %1</translation> </message> <message> <location line="+20"/> <source>Error creating SSL session, %1</source> - <translation>Hiba történt az SSL szakasz létrehozása közben, %1</translation> + <translation>Hiba az SSL munkamenet létrehozásakor, %1</translation> </message> <message> <location line="+15"/> <source>Error creating SSL session: %1</source> - <translation>Hiba történt az SSL szakasz létrehozása közben: %1</translation> + <translation>Hiba az SSL munkamenet létrehozásakor: %1</translation> </message> <message> - <location line="-61"/> + <location line="-64"/> <source>Cannot provide a certificate with no key, %1</source> - <translation>Nem lehet biztosítani egy igazolást kulcs nélkül, %1</translation> + <translation>Kulcs nélkül nem állítható ki tanusítvány, %1</translation> </message> <message> <location line="+7"/> <source>Error loading local certificate, %1</source> - <translation>Hiba történt a helyi igazolás betöltése közben, %1</translation> + <translation>Hiba a helyi tanúsítvány betöltése közben, %1</translation> </message> <message> - <location line="+12"/> + <location line="+15"/> <source>Error loading private key, %1</source> - <translation>Hiba történt a privát kulcs betöltése közben, %1</translation> + <translation>Hiba a titkos kulcs betöltése közben, %1</translation> + </message> + <message> + <source>Private key does not certificate public key, %1</source> + <translation type="obsolete">A privát és a publikus kulcs nem illik össze: %1</translation> </message> <message> <location filename="../src/network/ssl/qsslerror.cpp" line="+213"/> @@ -6458,107 +9577,109 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+3"/> <source>The issuer certificate could not be found</source> - <translation>A problémás igazolás nem található</translation> + <translation>A kibocsátó tanusítványa nem található</translation> </message> <message> <location line="+3"/> <source>The certificate signature could not be decrypted</source> - <translation>Az igazolás aláírás titkosítását nem sikerült feloldani</translation> + <translation>A tanusítvány aláírása nem visszafejthető</translation> </message> <message> <location line="+3"/> <source>The public key in the certificate could not be read</source> - <translation>Az igazolásban található publikus kulcsot nem sikerült olvasni</translation> + <translation>A tanusítvány publikus kulcsa nem olvasható</translation> </message> <message> <location line="+3"/> <source>The signature of the certificate is invalid</source> - <translation>Az igazolás aláírása érvénytelen</translation> + <translation>A tanusítvány aláírása érvénytelen</translation> </message> <message> <location line="+3"/> <source>The certificate is not yet valid</source> - <translation>Az igazolás még nem érvényes</translation> + <translation>A tanusítvány még nem érvényes</translation> </message> <message> <location line="+3"/> <source>The certificate has expired</source> - <translation>Az igazolás lejárt</translation> + <translation>A tanusítvány már lejárt</translation> </message> <message> <location line="+3"/> <source>The certificate's notBefore field contains an invalid time</source> - <translation>A mező érvénytelen idő tartalmazása előtt nincsen igazolás</translation> + <translation>A tanusítvány notBefore mezője érvénytelen időpontot tartalmaz</translation> </message> <message> <location line="+3"/> <source>The certificate's notAfter field contains an invalid time</source> - <translation>A mező érvénytelen idő tartalmazása után nincsen igazolás</translation> + <translation>A tanusítvány notAfter mezője érvénytelen időpontot tartalmaz</translation> </message> <message> <location line="+3"/> <source>The certificate is self-signed, and untrusted</source> - <translation>Az igazolás ön jelölt, és megbízhatatlan</translation> + <translation>A tanusítvány önaláírt és nem megbízható</translation> </message> <message> <location line="+3"/> <source>The root certificate of the certificate chain is self-signed, and untrusted</source> - <translation>Az igazolás lánc rendszergazda igazolása ön jelölt és megbízhatatlan</translation> + <translation>A tanusítványlánc gyökértanusítványa önaláírt, és nem megbízható</translation> </message> <message> <location line="+3"/> <source>The issuer certificate of a locally looked up certificate could not be found</source> - <translation>Egy helyileg utánanézett igazolás problémás igazolása nem található</translation> + <translatorcomment>CHECKIT: looked up</translatorcomment> + <translation>A megtalált tanusítvány kibocsátójának tanusítványa nem található</translation> </message> <message> <location line="+3"/> <source>No certificates could be verified</source> - <translation>Nem sikerült igazolást leellenőrizni</translation> + <translation>Nincs ellenőrizhető tanusítvány</translation> </message> <message> <location line="+3"/> <source>One of the CA certificates is invalid</source> - <translation>A CA igazolások egyike érvénytelen</translation> + <translation>Az egyik tanusítványkibocsátó tanusítványa érvénytelen</translation> </message> <message> <location line="+3"/> <source>The basicConstraints path length parameter has been exceeded</source> - <translation>Az alap megszorítási útvonal hossz paramétereket meghaladták</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">A basicConstraints hosszának értéke túl nagy</translation> </message> <message> <location line="+3"/> <source>The supplied certificate is unsuitable for this purpose</source> - <translation>A szolgáltatott igazolás nem alkalmas erre a célra</translation> + <translation>A megadott tanusítvány nem használható erre a célra</translation> </message> <message> <location line="+3"/> <source>The root CA certificate is not trusted for this purpose</source> - <translation>A rendszergazda CA igazolás nem megbízható erre a célra</translation> + <translation>A tanusítványkibocsátó tanusítványa nem használható erre a célra</translation> </message> <message> <location line="+3"/> <source>The root CA certificate is marked to reject the specified purpose</source> - <translation>A rendszergazda CA igazolás a specializást cél megtagadására lett megjelölve</translation> + <translation>A tanusítványkibocsátó tanusítványa nem engedi, hogy e célra használják</translation> </message> <message> <location line="+3"/> <source>The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate</source> - <translation>Az aktuális jelölt problémás igazolása meg lett tagadva, mert a téma neve nem egyezett az aktuális igazolás problémás nevével</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+4"/> <source>The current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate</source> - <translation>Az aktuális jelölt problémás igazolása el lett utasítva, mert a problémás név és sorszám benyűjtva és nem egyezett az aktuális igazolás hitelesítési kulcs azonosítójával</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <source>The peer did not present any certificate</source> - <translation>A kortárs nem nyújtott be egyetlen igazolást sem</translation> + <translation>A partner nem szolgáltatott semmilyen tanusítványt</translation> </message> <message> <location line="+3"/> <source>The host name did not match any of the valid hosts for this certificate</source> - <translation>A hoszt név nem egyezik egyetlen érvényes hoszttal sem erre az igazolásra</translation> + <translation>A gépnév nem felel meg a tanusítványon találha gépnevek egyikének sem</translation> </message> <message> <location line="+6"/> @@ -6571,17 +9692,17 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location filename="../src/corelib/statemachine/qstatemachine.cpp" line="+1028"/> <source>Missing initial state in compound state '%1'</source> - <translation>Hiányzó kezdeti állapot összetett helyzetben '%1'</translation> + <translation>A kezdeti állapot hiányzik egy összetett állapotnál '%1'</translation> </message> <message> <location line="+7"/> <source>Missing default state in history state '%1'</source> - <translation>Hiányzó alapértelmezett állapot a történelmi állapotokban '%1'</translation> + <translation>Az alapértelmezett állapot nem található a(z) '%1' megelőző állapotban</translation> </message> <message> <location line="+7"/> <source>No common ancestor for targets and source of transition from state '%1'</source> - <translation>Nincs közös őse az átmeneti céloknak és forrásnak a(z) '%1' helyzetből</translation> + <translation>Nincs közös őse a forrásállapotnak és a célállapotoknak a(z) '%1' állapotból való átmenetben</translation> </message> <message> <location line="+4"/> @@ -6592,21 +9713,10 @@ Kérem válasszon egy különböző fájl nevet.</translation> <context> <name>QSystemSemaphore</name> <message> - <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-46"/> - <source>%1: does not exist</source> - <translation>%1 : nem létezik</translation> - </message> - <message> - <location line="+5"/> - <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/> - <source>%1: out of resources</source> - <translation>%1: kifogyott az erőforrásból</translation> - </message> - <message> - <location line="-13"/> - <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+4"/> + <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-54"/> + <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+70"/> <source>%1: permission denied</source> - <translation>%1: Engedély megtagadva</translation> + <translation>%1: hozzáférés megtagadva</translation> </message> <message> <location line="+4"/> @@ -6614,8 +9724,19 @@ Kérem válasszon egy különböző fájl nevet.</translation> <translation>%1: már létezik</translation> </message> <message> - <location line="+13"/> - <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+3"/> + <location line="+4"/> + <source>%1: does not exist</source> + <translation>%1: még nem létezik</translation> + </message> + <message> + <location line="+5"/> + <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="-4"/> + <source>%1: out of resources</source> + <translation>%1: az erőforrások elfogytak</translation> + </message> + <message> + <location line="+4"/> + <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+7"/> <source>%1: unknown error %2</source> <translation>%1: ismeretlen hiba %2</translation> </message> @@ -6625,12 +9746,12 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+595"/> <source>Unable to open connection</source> - <translation>Nem lehet megnyitni a kapcsolatot</translation> + <translation>A kapcsolat nem nyitható meg</translation> </message> <message> <location line="+5"/> <source>Unable to use database</source> - <translation>Nem lehet az adatbázist használni</translation> + <translation>Az adatbázis nem használható</translation> </message> </context> <context> @@ -6643,28 +9764,32 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+0"/> <source>Scroll Right</source> - <translation>Görgetésre jobbra</translation> + <translation>Görgetés jobbra</translation> </message> </context> <context> <name>QTcpServer</name> <message> - <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/> + <source>Socket operation unsupported</source> + <translation type="obsolete">Socket művelet nem támogatott</translation> + </message> + <message> + <location filename="../src/network/socket/qtcpserver.cpp" line="+292"/> <source>Operation on socket is not supported</source> - <translation>A socketen végzett művelet nem támogatott</translation> + <translation>A művelet nem támogatott socketeken</translation> </message> </context> <context> <name>QTextControl</name> <message> - <location filename="../src/gui/text/qtextcontrol.cpp" line="+2024"/> + <location filename="../src/gui/text/qtextcontrol.cpp" line="+2046"/> <source>&Undo</source> <translation>&Visszavonás</translation> </message> <message> <location line="+2"/> <source>&Redo</source> - <translation>&Megismétlés</translation> + <translation>Új&ra</translation> </message> <message> <location line="+4"/> @@ -6679,7 +9804,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+7"/> <source>Copy &Link Location</source> - <translation>&Link címének másolása</translation> + <translation>&Link helyének másolása</translation> </message> <message> <location line="+6"/> @@ -6694,7 +9819,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+7"/> <source>Select All</source> - <translation>Az összes kiválasztása</translation> + <translation>Összes kijelölése</translation> </message> </context> <context> @@ -6703,7 +9828,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+310"/> <location line="+6"/> <source>Press</source> - <translation>Megnyomás</translation> + <translation>Nyomja meg</translation> </message> <message> <location line="-4"/> @@ -6715,9 +9840,9 @@ Kérem válasszon egy különböző fájl nevet.</translation> <context> <name>QUdpSocket</name> <message> - <location filename="../src/network/socket/qudpsocket.cpp" line="+179"/> + <location filename="../src/network/socket/qudpsocket.cpp" line="+189"/> <source>This platform does not support IPv6</source> - <translation>Ez a platform nem támogatja az IPv6-t</translation> + <translation>A platform nem támogatja az IPv6-ot</translation> </message> </context> <context> @@ -6730,7 +9855,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+28"/> <source>Redo</source> - <translation>Megismétlés</translation> + <translation>Újra</translation> </message> </context> <context> @@ -6751,7 +9876,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+27"/> <source>Redo</source> - <translation>Megismétlés</translation> + <translation>Újra</translation> </message> </context> <context> @@ -6759,85 +9884,89 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location filename="../src/gui/text/qtextcontrol.cpp" line="+899"/> <source>LRM Left-to-right mark</source> - <translation>LRM balról jobbra jelölés</translation> + <translation>LRM Balról jobbra jelölő</translation> </message> <message> <location line="+1"/> <source>RLM Right-to-left mark</source> - <translation>RLM jobbról balra jelölés</translation> + <translation>LRM Jobbról balra jelölő</translation> </message> <message> <location line="+1"/> <source>ZWJ Zero width joiner</source> - <translation>ZWJ Nulla szélességű asztalos</translation> + <translation>ZWJ Nulla szélességű egyesítő jelölő</translation> </message> <message> <location line="+1"/> <source>ZWNJ Zero width non-joiner</source> - <translation>ZWNJ Nulla szélességű nem asztalos</translation> + <translation>ZWN Nulla szélességű nem-egyesítő jelölő</translation> </message> <message> <location line="+1"/> <source>ZWSP Zero width space</source> - <translation>ZWSP Nulla szélességű hely</translation> + <translation>ZWSP Nulla szélességű szóköz</translation> </message> <message> <location line="+1"/> <source>LRE Start of left-to-right embedding</source> - <translation>LRE Balról jobbra beágyazás kezdete</translation> + <translation>LRE balról-jobbra beágyazás kezdete</translation> </message> <message> <location line="+1"/> <source>RLE Start of right-to-left embedding</source> - <translation>RLE Jobbról balra beágyazás kezdete</translation> + <translation>RLE jobbról-balra beágyazás kezdete</translation> </message> <message> <location line="+1"/> <source>LRO Start of left-to-right override</source> - <translation>LRO Balról jobbra megsemmisítés kezdete</translation> + <translation>LRO balról-jobbra felülbírálás kezdete</translation> </message> <message> <location line="+1"/> <source>RLO Start of right-to-left override</source> - <translation>RLO Jobbról balra megsemmisítés kezdete</translation> + <translation>RLO Jobbról-balra felülbírálás kezdete</translation> </message> <message> <location line="+1"/> <source>PDF Pop directional formatting</source> - <translation>PDF Kérirányú formázás benézése</translation> + <translation>PDF normál irányú formázási jelölő</translation> </message> <message> <location line="+6"/> <source>Insert Unicode control character</source> - <translation>Unicode vezérlő karakter beszúrása</translation> + <translation>Unicode vezérlőkarakter beszúrása</translation> </message> </context> <context> <name>QWebFrame</name> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+712"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+753"/> <source>Request cancelled</source> - <translation>Kérés visszavonva</translation> + <translation>A kérés megszakítva</translation> </message> <message> <location line="+19"/> <source>Request blocked</source> - <translation>Kérés blokkolva</translation> + <translation>A kérést blokkolták</translation> </message> <message> <location line="+7"/> <source>Cannot show URL</source> - <translation>Nem lehet megjeleníteni az URL-t</translation> + <translation>A cím nem megjeleníthető</translation> </message> <message> <location line="+6"/> <source>Frame load interrupted by policy change</source> - <translation>Irányvonal megváltozása miatt a szerkezet töltése megszakítva</translation> + <translation>A keret betöltése szabályváltoztatás miatt megszakadt</translation> + </message> + <message> + <source>Frame load interruped by policy change</source> + <translation type="obsolete">A keret betöltése szabályváltoztatás miatt megszakadt</translation> </message> <message> <location line="+6"/> <source>Cannot show mimetype</source> - <translation>Nem lehet megjeleníteni mime típust</translation> + <translation>Nem megjeleníthető fájltípus</translation> </message> <message> <location line="+6"/> @@ -6848,34 +9977,50 @@ Kérem válasszon egy különböző fájl nevet.</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/network/qt/QNetworkReplyHandler.cpp" line="+347"/> + <source>Redirection limit reached</source> + <translation>Átirányítási korlát elérve</translation> + </message> + <message> + <location line="+121"/> + <source>Bad HTTP request</source> + <translation>Hibás HTTP kérés</translation> + </message> + <message> + <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+44"/> <source>Submit</source> <comment>default label for Submit buttons in forms on web pages</comment> - <translation>Feltöltés</translation> + <translation>Küldés</translation> </message> <message> <location line="+5"/> <source>Submit</source> <comment>Submit (input element) alt text for <input> elements with no alt, title, or value</comment> - <translation>Feltöltés</translation> + <translation>Küldés</translation> </message> <message> <location line="+5"/> <source>Reset</source> <comment>default label for Reset buttons in forms on web pages</comment> - <translation>Helyreállítás</translation> + <translation>Törlés</translation> </message> <message> - <location line="+16"/> + <location line="+11"/> + <source>This is a searchable index. Enter search keywords: </source> + <comment>text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index'</comment> + <translation>Ez egy kereshető index. Írja be a keresendő szavakat: </translation> + </message> + <message> + <location line="+5"/> <source>Choose File</source> <comment>title for file button used in HTML forms</comment> - <translation>Fájl kiválasztása</translation> + <translation>Fájl tallózása</translation> </message> <message> <location line="+5"/> <source>No file selected</source> <comment>text to display in file button used in HTML forms when no file is selected</comment> - <translation>Nincsen egyetlen fájl sem kiválasztva</translation> + <translation>Nincs fájl kiválaszva</translation> </message> <message> <location line="+5"/> @@ -6887,13 +10032,13 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location line="+5"/> <source>Save Link...</source> <comment>Download Linked File context menu item</comment> - <translation>Link mentése...</translation> + <translation>Link célpontjának mentése...</translation> </message> <message> <location line="+5"/> <source>Copy Link</source> <comment>Copy Link context menu item</comment> - <translation>Link másolása</translation> + <translation>Link címének másolása</translation> </message> <message> <location line="+5"/> @@ -6905,7 +10050,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location line="+5"/> <source>Save Image</source> <comment>Download Image context menu item</comment> - <translation>Kép elmentése</translation> + <translation>Kép mentése</translation> </message> <message> <location line="+5"/> @@ -6917,7 +10062,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location line="+5"/> <source>Open Frame</source> <comment>Open Frame in New Window context menu item</comment> - <translation>Szerkezet megnyitása</translation> + <translation>Keret megnyitása új ablakban</translation> </message> <message> <location line="+5"/> @@ -6929,25 +10074,25 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location line="+5"/> <source>Go Back</source> <comment>Back context menu item</comment> - <translation>Menj vissza</translation> + <translation>Vissza</translation> </message> <message> <location line="+5"/> <source>Go Forward</source> <comment>Forward context menu item</comment> - <translation>Menj előre</translation> + <translation>Előre</translation> </message> <message> <location line="+5"/> <source>Stop</source> <comment>Stop context menu item</comment> - <translation>Leállítás</translation> + <translation>Stop</translation> </message> <message> <location line="+5"/> <source>Reload</source> <comment>Reload context menu item</comment> - <translation>Újratöltés</translation> + <translation>Frissítés</translation> </message> <message> <location line="+5"/> @@ -6965,13 +10110,13 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location line="+5"/> <source>No Guesses Found</source> <comment>No Guesses Found context menu item</comment> - <translation>Nincs feltételezések találata</translation> + <translation>Nincs találat</translation> </message> <message> <location line="+5"/> <source>Ignore</source> <comment>Ignore Spelling context menu item</comment> - <translation>Mellőzés</translation> + <translation>Kihagyás</translation> </message> <message> <location line="+5"/> @@ -6989,7 +10134,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location line="+5"/> <source>Look Up In Dictionary</source> <comment>Look Up in Dictionary context menu item</comment> - <translation>Utánanézés szótárban</translation> + <translation>Keresés a szótárban</translation> </message> <message> <location line="+5"/> @@ -7001,49 +10146,49 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location line="+5"/> <source>Ignore</source> <comment>Ignore Grammar context menu item</comment> - <translation>Mellőzés</translation> + <translation>Kihagyás</translation> </message> <message> <location line="+5"/> <source>Spelling</source> <comment>Spelling and Grammar context sub-menu item</comment> - <translation>Helyesírás</translation> + <translation>Nyelvi eszközök</translation> </message> <message> <location line="+5"/> <source>Show Spelling and Grammar</source> <comment>menu item title</comment> - <translation>Helyesírás és nyelvtan megjelenítése</translation> + <translation>Nyelvi eszközök megjelenítése</translation> </message> <message> <location line="+1"/> <source>Hide Spelling and Grammar</source> <comment>menu item title</comment> - <translation>Helyesírás és nyelvtan elrejtése</translation> + <translation>Nyelvi eszközök elrejtése</translation> </message> <message> <location line="+5"/> <source>Check Spelling</source> <comment>Check spelling context menu item</comment> - <translation>Helyesírás ellenőrzés</translation> + <translation>Nyelvhelyesség ellenőrzése</translation> </message> <message> <location line="+5"/> <source>Check Spelling While Typing</source> <comment>Check spelling while typing context menu item</comment> - <translation>Helyesírás ellenőrzés gépelés közben</translation> + <translation>Nyelvhelyesség ellenőrzése gépeléskor</translation> </message> <message> <location line="+5"/> <source>Check Grammar With Spelling</source> <comment>Check grammar with spelling context menu item</comment> - <translation>Nyelvtani ellenőrzés helyesírás ellenőrzéssel</translation> + <translation>Nyelvtan ellenőrzése</translation> </message> <message> <location line="+5"/> <source>Fonts</source> <comment>Font context sub-menu item</comment> - <translation>Betű</translation> + <translation>Betűtípus</translation> </message> <message> <location line="+5"/> @@ -7061,25 +10206,25 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location line="+5"/> <source>Underline</source> <comment>Underline context menu item</comment> - <translation>Aláhúzás</translation> + <translation>Aláhúzott</translation> </message> <message> <location line="+5"/> <source>Outline</source> <comment>Outline context menu item</comment> - <translation>Kontúrozás</translation> + <translation>Áthúzott</translation> </message> <message> <location line="+5"/> <source>Direction</source> <comment>Writing direction context sub-menu item</comment> - <translation>Irány összefüggések írás, menü elem</translation> + <translation>Irány</translation> </message> <message> <location line="+5"/> <source>Text Direction</source> <comment>Text direction context sub-menu item</comment> - <translation>Szöveg irány</translation> + <translation>Szövegirány</translation> </message> <message> <location line="+5"/> @@ -7100,7 +10245,13 @@ Kérem válasszon egy különböző fájl nevet.</translation> <translation>Jobbról balra</translation> </message> <message> - <location line="+105"/> + <location line="+100"/> + <source>Missing Plug-in</source> + <comment>Label text to be used when a plug-in is missing</comment> + <translation>Egy plug-in hiányzik</translation> + </message> + <message> + <location line="+20"/> <source>Loading...</source> <comment>Media controller status message when the media is loading</comment> <translation>Betöltés...</translation> @@ -7109,31 +10260,31 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location line="+5"/> <source>Live Broadcast</source> <comment>Media controller status message when watching a live broadcast</comment> - <translation>Élő bejelentés</translation> + <translation>Élő adás</translation> </message> <message> <location line="+8"/> <source>Audio Element</source> <comment>Media controller element</comment> - <translation>Audió elem</translation> + <translation>Hang elem</translation> </message> <message> <location line="+2"/> <source>Video Element</source> <comment>Media controller element</comment> - <translation>Videó elem</translation> + <translation>Video elem</translation> </message> <message> <location line="+2"/> <source>Mute Button</source> <comment>Media controller element</comment> - <translation>Elnémítás gomb</translation> + <translation>Némítás gomb</translation> </message> <message> <location line="+2"/> <source>Unmute Button</source> <comment>Media controller element</comment> - <translation>Elnémítás megszűntetése gomb</translation> + <translation>Némítás feloldása gomb</translation> </message> <message> <location line="+2"/> @@ -7145,7 +10296,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location line="+2"/> <source>Pause Button</source> <comment>Media controller element</comment> - <translation>Szünet gomb</translation> + <translation>Megállítás gomb</translation> </message> <message> <location line="+2"/> @@ -7157,19 +10308,19 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location line="+2"/> <source>Slider Thumb</source> <comment>Media controller element</comment> - <translation>Csuszka ujj</translation> + <translation>Csúszka pozícionáló</translation> </message> <message> <location line="+2"/> <source>Rewind Button</source> <comment>Media controller element</comment> - <translation>Áttekercselés gomb</translation> + <translation>Visszatekerés gomb</translation> </message> <message> <location line="+2"/> <source>Return to Real-time Button</source> <comment>Media controller element</comment> - <translation>A valós idejűre visszatérés gomb</translation> + <translation>Valós időre visszatérés gombja</translation> </message> <message> <location line="+2"/> @@ -7181,133 +10332,135 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location line="+2"/> <source>Remaining Time</source> <comment>Media controller element</comment> - <translation>Fennmaradó idő</translation> + <translation>Hátralévő idő</translation> </message> <message> <location line="+2"/> <source>Status Display</source> <comment>Media controller element</comment> - <translation>Státusz kijelzés</translation> + <translation>Állapotkijelző</translation> </message> <message> <location line="+2"/> <source>Fullscreen Button</source> <comment>Media controller element</comment> - <translation>Teljes képernyő gomb</translation> + <translation>Teljes méret gomb</translation> </message> <message> <location line="+2"/> <source>Seek Forward Button</source> <comment>Media controller element</comment> - <translation>Keresés továbbítása gomb</translation> + <translation>Előre keresés gomb</translation> </message> <message> <location line="+2"/> <source>Seek Back Button</source> <comment>Media controller element</comment> - <translation>Keresés visszafele gomb</translation> + <translation>Visszafele keresés gomb</translation> </message> <message> <location line="+8"/> <source>Audio element playback controls and status display</source> <comment>Media controller element</comment> - <translation>Audió elem visszajátszás vezérlők és státusz kijelzés</translation> + <translation>Hang elem lejátszásvezérlői és állapotkijelzője</translation> </message> <message> <location line="+2"/> <source>Video element playback controls and status display</source> <comment>Media controller element</comment> - <translation>Videó elem visszajátszás vezérlők és státusz kijelzés</translation> + <translation>Videó elem lejátszásvezérlői és állapotkijelzője</translation> </message> <message> <location line="+2"/> <source>Mute audio tracks</source> <comment>Media controller element</comment> - <translation>Audió számok elnémítása</translation> + <translation>Hangsávok elnémítása</translation> </message> <message> <location line="+2"/> <source>Unmute audio tracks</source> <comment>Media controller element</comment> - <translation>Audió számok elnémításának megszűntetése</translation> + <translation>Hangsávok visszakapcsolása</translation> </message> <message> <location line="+2"/> <source>Begin playback</source> <comment>Media controller element</comment> - <translation>Visszajátszás megkezdése</translation> + <translation>Lejátszás indítása</translation> </message> <message> <location line="+2"/> <source>Pause playback</source> <comment>Media controller element</comment> - <translation>Visszajátszás szüneteltetése</translation> + <translation>Lejátszás megállítása</translation> </message> <message> <location line="+2"/> <source>Movie time scrubber</source> <comment>Media controller element</comment> - <translation>Film idő súroló</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation>Mozi idő csúszka sáv</translation> </message> <message> <location line="+2"/> <source>Movie time scrubber thumb</source> <comment>Media controller element</comment> - <translation>Film idő súrolókörte</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation>Mozi idő csúszka</translation> </message> <message> <location line="+2"/> <source>Rewind movie</source> <comment>Media controller element</comment> - <translation>Film visszatekerése</translation> + <translation>Videó visszatekerése</translation> </message> <message> <location line="+2"/> <source>Return streaming movie to real-time</source> <comment>Media controller element</comment> - <translation>Özönlő filmek visszaadása a valós idő számára</translation> + <translation>Valós időbe váltás</translation> </message> <message> <location line="+2"/> <source>Current movie time</source> <comment>Media controller element</comment> - <translation>Az aktuális filmidő</translation> + <translation>Eltelt lejátszási idő</translation> </message> <message> <location line="+2"/> <source>Remaining movie time</source> <comment>Media controller element</comment> - <translation>Fennmaradó filmidő</translation> + <translation>Hátralevő lejátszási idő</translation> </message> <message> <location line="+2"/> <source>Current movie status</source> <comment>Media controller element</comment> - <translation>Az aktuális film státusz</translation> + <translation>A lejátszás állapota</translation> </message> <message> <location line="+2"/> <source>Play movie in full-screen mode</source> <comment>Media controller element</comment> - <translation>Film lejátszása teljes képernyős módban</translation> + <translation>Videó teljes képernyős lejátszása</translation> </message> <message> <location line="+2"/> <source>Seek quickly back</source> <comment>Media controller element</comment> - <translation>Gyorsan visszafele keresés</translation> + <translation>Gyors visszaugrás</translation> </message> <message> <location line="+2"/> <source>Seek quickly forward</source> <comment>Media controller element</comment> - <translation>Gyorsan előre keresés</translation> + <translation>Gyors előreugrás</translation> </message> <message> <location line="+9"/> <source>Indefinite time</source> <comment>Media time description</comment> - <translation>Bizonytalan idő</translation> + <translation>Végtelen idő</translation> </message> <message> <location line="+9"/> @@ -7334,101 +10487,108 @@ Kérem válasszon egy különböző fájl nevet.</translation> <translation>%1 másodperc</translation> </message> <message> - <location line="-210"/> + <source>LTR</source> + <comment>Left to Right context menu item</comment> + <translation type="obsolete">Balról jobbra</translation> + </message> + <message> + <source>RTL</source> + <comment>Right to Left context menu item</comment> + <translation type="obsolete">Jobbról balra</translation> + </message> + <message> + <location line="-225"/> <source>Inspect</source> <comment>Inspect Element context menu item</comment> - <translation>Megtekintés</translation> + <translation>Elemzés</translation> </message> <message> <location line="+5"/> <source>No recent searches</source> <comment>Label for only item in menu that appears when clicking on the search field image, when no searches have been performed</comment> - <translation>Nincsenek utóbbi keresések</translation> + <translation>Nincs keresési előzmény</translation> </message> <message> <location line="+5"/> <source>Recent searches</source> <comment>label for first item in the menu that appears when clicking on the search field image, used as embedded menu title</comment> - <translation>Utóbbi keresések</translation> + <translation>Keresési előzmények</translation> </message> <message> <location line="+5"/> <source>Clear recent searches</source> <comment>menu item in Recent Searches menu that empties menu's contents</comment> - <translation>Utóbbi keresések kiürítése</translation> + <translation>Keresési előzmények ürítése</translation> </message> <message> - <location line="+75"/> + <location line="+90"/> <source>Unknown</source> <comment>Unknown filesize FTP directory listing item</comment> <translation>Ismeretlen</translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+167"/> - <source>Web Inspector - %2</source> - <translation>Web felügyelő - %2</translation> - </message> - <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+5"/> + <location line="+5"/> <source>%1 (%2x%3 pixels)</source> <comment>Title string for images</comment> - <translation>%1 (%2x%3 pixelek)</translation> + <translation>%1 (%2x%3 képpont)</translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+412"/> - <source>Bad HTTP request</source> - <translation>Érvénytelen HTTP kérés</translation> + <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+253"/> + <source>Web Inspector - %2</source> + <translation>Web elemző - %2</translation> </message> - <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="-291"/> - <source>This is a searchable index. Enter search keywords: </source> - <comment>text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index'</comment> - <translation>Ez egy kereshető index. Gépelje be a kívánt kulcsszavakat:</translation> + <message numerus="yes"> + <location filename="../src/3rdparty/webkit/WebCore/platform/qt/FileChooserQt.cpp" line="+45"/> + <source>%n file(s)</source> + <comment>number of chosen file</comment> + <translation> + <numerusform>%n fájl</numerusform> + </translation> </message> <message> <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+58"/> <source>Scroll here</source> - <translation>Görgetés ide</translation> + <translation>Gördítés ide</translation> </message> <message> <location line="+3"/> <source>Left edge</source> - <translation>Bal szegély</translation> + <translation>Bal szélre</translation> </message> <message> <location line="+0"/> <source>Top</source> - <translation>Felül</translation> + <translation>Felülre</translation> </message> <message> <location line="+1"/> <source>Right edge</source> - <translation>Jobb szegély</translation> + <translation>Jobb szélre</translation> </message> <message> <location line="+0"/> <source>Bottom</source> - <translation>Alul</translation> + <translation>Alulra</translation> </message> <message> <location line="+3"/> <source>Page left</source> - <translation>Lapozás balra</translation> + <translation>Egy oldalt balra</translation> </message> <message> <location line="+0"/> <source>Page up</source> - <translation>Lapozás fel</translation> + <translation>Egy oldalt felfelé</translation> </message> <message> <location line="+1"/> <source>Page right</source> - <translation>Lapozás jobbra</translation> + <translation>Egy oldalt jobbra</translation> </message> <message> <location line="+0"/> <source>Page down</source> - <translation>Lapozás balra</translation> + <translation>Egy oldalt le</translation> </message> <message> <location line="+3"/> @@ -7438,7 +10598,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+0"/> <source>Scroll up</source> - <translation>Görgetés fel</translation> + <translation>Görgetés felfelé</translation> </message> <message> <location line="+1"/> @@ -7448,200 +10608,192 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+0"/> <source>Scroll down</source> - <translation>Görgetés lefele</translation> - </message> - <message numerus="yes"> - <location filename="../src/3rdparty/webkit/WebCore/platform/qt/FileChooserQt.cpp" line="+45"/> - <source>%n file(s)</source> - <comment>number of chosen file</comment> - <translation> - <numerusform>%n fájl</numerusform> - </translation> + <translation>Görgetés le</translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1822"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+2033"/> <source>JavaScript Alert - %1</source> - <translation>JavaSzkript figyelmeztetés - %1</translation> + <translation>JavaScript figyelmeztetés - %1</translation> </message> <message> - <location line="+16"/> + <location line="+17"/> <source>JavaScript Confirm - %1</source> - <translation>JavaSzkript megerősítés - %1</translation> + <translation>JavaScript megerősítés - %1</translation> </message> <message> - <location line="+18"/> + <location line="+20"/> <source>JavaScript Prompt - %1</source> - <translation>JavaSzkript prompt - %1</translation> + <translation>JavaScript Prompt kérdés - %1</translation> </message> <message> - <location line="+25"/> + <location line="+26"/> <source>JavaScript Problem - %1</source> - <translation>JavaSzkript probléma - %1</translation> + <translation>JavaScript probléma - %1</translation> </message> <message> <location line="+0"/> <source>The script on this page appears to have a problem. Do you want to stop the script?</source> - <translation>Az ezen a lapon található szkriptnek úgy tűnik, hogy van egy problémája. Le szeretné állítani a szkriptet?</translation> + <translation>Az ezen a lapon levő parancsfájl hibásnak tűnik. Leállítja a parancsfájl futását?</translation> </message> <message> - <location line="+381"/> + <location line="+395"/> <source>Move the cursor to the next character</source> - <translation>Az egér mozgatása a következő karakterre</translation> + <translation>Tegye a kurzort a következő karakterhez</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the previous character</source> - <translation>Az egér mozgatása az előző karakterre</translation> + <translation>Tegye a kurzort az előző karakterhez</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the next word</source> - <translation>Az egér mozgatása a következő szóra</translation> + <translation>Tegye a kurzort a következő szóhoz</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the previous word</source> - <translation>Az egér mozgatása az előző szóra</translation> + <translation>Tegye a kurzort az előző szóhoz</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the next line</source> - <translation>Az egér mozgatása a következő sorra</translation> + <translation>Tegye a kurzort a következő sorba</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the previous line</source> - <translation>Az egér mozgatása az előző sorra</translation> + <translation>Tegye a kurzort az előző sorba</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the start of the line</source> - <translation>Az egér mozgatása a sor elejére</translation> + <translation>Tegye a kurzort a sor elejére</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the end of the line</source> - <translation>Az egér mozgatása a sor végére</translation> + <translation>Tegye a kurzort a sor végére</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the start of the block</source> - <translation>Az egér mozgatása a blokk elejére</translation> + <translation>Tegye a kurzort a blokk elejére</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the end of the block</source> - <translation>Az egér mozgatása a blokk végére</translation> + <translation>Tegye a kurzort a blokk végére</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the start of the document</source> - <translation>Az egér mozgatása a dokumentum elejére</translation> + <translation>Tegye a kurzort a dokumentum elejére</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the end of the document</source> - <translation>Az egér mozgatása a dokumentum végére</translation> + <translation>Tegye a kurzort a dokumentum végére</translation> </message> <message> <location line="+3"/> <source>Select all</source> - <translation>Az összes kiválasztása</translation> + <translation>Összes kijelölése</translation> </message> <message> <location line="+3"/> <source>Select to the next character</source> - <translation>A következő karakter kiválasztása</translation> + <translation>Kijelölés a következő karakterig</translation> </message> <message> <location line="+3"/> <source>Select to the previous character</source> - <translation>Az előző karakter kiválasztása</translation> + <translation>Kijelölés az előző karakterig</translation> </message> <message> <location line="+3"/> <source>Select to the next word</source> - <translation>A következő szó kiválasztása</translation> + <translation>Kijelölés a következő szóig</translation> </message> <message> <location line="+3"/> <source>Select to the previous word</source> - <translation>Az előző szó kiválasztása</translation> + <translation>Kijelölés az előző szóig</translation> </message> <message> <location line="+3"/> <source>Select to the next line</source> - <translation>A következő sor kiválasztása</translation> + <translation>Kijelölés a következő sorig</translation> </message> <message> <location line="+3"/> <source>Select to the previous line</source> - <translation>Az előző sor kiválasztása</translation> + <translation>Kijelölés az előző sorig</translation> </message> <message> <location line="+3"/> <source>Select to the start of the line</source> - <translation>A sor elejének kiválasztása</translation> + <translation>Kijelölés a sor elejéig</translation> </message> <message> <location line="+3"/> <source>Select to the end of the line</source> - <translation>A sor végének kiválasztása</translation> + <translation>Kijelölés a sor végéig</translation> </message> <message> <location line="+3"/> <source>Select to the start of the block</source> - <translation>A blokk elejének kiválsztása</translation> + <translation>Kijelölés a blokk elejéig</translation> </message> <message> <location line="+3"/> <source>Select to the end of the block</source> - <translation>A blokk végének kiválasztása</translation> + <translation>Kijelölés a blokk végéig</translation> </message> <message> <location line="+3"/> <source>Select to the start of the document</source> - <translation>A dokumentum elejének kiválasztása</translation> + <translation>Kijelölés a dokumentum elejéig</translation> </message> <message> <location line="+3"/> <source>Select to the end of the document</source> - <translation>A dokumentum végének kiválasztása</translation> + <translation>Kijelölés a dokumentum végéig</translation> </message> <message> <location line="+3"/> <source>Delete to the start of the word</source> - <translation>A szó elejének törlése</translation> + <translation>Törlés a szó elejéig</translation> </message> <message> <location line="+3"/> <source>Delete to the end of the word</source> - <translation>A szó végének törlése</translation> + <translation>Törlés a szó végéig</translation> </message> <message> <location line="+33"/> <source>Insert a new paragraph</source> - <translation>Egy új bekezdés beszúrása</translation> + <translation>Új bekezdés beszúrása</translation> </message> <message> <location line="+3"/> <source>Insert a new line</source> - <translation>Egy új sor beszúrása</translation> + <translation>Új sor beszúrása</translation> </message> <message> <location line="+4"/> <source>Paste and Match Style</source> - <translation>Stílus beillesztése és összepasszintása</translation> + <translation>Beillesztés stílusegyeztetéssel</translation> </message> <message> <location line="+3"/> <source>Remove formatting</source> - <translation>Formázás eltávolítása</translation> + <translation>A formázás törlése</translation> </message> <message> <location line="+4"/> <source>Strikethrough</source> - <translation>Áthúzás</translation> + <translation>Áthúzva</translation> </message> <message> <location line="+4"/> @@ -7656,7 +10808,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+4"/> <source>Insert Bulleted List</source> - <translation>Hivatalos közlemény lista beszúrása</translation> + <translation>Pontozott lista beszúrása</translation> </message> <message> <location line="+4"/> @@ -7666,32 +10818,32 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+4"/> <source>Indent</source> - <translation>Behúzás</translation> + <translation>Behúzás növelése</translation> </message> <message> <location line="+3"/> <source>Outdent</source> - <translation>Behúzás kifelé</translation> + <translation>Behúzás csökkentése</translation> </message> <message> <location line="+3"/> <source>Center</source> - <translation>Közép</translation> + <translation>Középre igazítás</translation> </message> <message> <location line="+3"/> <source>Justify</source> - <translation>Igazolás</translation> + <translation>Sorkizárás</translation> </message> <message> <location line="+3"/> <source>Align Left</source> - <translation>Balra állít</translation> + <translation>Balra igazítás</translation> </message> <message> <location line="+3"/> <source>Align Right</source> - <translation>Jobbra állít</translation> + <translation>Jobbra igazítás</translation> </message> </context> <context> @@ -7705,7 +10857,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <context> <name>QWidget</name> <message> - <location filename="../src/gui/kernel/qwidget.cpp" line="+5720"/> + <location filename="../src/gui/kernel/qwidget.cpp" line="+5802"/> <source>*</source> <translation>*</translation> </message> @@ -7713,12 +10865,31 @@ Kérem válasszon egy különböző fájl nevet.</translation> <context> <name>QWizard</name> <message> - <location filename="../src/gui/dialogs/qwizard.cpp" line="+661"/> - <source>Cancel</source> - <translation>Mégse</translation> + <location filename="../src/gui/dialogs/qwizard.cpp" line="+689"/> + <source>Go Back</source> + <translation>Visszalépés</translation> + </message> + <message> + <location line="+3"/> + <source>Continue</source> + <translation>Folytatás</translation> + </message> + <message> + <location line="+5"/> + <source>Commit</source> + <translation>Véglegesítés</translation> </message> <message> <location line="+2"/> + <source>Done</source> + <translation>Kész</translation> + </message> + <message> + <source>Quit</source> + <translation type="obsolete">Kilépés</translation> + </message> + <message> + <location line="+4"/> <source>Help</source> <translation>Súgó</translation> </message> @@ -7733,32 +10904,17 @@ Kérem válasszon egy különböző fájl nevet.</translation> <translation>&Befejezés</translation> </message> <message> - <location line="+4"/> - <source>&Help</source> - <translation>&Súgó</translation> - </message> - <message> - <location line="-14"/> - <source>Go Back</source> - <translation>Vissza ugrás</translation> - </message> - <message> - <location line="+3"/> - <source>Continue</source> - <translation>Folytatás</translation> - </message> - <message> - <location line="+5"/> - <source>Commit</source> - <translation>Kommit</translation> + <location line="+2"/> + <source>Cancel</source> + <translation>Mégsem</translation> </message> <message> <location line="+2"/> - <source>Done</source> - <translation>Kész</translation> + <source>&Help</source> + <translation>&Súgó</translation> </message> <message> - <location line="-4"/> + <location line="-8"/> <source>&Next</source> <translation>&Következő</translation> </message> @@ -7778,7 +10934,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>&Move</source> - <translation>&Mozgatás</translation> + <translation>Á&thelyezés</translation> </message> <message> <location line="+1"/> @@ -7788,12 +10944,12 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+2"/> <source>Mi&nimize</source> - <translation>&Minimalizálás</translation> + <translation>&Kis méret</translation> </message> <message> <location line="+2"/> <source>Ma&ximize</source> - <translation>Ma&ximalizálás</translation> + <translation>Te&ljes méret</translation> </message> <message> <location line="+2"/> @@ -7803,17 +10959,29 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+6"/> <source>Stay on &Top</source> - <translation>&Tetején maradni</translation> + <translation>Mindig leg&felül</translation> + </message> + <message> + <location line="+3"/> + <location line="+1059"/> + <source>Sh&ade</source> + <translation>&Felcsukás</translation> </message> <message> - <location line="-988"/> + <location line="-278"/> + <location line="+60"/> + <source>%1 - [%2]</source> + <translation>%1 - [%2]</translation> + </message> + <message> + <location line="-1832"/> <source>Minimize</source> - <translation>Minimalizálás</translation> + <translation>Kis méret</translation> </message> <message> <location line="+2"/> <source>Restore Down</source> - <translation>Letárolás</translation> + <translation>Előző méret</translation> </message> <message> <location line="-4"/> @@ -7821,21 +10989,9 @@ Kérem válasszon egy különböző fájl nevet.</translation> <translation>Bezárás</translation> </message> <message> - <location line="+993"/> - <location line="+1059"/> - <source>Sh&ade</source> - <translation>Árnya&lat</translation> - </message> - <message> - <location line="-278"/> - <location line="+60"/> - <source>%1 - [%2]</source> - <translation>%1 - [%2]</translation> - </message> - <message> - <location line="+214"/> + <location line="+2048"/> <source>&Unshade</source> - <translation>&Leeresztés</translation> + <translation>&Lenyitás</translation> </message> </context> <context> @@ -7848,32 +11004,32 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>error triggered by consumer</source> - <translation>Ügyfél által előidézett hiba</translation> + <translation>feldolgozó által kiváltott hiba</translation> </message> <message> <location line="+1"/> <source>unexpected end of file</source> - <translation>Váratlan fájlvég</translation> + <translation>váratlan fájlvég</translation> </message> <message> <location line="+1"/> <source>more than one document type definition</source> - <translation>Több mint egy dokumentum típus definíció</translation> + <translation>több dokumentumtípus definíció</translation> </message> <message> <location line="+1"/> <source>error occurred while parsing element</source> - <translation>Hiba történt az elem elemzése közben</translation> + <translation>hiba az elem értelmezésénél</translation> </message> <message> <location line="+1"/> <source>tag mismatch</source> - <translation>Nem egyező címke</translation> + <translation>eltérő tag hiba</translation> </message> <message> <location line="+1"/> <source>error occurred while parsing content</source> - <translation>Hiba történt a tartalom elemzése közben</translation> + <translation>hiba a tartalom értelmezésénél</translation> </message> <message> <location line="+1"/> @@ -7883,77 +11039,77 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+1"/> <source>invalid name for processing instruction</source> - <translation>érvénytelen név az utasítás feldolgozására</translation> + <translation>érvénytelen feldolgozási utasítás név</translation> </message> <message> <location line="+1"/> <source>version expected while reading the XML declaration</source> - <translation>várt verzió az XML deklaráció olvasása közben</translation> + <translation>az XML deklaráció nem tartalmaz verzióinformációt</translation> </message> <message> <location line="+1"/> <source>wrong value for standalone declaration</source> - <translation>Hibás egyedülálló deklaráció érték</translation> + <translation>érvénytelen érték önálló deklarációban</translation> </message> <message> - <location line="+3"/> + <location line="+1"/> + <source>encoding declaration or standalone declaration expected while reading the XML declaration</source> + <translation>az XML deklarációból hiányzik a kódolási információ vagy egy önálló deklaráció</translation> + </message> + <message> + <location line="+1"/> + <source>standalone declaration expected while reading the XML declaration</source> + <translation>az XML deklarációból hiányzik az önálló deklaráció</translation> + </message> + <message> + <location line="+1"/> <source>error occurred while parsing document type definition</source> - <translation>Hiba történt a dokumentum típus definíció elemzése közben</translation> + <translation>hiba a dokumentumtípus definíció értelmezésénél</translation> </message> <message> <location line="+1"/> <source>letter is expected</source> - <translation>betű várt</translation> + <translation>a várt elem betű</translation> </message> <message> <location line="+1"/> <source>error occurred while parsing comment</source> - <translation>hiba történt az elemző megjegyzés előfordulása közben</translation> + <translation>hiba a megjegyzés értelmezésénél</translation> </message> <message> <location line="+1"/> <source>error occurred while parsing reference</source> - <translation>Hiba történt az elemző hivatkozás előfordulása közben</translation> + <translation>hiba a hivatkozás értelmezésénél</translation> </message> <message> <location line="+1"/> <source>internal general entity reference not allowed in DTD</source> - <translation>A DTD-ben nem engedélyezett a belső általános valós hivatkozás</translation> + <translation>A DTD-ben nem engedélyezett belső általános entitás használata</translation> </message> <message> <location line="+1"/> <source>external parsed general entity reference not allowed in attribute value</source> - <translation>Az attribútum értékben nem engedélyezett a külsőleg elemzett általános valós hivatkozás</translation> + <translation>külső feldolgozású általános entitáshivatkozás nem engedélyezett attribútum értékében</translation> </message> <message> <location line="+1"/> <source>external parsed general entity reference not allowed in DTD</source> - <translation>A DTD-ben nem engedélyezett a külsőleg elemzett általános valós hivatkozás</translation> + <translation>külső feldolgozású általános entitáshivatkozás nem engedélyezett a DTD-ben</translation> </message> <message> <location line="+1"/> <source>unparsed entity reference in wrong context</source> - <translation>Hivatkozás egy nem értelmezett entitásra hibás összefüggésben</translation> + <translation>nem értelmezett entitás referencia egy rossz kontextusban</translation> </message> <message> <location line="+1"/> <source>recursive entities</source> - <translation>Rekurzív entitások</translation> + <translation>rekurzív entitások</translation> </message> <message> <location line="+1"/> <source>error in the text declaration of an external entity</source> - <translation>Hiba egy külső entitás szöveg deklarációjában</translation> - </message> - <message> - <location line="-11"/> - <source>encoding declaration or standalone declaration expected while reading the XML declaration</source> - <translation>Kódolása deklaráció vagy egyedülálló deklaráció várt az XML deklaráció olvasása közben</translation> - </message> - <message> - <location line="+1"/> - <source>standalone declaration expected while reading the XML declaration</source> - <translation>Egyedülálló deklaráció várt az XML deklaráció olvasása közben</translation> + <translation>hiba egy külső entitás szövegdeklarációjában</translation> </message> </context> <context> @@ -7961,27 +11117,27 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location filename="../src/xmlpatterns/api/qcoloringmessagehandler.cpp" line="+87"/> <source>Warning in %1, at line %2, column %3: %4</source> - <translation>Figyelmeztetés %1-ben, %2 sorban, %3 oszlopban: %4</translation> + <translation>Figyelmeztetés a(z) %1 helyen, sor %2, oszlop %3: %4</translation> </message> <message> <location line="+7"/> <source>Warning in %1: %2</source> - <translation>Figyelmeztetés %1-ben: %2</translation> + <translation>Figyelmeztetés a(z) %1 helyen: %2</translation> </message> <message> <location line="+16"/> <source>Unknown location</source> - <translation>Ismeretlen elhelyezkedés</translation> + <translation>Ismeretlen hely</translation> </message> <message> <location line="+14"/> <source>Error %1 in %2, at line %3, column %4: %5</source> - <translation>%1 hiba %2-ben, %3 sorban, %4 oszlopban: %5</translation> + <translation>%1 hiba a(z) %2 %3. sorának %4. oszlopában: %5</translation> </message> <message> <location line="+8"/> <source>Error %1 in %2: %3</source> - <translation>%1 hiba %2-ben: %3</translation> + <translation>%1 hiba a(z) %2 helyen: %3</translation> </message> </context> <context> @@ -7990,7 +11146,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location filename="../src/corelib/xml/qxmlstream.cpp" line="+611"/> <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1770"/> <source>Extra content at end of document.</source> - <translation>Extra tartalom a dokumentum végén.</translation> + <translation>Nem várt tartalom a dokumentum végén.</translation> </message> <message> <location line="+271"/> @@ -8005,22 +11161,22 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+259"/> <source>Sequence ']]>' not allowed in content.</source> - <translation>']]>' sor nem engedélyezett a tartalomban.</translation> + <translation>']]>' szekvencia nem megengedett a tartalomban.</translation> </message> <message> <location line="+309"/> <source>Namespace prefix '%1' not declared</source> - <translation>'%1' névtér előtag nincsen deklarálva</translation> + <translation>A(z) '%1' névtér prefixum nincs deklarálva</translation> </message> <message> <location line="+78"/> <source>Attribute redefined.</source> - <translation>Attribútum újradefiniálva.</translation> + <translation>Az attributum újra lett definiálva.</translation> </message> <message> <location line="+115"/> <source>Unexpected character '%1' in public id literal.</source> - <translation>Váratlan karakter '%1' a publikus azonosító literál.</translation> + <translation>Váratlan '%1' karakter a publikus id literálban.</translation> </message> <message> <location line="+28"/> @@ -8035,17 +11191,17 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+23"/> <source>%1 is an invalid encoding name.</source> - <translation>%1 egy érvénytelen kódolási név.</translation> + <translation>%1 nem egy érvényes kódolás név.</translation> </message> <message> <location line="+7"/> <source>Encoding %1 is unsupported</source> - <translation>%1 kódolás nem támogatva</translation> + <translation>%1 kódolás nem támogatott</translation> </message> <message> <location line="+16"/> <source>Standalone accepts only yes or no.</source> - <translation>Egyedülálló elfogadás kizárólas igen vagy nem.</translation> + <translation>Csak igen vagy nem lehet az értéke.</translation> </message> <message> <location line="+2"/> @@ -8055,7 +11211,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+16"/> <source>Premature end of document.</source> - <translation>Túl korai dokumentum vég.</translation> + <translation>A dokumentum hirtelen véget ért.</translation> </message> <message> <location line="+2"/> @@ -8065,12 +11221,12 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+40"/> <source>Expected </source> - <translation>Várt</translation> + <translation>Várt </translation> </message> <message> <location line="+11"/> <source>, but got '</source> - <translation>, pedig megkapta '</translation> + <translation>, de ezt kaptam: '</translation> </message> <message> <location line="+4"/> @@ -8080,37 +11236,37 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+225"/> <source>Expected character data.</source> - <translation>Várt karakter adat.</translation> + <translation>Karakteres adat szükséges.</translation> </message> <message> <location filename="../src/corelib/xml/qxmlstream_p.h" line="-995"/> <source>Recursive entity detected.</source> - <translation>Rekurzív entitás észlelve.</translation> + <translation>Rekurzív entitást találtam.</translation> </message> <message> <location line="+516"/> <source>Start tag expected.</source> - <translation>Kezdő címke várva.</translation> + <translation>Kezdő tag szükséges.</translation> </message> <message> <location line="+222"/> <source>XML declaration not at start of document.</source> - <translation>XML deklaráció nem a dokumentum elején található.</translation> + <translation>Az XML deklaráció nem a dokumentum elején kezdődik.</translation> </message> <message> <location line="-31"/> <source>NDATA in parameter entity declaration.</source> - <translation>NDATA a paraméter entitás deklarációban.</translation> + <translation>NDATA a paraméter-entitás deklarációjában.</translation> </message> <message> <location line="+34"/> <source>%1 is an invalid processing instruction name.</source> - <translation>%1 egy érvénytelen feldolgozó utasítás neve.</translation> + <translation>%1 érvénytelen feldolgozási utasítás név.</translation> </message> <message> <location line="+11"/> <source>Invalid processing instruction name.</source> - <translation>Érvénytelen feldolgozó utasítás név.</translation> + <translation>Érvénytelen feldolgozási utasítás név.</translation> </message> <message> <location filename="../src/corelib/xml/qxmlstream.cpp" line="-536"/> @@ -8118,7 +11274,7 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location filename="../src/corelib/xml/qxmlstream_p.h" line="+164"/> <location line="+53"/> <source>Illegal namespace declaration.</source> - <translation>Illegális névtér deklarációk.</translation> + <translation>Érvénytelen névtér deklaráció.</translation> </message> <message> <location filename="../src/corelib/xml/qxmlstream_p.h" line="+15"/> @@ -8128,287 +11284,63 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+23"/> <source>Opening and ending tag mismatch.</source> - <translation>Nyitó és záró címkék nem egyeznek.</translation> + <translation>A nyitó és a záró tag nem egyezik.</translation> </message> <message> <location line="+18"/> <source>Reference to unparsed entity '%1'.</source> - <translation>Hivatkozás egy nem értelmezett entitásra '%1'.</translation> + <translation>Hivatkozás egy nem értelmezett entitásra: '%1'.</translation> </message> <message> <location line="-13"/> <location line="+61"/> <location line="+40"/> <source>Entity '%1' not declared.</source> - <translation>'%1' entitás nincsen deklarálva.</translation> + <translation>'%1' entitás nincs deklarálva.</translation> </message> <message> <location line="-26"/> <source>Reference to external entity '%1' in attribute value.</source> - <translation>Hivatkozás egy külső entitásra '%1' az attribútum értékben.</translation> + <translation>Hivatkozás '%1' külső entitásra attribútum értékben.</translation> </message> <message> <location line="+40"/> <source>Invalid character reference.</source> - <translation>Érvénytelen karakter hivatkozás.</translation> + <translation>Érvénytelen karakterhivatkozás.</translation> </message> <message> <location filename="../src/corelib/xml/qxmlstream.cpp" line="-75"/> <location filename="../src/corelib/xml/qxmlstream_p.h" line="-823"/> <source>Encountered incorrectly encoded content.</source> - <translation>Helytelen kódolási tartalommal találta szembe magát.</translation> + <translation>Hibás kódolású tartalom.</translation> </message> <message> <location line="+274"/> <source>The standalone pseudo attribute must appear after the encoding.</source> - <translation>Az egyedülálló ál attribútumnak a kódolás után kell feltűnnie.</translation> + <translation>Az egyedülálló pszeudo-attribútumnak a kódolás után kell szerepelnie.</translation> </message> <message> <location filename="../src/corelib/xml/qxmlstream_p.h" line="+562"/> <source>%1 is an invalid PUBLIC identifier.</source> - <translation>%1 egy érvénytelen PUBLIC-us azonosító.</translation> + <translation>%1 egy érvénytelen PUBLIC azonosító.</translation> </message> </context> <context> <name>QtXmlPatterns</name> <message> - <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/> - <location line="+15"/> - <source>At least one component must be present.</source> - <translation>Legalább egy komponenset be kell nyújtani.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/> - <source>%1 is not a valid value of type %2.</source> - <translation>%1 nem egy érvény értéke a(z) %2 típusnak.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+223"/> - <source>When casting to %1 from %2, the source value cannot be %3.</source> - <translation>A(z) %1-ről %2-re történő kasztoláskor, a forrás érték nem lehet %3.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/> - <source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source> - <translation>Hatékony logikai értéket nem lehet egy sor számára kiszámítani, amely kettő vagy több atomikus értéket tartalmaz.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/> - <source>The data of a processing instruction cannot contain the string %1</source> - <translation>Egy feldolgozó utasítás adata nem tartalmazhat %1 sztringet</translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+168"/> - <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/> - <source>%1 is an invalid %2</source> - <translation>%1 egy érvénytelen %2</translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/> - <source>%1 is not a valid XML 1.0 character.</source> - <translation>%1 egy érvénytelen 1.0 XML karakter.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/> - <source>%1 was called.</source> - <translation>%1 lett meghívva.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+133"/> - <source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source> - <translation>A kicserélési sztrinben, %1 -t legalább egy számnak kell követnie nem meneküléskor.</translation> - </message> - <message> - <location line="+26"/> - <source>In the replacement string, %1 can only be used to escape itself or %2, not %3</source> - <translation>A kicserelési sztringben, %1-t csak magának a(z) %2 vagy %3 menekülésére lehet használni</translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/> - <source>%1 matches newline characters</source> - <translation>%1 megegyező újsor karakterek</translation> - </message> - <message> - <location line="+10"/> - <source>Matches are case insensitive</source> - <translation>Az egyezés kis és nagybetűre nem érzékeny</translation> - </message> - <message> - <location line="+104"/> - <source>%1 is an invalid regular expression pattern: %2</source> - <translation>%1 egy érvénytelen reguláris kifejezés minta: %2</translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+346"/> - <source>It will not be possible to retrieve %1.</source> - <translation>Nem lesz lehetséges kinyerni %1.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+266"/> - <source>The default collection is undefined</source> - <translation>Az alapértelmezett gyűjtemény nincs definiálva</translation> - </message> - <message> - <location line="+13"/> - <source>%1 cannot be retrieved</source> - <translation>%1 nem lehet megszerezni</translation> - </message> - <message> - <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/> - <source>The item %1 did not match the required type %2.</source> - <translation>A(z) %1 elem nem egyezik a szükséges típussal %2.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+352"/> - <location line="+7323"/> - <source>%1 is an unknown schema type.</source> - <translation>%1 egy ismeretlen terv típus.</translation> - </message> - <message> - <location line="-7254"/> - <source>A template with name %1 has already been declared.</source> - <translation>Egy %1 nevű sablon már deklarálva van.</translation> - </message> - <message> - <location line="+213"/> - <source>Only one %1 declaration can occur in the query prolog.</source> - <translation>Kizárólag egy %1 deklaráció fordulhat elő a kérdéses előszóban.</translation> - </message> - <message> - <location line="+188"/> - <source>The initialization of variable %1 depends on itself</source> - <translation>A(z) %1 változó inicializálása önmagától függ</translation> - </message> - <message> - <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/> - <source>The variable %1 is unused</source> - <translation>A(z) %1 változó nincsen használva</translation> - </message> - <message> - <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+2904"/> - <source>Version %1 is not supported. The supported XQuery version is 1.0.</source> - <translation>%1-es verzió nem támogatott. A támogatott XQuery verzió az 1.0.</translation> - </message> - <message> - <location line="+71"/> - <source>No function with signature %1 is available</source> - <translation>Nincs %1 aláírással rendelkező függvény</translation> + <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+344"/> + <source>%1 is an unsupported encoding.</source> + <translation>%1 nem támogatott kódolás.</translation> </message> <message> - <location line="+303"/> - <source>It is not possible to redeclare prefix %1.</source> - <translation>Nem lehetséges a(z) %1 előtag újradeklarálása.</translation> + <location line="+16"/> + <source>%1 contains octets which are disallowed in the requested encoding %2.</source> + <translation>%1 olyan okteteket tartalmaz, amelyek nem megengedettek a kért %2 kódolásban.</translation> </message> <message> <location line="+18"/> - <source>Prefix %1 is already declared in the prolog.</source> - <translation>%1 előtag már deklarálva van az előszóban.</translation> - </message> - <message> - <location line="+95"/> - <source>The name of an option must have a prefix. There is no default namespace for options.</source> - <translation>Az opció nevének tartalmaznia kell egy előtagot. Nincs alapértelmezett névtér ezekre az opciókra.</translation> - </message> - <message> - <location line="+171"/> - <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source> - <translation>A terv importálása tulajdonság nem támogatott, és ennek következtében a(z) %1 deklarációk nem fordulhatnak elő.</translation> - </message> - <message> - <location line="+13"/> - <source>The target namespace of a %1 cannot be empty.</source> - <translation>Egy %1 cél névtere nem lehet üres.</translation> - </message> - <message> - <location line="+8"/> - <source>The module import feature is not supported</source> - <translation>A modul importáló tulajdonság nem támogatott</translation> - </message> - <message> - <location line="+178"/> - <source>The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2</source> - <translation>Egy felhasználó által definiált függvény névterének egy könyvtár modulban megfelelőnek kell lenni a modul névtérrel. Más szóval, %1-nek kellene lennie %2 helyett</translation> - </message> - <message> - <location line="+34"/> - <source>A function already exists with the signature %1.</source> - <translation>Egy függvény már létezik ezzel az aláírással %1.</translation> - </message> - <message> - <location line="+23"/> - <source>No external functions are supported. All supported functions can be used directly, without first declaring them as external</source> - <translation>Kulső függvények nincsenek támogatva. Az összes támogatott függvényt lehet közvetlenül haszálni, az első külső deklarálásuk nélkül</translation> - </message> - <message> - <location line="+1709"/> - <source>The %1-axis is unsupported in XQuery</source> - <translation>A(z) %1 tengely nem támogatott az XQuery-ben</translation> - </message> - <message> - <location line="+435"/> - <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source> - <translation>Az URI névtér nem lehet üres sztring egy előtaghoz való összeköttetéskor, %1.</translation> - </message> - <message> - <location line="+7"/> - <source>%1 is an invalid namespace URI.</source> - <translation>%1 egy érvénytelen URI névtér.</translation> - </message> - <message> - <location line="+6"/> - <source>It is not possible to bind to the prefix %1</source> - <translation>Nem lehetséges a(z) %1 előtaggal összekötni</translation> - </message> - <message> - <location line="+30"/> - <source>Two namespace declaration attributes have the same name: %1.</source> - <translation>Két névtér deklaráció attribútumnak ugyanaz a neve: %1.</translation> - </message> - <message> - <location line="+89"/> - <source>The namespace URI must be a constant and cannot use enclosed expressions.</source> - <translation>Az URI névtérnek állandónak kell lennie és nem használhat elhatárolt kifejezéseket.</translation> - </message> - <message> - <location line="+699"/> - <location line="+71"/> - <source>%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported.</source> - <translation>%1 nem a hatókör attribútum deklarációin belül található. Vegye figyelembe, hogy a terv importáló tulajdonság nem támogatott.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/> - <source>empty</source> - <translation>üres</translation> - </message> - <message> - <location line="+2"/> - <source>zero or one</source> - <translation>nulla vagy egy</translation> - </message> - <message> - <location line="+2"/> - <source>exactly one</source> - <translation>pontosan egy</translation> - </message> - <message> - <location line="+2"/> - <source>one or more</source> - <translation>egy vagy több</translation> - </message> - <message> - <location line="+2"/> - <source>zero or more</source> - <translation>nulla vagy több</translation> - </message> - <message> - <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+156"/> - <source>The focus is undefined.</source> - <translation>A fókusz nincs definiálva.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+93"/> - <source>An attribute by name %1 has already been created.</source> - <translation>Egy %1 nevű attribútum már létre lett hozva.</translation> + <source>The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.</source> + <translation>%1 kódrészlet %2 helyen, %3 kódolással érvénytelen XML karakter.</translation> </message> <message> <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/> @@ -8418,7 +11350,12 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+320"/> <source>Element %1 can't be serialized because it appears outside the document element.</source> - <translation>%1 elemet nem lehet besorolni, mert úgy tűnik a dokumentum elem külső oldalán található.</translation> + <translation>%1 elem nem szerializálható, mert a document elemen kívül szerepel.</translation> + </message> + <message> + <location line="+60"/> + <source>Attribute %1 can't be serialized because it appears at the top level.</source> + <translation>%1 attribútum nem szerializálható, mert legfelső szinten szerepel.</translation> </message> <message> <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/> @@ -8428,893 +11365,1127 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+19"/> <source>Day %1 is outside the range %2..%3.</source> - <translation>%1 nap a tartomány külsp oldalán van %2..%3.</translation> + <translation>A(z) %1. nap nem esik %2 és %3 közé.</translation> </message> <message> <location line="+7"/> <source>Month %1 is outside the range %2..%3.</source> - <translation>%1 hónap a tartomány külső felületén van %2..%3.</translation> + <translation>A(z) %1. hónap nem esik %2 és %3 közé.</translation> </message> <message> <location line="+10"/> <source>Overflow: Can't represent date %1.</source> - <translation>Túlcsordulás: Nem lehet feltünteti a(z) %1 dátumot.</translation> + <translation>Túlcsordulás: A(z) %1 dátum nem reprezentálható.</translation> </message> <message> <location line="+9"/> <source>Day %1 is invalid for month %2.</source> - <translation>%1 nap érvénytelen a(z) %2 hónapra vonatkozólag.</translation> + <translation>Nincs %1 nap %2 hónapban.</translation> </message> <message> <location line="+49"/> <source>Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; </source> - <translation>Idő 24:%1:%2:%3 érvénytelen. Az óra 24, de a perc, másodperc, és milliszekundum egyáltalán nem 0; </translation> + <translation>Az 24:%1:%2.%3 időpont érvénytelen, mert az óra értéke 24, de a többi érték nem 0; </translation> </message> <message> <location line="+13"/> <source>Time %1:%2:%3.%4 is invalid.</source> - <translation>Idő %1:%2:%3.%4 érvénytelen.</translation> + <translation>Az %1:%2:%3.%4 időpont érvénytelen.</translation> </message> <message> <location line="+115"/> <source>Overflow: Date can't be represented.</source> - <translation>Túlcsordulás: A dátumot nem lehet feltüntetni.</translation> + <translation>Túlcsordulás: A dátum nem reprezentálható.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/> + <location line="+15"/> + <source>At least one component must be present.</source> + <translation>Legalább egy komponenst meg kell adni.</translation> </message> <message> - <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="-7"/> + <location line="-7"/> <source>At least one time component must appear after the %1-delimiter.</source> - <translation>Legalább egy idő komponensnek lennie kell a(z) %1 határolójel után.</translation> + <translation>Legalább egy időkomponenst meg kell adni a(z) %1 elválasztó után.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/> + <source>%1 is not a valid value of type %2.</source> + <translation>%1 nem érvényes %2 típusú érték.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+223"/> + <source>When casting to %1 from %2, the source value cannot be %3.</source> + <translation>Ha %2-t %1-re kényszerítünk, a kiinduló érték nem lehet %3.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/> + <source>Integer division (%1) by zero (%2) is undefined.</source> + <translation>A nullával (%2) való egészosztás (%1) nincs értelmezve.</translation> + </message> + <message> + <location line="+7"/> + <source>Division (%1) by zero (%2) is undefined.</source> + <translation>A nullával (%2) való osztás (%1) nincs értelmezve.</translation> </message> <message> - <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+201"/> + <location line="+7"/> + <source>Modulus division (%1) by zero (%2) is undefined.</source> + <translation>A nullával (%2) való maradékos osztás (%1) nincs értelmezve.</translation> + </message> + <message> + <location line="+122"/> <location line="+32"/> <source>Dividing a value of type %1 by %2 (not-a-number) is not allowed.</source> - <translation>%1 típus értékének osztása egy %2(nem szám)-mal nem engedélyezett.</translation> + <translation>%1 típusú érték %2-vel osztása nem megengedett, mert az nem szám.</translation> </message> <message> <location line="-20"/> <source>Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed.</source> - <translation>%1 típus értékének osztása egy %2 vagy %3(plusz vagy minusz nulla)-mal nem engedélyezett.</translation> + <translation>%1 típusú érték osztása %2 vagy %3 (pozitív vagy negatív nulla) értékkel nem megengedett.</translation> </message> <message> <location line="+32"/> <source>Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed.</source> - <translation>%1 típusú érték %2 vagy %3-mal való szorzása(plusz vagy minusz végtelen) nem engedélyezett.</translation> + <translation>%1 típusú érték szorzása %2 vagy %3 (pozitív vagy negatív végtelen) típusú értékkel nem megengedett.</translation> </message> <message> <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/> <source>A value of type %1 cannot have an Effective Boolean Value.</source> - <translation>%1 típusú értéknek nincsen hatékony logikai értéke.</translation> + <translation>%1 típusú érték nem kaphat effektív logikai értéket.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/> + <source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source> + <translation>Effektív logikai érték nem számítható olyan sorozatra, melyben kettő vagy több atomi érték szerepel.</translation> </message> <message> <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/> <source>Value %1 of type %2 exceeds maximum (%3).</source> - <translation>%2 típus %1 értéke elérte a maxiumot (%3).</translation> + <translation>A(z) %2 típusú %1 érték meghaladja a maximumot (%3).</translation> </message> <message> <location line="+9"/> <source>Value %1 of type %2 is below minimum (%3).</source> - <translation>%1 típus %2 értéke a minimum alatt van (%3).</translation> + <translation>A(z) %2 típusú %1 érték kisebb, mint a minimum (%3).</translation> </message> <message> <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/> <source>A value of type %1 must contain an even number of digits. The value %2 does not.</source> - <translation>%1 típus értékének tartalmaznia kell egy páratlan számú számot. A(z) %2 érték nem.</translation> + <translation>%1 típusú értékben páros számú számjegynek kell szerepelnie. A(z) %2 érték nem megfelelő.</translation> </message> <message> <location line="+19"/> <source>%1 is not valid as a value of type %2.</source> - <translation>%1 érvénytelen %2 típusú értékként.</translation> + <translation>%1 nem érvényes %2 típusú érték.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/> + <source>Ambiguous rule match.</source> + <translation>Nem egyértelmű szabály illeszkedés.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/> <source>Operator %1 cannot be used on type %2.</source> - <translation>%1 műveletet nem lehet a(z) %2 típuson használni.</translation> + <translation>%1 operátor nem használható %2 típuson.</translation> </message> <message> <location line="+17"/> <source>Operator %1 cannot be used on atomic values of type %2 and %3.</source> - <translation>%1 műveletet nem lehet a %2 és %3-as típusú atomikus értéken használni.</translation> + <translation>%1 operátor nem használható %2 és %3 típusok atomi értékein.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+66"/> <source>The namespace URI in the name for a computed attribute cannot be %1.</source> - <translation>Az URI névtér a névben számított attribútumra nem lehet %1.</translation> + <translation>Egy számított attribútum nevében szereplő névtér URI-je nem lehet %1.</translation> </message> <message> <location line="+9"/> <source>The name for a computed attribute cannot have the namespace URI %1 with the local name %2.</source> - <translation>Egy kiszámított attribútumnak nem lehet %1 URI névtere %2 helyi névvel.</translation> + <translation>Számított attribútum neve nem szerepelhet %1 névtér URI-ben %2 lokális névvel.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/> <source>Type error in cast, expected %1, received %2.</source> - <translation>Típus hiba a kasztolásban, %1 várt, %2 kapott.</translation> + <translation>Típushiba a kényszerítés során, várt %1, kapott %2.</translation> </message> <message> <location line="+29"/> <source>When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed.</source> - <translation>%1-re kasztoláskor vagy típus származtatáskor, a forrás értéknek ugyanolyan típusúnak kell lennie, vagy sztring literálnak kell lennie. %2 típus nem engedélyezett.</translation> + <translation>%1 vagy belőle származó típusra való kényszerítéskor a kiindulási értéknek azonos típusúnak vagy sztring literálnak kell lennie. %2 típus nem megengedett.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/> <source>A comment cannot contain %1</source> - <translation>A megjegyzés nem tartalmazhat %1-t</translation> + <translation>Megjegyzésben nem szerepelhet %1</translation> </message> <message> <location line="+6"/> <source>A comment cannot end with a %1.</source> - <translation>A megjegyzés nem végződget %1-gyel.</translation> + <translation>Egy megjegyzés nem végződhet a következőre: %1.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+69"/> + <source>In a namespace constructor, the value for a namespace cannot be an empty string.</source> + <translation>Egy névtér konstruktorában a névtér értéke nem lehet üres karaktersorozat.</translation> + </message> + <message> + <location line="+11"/> + <source>The prefix must be a valid %1, which %2 is not.</source> + <translation>A prefixum érvényes %1 kell legyen, aminek %2 nem tesz eleget.</translation> + </message> + <message> + <location line="+14"/> + <source>The prefix %1 cannot be bound.</source> + <translation>%1 prefixum nem köthető.</translation> + </message> + <message> + <location line="+10"/> + <source>Only the prefix %1 can be bound to %2 and vice versa.</source> + <translation>Csak %1 prefixum köthető %2 kifejezéshez és fordítva.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+86"/> <source>An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place.</source> - <translation>Az attribútum csomópont egy dokumentum csomópont gyermeke. Ennek következtében a(z) %1 attribútum nem helyénvaló.</translation> + <translation>Attribútum csomópont nem lehet egy document csomópont gyermeke. Emiatt a(z) %1 attribútum nem ide való.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+162"/> <source>A library module cannot be evaluated directly. It must be imported from a main module.</source> - <translation>A köbyvtár modult nem lehet közvetlenül kiértékelni. A fő modulból kell importálni.</translation> + <translation>Egy könyvtár modult nem lehet közvetlenül kiértékelni. Mindenképp egy fő modulból kell importálni.</translation> </message> <message> <location line="+40"/> <source>No template by name %1 exists.</source> - <translation>%1 nevű sablon nem létezik.</translation> + <translation>Nem létezik %1 nevű sablon.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+106"/> <source>A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type.</source> - <translation>A(z) %1 típus értéke egy állítmány. Egy állítmánynak tartalmaznia kell vagy egy szám típust vagy egy effektív logikai érték típust.</translation> + <translation>Egy %1 típusú érték nem lehet predikátum. Egy predikátumnak szám vagy effektív logikai érték típusúnak kell lennie.</translation> </message> <message> <location line="+32"/> <source>A positional predicate must evaluate to a single numeric value.</source> - <translation>A helyzet állítmányt egy egyetlen szám értékként kell kiértékelni.</translation> + <translation>Egy pozicionális predikátumnak egyetlen numerikus értékké kell kiértékelődnie.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+113"/> <source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid.</source> - <translation>A cél neve egy utasítás feldolgozásban nem lehet %1 kis és nagybetűk bármely kombinációjában. Ennek következtében a(z) %2 érvénytelen.</translation> + <translation>Feldolgozási utasításban a célnév nem lehet %1 semmilyen kis- vagy nagybetűs formában. Emiatt %2 érvénytelen.</translation> </message> <message> <location line="+24"/> <source>%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3.</source> - <translation>%1 nem egy érvényes cél név az utasítás feldolgozásban. %2 vagy %3 értéknek kell lennie.</translation> + <translation>%1 érvénytelen célnév egy feldolgozási utasításban. Értéke %2 típusú kell legyen, mint pl. %3.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+109"/> <source>The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two.</source> - <translation>Az utolsó lépésnek vagy csomópontokat vagy atomikus értékeket kell tartalmaznia. Ez nem lehet a kettő közötti keverék.</translation> + <translation>Egy útvonal utolsó lépésének vagy csomópontokat vagy atomi értékeket kell tartalmaznia. Nem lehet a kettő keveréke.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/> + <source>The data of a processing instruction cannot contain the string %1</source> + <translation>Egy feldolgozási utasítás adata nem tartalmazhatja %1 sztringet</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+82"/> <source>No namespace binding exists for the prefix %1</source> - <translation>Nem létezik névtér összeköttetés a(z) %1 előtagra</translation> + <translation>Nincs névtér kötés a(z) %1 prefixumhoz</translation> </message> <message> - <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="-12"/> + <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+156"/> <source>No namespace binding exists for the prefix %1 in %2</source> - <translation>Nem létezik névtér összeköttetés a(z) %1 előtagra %2-ben</translation> + <translation>Nincs névtér kötés a(z) %1 prefixumhoz %2 helyen</translation> + </message> + <message> + <location line="+12"/> + <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/> + <source>%1 is an invalid %2</source> + <translation>%1 egy érvénytelen %2</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+74"/> + <source>The parameter %1 is passed, but no corresponding %2 exists.</source> + <translation>Az átadott paraméter %1, de nincs megfelelő %2.</translation> + </message> + <message> + <location line="+71"/> + <source>The parameter %1 is required, but no corresponding %2 is supplied.</source> + <translation>%1 paraméter kötelező, de nincs megadva megfelelő %2.</translation> + </message> + <message numerus="yes"> + <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/> + <source>%1 takes at most %n argument(s). %2 is therefore invalid.</source> + <translation> + <numerusform>%1 maximum %n argumentumot fogad, így %2 érvénytelen.</numerusform> + </translation> + </message> + <message numerus="yes"> + <location line="+11"/> + <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source> + <translation> + <numerusform>%1 legalább %n argumentumot fogad, így %2 érvénytelen.</numerusform> + </translation> </message> <message> <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/> <source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source> - <translation>Az első argumentum %1 nem lehet %2 típusú. Egy számos típusnak kelle lennie, xs:évHónapIdőtartam vagy xs:napIdőTartam.</translation> + <translation>%1 első paramétere nem lehet %2 típusú. Csak numerikus típus, xs:yearMonthDuration vagy xs:dayTimeDuration lehet.</translation> </message> <message> <location line="+74"/> <source>The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source> - <translation>Az első argumentum %1 nem lehet %2 típusú. %3, %4 vagy %5 típusúnak kell lennie.</translation> + <translation>%1 első argumentuma nem lehet %2 típusú. Csak %3, %4 vagy %5 megengedett.</translation> </message> <message> <location line="+91"/> <source>The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source> - <translation>Az második argumentum %1 nem lehet %2 típusú. %3, %4 vagy %5 típusúnak kell lennie.</translation> + <translation>%1 második argumentuma nem lehet %2 típusú. Csak %3, %4 vagy %5 megengedett.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/> + <source>%1 is not a valid XML 1.0 character.</source> + <translation>%1 érvénytelen XML 1.0 karakter.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+54"/> + <source>The root node of the second argument to function %1 must be a document node. %2 is not a document node.</source> + <translation>%1 függvény második argumentumának gyökér csomópontja document típusú kell legyen. %2 nem document csomópont.</translation> </message> <message> <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+86"/> <source>If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same.</source> - <translation>Ha mindkét értéknek zóna eltolása van, ugyanazt a zóna eltolást kell tartalmazniuk. %1 és %2 nem ugyanaz.</translation> + <translation>Ha mindkét értékben zóna eltolás van, akkor annak azonosnak kell lennie. %1 és %2 nem egyezik.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/> + <source>%1 was called.</source> + <translation>%1 meghívva.</translation> </message> <message> - <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="-65"/> + <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+94"/> <source>%1 must be followed by %2 or %3, not at the end of the replacement string.</source> - <translation>%1-t %2 vagy %3-nak kell követnie, nem a kicserélési sztring végén.</translation> + <translation>%1-t %2 vagy %3 kell kövesse, nem a helyettesítő karakterlánc végén.</translation> </message> <message> - <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="-110"/> + <location line="+39"/> + <source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source> + <translation>A csereszövegben %1-t legalább egy számjegy kell kövesse, amennyiben az nincs escapelve.</translation> + </message> + <message> + <location line="+26"/> + <source>In the replacement string, %1 can only be used to escape itself or %2, not %3</source> + <translation>A csereszövegben %1 csak önmaga vagy %2 escapelésére használható, %3-ra nem</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/> + <source>%1 matches newline characters</source> + <translation>%1 illeszkedik az újsor karakterekre</translation> + </message> + <message> + <location line="+4"/> <source>%1 and %2 match the start and end of a line.</source> - <translation>%1 és %2 egyezik a sor elején és végén.</translation> + <translation>%1 és %2 a sor elejére és végére is illeszkedik.</translation> </message> <message> - <location line="+10"/> + <location line="+6"/> + <source>Matches are case insensitive</source> + <translation>Az illeszkedések nem nagybetű-érzékenyek</translation> + </message> + <message> + <location line="+4"/> <source>Whitespace characters are removed, except when they appear in character classes</source> - <translation>Nem látható karakterek eltávolítva, kivéve mikor karakter osztályokban tűnnek fel</translation> + <translation>A nem nyomtatható karakterek törlésre kerülnek, kivétel, ha karakter osztályokban szerepelnek</translation> </message> <message> - <location line="+130"/> + <location line="+100"/> + <source>%1 is an invalid regular expression pattern: %2</source> + <translation>%1 érvénytelen reguláris kifejezés minta: %2</translation> + </message> + <message> + <location line="+30"/> <source>%1 is an invalid flag for regular expressions. Valid flags are:</source> - <translation>%1 egy érvénytelen jelző reguláris kifejezésekre. Érvényes flagek:</translation> + <translation>%1 érvénytelen kapcsoló reguláris kifejezésekhez. Az érvényes kapcsolók:</translation> </message> <message> <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+17"/> <source>If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified.</source> - <translation>Ha az első argumentum üres sorozat vagy nulla hosszúságú sztring (nincsen névtér), egy előtagot nem lehet meghatározni. %1 előtag volt meghatározva.</translation> + <translation>Ha az első argumentum az üres szekvencia vagy egy nulla hosszúságú sztring (névtér nélkül), akkor nem adható meg prefixum. %1 prefixum lett megadva.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+346"/> + <source>It will not be possible to retrieve %1.</source> + <translation>Nem lesz lehetséges %1 lekérése.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+266"/> + <source>The default collection is undefined</source> + <translation>Nincs meghatározva az alapértelmezett kollekció</translation> + </message> + <message> + <location line="+13"/> + <source>%1 cannot be retrieved</source> + <translation>%1-t nem lehet lekérni</translation> </message> <message> <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+252"/> <source>The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization).</source> - <translation>A(z) %1 szabványosítási forma nem támogatott. A támogatott formák %2, %3, %4 és %5 és semmi más, lásd az üres sztringet (nincs szabványosítás).</translation> + <translation>%1 normalizáló formája nem támogatott. A támogatott formák %2, %3, %4 és %5 vagy semmi, pl. az üres sztring (normalizáció nélkül).</translation> </message> <message> <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+87"/> <source>A zone offset must be in the range %1..%2 inclusive. %3 is out of range.</source> - <translation>A zóna eltolásnak a(z) %1..%2 tartományban kell benne lennie. %3 az tartományon kívüli.</translation> + <translation>Egy zónaeltolásnak a(z) %1..%2 nyílt intervallumba kell esnie. %3 az értékhatáron kívül van.</translation> + </message> + <message> + <location line="+12"/> + <source>%1 is not a whole number of minutes.</source> + <translation>%1 nem egész számú perc.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+65"/> + <source>The URI cannot have a fragment</source> + <translation>A URI nem tartalmazhat töredéket</translation> </message> <message> <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+58"/> <source>Required cardinality is %1; got cardinality %2.</source> - <translation>Szükséges számosság %1, szerzett számosság %2.</translation> + <translation>Az elvárt kardinalitás %1; azonban %2 lett megadva.</translation> </message> <message> - <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-3944"/> - <source>The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2.</source> - <translation>A(z) %1 kódolás érvénytelen. Kizárólag latin karaktereket kell tartalmaznia, nem szabad látható karaktereket tartalmaznia, és a(z) %2 reguláris kifejezéssel kell megegyeznie.</translation> + <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/> + <source>The item %1 did not match the required type %2.</source> + <translation>%1 elem nem egyezik a várt %2 típussal.</translation> </message> <message> - <location line="+260"/> - <source>The keyword %1 cannot occur with any other mode name.</source> - <translation>A(z) %1 kulcscszó nem fordulhat elő semmilyen más mód névvel.</translation> + <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/> + <source>The variable %1 is unused</source> + <translation>A(z) %1 változó nincs használva</translation> </message> <message> - <location line="-3117"/> - <source>No variable with name %1 exists</source> - <translation>%1 nevű változó nem létezik</translation> + <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+295"/> + <source>W3C XML Schema identity constraint selector</source> + <translation>W3C XML séma azonosító szabály kiválasztó</translation> </message> <message> - <location line="+3146"/> - <source>The value of attribute %1 must be of type %2, which %3 isn't.</source> - <translation>A(z) %1 attribútumnak %2 típusúnak kell lennie, amelyik nem %3-as.</translation> + <location line="+3"/> + <source>W3C XML Schema identity constraint field</source> + <translation>W3C XML séma azonosító megszorítás mező</translation> </message> <message> - <location line="+75"/> - <source>The prefix %1 cannot be bound. By default, it is already bound to the namespace %2.</source> - <translation>A(z) %1 előtagot nem lehet összekötni. Alapértelmezetten, már hozzá van kötve a %2 névtérhez.</translation> + <location line="+4"/> + <source>A construct was encountered which is disallowed in the current language(%1).</source> + <translation>Olyan szerkezetet találtam, ami az aktuális nyelvben nem megengedett(%1).</translation> </message> <message> - <location line="+312"/> - <source>A variable with name %1 has already been declared.</source> - <translation>%1 nevű változó már deklarálva van.</translation> + <location line="+50"/> + <location line="+7323"/> + <source>%1 is an unknown schema type.</source> + <translation>%1 ismeretlen séma típus.</translation> </message> <message> - <location line="+39"/> - <source>No value is available for the external variable with name %1.</source> - <translation>%1 nevű külső változóhoz nem érhető el érték. </translation> + <location line="-7254"/> + <source>A template with name %1 has already been declared.</source> + <translation>%1 nevű sablon már van deklarálva.</translation> </message> <message> - <location line="+96"/> - <source>A stylesheet function must have a prefixed name.</source> - <translation>A stíluslap függvénynek tartalmaznia kell egy előtag nevet.</translation> + <location line="+26"/> + <source>%1 is not a valid numeric literal.</source> + <translation>%1 érvénytelen numerikus literál.</translation> </message> <message> - <location line="+18"/> - <source>The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases.</source> - <translation>A(z) %1 névtér foglalt, ennek következtében a felhasználó által definiált függvényt nem lehet használni. Próbálja ki az előredefiniált %2 előtagot, amely erre az esetekre van kitalálva.</translation> + <location line="+187"/> + <source>Only one %1 declaration can occur in the query prolog.</source> + <translation>Csak egy %1 deklaráció szerepelhet a lekérdezés bevezetésben.</translation> </message> <message> - <location line="+106"/> - <source>An argument with name %1 has already been declared. Every argument name must be unique.</source> - <translation>Egy %1 nevű argumentum már deklarálva van. Minden argumentum névnek egyedülállónak kell lennie.</translation> + <location line="+188"/> + <source>The initialization of variable %1 depends on itself</source> + <translation>%1 változó inicializálása önmagától függ</translation> </message> <message> - <location line="+179"/> - <source>When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal.</source> - <translation>Mikor %1 függvény van használva egyeztetése egy mintán belül, az argumentumnak egy változó hivatkozásnak vagy egy sztring literálnak kell lennie.</translation> + <location line="+63"/> + <source>No variable with name %1 exists</source> + <translation>Nem létezik %1 nevű változó</translation> </message> <message> - <location line="+11"/> - <source>In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching.</source> - <translation>Egy XSLT mintában, az első argumentumnak a(z) %1 függvényre egy sztring literálnak kell lennie, amikor egyeztetésre használják.</translation> + <location line="+2841"/> + <source>Version %1 is not supported. The supported XQuery version is 1.0.</source> + <translation>A(z) %1 verzió nem támogatott. A támogatott XQuery verzió 1.0.</translation> </message> <message> - <location line="+14"/> - <source>In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching.</source> - <translation>Egy XSLT mintában, az első argumentumnak a(z) %1 függvény esetén egy literálnak vagy egy változó hibatkozásnak kell lennie, mikor egyeztetésre használják.</translation> + <location line="+16"/> + <source>The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2.</source> + <translation>%1 kódolás érvénytelen. Csak Latin karaktereket tartalmazhat, nem nyomtatható karakterek nélkül, és illeszkednie kell %2 reguláris kifejezésre.</translation> </message> <message> - <location line="+9"/> - <source>In an XSL-T pattern, function %1 cannot have a third argument.</source> - <translation>Egy XSLT mintában, %1 függvénynek nem lehet egy harmadik argumentuma.</translation> + <location line="+55"/> + <source>No function with signature %1 is available</source> + <translation>%1 szignaturájú függvény nem található</translation> </message> <message> + <location line="+72"/> <location line="+10"/> - <source>In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching.</source> - <translation>Egy XSLT mintában, kizárólag a(z) %1 és %2 függvényeket, és %3-at nem lehet egyeztetésre használni.</translation> + <source>A default namespace declaration must occur before function, variable, and option declarations.</source> + <translation>Egy alapértelmezett névtér deklarációnak meg kell előznie a függvény-, változó- és opció deklarációkat.</translation> </message> <message> - <location line="+63"/> - <source>In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can.</source> - <translation>Egy XSLT mintában, %1 tengelyt nem lehet használni, kizárólag a(z) %2 vagy %3 tengelyeket.</translation> + <location line="+10"/> + <source>Namespace declarations must occur before function, variable, and option declarations.</source> + <translation>A névtér deklarációknak meg kell előzniük a függvény-, változó- és opció deklarációkat.</translation> </message> <message> - <location line="+126"/> - <source>%1 is an invalid template mode name.</source> - <translation>%1 egy érvénytelen sablon mód név.</translation> + <location line="+11"/> + <source>Module imports must occur before function, variable, and option declarations.</source> + <translation>Modul importoknak meg kell előzniük a függvény-, változó- és opció deklarációkat.</translation> </message> <message> - <location line="+44"/> - <source>The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide.</source> - <translation>Egy változó összeköttetés nevének egy for kifejezésben különböznie kell a pozícionális változótol. Ezért, a két %1 nevű változó ütközik.</translation> + <location line="+102"/> + <source>The keyword %1 cannot occur with any other mode name.</source> + <translation>%1 kulcsszó nem szerepelhet együtt semmilyen más mód névvel.</translation> </message> <message> - <location line="+778"/> - <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source> - <translation>A terv jóváhagyási tulajdonság nem támogatott. Ezért, %1 kifejezést nem lehet használni.</translation> + <location line="+29"/> + <source>The value of attribute %1 must be of type %2, which %3 isn't.</source> + <translation>%1 attribútum értékének %2 típusúnak kell lennie, %3 nem az.</translation> </message> <message> - <location line="+40"/> - <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source> - <translation>A pragma kifejezések egyike sem támogatott. Ezért egy visszavonuló kifejezést kell nyújtani</translation> + <location line="+69"/> + <source>It is not possible to redeclare prefix %1.</source> + <translation>%1 prefixum újradeklarálása nem lehetséges.</translation> </message> <message> - <location line="+269"/> - <source>Each name of a template parameter must be unique; %1 is duplicated.</source> - <translation>Sablon paraméter mindegyik nevének egyedülállónak kell lennie, %1 az duplikáns.</translation> + <location line="+6"/> + <source>The prefix %1 cannot be bound. By default, it is already bound to the namespace %2.</source> + <translation>%1 prefixum nem köthető. Alapértelmezés szerint már kötött %2 névtérhez.</translation> </message> <message> - <location line="+462"/> - <source>No function with name %1 is available.</source> - <translation>%1 nevű függvény nem elérhető.</translation> + <location line="+12"/> + <source>Prefix %1 is already declared in the prolog.</source> + <translation>%1 prefixum már deklarálva van a bevezetésben.</translation> </message> <message> - <location line="-6235"/> - <source>%1 is not a valid numeric literal.</source> - <translation>%1 nem egy érvényes számos literál.</translation> + <location line="+95"/> + <source>The name of an option must have a prefix. There is no default namespace for options.</source> + <translation>Egy opció nevének kötelező prefixumot megadni. Nics alapértelmezett névetér az opciók számára.</translation> </message> <message> - <location line="-152"/> - <source>W3C XML Schema identity constraint selector</source> - <translation>W3C XML terv azonosító megszorító kiválasztó</translation> + <location line="+171"/> + <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source> + <translation>A Schema Import szolgáltatás nem támogatott, így %1 deklarációk nem fogadhatók el.</translation> </message> <message> - <location line="+3"/> - <source>W3C XML Schema identity constraint field</source> - <translation>W3C XML Terv azonosító megszorító mező</translation> + <location line="+13"/> + <source>The target namespace of a %1 cannot be empty.</source> + <translation>Egy %1 cél-névtere nem lehet üres.</translation> </message> <message> - <location line="+4"/> - <source>A construct was encountered which is disallowed in the current language(%1).</source> - <translation>Egy olyan konstruktort talált amelyik nincsen engedélyezve az aktuális nyelvben(%1).</translation> + <location line="+8"/> + <source>The module import feature is not supported</source> + <translation>A modul import szolgáltatás nem támogatott</translation> </message> <message> - <location line="+6502"/> - <source>Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).</source> - <translation>%1 névteret kizárólag a %2-vel lehet összekötni (és ennyi, vagy mindkét esetben, előre deklarált).</translation> + <location line="+13"/> + <source>A variable with name %1 has already been declared.</source> + <translation>Egy %1 nevű változó már deklarálva van.</translation> </message> <message> - <location line="+8"/> - <source>Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared).</source> - <translation>%1 előtagot kizárólag a %2-vel lehet összekötni (és ennyi, vagy mindkét esetben, előre deklarált).</translation> + <location line="+39"/> + <source>No value is available for the external variable with name %1.</source> + <translation>%1 nevű külső változóhoz nem érhető el érték.</translation> </message> <message> - <location line="+120"/> - <source>An attribute with name %1 has already appeared on this element.</source> - <translation>%1 attribútum név már van ebben az elemben.</translation> + <location line="+96"/> + <source>A stylesheet function must have a prefixed name.</source> + <translation>Egy stíluslap függvénynek prefixummal ellátott neve kell legyen.</translation> </message> <message> - <location line="+61"/> - <source>A direct element constructor is not well-formed. %1 is ended with %2.</source> - <translation>Egy közvetlen elem konstruktor, mely nincsen jól megformázva. %1 a(z) %2-ben végzőik.</translation> + <location line="+9"/> + <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source> + <translation>Egy felhasználói függvény névtere nem lehet üres (próbálja meg a(z) %1 prefixumot, ami ilyen esetekre van fenntartva)</translation> </message> <message> - <location line="+458"/> - <source>The name %1 does not refer to any schema type.</source> - <translation>A(z) %1 név nem vonatkozik egyetlen terv típusra sem.</translation> + <location line="+9"/> + <source>The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases.</source> + <translation>A(z) %1 névtér fenntartott, így felhasználói függvények nem használhatják. Próbálja meg a(z) %2 prefixumot, ami ilyen esetekre van.</translation> </message> <message> - <location line="+10"/> - <source>%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works.</source> - <translation>%1 egy összetett típus. Összetett típusra kasztolás nem lehetséges. De egy atomikus típusra mint egy %2 működik.</translation> + <location line="+12"/> + <source>The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2</source> + <translation>Egy függvénytár modulban definiált felhasználói függvény névtere meg kell egyezzen a modul névterével. Más szóval %1 kellene legyen %2 helyett</translation> </message> <message> - <location line="+9"/> - <source>%1 is not an atomic type. Casting is only possible to atomic types.</source> - <translation>%1 nem egy atomikus típus. Kaszolás kizárólag csak atomikus típusra lehetséges.</translation> + <location line="+34"/> + <source>A function already exists with the signature %1.</source> + <translation>%1 szignaturájú függvény már létezik.</translation> </message> <message> - <location line="+76"/> - <source>%1 is not a valid name for a processing-instruction.</source> - <translation>%1 nem egy érvényes név egy utasítás feldolgozásra.</translation> + <location line="+23"/> + <source>No external functions are supported. All supported functions can be used directly, without first declaring them as external</source> + <translation>Külső függvények nem támogatottak. Minden támogatott függvény használható, külső függvényként való deklarálás nélkül</translation> </message> <message> - <location line="+188"/> - <source>The name of an extension expression must be in a namespace.</source> - <translation>Egy kifejezés kiterjesztés nevének egy névtérben kell lennie.</translation> + <location line="+37"/> + <source>An argument with name %1 has already been declared. Every argument name must be unique.</source> + <translation>%1 nevű argumentum már deklarálva van. Minden argumentumnévnek egyedinek kell lennie.</translation> </message> <message> - <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="-93"/> - <source>Required type is %1, but %2 was found.</source> - <translation>%1 a szükséges típus, de %2 található.</translation> + <location line="+179"/> + <source>When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal.</source> + <translation>%1 függvény minta belsejében történő illesztésekor, az argumentumnak változó hivatkozásnak vagy szöveges literálnak kell lennie.</translation> </message> <message> - <location line="+44"/> - <source>Promoting %1 to %2 may cause loss of precision.</source> - <translation>%1 elősegítése %2-re precíziós vesztést okozhat.</translation> + <location line="+11"/> + <source>In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching.</source> + <translation>Egy XSL-T mintában %1 függvény első argumentumának szöveges literálnak kell lennie, ha illesztéshez használjuk.</translation> </message> <message> - <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="-7"/> - <source>It's not possible to add attributes after any other kind of node.</source> - <translation>Nem lehetséges attribútumokat hozzáadni, bármely másik csomópont után.</translation> + <location line="+14"/> + <source>In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching.</source> + <translation>Egy XSL-T mintában %1 függvény első argumentumának szöveges literálnak vagy változó hivatkozásnak kell lennie, ha illesztéshez használjuk.</translation> </message> <message> - <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/> - <source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source> - <translation>Kizárólag a Unicode Kódpontos összevetés támogatott(%1). %2 nem támogatott.</translation> + <location line="+9"/> + <source>In an XSL-T pattern, function %1 cannot have a third argument.</source> + <translation>Egy XSL-T mintában %1 függénynek nem lehet harmadik argumentuma.</translation> </message> <message> - <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="-180"/> - <source>Integer division (%1) by zero (%2) is undefined.</source> - <translation>Egész számos (%1) osztás nullával (%2) nem definiált.</translation> + <location line="+10"/> + <source>In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching.</source> + <translation>Egy XSL-T mintában csak %1 és %2 függvények használhatók illesztéshez, %3 nem.</translation> </message> <message> - <location line="+7"/> - <source>Division (%1) by zero (%2) is undefined.</source> - <translation>Osztás (%1) nullával (%2) nem definiált.</translation> + <location line="+63"/> + <source>In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can.</source> + <translation>Egy XSL-T mintában %1 tengely nem, csak %2 vagy %3 tengely használható.</translation> </message> <message> - <location line="+7"/> - <source>Modulus division (%1) by zero (%2) is undefined.</source> - <translation>Tényezős osztás (%1) nullával (%2) nem definiált.</translation> + <location line="+126"/> + <source>%1 is an invalid template mode name.</source> + <translation>%1 érvénytelen sablon mód név.</translation> </message> - <message numerus="yes"> - <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/> - <source>%1 takes at most %n argument(s). %2 is therefore invalid.</source> - <translation> - <numerusform>%1 legalább %n argumentumot vár. A(z) %2 ennel következtében érvénytelen.</numerusform> - </translation> + <message> + <location line="+44"/> + <source>The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide.</source> + <translation>Egy for-kifejezésben kötött változó nevének különbözőnek kell lennie, mint a pozicionális változó neve. Így a két %1 nevű változó ütközik.</translation> </message> - <message numerus="yes"> - <location line="+11"/> - <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source> - <translation> - <numerusform>%1 legalább %n argumentumot igényel. Ennek következtében a(z) %2 érvénytelen.</numerusform> - </translation> + <message> + <location line="+778"/> + <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source> + <translation>A Schema Validation szolgáltatás nem támogatott. Ennélfogva %1-kifejezések nem használhatók.</translation> </message> <message> - <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+54"/> - <source>The root node of the second argument to function %1 must be a document node. %2 is not a document node.</source> - <translation>A második argumentum rendszergazda csomópontja %1 függvényre dokumentum csomópontnak kell lenni. %2 nem egy dokumentum csomópont.</translation> + <location line="+40"/> + <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source> + <translation>Pragma kifejezések egyike sem támogatott. Ennélfogva léteznie kell egy alapértelmezett kifejezésnek</translation> </message> <message> - <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-3172"/> - <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source> - <translation>A névtér a felhasználó által definiált függvényre nem lehet üres (próbálja ki az előredefiniált %1 előtagot, mely innen esetekre lett kitalálva)</translation> + <location line="+269"/> + <source>Each name of a template parameter must be unique; %1 is duplicated.</source> + <translation>Minden sablonparaméter neve egyedi kell legyen, %1 azonban duplán szerepel.</translation> </message> <message> - <location line="-693"/> - <location line="+10"/> - <source>A default namespace declaration must occur before function, variable, and option declarations.</source> - <translation>Egy alapértelmezett névtér deklarációnak a függvény, változó, és opció deklarációk előtt kell elhelyezkednie.</translation> + <location line="+129"/> + <source>The %1-axis is unsupported in XQuery</source> + <translation>A(z) %1-tengely nem támogatott XQuery-ben</translation> </message> <message> - <location line="+10"/> - <source>Namespace declarations must occur before function, variable, and option declarations.</source> - <translation>A névtér deklarációnak a függvény, változó, és opció deklarációk előtt kell elhelyezkednie.</translation> + <location line="+333"/> + <source>No function with name %1 is available.</source> + <translation>Nem létezik %1 nevű függvény.</translation> </message> <message> - <location line="+11"/> - <source>Module imports must occur before function, variable, and option declarations.</source> - <translation>Modul importálásnak a függvény, változó, és opció deklarációk előtt kell elhelyezkednie.</translation> + <location line="+102"/> + <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source> + <translation>Prefixumhoz kötés esetén a névtér URI nem lehet az üres sztring, %1.</translation> </message> <message> - <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+12"/> - <source>%1 is not a whole number of minutes.</source> - <translation>%1 nem egy egész számú perc érték.</translation> + <location line="+7"/> + <source>%1 is an invalid namespace URI.</source> + <translation>%1 érvénytelen névtér URI.</translation> </message> <message> - <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+60"/> - <source>Attribute %1 can't be serialized because it appears at the top level.</source> - <translation>%1 attribtútumot nem lehet sorozatosítani, mert legfelső szinten tűnik fel.</translation> + <location line="+6"/> + <source>It is not possible to bind to the prefix %1</source> + <translation>Nem lehet kötni %1 prefixumhoz</translation> </message> <message> - <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+344"/> - <source>%1 is an unsupported encoding.</source> - <translation>%1 egy nem támogatott kódolás.</translation> + <location line="+7"/> + <source>Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).</source> + <translation>%1 névtér csak %2-hoz köthető (és minden esetben előre deklarált).</translation> </message> <message> - <location line="+16"/> - <source>%1 contains octets which are disallowed in the requested encoding %2.</source> - <translation>%1 oktálisokat tartalmat, melyek tiltva vannak a lekérdezett %2 kódolásban.</translation> + <location line="+8"/> + <source>Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared).</source> + <translation>%1 prefixum csak %2-hoz köthető (és minden esetben előre deklarált).</translation> </message> <message> - <location line="+18"/> - <source>The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.</source> - <translation>A kódpont %1, mely a %2-ben fordul elő %3 kódolást használva, egy érvénytelen XML karakter.</translation> + <location line="+15"/> + <source>Two namespace declaration attributes have the same name: %1.</source> + <translation>Két névtér-deklaráció attribútum neve azonos: %1.</translation> </message> <message> - <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/> - <source>Ambiguous rule match.</source> - <translation>Bizonytalan szabály egyezés.</translation> + <location line="+89"/> + <source>The namespace URI must be a constant and cannot use enclosed expressions.</source> + <translation>Egy névtér URI-nek konstansnak kell lennie és nem használhat bennfoglalt kifejezéseket.</translation> </message> <message> - <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+69"/> - <source>In a namespace constructor, the value for a namespace cannot be an empty string.</source> - <translation>Egy névtér konstruktorban, egy névtér értéke nem lehet egy üres sztring.</translation> + <location line="+16"/> + <source>An attribute with name %1 has already appeared on this element.</source> + <translation>%1 nevű attribútum már szerepelt ebben az elemben.</translation> </message> <message> - <location line="+11"/> - <source>The prefix must be a valid %1, which %2 is not.</source> - <translation>Az előtagnak egy érvényes %1-nek kell lennie, %2 nem lehet.</translation> + <location line="+61"/> + <source>A direct element constructor is not well-formed. %1 is ended with %2.</source> + <translation>Egy közvetlen elem konstruktor nem jól formázott. %1-t %2 zárja le.</translation> </message> <message> - <location line="+14"/> - <source>The prefix %1 cannot be bound.</source> - <translation>A(z) %1 előtagot nem lehet összekötni.</translation> + <location line="+458"/> + <source>The name %1 does not refer to any schema type.</source> + <translation>A(z) %1 név nem mutat semmilyen séma típusra.</translation> </message> <message> <location line="+10"/> - <source>Only the prefix %1 can be bound to %2 and vice versa.</source> - <translation>Kizárólag a(z) %1 előtagot lehet összekötni a %2-vel és fordítva.</translation> + <source>%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works.</source> + <translation>%1 komplex típus. Komplex típusra való kényszerítés nem lehetséges. Azonban atomi típusokra, mint pl. %2 történő kényszerítés igen.</translation> </message> <message> - <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/> - <source>The parameter %1 is required, but no corresponding %2 is supplied.</source> - <translation>A(z) %1 paraméter követelik, de nincs megelelő %2 támogatás hozzá.</translation> + <location line="+9"/> + <source>%1 is not an atomic type. Casting is only possible to atomic types.</source> + <translation>%1 nem atomi típus. Típuskényszerítés csak atomi típusra történhet.</translation> </message> <message> - <location line="-71"/> - <source>The parameter %1 is passed, but no corresponding %2 exists.</source> - <translation>A(z) %1 paraméter teljesítve, de a megfelelő %2 nem létezik.</translation> + <location line="+76"/> + <source>%1 is not a valid name for a processing-instruction.</source> + <translation>%1 érvénytelen feldogozási utasítás név.</translation> </message> <message> - <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+65"/> - <source>The URI cannot have a fragment</source> - <translation>Az URI nem tartalmaz tördezettséget</translation> + <location line="+69"/> + <location line="+71"/> + <source>%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported.</source> + <translation>%1 nem a láthatóságon belüli attribútum deklarációk között van. A séma import szolgáltatás nem támogatott.</translation> + </message> + <message> + <location line="+48"/> + <source>The name of an extension expression must be in a namespace.</source> + <translation>Egy kiterjesztés kifejezés nevének névtérben kell lennie.</translation> </message> <message> <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/> <source>Element %1 is not allowed at this location.</source> - <translation>%1 elem nincs engedélyezve ezen a ponton.</translation> + <translation>%1 elem nem megengedett ezen a helyen.</translation> </message> <message> <location line="+9"/> <source>Text nodes are not allowed at this location.</source> - <translation>Szöveg csomópontok nincsenek engedélyezve ezen a ponton.</translation> + <translation>Szöveg csomópontok nem megengedettek ezen a helyen.</translation> </message> <message> <location line="+20"/> <source>Parse error: %1</source> - <translation>Elemzési hiba: %1</translation> + <translation>Értelmezési hiba: %1</translation> </message> <message> <location line="+62"/> <source>The value of the XSL-T version attribute must be a value of type %1, which %2 isn't.</source> - <translation>XSLT verzió attribútum értékének %1 típusú értéknek kell lennie, %2 nem lehet.</translation> + <translation>Az XSL-T verzió attribútum értékének %1 típusúnak kell lennie, %2 pedig nem az.</translation> </message> <message> <location line="+20"/> <source>Running an XSL-T 1.0 stylesheet with a 2.0 processor.</source> - <translation>Egy XSLT 1.0 stíluslap egy 2.0 feldolgozóval való futtatása.</translation> + <translation>XSL-T 1.0 stíluslap futtatása 2.0 verziójú feldolgozóval.</translation> </message> <message> <location line="+108"/> <source>Unknown XSL-T attribute %1.</source> - <translation>Ismeretlen XSLT attribútum %1.</translation> + <translation>Ismeretlen XSL-T attributum: %1.</translation> </message> <message> <location line="+23"/> <source>Attribute %1 and %2 are mutually exclusive.</source> - <translation>A(z) %1 és %2 attribútum kölcsönösen kizárják egymást.</translation> + <translation>%1 és %2 attribútumok kölcsönösen kizáróak.</translation> </message> <message> <location line="+166"/> <source>In a simplified stylesheet module, attribute %1 must be present.</source> - <translation>Egy leegyszerűsített stíluslap modulban, %1 attribútumot kell nyújtani.</translation> + <translation>Egy egyszerűsített stíluslap modulban a(z) %1 attribútumnak jelen kell lennie.</translation> </message> <message> <location line="+72"/> <source>If element %1 has no attribute %2, it cannot have attribute %3 or %4.</source> - <translation>Ha a(z) %1 elem nem tartalmaz %2 attribútumot, akkor nem tartalmazhat %3 vagy %4 attribútumot.</translation> + <translation>Ha %1 elemnek nincs %2 attribútuma, akkor %3 vagy %4 attribútuma sem lehet.</translation> </message> <message> <location line="+9"/> <source>Element %1 must have at least one of the attributes %2 or %3.</source> - <translation>%1 elemnek legalább egy %2 vagy %3 attribútumot kell tartalmaznia.</translation> + <translation>%1 elemnek valamelyik attribútumát meg kell adni %2 vagy %3 közül.</translation> </message> <message> <location line="+28"/> <source>At least one mode must be specified in the %1-attribute on element %2.</source> - <translation>Legalább egy csomópontot meg kell határozni a(z) %1 attribútumban a(z) %2 elemen.</translation> + <translation>%2 elem %1-attribútumában legalább egy módot meg kell adni.</translation> </message> <message> <location line="+123"/> <source>Element %1 must come last.</source> - <translation>%1 elemnek kell utoljára következnie.</translation> + <translation>%1 elemnek az utoljára kell szerepelnie.</translation> </message> <message> <location line="+24"/> <source>At least one %1-element must occur before %2.</source> - <translation>Legalább egy %1 elemnek kell előfordulnia %2 előtt.</translation> + <translation>Legalább egy %1-elemnek szerepelnie kell %2 előtt.</translation> </message> <message> <location line="+7"/> <source>Only one %1-element can appear.</source> - <translation>Csak egy %1 elem jelenhet meg.</translation> + <translation>Csak egy %1-elem jelenhet meg.</translation> </message> <message> <location line="+31"/> <source>At least one %1-element must occur inside %2.</source> - <translation>Legalább egy %1 elem fordulhat elő %2-n belül.</translation> + <translation>Legalább egy %1-elemnek meg kell jelennie %2-n belül.</translation> </message> <message> <location line="+58"/> <source>When attribute %1 is present on %2, a sequence constructor cannot be used.</source> - <translation>Mikor %1 attribútuk van benyújtva %2-n, egy sorozat konstruktort nem lehet használni.</translation> + <translation>Ha %2-n meg van adva %1 attribútum, akkor nem használható szekvencia konstruktor.</translation> </message> <message> <location line="+13"/> <source>Element %1 must have either a %2-attribute or a sequence constructor.</source> - <translation>%1 elemnek vagy egy %2 attribútumot vagy egy sorozat konstruktort kell tartalmaznia.</translation> + <translation>%1 elemnek vagy %2-attribútumának vagy szekvencia konstruktorának lennie kell.</translation> </message> <message> <location line="+125"/> <source>When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor.</source> - <translation>Amikor egy paramétert igényel, egy alapértelmezett érték ellátni egy %1 attribútum vagy egy sorozat konstruktoron keresztül.</translation> + <translation>Ha paraméter az elvárt, akkor alapértelmezett értéket nem lehet %1-attribútumon vagy szekvencia konstruktoron keresztül átadni.</translation> </message> <message> <location line="+270"/> <source>Element %1 cannot have children.</source> - <translation>%1 elem nem tartalmazhat gyereket.</translation> + <translation>%1 elemnek nem lehetnek gyermekei.</translation> </message> <message> <location line="+434"/> <source>Element %1 cannot have a sequence constructor.</source> - <translation>%1 elem nem tartalmazhat egy sorozat konstruktort.</translation> + <translation>%1 elemnek nem lehet szekvencia konstruktora.</translation> </message> <message> <location line="+86"/> <location line="+9"/> <source>The attribute %1 cannot appear on %2, when it is a child of %3.</source> - <translation>A(z) %1 attribútum nem jelenhet meg %2-n, mikor egy %3 gyereke.</translation> + <translation>%1 attribútum nem szerepelhet %2-n, ha az %3 gyermeke.</translation> </message> <message> <location line="+15"/> <source>A parameter in a function cannot be declared to be a tunnel.</source> - <translation>Egy paramétert nem lehet behangoltnak deklarálni egy függvényben.</translation> + <translation>Egy függvényparaméter nem definiálható mint tunnel.</translation> </message> <message> <location line="+149"/> <source>This processor is not Schema-aware and therefore %1 cannot be used.</source> - <translation>Ez a feldolgozó nem terv biztos és ennek következtében a(z) %1-t nem lehet használni.</translation> + <translation>Ez a feldolgozó nem sémafüggő, ezért %1 nem használható.</translation> </message> <message> <location line="+57"/> <source>Top level stylesheet elements must be in a non-null namespace, which %1 isn't.</source> - <translation>Felső szintű stíluslap elemeknek nem szabad egy nem nulla névtérnek lenniük, %1 nem jó.</translation> + <translation>Felső szintű stíluslap elemeknek egy nem üres névtérben kell lenniük, ezért %1 nem jó.</translation> </message> <message> <location line="+48"/> <source>The value for attribute %1 on element %2 must either be %3 or %4, not %5.</source> - <translation>%1 attribútum értékének a(z) %2-s elemen vagy %3 vagy %4, vagy %5-nek kell lennie.</translation> + <translation>%2 elem %1 attribútumának értéke %3 vagy %4 kell legyen, de nem %5.</translation> </message> <message> <location line="+20"/> <source>Attribute %1 cannot have the value %2.</source> - <translation>%1 attribútum nem tartalmazhat %2 értéket.</translation> + <translation>%1 attribútum értéke nem lehet %2.</translation> </message> <message> <location line="+58"/> <source>The attribute %1 can only appear on the first %2 element.</source> - <translation>A(z) %1 attribútum kizárólag az első %2 elemen tűnhet fel.</translation> + <translation>%1 attribútum csak az első %2 elem esetén jelenhet meg.</translation> </message> <message> <location line="+99"/> <source>At least one %1 element must appear as child of %2.</source> - <translation>Legalább egy %1 elemnek mutatkoznia %2 gyerekeként.</translation> + <translation>Legalább egy %1 elemnek %2 gyermekeként meg kell jelennie.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/schema/qxsdparticlechecker.cpp" line="+165"/> + <source>Empty particle cannot be derived from non-empty particle.</source> + <translation>Üres részecske nem származtatható nem üres részecskéből.</translation> + </message> + <message> + <location line="+15"/> + <source>Derived particle is missing element %1.</source> + <translation>Származtatott részecskéből hiányzik %1 elem.</translation> + </message> + <message> + <location line="+7"/> + <source>Derived element %1 is missing value constraint as defined in base particle.</source> + <translation>%1 származtatott elemből hiányzik az ős részecskében definiált érték megszorítás.</translation> + </message> + <message> + <location line="+5"/> + <source>Derived element %1 has weaker value constraint than base particle.</source> + <translation>%1 származtatott elem érték megkötése gyengébb, mint az ős részecskéé.</translation> + </message> + <message> + <location line="+7"/> + <source>Fixed value constraint of element %1 differs from value constraint in base particle.</source> + <translation>%1 elem rögzített érték megkötése különbözik az ős részecskében megadott érték megkötéstől.</translation> + </message> + <message> + <location line="+7"/> + <source>Derived element %1 cannot be nillable as base element is not nillable.</source> + <translation>%1 elem nem lehet nil-feltételű, mert az ős eleme sem nil-feltételű.</translation> + </message> + <message> + <location line="+10"/> + <source>Block constraints of derived element %1 must not be more weaker than in the base element.</source> + <translation>%1 származtatott elem blokk megkötései nem lehetnek gyengébbek, mint az ős elemben.</translation> + </message> + <message> + <location line="+11"/> + <source>Simple type of derived element %1 cannot be validly derived from base element.</source> + <translation>%1 származtatott elem egyszerű típusa nem származtatható érvényesen az ős elemből.</translation> + </message> + <message> + <location line="+5"/> + <source>Complex type of derived element %1 cannot be validly derived from base element.</source> + <translation>%1 származtatott elem komplex típusa nem származtatható érvényesen az ős elemből.</translation> + </message> + <message> + <location line="+24"/> + <source>Element %1 is missing in derived particle.</source> + <translation>%1 elem hiányzik a származtatott részecskéből.</translation> + </message> + <message> + <location line="+18"/> + <source>Element %1 does not match namespace constraint of wildcard in base particle.</source> + <translation>%1 elem nem illeszkedik az ős részecskében megadott névtér helyettesítő mintájára.</translation> + </message> + <message> + <location line="+11"/> + <source>Wildcard in derived particle is not a valid subset of wildcard in base particle.</source> + <translation>Származtatott részecske helyettesítő mintája érvénytelen részhalmaza az ős részecske helyettesítő mintájának.</translation> + </message> + <message> + <location line="+5"/> + <source>processContent of wildcard in derived particle is weaker than wildcard in base particle.</source> + <translation>Származtatott elem mintájának processContent értéke gyengébb, mint az ős részecske mintája.</translation> + </message> + <message> + <location line="+240"/> + <source>Derived particle allows content that is not allowed in the base particle.</source> + <translation>Származtatott részecske olyan tartalmat is engedélyez, ami nem megengedett az ős részecskében.</translation> </message> <message> <location filename="../src/xmlpatterns/schema/qxsdschemachecker.cpp" line="+227"/> <source>%1 has inheritance loop in its base type %2.</source> - <translation>%1 tartalmaz egy öröklődési hurkot annak %2 alaptípusában.</translation> + <translation>%1 öröklődési hurkot tartalmaz %2 szülő típusában.</translation> </message> <message> <location line="+5"/> <location line="+24"/> <source>Circular inheritance of base type %1.</source> - <translation>A(z) %1 alaptípus cirkuláris öröklődése.</translation> + <translation>Körkörös %1 őstípusú öröklődés.</translation> </message> <message> <location line="+11"/> <source>Circular inheritance of union %1.</source> - <translation>A(z) %1 union cirkuláris öröklődése.</translation> + <translation>%1 union körkörös öröklődése.</translation> </message> <message> <location line="+25"/> <source>%1 is not allowed to derive from %2 by restriction as the latter defines it as final.</source> - <translation>A(z) %1 %2-ből való származtatása nem megengedett, azzal a korlátozassal, hogy az utóbbi utolsónak definiálja.</translation> + <translation>%1 nem származhat %2-ből megkötéssel, mert utóbbi final-ként definiálja.</translation> </message> <message> <location line="+5"/> <source>%1 is not allowed to derive from %2 by extension as the latter defines it as final.</source> - <translation>%1-nek nem engedélyezett a %2-ből való származtatása, azzal a kiegészítéssel, hogy a utóbbi végsőnek definiálja.</translation> + <translation>%1 nem származhat %2-ből kiterjesztéssel, mert utóbbi final-ként definiálja.</translation> </message> <message> <location line="+31"/> <source>Base type of simple type %1 cannot be complex type %2.</source> - <translation>A(z) %1 egyszerű típus alaptípusa nem lehet egy %2 összetett típus.</translation> + <translation>%1 egyszerű típus őstípusa nem lehet %2 komplex típus.</translation> </message> <message> <location line="+9"/> <source>Simple type %1 cannot have direct base type %2.</source> - <translation>A(z) %1 egyszerű típus nem tartalmazhat közvetlen %2 alap típust.</translation> + <translation>%1 egyszerű típus közvetlen őstípusa nem lehet %2.</translation> </message> <message> <location line="+33"/> <location line="+9"/> <source>Simple type %1 is not allowed to have base type %2.</source> - <translation>%1 egyszerű típusnak nincs engedélyezve, hogy %2 alap típusokat tartalmazzon.</translation> + <translation>%1 egyszerű típus őstípusa nem lehet %2.</translation> </message> <message> <location line="+12"/> <source>Simple type %1 can only have simple atomic type as base type.</source> - <translation>A(z) %1 egyszerű típus kizárólag egyszerű atomikus típusokat tartalmazhat alaptípusként.</translation> + <translation>%1 egyszerű típus őse csak egyszerű atomi típus lehet.</translation> </message> <message> <location line="+6"/> <source>Simple type %1 cannot derive from %2 as the latter defines restriction as final.</source> - <translation>%1 egyszerű típus nem származtatható %2-ből, mint ahogy az utóbbi végső korlátozásokat definiál.</translation> + <translation>%1 nem származhat %2-ből, mert utóbbi final megkötést definiál.</translation> </message> <message> <location line="+13"/> <location line="+484"/> <source>Variety of item type of %1 must be either atomic or union.</source> - <translation>%1 elemtípus különbözőségeinek vagy vagy atomikus vagy unionnak kell lenni.</translation> + <translation>%1 elemtípus választéka csak atomic vagy union lehet.</translation> </message> <message> <location line="-474"/> <location line="+483"/> <source>Variety of member types of %1 must be atomic.</source> - <translation>%1 tagtípusok különbözőségének atomikusnak kell lennie.</translation> + <translation>%1 tagtípusok választéka csak atomi lehet.</translation> </message> <message> <location line="-470"/> <location line="+451"/> <source>%1 is not allowed to derive from %2 by list as the latter defines it as final.</source> - <translation>%1 származtatása a(z) %2-ből nem engedélyezett, listázva azt, hogy az utóbbi végsőként definiálja.</translation> + <translation>%1 nem származhat %2-ből listával, mert utóbbi final-ként definiálja.</translation> </message> <message> <location line="-431"/> <source>Simple type %1 is only allowed to have %2 facet.</source> - <translation>%1 egyszerű típus kizárólag %2 oldalt tartalmazhat.</translation> + <translation>%1 egyszerű típusnak csak %2 facet-je lehet.</translation> </message> <message> <location line="+10"/> <source>Base type of simple type %1 must have variety of type list.</source> - <translation>%1 egyszerű típus alap típusának különböző típus listákat kell tartalmaznia.</translation> + <translation></translation> </message> <message> <location line="+6"/> <source>Base type of simple type %1 has defined derivation by restriction as final.</source> - <translation>%1 egyszerű típus alaptípusa definiálja a számaztatást végső korlátozással.</translation> + <translation>%1 egyszerű típus őstípusa a megkötéssel történő származtatást final-ként definiálta.</translation> </message> <message> <location line="+6"/> <source>Item type of base type does not match item type of %1.</source> - <translation>Az alap típus elem típusa nem egyezik a(z) %1 elemtípusával. </translation> + <translation>Az ős típusa nem egyezik %1 elemtípussal.</translation> </message> <message> <location line="+26"/> <location line="+93"/> <source>Simple type %1 contains not allowed facet type %2.</source> - <translation>%1 egyszerű típus nem engedélyezett oldal %2 típusokat tartalmaz.</translation> + <translation>%1 egyszerű típus nem megengedett %2 facet típust tartalmaz.</translation> </message> <message> <location line="-72"/> <location line="+413"/> <source>%1 is not allowed to derive from %2 by union as the latter defines it as final.</source> - <translation>%1 %2-ből történő származtatása nem engedélyezett az unió által, az utóbbi végsőként definiálja.</translation> + <translation>%1 nemm származhat %2-ből union-nal, mert utóbbi final-ként definiálta.</translation> </message> <message> <location line="-404"/> <source>%1 is not allowed to have any facets.</source> - <translation>%1 nem tartalmazhat semmilyen oldalt.</translation> + <translation>%1 nem birtokolhat facet-eket.</translation> </message> <message> <location line="+8"/> <source>Base type %1 of simple type %2 must have variety of union.</source> - <translation>%2 egyszerű típus %1 alap típusának különböző egységeket kell tartalmaznia.</translation> + <translation>%2 típusú %1 őstípusnak union választéka kell legyen.</translation> </message> <message> <location line="+9"/> <source>Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute.</source> - <translation>%2 egyszerű típus %1 alap típusa nem tartalmazhat korlátozásokat a %3 attribútumban.</translation> + <translation>%2 egyszerű típusú %1 őstípusnak nem lehet megkötést adni %3 attribútumban.</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>%1 tag típus nem származtatható a(z) %3 %4 alap típusának %2 tagtípusából.</translation> + <translation>%1 tag típus nem származhat %2 tag típusból, %3-nak %4 őstípusából.</translation> </message> <message> <location line="+65"/> <source>Derivation method of %1 must be extension because the base type %2 is a simple type.</source> - <translation>%1 származtatása eljárásának kiterjesztésnek kell lennie, mert %2 alap típus egy egyszerű típus.</translation> + <translation>%1 származtatási módja kiterjesztés kell legyen, mert %2 őstípus egyszerű típus.</translation> </message> <message> <location line="+30"/> <source>Complex type %1 has duplicated element %2 in its content model.</source> - <translation>A(z) %1 összetett típusnak duplikáns %2 eleme van a tartalmi modellében.</translation> + <translation>%1 komplex típus tartalom modelljében %2 elem duplán szerepel.</translation> </message> <message> <location line="+8"/> <source>Complex type %1 has non-deterministic content.</source> - <translation>%1 összetett típusnak nincsen meghatározott tartalma.</translation> + <translation>%1 komplex típus tartalma nem determinisztikus.</translation> </message> <message> <location line="+21"/> <source>Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3.</source> - <translation>%1 összetett típus attribútumai a(z) %2 alap típus attribútumainak nem érvényes kiterjesztései: %3.</translation> + <translation>%1 komplex típus attribútumai nem érvényes kiterjesztései %2 őstípus attribútumainak: %3.</translation> </message> <message> <location line="+37"/> <source>Content model of complex type %1 is not a valid extension of content model of %2.</source> - <translation>%1 komplex típus tartalmi modelle a(z) %2 tartalmi modellének nem egy érvényes kiterjesztése.</translation> + <translation>%1 komplex típus tartalom modellje nem érvényes kiterjesztése %2 tartalom modelljének.</translation> </message> <message> <location line="+10"/> <source>Complex type %1 must have simple content.</source> - <translation>%1 komplex típusnak tartalmaznia kell egy egyszerű tartalmat.</translation> + <translation>%1 komplex típusnak egyszerű tartalma kell legyen.</translation> </message> <message> <location line="+7"/> <source>Complex type %1 must have the same simple type as its base class %2.</source> - <translation>%1 komplex típusnak ugyanazt az egyszerű típust kell tartalmaznia a(z) %2 alap osztálya számára.</translation> + <translation>%1 komplex típusnak ugyanazzal az egyszerű típussal kell rendelkeznie, mint %2 ősosztályának.</translation> </message> <message> <location line="+67"/> <source>Complex type %1 cannot be derived from base type %2%3.</source> - <translation>%1 komplex típus nem származtatható a(z) %2%3 alap típusból.</translation> + <translation>%1 komplex típus nem származhat %2%3 őstípusból.</translation> </message> <message> <location line="+14"/> <source>Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3.</source> - <translation>%1 komplex típus attribútumai nem egy érvényes korlátozások a(z) %2 alap típus attribútumaitól: %3.</translation> + <translation>%1 komplex típus attribútumai nem érvényes megszorítások %2 őstípus attribútumai alapján: %3.</translation> </message> <message> <location line="+14"/> <source>Complex type %1 with simple content cannot be derived from complex base type %2.</source> - <translation>%1 komplex típus egyszerű tartalommal nem származtatható %2 komplex alap típusból.</translation> + <translation>%1 egyszerű tartalmú komplex típus nem származhat %2 komplex típusból.</translation> </message> <message> <location line="+35"/> <source>Item type of simple type %1 cannot be a complex type.</source> - <translation>A(z) %1 egyszerű típus elemi típusa nem lehet egy komplex típus.</translation> + <translation>%1 egyszerű típusú elem típusa nem lehet komplex típus.</translation> </message> <message> <location line="+44"/> <source>Member type of simple type %1 cannot be a complex type.</source> - <translation>%1 egyszerű típus tag típusa nem lehet egy komplex típus.</translation> + <translation>%1 egyszerű típusú tag típus nem lehet komplex típus.</translation> </message> <message> <location line="+8"/> <source>%1 is not allowed to have a member type with the same name as itself.</source> - <translation>%1 nem engedélyzett, hogy tartalmazzon egy tag típust ugyanazzal a névvel, mint a saját neve.</translation> + <translation>%1 nem tartalmazhat olyan tag típust, melynek neve egyezik önmaga nevével.</translation> </message> <message> <location line="+83"/> <location line="+29"/> <location line="+34"/> <source>%1 facet collides with %2 facet.</source> - <translation>%1 oldal ütközik a(z) %2 oldallal.</translation> + <translation>%1 facet ütközik %2 facet-tel.</translation> </message> <message> <location line="-20"/> <source>%1 facet must have the same value as %2 facet of base type.</source> - <translation>%1 oldalnak ugyanazt az értéket kell tartalmaznia, mint az alap típus %2 oldalának.</translation> + <translation>%1 facet-nek %2 facet-ével azonos őstípusú értéke kell legyen.</translation> </message> <message> <location line="+37"/> <source>%1 facet must be equal or greater than %2 facet of base type.</source> - <translation>%1 oldalnak nagyobbnak vagy egyenlőnek kell lennie, mint az alap típus %2 oldalának.</translation> + <translation>%1 facet-nek egyenlőnek vagy nagyobbnak kell lennie %2 facet-nél őstípus alapján.</translation> </message> <message> <location line="+19"/> @@ -9326,541 +12497,319 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location line="+34"/> <location line="+35"/> <source>%1 facet must be less than or equal to %2 facet of base type.</source> - <translation>%1 oldalnal kisebb vagy egyenlőnek kell lennie az alap típus %2 oldalánál.</translation> + <translation>%1 facet-nek egyenlőnek vagy kisebbnek kell lennie %2 facet-nél őstípus alapján.</translation> </message> <message> <location line="-389"/> <source>%1 facet contains invalid regular expression</source> - <translation>%1 oldal érvénytelen reguláris kifejezéseket tartalmaz</translation> + <translation>%1 facet érvénytelen reguláris kifejezést tartalmaz</translation> </message> <message> <location line="+15"/> <source>Unknown notation %1 used in %2 facet.</source> - <translation>%1 ismeretlen jelölési mód van használva a(z) %2 oldalon.</translation> + <translation>Ismeretlen jelölés %1 a(z) %2 facet-ben.</translation> </message> <message> <location line="+20"/> <source>%1 facet contains invalid value %2: %3.</source> - <translation>%1 oldal érvénytelen %2 értéket tartalmaz: %3.</translation> + <translation>%1 facet értéke érvénytelen %2: %3.</translation> </message> <message> <location line="+22"/> <source>%1 facet cannot be %2 or %3 if %4 facet of base type is %5.</source> - <translation>%1 oldal nem lehet %2 vagy %3, ha az alap típus %4 oldala %5.</translation> + <translation>%1 facet nem lehet %2 vagy %3, ha %4 facet, mint őstípus %5.</translation> </message> <message> <location line="+11"/> <source>%1 facet cannot be %2 if %3 facet of base type is %4.</source> - <translation>%1 oldal nem lehet %2, ha az alap típus %3 oldala %4.</translation> + <translation>%1 facet nem lehet %2, ha %3 facet, mint őstípus %4.</translation> </message> <message> <location line="+20"/> <location line="+55"/> <location line="+230"/> <source>%1 facet must be less than or equal to %2 facet.</source> - <translation>%1 oldalnak kisebb egyenlőnek kell lennie a(z) %2 oldalnál.</translation> + <translation>%1 facet-nek kisebbnek vagy egyenlőnek kell lennie, mint %2 facet.</translation> </message> <message> <location line="-257"/> <location line="+134"/> <location line="+82"/> <source>%1 facet must be less than %2 facet of base type.</source> - <translation>%1 oldalnak kisebbnek kell lennie az alap típus %2 oldalánál.</translation> + <translation>%1 facet-nek kisebbnek kell lennie %2 facet-nél, mint őstípusnál.</translation> </message> <message> <location line="-201"/> <location line="+79"/> <source>%1 facet and %2 facet cannot appear together.</source> - <translation>%1 oldal és %2 oldal nem fordulhat elő együtt.</translation> + <translation>%1 és %2 facet-ek nem jelenhetnek meg együttesen.</translation> </message> <message> <location line="-27"/> <location line="+12"/> <location line="+113"/> <source>%1 facet must be greater than %2 facet of base type.</source> - <translation>%1 oldalnak nagyobbnak kell lennie, mint az alaptípus %2 oldalának.</translation> + <translation>%1 facet-nek nagyobbnak kell lennei, %2 facet-nél, mint őstípusnál.</translation> </message> <message> <location line="-86"/> <location line="+58"/> <source>%1 facet must be less than %2 facet.</source> - <translation>%1 oldalnak kisebbnek kell lenni a(z) %2 oldalnál.</translation> + <translation>%1 facet kisebb kell legyen, mint %2 facet.</translation> </message> <message> <location line="-42"/> <location line="+58"/> <source>%1 facet must be greater than or equal to %2 facet of base type.</source> - <translation>%1 oldalnak nagyobb vagy egyenlőnek kell lennie az alap típus %2 oldalánál.</translation> + <translation>%1 facet-nek egyenlőnek vagy nagyobbnak kell lennie %2 facet-nél mint őstípusnál.</translation> </message> <message> <location line="+113"/> <source>Simple type contains not allowed facet %1.</source> - <translation>Egyszerű típus nem tartalmazhat %1 oldalt.</translation> + <translation>Egyszerű típus nem megengedett %1 facet-et tartalmaz.</translation> </message> <message> <location line="+12"/> <source>%1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list.</source> - <translation>%1, %2, %3, %4, %5 és %6 oldalak nem engedélyezettek listáról származtatáskor.</translation> + <translation>%1, %2, %3, %4, %5 és %6 facet-ek nem megengedettek, ha lista alapján származtatunk.</translation> </message> <message> <location line="+16"/> <source>Only %1 and %2 facets are allowed when derived by union.</source> - <translation>Csak a(z) %1 és %2 oldalak engedélyezettek union származtatásakor.</translation> + <translation>Csak %1 és %2 facet-ek engedélyezettek union típusú származtatás esetén.</translation> </message> <message> <location line="+23"/> <location line="+16"/> <source>%1 contains %2 facet with invalid data: %3.</source> - <translation>%1 %2 oldalt tartalmaz érvénytelen adattal: %3.</translation> + <translation>%1 érvénytelen adattartalmú %2 facet-et tartalmaz: %3.</translation> </message> <message> <location line="+24"/> <source>Attribute group %1 contains attribute %2 twice.</source> - <translation>A(z) %1 attribútum csoport a(z) %2 attribútumot kétszer tartalmazza.</translation> + <translation>%1 attribútum csoport kétszer tartalmazza %2 attribútumot.</translation> </message> <message> <location line="+9"/> <source>Attribute group %1 contains two different attributes that both have types derived from %2.</source> - <translation>A(z) %1 attribútum csoport két különböző attribútumot tartalmaz, melyek közül mindkettő %2-ból számaztatott típusokat tartalmaz.</translation> + <translation>%1 attribútum csoport két különböző attribútumot tartalmaz, melyek típusa %2-ből származtatott.</translation> </message> <message> <location line="+8"/> <source>Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3.</source> - <translation>A(z) %1 attribútum csoport %2 attribútumot tartalmaz, amely olyan megszorított értéket tartalmaz, kivéve a típust, amit %3-ból örököl.</translation> + <translation>%1 attribútum csoport %2 attribútumot tartalmaz, aminek érték megkötése van, de típusa %3-ból származik.</translation> </message> <message> <location line="+23"/> <source>Complex type %1 contains attribute %2 twice.</source> - <translation>A(z) %1 összetett típus %2 attribútumot tartalmazza kétszer.</translation> + <translation>%1 komplex típus %2 attribútumot kétszer tartalmazza.</translation> </message> <message> <location line="+9"/> <source>Complex type %1 contains two different attributes that both have types derived from %2.</source> - <translation>%1 komplex típus két különböző attribútumot tartalmaz, amelyek közül mindkettő %2-ból származtatott típusokat tartalmaz.</translation> + <translation>%1 komplex típus két különböző attribútumot tartalmaz, melyek típusa %2-ből származtatott.</translation> </message> <message> <location line="+8"/> <source>Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3.</source> - <translation>%1 kompex típus %2 attribútumot tartalmaz, aminek megszorító értéke van, kivéve a típust, amit a(z) %3-ból örököl.</translation> + <translation>%1 komplex típus %2 attribútumot tartalmaz, aminek érték megkötése van, de típusa %3-ból származik.</translation> </message> <message> <location line="+43"/> <source>Element %1 is not allowed to have a value constraint if its base type is complex.</source> - <translation>%1 elem nem tartalmazhat egy korlátozott értéket, ha az alaptípusa komplex.</translation> + <translation>%1 elemre nem lehet érték megkötés, ha őstípusa komplex.</translation> </message> <message> <location line="+7"/> <source>Element %1 is not allowed to have a value constraint if its type is derived from %2.</source> - <translation>%1 elem nem tartalmazhat egy korlátozott értéket, ha a típusa a(z) %2-ből származik.</translation> + <translation>%1 elemre nem lehet érték megkötés, ha típusa %2-ből származtatott.</translation> </message> <message> <location line="+10"/> <location line="+11"/> <source>Value constraint of element %1 is not of elements type: %2.</source> - <translation>%1 elem korlátozó értéke nem elemi típus: %2.</translation> + <translation>%1 elem érték megkötése nem a következő elemtípusú: %2.</translation> </message> <message> <location line="+13"/> <source>Element %1 is not allowed to have substitution group affiliation as it is no global element.</source> - <translation>%1 elem nem tartalmazhat helyettesítési csoport egyesítést, mert nem egy globális elem.</translation> + <translation>%1 elemnek nem lehet helyettesítő csoport kapcsolata, mivel nem globális elem.</translation> </message> <message> <location line="+28"/> <source>Type of element %1 cannot be derived from type of substitution group affiliation.</source> - <translation>%1 elem típus nem származtatható helyettesítési csoport egyesítési típusból.</translation> + <translation>%1 elem típusa nem származhat helyettesítő csoport kapcsolat típusból.</translation> </message> <message> <location line="+41"/> <source>Value constraint of attribute %1 is not of attributes type: %2.</source> - <translation>%1 attribútum korlátozó értéke nem attribútum típus: %2.</translation> + <translation>%1 attribútum érték megkötése nem az attribútum típusával egyező: %2.</translation> </message> <message> <location line="+9"/> <source>Attribute %1 has value constraint but has type derived from %2.</source> - <translation>%1 attribútumnak korlátozó értéke van, de %2-ből származtatott típust tartalmaz.</translation> + <translation>%1 attribútumnak érték megkötése van, de típusa %2-ből származtatott.</translation> </message> <message> <location line="+56"/> <source>%1 attribute in derived complex type must be %2 like in base type.</source> - <translation>%1 attribútum egy származtatott komplex típusban %2-nek kell lennie, mint az alap típusban.</translation> + <translation>%1 attribútumnak %2-nek kell lennie a származtatott komplex típusban, úgy mint az őstípusban.</translation> </message> <message> <location line="+11"/> <source>Attribute %1 in derived complex type must have %2 value constraint like in base type.</source> - <translation>A származtatott komplex típusban levő %1 attribútumnak %2 érték korlátozót kell tartalmaznia, mint az alap típusban.</translation> + <translation>Származtatott komplex típusban %1 attribútumnak %2 érték megkötésének kell lennie, mint az őstípusban.</translation> </message> <message> <location line="+9"/> <source>Attribute %1 in derived complex type must have the same %2 value constraint like in base type.</source> - <translation>Származtatott komplex típusban levő %1 attribútumnak ugyanazt a(z) %2 korlátozott értéket kell tartalmaznia, mint az alap típusban.</translation> + <translation>Származtatott komplex típusban %1 attribútumnak %2 érték megkötésének kell lennie, mint az őstípusban.</translation> </message> <message> <location line="+7"/> <source>Attribute %1 in derived complex type must have %2 value constraint.</source> - <translation>Származtatott komplex típusban levő %1 attribútumnak %2 érték korlátozót kell tartalmaznia.</translation> + <translation>Származtatott komplex típus %1 attribútumának %2 érték megkötésének kell lennie.</translation> </message> <message> <location line="+18"/> <source>processContent of base wildcard must be weaker than derived wildcard.</source> - <translation>Az alap helyettesítő jel folyamat tartalma gyengébb kell legyen, mint a származtatott helyettesítő jel.</translation> + <translation>Az ős helyettesítő kifejezésének processContent-je gyengébb kell legyen, mint a származtatott helyettesítő.</translation> </message> <message> <location line="+39"/> <location line="+15"/> <source>Element %1 exists twice with different types.</source> - <translation>%1 elem kétszer létezik különböző típusokkal.</translation> + <translation>%1 elem kétszer létezik eltérő típussal.</translation> </message> <message> <location line="+28"/> <source>Particle contains non-deterministic wildcards.</source> - <translation>A részecske nem meghatározott helyettesítő jeleket tartalmaz.</translation> + <translation>A részecske nem determinisztikus helyettesítőket tartalmaz.</translation> </message> <message> <location filename="../src/xmlpatterns/schema/qxsdschemahelper.cpp" line="+691"/> <location line="+63"/> <source>Base attribute %1 is required but derived attribute is not.</source> - <translation>A(z) %1 alap attribútum szükséges, de a származtatott attribútum nem.</translation> + <translation>%1 ős attribútum megkövetelt, de a származtatott nem.</translation> </message> <message> <location line="-57"/> <source>Type of derived attribute %1 cannot be validly derived from type of base attribute.</source> - <translation>A(z) %1 származtatott attribútum típusa nem lehet érvényesen származtatni az alap attribútum típusból.</translation> + <translation>%1 származtatott attribútum típusa nem származtatható érvényesen az ős attribútum típusából.</translation> </message> <message> <location line="+28"/> <source>Value constraint of derived attribute %1 does not match value constraint of base attribute.</source> - <translation>'%1 származtatott attribútum érték korlátozója nem egyezik az alap attribútum érték korlátozójával.</translation> + <translation>%1 származtatott attribútum érték megkötése nem egyezik az ős attribútuméval.</translation> </message> <message> <location line="+5"/> <source>Derived attribute %1 does not exist in the base definition.</source> - <translation>%1 származtatott attribútum nem létezik az alap definícióban.</translation> + <translation>%1 származtatott attribútum nem létezik az ős definíciójában.</translation> </message> <message> <location line="+11"/> <source>Derived attribute %1 does not match the wildcard in the base definition.</source> - <translation>%1 származtatott attribútum nem egyezik a helyettesítő jellel az alap definícióban.</translation> + <translation>%1 származtatott attribútum nem illeszkedik az ősben megadott helyettesítőre.</translation> </message> <message> <location line="+17"/> <source>Base attribute %1 is required but missing in derived definition.</source> - <translation>%1 alap attribútum szükséges, de hiáynzik a származtatott definícióban.</translation> + <translation>%1 ős attribútum megkövetelt, de hiányzik a leszármazott definíciójából.</translation> </message> <message> <location line="+9"/> <source>Derived definition contains an %1 element that does not exists in the base definition</source> - <translation>A származtatot definíció egy %1 elemet tartalmaz, ami nem létezik az alap definícióban</translation> + <translation>A leszármazott definíciója olyan %1 elemet tartalmaz, ami nem létezik az ős definíciójában</translation> </message> <message> <location line="+5"/> <source>Derived wildcard is not a subset of the base wildcard.</source> - <translation>Származtatott helyettesítőjel nem az alap helyettesítőjel egy részhalmaza.</translation> + <translation>A származtatott helyettesítő nem részhalmaza az ősnek.</translation> </message> <message> <location line="+5"/> <source>%1 of derived wildcard is not a valid restriction of %2 of base wildcard</source> - <translation>Származtaott helyettesítő jel %1-e nem az alap helyettesítőjel %2-nek egy érvényes korlátozója</translation> + <translation>Leszármazott helyettesítő %1 része nem érvényes korlátozása az ős %2 részének</translation> </message> <message> <location line="+23"/> <source>Attribute %1 from base type is missing in derived type.</source> - <translation>Az alap típus %1 attribútuma hiányzik a származtatott típusban.</translation> + <translation>Az őstípus %1 attribútuma hiányzik a származtatott típusból.</translation> </message> <message> <location line="+5"/> <source>Type of derived attribute %1 differs from type of base attribute.</source> - <translation>A(z) %1 származtatott típus az alap attribútum típusától különbözik.</translation> + <translation>%1 származtatott attribútum típusa eltér az ős attribútum típusától.</translation> </message> <message> <location line="+8"/> <source>Base definition contains an %1 element that is missing in the derived definition</source> - <translation>Az alap definíció egy %1 elemet tartalmaz, ami hiányzik a származtatott definícióból</translation> - </message> - <message> - <location filename="../src/xmlpatterns/schema/qxsdschemaresolver.cpp" line="+354"/> - <source>%1 references unknown %2 or %3 element %4.</source> - <translation>%1 ismeretlen %2 vagy %3 elemre hivatkozik %4.</translation> - </message> - <message> - <location line="+10"/> - <source>%1 references identity constraint %2 that is no %3 or %4 element.</source> - <translation>%1 %2 indentitás korlátozóra hivatkozik, ami nem %3 vagy %4 elem.</translation> - </message> - <message> - <location line="+10"/> - <source>%1 has a different number of fields from the identity constraint %2 that it references.</source> - <translation>%1 mezők egy különböző számát tartalmazza a(z) %2 indetitás korlátozóbol, amelyik erre hivatkozik.</translation> - </message> - <message> - <location line="+23"/> - <source>Base type %1 of %2 element cannot be resolved.</source> - <translation>%1 elem %2 alap típusát nem lehet megfejteni.</translation> - </message> - <message> - <location line="+84"/> - <source>Item type %1 of %2 element cannot be resolved.</source> - <translation>%2 elem %1 elem típusát nem lehet megfejteni.</translation> - </message> - <message> - <location line="+31"/> - <source>Member type %1 of %2 element cannot be resolved.</source> - <translation>%2 elem %1 tag típusát nem lehet megoldani.</translation> - </message> - <message> - <location line="+28"/> - <location line="+408"/> - <location line="+30"/> - <source>Type %1 of %2 element cannot be resolved.</source> - <translation>%2 elem %1 típusát nem lehet megoldani.</translation> - </message> - <message> - <location line="-416"/> - <source>Base type %1 of complex type cannot be resolved.</source> - <translation>Komplex típus %1 alap típusát nem lehet megfejteni.</translation> - </message> - <message> - <location line="+9"/> - <source>%1 cannot have complex base type that has a %2.</source> - <translation>%1 nem tartalmazhat komplex alap típusokat, egy %2-t tartalmaz.</translation> - </message> - <message> - <location line="+279"/> - <source>Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type.</source> - <translation>%1 komplex típus tartalmi modelle %2 elemet tartalmaz, tehát nem származtatható kiterjesztésben egy nem üres típusból.</translation> - </message> - <message> - <location line="+6"/> - <source>Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model.</source> - <translation>%1 komplex nem típus nem származtatható kiterjesztésben %2-ből, mert az utóbbi %3 elemet tartalmaz a tartalmi modellében.</translation> - </message> - <message> - <location line="+101"/> - <source>Type of %1 element must be a simple type, %2 is not.</source> - <translation>%1 elem típusnak egy egyszerű típusnak kell, de %2 nem az.</translation> - </message> - <message> - <location line="+62"/> - <source>Substitution group %1 of %2 element cannot be resolved.</source> - <translation>%2 elem %1 helyettesítési csoportját nem lehet megoldani.</translation> - </message> - <message> - <location line="+9"/> - <source>Substitution group %1 has circular definition.</source> - <translation>%1 helyettesítési csoport cirkuláris definíciót tartalmaz.</translation> - </message> - <message> - <location line="+120"/> - <location line="+7"/> - <source>Duplicated element names %1 in %2 element.</source> - <translation>Duplikát %1 elemnév %2 elemben.</translation> - </message> - <message> - <location line="+29"/> - <location line="+52"/> - <location line="+71"/> - <location line="+28"/> - <source>Reference %1 of %2 element cannot be resolved.</source> - <translation>%2 elem %1 hivatkozását nem lehet megoldani.</translation> - </message> - <message> - <location line="-138"/> - <source>Circular group reference for %1.</source> - <translation>Cirkuláris csoport hivatkozás %1-re.</translation> - </message> - <message> - <location line="+16"/> - <source>%1 element is not allowed in this scope</source> - <translation>%1 elem nem engedélyezett ebben a hatókörben</translation> - </message> - <message> - <location line="+5"/> - <source>%1 element cannot have %2 attribute with value other than %3.</source> - <translation>%1 elem nem tartalmazhat %2 attribútumot %3-tól eltérő értékkel.</translation> - </message> - <message> - <location line="+8"/> - <source>%1 element cannot have %2 attribute with value other than %3 or %4.</source> - <translation>%1 element nem tartalmazhat %2 attribútumot %3 vagy %4-től eltérő értékkel.</translation> - </message> - <message> - <location line="+91"/> - <source>%1 or %2 attribute of reference %3 does not match with the attribute declaration %4.</source> - <translation>%3 hivatkozás %1 vagy %2 attribútuma nem egyezik meg a(z) %4 attribútum deklarációval.</translation> - </message> - <message> - <location line="+25"/> - <source>Attribute group %1 has circular reference.</source> - <translation>%1 attribútum csoport cirkuláris hivatkozást tartalmaz.</translation> - </message> - <message> - <location line="+131"/> - <source>%1 attribute in %2 must have %3 use like in base type %4.</source> - <translation>%2-ben található %1 attribútumnak %3 használatát kell tartalmaznia, mint a(z) %4 alap típusban.</translation> - </message> - <message> - <location line="+52"/> - <source>Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2.</source> - <translation>%1 attribútum helyettesítő jele nem a(z) %2 alap típus attribútum helyettesítő jelének egy érvényes korlátozása.</translation> - </message> - <message> - <location line="+7"/> - <source>%1 has attribute wildcard but its base type %2 has not.</source> - <translation>%1 attribútum helyettesítő jelet tartalmaz, de a(z) %2 alap típusa nem.</translation> - </message> - <message> - <location line="+26"/> - <source>Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible.</source> - <translation>%2 alaptípusának attribútum helyettesítő jele és a(z) %1 típus attribútum helyettesítő jelének union-ja nem kifejezhető.</translation> - </message> - <message> - <location line="+48"/> - <source>Enumeration facet contains invalid content: {%1} is not a value of type %2.</source> - <translation>Felsorolás oldal érvénytelen tartalmat tartalmaz. {%1} nem egy érvényes %2 típus érték.</translation> - </message> - <message> - <location line="+10"/> - <source>Namespace prefix of qualified name %1 is not defined.</source> - <translation>%1 minősített név névtér előtagja nincs definiálva.</translation> - </message> - <message> - <location line="+51"/> - <location line="+18"/> - <source>%1 element %2 is not a valid restriction of the %3 element it redefines: %4.</source> - <translation>%2 elem %1 nem a(z) %3 elem egy érvényes korlátozása, újradefininálja: %4.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/schema/qxsdparticlechecker.cpp" line="+165"/> - <source>Empty particle cannot be derived from non-empty particle.</source> - <translation>Üres részecskét nem lehet egy üres részecskéből származtatni.</translation> - </message> - <message> - <location line="+15"/> - <source>Derived particle is missing element %1.</source> - <translation>Származtatott részecskének van egy %1 hiányzó eleme.</translation> - </message> - <message> - <location line="+7"/> - <source>Derived element %1 is missing value constraint as defined in base particle.</source> - <translation>%1 származtatott elem hiányol egy érték korlátozót, ami az alap részecskében van definiálva.</translation> - </message> - <message> - <location line="+5"/> - <source>Derived element %1 has weaker value constraint than base particle.</source> - <translation>%1 származtatott elem gyengébb érték korlátozót tartalmaz, mint az alap részecske.</translation> - </message> - <message> - <location line="+7"/> - <source>Fixed value constraint of element %1 differs from value constraint in base particle.</source> - <translation>%1 elem fix érték korlátozója különbözik az alap részecskében található érték korlátozótól.</translation> - </message> - <message> - <location line="+7"/> - <source>Derived element %1 cannot be nillable as base element is not nillable.</source> - <translation>%1 származtatott elem nem lehet nullázható, mint ahogy az alap elem sem nullázható.</translation> - </message> - <message> - <location line="+10"/> - <source>Block constraints of derived element %1 must not be more weaker than in the base element.</source> - <translation>%1 származtatott elem blokk korlátozója nem lehet gyengébb, mint az alap elemben.</translation> - </message> - <message> - <location line="+11"/> - <source>Simple type of derived element %1 cannot be validly derived from base element.</source> - <translation>%1 származtatott elem egyszerű típusa nem származtatható érvényesen az alap elemből.</translation> - </message> - <message> - <location line="+5"/> - <source>Complex type of derived element %1 cannot be validly derived from base element.</source> - <translation>%1 származtatott elem komplex típusa nem származtatható érvényesen az alap elemből.</translation> - </message> - <message> - <location line="+24"/> - <source>Element %1 is missing in derived particle.</source> - <translation>%1 elem hiányzik a származtott récseszkében.</translation> - </message> - <message> - <location line="+18"/> - <source>Element %1 does not match namespace constraint of wildcard in base particle.</source> - <translation>%1 elem nem egyezik meg az alap részecskében található helyettesítő jel névtér korlátozójával.</translation> - </message> - <message> - <location line="+11"/> - <source>Wildcard in derived particle is not a valid subset of wildcard in base particle.</source> - <translation>Helyettesítő jel a származtatott részecskénen nem az alap részecskében található helyettesítő jel egy érvényes részhalmaza.</translation> - </message> - <message> - <location line="+5"/> - <source>processContent of wildcard in derived particle is weaker than wildcard in base particle.</source> - <translation>A származtatott részecskében található helyettesítő jel folyamatTartalma gyengébb, mint az alap részecskében található helyettesítő jel.</translation> - </message> - <message> - <location line="+240"/> - <source>Derived particle allows content that is not allowed in the base particle.</source> - <translation>Származtatott részecske engedélyezi a tartalmat, ami nem engedélyezett az alap részecskében.</translation> + <translation>Az ős definíciója tartalmaz olyan %1 elemet, ami hiányzik a leszármazott definíciójából</translation> </message> <message> <location filename="../src/xmlpatterns/schema/qxsdschemaparser.cpp" line="+170"/> <source>Can not process unknown element %1, expected elements are: %2.</source> - <translation>Nem lehet feldolgozni ismeretlen %1 elemet, várt elemek: %2.</translation> + <translation>%1 ismeretlen elemet nem lehet feldolgozni, a várt elemek: %2.</translation> </message> <message> <location line="+13"/> <source>Element %1 is not allowed in this scope, possible elements are: %2.</source> - <translation>%1 elem nem engedélyezett ebben a hatórközben, lehetséges elemek: %2.</translation> + <translation>%1 elem nem megengedett ebben a hatókörben, a lehetséges elemek: %2.</translation> </message> <message> <location line="+16"/> <source>Child element is missing in that scope, possible child elements are: %1.</source> - <translation>Gyermek elem hiányzik abban a hatókörben, lehetséges gyermek elemek: %1.</translation> + <translation>Gyermek elem hiányzik abból a hatókörből, lehetséges gyermek elemek: %1.</translation> </message> <message> - <location line="+127"/> + <location line="+143"/> <source>Document is not a XML schema.</source> - <translation>Dokumentum nem egy XML terv.</translation> + <translation>A dokumentum nem egy XML séma.</translation> </message> <message> <location line="+22"/> <source>%1 attribute of %2 element contains invalid content: {%3} is not a value of type %4.</source> - <translation>%2 elem %1 attribútuma érvénytelen tartalmat tartalmaz: {%3} nem egy %4 típus érték.</translation> + <translation>%2 elem %1 attribútuma érvénytelen tartalmú: {%3} érvénytelen %4 típusú érték.</translation> </message> <message> <location line="+6"/> <source>%1 attribute of %2 element contains invalid content: {%3}.</source> - <translation>%2 elem %1 attribútuma érvénytelen tartalmat tartalmaz: {%3}.</translation> + <translation>%2 elem %1 attribútuma érvénytelen tartalmú: {%3}.</translation> </message> <message> <location line="+26"/> <source>Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema.</source> - <translation>A beleértett terv %1 cél névtere különbözik a %2 cél névtértől, amit a beleértett terv által lett definiálva.</translation> + <translation>%1 beemelt séma cél-névtere különbözik a beemelő sémában definiált %2 cél-névtértől.</translation> </message> <message> <location line="+14"/> <location line="+11"/> <source>Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema.</source> - <translation>Az importált terv %1 cél névtere különbözik a(z) %2 cél névtértől, ami az importált terv által van definiálva.</translation> + <translation>%1 importált séma cél-névtere különbözik az importáló sémában definiált %2 cél-névtértől.</translation> </message> <message> - <location line="+237"/> + <location line="+243"/> <source>%1 element is not allowed to have the same %2 attribute value as the target namespace %3.</source> - <translation>%1 elem nem tartalmazhatja ugyanazt a(z) %2 attribútum értéket, mint a(z) %3 cél névtér.</translation> + <translation>%1 elemnek nem lehet ugyanaz a %2 attribútum értéke, mint %3 cél-névtérnek.</translation> </message> <message> <location line="+8"/> <source>%1 element without %2 attribute is not allowed inside schema without target namespace.</source> - <translation>%1 elem %2 attribútum nélkül nem engedélyezett a vázlaton belül cél névtér nélkül.</translation> + <translation>%2 attribútum nélküli %1 elem nem engedélyezett cél-névtér nélküli séma belsejében.</translation> </message> <message> - <location line="+833"/> + <location line="+851"/> <location line="+158"/> <source>%1 element is not allowed inside %2 element if %3 attribute is present.</source> - <translation>%1 elem nem engedélyezett a(z) %2 elemen belül, ha %3 attribútum van nyújtva.</translation> + <translation>%1 elem nem megengedett %2 elemen belül, ha %3 attribútum meg van adva.</translation> </message> <message> <location line="-97"/> <location line="+119"/> <location line="+92"/> <source>%1 element has neither %2 attribute nor %3 child element.</source> - <translation>%1 elem nem tartalmaz %2 attribútumot és %3 gyermek elemet sem.</translation> + <translation>%1 elemnek sem %2 attribútuma, sem %3 gyermek eleme nincs.</translation> </message> <message> <location line="+835"/> @@ -9878,23 +12827,23 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location line="+11"/> <location line="+11"/> <source>%1 element with %2 child element must not have a %3 attribute.</source> - <translation>%1 elem %2 gyermek elemmel nem tartalmazhat egy %3 attribútumot.</translation> + <translation>%2 gyermek elemmel rendelkező %1 elemnek nem lehet %3 attribútuma.</translation> </message> <message> <location line="-1325"/> <source>%1 attribute of %2 element must be %3 or %4.</source> - <translation>%2 elem %1 attribútumának %3 vagy %4-nek kell lennie.</translation> + <translation>%2 elem %1 attribútumának értéke %3 vagy %4 kell legyen.</translation> </message> <message> <location line="+36"/> <source>%1 attribute of %2 element must have a value of %3.</source> - <translation>%2 elem %1 attribútumának %3 egy értékét tartalmaznia kell.</translation> + <translation>%2 elem %1 attribútumának értéke %3 kell legyen.</translation> </message> <message> <location line="+7"/> <location line="+34"/> <source>%1 attribute of %2 element must have a value of %3 or %4.</source> - <translation>%2 elem %1 attribútumának tartalmaznia kell %3 vagy %4 egy értékét.</translation> + <translation>%2 elem %1 attribútumának értéke %3 vagy %4 kell legyen.</translation> </message> <message> <location line="+319"/> @@ -9912,81 +12861,81 @@ Kérem válasszon egy különböző fájl nevet.</translation> <location line="+6"/> <location line="+77"/> <source>%1 element must not have %2 and %3 attribute together.</source> - <translation>%1 elemnek tartalmaznia kell %2 és %3 attribútumokat együttesen.</translation> + <translation>%1 elemnek nem lehet egyidejűleg %2 és %3 attribútuma.</translation> </message> <message> <location line="-768"/> <location line="+222"/> <source>Content of %1 attribute of %2 element must not be from namespace %3.</source> - <translation>%2 elem %1 attribútumának tartalmának nem szabad a(z) %3 névtérből lennie.</translation> + <translation>%2 elem %1 attribútumának tartalma nem lehet %3 névtérből való.</translation> </message> <message> <location line="-215"/> <location line="+222"/> <source>%1 attribute of %2 element must not be %3.</source> - <translation>%2 elem %1 attribútumának nem szabad %3-nak lennie.</translation> + <translation>%2 elem %1 attribútuma nem lehet %3.</translation> </message> <message> <location line="-64"/> <source>%1 attribute of %2 element must have the value %3 because the %4 attribute is set.</source> - <translation>%2 elem %1 attribútumának tartalmaznia kell %3 értéket, mert %4 attribútum be van állítva.</translation> + <translation>%2 elem %1 attribútumának értéke %3 kell legyen, mert a(z) %4 attribútum van megadva.</translation> </message> <message> <location line="+187"/> <source>Specifying use='prohibited' inside an attribute group has no effect.</source> - <translation>Használat meghatározásának = 'tiltott' egy attribútum csoportját belül nincsen hatása.</translation> + <translation>use='prohibited' megadása egy attribútum csoporton belül hatástalan.</translation> </message> <message> <location line="+353"/> <source>%1 element must have either %2 or %3 attribute.</source> - <translation>%1 elemnek vagy %2 vagy %3 attribútumot tartalmaznia kell.</translation> + <translation>%1 elemnek vagy %2 vagy %3 attribútumának lennie kell.</translation> </message> <message> <location line="+554"/> <source>%1 element must have either %2 attribute or %3 or %4 as child element.</source> - <translation>%1 elemnek tartalmaznia kell vagy %2 vagy %3 vagy %4 attribútumot, mint ahogy a gyermek elem.</translation> + <translation>%1 elemnek vagy %2 attribútumának, vagy %3 vagy %4 gyermek elemének lennie kell.</translation> </message> <message> <location line="+55"/> <source>%1 element requires either %2 or %3 attribute.</source> - <translation>%1 elem vagy %2 vagy %3 attribútumot igényli.</translation> + <translation>%1 elemnek %2 vagy %3 attribútumát meg kell adni.</translation> </message> <message> <location line="+19"/> <source>Text or entity references not allowed inside %1 element</source> - <translation>Szöveg avgy entitás hivatkozás nem engedélyezett a(z) %1 elemen belül</translation> + <translation>Szöveg és entitás referenciák nem engedélyezettek %1 elemen belül</translation> </message> <message> <location line="+41"/> <location line="+112"/> <source>%1 attribute of %2 element must contain %3, %4 or a list of URIs.</source> - <translation>%2 elem %1 attribútumának tartalmaznia kell %3, %4 vagy URI-k egy listáját.</translation> + <translation>%2 elem %1 attribútumának %3-t, %4-t vagy URI-k listáját kell tartalmaznia.</translation> </message> <message> <location line="+126"/> <source>%1 element is not allowed in this context.</source> - <translation>%1 elem nem engedélyezett ebben a szöveg környezetben.</translation> + <translation>%1 elem nem megengedett ebben a kontextusban.</translation> </message> <message> <location line="+53"/> <source>%1 attribute of %2 element has larger value than %3 attribute.</source> - <translation>%2 elem %1 attribútuma nagyobb értéket tartalmaz, mint a %3 attribútum.</translation> + <translation>%2 elem %1 attribútumának értéka nagyobb, mint a(z) %3 attribútumé.</translation> </message> <message> <location line="+25"/> <source>Prefix of qualified name %1 is not defined.</source> - <translation>A(z) %1 minősített név előtagja nem definiált.</translation> + <translation>%1 kvalifikált név prefixuma nincs definiálva.</translation> </message> <message> <location line="+65"/> <location line="+61"/> <source>%1 attribute of %2 element must either contain %3 or the other values.</source> - <translation>%2 elem %1 attribútumának vagy %3 vagy más értékeket kell tartalmaznia.</translation> + <translation>%2 elem %1 attribútumának vagy %3-t vagy a többi értéket kell tartalmaznia.</translation> </message> <message> <location line="+131"/> <source>Component with ID %1 has been defined previously.</source> - <translation>%1 azonosítóval rendelkezővel komponens előzőleg definiálva lett.</translation> + <translation>%1 ID-jű komponens már lett definiálva korábban.</translation> </message> <message> <location line="+17"/> @@ -10006,329 +12955,483 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+23"/> <source>Attribute group %1 already defined.</source> - <translation>%1 csoport attribútum már definiálva van.</translation> + <translation>%1 attribútum csoport már definiálva van.</translation> </message> <message> <location line="+11"/> <source>Element group %1 already defined.</source> - <translation>%1 csoport elem már definiálva van.</translation> + <translation>%1 elemcsoport már definiálva van.</translation> </message> <message> <location line="+11"/> <source>Notation %1 already defined.</source> - <translation>%1 értesítés már definiálva van.</translation> + <translation>%1 jelölés már definiálva van.</translation> </message> <message> <location line="+11"/> <source>Identity constraint %1 already defined.</source> - <translation>%1 azonosító korlátozó már definiálva van.</translation> + <translation>%1 identitás megkötés már definiálva van.</translation> </message> <message> <location line="+11"/> <source>Duplicated facets in simple type %1.</source> - <translation>Duplikált oldalak %1 egyszerű típusban.</translation> + <translation>Duplikált facet-ek %1 egyszerű típusban.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/schema/qxsdschemaresolver.cpp" line="+354"/> + <source>%1 references unknown %2 or %3 element %4.</source> + <translatorcomment>CHECKIT</translatorcomment> + <translation>%1 érvénytelen %2 vagy %3 %4 elemre hivatkozik.</translation> + </message> + <message> + <location line="+10"/> + <source>%1 references identity constraint %2 that is no %3 or %4 element.</source> + <translation>%1 %2 identitás megkötésre hivatkozik, ami nem %3 vagy %4 elem.</translation> + </message> + <message> + <location line="+10"/> + <source>%1 has a different number of fields from the identity constraint %2 that it references.</source> + <translation>%1 eltérő számú mezőt tartalmaz, mint az általa hivatkozott %2 identitás megkötés.</translation> + </message> + <message> + <location line="+23"/> + <source>Base type %1 of %2 element cannot be resolved.</source> + <translation>%2 elem %1 őstípusa nem feloldható.</translation> + </message> + <message> + <location line="+84"/> + <source>Item type %1 of %2 element cannot be resolved.</source> + <translation>%2 elem %1 elemtípusa nem feloldható.</translation> + </message> + <message> + <location line="+31"/> + <source>Member type %1 of %2 element cannot be resolved.</source> + <translation>%2 elem %1 tagtípusa nem feloldható.</translation> + </message> + <message> + <location line="+28"/> + <location line="+415"/> + <location line="+30"/> + <source>Type %1 of %2 element cannot be resolved.</source> + <translation>%2 elem %1 típusa nem oldható fel.</translation> + </message> + <message> + <location line="-423"/> + <source>Base type %1 of complex type cannot be resolved.</source> + <translation>Komplex típus %1 őstípusa nem oldható fel.</translation> + </message> + <message> + <location line="+9"/> + <source>%1 cannot have complex base type that has a %2.</source> + <translation>%1-nek nem lehet %2-t tartalmazó komplex őstípusa.</translation> + </message> + <message> + <location line="+286"/> + <source>Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type.</source> + <translation>%1 komplex típus tartalom modellje %2 elemet tartalmaz, ezáltal kiterjesztéssel nem származtatható nem üres típusból.</translation> + </message> + <message> + <location line="+6"/> + <source>Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model.</source> + <translation>%1 komplex típus nem származhat kiterjesztéssel %2-ból, mivel utóbbi %3 elemet tartalmaz a tartalom modelljében.</translation> + </message> + <message> + <location line="+101"/> + <source>Type of %1 element must be a simple type, %2 is not.</source> + <translation>%1 elem típusának egyszerű típusnak kell lennie, %2 nem az.</translation> + </message> + <message> + <location line="+62"/> + <source>Substitution group %1 of %2 element cannot be resolved.</source> + <translation>%2 elem %1 részcsoportja nem oldható fel.</translation> + </message> + <message> + <location line="+9"/> + <source>Substitution group %1 has circular definition.</source> + <translation>%1 részcsoport körkörös definíciót tartalmaz.</translation> + </message> + <message> + <location line="+120"/> + <location line="+7"/> + <source>Duplicated element names %1 in %2 element.</source> + <translation>Duplikált %1 elemnevek a(z) %2 elemben.</translation> + </message> + <message> + <location line="+29"/> + <location line="+52"/> + <location line="+71"/> + <location line="+28"/> + <source>Reference %1 of %2 element cannot be resolved.</source> + <translation>%2 elem %1 referenciája nem oldható fel.</translation> + </message> + <message> + <location line="-138"/> + <source>Circular group reference for %1.</source> + <translation>Körkörös csoport referencia %1-nél.</translation> + </message> + <message> + <location line="+16"/> + <source>%1 element is not allowed in this scope</source> + <translation>%1 elem nem megengedett ebben a hatókörben</translation> + </message> + <message> + <location line="+5"/> + <source>%1 element cannot have %2 attribute with value other than %3.</source> + <translation>%1 elem %2 attribútumának nem lehet más értéke, mint %3.</translation> + </message> + <message> + <location line="+8"/> + <source>%1 element cannot have %2 attribute with value other than %3 or %4.</source> + <translation>%1 elem %2 attribútumának nem lehet más értéke, mint %3 vagy %4.</translation> + </message> + <message> + <location line="+91"/> + <source>%1 or %2 attribute of reference %3 does not match with the attribute declaration %4.</source> + <translation>%3 referencia %1 vagy %2 attribútuma nem egyezik %4 attribútum deklarációval.</translation> + </message> + <message> + <location line="+25"/> + <source>Attribute group %1 has circular reference.</source> + <translation>%1 attribútum csoport körkörös referenciát tartalmaz.</translation> + </message> + <message> + <location line="+131"/> + <source>%1 attribute in %2 must have %3 use like in base type %4.</source> + <translation>%2 %1 attribútuma %3 kell legyen, úgy, mint %4 őstípusban.</translation> + </message> + <message> + <location line="+52"/> + <source>Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2.</source> + <translation>%1 attribútum helyettesítője nem érvényes megkötése %2 őstípus helyettesítőjének.</translation> + </message> + <message> + <location line="+7"/> + <source>%1 has attribute wildcard but its base type %2 has not.</source> + <translation>%1-nak van attribútum helyettesítője, de %2 őstípusnak nincs.</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>%1 típus attribútum helyettesítőjének és %2 őstípusa helyettesítőjének uniója nem kiefjezhető.</translation> + </message> + <message> + <location line="+48"/> + <source>Enumeration facet contains invalid content: {%1} is not a value of type %2.</source> + <translation>Érvénytelen tartalom felsorolás facet-ben: {%1} érvénytelen érték %2 típusban.</translation> + </message> + <message> + <location line="+10"/> + <source>Namespace prefix of qualified name %1 is not defined.</source> + <translation>%1 névtér prefixum vagy kvalifikált név nincs definiálva.</translation> + </message> + <message> + <location line="+51"/> + <location line="+18"/> + <source>%1 element %2 is not a valid restriction of the %3 element it redefines: %4.</source> + <translation>%1 elem érvénytelen %2 megkötése az általa felüldefiniált %3 elemre: %4.</translation> </message> <message> <location filename="../src/xmlpatterns/schema/qxsdtypechecker.cpp" line="+233"/> <location line="+7"/> <location line="+21"/> <source>%1 is not valid according to %2.</source> - <translation>%1 nem érvényes %2 szerint.</translation> + <translation>%2 alapján %1 érvénytelen.</translation> </message> <message> <location line="+167"/> <source>String content does not match the length facet.</source> - <translation>Sztring tartalom nem egyezik a hossz oldallal.</translation> + <translation>A karakterlánc tartalom nem felel meg a hossz facet-nek.</translation> </message> <message> <location line="+8"/> <source>String content does not match the minLength facet.</source> - <translation>Sztring tartalom nem egyezik a minimális hosszúságú felülettel.</translation> + <translation>A karakterlánc tartalom nem felel meg a minLength facet-nek.</translation> </message> <message> <location line="+8"/> <source>String content does not match the maxLength facet.</source> - <translation>Sztring tartalom nem egyezik a maximális hosszúságú felülettel.</translation> + <translation>A karakterlánc tartalom nem felel meg a maxLength facet-nek.</translation> </message> <message> <location line="+18"/> <source>String content does not match pattern facet.</source> - <translation>Sztrng tartalom nem egyezik a minta felülettel.</translation> + <translation>A karakterlánc tartalom nem felel meg a minta facet-nek.</translation> </message> <message> <location line="+18"/> <source>String content is not listed in the enumeration facet.</source> - <translation>Sztring tartalom nincs listázva a felsorol felületben.</translation> + <translation>A karakterlánc tartalom nem szerepel a felsorolás facet-ben.</translation> </message> <message> <location line="+17"/> <source>Signed integer content does not match the maxInclusive facet.</source> - <translation>Előjeles egész szám tartalom nem egyezik a maximális beleszámított felülettel.</translation> + <translation>Előjeles egész szám tartalom nem felel meg a maxInclusive facet-nek.</translation> </message> <message> <location line="+8"/> <source>Signed integer content does not match the maxExclusive facet.</source> - <translation>Előjeles egész szám tartalom nem egyzik a maximális kizárólagos felülettel.</translation> + <translation>Előjeles egész szám tartalom nem felel meg a maxExclusive facet-nek.</translation> </message> <message> <location line="+8"/> <source>Signed integer content does not match the minInclusive facet.</source> - <translation>Előjeles egész szám tartalom nem egyezik a minimális beleértet felülettel.</translation> + <translation>Előjeles egész szám tartalom nem felel meg a minInclusive facet-nek.</translation> </message> <message> <location line="+8"/> <source>Signed integer content does not match the minExclusive facet.</source> - <translation>Előjeles egész szám tartalom nem egyezik a minimális kizárólagos felülettel.</translation> + <translation>Előjeles egész szám tartalom nem felel meg a minExclusive facet-nek.</translation> </message> <message> <location line="+18"/> <source>Signed integer content is not listed in the enumeration facet.</source> - <translation>Előjeles egész szám tartalom nincsen kilistázva a felsorolási felületben.</translation> + <translation>Előjeles egész szám tartalom nem felel meg a felsorolás facet-nek.</translation> </message> <message> <location line="+18"/> <source>Signed integer content does not match pattern facet.</source> - <translation>Előjeles egész szám tartalom nem egyezik a minta felületben.</translation> + <translation>Előjeles egész szám tartalom nem felel meg a minta facet-nek.</translation> </message> <message> <location line="+9"/> <source>Signed integer content does not match in the totalDigits facet.</source> - <translation>Előjeles egész szám tartalom nem egyezik a teljesSzámos felület.</translation> + <translation>Előjeles egész szám tartalom nem felel meg a totalDigits facet-nek.</translation> </message> <message> <location line="+17"/> <source>Unsigned integer content does not match the maxInclusive facet.</source> - <translation>Nem előjeles egész szám tartalom nem egyezik a maximális beleértett felülettel.</translation> + <translation>Előjel nélküli egész szám tartalom nem felel meg a maxInclusive facet-nek.</translation> </message> <message> <location line="+8"/> <source>Unsigned integer content does not match the maxExclusive facet.</source> - <translation>Nem előjeles egész szám tartalom nem egyezik a maximális kizárólagos felülettel.</translation> + <translation>Előjel nélküli egész szám tartalom nem felel meg a maxExclusive facet-nek.</translation> </message> <message> <location line="+8"/> <source>Unsigned integer content does not match the minInclusive facet.</source> - <translation>Nem előjeles tartalom nem egyezik a minimális beleértett felülettel.</translation> + <translation>Előjel nélküli egész szám tartalom nem felel meg a minInclusive facet-nek.</translation> </message> <message> <location line="+8"/> <source>Unsigned integer content does not match the minExclusive facet.</source> - <translation>Nem előjeleg egész szám tartalom nem egyezik a beleértett minimális felülettel.</translation> + <translation>Előjel nélküli egész szám tartalom nem felel meg a minExclusive facet-nek.</translation> </message> <message> <location line="+18"/> <source>Unsigned integer content is not listed in the enumeration facet.</source> - <translation>Nem előjeles egész szám tartalom nincsen kilistázva a felsorolási felületben.</translation> + <translation>Előjel nélküli egész szám tartalom nem szerepel a felsorolás facet-ben.</translation> </message> <message> <location line="+18"/> <source>Unsigned integer content does not match pattern facet.</source> - <translation>Nem előjeles egész szám tartalom nem egyezik a minta felületben.</translation> + <translation>Előjel nélküli egész szám tartalom nem felel meg a minta facet-nek.</translation> </message> <message> <location line="+9"/> <source>Unsigned integer content does not match in the totalDigits facet.</source> - <translation>Nem előjeles egész szám tartalom nem egyezik a teljesSzámos felületben.</translation> + <translation>Előjel nélküli egész szám tartalom nem felel meg a totalDigits facet-nek.</translation> </message> <message> <location line="+17"/> <source>Double content does not match the maxInclusive facet.</source> - <translation>Dupla tartalom nem egyezik a maximális beleértett felületben.</translation> + <translation>Dupla pontosságú szám tartalom nem felel meg a maxInclusive facet-nek.</translation> </message> <message> <location line="+8"/> <source>Double content does not match the maxExclusive facet.</source> - <translation>Dupla tartalom nem egyezik a maximális kizárólagos felülettel.</translation> + <translation>Dupla pontosságú szám tartalom nem felel meg a maxExclusive facet-nek.</translation> </message> <message> <location line="+8"/> <source>Double content does not match the minInclusive facet.</source> - <translation>Dupla tartalom nem egyezik a minimális beleértett felülettel.</translation> + <translation>Dupla pontosságú szám tartalom nem felel meg a minInclusive facet-nek.</translation> </message> <message> <location line="+8"/> <source>Double content does not match the minExclusive facet.</source> - <translation>Dupla tartalom nem egyezik a minimális kizárólag felülettel.</translation> + <translation>Dupla pontosságú szám tartalom nem felel meg a minExclusive facet-nek.</translation> </message> <message> <location line="+18"/> <source>Double content is not listed in the enumeration facet.</source> - <translation>Dupla tartalom nincs listázva a felsorolási felületben.</translation> + <translation>Dupla pontosságú szám tartalom nem felel meg a felsorolás facet-nek.</translation> </message> <message> <location line="+18"/> <source>Double content does not match pattern facet.</source> - <translation>Dupla tartalom nem egyezik a minta felületben.</translation> + <translation>Dupla pontosságú szám tartalom nem felel meg a minta facet-nek.</translation> </message> <message> <location line="+18"/> <source>Decimal content does not match in the fractionDigits facet.</source> - <translation>Tizedes tartalom nem egyezik a szám tényezős felületben.</translation> + <translation>Decimális tartalom nem felel meg a fractionDigits facet-nek.</translation> </message> <message> <location line="+9"/> <source>Decimal content does not match in the totalDigits facet.</source> - <translation>Tizedes tartalom nem egyezik a teljesenSzámos felületben.</translation> + <translation>Decimális tartalom nem felel meg a totalDigits facet-nek.</translation> </message> <message> <location line="+14"/> <source>Date time content does not match the maxInclusive facet.</source> - <translation>Dátum idő tartalom nem egyezik a maximális beleértett felülettel.</translation> + <translation>Dátum-idő tartalom nem felel meg a maxInclusive facet-nek.</translation> </message> <message> <location line="+8"/> <source>Date time content does not match the maxExclusive facet.</source> - <translation>Dátum idő tartalom nem egyezik a maximális kizárólagos felülettel.</translation> + <translation>Dátum-idő tartalom nem felel meg a maxExclusive facet-nek.</translation> </message> <message> <location line="+8"/> <source>Date time content does not match the minInclusive facet.</source> - <translation>Dátum idő tartalom nem egyezik a minimális beleértett felülettel.</translation> + <translation>Dátum-idő tartalom nem felel meg a minInclusive facet-nek.</translation> </message> <message> <location line="+8"/> <source>Date time content does not match the minExclusive facet.</source> - <translation>Dátum idő tartalom nem egyezik a minimális kizárólagos felülettel.</translation> + <translation>Dátum-idő tartalom nem felel meg a minExclusive facet-nek.</translation> </message> <message> <location line="+18"/> <source>Date time content is not listed in the enumeration facet.</source> - <translation>Dátum idő tartalom nincsen kilistázva a felsorolási felületben.</translation> + <translation>Dátum-idő tartalom nem szerepel a felsorolás facet-ben.</translation> </message> <message> <location line="+18"/> <source>Date time content does not match pattern facet.</source> - <translation>Dátum idő tartalom nem egyezik a minta felületben.</translation> + <translation>Dátum-idő tartalom nem felel meg a minta facet-nek.</translation> </message> <message> <location line="+15"/> <source>Duration content does not match the maxInclusive facet.</source> - <translation>Tartalom időtartam nem egyezik a maximális beleértett felülettel.</translation> + <translation>Időtartam tartalom nem felel meg a maxInclusive facet-nek.</translation> </message> <message> <location line="+9"/> <source>Duration content does not match the maxExclusive facet.</source> - <translation>Tartalom időtartam nem egyezik a maximális kizárólagos felülettel.</translation> + <translation>Időtartam tartalom nem felel meg a maxExclusive facet-nek.</translation> </message> <message> <location line="+9"/> <source>Duration content does not match the minInclusive facet.</source> - <translation>Tartalom időtartam nem egyezik a minimális benne foglalt felülettel.</translation> + <translation>Időtartam tartalom nem felel meg a minInclusive facet-nek.</translation> </message> <message> <location line="+9"/> <source>Duration content does not match the minExclusive facet.</source> - <translation>Tartalom időtartam nem egyezik a minimális kizárólagos felülettel.</translation> + <translation>Időtartam tartalom nem felel meg a minExclusive facet-nek.</translation> </message> <message> <location line="+18"/> <source>Duration content is not listed in the enumeration facet.</source> - <translation>Tartalom időtartam nincs listázva a felsorolási felületben.</translation> + <translation>Időtartam tartalom nem szerepel a felsorolás facet-ben.</translation> </message> <message> <location line="+18"/> <source>Duration content does not match pattern facet.</source> - <translation>Tartalom időtartam nem egyezik a felület mintában.</translation> + <translation>Időtartam tartalom nem felel meg a minta facet-nek.</translation> </message> <message> <location line="+27"/> <source>Boolean content does not match pattern facet.</source> - <translation>Logikai tartalom nem egyezik a minta felületben.</translation> + <translation>Logikai tartalom nem felel meg a minta facet-nek.</translation> </message> <message> <location line="+17"/> <source>Binary content does not match the length facet.</source> - <translation>Bináris tartalom nem egyezik a hossz felületben.</translation> + <translation>Bináris tartalom nem felel meg a hossz facet-nek.</translation> </message> <message> <location line="+8"/> <source>Binary content does not match the minLength facet.</source> - <translation>Bináris tartalom nem egyezik a minimális hossz felületben.</translation> + <translation>Bináris tartalom nem felel meg a minLength facet-nek.</translation> </message> <message> <location line="+8"/> <source>Binary content does not match the maxLength facet.</source> - <translation>Bináris tartalom nem egyezik a maximális hossz felületben.</translation> + <translation>Bináris tartalom nem felel meg a maxLength facet-nek.</translation> </message> <message> <location line="+18"/> <source>Binary content is not listed in the enumeration facet.</source> - <translation>Bináris tartalom nincsen kilistázva a felsorolási felületben.</translation> + <translation>Bináris tartalom nem szerepel a felsorolás facet-ben.</translation> </message> <message> <location line="+27"/> <source>Invalid QName content: %1.</source> - <translation>Érvénytelen QName tartalom: %1.</translation> + <translation>Érvénytelen QName tartalom: %1.</translation> </message> <message> <location line="+17"/> <source>QName content is not listed in the enumeration facet.</source> - <translation>QName tartalom nincsen kilistázva a felsorolási felületben.</translation> + <translation>QName tartalom nem szerepel a felsorolás facet-ben.</translation> </message> <message> <location line="+18"/> <source>QName content does not match pattern facet.</source> - <translation>QName tartalom nem egyezik a mintha felületben.</translation> + <translation>QName tartalom nem felel meg a minta facet-nek.</translation> </message> <message> <location line="+36"/> <source>Notation content is not listed in the enumeration facet.</source> - <translation>Tartalom jelölés nincsen kilistázva a felsorolási felületben.</translation> + <translation>Jelölő tartalom nem szerepel a felsorolás facet-ben.</translation> </message> <message> <location line="+19"/> <source>List content does not match length facet.</source> - <translation>Tartalom lista nem egyezik a hossz felületben.</translation> + <translation>Lista tartalom nem felel meg a hossz facet-nek.</translation> </message> <message> <location line="+7"/> <source>List content does not match minLength facet.</source> - <translation>Tartalmi lista nem egyezik a minimális hossz felületben.</translation> + <translation>Lista tartalom nem felel meg a minLength facet-nek.</translation> </message> <message> <location line="+7"/> <source>List content does not match maxLength facet.</source> - <translation>Tartalmi list nem egyezik a maximális hossz felületen.</translation> + <translation>Lista tartalom nem felel meg a maxLength facet-nek.</translation> </message> <message> <location line="+90"/> <source>List content is not listed in the enumeration facet.</source> - <translation>Tartalmi lista nincsen kilistázva a felsorolási felületen.</translation> + <translation>Lista tartalom nem szerepl a felsorolás facet-ben.</translation> </message> <message> <location line="+18"/> <source>List content does not match pattern facet.</source> - <translation>Tartalmi lista nem egyezik a minta felületen.</translation> + <translation>Lista tartalom nem felel meg a minta facet-nek.</translation> </message> <message> <location line="+39"/> <source>Union content is not listed in the enumeration facet.</source> - <translation>Egység tartalom nincsen kilistázva a felsorolási felületen.</translation> + <translation>Union tartalom nem szerepel a felsorolás facet-ben.</translation> </message> <message> <location line="+18"/> <source>Union content does not match pattern facet.</source> - <translation>Egység tartalom nem egyezik a minta felületen.</translation> + <translation>Union tartalom nem felel meg a minta facet-nek.</translation> </message> <message> <location line="+15"/> <source>Data of type %1 are not allowed to be empty.</source> - <translation>%1 típus adata nem engedélyezett, hogy üres legyen.</translation> + <translation>%1 típusú adat nem lehet üres.</translation> </message> <message> <location filename="../src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp" line="+160"/> <source>Element %1 is missing child element.</source> - <translation>%1 elem hiányzik a gyermek elemből.</translation> + <translation>Hiányzó gyermek elem %1 elemben.</translation> </message> <message> <location line="+16"/> <source>There is one IDREF value with no corresponding ID: %1.</source> - <translation>Van egy IDREF érték nem megfelelő azonosítóval: %1.</translation> + <translation>Egy IDREF érték van hozzátartozó ID nélkül: %1.</translation> </message> <message> <location line="+27"/> <source>Loaded schema file is invalid.</source> - <translation>Betöltött terv fájl nem létezik.</translation> + <translatorcomment>A betöltött sémafájl érvénytelen.</translatorcomment> + <translation></translation> </message> <message> <location line="+16"/> @@ -10338,128 +13441,128 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+13"/> <source>xsi:schemaLocation namespace %1 has already appeared earlier in the instance document.</source> - <translation>xsi:tervElhelyezkedés %1 névtér már előfordult korábban a példa dokumentumban.</translation> + <translation>%1 xsi:schemaLocation névtér már szerepelt korábban a példány dokumentumban.</translation> </message> <message> <location line="+22"/> <source>xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute.</source> - <translation>xsi:tervElhelyezkedés névtér nem fordulhat elő az első nem névtér elem vagy attribútum után.</translation> + <translation>xsi:noNamespaceSchemaLocation nem szerepelhet az első nem-névtérbeli elem vagy attribútum után.</translation> </message> <message> <location line="+18"/> <source>No schema defined for validation.</source> - <translation>Nincsen terv definiálva jóváhagyásra.</translation> + <translation>Nincs megadva séma a validáláshoz.</translation> </message> <message> <location line="+10"/> <source>No definition for element %1 available.</source> - <translation>Nincsen elérhető definíció a(z) %1 elemre.</translation> + <translation>%1 elem definíciója nem érhető el.</translation> </message> <message> <location line="+18"/> <location line="+49"/> <location line="+142"/> <source>Specified type %1 is not known to the schema.</source> - <translation>%1 meghatározott típus ismeretlen a terv számára.</translation> + <translation>A megadott %1 típus ismeretlen a séma számára.</translation> </message> <message> <location line="-176"/> <source>Element %1 is not defined in this scope.</source> - <translation>%1 elem nincs definiálva ebben a hatókörben.</translation> + <translation>%1 elem nem ebben a hatókörben lett definiálva.</translation> </message> <message> <location line="+43"/> <source>Declaration for element %1 does not exist.</source> - <translation>%1 elem deklaráció nem létezik.</translation> + <translation>%1 elem deklarációja nem létezik.</translation> </message> <message> <location line="+12"/> <source>Element %1 contains invalid content.</source> - <translation>%1 elem érvénytelen tartalmat tartalmaz.</translation> + <translation>%1 elemben érvénytelen tartalom van.</translation> </message> <message> <location line="+73"/> <source>Element %1 is declared as abstract.</source> - <translation>%1 elem elvontkét lett deklarálva.</translation> + <translation>%1 elem absztraktként lett definiálva.</translation> </message> <message> <location line="+7"/> <source>Element %1 is not nillable.</source> - <translation>%1 elem nem nullázható.</translation> + <translation>%1 elem nem nil-feltételű.</translation> </message> <message> <location line="+8"/> <source>Attribute %1 contains invalid data: %2</source> - <translation>%1 attribútum érvénytelen adatokat tartalmaz: %2</translation> + <translation>%1 attribútum érvénytelen adatot tartalmaz: %2</translation> </message> <message> <location line="+8"/> <source>Element contains content although it is nillable.</source> - <translation>Elem nem nullázható elemeket tartalmaz.</translation> + <translation>Az elem annak ellenére tartalmaz adatot, hogy nil-feltételű.</translation> </message> <message> <location line="+6"/> <source>Fixed value constraint not allowed if element is nillable.</source> - <translation>Fix érték korlátozó nem engedélyezett, ha az elem nullázható.</translation> - </message> - <message> - <location line="+230"/> - <source>Element %1 cannot contain other elements, as it has a fixed content.</source> - <translation>%1 nem tartalmazhat másik elemeket, mint ennek is egy fix mérete van.</translation> + <translation>Az elemre rögzített érték megkötés nem adható, ha az nil-feltételű.</translation> </message> <message> - <location line="-198"/> + <location line="+32"/> <source>Specified type %1 is not validly substitutable with element type %2.</source> - <translation>%1 meghatározott típus nem helyettesíthető érvényesen %2 elem típussal.</translation> + <translation>A megadott %1 típus nem helyettesíthető érvényesen %2 elemtípussal.</translation> </message> <message> <location line="+23"/> <source>Complex type %1 is not allowed to be abstract.</source> - <translation>%1 komplex típus nem engedélyezett, hogy elvont legyen.</translation> + <translation>%1 komplex típus nem lehet absztrakt.</translation> </message> <message> <location line="+21"/> <source>Element %1 contains not allowed attributes.</source> - <translation>%1 nem engedélyezett attribútumokat tartalmaz.</translation> + <translation>%1 elem nem megengedett attribútumokat tartalmaz.</translation> </message> <message> <location line="+6"/> <location line="+97"/> <source>Element %1 contains not allowed child element.</source> - <translation>%1 nem engedélyezett gyermek attribútumokat tartalmaz.</translation> + <translation>%1 elem nem megengedett gyermek elemet tartalmaz.</translation> </message> <message> <location line="-76"/> <location line="+93"/> <source>Content of element %1 does not match its type definition: %2.</source> - <translation>%1 elem tartalma nem egyezik meg a típus definíciójával: %2.</translation> + <translation>%1 elem tartalma nem egyezik típusának definíciójával: %2.</translation> </message> <message> <location line="-85"/> <location line="+92"/> <location line="+41"/> <source>Content of element %1 does not match defined value constraint.</source> - <translation>%1 elem tartalma nem egyezik meg a definiált érték korlátozóval.</translation> + <translation>%1 elem tartalma nem egyezik a definiált érték megkötéssel.</translation> </message> <message> <location line="-73"/> <source>Element %1 contains not allowed child content.</source> - <translation>%1 nem engedélyezett gyermek tartalmat tartalmaz.</translation> + <translation>%1 elem nem megengedett gyermek tartalmat tartalmaz.</translation> </message> <message> <location line="+41"/> <source>Element %1 contains not allowed text content.</source> - <translation>%1 nem engedélyezett szöveg tartalmat tartalmaz.</translation> + <translation>%1 elemben nem megengedett szövegtartalom található.</translation> </message> <message> - <location line="+61"/> + <location line="+18"/> + <source>Element %1 cannot contain other elements, as it has a fixed content.</source> + <translation>%1 elem nem tartalmazhat más elemeket, mert tartalma rögzített.</translation> + </message> + <message> + <location line="+43"/> <source>Element %1 is missing required attribute %2.</source> - <translation>%1 hiányzik, %2 attribútum igényli.</translation> + <translation>%1 elemből hiányzik a kötelező %2 attribútum.</translation> </message> <message> <location line="+29"/> <source>Attribute %1 does not match the attribute wildcard.</source> - <translation>%1 attribűtum nem egyezik meg az attribútum helyettesítő jellel.</translation> + <translation>%1 attribútum nem egyezik az attribútum helyettesítővel.</translation> </message> <message> <location line="+9"/> @@ -10469,69 +13572,190 @@ Kérem válasszon egy különböző fájl nevet.</translation> <message> <location line="+6"/> <source>Element %1 contains two attributes of type %2.</source> - <translation>%1 elem %2 típus két attribútumát tartalmazza.</translation> + <translation>%1 elem két %2 típusú attribútumot tartalmaz.</translation> </message> <message> <location line="+11"/> <source>Attribute %1 contains invalid content.</source> - <translation>%1 attribútum érvénytelen tartalmaz tartalmaz.</translation> + <translation>%1 attribútumban érvénytelen tartalom szerepel.</translation> </message> <message> <location line="+7"/> <source>Element %1 contains unknown attribute %2.</source> - <translation>%1 elem ismeretlen %2 attribútumokat tartalmaz.</translation> + <translation>%1 elem a(z) %2 ismeretlen attribútumot tartalmazza.</translation> </message> <message> <location line="+40"/> <location line="+46"/> <source>Content of attribute %1 does not match its type definition: %2.</source> - <translation>%1 attribútum tartalma nem egyezik a típus definíciójával: %2.</translation> + <translation>%1 attribútum tartalma nem egyezik a típus definícióban megadottakkal: %2.</translation> </message> <message> <location line="-38"/> <location line="+46"/> <source>Content of attribute %1 does not match defined value constraint.</source> - <translation>%1 attribútum tartalma nem egyezik meg a definiált érték korlátozóval.</translation> + <translation>%1 attribútum tartalma nem egyezik a definiált érték megkötéssel.</translation> </message> <message> <location line="+88"/> <source>Non-unique value found for constraint %1.</source> - <translation>Nem található egyedülálló érték a(z) %1 módosítóra.</translation> + <translation>%1 megkötés nem egyedi értéket tartalmaz.</translation> </message> <message> <location line="+20"/> <source>Key constraint %1 contains absent fields.</source> - <translation>%1 kulcs korlátozó hiányzó mezőket tartalmaz.</translation> + <translation>%1 kulcs megkötés hiányzó mezőket tartalmaz.</translation> </message> <message> <location line="+18"/> <source>Key constraint %1 contains references nillable element %2.</source> - <translation>%1 kulcs korlátozó hivatkozásokat nem tartalmaz nullázható %2 elemekre.</translation> + <translation>%1 kulcsfeltétel %2 nil-feltételű elemre vonatkozó hivatkozást tartalmaz.</translation> </message> <message> <location line="+40"/> <source>No referenced value found for key reference %1.</source> - <translation>Nem található referencia érték a(z) %1 kulcs referenciára.</translation> + <translation>Nem található hivatkozott érték %1 kulcs referenciához.</translation> </message> <message> <location line="+64"/> <source>More than one value found for field %1.</source> - <translation>Több mint egy érték található a(z) %1-es mezőre.</translation> + <translation>%1 mezőhöz egynél több érték létezik.</translation> </message> <message> <location line="+20"/> <source>Field %1 has no simple type.</source> - <translation>%1 mezőnek nincsen egyszerű típusa.</translation> + <translation>%1 mezőnek nincs egyszerű típusa.</translation> </message> <message> <location line="+73"/> <source>ID value '%1' is not unique.</source> - <translation>%1 azonosító érték nem egyedülálló.</translation> + <translation>'%1' ID érték nem egyedi.</translation> </message> <message> <location line="+11"/> <source>'%1' attribute contains invalid QName content: %2.</source> - <translation>%1 attribútum érvénytelen QName tartalmaz tartalmaz: %2.</translation> + <translation>'%1% attribútum érvénytelen QName adatot tartalmaz: %2.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/> + <source>empty</source> + <translation>üres</translation> + </message> + <message> + <location line="+2"/> + <source>zero or one</source> + <translation>nulla vagy egy</translation> + </message> + <message> + <location line="+2"/> + <source>exactly one</source> + <translation>pontosan egy</translation> + </message> + <message> + <location line="+2"/> + <source>one or more</source> + <translation>egy vagy több</translation> + </message> + <message> + <location line="+2"/> + <source>zero or more</source> + <translation>nulla vagy több</translation> + </message> + <message> + <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/> + <source>Required type is %1, but %2 was found.</source> + <translation>Az elvárt típus %1, de a kapott %2.</translation> + </message> + <message> + <location line="+44"/> + <source>Promoting %1 to %2 may cause loss of precision.</source> + <translation>%1 átalakítása %2 típusra a pontosság elvesztését okozhatja.</translation> + </message> + <message> + <location line="+49"/> + <source>The focus is undefined.</source> + <translation>A fókusz nincs definiálva.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+86"/> + <source>It's not possible to add attributes after any other kind of node.</source> + <translation>Semmilyen más csomópont után nem adható meg attribútum.</translation> + </message> + <message> + <location line="+7"/> + <source>An attribute by name %1 has already been created.</source> + <translation>%1 nevű attribútum már létre van hozva.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/> + <source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source> + <translation>Csak a Unicode Codepoint Collation támogatott(%1). %2 nem támogatott.</translation> + </message> +</context> +<context> + <name>VolumeSlider</name> + <message> + <source>Muted</source> + <translation type="obsolete">Elnémítva</translation> + </message> + <message> + <source>Volume: %1%</source> + <translation type="obsolete">Hangerő: %1%</translation> + </message> +</context> +<context> + <name>WebCore::PlatformScrollbar</name> + <message> + <source>Scroll here</source> + <translation type="obsolete">Görgetés ide</translation> + </message> + <message> + <source>Left edge</source> + <translation type="obsolete">Bal szélre</translation> + </message> + <message> + <source>Top</source> + <translation type="obsolete">Felülre</translation> + </message> + <message> + <source>Right edge</source> + <translation type="obsolete">Jobb szélre</translation> + </message> + <message> + <source>Bottom</source> + <translation type="obsolete">Alulra</translation> + </message> + <message> + <source>Page left</source> + <translation type="obsolete">Egy oldalt balra</translation> + </message> + <message> + <source>Page up</source> + <translation type="obsolete">Egy oldalt felfelé</translation> + </message> + <message> + <source>Page right</source> + <translation type="obsolete">Egy oldalt jobbra</translation> + </message> + <message> + <source>Page down</source> + <translation type="obsolete">Egy oldalt lefelé</translation> + </message> + <message> + <source>Scroll left</source> + <translation type="obsolete">Görgetés balra</translation> + </message> + <message> + <source>Scroll up</source> + <translation type="obsolete">Görgetés felfelé</translation> + </message> + <message> + <source>Scroll right</source> + <translation type="obsolete">Görgetés jobbra</translation> + </message> + <message> + <source>Scroll down</source> + <translation type="obsolete">Görgetés lefelé</translation> </message> </context> </TS> diff --git a/translations/qt_ru.ts b/translations/qt_ru.ts index e9cdfd4..deae134 100644 --- a/translations/qt_ru.ts +++ b/translations/qt_ru.ts @@ -1,10 +1,31 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> -<TS version="2.0" language="ru_RU"> +<TS version="2.0" language="ru"> +<context> + <name>CloseButton</name> + <message> + <location filename="../src/gui/widgets/qtabbar.cpp" line="+2313"/> + <source>Close Tab</source> + <translation>Закрыть вкладку</translation> + </message> +</context> +<context> + <name>FakeReply</name> + <message> + <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2273"/> + <source>Fake error !</source> + <translation>Фиктивная ошибка !</translation> + </message> + <message> + <location line="+3"/> + <source>Invalid URL</source> + <translation>Некорректный адрес URL</translation> + </message> +</context> <context> <name>MAC_APPLICATION_MENU</name> <message> - <location filename="../src/gui/kernel/qapplication.cpp" line="+2316"/> + <location filename="../src/gui/kernel/qapplication.cpp" line="+2335"/> <source>Services</source> <translation>Службы</translation> </message> @@ -40,27 +61,6 @@ </message> </context> <context> - <name>CloseButton</name> - <message> - <location filename="../src/gui/widgets/qtabbar.cpp" line="+2264"/> - <source>Close Tab</source> - <translation>Закрыть вкладку</translation> - </message> -</context> -<context> - <name>FakeReply</name> - <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2200"/> - <source>Fake error !</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+3"/> - <source>Invalid URL</source> - <translation>Некорректный URL</translation> - </message> -</context> -<context> <name>Phonon::</name> <message> <location filename="../src/3rdparty/phonon/phonon/phononnamespace.cpp" line="+55"/> @@ -96,25 +96,32 @@ <context> <name>Phonon::AudioOutput</name> <message> - <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+385"/> + <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+444"/> + <location line="+34"/> <source><html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html></source> <translation><html>Звуковое устройство <b>%1</b> не работает.<br/>Будет использоваться <b>%2</b>.</html></translation> </message> <message> - <location line="+13"/> + <location line="-21"/> <source><html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html></source> - <translation><html>Переключение на звуковое устройство <b>%1</b><br/>, которое доступно и имеет высший приоритет.</html></translation> + <translation><html>Переключение на звуковое устройство <b>%1</b><br/>, которое стало доступно и имеет высший приоритет.</html></translation> </message> <message> <location line="+3"/> + <location line="+14"/> <source>Revert back to device '%1'</source> - <translation>Возвращение к устройству '%1'</translation> + <translation>Возвращение к устройству "%1"</translation> + </message> + <message> + <location line="-3"/> + <source><html>Switching to the audio playback device <b>%1</b><br/>which has higher preference or is specifically configured for this stream.</html></source> + <translation><html>Переключение на устройство вывода звука <b>%1</b><br/>, которое имеет высший приоритет или настроено для обработки данного потока.</html></translation> </message> </context> <context> <name>Phonon::Gstreamer::Backend</name> <message> - <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+182"/> + <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+188"/> <source>Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled.</source> <translation>Внимание: Похоже, пакет gstreamer0.10-plugins-good не установлен. @@ -131,40 +138,50 @@ <context> <name>Phonon::Gstreamer::MediaObject</name> <message> - <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/> + <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+93"/> <source>Cannot start playback. Check your GStreamer installation and make sure you have libgstreamer-plugins-base installed.</source> <translation>Невозможно начать воспроизведение. -Проверьте установку GStreamer и убедитесь, +Проверьте правильность установки GStreamer и убедитесь, что пакет libgstreamer-plugins-base установлен.</translation> </message> <message> - <location line="+113"/> + <location line="+129"/> + <source>Missing codec helper script assistant.</source> + <translation>Отсутствует сценарий установки кодека.</translation> + </message> + <message> + <location line="+2"/> + <source>Plugin codec installation failed for codec: %0</source> + <translation>Не удалось установить модуль кодека: %0</translation> + </message> + <message> + <location line="+11"/> <source>A required codec is missing. You need to install the following codec(s) to play this content: %0</source> <translation>Отсутствует необходимый кодек. Вам нужно установить следующие кодеки для воспроизведения данного содержимого: %0</translation> </message> <message> - <location line="+702"/> - <location line="+8"/> - <location line="+15"/> - <location line="+26"/> + <location line="+730"/> <location line="+6"/> - <location line="+19"/> - <location line="+339"/> + <location line="+13"/> + <location line="+24"/> + <location line="+6"/> + <location line="+18"/> + <location line="+434"/> <location line="+24"/> <source>Could not open media source.</source> <translation>Не удалось открыть источник медиа-данных.</translation> </message> <message> - <location line="-424"/> + <location line="-514"/> <source>Invalid source type.</source> - <translation>Неверный тип источника медиа-данных.</translation> + <translation>Некорректный тип источника медиа-данных.</translation> </message> <message> - <location line="+398"/> + <location line="+488"/> <source>Could not locate media source.</source> <translation>Не удалось найти источник медиа-данных.</translation> </message> @@ -192,14 +209,14 @@ have libgstreamer-plugins-base installed.</source> <translation>Устройство воспроизведения звука</translation> </message> <message> - <location filename="../src/3rdparty/phonon/mmf/utils.cpp" line="+87"/> + <location filename="../src/3rdparty/phonon/mmf/utils.cpp" line="+89"/> <source>No error</source> <translation>Нет ошибки</translation> </message> <message> <location line="+2"/> <source>Not found</source> - <translation>Не найден</translation> + <translation>Не найдено</translation> </message> <message> <location line="+2"/> @@ -214,12 +231,12 @@ have libgstreamer-plugins-base installed.</source> <message> <location line="+2"/> <source>Overflow</source> - <translation type="unfinished"></translation> + <translation>Переполнение</translation> </message> <message> <location line="+2"/> <source>Underflow</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Переполнение</translation> </message> <message> <location line="+2"/> @@ -239,7 +256,7 @@ have libgstreamer-plugins-base installed.</source> <message> <location line="+2"/> <source>Not ready</source> - <translation>Не готов</translation> + <translation>Не готово</translation> </message> <message> <location line="+2"/> @@ -264,7 +281,7 @@ have libgstreamer-plugins-base installed.</source> <message> <location line="+4"/> <source>Insufficient bandwidth</source> - <translation type="unfinished">Недостаточная ширина канала</translation> + <translation>Недостаточная скорость передачи данных</translation> </message> <message> <location line="+3"/> @@ -274,17 +291,17 @@ have libgstreamer-plugins-base installed.</source> <message> <location line="+4"/> <source>Network communication error</source> - <translation type="unfinished">Ошибка сетевого обмена данными</translation> + <translation>Ошибка сетевого обмена данными</translation> </message> <message> <location line="+2"/> <source>Streaming not supported</source> - <translation type="unfinished"></translation> + <translation>Потоковое воспроизведение не поддерживается</translation> </message> <message> <location line="+2"/> <source>Server alert</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Сигнал сервера</translation> </message> <message> <location line="+2"/> @@ -294,12 +311,12 @@ have libgstreamer-plugins-base installed.</source> <message> <location line="+2"/> <source>Invalid URL</source> - <translation>Некорректный URL</translation> + <translation>Некорректный адрес URL</translation> </message> <message> <location line="+2"/> <source>Multicast error</source> - <translation type="unfinished"></translation> + <translation>Ошибка широковещательной передачи</translation> </message> <message> <location line="+3"/> @@ -358,7 +375,7 @@ have libgstreamer-plugins-base installed.</source> <message> <location line="+4"/> <source>Error opening URL</source> - <translation>Ошибка открытия URL</translation> + <translation>Ошибка открытия адреса URL</translation> </message> <message> <location line="+83"/> @@ -366,12 +383,40 @@ have libgstreamer-plugins-base installed.</source> <translation>Не удалось установить уровень громкости</translation> </message> <message> - <location line="+50"/> + <location line="+45"/> + <source>Loading clip failed</source> + <translation>Не удалось загрузить клип</translation> + </message> + <message> + <location line="+24"/> <source>Playback complete</source> <translation>Воспроизведение завершено</translation> </message> </context> <context> + <name>Phonon::MMF::AbstractVideoPlayer</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/abstractvideoplayer.cpp" line="+108"/> + <source>Pause failed</source> + <translation>Не удалось приостановить воспроизведение</translation> + </message> + <message> + <location line="+16"/> + <source>Seek failed</source> + <translation>Не удалось установить позицию</translation> + </message> + <message> + <location line="+54"/> + <source>Getting position failed</source> + <translation>Не удалось получить позицию</translation> + </message> + <message> + <location line="+66"/> + <source>Opening clip failed</source> + <translation>Не удалось открыть клип</translation> + </message> +</context> +<context> <name>Phonon::MMF::AudioEqualizer</name> <message> <location filename="../src/3rdparty/phonon/mmf/audioequalizer.cpp" line="+92"/> @@ -384,12 +429,19 @@ have libgstreamer-plugins-base installed.</source> <message> <location filename="../src/3rdparty/phonon/mmf/audioplayer.cpp" line="+173"/> <source>Getting position failed</source> - <translation type="unfinished"></translation> + <translation>Не удалось получить позицию</translation> </message> +</context> +<context> + <name>Phonon::MMF::DsaVideoPlayer</name> <message> - <location line="+36"/> - <source>Opening clip failed</source> - <translation type="unfinished"></translation> + <location filename="../src/3rdparty/phonon/mmf/videoplayer_dsa.cpp" line="+238"/> + <location line="+15"/> + <location line="+8"/> + <location line="+22"/> + <location line="+22"/> + <source>Video display error</source> + <translation>Ошибка отображения видео</translation> </message> </context> <context> @@ -397,7 +449,7 @@ have libgstreamer-plugins-base installed.</source> <message> <location filename="../src/3rdparty/phonon/mmf/effectfactory.cpp" line="+181"/> <source>Enabled</source> - <translation type="unfinished">Активно</translation> + <translation>Включено</translation> </message> </context> <context> @@ -406,74 +458,74 @@ have libgstreamer-plugins-base installed.</source> <location filename="../src/3rdparty/phonon/mmf/environmentalreverb.cpp" line="+146"/> <source>Decay HF ratio (%)</source> <extracomment>DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime.</extracomment> - <translation type="unfinished"></translation> + <translation>Коэффициент затухания ВЧ (%)</translation> </message> <message> <location line="+6"/> <source>Decay time (ms)</source> <extracomment>DecayTime: Time over which reverberation is diminished.</extracomment> - <translation type="unfinished"></translation> + <translation>Время затухания (мс)</translation> </message> <message> <location line="+7"/> <source>Density (%)</source> <extracomment>Density Delay between first and subsequent reflections. Note that the S60 platform documentation does not make clear the distinction between this value and the Diffusion value.</extracomment> - <translation type="unfinished"></translation> + <translation>Плотность (%)</translation> </message> <message> <location line="+6"/> <source>Diffusion (%)</source> <extracomment>Diffusion: Delay between first and subsequent reflections. Note that the S60 platform documentation does not make clear the distinction between this value and the Density value.</extracomment> - <translation type="unfinished"></translation> + <translation>Рассеивание (%)</translation> </message> <message> <location line="+5"/> <source>Reflections delay (ms)</source> <extracomment>ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection.</extracomment> - <translation type="unfinished"></translation> + <translation>Затухание отражений (мс)</translation> </message> <message> <location line="+7"/> <source>Reflections level (mB)</source> <extracomment>ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude.</extracomment> - <translation type="unfinished"></translation> + <translation>Уровень отражений (мБар)</translation> </message> <message> <location line="+7"/> <source>Reverb delay (ms)</source> <extracomment>ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation.</extracomment> - <translation type="unfinished"></translation> + <translation>Задержка эха (мс)</translation> </message> <message> <location line="+8"/> <source>Reverb level (mB)</source> <extracomment>ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.</extracomment> - <translation type="unfinished"></translation> + <translation>Уровень эха (мБар)</translation> </message> <message> <location line="+7"/> <source>Room HF level</source> <extracomment>RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound.</extracomment> - <translation type="unfinished"></translation> + <translation>Уровень ВЧ отражений</translation> </message> <message> <location line="+6"/> <source>Room level (mB)</source> <extracomment>RoomLevel: Master volume control for all reflected sound.</extracomment> - <translation type="unfinished"></translation> + <translation>Уровень отражений (мБар)</translation> </message> </context> <context> <name>Phonon::MMF::MediaObject</name> <message> - <location filename="../src/3rdparty/phonon/mmf/mediaobject.cpp" line="+270"/> + <location filename="../src/3rdparty/phonon/mmf/mediaobject.cpp" line="+276"/> <source>Error opening source: type not supported</source> <translation>Ошибка открытыия источника: тип не поддерживается</translation> </message> <message> <location line="+18"/> <source>Error opening source: media type could not be determined</source> - <translation>Ошибка открытыия источника: тип медиа-данных не определён</translation> + <translation>Ошибка открытыия источника: тип носителя не определён</translation> </message> </context> <context> @@ -485,40 +537,12 @@ have libgstreamer-plugins-base installed.</source> </message> </context> <context> - <name>Phonon::MMF::VideoPlayer</name> - <message> - <location filename="../src/3rdparty/phonon/mmf/mmf_videoplayer.cpp" line="+125"/> - <source>Pause failed</source> - <translation type="unfinished"></translation> - </message> + <name>Phonon::MMF::SurfaceVideoPlayer</name> <message> + <location filename="../src/3rdparty/phonon/mmf/videoplayer_surface.cpp" line="+126"/> <location line="+16"/> - <source>Seek failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+54"/> - <source>Getting position failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+26"/> - <source>Opening clip failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+26"/> - <source>Buffering clip failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+174"/> - <location line="+12"/> - <location line="+176"/> - <location line="+15"/> - <location line="+6"/> <source>Video display error</source> - <translation type="unfinished"></translation> + <translation>Ошибка отображения видео</translation> </message> </context> <context> @@ -536,7 +560,7 @@ have libgstreamer-plugins-base installed.</source> <location line="+18"/> <location line="+54"/> <source>Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%</source> - <translation>Используйте данный ползунок для настройки громкости. Крайнее левое положение соответствует 0%, крайнее правое - %1%</translation> + <translation>Используйте данный регулятор для настройки громкости. Крайнее левое положение соответствует 0%, крайнее правое - %1%</translation> </message> <message> <location line="+67"/> @@ -549,7 +573,7 @@ have libgstreamer-plugins-base installed.</source> <message> <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/> <source>%1, %2 not defined</source> - <translation type="unfinished">%1, %2 не определён</translation> + <translation>%1, %2 не определён</translation> </message> <message> <location line="+36"/> @@ -1149,43 +1173,43 @@ to <location line="+260"/> <location line="+4"/> <source>The protocol `%1' is not supported</source> - <translation>Протокол '%1' не поддерживается</translation> + <translation>Протокол "%1" не поддерживается</translation> </message> <message> <location line="-260"/> <source>The protocol `%1' does not support listing directories</source> - <translation>Протокол '%1' не поддерживает просмотр каталогов</translation> + <translation>Протокол "%1" не поддерживает просмотр каталогов</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support creating new directories</source> - <translation>Протокол '%1' не поддерживает создание каталогов</translation> + <translation>Протокол "%1" не поддерживает создание каталогов</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support removing files or directories</source> - <translation>Протокол '%1' не поддерживает удаление файлов или каталогов</translation> + <translation>Протокол "%1" не поддерживает удаление файлов или каталогов</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support renaming files or directories</source> - <translation>Протокол '%1' не поддерживает переименование файлов или каталогов</translation> + <translation>Протокол "%1" не поддерживает переименование файлов или каталогов</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support getting files</source> - <translation>Протокол '%1' не поддерживает доставку файлов</translation> + <translation>Протокол "%1" не поддерживает доставку файлов</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support putting files</source> - <translation>Протокол '%1' не поддерживает отправку файлов</translation> + <translation>Протокол "%1" не поддерживает отправку файлов</translation> </message> <message> <location line="+243"/> <location line="+4"/> <source>The protocol `%1' does not support copying or moving files or directories</source> - <translation>Протокол '%1' не поддерживает копирование или перемещение файлов или каталогов</translation> + <translation>Протокол "%1" не поддерживает копирование или перемещение файлов или каталогов</translation> </message> <message> <location line="+237"/> @@ -1225,7 +1249,7 @@ to <context> <name>QAbstractSocket</name> <message> - <location filename="../src/network/socket/qabstractsocket.cpp" line="+906"/> + <location filename="../src/network/socket/qabstractsocket.cpp" line="+916"/> <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+629"/> <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+661"/> <location line="+26"/> @@ -1247,12 +1271,12 @@ to <message> <location line="-559"/> <location line="+809"/> - <location line="+208"/> + <location line="+220"/> <source>Operation on socket is not supported</source> <translation>Операция с сокетом не поддерживается</translation> </message> <message> - <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+598"/> + <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+625"/> <location filename="../src/network/socket/qabstractsocket.cpp" line="+203"/> <source>Socket operation timed out</source> <translation>Время на операцию с сокетом истекло</translation> @@ -1271,7 +1295,7 @@ to <context> <name>QAbstractSpinBox</name> <message> - <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1260"/> + <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1263"/> <source>&Step up</source> <translation>Шаг вв&ерх</translation> </message> @@ -1297,14 +1321,9 @@ to <context> <name>QApplication</name> <message> - <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/> - <source>Activate</source> - <translation>Активировать</translation> - </message> - <message> <location filename="../src/gui/dialogs/qmessagebox.h" line="+354"/> <source>Executable '%1' requires Qt %2, found Qt %3.</source> - <translation>Программный модуль '%1' требует Qt %2, найдена версия %3.</translation> + <translation>Программный модуль "%1" требует Qt %2, найдена версия %3.</translation> </message> <message> <location line="+2"/> @@ -1312,16 +1331,21 @@ to <translation>Ошибка совместимости библиотеки Qt</translation> </message> <message> - <location filename="../src/gui/kernel/qapplication.cpp" line="+2287"/> - <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> + <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/> + <source>Activate</source> + <translation>Активировать</translation> </message> <message> - <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+2"/> + <location line="+2"/> <source>Activates the program's main window</source> <translation>Активирует главное окно программы</translation> </message> + <message> + <location filename="../src/gui/kernel/qapplication.cpp" line="-13"/> + <source>QT_LAYOUT_DIRECTION</source> + <comment>Translate this string to the string '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> </context> <context> <name>QAxSelect</name> @@ -1367,7 +1391,7 @@ to <context> <name>QColorDialog</name> <message> - <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1355"/> + <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1378"/> <source>Hu&e:</source> <translation>&Тон:</translation> </message> @@ -1425,7 +1449,7 @@ to <context> <name>QComboBox</name> <message> - <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/> + <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1772"/> <location line="+65"/> <source>Open</source> <translation>Открыть</translation> @@ -1572,6 +1596,1113 @@ to </message> </context> <context> + <name>QDeclarativeAbstractAnimation</name> + <message> + <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+166"/> + <source>Cannot animate non-existent property "%1"</source> + <translation>Невозможно анимировать несуществуещее свойство "%1"</translation> + </message> + <message> + <location line="+3"/> + <source>Cannot animate read-only property "%1"</source> + <translation>Невозможно анимировать свойство только для чтения "%1"</translation> + </message> + <message> + <location filename="../src/declarative/util/qdeclarativeutilmodule.cpp" line="+122"/> + <source>Animation is an abstract class</source> + <translation>Animation - это абстрактный класс</translation> + </message> +</context> +<context> + <name>QDeclarativeAnchorAnimation</name> + <message> + <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+2553"/> + <source>Cannot set a duration of < 0</source> + <translation>Невозможно установить длительность < 0</translation> + </message> +</context> +<context> + <name>QDeclarativeAnchors</name> + <message> + <location filename="../src/declarative/graphicsitems/qdeclarativeanchors.cpp" line="+180"/> + <source>Possible anchor loop detected on fill.</source> + <translation type="unfinished">Обнаружена возможная цикличная привязка на fill.</translation> + </message> + <message> + <location line="+29"/> + <source>Possible anchor loop detected on centerIn.</source> + <translation type="unfinished">Обнаружена возможная цикличная привязка на centerIn.</translation> + </message> + <message> + <location line="+201"/> + <location line="+34"/> + <location line="+610"/> + <location line="+37"/> + <source>Cannot anchor to an item that isn't a parent or sibling.</source> + <translation type="unfinished">Невозможно установить привязку к элементу, не являющемуся родителем или соседом.</translation> + </message> + <message> + <location line="-534"/> + <source>Possible anchor loop detected on vertical anchor.</source> + <translation type="unfinished">Обнаружена возможная цикличная привязка к вертикальной привязке.</translation> + </message> + <message> + <location line="+59"/> + <source>Possible anchor loop detected on horizontal anchor.</source> + <translation type="unfinished">Обнаружена возможная цикличная привязка к горизонтальной привязке.</translation> + </message> + <message> + <location line="+422"/> + <source>Cannot specify left, right, and hcenter anchors.</source> + <translation type="unfinished">Невозможно задать левую, правую и среднюю привязки.</translation> + </message> + <message> + <location line="+10"/> + <location line="+37"/> + <source>Cannot anchor to a null item.</source> + <translation type="unfinished">Невозможно привязаться к нулевому элементу.</translation> + </message> + <message> + <location line="-34"/> + <source>Cannot anchor a horizontal edge to a vertical edge.</source> + <translation type="unfinished">Невозможно привязать горизонтальный край к вертикальному.</translation> + </message> + <message> + <location line="+6"/> + <location line="+37"/> + <source>Cannot anchor item to self.</source> + <translation type="unfinished">Невозможно привязать элемент к самому себе.</translation> + </message> + <message> + <location line="-25"/> + <source>Cannot specify top, bottom, and vcenter anchors.</source> + <translation type="unfinished">Невозможно задать верхнюю, нижнюю и среднюю привязки.</translation> + </message> + <message> + <location line="+6"/> + <source>Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.</source> + <translation type="unfinished">Невозможно использовать базовую привязку вместе с верхней, нижней и центральной по вертикали.</translation> + </message> + <message> + <location line="+13"/> + <source>Cannot anchor a vertical edge to a horizontal edge.</source> + <translation type="unfinished">Невозможно привязать вертикальный край к горизонтальному.</translation> + </message> +</context> +<context> + <name>QDeclarativeAnimatedImage</name> + <message> + <location filename="../src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp" line="+86"/> + <source>Qt was built without support for QMovie</source> + <translation>Qt было собрано без поддержки QMovie</translation> + </message> +</context> +<context> + <name>QDeclarativeBehavior</name> + <message> + <location filename="../src/declarative/util/qdeclarativebehavior.cpp" line="+127"/> + <source>Cannot change the animation assigned to a Behavior.</source> + <translation type="unfinished">Невозможно изменить анимацию, назначенную поведению.</translation> + </message> +</context> +<context> + <name>QDeclarativeBinding</name> + <message> + <location filename="../src/declarative/qml/qdeclarativebinding.cpp" line="+238"/> + <source>Binding loop detected for property "%1"</source> + <translation type="unfinished">Обнаружена цикличная привязка для свойства "%1"</translation> + </message> +</context> +<context> + <name>QDeclarativeCompiledBindings</name> + <message> + <location filename="../src/declarative/qml/qdeclarativecompiledbindings.cpp" line="+372"/> + <source>Binding loop detected for property "%1"</source> + <translation type="unfinished">Обнаружена цикличная привязка для свойства "%1"</translation> + </message> +</context> +<context> + <name>QDeclarativeCompiler</name> + <message> + <location filename="../src/declarative/qml/qdeclarativecompiler.cpp" line="+186"/> + <location line="+1592"/> + <location line="+186"/> + <location line="+81"/> + <location line="+75"/> + <location line="+487"/> + <source>Invalid property assignment: "%1" is a read-only property</source> + <translation>Некорректное присваивание свойства: "%1" свойство только для чтения</translation> + </message> + <message> + <location line="-2412"/> + <source>Invalid property assignment: unknown enumeration</source> + <translation>Некорректное присваивание свойства: неизвестное перечисление</translation> + </message> + <message> + <location line="+8"/> + <source>Invalid property assignment: string expected</source> + <translation>Некорректное присваивание свойства: ожидается значение типа "string"</translation> + </message> + <message> + <location line="+3"/> + <source>Invalid property assignment: url expected</source> + <translation>Некорректное присваивание свойства: ожидается значение типа "url"</translation> + </message> + <message> + <location line="+10"/> + <source>Invalid property assignment: unsigned int expected</source> + <translation>Некорректное присваивание свойства: ожидается значение типа "unsigned int"</translation> + </message> + <message> + <location line="+11"/> + <source>Invalid property assignment: int expected</source> + <translation>Некорректное присваивание свойства: ожидается значение типа "int"</translation> + </message> + <message> + <location line="+4"/> + <source>Invalid property assignment: float expected</source> + <translation>Некорректное присваивание свойства: ожидается значение типа "float"</translation> + </message> + <message> + <location line="+3"/> + <source>Invalid property assignment: double expected</source> + <translation>Некорректное присваивание свойства: ожидается значение типа "double"</translation> + </message> + <message> + <location line="+6"/> + <source>Invalid property assignment: color expected</source> + <translation>Некорректное присваивание свойства: ожидается значение типа "color"</translation> + </message> + <message> + <location line="+7"/> + <source>Invalid property assignment: date expected</source> + <translation>Некорректное присваивание свойства: ожидается значение типа "date"</translation> + </message> + <message> + <location line="+7"/> + <source>Invalid property assignment: time expected</source> + <translation>Некорректное присваивание свойства: ожидается значение типа "time"</translation> + </message> + <message> + <location line="+7"/> + <source>Invalid property assignment: datetime expected</source> + <translation>Некорректное присваивание свойства: ожидается значение типа "datetime"</translation> + </message> + <message> + <location line="+8"/> + <source>Invalid property assignment: point expected</source> + <translation>Некорректное присваивание свойства: ожидается значение типа "point"</translation> + </message> + <message> + <location line="+8"/> + <source>Invalid property assignment: size expected</source> + <translation>Некорректное присваивание свойства: ожидается значение типа "size"</translation> + </message> + <message> + <location line="+8"/> + <source>Invalid property assignment: rect expected</source> + <translation>Некорректное присваивание свойства: ожидается значение типа "rect"</translation> + </message> + <message> + <location line="+5"/> + <source>Invalid property assignment: boolean expected</source> + <translation>Некорректное присваивание свойства: ожидается значение булевого типа</translation> + </message> + <message> + <location line="+7"/> + <source>Invalid property assignment: 3D vector expected</source> + <translation>Некорректное присваивание свойства: ожидается значение типа "трёхмерный вектор"</translation> + </message> + <message> + <location line="+9"/> + <source>Invalid property assignment: unsupported type "%1"</source> + <translation>Некорректное присваивание свойства: неподдерживаемый тип "%1"</translation> + </message> + <message> + <location line="+275"/> + <source>Element is not creatable.</source> + <translation>Элемент не является создаваемым.</translation> + </message> + <message> + <location line="+618"/> + <source>Component elements may not contain properties other than id</source> + <translation type="unfinished">Элементы Component не могут содержать свойств кроме id</translation> + </message> + <message> + <location line="+7"/> + <source>Invalid component id specification</source> + <translation type="unfinished">Некорректная спецификация id компонента</translation> + </message> + <message> + <location line="+6"/> + <location line="+478"/> + <source>id is not unique</source> + <translation>id не уникален</translation> + </message> + <message> + <location line="-468"/> + <source>Invalid component body specification</source> + <translation type="unfinished">Некорректная спецификация тела компонента</translation> + </message> + <message> + <location line="+3"/> + <source>Component objects cannot declare new properties.</source> + <translation type="unfinished">Объекты Component не могут объявлять новые свойства.</translation> + </message> + <message> + <location line="+2"/> + <source>Component objects cannot declare new signals.</source> + <translation type="unfinished">Объекты Component не могут объявлять новые сигналы.</translation> + </message> + <message> + <location line="+2"/> + <source>Component objects cannot declare new functions.</source> + <translation type="unfinished">Объекты Component не могут объявлять новые функции.</translation> + </message> + <message> + <location line="+7"/> + <source>Cannot create empty component specification</source> + <translation type="unfinished">Невозможно создать пустую спецификацю компонента</translation> + </message> + <message> + <location line="+89"/> + <source>Incorrectly specified signal assignment</source> + <translation type="unfinished">Неверно указано назначение сигнала</translation> + </message> + <message> + <location line="+12"/> + <source>Cannot assign a value to a signal (expecting a script to be run)</source> + <translation type="unfinished">Невозможно назначить значение сигналу (сценарий должен быть запущен)</translation> + </message> + <message> + <location line="+4"/> + <source>Empty signal assignment</source> + <translation type="unfinished">Пустое назначение сигнала</translation> + </message> + <message> + <location line="+38"/> + <source>Empty property assignment</source> + <translation type="unfinished">Пустое назначение свойства</translation> + </message> + <message> + <location line="+12"/> + <source>Attached properties cannot be used here</source> + <translatorcomment>здесь - в данном контексте?</translatorcomment> + <translation type="unfinished">Прикреплённые свойства не могут быть использованы здесь</translation> + </message> + <message> + <location line="+15"/> + <location line="+102"/> + <source>Non-existent attached object</source> + <translation type="unfinished">Несуществующий прикреплённый объект</translation> + </message> + <message> + <location line="-98"/> + <location line="+101"/> + <source>Invalid attached object assignment</source> + <translation type="unfinished">Некорректное назначение прикреплённого объекта</translation> + </message> + <message> + <location line="-48"/> + <source>Cannot assign to non-existent default property</source> + <translation type="unfinished">Невозможно назначить несуществующему свойству по умолчанию</translation> + </message> + <message> + <location line="+2"/> + <location line="+352"/> + <source>Cannot assign to non-existent property "%1"</source> + <translation type="unfinished">Невозможно назначить несуществующему свойству "%1"</translation> + </message> + <message> + <location line="-322"/> + <source>Invalid use of namespace</source> + <translation>Некорректное использование пространства имён</translation> + </message> + <message> + <location line="+5"/> + <source>Not an attached property name</source> + <translation type="unfinished">Не является именем привязанного свойства</translation> + </message> + <message> + <location line="+182"/> + <source>Invalid use of id property</source> + <translation type="unfinished">Некорректное использование свойства id</translation> + </message> + <message> + <location line="+89"/> + <location line="+2"/> + <source>Property has already been assigned a value</source> + <translation type="unfinished">Свойству уже назначено значение</translation> + </message> + <message> + <location line="+12"/> + <location line="+7"/> + <source>Invalid grouped property access</source> + <translation type="unfinished">Некорректный доступ к сгруппированному свойству</translation> + </message> + <message> + <location line="+3"/> + <source>Cannot assign a value directly to a grouped property</source> + <translation type="unfinished">Невозможно присвоить значение непосредственно сгруппированному свойству</translation> + </message> + <message> + <location line="+16"/> + <source>Invalid property use</source> + <translation>Некорректное использование свойства</translation> + </message> + <message> + <location line="+13"/> + <source>Property assignment expected</source> + <translation type="unfinished">Ожидается назначение свойства</translation> + </message> + <message> + <location line="+3"/> + <source>Single property assignment expected</source> + <translation type="unfinished">Ожидается одиночное назначение свойства</translation> + </message> + <message> + <location line="+5"/> + <source>Unexpected object assignment</source> + <translation type="unfinished">Неожиданное назначение объекта</translation> + </message> + <message> + <location line="+57"/> + <source>Cannot assign object to list</source> + <translation type="unfinished">Невозможно назначить объект списку</translation> + </message> + <message> + <location line="+6"/> + <source>Can only assign one binding to lists</source> + <translation type="unfinished">Можно назначить только одну связь для списка</translation> + </message> + <message> + <location line="+6"/> + <source>Cannot assign primitives to lists</source> + <translation type="unfinished">Невозможно назначить примитивы списку</translation> + </message> + <message> + <location line="+13"/> + <source>Cannot assign multiple values to a script property</source> + <translation type="unfinished">Невозможно назначить множественное значение свойству сценария</translation> + </message> + <message> + <location line="+3"/> + <source>Invalid property assignment: script expected</source> + <translation type="unfinished">Некорректное присваивание свойства: ожидается сценарий</translation> + </message> + <message> + <location line="+105"/> + <source>Cannot assign object to property</source> + <translation type="unfinished">Невозможно назначить объектсвойству</translation> + </message> + <message> + <location line="+50"/> + <source>"%1" cannot operate on "%2"</source> + <translation>"%1" не может воздействовать на "%2"</translation> + </message> + <message> + <location line="+117"/> + <source>Duplicate default property</source> + <translation type="unfinished">Дублирование свойства по умолчанию</translation> + </message> + <message> + <location line="+5"/> + <source>Duplicate property name</source> + <translation type="unfinished">Дублирование названия свойства</translation> + </message> + <message> + <location line="+3"/> + <source>Property names cannot begin with an upper case letter</source> + <translation>Названия свойств не могут начинаться с заглавной буквы</translation> + </message> + <message> + <location line="+7"/> + <source>Duplicate signal name</source> + <translation type="unfinished">Дублирование названия сигнала</translation> + </message> + <message> + <location line="+2"/> + <source>Signal names cannot begin with an upper case letter</source> + <translation>Названия сигналов не могут начинаться с заглавной буквы</translation> + </message> + <message> + <location line="+6"/> + <source>Duplicate method name</source> + <translation type="unfinished">Дублирование название метода</translation> + </message> + <message> + <location line="+2"/> + <source>Method names cannot begin with an upper case letter</source> + <translation>Названия методов не могут начинаться с заглавной буквы</translation> + </message> + <message> + <location line="+21"/> + <source>Property value set multiple times</source> + <translation type="unfinished">Значение свойства задано несколько раз</translation> + </message> + <message> + <location line="+4"/> + <source>Invalid property nesting</source> + <translation type="unfinished">Некорректное вложенность свойств</translation> + </message> + <message> + <location line="+53"/> + <source>Cannot override FINAL property</source> + <translation>Невозможно переопределить свойство FINAL</translation> + </message> + <message> + <location line="+24"/> + <source>Invalid property type</source> + <translation>Некорректный тип свойства</translation> + </message> + <message> + <location line="+159"/> + <source>Invalid empty ID</source> + <translation>Некорректный пустой идентификатор</translation> + </message> + <message> + <location line="+3"/> + <source>IDs cannot start with an uppercase letter</source> + <translation>Идентификаторы не могут начинаться с заглавной буквы</translation> + </message> + <message> + <location line="+6"/> + <source>IDs must start with a letter or underscore</source> + <translation>Идентификаторы должны начинаться с буквы или подчёркивания</translation> + </message> + <message> + <location line="+2"/> + <source>IDs must contain only letters, numbers, and underscores</source> + <translation>Идентификаторы должны содержать только буквы, цифры и подчёркивания</translation> + </message> + <message> + <location line="+6"/> + <source>ID illegally masks global JavaScript property</source> + <translation type="unfinished">Идентификатор неверно маскирует глобальное свойство JavaScript</translation> + </message> + <message> + <location line="+31"/> + <location line="+9"/> + <source>No property alias location</source> + <translation type="unfinished">Отсутствует размещение псевдонима свойства</translation> + </message> + <message> + <location line="-4"/> + <location line="+25"/> + <source>Invalid alias location</source> + <translation type="unfinished">Некорректное размещение псевдонима</translation> + </message> + <message> + <location line="-16"/> + <source>Invalid alias reference. An alias reference must be specified as <id> or <id>.<property></source> + <translation type="unfinished">Некорректная ссылка на псевдоним. Ссылка на псевдоним должна быть указана, как <id> или <id>.<property></translation> + </message> + <message> + <location line="+3"/> + <source>Invalid alias reference. Unable to find id "%1"</source> + <translation type="unfinished">Некорректная ссылка на псевдоним. Не удалось найти id "%1"</translation> + </message> +</context> +<context> + <name>QDeclarativeComponent</name> + <message> + <location filename="../src/declarative/qml/qdeclarativecomponent.cpp" line="+459"/> + <source>Invalid empty URL</source> + <translation>Пустой адрес URL</translation> + </message> +</context> +<context> + <name>QDeclarativeCompositeTypeManager</name> + <message> + <location filename="../src/declarative/qml/qdeclarativecompositetypemanager.cpp" line="+475"/> + <location line="+266"/> + <source>Resource %1 unavailable</source> + <translation>Ресурс "%1" недоступен</translation> + </message> + <message> + <location line="-122"/> + <source>Namespace %1 cannot be used as a type</source> + <translation>Пространство имён "%1" не может быть использовано в качестве типа</translation> + </message> + <message> + <location line="+2"/> + <source>%1 %2</source> + <translation>%1 %2</translation> + </message> + <message> + <location line="+47"/> + <source>Type %1 unavailable</source> + <translation>Тип "%1" недоступен</translation> + </message> +</context> +<context> + <name>QDeclarativeConnections</name> + <message> + <location filename="../src/declarative/util/qdeclarativeconnections.cpp" line="+209"/> + <location line="+60"/> + <source>Cannot assign to non-existent property "%1"</source> + <translation type="unfinished">Невозможно назначить несуществующему свойству "%1"</translation> + </message> + <message> + <location line="-50"/> + <source>Connections: nested objects not allowed</source> + <translation>Подключения: вложенные объекты недопустимы</translation> + </message> + <message> + <location line="+3"/> + <source>Connections: syntax error</source> + <translation>Подключения: синтаксическая ошибка</translation> + </message> + <message> + <location line="+8"/> + <source>Connections: script expected</source> + <translation>Подключения: ожидается сценарий</translation> + </message> +</context> +<context> + <name>QDeclarativeEngine</name> + <message> + <location filename="../src/declarative/qml/qdeclarativesqldatabase.cpp" line="+204"/> + <source>executeSql called outside transaction()</source> + <translation>executeSql() вызван вне transaction()</translation> + </message> + <message> + <location line="+58"/> + <source>Read-only Transaction</source> + <translation>Транзакция только для чтения</translation> + </message> + <message> + <location line="+20"/> + <source>Version mismatch: expected %1, found %2</source> + <translation>Несовпадение версий: ожидалась %1, найдена %2</translation> + </message> + <message> + <location line="+14"/> + <source>SQL transaction failed</source> + <translation>Не удалось выполнить транзакцию SQL</translation> + </message> + <message> + <location line="+21"/> + <source>transaction: missing callback</source> + <translation>транзакция: отсутствует обратный вызов</translation> + </message> + <message> + <location line="+57"/> + <location line="+16"/> + <source>SQL: database version mismatch</source> + <translation>Не совпадает версия базы данных SQL</translation> + </message> +</context> +<context> + <name>QDeclarativeFlipable</name> + <message> + <location filename="../src/declarative/graphicsitems/qdeclarativeflipable.cpp" line="+127"/> + <source>front is a write-once property</source> + <translation>front - свойство для однократной записи</translation> + </message> + <message> + <location line="+19"/> + <source>back is a write-once property</source> + <translation>back - свойство для однократной записи</translation> + </message> +</context> +<context> + <name>QDeclarativeImportDatabase</name> + <message> + <location filename="../src/declarative/qml/qdeclarativeimport.cpp" line="+294"/> + <source>module "%1" definition "%2" not readable</source> + <translation type="unfinished">невозможно прочитать определение "%2" модуля "%1"</translation> + </message> + <message> + <location line="+20"/> + <source>plugin cannot be loaded for module "%1": %2</source> + <translation type="unfinished">модуль не может быть загружен для подмодуля "%1": %2</translation> + </message> + <message> + <location line="+5"/> + <source>module "%1" plugin "%2" not found</source> + <translation type="unfinished">подмодуль "%1" модуля "%2" не найден</translation> + </message> + <message> + <location line="+79"/> + <location line="+55"/> + <source>module "%1" version %2.%3 is not installed</source> + <translation>модуль "%1" версии %2.%3 не установлен</translation> + </message> + <message> + <location line="-53"/> + <source>module "%1" is not installed</source> + <translation>модуль "%1" не установлен</translation> + </message> + <message> + <location line="+14"/> + <location line="+19"/> + <source>"%1": no such directory</source> + <translation>"%1": каталог не существует</translation> + </message> + <message> + <location line="-2"/> + <source>import "%1" has no qmldir and no namespace</source> + <translation type="unfinished">каталог "%1" не содержит ни qmldir, ни namespace</translation> + </message> + <message> + <location line="+46"/> + <source>- %1 is not a namespace</source> + <translation>- %1 - некорректное пространство имён</translation> + </message> + <message> + <location line="+6"/> + <source>- nested namespaces not allowed</source> + <translation>- вложенные пространства имён недопустимы</translation> + </message> + <message> + <location line="+47"/> + <location line="+4"/> + <source>local directory</source> + <translation>локальный каталог</translation> + </message> + <message> + <location line="+6"/> + <source>is ambiguous. Found in %1 and in %2</source> + <translation>неоднозначно. Найдено в %1 и %2</translation> + </message> + <message> + <location line="+4"/> + <source>is ambiguous. Found in %1 in version %2.%3 and %4.%5</source> + <translation>неоднозначно. Найдено в %1 версий %2.%3 и %4.%5</translation> + </message> + <message> + <location line="+14"/> + <source>is instantiated recursively</source> + <translation>обрабатывается рекурсивно</translation> + </message> + <message> + <location line="+2"/> + <source>is not a type</source> + <translation>не является типом</translation> + </message> +</context> +<context> + <name>QDeclarativeKeyNavigationAttached</name> + <message> + <location filename="../src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp" line="+66"/> + <source>KeyNavigation is only available via attached properties</source> + <translation type="unfinished">KeyNavigation доступна только через прикреплённые свойства</translation> + </message> +</context> +<context> + <name>QDeclarativeKeysAttached</name> + <message> + <location line="+1"/> + <source>Keys is only available via attached properties</source> + <translation type="unfinished">Keys доступны только через прикреплённые свойства</translation> + </message> +</context> +<context> + <name>QDeclarativeListModel</name> + <message> + <location filename="../src/declarative/util/qdeclarativelistmodel.cpp" line="+399"/> + <source>remove: index %1 out of range</source> + <translation>remove: индекс %1 вне диапазона</translation> + </message> + <message> + <location line="+33"/> + <source>insert: value is not an object</source> + <translation>insert: значение не является объектом</translation> + </message> + <message> + <location line="+5"/> + <source>insert: index %1 out of range</source> + <translation>insert: индекс %1 вне диапазона</translation> + </message> + <message> + <location line="+30"/> + <source>move: out of range</source> + <translation>move: индекс вне диапазона</translation> + </message> + <message> + <location line="+40"/> + <source>append: value is not an object</source> + <translation>append: значение не является объектом</translation> + </message> + <message> + <location line="+55"/> + <source>set: value is not an object</source> + <translation>set: значение не является объектом</translation> + </message> + <message> + <location line="+4"/> + <location line="+34"/> + <source>set: index %1 out of range</source> + <translation>set: индекс %1 вне диапазона</translation> + </message> + <message> + <location line="+39"/> + <location line="+15"/> + <source>ListElement: cannot contain nested elements</source> + <translation>ListElement: не может содержать вложенные элементы</translation> + </message> + <message> + <location line="+4"/> + <source>ListElement: cannot use reserved "id" property</source> + <translation>ListElement: невозможно использовать зарезервированное свойство "id"</translation> + </message> + <message> + <location line="+49"/> + <source>ListElement: cannot use script for property value</source> + <translation>ListElement: невозможно использовать сценарий в качестве значения свойства</translation> + </message> + <message> + <location line="+29"/> + <source>ListModel: undefined property '%1'</source> + <translation>ListModel: неопределённое свойство "%1"</translation> + </message> +</context> +<context> + <name>QDeclarativeLoader</name> + <message> + <location filename="../src/declarative/graphicsitems/qdeclarativeloader.cpp" line="+313"/> + <source>Loader does not support loading non-visual elements.</source> + <translation>Загрузчик не поддерживает загрузку невизуальных элементов.</translation> + </message> +</context> +<context> + <name>QDeclarativeParentAnimation</name> + <message> + <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="-169"/> + <source>Unable to preserve appearance under complex transform</source> + <translation>Невозможно сохранить внешний вид при сложном преобразовании</translation> + </message> + <message> + <location line="+10"/> + <location line="+7"/> + <source>Unable to preserve appearance under non-uniform scale</source> + <translation>Невозможно сохранить внешний вид при неоднородном масштабе</translation> + </message> + <message> + <location line="+7"/> + <source>Unable to preserve appearance under scale of 0</source> + <translation>Невозможно сохранить внешний вид при масштабе 0</translation> + </message> +</context> +<context> + <name>QDeclarativeParentChange</name> + <message> + <location filename="../src/declarative/util/qdeclarativestateoperations.cpp" line="+95"/> + <source>Unable to preserve appearance under complex transform</source> + <translation>Невозможно сохранить внешний вид при сложном преобразовании</translation> + </message> + <message> + <location line="+10"/> + <location line="+7"/> + <source>Unable to preserve appearance under non-uniform scale</source> + <translation>Невозможно сохранить внешний вид при неоднородном масштабе</translation> + </message> + <message> + <location line="+7"/> + <source>Unable to preserve appearance under scale of 0</source> + <translation>Невозможно сохранить внешний вид при масштабе 0</translation> + </message> +</context> +<context> + <name>QDeclarativeParser</name> + <message> + <location filename="../src/declarative/qml/parser/qdeclarativejslexer.cpp" line="+542"/> + <location line="+123"/> + <location line="+54"/> + <source>Illegal unicode escape sequence</source> + <translation type="unfinished">Неверная unicode esc-последовательность</translation> + </message> + <message> + <location line="-140"/> + <source>Illegal character</source> + <translation>Недопустимый символ</translation> + </message> + <message> + <location line="+14"/> + <source>Unclosed string at end of line</source> + <translation>Незакрытый текст в конце строки</translation> + </message> + <message> + <location line="+26"/> + <source>Illegal escape squence</source> + <translation type="unfinished">Неверная esc-последовательность</translation> + </message> + <message> + <location line="+72"/> + <source>Unclosed comment at end of file</source> + <translation>Незакрытый комментарий в конце строки</translation> + </message> + <message> + <location line="+102"/> + <source>Illegal syntax for exponential number</source> + <translation type="unfinished">Недопустимый синтаксис для экспоненциального числа</translation> + </message> + <message> + <location line="+26"/> + <source>Identifier cannot start with numeric literal</source> + <translation>Идентификатор не может начинаться с цифры</translation> + </message> + <message> + <location line="+338"/> + <source>Unterminated regular expression literal</source> + <translation>Незаконченный литерал регулярного выражения</translation> + </message> + <message> + <location line="+15"/> + <source>Invalid regular expression flag '%0'</source> + <translation>Некорректный флаг "%0" в регулярном выражении</translation> + </message> + <message> + <location line="+16"/> + <location line="+22"/> + <source>Unterminated regular expression backslash sequence</source> + <translation>Регулярное выражение содержит незавершённую экранированную последовательность</translation> + </message> + <message> + <location line="+13"/> + <source>Unterminated regular expression class</source> + <translation>Регулярное выражение содержит незавершённый класс</translation> + </message> + <message> + <location filename="../src/declarative/qml/parser/qdeclarativejsparser.cpp" line="+1828"/> + <location line="+67"/> + <source>Syntax error</source> + <translation>Синтаксическая ошибка</translation> + </message> + <message> + <location line="-65"/> + <source>Unexpected token `%1'</source> + <translation>Неожиданный символ "%1"</translation> + </message> + <message> + <location line="+28"/> + <location line="+24"/> + <source>Expected token `%1'</source> + <translation>Ожидается символ "%1"</translation> + </message> + <message> + <location filename="../src/declarative/qml/qdeclarativescriptparser.cpp" line="+260"/> + <location line="+431"/> + <location line="+59"/> + <source>Property value set multiple times</source> + <translation type="unfinished">Значение свойства установлено несколько раз</translation> + </message> + <message> + <location line="-479"/> + <source>Expected type name</source> + <translation>Ожидается название типа</translation> + </message> + <message> + <location line="+136"/> + <source>Invalid import qualifier ID</source> + <translation type="unfinished">Некорректный ID спецификатора импорта</translation> + </message> + <message> + <location line="+8"/> + <source>Reserved name "Qt" cannot be used as an qualifier</source> + <translation type="unfinished">Зарезервированное имя "Qt" не может быть использовано в качестве спецификатора</translation> + </message> + <message> + <location line="+15"/> + <source>Script import qualifiers must be unique.</source> + <translation type="unfinished">Спецификаторы импорта сценария должны быть уникальными.</translation> + </message> + <message> + <location line="+10"/> + <source>Script import requires a qualifier</source> + <translation type="unfinished">Для импорта сценария требуется спецификатор</translation> + </message> + <message> + <location line="+11"/> + <source>Library import requires a version</source> + <translation type="unfinished">Импорт библиотеки требует версию</translation> + </message> + <message> + <location line="+59"/> + <source>Expected parameter type</source> + <translation>Ожидается тип параметра</translation> + </message> + <message> + <location line="+42"/> + <source>Invalid property type modifier</source> + <translation>Некорректный модификатор типа свойства</translation> + </message> + <message> + <location line="+9"/> + <source>Unexpected property type modifier</source> + <translation>Неожиданный модификатор типа свойства</translation> + </message> + <message> + <location line="+9"/> + <source>Expected property type</source> + <translation>Ожидается тип свойства</translation> + </message> + <message> + <location line="+9"/> + <source>Readonly not yet supported</source> + <translation type="unfinished">Readonly ещё не поддерживается</translation> + </message> + <message> + <location line="+215"/> + <source>JavaScript declaration outside Script element</source> + <translation>Определение JavaScript вне элемента Script</translation> + </message> +</context> +<context> + <name>QDeclarativePauseAnimation</name> + <message> + <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="-1977"/> + <source>Cannot set a duration of < 0</source> + <translation>Невозможно установить длительность < 0</translation> + </message> +</context> +<context> + <name>QDeclarativePixmapCache</name> + <message> + <location filename="../src/declarative/util/qdeclarativepixmapcache.cpp" line="+190"/> + <source>Error decoding: %1: %2</source> + <translation>Ошибка декодирования: %1: %2</translation> + </message> + <message> + <location line="+70"/> + <source>Failed to get image from provider: %1</source> + <translation>Не удалось получить изображение от поставщика: %1</translation> + </message> + <message> + <location line="+19"/> + <location line="+345"/> + <source>Cannot open: %1</source> + <translation>Не удалось открыть: %1</translation> + </message> + <message> + <location line="+37"/> + <source>Unknown Error loading %1</source> + <translation>Неизвестная ошибка загрузки %1</translation> + </message> +</context> +<context> + <name>QDeclarativePropertyAnimation</name> + <message> + <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+1102"/> + <source>Cannot set a duration of < 0</source> + <translation>Невозможно установить длительность < 0</translation> + </message> +</context> +<context> + <name>QDeclarativePropertyChanges</name> + <message> + <location filename="../src/declarative/util/qdeclarativepropertychanges.cpp" line="+252"/> + <source>PropertyChanges does not support creating state-specific objects.</source> + <translation type="unfinished">PropertyChanges не поддерживают создание объектов, зависимых от состояния.</translation> + </message> + <message> + <location line="+157"/> + <source>Cannot assign to non-existent property "%1"</source> + <translation type="unfinished">Невозможно назначить несуществующему свойству "%1"</translation> + </message> + <message> + <location line="+3"/> + <source>Cannot assign to read-only property "%1"</source> + <translation type="unfinished">Невозможно назначить свойству только для чтения "%1"</translation> + </message> +</context> +<context> + <name>QDeclarativeTextInput</name> + <message> + <location filename="../src/declarative/graphicsitems/qdeclarativetextinput.cpp" line="+798"/> + <location line="+8"/> + <source>Could not load cursor delegate</source> + <translation type="unfinished">Не удалось загрузить делегат курсора</translation> + </message> + <message> + <location line="+11"/> + <source>Could not instantiate cursor delegate</source> + <translation type="unfinished">Не удалось инстанциировать делегат курсора</translation> + </message> +</context> +<context> + <name>QDeclarativeVME</name> + <message> + <location filename="../src/declarative/qml/qdeclarativevme.cpp" line="+194"/> + <source>Unable to create object of type %1</source> + <translation>Невозможно создать объект типа "%1"</translation> + </message> + <message> + <location line="+390"/> + <source>Cannot assign value %1 to property %2</source> + <translation>Невозможно установить значение "%1" свойству "%2"</translation> + </message> + <message> + <location line="+22"/> + <source>Cannot assign object type %1 with no default method</source> + <translation type="unfinished">Невозможно назначить объект типа %1 без метода по умолчанию</translation> + </message> + <message> + <location line="+3"/> + <source>Cannot connect mismatched signal/slot %1 %vs. %2</source> + <translation type="unfinished">Невозможно подключить отсутствующий сигнал/слот %1 к %2</translation> + </message> + <message> + <location line="+5"/> + <source>Cannot assign an object to signal property %1</source> + <translation type="unfinished">Невозможно назначить объект к свойству сигнала %1</translation> + </message> + <message> + <location line="+146"/> + <source>Cannot assign object to list</source> + <translation type="unfinished">Невозможно назначить объект списку</translation> + </message> + <message> + <location line="+41"/> + <source>Cannot assign object to interface property</source> + <translation type="unfinished">Невозможно назначить объект свойству интерфейса</translation> + </message> + <message> + <location line="+11"/> + <source>Unable to create attached object</source> + <translation type="unfinished">Не удалось создать вложенный объект</translation> + </message> + <message> + <location line="+32"/> + <source>Cannot set properties on %1 as it is null</source> + <translation type="unfinished">Невозможно установить свойства для %1, так как он нулевой</translation> + </message> +</context> +<context> + <name>QDeclarativeVisualDataModel</name> + <message> + <location filename="../src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp" line="+1088"/> + <source>Delegate component must be Item type.</source> + <translation type="unfinished">Компинент делегата должен быть типа Item.</translation> + </message> +</context> +<context> + <name>QDeclarativeXmlListModel</name> + <message> + <location filename="../src/declarative/util/qdeclarativeutilmodule.cpp" line="-12"/> + <location line="+2"/> + <source>Qt was built without support for xmlpatterns</source> + <translation>Qt было собрано без поддержки xmlpatterns</translation> + </message> +</context> +<context> + <name>QDeclarativeXmlListModelRole</name> + <message> + <location filename="../src/declarative/util/qdeclarativexmllistmodel_p.h" line="+174"/> + <source>An XmlRole query must not start with '/'</source> + <translation type="unfinished">Запрос XmlRole не должен начинаться с '/'</translation> + </message> +</context> +<context> + <name>QDeclarativeXmlRoleList</name> + <message> + <location filename="../src/declarative/util/qdeclarativexmllistmodel.cpp" line="+712"/> + <source>An XmlListModel query must start with '/' or "//"</source> + <translation type="unfinished">Запрос XmlListModel должен начинаться с '/' или "//"</translation> + </message> +</context> +<context> <name>QDial</name> <message> <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/> @@ -1592,12 +2723,12 @@ to <context> <name>QDialog</name> <message> - <location filename="../src/gui/dialogs/qdialog.cpp" line="+652"/> + <location filename="../src/gui/dialogs/qdialog.cpp" line="+645"/> <source>What's This?</source> <translation>Что это?</translation> </message> <message> - <location line="-135"/> + <location line="-122"/> <source>Done</source> <translation>Готово</translation> </message> @@ -1605,51 +2736,46 @@ to <context> <name>QDialogButtonBox</name> <message> - <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1876"/> + <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1920"/> <location line="+464"/> - <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+650"/> + <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+649"/> <source>OK</source> <translation>ОК</translation> </message> <message> - <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+0"/> - <source>&OK</source> - <translation>&ОК</translation> + <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+3"/> + <source>Save</source> + <translation>Сохранить</translation> </message> <message> - <location line="+3"/> + <location line="+0"/> <source>&Save</source> <translation>&Сохранить</translation> </message> <message> - <location line="+0"/> - <source>Save</source> - <translation>Сохранить</translation> - </message> - <message> <location line="+3"/> <source>Open</source> <translation>Открыть</translation> </message> <message> <location line="+3"/> - <source>&Cancel</source> - <translation>От&мена</translation> + <source>Cancel</source> + <translation>Отмена</translation> </message> <message> <location line="+0"/> - <source>Cancel</source> - <translation>Отмена</translation> + <source>&Cancel</source> + <translation>От&мена</translation> </message> <message> <location line="+3"/> - <source>&Close</source> - <translation>&Закрыть</translation> + <source>Close</source> + <translation>Закрыть</translation> </message> <message> <location line="+0"/> - <source>Close</source> - <translation>Закрыть</translation> + <source>&Close</source> + <translation>&Закрыть</translation> </message> <message> <location line="+3"/> @@ -1726,6 +2852,11 @@ to <source>Close without Saving</source> <translation>Закрыть без сохранения</translation> </message> + <message> + <location line="-27"/> + <source>&OK</source> + <translation>&ОК</translation> + </message> </context> <context> <name>QDirModel</name> @@ -1791,7 +2922,17 @@ to <context> <name>QErrorMessage</name> <message> - <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+208"/> + <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+414"/> + <source>&Show this message again</source> + <translation>&Показывать это сообщение в дальнейшем</translation> + </message> + <message> + <location line="+1"/> + <source>&OK</source> + <translation>&Закрыть</translation> + </message> + <message> + <location line="-207"/> <source>Debug Message:</source> <translation>Отладочное сообщение:</translation> </message> @@ -1805,21 +2946,11 @@ to <source>Fatal Error:</source> <translation>Критическая ошибка:</translation> </message> - <message> - <location line="+200"/> - <source>&Show this message again</source> - <translation>&Показывать это сообщение в дальнейшем</translation> - </message> - <message> - <location line="+1"/> - <source>&OK</source> - <translation>&Закрыть</translation> - </message> </context> <context> <name>QFile</name> <message> - <location filename="../src/corelib/io/qfile.cpp" line="+698"/> + <location filename="../src/corelib/io/qfile.cpp" line="+703"/> <location line="+155"/> <source>Destination file exists</source> <translation>Файл существует</translation> @@ -1858,18 +2989,71 @@ to <context> <name>QFileDialog</name> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+557"/> - <location line="+471"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+558"/> + <location line="+481"/> <source>All Files (*)</source> <translation>Все файлы (*)</translation> </message> <message> - <location line="+216"/> - <source>Directories</source> - <translation>Каталоги</translation> + <location filename="../src/gui/dialogs/qfiledialog.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> + <source>Back</source> + <translation>Назад</translation> </message> <message> - <location line="-3"/> + <location/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> + <source>List View</source> + <translation>Список</translation> + </message> + <message> + <location/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> + <source>Detail View</source> + <translation>Подробный вид</translation> + </message> + <message> + <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+467"/> + <location line="+1"/> + <source>File</source> + <translation>Файл</translation> + </message> + <message> + <location line="+5"/> + <source>File Folder</source> + <comment>Match Windows Explorer</comment> + <translation>Папка с файлами</translation> + </message> + <message> + <location line="+2"/> + <source>Folder</source> + <comment>All other platforms</comment> + <translation>Папка</translation> + </message> + <message> + <location line="+9"/> + <source>Alias</source> + <comment>Mac OS X Finder</comment> + <translation>Псевдоним</translation> + </message> + <message> + <location line="+2"/> + <source>Shortcut</source> + <comment>All other platforms</comment> + <translation>Ярлык</translation> + </message> + <message> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-498"/> + <source>Open</source> + <translation>Открыть</translation> + </message> + <message> + <location line="+2"/> + <source>Save As</source> + <translation>Сохранить как</translation> + </message> + <message> + <location line="+709"/> <location line="+55"/> <location line="+1532"/> <source>&Open</source> @@ -1882,12 +3066,59 @@ to <translation>&Сохранить</translation> </message> <message> - <location line="-756"/> - <source>Open</source> - <translation>Открыть</translation> + <location line="+1381"/> + <source>'%1' is write protected. +Do you want to delete it anyway?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+424"/> + <source>Recent Places</source> + <translation>Недавние документы</translation> </message> <message> - <location line="+1527"/> + <location line="-2540"/> + <source>&Rename</source> + <translation>&Переименовать</translation> + </message> + <message> + <location line="+1"/> + <source>&Delete</source> + <translation>&Удалить</translation> + </message> + <message> + <location line="+1"/> + <source>Show &hidden files</source> + <translation>Показать ск&рытые файлы</translation> + </message> + <message> + <location line="+1986"/> + <source>New Folder</source> + <translation>Новая папка</translation> + </message> + <message> + <location line="-2021"/> + <source>Find Directory</source> + <translation>Найти каталог</translation> + </message> + <message> + <location line="+716"/> + <source>Directories</source> + <translation>Каталоги</translation> + </message> + <message> + <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+148"/> + <source>All Files (*.*)</source> + <translation>Все файлы (*.*)</translation> + </message> + <message> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-675"/> + <location line="+679"/> + <source>Directory:</source> + <translation>Каталог:</translation> + </message> + <message> + <location line="+819"/> <source>%1 already exists. Do you want to replace it?</source> <translation>%1 уже существует. @@ -1908,58 +3139,19 @@ Please verify the correct file name was given.</source> <translation>Мой компьютер</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1516"/> - <source>&Rename</source> - <translation>&Переименовать</translation> - </message> - <message> - <location line="+1"/> - <source>&Delete</source> - <translation>&Удалить</translation> - </message> - <message> - <location line="+1"/> - <source>Show &hidden files</source> - <translation>Показать ск&рытые файлы</translation> - </message> - <message> <location filename="../src/gui/dialogs/qfiledialog.ui"/> <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> - <source>Back</source> - <translation>Назад</translation> - </message> - <message> - <location/> - <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Parent Directory</source> <translation>Родительский каталог</translation> </message> <message> <location/> <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> - <source>List View</source> - <translation>Список</translation> - </message> - <message> - <location/> - <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> - <source>Detail View</source> - <translation>Подробный вид</translation> - </message> - <message> - <location/> - <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Files of type:</source> <translation>Типы файлов:</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+6"/> - <location line="+669"/> - <source>Directory:</source> - <translation>Каталог:</translation> - </message> - <message> - <location line="+785"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-54"/> <location line="+862"/> <source>%1 Directory not found. @@ -1969,16 +3161,9 @@ Please verify the correct directory name was given.</source> Проверьте правильность указанного имени каталога.</translation> </message> <message> - <location line="-218"/> - <source>'%1' is write protected. -Do you want to delete it anyway?</source> - <translation>'%1' защищён от записи. -Всё-равно хотите удалить?</translation> - </message> - <message> - <location line="+5"/> + <location line="-213"/> <source>Are sure you want to delete '%1'?</source> - <translation>Вы действительно хотите удалить '%1'?</translation> + <translation>Вы действительно хотите удалить "%1"?</translation> </message> <message> <location line="+15"/> @@ -1986,67 +3171,17 @@ Do you want to delete it anyway?</source> <translation>Не удалось удалить каталог.</translation> </message> <message> - <location line="+404"/> - <source>Recent Places</source> - <translation>Недавние документы</translation> - </message> - <message> - <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+174"/> - <source>All Files (*.*)</source> - <translation>Все файлы (*.*)</translation> - </message> - <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2559"/> - <source>Save As</source> - <translation>Сохранить как</translation> - </message> - <message> - <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+462"/> + <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="-22"/> <source>Drive</source> <translation>Диск</translation> </message> <message> - <location line="+3"/> - <location line="+1"/> - <source>File</source> - <translation>Файл</translation> - </message> - <message> - <location line="+5"/> - <source>File Folder</source> - <comment>Match Windows Explorer</comment> - <translation>Папка с файлами</translation> - </message> - <message> - <location line="+2"/> - <source>Folder</source> - <comment>All other platforms</comment> - <translation>Папка</translation> - </message> - <message> - <location line="+9"/> - <source>Alias</source> - <comment>Mac OS X Finder</comment> - <translation>Псевдоним</translation> - </message> - <message> - <location line="+2"/> - <source>Shortcut</source> - <comment>All other platforms</comment> - <translation>Ярлык</translation> - </message> - <message> - <location line="+7"/> + <location line="+29"/> <source>Unknown</source> <translation>Неизвестный</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-4"/> - <source>Find Directory</source> - <translation>Найти каталог</translation> - </message> - <message> - <location line="+29"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2140"/> <source>Show </source> <translation>Показать </translation> </message> @@ -2057,17 +3192,12 @@ Do you want to delete it anyway?</source> <translation>Вперёд</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1982"/> - <source>New Folder</source> - <translation>Новая папка</translation> - </message> - <message> - <location line="-1975"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+7"/> <source>&New Folder</source> <translation>&Новая папка</translation> </message> <message> - <location line="+677"/> + <location line="+687"/> <location line="+43"/> <source>&Choose</source> <translation>&Выбрать</translation> @@ -2078,8 +3208,8 @@ Do you want to delete it anyway?</source> <translation>Удалить</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-713"/> - <location line="+673"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-723"/> + <location line="+683"/> <source>File &name:</source> <translation>&Имя файла:</translation> </message> @@ -2095,16 +3225,70 @@ Do you want to delete it anyway?</source> <source>Create New Folder</source> <translation>Создать папку</translation> </message> + <message> + <location/> + <source>Go back</source> + <translation>Назад</translation> + </message> + <message> + <location/> + <source>Go forward</source> + <translation>Вперёд</translation> + </message> + <message> + <location/> + <source>Go to the parent directory</source> + <translation>Перейти в родительский каталог</translation> + </message> + <message> + <location/> + <source>Create a New Folder</source> + <translation>Создать новую папку</translation> + </message> + <message> + <location/> + <source>Change to list view mode</source> + <translation>Переключить в режим списка</translation> + </message> + <message> + <location/> + <source>Change to detail view mode</source> + <translation>Переключить в подробный режим</translation> + </message> </context> <context> <name>QFileSystemModel</name> <message> - <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+483"/> - <source>%1 byte(s)</source> + <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+740"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+482"/> + <source>%1 TB</source> + <translation>%1 Тб</translation> + </message> + <message> + <location line="+2"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> + <source>%1 GB</source> + <translation>%1 Гб</translation> + </message> + <message> + <location line="+2"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> + <source>%1 MB</source> + <translation>%1 Мб</translation> + </message> + <message> + <location line="+2"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> + <source>%1 KB</source> + <translation>%1 Кб</translation> + </message> + <message> + <location line="+1"/> + <source>%1 bytes</source> <translation>%1 байт</translation> </message> <message> - <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+828"/> + <location line="+89"/> <source>Invalid filename</source> <translation>Некорректное имя файла</translation> </message> @@ -2141,7 +3325,7 @@ Do you want to delete it anyway?</source> <translation>Дата изменения</translation> </message> <message> - <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+258"/> + <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+261"/> <source>My Computer</source> <translation>Мой компьютер</translation> </message> @@ -2151,32 +3335,8 @@ Do you want to delete it anyway?</source> <translation>Компьютер</translation> </message> <message> - <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="-164"/> - <location filename="../src/gui/itemviews/qdirmodel.cpp" line="-7"/> - <source>%1 TB</source> - <translation>%1 Тб</translation> - </message> - <message> - <location line="+2"/> - <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> - <source>%1 GB</source> - <translation>%1 Гб</translation> - </message> - <message> - <location line="+2"/> - <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> - <source>%1 MB</source> - <translation>%1 Мб</translation> - </message> - <message> - <location line="+2"/> - <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> - <source>%1 KB</source> - <translation>%1 Кб</translation> - </message> - <message> - <location line="+1"/> - <source>%1 bytes</source> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+1"/> + <source>%1 byte(s)</source> <translation>%1 байт</translation> </message> </context> @@ -2319,7 +3479,7 @@ Do you want to delete it anyway?</source> <message> <location line="+3"/> <source>Malayalam</source> - <translation>Малаяльская</translation> + <translation>Малайялам</translation> </message> <message> <location line="+3"/> @@ -2344,7 +3504,7 @@ Do you want to delete it anyway?</source> <message> <location line="+3"/> <source>Myanmar</source> - <translation>Майанмарская</translation> + <translation>Мьянма</translation> </message> <message> <location line="+3"/> @@ -2405,7 +3565,7 @@ Do you want to delete it anyway?</source> <context> <name>QFontDialog</name> <message> - <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+776"/> + <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+768"/> <source>&Font</source> <translation>&Шрифт</translation> </message> @@ -2440,28 +3600,55 @@ Do you want to delete it anyway?</source> <translation>Пример</translation> </message> <message> - <location line="+1"/> - <source>Wr&iting System</source> - <translation>&Система письма</translation> - </message> - <message> - <location line="-609"/> - <location line="+257"/> + <location line="-595"/> <source>Select Font</source> <translation>Выбор шрифта</translation> </message> + <message> + <location line="+596"/> + <source>Wr&iting System</source> + <translation>&Система письма</translation> + </message> </context> <context> <name>QFtp</name> <message> - <location filename="../src/network/access/qftp.cpp" line="+828"/> - <location filename="../src/qt3support/network/q3ftp.cpp" line="+683"/> - <source>Not connected</source> - <translation>Соединение не установлено</translation> + <location filename="../src/qt3support/network/q3ftp.cpp" line="+2303"/> + <source>Host %1 found</source> + <translation>Узел %1 найден</translation> </message> <message> - <location line="+68"/> - <location filename="../src/qt3support/network/q3ftp.cpp" line="+65"/> + <location line="+7"/> + <source>Host found</source> + <translation>Узел найден</translation> + </message> + <message> + <location filename="../src/network/access/qftp.cpp" line="+1008"/> + <location filename="../src/qt3support/network/q3ftp.cpp" line="-1456"/> + <location line="+1451"/> + <source>Connected to host %1</source> + <translation>Установлено соединение с узлом %1</translation> + </message> + <message> + <location filename="../src/qt3support/network/q3ftp.cpp" line="+7"/> + <source>Connected to host</source> + <translation>Соединение с узлом установлено</translation> + </message> + <message> + <location line="-5"/> + <source>Connection to %1 closed</source> + <translation>Соединение с %1 закрыто</translation> + </message> + <message> + <location filename="../src/network/access/qftp.cpp" line="+1383"/> + <location filename="../src/qt3support/network/q3ftp.cpp" line="-243"/> + <location line="+250"/> + <source>Connection closed</source> + <translation>Соединение закрыто</translation> + </message> + <message> + <location line="-1495"/> + <location filename="../src/qt3support/network/q3ftp.cpp" line="-1566"/> <source>Host %1 not found</source> <translation>Узел %1 не найден</translation> </message> @@ -2477,28 +3664,15 @@ Do you want to delete it anyway?</source> <translation>Время на соединение с узлом %1 истекло</translation> </message> <message> - <location line="+104"/> - <location filename="../src/qt3support/network/q3ftp.cpp" line="+102"/> - <location line="+1451"/> - <source>Connected to host %1</source> - <translation>Установлено соединение с узлом %1</translation> - </message> - <message> - <location line="+219"/> - <location filename="../src/qt3support/network/q3ftp.cpp" line="-1290"/> - <source>Connection refused for data connection</source> - <translation>Отказ в соединении для передачи данных</translation> - </message> - <message> - <location line="+178"/> + <location line="+501"/> <location line="+29"/> - <location filename="../src/qt3support/network/q3ftp.cpp" line="+195"/> + <location filename="../src/qt3support/network/q3ftp.cpp" line="+458"/> <location line="+728"/> <source>Unknown error</source> <translation>Неизвестная ошибка</translation> </message> <message> - <location line="+891"/> + <location line="+897"/> <location filename="../src/qt3support/network/q3ftp.cpp" line="+77"/> <source>Connecting to host failed: %1</source> @@ -2570,47 +3744,37 @@ Do you want to delete it anyway?</source> %1</translation> </message> <message> - <location line="+28"/> - <location filename="../src/qt3support/network/q3ftp.cpp" line="+25"/> - <location line="+250"/> - <source>Connection closed</source> - <translation>Соединение закрыто</translation> - </message> - <message> - <location filename="../src/qt3support/network/q3ftp.cpp" line="-11"/> - <source>Host %1 found</source> - <translation>Узел %1 найден</translation> - </message> - <message> - <location line="+4"/> - <source>Connection to %1 closed</source> - <translation>Соединение с %1 закрыто</translation> - </message> - <message> - <location line="+3"/> - <source>Host found</source> - <translation>Узел найден</translation> + <location line="-1535"/> + <location filename="../src/qt3support/network/q3ftp.cpp" line="-1356"/> + <source>Not connected</source> + <translation>Соединение не установлено</translation> </message> <message> - <location line="+2"/> - <source>Connected to host</source> - <translation>Соединение с узлом установлено</translation> + <location line="+399"/> + <location filename="../src/qt3support/network/q3ftp.cpp" line="+332"/> + <source>Connection refused for data connection</source> + <translation>Отказ в соединении для передачи данных</translation> </message> </context> <context> <name>QHostInfo</name> <message> - <location filename="../src/network/kernel/qhostinfo_p.h" line="+101"/> + <location filename="../src/network/kernel/qhostinfo_p.h" line="+103"/> <source>Unknown error</source> <translation>Неизвестная ошибка</translation> </message> + <message> + <location filename="../src/network/kernel/qhostinfo.cpp" line="+171"/> + <source>No host name given</source> + <translation>Имя узла не задано</translation> + </message> </context> <context> <name>QHostInfoAgent</name> <message> - <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+257"/> + <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+260"/> <location line="+32"/> - <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+216"/> + <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+215"/> <location line="+27"/> <source>Host not found</source> <translation>Узел не найден</translation> @@ -2631,12 +3795,14 @@ Do you want to delete it anyway?</source> <translation>Неизвестная ошибка</translation> </message> <message> + <location line="-98"/> <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-67"/> <source>No host name given</source> <translation>Имя узла не задано</translation> </message> <message> - <location line="+0"/> + <location line="+1"/> + <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+0"/> <source>Invalid hostname</source> <translation>Некорректное имя узла</translation> </message> @@ -2644,113 +3810,113 @@ Do you want to delete it anyway?</source> <context> <name>QHttp</name> <message> - <location filename="../src/network/access/qhttp.cpp" line="+1582"/> - <location line="+820"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+1159"/> - <location line="+567"/> - <source>Unknown error</source> - <translation>Неизвестная ошибка</translation> - </message> - <message> - <location line="-568"/> - <location filename="../src/qt3support/network/q3http.cpp" line="-370"/> - <source>Request aborted</source> - <translation>Запрос прерван</translation> + <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-6"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+1835"/> + <source>Connection refused</source> + <translation>Отказано в соединении</translation> </message> <message> - <location line="+579"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+381"/> - <source>No server set to connect to</source> - <translation>Не указан сервер для подключения</translation> + <location filename="../src/network/access/qhttp.cpp" line="+2639"/> + <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+3"/> + <source>Host %1 not found</source> + <translation>Узел %1 не найден</translation> </message> <message> - <location line="+164"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+56"/> + <location line="-62"/> + <location filename="../src/qt3support/network/q3http.cpp" line="-45"/> <source>Wrong content length</source> <translation>Неверная длина содержимого</translation> </message> <message> - <location line="+4"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+4"/> - <source>Server closed connection unexpectedly</source> - <translation>Сервер неожиданно разорвал соединение</translation> + <location line="+82"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+48"/> + <source>HTTP request failed</source> + <translation>HTTP-запрос не удался</translation> </message> <message> - <location line="+200"/> - <source>Unknown authentication method</source> - <translation>Неизвестный метод авторизации</translation> + <location filename="../src/qt3support/network/q3http.cpp" line="+450"/> + <source>Host %1 found</source> + <translation>Узел %1 найден</translation> </message> <message> - <location line="+183"/> - <source>Error writing response to device</source> - <translation>Ошибка записи ответа на устройство</translation> + <location line="+14"/> + <source>Host found</source> + <translation>Узел найден</translation> </message> <message> - <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-6"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+38"/> - <source>Connection refused</source> - <translation>Отказано в соединении</translation> + <location line="-11"/> + <source>Connected to host %1</source> + <translation>Установлено соединение с узлом %1</translation> </message> <message> - <location filename="../src/network/access/qhttp.cpp" line="-325"/> - <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+3"/> - <source>Host %1 not found</source> - <translation>Узел %1 не найден</translation> + <location line="+14"/> + <source>Connected to host</source> + <translation>Соединение с узлом установлено</translation> </message> <message> - <location line="+20"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+3"/> - <source>HTTP request failed</source> - <translation>HTTP-запрос не удался</translation> + <location line="-11"/> + <source>Connection to %1 closed</source> + <translation>Соединение с узлом %1 закрыто</translation> </message> <message> - <location line="+94"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+69"/> - <source>Invalid HTTP response header</source> - <translation>Некорректный HTTP-заголовок ответа</translation> + <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+7"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+14"/> + <source>Connection closed</source> + <translation>Соединение закрыто</translation> </message> <message> - <location line="+125"/> - <location line="+48"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+40"/> - <location line="+47"/> - <source>Invalid HTTP chunked body</source> - <translation>Некорректное HTTP-фрагментирование данных</translation> + <location filename="../src/network/access/qhttp.cpp" line="-1077"/> + <location line="+820"/> + <location filename="../src/qt3support/network/q3http.cpp" line="-1152"/> + <location line="+567"/> + <source>Unknown error</source> + <translation>Неизвестная ошибка</translation> </message> <message> - <location filename="../src/qt3support/network/q3http.cpp" line="+294"/> - <source>Host %1 found</source> - <translation>Узел %1 найден</translation> + <location line="-568"/> + <location filename="../src/qt3support/network/q3http.cpp" line="-370"/> + <source>Request aborted</source> + <translation>Запрос прерван</translation> </message> <message> - <location line="+3"/> - <source>Connected to host %1</source> - <translation>Установлено соединение с узлом %1</translation> + <location line="+579"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+381"/> + <source>No server set to connect to</source> + <translation>Не указан сервер для подключения</translation> </message> <message> - <location line="+3"/> - <source>Connection to %1 closed</source> - <translation>Соединение с узлом %1 закрыто</translation> + <location line="+168"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+60"/> + <source>Server closed connection unexpectedly</source> + <translation>Сервер неожиданно разорвал соединение</translation> </message> <message> - <location line="+8"/> - <source>Host found</source> - <translation>Узел найден</translation> + <location line="+172"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+113"/> + <source>Invalid HTTP response header</source> + <translation>Некорректный HTTP-заголовок ответа</translation> </message> <message> - <location line="+3"/> - <source>Connected to host</source> - <translation>Соединение с узлом установлено</translation> + <location line="+28"/> + <source>Unknown authentication method</source> + <translation>Неизвестный метод авторизации</translation> </message> <message> - <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+7"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+3"/> - <source>Connection closed</source> - <translation>Соединение закрыто</translation> + <location line="+97"/> + <location line="+48"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+40"/> + <location line="+47"/> + <source>Invalid HTTP chunked body</source> + <translation>Некорректное HTTP-фрагментирование данных</translation> + </message> + <message> + <location line="+38"/> + <source>Error writing response to device</source> + <translation>Ошибка записи ответа на устройство</translation> </message> <message> - <location filename="../src/network/access/qhttp.cpp" line="-135"/> + <location line="-173"/> <source>Proxy authentication required</source> <translation>Требуется авторизация на прокси-сервере</translation> </message> @@ -2760,11 +3926,6 @@ Do you want to delete it anyway?</source> <translation>Требуется авторизация</translation> </message> <message> - <location line="-159"/> - <source>Connection refused (or timed out)</source> - <translation>В соединении отказано (или время ожидания истекло)</translation> - </message> - <message> <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+6"/> <source>Proxy requires authentication</source> <translation>Прокси-сервер требует авторизацию</translation> @@ -2780,17 +3941,22 @@ Do you want to delete it anyway?</source> <translation>Данные повреждены</translation> </message> <message> - <location line="+3"/> + <location line="+6"/> + <source>SSL handshake failed</source> + <translation>Квитирование SSL не удалось</translation> + </message> + <message> + <location line="-3"/> <source>Unknown protocol specified</source> <translation>Указан неизвестный протокол</translation> </message> <message> - <location line="+3"/> - <source>SSL handshake failed</source> - <translation>Квитирование SSL не удалось</translation> + <location filename="../src/network/access/qhttp.cpp" line="-159"/> + <source>Connection refused (or timed out)</source> + <translation>В соединении отказано (или время ожидания истекло)</translation> </message> <message> - <location filename="../src/network/access/qhttp.cpp" line="-2266"/> + <location line="-2266"/> <source>HTTPS connection requested but SSL support not compiled in</source> <translation>Запрошено соединение по протоколу HTTPS, но поддержка SSL не скомпилирована</translation> </message> @@ -2959,7 +4125,7 @@ Do you want to delete it anyway?</source> <context> <name>QIODevice</name> <message> - <location filename="../src/corelib/global/qglobal.cpp" line="+2094"/> + <location filename="../src/corelib/global/qglobal.cpp" line="+2120"/> <source>Permission denied</source> <translation>Доступ запрещён</translation> </message> @@ -2979,7 +4145,7 @@ Do you want to delete it anyway?</source> <translation>Нет свободного места на устройстве</translation> </message> <message> - <location filename="../src/corelib/io/qiodevice.cpp" line="+1565"/> + <location filename="../src/corelib/io/qiodevice.cpp" line="+1598"/> <source>Unknown error</source> <translation>Неизвестная ошибка</translation> </message> @@ -2987,7 +4153,7 @@ Do you want to delete it anyway?</source> <context> <name>QInputContext</name> <message> - <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+256"/> + <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+301"/> <source>XIM</source> <translation>Метод ввода X-сервера</translation> </message> @@ -3030,27 +4196,27 @@ Do you want to delete it anyway?</source> <message> <location filename="../src/corelib/plugin/qlibrary.cpp" line="+383"/> <source>Could not mmap '%1': %2</source> - <translation>Не удалось выполнить mmap '%1': %2</translation> + <translation>Не удалось выполнить mmap "%1": %2</translation> </message> <message> <location line="+22"/> <source>Plugin verification data mismatch in '%1'</source> - <translation>Проверочная информация для модуля '%1' не совпадает</translation> + <translation>Проверочная информация для модуля "%1" не совпадает</translation> </message> <message> <location line="+6"/> <source>Could not unmap '%1': %2</source> - <translation>Не удалось выполнить unmap '%1': %2</translation> + <translation>Не удалось выполнить unmap "%1": %2</translation> </message> <message> - <location line="+345"/> + <location line="+375"/> <source>The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]</source> - <translation>Модуль '%1' использует несоместимую библиотеку Qt. (%2.%3.%4) [%5]</translation> + <translation>Модуль "%1" использует несоместимую библиотеку Qt. (%2.%3.%4) [%5]</translation> </message> <message> <location line="+20"/> <source>The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"</source> - <translation>Модуль '%1' использует несоместимую библиотеку Qt. Ожидается ключ "%2", но получен ключ "%3"</translation> + <translation>Модуль "%1" использует несоместимую библиотеку Qt. Ожидается ключ "%2", но получен ключ "%3"</translation> </message> <message> <location line="+365"/> @@ -3058,7 +4224,8 @@ Do you want to delete it anyway?</source> <translation>Неизвестная ошибка</translation> </message> <message> - <location line="-402"/> + <location line="-540"/> + <location line="+138"/> <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+343"/> <source>The shared library was not found.</source> <translation>Динамическая библиотека не найдена.</translation> @@ -3066,12 +4233,12 @@ Do you want to delete it anyway?</source> <message> <location line="+2"/> <source>The file '%1' is not a valid Qt plugin.</source> - <translation>Файл '%1' - не является корректным модулем Qt.</translation> + <translation>Файл "%1" - не является корректным модулем Qt.</translation> </message> <message> <location line="+43"/> <source>The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)</source> - <translation>Модуль '%1' использует несоместимую библиотеку Qt. (Невозможно совместить релизные и отладочные библиотеки.)</translation> + <translation>Модуль "%1" использует несоместимую библиотеку Qt. (Невозможно совместить релизные и отладочные библиотеки.)</translation> </message> <message> <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+236"/> @@ -3095,7 +4262,12 @@ Do you want to delete it anyway?</source> <context> <name>QLineEdit</name> <message> - <location filename="../src/gui/widgets/qlineedit.cpp" line="+2072"/> + <location filename="../src/gui/widgets/qlineedit.cpp" line="+2116"/> + <source>Select All</source> + <translation>Выделить всё</translation> + </message> + <message> + <location line="-40"/> <source>&Undo</source> <translation>&Отменить действие</translation> </message> @@ -3124,11 +4296,6 @@ Do you want to delete it anyway?</source> <source>Delete</source> <translation>Удалить</translation> </message> - <message> - <location line="+8"/> - <source>Select All</source> - <translation>Выделить всё</translation> - </message> </context> <context> <name>QLocalServer</name> @@ -3171,7 +4338,7 @@ Do you want to delete it anyway?</source> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> - <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/> + <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+79"/> <location line="+59"/> <source>%1: Invalid name</source> <translation>%1: Некорректное имя</translation> @@ -3228,7 +4395,7 @@ Do you want to delete it anyway?</source> <context> <name>QMYSQLDriver</name> <message> - <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1270"/> + <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1287"/> <source>Unable to open database '</source> <translation>Невозможно открыть базу данных '</translation> </message> @@ -3380,12 +4547,7 @@ Do you want to delete it anyway?</source> <translation>&Закрыть</translation> </message> <message> - <location line="-787"/> - <source>- [%1]</source> - <translation>- [%1]</translation> - </message> - <message> - <location line="+58"/> + <location line="-729"/> <source>Maximize</source> <translation>Распахнуть</translation> </message> @@ -3414,6 +4576,11 @@ Do you want to delete it anyway?</source> <source>Menu</source> <translation>Меню</translation> </message> + <message> + <location line="-79"/> + <source>- [%1]</source> + <translation>- [%1]</translation> + </message> </context> <context> <name>QMenu</name> @@ -3440,7 +4607,7 @@ Do you want to delete it anyway?</source> <context> <name>QMenuBar</name> <message> - <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+436"/> + <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+456"/> <source>Actions</source> <translation>Действия</translation> </message> @@ -3448,12 +4615,7 @@ Do you want to delete it anyway?</source> <context> <name>QMessageBox</name> <message> - <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1116"/> - <source>Help</source> - <translation>Справка</translation> - </message> - <message> - <location line="-848"/> + <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1964"/> <location line="+847"/> <location filename="../src/gui/dialogs/qmessagebox.h" line="-52"/> <location line="+8"/> @@ -3461,30 +4623,35 @@ Do you want to delete it anyway?</source> <translation>Закрыть</translation> </message> <message> - <location line="+513"/> + <location line="+477"/> + <source><h3>About Qt</h3><p>This program uses Qt version %1.</p></source> + <translation><h3>О Qt</h3><p>Данная программа использует Qt версии %1.</p></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) 2010 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><p>Qt - это инструментарий для разработки кроссплатформенных приложений на C++.</p><p>Qt предоставляет совместимость на уровне исходных текстов между MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux и всеми популярными коммерческими вариантами Unix. Также Qt доступна для встраиваемых устройств в виде Qt для Embedded Linux и Qt для Windows CE.</p><p>Qt доступна под тремя различными лицензиями, разработанными для удовлетворения различных требований.</p><p>Qt под нашей коммерческой лицензией предназначена для развития проприетарного/коммерческого программного обеспечения, когда Вы не желаете предоставлять исходные тексты третьим сторонам, или в случае невозможности принятия условий лицензий GNU LGPL версии 2.1 или GNU GPL версии 3.0.</p><p>Qt под лицензией GNU LGPL версии 2.1 предназначена для разработки программного обеспечения с открытыми исходными текстами или коммерческого программного обеспечения при соблюдении условий лицензии GNU LGPL версии 2.1.</p><p>Qt под лицензией GNU General Public License версии 3.0 предназначена для разработки программных приложений в тех случаях, когда Вы хотели бы использовать такие приложения в сочетании с программным обеспечением на условиях лицензии GNU GPL с версии 3.0 или если Вы готовы соблюдать условия лицензии GNU GPL версии 3.0.</p><p>Обратитесь к <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> для обзора лицензий Qt.</p><p>Copyright (C) 2010 Корпорация Nokia и/или её дочерние подразделения.</p><p>Qt - продукт компании Nokia. Обратитесь к <a href="http://qt.nokia.com/">qt.nokia.com</a> для получения дополнительной информации.</p></translation> + </message> + <message> + <location line="+31"/> <source>About Qt</source> <translation>О Qt</translation> </message> <message> - <location line="-1614"/> + <location line="-512"/> + <source>Help</source> + <translation>Справка</translation> + </message> + <message> + <location line="-1129"/> <source>Show Details...</source> <translation>Показать подробности...</translation> </message> <message> - <location line="+1"/> + <location line="+0"/> <source>Hide Details...</source> <translation>Скрыть подробности...</translation> </message> - <message> - <location line="+1577"/> - <source><h3>About Qt</h3><p>This program uses Qt version %1.</p></source> - <translation><h3>О Qt</h3><p>Данная программа использует Qt версии %1.</p></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) 2010 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><p>Qt - это инструментарий для разработки кроссплатформенных приложений на C++.</p><p>Qt предоставляет совместимость на уровне исходных текстов между MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux и всеми популярными коммерческими вариантами Unix. Также Qt доступна для встраиваемых устройств в виде Qt для Embedded Linux и Qt для Windows CE.</p><p>Qt доступна под тремя различными лицензиями, разработанными для удовлетворения различных требований.</p><p>Qt под нашей коммерческой лицензией предназначена для развития проприетарного/коммерческого программного обеспечения, когда Вы не желаете предоставлять исходные тексты третьим сторонам, или в случае невозможности принятия условий лицензий GNU LGPL версии 2.1 или GNU GPL версии 3.0.</p><p>Qt под лицензией GNU LGPL версии 2.1 предназначена для разработки программного обеспечения с открытыми исходными текстами или коммерческого программного обеспечения при соблюдении условий лицензии GNU LGPL версии 2.1.</p><p>Qt под лицензией GNU General Public License версии 3.0 предназначена для разработки программных приложений в тех случаях, когда Вы хотели бы использовать такие приложения в сочетании с программным обеспечением на условиях лицензии GNU GPL с версии 3.0 или если Вы готовы соблюдать условия лицензии GNU GPL версии 3.0.</p><p>Обратитесь к <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> для обзора лицензий Qt.</p><p>Copyright (C) 2010 Корпорация Nokia и/или её дочерние подразделения.</p><p>Qt - продукт компании Nokia. Обратитесь к <a href="http://qt.nokia.com/">qt.nokia.com</a> для получения дополнительной информации.</p></translation> - </message> </context> <context> <name>QMultiInputContext</name> @@ -3499,19 +4666,18 @@ Do you want to delete it anyway?</source> <message> <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/> <source>Multiple input method switcher</source> - <translation type="unfinished">Переключатель режима множественного ввода</translation> + <translation>Переключатель режима множественного ввода</translation> </message> <message> <location line="+7"/> <source>Multiple input method switcher that uses the context menu of the text widgets</source> - <translatorcomment>текстовых виджетов <-?-> текстовых редакторов</translatorcomment> - <translation type="unfinished">Переключатель режима множественного ввода, используемый в контекстном меню текстовых виджетов</translation> + <translation>Переключатель режима множественного ввода, используемый в контекстном меню текстовых редакторов</translation> </message> </context> <context> <name>QNativeSocketEngine</name> <message> - <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/> + <location filename="../src/network/socket/qnativesocketengine.cpp" line="+209"/> <source>The remote host closed the connection</source> <translation>Удалённый узел закрыл соединение</translation> </message> @@ -3650,12 +4816,35 @@ Do you want to delete it anyway?</source> </message> </context> <context> + <name>QNetworkAccessDataBackend</name> + <message> + <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+76"/> + <source>Operation not supported on %1</source> + <translation>Операция не поддерживается для %1</translation> + </message> + <message> + <location line="+25"/> + <source>Invalid URI: %1</source> + <translation>Некорректный URI: %1</translation> + </message> +</context> +<context> <name>QNetworkAccessDebugPipeBackend</name> <message> <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+195"/> <source>Write error writing to %1: %2</source> <translation>Ошибка записи в %1: %2</translation> </message> + <message> + <location line="+60"/> + <source>Socket error on %1: %2</source> + <translation>Ошика сокета для %1: %2</translation> + </message> + <message> + <location line="+15"/> + <source>Remote host closed the connection prematurely on %1</source> + <translation>Удалённый узел неожиданно прервал соединение для %1</translation> + </message> </context> <context> <name>QNetworkAccessFileBackend</name> @@ -3719,48 +4908,123 @@ Do you want to delete it anyway?</source> <context> <name>QNetworkAccessHttpBackend</name> <message> - <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+599"/> + <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+652"/> <source>No suitable proxy found</source> <translation>Подходящий прокси-сервер не найден</translation> </message> </context> <context> + <name>QNetworkAccessManager</name> + <message> + <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+942"/> + <source>Network access is disabled.</source> + <translation>Доступ в сеть отключён.</translation> + </message> +</context> +<context> <name>QNetworkReply</name> <message> - <location line="+101"/> + <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+100"/> <source>Error downloading %1 - server replied: %2</source> <translation>Ошибка загрузки %1 - ответ сервера: %2</translation> </message> <message> - <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+80"/> + <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="-860"/> <source>Protocol "%1" is unknown</source> <translation>Неизвестный протокол "%1"</translation> </message> + <message> + <location line="+192"/> + <source>Network session error.</source> + <translation>Ошибка сетевой сессии.</translation> + </message> + <message> + <location line="+352"/> + <source>Temporary network failure.</source> + <translation>Временная ошибка сети.</translation> + </message> </context> <context> <name>QNetworkReplyImpl</name> <message> - <location line="+525"/> + <location line="+120"/> <location line="+28"/> <source>Operation canceled</source> <translation>Операция отменена</translation> </message> </context> <context> - <name>QOCIDriver</name> + <name>QNetworkSession</name> <message> - <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2083"/> - <source>Unable to logon</source> - <translation>Невозможно авторизоваться</translation> + <location filename="../src/network/bearer/qnetworksession.cpp" line="+449"/> + <source>Invalid configuration.</source> + <translation>Некорректная конфигурация.</translation> + </message> +</context> +<context> + <name>QNetworkSessionPrivateImpl</name> + <message> + <location filename="../src/plugins/bearer/icd/qnetworksession_impl.cpp" line="+1005"/> + <source>Roaming error</source> + <translatorcomment>или перемещения?</translatorcomment> + <translation type="unfinished">Ошибка роуминга</translation> + </message> + <message> + <location line="+3"/> + <source>Session aborted by user or system</source> + <translation>Сессия прервана пользователем или системой</translation> </message> <message> - <location line="-144"/> + <location line="+4"/> + <source>Unidentified Error</source> + <translation>Неопределённая ошибка</translation> + </message> + <message> + <location filename="../src/plugins/bearer/qnetworksession_impl.cpp" line="+272"/> + <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+280"/> + <source>Unknown session error.</source> + <translation>Неизвестная ошибка сессии.</translation> + </message> + <message> + <location line="+2"/> + <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/> + <source>The session was aborted by the user or system.</source> + <translation>Сессия была прервана пользователем или системой.</translation> + </message> + <message> + <location line="+2"/> + <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/> + <source>The requested operation is not supported by the system.</source> + <translation>Требуемая операция не поддерживается системой.</translation> + </message> + <message> + <location line="+2"/> + <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/> + <source>The specified configuration cannot be used.</source> + <translation>Невозможно использовать указанную конфигурацию.</translation> + </message> + <message> + <location line="+2"/> + <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/> + <source>Roaming was aborted or is not possible.</source> + <translation type="unfinished">Роуминг прерван или невозможен.</translation> + </message> +</context> +<context> + <name>QOCIDriver</name> + <message> + <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+1944"/> <source>Unable to initialize</source> <comment>QOCIDriver</comment> <translation>Невозможно инициализировать</translation> </message> <message> - <location line="+215"/> + <location line="+144"/> + <source>Unable to logon</source> + <translation>Невозможно авторизоваться</translation> + </message> + <message> + <location line="+71"/> <source>Unable to begin transaction</source> <translation>Невозможно начать транзакцию</translation> </message> @@ -3823,12 +5087,12 @@ Do you want to delete it anyway?</source> <context> <name>QODBCDriver</name> <message> - <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1806"/> + <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1888"/> <source>Unable to connect</source> <translation>Невозможно соединиться</translation> </message> <message> - <location line="+238"/> + <location line="+269"/> <source>Unable to disable autocommit</source> <translation>Невозможно отключить автозавершение транзакций</translation> </message> @@ -3848,7 +5112,7 @@ Do you want to delete it anyway?</source> <translation>Невозможно включить автозавершение транзакций</translation> </message> <message> - <location line="-281"/> + <location line="-312"/> <source>Unable to connect - Driver doesn't support all functionality required</source> <translation>Невозможно соединиться - Драйвер не поддерживает требуемый функционал</translation> </message> @@ -3856,19 +5120,19 @@ Do you want to delete it anyway?</source> <context> <name>QODBCResult</name> <message> - <location line="-937"/> + <location line="-941"/> <location line="+351"/> <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' атрибутом выражение. Проверьте настройки драйвера ODBC</translation> + <translation>QODBCResult::reset: Невозможно установить "SQL_CURSOR_STATIC" атрибутом выражение. Проверьте настройки драйвера ODBC</translation> </message> <message> <location line="-334"/> - <location line="+628"/> + <location line="+627"/> <source>Unable to execute statement</source> <translation>Невозможно выполнить выражение</translation> </message> <message> - <location line="-547"/> + <location line="-546"/> <source>Unable to fetch next</source> <translation>Невозможно получить следующую строку</translation> </message> @@ -3878,19 +5142,19 @@ Do you want to delete it anyway?</source> <translation>Невозможно подготовить выражение</translation> </message> <message> - <location line="+268"/> + <location line="+267"/> <source>Unable to bind variable</source> <translation>Невозможно привязать значение</translation> </message> <message> <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+189"/> - <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-467"/> - <location line="+576"/> + <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-466"/> + <location line="+578"/> <source>Unable to fetch last</source> <translation>Невозможно получить последнюю строку</translation> </message> <message> - <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-670"/> + <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/> <source>Unable to fetch</source> <translation>Невозможно получить данные</translation> </message> @@ -3908,41 +5172,27 @@ Do you want to delete it anyway?</source> <context> <name>QObject</name> <message> - <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="-97"/> - <source>Invalid hostname</source> - <translation>Некорректное имя узла</translation> - </message> - <message> - <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/> - <source>Operation not supported on %1</source> - <translation>Операция не поддерживается для %1</translation> - </message> - <message> - <location line="+57"/> - <source>Invalid URI: %1</source> - <translation>Некорректный URI: %1</translation> - </message> - <message> - <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+60"/> - <source>Socket error on %1: %2</source> - <translation>Ошика сокета для %1: %2</translation> + <location filename="../src/declarative/util/qdeclarativexmllistmodel.cpp" line="-241"/> + <source>"%1" duplicates a previous role name and will be disabled.</source> + <translation>"%1" повторяет имя предыдущей роли и не будет использовано.</translation> </message> <message> - <location line="+15"/> - <source>Remote host closed the connection prematurely on %1</source> - <translation>Удалённый узел неожиданно прервал соединение для %1</translation> + <location line="+515"/> + <location line="+4"/> + <source>invalid query: "%1"</source> + <translation>Некорректный запрос: "%1"</translation> </message> <message> - <location filename="../src/network/kernel/qhostinfo.cpp" line="+168"/> - <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+0"/> - <source>No host name given</source> - <translation>Имя узла не задано</translation> + <location filename="../src/3rdparty/phonon/phonon/pulsesupport.cpp" line="+162"/> + <location line="+11"/> + <source>PulseAudio Sound Server</source> + <translation>Звуковой сервер PulseAudio</translation> </message> </context> <context> <name>QPPDOptionsModel</name> <message> - <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1197"/> + <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1238"/> <source>Name</source> <translation>Имя</translation> </message> @@ -4134,7 +5384,22 @@ Do you want to delete it anyway?</source> <translation>неизвестно</translation> </message> <message> - <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+329"/> + <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+272"/> + <source>OK</source> + <translation>Закрыть</translation> + </message> + <message> + <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+379"/> + <source>Print all</source> + <translation>Все страницы</translation> + </message> + <message> + <location line="+2"/> + <source>Print range</source> + <translation>Диапазон страниц</translation> + </message> + <message> + <location line="-48"/> <source>A0 (841 x 1189 mm)</source> <translation>A0 (841 x 1189 мм)</translation> </message> @@ -4154,12 +5419,7 @@ Do you want to delete it anyway?</source> <translation>A3 (297 x 420 мм)</translation> </message> <message> - <location line="+1"/> - <source>A4 (210 x 297 mm, 8.26 x 11.7 inches)</source> - <translation>A4 (210 x 297 мм, 8.26 x 11.7 дюймов)</translation> - </message> - <message> - <location line="+1"/> + <location line="+2"/> <source>A5 (148 x 210 mm)</source> <translation>A5 (148 x 210 мм)</translation> </message> @@ -4209,12 +5469,7 @@ Do you want to delete it anyway?</source> <translation>B4 (250 x 353 мм)</translation> </message> <message> - <location line="+1"/> - <source>B5 (176 x 250 mm, 6.93 x 9.84 inches)</source> - <translation>B5 (176 x 250 мм, 6.93 x 9.84 дюймов)</translation> - </message> - <message> - <location line="+1"/> + <location line="+2"/> <source>B6 (125 x 176 mm)</source> <translation>B6 (125 x 176 мм)</translation> </message> @@ -4249,12 +5504,7 @@ Do you want to delete it anyway?</source> <translation>DLE (110 x 220 мм)</translation> </message> <message> - <location line="+1"/> - <source>Executive (7.5 x 10 inches, 191 x 254 mm)</source> - <translation>Executive (191 x 254 мм, 7.5 x 10 дюймов)</translation> - </message> - <message> - <location line="+1"/> + <location line="+2"/> <source>Folio (210 x 330 mm)</source> <translation>Folio (210 x 330 мм)</translation> </message> @@ -4264,54 +5514,64 @@ Do you want to delete it anyway?</source> <translation>Ledger (432 x 279 мм)</translation> </message> <message> - <location line="+1"/> - <source>Legal (8.5 x 14 inches, 216 x 356 mm)</source> - <translation>Legal (216 x 356 мм, 8.5 x 14 дюймов)</translation> + <location line="+3"/> + <source>Tabloid (279 x 432 mm)</source> + <translation>Tabloid (279 x 432 мм)</translation> </message> <message> <location line="+1"/> - <source>Letter (8.5 x 11 inches, 216 x 279 mm)</source> - <translation>Letter (216 x 279 мм, 8.5 x 11 дюймов)</translation> + <source>US Common #10 Envelope (105 x 241 mm)</source> + <translation>Конверт US #10 (105x241 мм)</translation> </message> <message> - <location line="+1"/> - <source>Tabloid (279 x 432 mm)</source> - <translation>Tabloid (279 x 432 мм)</translation> + <location line="+20"/> + <source>Print current page</source> + <translation>Текущая страница</translation> + </message> + <message> + <location line="-45"/> + <source>A4 (210 x 297 mm, 8.26 x 11.7 inches)</source> + <translation>A4 (210 x 297 мм, 8.26 x 11.7 дюймов)</translation> + </message> + <message> + <location line="+11"/> + <source>B5 (176 x 250 mm, 6.93 x 9.84 inches)</source> + <translation>B5 (176 x 250 мм, 6.93 x 9.84 дюймов)</translation> + </message> + <message> + <location line="+8"/> + <source>Executive (7.5 x 10 inches, 191 x 254 mm)</source> + <translation>Executive (191 x 254 мм, 7.5 x 10 дюймов)</translation> + </message> + <message> + <location line="+3"/> + <source>Legal (8.5 x 14 inches, 216 x 356 mm)</source> + <translation>Legal (216 x 356 мм, 8.5 x 14 дюймов)</translation> </message> <message> <location line="+1"/> - <source>US Common #10 Envelope (105 x 241 mm)</source> - <translation>Конверт US #10 (105x241 мм)</translation> + <source>Letter (8.5 x 11 inches, 216 x 279 mm)</source> + <translation>Letter (216 x 279 мм, 8.5 x 11 дюймов)</translation> </message> <message> - <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+266"/> - <source>OK</source> - <translation>Закрыть</translation> + <location line="+20"/> + <source>Print selection</source> + <translation>Выделенный фрагмент</translation> </message> <message> - <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+112"/> + <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+113"/> <location line="+13"/> <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/> <source>Print</source> <translation>Печать</translation> </message> <message> - <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-359"/> + <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-392"/> <source>Print To File ...</source> <translation>Печать в файл ...</translation> </message> <message> - <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+19"/> - <source>Print range</source> - <translation>Печатать диапазон</translation> - </message> - <message> - <location line="-2"/> - <source>Print all</source> - <translation>Печатать все</translation> - </message> - <message> - <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+82"/> + <location line="+82"/> <source>File %1 is not writable. Please choose a different file name.</source> <translation>%1 недоступен для записи. @@ -4325,7 +5585,7 @@ Do you want to overwrite it?</source> Хотите заменить его?</translation> </message> <message> - <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-227"/> + <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-232"/> <source>File exists</source> <translation>Файл существует</translation> </message> @@ -4335,11 +5595,6 @@ Do you want to overwrite it?</source> <translation><qt>Хотите заменить?</qt></translation> </message> <message> - <location line="+227"/> - <source>Print selection</source> - <translation>Выделенный фрагмент</translation> - </message> - <message> <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-8"/> <source>%1 is a directory. Please choose a different file name.</source> @@ -4347,6 +5602,11 @@ Please choose a different file name.</source> Выберите другое имя файла.</translation> </message> <message> + <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+1"/> + <source>The 'From' value cannot be greater than the 'To' value.</source> + <translation>Значение "с" не может быть больше значения "по".</translation> + </message> + <message> <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="-232"/> <source>A0</source> <translation>A0</translation> @@ -4502,23 +5762,18 @@ Please choose a different file name.</source> <translation>Пользовательский</translation> </message> <message> - <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-523"/> + <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-530"/> <location line="+68"/> <source>&Options >></source> <translation>&Параметры >></translation> </message> <message> - <location line="-63"/> - <source>&Print</source> - <translation>&Печать</translation> - </message> - <message> - <location line="+67"/> + <location line="+4"/> <source>&Options <<</source> <translation>&Параметры <<</translation> </message> <message> - <location line="+253"/> + <location line="+260"/> <source>Print to File (PDF)</source> <translation>Печать в файл (PDF)</translation> </message> @@ -4538,26 +5793,20 @@ Please choose a different file name.</source> <translation>Запись %1 файла</translation> </message> <message> - <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+1"/> - <source>The 'From' value cannot be greater than the 'To' value.</source> - <translation>Значение 'от' не может быть больше значения 'до'.</translation> + <location line="-376"/> + <source>&Print</source> + <translation>&Печать</translation> </message> </context> <context> <name>QPrintPreviewDialog</name> <message> - <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/> - <location line="+12"/> - <source>Page Setup</source> - <translation>Параметры страницы</translation> - </message> - <message> <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+249"/> <source>%1%</source> <translation>%1%</translation> </message> <message> - <location line="+71"/> + <location line="+84"/> <source>Print Preview</source> <translation>Просмотр печати</translation> </message> @@ -4651,6 +5900,12 @@ Please choose a different file name.</source> <source>Export to PostScript</source> <translation>Экспорт в Postscript</translation> </message> + <message> + <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/> + <location line="+12"/> + <source>Page Setup</source> + <translation>Параметры страницы</translation> + </message> </context> <context> <name>QPrintPropertiesWidget</name> @@ -4695,12 +5950,12 @@ Please choose a different file name.</source> <message> <location/> <source>Pages from</source> - <translation>Страницы от</translation> + <translation>Страницы с</translation> </message> <message> <location/> <source>to</source> - <translation>до</translation> + <translation>по</translation> </message> <message> <location/> @@ -4767,6 +6022,11 @@ Please choose a different file name.</source> <source>Short side</source> <translation>По короткой стороне</translation> </message> + <message> + <location/> + <source>Current Page</source> + <translation>Текущая страница</translation> + </message> </context> <context> <name>QPrintWidget</name> @@ -4849,7 +6109,7 @@ Please choose a different file name.</source> <translation>Время на операцию с процессом истекло</translation> </message> <message> - <location filename="../src/corelib/io/qprocess.cpp" line="+856"/> + <location filename="../src/corelib/io/qprocess.cpp" line="+866"/> <location line="+52"/> <location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/> <location line="+50"/> @@ -5000,7 +6260,7 @@ Please choose a different file name.</source> <context> <name>QSQLiteDriver</name> <message> - <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+538"/> + <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+539"/> <source>Error opening database</source> <translation>Ошибка открытия базы данных</translation> </message> @@ -5028,8 +6288,8 @@ Please choose a different file name.</source> <context> <name>QSQLiteResult</name> <message> - <location line="-395"/> - <location line="+62"/> + <location line="-396"/> + <location line="+63"/> <location line="+8"/> <source>Unable to fetch row</source> <translation>Невозможно получить строку</translation> @@ -5055,7 +6315,7 @@ Please choose a different file name.</source> <translation>Количество параметров не совпадает</translation> </message> <message> - <location line="-200"/> + <location line="-201"/> <source>No query</source> <translation>Отсутствует запрос</translation> </message> @@ -5070,7 +6330,7 @@ Please choose a different file name.</source> <message> <location line="+2"/> <source>Location</source> - <translation>Расположение</translation> + <translation>Размещение</translation> </message> <message> <location line="+2"/> @@ -5286,7 +6546,7 @@ Please choose a different file name.</source> <context> <name>QScriptDebuggerLocalsModel</name> <message> - <location filename="../src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp" line="+872"/> + <location filename="../src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp" line="+897"/> <source>Name</source> <translation>Название</translation> </message> @@ -5486,12 +6746,7 @@ Please choose a different file name.</source> <context> <name>QSharedMemory</name> <message> - <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+223"/> - <source>%1: unable to set key on lock</source> - <translation>%1: невозможно установить ключ на блокировку</translation> - </message> - <message> - <location line="+81"/> + <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+304"/> <source>%1: create size is less then 0</source> <translation>%1: размер меньше нуля</translation> </message> @@ -5545,30 +6800,30 @@ Please choose a different file name.</source> <translation>%1: пустой ключ</translation> </message> <message> - <location line="-31"/> - <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-16"/> - <source>%1: doesn't exist</source> - <translation>%1: не существует</translation> - </message> - <message> - <location line="+39"/> - <source>%1: UNIX key file doesn't exist</source> - <translation>%1: специфический ключ UNIX не существует</translation> - </message> - <message> - <location line="+7"/> + <location line="+15"/> <source>%1: ftok failed</source> <translation>%1: ошибка ftok</translation> </message> <message> <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="+56"/> <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+51"/> - <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+31"/> + <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+15"/> <source>%1: unable to make key</source> <translation>%1: невозможно создать ключ</translation> </message> <message> - <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+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: не существует</translation> + </message> + <message> + <location line="+39"/> + <source>%1: UNIX key file doesn't exist</source> + <translation>%1: специфический ключ UNIX не существует</translation> + </message> + <message> + <location line="+78"/> <source>%1: system-imposed size restrictions</source> <translation>%1: системой наложены ограничения на размер</translation> </message> @@ -5579,7 +6834,7 @@ Please choose a different file name.</source> </message> <message> <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="-67"/> - <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-27"/> + <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+4"/> <source>%1: invalid size</source> <translation>%1: некорректный размер</translation> </message> @@ -5594,12 +6849,18 @@ Please choose a different file name.</source> <source>%1: size query failed</source> <translation>%1: не удалось запросить размер</translation> </message> + <message> + <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="-271"/> + <source>%1: unable to set key on lock</source> + <translation>%1: невозможно установить ключ блокировки</translation> + </message> </context> <context> <name>QShortcut</name> <message> - <location filename="../src/gui/kernel/qkeysequence.cpp" line="+393"/> + <location filename="../src/gui/kernel/qkeysequence.cpp" line="+396"/> <source>Space</source> + <extracomment>This and all following "incomprehensible" strings in QShortcut context are key names. Please use the localized names appearing on actual keyboards or whatever is commonly used.</extracomment> <translation type="unfinished">Пробел</translation> </message> <message> @@ -5775,12 +7036,12 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>Treble Up</source> - <translation type="unfinished">Высокие частоты выше</translation> + <translation type="unfinished">ВЧ выше</translation> </message> <message> <location line="+1"/> <source>Treble Down</source> - <translation type="unfinished">Высокие частоты ниже</translation> + <translation type="unfinished">ВЧ ниже</translation> </message> <message> <location line="+1"/> @@ -5920,32 +7181,32 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>Monitor Brightness Up</source> - <translation type="unfinished">Яркость монитора выше</translation> + <translation type="unfinished">Увеличить яркость монитора</translation> </message> <message> <location line="+1"/> <source>Monitor Brightness Down</source> - <translation type="unfinished">Яркость монитора ниже</translation> + <translation type="unfinished">Уменьшить яркость монитора</translation> </message> <message> <location line="+1"/> <source>Keyboard Light On/Off</source> - <translation type="unfinished">Вкл/выкл подсветку клавиатуры</translation> + <translation type="unfinished">Вкл./Откл. подсветку клавиатуры</translation> </message> <message> <location line="+1"/> <source>Keyboard Brightness Up</source> - <translation type="unfinished">Подсветка клавиатуры ярче</translation> + <translation type="unfinished">Увеличить яркость подсветки клавиатуры</translation> </message> <message> <location line="+1"/> <source>Keyboard Brightness Down</source> - <translation type="unfinished">Подсветка клавиатуры бледнее</translation> + <translation type="unfinished">Уменьшить яркость подсветки клавиатуры</translation> </message> <message> <location line="+1"/> <source>Power Off</source> - <translation type="unfinished">Выключение питания</translation> + <translation type="unfinished">Отключение питания</translation> </message> <message> <location line="+1"/> @@ -5955,12 +7216,12 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>Eject</source> - <translation type="unfinished">Извлечение</translation> + <translation type="unfinished">Извлечь</translation> </message> <message> <location line="+1"/> <source>Screensaver</source> - <translation type="unfinished">Хранитель экрана</translation> + <translation type="unfinished">Экранная заставка</translation> </message> <message> <location line="+1"/> @@ -5970,13 +7231,12 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>Sleep</source> - <translation type="unfinished">Засыпание</translation> + <translation type="unfinished">Спящий режим</translation> </message> <message> <location line="+1"/> <source>LightBulb</source> - <translatorcomment>лампочка?</translatorcomment> - <translation type="unfinished"></translation> + <translation type="unfinished">Лампочка</translation> </message> <message> <location line="+1"/> @@ -6016,7 +7276,7 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>Audio Rewind</source> - <translation type="unfinished">Перемотка</translation> + <translation type="unfinished">Перемотка аудио назад</translation> </message> <message> <location line="+1"/> @@ -6419,7 +7679,157 @@ Please choose a different file name.</source> <translation type="unfinished">Системный запрос</translation> </message> <message> - <location line="-18"/> + <location line="+20"/> + <source>Kanji</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Muhenkan</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Henkan</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Romaji</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Hiragana</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Katakana</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Hiragana Katakana</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Zenkaku</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Hankaku</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Zenkaku Hankaku</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Touroku</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Massyo</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Kana Lock</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Kana Shift</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Eisu Shift</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Eisu toggle</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Code input</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Multiple Candidate</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Previous Candidate</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Hangul</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Start</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul End</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Hanja</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Jamo</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Romaja</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Jeonja</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Banja</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul PreHanja</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul PostHanja</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Special</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-70"/> <location line="+22"/> <source>Select</source> <translation type="unfinished">Выбрать</translation> @@ -6470,7 +7880,7 @@ Please choose a different file name.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+575"/> + <location line="+638"/> <location line="+135"/> <source>Ctrl</source> <translation type="unfinished">Ctrl</translation> @@ -6504,7 +7914,7 @@ Please choose a different file name.</source> <translation type="unfinished">F%1</translation> </message> <message> - <location line="-871"/> + <location line="-934"/> <source>Home Page</source> <translation type="unfinished">Домашняя страница</translation> </message> @@ -6638,7 +8048,7 @@ Please choose a different file name.</source> <translation>Отмена</translation> </message> <message> - <location filename="../src/gui/kernel/qsoftkeymanager_s60.cpp" line="+322"/> + <location filename="../src/gui/kernel/qsoftkeymanager_s60.cpp" line="+321"/> <source>Exit</source> <translation>Выход</translation> </message> @@ -6716,7 +8126,7 @@ Please choose a different file name.</source> <context> <name>QSslSocket</name> <message> - <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+546"/> + <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+550"/> <source>Unable to write data: %1</source> <translation>Невозможно записать данные: %1</translation> </message> @@ -6736,17 +8146,17 @@ Please choose a different file name.</source> <translation>Ошибка квитирования SSL: %1</translation> </message> <message> - <location line="-521"/> + <location line="-524"/> <source>Error creating SSL context (%1)</source> <translation>Ошибка создания контекста SSL: (%1)</translation> </message> <message> <location line="+25"/> <source>Invalid or empty cipher list (%1)</source> - <translation>Неправильный или пустой список шифров (%1)</translation> + <translation>Некорректный или пустой список шифров (%1)</translation> </message> <message> - <location line="+42"/> + <location line="+45"/> <source>Private key does not certify public key, %1</source> <translation>Закрытый ключ не соответствует открытому ключу, %1</translation> </message> @@ -6761,7 +8171,7 @@ Please choose a different file name.</source> <translation>Ошибка создания сессии SSL: %1</translation> </message> <message> - <location line="-61"/> + <location line="-64"/> <source>Cannot provide a certificate with no key, %1</source> <translation>Невозможно предоставить сертификат без ключа, %1</translation> </message> @@ -6771,7 +8181,7 @@ Please choose a different file name.</source> <translation>Ошибка загрузки локального сертификата, %1</translation> </message> <message> - <location line="+12"/> + <location line="+15"/> <source>Error loading private key, %1</source> <translation>Ошибка загрузки закрытого ключа, %1</translation> </message> @@ -6783,8 +8193,7 @@ Please choose a different file name.</source> <message> <location line="+3"/> <source>The issuer certificate could not be found</source> - <translatorcomment>издателя ?</translatorcomment> - <translation type="unfinished">Не удалось найти сертификат запрашивающей стороны</translation> + <translation>Не удалось найти сертификат издателя</translation> </message> <message> <location line="+3"/> @@ -6814,27 +8223,27 @@ Please choose a different file name.</source> <message> <location line="+3"/> <source>The certificate's notBefore field contains an invalid time</source> - <translation>Поле сертификата notBefore содержит некорректное время</translation> + <translation>Поле notBefore сертификата содержит некорректное время</translation> </message> <message> <location line="+3"/> <source>The certificate's notAfter field contains an invalid time</source> - <translation>Поле сертификата notAfter содержит некорректное время</translation> + <translation>Поле notAfter сертификата содержит некорректное время</translation> </message> <message> <location line="+3"/> <source>The certificate is self-signed, and untrusted</source> - <translation type="unfinished">Самоподписанный сертификат не является заверенным</translation> + <translation>Сертификат самоподписанный и не является заверенным</translation> </message> <message> <location line="+3"/> <source>The root certificate of the certificate chain is self-signed, and untrusted</source> - <translation type="unfinished">Корневой сертификат цепочки сертификатов самоподписанный и не является заверенным</translation> + <translation>Корневой сертификат цепочки сертификатов самоподписанный и не является заверенным</translation> </message> <message> <location line="+3"/> <source>The issuer certificate of a locally looked up certificate could not be found</source> - <translation type="unfinished"></translation> + <translation>Не удалось найти сертификат издателя локального сертификата</translation> </message> <message> <location line="+3"/> @@ -6844,47 +8253,47 @@ Please choose a different file name.</source> <message> <location line="+3"/> <source>One of the CA certificates is invalid</source> - <translation>Один из CA сертификатов некорректный</translation> + <translation>Один из сертификатов центра сертификации некорректен</translation> </message> <message> <location line="+3"/> <source>The basicConstraints path length parameter has been exceeded</source> - <translation type="unfinished">Путь параметра basicConstraints слишком длинный</translation> + <translation>Превышено значение параметра длины пути поля basicConstraints сертификата</translation> </message> <message> <location line="+3"/> <source>The supplied certificate is unsuitable for this purpose</source> - <translation type="unfinished">Представленный сертификат не предназначен для данного использования</translation> + <translation>Представленный сертификат непригоден для данной цели</translation> </message> <message> <location line="+3"/> <source>The root CA certificate is not trusted for this purpose</source> - <translation type="unfinished">Корневой CA сертификат не является заверенным для данного использования</translation> + <translation>Корневой сертификат центра сертификации не является заверенным для данной цели</translation> </message> <message> <location line="+3"/> <source>The root CA certificate is marked to reject the specified purpose</source> - <translation type="unfinished">Корневой CA сертификат отмечен как 'отказывать' для данного использования</translation> + <translation>Корневой сертификат центра сертификации отмечен на отклонение для данной цели</translation> </message> <message> <location line="+3"/> <source>The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate</source> - <translation type="unfinished"></translation> + <translation>Текущий сертификат издателя был отклонён, так как название темы не совпадает с названием издателя сертификата</translation> </message> <message> <location line="+4"/> <source>The current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate</source> - <translation type="unfinished"></translation> + <translation>Текущий сертификат издателя был отклонён, так как название издателя и серийный номер не совпадают с идентификатором ключа сертификата</translation> </message> <message> <location line="+5"/> <source>The peer did not present any certificate</source> - <translation>Узел не предоставил сертификат</translation> + <translation>Сертификат не был предоставлен</translation> </message> <message> <location line="+3"/> <source>The host name did not match any of the valid hosts for this certificate</source> - <translation>Название узла не совпадает ни с одним из допустимых узлов данного сертификата</translation> + <translation>Название узла не совпадает с допустимыми названиями узлов сертификата</translation> </message> <message> <location line="+6"/> @@ -6897,17 +8306,17 @@ Please choose a different file name.</source> <message> <location filename="../src/corelib/statemachine/qstatemachine.cpp" line="+1028"/> <source>Missing initial state in compound state '%1'</source> - <translation type="unfinished"></translation> + <translation>Отсутствует исходное состояние в составном состоянии "%1"</translation> </message> <message> <location line="+7"/> <source>Missing default state in history state '%1'</source> - <translation type="unfinished"></translation> + <translation>Отсутствует состояние по умолчанию в историческом состоянии "%1"</translation> </message> <message> <location line="+7"/> <source>No common ancestor for targets and source of transition from state '%1'</source> - <translation type="unfinished"></translation> + <translation>Нет общего предка у источника и цели перехода из состояния "%1"</translation> </message> <message> <location line="+4"/> @@ -6918,7 +8327,12 @@ Please choose a different file name.</source> <context> <name>QSystemSemaphore</name> <message> - <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/> + <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-46"/> + <source>%1: does not exist</source> + <translation>%1: не существует</translation> + </message> + <message> + <location line="+5"/> <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/> <source>%1: out of resources</source> <translation>%1: недостаточно ресурсов</translation> @@ -6935,12 +8349,7 @@ Please choose a different file name.</source> <translation>%1: уже существует</translation> </message> <message> - <location line="+4"/> - <source>%1: does not exist</source> - <translation>%1: не существует</translation> - </message> - <message> - <location line="+9"/> + <location line="+13"/> <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+3"/> <source>%1: unknown error %2</source> <translation>%1: неизвестная ошибка %2</translation> @@ -6975,7 +8384,7 @@ Please choose a different file name.</source> <context> <name>QTcpServer</name> <message> - <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/> + <location filename="../src/network/socket/qtcpserver.cpp" line="+292"/> <source>Operation on socket is not supported</source> <translation>Операция с сокетом не поддерживается</translation> </message> @@ -6983,7 +8392,7 @@ Please choose a different file name.</source> <context> <name>QTextControl</name> <message> - <location filename="../src/gui/text/qtextcontrol.cpp" line="+2027"/> + <location filename="../src/gui/text/qtextcontrol.cpp" line="+2046"/> <source>&Undo</source> <translation>&Отменить действие</translation> </message> @@ -7041,7 +8450,7 @@ Please choose a different file name.</source> <context> <name>QUdpSocket</name> <message> - <location filename="../src/network/socket/qudpsocket.cpp" line="+179"/> + <location filename="../src/network/socket/qudpsocket.cpp" line="+189"/> <source>This platform does not support IPv6</source> <translation>Данная платформа не поддерживает IPv6</translation> </message> @@ -7085,52 +8494,52 @@ Please choose a different file name.</source> <message> <location filename="../src/gui/text/qtextcontrol.cpp" line="+899"/> <source>LRM Left-to-right mark</source> - <translation type="unfinished">LRM Индикатор написания слева направо</translation> + <translation>LRM Признак написания слева направо</translation> </message> <message> <location line="+1"/> <source>RLM Right-to-left mark</source> - <translation type="unfinished">RLM Индикатор написания справа налево</translation> + <translation>RLM Признак написания справа налево</translation> </message> <message> <location line="+1"/> <source>ZWJ Zero width joiner</source> - <translation type="unfinished">ZWJ Объединяющий символ нулевой ширины</translation> + <translation>ZWJ Объединяющий символ нулевой ширины</translation> </message> <message> <location line="+1"/> <source>ZWNJ Zero width non-joiner</source> - <translation type="unfinished">ZWNJ Разделитель нулевой ширины</translation> + <translation>ZWNJ Необъединяющий символ нулевой ширины</translation> </message> <message> <location line="+1"/> <source>ZWSP Zero width space</source> - <translation type="unfinished">ZWSP Пробел нулевой ширины</translation> + <translation>ZWSP Пробел нулевой ширины</translation> </message> <message> <location line="+1"/> <source>LRE Start of left-to-right embedding</source> - <translation type="unfinished">LRE Индикатор написания слева направо внутри текста, написанного справа налево</translation> + <translation>LRE Начало встраивания написания слева направо</translation> </message> <message> <location line="+1"/> <source>RLE Start of right-to-left embedding</source> - <translation type="unfinished">RLE Индикатор написания справа налево внутри текста, написанного слева направо</translation> + <translation>LRE Начало встраивания написания справа налево</translation> </message> <message> <location line="+1"/> <source>LRO Start of left-to-right override</source> - <translation type="unfinished">LRO Перекрывающий индикатор написания слева направо</translation> + <translation>LRO Начало замены написания слева направо</translation> </message> <message> <location line="+1"/> <source>RLO Start of right-to-left override</source> - <translation type="unfinished">RLO Перекрывающий индикатор написания справа налево</translation> + <translation>RLO Начало замены написания справа налево</translation> </message> <message> <location line="+1"/> <source>PDF Pop directional formatting</source> - <translation type="unfinished">PDF Индикатор конца текста с другим направлением</translation> + <translation>PDF Признак окончания написания с другим направлением</translation> </message> <message> <location line="+6"/> @@ -7141,7 +8550,7 @@ Please choose a different file name.</source> <context> <name>QWebFrame</name> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+712"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+753"/> <source>Request cancelled</source> <translation>Запрос отменён</translation> </message> @@ -7174,12 +8583,322 @@ Please choose a different file name.</source> <context> <name>QWebPage</name> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+416"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+248"/> + <source>Web Inspector - %2</source> + <translation>Web-инспектор - %2</translation> + </message> + <message> + <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+347"/> + <source>Redirection limit reached</source> + <translation>Достигнут предел переадресации</translation> + </message> + <message> + <location line="+121"/> <source>Bad HTTP request</source> <translation>Некорректный HTTP-запрос</translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+42"/> + <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+58"/> + <source>Scroll here</source> + <translation>Прокрутить сюда</translation> + </message> + <message> + <location line="+3"/> + <source>Left edge</source> + <translation>К левой границе</translation> + </message> + <message> + <location line="+0"/> + <source>Top</source> + <translation>Вверх</translation> + </message> + <message> + <location line="+1"/> + <source>Right edge</source> + <translation>К правой границе</translation> + </message> + <message> + <location line="+0"/> + <source>Bottom</source> + <translation>Вниз</translation> + </message> + <message> + <location line="+3"/> + <source>Page left</source> + <translation>На страницу влево</translation> + </message> + <message> + <location line="+0"/> + <source>Page up</source> + <translation>На страницу вверх</translation> + </message> + <message> + <location line="+1"/> + <source>Page right</source> + <translation>На страницу вправо</translation> + </message> + <message> + <location line="+0"/> + <source>Page down</source> + <translation>На страницу вниз</translation> + </message> + <message> + <location line="+3"/> + <source>Scroll left</source> + <translation>Прокрутить влево</translation> + </message> + <message> + <location line="+0"/> + <source>Scroll up</source> + <translation>Прокрутить вверх</translation> + </message> + <message> + <location line="+1"/> + <source>Scroll right</source> + <translation>Прокрутить вправо</translation> + </message> + <message> + <location line="+0"/> + <source>Scroll down</source> + <translation>Прокрутить вниз</translation> + </message> + <message> + <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1979"/> + <source>JavaScript Alert - %1</source> + <translation>JavaScript: Предупреждение - %1</translation> + </message> + <message> + <location line="+17"/> + <source>JavaScript Confirm - %1</source> + <translation>JavaScript: Подтверждение - %1</translation> + </message> + <message> + <location line="+20"/> + <source>JavaScript Prompt - %1</source> + <translation>JavaScript: Запрос - %1</translation> + </message> + <message> + <location line="+26"/> + <source>JavaScript Problem - %1</source> + <translation>JavaScript: Проблема - %1</translation> + </message> + <message> + <location line="+0"/> + <source>The script on this page appears to have a problem. Do you want to stop the script?</source> + <translation>Сбой выполнения сценария на данной странице. Желаете остановить выполение сценария?</translation> + </message> + <message> + <location line="+376"/> + <source>Move the cursor to the next character</source> + <translation>Переместить указатель к следующему символу</translation> + </message> + <message> + <location line="+3"/> + <source>Move the cursor to the previous character</source> + <translation>Переместить указатель к предыдущему символу</translation> + </message> + <message> + <location line="+3"/> + <source>Move the cursor to the next word</source> + <translation>Переместить указатель к следующему слову</translation> + </message> + <message> + <location line="+3"/> + <source>Move the cursor to the previous word</source> + <translation>Переместить указатель к предыдущему слову</translation> + </message> + <message> + <location line="+3"/> + <source>Move the cursor to the next line</source> + <translation>Переместить указатель на следующую строку</translation> + </message> + <message> + <location line="+3"/> + <source>Move the cursor to the previous line</source> + <translation>Переместить указатель на предыдущую строку</translation> + </message> + <message> + <location line="+3"/> + <source>Move the cursor to the start of the line</source> + <translation>Переместить указатель в начало строки</translation> + </message> + <message> + <location line="+3"/> + <source>Move the cursor to the end of the line</source> + <translation>Переместить указатель в конец строки</translation> + </message> + <message> + <location line="+3"/> + <source>Move the cursor to the start of the block</source> + <translation>Переместить указатель в начало блока</translation> + </message> + <message> + <location line="+3"/> + <source>Move the cursor to the end of the block</source> + <translation>Переместить указатель в конец блока</translation> + </message> + <message> + <location line="+3"/> + <source>Move the cursor to the start of the document</source> + <translation>Переместить указатель в начало документа</translation> + </message> + <message> + <location line="+3"/> + <source>Move the cursor to the end of the document</source> + <translation>Переместить указатель в конец документа</translation> + </message> + <message> + <location line="+3"/> + <source>Select all</source> + <translation>Выделить всё</translation> + </message> + <message> + <location line="+3"/> + <source>Select to the next character</source> + <translation>Выделить до следующего символа</translation> + </message> + <message> + <location line="+3"/> + <source>Select to the previous character</source> + <translation>Выделить до предыдущего символа</translation> + </message> + <message> + <location line="+3"/> + <source>Select to the next word</source> + <translation>Выделить до следующего слова</translation> + </message> + <message> + <location line="+3"/> + <source>Select to the previous word</source> + <translation>Выделить до предыдущего слова</translation> + </message> + <message> + <location line="+3"/> + <source>Select to the next line</source> + <translation>Выделить до следующей строки</translation> + </message> + <message> + <location line="+3"/> + <source>Select to the previous line</source> + <translation>Выделить до предыдущей строки</translation> + </message> + <message> + <location line="+3"/> + <source>Select to the start of the line</source> + <translation>Выделить до начала строки</translation> + </message> + <message> + <location line="+3"/> + <source>Select to the end of the line</source> + <translation>Выделить до конца строки</translation> + </message> + <message> + <location line="+3"/> + <source>Select to the start of the block</source> + <translation>Выделить до начала блока</translation> + </message> + <message> + <location line="+3"/> + <source>Select to the end of the block</source> + <translation>Выделить до конца блока</translation> + </message> + <message> + <location line="+3"/> + <source>Select to the start of the document</source> + <translation>Выделить до начала документа</translation> + </message> + <message> + <location line="+3"/> + <source>Select to the end of the document</source> + <translation>Выделить до конца документа</translation> + </message> + <message> + <location line="+3"/> + <source>Delete to the start of the word</source> + <translation>Удалить до начала слова</translation> + </message> + <message> + <location line="+3"/> + <source>Delete to the end of the word</source> + <translation>Удалить до конца слова</translation> + </message> + <message> + <location line="+33"/> + <source>Insert a new paragraph</source> + <translation>Вставить новый параграф</translation> + </message> + <message> + <location line="+3"/> + <source>Insert a new line</source> + <translation>Вставить новую строку</translation> + </message> + <message> + <location line="+4"/> + <source>Paste and Match Style</source> + <translation>Вставить, сохранив стиль</translation> + </message> + <message> + <location line="+3"/> + <source>Remove formatting</source> + <translation>Удалить форматирование</translation> + </message> + <message> + <location line="+4"/> + <source>Strikethrough</source> + <translation>Зачёркнутый</translation> + </message> + <message> + <location line="+4"/> + <source>Subscript</source> + <translation>Подстрочный</translation> + </message> + <message> + <location line="+4"/> + <source>Superscript</source> + <translation>Надстрочный</translation> + </message> + <message> + <location line="+4"/> + <source>Insert Bulleted List</source> + <translation>Вставить маркированный список</translation> + </message> + <message> + <location line="+4"/> + <source>Insert Numbered List</source> + <translation>Вставить нумерованный список</translation> + </message> + <message> + <location line="+4"/> + <source>Indent</source> + <translation>Увеличить отступ</translation> + </message> + <message> + <location line="+3"/> + <source>Outdent</source> + <translation>Уменьшить отступ</translation> + </message> + <message> + <location line="+3"/> + <source>Center</source> + <translation>По центру</translation> + </message> + <message> + <location line="+3"/> + <source>Justify</source> + <translation>По ширине</translation> + </message> + <message> + <location line="+3"/> + <source>Align Left</source> + <translation>По левому краю</translation> + </message> + <message> + <location line="+3"/> + <source>Align Right</source> + <translation>По правому краю</translation> + </message> + <message> + <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+44"/> <source>Submit</source> <comment>default label for Submit buttons in forms on web pages</comment> <translation>Отправить</translation> @@ -7302,7 +9021,7 @@ Please choose a different file name.</source> <location line="+5"/> <source>No Guesses Found</source> <comment>No Guesses Found context menu item</comment> - <translation type="unfinished">Неверное слово</translation> + <translation type="unfinished">Совпадений не найдено</translation> </message> <message> <location line="+5"/> @@ -7439,7 +9158,49 @@ Please choose a different file name.</source> <translation>Справа налево</translation> </message> <message> - <location line="+105"/> + <location line="+5"/> + <source>Inspect</source> + <comment>Inspect Element context menu item</comment> + <translation>Проверить</translation> + </message> + <message> + <location line="+5"/> + <source>No recent searches</source> + <comment>Label for only item in menu that appears when clicking on the search field image, when no searches have been performed</comment> + <translation>История поиска пуста</translation> + </message> + <message> + <location line="+5"/> + <source>Recent searches</source> + <comment>label for first item in the menu that appears when clicking on the search field image, used as embedded menu title</comment> + <translation>История поиска</translation> + </message> + <message> + <location line="+5"/> + <source>Clear recent searches</source> + <comment>menu item in Recent Searches menu that empties menu's contents</comment> + <translation>Очистить историю поиска</translation> + </message> + <message> + <location line="+80"/> + <source>Missing Plug-in</source> + <comment>Label text to be used when a plug-in is missing</comment> + <translation>Модуль отсутствует</translation> + </message> + <message> + <location line="+10"/> + <source>Unknown</source> + <comment>Unknown filesize FTP directory listing item</comment> + <translation>Неизвестно</translation> + </message> + <message> + <location line="+5"/> + <source>%1 (%2x%3 pixels)</source> + <comment>Title string for images</comment> + <translation>%1 (%2x%3 px)</translation> + </message> + <message> + <location line="+5"/> <source>Loading...</source> <comment>Media controller status message when the media is loading</comment> <translation>Загрузка...</translation> @@ -7454,121 +9215,121 @@ Please choose a different file name.</source> <location line="+8"/> <source>Audio Element</source> <comment>Media controller element</comment> - <translation type="unfinished">Аудио-элемент</translation> + <translation>Аудио-элемент</translation> </message> <message> <location line="+2"/> <source>Video Element</source> <comment>Media controller element</comment> - <translation type="unfinished">Видео-элемент</translation> + <translation>Видео-элемент</translation> </message> <message> <location line="+2"/> <source>Mute Button</source> <comment>Media controller element</comment> - <translation type="unfinished">Кнопка "приглушить"</translation> + <translation>Кнопка "Отключить звук"</translation> </message> <message> <location line="+2"/> <source>Unmute Button</source> <comment>Media controller element</comment> - <translation type="unfinished"></translation> + <translation>Кнопка "Включить звук"</translation> </message> <message> <location line="+2"/> <source>Play Button</source> <comment>Media controller element</comment> - <translation type="unfinished">Кнопка "воспроизведение"</translation> + <translation>Кнопка "Воспроизведение"</translation> </message> <message> <location line="+2"/> <source>Pause Button</source> <comment>Media controller element</comment> - <translation type="unfinished">Кнопка "пауза"</translation> + <translation>Кнопка "Пауза"</translation> </message> <message> <location line="+2"/> <source>Slider</source> <comment>Media controller element</comment> - <translation type="unfinished"></translation> + <translation>Регулятор</translation> </message> <message> <location line="+2"/> <source>Slider Thumb</source> <comment>Media controller element</comment> - <translation type="unfinished"></translation> + <translation>Указатель регулятора</translation> </message> <message> <location line="+2"/> <source>Rewind Button</source> <comment>Media controller element</comment> - <translation type="unfinished">Кнопка "перемотать"</translation> + <translation>Кнопка "Перемотка назад"</translation> </message> <message> <location line="+2"/> <source>Return to Real-time Button</source> <comment>Media controller element</comment> - <translation type="unfinished"></translation> + <translation type="unfinished">Кнопка "Вернуть в реальное время"</translation> </message> <message> <location line="+2"/> <source>Elapsed Time</source> <comment>Media controller element</comment> - <translation type="unfinished">Прошло времени</translation> + <translation>Прошло времени</translation> </message> <message> <location line="+2"/> <source>Remaining Time</source> <comment>Media controller element</comment> - <translation type="unfinished">Осталось времени</translation> + <translation>Осталось времени</translation> </message> <message> <location line="+2"/> <source>Status Display</source> <comment>Media controller element</comment> - <translation type="unfinished">Отображение состояния</translation> + <translation>Отображение состояния</translation> </message> <message> <location line="+2"/> <source>Fullscreen Button</source> <comment>Media controller element</comment> - <translation type="unfinished">Кнопка "полноэкранный режим"</translation> + <translation>Кнопка "На весь экран"</translation> </message> <message> <location line="+2"/> <source>Seek Forward Button</source> <comment>Media controller element</comment> - <translation type="unfinished">Кнопка "перемотка вперёд"</translation> + <translation>Кнопка "Перемотка вперёд"</translation> </message> <message> <location line="+2"/> <source>Seek Back Button</source> <comment>Media controller element</comment> - <translation type="unfinished">Кнопка "перемотка назад"</translation> + <translation>Кнопка "Перемотка назад"</translation> </message> <message> <location line="+8"/> <source>Audio element playback controls and status display</source> <comment>Media controller element</comment> - <translation type="unfinished">Элементы управления воспроизведением звука и отображения состояния</translation> + <translation>Элементы управления воспроизведением звука и отображением состояния</translation> </message> <message> <location line="+2"/> <source>Video element playback controls and status display</source> <comment>Media controller element</comment> - <translation type="unfinished">Элементы управления воспроизведением видео и отображения состояния</translation> + <translation>Элементы управления воспроизведением видео и отображением состояния</translation> </message> <message> <location line="+2"/> <source>Mute audio tracks</source> <comment>Media controller element</comment> - <translation type="unfinished">Выключить звуковые дорожки</translation> + <translation>Отключить звуковые дорожки</translation> </message> <message> <location line="+2"/> <source>Unmute audio tracks</source> <comment>Media controller element</comment> - <translation type="unfinished">Включить звуковые дорожки</translation> + <translation>Включить звуковые дорожки</translation> </message> <message> <location line="+2"/> @@ -7586,67 +9347,67 @@ Please choose a different file name.</source> <location line="+2"/> <source>Movie time scrubber</source> <comment>Media controller element</comment> - <translation type="unfinished"></translation> + <translation type="unfinished">Перемотка</translation> </message> <message> <location line="+2"/> <source>Movie time scrubber thumb</source> <comment>Media controller element</comment> - <translation type="unfinished"></translation> + <translation type="unfinished">Позиция перемотки</translation> </message> <message> <location line="+2"/> <source>Rewind movie</source> <comment>Media controller element</comment> - <translation type="unfinished">Начать фильм сначала</translation> + <translation>Перемотка в начало</translation> </message> <message> <location line="+2"/> <source>Return streaming movie to real-time</source> <comment>Media controller element</comment> - <translation type="unfinished"></translation> + <translation type="unfinished">Возвращает потоковое видео к воспроизведению в реальном времени</translation> </message> <message> <location line="+2"/> <source>Current movie time</source> <comment>Media controller element</comment> - <translation type="unfinished">Текущее время фильма</translation> + <translation>Текущее время фильма</translation> </message> <message> <location line="+2"/> <source>Remaining movie time</source> <comment>Media controller element</comment> - <translation type="unfinished">Осталось времени фильма</translation> + <translation>Оставшееся время фильма</translation> </message> <message> <location line="+2"/> <source>Current movie status</source> <comment>Media controller element</comment> - <translation type="unfinished">Текущее состояние фильма</translation> + <translation>Текущее состояние фильма</translation> </message> <message> <location line="+2"/> <source>Play movie in full-screen mode</source> <comment>Media controller element</comment> - <translation type="unfinished">Воспроизводить фильм в полноэкранном режиме</translation> + <translation>Воспроизведение фильма в режиме отображения на весь экран</translation> </message> <message> <location line="+2"/> <source>Seek quickly back</source> <comment>Media controller element</comment> - <translation type="unfinished">Быстрая перемотка назад</translation> + <translation>Быстрая перемотка назад</translation> </message> <message> <location line="+2"/> <source>Seek quickly forward</source> <comment>Media controller element</comment> - <translation type="unfinished">Быстрая перемотка вперёд</translation> + <translation>Быстрая перемотка вперёд</translation> </message> <message> <location line="+9"/> <source>Indefinite time</source> <comment>Media time description</comment> - <translation type="unfinished">Время не определено</translation> + <translation>Время не определено</translation> </message> <message> <location line="+9"/> @@ -7672,112 +9433,6 @@ Please choose a different file name.</source> <comment>Media time description</comment> <translation>%1 секунд</translation> </message> - <message> - <location line="-210"/> - <source>Inspect</source> - <comment>Inspect Element context menu item</comment> - <translation>Проверить</translation> - </message> - <message> - <location line="+5"/> - <source>No recent searches</source> - <comment>Label for only item in menu that appears when clicking on the search field image, when no searches have been performed</comment> - <translation>История поиска пуста</translation> - </message> - <message> - <location line="+5"/> - <source>Recent searches</source> - <comment>label for first item in the menu that appears when clicking on the search field image, used as embedded menu title</comment> - <translation>История поиска</translation> - </message> - <message> - <location line="+5"/> - <source>Clear recent searches</source> - <comment>menu item in Recent Searches menu that empties menu's contents</comment> - <translation>Очистить историю поиска</translation> - </message> - <message> - <location line="+75"/> - <source>Unknown</source> - <comment>Unknown filesize FTP directory listing item</comment> - <translation>Неизвестно</translation> - </message> - <message> - <location line="+5"/> - <source>%1 (%2x%3 pixels)</source> - <comment>Title string for images</comment> - <translation>%1 (%2x%3 px)</translation> - </message> - <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+167"/> - <source>Web Inspector - %2</source> - <translation>Web-инспектор - %2</translation> - </message> - <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+58"/> - <source>Scroll here</source> - <translation>Прокрутить сюда</translation> - </message> - <message> - <location line="+3"/> - <source>Left edge</source> - <translation>К левой границе</translation> - </message> - <message> - <location line="+0"/> - <source>Top</source> - <translation>Вверх</translation> - </message> - <message> - <location line="+1"/> - <source>Right edge</source> - <translation>К правой границе</translation> - </message> - <message> - <location line="+0"/> - <source>Bottom</source> - <translation>Вниз</translation> - </message> - <message> - <location line="+3"/> - <source>Page left</source> - <translation>На страницу влево</translation> - </message> - <message> - <location line="+0"/> - <source>Page up</source> - <translation>На страницу вверх</translation> - </message> - <message> - <location line="+1"/> - <source>Page right</source> - <translation>На страницу вправо</translation> - </message> - <message> - <location line="+0"/> - <source>Page down</source> - <translation>На страницу вниз</translation> - </message> - <message> - <location line="+3"/> - <source>Scroll left</source> - <translation>Прокрутить влево</translation> - </message> - <message> - <location line="+0"/> - <source>Scroll up</source> - <translation>Прокрутить вверх</translation> - </message> - <message> - <location line="+1"/> - <source>Scroll right</source> - <translation>Прокрутить вправо</translation> - </message> - <message> - <location line="+0"/> - <source>Scroll down</source> - <translation>Прокрутить вниз</translation> - </message> <message numerus="yes"> <location filename="../src/3rdparty/webkit/WebCore/platform/qt/FileChooserQt.cpp" line="+45"/> <source>%n file(s)</source> @@ -7788,241 +9443,6 @@ Please choose a different file name.</source> <numerusform>%n файлов</numerusform> </translation> </message> - <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1833"/> - <source>JavaScript Alert - %1</source> - <translation>JavaScript: Предупреждение - %1</translation> - </message> - <message> - <location line="+16"/> - <source>JavaScript Confirm - %1</source> - <translation>JavaScript: Подтверждение - %1</translation> - </message> - <message> - <location line="+19"/> - <source>JavaScript Prompt - %1</source> - <translation>JavaScript: Запрос - %1</translation> - </message> - <message> - <location line="+25"/> - <source>JavaScript Problem - %1</source> - <translation>JavaScript: Проблема - %1</translation> - </message> - <message> - <location line="+0"/> - <source>The script on this page appears to have a problem. Do you want to stop the script?</source> - <translation>Сбой выполнения сценария на данной странице. Желаете остановить выполение сценария?</translation> - </message> - <message> - <location line="+381"/> - <source>Move the cursor to the next character</source> - <translation>Переместить указатель к следующему символу</translation> - </message> - <message> - <location line="+3"/> - <source>Move the cursor to the previous character</source> - <translation>Переместить указатель к предыдущему символу</translation> - </message> - <message> - <location line="+3"/> - <source>Move the cursor to the next word</source> - <translation>Переместить указатель к следующему слову</translation> - </message> - <message> - <location line="+3"/> - <source>Move the cursor to the previous word</source> - <translation>Переместить указатель к предыдущему слову</translation> - </message> - <message> - <location line="+3"/> - <source>Move the cursor to the next line</source> - <translation>Переместить указатель на следующую строку</translation> - </message> - <message> - <location line="+3"/> - <source>Move the cursor to the previous line</source> - <translation>Переместить указатель на предыдущую строку</translation> - </message> - <message> - <location line="+3"/> - <source>Move the cursor to the start of the line</source> - <translation>Переместить указатель в начало строки</translation> - </message> - <message> - <location line="+3"/> - <source>Move the cursor to the end of the line</source> - <translation>Переместить указатель в конец строки</translation> - </message> - <message> - <location line="+3"/> - <source>Move the cursor to the start of the block</source> - <translation>Переместить указатель в начало блока</translation> - </message> - <message> - <location line="+3"/> - <source>Move the cursor to the end of the block</source> - <translation>Переместить указатель в конец блока</translation> - </message> - <message> - <location line="+3"/> - <source>Move the cursor to the start of the document</source> - <translation>Переместить указатель в начало документа</translation> - </message> - <message> - <location line="+3"/> - <source>Move the cursor to the end of the document</source> - <translation>Переместить указатель в конец документа</translation> - </message> - <message> - <location line="+3"/> - <source>Select all</source> - <translation>Выделить всё</translation> - </message> - <message> - <location line="+3"/> - <source>Select to the next character</source> - <translation>Выделить до следующего символа</translation> - </message> - <message> - <location line="+3"/> - <source>Select to the previous character</source> - <translation>Выделить до предыдущего символа</translation> - </message> - <message> - <location line="+3"/> - <source>Select to the next word</source> - <translation>Выделить до следующего слова</translation> - </message> - <message> - <location line="+3"/> - <source>Select to the previous word</source> - <translation>Выделить до предыдущего слова</translation> - </message> - <message> - <location line="+3"/> - <source>Select to the next line</source> - <translation>Выделить до следующей строки</translation> - </message> - <message> - <location line="+3"/> - <source>Select to the previous line</source> - <translation>Выделить до предыдущей строки</translation> - </message> - <message> - <location line="+3"/> - <source>Select to the start of the line</source> - <translation>Выделить до начала строки</translation> - </message> - <message> - <location line="+3"/> - <source>Select to the end of the line</source> - <translation>Выделить до конца строки</translation> - </message> - <message> - <location line="+3"/> - <source>Select to the start of the block</source> - <translation>Выделить до начала блока</translation> - </message> - <message> - <location line="+3"/> - <source>Select to the end of the block</source> - <translation>Выделить до конца блока</translation> - </message> - <message> - <location line="+3"/> - <source>Select to the start of the document</source> - <translation>Выделить до начала документа</translation> - </message> - <message> - <location line="+3"/> - <source>Select to the end of the document</source> - <translation>Выделить до конца документа</translation> - </message> - <message> - <location line="+3"/> - <source>Delete to the start of the word</source> - <translation>Удалить до начала слова</translation> - </message> - <message> - <location line="+3"/> - <source>Delete to the end of the word</source> - <translation>Удалить до конца слова</translation> - </message> - <message> - <location line="+33"/> - <source>Insert a new paragraph</source> - <translation>Вставить новый параграф</translation> - </message> - <message> - <location line="+3"/> - <source>Insert a new line</source> - <translation>Вставить новую строку</translation> - </message> - <message> - <location line="+4"/> - <source>Paste and Match Style</source> - <translation>Вставить, сохранив стиль</translation> - </message> - <message> - <location line="+3"/> - <source>Remove formatting</source> - <translation>Удалить форматирование</translation> - </message> - <message> - <location line="+4"/> - <source>Strikethrough</source> - <translation>Зачёркнутый</translation> - </message> - <message> - <location line="+4"/> - <source>Subscript</source> - <translation>Подстрочный</translation> - </message> - <message> - <location line="+4"/> - <source>Superscript</source> - <translation>Надстрочный</translation> - </message> - <message> - <location line="+4"/> - <source>Insert Bulleted List</source> - <translation>Вставить маркированный список</translation> - </message> - <message> - <location line="+4"/> - <source>Insert Numbered List</source> - <translation>Вставить нумерованный список</translation> - </message> - <message> - <location line="+4"/> - <source>Indent</source> - <translation>Увеличить отступ</translation> - </message> - <message> - <location line="+3"/> - <source>Outdent</source> - <translation>Уменьшить отступ</translation> - </message> - <message> - <location line="+3"/> - <source>Center</source> - <translation>По центру</translation> - </message> - <message> - <location line="+3"/> - <source>Justify</source> - <translation>По ширине</translation> - </message> - <message> - <location line="+3"/> - <source>Align Left</source> - <translation>По левому краю</translation> - </message> - <message> - <location line="+3"/> - <source>Align Right</source> - <translation>По правому краю</translation> - </message> </context> <context> <name>QWhatsThisAction</name> @@ -8035,7 +9455,7 @@ Please choose a different file name.</source> <context> <name>QWidget</name> <message> - <location filename="../src/gui/kernel/qwidget.cpp" line="+5757"/> + <location filename="../src/gui/kernel/qwidget.cpp" line="+5802"/> <source>*</source> <translation>*</translation> </message> @@ -8043,27 +9463,12 @@ Please choose a different file name.</source> <context> <name>QWizard</name> <message> - <location filename="../src/gui/dialogs/qwizard.cpp" line="+649"/> - <source>Go Back</source> - <translation>Назад</translation> - </message> - <message> - <location line="+3"/> - <source>Continue</source> - <translation>Продолжить</translation> - </message> - <message> - <location line="+5"/> - <source>Commit</source> - <translation>Передать</translation> + <location filename="../src/gui/dialogs/qwizard.cpp" line="+701"/> + <source>Cancel</source> + <translation>Отмена</translation> </message> <message> <location line="+2"/> - <source>Done</source> - <translation>Готово</translation> - </message> - <message> - <location line="+4"/> <source>Help</source> <translation>Справка</translation> </message> @@ -8078,17 +9483,32 @@ Please choose a different file name.</source> <translation>&Завершить</translation> </message> <message> - <location line="+2"/> - <source>Cancel</source> - <translation>Отмена</translation> + <location line="+4"/> + <source>&Help</source> + <translation>&Справка</translation> + </message> + <message> + <location line="-14"/> + <source>Go Back</source> + <translation>Назад</translation> + </message> + <message> + <location line="+3"/> + <source>Continue</source> + <translation>Продолжить</translation> + </message> + <message> + <location line="+5"/> + <source>Commit</source> + <translation>Передать</translation> </message> <message> <location line="+2"/> - <source>&Help</source> - <translation>&Справка</translation> + <source>Done</source> + <translation>Готово</translation> </message> <message> - <location line="-8"/> + <location line="-4"/> <source>&Next</source> <translation>&Далее</translation> </message> @@ -8136,19 +9556,7 @@ Please choose a different file name.</source> <translation>Оставаться &сверху</translation> </message> <message> - <location line="+3"/> - <location line="+1059"/> - <source>Sh&ade</source> - <translation>Св&ернуть в заголовок</translation> - </message> - <message> - <location line="-278"/> - <location line="+60"/> - <source>%1 - [%2]</source> - <translation>%1 - [%2]</translation> - </message> - <message> - <location line="-1832"/> + <location line="-988"/> <source>Minimize</source> <translation>Свернуть</translation> </message> @@ -8163,7 +9571,19 @@ Please choose a different file name.</source> <translation>Закрыть</translation> </message> <message> - <location line="+2048"/> + <location line="+993"/> + <location line="+1059"/> + <source>Sh&ade</source> + <translation>Св&ернуть в заголовок</translation> + </message> + <message> + <location line="-278"/> + <location line="+60"/> + <source>%1 - [%2]</source> + <translation>%1 - [%2]</translation> + </message> + <message> + <location line="+214"/> <source>&Unshade</source> <translation>В&осстановить из заголовка</translation> </message> @@ -8226,17 +9646,7 @@ Please choose a different file name.</source> <translation>некорректное значение параметра standalone</translation> </message> <message> - <location line="+1"/> - <source>encoding declaration or standalone declaration expected while reading the XML declaration</source> - <translation>в объявлении XML ожидаются параметры encoding или standalone</translation> - </message> - <message> - <location line="+1"/> - <source>standalone declaration expected while reading the XML declaration</source> - <translation>в объявлении XML ожидается параметр standalone</translation> - </message> - <message> - <location line="+1"/> + <location line="+3"/> <source>error occurred while parsing document type definition</source> <translation>ошибка разбора объявления типа документа</translation> </message> @@ -8273,7 +9683,7 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>unparsed entity reference in wrong context</source> - <translation>неразобранная ссылка на объект в неверном контексте</translation> + <translation>неразобранная ссылка на объект в неправильном контексте</translation> </message> <message> <location line="+1"/> @@ -8285,6 +9695,16 @@ Please choose a different file name.</source> <source>error in the text declaration of an external entity</source> <translation>ошибка в объявлении внешнего объекта</translation> </message> + <message> + <location line="-11"/> + <source>encoding declaration or standalone declaration expected while reading the XML declaration</source> + <translation>в объявлении XML ожидаются параметры encoding или standalone</translation> + </message> + <message> + <location line="+1"/> + <source>standalone declaration expected while reading the XML declaration</source> + <translation>в объявлении XML ожидается параметр standalone</translation> + </message> </context> <context> <name>QXmlPatternistCLI</name> @@ -8335,12 +9755,12 @@ Please choose a different file name.</source> <message> <location line="+259"/> <source>Sequence ']]>' not allowed in content.</source> - <translation>Последовательность ']]>' недопустима в содержимом.</translation> + <translation>Последовательность "]]>" недопустима в содержимом.</translation> </message> <message> <location line="+309"/> <source>Namespace prefix '%1' not declared</source> - <translation>Префикс пространства имён '%1' не объявлен</translation> + <translation>Префикс пространства имён "%1" не объявлен</translation> </message> <message> <location line="+78"/> @@ -8350,12 +9770,12 @@ Please choose a different file name.</source> <message> <location line="+115"/> <source>Unexpected character '%1' in public id literal.</source> - <translation>Неожиданный символ '%1' в литерале открытого идентификатора.</translation> + <translation>Неожиданный символ "%1" в литерале открытого идентификатора.</translation> </message> <message> <location line="+28"/> <source>Invalid XML version string.</source> - <translation>Неверная строка версии XML.</translation> + <translation>Некорректная строка версии XML.</translation> </message> <message> <location line="+2"/> @@ -8365,7 +9785,7 @@ Please choose a different file name.</source> <message> <location line="+23"/> <source>%1 is an invalid encoding name.</source> - <translation>%1 - неверное название кодировки.</translation> + <translation>%1 - не является корректным названием кодировки.</translation> </message> <message> <location line="+7"/> @@ -8375,7 +9795,7 @@ Please choose a different file name.</source> <message> <location line="+16"/> <source>Standalone accepts only yes or no.</source> - <translation>Псевдоатрибут 'standalone' может принимать только значения 'yes' или 'no'.</translation> + <translation>Псевдоатрибут "standalone" может принимать только значения "yes" или "no".</translation> </message> <message> <location line="+2"/> @@ -8435,12 +9855,12 @@ Please choose a different file name.</source> <message> <location line="+34"/> <source>%1 is an invalid processing instruction name.</source> - <translation>%1 неверное название обрабатываемой инструкции.</translation> + <translation>%1 не является корректным названием обрабатываемой инструкции.</translation> </message> <message> <location line="+11"/> <source>Invalid processing instruction name.</source> - <translation>Неверное название обрабатываемой инструкции.</translation> + <translation>Некорректное название обрабатываемой инструкции.</translation> </message> <message> <location filename="../src/corelib/xml/qxmlstream.cpp" line="-536"/> @@ -8448,7 +9868,7 @@ Please choose a different file name.</source> <location filename="../src/corelib/xml/qxmlstream_p.h" line="+164"/> <location line="+53"/> <source>Illegal namespace declaration.</source> - <translation>Неверное объявление пространства имён.</translation> + <translation>Некорректное объявление пространства имён.</translation> </message> <message> <location filename="../src/corelib/xml/qxmlstream_p.h" line="+15"/> @@ -8463,45 +9883,284 @@ Please choose a different file name.</source> <message> <location line="+18"/> <source>Reference to unparsed entity '%1'.</source> - <translation>Ссылка на необработанный объект '%1'.</translation> + <translation>Ссылка на необработанный объект "%1".</translation> </message> <message> <location line="-13"/> <location line="+61"/> <location line="+40"/> <source>Entity '%1' not declared.</source> - <translation>Объект '%1' не объявлен.</translation> + <translation>Объект "%1" не объявлен.</translation> </message> <message> <location line="-26"/> <source>Reference to external entity '%1' in attribute value.</source> - <translation>Ссылка на внешний объект '%1' в значении атрибута.</translation> + <translation>Ссылка на внешний объект "%1" в значении атрибута.</translation> </message> <message> <location line="+40"/> <source>Invalid character reference.</source> - <translation>Неверная символьная ссылка.</translation> + <translation>Некорректная символьная ссылка.</translation> </message> <message> <location filename="../src/corelib/xml/qxmlstream.cpp" line="-75"/> <location filename="../src/corelib/xml/qxmlstream_p.h" line="-823"/> <source>Encountered incorrectly encoded content.</source> - <translation>Обнаружено неверно закодированное содержимое.</translation> + <translation>Обнаружено некорректно закодированное содержимое.</translation> </message> <message> <location line="+274"/> <source>The standalone pseudo attribute must appear after the encoding.</source> - <translation>Псевдоатрибут 'standalone' должен находиться после указания кодировки.</translation> + <translation>Псевдоатрибут "standalone" должен находиться после указания кодировки.</translation> </message> <message> <location filename="../src/corelib/xml/qxmlstream_p.h" line="+562"/> <source>%1 is an invalid PUBLIC identifier.</source> - <translation>%1 - неверный идентификатор PUBLIC.</translation> + <translation>%1 - некорректный идентификатор PUBLIC.</translation> </message> </context> <context> <name>QtXmlPatterns</name> <message> + <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/> + <location line="+15"/> + <source>At least one component must be present.</source> + <translation>Должна присутствовать как минимум одна компонента.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/> + <source>%1 is not a valid value of type %2.</source> + <translation>%1 не является правильным значением типа %2.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+223"/> + <source>When casting to %1 from %2, the source value cannot be %3.</source> + <translation>При преобразовании %2 в %1 исходное значение не может быть %3.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/> + <source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source> + <translation>Булево значение не может быть вычислено для последовательностей, которые содержат два и более атомарных значения.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/> + <source>The data of a processing instruction cannot contain the string %1</source> + <translation>Данные обрабатываемой инструкции не могут содержать строку "%1"</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+168"/> + <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/> + <source>%1 is an invalid %2</source> + <translation>%1 некоррекно для %2</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/> + <source>%1 is not a valid XML 1.0 character.</source> + <translation>Символ %1 недопустим для XML 1.0.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/> + <source>%1 was called.</source> + <translation>%1 было вызвано.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+133"/> + <source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source> + <translation>В замещаемой строке "%1" должно сопровождаться как минимум одной цифрой, если неэкранировано.</translation> + </message> + <message> + <location line="+26"/> + <source>In the replacement string, %1 can only be used to escape itself or %2, not %3</source> + <translation>В замещаемой строке символ "%1" может использоваться только для экранирования самого себя или "%2", но не "%3"</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/> + <source>%1 matches newline characters</source> + <translation>%1 соответствует символам конца строки</translation> + </message> + <message> + <location line="+10"/> + <source>Matches are case insensitive</source> + <translation>Соответствия регистронезависимы</translation> + </message> + <message> + <location line="+104"/> + <source>%1 is an invalid regular expression pattern: %2</source> + <translation>%1 - некорректный шаблон регулярного выражения: %2</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+346"/> + <source>It will not be possible to retrieve %1.</source> + <translation>Будет невозможно восстановить %1.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+266"/> + <source>The default collection is undefined</source> + <translation>Набор по умолчанию не определён</translation> + </message> + <message> + <location line="+13"/> + <source>%1 cannot be retrieved</source> + <translation>%1 не может быть восстановлен</translation> + </message> + <message> + <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/> + <source>The item %1 did not match the required type %2.</source> + <translation>Элемент %1 не соответствует необходимому типу %2.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+352"/> + <location line="+7323"/> + <source>%1 is an unknown schema type.</source> + <translation>%1 является схемой неизвестного типа.</translation> + </message> + <message> + <location line="-7254"/> + <source>A template with name %1 has already been declared.</source> + <translation>Шаблон с именем %1 уже был объявлен.</translation> + </message> + <message> + <location line="+213"/> + <source>Only one %1 declaration can occur in the query prolog.</source> + <translation>Только одно объявление %1 может присутствовать в прологе запроса.</translation> + </message> + <message> + <location line="+188"/> + <source>The initialization of variable %1 depends on itself</source> + <translation>Инициализация переменной %1 зависит от себя самой</translation> + </message> + <message> + <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/> + <source>The variable %1 is unused</source> + <translation>Переменная %1 не используется</translation> + </message> + <message> + <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+2904"/> + <source>Version %1 is not supported. The supported XQuery version is 1.0.</source> + <translation>Версия %1 не поддерживается. Поддерживается XQuery версии 1.0.</translation> + </message> + <message> + <location line="+71"/> + <source>No function with signature %1 is available</source> + <translation>Функция с сигнатурой %1 отсутствует</translation> + </message> + <message> + <location line="+303"/> + <source>It is not possible to redeclare prefix %1.</source> + <translation>Невозможно переопределить префикс %1.</translation> + </message> + <message> + <location line="+18"/> + <source>Prefix %1 is already declared in the prolog.</source> + <translation>Префикс %1 уже объявлен в прологе.</translation> + </message> + <message> + <location line="+95"/> + <source>The name of an option must have a prefix. There is no default namespace for options.</source> + <translation>Название опции должно содержать префикс. Нет пространства имён по умолчанию для опций.</translation> + </message> + <message> + <location line="+171"/> + <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source> + <translation>Возможность импорта схем не поддерживается, следовательно, объявлений %1 быть не должно.</translation> + </message> + <message> + <location line="+13"/> + <source>The target namespace of a %1 cannot be empty.</source> + <translation>Целевое пространство имён %1 не может быть пустым.</translation> + </message> + <message> + <location line="+8"/> + <source>The module import feature is not supported</source> + <translation>Возможность импорта модулей не поддерживается</translation> + </message> + <message> + <location line="+178"/> + <source>The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2</source> + <translation>Пространство имён пользовательской функции в модуле библиотеки должен соответствовать пространству имён модуля. Другими словами, он должен быть %1 вместо %2</translation> + </message> + <message> + <location line="+34"/> + <source>A function already exists with the signature %1.</source> + <translation>Функция с сигнатурой %1 уже существует.</translation> + </message> + <message> + <location line="+23"/> + <source>No external functions are supported. All supported functions can be used directly, without first declaring them as external</source> + <translation>Внешние функции не поддерживаются. Все поддерживаемые функции могут использоваться напрямую без первоначального объявления их в качестве внешних</translation> + </message> + <message> + <location line="+1709"/> + <source>The %1-axis is unsupported in XQuery</source> + <translation>Ось %1 не поддерживается в XQuery</translation> + </message> + <message> + <location line="+435"/> + <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source> + <translation>URI пространства имён не может быть пустой строкой при связывании с префиксом %1.</translation> + </message> + <message> + <location line="+7"/> + <source>%1 is an invalid namespace URI.</source> + <translation>%1 - некорректный URI пространства имён.</translation> + </message> + <message> + <location line="+6"/> + <source>It is not possible to bind to the prefix %1</source> + <translation>Невозможно связать с префиксом %1</translation> + </message> + <message> + <location line="+30"/> + <source>Two namespace declaration attributes have the same name: %1.</source> + <translation>Два атрибута объявления пространств имён имеют одинаковое имя: %1.</translation> + </message> + <message> + <location line="+89"/> + <source>The namespace URI must be a constant and cannot use enclosed expressions.</source> + <translation>URI пространства имён должен быть константой и не может содержать выражений.</translation> + </message> + <message> + <location line="+699"/> + <location line="+71"/> + <source>%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported.</source> + <translation>%1 является объявлением атрибута вне области объявлений. Имейте в виду, возможность импорта схем не поддерживается.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/> + <source>empty</source> + <translation>пусто</translation> + </message> + <message> + <location line="+2"/> + <source>zero or one</source> + <translation>нуль или один</translation> + </message> + <message> + <location line="+2"/> + <source>exactly one</source> + <translation>ровно один</translation> + </message> + <message> + <location line="+2"/> + <source>one or more</source> + <translation>один или более</translation> + </message> + <message> + <location line="+2"/> + <source>zero or more</source> + <translation>нуль или более</translation> + </message> + <message> + <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+156"/> + <source>The focus is undefined.</source> + <translation>Фокус не определён.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+93"/> + <source>An attribute by name %1 has already been created.</source> + <translation>Атрибут с именем %1 уже существует.</translation> + </message> + <message> <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/> <source>Network timeout.</source> <translation>Время ожидания сети истекло.</translation> @@ -8509,7 +10168,7 @@ Please choose a different file name.</source> <message> <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+320"/> <source>Element %1 can't be serialized because it appears outside the document element.</source> - <translation>Элемент %1 не может быть сериализован, так как присутствует вне документа.</translation> + <translation>Элемент %1 не может быть сериализован, так как расположен вне документа.</translation> </message> <message> <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/> @@ -8539,12 +10198,12 @@ Please choose a different file name.</source> <message> <location line="+49"/> <source>Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; </source> - <translation>Время 24:%1:%2.%3 неверно. 24 часа, но минуты, секунды и/или миллисекунды отличны от 0; </translation> + <translation>Время 24:%1:%2.%3 некорректно. 24 часа, но минуты, секунды и/или миллисекунды отличны от 0; </translation> </message> <message> <location line="+13"/> <source>Time %1:%2:%3.%4 is invalid.</source> - <translation>Время %1:%2:%3.%4 неверно.</translation> + <translation>Время %1:%2:%3.%4 некорректно.</translation> </message> <message> <location line="+115"/> @@ -8552,43 +10211,12 @@ Please choose a different file name.</source> <translation>Переполнение: невозможно представить дату.</translation> </message> <message> - <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/> - <location line="+15"/> - <source>At least one component must be present.</source> - <translation>Должна присутствовать как минимум одна компонента.</translation> - </message> - <message> - <location line="-7"/> + <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="-7"/> <source>At least one time component must appear after the %1-delimiter.</source> <translation>Как минимум одна компонента времени должна следовать за разделителем '%1'.</translation> </message> <message> - <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/> - <source>%1 is not a valid value of type %2.</source> - <translation>%1 не является правильным значением типа %2.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+223"/> - <source>When casting to %1 from %2, the source value cannot be %3.</source> - <translation>При преобразовании %2 в %1 исходное значение не может быть %3.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/> - <source>Integer division (%1) by zero (%2) is undefined.</source> - <translation>Целочисленное деление (%1) на нуль (%2) не определено.</translation> - </message> - <message> - <location line="+7"/> - <source>Division (%1) by zero (%2) is undefined.</source> - <translation>Деление (%1) на нуль (%2) не определено.</translation> - </message> - <message> - <location line="+7"/> - <source>Modulus division (%1) by zero (%2) is undefined.</source> - <translation>Деление по модулю (%1) на нуль (%2) не определено.</translation> - </message> - <message> - <location line="+122"/> + <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+201"/> <location line="+32"/> <source>Dividing a value of type %1 by %2 (not-a-number) is not allowed.</source> <translation>Деление числа типа %1 на %2 (не числовое выражение) недопустимо.</translation> @@ -8609,11 +10237,6 @@ Please choose a different file name.</source> <translation>Значение типа %1 не может быть булевым значением.</translation> </message> <message> - <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/> - <source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source> - <translation>Булево значение не может быть вычислено для последовательностей, которые содержат два и более атомарных значения.</translation> - </message> - <message> <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/> <source>Value %1 of type %2 exceeds maximum (%3).</source> <translation>Значение %1 типа %2 больше максимума (%3).</translation> @@ -8714,45 +10337,16 @@ Please choose a different file name.</source> <translation>Последняя часть пути должна содержать узлы или атомарные значения, но не может содержать и то, и другое одновременно.</translation> </message> <message> - <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/> - <source>The data of a processing instruction cannot contain the string %1</source> - <translation>Данные обрабатываемой инструкции не могут содержать строку '%1'</translation> - </message> - <message> <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+82"/> <source>No namespace binding exists for the prefix %1</source> <translation>Отсутствует привязка к пространству имён для префикса %1</translation> </message> <message> - <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+156"/> + <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="-12"/> <source>No namespace binding exists for the prefix %1 in %2</source> <translation>Отсутствует привязка к пространству имён для префикса %1 в %2</translation> </message> <message> - <location line="+12"/> - <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/> - <source>%1 is an invalid %2</source> - <translation>%1 некоррекно для %2</translation> - </message> - <message numerus="yes"> - <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/> - <source>%1 takes at most %n argument(s). %2 is therefore invalid.</source> - <translation> - <numerusform>%1 принимает не более %n аргумента. Следовательно, %2 неверно.</numerusform> - <numerusform>%1 принимает не более %n аргументов. Следовательно, %2 неверно.</numerusform> - <numerusform>%1 принимает не более %n аргументов. Следовательно, %2 неверно.</numerusform> - </translation> - </message> - <message numerus="yes"> - <location line="+11"/> - <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source> - <translation> - <numerusform>%1 принимает не менее %n аргумента. Следовательно, %2 неверно.</numerusform> - <numerusform>%1 принимает не менее %n аргументов. Следовательно, %2 неверно.</numerusform> - <numerusform>%1 принимает не менее %n аргументов. Следовательно, %2 неверно.</numerusform> - </translation> - </message> - <message> <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/> <source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source> <translation>Первый аргумент %1 не может быть типа %2. Он должен быть числового типа, типа xs:yearMonthDuration или типа xs:dayTimeDuration.</translation> @@ -8768,64 +10362,29 @@ Please choose a different file name.</source> <translation>Второй аргумент %1 не может быть типа %2. Он должен быть типа %3, %4 или %5.</translation> </message> <message> - <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/> - <source>%1 is not a valid XML 1.0 character.</source> - <translation>Символ %1 недопустим для XML 1.0.</translation> - </message> - <message> <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+86"/> <source>If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same.</source> <translation>Если оба значения имеют региональные смещения, смещения должны быть одинаковы. %1 и %2 не одинаковы.</translation> </message> <message> - <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/> - <source>%1 was called.</source> - <translation>%1 было вызвано.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+94"/> + <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="-65"/> <source>%1 must be followed by %2 or %3, not at the end of the replacement string.</source> - <translation>'%1' должно сопровождаться '%2' или '%3', но не в конце замещаемой строки.</translation> - </message> - <message> - <location line="+39"/> - <source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source> - <translation>В замещаемой строке '%1' должно сопровождаться как минимум одной цифрой, если неэкранировано.</translation> - </message> - <message> - <location line="+26"/> - <source>In the replacement string, %1 can only be used to escape itself or %2, not %3</source> - <translation>В замещаемой строке символ '%1' может использоваться только для экранирования самого себя или '%2', но не '%3'</translation> + <translation>"%1" должно сопровождаться "%2" или "%3", но не в конце замещаемой строки.</translation> </message> <message> - <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/> - <source>%1 matches newline characters</source> - <translation>%1 соответствует символам конца строки</translation> - </message> - <message> - <location line="+4"/> + <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="-110"/> <source>%1 and %2 match the start and end of a line.</source> <translation>%1 и %2 соответствуют началу и концу строки.</translation> </message> <message> - <location line="+6"/> - <source>Matches are case insensitive</source> - <translation>Соответствия регистронезависимы</translation> - </message> - <message> - <location line="+4"/> + <location line="+10"/> <source>Whitespace characters are removed, except when they appear in character classes</source> - <translation type="unfinished">Символы пробелов удалены, за исключением тех, что были в классах символов</translation> - </message> - <message> - <location line="+100"/> - <source>%1 is an invalid regular expression pattern: %2</source> - <translation>%1 - неверный шаблон регулярного выражения: %2</translation> + <translation>Символы пробелов удалены (за исключением тех, что были в символах классов)</translation> </message> <message> - <location line="+30"/> + <location line="+130"/> <source>%1 is an invalid flag for regular expressions. Valid flags are:</source> - <translation>%1 - неверный флаг для регулярного выражения. Допустимые флаги:</translation> + <translation>%1 - некорректный флаг регулярного выражения. Допустимые флаги:</translation> </message> <message> <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+17"/> @@ -8833,26 +10392,6 @@ Please choose a different file name.</source> <translation>Префикс не должен быть указан, если первый параметр - пустая последовательность или пустая строка (вне пространства имён). Был указан префикс %1.</translation> </message> <message> - <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+346"/> - <source>It will not be possible to retrieve %1.</source> - <translation>Будет невозможно восстановить %1.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+54"/> - <source>The root node of the second argument to function %1 must be a document node. %2 is not a document node.</source> - <translation>Корневой узел второго аргумента функции %1 должен быть документом. %2 не является документом.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+266"/> - <source>The default collection is undefined</source> - <translation>Набор по умолчанию не определён</translation> - </message> - <message> - <location line="+13"/> - <source>%1 cannot be retrieved</source> - <translation>%1 не может быть восстановлен</translation> - </message> - <message> <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+252"/> <source>The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization).</source> <translation>Форма нормализации %1 не поддерживается. Поддерживаются только %2, %3, %4, %5 и пустая, т.е. пустая строка (без нормализации).</translation> @@ -8863,144 +10402,22 @@ Please choose a different file name.</source> <translation>Региональное смещение должно быть в переделах от %1 до %2 включительно. %3 выходит за допустимые пределы.</translation> </message> <message> - <location line="+12"/> - <source>%1 is not a whole number of minutes.</source> - <translation>%1 не является полным количеством минут.</translation> - </message> - <message> <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+58"/> <source>Required cardinality is %1; got cardinality %2.</source> <translation>Необходимо %1 элементов, получено %2.</translation> </message> <message> - <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/> - <source>The item %1 did not match the required type %2.</source> - <translation>Элемент %1 не соответствует необходимому типу %2.</translation> - </message> - <message> - <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+352"/> - <location line="+7323"/> - <source>%1 is an unknown schema type.</source> - <translation>%1 является схемой неизвестного типа.</translation> - </message> - <message> - <location line="-7254"/> - <source>A template with name %1 has already been declared.</source> - <translation>Шаблон с именем %1 уже был объявлен.</translation> - </message> - <message> - <location line="+213"/> - <source>Only one %1 declaration can occur in the query prolog.</source> - <translation>Только одно объявление %1 может присутствовать в прологе запроса.</translation> - </message> - <message> - <location line="+188"/> - <source>The initialization of variable %1 depends on itself</source> - <translation>Инициализация переменной %1 зависит от себя самой</translation> - </message> - <message> - <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/> - <source>The variable %1 is unused</source> - <translation>Переменная %1 не используется</translation> - </message> - <message> - <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+2904"/> - <source>Version %1 is not supported. The supported XQuery version is 1.0.</source> - <translation>Версия %1 не поддерживается. Поддерживается XQuery версии 1.0.</translation> - </message> - <message> - <location line="+16"/> + <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-3944"/> <source>The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2.</source> - <translation>Кодировка %1 неверна. Имя кодировки должно содержать только символы латиницы без пробелов и должно удовлетворять регулярному выражению %2.</translation> - </message> - <message> - <location line="+55"/> - <source>No function with signature %1 is available</source> - <translation>Функция с сигнатурой %1 отсутствует</translation> - </message> - <message> - <location line="+72"/> - <location line="+10"/> - <source>A default namespace declaration must occur before function, variable, and option declarations.</source> - <translation>Объявление пространство имён по умолчанию должно быть до объявления функций, переменных и опций.</translation> - </message> - <message> - <location line="+10"/> - <source>Namespace declarations must occur before function, variable, and option declarations.</source> - <translation>Объявление пространства имён должно быть до объявления функций, переменных и опций.</translation> - </message> - <message> - <location line="+11"/> - <source>Module imports must occur before function, variable, and option declarations.</source> - <translation>Импортируемые модули должны быть указаны до объявления функций, переменных и опций.</translation> - </message> - <message> - <location line="+200"/> - <source>It is not possible to redeclare prefix %1.</source> - <translation>Невозможно переопределить префикс %1.</translation> - </message> - <message> - <location line="+18"/> - <source>Prefix %1 is already declared in the prolog.</source> - <translation>Префикс %1 уже объявлен в прологе.</translation> - </message> - <message> - <location line="+95"/> - <source>The name of an option must have a prefix. There is no default namespace for options.</source> - <translation>Название опции должно содержать префикс. Нет пространства имён по умолчанию для опций.</translation> - </message> - <message> - <location line="+171"/> - <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source> - <translation>Возможность импорта схем не поддерживается, следовательно, объявлений %1 быть не должно.</translation> - </message> - <message> - <location line="+13"/> - <source>The target namespace of a %1 cannot be empty.</source> - <translation>Целевое пространство имён %1 не может быть пустым.</translation> + <translation>Имя кодировки %1 некорректно. Имя кодировки должно содержать только символы латиницы без пробелов и должно удовлетворять регулярному выражению %2.</translation> </message> <message> - <location line="+8"/> - <source>The module import feature is not supported</source> - <translation>Возможность импорта модулей не поддерживается</translation> - </message> - <message> - <location line="-403"/> + <location line="+260"/> <source>The keyword %1 cannot occur with any other mode name.</source> <translation>Ключевое слово %1 не может встречаться с любым другим названием режима.</translation> </message> <message> - <location line="+551"/> - <source>A stylesheet function must have a prefixed name.</source> - <translation>Функция стилей должна иметь имя с префиксом.</translation> - </message> - <message> - <location line="+9"/> - <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source> - <translation>Пространство имён для пользовательских функций не может быть пустым (попробуйте предопределённый префикс %1, который существует для подобных ситуаций)</translation> - </message> - <message> - <location line="+9"/> - <source>The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases.</source> - <translation>Пространтсво имён %1 зарезервировано, поэтому пользовательские функции не могут его использовать. Попробуйте предопределённый префикс %2, который существует для подобных ситуаций.</translation> - </message> - <message> - <location line="+12"/> - <source>The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2</source> - <translation>Пространство имён пользовательской функции в модуле библиотеки должен соответствовать пространству имён модуля. Другими словами, он должен быть %1 вместо %2</translation> - </message> - <message> - <location line="+34"/> - <source>A function already exists with the signature %1.</source> - <translation>Функция с сигнатурой %1 уже существует.</translation> - </message> - <message> - <location line="+23"/> - <source>No external functions are supported. All supported functions can be used directly, without first declaring them as external</source> - <translation>Внешние функции не поддерживаются. Все поддерживаемые функции могут использоваться напрямую без первоначального объявления их в качестве внешних</translation> - </message> - <message> - <location line="-3755"/> + <location line="-3117"/> <source>No variable with name %1 exists</source> <translation>Переменная с именем %1 отсутствует</translation> </message> @@ -9025,7 +10442,17 @@ Please choose a different file name.</source> <translation>Отсутствует значение для внешней переменной с именем %1.</translation> </message> <message> - <location line="+220"/> + <location line="+96"/> + <source>A stylesheet function must have a prefixed name.</source> + <translation>Функция стилей должна иметь имя с префиксом.</translation> + </message> + <message> + <location line="+18"/> + <source>The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases.</source> + <translation>Пространтсво имён %1 зарезервировано, поэтому пользовательские функции не могут его использовать. Попробуйте предопределённый префикс %2, который существует для подобных ситуаций.</translation> + </message> + <message> + <location line="+106"/> <source>An argument with name %1 has already been declared. Every argument name must be unique.</source> <translation>Аргумент с именем %1 уже объявлен. Имя каждого аргумента должно быть уникальным.</translation> </message> @@ -9062,12 +10489,12 @@ Please choose a different file name.</source> <message> <location line="+126"/> <source>%1 is an invalid template mode name.</source> - <translation>%1 является неверным шаблоном имени режима.</translation> + <translation>%1 не является корректным шаблоном имени режима.</translation> </message> <message> <location line="+44"/> <source>The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide.</source> - <translation type="unfinished">Имя переменной, связанной с выражением for, должно отличаться от позиционной переменной. Две переменные с именем %1 конфликтуют.</translation> + <translation>Имя переменной, связанной с выражением for, должно отличаться от позиционной переменной. Две переменные с именем %1 конфликтуют.</translation> </message> <message> <location line="+778"/> @@ -9085,29 +10512,14 @@ Please choose a different file name.</source> <translation>Имя каждого параметра шаблона должно быть уникальным, но %1 повторяется.</translation> </message> <message> - <location line="+129"/> - <source>The %1-axis is unsupported in XQuery</source> - <translation>Ось %1 не поддерживается в XQuery</translation> - </message> - <message> - <location line="+333"/> + <location line="+462"/> <source>No function with name %1 is available.</source> <translation>Функция с именем %1 отсутствует.</translation> </message> <message> - <location line="+250"/> - <source>An attribute with name %1 has already appeared on this element.</source> - <translation>Атрибут с именем %1 уже существует для данного элемента.</translation> - </message> - <message> - <location line="+614"/> - <source>%1 is not a valid name for a processing-instruction.</source> - <translation>%1 является неверным названием для инструкции обработки.</translation> - </message> - <message> - <location line="-7099"/> + <location line="-6235"/> <source>%1 is not a valid numeric literal.</source> - <translation>%1 является неверным числовым литералом.</translation> + <translation>%1 не является корректным числовым литералом.</translation> </message> <message> <location line="-152"/> @@ -9125,22 +10537,7 @@ Please choose a different file name.</source> <translation>Встречена конструкция, запрещённая для текущего языка (%1).</translation> </message> <message> - <location line="+6482"/> - <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source> - <translation>URI пространства имён не может быть пустой строкой при связывании с префиксом %1.</translation> - </message> - <message> - <location line="+7"/> - <source>%1 is an invalid namespace URI.</source> - <translation>%1 - неверный URI пространства имён.</translation> - </message> - <message> - <location line="+6"/> - <source>It is not possible to bind to the prefix %1</source> - <translation>Невозможно связать с префиксом %1</translation> - </message> - <message> - <location line="+7"/> + <location line="+6502"/> <source>Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).</source> <translation>Пространство имён %1 может быть связано только с %2 (в данном случае уже предопределено).</translation> </message> @@ -9150,17 +10547,12 @@ Please choose a different file name.</source> <translation>Префикс %1 может быть связан только с %2 (в данном случае уже предопределено).</translation> </message> <message> - <location line="+15"/> - <source>Two namespace declaration attributes have the same name: %1.</source> - <translation>Два атрибута объявления пространств имён имеют одинаковое имя: %1.</translation> - </message> - <message> - <location line="+89"/> - <source>The namespace URI must be a constant and cannot use enclosed expressions.</source> - <translation>URI пространства имён должно быть константой и не может содержать выражений.</translation> + <location line="+120"/> + <source>An attribute with name %1 has already appeared on this element.</source> + <translation>Атрибут с именем %1 уже существует для данного элемента.</translation> </message> <message> - <location line="+77"/> + <location line="+61"/> <source>A direct element constructor is not well-formed. %1 is ended with %2.</source> <translation>Прямой конструктор элемента составлен некорректно. %1 заканчивается на %2.</translation> </message> @@ -9180,70 +10572,98 @@ Please choose a different file name.</source> <translation>%1 - не атомарный тип. Преобразование возможно только к атомарным типам.</translation> </message> <message> - <location line="+145"/> - <location line="+71"/> - <source>%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported.</source> - <translation>%1 является объявлением атрибута вне области объявлений. Имейте в виду, возможность импорта схем не поддерживается.</translation> + <location line="+76"/> + <source>%1 is not a valid name for a processing-instruction.</source> + <translation>%1 не является корректным названием инструкции обработки.</translation> </message> <message> - <location line="+48"/> + <location line="+188"/> <source>The name of an extension expression must be in a namespace.</source> <translation>Название выражения расширения должно быть в пространстве имён.</translation> </message> <message> - <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/> - <source>empty</source> - <translation>пусто</translation> + <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="-93"/> + <source>Required type is %1, but %2 was found.</source> + <translation>Требуется тип %1, но обнаружен %2.</translation> </message> <message> - <location line="+2"/> - <source>zero or one</source> - <translation>нуль или один</translation> + <location line="+44"/> + <source>Promoting %1 to %2 may cause loss of precision.</source> + <translation>Преобразование %1 к %2 может снизить точность.</translation> </message> <message> - <location line="+2"/> - <source>exactly one</source> - <translation>ровно один</translation> + <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="-7"/> + <source>It's not possible to add attributes after any other kind of node.</source> + <translation>Невозможно добавлять атрибуты после любого другого вида узла.</translation> </message> <message> - <location line="+2"/> - <source>one or more</source> - <translation>один или более</translation> + <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/> + <source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source> + <translation>Поддерживается только Unicode Codepoint Collation (%1). %2 не поддерживается.</translation> </message> <message> - <location line="+2"/> - <source>zero or more</source> - <translation>нуль или более</translation> + <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="-180"/> + <source>Integer division (%1) by zero (%2) is undefined.</source> + <translation>Целочисленное деление (%1) на нуль (%2) не определено.</translation> </message> <message> - <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/> - <source>Required type is %1, but %2 was found.</source> - <translation>Требуется тип %1, но обнаружен %2.</translation> + <location line="+7"/> + <source>Division (%1) by zero (%2) is undefined.</source> + <translation>Деление (%1) на нуль (%2) не определено.</translation> </message> <message> - <location line="+44"/> - <source>Promoting %1 to %2 may cause loss of precision.</source> - <translation>Преобразование %1 к %2 может снизить точность.</translation> + <location line="+7"/> + <source>Modulus division (%1) by zero (%2) is undefined.</source> + <translation>Деление по модулю (%1) на нуль (%2) не определено.</translation> + </message> + <message numerus="yes"> + <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/> + <source>%1 takes at most %n argument(s). %2 is therefore invalid.</source> + <translation> + <numerusform>%1 принимает не более %n аргумента. Следовательно, %2 некорректно.</numerusform> + <numerusform>%1 принимает не более %n аргументов. Следовательно, %2 некорректно.</numerusform> + <numerusform>%1 принимает не более %n аргументов. Следовательно, %2 некорректно.</numerusform> + </translation> + </message> + <message numerus="yes"> + <location line="+11"/> + <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source> + <translation> + <numerusform>%1 принимает не менее %n аргумента. Следовательно, %2 некорректно.</numerusform> + <numerusform>%1 принимает не менее %n аргументов. Следовательно, %2 некорректно.</numerusform> + <numerusform>%1 принимает не менее %n аргументов. Следовательно, %2 некорректно.</numerusform> + </translation> </message> <message> - <location line="+49"/> - <source>The focus is undefined.</source> - <translation>Фокус не определён.</translation> + <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+54"/> + <source>The root node of the second argument to function %1 must be a document node. %2 is not a document node.</source> + <translation>Корневой узел второго аргумента функции %1 должен быть документом. %2 не является документом.</translation> </message> <message> - <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+86"/> - <source>It's not possible to add attributes after any other kind of node.</source> - <translation>Невозможно добавлять атрибуты после любого другого вида узла.</translation> + <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-3172"/> + <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source> + <translation>Пространство имён для пользовательских функций не может быть пустым (попробуйте предопределённый префикс %1, который существует для подобных ситуаций)</translation> </message> <message> - <location line="+7"/> - <source>An attribute by name %1 has already been created.</source> - <translation>Атрибут с именем %1 уже существует.</translation> + <location line="-693"/> + <location line="+10"/> + <source>A default namespace declaration must occur before function, variable, and option declarations.</source> + <translation>Объявление пространство имён по умолчанию должно быть до объявления функций, переменных и опций.</translation> </message> <message> - <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/> - <source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source> - <translation>Поддерживается только Unicode Codepoint Collation (%1). %2 не поддерживается.</translation> + <location line="+10"/> + <source>Namespace declarations must occur before function, variable, and option declarations.</source> + <translation>Объявление пространства имён должно быть до объявления функций, переменных и опций.</translation> + </message> + <message> + <location line="+11"/> + <source>Module imports must occur before function, variable, and option declarations.</source> + <translation>Импортируемые модули должны быть указаны до объявления функций, переменных и опций.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+12"/> + <source>%1 is not a whole number of minutes.</source> + <translation>%1 не является полным количеством минут.</translation> </message> <message> <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+60"/> @@ -9398,12 +10818,12 @@ Please choose a different file name.</source> <message> <location line="+270"/> <source>Element %1 cannot have children.</source> - <translation>У элемента %1 не может быть потомков.</translation> + <translation>Элемент %1 не может иметь потомков.</translation> </message> <message> <location line="+434"/> <source>Element %1 cannot have a sequence constructor.</source> - <translation>У элемента %1 не может быть конструктора последовательности.</translation> + <translation type="unfinished">Элемент %1 не может иметь конструктор последовательности.</translation> </message> <message> <location line="+86"/> @@ -9414,7 +10834,7 @@ Please choose a different file name.</source> <message> <location line="+15"/> <source>A parameter in a function cannot be declared to be a tunnel.</source> - <translation type="unfinished">Параметр в функции не может быть объявлен туннелем.</translation> + <translation type="unfinished">Параметр функции не может быть объявлен туннелем.</translation> </message> <message> <location line="+149"/> @@ -9942,13 +11362,13 @@ Please choose a different file name.</source> </message> <message> <location line="+28"/> - <location line="+408"/> + <location line="+415"/> <location line="+30"/> <source>Type %1 of %2 element cannot be resolved.</source> <translation type="unfinished"></translation> </message> <message> - <location line="-416"/> + <location line="-423"/> <source>Base type %1 of complex type cannot be resolved.</source> <translation type="unfinished"></translation> </message> @@ -9958,7 +11378,7 @@ Please choose a different file name.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+279"/> + <location line="+286"/> <source>Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type.</source> <translation type="unfinished"></translation> </message> @@ -10148,7 +11568,7 @@ Please choose a different file name.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+127"/> + <location line="+143"/> <source>Document is not a XML schema.</source> <translation type="unfinished"></translation> </message> @@ -10174,7 +11594,7 @@ Please choose a different file name.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+237"/> + <location line="+243"/> <source>%1 element is not allowed to have the same %2 attribute value as the target namespace %3.</source> <translation type="unfinished"></translation> </message> @@ -10184,7 +11604,7 @@ Please choose a different file name.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+833"/> + <location line="+851"/> <location line="+158"/> <source>%1 element is not allowed inside %2 element if %3 attribute is present.</source> <translation type="unfinished"></translation> @@ -10288,7 +11708,7 @@ Please choose a different file name.</source> <message> <location line="+19"/> <source>Text or entity references not allowed inside %1 element</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Текст или ссылка на объект недопустимы в качестве содержимого элемента %1</translation> </message> <message> <location line="+41"/> @@ -10325,17 +11745,17 @@ Please choose a different file name.</source> <message> <location line="+17"/> <source>Element %1 already defined.</source> - <translation type="unfinished"></translation> + <translation>Элемент %1 уже определён.</translation> </message> <message> <location line="+11"/> <source>Attribute %1 already defined.</source> - <translation type="unfinished"></translation> + <translation>Атрибут %1 уже определён.</translation> </message> <message> <location line="+15"/> <source>Type %1 already defined.</source> - <translation type="unfinished"></translation> + <translation>Тип %1 уже определён.</translation> </message> <message> <location line="+23"/> @@ -10345,7 +11765,7 @@ Please choose a different file name.</source> <message> <location line="+11"/> <source>Element group %1 already defined.</source> - <translation type="unfinished"></translation> + <translation>Группа элементов %1 уже определёна.</translation> </message> <message> <location line="+11"/> @@ -10367,7 +11787,7 @@ Please choose a different file name.</source> <location line="+7"/> <location line="+21"/> <source>%1 is not valid according to %2.</source> - <translation type="unfinished"></translation> + <translation>%1 некорректно в соответствии с %2.</translation> </message> <message> <location line="+167"/> @@ -10592,7 +12012,7 @@ Please choose a different file name.</source> <message> <location line="+27"/> <source>Invalid QName content: %1.</source> - <translation type="unfinished"></translation> + <translation>Некорректное содержимое QName: %1.</translation> </message> <message> <location line="+17"/> @@ -10662,32 +12082,32 @@ Please choose a different file name.</source> <message> <location line="+27"/> <source>Loaded schema file is invalid.</source> - <translation type="unfinished"></translation> + <translation>Загруженный файл схемы некорректен.</translation> </message> <message> <location line="+16"/> <source>%1 contains invalid data.</source> - <translation type="unfinished"></translation> + <translation>%1 содержит некорректные данные.</translation> </message> <message> <location line="+13"/> <source>xsi:schemaLocation namespace %1 has already appeared earlier in the instance document.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Пространство имён xsi:schemaLocation %1 уже встречалось ранее в данном документе.</translation> </message> <message> <location line="+22"/> <source>xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">xsi:noNamespaceSchemaLocation не может встречаться после первого не-`namespace` элемента или атрибута.</translation> </message> <message> <location line="+18"/> <source>No schema defined for validation.</source> - <translation type="unfinished"></translation> + <translation>Схема для проверки не определена.</translation> </message> <message> <location line="+10"/> <source>No definition for element %1 available.</source> - <translation type="unfinished"></translation> + <translation>Отсутствует определение элемента %1.</translation> </message> <message> <location line="+18"/> @@ -10699,7 +12119,7 @@ Please choose a different file name.</source> <message> <location line="-176"/> <source>Element %1 is not defined in this scope.</source> - <translation type="unfinished"></translation> + <translation>Элемент %1 не определён в данном контексте.</translation> </message> <message> <location line="+43"/> @@ -10719,7 +12139,7 @@ Please choose a different file name.</source> <message> <location line="+7"/> <source>Element %1 is not nillable.</source> - <translation type="unfinished"></translation> + <translation>Элемент %1 необнуляемый.</translation> </message> <message> <location line="+8"/> @@ -10729,7 +12149,7 @@ Please choose a different file name.</source> <message> <location line="+8"/> <source>Element contains content although it is nillable.</source> - <translation type="unfinished"></translation> + <translation>Элемент необнуляемый, т.к. имеет содержимое.</translation> </message> <message> <location line="+6"/> @@ -10739,7 +12159,7 @@ Please choose a different file name.</source> <message> <location line="+230"/> <source>Element %1 cannot contain other elements, as it has a fixed content.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Элемент %1 не может содержать другие элементы, т.к. имеет статическое содержимое.</translation> </message> <message> <location line="-198"/> @@ -10850,7 +12270,7 @@ Please choose a different file name.</source> <message> <location line="+64"/> <source>More than one value found for field %1.</source> - <translation type="unfinished"></translation> + <translation>Для поля %1 найдено более одного значения.</translation> </message> <message> <location line="+20"/> @@ -10860,12 +12280,12 @@ Please choose a different file name.</source> <message> <location line="+73"/> <source>ID value '%1' is not unique.</source> - <translation type="unfinished"></translation> + <translation>Значение ID "%1" неуникально.</translation> </message> <message> <location line="+11"/> <source>'%1' attribute contains invalid QName content: %2.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Атрибут `%1` имеет некорректное содержимое QName: %2.</translation> </message> </context> </TS> diff --git a/translations/qtconfig_hu.ts b/translations/qtconfig_hu.ts index 0eaead0..549a5d8 100644 --- a/translations/qtconfig_hu.ts +++ b/translations/qtconfig_hu.ts @@ -1,35 +1,35 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> -<TS version="2.0" language="hu"> +<TS version="2.0" language="hu_HU"> <context> <name>MainWindow</name> <message> - <location filename="../tools/qtconfig/mainwindow.cpp" line="+202"/> + <location filename="../tools/qtconfig/mainwindow.cpp" line="+204"/> <source>Desktop Settings (Default)</source> - <translation>Asztali beállítások (Alapértelmezett)</translation> + <translation>Az asztal beállításai (Alapértelmezett)</translation> </message> <message> <location line="+5"/> <source>Choose style and palette based on your desktop settings.</source> - <translation>Stílus és paletta alapú kiválasztása az asztali beállításokban.</translation> + <translation>Stílus és paletta választása az asztal beállításai alapján.</translation> </message> <message> <location line="+144"/> <source>On The Spot</source> - <translation>Azon nyomban</translation> + <translation>On The Spot</translation> </message> <message> <location line="+33"/> <location line="+1"/> - <location line="+38"/> + <location line="+40"/> <location line="+1"/> <source>Auto (default)</source> <translation>Automatikus (alapértelmezett)</translation> </message> <message> - <location line="-38"/> + <location line="-40"/> <source>Choose audio output automatically.</source> - <translation>Audió kimenet automatikus kiválasztása.</translation> + <translation>Válasszon automatikusan egy hangkimenetet.</translation> </message> <message> <location line="+1"/> @@ -40,17 +40,17 @@ <message> <location line="+1"/> <source>Experimental aRts support for GStreamer.</source> - <translation>Kísérleti aRts támogatás a GStreamerhez.</translation> + <translation>Kísérleti aRts támogatás GStreamer-hez.</translation> </message> <message> - <location line="+31"/> + <location line="+33"/> <source>Phonon GStreamer backend not available.</source> - <translation>Phonon GStreamer backend nem elérhető.</translation> + <translation>Phonon GStreamer segítő nem érhető el.</translation> </message> <message> <location line="+4"/> <source>Choose render method automatically</source> - <translation>Render eljárás automatikus kiválasztása</translation> + <translation>Válasszon automatikusan egy renderelési módot</translation> </message> <message> <location line="+2"/> @@ -61,7 +61,8 @@ <message> <location line="+0"/> <source>Use X11 Overlays</source> - <translation>X11 borítás használata</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">Használja az X11 átlapolást</translation> </message> <message> <location line="+3"/> @@ -70,72 +71,76 @@ <translation>OpenGL</translation> </message> <message> - <location line="+0"/> <source>Use OpenGL if avaiable</source> - <translation>OpenGL használata, ha rendelkezésre áll</translation> + <translation type="obsolete">Használja az OpenGL-t ha elérhető</translation> + </message> + <message> + <location line="+0"/> + <source>Use OpenGL if available</source> + <translation>Használja az OpenGL-t ha elérhető</translation> </message> <message> <location line="+2"/> <location line="+1"/> <source>Software</source> - <translation>Szoftver</translation> + <translation>Szoftveres</translation> </message> <message> <location line="+0"/> <source>Use simple software rendering</source> - <translation>Egyszerű szoftver adás használata</translation> + <translation>Használjon szoftveres renderelést</translation> </message> <message> <location line="+27"/> <source>No changes to be saved.</source> - <translation>A változtatások nincsenek elmentve.</translation> + <translation>Nem történt változás.</translation> </message> <message> <location line="+4"/> <source>Saving changes...</source> - <translation>Változtatások elmentése...</translation> + <translation>Változások mentése...</translation> </message> <message> <location line="+48"/> <source>Over The Spot</source> - <translation>Célon túlmenően</translation> + <translation>Over The Spot</translation> </message> <message> <location line="+2"/> <source>Off The Spot</source> - <translation>Elkalandozás</translation> + <translation>Off The Spot</translation> </message> <message> <location line="+2"/> <source>Root</source> - <translation>Rendszergazda</translation> + <translation>Root</translation> </message> <message> <location line="+466"/> <source>Select a Directory</source> - <translation>Egy könyvtár kiválasztása</translation> + <translation>Válasszon egy könyvtárat</translation> </message> <message> <location line="+17"/> <source><h3>%1</h3><br/>Version %2<br/><br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</source> - <translation><h3>%1</h3><br/>Verzió %2<br/><br/>Szerzői jog (C) 2010 Nokia vállalat és/vagy leányvállalata(i).</translation> + <translation><h3>%1</h3><br/>Verzió %2<br/><br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</translation> </message> <message> <location line="+3"/> <location line="+1"/> <location line="+8"/> <source>Qt Configuration</source> - <translation>Qt Konfiguráció</translation> + <translation>Qt beállítás</translation> </message> <message> <location line="+22"/> <source>Save Changes</source> - <translation>Változtatások elmentése</translation> + <translation>Változások mentése</translation> </message> <message> <location line="+1"/> <source>Save changes to settings?</source> - <translation>Változtatások elmentése a beállításokba ?</translation> + <translation>Menti a beállítások változását?</translation> </message> <message> <location line="+1"/> @@ -150,416 +155,395 @@ <message> <location line="+0"/> <source>&Cancel</source> - <translation>&Mégse</translation> + <translation>&Mégsem</translation> </message> </context> <context> <name>MainWindowBase</name> <message> - <location filename="../tools/qtconfig/mainwindowbase.ui" line="+54"/> + <location filename="../tools/qtconfig/mainwindowbase.ui"/> <source>Qt Configuration</source> - <translation>Qt Konfiguráció -</translation> + <translation>Qt beállítás</translation> </message> <message> - <location line="+35"/> + <location/> <source>Appearance</source> - <translation>Feltűnés</translation> + <translation>Megjelenés</translation> </message> <message> - <location line="+18"/> + <location/> <source>GUI Style</source> - <translation>GUI Stílus</translation> + <translation>GUI stílus</translation> </message> <message> - <location line="+18"/> + <location/> <source>Select GUI &Style:</source> - <translation>GUI &Stílus kiválasztása:</translation> + <translation>Válasszon egy &stílust:</translation> </message> <message> - <location line="+88"/> - <source>Build Palette</source> - <translation>Építési paletta</translation> + <location/> + <source>Preview</source> + <translation>Előnézet</translation> </message> <message> - <location line="+12"/> - <source>&3-D Effects:</source> - <translation>&3 D Hatások:</translation> + <location/> + <source>Select &Palette:</source> + <translation>Előnézet &választása:</translation> </message> <message> - <location line="+31"/> - <source>Window Back&ground:</source> - <translation>Ablak Hát&tér:</translation> + <location/> + <source>Active Palette</source> + <translation>Aktív elemek</translation> </message> <message> - <location line="+35"/> - <source>&Tune Palette...</source> - <translation>&Hangolási paletta...</translation> + <location/> + <source>Inactive Palette</source> + <translation>Inaktív elemek</translation> </message> <message> - <location line="+10"/> - <source>Please use the KDE Control Center to set the palette.</source> - <translation>Kérem használja a KDE Vezérlő Központot a paletta beállításához.</translation> + <location/> + <source>Disabled Palette</source> + <translation>Letiltott elemek</translation> </message> <message> - <location line="-154"/> - <source>Preview</source> - <translation>Előnézet</translation> + <location/> + <source>Build Palette</source> + <translation>Paletta felépítése</translation> </message> <message> - <location line="+6"/> - <source>Select &Palette:</source> - <translation>&Paletta kiválasztása:</translation> + <location/> + <source>&3-D Effects:</source> + <translation>&3-D effektek:</translation> </message> <message> - <location line="+11"/> - <source>Active Palette</source> - <translation>Aktív paletta</translation> + <location/> + <source>Window Back&ground:</source> + <translation>Ablak &háttér:</translation> </message> <message> - <location line="+5"/> - <source>Inactive Palette</source> - <translation>Inaktív paletta</translation> + <location/> + <source>&Tune Palette...</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+5"/> - <source>Disabled Palette</source> - <translation>Tiltott paletta</translation> + <location/> + <source>Please use the KDE Control Center to set the palette.</source> + <translation>Kérem, használja a KDE vezérlőközpontot a paletta beállításához.</translation> </message> <message> - <location line="+138"/> + <location/> <source>Fonts</source> - <translation>Betűk</translation> + <translation>Betűtípusok</translation> </message> <message> - <location line="+6"/> + <location/> <source>Default Font</source> - <translation>Alapértelmezett betű</translation> + <translation>Alapértelmezett betűtípus</translation> </message> <message> - <location line="+45"/> + <location/> <source>&Style:</source> <translation>&Stílus:</translation> </message> <message> - <location line="+10"/> + <location/> <source>&Point Size:</source> - <translation>&Pont méret:</translation> + <translation>&Pontméret:</translation> </message> <message> - <location line="+10"/> + <location/> <source>F&amily:</source> - <translation>Csa&lád:</translation> + <translation>&Család:</translation> </message> <message> - <location line="+10"/> + <location/> <source>Sample Text</source> - <translation>Minta szöveg</translation> + <translation>Példa szöveg</translation> </message> <message> - <location line="+13"/> + <location/> <source>Font Substitution</source> - <translation>Betű helyettesítés</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+20"/> + <location/> <source>S&elect or Enter a Family:</source> - <translation>Egy család ki&választása vgy bevitele:</translation> + <translation>Válassza ki, vagy írja b&íe a betűcsaládot:</translation> </message> <message> - <location line="+38"/> + <location/> <source>Current Substitutions:</source> - <translation>Aktuális helyettesítés:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+18"/> - <location line="+501"/> + <location/> <source>Up</source> <translation>Fel</translation> </message> <message> - <location line="-494"/> - <location line="+508"/> + <location/> <source>Down</source> <translation>Le</translation> </message> <message> - <location line="-501"/> - <location line="+494"/> + <location/> <source>Remove</source> - <translation>Eltávolítás</translation> + <translation>Törlés</translation> </message> <message> - <location line="-464"/> + <location/> <source>Select s&ubstitute Family:</source> - <translation>Család &helyettesítésének kiválasztása:</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+20"/> - <location line="+487"/> + <location/> <source>Add</source> - <translation>Hozzáad</translation> + <translation>Hozzáadás</translation> </message> <message> - <location line="-474"/> + <location/> <source>Interface</source> - <translation>Interfész</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">Interfész</translation> </message> <message> - <location line="+6"/> + <location/> <source>Feel Settings</source> - <translation>Érzet beállítások</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+12"/> - <location line="+26"/> + <location/> <source> ms</source> - <translation> ms</translation> + <translation></translation> </message> <message> - <location line="-13"/> + <location/> <source>&Double Click Interval:</source> - <translation>&Dupla kattintási intervallum:</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">&Dupla kattintás sebessége:</translation> </message> <message> - <location line="+10"/> + <location/> <source>No blinking</source> <translation>Nincs villogás</translation> </message> <message> - <location line="+16"/> + <location/> <source>&Cursor Flash Time:</source> - <translation>&Kurzor flash idő:</translation> + <translation>&Kurzor villogás sebessége:</translation> </message> <message> - <location line="+10"/> + <location/> <source> lines</source> - <translation>sorok</translation> + <translation> sor</translation> </message> <message> - <location line="+13"/> + <location/> <source>Wheel &Scroll Lines:</source> - <translation>Kerék sor &görgetés:</translation> + <translation>Görgetett &sorok száma:</translation> </message> <message> - <location line="+10"/> + <location/> <source>Resolve symlinks in URLs</source> - <translation>URL-ben található szimlinkek megoldása</translation> + <translation>Szimbolikus linkek feloldása az URL-ekben</translation> </message> <message> - <location line="+10"/> + <location/> <source>GUI Effects</source> - <translation>GUI hatások</translation> + <translation>GUI effektek</translation> </message> <message> - <location line="+12"/> + <location/> <source>&Enable</source> <translation>&Engedélyezés</translation> </message> <message> - <location line="+3"/> + <location/> <source>Alt+E</source> - <translation>Alt+E</translation> + <translation></translation> </message> <message> - <location line="+22"/> + <location/> <source>&Menu Effect:</source> - <translation>&Menü hatás:</translation> + <translation>&Menü effekt:</translation> </message> <message> - <location line="+10"/> + <location/> <source>C&omboBox Effect:</source> - <translation>C&omboBox hatás:</translation> + <translation>&Legördülő lista effekt:</translation> </message> <message> - <location line="+10"/> + <location/> <source>&ToolTip Effect:</source> - <translation>&Eszköz tipp hatás:</translation> + <translation>&ToolTip effekt:</translation> </message> <message> - <location line="+10"/> + <location/> <source>Tool&Box Effect:</source> - <translation>Eszköz&doboz hatás:</translation> + <translation>Eszköz&tár effekt:</translation> </message> <message> - <location line="+17"/> - <location line="+19"/> - <location line="+14"/> - <location line="+19"/> + <location/> <source>Disable</source> - <translation>Tiltás</translation> + <translation>Letiltás</translation> </message> <message> - <location line="-47"/> - <location line="+19"/> - <location line="+14"/> - <location line="+19"/> + <location/> <source>Animate</source> - <translation>Animálás</translation> + <translation>Animáció</translation> </message> <message> - <location line="-47"/> - <location line="+33"/> + <location/> <source>Fade</source> - <translation>Elhalkulás</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+28"/> + <location/> <source>Global Strut</source> - <translation>Globális struktúra</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+12"/> + <location/> <source>Minimum &Width:</source> - <translation>Minimum &szélesség:</translation> + <translation>Minimum s&zélesség:</translation> </message> <message> - <location line="+10"/> + <location/> <source>Minimum Hei&ght:</source> - <translation>Minimum ma&gasség:</translation> + <translation>Minimum &magasság:</translation> </message> <message> - <location line="+10"/> - <location line="+10"/> + <location/> <source> pixels</source> - <translation>pixelek</translation> + <translation> pixel</translation> </message> <message> - <location line="+13"/> + <location/> <source>Enhanced support for languages written right-to-left</source> - <translation>Kiterjesztett támogatás a jobbról balra írt nyelvek számára</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">Javított támogatás balról jobbra író nyelvekhez</translation> </message> <message> - <location line="+7"/> + <location/> <source>XIM Input Style:</source> <translation>XIM beviteli stílus:</translation> </message> <message> - <location line="+11"/> + <location/> <source>On The Spot</source> - <translation>Azon nyomban</translation> + <translation>On The Spot</translation> </message> <message> - <location line="+5"/> + <location/> <source>Over The Spot</source> - <translation>Célon túlmenően</translation> + <translation>Over The Spot</translation> </message> <message> - <location line="+5"/> + <location/> <source>Off The Spot</source> - <translation>Elkalandozás</translation> + <translation>Off The Spot</translation> </message> <message> - <location line="+5"/> + <location/> <source>Root</source> - <translation>Rendszergazda</translation> + <translation>Root</translation> </message> <message> - <location line="+8"/> + <location/> <source>Default Input Method:</source> - <translation>Alapértelmezett beviteli eljárás:</translation> + <translation>Alapértelmezett beviteli mód:</translation> </message> <message> - <location line="+31"/> + <location/> <source>Printer</source> <translation>Nyomtató</translation> </message> <message> - <location line="+6"/> + <location/> <source>Enable Font embedding</source> - <translation>Betű beágyazás engedélyezése</translation> + <translation>Font beágyazás engedélyezése</translation> </message> <message> - <location line="+16"/> + <location/> <source>Font Paths</source> - <translation>Betű útvonalak</translation> + <translation>Fontok útvonalai</translation> </message> <message> - <location line="+77"/> + <location/> <source>Browse...</source> - <translation>Böngészés...</translation> + <translation>Tallózás...</translation> </message> <message> - <location line="+7"/> + <location/> <source>Press the <b>Browse</b> button or enter a directory and press Enter to add them to the list.</source> - <translation>Nyomja meg a <b>Böngészés</b> gombot vagy lépjen be egy könyvtárba és nyomja meg az Enter gombot hogy hozzáadja őket a listához.</translation> + <translation>Nyomja meg a <b>Tallózás<b> gombot, vagy írja be a mappa elérési útját, majd nyomja meg az Enter-t a listához adáshoz.</translation> </message> <message> - <location line="+16"/> + <location/> <source>Phonon</source> - <translation>Phonon</translation> + <translation></translation> </message> <message> - <location line="+6"/> + <location/> <source>About Phonon</source> - <translation>Phonon-ról</translation> + <translation>A Phonon névjegye</translation> </message> <message> - <location line="+6"/> - <location line="+44"/> + <location/> <source>Current Version:</source> - <translation>Aktuális verzió:</translation> + <translation>Jelenlegi verzió:</translation> </message> <message> - <location line="-37"/> - <location line="+44"/> + <location/> <source>Not available</source> - <translation>Nem elérhető</translation> + <translation>Nem érhető el</translation> </message> <message> - <location line="-37"/> - <location line="+44"/> + <location/> <source>Website:</source> - <translation>Weblap:</translation> + <translation>Weboldal:</translation> </message> <message> - <location line="-37"/> + <location/> <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://phonon.kde.org"><span style=" text-decoration: underline; color:#0000ff;">http://phonon.kde.org</span></a></p></body></html></source> - <translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://phonon.kde.org"><span style=" text-decoration: underline; color:#0000ff;">http://phonon.kde.org</span></a></p></body></html></translation> + <translation></translation> </message> <message> - <location line="+17"/> + <location/> <source>About GStreamer</source> - <translation>GStreamer-ről</translation> + <translation>A GStreamer névjegye</translation> </message> <message> - <location line="+27"/> + <location/> <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://gstreamer.freedesktop.org/"><span style=" text-decoration: underline; color:#0000ff;">http://gstreamer.freedesktop.org/</span></a></p></body></html></source> - <translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://gstreamer.freedesktop.org/"><span style=" text-decoration: underline; color:#0000ff;">http://gstreamer.freedesktop.org/</span></a></p></body></html></translation> + <translation></translation> </message> <message> - <location line="+17"/> + <location/> <source>GStreamer backend settings</source> - <translation>GStreamer backend beállítások</translation> + <translation>A GStreamer backend beállításai</translation> </message> <message> - <location line="+6"/> + <location/> <source>Preferred audio sink:</source> - <translation>Preferrált audió tartály:</translation> + <translatorcomment>CHECKIT</translatorcomment> + <translation type="unfinished">Preferált hangrendszer:</translation> </message> <message> - <location line="+13"/> + <location/> <source>Preferred render method:</source> - <translation>Preferrált render eljárás:</translation> + <translation>Preferált renderelési mód:</translation> </message> <message> - <location line="+13"/> + <location/> <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -569,271 +553,270 @@ p, li { white-space: pre-wrap; } <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Megjegyzés: Ezekben a beállításokban történő változtatások megakadályozhatják az alkalmazásokat a megfelelő betöltéstől.</span></p></body></html></translation> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Figyelem: ezen beállítások megváltoztatása egyes alkalmazások indulásában gondokat okozhat.</span></p></body></html></translation> </message> <message> - <location line="+68"/> + <location/> <source>&File</source> <translation>&Fájl</translation> </message> <message> - <location line="+19"/> + <location/> <source>&Help</source> <translation>&Súgó</translation> </message> <message> - <location line="+14"/> + <location/> <source>&Save</source> - <translation>&Mentés</translation> + <translation>M&entés</translation> </message> <message> - <location line="+3"/> + <location/> <source>Save</source> <translation>Mentés</translation> </message> <message> - <location line="+3"/> + <location/> <source>Ctrl+S</source> - <translation>Ctrl+S</translation> + <translation></translation> </message> <message> - <location line="+5"/> + <location/> <source>E&xit</source> <translation>&Kilépés</translation> </message> <message> - <location line="+3"/> + <location/> <source>Exit</source> <translation>Kilépés</translation> </message> <message> - <location line="+8"/> + <location/> <source>&About</source> <translation>&Névjegy</translation> </message> <message> - <location line="+3"/> + <location/> <source>About</source> <translation>Névjegy</translation> </message> <message> - <location line="+8"/> + <location/> <source>About &Qt</source> - <translation>&Qt-ról</translation> + <translation>&Qt névjegy</translation> </message> <message> - <location line="+3"/> + <location/> <source>About Qt</source> - <translation>Qt-ról</translation> + <translation>A Qt névjegye</translation> </message> </context> <context> <name>PaletteEditorAdvancedBase</name> <message> - <location filename="../tools/qtconfig/paletteeditoradvancedbase.ui" line="+61"/> + <location filename="../tools/qtconfig/paletteeditoradvancedbase.ui"/> <source>Tune Palette</source> - <translation>Hangoló paletta</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> + <location/> <source><b>Edit Palette</b><p>Change the palette of the current widget or form.</p><p>Use a generated palette or select colors for each color group and each color role.</p><p>The palette can be tested with different widget layouts in the preview section.</p></source> - <translation><b>Paletta szerkesztése</b><p>Az aktuális widget vagy űrlap palettájának megváltoztatása</p><p>Egy generált paletta használata vagy szín kiválasztás mindegyik színcsoport és szín szabályra.</p><p>A paletta tesztelhető különböző widget szerkezetekkel az előnézeti szegmensben.</p></translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+29"/> + <location/> <source>Select &Palette:</source> - <translation>&Paletta kiválasztása:</translation> + <translation type="unfinished">Előnézet &választása:</translation> </message> <message> - <location line="+14"/> + <location/> <source>Active Palette</source> - <translation>Aktív paletta</translation> + <translation type="unfinished">Aktív elemek</translation> </message> <message> - <location line="+5"/> + <location/> <source>Inactive Palette</source> - <translation>Inaktív paletta</translation> + <translation type="unfinished">Inaktív elemek</translation> </message> <message> - <location line="+5"/> + <location/> <source>Disabled Palette</source> - <translation>Paletta tiltása</translation> + <translation type="unfinished">Letiltott elemek</translation> </message> <message> - <location line="+21"/> + <location/> <source>Auto</source> - <translation>Auto</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+18"/> + <location/> <source>Build inactive palette from active</source> - <translation>Inaktív paletta építése aktívból</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+13"/> + <location/> <source>Build disabled palette from active</source> - <translation>Tiltott paletta építése aktívból</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+16"/> + <location/> <source>Central color &roles</source> - <translation>Központi szín &szabályok</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+18"/> + <location/> <source>Choose central color role</source> - <translation>Központi szín szabályok kiválasztása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source><b>Select a color role.</b><p>Available central roles are: <ul> <li>Window - general background color.</li> <li>WindowText - general foreground color. </li> <li>Base - used as background color for e.g. text entry widgets, usually white or another light color. </li> <li>Text - the foreground color used with Base. Usually this is the same as WindowText, in what case it must provide good contrast both with Window and Base. </li> <li>Button - general button background color, where buttons need a background different from Window, as in the Macintosh style. </li> <li>ButtonText - a foreground color used with the Button color. </li> <li>Highlight - a color to indicate a selected or highlighted item. </li> <li>HighlightedText - a text color that contrasts to Highlight. </li> <li>BrightText - a text color that is very different from WindowText and contrasts well with e.g. black. </li> </ul> </p></source> - <translation><b>Egy szín szabály kiválasztása.</b><p>Az elérhetp központi szabályok: <ul> <li>Ablak - általános háttér szín.</li> <li>AblakSzöveg - általános előtér szín. </li> <li>Alap - háttérszínként használva példul szöveg beviteli widgetekre, rendszerint fehér vagy más világos színekre. </li> <li>Szöveg - az előtér szín van haszálva a bázissal. Rendszerint ez ugyanaz, mint az AblakSzöveg, amilyen esetekben egy jó ellentétet kell biztosítania mindkettőre Ablakkal és Bázissal. </li> <li>Gomb - általános gomb háttér szín, ahol a gomboknak szüksége van egy háttére ami különbözik az ablakétól, mint a Macintosh stílusban. </li> <li>GombSzöveg - egy előtér szín van használva gomb színnel. </li> <li>Kihangsúlyozás - egy szín a kiválasztott vagy kihangsúlyozott elem jelölésére. </li> <li>KihangsúlyozottSzöveg - egy szöveg szín, ami ellentétes a kihangsúlyozással. </li> <li>VilágosSzöveg - egy szöveg szín, ami nagyon különböző az AblakSzövegtől és a kontrasztoktól jól van példul feketével. </li> </ul> </p></translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+4"/> + <location/> <source>Window</source> - <translation>Ablak</translation> + <translation type="unfinished">Ablak</translation> </message> <message> - <location line="+5"/> + <location/> <source>WindowText</source> - <translation>AblakSzöveg</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+5"/> + <location/> <source>Button</source> - <translation>Gomb</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+5"/> + <location/> <source>Base</source> - <translation>Bázis</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+5"/> + <location/> <source>Text</source> <translation>Szöveg</translation> </message> <message> - <location line="+5"/> + <location/> <source>BrightText</source> - <translation>VilágosSzöveg</translation> + <translation></translation> </message> <message> - <location line="+5"/> + <location/> <source>ButtonText</source> - <translation>GombSzöveg</translation> + <translation></translation> </message> <message> - <location line="+5"/> + <location/> <source>Highlight</source> - <translation>Kihangsúlyozás</translation> + <translation></translation> </message> <message> - <location line="+5"/> + <location/> <source>HighlightedText</source> - <translation>KihangsúlyozottSzöveg</translation> + <translation></translation> </message> <message> - <location line="+52"/> + <location/> <source>&Select Color:</source> - <translation>Szín &kiválasztása:</translation> + <translation>&Szín választás:</translation> </message> <message> - <location line="+24"/> - <location line="+171"/> + <location/> <source>Choose a color</source> - <translation>Egy szín kiválasztása</translation> + <translation>Válasszon színt</translation> </message> <message> - <location line="-168"/> + <location/> <source>Choose a color for the selected central color role.</source> - <translation>Egy szín kiválasztása a kiválasztott központi szín szabályokra.</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+15"/> + <location/> <source>3-D shadow &effects</source> - <translation>3 D árnyék &hatások</translation> + <translation>3D árnyék &effektek</translation> </message> <message> - <location line="+29"/> + <location/> <source>Build &from button color</source> - <translation>Építés gomb szín&ből</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> + <location/> <source>Generate shadings</source> - <translation>Árnyékolások generálása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source>Check to let 3D-effect colors be calculated from button-color.</source> - <translation></translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location/> <source>Choose 3D-effect color role</source> - <translation>3D hatás szín szabályok kiválasztása</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location/> <source><b>Select a color role.</b><p>Available effect roles are: <ul> <li>Light - lighter than Button color. </li> <li>Midlight - between Button and Light. </li> <li>Mid - between Button and Dark. </li> <li>Dark - darker than Button. </li> <li>Shadow - a very dark color. </li> </ul></source> - <translation></translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+4"/> + <location/> <source>Light</source> <translation>Világos</translation> </message> <message> - <location line="+5"/> + <location/> <source>Midlight</source> - <translation>Központi fény</translation> + <translation>Sötétebb</translation> </message> <message> - <location line="+5"/> + <location/> <source>Mid</source> - <translation>Középső</translation> + <translation>Közepes</translation> </message> <message> - <location line="+5"/> + <location/> <source>Dark</source> <translation>Sötét</translation> </message> <message> - <location line="+5"/> + <location/> <source>Shadow</source> <translation>Árnyék</translation> </message> <message> - <location line="+54"/> + <location/> <source>Select Co&lor:</source> <translation>&Szín kiválasztása:</translation> </message> <message> - <location line="+27"/> + <location/> <source>Choose a color for the selected effect color role.</source> - <translation>Egy szín kiválasztása a kiválaszott hatás szín szabályra.</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+42"/> + <location/> <source>OK</source> <translation>OK</translation> </message> <message> - <location line="+9"/> + <location/> <source>Close dialog and apply all changes.</source> - <translation>Párbeszéd ablak bezárása és az összes változtatás alkalmazása.</translation> + <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location/> <source>Cancel</source> - <translation>Mégse</translation> + <translation>Mégsem</translation> </message> <message> - <location line="+6"/> + <location/> <source>Close dialog and discard all changes.</source> - <translation>Párbeszédablak bezárása és az összes változtatás eldobása.</translation> + <translation type="unfinished"></translation> </message> </context> <context> @@ -841,68 +824,68 @@ p, li { white-space: pre-wrap; } <message> <location filename="../tools/qtconfig/previewframe.cpp" line="+81"/> <source>Desktop settings will only take effect after an application restart.</source> - <translation>Az asztal beállítások kizárólag az alkalmazás újraindítása utan lépnek érvénybe.</translation> + <translation>Az asztal új beállításai kizárólag az alkalmazás újraindítása utan lépnek érvénybe.</translation> </message> </context> <context> <name>PreviewWidgetBase</name> <message> - <location filename="../tools/qtconfig/previewwidgetbase.ui" line="+66"/> + <location filename="../tools/qtconfig/previewwidgetbase.ui"/> <source>Preview Window</source> - <translation>Előnézet ablak</translation> + <translation>Előnézeti ablak</translation> </message> <message> - <location line="+40"/> + <location/> <source>ButtonGroup</source> - <translation>GombCsoport</translation> + <translation></translation> </message> <message> - <location line="+18"/> + <location/> <source>RadioButton1</source> - <translation>RádioGomb1</translation> + <translation></translation> </message> <message> - <location line="+13"/> + <location/> <source>RadioButton2</source> - <translation>RádioGomb2</translation> + <translation></translation> </message> <message> - <location line="+10"/> + <location/> <source>RadioButton3</source> - <translation>RádioGomb3</translation> + <translation></translation> </message> <message> - <location line="+13"/> + <location/> <source>ButtonGroup2</source> - <translation>GombCsoport2</translation> + <translation></translation> </message> <message> - <location line="+18"/> + <location/> <source>CheckBox1</source> - <translation>Jelölőnégyzet1</translation> + <translation></translation> </message> <message> - <location line="+13"/> + <location/> <source>CheckBox2</source> - <translation>Jelölőnégyzet2</translation> + <translation></translation> </message> <message> - <location line="+36"/> + <location/> <source>LineEdit</source> - <translation>SorSzerkesztés</translation> + <translation></translation> </message> <message> - <location line="+11"/> + <location/> <source>ComboBox</source> - <translation>ComboBox</translation> + <translation></translation> </message> <message> - <location line="+29"/> + <location/> <source>PushButton</source> - <translation>NyomóGomb</translation> + <translation></translation> </message> <message> - <location line="+41"/> + <location/> <source><p> <a href="http://qt.nokia.com">http://qt.nokia.com</a> </p> diff --git a/translations/qtconfig_ru.ts b/translations/qtconfig_ru.ts index 7be0f04..2d435e6 100644 --- a/translations/qtconfig_ru.ts +++ b/translations/qtconfig_ru.ts @@ -4,7 +4,7 @@ <context> <name>MainWindow</name> <message> - <location filename="../tools/qtconfig/mainwindow.cpp" line="+202"/> + <location filename="../tools/qtconfig/mainwindow.cpp" line="+204"/> <source>Desktop Settings (Default)</source> <translation>Настройки рабочего стола (по умолчанию)</translation> </message> @@ -21,13 +21,13 @@ <message> <location line="+33"/> <location line="+1"/> - <location line="+38"/> + <location line="+40"/> <location line="+1"/> <source>Auto (default)</source> <translation>Автоматически (по умолчанию)</translation> </message> <message> - <location line="-38"/> + <location line="-40"/> <source>Choose audio output automatically.</source> <translation>Автоматический выбор звукового выхода.</translation> </message> @@ -43,7 +43,7 @@ <translation>Экспериментальная поддержка aRts в GStreamer.</translation> </message> <message> - <location line="+31"/> + <location line="+33"/> <source>Phonon GStreamer backend not available.</source> <translation>Модуль поддержки GStreamer недоступен.</translation> </message> @@ -71,8 +71,8 @@ </message> <message> <location line="+0"/> - <source>Use OpenGL if avaiable</source> - <translation>Использовать OpenGL, если доступен</translation> + <source>Use OpenGL if available</source> + <translation>Использовать OpenGL, если возможно</translation> </message> <message> <location line="+2"/> @@ -173,12 +173,12 @@ <message> <location/> <source>Select GUI &Style:</source> - <translation type="unfinished">&Стиль интерфейса:</translation> + <translation>&Стиль интерфейса:</translation> </message> <message> <location/> <source>Build Palette</source> - <translation type="unfinished">Палитра</translation> + <translation>Палитра</translation> </message> <message> <location/> @@ -363,17 +363,17 @@ <message> <location/> <source>C&omboBox Effect:</source> - <translation type="unfinished">Эффект C&omboBox:</translation> + <translation type="unfinished">Эффект &выпадающего списка:</translation> </message> <message> <location/> <source>&ToolTip Effect:</source> - <translation type="unfinished">Эффект &ToolTip:</translation> + <translation type="unfinished">Эффект &подсказки:</translation> </message> <message> <location/> <source>Tool&Box Effect:</source> - <translation type="unfinished">Эффект Tool&Box:</translation> + <translation type="unfinished">Эффект панели &инструментов:</translation> </message> <message> <location/> @@ -393,7 +393,7 @@ <message> <location/> <source>Global Strut</source> - <translation type="unfinished">Специальные возможности</translation> + <translation type="unfinished">Минимальные размеры</translation> </message> <message> <location/> @@ -577,7 +577,7 @@ p, li { white-space: pre-wrap; } <message> <location/> <source>Ctrl+S</source> - <translation type="unfinished"></translation> + <translation>Ctrl+S</translation> </message> <message> <location/> diff --git a/translations/qvfb_hu.ts b/translations/qvfb_hu.ts index bb8c931..9e49d26 100644 --- a/translations/qvfb_hu.ts +++ b/translations/qvfb_hu.ts @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> -<TS version="2.0" language="hu"> +<TS version="2.0" language="hu_HU"> <context> <name>AnimationSaveWidget</name> <message> - <location filename="../tools/qvfb/qvfb.cpp" line="+865"/> + <location filename="../tools/qvfb/qvfb.cpp" line="+868"/> <location line="+204"/> <source>Record</source> - <translation>Rekord</translation> + <translation>Felvétel</translation> </message> <message> <location line="-202"/> @@ -22,24 +22,24 @@ <message> <location line="+18"/> <source>Save in MPEG format (requires netpbm package installed)</source> - <translation>MPEG formátumba mentés (netpbm csomag telepítése szükséges)</translation> + <translation>Mentés MPEG formátumban (a netpbm csomagnak telepítve kell lenni)</translation> </message> <message> <location line="+8"/> <location line="+206"/> <source>Click record to begin recording.</source> - <translation>Kattintson az írásra az írás megkezdéséhez.</translation> + <translation>Kattintson ide a felvétel indításához.</translation> </message> <message> <location line="-115"/> <location line="+147"/> <source>Finished saving.</source> - <translation>Befejezett mentés.</translation> + <translation>Mentés befejezve.</translation> </message> <message> <location line="-63"/> <source>Paused. Click record to resume, or save if done.</source> - <translation>Szüneteltetve. Kattintson az írásra a folytatáshoz, vagy mentse el, ha kész.</translation> + <translation>Leállítva. Kattintson a felvétel gombra a folytatáshoz, vagy a mentéshez, ha végzett.</translation> </message> <message> <location line="+6"/> @@ -65,204 +65,205 @@ <message> <location line="+2"/> <source>Save canceled.</source> - <translation>Megnés visszavonva.</translation> + <translation>Mentés megszakítva.</translation> </message> <message> <location line="+9"/> <source>Save failed!</source> - <translation>Mentési hiba!</translation> + <translation>A mentés sikertelen!</translation> </message> </context> <context> <name>Config</name> <message> - <location filename="../tools/qvfb/config.ui" line="+54"/> + <location filename="../tools/qvfb/config.ui"/> <source>Configure</source> - <translation>Konfigurálás</translation> + <translation>Beállítás</translation> </message> <message> - <location line="+29"/> + <location/> <source>Size</source> <translation>Méret</translation> </message> <message> - <location line="+12"/> + <location/> <source>176x220 "SmartPhone"</source> - <translation>176x220 "ÜgyesTelefon"</translation> + <translation>176x220 "SmartPhone"</translation> </message> <message> - <location line="+7"/> + <location/> <source>240x320 "PDA"</source> <translation>240x320 "PDA"</translation> </message> <message> - <location line="+7"/> + <location/> <source>320x240 "TV" / "QVGA"</source> <translation>320x240 "TV" / "QVGA"</translation> </message> <message> - <location line="+7"/> + <location/> <source>640x480 "VGA"</source> <translation>640x480 "VGA"</translation> </message> <message> - <location line="+7"/> + <location/> <source>800x600</source> <translation>800x600</translation> </message> <message> - <location line="+7"/> + <location/> <source>1024x768</source> <translation>1024x768</translation> </message> <message> - <location line="+21"/> + <location/> <source>Custom</source> - <translation>Szokásos</translation> + <translation>Egyedi</translation> </message> <message> - <location line="+44"/> + <location/> <source>Depth</source> - <translation>Mélység</translation> + <translation>Színmélység</translation> </message> <message> - <location line="+6"/> + <location/> <source>1 bit monochrome</source> - <translation>1 bites egyszínű</translation> + <translation>1 bites monokróm</translation> </message> <message> - <location line="+7"/> + <location/> <source>2 bit grayscale</source> - <translation>2 bites szürke skálázás</translation> + <translation>2 bites szürkeárnyalatos</translation> </message> <message> - <location line="+7"/> + <location/> <source>4 bit grayscale</source> - <translation>4 bites szürke slálázás</translation> + <translation>4 bites szürkeárnyalatos</translation> </message> <message> - <location line="+7"/> + <location/> <source>8 bit</source> <translation>8 bites</translation> </message> <message> - <location line="+7"/> + <location/> <source>12 (16) bit</source> <translation>12 (16) bites</translation> </message> <message> - <location line="+7"/> + <location/> <source>15 bit</source> - <translation>15 bites</translation> + <translation></translation> </message> <message> - <location line="+7"/> + <location/> <source>16 bit</source> <translation>16 bites</translation> </message> <message> - <location line="+7"/> + <location/> <source>18 bit</source> - <translation>18 bites</translation> + <translation></translation> </message> <message> - <location line="+7"/> + <location/> <source>24 bit</source> - <translation>24 bites</translation> + <translation></translation> </message> <message> - <location line="+7"/> + <location/> <source>32 bit</source> - <translation>32 bites</translation> + <translation></translation> </message> <message> - <location line="+7"/> + <location/> <source>32 bit ARGB</source> - <translation>32 bites ARGB</translation> + <translation>32 bit ARGB-vel</translation> </message> <message> - <location line="+7"/> + <location/> <source>Swap red and blue channels</source> - <translation>Piros és kék csatornák felcserélése</translation> + <translation>Cserélje fel a piros és kék csatornát</translation> </message> <message> - <location line="+3"/> + <location/> <source>BGR format</source> <translation>BGR formátum</translation> </message> <message> - <location line="+20"/> + <location/> <source>Skin</source> - <translation>Szkin</translation> + <translation>Téma</translation> </message> <message> - <location line="+14"/> + <location/> <source>None</source> - <translation>Semmi</translation> + <translation>Nincs</translation> </message> <message> - <location line="+10"/> + <location/> <source>Emulate touch screen (no mouse move)</source> - <translatorcomment>указателя?</translatorcomment> - <translation>Érintő képernyő emulálása (nincs egér mozgatás)</translation> + <translation>Érintőképernyő szimulálása (nincs egérmozgás)</translation> </message> <message> - <location line="+7"/> + <location/> <source>Emulate LCD screen (Only with fixed zoom of 3.0 times magnification)</source> - <translation>LCD kijelző emulálása (Kizárólag egy fix 3-szoros nagyítással)</translation> + <translation>LCD képernyő emulálása (Kizárólag egy fix 3-szoros nagyítással)</translation> </message> <message> - <location line="+26"/> + <location/> <source><p>Note that any applications using the virtual framebuffer will be terminated if you change the Size or Depth <i>above</i>. You may freely modify the Gamma <i>below</i>.</source> - <translation><p>Vegye figyelembe azt, hogy bármely alkalmazás, amely virtuális framebuffer-t használ, be lesz fejezve, ha megváltoztatja a méretet vagy a mélységet <i>felül</i>. Szabadon módosíthatja a Gamma-t <i>alul</i>.</translation> + <translation><p>Bármely, a virtuális framebuffert használó alkalmazás leáll, ha <i>fent</i>megváltoztatja a méretet vagy a színmélységet. A Gamma értéket szabadon módosíthatja.</translation> </message> <message> - <location line="+10"/> + <location/> <source>Gamma</source> <translation>Gamma</translation> </message> <message> - <location line="+12"/> + <location/> <source>Blue</source> <translation>Kék</translation> </message> <message> - <location line="+489"/> - <location line="+496"/> - <location line="+14"/> - <location line="+496"/> + <location/> <source>1.0</source> - <translation>1.0</translation> + <translation></translation> </message> <message> - <location line="-999"/> + <location/> <source>Green</source> <translation>Zöld</translation> </message> <message> - <location line="+496"/> + <location/> <source>All</source> <translation>Mind</translation> </message> <message> - <location line="+496"/> + <location/> <source>Red</source> <translation>Piros</translation> </message> <message> - <location line="+496"/> + <location/> <source>Set all to 1.0</source> - <translation>Az összes 1.0-ra állítása</translation> + <translation>Mindegyik legyen 1.0</translation> </message> <message> - <location line="+34"/> + <location/> <source>&OK</source> <translation>&OK</translation> </message> <message> - <location line="+13"/> + <location/> <source>&Cancel</source> - <translation>&Mégse</translation> + <translation>&Mégsem</translation> + </message> + <message> + <location/> + <source>800x480</source> + <translation>800x480</translation> </message> </context> <context> @@ -270,75 +271,75 @@ <message> <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/> <source>The image file '%1' could not be loaded.</source> - <translation>Nem sikerült betölteni a(z) '%1' kép fájlt.</translation> + <translation>A képfájl (%1) nem tölthető be.</translation> </message> <message> <location line="+64"/> <source>The skin directory '%1' does not contain a configuration file.</source> - <translation>A(z) '%1' skin könyvtár nem tartalmaz egyetlen konfigurációs fájlt sem.</translation> + <translation>A téma könyvtár (%1) nem tartalmaz konfigurációs fájlt.</translation> </message> <message> <location line="+5"/> <source>The skin configuration file '%1' could not be opened.</source> - <translation>Nem lehetett megnyitni a(z) '%1' skin konfigurációs fájlt.</translation> + <translation>A téma konfigurációs fájlja (%1) nem nyitható meg.</translation> </message> <message> <location line="+6"/> <source>The skin configuration file '%1' could not be read: %2</source> - <translation>Nem lehetett olvasni a(z) '%1' skin konfigurációs fájlt: %2</translation> + <translation>A téma kofnigurációs fájlja (%1) nem olvasható: %2</translation> </message> <message> <location line="+70"/> <source>Syntax error: %1</source> - <translation>Szintakszis hiba: %1</translation> + <translation>Szintaxis hiba : %1</translation> </message> <message> <location line="+21"/> <source>The skin "up" image file '%1' does not exist.</source> - <translation>A(z) '%1 'fel' skinezett kép fájl nem létezik.</translation> + <translation>A témából hiányzik a "felfelé" kép (%1).</translation> </message> <message> <location line="+10"/> <source>The skin "down" image file '%1' does not exist.</source> - <translation>A(z) '%1 'le' skinezett kép fájl nem létezik.</translation> + <translation>A témából hiányzik a "lefelé" kép (%1).</translation> </message> <message> <location line="+11"/> <source>The skin "closed" image file '%1' does not exist.</source> - <translation>A(z) '%1' skin "bezárt" kép fájl nem létezik.</translation> + <translation>A témából hiányzik a "bezárva" kép (%1).</translation> </message> <message> <location line="+12"/> <source>The skin cursor image file '%1' does not exist.</source> - <translation>A(z) '%1' skin kurzor kép fájl nem létezik.</translation> + <translation>A témából hiányzik a kurzor (%1).</translation> </message> <message> <location line="+25"/> <source>Syntax error in area definition: %1</source> - <translation>Szintaszis hiba a terület definícióban: %1</translation> + <translation>Szintaxis hiba a területdefiníciónál: %1</translation> </message> <message> <location line="+38"/> <source>Mismatch in number of areas, expected %1, got %2.</source> - <translation>Nem megfelelő terület szám, %1 várt, %2 kapott.</translation> + <translation>A területek száma nem megfelelő, csak %1 van %2 helyett.</translation> </message> </context> <context> <name>QVFb</name> <message> - <location filename="../tools/qvfb/qvfb.cpp" line="-501"/> + <location filename="../tools/qvfb/qvfb.cpp" line="-504"/> <source>Browse...</source> - <translation>Böngészés...</translation> + <translation>Tallózás...</translation> </message> <message> - <location line="+140"/> + <location line="+143"/> <source>Load Custom Skin...</source> - <translation>Szokásos skin betöltése...</translation> + <translation>Egyedi téma betöltése...</translation> </message> <message> <location line="+1"/> <source>All QVFB Skins (*.skin)</source> - <translation>Minden QVFB skin (*.skin)</translation> + <translation>Minden QVFB téma (*.skin)</translation> </message> </context> </TS> diff --git a/util/s60theme/main.cpp b/util/s60theme/main.cpp index 7f38d5c..1234fd2 100644 --- a/util/s60theme/main.cpp +++ b/util/s60theme/main.cpp @@ -70,9 +70,9 @@ int main(int argc, char *argv[]) const QFileInfo inputInfo(input); const QString output = QString::fromLatin1(argv[2]); if (inputInfo.isDir()) - return S60ThemeConvert::convertDefaultThemeToBlob(input, output); + return S60ThemeConvert::convertDefaultThemeToBlob(input, output) ? 0 : 1; else if (inputInfo.suffix().compare(QString::fromLatin1("tdf"), Qt::CaseInsensitive) == 0) - return S60ThemeConvert::convertTdfToBlob(input, output); + return S60ThemeConvert::convertTdfToBlob(input, output) ? 0 : 1; return help(); } diff --git a/util/s60theme/s60themeconvert.cpp b/util/s60theme/s60themeconvert.cpp index 7908055..b1e8022 100644 --- a/util/s60theme/s60themeconvert.cpp +++ b/util/s60theme/s60themeconvert.cpp @@ -45,6 +45,8 @@ #include <QtWebKit> static const int pictureSize = 256; +static const char* const msgPartNotInTdf = " Warning: The .tdf file does not have a part for "; +static const char* const msgSvgNotFound = " Fatal: Could not find part .svg "; void dumpPartPictures(const QHash<QString, QPicture> &partPictures) { foreach (const QString &partKey, partPictures.keys()) { @@ -84,6 +86,7 @@ private: WebKitSVGRenderer::WebKitSVGRenderer(QWidget *parent) : QWebView(parent) { + connect(this, SIGNAL(loadFinished(bool)), SLOT(loadFinishedSlot(bool))); setFixedSize(pictureSize, pictureSize); QPalette pal = palette(); @@ -202,11 +205,19 @@ bool loadThemeFromTdf(const QString &tdfFile, return false; const QString tdfBasePath = QFileInfo(tdfFile).absolutePath(); WebKitSVGRenderer renderer; - foreach(const QString& partKey, parsedPartSvgs.keys()) { - const QString tdfFullName = - tdfBasePath + QDir::separator() + parsedPartSvgs.value(partKey); - if (!QFile(tdfFullName).exists()) - qWarning() << "Could not find part:" << parsedPartSvgs.value(partKey); + foreach (const QString &partKey, QS60Style::partKeys()) { + qDebug() << partKey; + QString tdfFullName; + if (parsedPartSvgs.contains(partKey)) { + tdfFullName = tdfBasePath + QDir::separator() + parsedPartSvgs.value(partKey); + } else { + qWarning() << msgPartNotInTdf << partKey; + tdfFullName = tdfBasePath + QDir::separator() + partKey + QLatin1String(".svg"); + } + if (!QFile(tdfFullName).exists()) { + qWarning() << msgSvgNotFound << QDir::toNativeSeparators(tdfFullName); + return false; + } const QPicture partPicture = renderer.svgToQPicture(tdfFullName); parsedPartPictures.insert(partKey, partPicture); } @@ -276,8 +287,8 @@ bool loadDefaultTheme(const QString &themePath, const QString partFileName = partKey + QLatin1String(".svg"); const QString partFile(dir.absolutePath() + QDir::separator() + partFileName); if (!QFile::exists(partFile)) { - qWarning() << "Could not find part:" << partFileName; - continue; + qWarning() << msgSvgNotFound << partFileName; + return false; } const QPicture partPicture = renderer.svgToQPicture(partFile); partPictures.insert(partKey, partPicture); |